diff --git a/.apigentools-info b/.apigentools-info new file mode 100644 index 000000000..1cefd58fe --- /dev/null +++ b/.apigentools-info @@ -0,0 +1,16 @@ +{ + "additional_stamps": [], + "info_version": "2", + "spec_versions": { + "v1": { + "apigentools_version": "1.6.6", + "regenerated": "2024-04-08 20:24:02.356402", + "spec_repo_commit": "037e376a" + }, + "v2": { + "apigentools_version": "1.6.6", + "regenerated": "2024-04-08 20:24:02.377503", + "spec_repo_commit": "037e376a" + } + } +} \ No newline at end of file diff --git a/.generator/conftest.py b/.generator/conftest.py index 282b43024..b697f30bd 100644 --- a/.generator/conftest.py +++ b/.generator/conftest.py @@ -107,7 +107,7 @@ def pytest_bdd_after_scenario(request, feature, scenario): operation_spec=operation_spec.spec, ) - output = ROOT_PATH / "examples" / f"{version}_{group_name}_{snake_case(operation_id)}{unique_suffix}.rs" + output = ROOT_PATH / "examples" / f"{version}_{group_name}_{snake_case(operation_id).lower()}{unique_suffix}.rs" output.parent.mkdir(parents=True, exist_ok=True) with output.open("w") as f: diff --git a/.generator/schemas/v1/openapi.yaml b/.generator/schemas/v1/openapi.yaml index 25c92065a..e08c005f4 100644 --- a/.generator/schemas/v1/openapi.yaml +++ b/.generator/schemas/v1/openapi.yaml @@ -328,7 +328,7 @@ components: type: string message: description: Message content. - example: AWS account 12345 has no lambda config to update + example: AWS account 12345 has no Lambda config to update type: string type: object AWSLogsAsyncResponse: @@ -1142,9 +1142,12 @@ components: is_read_only: default: false deprecated: true - description: Whether this dashboard is read-only. If True, only the author - and admins can make changes to it. Prefer using `restricted_roles` to - manage write authorization. + description: 'Whether this dashboard is read-only. If True, only the author + and admins can make changes to it. + + + This property is deprecated; please use the [Restriction Policies API](https://docs.datadoghq.com/api/latest/restriction-policies/) + instead to manage write authorization for individual dashboards.' example: false type: boolean layout_type: @@ -1165,8 +1168,13 @@ components: reflow_type: $ref: '#/components/schemas/DashboardReflowType' restricted_roles: - description: A list of role identifiers. Only the author and users associated + deprecated: true + description: 'A list of role identifiers. Only the author and users associated with at least one of these roles can edit this dashboard. + + + This property is deprecated; please use the [Restriction Policies API](https://docs.datadoghq.com/api/latest/restriction-policies/) + instead to manage write authorization for individual dashboards.' items: description: A role UUID. type: string @@ -1439,8 +1447,13 @@ components: description: Dashboard identifier. type: string is_read_only: - description: Whether this dashboard is read-only. If True, only the author + deprecated: true + description: 'Whether this dashboard is read-only. If True, only the author and admins can make changes to it. + + + This property is deprecated; please use the [Restriction Policies API](https://docs.datadoghq.com/api/latest/restriction-policies/) + instead to manage write authorization for individual dashboards.' type: boolean layout_type: $ref: '#/components/schemas/DashboardLayoutType' @@ -3194,6 +3207,18 @@ components: key.' example: https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL type: string + cloud_run_revision_filters: + description: 'Limit the Cloud Run revisions that are pulled into Datadog + by using tags. + + Only Cloud Run revision resources that apply to specified filters are + imported into Datadog.' + example: + - $KEY:$VALUE + items: + description: Cloud Run Filters + type: string + type: array errors: description: An array of errors. example: @@ -4058,6 +4083,8 @@ components: - apm_usm_usage - appsec_fargate_usage - appsec_usage + - asm_serverless_traced_invocations_usage + - asm_serverless_traced_invocations_percentage - browser_usage - ci_pipeline_indexed_spans_usage - ci_test_indexed_spans_usage @@ -4074,6 +4101,8 @@ components: - cws_hosts_usage - dbm_hosts_usage - dbm_queries_usage + - error_tracking_usage + - error_tracking_percentage - estimated_indexed_logs_usage - estimated_indexed_spans_usage - estimated_ingested_logs_usage @@ -4081,6 +4110,7 @@ components: - estimated_rum_sessions_usage - fargate_usage - functions_usage + - incident_management_monthly_active_users_usage - indexed_spans_usage - infra_host_usage - ingested_logs_bytes_usage @@ -4101,6 +4131,8 @@ components: - ndm_netflow_usage - npm_host_usage - obs_pipeline_bytes_usage + - obs_pipelines_vcpu_usage + - online_archive_usage - profiled_container_usage - profiled_fargate_usage - profiled_host_usage @@ -4112,6 +4144,7 @@ components: - snmp_usage - universal_service_monitoring_usage - vuln_management_hosts_usage + - workflow_executions_usage type: string x-enum-varnames: - API_USAGE @@ -4120,6 +4153,8 @@ components: - APM_USM_USAGE - APPSEC_FARGATE_USAGE - APPSEC_USAGE + - ASM_SERVERLESS_TRACED_INVOCATIONS_USAGE + - ASM_SERVERLESS_TRACED_INVOCATIONS_PERCENTAGE - BROWSER_USAGE - CI_PIPELINE_INDEXED_SPANS_USAGE - CI_TEST_INDEXED_SPANS_USAGE @@ -4136,6 +4171,8 @@ components: - CWS_HOSTS_USAGE - DBM_HOSTS_USAGE - DBM_QUERIES_USAGE + - ERROR_TRACKING_USAGE + - ERROR_TRACKING_PERCENTAGE - ESTIMATED_INDEXED_LOGS_USAGE - ESTIMATED_INDEXED_SPANS_USAGE - ESTIMATED_INGESTED_LOGS_USAGE @@ -4143,6 +4180,7 @@ components: - ESTIMATED_RUM_SESSIONS_USAGE - FARGATE_USAGE - FUNCTIONS_USAGE + - INCIDENT_MANAGEMENT_MONTHLY_ACTIVE_USERS_USAGE - INDEXED_SPANS_USAGE - INFRA_HOST_USAGE - INGESTED_LOGS_BYTES_USAGE @@ -4163,6 +4201,8 @@ components: - NDM_NETFLOW_USAGE - NPM_HOST_USAGE - OBS_PIPELINE_BYTES_USAGE + - OBS_PIPELINE_VCPU_USAGE + - ONLINE_ARCHIVE_USAGE - PROFILED_CONTAINER_USAGE - PROFILED_FARGATE_USAGE - PROFILED_HOST_USAGE @@ -4174,6 +4214,7 @@ components: - SNMP_USAGE - UNIVERSAL_SERVICE_MONITORING_USAGE - VULN_MANAGEMENT_HOSTS_USAGE + - WORKFLOW_EXECUTIONS_USAGE IFrameWidgetDefinition: description: The iframe widget allows you to embed a portion of any other web page on your dashboard. Only available on FREE layout dashboards. @@ -4750,7 +4791,7 @@ components: content: $ref: '#/components/schemas/LogContent' id: - description: Unique ID of the Log. + description: ID of the Log. example: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA type: string type: object @@ -5180,6 +5221,21 @@ components: type: string x-enum-varnames: - CATEGORY_PROCESSOR + LogsDailyLimitReset: + description: Object containing options to override the default daily limit reset + time. + properties: + reset_time: + description: String in `HH:00` format representing the time of day the daily + limit should be reset. The hours must be between 00 and 23 (inclusive). + example: '14:00' + type: string + reset_utc_offset: + description: String in `(-|+)HH:00` format representing the UTC offset to + apply to the given reset time. The hours must be between -12 and +14 (inclusive). + example: +02:00 + type: string + type: object LogsDateRemapper: description: "As Datadog receives logs, it timestamps them using the value(s) from any of these default attributes.\n\n - `timestamp`\n - `date`\n - @@ -5394,6 +5450,16 @@ components: example: 300000000 format: int64 type: integer + daily_limit_reset: + $ref: '#/components/schemas/LogsDailyLimitReset' + daily_limit_warning_threshold_percentage: + description: A percentage threshold of the daily quota at which a Datadog + warning event is generated. + example: 70 + format: double + maximum: 99.99 + minimum: 50 + type: number exclusion_filters: description: 'An array of exclusion objects. The logs are tested against the query of each filter, @@ -5449,6 +5515,16 @@ components: example: 300000000 format: int64 type: integer + daily_limit_reset: + $ref: '#/components/schemas/LogsDailyLimitReset' + daily_limit_warning_threshold_percentage: + description: A percentage threshold of the daily quota at which a Datadog + warning event is generated. + example: 70 + format: double + maximum: 99.99 + minimum: 50 + type: number disable_daily_limit: description: 'If true, sets the `daily_limit` value to null and the index is not limited on a daily basis (any @@ -6280,7 +6356,7 @@ components: description: The metrics' payload. properties: series: - description: A list of time series to submit to Datadog. + description: A list of timeseries to submit to Datadog. example: - metric: system.load.1 points: @@ -6333,7 +6409,7 @@ components: readOnly: true type: string pointlist: - description: List of points of the time series in milliseconds. + description: List of points of the timeseries in milliseconds. example: - - 1681683300000.0 - 77.62145685254418 @@ -6704,6 +6780,7 @@ components: - events - logs - spans + - database_queries example: rum type: string x-enum-varnames: @@ -6714,6 +6791,7 @@ components: - EVENTS - LOGS - SPANS + - DATABASE_QUERIES MonitorFormulaAndFunctionQueryDefinition: description: A formula and function query. oneOf: @@ -6989,8 +7067,13 @@ components: nullable: true type: integer renotify_statuses: - description: The types of monitor statuses for which re-notification messages + description: 'The types of monitor statuses for which re-notification messages are sent. + + Default: **null** if `renotify_interval` is **null**. + + If `renotify_interval` is set, defaults to renotify on `Alert` and `No + Data`.' items: $ref: '#/components/schemas/MonitorRenotifyStatusType' nullable: true @@ -6999,7 +7082,7 @@ components: description: "A Boolean indicating whether this monitor needs a full window of data before it\u2019s evaluated.\nWe highly recommend you set this to `false` for sparse metrics,\notherwise some evaluations are skipped. - Default is false." + Default is false. This setting only applies to\nmetric monitors." type: boolean scheduling_options: $ref: '#/components/schemas/MonitorOptionsSchedulingOptions' @@ -7700,6 +7783,8 @@ components: - apm_usm_percentage - appsec_usage - appsec_percentage + - asm_serverless_traced_invocations_usage + - asm_serverless_traced_invocations_percentage - browser_usage - browser_percentage - ci_visibility_itr_usage @@ -7726,6 +7811,8 @@ components: - dbm_hosts_usage - dbm_queries_percentage - dbm_queries_usage + - error_tracking_usage + - error_tracking_percentage - estimated_indexed_logs_usage - estimated_indexed_logs_percentage - estimated_ingested_logs_usage @@ -7738,6 +7825,8 @@ components: - fargate_percentage - functions_usage - functions_percentage + - incident_management_monthly_active_users_usage + - incident_management_monthly_active_users_percentage - infra_host_usage - infra_host_percentage - invocations_usage @@ -7752,6 +7841,10 @@ components: - npm_host_percentage - obs_pipeline_bytes_usage - obs_pipeline_bytes_percentage + - obs_pipelines_vcpu_usage + - obs_pipelines_vcpu_percentage + - online_archive_usage + - online_archive_percentage - profiled_container_usage - profiled_container_percentage - profiled_fargate_usage @@ -7808,6 +7901,8 @@ components: - ingested_spans_bytes_percentage - siem_ingested_bytes_usage - siem_ingested_bytes_percentage + - workflow_executions_usage + - workflow_executions_percentage - '*' type: string x-enum-varnames: @@ -7823,6 +7918,8 @@ components: - APM_USM_PERCENTAGE - APPSEC_USAGE - APPSEC_PERCENTAGE + - ASM_SERVERLESS_TRACED_INVOCATIONS_USAGE + - ASM_SERVERLESS_TRACED_INVOCATIONS_PERCENTAGE - BROWSER_USAGE - BROWSER_PERCENTAGE - CI_VISIBILITY_ITR_USAGE @@ -7849,6 +7946,8 @@ components: - DBM_HOSTS_USAGE - DBM_QUERIES_PERCENTAGE - DBM_QUERIES_USAGE + - ERROR_TRACKING_USAGE + - ERROR_TRACKING_PERCENTAGE - ESTIMATED_INDEXED_LOGS_USAGE - ESTIMATED_INDEXED_LOGS_PERCENTAGE - ESTIMATED_INGESTED_LOGS_USAGE @@ -7861,6 +7960,8 @@ components: - FARGATE_PERCENTAGE - FUNCTIONS_USAGE - FUNCTIONS_PERCENTAGE + - INCIDENT_MANAGEMENT_MONTHLY_ACTIVE_USERS_USAGE + - INCIDENT_MANAGEMENT_MONTHLY_ACTIVE_USERS_PERCENTAGE - INFRA_HOST_USAGE - INFRA_HOST_PERCENTAGE - INVOCATIONS_USAGE @@ -7875,6 +7976,10 @@ components: - NPM_HOST_PERCENTAGE - OBS_PIPELINE_BYTES_USAGE - OBS_PIPELINE_BYTES_PERCENTAGE + - OBS_PIPELINES_VCPU_USAGE + - OBS_PIPELINES_VCPU_PERCENTAGE + - ONLINE_ARCHIVE_USAGE + - ONLINE_ARCHIVE_PERCENTAGE - PROFILED_CONTAINER_USAGE - PROFILED_CONTAINER_PERCENTAGE - PROFILED_FARGATE_USAGE @@ -7931,6 +8036,8 @@ components: - INGESTED_SPANS_BYTES_PERCENTAGE - SIEM_INGESTED_BYTES_USAGE - SIEM_INGESTED_BYTES_PERCENTAGE + - WORKFLOW_EXECUTIONS_USAGE + - WORKFLOW_EXECUTIONS_PERCENTAGE - ALL MonthlyUsageAttributionValues: description: Fields in Usage Summary by tag(s). @@ -7987,6 +8094,16 @@ components: description: The Application Security Monitoring host usage by tag(s). format: double type: number + asm_serverless_traced_invocations_percentage: + description: The percentage of Application Security Monitoring Serverless + traced invocations usage by tag(s). + format: double + type: number + asm_serverless_traced_invocations_usage: + description: The Application Security Monitoring Serverless traced invocations + usage by tag(s). + format: double + type: number browser_percentage: description: The percentage of synthetic browser test usage by tag(s). format: double @@ -8122,6 +8239,14 @@ components: description: The Database Monitoring queries usage by tag(s). format: double type: number + error_tracking_percentage: + description: The percentage of error tracking events usage by tag(s). + format: double + type: number + error_tracking_usage: + description: The error tracking events usage by tag(s). + format: double + type: number estimated_indexed_logs_percentage: description: The percentage of estimated live indexed logs usage by tag(s). format: double @@ -8178,6 +8303,15 @@ components: description: The Lambda function usage by tag(s). format: double type: number + incident_management_monthly_active_users_percentage: + description: The percentage of Incident Management monthly active users + usage by tag(s). + format: double + type: number + incident_management_monthly_active_users_usage: + description: The Incident Management monthly active users usage by tag(s). + format: double + type: number indexed_spans_percentage: description: The percentage of APM Indexed Spans usage by tag(s). format: double @@ -8348,6 +8482,23 @@ components: description: The observability pipeline bytes usage by tag(s). format: double type: number + obs_pipelines_vcpu_percentage: + description: The percentage of observability pipeline per core usage by + tag(s). + format: double + type: number + obs_pipelines_vcpu_usage: + description: The observability pipeline per core usage by tag(s). + format: double + type: number + online_archive_percentage: + description: The percentage of online archive usage by tag(s). + format: double + type: number + online_archive_usage: + description: The online archive usage by tag(s). + format: double + type: number profiled_container_percentage: description: The percentage of profiled container usage by tag(s). format: double @@ -8437,6 +8588,14 @@ components: description: The Application Vulnerability Management usage by tag(s). format: double type: number + workflow_executions_percentage: + description: The percentage of workflow executions usage by tag(s). + format: double + type: number + workflow_executions_usage: + description: The total workflow executions usage by tag(s). + format: double + type: number type: object NoteWidgetDefinition: description: The notes and links widget is similar to free text widget, but @@ -10061,7 +10220,7 @@ components: description: 'The recurrence rules as defined in the iCalendar RFC 5545. The supported rules for SLO corrections - are `FREQ`, `INTERVAL`, `COUNT` and `UNTIL`.' + are `FREQ`, `INTERVAL`, `COUNT`, `UNTIL` and `BYDAY`.' example: FREQ=DAILY;INTERVAL=10;COUNT=5 type: string slo_id: @@ -10138,7 +10297,7 @@ components: description: 'The recurrence rules as defined in the iCalendar RFC 5545. The supported rules for SLO corrections - are `FREQ`, `INTERVAL`, `COUNT`, and `UNTIL`.' + are `FREQ`, `INTERVAL`, `COUNT`, `UNTIL` and `BYDAY`.' example: FREQ=DAILY;INTERVAL=10;COUNT=5 nullable: true type: string @@ -10214,7 +10373,7 @@ components: description: 'The recurrence rules as defined in the iCalendar RFC 5545. The supported rules for SLO corrections - are `FREQ`, `INTERVAL`, `COUNT`, and `UNTIL`.' + are `FREQ`, `INTERVAL`, `COUNT`, `UNTIL` and `BYDAY`.' example: FREQ=DAILY;INTERVAL=10;COUNT=5 type: string start: @@ -10244,6 +10403,13 @@ components: nullable: true type: string type: object + SLODataSourceQueryDefinition: + description: A formula and function query. + example: + data_source: metrics + query: sum:trace.servlet.request.hits{*} by {env}.as_count() + oneOf: + - $ref: '#/components/schemas/FormulaAndFunctionMetricQueryDefinition' SLODeleteResponse: description: A response list of all service level objective deleted. properties: @@ -10287,6 +10453,20 @@ components: - THIRTY_DAYS - NINETY_DAYS - ALL + SLOFormula: + description: A formula that specifies how to combine the results of multiple + queries. + example: + formula: query1 - default_zero(query2) + properties: + formula: + description: The formula string, which is an expression involving named + queries. + example: query1 - default_zero(query2) + type: string + required: + - formula + type: object SLOHistoryMetrics: description: 'A `metric` based SLO history response. @@ -10340,7 +10520,7 @@ components: - denominator type: object SLOHistoryMetricsSeries: - description: 'A representation of `metric` based SLO time series for the provided + description: 'A representation of `metric` based SLO timeseries for the provided queries. This is the same response type from `batch_query` endpoint.' @@ -10461,18 +10641,18 @@ components: type: string history: description: For `monitor` based SLOs, this includes the aggregated history - as arrays that include time series and uptime data where `0=monitor` is + as arrays that include timeseries and uptime data where `0=monitor` is in `OK` state and `1=monitor` is in `alert` state. example: - - 1579212382 - 0 items: - description: Represents an array time series data. + description: Represents an array timeseries data. example: - 1579212382 - 0 items: - description: A time series data point which is a tuple of (timestamp, + description: A timeseries data point which is a tuple of (timestamp, value). format: double type: number @@ -10643,18 +10823,18 @@ components: type: string history: description: For `monitor` based SLOs, this includes the aggregated history - as arrays that include time series and uptime data where `0=monitor` is + as arrays that include timeseries and uptime data where `0=monitor` is in `OK` state and `1=monitor` is in `alert` state. example: - - 1579212382 - 0 items: - description: Represents an array time series data. + description: Represents an array timeseries data. example: - 1579212382 - 0 items: - description: A time series data point which is a tuple of (timestamp, + description: A timeseries data point which is a tuple of (timestamp, value). format: double type: number @@ -11016,6 +11196,8 @@ components: type: string query: $ref: '#/components/schemas/ServiceLevelObjectiveQuery' + sli_specification: + $ref: '#/components/schemas/SLOSliSpec' tags: description: 'A list of tags associated with this service level objective. @@ -11070,6 +11252,11 @@ components: format: double type: number type: object + SLOSliSpec: + description: A generic SLI specification. This is currently used for time-slice + SLOs only. + oneOf: + - $ref: '#/components/schemas/SLOTimeSliceSpec' SLOState: description: State of the SLO. enum: @@ -11170,6 +11357,125 @@ components: - timeframe - target type: object + SLOTimeSliceComparator: + description: The comparator used to compare the SLI value to the threshold. + enum: + - '>' + - '>=' + - < + - <= + example: '>' + type: string + x-enum-varnames: + - GREATER + - GREATER_EQUAL + - LESS + - LESS_EQUAL + SLOTimeSliceCondition: + description: 'The time-slice condition, composed of 3 parts: 1. the metric timeseries + query, 2. the comparator, + + and 3. the threshold. Optionally, a fourth part, the query interval, can be + provided.' + example: + comparator: < + query: + formulas: + - formula: query2/query1 + queries: + - data_source: metrics + name: query1 + query: sum:trace.servlet.request.hits{*} by {env}.as_count() + - data_source: metrics + name: query1 + query: sum:trace.servlet.request.errors{*} by {env}.as_count() + threshold: 5 + properties: + comparator: + $ref: '#/components/schemas/SLOTimeSliceComparator' + query: + $ref: '#/components/schemas/SLOTimeSliceQuery' + query_interval_seconds: + $ref: '#/components/schemas/SLOTimeSliceInterval' + threshold: + description: The threshold value to which each SLI value will be compared. + example: 5 + format: double + type: number + required: + - comparator + - threshold + - query + type: object + SLOTimeSliceInterval: + description: 'The interval used when querying data, which defines the size of + a time slice. + + Two values are allowed: 60 (1 minute) and 300 (5 minutes). + + If not provided, the value defaults to 300 (5 minutes).' + enum: + - 60 + - 300 + example: 300 + format: int32 + type: integer + x-enum-varnames: + - ONE_MINUTE + - FIVE_MINUTES + SLOTimeSliceQuery: + description: The queries and formula used to calculate the SLI value. + example: + formulas: + - formula: query2/query1 + queries: + - data_source: metrics + name: query1 + query: sum:trace.servlet.request.hits{*} by {env}.as_count() + - data_source: metrics + name: query1 + query: sum:trace.servlet.request.errors{*} by {env}.as_count() + properties: + formulas: + description: A list that contains exactly one formula, as only a single + formula may be used in a time-slice SLO. + items: + $ref: '#/components/schemas/SLOFormula' + maxItems: 1 + minItems: 1 + type: array + queries: + description: A list of queries that are used to calculate the SLI value. + items: + $ref: '#/components/schemas/SLODataSourceQueryDefinition' + type: array + required: + - formulas + - queries + type: object + SLOTimeSliceSpec: + additionalProperties: false + description: A time-slice SLI specification. + example: + time_slice: + comparator: < + query: + formulas: + - formula: query2/query1 + queries: + - data_source: metrics + name: query1 + query: sum:trace.servlet.request.hits{*} by {env}.as_count() + - data_source: metrics + name: query1 + query: sum:trace.servlet.request.errors{*} by {env}.as_count() + threshold: 5 + properties: + time_slice: + $ref: '#/components/schemas/SLOTimeSliceCondition' + required: + - time_slice + type: object SLOTimeframe: description: The SLO time window options. enum: @@ -11189,11 +11495,13 @@ components: enum: - metric - monitor + - time_slice example: metric type: string x-enum-varnames: - METRIC - MONITOR + - TIME_SLICE SLOTypeNumeric: description: 'A numeric representation of the type of the service level objective (`0` for @@ -11204,12 +11512,14 @@ components: enum: - 0 - 1 + - 2 example: 0 format: int32 type: integer x-enum-varnames: - MONITOR - METRIC + - TIME_SLICE SLOWidgetDefinition: description: Use the SLO and uptime widget to track your SLOs (Service Level Objectives) and uptime on screenboards and timeboards. @@ -12019,6 +12329,8 @@ components: type: string query: $ref: '#/components/schemas/ServiceLevelObjectiveQuery' + sli_specification: + $ref: '#/components/schemas/SLOSliSpec' tags: description: 'A list of tags associated with this service level objective. @@ -12148,6 +12460,8 @@ components: type: string query: $ref: '#/components/schemas/ServiceLevelObjectiveQuery' + sli_specification: + $ref: '#/components/schemas/SLOSliSpec' tags: description: 'A list of tags associated with this service level objective. @@ -12683,7 +12997,7 @@ components: description: Maximum number of graphs to display in the widget. example: 24 format: int64 - maximum: 100 + maximum: 500 minimum: 1 type: integer sort: @@ -12699,7 +13013,7 @@ components: description: Manual selection of tags making split graph widget static items: $ref: '#/components/schemas/SplitVectorEntry' - maxItems: 100 + maxItems: 500 type: array required: - split_dimensions @@ -13029,10 +13343,12 @@ components: only supporting `http`. enum: - http + - grpc example: http type: string x-enum-varnames: - HTTP + - GRPC SyntheticsAPITest: description: Object containing details about a Synthetic API test. properties: @@ -14483,7 +14799,7 @@ components: - edge.laptop_large - edge.tablet - edge.mobile_small - example: laptop_large + example: chrome.laptop_large type: string x-enum-varnames: - LAPTOP_LARGE @@ -15542,6 +15858,10 @@ components: description: A protobuf JSON descriptor that needs to be gzipped first then base64 encoded. type: string + compressedProtoFile: + description: A protobuf file that needs to be gzipped first then base64 + encoded. + type: string dnsServer: description: DNS server to use for DNS tests. type: string @@ -15551,6 +15871,11 @@ components: maximum: 65535 minimum: 1 type: integer + files: + description: Files to be used as part of the request in the test. + items: + $ref: '#/components/schemas/SyntheticsTestRequestBodyFile' + type: array follow_redirects: description: Specifies whether or not the request follows redirects. type: boolean @@ -15559,6 +15884,8 @@ components: host: description: Host name to perform the test with. type: string + httpVersion: + $ref: '#/components/schemas/SyntheticsTestOptionsHTTPVersion' message: description: Message to send for UDP or WebSocket tests. type: string @@ -15615,6 +15942,32 @@ components: example: https://example.com type: string type: object + SyntheticsTestRequestBodyFile: + description: Object describing a file to be used as part of the request in the + test. + properties: + bucketKey: + description: Bucket key of the file. + type: string + content: + description: Content of the file. + maxLength: 3145728 + type: string + name: + description: Name of the file. + maxLength: 1500 + type: string + size: + description: Size of the file. + format: int64 + maximum: 3145728 + minimum: 1 + type: integer + type: + description: Type of the file. + maxLength: 1500 + type: string + type: object SyntheticsTestRequestBodyType: description: Type of the request body. enum: @@ -15624,6 +15977,8 @@ components: - text/html - application/x-www-form-urlencoded - graphql + - application/octet-stream + - multipart/form-data example: text/plain type: string x-enum-varnames: @@ -15633,6 +15988,8 @@ components: - TEXT_HTML - APPLICATION_X_WWW_FORM_URLENCODED - GRAPHQL + - APPLICATION_OCTET_STREAM + - MULTIPART_FORM_DATA SyntheticsTestRequestCertificate: description: Client certificate to use when performing the test request. properties: @@ -16550,262 +16907,6 @@ components: format: double type: number type: object - UsageAttributionBody: - description: Usage Summary by tag for a given organization. - properties: - month: - description: 'Datetime in ISO-8601 format, UTC, precise to month: [YYYY-MM].' - format: date-time - type: string - org_name: - description: The name of the organization. - type: string - public_id: - description: The organization public ID. - type: string - tag_config_source: - description: The source of the usage attribution tag configuration and the - selected tags in the format `::://////`. - type: string - tags: - $ref: '#/components/schemas/UsageAttributionTagNames' - updated_at: - description: Shows the the most recent hour in the current months for all - organizations for which all usages were calculated. - type: string - values: - $ref: '#/components/schemas/UsageAttributionValues' - type: object - UsageAttributionLimit: - default: 5000 - description: Maximum number of records to be returned. - format: int64 - type: integer - UsageAttributionMetadata: - description: The object containing document metadata. - properties: - aggregates: - $ref: '#/components/schemas/UsageAttributionAggregates' - pagination: - $ref: '#/components/schemas/UsageAttributionPagination' - type: object - UsageAttributionOffset: - default: 0 - description: Number of records to skip before beginning to return. - format: int64 - type: integer - UsageAttributionPagination: - description: The metadata for the current pagination. - properties: - limit: - description: Maximum amount of records to be returned. - format: int64 - type: integer - offset: - description: Records to be skipped before beginning to return. - format: int64 - type: integer - sort_direction: - description: Direction to sort by. - type: string - sort_name: - description: Field to sort by. - type: string - total_number_of_records: - description: Total number of records. - format: int64 - type: integer - type: object - UsageAttributionResponse: - description: Response containing the Usage Summary by tag(s). - properties: - metadata: - $ref: '#/components/schemas/UsageAttributionMetadata' - usage: - description: Get usage summary by tag(s). - items: - $ref: '#/components/schemas/UsageAttributionBody' - type: array - type: object - UsageAttributionSort: - default: custom_timeseries_usage - description: The field to sort by. - enum: - - api_percentage - - snmp_usage - - apm_host_usage - - api_usage - - appsec_usage - - appsec_percentage - - container_usage - - custom_timeseries_percentage - - container_percentage - - apm_host_percentage - - npm_host_percentage - - browser_percentage - - browser_usage - - infra_host_percentage - - snmp_percentage - - npm_host_usage - - infra_host_usage - - custom_timeseries_usage - - lambda_functions_usage - - lambda_functions_percentage - - lambda_invocations_usage - - lambda_invocations_percentage - - estimated_indexed_logs_usage - - estimated_indexed_logs_percentage - - estimated_ingested_logs_usage - - estimated_ingested_logs_percentage - - estimated_indexed_spans_usage - - estimated_indexed_spans_percentage - - estimated_ingested_spans_usage - - estimated_ingested_spans_percentage - - apm_fargate_usage - - apm_fargate_percentage - - appsec_fargate_usage - - appsec_fargate_percentage - - estimated_rum_usage_attribution_usage - - estimated_rum_usage_attribution_percentage - type: string - x-enum-varnames: - - API_PERCENTAGE - - SNMP_USAGE - - APM_HOST_USAGE - - API_USAGE - - APPSEC_USAGE - - APPSEC_PERCENTAGE - - CONTAINER_USAGE - - CUSTOM_TIMESERIES_PERCENTAGE - - CONTAINER_PERCENTAGE - - APM_HOST_PERCENTAGE - - NPM_HOST_PERCENTAGE - - BROWSER_PERCENTAGE - - BROWSER_USAGE - - INFRA_HOST_PERCENTAGE - - SNMP_PERCENTAGE - - NPM_HOST_USAGE - - INFRA_HOST_USAGE - - CUSTOM_TIMESERIES_USAGE - - LAMBDA_FUNCTIONS_USAGE - - LAMBDA_FUNCTIONS_PERCENTAGE - - LAMBDA_INVOCATIONS_USAGE - - LAMBDA_INVOCATIONS_PERCENTAGE - - ESTIMATED_INDEXED_LOGS_USAGE - - ESTIMATED_INDEXED_LOGS_PERCENTAGE - - ESTIMATED_INGESTED_LOGS_USAGE - - ESTIMATED_INGESTED_LOGS_PERCENTAGE - - ESTIMATED_INDEXED_SPANS_USAGE - - ESTIMATED_INDEXED_SPANS_PERCENTAGE - - ESTIMATED_INGESTED_SPANS_USAGE - - ESTIMATED_INGESTED_SPANS_PERCENTAGE - - APM_FARGATE_USAGE - - APM_FARGATE_PERCENTAGE - - APPSEC_FARGATE_USAGE - - APPSEC_FARGATE_PERCENTAGE - - ESTIMATED_RUM_USAGE_ATTRIBUTION_USAGE - - ESTIMATED_RUM_USAGE_ATTRIBUTION_PERCENTAGE - UsageAttributionSupportedMetrics: - description: Supported fields for usage attribution requests (valid requests - contain one or more metrics, or `*` for all). - enum: - - custom_timeseries_usage - - container_usage - - snmp_percentage - - apm_host_usage - - browser_usage - - npm_host_percentage - - infra_host_usage - - custom_timeseries_percentage - - container_percentage - - api_usage - - apm_host_percentage - - infra_host_percentage - - snmp_usage - - browser_percentage - - api_percentage - - npm_host_usage - - lambda_functions_usage - - lambda_functions_percentage - - lambda_invocations_usage - - lambda_invocations_percentage - - fargate_usage - - fargate_percentage - - profiled_host_usage - - profiled_host_percentage - - profiled_container_usage - - profiled_container_percentage - - dbm_hosts_usage - - dbm_hosts_percentage - - dbm_queries_usage - - dbm_queries_percentage - - estimated_indexed_logs_usage - - estimated_indexed_logs_percentage - - estimated_ingested_logs_usage - - estimated_ingested_logs_percentage - - appsec_usage - - appsec_percentage - - estimated_indexed_spans_usage - - estimated_indexed_spans_percentage - - estimated_ingested_spans_usage - - estimated_ingested_spans_percentage - - apm_fargate_usage - - apm_fargate_percentage - - appsec_fargate_usage - - appsec_fargate_percentage - - estimated_rum_usage_attribution_usage - - estimated_rum_usage_attribution_percentage - - '*' - type: string - x-enum-varnames: - - CUSTOM_TIMESERIES_USAGE - - CONTAINER_USAGE - - SNMP_PERCENTAGE - - APM_HOST_USAGE - - BROWSER_USAGE - - NPM_HOST_PERCENTAGE - - INFRA_HOST_USAGE - - CUSTOM_TIMESERIES_PERCENTAGE - - CONTAINER_PERCENTAGE - - API_USAGE - - APM_HOST_PERCENTAGE - - INFRA_HOST_PERCENTAGE - - SNMP_USAGE - - BROWSER_PERCENTAGE - - API_PERCENTAGE - - NPM_HOST_USAGE - - LAMBDA_FUNCTIONS_USAGE - - LAMBDA_FUNCTIONS_PERCENTAGE - - LAMBDA_INVOCATIONS_USAGE - - LAMBDA_INVOCATIONS_PERCENTAGE - - FARGATE_USAGE - - FARGATE_PERCENTAGE - - PROFILED_HOST_USAGE - - PROFILED_HOST_PERCENTAGE - - PROFILED_CONTAINER_USAGE - - PROFILED_CONTAINER_PERCENTAGE - - DBM_HOSTS_USAGE - - DBM_HOSTS_PERCENTAGE - - DBM_QUERIES_USAGE - - DBM_QUERIES_PERCENTAGE - - ESTIMATED_INDEXED_LOGS_USAGE - - ESTIMATED_INDEXED_LOGS_PERCENTAGE - - ESTIMATED_INGESTED_LOGS_USAGE - - ESTIMATED_INGESTED_LOGS_PERCENTAGE - - APPSEC_USAGE - - APPSEC_PERCENTAGE - - ESTIMATED_INDEXED_SPANS_USAGE - - ESTIMATED_INDEXED_SPANS_PERCENTAGE - - ESTIMATED_INGESTED_SPANS_USAGE - - ESTIMATED_INGESTED_SPANS_PERCENTAGE - - APM_FARGATE_USAGE - - APM_FARGATE_PERCENTAGE - - APPSEC_FARGATE_USAGE - - APPSEC_FARGATE_PERCENTAGE - - ESTIMATED_RUM_USAGE_ATTRIBUTION_USAGE - - ESTIMATED_RUM_USAGE_ATTRIBUTION_PERCENTAGE - - ALL UsageAttributionTagNames: additionalProperties: description: 'A list of values that are associated with each tag key. @@ -16835,225 +16936,6 @@ components: In this scenario the API returns the total usage, not broken down by tags.' nullable: true type: object - UsageAttributionValues: - description: Fields in Usage Summary by tag(s). - properties: - api_percentage: - description: The percentage of synthetic API test usage by tag(s). - format: double - type: number - api_usage: - description: The synthetic API test usage by tag(s). - format: double - type: number - apm_fargate_percentage: - description: The percentage of APM ECS Fargate task usage by tag(s). - format: double - type: number - apm_fargate_usage: - description: The APM ECS Fargate task usage by tag(s). - format: double - type: number - apm_host_percentage: - description: The percentage of APM host usage by tag(s). - format: double - type: number - apm_host_usage: - description: The APM host usage by tag(s). - format: double - type: number - appsec_fargate_percentage: - description: The percentage of Application Security Monitoring ECS Fargate - task usage by tag(s). - format: double - type: number - appsec_fargate_usage: - description: The Application Security Monitoring ECS Fargate task usage - by tag(s). - format: double - type: number - appsec_percentage: - description: The percentage of Application Security Monitoring host usage - by tag(s). - format: double - type: number - appsec_usage: - description: The Application Security Monitoring host usage by tag(s). - format: double - type: number - browser_percentage: - description: The percentage of synthetic browser test usage by tag(s). - format: double - type: number - browser_usage: - description: The synthetic browser test usage by tag(s). - format: double - type: number - container_percentage: - description: The percentage of container usage by tag(s). - format: double - type: number - container_usage: - description: The container usage by tag(s). - format: double - type: number - cspm_container_percentage: - description: The percentage of Cloud Security Management Pro container usage - by tag(s) - format: double - type: number - cspm_container_usage: - description: The Cloud Security Management Pro container usage by tag(s) - format: double - type: number - cspm_host_percentage: - description: The percentage of Cloud Security Management Pro host usage - by tag(s) - format: double - type: number - cspm_host_usage: - description: The Cloud Security Management Pro host usage by tag(s) - format: double - type: number - custom_timeseries_percentage: - description: The percentage of custom metrics usage by tag(s). - format: double - type: number - custom_timeseries_usage: - description: The custom metrics usage by tag(s). - format: double - type: number - cws_container_percentage: - description: The percentage of Cloud Workload Security container usage by - tag(s) - format: double - type: number - cws_container_usage: - description: The Cloud Workload Security container usage by tag(s) - format: double - type: number - cws_host_percentage: - description: The percentage of Cloud Workload Security host usage by tag(s) - format: double - type: number - cws_host_usage: - description: The Cloud Workload Security host usage by tag(s) - format: double - type: number - dbm_hosts_percentage: - description: The percentage of Database Monitoring host usage by tag(s). - format: double - type: number - dbm_hosts_usage: - description: The Database Monitoring host usage by tag(s). - format: double - type: number - dbm_queries_percentage: - description: The percentage of Database Monitoring normalized queries usage - by tag(s). - format: double - type: number - dbm_queries_usage: - description: The Database Monitoring normalized queries usage by tag(s). - format: double - type: number - estimated_indexed_logs_percentage: - description: The percentage of estimated live indexed logs usage by tag(s). - format: double - type: number - estimated_indexed_logs_usage: - description: The estimated live indexed logs usage by tag(s). - format: double - type: number - estimated_indexed_spans_percentage: - description: The percentage of estimated indexed spans usage by tag(s). - format: double - type: number - estimated_indexed_spans_usage: - description: The estimated indexed spans usage by tag(s). - format: double - type: number - estimated_ingested_logs_percentage: - description: The percentage of estimated live ingested logs usage by tag(s). - format: double - type: number - estimated_ingested_logs_usage: - description: The estimated live ingested logs usage by tag(s). - format: double - type: number - estimated_ingested_spans_percentage: - description: The percentage of estimated ingested spans usage by tag(s). - format: double - type: number - estimated_ingested_spans_usage: - description: The estimated ingested spans usage by tag(s). - format: double - type: number - estimated_rum_sessions_percentage: - description: The percentage of estimated rum sessions usage by tag(s). - format: double - type: number - estimated_rum_sessions_usage: - description: The estimated rum sessions usage by tag(s). - format: double - type: number - infra_host_percentage: - description: The percentage of infrastructure host usage by tag(s). - format: double - type: number - infra_host_usage: - description: The infrastructure host usage by tag(s). - format: double - type: number - lambda_functions_percentage: - description: The percentage of Lambda function usage by tag(s). - format: double - type: number - lambda_functions_usage: - description: The Lambda function usage by tag(s). - format: double - type: number - lambda_invocations_percentage: - description: The percentage of Lambda invocation usage by tag(s). - format: double - type: number - lambda_invocations_usage: - description: The Lambda invocation usage by tag(s). - format: double - type: number - npm_host_percentage: - description: The percentage of network host usage by tag(s). - format: double - type: number - npm_host_usage: - description: The network host usage by tag(s). - format: double - type: number - profiled_container_percentage: - description: The percentage of profiled containers usage by tag(s). - format: double - type: number - profiled_container_usage: - description: The profiled container usage by tag(s). - format: double - type: number - profiled_hosts_percentage: - description: The percentage of profiled hosts usage by tag(s). - format: double - type: number - profiled_hosts_usage: - description: The profiled host usage by tag(s). - format: double - type: number - snmp_percentage: - description: The percentage of network device usage by tag(s). - format: double - type: number - snmp_usage: - description: The network device usage by tag(s). - format: double - type: number - type: object UsageAuditLogsHour: description: Audit logs usage for a given organization for a given hour. properties: @@ -17879,7 +17761,7 @@ components: type: array type: object UsageLambdaHour: - description: 'Number of lambda functions and sum of the invocations of all lambda + description: 'Number of Lambda functions and sum of the invocations of all Lambda functions for each hour for a given organization.' @@ -17907,8 +17789,8 @@ components: type: string type: object UsageLambdaResponse: - description: 'Response containing the number of lambda functions and sum of - the invocations of all lambda functions + description: 'Response containing the number of Lambda functions and sum of + the invocations of all Lambda functions for each hour for a given organization.' properties: @@ -18495,6 +18377,11 @@ components: over all hours in the current date all organizations. format: int64 type: integer + apm_devsecops_host_top99p: + description: Shows the 99th percentile of all APM DevSecOps hosts over all + hours in the current date for the given org. + format: int64 + type: integer apm_fargate_count_avg: description: Shows the average of all APM ECS Fargate tasks over all hours in the current date for all organizations. @@ -18510,6 +18397,11 @@ components: Fargate tasks over all hours in the current date for all organizations. format: int64 type: integer + asm_serverless_sum: + description: Shows the sum of all Application Security Monitoring Serverless + invocations over all hours in the current date for all organizations. + format: int64 + type: integer audit_logs_lines_indexed_sum: deprecated: true description: Shows the sum of audit logs lines indexed over all hours in @@ -18600,6 +18492,11 @@ components: given date and given organization. format: int64 type: integer + cloud_cost_management_gcp_host_count_avg: + description: Host count average of Cloud Cost Management for GCP for the + given date and given organization. + format: int64 + type: integer cloud_cost_management_host_count_avg: description: Host count average of Cloud Cost Management for all cloud providers for the given date and given organization. @@ -18747,6 +18644,11 @@ components: over all hours in the current date for all organizations. format: int64 type: integer + error_tracking_events_sum: + description: Shows the sum of all Error Tracking events over all hours in + the current date for the given org. + format: int64 + type: integer fargate_tasks_count_avg: description: Shows the high-watermark of all Fargate tasks over all hours in the current date for all organizations. @@ -18757,6 +18659,31 @@ components: current date for all organizations. format: int64 type: integer + flex_logs_compute_large_avg: + description: Shows the average number of Flex Logs Compute Large Instances + over all hours in the current date for the given org. + format: int64 + type: integer + flex_logs_compute_medium_avg: + description: Shows the average number of Flex Logs Compute Medium Instances + over all hours in the current date for the given org. + format: int64 + type: integer + flex_logs_compute_small_avg: + description: Shows the average number of Flex Logs Compute Small Instances + over all hours in the current date for the given org. + format: int64 + type: integer + flex_logs_compute_xsmall_avg: + description: Shows the average number of Flex Logs Compute Extra Small Instances + over all hours in the current date for the given org. + format: int64 + type: integer + flex_stored_logs_avg: + description: Shows the average of all Flex Stored Logs over all hours in + the current date for the given org. + format: int64 + type: integer forwarding_events_bytes_sum: description: Shows the sum of all log bytes forwarded over all hours in the current date for all organizations. @@ -19020,9 +18947,14 @@ components: over all hours in the current date for the given org. format: int64 type: integer + apm_devsecops_host_top99p: + description: Shows the 99th percentile of all APM DevSecOps hosts over all + hours in the current date for the given org. + format: int64 + type: integer apm_fargate_count_avg: description: Shows the average of all APM ECS Fargate tasks over all hours - in the current months for the given org. + in the current month for the given org. format: int64 type: integer apm_host_top99p: @@ -19032,7 +18964,12 @@ components: type: integer appsec_fargate_count_avg: description: Shows the average of all Application Security Monitoring ECS - Fargate tasks over all hours in the current months for the given org. + Fargate tasks over all hours in the current month for the given org. + format: int64 + type: integer + asm_serverless_sum: + description: Shows the sum of all Application Security Monitoring Serverless + invocations over all hours in the current month for the given org. format: int64 type: integer audit_logs_lines_indexed_sum: @@ -19126,6 +19063,11 @@ components: given date and given org. format: int64 type: integer + cloud_cost_management_gcp_host_count_avg: + description: Host count average of Cloud Cost Management for GCP for the + given date and given org. + format: int64 + type: integer cloud_cost_management_host_count_avg: description: Host count average of Cloud Cost Management for all cloud providers for the given date and given org. @@ -19279,6 +19221,11 @@ components: queries over all hours in the current month for the given org. format: int64 type: integer + error_tracking_events_sum: + description: Shows the sum of all Error Tracking events over all hours in + the current date for the given org. + format: int64 + type: integer fargate_tasks_count_avg: description: The average task count for Fargate. format: int64 @@ -19288,6 +19235,31 @@ components: in the current date for the given org. format: int64 type: integer + flex_logs_compute_large_avg: + description: Shows the average number of Flex Logs Compute Large Instances + over all hours in the current date for the given org. + format: int64 + type: integer + flex_logs_compute_medium_avg: + description: Shows the average number of Flex Logs Compute Medium Instances + over all hours in the current date for the given org. + format: int64 + type: integer + flex_logs_compute_small_avg: + description: Shows the average number of Flex Logs Compute Small Instances + over all hours in the current date for the given org. + format: int64 + type: integer + flex_logs_compute_xsmall_avg: + description: Shows the average number of Flex Logs Compute Extra Small Instances + over all hours in the current date for the given org. + format: int64 + type: integer + flex_stored_logs_avg: + description: Shows the average of all Flex Stored Logs over all hours in + the current date for the given org. + format: int64 + type: integer forwarding_events_bytes_sum: description: Shows the sum of all log bytes forwarded over all hours in the current date for the given org. @@ -19550,33 +19522,43 @@ components: properties: agent_host_top99p_sum: description: Shows the 99th percentile of all agent hosts over all hours - in the current months for all organizations. + in the current month for all organizations. format: int64 type: integer apm_azure_app_service_host_top99p_sum: description: Shows the 99th percentile of all Azure app services using APM - over all hours in the current months all organizations. + over all hours in the current month all organizations. + format: int64 + type: integer + apm_devsecops_host_top99p_sum: + description: Shows the 99th percentile of all APM DevSecOps hosts over all + hours in the current month for all organizations. format: int64 type: integer apm_fargate_count_avg_sum: description: Shows the average of all APM ECS Fargate tasks over all hours - in the current months for all organizations. + in the current month for all organizations. format: int64 type: integer apm_host_top99p_sum: description: Shows the 99th percentile of all distinct APM hosts over all - hours in the current months for all organizations. + hours in the current month for all organizations. format: int64 type: integer appsec_fargate_count_avg_sum: description: Shows the average of all Application Security Monitoring ECS - Fargate tasks over all hours in the current months for all organizations. + Fargate tasks over all hours in the current month for all organizations. + format: int64 + type: integer + asm_serverless_agg_sum: + description: Shows the sum of all Application Security Monitoring Serverless + invocations over all hours in the current months for all organizations. format: int64 type: integer audit_logs_lines_indexed_agg_sum: deprecated: true description: Shows the sum of all audit logs lines indexed over all hours - in the current months for all organizations. + in the current month for all organizations. format: int64 type: integer audit_trail_enabled_hwm_sum: @@ -19586,77 +19568,77 @@ components: type: integer avg_profiled_fargate_tasks_sum: description: Shows the average of all profiled Fargate tasks over all hours - in the current months for all organizations. + in the current month for all organizations. format: int64 type: integer aws_host_top99p_sum: description: Shows the 99th percentile of all AWS hosts over all hours in - the current months for all organizations. + the current month for all organizations. format: int64 type: integer aws_lambda_func_count: description: Shows the average of the number of functions that executed - 1 or more times each hour in the current months for all organizations. + 1 or more times each hour in the current month for all organizations. format: int64 type: integer aws_lambda_invocations_sum: description: Shows the sum of all AWS Lambda invocations over all hours - in the current months for all organizations. + in the current month for all organizations. format: int64 type: integer azure_app_service_top99p_sum: description: Shows the 99th percentile of all Azure app services over all - hours in the current months for all organizations. + hours in the current month for all organizations. format: int64 type: integer azure_host_top99p_sum: description: Shows the 99th percentile of all Azure hosts over all hours - in the current months for all organizations. + in the current month for all organizations. format: int64 type: integer billable_ingested_bytes_agg_sum: description: Shows the sum of all log bytes ingested over all hours in the - current months for all organizations. + current month for all organizations. format: int64 type: integer browser_rum_lite_session_count_agg_sum: description: Shows the sum of all browser lite sessions over all hours in - the current months for all organizations. + the current month for all organizations. format: int64 type: integer browser_rum_replay_session_count_agg_sum: description: Shows the sum of all browser replay sessions over all hours - in the current months for all organizations. + in the current month for all organizations. format: int64 type: integer browser_rum_units_agg_sum: description: Shows the sum of all browser RUM units over all hours in the - current months for all organizations. + current month for all organizations. format: int64 type: integer ci_pipeline_indexed_spans_agg_sum: description: Shows the sum of all CI pipeline indexed spans over all hours - in the current months for all organizations. + in the current month for all organizations. format: int64 type: integer ci_test_indexed_spans_agg_sum: description: Shows the sum of all CI test indexed spans over all hours in - the current months for all organizations. + the current month for all organizations. format: int64 type: integer ci_visibility_itr_committers_hwm_sum: description: Shows the high-water mark of all CI visibility intelligent - test runner committers over all hours in the current months for all organizations. + test runner committers over all hours in the current month for all organizations. format: int64 type: integer ci_visibility_pipeline_committers_hwm_sum: description: Shows the high-water mark of all CI visibility pipeline committers - over all hours in the current months for all organizations. + over all hours in the current month for all organizations. format: int64 type: integer ci_visibility_test_committers_hwm_sum: description: Shows the high-water mark of all CI visibility test committers - over all hours in the current months for all organizations. + over all hours in the current month for all organizations. format: int64 type: integer cloud_cost_management_aws_host_count_avg_sum: @@ -19669,6 +19651,11 @@ components: Azure. format: int64 type: integer + cloud_cost_management_gcp_host_count_avg_sum: + description: Sum of the host count average for Cloud Cost Management for + GCP. + format: int64 + type: integer cloud_cost_management_host_count_avg_sum: description: Sum of the host count average for Cloud Cost Management for all cloud providers. @@ -19676,12 +19663,12 @@ components: type: integer cloud_siem_events_agg_sum: description: Shows the sum of all Cloud Security Information and Event Management - events over all hours in the current months for all organizations. + events over all hours in the current month for all organizations. format: int64 type: integer container_avg_sum: description: Shows the average of all distinct containers over all hours - in the current months for all organizations. + in the current month for all organizations. format: int64 type: integer container_excl_agent_avg_sum: @@ -19691,123 +19678,123 @@ components: type: integer container_hwm_sum: description: Shows the sum of the high-water marks of all distinct containers - over all hours in the current months for all organizations. + over all hours in the current month for all organizations. format: int64 type: integer csm_container_enterprise_compliance_count_agg_sum: description: Shows the sum of all Cloud Security Management Enterprise compliance - containers over all hours in the current months for all organizations. + containers over all hours in the current month for all organizations. format: int64 type: integer csm_container_enterprise_cws_count_agg_sum: description: Shows the sum of all Cloud Security Management Enterprise Cloud - Workload Security containers over all hours in the current months for - all organizations. + Workload Security containers over all hours in the current month for all + organizations. format: int64 type: integer csm_container_enterprise_total_count_agg_sum: description: Shows the sum of all Cloud Security Management Enterprise containers - over all hours in the current months for all organizations. + over all hours in the current month for all organizations. format: int64 type: integer csm_host_enterprise_aas_host_count_top99p_sum: description: Shows the 99th percentile of all Cloud Security Management - Enterprise Azure app services hosts over all hours in the current months + Enterprise Azure app services hosts over all hours in the current month for all organizations. format: int64 type: integer csm_host_enterprise_aws_host_count_top99p_sum: description: Shows the 99th percentile of all Cloud Security Management - Enterprise AWS hosts over all hours in the current months for all organizations. + Enterprise AWS hosts over all hours in the current month for all organizations. format: int64 type: integer csm_host_enterprise_azure_host_count_top99p_sum: description: Shows the 99th percentile of all Cloud Security Management - Enterprise Azure hosts over all hours in the current months for all organizations. + Enterprise Azure hosts over all hours in the current month for all organizations. format: int64 type: integer csm_host_enterprise_compliance_host_count_top99p_sum: description: Shows the 99th percentile of all Cloud Security Management - Enterprise compliance hosts over all hours in the current months for all + Enterprise compliance hosts over all hours in the current month for all organizations. format: int64 type: integer csm_host_enterprise_cws_host_count_top99p_sum: description: Shows the 99th percentile of all Cloud Security Management Enterprise Cloud Workload Security hosts over all hours in the current - months for all organizations. + month for all organizations. format: int64 type: integer csm_host_enterprise_gcp_host_count_top99p_sum: description: Shows the 99th percentile of all Cloud Security Management - Enterprise GCP hosts over all hours in the current months for all organizations. + Enterprise GCP hosts over all hours in the current month for all organizations. format: int64 type: integer csm_host_enterprise_total_host_count_top99p_sum: description: Shows the 99th percentile of all Cloud Security Management - Enterprise hosts over all hours in the current months for all organizations. + Enterprise hosts over all hours in the current month for all organizations. format: int64 type: integer cspm_aas_host_top99p_sum: description: Shows the 99th percentile of all Cloud Security Management - Pro Azure app services hosts over all hours in the current months for - all organizations. + Pro Azure app services hosts over all hours in the current month for all + organizations. format: int64 type: integer cspm_aws_host_top99p_sum: description: Shows the 99th percentile of all Cloud Security Management - Pro AWS hosts over all hours in the current months for all organizations. + Pro AWS hosts over all hours in the current month for all organizations. format: int64 type: integer cspm_azure_host_top99p_sum: description: Shows the 99th percentile of all Cloud Security Management - Pro Azure hosts over all hours in the current months for all organizations. + Pro Azure hosts over all hours in the current month for all organizations. format: int64 type: integer cspm_container_avg_sum: description: Shows the average number of Cloud Security Management Pro containers - over all hours in the current months for all organizations. + over all hours in the current month for all organizations. format: int64 type: integer cspm_container_hwm_sum: description: Shows the sum of the the high-water marks of Cloud Security - Management Pro containers over all hours in the current months for all + Management Pro containers over all hours in the current month for all organizations. format: int64 type: integer cspm_gcp_host_top99p_sum: description: Shows the 99th percentile of all Cloud Security Management - Pro GCP hosts over all hours in the current months for all organizations. + Pro GCP hosts over all hours in the current month for all organizations. format: int64 type: integer cspm_host_top99p_sum: description: Shows the 99th percentile of all Cloud Security Management - Pro hosts over all hours in the current months for all organizations. + Pro hosts over all hours in the current month for all organizations. format: int64 type: integer custom_historical_ts_sum: description: Shows the average number of distinct historical custom metrics - over all hours in the current months for all organizations. + over all hours in the current month for all organizations. format: int64 type: integer custom_live_ts_sum: description: Shows the average number of distinct live custom metrics over - all hours in the current months for all organizations. + all hours in the current month for all organizations. format: int64 type: integer custom_ts_sum: description: Shows the average number of distinct custom metrics over all - hours in the current months for all organizations. + hours in the current month for all organizations. format: int64 type: integer cws_containers_avg_sum: description: Shows the average of all distinct Cloud Workload Security containers - over all hours in the current months for all organizations. + over all hours in the current month for all organizations. format: int64 type: integer cws_host_top99p_sum: description: Shows the 99th percentile of all Cloud Workload Security hosts - over all hours in the current months for all organizations. + over all hours in the current month for all organizations. format: int64 type: integer dbm_host_top99p_sum: @@ -19821,80 +19808,109 @@ components: format: int64 type: integer end_date: - description: Shows the last date of usage in the current months for all - organizations. + description: Shows the last date of usage in the current month for all organizations. format: date-time type: string + error_tracking_events_agg_sum: + description: Shows the sum of all Error Tracking events over all hours in + the current months for all organizations. + format: int64 + type: integer fargate_tasks_count_avg_sum: description: Shows the average of all Fargate tasks over all hours in the - current months for all organizations. + current month for all organizations. format: int64 type: integer fargate_tasks_count_hwm_sum: description: Shows the sum of the high-water marks of all Fargate tasks + over all hours in the current month for all organizations. + format: int64 + type: integer + flex_logs_compute_large_avg_sum: + description: Shows the average number of Flex Logs Compute Large Instances + over all hours in the current months for all organizations. + format: int64 + type: integer + flex_logs_compute_medium_avg_sum: + description: Shows the average number of Flex Logs Compute Medium Instances + over all hours in the current months for all organizations. + format: int64 + type: integer + flex_logs_compute_small_avg_sum: + description: Shows the average number of Flex Logs Compute Small Instances + over all hours in the current months for all organizations. + format: int64 + type: integer + flex_logs_compute_xsmall_avg_sum: + description: Shows the average number of Flex Logs Compute Extra Small Instances over all hours in the current months for all organizations. format: int64 type: integer + flex_stored_logs_avg_sum: + description: Shows the average of all Flex Stored Logs over all hours in + the current months for all organizations. + format: int64 + type: integer forwarding_events_bytes_agg_sum: description: Shows the sum of all logs forwarding bytes over all hours in - the current months for all organizations (data available as of April 1, + the current month for all organizations (data available as of April 1, 2023) format: int64 type: integer gcp_host_top99p_sum: description: Shows the 99th percentile of all GCP hosts over all hours in - the current months for all organizations. + the current month for all organizations. format: int64 type: integer heroku_host_top99p_sum: description: Shows the 99th percentile of all Heroku dynos over all hours - in the current months for all organizations. + in the current month for all organizations. format: int64 type: integer incident_management_monthly_active_users_hwm_sum: description: Shows sum of the the high-water marks of incident management - monthly active users in the current months for all organizations. + monthly active users in the current month for all organizations. format: int64 type: integer indexed_events_count_agg_sum: description: Shows the sum of all log events indexed over all hours in the - current months for all organizations. + current month for all organizations. format: int64 type: integer infra_host_top99p_sum: description: Shows the 99th percentile of all distinct infrastructure hosts - over all hours in the current months for all organizations. + over all hours in the current month for all organizations. format: int64 type: integer ingested_events_bytes_agg_sum: description: Shows the sum of all log bytes ingested over all hours in the - current months for all organizations. + current month for all organizations. format: int64 type: integer iot_device_agg_sum: description: Shows the sum of all IoT devices over all hours in the current - months for all organizations. + month for all organizations. format: int64 type: integer iot_device_top99p_sum: description: Shows the 99th percentile of all IoT devices over all hours - in the current months of all organizations. + in the current month of all organizations. format: int64 type: integer last_updated: - description: Shows the the most recent hour in the current months for all + description: Shows the the most recent hour in the current month for all organizations for which all usages were calculated. format: date-time type: string live_indexed_events_agg_sum: description: Shows the sum of all live logs indexed over all hours in the - current months for all organizations (data available as of December 1, + current month for all organizations (data available as of December 1, 2020). format: int64 type: integer live_ingested_bytes_agg_sum: description: Shows the sum of all live logs bytes ingested over all hours - in the current months for all organizations (data available as of December + in the current month for all organizations (data available as of December 1, 2020). format: int64 type: integer @@ -19902,105 +19918,105 @@ components: $ref: '#/components/schemas/LogsByRetention' mobile_rum_lite_session_count_agg_sum: description: Shows the sum of all mobile lite sessions over all hours in - the current months for all organizations. + the current month for all organizations. format: int64 type: integer mobile_rum_session_count_agg_sum: description: Shows the sum of all mobile RUM Sessions over all hours in - the current months for all organizations. + the current month for all organizations. format: int64 type: integer mobile_rum_session_count_android_agg_sum: description: Shows the sum of all mobile RUM Sessions on Android over all - hours in the current months for all organizations. + hours in the current month for all organizations. format: int64 type: integer mobile_rum_session_count_flutter_agg_sum: description: Shows the sum of all mobile RUM Sessions on Flutter over all - hours in the current months for all organizations. + hours in the current month for all organizations. format: int64 type: integer mobile_rum_session_count_ios_agg_sum: description: Shows the sum of all mobile RUM Sessions on iOS over all hours - in the current months for all organizations. + in the current month for all organizations. format: int64 type: integer mobile_rum_session_count_reactnative_agg_sum: description: Shows the sum of all mobile RUM Sessions on React Native over - all hours in the current months for all organizations. + all hours in the current month for all organizations. format: int64 type: integer mobile_rum_session_count_roku_agg_sum: description: Shows the sum of all mobile RUM Sessions on Roku over all hours - in the current months for all organizations. + in the current month for all organizations. format: int64 type: integer mobile_rum_units_agg_sum: description: Shows the sum of all mobile RUM units over all hours in the - current months for all organizations. + current month for all organizations. format: int64 type: integer ndm_netflow_events_agg_sum: description: Shows the sum of all Network Device Monitoring NetFlow events - over all hours in the current months for all organizations. + over all hours in the current month for all organizations. format: int64 type: integer netflow_indexed_events_count_agg_sum: description: Shows the sum of all Network flows indexed over all hours in - the current months for all organizations. + the current month for all organizations. format: int64 type: integer npm_host_top99p_sum: description: Shows the 99th percentile of all distinct Networks hosts over - all hours in the current months for all organizations. + all hours in the current month for all organizations. format: int64 type: integer observability_pipelines_bytes_processed_agg_sum: description: Sum of all observability pipelines bytes processed over all - hours in the current months for all organizations. + hours in the current month for all organizations. format: int64 type: integer online_archive_events_count_agg_sum: description: Sum of all online archived events over all hours in the current - months for all organizations. + month for all organizations. format: int64 type: integer opentelemetry_apm_host_top99p_sum: description: Shows the 99th percentile of APM hosts reported by the Datadog exporter for the OpenTelemetry Collector over all hours in the current - months for all organizations. + month for all organizations. format: int64 type: integer opentelemetry_host_top99p_sum: description: Shows the 99th percentile of all hosts reported by the Datadog exporter for the OpenTelemetry Collector over all hours in the current - months for all organizations. + month for all organizations. format: int64 type: integer profiling_aas_count_top99p_sum: description: Shows the 99th percentile of all profiled Azure app services - over all hours in the current months for all organizations. + over all hours in the current month for all organizations. format: int64 type: integer profiling_container_agent_count_avg: description: Shows the average number of profiled containers over all hours - in the current months for all organizations. + in the current month for all organizations. format: int64 type: integer profiling_host_count_top99p_sum: description: Shows the 99th percentile of all profiled hosts over all hours - in the current months for all organizations. + in the current month for all organizations. format: int64 type: integer rehydrated_indexed_events_agg_sum: description: Shows the sum of all rehydrated logs indexed over all hours - in the current months for all organizations (data available as of December + in the current month for all organizations (data available as of December 1, 2020). format: int64 type: integer rehydrated_ingested_bytes_agg_sum: description: Shows the sum of all rehydrated logs bytes ingested over all - hours in the current months for all organizations (data available as of + hours in the current month for all organizations (data available as of December 1, 2020). format: int64 type: integer @@ -20011,27 +20027,27 @@ components: type: integer rum_session_count_agg_sum: description: Shows the sum of all browser RUM Lite Sessions over all hours - in the current months for all organizations. + in the current month for all organizations. format: int64 type: integer rum_total_session_count_agg_sum: description: Shows the sum of RUM Sessions (browser and mobile) over all - hours in the current months for all organizations. + hours in the current month for all organizations. format: int64 type: integer rum_units_agg_sum: description: Shows the sum of all browser and mobile RUM units over all - hours in the current months for all organizations. + hours in the current month for all organizations. format: int64 type: integer sds_apm_scanned_bytes_sum: description: Sum of all APM bytes scanned with sensitive data scanner in - the current months for all organizations. + the current month for all organizations. format: int64 type: integer sds_events_scanned_bytes_sum: description: Sum of all event stream events bytes scanned with sensitive - data scanner in the current months for all organizations. + data scanner in the current month for all organizations. format: int64 type: integer sds_logs_scanned_bytes_sum: @@ -20041,7 +20057,7 @@ components: type: integer sds_rum_scanned_bytes_sum: description: Sum of all RUM bytes scanned with sensitive data scanner in - the current months for all organizations. + the current month for all organizations. format: int64 type: integer sds_total_scanned_bytes_sum: @@ -20052,37 +20068,37 @@ components: type: integer serverless_apps_azure_count_avg_sum: description: Sum of the average number of Serverless Apps for Azure in the - current months for all organizations. + current month for all organizations. format: int64 type: integer serverless_apps_google_count_avg_sum: description: Sum of the average number of Serverless Apps for Google Cloud - in the current months for all organizations. + in the current month for all organizations. format: int64 type: integer serverless_apps_total_count_avg_sum: description: Sum of the average number of Serverless Apps for Azure and - Google Cloud in the current months for all organizations. + Google Cloud in the current month for all organizations. format: int64 type: integer start_date: - description: Shows the first date of usage in the current months for all + description: Shows the first date of usage in the current month for all organizations. format: date-time type: string synthetics_browser_check_calls_count_agg_sum: description: Shows the sum of all Synthetic browser tests over all hours - in the current months for all organizations. + in the current month for all organizations. format: int64 type: integer synthetics_check_calls_count_agg_sum: description: Shows the sum of all Synthetic API tests over all hours in - the current months for all organizations. + the current month for all organizations. format: int64 type: integer synthetics_mobile_test_runs_agg_sum: description: Shows the sum of Synthetic mobile application tests over all - hours in the current months for all organizations. + hours in the current month for all organizations. format: int64 type: integer synthetics_parallel_testing_max_slots_hwm_sum: @@ -20092,17 +20108,17 @@ components: type: integer trace_search_indexed_events_count_agg_sum: description: Shows the sum of all Indexed Spans indexed over all hours in - the current months for all organizations. + the current month for all organizations. format: int64 type: integer twol_ingested_events_bytes_agg_sum: description: Shows the sum of all ingested APM span bytes over all hours - in the current months for all organizations. + in the current month for all organizations. format: int64 type: integer universal_service_monitoring_host_top99p_sum: description: Shows the 99th percentile of all Universal Service Monitoring - hosts over all hours in the current months for all organizations. + hosts over all hours in the current month for all organizations. format: int64 type: integer usage: @@ -20112,17 +20128,17 @@ components: type: array vsphere_host_top99p_sum: description: Shows the 99th percentile of all vSphere hosts over all hours - in the current months for all organizations. + in the current month for all organizations. format: int64 type: integer vuln_management_host_count_top99p_sum: description: Shows the 99th percentile of all Application Vulnerability - Management hosts over all hours in the current months for all organizations. + Management hosts over all hours in the current month for all organizations. format: int64 type: integer workflow_executions_usage_agg_sum: description: Sum of all workflows executed over all hours in the current - months for all organizations. + month for all organizations. format: int64 type: integer type: object @@ -26371,7 +26387,7 @@ paths: **Notes**: - Synthetic monitors are created through the Synthetics API. See the [Synthetics - API] (https://docs.datadoghq.com/api/latest/synthetics/) documentation for + API](https://docs.datadoghq.com/api/latest/synthetics/) documentation for more information. - Log monitors require an unscoped App Key. @@ -26678,10 +26694,7 @@ paths: - `operator` `<`, `<=`, `>`, `>=`, `==`, or `!=`. - - `#` an integer or decimal number used to set the threshold. - - - **NOTE** Database Monitoring monitors are in alpha on US1.' + - `#` an integer or decimal number used to set the threshold.' operationId: CreateMonitor requestBody: content: @@ -30753,10 +30766,11 @@ paths: x-codegen-request-body-name: body /api/v1/usage/analyzed_logs: get: + deprecated: true description: 'Get hourly usage for analyzed logs (Security Monitoring). - **Note:** hourly usage data for all products is now available in the [Get - hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). + **Note:** This endpoint has been deprecated. Hourly usage data for all products + is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). Refer to [Migrating from the V1 Hourly Usage APIs to V2](https://docs.datadoghq.com/account_management/guide/hourly-usage-migration/) for the associated migration guide.' operationId: GetUsageAnalyzedLogs @@ -30812,100 +30826,6 @@ paths: summary: Get hourly usage for analyzed logs tags: - Usage Metering - /api/v1/usage/attribution: - get: - deprecated: true - description: 'Get usage attribution. - - **Note:** This endpoint will be fully deprecated on December 1, 2022. - - Refer to [Migrating from v1 to v2 of the Usage Attribution API](https://docs.datadoghq.com/account_management/guide/usage-attribution-migration/) - for the associated migration guide.' - operationId: GetUsageAttribution - parameters: - - description: 'Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` - for usage beginning in this month. - - Maximum of 15 months ago.' - in: query - name: start_month - required: true - schema: - format: date-time - type: string - - description: Comma-separated list of usage types to return, or `*` for all - usage types. - in: query - name: fields - required: true - schema: - $ref: '#/components/schemas/UsageAttributionSupportedMetrics' - - description: 'Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` - for usage ending this month.' - in: query - name: end_month - required: false - schema: - format: date-time - type: string - - description: 'The direction to sort by: `[desc, asc]`.' - in: query - name: sort_direction - required: false - schema: - $ref: '#/components/schemas/UsageSortDirection' - - description: The field to sort by. - in: query - name: sort_name - required: false - schema: - $ref: '#/components/schemas/UsageAttributionSort' - - description: Include child org usage in the response. Defaults to false. - in: query - name: include_descendants - required: false - schema: - default: false - type: boolean - - description: Number of records to skip before beginning to return. - in: query - name: offset - required: false - schema: - $ref: '#/components/schemas/UsageAttributionOffset' - - description: Maximum number of records to be returned. - in: query - name: limit - required: false - schema: - $ref: '#/components/schemas/UsageAttributionLimit' - responses: - '200': - content: - application/json;datetime-format=rfc3339: - schema: - $ref: '#/components/schemas/UsageAttributionResponse' - description: OK - '403': - content: - application/json;datetime-format=rfc3339: - schema: - $ref: '#/components/schemas/APIErrorResponse' - description: Forbidden - User is not authorized - '429': - content: - application/json;datetime-format=rfc3339: - schema: - $ref: '#/components/schemas/APIErrorResponse' - description: Too many requests - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - usage_read - summary: Get usage attribution - tags: - - Usage Metering /api/v1/usage/audit_logs: get: deprecated: true @@ -30967,10 +30887,11 @@ paths: - Usage Metering /api/v1/usage/aws_lambda: get: - description: 'Get hourly usage for lambda. + deprecated: true + description: 'Get hourly usage for Lambda. - **Note:** hourly usage data for all products is now available in the [Get - hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). + **Note:** This endpoint has been deprecated. Hourly usage data for all products + is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). Refer to [Migrating from the V1 Hourly Usage APIs to V2](https://docs.datadoghq.com/account_management/guide/hourly-usage-migration/) for the associated migration guide.' operationId: GetUsageLambda @@ -31021,7 +30942,7 @@ paths: appKeyAuth: [] - AuthZ: - usage_read - summary: Get hourly usage for lambda + summary: Get hourly usage for Lambda tags: - Usage Metering /api/v1/usage/billable-summary: @@ -31072,10 +30993,11 @@ paths: - Usage Metering /api/v1/usage/ci-app: get: + deprecated: true description: 'Get hourly usage for CI visibility (tests, pipeline, and spans). - **Note:** hourly usage data for all products is now available in the [Get - hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). + **Note:** This endpoint has been deprecated. Hourly usage data for all products + is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). Refer to [Migrating from the V1 Hourly Usage APIs to V2](https://docs.datadoghq.com/account_management/guide/hourly-usage-migration/) for the associated migration guide.' operationId: GetUsageCIApp @@ -31133,10 +31055,11 @@ paths: - Usage Metering /api/v1/usage/cspm: get: + deprecated: true description: 'Get hourly usage for cloud security management (CSM) pro. - **Note:** hourly usage data for all products is now available in the [Get - hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). + **Note:** This endpoint has been deprecated. Hourly usage data for all products + is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). Refer to [Migrating from the V1 Hourly Usage APIs to V2](https://docs.datadoghq.com/account_management/guide/hourly-usage-migration/) for the associated migration guide.' operationId: GetUsageCloudSecurityPostureManagement @@ -31194,10 +31117,11 @@ paths: - Usage Metering /api/v1/usage/cws: get: + deprecated: true description: 'Get hourly usage for cloud workload security. - **Note:** hourly usage data for all products is now available in the [Get - hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). + **Note:** This endpoint has been deprecated. Hourly usage data for all products + is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). Refer to [Migrating from the V1 Hourly Usage APIs to V2](https://docs.datadoghq.com/account_management/guide/hourly-usage-migration/) for the associated migration guide.' operationId: GetUsageCWS @@ -31255,10 +31179,11 @@ paths: - Usage Metering /api/v1/usage/dbm: get: + deprecated: true description: 'Get hourly usage for database monitoring - **Note:** hourly usage data for all products is now available in the [Get - hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). + **Note:** This endpoint has been deprecated. Hourly usage data for all products + is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). Refer to [Migrating from the V1 Hourly Usage APIs to V2](https://docs.datadoghq.com/account_management/guide/hourly-usage-migration/) for the associated migration guide.' operationId: GetUsageDBM @@ -31316,10 +31241,11 @@ paths: - Usage Metering /api/v1/usage/fargate: get: + deprecated: true description: 'Get hourly usage for [Fargate](https://docs.datadoghq.com/integrations/ecs_fargate/). - **Note:** hourly usage data for all products is now available in the [Get - hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). + **Note:** This endpoint has been deprecated. Hourly usage data for all products + is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). Refer to [Migrating from the V1 Hourly Usage APIs to V2](https://docs.datadoghq.com/account_management/guide/hourly-usage-migration/) for the associated migration guide.' operationId: GetUsageFargate @@ -31375,10 +31301,11 @@ paths: - Usage Metering /api/v1/usage/hosts: get: + deprecated: true description: 'Get hourly usage for hosts and containers. - **Note:** hourly usage data for all products is now available in the [Get - hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). + **Note:** This endpoint has been deprecated. Hourly usage data for all products + is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). Refer to [Migrating from the V1 Hourly Usage APIs to V2](https://docs.datadoghq.com/account_management/guide/hourly-usage-migration/) for the associated migration guide.' operationId: GetUsageHosts @@ -31522,10 +31449,11 @@ paths: - Usage Metering /api/v1/usage/incident-management: get: + deprecated: true description: 'Get hourly usage for incident management. - **Note:** hourly usage data for all products is now available in the [Get - hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). + **Note:** This endpoint has been deprecated. Hourly usage data for all products + is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). Refer to [Migrating from the V1 Hourly Usage APIs to V2](https://docs.datadoghq.com/account_management/guide/hourly-usage-migration/) for the associated migration guide.' operationId: GetIncidentManagement @@ -31583,10 +31511,11 @@ paths: - Usage Metering /api/v1/usage/indexed-spans: get: + deprecated: true description: 'Get hourly usage for indexed spans. - **Note:** hourly usage data for all products is now available in the [Get - hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). + **Note:** This endpoint has been deprecated. Hourly usage data for all products + is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). Refer to [Migrating from the V1 Hourly Usage APIs to V2](https://docs.datadoghq.com/account_management/guide/hourly-usage-migration/) for the associated migration guide.' operationId: GetUsageIndexedSpans @@ -31642,10 +31571,11 @@ paths: - Usage Metering /api/v1/usage/ingested-spans: get: + deprecated: true description: 'Get hourly usage for ingested spans. - **Note:** hourly usage data for all products is now available in the [Get - hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). + **Note:** This endpoint has been deprecated. Hourly usage data for all products + is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). Refer to [Migrating from the V1 Hourly Usage APIs to V2](https://docs.datadoghq.com/account_management/guide/hourly-usage-migration/) for the associated migration guide.' operationId: GetIngestedSpans @@ -31703,10 +31633,11 @@ paths: - Usage Metering /api/v1/usage/iot: get: + deprecated: true description: 'Get hourly usage for IoT. - **Note:** hourly usage data for all products is now available in the [Get - hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). + **Note:** This endpoint has been deprecated. Hourly usage data for all products + is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). Refer to [Migrating from the V1 Hourly Usage APIs to V2](https://docs.datadoghq.com/account_management/guide/hourly-usage-migration/) for the associated migration guide.' operationId: GetUsageInternetOfThings @@ -31764,10 +31695,11 @@ paths: - Usage Metering /api/v1/usage/logs: get: + deprecated: true description: 'Get hourly usage for logs. - **Note:** hourly usage data for all products is now available in the [Get - hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). + **Note:** This endpoint has been deprecated. Hourly usage data for all products + is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). Refer to [Migrating from the V1 Hourly Usage APIs to V2](https://docs.datadoghq.com/account_management/guide/hourly-usage-migration/) for the associated migration guide.' operationId: GetUsageLogs @@ -31823,10 +31755,11 @@ paths: - Usage Metering /api/v1/usage/logs-by-retention: get: + deprecated: true description: 'Get hourly usage for indexed logs by retention period. - **Note:** hourly usage data for all products is now available in the [Get - hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). + **Note:** This endpoint has been deprecated. Hourly usage data for all products + is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). Refer to [Migrating from the V1 Hourly Usage APIs to V2](https://docs.datadoghq.com/account_management/guide/hourly-usage-migration/) for the associated migration guide.' operationId: GetUsageLogsByRetention @@ -32047,10 +31980,11 @@ paths: - Usage Metering /api/v1/usage/network_flows: get: + deprecated: true description: 'Get hourly usage for network flows. - **Note:** hourly usage data for all products is now available in the [Get - hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). + **Note:** This endpoint has been deprecated. Hourly usage data for all products + is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). Refer to [Migrating from the V1 Hourly Usage APIs to V2](https://docs.datadoghq.com/account_management/guide/hourly-usage-migration/) for the associated migration guide.' operationId: GetUsageNetworkFlows @@ -32108,10 +32042,11 @@ paths: - Usage Metering /api/v1/usage/network_hosts: get: + deprecated: true description: 'Get hourly usage for network hosts. - **Note:** hourly usage data for all products is now available in the [Get - hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). + **Note:** This endpoint has been deprecated. Hourly usage data for all products + is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). Refer to [Migrating from the V1 Hourly Usage APIs to V2](https://docs.datadoghq.com/account_management/guide/hourly-usage-migration/) for the associated migration guide.' operationId: GetUsageNetworkHosts @@ -32167,10 +32102,11 @@ paths: - Usage Metering /api/v1/usage/online-archive: get: + deprecated: true description: 'Get hourly usage for online archive. - **Note:** hourly usage data for all products is now available in the [Get - hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). + **Note:** This endpoint has been deprecated. Hourly usage data for all products + is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). Refer to [Migrating from the V1 Hourly Usage APIs to V2](https://docs.datadoghq.com/account_management/guide/hourly-usage-migration/) for the associated migration guide.' operationId: GetUsageOnlineArchive @@ -32228,10 +32164,11 @@ paths: - Usage Metering /api/v1/usage/profiling: get: + deprecated: true description: 'Get hourly usage for profiled hosts. - **Note:** hourly usage data for all products is now available in the [Get - hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). + **Note:** This endpoint has been deprecated. Hourly usage data for all products + is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). Refer to [Migrating from the V1 Hourly Usage APIs to V2](https://docs.datadoghq.com/account_management/guide/hourly-usage-migration/) for the associated migration guide.' operationId: GetUsageProfiling @@ -32289,11 +32226,12 @@ paths: - Usage Metering /api/v1/usage/rum: get: + deprecated: true description: 'Get hourly usage for [RUM](https://docs.datadoghq.com/real_user_monitoring/) Units. - **Note:** hourly usage data for all products is now available in the [Get - hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). + **Note:** This endpoint has been deprecated. Hourly usage data for all products + is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). Refer to [Migrating from the V1 Hourly Usage APIs to V2](https://docs.datadoghq.com/account_management/guide/hourly-usage-migration/) for the associated migration guide.' operationId: GetUsageRumUnits @@ -32349,11 +32287,12 @@ paths: - Usage Metering /api/v1/usage/rum_sessions: get: + deprecated: true description: 'Get hourly usage for [RUM](https://docs.datadoghq.com/real_user_monitoring/) Sessions. - **Note:** hourly usage data for all products is now available in the [Get - hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). + **Note:** This endpoint has been deprecated. Hourly usage data for all products + is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). Refer to [Migrating from the V1 Hourly Usage APIs to V2](https://docs.datadoghq.com/account_management/guide/hourly-usage-migration/) for the associated migration guide.' operationId: GetUsageRumSessions @@ -32415,10 +32354,11 @@ paths: - Usage Metering /api/v1/usage/sds: get: + deprecated: true description: 'Get hourly usage for sensitive data scanner. - **Note:** hourly usage data for all products is now available in the [Get - hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). + **Note:** This endpoint has been deprecated. Hourly usage data for all products + is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). Refer to [Migrating from the V1 Hourly Usage APIs to V2](https://docs.datadoghq.com/account_management/guide/hourly-usage-migration/) for the associated migration guide.' operationId: GetUsageSDS @@ -32476,10 +32416,11 @@ paths: - Usage Metering /api/v1/usage/snmp: get: + deprecated: true description: 'Get hourly usage for SNMP devices. - **Note:** hourly usage data for all products is now available in the [Get - hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). + **Note:** This endpoint has been deprecated. Hourly usage data for all products + is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). Refer to [Migrating from the V1 Hourly Usage APIs to V2](https://docs.datadoghq.com/account_management/guide/hourly-usage-migration/) for the associated migration guide.' operationId: GetUsageSNMP @@ -32602,8 +32543,8 @@ paths: deprecated: true description: 'Get hourly usage for [synthetics checks](https://docs.datadoghq.com/synthetics/). - **Note:** hourly usage data for all products is now available in the [Get - hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). + **Note:** This endpoint has been deprecated. Hourly usage data for all products + is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). Refer to [Migrating from the V1 Hourly Usage APIs to V2](https://docs.datadoghq.com/account_management/guide/hourly-usage-migration/) for the associated migration guide.' operationId: GetUsageSynthetics @@ -32659,10 +32600,11 @@ paths: - Usage Metering /api/v1/usage/synthetics_api: get: + deprecated: true description: 'Get hourly usage for [synthetics API checks](https://docs.datadoghq.com/synthetics/). - **Note:** hourly usage data for all products is now available in the [Get - hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). + **Note:** This endpoint has been deprecated. Hourly usage data for all products + is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). Refer to [Migrating from the V1 Hourly Usage APIs to V2](https://docs.datadoghq.com/account_management/guide/hourly-usage-migration/) for the associated migration guide.' operationId: GetUsageSyntheticsAPI @@ -32718,10 +32660,11 @@ paths: - Usage Metering /api/v1/usage/synthetics_browser: get: + deprecated: true description: 'Get hourly usage for synthetics browser checks. - **Note:** hourly usage data for all products is now available in the [Get - hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). + **Note:** This endpoint has been deprecated. Hourly usage data for all products + is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). Refer to [Migrating from the V1 Hourly Usage APIs to V2](https://docs.datadoghq.com/account_management/guide/hourly-usage-migration/) for the associated migration guide.' operationId: GetUsageSyntheticsBrowser @@ -32777,10 +32720,11 @@ paths: - Usage Metering /api/v1/usage/timeseries: get: + deprecated: true description: 'Get hourly usage for [custom metrics](https://docs.datadoghq.com/developers/metrics/custom_metrics/). - **Note:** hourly usage data for all products is now available in the [Get - hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). + **Note:** This endpoint has been deprecated. Hourly usage data for all products + is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family). Refer to [Migrating from the V1 Hourly Usage APIs to V2](https://docs.datadoghq.com/account_management/guide/hourly-usage-migration/) for the associated migration guide.' operationId: GetUsageTimeseries @@ -33370,9 +33314,9 @@ tags: - description: 'Configure your Datadog-AWS-Logs integration directly through Datadog API. - For more information, see the [AWS integration page](https://docs.datadoghq.com/api/?lang=bash#integration-aws-logs).' + For more information, see the [AWS integration page](https://docs.datadoghq.com/integrations/amazon_web_services/#log-collection).' externalDocs: - url: https://docs.datadoghq.com/api/?lang=bash#integration-aws-logs + url: https://docs.datadoghq.com/integrations/amazon_web_services/#log-collection name: AWS Logs Integration - description: "All requests to Datadog\u2019s API must be authenticated.\nRequests that write data require reporting access and require an `API key`.\nRequests that @@ -33380,7 +33324,9 @@ tags: All Datadog API clients are configured by default to consume Datadog US site APIs.\nIf you are on the Datadog EU site, set the environment variable `DATADOG_HOST` to\n`https://api.datadoghq.eu` or override this value directly when creating your client.\n\n[Manage your account\u2019s - API and application keys](https://app.datadoghq.com/account/settings#api)." + API and application keys](https://app.datadoghq.com/organization-settings/) in + Datadog, and see the [API and Application Keys page](https://docs.datadoghq.com/account_management/api-app-keys/) + in the documentation." name: Authentication - description: 'Configure your Datadog-Azure integration directly through the Datadog API. @@ -33396,10 +33342,9 @@ tags: organization.' name: Dashboard Lists x-deprecated: true -- description: 'Interact with your dashboard lists through the API to make it easier - to organize, - - find, and share all of your dashboards with your team and organization.' +- description: Manage all your dashboards, as well as access to your shared dashboards, + through the API. See the [Dashboards page](https://docs.datadoghq.com/dashboards/) + for more information. name: Dashboards - description: '[Downtiming](https://docs.datadoghq.com/monitors/notify/downtimes) gives @@ -33410,15 +33355,11 @@ tags: end times, prevent all alerting related to specified Datadog tags.' name: Downtimes -- description: 'The events service allows you to programmatically post events to the - event stream - - and fetch events from the event stream. Events are limited to 4000 characters. - - If an event is sent out with a message containing more than 4000 characters, only - the +- description: 'The Event Management API allows you to programmatically post events + to the Events Explorer - first 4000 characters are displayed.' + and fetch events from the Events Explorer. See the [Event Management page](https://docs.datadoghq.com/service_management/events/) + for more information.' name: Events - description: 'Configure your Datadog-Google Cloud Platform (GCP) integration directly @@ -33426,7 +33367,9 @@ tags: externalDocs: url: https://docs.datadoghq.com/integrations/google_cloud_platform name: GCP Integration -- description: Get information about your live hosts in Datadog. +- description: Get information about your infrastructure hosts in Datadog, and mute + or unmute any notifications from your hosts. See the [Infrastructure page](https://docs.datadoghq.com/infrastructure/) + for more information. name: Hosts - description: Get a list of IP prefixes belonging to Datadog. name: IP Ranges @@ -33443,6 +33386,7 @@ tags: url: https://docs.datadoghq.com/account_management/api-app-keys/ name: Key Management - description: Search your logs and send them to your Datadog platform over HTTP. + See the [Log Management page](https://docs.datadoghq.com/logs/) for more information. name: Logs - description: 'Manage configuration of [log indexes](https://docs.datadoghq.com/logs/indexes/). @@ -33473,7 +33417,8 @@ tags: A graph can only contain a set number of points\nand as the timeframe over which a metric is viewed increases,\naggregation between points occurs to stay below that set number.\n\nThe Post, Patch, and Delete `manage_tags` API methods can - only be performed by\na user who has the `Manage Tags for Metrics` permission." + only be performed by\na user who has the `Manage Tags for Metrics` permission.\n\nSee + the [Metrics page](https://docs.datadoghq.com/metrics/) for more information." name: Metrics - description: '[Monitors](https://docs.datadoghq.com/monitors) allow you to watch a metric or check that you care about and @@ -33509,9 +33454,9 @@ tags: externalDocs: url: https://docs.datadoghq.com/integrations/pagerduty/ name: PagerDuty Integration -- description: 'Detection rules for generating signals and listing of generated - - signals.' +- description: Create and manage your security rules, signals, filters, and more. + See the [Datadog Security page](https://docs.datadoghq.com/security/) for more + information. name: Security Monitoring - description: 'The service check endpoint allows you to post check statuses for use with monitors. @@ -33528,18 +33473,18 @@ tags: an OK status. - - [Read more about Service Check monitors.][1] + - [Read more about Service Check monitors][1]. - - [Read more about Process Check monitors.][2] + - [Read more about Process Check monitors][2]. - - [Read more about Network Check monitors.][3] + - [Read more about Network monitors][3]. - - [Read more about Custom Check monitors.][4] + - [Read more about Custom Check monitors][4]. - - [Read more about Service Check and status codes.][5] + - [Read more about Service Checks and status codes][5]. - [1]: https://docs.datadoghq.com/monitors/create/types/host/?tab=checkalert + [1]: https://docs.datadoghq.com/monitors/types/service_check/ [2]: https://docs.datadoghq.com/monitors/create/types/process_check/?tab=checkalert @@ -33553,7 +33498,8 @@ tags: from negatively impacting\nyour SLO\u2019s status and error budget. You can use Status Corrections for various purposes, such\nas removing planned maintenance windows, non-business hours, or other time periods that do\nnot correspond to - genuine issues." + genuine issues. See [SLO status corrections](https://docs.datadoghq.com/service_management/service_level_objectives/#slo-status-corrections) + for more information." name: Service Level Objective Corrections - description: '[Service Level Objectives](https://docs.datadoghq.com/monitors/service_level_objectives/#configuration) @@ -33603,9 +33549,7 @@ tags: users, feed, chef, puppet, git, bitbucket, fabric, capistrano, etc. - Read more about tags on the dedicated - - [documentation page](https://docs.datadoghq.com/tagging).' + Read more about tags on [Getting Started with Tags](https://docs.datadoghq.com/getting_started/tagging/).' name: Tags - description: 'The usage metering API allows you to get hourly, daily, and @@ -33623,7 +33567,9 @@ tags: You can retrieve up to 24 hours of hourly usage data for multiple organizations, - and up to two months of hourly usage data for a single organization in one request.' + and up to two months of hourly usage data for a single organization in one request. + + Learn more on the [usage details documentation](https://docs.datadoghq.com/account_management/billing/usage_details/).' externalDocs: description: Find out more at url: https://docs.datadoghq.com/account_management/billing/usage_details/ @@ -33635,10 +33581,9 @@ tags: - description: 'Configure your Datadog-Webhooks integration directly through the Datadog API. - For more information about the Datadog-Webhooks integration, - - see the [integration page](https://docs.datadoghq.com/integrations/webhooks).' + See the [Webhooks integration page](https://docs.datadoghq.com/integrations/webhooks) + for more information.' externalDocs: url: https://docs.datadoghq.com/integrations/webhooks name: Webhooks Integration -x-group-parameters: true \ No newline at end of file +x-group-parameters: true diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 8656c1c22..3ec2a7d6b 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -151,7 +151,21 @@ components: required: true schema: type: string - format: uuid + CaseIDPathParameter: + description: Case's UUID or key + example: f98a5a5b-e0ff-45d4-b2f5-afe6e74de504 + in: path + name: case_id + required: true + schema: + type: string + CaseSortableFieldParameter: + description: Specify which field to sort + in: query + name: sort[field] + required: false + schema: + $ref: '#/components/schemas/CaseSortableField' CloudAccountID: description: Cloud Account id. in: path @@ -181,6 +195,13 @@ components: required: true schema: type: string + CustomDestinationId: + description: The ID of the custom destination. + in: path + name: custom_destination_id + required: true + schema: + type: string FastlyAccountID: description: Fastly Account id. in: path @@ -382,6 +403,14 @@ components: example: 10 format: int64 type: integer + ProjectIDPathParameter: + description: Project UUID + example: e555e290-ed65-49bd-ae18-8acbfcf18db7 + in: path + name: project_id + required: true + schema: + type: string ResourceID: description: 'Identifier, formatted as `type:id`. Supported types: `connection`, `dashboard`, `notebook`, `security-rule`, `slo`.' @@ -433,6 +462,13 @@ components: required: true schema: type: string + SecurityMonitoringSuppressionID: + description: The ID of the suppression rule + in: path + name: suppression_id + required: true + schema: + type: string SensitiveDataScannerGroupID: description: The ID of a group of rules. in: path @@ -833,6 +869,11 @@ components: type: string x-enum-varnames: - BILLING_DIMENSIONS + ApiID: + description: API identifier. + example: 90646597-5fdb-4a17-a240-647003f8c028 + format: uuid + type: string ApmRetentionFilterType: default: apm_retention_filter description: The type of the resource. @@ -1284,11 +1325,10 @@ components: - type type: object AuthNMappingCreateRelationships: - description: Relationship of AuthN Mapping create object to Role. - properties: - role: - $ref: '#/components/schemas/RelationshipToRole' - type: object + description: Relationship of AuthN Mapping create object to a Role or Team. + oneOf: + - $ref: '#/components/schemas/AuthNMappingRelationshipToRole' + - $ref: '#/components/schemas/AuthNMappingRelationshipToTeam' AuthNMappingCreateRequest: description: Request for creating an AuthN Mapping. properties: @@ -1302,6 +1342,23 @@ components: oneOf: - $ref: '#/components/schemas/SAMLAssertionAttribute' - $ref: '#/components/schemas/Role' + - $ref: '#/components/schemas/AuthNMappingTeam' + AuthNMappingRelationshipToRole: + description: Relationship of AuthN Mapping to a Role. + properties: + role: + $ref: '#/components/schemas/RelationshipToRole' + required: + - role + type: object + AuthNMappingRelationshipToTeam: + description: Relationship of AuthN Mapping to a Team. + properties: + team: + $ref: '#/components/schemas/RelationshipToTeam' + required: + - team + type: object AuthNMappingRelationships: description: All relationships associated with AuthN Mapping. properties: @@ -1309,6 +1366,8 @@ components: $ref: '#/components/schemas/RelationshipToRole' saml_assertion_attribute: $ref: '#/components/schemas/RelationshipToSAMLAssertionAttribute' + team: + $ref: '#/components/schemas/RelationshipToTeam' type: object AuthNMappingResponse: description: AuthN Mapping response from the API. @@ -1321,6 +1380,60 @@ components: $ref: '#/components/schemas/AuthNMappingIncluded' type: array type: object + AuthNMappingTeam: + description: Team. + properties: + attributes: + $ref: '#/components/schemas/AuthNMappingTeamAttributes' + id: + description: The ID of the Team. + example: f9bb8444-af7f-11ec-ac2c-da7ad0900001 + type: string + type: + $ref: '#/components/schemas/TeamType' + type: object + AuthNMappingTeamAttributes: + description: Team attributes. + properties: + avatar: + description: Unicode representation of the avatar for the team, limited + to a single grapheme + example: "\U0001F951" + nullable: true + type: string + banner: + description: Banner selection for the team + format: int64 + nullable: true + type: integer + handle: + description: The team's identifier + example: example-team + maxLength: 195 + type: string + link_count: + description: The number of links belonging to the team + format: int32 + maximum: 2147483647 + readOnly: true + type: integer + name: + description: The name of the team + example: Example Team + maxLength: 200 + type: string + summary: + description: A brief summary of the team, derived from the `description` + maxLength: 120 + nullable: true + type: string + user_count: + description: The number of users belonging to the team + format: int32 + maximum: 2147483647 + readOnly: true + type: integer + type: object AuthNMappingUpdateAttributes: description: Key/Value pair of attributes used for update request. properties: @@ -1353,11 +1466,10 @@ components: - type type: object AuthNMappingUpdateRelationships: - description: Relationship of AuthN Mapping update object to Role. - properties: - role: - $ref: '#/components/schemas/RelationshipToRole' - type: object + description: Relationship of AuthN Mapping update object to a Role or Team. + oneOf: + - $ref: '#/components/schemas/AuthNMappingRelationshipToRole' + - $ref: '#/components/schemas/AuthNMappingRelationshipToTeam' AuthNMappingUpdateRequest: description: Request to update an AuthN Mapping. properties: @@ -2005,7 +2117,8 @@ components: type: number type: object CIAppAggregateSort: - description: A sort rule. + description: A sort rule. The `aggregation` field is required when `type` is + `measure`. example: aggregation: count order: asc @@ -3321,6 +3434,345 @@ components: from the other indexes type: string type: object + Case: + description: A case + properties: + attributes: + $ref: '#/components/schemas/CaseAttributes' + id: + description: Case's identifier + example: aeadc05e-98a8-11ec-ac2c-da7ad0900001 + type: string + relationships: + $ref: '#/components/schemas/CaseRelationships' + type: + $ref: '#/components/schemas/CaseResourceType' + required: + - id + - type + - attributes + type: object + Case3rdPartyTicketStatus: + default: IN_PROGRESS + description: Case status + enum: + - IN_PROGRESS + - COMPLETED + - FAILED + example: COMPLETED + readOnly: true + type: string + x-enum-varnames: + - IN_PROGRESS + - COMPLETED + - FAILED + CaseAssign: + description: Case assign + properties: + attributes: + $ref: '#/components/schemas/CaseAssignAttributes' + type: + $ref: '#/components/schemas/CaseResourceType' + required: + - attributes + - type + type: object + CaseAssignAttributes: + description: Case assign attributes + properties: + assignee_id: + description: Assignee's UUID + example: f98a5a5b-e0ff-45d4-b2f5-afe6e74de504 + type: string + required: + - assignee_id + type: object + CaseAssignRequest: + description: Case assign request + properties: + data: + $ref: '#/components/schemas/CaseAssign' + required: + - data + type: object + CaseAttributes: + description: Case attributes + properties: + archived_at: + description: Timestamp of when the case was archived + format: date-time + nullable: true + readOnly: true + type: string + closed_at: + description: Timestamp of when the case was closed + format: date-time + nullable: true + readOnly: true + type: string + created_at: + description: Timestamp of when the case was created + format: date-time + readOnly: true + type: string + description: + description: Description + type: string + jira_issue: + $ref: '#/components/schemas/JiraIssue' + key: + description: Key + example: CASEM-4523 + type: string + modified_at: + description: Timestamp of when the case was last modified + format: date-time + nullable: true + readOnly: true + type: string + priority: + $ref: '#/components/schemas/CasePriority' + service_now_ticket: + $ref: '#/components/schemas/ServiceNowTicket' + status: + $ref: '#/components/schemas/CaseStatus' + title: + description: Title + example: Memory leak investigation on API + type: string + type: + $ref: '#/components/schemas/CaseType' + type: object + CaseCreate: + description: Case creation data + properties: + attributes: + $ref: '#/components/schemas/CaseCreateAttributes' + relationships: + $ref: '#/components/schemas/CaseCreateRelationships' + type: + $ref: '#/components/schemas/CaseResourceType' + required: + - attributes + - type + type: object + CaseCreateAttributes: + description: Case creation attributes + properties: + description: + description: Description + type: string + priority: + $ref: '#/components/schemas/CasePriority' + title: + description: Title + example: Security breach investigation + type: string + type: + $ref: '#/components/schemas/CaseType' + required: + - title + - type + type: object + CaseCreateRelationships: + description: Relationships formed with the case on creation + properties: + assignee: + $ref: '#/components/schemas/NullableUserRelationship' + project: + $ref: '#/components/schemas/ProjectRelationship' + required: + - project + type: object + CaseCreateRequest: + description: Case create request + properties: + data: + $ref: '#/components/schemas/CaseCreate' + required: + - data + type: object + CaseEmpty: + description: Case empty request data + properties: + type: + $ref: '#/components/schemas/CaseResourceType' + required: + - type + type: object + CaseEmptyRequest: + description: Case empty request + properties: + data: + $ref: '#/components/schemas/CaseEmpty' + required: + - data + type: object + CasePriority: + default: NOT_DEFINED + description: Case priority + enum: + - NOT_DEFINED + - P1 + - P2 + - P3 + - P4 + - P5 + example: NOT_DEFINED + type: string + x-enum-varnames: + - NOT_DEFINED + - P1 + - P2 + - P3 + - P4 + - P5 + CaseRelationships: + description: Resources related to a case + properties: + assignee: + $ref: '#/components/schemas/NullableUserRelationship' + created_by: + $ref: '#/components/schemas/NullableUserRelationship' + modified_by: + $ref: '#/components/schemas/NullableUserRelationship' + project: + $ref: '#/components/schemas/ProjectRelationship' + type: object + CaseResourceType: + default: case + description: Case resource type + enum: + - case + example: case + type: string + x-enum-varnames: + - CASE + CaseResponse: + description: Case response + properties: + data: + $ref: '#/components/schemas/Case' + type: object + CaseSortableField: + description: Case field that can be sorted on + enum: + - created_at + - priority + - status + example: created_at + type: string + x-enum-varnames: + - CREATED_AT + - PRIORITY + - STATUS + CaseStatus: + description: Case status + enum: + - OPEN + - IN_PROGRESS + - CLOSED + example: OPEN + type: string + x-enum-varnames: + - OPEN + - IN_PROGRESS + - CLOSED + CaseType: + description: Case type + enum: + - STANDARD + example: STANDARD + type: string + x-enum-varnames: + - STANDARD + CaseUpdatePriority: + description: Case priority status + properties: + attributes: + $ref: '#/components/schemas/CaseUpdatePriorityAttributes' + type: + $ref: '#/components/schemas/CaseResourceType' + required: + - attributes + - type + type: object + CaseUpdatePriorityAttributes: + description: Case update priority attributes + properties: + priority: + $ref: '#/components/schemas/CasePriority' + required: + - priority + type: object + CaseUpdatePriorityRequest: + description: Case update priority request + properties: + data: + $ref: '#/components/schemas/CaseUpdatePriority' + required: + - data + type: object + CaseUpdateStatus: + description: Case update status + properties: + attributes: + $ref: '#/components/schemas/CaseUpdateStatusAttributes' + type: + $ref: '#/components/schemas/CaseResourceType' + required: + - attributes + - type + type: object + CaseUpdateStatusAttributes: + description: Case update status attributes + properties: + status: + $ref: '#/components/schemas/CaseStatus' + required: + - status + type: object + CaseUpdateStatusRequest: + description: Case update status request + properties: + data: + $ref: '#/components/schemas/CaseUpdateStatus' + required: + - data + type: object + CasesResponse: + description: Response with cases + properties: + data: + description: Cases response data + items: + $ref: '#/components/schemas/Case' + type: array + meta: + $ref: '#/components/schemas/CasesResponseMeta' + type: object + CasesResponseMeta: + description: Cases response metadata + properties: + page: + $ref: '#/components/schemas/CasesResponseMetaPagination' + type: object + CasesResponseMetaPagination: + description: Pagination metadata + properties: + current: + description: Current page number + format: int64 + type: integer + size: + description: Number of cases in current page + format: int64 + type: integer + total: + description: Total number of pages + format: int64 + type: integer + type: object ChargebackBreakdown: description: Charges breakdown. properties: @@ -3545,9 +3997,27 @@ components: type: string x-enum-varnames: - CLOUD_COST_ACTIVITY + CloudWorkloadSecurityAgentRuleAction: + description: The action the rule can perform if triggered. + properties: + filter: + description: SECL expression used to target the container to apply the action + on + type: string + kill: + $ref: '#/components/schemas/CloudWorkloadSecurityAgentRuleKill' + type: object + CloudWorkloadSecurityAgentRuleActions: + description: The array of actions the rule can perform if triggered. + items: + $ref: '#/components/schemas/CloudWorkloadSecurityAgentRuleAction' + nullable: true + type: array CloudWorkloadSecurityAgentRuleAttributes: description: A Cloud Workload Security Agent rule returned by the API. properties: + actions: + $ref: '#/components/schemas/CloudWorkloadSecurityAgentRuleActions' agentConstraint: description: The version of the agent. type: string @@ -3680,6 +4150,17 @@ components: type: $ref: '#/components/schemas/CloudWorkloadSecurityAgentRuleType' type: object + CloudWorkloadSecurityAgentRuleID: + description: The ID of the agent rule. + example: 3dd-0uc-h1s + type: string + CloudWorkloadSecurityAgentRuleKill: + description: Kill system call applied on the container matching the rule + properties: + signal: + description: Supported signals for the kill system call. + type: string + type: object CloudWorkloadSecurityAgentRuleResponse: description: Response object that includes an Agent rule. properties: @@ -3716,6 +4197,8 @@ components: properties: attributes: $ref: '#/components/schemas/CloudWorkloadSecurityAgentRuleUpdateAttributes' + id: + $ref: '#/components/schemas/CloudWorkloadSecurityAgentRuleID' type: $ref: '#/components/schemas/CloudWorkloadSecurityAgentRuleType' required: @@ -3777,6 +4260,22 @@ components: description: The name of the Cloudflare account. example: test-name type: string + resources: + description: An allowlist of resources to restrict pulling metrics for. + example: + - web + - dns + items: + type: string + type: array + zones: + description: An allowlist of zones to restrict pulling metrics for. + example: + - zone_id_1 + - zone_id_2 + items: + type: string + type: array required: - api_key - name @@ -3809,6 +4308,22 @@ components: description: The name of the Cloudflare account. example: test-name type: string + resources: + description: An allowlist of resources to restrict pulling metrics for. + example: + - web + - dns + items: + type: string + type: array + zones: + description: An allowlist of zones to restrict pulling metrics for. + example: + - zone_id_1 + - zone_id_2 + items: + type: string + type: array required: - name type: object @@ -3857,6 +4372,22 @@ components: key is provided (and not a token), this field is also required. example: test-email@example.com type: string + resources: + description: An allowlist of resources to restrict pulling metrics for. + example: + - web + - dns + items: + type: string + type: array + zones: + description: An allowlist of zones to restrict pulling metrics for. + example: + - zone_id_1 + - zone_id_2 + items: + type: string + type: array required: - api_key type: object @@ -4819,6 +5350,29 @@ components: type: string x-enum-varnames: - COST_BY_ORG + CreateOpenAPIResponse: + description: Response for `CreateOpenAPI` operation. + properties: + data: + $ref: '#/components/schemas/CreateOpenAPIResponseData' + type: object + CreateOpenAPIResponseAttributes: + description: Attributes for `CreateOpenAPI`. + properties: + failed_endpoints: + description: List of endpoints which couldn't be parsed. + items: + $ref: '#/components/schemas/OpenAPIEndpoint' + type: array + type: object + CreateOpenAPIResponseData: + description: Data envelope for `CreateOpenAPIResponse`. + properties: + attributes: + $ref: '#/components/schemas/CreateOpenAPIResponseAttributes' + id: + $ref: '#/components/schemas/ApiID' + type: object CreateRuleRequest: description: Scorecard create rule request. properties: @@ -4865,6 +5419,621 @@ components: nullable: true type: string type: object + CustomDestinationAttributeTagsRestrictionListType: + default: ALLOW_LIST + description: 'How `forward_tags_restriction_list` parameter should be interpreted. + + If `ALLOW_LIST`, then only tags whose keys on the forwarded logs match the + ones on the restriction list + + are forwarded. + + + `BLOCK_LIST` works the opposite way. It does not forward the tags matching + the ones on the list.' + enum: + - ALLOW_LIST + - BLOCK_LIST + example: ALLOW_LIST + type: string + x-enum-varnames: + - ALLOW_LIST + - BLOCK_LIST + CustomDestinationCreateRequest: + description: The custom destination. + properties: + data: + $ref: '#/components/schemas/CustomDestinationCreateRequestDefinition' + type: object + CustomDestinationCreateRequestAttributes: + description: The attributes associated with the custom destination. + properties: + enabled: + default: true + description: Whether logs matching this custom destination should be forwarded + or not. + example: true + type: boolean + forward_tags: + default: true + description: Whether tags from the forwarded logs should be forwarded or + not. + example: true + type: boolean + forward_tags_restriction_list: + default: [] + description: 'List of [keys of tags](https://docs.datadoghq.com/getting_started/tagging/#define-tags) + to be filtered. + + + An empty list represents no restriction is in place and either all or + no tags will be + + forwarded depending on `forward_tags_restriction_list_type` parameter.' + example: + - datacenter + - host + items: + description: The [key part of a tag](https://docs.datadoghq.com/getting_started/tagging/#define-tags). + type: string + maxItems: 10 + minItems: 0 + type: array + forward_tags_restriction_list_type: + $ref: '#/components/schemas/CustomDestinationAttributeTagsRestrictionListType' + forwarder_destination: + $ref: '#/components/schemas/CustomDestinationForwardDestination' + name: + description: The custom destination name. + example: Nginx logs + type: string + query: + default: '' + description: The custom destination query and filter. Logs matching this + query are forwarded to the destination. + example: source:nginx + type: string + required: + - name + - forwarder_destination + type: object + CustomDestinationCreateRequestDefinition: + description: The definition of a custom destination. + properties: + attributes: + $ref: '#/components/schemas/CustomDestinationCreateRequestAttributes' + type: + $ref: '#/components/schemas/CustomDestinationType' + required: + - type + - attributes + type: object + CustomDestinationElasticsearchDestinationAuth: + description: Basic access authentication. + properties: + password: + description: The password of the authentication. This field is not returned + by the API. + example: datadog-custom-destination-password + type: string + writeOnly: true + username: + description: The username of the authentication. This field is not returned + by the API. + example: datadog-custom-destination-username + type: string + writeOnly: true + required: + - username + - password + type: object + CustomDestinationForwardDestination: + description: A custom destination's location to forward logs. + oneOf: + - $ref: '#/components/schemas/CustomDestinationForwardDestinationHttp' + - $ref: '#/components/schemas/CustomDestinationForwardDestinationSplunk' + - $ref: '#/components/schemas/CustomDestinationForwardDestinationElasticsearch' + type: object + CustomDestinationForwardDestinationElasticsearch: + description: The Elasticsearch destination. + properties: + auth: + $ref: '#/components/schemas/CustomDestinationElasticsearchDestinationAuth' + endpoint: + description: 'The destination for which logs will be forwarded to. + + Must have HTTPS scheme and forwarding back to Datadog is not allowed.' + example: https://example.com + type: string + index_name: + description: Name of the Elasticsearch index (must follow [Elasticsearch's + criteria](https://www.elastic.co/guide/en/elasticsearch/reference/8.11/indices-create-index.html#indices-create-api-path-params)). + example: nginx-logs + type: string + index_rotation: + description: 'Date pattern with US locale and UTC timezone to be appended + to the index name after adding `-` + + (that is, `${index_name}-${indexPattern}`). + + You can customize the index rotation naming pattern by choosing one of + these options: + + - Hourly: `yyyy-MM-dd-HH` (as an example, it would render: `2022-10-19-09`) + + - Daily: `yyyy-MM-dd` (as an example, it would render: `2022-10-19`) + + - Weekly: `yyyy-''W''ww` (as an example, it would render: `2022-W42`) + + - Monthly: `yyyy-MM` (as an example, it would render: `2022-10`) + + + If this field is missing or is blank, it means that the index name will + always be the same + + (that is, no rotation).' + example: yyyy-MM-dd + type: string + type: + $ref: '#/components/schemas/CustomDestinationForwardDestinationElasticsearchType' + required: + - type + - endpoint + - auth + - index_name + type: object + CustomDestinationForwardDestinationElasticsearchType: + default: elasticsearch + description: Type of the Elasticsearch destination. + enum: + - elasticsearch + example: elasticsearch + type: string + x-enum-varnames: + - ELASTICSEARCH + CustomDestinationForwardDestinationHttp: + description: The HTTP destination. + properties: + auth: + $ref: '#/components/schemas/CustomDestinationHttpDestinationAuth' + endpoint: + description: 'The destination for which logs will be forwarded to. + + Must have HTTPS scheme and forwarding back to Datadog is not allowed.' + example: https://example.com + type: string + type: + $ref: '#/components/schemas/CustomDestinationForwardDestinationHttpType' + required: + - type + - endpoint + - auth + type: object + CustomDestinationForwardDestinationHttpType: + default: http + description: Type of the HTTP destination. + enum: + - http + example: http + type: string + x-enum-varnames: + - HTTP + CustomDestinationForwardDestinationSplunk: + description: The Splunk HTTP Event Collector (HEC) destination. + properties: + access_token: + description: Access token of the Splunk HTTP Event Collector. This field + is not returned by the API. + example: splunk_access_token + type: string + writeOnly: true + endpoint: + description: 'The destination for which logs will be forwarded to. + + Must have HTTPS scheme and forwarding back to Datadog is not allowed.' + example: https://example.com + type: string + type: + $ref: '#/components/schemas/CustomDestinationForwardDestinationSplunkType' + required: + - type + - endpoint + - access_token + type: object + CustomDestinationForwardDestinationSplunkType: + default: splunk_hec + description: Type of the Splunk HTTP Event Collector (HEC) destination. + enum: + - splunk_hec + example: splunk_hec + type: string + x-enum-varnames: + - SPLUNK_HEC + CustomDestinationHttpDestinationAuth: + description: Authentication method of the HTTP requests. + oneOf: + - $ref: '#/components/schemas/CustomDestinationHttpDestinationAuthBasic' + - $ref: '#/components/schemas/CustomDestinationHttpDestinationAuthCustomHeader' + type: object + CustomDestinationHttpDestinationAuthBasic: + description: Basic access authentication. + properties: + password: + description: The password of the authentication. This field is not returned + by the API. + example: datadog-custom-destination-password + type: string + writeOnly: true + type: + $ref: '#/components/schemas/CustomDestinationHttpDestinationAuthBasicType' + username: + description: The username of the authentication. This field is not returned + by the API. + example: datadog-custom-destination-username + type: string + writeOnly: true + required: + - type + - username + - password + type: object + CustomDestinationHttpDestinationAuthBasicType: + default: basic + description: Type of the basic access authentication. + enum: + - basic + example: basic + type: string + x-enum-varnames: + - BASIC + CustomDestinationHttpDestinationAuthCustomHeader: + description: Custom header access authentication. + properties: + header_name: + description: The header name of the authentication. + example: CUSTOM-HEADER-NAME + type: string + header_value: + description: The header value of the authentication. This field is not returned + by the API. + example: CUSTOM-HEADER-AUTHENTICATION-VALUE + type: string + writeOnly: true + type: + $ref: '#/components/schemas/CustomDestinationHttpDestinationAuthCustomHeaderType' + required: + - type + - header_name + - header_value + type: object + CustomDestinationHttpDestinationAuthCustomHeaderType: + default: custom_header + description: Type of the custom header access authentication. + enum: + - custom_header + example: custom_header + type: string + x-enum-varnames: + - CUSTOM_HEADER + CustomDestinationResponse: + description: The custom destination. + properties: + data: + $ref: '#/components/schemas/CustomDestinationResponseDefinition' + type: object + CustomDestinationResponseAttributes: + description: The attributes associated with the custom destination. + properties: + enabled: + default: true + description: Whether logs matching this custom destination should be forwarded + or not. + example: true + type: boolean + forward_tags: + default: true + description: Whether tags from the forwarded logs should be forwarded or + not. + example: true + type: boolean + forward_tags_restriction_list: + default: [] + description: 'List of [keys of tags](https://docs.datadoghq.com/getting_started/tagging/#define-tags) + to be filtered. + + + An empty list represents no restriction is in place and either all or + no tags will be + + forwarded depending on `forward_tags_restriction_list_type` parameter.' + example: + - datacenter + - host + items: + description: The [key part of a tag](https://docs.datadoghq.com/getting_started/tagging/#define-tags). + type: string + maxItems: 10 + minItems: 0 + type: array + forward_tags_restriction_list_type: + $ref: '#/components/schemas/CustomDestinationAttributeTagsRestrictionListType' + forwarder_destination: + $ref: '#/components/schemas/CustomDestinationResponseForwardDestination' + name: + description: The custom destination name. + example: Nginx logs + type: string + query: + default: '' + description: The custom destination query filter. Logs matching this query + are forwarded to the destination. + example: source:nginx + type: string + type: object + CustomDestinationResponseDefinition: + description: The definition of a custom destination. + properties: + attributes: + $ref: '#/components/schemas/CustomDestinationResponseAttributes' + id: + description: The custom destination ID. + example: be5d7a69-d0c8-4d4d-8ee8-bba292d98139 + readOnly: true + type: string + type: + $ref: '#/components/schemas/CustomDestinationType' + type: object + CustomDestinationResponseElasticsearchDestinationAuth: + additionalProperties: + description: Basic access authentication. + description: Basic access authentication. + type: object + CustomDestinationResponseForwardDestination: + description: A custom destination's location to forward logs. + oneOf: + - $ref: '#/components/schemas/CustomDestinationResponseForwardDestinationHttp' + - $ref: '#/components/schemas/CustomDestinationResponseForwardDestinationSplunk' + - $ref: '#/components/schemas/CustomDestinationResponseForwardDestinationElasticsearch' + type: object + CustomDestinationResponseForwardDestinationElasticsearch: + description: The Elasticsearch destination. + properties: + auth: + $ref: '#/components/schemas/CustomDestinationResponseElasticsearchDestinationAuth' + endpoint: + description: 'The destination for which logs will be forwarded to. + + Must have HTTPS scheme and forwarding back to Datadog is not allowed.' + example: https://example.com + type: string + index_name: + description: Name of the Elasticsearch index (must follow [Elasticsearch's + criteria](https://www.elastic.co/guide/en/elasticsearch/reference/8.11/indices-create-index.html#indices-create-api-path-params)). + example: nginx-logs + type: string + index_rotation: + description: 'Date pattern with US locale and UTC timezone to be appended + to the index name after adding `-` + + (that is, `${index_name}-${indexPattern}`). + + You can customize the index rotation naming pattern by choosing one of + these options: + + - Hourly: `yyyy-MM-dd-HH` (as an example, it would render: `2022-10-19-09`) + + - Daily: `yyyy-MM-dd` (as an example, it would render: `2022-10-19`) + + - Weekly: `yyyy-''W''ww` (as an example, it would render: `2022-W42`) + + - Monthly: `yyyy-MM` (as an example, it would render: `2022-10`) + + + If this field is missing or is blank, it means that the index name will + always be the same + + (that is, no rotation).' + example: yyyy-MM-dd + type: string + type: + $ref: '#/components/schemas/CustomDestinationResponseForwardDestinationElasticsearchType' + required: + - type + - endpoint + - auth + - index_name + type: object + CustomDestinationResponseForwardDestinationElasticsearchType: + default: elasticsearch + description: Type of the Elasticsearch destination. + enum: + - elasticsearch + example: elasticsearch + type: string + x-enum-varnames: + - ELASTICSEARCH + CustomDestinationResponseForwardDestinationHttp: + description: The HTTP destination. + properties: + auth: + $ref: '#/components/schemas/CustomDestinationResponseHttpDestinationAuth' + endpoint: + description: 'The destination for which logs will be forwarded to. + + Must have HTTPS scheme and forwarding back to Datadog is not allowed.' + example: https://example.com + type: string + type: + $ref: '#/components/schemas/CustomDestinationResponseForwardDestinationHttpType' + required: + - type + - endpoint + - auth + type: object + CustomDestinationResponseForwardDestinationHttpType: + default: http + description: Type of the HTTP destination. + enum: + - http + example: http + type: string + x-enum-varnames: + - HTTP + CustomDestinationResponseForwardDestinationSplunk: + description: The Splunk HTTP Event Collector (HEC) destination. + properties: + endpoint: + description: 'The destination for which logs will be forwarded to. + + Must have HTTPS scheme and forwarding back to Datadog is not allowed.' + example: https://example.com + type: string + type: + $ref: '#/components/schemas/CustomDestinationResponseForwardDestinationSplunkType' + required: + - type + - endpoint + type: object + CustomDestinationResponseForwardDestinationSplunkType: + default: splunk_hec + description: Type of the Splunk HTTP Event Collector (HEC) destination. + enum: + - splunk_hec + example: splunk_hec + type: string + x-enum-varnames: + - SPLUNK_HEC + CustomDestinationResponseHttpDestinationAuth: + description: Authentication method of the HTTP requests. + oneOf: + - $ref: '#/components/schemas/CustomDestinationResponseHttpDestinationAuthBasic' + - $ref: '#/components/schemas/CustomDestinationResponseHttpDestinationAuthCustomHeader' + type: object + CustomDestinationResponseHttpDestinationAuthBasic: + description: Basic access authentication. + properties: + type: + $ref: '#/components/schemas/CustomDestinationResponseHttpDestinationAuthBasicType' + required: + - type + type: object + CustomDestinationResponseHttpDestinationAuthBasicType: + default: basic + description: Type of the basic access authentication. + enum: + - basic + example: basic + type: string + x-enum-varnames: + - BASIC + CustomDestinationResponseHttpDestinationAuthCustomHeader: + description: Custom header access authentication. + properties: + header_name: + description: The header name of the authentication. + example: CUSTOM-HEADER-NAME + type: string + type: + $ref: '#/components/schemas/CustomDestinationResponseHttpDestinationAuthCustomHeaderType' + required: + - type + - header_name + type: object + CustomDestinationResponseHttpDestinationAuthCustomHeaderType: + default: custom_header + description: Type of the custom header access authentication. + enum: + - custom_header + example: custom_header + type: string + x-enum-varnames: + - CUSTOM_HEADER + CustomDestinationType: + default: custom_destination + description: The type of the resource. The value should always be `custom_destination`. + enum: + - custom_destination + example: custom_destination + type: string + x-enum-varnames: + - CUSTOM_DESTINATION + CustomDestinationUpdateRequest: + description: The custom destination. + properties: + data: + $ref: '#/components/schemas/CustomDestinationUpdateRequestDefinition' + type: object + CustomDestinationUpdateRequestAttributes: + description: The attributes associated with the custom destination. + properties: + enabled: + default: true + description: Whether logs matching this custom destination should be forwarded + or not. + example: true + type: boolean + forward_tags: + default: true + description: Whether tags from the forwarded logs should be forwarded or + not. + example: true + type: boolean + forward_tags_restriction_list: + default: [] + description: 'List of [keys of tags](https://docs.datadoghq.com/getting_started/tagging/#define-tags) + to be restricted from being forwarded. + + An empty list represents no restriction is in place and either all or + no tags will be forwarded depending on `forward_tags_restriction_list_type` + parameter.' + example: + - datacenter + - host + items: + description: The [key part of a tag](https://docs.datadoghq.com/getting_started/tagging/#define-tags). + type: string + maxItems: 10 + minItems: 0 + type: array + forward_tags_restriction_list_type: + $ref: '#/components/schemas/CustomDestinationAttributeTagsRestrictionListType' + forwarder_destination: + $ref: '#/components/schemas/CustomDestinationForwardDestination' + name: + description: The custom destination name. + example: Nginx logs + type: string + query: + default: '' + description: The custom destination query and filter. Logs matching this + query are forwarded to the destination. + example: source:nginx + type: string + type: object + CustomDestinationUpdateRequestDefinition: + description: The definition of a custom destination. + properties: + attributes: + $ref: '#/components/schemas/CustomDestinationUpdateRequestAttributes' + id: + description: The custom destination ID. + example: be5d7a69-d0c8-4d4d-8ee8-bba292d98139 + type: string + type: + $ref: '#/components/schemas/CustomDestinationType' + required: + - type + - id + type: object + CustomDestinationsResponse: + description: The available custom destinations. + properties: + data: + description: A list of custom destinations. + items: + $ref: '#/components/schemas/CustomDestinationResponseDefinition' + type: array + type: object DORADeploymentRequest: description: Request to create a DORA deployment event. properties: @@ -4876,9 +6045,13 @@ components: DORADeploymentRequestAttributes: description: Attributes to create a DORA deployment event. properties: + env: + description: Environment name to where the service was deployed. + example: staging + type: string finished_at: description: Unix timestamp in nanoseconds when the deployment finished. - It should not be older than 3 hours. + It should not be older than 1 hour. example: 1693491984000000000 format: int64 type: integer @@ -4964,6 +6137,10 @@ components: DORAIncidentRequestAttributes: description: Attributes to create a DORA incident event. properties: + env: + description: Environment name that was impacted by the incident. + example: staging + type: string finished_at: description: Unix timestamp in nanoseconds when the incident finished. It should not be older than 3 hours. @@ -4973,16 +6150,21 @@ components: git: $ref: '#/components/schemas/DORAGitInfo' id: - description: Incident ID + description: Incident ID. Required to update a previously sent incident. type: string name: description: Incident name. - example: Webserver is down failing all requests - type: string - service: - description: Service name from a service available in the Service Catalog. - example: shopist + example: Webserver is down failing all requests. type: string + services: + description: Service names impacted by the incident. If possible, use names + registered in the Service Catalog. Required when the team field is not + provided. + example: + - shopist + items: + type: string + type: array severity: description: Incident severity. example: High @@ -4992,12 +6174,17 @@ components: example: 1693491974000000000 format: int64 type: integer + team: + description: Name of the team owning the services impacted. If possible, + use team handles registered in Datadog. Required when the services field + is not provided. + example: backend + type: string version: description: Version to correlate with [APM Deployment Tracking](https://docs.datadoghq.com/tracing/services/deployment_tracking/). example: v1.12.07 type: string required: - - service - started_at type: object DORAIncidentRequestData: @@ -5651,7 +6838,7 @@ components: type: string type: object DowntimeScheduleOneTimeCreateUpdateRequest: - additionalProperties: {} + additionalProperties: false description: A one-time downtime definition. properties: end: @@ -5786,6 +6973,7 @@ components: - recurrences type: object DowntimeScheduleRecurrencesUpdateRequest: + additionalProperties: false description: A recurring downtime schedule definition. properties: recurrences: @@ -6926,6 +8114,18 @@ components: description: Your service account email address. example: datadog-service-account@test-project.iam.gserviceaccount.com type: string + cloud_run_revision_filters: + description: 'List of filters to limit the Cloud Run revisions that are + pulled into Datadog by using tags. + + Only Cloud Run revision resources that apply to specified filters are + imported into Datadog.' + example: + - $KEY:$VALUE + items: + description: Cloud Run Filters + type: string + type: array host_filters: description: Your Host Filters. items: @@ -9254,6 +10454,32 @@ components: - project_key - account type: object + JiraIssue: + description: Jira issue attached to case + nullable: true + properties: + result: + $ref: '#/components/schemas/JiraIssueResult' + status: + $ref: '#/components/schemas/Case3rdPartyTicketStatus' + readOnly: true + type: object + JiraIssueResult: + description: Jira issue information + properties: + issue_id: + description: Jira issue ID + type: string + issue_key: + description: Jira issue key + type: string + issue_url: + description: Jira issue URL + type: string + project_key: + description: Jira project key + type: string + type: object ListApplicationKeysResponse: description: Response for a list of application keys. properties: @@ -9909,7 +11135,6 @@ components: example: project-id type: string required: - - project_id - client_email type: object LogsArchiveIntegrationS3: @@ -10582,6 +11807,136 @@ components: $ref: '#/components/schemas/MetricAllTags' readOnly: true type: object + MetricAssetAttributes: + description: Assets where only included attribute is its title + properties: + title: + description: Title of the asset. + type: string + type: object + MetricAssetDashboardRelationship: + description: An object of type `dashboard` that can be referenced in the `included` + data. + properties: + id: + $ref: '#/components/schemas/MetricDashboardID' + type: + $ref: '#/components/schemas/MetricDashboardType' + type: object + MetricAssetDashboardRelationships: + description: An object containing the list of dashboards that can be referenced + in the `included` data. + properties: + data: + description: A list of dashboards that can be referenced in the `included` + data. + items: + $ref: '#/components/schemas/MetricAssetDashboardRelationship' + type: array + type: object + MetricAssetMonitorRelationship: + description: An object of type `monitor` that can be referenced in the `included` + data. + properties: + id: + $ref: '#/components/schemas/MetricMonitorID' + type: + $ref: '#/components/schemas/MetricMonitorType' + type: object + MetricAssetMonitorRelationships: + description: A object containing the list of monitors that can be referenced + in the `included` data. + properties: + data: + description: A list of monitors that can be referenced in the `included` + data. + items: + $ref: '#/components/schemas/MetricAssetMonitorRelationship' + type: array + type: object + MetricAssetNotebookRelationship: + description: An object of type `notebook` that can be referenced in the `included` + data. + properties: + id: + $ref: '#/components/schemas/MetricNotebookID' + type: + $ref: '#/components/schemas/MetricNotebookType' + type: object + MetricAssetNotebookRelationships: + description: An object containing the list of notebooks that can be referenced + in the `included` data. + properties: + data: + description: A list of notebooks that can be referenced in the `included` + data. + items: + $ref: '#/components/schemas/MetricAssetNotebookRelationship' + type: array + type: object + MetricAssetResponseData: + description: Metric assets response data. + properties: + id: + $ref: '#/components/schemas/MetricName' + relationships: + $ref: '#/components/schemas/MetricAssetResponseRelationships' + type: + $ref: '#/components/schemas/MetricType' + required: + - id + - type + type: object + MetricAssetResponseIncluded: + description: List of included assets with full set of attributes. + oneOf: + - $ref: '#/components/schemas/MetricDashboardAsset' + - $ref: '#/components/schemas/MetricMonitorAsset' + - $ref: '#/components/schemas/MetricNotebookAsset' + - $ref: '#/components/schemas/MetricSLOAsset' + MetricAssetResponseRelationships: + description: Relationships to assets related to the metric. + properties: + dashboards: + $ref: '#/components/schemas/MetricAssetDashboardRelationships' + monitors: + $ref: '#/components/schemas/MetricAssetMonitorRelationships' + notebooks: + $ref: '#/components/schemas/MetricAssetNotebookRelationships' + slos: + $ref: '#/components/schemas/MetricAssetSLORelationships' + type: object + MetricAssetSLORelationship: + description: An object of type `slos` that can be referenced in the `included` + data. + properties: + id: + $ref: '#/components/schemas/MetricSLOID' + type: + $ref: '#/components/schemas/MetricSLOType' + type: object + MetricAssetSLORelationships: + description: An object containing a list of SLOs that can be referenced in the + `included` data. + properties: + data: + description: A list of SLOs that can be referenced in the `included` data. + items: + $ref: '#/components/schemas/MetricAssetSLORelationship' + type: array + type: object + MetricAssetsResponse: + description: Response object that includes related dashboards, monitors, notebooks, + and SLOs. + properties: + data: + $ref: '#/components/schemas/MetricAssetResponseData' + included: + description: Array of objects related to the metric assets. + items: + $ref: '#/components/schemas/MetricAssetResponseIncluded' + type: array + type: object MetricBulkConfigureTagsType: default: metric_bulk_configure_tags description: The metric bulk configure tags resource. @@ -10823,6 +12178,44 @@ components: - MAX - MIN - SUM + MetricDashboardAsset: + description: A dashboard object with title and popularity. + properties: + attributes: + $ref: '#/components/schemas/MetricDashboardAttributes' + id: + $ref: '#/components/schemas/MetricDashboardID' + type: + $ref: '#/components/schemas/MetricDashboardType' + required: + - id + - type + type: object + MetricDashboardAttributes: + description: Attributes related to the dashboard, including title and popularity. + properties: + popularity: + description: Value from 0 to 5 that ranks popularity of the dashboard. + format: double + maximum: 5 + minimum: 0 + type: number + title: + description: Title of the asset. + type: string + type: object + MetricDashboardID: + description: The related dashboard's ID. + example: xxx-yyy-zzz + type: string + MetricDashboardType: + description: Dashboard resource type. + enum: + - dashboards + example: dashboards + type: string + x-enum-varnames: + - DASHBOARDS MetricDistinctVolume: description: Object for a single metric's distinct volume. properties: @@ -10963,10 +12356,60 @@ components: origin: $ref: '#/components/schemas/MetricOrigin' type: object + MetricMonitorAsset: + description: A monitor object with title. + properties: + attributes: + $ref: '#/components/schemas/MetricAssetAttributes' + id: + $ref: '#/components/schemas/MetricMonitorID' + type: + $ref: '#/components/schemas/MetricMonitorType' + required: + - id + - type + type: object + MetricMonitorID: + description: The related monitor's ID. + example: '1775073' + type: string + MetricMonitorType: + description: Monitor resource type. + enum: + - monitors + example: monitors + type: string + x-enum-varnames: + - MONITORS MetricName: description: The metric name for this resource. example: test.metric.latency type: string + MetricNotebookAsset: + description: A notebook object with title. + properties: + attributes: + $ref: '#/components/schemas/MetricAssetAttributes' + id: + $ref: '#/components/schemas/MetricNotebookID' + type: + $ref: '#/components/schemas/MetricNotebookType' + required: + - id + - type + type: object + MetricNotebookID: + description: The related notebook's ID. + example: '12345' + type: string + MetricNotebookType: + description: Notebook resource type. + enum: + - notebooks + example: notebooks + type: string + x-enum-varnames: + - NOTEBOOKS MetricOrigin: description: Metric origin information. properties: @@ -10993,7 +12436,7 @@ components: description: The metrics' payload. properties: series: - description: A list of time series to submit to Datadog. + description: A list of timeseries to submit to Datadog. example: - metric: system.load.1 points: @@ -11040,6 +12483,31 @@ components: description: The type of the resource. type: string type: object + MetricSLOAsset: + description: A SLO object with title. + properties: + attributes: + $ref: '#/components/schemas/MetricAssetAttributes' + id: + $ref: '#/components/schemas/MetricSLOID' + type: + $ref: '#/components/schemas/MetricSLOType' + required: + - id + - type + type: object + MetricSLOID: + description: The SLO ID. + example: 9ffef113b389520db54391d67d652dfb + type: string + MetricSLOType: + description: SLO resource type. + enum: + - slos + example: slos + type: string + x-enum-varnames: + - SLOS MetricSeries: description: 'A metric to submit to Datadog. @@ -11047,7 +12515,7 @@ components: properties: interval: description: If the type of the metric is rate or count, define the corresponding - interval. + interval in seconds. example: 20 format: int64 type: integer @@ -11853,6 +13321,29 @@ components: - id - type type: object + NullableUserRelationship: + description: Relationship to user. + nullable: true + properties: + data: + $ref: '#/components/schemas/NullableUserRelationshipData' + required: + - data + type: object + NullableUserRelationshipData: + description: Relationship to user object. + nullable: true + properties: + id: + description: A unique identifier that represents the user. + example: 00000000-0000-0000-0000-000000000000 + type: string + type: + $ref: '#/components/schemas/UserResourceType' + required: + - id + - type + type: object OktaAccount: description: Schema for an Okta account. properties: @@ -12017,6 +13508,24 @@ components: type: string x-enum-varnames: - ON_DEMAND_CONCURRENCY_CAP + OpenAPIEndpoint: + description: Endpoint info extracted from an `OpenAPI` specification. + properties: + method: + description: The endpoint method. + type: string + path: + description: The endpoint path. + type: string + type: object + OpenAPIFile: + description: Object for API data in an `OpenAPI` format as a file. + properties: + openapi_spec_file: + description: Binary `OpenAPI` spec file + format: binary + type: string + type: object OpsgenieServiceCreateAttributes: description: The Opsgenie service attributes for a create request. properties: @@ -12967,6 +14476,113 @@ components: type: string x-enum-varnames: - PROCESS + Project: + description: A Project + properties: + attributes: + $ref: '#/components/schemas/ProjectAttributes' + id: + description: The Project's identifier + example: aeadc05e-98a8-11ec-ac2c-da7ad0900001 + type: string + relationships: + $ref: '#/components/schemas/ProjectRelationships' + type: + $ref: '#/components/schemas/ProjectResourceType' + required: + - id + - type + - attributes + type: object + ProjectAttributes: + description: Project attributes + properties: + key: + description: The project's key + example: CASEM + type: string + name: + description: Project's name + type: string + type: object + ProjectCreate: + description: Project create + properties: + attributes: + $ref: '#/components/schemas/ProjectCreateAttributes' + type: + $ref: '#/components/schemas/ProjectResourceType' + required: + - attributes + - type + type: object + ProjectCreateAttributes: + description: Project creation attributes + properties: + key: + description: Project's key. Cannot be "CASE" + example: SEC + type: string + name: + description: name + example: Security Investigation + type: string + required: + - name + - key + type: object + ProjectCreateRequest: + description: Project create request + properties: + data: + $ref: '#/components/schemas/ProjectCreate' + required: + - data + type: object + ProjectRelationship: + description: Relationship to project + properties: + data: + $ref: '#/components/schemas/ProjectRelationshipData' + required: + - data + type: object + ProjectRelationshipData: + description: Relationship to project object + properties: + id: + description: A unique identifier that represents the project + example: e555e290-ed65-49bd-ae18-8acbfcf18db7 + type: string + type: + $ref: '#/components/schemas/ProjectResourceType' + required: + - id + - type + type: object + ProjectRelationships: + description: Project relationships + properties: + member_team: + $ref: '#/components/schemas/RelationshipToTeamLinks' + member_user: + $ref: '#/components/schemas/UsersRelationship' + type: object + ProjectResourceType: + default: project + description: Project resource type + enum: + - project + example: project + type: string + x-enum-varnames: + - PROJECT + ProjectResponse: + description: Project response + properties: + data: + $ref: '#/components/schemas/Project' + type: object ProjectedCost: description: Projected Cost data. properties: @@ -13023,6 +14639,15 @@ components: type: string x-enum-varnames: - PROJECt_COST + ProjectsResponse: + description: Response with projects + properties: + data: + description: Projects response data + items: + $ref: '#/components/schemas/Project' + type: array + type: object QueryFormula: description: A formula for calculation based on one or more queries. properties: @@ -14113,6 +15738,22 @@ components: - id - type type: object + RelationshipToTeam: + description: Relationship to team. + properties: + data: + $ref: '#/components/schemas/RelationshipToTeamData' + type: object + RelationshipToTeamData: + description: Relationship to Team object. + properties: + id: + description: The unique identifier of the team. + example: f9bb8444-af7f-11ec-ac2c-da7ad0900001 + type: string + type: + $ref: '#/components/schemas/TeamType' + type: object RelationshipToTeamLinkData: description: Relationship between a link and a team properties: @@ -15729,7 +17370,8 @@ components: $ref: '#/components/schemas/CloudConfigurationRuleComplianceSignalOptions' filters: description: Additional queries to filter matched events before they are - processed. + processed. This field is deprecated for log detection, signal correlation, + and workload security rules. items: $ref: '#/components/schemas/SecurityMonitoringFilter' type: array @@ -15977,7 +17619,8 @@ components: type: array filters: description: Additional queries to filter matched events before they are - processed. + processed. This field is deprecated for log detection, signal correlation, + and workload security rules. items: $ref: '#/components/schemas/SecurityMonitoringFilter' type: array @@ -16079,7 +17722,8 @@ components: type: integer filters: description: Additional queries to filter matched events before they are - processed. + processed. This field is deprecated for log detection, signal correlation, + and workload security rules. items: $ref: '#/components/schemas/SecurityMonitoringFilter' type: array @@ -16358,7 +18002,8 @@ components: type: array filters: description: Additional queries to filter matched events before they are - processed. + processed. This field is deprecated for log detection, signal correlation, + and workload security rules. items: $ref: '#/components/schemas/SecurityMonitoringFilter' type: array @@ -16485,7 +18130,8 @@ components: type: integer filters: description: Additional queries to filter matched events before they are - processed. + processed. This field is deprecated for log detection, signal correlation, + and workload security rules. items: $ref: '#/components/schemas/SecurityMonitoringFilter' type: array @@ -16541,6 +18187,219 @@ components: description: The version of the rule. format: int64 type: integer + SecurityMonitoringSuppression: + description: The suppression rule's properties. + properties: + attributes: + $ref: '#/components/schemas/SecurityMonitoringSuppressionAttributes' + id: + $ref: '#/components/schemas/SecurityMonitoringSuppressionID' + type: + $ref: '#/components/schemas/SecurityMonitoringSuppressionType' + type: object + SecurityMonitoringSuppressionAttributes: + description: The attributes of the suppression rule. + properties: + creation_date: + description: A Unix millisecond timestamp given the creation date of the + suppression rule. + format: int64 + type: integer + creator: + $ref: '#/components/schemas/SecurityMonitoringUser' + description: + description: A description for the suppression rule. + example: This rule suppresses low-severity signals in staging environments. + type: string + enabled: + description: Whether the suppression rule is enabled. + example: true + type: boolean + expiration_date: + description: A Unix millisecond timestamp giving an expiration date for + the suppression rule. After this date, it won't suppress signals anymore. + example: 1703187336000 + format: int64 + type: integer + name: + description: The name of the suppression rule. + example: Custom suppression + type: string + rule_query: + description: The rule query of the suppression rule, with the same syntax + as the search bar for detection rules. + example: type:log_detection source:cloudtrail + type: string + suppression_query: + description: The suppression query of the suppression rule. If a signal + matches this query, it is suppressed and not triggered. Same syntax as + the queries to search signals in the signal explorer. + example: env:staging status:low + type: string + update_date: + description: A Unix millisecond timestamp given the update date of the suppression + rule. + format: int64 + type: integer + updater: + $ref: '#/components/schemas/SecurityMonitoringUser' + version: + description: The version of the suppression rule; it starts at 1, and is + incremented at each update. + example: 42 + format: int32 + maximum: 2147483647 + type: integer + type: object + SecurityMonitoringSuppressionCreateAttributes: + description: Object containing the attributes of the suppression rule to be + created. + properties: + description: + description: A description for the suppression rule. + example: This rule suppresses low-severity signals in staging environments. + type: string + enabled: + description: Whether the suppression rule is enabled. + example: true + type: boolean + expiration_date: + description: A Unix millisecond timestamp giving an expiration date for + the suppression rule. After this date, it won't suppress signals anymore. + example: 1703187336000 + format: int64 + type: integer + name: + description: The name of the suppression rule. + example: Custom suppression + type: string + rule_query: + description: The rule query of the suppression rule, with the same syntax + as the search bar for detection rules. + example: type:log_detection source:cloudtrail + type: string + suppression_query: + description: The suppression query of the suppression rule. If a signal + matches this query, it is suppressed and is not triggered . Same syntax + as the queries to search signals in the signal explorer. + example: env:staging status:low + type: string + required: + - name + - enabled + - rule_query + - suppression_query + type: object + SecurityMonitoringSuppressionCreateData: + description: Object for a single suppression rule. + properties: + attributes: + $ref: '#/components/schemas/SecurityMonitoringSuppressionCreateAttributes' + type: + $ref: '#/components/schemas/SecurityMonitoringSuppressionType' + required: + - type + - attributes + type: object + SecurityMonitoringSuppressionCreateRequest: + description: Request object that includes the suppression rule that you would + like to create. + properties: + data: + $ref: '#/components/schemas/SecurityMonitoringSuppressionCreateData' + required: + - data + type: object + SecurityMonitoringSuppressionID: + description: The ID of the suppression rule. + example: 3dd-0uc-h1s + type: string + SecurityMonitoringSuppressionResponse: + description: Response object containing a single suppression rule. + properties: + data: + $ref: '#/components/schemas/SecurityMonitoringSuppression' + type: object + SecurityMonitoringSuppressionType: + default: suppressions + description: The type of the resource. The value should always be `suppressions`. + enum: + - suppressions + example: suppressions + type: string + x-enum-varnames: + - SUPPRESSIONS + SecurityMonitoringSuppressionUpdateAttributes: + description: The suppression rule properties to be updated. + properties: + description: + description: A description for the suppression rule. + example: This rule suppresses low-severity signals in staging environments. + type: string + enabled: + description: Whether the suppression rule is enabled. + example: true + type: boolean + expiration_date: + description: A Unix millisecond timestamp giving an expiration date for + the suppression rule. After this date, it won't suppress signals anymore. + If unset, the expiration date of the suppression rule is left untouched. + If set to `null`, the expiration date is removed. + example: 1703187336000 + format: int64 + nullable: true + type: integer + name: + description: The name of the suppression rule. + example: Custom suppression + type: string + rule_query: + description: The rule query of the suppression rule, with the same syntax + as the search bar for detection rules. + example: type:log_detection source:cloudtrail + type: string + suppression_query: + description: The suppression query of the suppression rule. If a signal + matches this query, it is suppressed and not triggered. Same syntax as + the queries to search signals in the signal explorer. + example: env:staging status:low + type: string + version: + description: The current version of the suppression. This is optional, but + it can help prevent concurrent modifications. + format: int32 + maximum: 2147483647 + type: integer + type: object + SecurityMonitoringSuppressionUpdateData: + description: The new suppression properties; partial updates are supported. + properties: + attributes: + $ref: '#/components/schemas/SecurityMonitoringSuppressionUpdateAttributes' + type: + $ref: '#/components/schemas/SecurityMonitoringSuppressionType' + required: + - type + - attributes + type: object + SecurityMonitoringSuppressionUpdateRequest: + description: Request object containing the fields to update on the suppression + rule. + properties: + data: + $ref: '#/components/schemas/SecurityMonitoringSuppressionUpdateData' + required: + - data + type: object + SecurityMonitoringSuppressionsResponse: + description: Response object containing the available suppression rules. + properties: + data: + description: A list of suppressions objects. + items: + $ref: '#/components/schemas/SecurityMonitoringSuppression' + type: array + type: object SecurityMonitoringThirdPartyRootQuery: description: A query to be combined with the third party case query. properties: @@ -16619,6 +18478,19 @@ components: required: - uuid type: object + SecurityMonitoringUser: + description: A user. + properties: + handle: + description: The handle of the user. + example: john.doe@datadoghq.com + type: string + name: + description: The name of the user. + example: John Doe + nullable: true + type: string + type: object SensitiveDataScannerConfigRequest: description: Group reorder request. properties: @@ -16879,6 +18751,44 @@ components: meta: $ref: '#/components/schemas/SensitiveDataScannerMetaVersionOnly' type: object + SensitiveDataScannerIncludedKeywordConfiguration: + description: 'Object defining a set of keywords and a number of characters that + help reduce noise. + + You can provide a list of keywords you would like to check within a defined + proximity of the matching pattern. + + If any of the keywords are found within the proximity check, the match is + kept. + + If none are found, the match is discarded.' + properties: + character_count: + description: 'The number of characters behind a match detected by Sensitive + Data Scanner to look for the keywords defined. + + `character_count` should be greater than the maximum length of a keyword + defined for a rule.' + example: 30 + format: int64 + maximum: 50 + minimum: 1 + type: integer + keywords: + description: 'Keyword list that will be checked during scanning in order + to validate a match. + + The number of keywords in the list must be less than or equal to 30.' + example: + - credit card + - cc + items: + type: string + type: array + required: + - keywords + - character_count + type: object SensitiveDataScannerMeta: description: Meta response containing information about the API. properties: @@ -16972,6 +18882,8 @@ components: items: type: string type: array + included_keyword_configuration: + $ref: '#/components/schemas/SensitiveDataScannerIncludedKeywordConfiguration' is_enabled: description: Whether or not the rule is enabled. type: boolean @@ -17150,7 +19062,10 @@ components: description: Name of the standard pattern. type: string pattern: - description: Regex to match. + deprecated: true + description: (Deprecated) Regex to match, optionally documented for older + standard rules. Refer to the `description` field to understand what the + rule does. type: string priority: description: Integer from 1 (high) to 5 (low) indicating standard pattern @@ -17860,6 +19775,14 @@ components: feature, which the service is a part of. example: my-app type: string + ci-pipeline-fingerprints: + description: A set of CI fingerprints. + example: + - j88xdEy0J5lc + - eZ7LMljCk8vo + items: + type: string + type: array contacts: description: A list of contacts related to the services. items: @@ -18240,6 +20163,23 @@ components: $ref: '#/components/schemas/ServiceDefinitionData' type: array type: object + ServiceNowTicket: + description: ServiceNow ticket attached to case + nullable: true + properties: + result: + $ref: '#/components/schemas/ServiceNowTicketResult' + status: + $ref: '#/components/schemas/Case3rdPartyTicketStatus' + readOnly: true + type: object + ServiceNowTicketResult: + description: ServiceNow ticket information + properties: + sys_target_link: + description: Link to the Incident created on ServiceNow + type: string + type: object SlackIntegrationMetadata: description: Incident integration metadata for the Slack integration. properties: @@ -19894,6 +21834,7 @@ components: If the second element is not present, the API returns null.' items: $ref: '#/components/schemas/Unit' + nullable: true type: array type: object TimeseriesResponseSeriesList: @@ -19956,6 +21897,29 @@ components: example: min type: string type: object + UpdateOpenAPIResponse: + description: Response for `UpdateOpenAPI`. + properties: + data: + $ref: '#/components/schemas/UpdateOpenAPIResponseData' + type: object + UpdateOpenAPIResponseAttributes: + description: Attributes for `UpdateOpenAPI`. + properties: + failed_endpoints: + description: List of endpoints which couldn't be parsed. + items: + $ref: '#/components/schemas/OpenAPIEndpoint' + type: array + type: object + UpdateOpenAPIResponseData: + description: Data envelope for `UpdateOpenAPIResponse`. + properties: + attributes: + $ref: '#/components/schemas/UpdateOpenAPIResponseAttributes' + id: + $ref: '#/components/schemas/ApiID' + type: object UsageApplicationSecurityMonitoringResponse: description: Application Security Monitoring usage response. properties: @@ -20218,12 +22182,34 @@ components: type: string x-enum-varnames: - USER_INVITATIONS + UserRelationshipData: + description: Relationship to user object. + properties: + id: + description: A unique identifier that represents the user. + example: 00000000-0000-0000-0000-000000000000 + type: string + type: + $ref: '#/components/schemas/UserResourceType' + required: + - id + - type + type: object UserRelationships: description: Relationships of the user object. properties: roles: $ref: '#/components/schemas/RelationshipToRoles' type: object + UserResourceType: + default: user + description: User resource type. + enum: + - user + example: user + type: string + x-enum-varnames: + - USER UserResponse: description: Response containing information about a single user. properties: @@ -20302,6 +22288,10 @@ components: required: - type type: object + UserTeamIncluded: + description: Included resources related to the team membership + oneOf: + - $ref: '#/components/schemas/User' UserTeamPermission: description: A user's permissions for a given team properties: @@ -20356,6 +22346,11 @@ components: properties: data: $ref: '#/components/schemas/UserTeam' + included: + description: Resources related to the team memberships + items: + $ref: '#/components/schemas/UserTeamIncluded' + type: array type: object UserTeamRole: description: The user's role within the team @@ -20418,6 +22413,11 @@ components: items: $ref: '#/components/schemas/UserTeam' type: array + included: + description: Resources related to the team memberships + items: + $ref: '#/components/schemas/UserTeamIncluded' + type: array links: $ref: '#/components/schemas/TeamsResponseLinks' meta: @@ -20460,6 +22460,18 @@ components: required: - data type: object + UsersRelationship: + description: Relationship to users. + properties: + data: + description: Relationships to user objects. + example: [] + items: + $ref: '#/components/schemas/UserRelationshipData' + type: array + required: + - data + type: object UsersResponse: description: Response containing information about multiple users. properties: @@ -20532,6 +22544,8 @@ components: apm_service_catalog_read: View service catalog and service definitions. apm_service_catalog_write: Add, modify, and delete service catalog definitions when those definitions are maintained by Datadog. + cases_read: Read all cases data. + cases_write: Create, update and delete cases data. ci_visibility_pipelines_write: Create CI Visibility pipeline spans using the API. ci_visibility_read: View CI Visibility. @@ -20782,6 +22796,195 @@ paths: tags: - Key Management x-codegen-request-body-name: body + /api/v2/apicatalog/api/{id}: + delete: + description: Delete a specific API by ID. + operationId: DeleteOpenAPI + parameters: + - description: ID of the API to delete + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/ApiID' + responses: + '204': + description: API deleted successfully + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad request + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: API not found error + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Delete an API + tags: + - API Management + x-unstable: '**Note**: This endpoint is in public beta. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + /api/v2/apicatalog/api/{id}/openapi: + get: + description: Retrieve information about a specific API in [OpenAPI](https://spec.openapis.org/oas/latest.html) + format file. + operationId: GetOpenAPI + parameters: + - description: ID of the API to retrieve + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/ApiID' + responses: + '200': + content: + multipart/form-data: + schema: + format: binary + type: string + description: OK + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad request + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: API not found error + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Get an API + tags: + - API Management + x-unstable: '**Note**: This endpoint is in public beta. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + put: + description: 'Update information about a specific API. The given content will + replace all API content of the given ID. + + The ID is returned by the create API, or can be found in the URL in the API + catalog UI. + + ' + operationId: UpdateOpenAPI + parameters: + - description: ID of the API to modify + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/ApiID' + requestBody: + content: + multipart/form-data: + schema: + $ref: '#/components/schemas/OpenAPIFile' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateOpenAPIResponse' + description: API updated successfully + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad request + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: API not found error + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Update an API + tags: + - API Management + x-unstable: '**Note**: This endpoint is in public beta. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + /api/v2/apicatalog/openapi: + post: + description: 'Create a new API from the [OpenAPI](https://spec.openapis.org/oas/latest.html) + specification given. + + It supports version `2.0`, `3.0` and `3.1` of the specification. A specific + extension section, `x-datadog`, + + let you specify the `teamHandle` for your team responsible for the API in + Datadog. + + It returns the created API ID. + + ' + operationId: CreateOpenAPI + requestBody: + content: + multipart/form-data: + schema: + $ref: '#/components/schemas/OpenAPIFile' + required: true + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/CreateOpenAPIResponse' + description: API created successfully + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad request + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Create a new API + tags: + - API Management + x-unstable: '**Note**: This endpoint is in public beta. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' /api/v2/apm/config/metrics: get: description: Get the list of configured span-based metrics with their definitions. @@ -21531,6 +23734,472 @@ paths: - AuthN Mappings x-codegen-request-body-name: body x-permission: OR(USER_ACCESS_MANAGE) + /api/v2/cases: + get: + description: Search cases. + operationId: SearchCases + parameters: + - $ref: '#/components/parameters/PageSize' + - $ref: '#/components/parameters/PageOffset' + - $ref: '#/components/parameters/CaseSortableFieldParameter' + - description: Search query + in: query + name: filter + required: false + schema: + example: status:open (team:case-management OR team:event-management) + type: string + - description: Specify if order is ascending or not + in: query + name: sort[asc] + required: false + schema: + default: false + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CasesResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '401': + $ref: '#/components/responses/UnauthorizedResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_read + summary: Search cases + tags: + - Case Management + x-pagination: + limitParam: page[size] + pageOffsetParam: page[offset] + resultsPath: data + post: + description: Create a Case + operationId: CreateCase + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CaseCreateRequest' + description: Case payload + required: true + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/CaseResponse' + description: CREATED + '400': + $ref: '#/components/responses/BadRequestResponse' + '401': + $ref: '#/components/responses/UnauthorizedResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Create a case + tags: + - Case Management + /api/v2/cases/projects: + get: + description: Get all projects. + operationId: GetProjects + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ProjectsResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '401': + $ref: '#/components/responses/UnauthorizedResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_read + summary: Get all projects + tags: + - Case Management + post: + description: Create a project. + operationId: CreateProject + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ProjectCreateRequest' + description: Project payload + required: true + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ProjectResponse' + description: CREATED + '400': + $ref: '#/components/responses/BadRequestResponse' + '401': + $ref: '#/components/responses/UnauthorizedResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Create a project + tags: + - Case Management + /api/v2/cases/projects/{project_id}: + delete: + description: Remove a project using the project's `id`. + operationId: DeleteProject + parameters: + - $ref: '#/components/parameters/ProjectIDPathParameter' + responses: + '204': + description: No Content + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/APIErrorResponse' + description: API error response + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Remove a project + tags: + - Case Management + get: + description: Get the details of a project by `project_id`. + operationId: GetProject + parameters: + - $ref: '#/components/parameters/ProjectIDPathParameter' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ProjectResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '401': + $ref: '#/components/responses/UnauthorizedResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_read + summary: Get the details of a project + tags: + - Case Management + /api/v2/cases/{case_id}: + get: + description: Get the details of case by `case_id` + operationId: GetCase + parameters: + - $ref: '#/components/parameters/CaseIDPathParameter' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CaseResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '401': + $ref: '#/components/responses/UnauthorizedResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_read + summary: Get the details of a case + tags: + - Case Management + /api/v2/cases/{case_id}/archive: + post: + description: Archive case + operationId: ArchiveCase + parameters: + - $ref: '#/components/parameters/CaseIDPathParameter' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CaseEmptyRequest' + description: Archive case payload + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CaseResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '401': + $ref: '#/components/responses/UnauthorizedResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Archive case + tags: + - Case Management + /api/v2/cases/{case_id}/assign: + post: + description: Assign case to a user + operationId: AssignCase + parameters: + - $ref: '#/components/parameters/CaseIDPathParameter' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CaseAssignRequest' + description: Assign case payload + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CaseResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '401': + $ref: '#/components/responses/UnauthorizedResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Assign case + tags: + - Case Management + /api/v2/cases/{case_id}/priority: + post: + description: Update case priority + operationId: UpdatePriority + parameters: + - $ref: '#/components/parameters/CaseIDPathParameter' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CaseUpdatePriorityRequest' + description: Case priority update payload + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CaseResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '401': + $ref: '#/components/responses/UnauthorizedResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Update case priority + tags: + - Case Management + /api/v2/cases/{case_id}/status: + post: + description: Update case status + operationId: UpdateStatus + parameters: + - $ref: '#/components/parameters/CaseIDPathParameter' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CaseUpdateStatusRequest' + description: Case status update payload + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CaseResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '401': + $ref: '#/components/responses/UnauthorizedResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Update case status + tags: + - Case Management + /api/v2/cases/{case_id}/unarchive: + post: + description: Unarchive case + operationId: UnarchiveCase + parameters: + - $ref: '#/components/parameters/CaseIDPathParameter' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CaseEmptyRequest' + description: Unarchive case payload + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CaseResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '401': + $ref: '#/components/responses/UnauthorizedResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Unarchive case + tags: + - Case Management + /api/v2/cases/{case_id}/unassign: + post: + description: Unassign case + operationId: UnassignCase + parameters: + - $ref: '#/components/parameters/CaseIDPathParameter' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CaseEmptyRequest' + description: Unassign case payload + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CaseResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '401': + $ref: '#/components/responses/UnauthorizedResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Unassign case + tags: + - Case Management /api/v2/ci/pipeline: post: description: 'Send your pipeline event to your Datadog platform over HTTP. For @@ -21803,8 +24472,8 @@ paths: x-codegen-request-body-name: body /api/v2/ci/tests/events: get: - description: 'List endpoint returns CI Visibility test events that match a [log - search query](https://docs.datadoghq.com/logs/explorer/search_syntax/). + description: 'List endpoint returns CI Visibility test events that match a [search + query](https://docs.datadoghq.com/continuous_integration/explorer/search_syntax/). [Results are paginated similarly to logs](https://docs.datadoghq.com/logs/guide/collect-multiple-logs-with-pagination). @@ -21887,8 +24556,8 @@ paths: resultsPath: data /api/v2/ci/tests/events/search: post: - description: 'List endpoint returns CI Visibility test events that match a [log - search query](https://docs.datadoghq.com/logs/explorer/search_syntax/). + description: 'List endpoint returns CI Visibility test events that match a [search + query](https://docs.datadoghq.com/continuous_integration/explorer/search_syntax/). [Results are paginated similarly to logs](https://docs.datadoghq.com/logs/guide/collect-multiple-logs-with-pagination). @@ -22101,9 +24770,6 @@ paths: description: Forbidden '429': $ref: '#/components/responses/TooManyRequestsResponse' - security: - - apiKeyAuth: [] - appKeyAuth: [] summary: List Cloud Cost Management AWS CUR configs tags: - Cloud Cost Management @@ -22141,9 +24807,6 @@ paths: description: Forbidden '429': $ref: '#/components/responses/TooManyRequestsResponse' - security: - - apiKeyAuth: [] - appKeyAuth: [] summary: Create Cloud Cost Management AWS CUR config tags: - Cloud Cost Management @@ -22174,9 +24837,6 @@ paths: description: Not Found '429': $ref: '#/components/responses/TooManyRequestsResponse' - security: - - apiKeyAuth: [] - appKeyAuth: [] summary: Delete Cloud Cost Management AWS CUR config tags: - Cloud Cost Management @@ -22210,9 +24870,6 @@ paths: description: Forbidden '429': $ref: '#/components/responses/TooManyRequestsResponse' - security: - - apiKeyAuth: [] - appKeyAuth: [] summary: Update Cloud Cost Management AWS CUR config tags: - Cloud Cost Management @@ -22254,9 +24911,6 @@ paths: description: Forbidden '429': $ref: '#/components/responses/TooManyRequestsResponse' - security: - - apiKeyAuth: [] - appKeyAuth: [] summary: List related AWS accounts tags: - Cloud Cost Management @@ -22283,9 +24937,6 @@ paths: description: Forbidden '429': $ref: '#/components/responses/TooManyRequestsResponse' - security: - - apiKeyAuth: [] - appKeyAuth: [] summary: List Cloud Cost Management Azure configs tags: - Cloud Cost Management @@ -22323,9 +24974,6 @@ paths: description: Forbidden '429': $ref: '#/components/responses/TooManyRequestsResponse' - security: - - apiKeyAuth: [] - appKeyAuth: [] summary: Create Cloud Cost Management Azure configs tags: - Cloud Cost Management @@ -22356,9 +25004,6 @@ paths: description: Not Found '429': $ref: '#/components/responses/TooManyRequestsResponse' - security: - - apiKeyAuth: [] - appKeyAuth: [] summary: Delete Cloud Cost Management Azure config tags: - Cloud Cost Management @@ -22398,9 +25043,6 @@ paths: description: Forbidden '429': $ref: '#/components/responses/TooManyRequestsResponse' - security: - - apiKeyAuth: [] - appKeyAuth: [] summary: Update Cloud Cost Management Azure config tags: - Cloud Cost Management @@ -22427,9 +25069,6 @@ paths: description: Forbidden '429': $ref: '#/components/responses/TooManyRequestsResponse' - security: - - apiKeyAuth: [] - appKeyAuth: [] summary: Cloud Cost Enabled tags: - Cloud Cost Management @@ -22440,7 +25079,7 @@ paths: /api/v2/cost_by_tag/active_billing_dimensions: get: description: Get active billing dimensions for cost attribution. Cost data for - a given month becomes available no later than the 17th of the following month. + a given month becomes available no later than the 19th of the following month. operationId: GetActiveBillingDimensions responses: '200': @@ -22470,7 +25109,8 @@ paths: security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: [] + - AuthZ: + - usage_read summary: Get active billing dimensions for cost attribution tags: - Usage Metering @@ -22481,7 +25121,7 @@ paths: get: description: "Get monthly cost attribution by tag across multi-org and single root-org accounts.\nCost Attribution data for a given month becomes available - no later than the 17th of the following month.\nThis API endpoint is paginated. + no later than the 19th of the following month.\nThis API endpoint is paginated. To make sure you receive all records, check if the value of `next_record_id` is\nset in the response. If it is, make another request and pass `next_record_id` as a parameter.\nPseudo code example:\n```\nresponse := GetMonthlyCostAttribution(start_month, @@ -22591,7 +25231,8 @@ paths: security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: [] + - AuthZ: + - usage_read summary: Get Monthly Cost Attribution tags: - Usage Metering @@ -25839,6 +28480,135 @@ paths: tags: - Logs Archives x-codegen-request-body-name: body + /api/v2/logs/config/custom-destinations: + get: + description: Get the list of configured custom destinations in your organization + with their definitions. + operationId: ListLogsCustomDestinations + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CustomDestinationsResponse' + description: OK + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/APIErrorResponse' + description: Forbidden + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Get all custom destinations + tags: + - Logs Custom Destinations + post: + description: Create a custom destination in your organization. + operationId: CreateLogsCustomDestination + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CustomDestinationCreateRequest' + description: The definition of the new custom destination. + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CustomDestinationResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '409': + $ref: '#/components/responses/ConflictResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Create a custom destination + tags: + - Logs Custom Destinations + x-codegen-request-body-name: body + /api/v2/logs/config/custom-destinations/{custom_destination_id}: + delete: + description: Delete a specific custom destination in your organization. + operationId: DeleteLogsCustomDestination + parameters: + - $ref: '#/components/parameters/CustomDestinationId' + responses: + '204': + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Delete a custom destination + tags: + - Logs Custom Destinations + get: + description: Get a specific custom destination in your organization. + operationId: GetLogsCustomDestination + parameters: + - $ref: '#/components/parameters/CustomDestinationId' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CustomDestinationResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Get a custom destination + tags: + - Logs Custom Destinations + patch: + description: Update the given fields of a specific custom destination in your + organization. + operationId: UpdateLogsCustomDestination + parameters: + - $ref: '#/components/parameters/CustomDestinationId' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CustomDestinationUpdateRequest' + description: New definition of the custom destination's fields. + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CustomDestinationResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '409': + $ref: '#/components/responses/ConflictResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Update a custom destination + tags: + - Logs Custom Destinations + x-codegen-request-body-name: body /api/v2/logs/config/metrics: get: description: Get the list of configured log-based metrics with their definitions. @@ -26352,8 +29122,8 @@ paths: x-codegen-request-body-name: body /api/v2/metrics/{metric_name}/active-configurations: get: - description: List tags and aggregations that are actively queried on dashboards - and monitors for a given metric name. + description: List tags and aggregations that are actively queried on dashboards, + notebooks, monitors, and the Metrics Explorer for a given metric name. operationId: ListActiveMetricConfigurations parameters: - $ref: '#/components/parameters/MetricName' @@ -26452,6 +29222,51 @@ paths: summary: List tags by metric name tags: - Metrics + /api/v2/metrics/{metric_name}/assets: + get: + description: Returns dashboards, monitors, notebooks, and SLOs that a metric + is stored in, if any. Updated every 24 hours. + operationId: ListMetricAssets + parameters: + - $ref: '#/components/parameters/MetricName' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetricAssetsResponse' + description: Success + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/APIErrorResponse' + description: API error response. + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/APIErrorResponse' + description: API error response. + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/APIErrorResponse' + description: API error response. + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/APIErrorResponse' + description: Too Many Requests + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Related Assets to a Metric + tags: + - Metrics /api/v2/metrics/{metric_name}/estimate: get: description: Returns the estimated cardinality for a metric with a given tag, @@ -26468,7 +29283,8 @@ paths: schema: type: string - description: The number of hours of look back (from now) to estimate cardinality - with. + with. Estimates are based on historical data, and unspecified fields default + to the minimum 49 hours. example: 49 in: query name: filter[hours_ago] @@ -26476,6 +29292,7 @@ paths: schema: format: int32 maximum: 2147483647 + minimum: 49 type: integer - description: The number of aggregations that a `count`, `rate`, or `gauge` metric is configured to use. Max number of aggregation combos is 9. @@ -26543,19 +29360,6 @@ paths: summary: Tag Configuration Cardinality Estimator tags: - Metrics - x-dd-ownership: - notification_configuration: - manual_escalation_policy: '[Points Aggregation] Primary' - prod_high_urgency: '@pagerduty-Points-Aggregation @slack-points-aggr-ops' - prod_low_urgency: '@slack-points-aggr-ops' - slack_support_channel: '#points-aggregation' - staging_high_urgency: '@slack-points-aggr-stg-ops' - staging_low_urgency: '@slack-points-aggr-stg-ops' - team: points-aggregation - team_escalation: '[Points Aggregation] Primary' - x-permission: - operator: OPEN - permissions: [] /api/v2/metrics/{metric_name}/tags: delete: description: 'Deletes a metric''s tag configuration. Can only be used with application @@ -27619,10 +30423,9 @@ paths: - Metrics x-codegen-request-body-name: body x-unstable: '**Note**: This endpoint is GA for Metrics, Real User Monitoring - (RUM), and Cloud Cost Management data sources. + (RUM), Cloud Cost Management, and Log Management data sources. - Support for logs is in beta. We are gradually onboarding support for more - sources. If you have any + We are gradually onboarding support for more sources. If you have any feedback, contact [Datadog Support](https://docs.datadoghq.com/help/).' /api/v2/query/timeseries: @@ -27662,12 +30465,159 @@ paths: - Metrics x-codegen-request-body-name: body x-unstable: '**Note**: This endpoint is GA for Metrics, Real User Monitoring - (RUM), and Cloud Cost Management data sources. + (RUM), Cloud Cost Management, and Log Management data sources. - Support for logs is in beta. We are gradually onboarding support for more - sources. If you have any + We are gradually onboarding support for more sources. If you have any feedback, contact [Datadog Support](https://docs.datadoghq.com/help/).' + /api/v2/remote_config/products/cws/agent_rules: + get: + description: Get the list of Cloud Security Management Threats Agent rules. + operationId: ListCSMThreatsAgentRules + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CloudWorkloadSecurityAgentRulesListResponse' + description: OK + '403': + $ref: '#/components/responses/NotAuthorizedResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Get all CSM Threats Agent rules + tags: + - Cloud Workload Security + post: + description: Create a new Cloud Security Management Threats Agent rule with + the given parameters. + operationId: CreateCSMThreatsAgentRule + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CloudWorkloadSecurityAgentRuleCreateRequest' + description: The definition of the new Agent rule. + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CloudWorkloadSecurityAgentRuleResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/NotAuthorizedResponse' + '409': + $ref: '#/components/responses/ConflictResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Create a CSM Threats Agent rule + tags: + - Cloud Workload Security + x-codegen-request-body-name: body + /api/v2/remote_config/products/cws/agent_rules/{agent_rule_id}: + delete: + description: Delete a specific Cloud Security Management Threats Agent rule. + operationId: DeleteCSMThreatsAgentRule + parameters: + - $ref: '#/components/parameters/CloudWorkloadSecurityAgentRuleID' + responses: + '204': + description: OK + '403': + $ref: '#/components/responses/NotAuthorizedResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Delete a CSM Threats Agent rule + tags: + - Cloud Workload Security + get: + description: Get the details of a specific Cloud Security Management Threats + Agent rule. + operationId: GetCSMThreatsAgentRule + parameters: + - $ref: '#/components/parameters/CloudWorkloadSecurityAgentRuleID' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CloudWorkloadSecurityAgentRuleResponse' + description: OK + '403': + $ref: '#/components/responses/NotAuthorizedResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Get a CSM Threats Agent rule + tags: + - Cloud Workload Security + patch: + description: 'Update a specific Cloud Security Management Threats Agent rule. + + Returns the Agent rule object when the request is successful.' + operationId: UpdateCSMThreatsAgentRule + parameters: + - $ref: '#/components/parameters/CloudWorkloadSecurityAgentRuleID' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CloudWorkloadSecurityAgentRuleUpdateRequest' + description: New definition of the Agent rule. + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CloudWorkloadSecurityAgentRuleResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/NotAuthorizedResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '409': + $ref: '#/components/responses/ConcurrentModificationResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Update a CSM Threats Agent rule + tags: + - Cloud Workload Security + x-codegen-request-body-name: body + /api/v2/remote_config/products/cws/policy/download: + get: + description: 'The download endpoint generates a CSM Threats policy file from + your currently active + + CSM Threats rules, and downloads them as a `.policy` file. This file can then + be deployed to + + your Agents to update the policy running in your environment.' + operationId: DownloadCSMThreatsPolicy + responses: + '200': + content: + application/zip: + schema: + format: binary + type: string + description: OK + '403': + $ref: '#/components/responses/NotAuthorizedResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Get the latest CSM Threats policy + tags: + - Cloud Workload Security /api/v2/restriction_policy/{resource_id}: delete: description: Deletes the restriction policy associated with a specified resource. @@ -28770,10 +31720,9 @@ paths: tags: - Service Scorecards x-codegen-request-body-name: body - x-unstable: '**Note**: This endpoint is in private beta. To request access, - fill out this [sign-up form](https://forms.gle/CcEyp1uJmZpxRv8U8), + x-unstable: '**Note**: This endpoint is in public beta. - and we will be in touch. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' /api/v2/scorecard/rules: get: description: Fetch all rules. @@ -28898,10 +31847,9 @@ paths: tags: - Service Scorecards x-codegen-request-body-name: body - x-unstable: '**Note**: This endpoint is in private beta. To request access, - fill out this [sign-up form](https://forms.gle/CcEyp1uJmZpxRv8U8), + x-unstable: '**Note**: This endpoint is in public beta. - and we will be in touch. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' /api/v2/scorecard/rules/{rule_id}: delete: description: Deletes a single rule. @@ -28927,10 +31875,9 @@ paths: summary: Delete a rule tags: - Service Scorecards - x-unstable: '**Note**: This endpoint is in private beta. To request access, - fill out this [sign-up form](https://forms.gle/CcEyp1uJmZpxRv8U8), + x-unstable: '**Note**: This endpoint is in public beta. - and we will be in touch. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' /api/v2/security/cloud_workload/policy/download: get: description: 'The download endpoint generates a Cloud Workload Security policy @@ -29233,6 +32180,149 @@ paths: tags: - Security Monitoring x-codegen-request-body-name: body + /api/v2/security_monitoring/configuration/suppressions: + get: + description: Get the list of all suppression rules. + operationId: ListSecurityMonitoringSuppressions + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SecurityMonitoringSuppressionsResponse' + description: OK + '403': + $ref: '#/components/responses/NotAuthorizedResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - security_monitoring_suppressions_read + summary: Get all suppression rules + tags: + - Security Monitoring + post: + description: Create a new suppression rule. + operationId: CreateSecurityMonitoringSuppression + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SecurityMonitoringSuppressionCreateRequest' + description: The definition of the new suppression rule. + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SecurityMonitoringSuppressionResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/NotAuthorizedResponse' + '409': + $ref: '#/components/responses/ConflictResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - security_monitoring_suppressions_write + summary: Create a suppression rule + tags: + - Security Monitoring + x-codegen-request-body-name: body + /api/v2/security_monitoring/configuration/suppressions/{suppression_id}: + delete: + description: Delete a specific suppression rule. + operationId: DeleteSecurityMonitoringSuppression + parameters: + - $ref: '#/components/parameters/SecurityMonitoringSuppressionID' + responses: + '204': + description: OK + '403': + $ref: '#/components/responses/NotAuthorizedResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - security_monitoring_suppressions_write + summary: Delete a suppression rule + tags: + - Security Monitoring + get: + description: Get the details of a specific suppression rule. + operationId: GetSecurityMonitoringSuppression + parameters: + - $ref: '#/components/parameters/SecurityMonitoringSuppressionID' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SecurityMonitoringSuppressionResponse' + description: OK + '403': + $ref: '#/components/responses/NotAuthorizedResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - security_monitoring_suppressions_read + summary: Get a suppression rule + tags: + - Security Monitoring + patch: + description: Update a specific suppression rule. + operationId: UpdateSecurityMonitoringSuppression + parameters: + - $ref: '#/components/parameters/SecurityMonitoringSuppressionID' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SecurityMonitoringSuppressionUpdateRequest' + description: New definition of the suppression rule. Supports partial updates. + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SecurityMonitoringSuppressionResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/NotAuthorizedResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '409': + $ref: '#/components/responses/ConcurrentModificationResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - security_monitoring_suppressions_write + summary: Update a suppression rule + tags: + - Security Monitoring /api/v2/security_monitoring/rules: get: description: List rules. @@ -29290,6 +32380,34 @@ paths: tags: - Security Monitoring x-codegen-request-body-name: body + /api/v2/security_monitoring/rules/validation: + post: + description: Validate a detection rule. + operationId: ValidateSecurityMonitoringRule + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SecurityMonitoringRuleCreatePayload' + required: true + responses: + '204': + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/NotAuthorizedResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - security_monitoring_rules_write + summary: Validate a detection rule + tags: + - Security Monitoring + x-codegen-request-body-name: body /api/v2/security_monitoring/rules/{rule_id}: delete: description: Delete an existing rule. Default rules cannot be deleted. @@ -30295,6 +33413,7 @@ paths: x-codegen-request-body-name: body /api/v2/services: get: + deprecated: true description: Get all incident services uploaded for the requesting user's organization. If the `include[users]` query parameter is provided, the included attribute will contain the users related to these incident services. @@ -30329,10 +33448,9 @@ paths: summary: Get a list of all incident services tags: - Incident Services - x-unstable: '**Note**: This endpoint is in public beta. - - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + x-unstable: '**Note**: This endpoint is deprecated.' post: + deprecated: true description: Creates a new incident service. operationId: CreateIncidentService requestBody: @@ -30368,9 +33486,7 @@ paths: tags: - Incident Services x-codegen-request-body-name: body - x-unstable: '**Note**: This endpoint is in public beta. - - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + x-unstable: '**Note**: This endpoint is deprecated.' /api/v2/services/definitions: get: description: Get a list of all service definitions from the Datadog Service @@ -30401,7 +33517,7 @@ paths: - Service Definition x-pagination: limitParam: page[size] - pageOffsetParam: page[number] + pageParam: page[number] resultsPath: data post: description: Create or update service definition in the Datadog Service Catalog. @@ -30495,6 +33611,7 @@ paths: - Service Definition /api/v2/services/{service_id}: delete: + deprecated: true description: Deletes an existing incident service. operationId: DeleteIncidentService parameters: @@ -30520,10 +33637,9 @@ paths: summary: Delete an existing incident service tags: - Incident Services - x-unstable: '**Note**: This endpoint is in public beta. - - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + x-unstable: '**Note**: This endpoint is deprecated.' get: + deprecated: true description: 'Get details of an incident service. If the `include[users]` query parameter is provided, @@ -30557,10 +33673,9 @@ paths: summary: Get details of an incident service tags: - Incident Services - x-unstable: '**Note**: This endpoint is in public beta. - - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + x-unstable: '**Note**: This endpoint is deprecated.' patch: + deprecated: true description: Updates an existing incident service. Only provide the attributes which should be updated as this request is a partial update. operationId: UpdateIncidentService @@ -30599,9 +33714,7 @@ paths: tags: - Incident Services x-codegen-request-body-name: body - x-unstable: '**Note**: This endpoint is in public beta. - - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + x-unstable: '**Note**: This endpoint is deprecated.' /api/v2/spans/analytics/aggregate: post: description: 'The API endpoint to aggregate spans into buckets and compute metrics @@ -31295,6 +34408,10 @@ paths: summary: Get team memberships tags: - Teams + x-pagination: + limitParam: page[size] + pageParam: page[number] + resultsPath: data post: description: Add a user to a team. operationId: CreateTeamMembership @@ -31698,10 +34815,11 @@ paths: x-unstable: '**Note**: This endpoint is deprecated. See the [Teams API endpoints](https://docs.datadoghq.com/api/latest/teams/).' /api/v2/usage/application_security: get: + deprecated: true description: 'Get hourly usage for application security . - **Note:** hourly usage data for all products is now available in the [Get - hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family)' + **Note:** This endpoint has been deprecated. Hourly usage data for all products + is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family)' operationId: GetUsageApplicationSecurityMonitoring parameters: - description: 'Datetime in ISO-8601 format, UTC, precise to hour: `[YYYY-MM-DDThh]` @@ -31999,10 +35117,10 @@ paths: `application_security`, `audit_trail`, `serverless`, `ci_app`, `cloud_cost_management`, `csm_container_enterprise`, `csm_host_enterprise`, `cspm`, `custom_events`, - `cws`, `dbm`, `fargate`, + `cws`, `dbm`, `error_tracking`, - `infra_hosts`, `incident_management`, `indexed_logs`, `indexed_spans`, `ingested_spans`, - `iot`, + `fargate`, `infra_hosts`, `incident_management`, `indexed_logs`, `indexed_spans`, + `ingested_spans`, `iot`, `lambda_traced_invocations`, `logs`, `network_flows`, `network_hosts`, `netflow_monitoring`, `observability_pipelines`, @@ -32099,10 +35217,11 @@ paths: - Usage Metering /api/v2/usage/lambda_traced_invocations: get: - description: 'Get hourly usage for lambda traced invocations. + deprecated: true + description: 'Get hourly usage for Lambda traced invocations. - **Note:** hourly usage data for all products is now available in the [Get - hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family)' + **Note:** This endpoint has been deprecated.. Hourly usage data for all products + is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family)' operationId: GetUsageLambdaTracedInvocations parameters: - description: 'Datetime in ISO-8601 format, UTC, precise to hour: `[YYYY-MM-DDThh]` @@ -32153,15 +35272,16 @@ paths: appKeyAuth: [] - AuthZ: - usage_read - summary: Get hourly usage for lambda traced invocations + summary: Get hourly usage for Lambda traced invocations tags: - Usage Metering /api/v2/usage/observability_pipelines: get: + deprecated: true description: 'Get hourly usage for observability pipelines. - **Note:** hourly usage data for all products is now available in the [Get - hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family)' + **Note:** This endpoint has been deprecated. Hourly usage data for all products + is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family)' operationId: GetUsageObservabilityPipelines parameters: - description: 'Datetime in ISO-8601 format, UTC, precise to hour: `[YYYY-MM-DDThh]` @@ -32737,44 +35857,68 @@ servers: default: api description: The subdomain where the API is deployed. tags: +- description: Configure your API endpoints through the Datadog API. + name: API Management - description: Manage configuration of [APM retention filters](https://app.datadoghq.com/apm/traces/retention-filters) for your organization. You need an API and application key with Admin rights to - interact with this endpoint. + interact with this endpoint. See [retention filters](https://docs.datadoghq.com/tracing/trace_pipeline/trace_retention/#retention-filters) + on the Trace Retention page for more information. externalDocs: description: Find out more at url: https://docs.datadoghq.com/tracing/trace_pipeline/trace_retention/ name: APM Retention Filters - description: Search your Audit Logs events over HTTP. name: Audit -- description: '[AuthN Mappings API](https://docs.datadoghq.com/account_management/authn_mapping/?tab=example) +- description: '[The AuthN Mappings API](https://docs.datadoghq.com/account_management/authn_mapping/?tab=example) - is used to automatically map group of users to roles in Datadog using attributes + is used to automatically map groups of users to roles in Datadog using attributes - sent from Identity Providers.' + sent from Identity Providers. Use these endpoints to manage your AuthN Mappings.' name: AuthN Mappings - description: Search or aggregate your CI Visibility pipeline events and send them - to your Datadog site over HTTP. + to your Datadog site over HTTP. See the [CI Pipeline Visibility in Datadog page](https://docs.datadoghq.com/continuous_integration/pipelines/) + for more information. name: CI Visibility Pipelines -- description: Search or aggregate your CI Visibility test events over HTTP. +- description: Search or aggregate your CI Visibility test events over HTTP. See the + [Test Visibility in Datadog page](https://docs.datadoghq.com/tests/) for more + information. name: CI Visibility Tests -- description: The Cloud Cost Management API allows you to setup, edit and delete - cloud cost management accounts for AWS & Azure. +- description: Cloud Security Management Threats (CSM Threats) monitors file, network, + and process activity across your environment to detect real-time threats to your + infrastructure. See [Cloud Security Management Threats](https://docs.datadoghq.com/security/threats/) + for more information on setting up CSM Threats. + name: CSM Threats +- description: View and manage cases and projects within Case Management. See the + [Case Management page](https://docs.datadoghq.com/service_management/case_management/) + for more information. + name: Case Management +- description: The Cloud Cost Management API allows you to set up, edit, and delete + Cloud Cost Management accounts for AWS and Azure. See the [Cloud Cost Management + page](https://docs.datadoghq.com/cloud_cost_management/) for more information. name: Cloud Cost Management - description: Workload activity security rules for generating events using the Datadog - security Agent. + security Agent. See the [Setting up CSM Workload Security page](https://docs.datadoghq.com/security/cloud_security_management/setup/csm_workload_security/) + for more information. name: Cloud Workload Security -- description: Configure your Datadog Cloudflare integration directly through the - Datadog API. +- description: Manage your Datadog Cloudflare integration directly through the Datadog + API. See the [Cloudflare integration page](https://docs.datadoghq.com/integrations/cloudflare/) + for more information. name: Cloudflare Integration -- description: Configure your Datadog Confluent Cloud integration directly through - the Datadog API. +- description: Manage your Datadog Confluent Cloud integration accounts and account + resources directly through the Datadog API. See the [Confluent Cloud page](https://docs.datadoghq.com/integrations/confluent_cloud/) + for more information. name: Confluent Cloud - description: The Container Images API allows you to query Container Image data for - your organization. + your organization. See the [Container Images View page](https://docs.datadoghq.com/infrastructure/containers/container_images/) + for more information. name: Container Images - description: The Containers API allows you to query container data for your organization. + See the [Container Monitoring page](https://docs.datadoghq.com/containers/) for + more information. name: Containers - description: Send events for DORA Metrics to measure and improve software delivery. + See the [DORA Metrics page](https://docs.datadoghq.com/dora_metrics/) for more + information. name: DORA Metrics - description: 'Interact with your dashboard lists through the API to @@ -32794,18 +35938,15 @@ tags: end times, prevent all alerting related to specified Datadog tags.' name: Downtimes -- description: 'The events service allows you to programmatically post events to the - event stream - - and fetch events from the event stream. Events are limited to 4000 characters. +- description: 'The Event Management API allows you to programmatically post events + to the Events Explorer - If an event is sent out with a message containing more than 4000 characters, only - the - - first 4000 characters are displayed.' + and fetch events from the Events Explorer. See the [Event Management page](https://docs.datadoghq.com/service_management/events/) + for more information.' name: Events -- description: Configure your Datadog Fastly integration directly through the Datadog - API. +- description: Manage your Datadog Fastly integration accounts and services directly + through the Datadog API. See the [Fastly integration page](https://docs.datadoghq.com/integrations/fastly/) + for more information. name: Fastly Integration - description: 'Configure your Datadog-Google Cloud Platform (GCP) integration directly @@ -32822,15 +35963,19 @@ tags: This is an enterprise-only feature. Request access by - contacting Datadog support.' + contacting Datadog support, or see the [IP Allowlist page](https://docs.datadoghq.com/account_management/org_settings/ip_allowlist/) + for more information.' name: IP Allowlist - description: Create, update, delete, and retrieve services which can be associated - with incidents. + with incidents. See the [Incident Management page](https://docs.datadoghq.com/service_management/incident_management/) + for more information. name: Incident Services - description: The Incident Teams endpoints are deprecated. See the [Teams API endpoints](https://docs.datadoghq.com/api/latest/teams/) to create, update, delete, and retrieve teams which can be associated with incidents. name: Incident Teams -- description: Manage incident response. +- description: Manage incident response, as well as associated attachments, metadata, + and todos. See the [Incident Management page](https://docs.datadoghq.com/service_management/incident_management/) + for more information. name: Incidents - description: 'Manage your Datadog API and application keys. You need an API key and @@ -32845,17 +35990,32 @@ tags: url: https://docs.datadoghq.com/account_management/api-app-keys/ name: Key Management - description: Search your logs and send them to your Datadog platform over HTTP. + See the [Log Management page](https://docs.datadoghq.com/logs/) for more information. name: Logs - description: 'Archives forward all the logs ingested to a cloud storage system. See the [Archives Page](https://app.datadoghq.com/logs/pipelines/archives) - for a list of the archives currently configured in web UI.' + for a list of the archives currently configured in Datadog.' externalDocs: description: Find out more at url: https://docs.datadoghq.com/logs/archives/ name: Logs Archives +- description: 'Custom Destinations forward all the logs ingested to an external destination. + + + **Note**: Log forwarding is not available for the Government (US1-FED) site. Contact + your account representative for more information. + + + See the [Custom Destinations Page](https://app.datadoghq.com/logs/pipelines/log-forwarding/custom-destinations) + + for a list of the custom destinations currently configured in web UI.' + externalDocs: + description: Find out more at + url: https://docs.datadoghq.com/logs/log_configuration/forwarding_custom_destinations/ + name: Logs Custom Destinations - description: Manage configuration of [log-based metrics](https://app.datadoghq.com/logs/pipelines/generate-metrics) for your organization. externalDocs: @@ -32869,7 +36029,8 @@ tags: points\nand as the timeframe over which a metric is viewed increases,\naggregation between points occurs to stay below that set number.\n\nThe Post, Patch, and Delete `manage_tags` API methods can only be performed by\na user who has the `Manage - Tags for Metrics` permission." + Tags for Metrics` permission.\n\nSee the [Metrics page](https://docs.datadoghq.com/metrics/) + for more information." name: Metrics - description: '[Monitors](https://docs.datadoghq.com/monitors) allow you to watch a metric or check that you care about and @@ -32885,8 +36046,8 @@ tags: description: Find out more at url: https://docs.datadoghq.com/monitors/create/types/ name: Monitors -- description: Configure your Datadog Okta integration directly through the Datadog - API. +- description: Configure your [Datadog Okta integration](https://docs.datadoghq.com/integrations/okta/) + directly through the Datadog API. name: Okta Integration - description: 'Configure your [Datadog Opsgenie integration](https://docs.datadoghq.com/integrations/opsgenie/) @@ -32900,25 +36061,33 @@ tags: description: Find out more at url: https://docs.datadoghq.com/account_management/multi_organization name: Organizations -- description: 'The powerpack endpoints allow you to: +- description: 'The Powerpack endpoints allow you to: + + - Get a Powerpack - - Get a powerpack + - Create a Powerpack - - Create a powerpack + - Delete a Powerpack - - Delete a powerpack + - Get a list of all Powerpacks - - Get a list of all powerpacks + The Patch and Delete API methods can only be performed on a Powerpack by - The Patch and Delete API methods can only be performed on a powerpack by + a user who has the powerpack create permission for that specific Powerpack. - a user who has the powerpack create permission for that specific powerpack.' + + Read [Scale Graphing Expertise with Powerpacks](https://docs.datadoghq.com/dashboards/guide/powerpacks-best-practices/) + for more information.' name: Powerpack - description: The processes API allows you to query processes data for your organization. + See the [Live Processes page](https://docs.datadoghq.com/infrastructure/process/) + for more information. name: Processes -- description: Search or aggregate your RUM events over HTTP. +- description: Manage your Real User Monitoring (RUM) applications, and search or + aggregate your RUM events over HTTP. See the [RUM & Session Replay page](https://docs.datadoghq.com/real_user_monitoring/) + for more information name: RUM - description: 'A restriction policy defines the access control rules for a resource, mapping a set of relations @@ -32944,20 +36113,24 @@ tags: [Pipelines page](https://app.datadoghq.com/logs/pipelines).' name: Roles -- description: 'Detection rules for generating signals and listing of generated - - signals.' +- description: Create and manage your security rules, signals, filters, and more. + See the [Datadog Security page](https://docs.datadoghq.com/security/) for more + information. name: Security Monitoring - description: Create, update, delete, and retrieve sensitive data scanner groups - and rules. + and rules. See the [Sensitive Data Scanner page](https://docs.datadoghq.com/sensitive_data_scanner/) + for more information. name: Sensitive Data Scanner -- description: Create, edit, and disable service accounts. +- description: Create, edit, and disable service accounts. See the [Service Accounts + page](https://docs.datadoghq.com/account_management/org_settings/service_accounts/) + for more information. name: Service Accounts - description: API to create, update, retrieve and delete service definitions. externalDocs: url: https://docs.datadoghq.com/tracing/service_catalog/ name: Service Definition -- description: 'API to create, update scorecard rules and outcomes. +- description: 'API to create, update scorecard rules and outcomes. See [Service Scorecards](https://docs.datadoghq.com/service_catalog/scorecards) + for more information. This feature is currently in BETA. If you have any feedback, contact [Datadog @@ -32966,7 +36139,8 @@ tags: - description: Search and aggregate your spans from your Datadog platform over HTTP. name: Spans - description: Manage configuration of [span-based metrics](https://app.datadoghq.com/apm/traces/generate-metrics) - for your organization. + for your organization. See [Generate Metrics from Spans](https://docs.datadoghq.com/tracing/trace_pipeline/generate_metrics/) + for more information. externalDocs: description: Find out more at url: https://docs.datadoghq.com/tracing/metrics/metrics_namespace/ @@ -32978,7 +36152,8 @@ tags: use Datadog\u2019s API to\nmanage both test types programmatically.\n\nFor more information about Synthetics, see the [Synthetics overview](https://docs.datadoghq.com/synthetics/)." name: Synthetics -- description: View and manage teams within Datadog. +- description: View and manage teams within Datadog. See the [Teams page](https://docs.datadoghq.com/account_management/teams/) + for more information. name: Teams - description: 'The usage metering API allows you to get hourly, daily, and @@ -32996,7 +36171,9 @@ tags: You can retrieve up to 24 hours of hourly usage data for multiple organizations, - and up to two months of hourly usage data for a single organization in one request.' + and up to two months of hourly usage data for a single organization in one request. + + Learn more on the [usage details documentation](https://docs.datadoghq.com/account_management/billing/usage_details/).' externalDocs: description: Find out more at url: https://docs.datadoghq.com/account_management/billing/usage_details/ @@ -33005,4 +36182,4 @@ tags: externalDocs: url: https://docs.datadoghq.com/account_management/users name: Users -x-group-parameters: true \ No newline at end of file +x-group-parameters: true diff --git a/.generator/src/generator/formatter.py b/.generator/src/generator/formatter.py index 6704b444a..29613cfc7 100644 --- a/.generator/src/generator/formatter.py +++ b/.generator/src/generator/formatter.py @@ -148,6 +148,7 @@ def simple_type(schema, render_nullable=False, render_option=True, render_new=Fa "date": "String", "date-time": "String", "email": "String", + "uuid": "String", "binary": "Vec", "uuid": "uuid::Uuid", None: "String", @@ -307,7 +308,7 @@ def format_parameters(data, spec, replace_values=None, has_body=False, **kwargs) if has_body and body_is_required: parameters += "body, " if has_optional or body_is_required is False: - imports.add(f"datadog_api_client::datadog{kwargs.get('version', '')}::api::api_{kwargs.get('api')}::{spec['operationId']}OptionalParams") + imports.add(f"datadog_api_client::datadog{kwargs.get('version', '')}::api_{kwargs.get('api')}::{spec['operationId']}OptionalParams") parameters += f"{spec['operationId']}OptionalParams::default()" if has_body and not body_is_required: parameters += ".body(body)" @@ -429,7 +430,7 @@ def format_datetime(x): def format_double(x): if isinstance(x, (bool, str)): raise TypeError(f"{x} is not supported type {schema}") - return str(x), set() + return str(float(x)), set() def format_number(x): if isinstance(x, bool): diff --git a/.generator/src/generator/templates/api.j2 b/.generator/src/generator/templates/api.j2 index 1018f8fd1..61f52e160 100644 --- a/.generator/src/generator/templates/api.j2 +++ b/.generator/src/generator/templates/api.j2 @@ -1,7 +1,7 @@ {% include "partial_header.j2" %} -use reqwest; use serde::{Serialize, Deserialize}; -use crate::datadog::*; +use crate::datadog; +use reqwest::header::{HeaderMap, HeaderValue}; {%- for _, _, operation in operations if "x-pagination" in operation %} {%- if loop.first %} use async_stream::try_stream; @@ -13,6 +13,12 @@ use futures_core::stream::Stream; use log::warn; {%- endif %} {%- endfor %} +{%- for _, _, operation in operations if operation.requestBody is defined and not operation|form_parameter %} +{%- if loop.first %} +use std::io::Write; +use flate2::{write::{GzEncoder, ZlibEncoder}, Compression}; +{%- endif %} +{%- endfor %} {%- set structName = name.replace(" ", "")+"API" %} {% for path, method, operation in operations|sort(attribute="2.operationId", case_sensitive=true) %} @@ -77,14 +83,13 @@ pub enum {{operation.operationId}}Error { #[derive(Debug, Clone)] pub struct {{ structName }} { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for {{ structName }} { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -92,8 +97,50 @@ impl {{ structName }} { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url) + .expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config(config: datadog::Configuration, client: reqwest_middleware::ClientWithMiddleware) -> Self { + Self {config, client} } {% for path, method, operation in operations|sort(attribute="2.operationId", case_sensitive=true) %} @@ -104,14 +151,14 @@ impl {{ structName }} { {% if operation.description is defined %} {{ operation.description | block_comment }} {%- endif %} - pub async fn {{operation.operationId | snake_case}}(&self{% for name, parameter in requiredParams %}, {{name|variable_name}}: {{ get_type_for_parameter(parameter, version) }}{% endfor %}{% if operation|has_optional_parameter %}, params: {{operation.operationId}}OptionalParams{% endif %}) -> Result<{% if returnType %}{{returnType}}{% else %}(){% endif %}, Error<{{operation.operationId}}Error>> { + pub async fn {{operation.operationId | snake_case}}(&self{% for name, parameter in requiredParams %}, {{name|variable_name}}: {{ get_type_for_parameter(parameter, version) }}{% endfor %}{% if operation|has_optional_parameter %}, params: {{operation.operationId}}OptionalParams{% endif %}) -> Result<{% if returnType %}{{returnType}}{% else %}(){% endif %}, datadog::Error<{{operation.operationId}}Error>> { match self.{{operation.operationId | snake_case}}_with_http_info({% for name, parameter in requiredParams %}{{name|variable_name}}{% if loop.last %}{% if operation|has_optional_parameter %}, {% endif %}{% else %}, {% endif %}{% endfor %}{% if operation|has_optional_parameter %} params{% endif %}).await { {%- if returnType %} Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom("response content was None"))) + Err(datadog::Error::Serde(serde::de::Error::custom("response content was None"))) } }, {%- else%} @@ -130,7 +177,7 @@ impl {{ structName }} { pub fn {{operation.operationId | snake_case}}_with_pagination( &self{% for name, parameter in requiredParams %}, {% if limitParamParts[0] == name|variable_name %}mut {% endif %} {{name|variable_name}}: {{ get_type_for_parameter(parameter, version) }}{% endfor %}{% if operation|has_optional_parameter %}, mut params: {{operation.operationId}}OptionalParams{% endif %} - ) -> impl Stream>> + '_ + ) -> impl Stream>> + '_ { try_stream! { {#- Limit param part fields #} @@ -232,17 +279,17 @@ impl {{ structName }} { {% if operation.description is defined %} {{ operation.description | block_comment }} {%- endif %} - pub async fn {{operation.operationId | snake_case}}_with_http_info(&self{% for name, parameter in requiredParams %}, {{name|variable_name}}: {{ get_type_for_parameter(parameter, version) }}{% endfor %}{% if operation|has_optional_parameter %}, params: {{operation.operationId}}OptionalParams{% endif %}) -> Result, Error<{{operation.operationId}}Error>> { + pub async fn {{operation.operationId | snake_case}}_with_http_info(&self{% for name, parameter in requiredParams %}, {{name|variable_name}}: {{ get_type_for_parameter(parameter, version) }}{% endfor %}{% if operation|has_optional_parameter %}, params: {{operation.operationId}}OptionalParams{% endif %}) -> Result, datadog::Error<{{operation.operationId}}Error>> { let local_configuration = &self.config; let operation_id = "{{ version }}.{{ operation.operationId | snake_case }}"; {%- if "x-unstable" in operation %} if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation '{{ version }}.{{ operation.operationId | snake_case }}' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } {%- endif %} @@ -253,14 +300,14 @@ impl {{ structName }} { let {{name|variable_name}} = params.{{name|variable_name}}; {%- endfor %} - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}{{path}}", local_configuration.get_operation_host(operation_id) {%- for name, parameter in operation|parameters if parameter.in == "path" %}, {{ name|variable_name }}= {%- if parameter.schema.type == "string" %} - urlencode({{ name|variable_name }}{% if not parameter.required %}.unwrap(){% elif parameter.schema.nullable %}.unwrap(){% endif %}{% if parameter.schema.type == "array" %}.join(",").as_ref(){% endif %}{% if parameter.schema.format == "uuid" %}.to_string(){% endif %}) + datadog::urlencode({{ name|variable_name }}{% if not parameter.required %}.unwrap(){% elif parameter.schema.nullable %}.unwrap(){% endif %}{% if parameter.schema.type == "array" %}.join(",").as_ref(){% endif %}{% if parameter.schema.format == "uuid" %}.to_string(){% endif %}) {%- else %} {{ name|variable_name }}{% if not parameter.required %}.unwrap(){% elif parameter.schema.nullable %}.unwrap(){% endif %}{% if parameter.schema.type == "array" %}.join(",").as_ref(){% endif %} {%- endif %} @@ -284,18 +331,50 @@ impl {{ structName }} { {%- endif %} {%- endfor %} + // build headers + let mut headers = HeaderMap::new(); + {%- if operation.requestBody %} + {%- set contentTypeHeaders = operation.requestBody.content.keys()|list %} + {%- if contentTypeHeaders %} + {%- if "application/json" in contentTypeHeaders %} + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + {%- else %} + headers.insert("Content-Type", HeaderValue::from_static("{{ contentTypeHeaders[0] }}")); + {%- endif %} + {%- endif %} + {%- endif %} + {%- if operation.responses %} + {%- set acceptHeaders = operation|accept_headers %} + {%- if acceptHeaders %} + {%- if "application/json" in acceptHeaders %} + headers.insert("Accept", HeaderValue::from_static("application/json")); + {%- else %} + headers.insert("Accept", HeaderValue::from_static("{{ acceptHeaders|join(",") }}")); + {%- endif %} + {%- endif %} + {%- endif %} + {% for name, parameter in operation|parameters if parameter.in == "header" %} {%- if not parameter.required %} if let Some(ref local) = {{name|variable_name}} { - local_req_builder = local_req_builder.header("{{name}}", &local.to_string()); - }; + headers.insert("{{name}}", local.to_string().parse().expect("failed to parse {{name}} header")); + } {%- else %} - local_req_builder = local_req_builder.header("{{name}}", &{{name|variable_name}}.to_string()); + headers.insert("{{name}}", {{name|variable_name}}.to_string().parse().expect("failed to parse {{name}} header")); {%- endif %} {%- endfor %} // build user agent - local_req_builder = local_req_builder.header(reqwest::header::USER_AGENT, local_configuration.user_agent.clone()); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth {%- set authMethods = operation.security if "security" in operation else openapi.security %} @@ -305,7 +384,7 @@ impl {{ structName }} { {%- set schema = openapi.components.securitySchemes[name] %} {%- if schema.type == "apiKey" and schema.in != "cookie" %} if let Some(local_key) = local_configuration.auth_keys.get("{{ name }}") { - local_req_builder = local_req_builder.header("{{schema.name}}", &local_key.key); + headers.insert("{{schema.name}}", HeaderValue::from_str(local_key.key.as_str()).expect("failed to parse {{schema.name}} header")); }; {%- endif %} {%- endfor %} @@ -315,14 +394,46 @@ impl {{ structName }} { {% if formParameter %} // build form parameters {%- if formParameter.required %} - let mut local_form = reqwest::multipart::Form::new(); - local_form = local_form.part("{{formParameter.name}}", reqwest::multipart::Part::bytes({{formParameter.name}}).file_name("{{formParameter.name}}")); - local_req_builder = local_req_builder.multipart(local_form); + let mut local_form = form_data_builder::FormData::new(Vec::new()); + let cursor = std::io::Cursor::new({{formParameter.name}}); + if let Err(e) = local_form.write_file( + "{{formParameter.name}}", + cursor, + Some("{{formParameter.name}}".as_ref()), + "application/octet-stream", + ) { + return Err(crate::datadog::Error::Io(e)); + }; + headers.insert( + "Content-Type", + local_form.content_type_header().parse().unwrap(), + ); + let form_result = local_form.finish(); + match form_result { + Ok(form) => local_req_builder = local_req_builder.body(form), + Err(e) => return Err(crate::datadog::Error::Io(e)), + }; {%- else %} if let Some({{formParameter.name}}) = {{formParameter.name}} { - let mut local_form = reqwest::multipart::Form::new(); - local_form = local_form.part("{{formParameter.name}}", reqwest::multipart::Part::bytes({{formParameter.name}}).file_name("{{formParameter.name}}")); - local_req_builder = local_req_builder.multipart(local_form); + let mut local_form = form_data_builder::FormData::new(Vec::new()); + let cursor = std::io::Cursor::new({{formParameter.name}}); + if let Err(e) = local_form.write_file( + "{{formParameter.name}}", + cursor, + Some("{{formParameter.name}}".as_ref()), + "application/octet-stream", + ) { + return Err(crate::datadog::Error::Io(e)); + }; + headers.insert( + "Content-Type", + local_form.content_type_header().parse().unwrap(), + ); + let form_result = local_form.finish(); + match form_result { + Ok(form) => local_req_builder = local_req_builder.body(form), + Err(e) => return Err(crate::datadog::Error::Io(e)), + }; }; {%- endif %} {%- endif %} @@ -330,12 +441,57 @@ impl {{ structName }} { {%- if operation.requestBody is defined and not formParameter %} // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if {{operation.get("x-codegen-request-body-name", "body")|variable_name}}.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new( + Vec::new(), + Compression::default(), + ); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new( + Vec::new(), + Compression::default(), + ); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + }, + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } {%- endif %} + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -344,22 +500,22 @@ impl {{ structName }} { if !local_status.is_client_error() && !local_status.is_server_error() { {%- if returnType == "Vec" %} - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content.clone(), entity: Some(local_content.into_bytes()), }) {%- elif returnType %} match serde_json::from_str::<{{ returnType }}>(&local_content) { - Ok(e) => return Ok(ResponseContent { + Ok(e) => return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }), - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; {%- else %} - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -367,8 +523,8 @@ impl {{ structName }} { {%- endif %} } else { let local_entity: Option<{{operation.operationId}}Error> = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { status: local_status, content: local_content, entity: local_entity }; - Err(Error::ResponseError(local_error)) + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity }; + Err(datadog::Error::ResponseError(local_error)) } } {%- endfor %} diff --git a/.generator/src/generator/templates/common_mod.j2 b/.generator/src/generator/templates/common_mod.j2 index f6252df87..93708214f 100644 --- a/.generator/src/generator/templates/common_mod.j2 +++ b/.generator/src/generator/templates/common_mod.j2 @@ -2,6 +2,9 @@ use std::error; use std::fmt; use serde::{Deserialize, Deserializer, Serialize, Serializer}; +mod configuration; +pub use configuration::{Configuration, APIKey, DEFAULT_USER_AGENT}; + #[derive(Debug, Clone)] pub struct ResponseContent { pub status: reqwest::StatusCode, @@ -75,38 +78,11 @@ impl From for Error { } } -pub fn urlencode>(s: T) -> String { +pub(crate) fn urlencode>(s: T) -> String { ::url::form_urlencoded::byte_serialize(s.as_ref().as_bytes()).collect() } -pub fn parse_deep_object(prefix: &str, value: &serde_json::Value) -> Vec<(String, String)> { - if let serde_json::Value::Object(object) = value { - let mut params = vec![]; - - for (key, value) in object { - match value { - serde_json::Value::Object(_) => params.append(&mut parse_deep_object( - &format!("{}[{}]", prefix, key), - value, - )), - serde_json::Value::Array(array) => { - for (i, value) in array.iter().enumerate() { - params.append(&mut parse_deep_object( - &format!("{}[{}][{}]", prefix, key, i), - value, - )); - } - }, - serde_json::Value::String(s) => params.push((format!("{}[{}]", prefix, key), s.clone())), - _ => params.push((format!("{}[{}]", prefix, key), value.to_string())), - } - } - return params; - } - unimplemented!("Only objects are supported with style=deepObject") -} - -pub struct DDFormatter; +pub(crate) struct DDFormatter; impl serde_json::ser::Formatter for DDFormatter { fn write_f64(&mut self, writer: &mut W, value: f64) -> std::io::Result<()> @@ -117,8 +93,6 @@ impl serde_json::ser::Formatter for DDFormatter { } } -pub mod configuration; - #[derive(Clone, Debug, Eq, PartialEq)] pub struct UnparsedObject { pub value: serde_json::Value, diff --git a/.generator/src/generator/templates/configuration.j2 b/.generator/src/generator/templates/configuration.j2 index d21d20852..fa03d72cb 100644 --- a/.generator/src/generator/templates/configuration.j2 +++ b/.generator/src/generator/templates/configuration.j2 @@ -42,13 +42,15 @@ pub struct APIKey { #[derive(Debug, Clone)] pub struct Configuration { pub(crate) user_agent: String, - pub(crate) client: reqwest_middleware::ClientWithMiddleware, pub(crate) unstable_operations: HashMap, pub(crate) auth_keys: HashMap, pub server_index: usize, pub server_variables: HashMap, pub server_operation_index: HashMap, pub server_operation_variables: HashMap>, + pub proxy_url: Option, + pub enable_retry: bool, + pub max_retries: u32, } impl Configuration { @@ -56,10 +58,6 @@ impl Configuration { Self::default() } - pub fn client(&mut self, client: reqwest_middleware::ClientWithMiddleware) { - self.client = client; - } - pub fn get_operation_host(&self, operation_str: &str) -> String { let operation = operation_str.to_string(); if let Some(servers) = OPERATION_SERVERS.get(&operation) { @@ -114,18 +112,20 @@ impl Configuration { pub fn set_auth_key(&mut self, operation_str: &str, api_key: APIKey) { self.auth_keys.insert(operation_str.to_string(), api_key); } + + pub fn set_proxy_url(&mut self, proxy_url: Option) { + self.proxy_url = proxy_url; + } + + pub fn set_retry(&mut self, enable_retry: bool, max_retries: u32) { + self.enable_retry = enable_retry; + self.max_retries = max_retries; + } + } impl Default for Configuration { fn default() -> Self { - let http_client = reqwest_middleware::ClientBuilder::new(reqwest::Client::new()); - let user_agent = format!( - "datadog-api-client-rust/{} (rust {}; os {}; arch {})", - option_env!("CARGO_PKG_VERSION").unwrap_or("?"), - option_env!("DD_RUSTC_VERSION").unwrap_or("?"), - env::consts::OS, - env::consts::ARCH, - ); let unstable_operations = HashMap::from([ {%- for version, api in apis.items() %} {%- for operations in api.values() %} @@ -157,14 +157,16 @@ impl Default for Configuration { {%- endif %} Self { - user_agent, - client: http_client.build(), + user_agent: DEFAULT_USER_AGENT.clone(), unstable_operations, auth_keys, server_index: 0, server_variables: HashMap::new(), server_operation_index: HashMap::new(), server_operation_variables: HashMap::new(), + proxy_url: None, + enable_retry: false, + max_retries: 3, } } } @@ -193,6 +195,13 @@ ServerConfiguration { {%- endmacro %} lazy_static! { + pub static ref DEFAULT_USER_AGENT: String = format!( + "datadog-api-client-rust/{} (rust {}; os {}; arch {})", + option_env!("CARGO_PKG_VERSION").unwrap_or("?"), + option_env!("DD_RUSTC_VERSION").unwrap_or("?"), + env::consts::OS, + env::consts::ARCH, + ); static ref SERVERS: Vec = { vec![ {%- for server in openapi.servers %} diff --git a/.generator/src/generator/templates/example.j2 b/.generator/src/generator/templates/example.j2 index 61eab8152..578436d2d 100644 --- a/.generator/src/generator/templates/example.j2 +++ b/.generator/src/generator/templates/example.j2 @@ -5,8 +5,8 @@ {%- if context.body %} {%- set body, imports = format_data_with_schema(context.body.value, context.api_request.schema.spec, replace_values=context._replace_values, required=True, variables=variables, version=version|upper, imports=imports)%} {%- endif %} -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadog{{ version|upper }}::api::api_{{context["api_instance"]["name"] | snake_case}}::{{context["api_instance"]["name"]}}API; +use datadog_api_client::datadog; +use datadog_api_client::datadog{{ version|upper }}::api_{{context["api_instance"]["name"] | snake_case}}::{{context["api_instance"]["name"]}}API; {%- for name in imports %} use {{name}}; {%- endfor %} @@ -21,7 +21,7 @@ async fn main() { // {{ name|wordwrap(width=120, wrapstring="\n // ") }} {%- for value, schema in values.items()|sort -%} {%- if context._replace_values.is_used(value) -%} - {%- if schema.type == 'string' and schema.format != 'uuid' %} + {%- if schema.type == 'string' %} let {{ value|rust_name }} = std::env::var("{{ value }}").unwrap(); {%- elif schema.type == 'integer' %} let {{ value|rust_name }}: i{{ '64' if schema.format == 'int64' else '32' }} = std::env::var("{{ value }}").unwrap().parse().unwrap(); @@ -39,7 +39,7 @@ async fn main() { let body = {{ body }}; {%- endif %} - let {% if context._enable_operations %}mut{% endif %} configuration = Configuration::new(); + let {% if context._enable_operations %}mut{% endif %} configuration = datadog::Configuration::new(); {%- for operation in context._enable_operations %} configuration.set_unstable_operation_enabled("{{ version }}.{{ operation }}", true); diff --git a/.generator/src/generator/templates/function_mappings.j2 b/.generator/src/generator/templates/function_mappings.j2 index 542cabf0a..e0175c96d 100644 --- a/.generator/src/generator/templates/function_mappings.j2 +++ b/.generator/src/generator/templates/function_mappings.j2 @@ -16,7 +16,7 @@ pub struct ApiInstances { {%- for name, operations in apis.items() %} {%- set fieldName = "api_"+name %} {%- set structName = name.replace(" ", "")+"API" %} - pub {{version}}_{{fieldName | snake_case}}: Option, + pub {{version}}_{{fieldName | snake_case}}: Option, {%- endfor %} {%- endfor %} } @@ -28,7 +28,10 @@ pub fn initialize_api_instance(world: &mut DatadogWorld, api: String) { {%- set structName = name.replace(" ", "")+"API" %} "{{name.replace(" ", "")}}" => { {%- for version in versions %} - world.api_instances.{{version}}_{{fieldName}} = Some(datadog{{ version.upper() }}::api::{{fieldName}}::{{structName}}::with_config(world.config.clone())); + world.api_instances.{{version}}_{{fieldName}} = Some(datadog{{ version.upper() }}::{{fieldName}}::{{structName}}::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone() + )); {%- endfor %} }, {%- endfor %} @@ -61,14 +64,14 @@ fn test_{{version}}_{{ operation['operationId'] | snake_case }}(world: &mut Data {%- set schema = parameter[1] | parameter_schema %} {%- if parameter[1].required %} {%- if schema | is_primitive and schema.get("format") == "binary" -%} - let {{ parameter[0] | variable_name }} = _parameters.get("{{ parameter[0] }}").unwrap().as_str().unwrap().as_bytes().to_vec(); + let {{ parameter[0] | variable_name }} = std::fs::read(format!("tests/scenarios/features/v{}/{}", world.api_version, _parameters.get("{{ parameter[0] }}").unwrap().as_str().unwrap())).unwrap(); {%- else -%} let {{ parameter[0] | variable_name }} = serde_json::from_value(_parameters.get("{{ parameter[0] }}").unwrap().clone()).unwrap(); {%- endif -%} {%- else %} let {{ parameter[0] | variable_name }} = _parameters.get("{{ parameter[0] }}").and_then(|param| {%- if schema | is_primitive and schema.get("format") == "binary" -%} - Some(param.as_str().unwrap().as_bytes().to_vec()) + std::fs::read(format!("tests/scenarios/features/v{}/{}", world.api_version, param.as_str().unwrap())).ok() {%- else -%} Some(serde_json::from_value(param.clone()).unwrap()) {%- endif -%} @@ -78,7 +81,7 @@ fn test_{{version}}_{{ operation['operationId'] | snake_case }}(world: &mut Data {%- for parameter in optionalParams %} {%- if loop.first %} - let mut params = datadog{{ version.upper() }}::api::{{ apiName }}::{{ operation['operationId'] }}OptionalParams::default(); + let mut params = datadog{{ version.upper() }}::{{ apiName }}::{{ operation['operationId'] }}OptionalParams::default(); {%- endif %} params.{{ parameter[0] | variable_name }} = {{ parameter[0] | variable_name }}; {%- if loop.last %} @@ -110,14 +113,14 @@ fn test_{{version}}_{{ operation['operationId'] | snake_case }}_with_pagination( {%- set schema = parameter[1] | parameter_schema %} {%- if parameter[1].required %} {%- if schema | is_primitive and schema.get("format") == "binary" -%} - let {{ parameter[0] | variable_name }} = _parameters.get("{{ parameter[0] }}").unwrap().as_str().unwrap().as_bytes().to_vec(); + let {{ parameter[0] | variable_name }} = std::fs::read(_parameters.get("{{ parameter[0] }}").unwrap().as_str().unwrap()).unwrap(); {%- else -%} let {{ parameter[0] | variable_name }} = serde_json::from_value(_parameters.get("{{ parameter[0] }}").unwrap().clone()).unwrap(); {%- endif -%} {%- else %} let {{ parameter[0] | variable_name }} = _parameters.get("{{ parameter[0] }}").and_then(|param| {%- if schema | is_primitive and schema.get("format") == "binary" -%} - Some(param.as_str().unwrap().as_bytes().to_vec()) + std::fs::read(param.as_str().unwrap()).ok() {%- else -%} Some(serde_json::from_value(param.clone()).unwrap()) {%- endif -%} @@ -127,7 +130,7 @@ fn test_{{version}}_{{ operation['operationId'] | snake_case }}_with_pagination( {%- for parameter in optionalParams %} {%- if loop.first %} - let mut params = datadog{{ version.upper() }}::api::{{ apiName }}::{{ operation['operationId'] }}OptionalParams::default(); + let mut params = datadog{{ version.upper() }}::{{ apiName }}::{{ operation['operationId'] }}OptionalParams::default(); {%- endif %} params.{{ parameter[0] | variable_name }} = {{ parameter[0] | variable_name }}; {%- if loop.last %} diff --git a/.generator/src/generator/templates/lib.j2 b/.generator/src/generator/templates/lib.j2 index da4d8c5cb..21f03adee 100644 --- a/.generator/src/generator/templates/lib.j2 +++ b/.generator/src/generator/templates/lib.j2 @@ -1,6 +1,7 @@ {% include "partial_header.j2" %} #![allow(non_camel_case_types)] #![allow(non_snake_case)] +#![doc = include_str!("../README.md")] pub mod datadog; pub mod datadogV1; diff --git a/.generator/src/generator/templates/mod.j2 b/.generator/src/generator/templates/mod.j2 index 954910577..9209306c2 100644 --- a/.generator/src/generator/templates/mod.j2 +++ b/.generator/src/generator/templates/mod.j2 @@ -1,4 +1,8 @@ {% include "partial_header.j2" %} pub mod api; +{%- for name, operations in apis.items() %} +{%- set classname = "api_"+name%} +pub use self::api::{{classname | snake_case}}; +{%- endfor %} pub mod model; diff --git a/.github/labeler.yml b/.github/labeler.yml new file mode 100644 index 000000000..62698d1f9 --- /dev/null +++ b/.github/labeler.yml @@ -0,0 +1,3 @@ +# Configuration for labeler - https://github.com/actions/labeler + +documentation: "**/*.md" \ No newline at end of file diff --git a/.github/workflows/approved_status.yml b/.github/workflows/approved_status.yml new file mode 100644 index 000000000..8dc3aaf5a --- /dev/null +++ b/.github/workflows/approved_status.yml @@ -0,0 +1,33 @@ +name: Send PR Approval Status + +on: + pull_request: + branches: + - master + types: ["review_requested", "synchronize", "opened", "reopened"] + pull_request_review: + types: + - submitted + - dismissed + +jobs: + send_status: + runs-on: ubuntu-latest + if: > + github.event.pull_request.draft == false && + !contains(github.event.pull_request.labels.*.name, 'ci/skip') && + !contains(github.event.pull_request.head.ref, 'datadog-api-spec/test/') && + contains(github.event.pull_request.head.ref, 'datadog-api-spec/generated/') + steps: + - name: Get GitHub App token + id: get_token + uses: tibdex/github-app-token@v1 + with: + app_id: ${{ secrets.PIPELINE_GITHUB_APP_ID }} + private_key: ${{ secrets.PIPELINE_GITHUB_APP_PRIVATE_KEY }} + repository: DataDog/datadog-api-spec + - name: Post PR review status check + uses: DataDog/github-actions/post-review-status@v2 + with: + github-token: ${{ steps.get_token.outputs.token }} + repo: datadog-api-spec \ No newline at end of file diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml new file mode 100644 index 000000000..3aa5e23f2 --- /dev/null +++ b/.github/workflows/changelog.yml @@ -0,0 +1,22 @@ +name: "Ensure labels" +on: # yamllint disable-line rule:truthy + pull_request: + types: + - labeled + - unlabeled + - opened + - synchronize + - reopened + - ready_for_review + +jobs: + changelog: + runs-on: ubuntu-latest + steps: + - name: Check changelog labels + if: github.event.pull_request.draft == false && false == contains(join(github.event.pull_request.labels.*.name, ','), 'changelog/') + run: |- + echo "::error Add 'changelog/*' label"; + exit 1; + - name: OK + run: echo "Thank you!" \ No newline at end of file diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml new file mode 100644 index 000000000..4c14c7ef2 --- /dev/null +++ b/.github/workflows/labeler.yml @@ -0,0 +1,11 @@ +name: "Pull Request Labeler and Checker" +on: + - pull_request + +jobs: + triage: + runs-on: ubuntu-latest + steps: + - uses: DataDog/labeler@glob-all + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b8c07825c..476c89460 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -8,8 +8,8 @@ on: pull_request: branches: - master - # schedule: - # - cron: "0 1 * * *" + schedule: + - cron: "0 6 * * *" concurrency: group: unit-${{ github.head_ref }} @@ -24,17 +24,20 @@ jobs: !contains(github.event.pull_request.head.ref, 'datadog-api-spec/test/')) || github.event_name == 'schedule' steps: - # - name: Get GitHub App token - # id: get_token - # uses: tibdex/github-app-token@v1 - # with: - # app_id: ${{ secrets.PIPELINE_GITHUB_APP_ID }} - # private_key: ${{ secrets.PIPELINE_GITHUB_APP_PRIVATE_KEY }} + - name: Get GitHub App token + if: github.event_name == 'pull_request' + id: get_token + uses: tibdex/github-app-token@v2.1.0 + with: + app_id: ${{ secrets.PIPELINE_GITHUB_APP_ID }} + private_key: ${{ secrets.PIPELINE_GITHUB_APP_PRIVATE_KEY }} + installation_retrieval_mode: repository + installation_retrieval_payload: DataDog/datadog-api-spec - uses: actions/checkout@v3 with: fetch-depth: 0 ref: ${{ github.event.pull_request.head.sha }} - # token: ${{ steps.get_token.outputs.token }} + token: ${{ steps.get_token.outputs.token }} - name: Install pre-commit run: python -m pip install pre-commit - name: set PY @@ -51,17 +54,17 @@ jobs: env: FROM_REF: ${{ github.event.pull_request.base.sha }} TO_REF: ${{ github.event.pull_request.head.sha }} - # - name: Commit changes - # if: ${{ failure() }} - # run: |- - # git add -A - # git config user.name "${GIT_AUTHOR_NAME}" - # git config user.email "${GIT_AUTHOR_EMAIL}" - # git commit -m "pre-commit fixes" - # git push origin "HEAD:${HEAD_REF}" - # exit 1 - # env: - # HEAD_REF: ${{ github.event.pull_request.head.ref }} + - name: Commit changes + if: ${{ failure() }} + run: |- + git add -A + git config user.name "${GIT_AUTHOR_NAME}" + git config user.email "${GIT_AUTHOR_EMAIL}" + git commit -m "pre-commit fixes" + git push origin "HEAD:${HEAD_REF}" + exit 1 + env: + HEAD_REF: ${{ github.event.pull_request.head.ref }} - id: pre_commit_schedule name: Run pre-commit in schedule if: github.event_name == 'schedule' @@ -71,7 +74,7 @@ jobs: test: strategy: matrix: - rust-version: ["1.76.0"] + rust-version: ["stable"] platform: [ubuntu-latest] runs-on: ${{ matrix.platform }} if: (github.event.pull_request.draft == false && !contains(github.event.pull_request.labels.*.name, 'ci/skip') && !contains(github.event.pull_request.head.ref, 'datadog-api-spec/test/')) || github.event_name == 'schedule' @@ -84,40 +87,41 @@ jobs: toolchain: ${{ matrix.rust-version }} - uses: Swatinem/rust-cache@v2 - name: Test - run: cargo build + run: ./run-tests.sh - # examples: - # runs-on: ubuntu-latest - # if: (github.event.pull_request.draft == false && !contains(github.event.pull_request.labels.*.name, 'ci/skip') && !contains(github.event.pull_request.head.ref, 'datadog-api-spec/test/')) || github.event_name == 'schedule' - # steps: - # - uses: actions/checkout@v3 - # - name: Install Rust - # uses: dtolnay/rust-toolchain@master - # with: - # toolchain: ${{ matrix.rust-version }} - # - name: Check examples - # run: ./check-examples.sh - # shell: bash + examples: + runs-on: ubuntu-latest + if: (github.event.pull_request.draft == false && !contains(github.event.pull_request.labels.*.name, 'ci/skip') && !contains(github.event.pull_request.head.ref, 'datadog-api-spec/test/')) || github.event_name == 'schedule' + steps: + - uses: actions/checkout@v3 + - name: Install Rust + uses: dtolnay/rust-toolchain@master + with: + toolchain: stable + - name: Check examples + run: cargo check --examples + shell: bash - # report: - # runs-on: ubuntu-latest - # if: always() && github.event_name == 'pull_request' && contains(github.event.pull_request.head.ref, 'datadog-api-spec/generated/') - # needs: - # - test - # - examples - # steps: - # - name: Get GitHub App token - # if: github.event_name == 'pull_request' - # id: get_token - # uses: tibdex/github-app-token@v1 - # with: - # app_id: ${{ secrets.PIPELINE_GITHUB_APP_ID }} - # private_key: ${{ secrets.PIPELINE_GITHUB_APP_PRIVATE_KEY }} - # repository: DataDog/datadog-api-spec - # - name: Post status check - # uses: DataDog/github-actions/post-status-check@v2 - # with: - # github-token: ${{ steps.get_token.outputs.token }} - # repo: datadog-api-spec - # status: ${{ (needs.test.result == 'cancelled' || needs.examples.result == 'cancelled') && 'pending' || needs.test.result == 'success' && needs.examples.result == 'success' && 'success' || 'failure' }} - # context: unit + report: + runs-on: ubuntu-latest + if: always() && github.event_name == 'pull_request' && contains(github.event.pull_request.head.ref, 'datadog-api-spec/generated/') + needs: + - test + - examples + steps: + - name: Get GitHub App token + if: github.event_name == 'pull_request' + id: get_token + uses: tibdex/github-app-token@v2.1.0 + with: + app_id: ${{ secrets.PIPELINE_GITHUB_APP_ID }} + private_key: ${{ secrets.PIPELINE_GITHUB_APP_PRIVATE_KEY }} + installation_retrieval_mode: repository + installation_retrieval_payload: DataDog/datadog-api-spec + - name: Post status check + uses: DataDog/github-actions/post-status-check@v2 + with: + github-token: ${{ steps.get_token.outputs.token }} + repo: datadog-api-spec + status: ${{ (needs.test.result == 'cancelled' || needs.examples.result == 'cancelled') && 'pending' || needs.test.result == 'success' && needs.examples.result == 'success' && 'success' || 'failure' }} + context: unit diff --git a/.github/workflows/test_integration.yml b/.github/workflows/test_integration.yml new file mode 100644 index 000000000..dfa121a4b --- /dev/null +++ b/.github/workflows/test_integration.yml @@ -0,0 +1,92 @@ +name: Run Integration Tests + +on: + pull_request: + branches: + - master + types: + - opened + - reopened + - ready_for_review + - synchronize + - labeled + - unlabeled + schedule: + - cron: "0 5 * * *" + +concurrency: + group: integration-${{ github.head_ref }} + cancel-in-progress: true + +jobs: + integration_tests: + runs-on: ubuntu-latest + if: > + (github.event_name == 'pull_request' && + github.event.pull_request.draft == false && + !contains(github.event.pull_request.labels.*.name, 'ci/skip') && + !contains(github.event.pull_request.head.ref, 'datadog-api-spec/test/') && + contains(github.event.pull_request.labels.*.name, 'ci/integrations')) || + github.event_name == 'schedule' + services: + datadog-agent: + image: gcr.io/datadoghq/agent:latest + ports: + - 8126:8126 + env: + DD_API_KEY: ${{ secrets.DD_API_KEY }} + DD_HOSTNAME: "none" + DD_INSIDE_CI: "true" + steps: + - name: Get GitHub App token + if: github.event_name == 'pull_request' + id: get_token + uses: tibdex/github-app-token@v2.1.0 + with: + app_id: ${{ secrets.PIPELINE_GITHUB_APP_ID }} + private_key: ${{ secrets.PIPELINE_GITHUB_APP_PRIVATE_KEY }} + installation_retrieval_mode: repository + installation_retrieval_payload: DataDog/datadog-api-spec + - name: Checkout code + uses: actions/checkout@v3 + - name: Post pending status check + if: github.event_name == 'pull_request' && contains(github.event.pull_request.head.ref, 'datadog-api-spec/generated/') + uses: DataDog/github-actions/post-status-check@v2 + with: + github-token: ${{ steps.get_token.outputs.token }} + repo: datadog-api-spec + status: pending + context: integration + - name: Install Rust + uses: dtolnay/rust-toolchain@v1 + with: + toolchain: "stable" + - uses: Swatinem/rust-cache@v2 + - name: Run integration tests + shell: bash + run: ./run-tests.sh + env: + CI: "true" + DD_AGENT_HOST: localhost + DD_ENV: prod + DD_SERVICE: datadog-api-client-rust + DD_TAGS: "team:integrations-tools-and-libraries" + DD_TEST_CLIENT_API_KEY: ${{ secrets.DD_CLIENT_API_KEY }} + DD_TEST_CLIENT_APP_KEY: ${{ secrets.DD_CLIENT_APP_KEY }} + RECORD: "none" + - name: Post failure status check + if: failure() && github.event_name == 'pull_request' && contains(github.event.pull_request.head.ref, 'datadog-api-spec/generated/') + uses: DataDog/github-actions/post-status-check@v2 + with: + github-token: ${{ steps.get_token.outputs.token }} + repo: datadog-api-spec + status: failure + context: integration + - name: Post success status check + if: "!failure() && github.event_name == 'pull_request' && contains(github.event.pull_request.head.ref, 'datadog-api-spec/generated/')" + uses: DataDog/github-actions/post-status-check@v2 + with: + github-token: ${{ steps.get_token.outputs.token }} + repo: datadog-api-spec + status: success + context: integration \ No newline at end of file diff --git a/.gitignore b/.gitignore index a1a55f01c..e7ae4f623 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,8 @@ **/*.rs.bk Cargo.lock __pycache__ +.vscode/ +.pytest_cache/ # Environments .env diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index f7d840ef0..ba4b82807 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -4,7 +4,7 @@ repos: - id: generate name: Generate language: system - entry: bash -c "./generate.sh" + entry: bash -c "./generate.sh && ./generate-examples.sh" files: '^(\.generator/.*|\.pre-commit-config\.yaml|Makefile|\tests/scenarios/features/.*)' pass_filenames: false verbose: true diff --git a/Cargo.toml b/Cargo.toml index 798b2a80f..e3454e16f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,22 +1,50 @@ [package] -name = "datadog-api-client" -version = "1.0.0" authors = ["support@datadoghq.com"] -description = "Collection of all Datadog Public endpoints." -license = "Apache-2.0" +categories = [ + "api-bindings", + "config", + "web-programming::http-client" +] +description = "Rust client for the Datadog API." edition = "2021" +include = [ + "/build.rs", + "/Cargo.toml", + "/LICENSE-3rdparty.csv", + "/LICENSE", + "/NOTICE", + "/README.md", + "/src/**/*", + "/tests/**/*", + "/examples/*", +] +keywords = [ + "datadog", + "api", + "client", + "openapi" +] +license = "Apache-2.0" +name = "datadog-api-client" +readme = "README.md" +repository = "https://github.com/DataDog/datadog-api-client-rust" +version = "0.0.1" [dependencies] async-stream = "0.3.5" +flate2 = "1.0.28" +form-data-builder = "1.0.1" futures-core = "0.3.30" lazy_static = "1.4.0" log = "0.4.20" reqwest = { version = "0.11.24", features = ["multipart"] } -reqwest-middleware = "0.1.6" +reqwest-middleware = "0.2.5" +reqwest-retry = "0.3.0" serde = { version = "1.0.197", features = ["derive"] } serde_json = "1.0.114" serde_with = "3.6.1" url = "2.5.0" +zstd = "0.13.0" [dependencies.uuid] version = "1.8.0" @@ -27,19 +55,26 @@ rustc_version = "0.4.0" [dev-dependencies] chrono = "0.4.31" +convert_case = "0.6.0" cucumber = "0.20.2" env_logger = "0.10.0" futures = "0.3.28" +futures-util = "0.3.30" +minijinja = "1.0.10" regex = "1.9.5" -rvcr = { git = "https://github.com/nkzou/rvcr.git", rev = "b8f84bc0dfacd539fdc6f7446637c6276dcbb57c" } -vcr-cassette = "2.0.1" +rvcr = { git = "https://github.com/nkzou/rvcr.git", rev = "cb6911dcd05300a95647ed915b94645679fd80eb" } sha256 = "1.4.0" tokio = { version = "1.10", features = ["macros", "rt-multi-thread", "time"] } -minijinja = "1.0.10" -convert_case = "0.6.0" -futures-util = "0.3.30" urlencoding = "2.1.3" +vcr-cassette = "2.0.1" [[test]] harness = false # allows Cucumber to print output instead of libtest name = "main" + +[[example]] # signal to Cargo that dev-dependencies are allowed for examples +doc-scrape-examples = true +name="v1_authentication_validate" + +[package.metadata.docs.rs] +cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"] diff --git a/LICENSE-3rdparty.csv b/LICENSE-3rdparty.csv index 6ef42d6df..8413bcc89 100644 --- a/LICENSE-3rdparty.csv +++ b/LICENSE-3rdparty.csv @@ -14,14 +14,17 @@ bytes,https://github.com/tokio-rs/bytes,MIT,"Carl Lerche , Se cfg-if,https://github.com/alexcrichton/cfg-if,MIT OR Apache-2.0,Alex Crichton chrono,https://github.com/chronotope/chrono,MIT OR Apache-2.0,The chrono Authors core-foundation,https://github.com/servo/core-foundation-rs,MIT OR Apache-2.0,The Servo Project Developers +crc32fast,https://github.com/srijs/rust-crc32fast,MIT OR Apache-2.0,"Sam Rijs , Alex Crichton " darling,https://github.com/TedDriggs/darling,MIT,Ted Driggs deranged,https://github.com/jhpratt/deranged,MIT OR Apache-2.0,Jacob Pratt encoding_rs,https://github.com/hsivonen/encoding_rs,(Apache-2.0 OR MIT) AND BSD-3-Clause,Henri Sivonen equivalent,https://github.com/cuviper/equivalent,Apache-2.0 OR MIT,The equivalent Authors errno,https://github.com/lambda-fairy/rust-errno,MIT OR Apache-2.0,Chris Wong fastrand,https://github.com/smol-rs/fastrand,Apache-2.0 OR MIT,Stjepan Glavina +flate2,https://github.com/rust-lang/flate2-rs,MIT OR Apache-2.0,"Alex Crichton , Josh Triplett " fnv,https://github.com/servo/rust-fnv,Apache-2.0 OR MIT,Alex Crichton foreign-types,https://github.com/sfackler/foreign-types,MIT OR Apache-2.0,Steven Fackler +form-data-builder,https://github.com/iliana/form-data-builder,MIT-0,The form-data-builder Authors futures,https://github.com/rust-lang/futures-rs,MIT OR Apache-2.0,The futures Authors futures-channel,https://github.com/rust-lang/futures-rs,MIT OR Apache-2.0,The futures-channel Authors futures-core,https://github.com/rust-lang/futures-rs,MIT OR Apache-2.0,The futures-core Authors @@ -48,12 +51,14 @@ iana-time-zone-haiku,https://github.com/strawlab/iana-time-zone,MIT OR Apache-2. ident_case,https://github.com/TedDriggs/ident_case,MIT OR Apache-2.0,Ted Driggs indexmap,https://github.com/bluss/indexmap,Apache-2.0 OR MIT,The indexmap Authors indexmap,https://github.com/indexmap-rs/indexmap,Apache-2.0 OR MIT,The indexmap Authors +instant,https://github.com/sebcrozet/instant,BSD-3-Clause,sebcrozet ipnet,https://github.com/krisprice/ipnet,MIT OR Apache-2.0,Kris Price itoa,https://github.com/dtolnay/itoa,MIT OR Apache-2.0,David Tolnay js-sys,https://github.com/rustwasm/wasm-bindgen/tree/master/crates/js-sys,MIT OR Apache-2.0,The wasm-bindgen Developers lazy_static,https://github.com/rust-lang-nursery/lazy-static.rs,MIT OR Apache-2.0,Marvin Löbel libc,https://github.com/rust-lang/libc,MIT OR Apache-2.0,The Rust Project Developers linux-raw-sys,https://github.com/sunfishcode/linux-raw-sys,Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT,Dan Gohman +lock_api,https://github.com/Amanieu/parking_lot,MIT OR Apache-2.0,Amanieu d'Antras log,https://github.com/rust-lang/log,MIT OR Apache-2.0,The Rust Project Developers memchr,https://github.com/BurntSushi/memchr,Unlicense OR MIT,"Andrew Gallant , bluss" mime,https://github.com/hyperium/mime,MIT OR Apache-2.0,Sean McArthur @@ -70,6 +75,7 @@ openssl,https://github.com/sfackler/rust-openssl,Apache-2.0,Steven Fackler openssl-sys,https://github.com/sfackler/rust-openssl,MIT,"Alex Crichton , Steven Fackler " +parking_lot,https://github.com/Amanieu/parking_lot,Apache-2.0 OR MIT,Amanieu d'Antras pin-project-lite,https://github.com/taiki-e/pin-project-lite,Apache-2.0 OR MIT,The pin-project-lite Authors pin-utils,https://github.com/rust-lang-nursery/pin-utils,MIT OR Apache-2.0,Josef Brandl powerfmt,https://github.com/jhpratt/powerfmt,MIT OR Apache-2.0,Jacob Pratt @@ -78,13 +84,16 @@ proc-macro2,https://github.com/dtolnay/proc-macro2,MIT OR Apache-2.0,"David Toln quote,https://github.com/dtolnay/quote,MIT OR Apache-2.0,David Tolnay rand,https://github.com/rust-random/rand,MIT OR Apache-2.0,"The Rand Project Developers, The Rust Project Developers" rand_chacha,https://github.com/rust-random/rand,MIT OR Apache-2.0,"The Rand Project Developers, The Rust Project Developers, The CryptoCorrosion Contributors" +redox_syscall,https://gitlab.redox-os.org/redox-os/syscall,MIT,Jeremy Soller reqwest,https://github.com/seanmonstar/reqwest,MIT OR Apache-2.0,Sean McArthur reqwest-middleware,https://github.com/TrueLayer/reqwest-middleware,MIT OR Apache-2.0,Rodrigo Gryzinski +retry-policies,https://github.com/TrueLayer/retry-policies,MIT OR Apache-2.0,Luca Palmieri rustc-demangle,https://github.com/alexcrichton/rustc-demangle,MIT OR Apache-2.0,Alex Crichton rustix,https://github.com/bytecodealliance/rustix,Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT,"Dan Gohman , Jakub Konka " rustls-pemfile,https://github.com/rustls/pemfile,Apache-2.0 OR ISC OR MIT,The rustls-pemfile Authors ryu,https://github.com/dtolnay/ryu,Apache-2.0 OR BSL-1.0,David Tolnay schannel,https://github.com/steffengy/schannel-rs,MIT,"Steven Fackler , Steffen Butzer " +scopeguard,https://github.com/bluss/scopeguard,MIT OR Apache-2.0,bluss security-framework,https://github.com/kornelski/rust-security-framework,MIT OR Apache-2.0,"Steven Fackler , Kornel " serde,https://github.com/serde-rs/serde,MIT OR Apache-2.0,"Erick Tryzelaar , David Tolnay " serde_json,https://github.com/serde-rs/json,MIT OR Apache-2.0,"Erick Tryzelaar , David Tolnay " @@ -92,6 +101,7 @@ serde_urlencoded,https://github.com/nox/serde_urlencoded,MIT OR Apache-2.0,Antho serde_with,https://github.com/jonasbb/serde_with,MIT OR Apache-2.0,"Jonas Bushart, Marcin Kaźmierczak" serde_with_macros,https://github.com/jonasbb/serde_with,MIT OR Apache-2.0,Jonas Bushart slab,https://github.com/tokio-rs/slab,MIT,Carl Lerche +smallvec,https://github.com/servo/rust-smallvec,MIT OR Apache-2.0,The Servo Project Developers socket2,https://github.com/rust-lang/socket2,MIT OR Apache-2.0,"Alex Crichton , Thomas de Zeeuw " strsim,https://github.com/dguo/strsim-rs,MIT,Danny Guo syn,https://github.com/dtolnay/syn,MIT OR Apache-2.0,David Tolnay @@ -125,7 +135,9 @@ wasm-bindgen-futures,https://github.com/rustwasm/wasm-bindgen/tree/master/crates wasm-bindgen-macro,https://github.com/rustwasm/wasm-bindgen/tree/master/crates/macro,MIT OR Apache-2.0,The wasm-bindgen Developers wasm-bindgen-macro-support,https://github.com/rustwasm/wasm-bindgen/tree/master/crates/macro-support,MIT OR Apache-2.0,The wasm-bindgen Developers wasm-bindgen-shared,https://github.com/rustwasm/wasm-bindgen/tree/master/crates/shared,MIT OR Apache-2.0,The wasm-bindgen Developers +wasm-timer,https://github.com/tomaka/wasm-timer,MIT,Pierre Krieger web-sys,https://github.com/rustwasm/wasm-bindgen/tree/master/crates/web-sys,MIT OR Apache-2.0,The wasm-bindgen Developers +winapi,https://github.com/retep998/winapi-rs,MIT OR Apache-2.0,Peter Atashian windows-core,https://github.com/microsoft/windows-rs,MIT OR Apache-2.0,Microsoft windows-sys,https://github.com/microsoft/windows-rs,MIT OR Apache-2.0,Microsoft windows-targets,https://github.com/microsoft/windows-rs,MIT OR Apache-2.0,Microsoft @@ -137,3 +149,6 @@ windows_x86_64_gnu,https://github.com/microsoft/windows-rs,MIT OR Apache-2.0,Mic windows_x86_64_gnullvm,https://github.com/microsoft/windows-rs,MIT OR Apache-2.0,Microsoft windows_x86_64_msvc,https://github.com/microsoft/windows-rs,MIT OR Apache-2.0,Microsoft winreg,https://github.com/gentoo90/winreg-rs,MIT,Igor Shaula +zstd,https://github.com/gyscos/zstd-rs,MIT,Alexandre Bury +zstd-safe,https://github.com/gyscos/zstd-rs,MIT OR Apache-2.0,Alexandre Bury +zstd-sys,https://github.com/gyscos/zstd-rs,MIT OR Apache-2.0,Alexandre Bury diff --git a/README.md b/README.md index 3aedbb647..1d46639e8 100644 --- a/README.md +++ b/README.md @@ -1,45 +1,35 @@ -# datadog-api-client-rust +# Datadog API Client -This repository contains a Rust API client for the [Datadog API](https://docs.datadoghq.com/api/). +Rust HTTP client for the [Datadog API](https://docs.datadoghq.com/api/). -For more information, please visit [https://www.datadoghq.com/support/](https://www.datadoghq.com/support/) +To submit support or feature requests, please visit [https://www.datadoghq.com/support/](https://www.datadoghq.com/support/) ## Overview -This API client was generated from OpenAPI specs by code and templates in the `.generator/` folder. - -## Requirements - -Building this API client library requires: -``TODO`` +This API client was generated from Datadog's public OpenAPI specs. Generator code and templates can be found in the repository's `.generator/` folder. ## Installation -Add the following to `Cargo.toml` under `[dependencies]`: +Run `cargo add datadog-api-client` or add the following to `Cargo.toml` under `[dependencies]`: ``` -datadog-api-client = { git = "ssh://git@github.com/DataDog/datadog-api-client-rust.git", branch = "master" } +datadog-api-client = "0" ``` ## Getting Started -Please follow the [installation](#installation) instruction and execute the following Rust code: +Please follow the [installation](#installation) instructions and try the following snippet to validate your Datadog API key: -```Rust -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_monitors::{MonitorsAPI, GetMonitorOptionalParams}; +```rust +use datadog_api_client::datadog::Configuration; +use datadog_api_client::datadogV1::api_authentication::AuthenticationAPI; #[tokio::main] async fn main() { - env_logger::init(); let configuration = Configuration::new(); - let monitors_api = MonitorsAPI::with_config(configuration.clone()); - - let mut monitor_payload = GetMonitorOptionalParams::default(); - monitor_payload.group_states("all".into()); - - let resp = monitors_api.get_monitor(1234567, monitor_payload).await; - if let Ok(Some(value)) = resp { + let api = AuthenticationAPI::with_config(configuration); + let resp = api.validate().await; + if let Ok(value) = resp { println!("{:#?}", value); } else { println!("{:#?}", resp.unwrap_err()); @@ -47,45 +37,42 @@ async fn main() { } ``` +Example snippets for every callable endpoint can be found in the repository's `/examples/` directory. + ### Authentication By default the library will use the `DD_API_KEY` and `DD_APP_KEY` environment variables to authenticate against the Datadog API. To provide your own set of credentials, you need to set some keys on the configuration: ```rust - configuration.set_auth_key( - "apiKeyAuth", - APIKey { - key: "".to_string(), - prefix: "".to_owned(), - }, - ); - configuration.set_auth_key( - "appKeyAuth", - APIKey { - key: "".to_string(), - prefix: "".to_owned(), - }, - ); - +configuration.set_auth_key( + "apiKeyAuth", + APIKey { + key: "".to_string(), + prefix: "".to_owned(), + }, +); +configuration.set_auth_key( + "appKeyAuth", + APIKey { + key: "".to_string(), + prefix: "".to_owned(), + }, +); ``` ### Unstable Endpoints -This client includes access to Datadog API endpoints while they are in an unstable state and may undergo breaking changes. An extra configuration step is required to enable these endpoints: +This client includes access to Datadog API endpoints while they are in an unstable state and may undergo breaking changes. An extra configuration step is required to use these endpoints: ```rust -configuration.set_unstable_operation_enabled(, True ) +configuration.set_unstable_operation_enabled("", true) ``` -where is the API version and name of the method used to interact with that endpoint. For example: `v2.list_incidents`, or `v2.query_timeseries_data` - -## Documentation for API Endpoints +where `` is the API version and name of the method used to interact with that endpoint. For example: `v2.list_incidents`, or `v2.query_timeseries_data` -To get access to the crate's generated documentation, use: +### Contributing -``` -cargo doc --open -``` +As most of the code in this repository is generated, we will only accept PRs for files that are not modified by our code-generation machinery (changes to the generated files would get overwritten). We happily accept contributions to files that are not autogenerated, such as tests and development tooling. ## Author diff --git a/examples/v1_authentication_Validate.rs b/examples/v1_authentication_validate.rs similarity index 61% rename from examples/v1_authentication_Validate.rs rename to examples/v1_authentication_validate.rs index 94457d41c..901f1143d 100644 --- a/examples/v1_authentication_Validate.rs +++ b/examples/v1_authentication_validate.rs @@ -1,10 +1,10 @@ // Validate API key returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_authentication::AuthenticationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_authentication::AuthenticationAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AuthenticationAPI::with_config(configuration); let resp = api.validate().await; if let Ok(value) = resp { diff --git a/examples/v1_aws-integration_create_aws_account.rs b/examples/v1_aws-integration_create_aws_account.rs index 07490f8eb..ccfd3a53c 100644 --- a/examples/v1_aws-integration_create_aws_account.rs +++ b/examples/v1_aws-integration_create_aws_account.rs @@ -1,6 +1,6 @@ // Create an AWS integration returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_aws_integration::AWSIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_aws_integration::AWSIntegrationAPI; use datadog_api_client::datadogV1::model::AWSAccount; use std::collections::BTreeMap; @@ -16,7 +16,7 @@ async fn main() { .metrics_collection_enabled(false) .resource_collection_enabled(true) .role_name("DatadogAWSIntegrationRole".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AWSIntegrationAPI::with_config(configuration); let resp = api.create_aws_account(body).await; if let Ok(value) = resp { diff --git a/examples/v1_aws-integration_create_aws_event_bridge_source.rs b/examples/v1_aws-integration_create_aws_event_bridge_source.rs index d1319a254..891e2045a 100644 --- a/examples/v1_aws-integration_create_aws_event_bridge_source.rs +++ b/examples/v1_aws-integration_create_aws_event_bridge_source.rs @@ -1,6 +1,6 @@ // Create an Amazon EventBridge source returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_aws_integration::AWSIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_aws_integration::AWSIntegrationAPI; use datadog_api_client::datadogV1::model::AWSEventBridgeCreateRequest; #[tokio::main] @@ -10,7 +10,7 @@ async fn main() { .create_event_bus(true) .event_generator_name("app-alerts".to_string()) .region("us-east-1".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AWSIntegrationAPI::with_config(configuration); let resp = api.create_aws_event_bridge_source(body).await; if let Ok(value) = resp { diff --git a/examples/v1_aws-integration_create_aws_tag_filter.rs b/examples/v1_aws-integration_create_aws_tag_filter.rs index c2b5b06d5..f425f8a4c 100644 --- a/examples/v1_aws-integration_create_aws_tag_filter.rs +++ b/examples/v1_aws-integration_create_aws_tag_filter.rs @@ -1,6 +1,6 @@ // Set an AWS tag filter returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_aws_integration::AWSIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_aws_integration::AWSIntegrationAPI; use datadog_api_client::datadogV1::model::AWSNamespace; use datadog_api_client::datadogV1::model::AWSTagFilterCreateRequest; @@ -10,7 +10,7 @@ async fn main() { .account_id("123456789012".to_string()) .namespace(AWSNamespace::ELB) .tag_filter_str("prod*".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AWSIntegrationAPI::with_config(configuration); let resp = api.create_aws_tag_filter(body).await; if let Ok(value) = resp { diff --git a/examples/v1_aws-integration_create_new_aws_external_id.rs b/examples/v1_aws-integration_create_new_aws_external_id.rs index faf031fe9..76c51141d 100644 --- a/examples/v1_aws-integration_create_new_aws_external_id.rs +++ b/examples/v1_aws-integration_create_new_aws_external_id.rs @@ -1,6 +1,6 @@ // Generate a new external ID returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_aws_integration::AWSIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_aws_integration::AWSIntegrationAPI; use datadog_api_client::datadogV1::model::AWSAccount; use std::collections::BTreeMap; @@ -19,7 +19,7 @@ async fn main() { .metrics_collection_enabled(false) .resource_collection_enabled(true) .role_name("DatadogAWSIntegrationRole".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AWSIntegrationAPI::with_config(configuration); let resp = api.create_new_aws_external_id(body).await; if let Ok(value) = resp { diff --git a/examples/v1_aws-integration_delete_aws_account.rs b/examples/v1_aws-integration_delete_aws_account.rs index d9f8224aa..45251ec83 100644 --- a/examples/v1_aws-integration_delete_aws_account.rs +++ b/examples/v1_aws-integration_delete_aws_account.rs @@ -1,6 +1,6 @@ // Delete an AWS integration returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_aws_integration::AWSIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_aws_integration::AWSIntegrationAPI; use datadog_api_client::datadogV1::model::AWSAccountDeleteRequest; #[tokio::main] @@ -8,7 +8,7 @@ async fn main() { let body = AWSAccountDeleteRequest::new() .account_id("163662907100".to_string()) .role_name("DatadogAWSIntegrationRole".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AWSIntegrationAPI::with_config(configuration); let resp = api.delete_aws_account(body).await; if let Ok(value) = resp { diff --git a/examples/v1_aws-integration_delete_aws_event_bridge_source.rs b/examples/v1_aws-integration_delete_aws_event_bridge_source.rs index 0023527f2..47f950c44 100644 --- a/examples/v1_aws-integration_delete_aws_event_bridge_source.rs +++ b/examples/v1_aws-integration_delete_aws_event_bridge_source.rs @@ -1,6 +1,6 @@ // Delete an Amazon EventBridge source returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_aws_integration::AWSIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_aws_integration::AWSIntegrationAPI; use datadog_api_client::datadogV1::model::AWSEventBridgeDeleteRequest; #[tokio::main] @@ -9,7 +9,7 @@ async fn main() { .account_id("123456789012".to_string()) .event_generator_name("app-alerts-zyxw3210".to_string()) .region("us-east-1".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AWSIntegrationAPI::with_config(configuration); let resp = api.delete_aws_event_bridge_source(body).await; if let Ok(value) = resp { diff --git a/examples/v1_aws-integration_delete_aws_tag_filter.rs b/examples/v1_aws-integration_delete_aws_tag_filter.rs index 391caebb8..050e21194 100644 --- a/examples/v1_aws-integration_delete_aws_tag_filter.rs +++ b/examples/v1_aws-integration_delete_aws_tag_filter.rs @@ -1,6 +1,6 @@ // Delete a tag filtering entry returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_aws_integration::AWSIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_aws_integration::AWSIntegrationAPI; use datadog_api_client::datadogV1::model::AWSNamespace; use datadog_api_client::datadogV1::model::AWSTagFilterDeleteRequest; @@ -9,7 +9,7 @@ async fn main() { let body = AWSTagFilterDeleteRequest::new() .account_id("FAKEAC0FAKEAC2FAKEAC".to_string()) .namespace(AWSNamespace::ELB); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AWSIntegrationAPI::with_config(configuration); let resp = api.delete_aws_tag_filter(body).await; if let Ok(value) = resp { diff --git a/examples/v1_aws-integration_list_available_aws_namespaces.rs b/examples/v1_aws-integration_list_available_aws_namespaces.rs index 6d3a3e9c6..9c2b13ebc 100644 --- a/examples/v1_aws-integration_list_available_aws_namespaces.rs +++ b/examples/v1_aws-integration_list_available_aws_namespaces.rs @@ -1,10 +1,10 @@ // List namespace rules returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_aws_integration::AWSIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_aws_integration::AWSIntegrationAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AWSIntegrationAPI::with_config(configuration); let resp = api.list_available_aws_namespaces().await; if let Ok(value) = resp { diff --git a/examples/v1_aws-integration_list_aws_accounts.rs b/examples/v1_aws-integration_list_aws_accounts.rs index c34d057b4..5bc47aafc 100644 --- a/examples/v1_aws-integration_list_aws_accounts.rs +++ b/examples/v1_aws-integration_list_aws_accounts.rs @@ -1,11 +1,11 @@ // List all AWS integrations returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_aws_integration::AWSIntegrationAPI; -use datadog_api_client::datadogV1::api::api_aws_integration::ListAWSAccountsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_aws_integration::AWSIntegrationAPI; +use datadog_api_client::datadogV1::api_aws_integration::ListAWSAccountsOptionalParams; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AWSIntegrationAPI::with_config(configuration); let resp = api .list_aws_accounts(ListAWSAccountsOptionalParams::default()) diff --git a/examples/v1_aws-integration_list_aws_event_bridge_sources.rs b/examples/v1_aws-integration_list_aws_event_bridge_sources.rs index a5ba2ec6c..5b74d4f0e 100644 --- a/examples/v1_aws-integration_list_aws_event_bridge_sources.rs +++ b/examples/v1_aws-integration_list_aws_event_bridge_sources.rs @@ -1,10 +1,10 @@ // Get all Amazon EventBridge sources returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_aws_integration::AWSIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_aws_integration::AWSIntegrationAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AWSIntegrationAPI::with_config(configuration); let resp = api.list_aws_event_bridge_sources().await; if let Ok(value) = resp { diff --git a/examples/v1_aws-integration_list_aws_tag_filters.rs b/examples/v1_aws-integration_list_aws_tag_filters.rs index 6a5166ee0..906ff4e3a 100644 --- a/examples/v1_aws-integration_list_aws_tag_filters.rs +++ b/examples/v1_aws-integration_list_aws_tag_filters.rs @@ -1,10 +1,10 @@ // Get all AWS tag filters returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_aws_integration::AWSIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_aws_integration::AWSIntegrationAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AWSIntegrationAPI::with_config(configuration); let resp = api.list_aws_tag_filters("account_id".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v1_aws-integration_update_aws_account.rs b/examples/v1_aws-integration_update_aws_account.rs index eba275ecc..4f00da6f6 100644 --- a/examples/v1_aws-integration_update_aws_account.rs +++ b/examples/v1_aws-integration_update_aws_account.rs @@ -1,7 +1,7 @@ // Update an AWS integration returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_aws_integration::AWSIntegrationAPI; -use datadog_api_client::datadogV1::api::api_aws_integration::UpdateAWSAccountOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_aws_integration::AWSIntegrationAPI; +use datadog_api_client::datadogV1::api_aws_integration::UpdateAWSAccountOptionalParams; use datadog_api_client::datadogV1::model::AWSAccount; use std::collections::BTreeMap; @@ -17,7 +17,7 @@ async fn main() { .metrics_collection_enabled(true) .resource_collection_enabled(true) .role_name("DatadogAWSIntegrationRole".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AWSIntegrationAPI::with_config(configuration); let resp = api .update_aws_account( diff --git a/examples/v1_aws-logs-integration_check_aws_logs_lambda_async.rs b/examples/v1_aws-logs-integration_check_aws_logs_lambda_async.rs index fe04af9b2..3c4c68b4c 100644 --- a/examples/v1_aws-logs-integration_check_aws_logs_lambda_async.rs +++ b/examples/v1_aws-logs-integration_check_aws_logs_lambda_async.rs @@ -1,6 +1,6 @@ // Check that an AWS Lambda Function exists returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_aws_logs_integration::AWSLogsIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_aws_logs_integration::AWSLogsIntegrationAPI; use datadog_api_client::datadogV1::model::AWSAccountAndLambdaRequest; #[tokio::main] @@ -9,7 +9,7 @@ async fn main() { "1234567".to_string(), "arn:aws:lambda:us-east-1:1234567:function:LogsCollectionAPITest".to_string(), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AWSLogsIntegrationAPI::with_config(configuration); let resp = api.check_aws_logs_lambda_async(body).await; if let Ok(value) = resp { diff --git a/examples/v1_aws-logs-integration_check_aws_logs_services_async.rs b/examples/v1_aws-logs-integration_check_aws_logs_services_async.rs index 0ca8ca52d..2e4d918df 100644 --- a/examples/v1_aws-logs-integration_check_aws_logs_services_async.rs +++ b/examples/v1_aws-logs-integration_check_aws_logs_services_async.rs @@ -1,6 +1,6 @@ // Check permissions for log services returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_aws_logs_integration::AWSLogsIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_aws_logs_integration::AWSLogsIntegrationAPI; use datadog_api_client::datadogV1::model::AWSLogsServicesRequest; #[tokio::main] @@ -16,7 +16,7 @@ async fn main() { "lambda".to_string(), ], ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AWSLogsIntegrationAPI::with_config(configuration); let resp = api.check_aws_logs_services_async(body).await; if let Ok(value) = resp { diff --git a/examples/v1_aws-logs-integration_create_aws_lambda_arn.rs b/examples/v1_aws-logs-integration_create_aws_lambda_arn.rs index 2957ec913..95c16698f 100644 --- a/examples/v1_aws-logs-integration_create_aws_lambda_arn.rs +++ b/examples/v1_aws-logs-integration_create_aws_lambda_arn.rs @@ -1,6 +1,6 @@ // Add AWS Log Lambda ARN returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_aws_logs_integration::AWSLogsIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_aws_logs_integration::AWSLogsIntegrationAPI; use datadog_api_client::datadogV1::model::AWSAccountAndLambdaRequest; #[tokio::main] @@ -9,7 +9,7 @@ async fn main() { "1234567".to_string(), "arn:aws:lambda:us-east-1:1234567:function:LogsCollectionAPITest".to_string(), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AWSLogsIntegrationAPI::with_config(configuration); let resp = api.create_aws_lambda_arn(body).await; if let Ok(value) = resp { diff --git a/examples/v1_aws-logs-integration_delete_aws_lambda_arn.rs b/examples/v1_aws-logs-integration_delete_aws_lambda_arn.rs index e02f73553..6be1b0f6e 100644 --- a/examples/v1_aws-logs-integration_delete_aws_lambda_arn.rs +++ b/examples/v1_aws-logs-integration_delete_aws_lambda_arn.rs @@ -1,6 +1,6 @@ // Delete an AWS Logs integration returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_aws_logs_integration::AWSLogsIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_aws_logs_integration::AWSLogsIntegrationAPI; use datadog_api_client::datadogV1::model::AWSAccountAndLambdaRequest; #[tokio::main] @@ -9,7 +9,7 @@ async fn main() { "1234567".to_string(), "arn:aws:lambda:us-east-1:1234567:function:LogsCollectionAPITest".to_string(), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AWSLogsIntegrationAPI::with_config(configuration); let resp = api.delete_aws_lambda_arn(body).await; if let Ok(value) = resp { diff --git a/examples/v1_aws-logs-integration_enable_aws_log_services.rs b/examples/v1_aws-logs-integration_enable_aws_log_services.rs index f63f7a24e..e52fbb99d 100644 --- a/examples/v1_aws-logs-integration_enable_aws_log_services.rs +++ b/examples/v1_aws-logs-integration_enable_aws_log_services.rs @@ -1,6 +1,6 @@ // Enable an AWS Logs integration returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_aws_logs_integration::AWSLogsIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_aws_logs_integration::AWSLogsIntegrationAPI; use datadog_api_client::datadogV1::model::AWSLogsServicesRequest; #[tokio::main] @@ -16,7 +16,7 @@ async fn main() { "lambda".to_string(), ], ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AWSLogsIntegrationAPI::with_config(configuration); let resp = api.enable_aws_log_services(body).await; if let Ok(value) = resp { diff --git a/examples/v1_aws-logs-integration_list_aws_logs_integrations.rs b/examples/v1_aws-logs-integration_list_aws_logs_integrations.rs index 61b0084be..2d477b55b 100644 --- a/examples/v1_aws-logs-integration_list_aws_logs_integrations.rs +++ b/examples/v1_aws-logs-integration_list_aws_logs_integrations.rs @@ -1,10 +1,10 @@ // List all AWS Logs integrations returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_aws_logs_integration::AWSLogsIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_aws_logs_integration::AWSLogsIntegrationAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AWSLogsIntegrationAPI::with_config(configuration); let resp = api.list_aws_logs_integrations().await; if let Ok(value) = resp { diff --git a/examples/v1_aws-logs-integration_list_aws_logs_services.rs b/examples/v1_aws-logs-integration_list_aws_logs_services.rs index 43fbc86af..c82b7cb6b 100644 --- a/examples/v1_aws-logs-integration_list_aws_logs_services.rs +++ b/examples/v1_aws-logs-integration_list_aws_logs_services.rs @@ -1,10 +1,10 @@ // Get list of AWS log ready services returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_aws_logs_integration::AWSLogsIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_aws_logs_integration::AWSLogsIntegrationAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AWSLogsIntegrationAPI::with_config(configuration); let resp = api.list_aws_logs_services().await; if let Ok(value) = resp { diff --git a/examples/v1_azure-integration_create_azure_integration.rs b/examples/v1_azure-integration_create_azure_integration.rs index 77f1e8d37..c1d0ba771 100644 --- a/examples/v1_azure-integration_create_azure_integration.rs +++ b/examples/v1_azure-integration_create_azure_integration.rs @@ -1,6 +1,6 @@ // Create an Azure integration returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_azure_integration::AzureIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_azure_integration::AzureIntegrationAPI; use datadog_api_client::datadogV1::model::AzureAccount; #[tokio::main] @@ -19,7 +19,7 @@ async fn main() { .new_tenant_name("".to_string()) .resource_collection_enabled(true) .tenant_name("".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AzureIntegrationAPI::with_config(configuration); let resp = api.create_azure_integration(body).await; if let Ok(value) = resp { diff --git a/examples/v1_azure-integration_delete_azure_integration.rs b/examples/v1_azure-integration_delete_azure_integration.rs index ac3207d03..592bb0fcd 100644 --- a/examples/v1_azure-integration_delete_azure_integration.rs +++ b/examples/v1_azure-integration_delete_azure_integration.rs @@ -1,6 +1,6 @@ // Delete an Azure integration returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_azure_integration::AzureIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_azure_integration::AzureIntegrationAPI; use datadog_api_client::datadogV1::model::AzureAccount; #[tokio::main] @@ -8,7 +8,7 @@ async fn main() { let body = AzureAccount::new() .client_id("".to_string()) .tenant_name("".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AzureIntegrationAPI::with_config(configuration); let resp = api.delete_azure_integration(body).await; if let Ok(value) = resp { diff --git a/examples/v1_azure-integration_list_azure_integration.rs b/examples/v1_azure-integration_list_azure_integration.rs index 0afa2463e..308c381c6 100644 --- a/examples/v1_azure-integration_list_azure_integration.rs +++ b/examples/v1_azure-integration_list_azure_integration.rs @@ -1,10 +1,10 @@ // List all Azure integrations returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_azure_integration::AzureIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_azure_integration::AzureIntegrationAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AzureIntegrationAPI::with_config(configuration); let resp = api.list_azure_integration().await; if let Ok(value) = resp { diff --git a/examples/v1_azure-integration_update_azure_host_filters.rs b/examples/v1_azure-integration_update_azure_host_filters.rs index c2b59f06e..90a2bf3c7 100644 --- a/examples/v1_azure-integration_update_azure_host_filters.rs +++ b/examples/v1_azure-integration_update_azure_host_filters.rs @@ -1,6 +1,6 @@ // Update Azure integration host filters returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_azure_integration::AzureIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_azure_integration::AzureIntegrationAPI; use datadog_api_client::datadogV1::model::AzureAccount; #[tokio::main] @@ -19,7 +19,7 @@ async fn main() { .new_tenant_name("new1c44-1234-5678-9101-cc00736ftest".to_string()) .resource_collection_enabled(true) .tenant_name("testc44-1234-5678-9101-cc00736ftest".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AzureIntegrationAPI::with_config(configuration); let resp = api.update_azure_host_filters(body).await; if let Ok(value) = resp { diff --git a/examples/v1_azure-integration_update_azure_integration.rs b/examples/v1_azure-integration_update_azure_integration.rs index fc3bad699..8c6e60802 100644 --- a/examples/v1_azure-integration_update_azure_integration.rs +++ b/examples/v1_azure-integration_update_azure_integration.rs @@ -1,6 +1,6 @@ // Update an Azure integration returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_azure_integration::AzureIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_azure_integration::AzureIntegrationAPI; use datadog_api_client::datadogV1::model::AzureAccount; #[tokio::main] @@ -19,7 +19,7 @@ async fn main() { .new_tenant_name("".to_string()) .resource_collection_enabled(true) .tenant_name("".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AzureIntegrationAPI::with_config(configuration); let resp = api.update_azure_integration(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboard-lists_create_dashboard_list.rs b/examples/v1_dashboard-lists_create_dashboard_list.rs index a57bea309..bd3b5b544 100644 --- a/examples/v1_dashboard-lists_create_dashboard_list.rs +++ b/examples/v1_dashboard-lists_create_dashboard_list.rs @@ -1,12 +1,12 @@ // Create a dashboard list returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboard_lists::DashboardListsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboard_lists::DashboardListsAPI; use datadog_api_client::datadogV1::model::DashboardList; #[tokio::main] async fn main() { let body = DashboardList::new("Example-Dashboard-List".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardListsAPI::with_config(configuration); let resp = api.create_dashboard_list(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboard-lists_delete_dashboard_list.rs b/examples/v1_dashboard-lists_delete_dashboard_list.rs index 11022ad8c..6b1f28ed6 100644 --- a/examples/v1_dashboard-lists_delete_dashboard_list.rs +++ b/examples/v1_dashboard-lists_delete_dashboard_list.rs @@ -1,12 +1,12 @@ // Delete a dashboard list returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboard_lists::DashboardListsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboard_lists::DashboardListsAPI; #[tokio::main] async fn main() { // there is a valid "dashboard_list" in the system let dashboard_list_id: i64 = std::env::var("DASHBOARD_LIST_ID").unwrap().parse().unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardListsAPI::with_config(configuration); let resp = api.delete_dashboard_list(dashboard_list_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboard-lists_get_dashboard_list.rs b/examples/v1_dashboard-lists_get_dashboard_list.rs index 8ecb7ac3c..96725e821 100644 --- a/examples/v1_dashboard-lists_get_dashboard_list.rs +++ b/examples/v1_dashboard-lists_get_dashboard_list.rs @@ -1,12 +1,12 @@ // Get a dashboard list returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboard_lists::DashboardListsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboard_lists::DashboardListsAPI; #[tokio::main] async fn main() { // there is a valid "dashboard_list" in the system let dashboard_list_id: i64 = std::env::var("DASHBOARD_LIST_ID").unwrap().parse().unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardListsAPI::with_config(configuration); let resp = api.get_dashboard_list(dashboard_list_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboard-lists_list_dashboard_lists.rs b/examples/v1_dashboard-lists_list_dashboard_lists.rs index b97d8ea88..04ae7a7f1 100644 --- a/examples/v1_dashboard-lists_list_dashboard_lists.rs +++ b/examples/v1_dashboard-lists_list_dashboard_lists.rs @@ -1,10 +1,10 @@ // Get all dashboard lists returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboard_lists::DashboardListsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboard_lists::DashboardListsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardListsAPI::with_config(configuration); let resp = api.list_dashboard_lists().await; if let Ok(value) = resp { diff --git a/examples/v1_dashboard-lists_update_dashboard_list.rs b/examples/v1_dashboard-lists_update_dashboard_list.rs index 4fd99b191..77e098eff 100644 --- a/examples/v1_dashboard-lists_update_dashboard_list.rs +++ b/examples/v1_dashboard-lists_update_dashboard_list.rs @@ -1,6 +1,6 @@ // Update a dashboard list returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboard_lists::DashboardListsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboard_lists::DashboardListsAPI; use datadog_api_client::datadogV1::model::DashboardList; #[tokio::main] @@ -8,7 +8,7 @@ async fn main() { // there is a valid "dashboard_list" in the system let dashboard_list_id: i64 = std::env::var("DASHBOARD_LIST_ID").unwrap().parse().unwrap(); let body = DashboardList::new("updated Example-Dashboard-List".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardListsAPI::with_config(configuration); let resp = api .update_dashboard_list(dashboard_list_id.clone(), body) diff --git a/examples/v1_dashboards_create_dashboard.rs b/examples/v1_dashboards_create_dashboard.rs index 94d9d76bf..ecabd8cb3 100644 --- a/examples/v1_dashboards_create_dashboard.rs +++ b/examples/v1_dashboards_create_dashboard.rs @@ -1,6 +1,6 @@ // Create a new dashboard returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::LogQueryDefinition; @@ -43,7 +43,7 @@ async fn main() { )), ))], ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_1024858348.rs b/examples/v1_dashboards_create_dashboard_1024858348.rs index b222e1cac..9c824ad85 100644 --- a/examples/v1_dashboards_create_dashboard_1024858348.rs +++ b/examples/v1_dashboards_create_dashboard_1024858348.rs @@ -1,6 +1,6 @@ // Create a new dashboard with a formulas and functions treemap widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::FormulaAndFunctionEventAggregation; @@ -69,7 +69,7 @@ async fn main() { ).layout(WidgetLayout::new(4, 4, 0, 0)) ], ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_1039800684.rs b/examples/v1_dashboards_create_dashboard_1039800684.rs index a46b7d601..423b0c814 100644 --- a/examples/v1_dashboards_create_dashboard_1039800684.rs +++ b/examples/v1_dashboards_create_dashboard_1039800684.rs @@ -1,6 +1,6 @@ // Create a new dashboard with logs_pattern_stream list_stream widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::ListStreamColumn; @@ -35,7 +35,7 @@ async fn main() { )), ))], ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_109450134.rs b/examples/v1_dashboards_create_dashboard_109450134.rs index 1b79b7433..f7d42fcd7 100644 --- a/examples/v1_dashboards_create_dashboard_109450134.rs +++ b/examples/v1_dashboards_create_dashboard_109450134.rs @@ -1,6 +1,6 @@ // Create a new dashboard with slo list widget with sort -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::SLOListWidgetDefinition; @@ -44,7 +44,7 @@ async fn main() { .is_read_only(false) .notify_list(Some(vec![])) .template_variables(Some(vec![])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_1094917386.rs b/examples/v1_dashboards_create_dashboard_1094917386.rs index 7bd0f642c..9e66b37ab 100644 --- a/examples/v1_dashboards_create_dashboard_1094917386.rs +++ b/examples/v1_dashboards_create_dashboard_1094917386.rs @@ -1,6 +1,6 @@ // Create a new dashboard with manage_status widget and show_priority parameter -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::MonitorSummaryWidgetDefinition; @@ -41,7 +41,7 @@ async fn main() { .is_read_only(false) .notify_list(Some(vec![])) .template_variables(Some(vec![])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_1177423752.rs b/examples/v1_dashboards_create_dashboard_1177423752.rs index 60b374b92..fe517a02b 100644 --- a/examples/v1_dashboards_create_dashboard_1177423752.rs +++ b/examples/v1_dashboards_create_dashboard_1177423752.rs @@ -1,6 +1,6 @@ // Create a new dashboard with heatmap widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::HeatMapWidgetDefinition; @@ -38,7 +38,7 @@ async fn main() { .is_read_only(false) .notify_list(Some(vec![])) .template_variables(Some(vec![])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_1200099236.rs b/examples/v1_dashboards_create_dashboard_1200099236.rs index 412593cde..5363435bf 100644 --- a/examples/v1_dashboards_create_dashboard_1200099236.rs +++ b/examples/v1_dashboards_create_dashboard_1200099236.rs @@ -1,6 +1,6 @@ // Create a new dashboard with hostmap widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::HostMapRequest; @@ -46,7 +46,7 @@ async fn main() { .is_read_only(false) .notify_list(Some(vec![])) .template_variables(Some(vec![])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_1213075383.rs b/examples/v1_dashboards_create_dashboard_1213075383.rs index e2b28bf82..035381fb2 100644 --- a/examples/v1_dashboards_create_dashboard_1213075383.rs +++ b/examples/v1_dashboards_create_dashboard_1213075383.rs @@ -1,6 +1,6 @@ // Create a new dashboard with toplist widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::FormulaAndFunctionMetricAggregation; @@ -93,7 +93,7 @@ async fn main() { .is_read_only(false) .notify_list(Some(vec![])) .template_variables(Some(vec![])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_1284514532.rs b/examples/v1_dashboards_create_dashboard_1284514532.rs index b9110ef72..24674e113 100644 --- a/examples/v1_dashboards_create_dashboard_1284514532.rs +++ b/examples/v1_dashboards_create_dashboard_1284514532.rs @@ -1,7 +1,7 @@ // Create a new dashboard with a timeseries widget using formulas and functions // cloud cost query -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::FormulaAndFunctionCloudCostDataSource; @@ -70,7 +70,7 @@ async fn main() { ) ], ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_1307120899.rs b/examples/v1_dashboards_create_dashboard_1307120899.rs index e35c839d9..7e2055b30 100644 --- a/examples/v1_dashboards_create_dashboard_1307120899.rs +++ b/examples/v1_dashboards_create_dashboard_1307120899.rs @@ -1,6 +1,6 @@ // Create a new timeseries widget with ci_tests data source -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::DashboardReflowType; @@ -91,7 +91,7 @@ async fn main() { ) ], ).reflow_type(DashboardReflowType::AUTO); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_1423904722.rs b/examples/v1_dashboards_create_dashboard_1423904722.rs index e42784616..6c92a387f 100644 --- a/examples/v1_dashboards_create_dashboard_1423904722.rs +++ b/examples/v1_dashboards_create_dashboard_1423904722.rs @@ -1,6 +1,6 @@ // Create a new dashboard with slo list widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::SLOListWidgetDefinition; @@ -38,7 +38,7 @@ async fn main() { .is_read_only(false) .notify_list(Some(vec![])) .template_variables(Some(vec![])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_1442588603.rs b/examples/v1_dashboards_create_dashboard_1442588603.rs index 917527a64..c1a719b07 100644 --- a/examples/v1_dashboards_create_dashboard_1442588603.rs +++ b/examples/v1_dashboards_create_dashboard_1442588603.rs @@ -1,7 +1,7 @@ // Create a distribution widget using a histogram request containing a formulas // and functions APM Stats query -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::DistributionWidgetDefinition; @@ -80,7 +80,7 @@ async fn main() { ).layout(WidgetLayout::new(2, 4, 8, 0)) ], ).description(Some("".to_string())); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_145494973.rs b/examples/v1_dashboards_create_dashboard_145494973.rs index 83b9f6aba..45b0ef4ce 100644 --- a/examples/v1_dashboards_create_dashboard_145494973.rs +++ b/examples/v1_dashboards_create_dashboard_145494973.rs @@ -1,6 +1,6 @@ // Create a new dashboard with apm resource stats widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::FormulaAndFunctionApmResourceStatName; @@ -62,7 +62,7 @@ async fn main() { ).layout(WidgetLayout::new(4, 4, 0, 0)) ], ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_173805046.rs b/examples/v1_dashboards_create_dashboard_173805046.rs index ec12441a6..ee451caed 100644 --- a/examples/v1_dashboards_create_dashboard_173805046.rs +++ b/examples/v1_dashboards_create_dashboard_173805046.rs @@ -1,6 +1,6 @@ // Create a new dashboard with slo widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::SLOWidgetDefinition; @@ -36,7 +36,7 @@ async fn main() { .is_read_only(false) .notify_list(Some(vec![])) .template_variables(Some(vec![])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_1738608750.rs b/examples/v1_dashboards_create_dashboard_1738608750.rs index 231eb9aec..8e442a1f5 100644 --- a/examples/v1_dashboards_create_dashboard_1738608750.rs +++ b/examples/v1_dashboards_create_dashboard_1738608750.rs @@ -1,6 +1,6 @@ // Create a new dashboard with free_text widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::FreeTextWidgetDefinition; @@ -32,7 +32,7 @@ async fn main() { .is_read_only(false) .notify_list(Some(vec![])) .template_variables(Some(vec![])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_1754992756.rs b/examples/v1_dashboards_create_dashboard_1754992756.rs index 7f8d7c219..1169d9a52 100644 --- a/examples/v1_dashboards_create_dashboard_1754992756.rs +++ b/examples/v1_dashboards_create_dashboard_1754992756.rs @@ -1,6 +1,6 @@ // Create a new dashboard with powerpack widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::PowerpackTemplateVariableContents; @@ -39,7 +39,7 @@ async fn main() { ) .description(Some("description".to_string())) .is_read_only(false); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_1877023900.rs b/examples/v1_dashboards_create_dashboard_1877023900.rs index 35d1734ac..b67c2c896 100644 --- a/examples/v1_dashboards_create_dashboard_1877023900.rs +++ b/examples/v1_dashboards_create_dashboard_1877023900.rs @@ -1,6 +1,6 @@ // Create a new dashboard with list_stream widget with a valid sort parameter ASC -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::ListStreamColumn; @@ -41,7 +41,7 @@ async fn main() { )), ))], ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_2029850837.rs b/examples/v1_dashboards_create_dashboard_2029850837.rs index c2a275c7f..565cb579f 100644 --- a/examples/v1_dashboards_create_dashboard_2029850837.rs +++ b/examples/v1_dashboards_create_dashboard_2029850837.rs @@ -1,6 +1,6 @@ // Create a new dashboard with log_stream widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::LogStreamWidgetDefinition; @@ -42,7 +42,7 @@ async fn main() { .is_read_only(false) .notify_list(Some(vec![])) .template_variables(Some(vec![])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_2034634967.rs b/examples/v1_dashboards_create_dashboard_2034634967.rs index 3db3e671e..ace707435 100644 --- a/examples/v1_dashboards_create_dashboard_2034634967.rs +++ b/examples/v1_dashboards_create_dashboard_2034634967.rs @@ -1,6 +1,6 @@ // Create a new dashboard with servicemap widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::ServiceMapWidgetDefinition; @@ -33,7 +33,7 @@ async fn main() { .is_read_only(false) .notify_list(Some(vec![])) .template_variables(Some(vec![])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_2064651578.rs b/examples/v1_dashboards_create_dashboard_2064651578.rs index 63b45d3b4..670efbc33 100644 --- a/examples/v1_dashboards_create_dashboard_2064651578.rs +++ b/examples/v1_dashboards_create_dashboard_2064651578.rs @@ -1,6 +1,6 @@ // Create a new dashboard with team tags returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::ChangeWidgetDefinition; use datadog_api_client::datadogV1::model::ChangeWidgetDefinitionType; use datadog_api_client::datadogV1::model::ChangeWidgetRequest; @@ -84,7 +84,7 @@ async fn main() { ).layout(WidgetLayout::new(4, 4, 0, 0)) ], ).tags(Some(vec!["team:foobar".to_string()])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_2104498738.rs b/examples/v1_dashboards_create_dashboard_2104498738.rs index 81d892ef8..6245f0515 100644 --- a/examples/v1_dashboards_create_dashboard_2104498738.rs +++ b/examples/v1_dashboards_create_dashboard_2104498738.rs @@ -1,6 +1,6 @@ // Create a new dashboard with formulas and functions scatterplot widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::FormulaAndFunctionMetricAggregation; @@ -83,7 +83,7 @@ async fn main() { .layout(WidgetLayout::new(2, 4, 0, 0)) ], ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_2261785072.rs b/examples/v1_dashboards_create_dashboard_2261785072.rs index 16d6b708d..f4a2de895 100644 --- a/examples/v1_dashboards_create_dashboard_2261785072.rs +++ b/examples/v1_dashboards_create_dashboard_2261785072.rs @@ -1,6 +1,6 @@ // Create a new dashboard with a timeseries widget and an overlay request -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::FormulaAndFunctionMetricDataSource; @@ -78,7 +78,7 @@ async fn main() { ) ], ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_2278756614.rs b/examples/v1_dashboards_create_dashboard_2278756614.rs index 70fbaf26a..07a78368f 100644 --- a/examples/v1_dashboards_create_dashboard_2278756614.rs +++ b/examples/v1_dashboards_create_dashboard_2278756614.rs @@ -1,6 +1,6 @@ // Create a new dashboard with split graph widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::FormulaAndFunctionMetricDataSource; @@ -109,7 +109,7 @@ async fn main() { .is_read_only(false) .notify_list(Some(vec![])) .template_variables(Some(vec![])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_2308247857.rs b/examples/v1_dashboards_create_dashboard_2308247857.rs index e5ac671f7..18fe75577 100644 --- a/examples/v1_dashboards_create_dashboard_2308247857.rs +++ b/examples/v1_dashboards_create_dashboard_2308247857.rs @@ -1,6 +1,6 @@ // Create a new dashboard with alert_graph widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::AlertGraphWidgetDefinition; use datadog_api_client::datadogV1::model::AlertGraphWidgetDefinitionType; use datadog_api_client::datadogV1::model::Dashboard; @@ -37,7 +37,7 @@ async fn main() { .is_read_only(false) .notify_list(Some(vec![])) .template_variables(Some(vec![])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_2316374332.rs b/examples/v1_dashboards_create_dashboard_2316374332.rs index d2c523468..ede10f1aa 100644 --- a/examples/v1_dashboards_create_dashboard_2316374332.rs +++ b/examples/v1_dashboards_create_dashboard_2316374332.rs @@ -1,6 +1,6 @@ // Create a new dashboard with alert_value widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::AlertValueWidgetDefinition; use datadog_api_client::datadogV1::model::AlertValueWidgetDefinitionType; use datadog_api_client::datadogV1::model::Dashboard; @@ -36,7 +36,7 @@ async fn main() { .is_read_only(false) .notify_list(Some(vec![])) .template_variables(Some(vec![])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_2336428357.rs b/examples/v1_dashboards_create_dashboard_2336428357.rs index ee41a1cea..47a60f472 100644 --- a/examples/v1_dashboards_create_dashboard_2336428357.rs +++ b/examples/v1_dashboards_create_dashboard_2336428357.rs @@ -1,6 +1,6 @@ // Create a new dashboard with query_table widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::FormulaAndFunctionMetricAggregation; @@ -79,7 +79,7 @@ async fn main() { .is_read_only(false) .notify_list(Some(vec![])) .template_variables(Some(vec![])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_2338918735.rs b/examples/v1_dashboards_create_dashboard_2338918735.rs index 9d8cc8b46..9f710fd00 100644 --- a/examples/v1_dashboards_create_dashboard_2338918735.rs +++ b/examples/v1_dashboards_create_dashboard_2338918735.rs @@ -1,6 +1,6 @@ // Create a new dashboard with list_stream widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::ListStreamColumn; @@ -33,7 +33,7 @@ async fn main() { )), ))], ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_2342457693.rs b/examples/v1_dashboards_create_dashboard_2342457693.rs index dca6e1dee..10e623da0 100644 --- a/examples/v1_dashboards_create_dashboard_2342457693.rs +++ b/examples/v1_dashboards_create_dashboard_2342457693.rs @@ -1,6 +1,6 @@ // Create a new dashboard with scatterplot widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::FormulaAndFunctionMetricAggregation; @@ -103,7 +103,7 @@ async fn main() { .is_read_only(false) .notify_list(Some(vec![])) .template_variables(Some(vec![])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_2349863258.rs b/examples/v1_dashboards_create_dashboard_2349863258.rs index b23048e31..a0339243e 100644 --- a/examples/v1_dashboards_create_dashboard_2349863258.rs +++ b/examples/v1_dashboards_create_dashboard_2349863258.rs @@ -1,6 +1,6 @@ // Create a new dashboard with query_value widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::FormulaAndFunctionMetricAggregation; @@ -63,7 +63,7 @@ async fn main() { .is_read_only(false) .notify_list(Some(vec![])) .template_variables(Some(vec![])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_2361531620.rs b/examples/v1_dashboards_create_dashboard_2361531620.rs index 45e9190e3..79237a676 100644 --- a/examples/v1_dashboards_create_dashboard_2361531620.rs +++ b/examples/v1_dashboards_create_dashboard_2361531620.rs @@ -1,6 +1,6 @@ // Create a new dashboard with list_stream widget with a valid sort parameter DESC -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::ListStreamColumn; @@ -41,7 +41,7 @@ async fn main() { )), ))], ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_2432046716.rs b/examples/v1_dashboards_create_dashboard_2432046716.rs index 290de4cdf..ed7664a2c 100644 --- a/examples/v1_dashboards_create_dashboard_2432046716.rs +++ b/examples/v1_dashboards_create_dashboard_2432046716.rs @@ -1,6 +1,6 @@ // Create a new dashboard with event_stream list_stream widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::ListStreamColumn; @@ -35,7 +35,7 @@ async fn main() { )), ))], ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_2490110261.rs b/examples/v1_dashboards_create_dashboard_2490110261.rs index 834c6aa98..024983863 100644 --- a/examples/v1_dashboards_create_dashboard_2490110261.rs +++ b/examples/v1_dashboards_create_dashboard_2490110261.rs @@ -1,6 +1,6 @@ // Create a new dashboard with an audit logs query -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::FormulaAndFunctionEventAggregation; @@ -62,7 +62,7 @@ async fn main() { ).layout(WidgetLayout::new(2, 4, 2, 0)) ], ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_252716965.rs b/examples/v1_dashboards_create_dashboard_252716965.rs index 947df83a5..c88320b02 100644 --- a/examples/v1_dashboards_create_dashboard_252716965.rs +++ b/examples/v1_dashboards_create_dashboard_252716965.rs @@ -1,7 +1,7 @@ // Create a distribution widget using a histogram request containing a formulas // and functions metrics query -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::DistributionWidgetDefinition; @@ -80,7 +80,7 @@ async fn main() { ).layout(WidgetLayout::new(2, 4, 0, 0)) ], ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_2607944105.rs b/examples/v1_dashboards_create_dashboard_2607944105.rs index 5759b9445..240256194 100644 --- a/examples/v1_dashboards_create_dashboard_2607944105.rs +++ b/examples/v1_dashboards_create_dashboard_2607944105.rs @@ -1,6 +1,6 @@ // Create a new dashboard with check_status widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::CheckStatusWidgetDefinition; use datadog_api_client::datadogV1::model::CheckStatusWidgetDefinitionType; use datadog_api_client::datadogV1::model::Dashboard; @@ -34,7 +34,7 @@ async fn main() { .is_read_only(false) .notify_list(Some(vec![])) .template_variables(Some(vec![])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_2610827685.rs b/examples/v1_dashboards_create_dashboard_2610827685.rs index c09f1dd65..8ab44c455 100644 --- a/examples/v1_dashboards_create_dashboard_2610827685.rs +++ b/examples/v1_dashboards_create_dashboard_2610827685.rs @@ -1,6 +1,6 @@ // Create a new dashboard with run-workflow widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::RunWorkflowWidgetDefinition; @@ -39,7 +39,7 @@ async fn main() { .is_read_only(false) .notify_list(Some(vec![])) .template_variables(Some(vec![])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_2618036642.rs b/examples/v1_dashboards_create_dashboard_2618036642.rs index cd22df566..8b2046b63 100644 --- a/examples/v1_dashboards_create_dashboard_2618036642.rs +++ b/examples/v1_dashboards_create_dashboard_2618036642.rs @@ -1,6 +1,6 @@ // Create a new dashboard with trace_stream widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::ListStreamColumn; @@ -33,7 +33,7 @@ async fn main() { )), ))], ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_2634813877.rs b/examples/v1_dashboards_create_dashboard_2634813877.rs index 55144bbc9..5699501cb 100644 --- a/examples/v1_dashboards_create_dashboard_2634813877.rs +++ b/examples/v1_dashboards_create_dashboard_2634813877.rs @@ -1,6 +1,6 @@ // Create a new dashboard with event_stream widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::EventStreamWidgetDefinition; @@ -35,7 +35,7 @@ async fn main() { .is_read_only(false) .notify_list(Some(vec![])) .template_variables(Some(vec![])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_2644712913.rs b/examples/v1_dashboards_create_dashboard_2644712913.rs index 9f22ed364..4d6f65b4f 100644 --- a/examples/v1_dashboards_create_dashboard_2644712913.rs +++ b/examples/v1_dashboards_create_dashboard_2644712913.rs @@ -1,6 +1,6 @@ // Create a new dashboard with a query value widget using the percentile aggregator -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::FormulaAndFunctionMetricAggregation; @@ -61,7 +61,7 @@ async fn main() { ).layout(WidgetLayout::new(2, 2, 0, 0)) ], ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_2652180930.rs b/examples/v1_dashboards_create_dashboard_2652180930.rs index de3a4a5d5..e4dd0b1b4 100644 --- a/examples/v1_dashboards_create_dashboard_2652180930.rs +++ b/examples/v1_dashboards_create_dashboard_2652180930.rs @@ -1,6 +1,6 @@ // Create a new dashboard with topology_map widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::TopologyMapWidgetDefinition; @@ -43,7 +43,7 @@ async fn main() { .is_read_only(false) .notify_list(Some(vec![])) .template_variables(Some(vec![])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_2705593938.rs b/examples/v1_dashboards_create_dashboard_2705593938.rs index 6b4befb31..7dd47a639 100644 --- a/examples/v1_dashboards_create_dashboard_2705593938.rs +++ b/examples/v1_dashboards_create_dashboard_2705593938.rs @@ -1,6 +1,6 @@ // Create a new dashboard with sunburst widget and metrics data -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::FormulaAndFunctionMetricAggregation; @@ -59,7 +59,7 @@ async fn main() { ).layout(WidgetLayout::new(4, 4, 0, 0)) ], ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_2800096921.rs b/examples/v1_dashboards_create_dashboard_2800096921.rs index 803dd0d46..f307a682b 100644 --- a/examples/v1_dashboards_create_dashboard_2800096921.rs +++ b/examples/v1_dashboards_create_dashboard_2800096921.rs @@ -1,6 +1,6 @@ // Create a new timeseries widget with ci_pipelines data source -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::DashboardReflowType; @@ -91,7 +91,7 @@ async fn main() { ) ], ).reflow_type(DashboardReflowType::AUTO); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_2843286292.rs b/examples/v1_dashboards_create_dashboard_2843286292.rs index 274ff139d..d586a2842 100644 --- a/examples/v1_dashboards_create_dashboard_2843286292.rs +++ b/examples/v1_dashboards_create_dashboard_2843286292.rs @@ -1,6 +1,6 @@ // Create a new dashboard with logs_transaction_stream list_stream widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::ListStreamColumn; @@ -41,7 +41,7 @@ async fn main() { )), ))], ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_2850365602.rs b/examples/v1_dashboards_create_dashboard_2850365602.rs index 56d127f71..d699ee914 100644 --- a/examples/v1_dashboards_create_dashboard_2850365602.rs +++ b/examples/v1_dashboards_create_dashboard_2850365602.rs @@ -1,7 +1,7 @@ // Create a new dashboard with template variable presets using values returns "OK" // response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::DashboardReflowType; @@ -48,7 +48,7 @@ async fn main() { ])) .defaults(vec!["my-host".to_string()]) .prefix(Some("host".to_string()))])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_2917274132.rs b/examples/v1_dashboards_create_dashboard_2917274132.rs index 330e4398a..f39820f25 100644 --- a/examples/v1_dashboards_create_dashboard_2917274132.rs +++ b/examples/v1_dashboards_create_dashboard_2917274132.rs @@ -1,6 +1,6 @@ // Create a new dashboard with manage_status widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::MonitorSummaryWidgetDefinition; @@ -40,7 +40,7 @@ async fn main() { .is_read_only(false) .notify_list(Some(vec![])) .template_variables(Some(vec![])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_2921337351.rs b/examples/v1_dashboards_create_dashboard_2921337351.rs index 62798082e..ceb7c5e8f 100644 --- a/examples/v1_dashboards_create_dashboard_2921337351.rs +++ b/examples/v1_dashboards_create_dashboard_2921337351.rs @@ -1,6 +1,6 @@ // Create a new dashboard with trace_service widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::ServiceSummaryWidgetDefinition; @@ -43,7 +43,7 @@ async fn main() { .is_read_only(false) .notify_list(Some(vec![])) .template_variables(Some(vec![])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_3117424216.rs b/examples/v1_dashboards_create_dashboard_3117424216.rs index 578e0b540..47516524a 100644 --- a/examples/v1_dashboards_create_dashboard_3117424216.rs +++ b/examples/v1_dashboards_create_dashboard_3117424216.rs @@ -1,6 +1,6 @@ // Create a new dashboard with logs_stream list_stream widget and storage parameter -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::ListStreamColumn; @@ -34,7 +34,7 @@ async fn main() { )), ))], ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_3195475781.rs b/examples/v1_dashboards_create_dashboard_3195475781.rs index 371a70dd9..dad1042fc 100644 --- a/examples/v1_dashboards_create_dashboard_3195475781.rs +++ b/examples/v1_dashboards_create_dashboard_3195475781.rs @@ -1,6 +1,6 @@ // Create a new dashboard with ci_test_stream list_stream widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::ListStreamColumn; @@ -36,7 +36,7 @@ async fn main() { )), ))], ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_3250131584.rs b/examples/v1_dashboards_create_dashboard_3250131584.rs index e103b512a..3f0ac5117 100644 --- a/examples/v1_dashboards_create_dashboard_3250131584.rs +++ b/examples/v1_dashboards_create_dashboard_3250131584.rs @@ -1,6 +1,6 @@ // Create a new dashboard with event_timeline widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::EventTimelineWidgetDefinition; @@ -33,7 +33,7 @@ async fn main() { .is_read_only(false) .notify_list(Some(vec![])) .template_variables(Some(vec![])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_3513586382.rs b/examples/v1_dashboards_create_dashboard_3513586382.rs index 290672eba..9fd99917e 100644 --- a/examples/v1_dashboards_create_dashboard_3513586382.rs +++ b/examples/v1_dashboards_create_dashboard_3513586382.rs @@ -1,6 +1,6 @@ // Create a geomap widget using an event_list request -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::DashboardReflowType; @@ -72,7 +72,7 @@ async fn main() { .reflow_type(DashboardReflowType::FIXED) .tags(Some(vec![])) .template_variables(Some(vec![])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_3562282606.rs b/examples/v1_dashboards_create_dashboard_3562282606.rs index 83aa75447..9d42cc4e1 100644 --- a/examples/v1_dashboards_create_dashboard_3562282606.rs +++ b/examples/v1_dashboards_create_dashboard_3562282606.rs @@ -1,7 +1,7 @@ // Create a new dashboard with a change widget using formulas and functions slo // query -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::ChangeWidgetDefinition; use datadog_api_client::datadogV1::model::ChangeWidgetDefinitionType; use datadog_api_client::datadogV1::model::ChangeWidgetRequest; @@ -69,7 +69,7 @@ async fn main() { .layout(WidgetLayout::new(2, 4, 0, 0)), ], ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_3669695268.rs b/examples/v1_dashboards_create_dashboard_3669695268.rs index 08bd24ebd..614660a38 100644 --- a/examples/v1_dashboards_create_dashboard_3669695268.rs +++ b/examples/v1_dashboards_create_dashboard_3669695268.rs @@ -1,6 +1,6 @@ // Create a new dashboard with logs query table widget and storage parameter -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::FormulaAndFunctionEventAggregation; @@ -60,7 +60,7 @@ async fn main() { )), ))], ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_3777304439.rs b/examples/v1_dashboards_create_dashboard_3777304439.rs index 6929db5a2..d5172b48c 100644 --- a/examples/v1_dashboards_create_dashboard_3777304439.rs +++ b/examples/v1_dashboards_create_dashboard_3777304439.rs @@ -1,6 +1,6 @@ // Create a new dashboard with formula and function heatmap widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::FormulaAndFunctionMetricDataSource; @@ -63,7 +63,7 @@ async fn main() { .is_read_only(false) .notify_list(Some(vec![])) .template_variables(Some(vec![])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_3882428227.rs b/examples/v1_dashboards_create_dashboard_3882428227.rs index 84ee5de41..4ebc0fb55 100644 --- a/examples/v1_dashboards_create_dashboard_3882428227.rs +++ b/examples/v1_dashboards_create_dashboard_3882428227.rs @@ -1,7 +1,7 @@ // Create a distribution widget using a histogram request containing a formulas // and functions events query -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::DistributionWidgetDefinition; @@ -82,7 +82,7 @@ async fn main() { ).layout(WidgetLayout::new(2, 4, 0, 0)) ], ).description(Some("Example-Dashboard".to_string())); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_3982498788.rs b/examples/v1_dashboards_create_dashboard_3982498788.rs index 09c313dc2..caa426d2c 100644 --- a/examples/v1_dashboards_create_dashboard_3982498788.rs +++ b/examples/v1_dashboards_create_dashboard_3982498788.rs @@ -1,6 +1,6 @@ // Create a new dashboard with timeseries widget containing style attributes -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinition; @@ -45,7 +45,7 @@ async fn main() { ) ], ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_4026341408.rs b/examples/v1_dashboards_create_dashboard_4026341408.rs index 4c401f033..770a2e618 100644 --- a/examples/v1_dashboards_create_dashboard_4026341408.rs +++ b/examples/v1_dashboards_create_dashboard_4026341408.rs @@ -1,6 +1,6 @@ // Create a new dashboard with apm_issue_stream list_stream widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::ListStreamColumn; @@ -33,7 +33,7 @@ async fn main() { )), ))], ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_4076476470.rs b/examples/v1_dashboards_create_dashboard_4076476470.rs index f751afe12..3602d03d5 100644 --- a/examples/v1_dashboards_create_dashboard_4076476470.rs +++ b/examples/v1_dashboards_create_dashboard_4076476470.rs @@ -1,6 +1,6 @@ // Create a new dashboard with rum_issue_stream list_stream widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::ListStreamColumn; @@ -33,7 +33,7 @@ async fn main() { )), ))], ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_41622531.rs b/examples/v1_dashboards_create_dashboard_41622531.rs index 19bc6d4e7..f4637a9c6 100644 --- a/examples/v1_dashboards_create_dashboard_41622531.rs +++ b/examples/v1_dashboards_create_dashboard_41622531.rs @@ -1,6 +1,6 @@ // Create a new dashboard with timeseries widget and formula style attributes -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::DashboardReflowType; @@ -90,7 +90,7 @@ async fn main() { ) ], ).reflow_type(DashboardReflowType::AUTO); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_417992286.rs b/examples/v1_dashboards_create_dashboard_417992286.rs index 7828d0ded..48a3bd66f 100644 --- a/examples/v1_dashboards_create_dashboard_417992286.rs +++ b/examples/v1_dashboards_create_dashboard_417992286.rs @@ -1,6 +1,6 @@ // Create a new dashboard with note widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::NoteWidgetDefinition; @@ -23,7 +23,7 @@ async fn main() { .is_read_only(false) .notify_list(Some(vec![])) .template_variables(Some(vec![])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_578885732.rs b/examples/v1_dashboards_create_dashboard_578885732.rs index a2f5becd9..0862a6f8e 100644 --- a/examples/v1_dashboards_create_dashboard_578885732.rs +++ b/examples/v1_dashboards_create_dashboard_578885732.rs @@ -1,6 +1,6 @@ // Create a new dashboard with a formulas and functions change widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::ChangeWidgetDefinition; use datadog_api_client::datadogV1::model::ChangeWidgetDefinitionType; use datadog_api_client::datadogV1::model::ChangeWidgetRequest; @@ -84,7 +84,7 @@ async fn main() { ).layout(WidgetLayout::new(4, 4, 0, 0)) ], ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_651038379.rs b/examples/v1_dashboards_create_dashboard_651038379.rs index 17592c010..013cae297 100644 --- a/examples/v1_dashboards_create_dashboard_651038379.rs +++ b/examples/v1_dashboards_create_dashboard_651038379.rs @@ -1,6 +1,6 @@ // Create a new dashboard with image widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::ImageWidgetDefinition; @@ -30,7 +30,7 @@ async fn main() { .is_read_only(false) .notify_list(Some(vec![])) .template_variables(Some(vec![])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_765140092.rs b/examples/v1_dashboards_create_dashboard_765140092.rs index b5cefa6e7..0ceea4628 100644 --- a/examples/v1_dashboards_create_dashboard_765140092.rs +++ b/examples/v1_dashboards_create_dashboard_765140092.rs @@ -1,6 +1,6 @@ // Create a new dashboard with a query value widget using timeseries background -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::FormulaAndFunctionMetricAggregation; @@ -69,7 +69,7 @@ async fn main() { ).layout(WidgetLayout::new(2, 2, 0, 0)) ], ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_798168180.rs b/examples/v1_dashboards_create_dashboard_798168180.rs index cc04a45ab..539dbd776 100644 --- a/examples/v1_dashboards_create_dashboard_798168180.rs +++ b/examples/v1_dashboards_create_dashboard_798168180.rs @@ -1,6 +1,6 @@ // Create a new dashboard with apm dependency stats widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::FormulaAndFunctionApmDependencyStatName; @@ -62,7 +62,7 @@ async fn main() { ).layout(WidgetLayout::new(4, 4, 0, 0)) ], ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_803346562.rs b/examples/v1_dashboards_create_dashboard_803346562.rs index c6558bfd6..b5e4d73f9 100644 --- a/examples/v1_dashboards_create_dashboard_803346562.rs +++ b/examples/v1_dashboards_create_dashboard_803346562.rs @@ -1,6 +1,6 @@ // Create a new dashboard with distribution widget and apm stats data -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::ApmStatsQueryDefinition; use datadog_api_client::datadogV1::model::ApmStatsQueryRowType; use datadog_api_client::datadogV1::model::Dashboard; @@ -39,7 +39,7 @@ async fn main() { .layout(WidgetLayout::new(4, 4, 0, 0)), ], ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_858397694.rs b/examples/v1_dashboards_create_dashboard_858397694.rs index 1a63ea464..a4fd12b94 100644 --- a/examples/v1_dashboards_create_dashboard_858397694.rs +++ b/examples/v1_dashboards_create_dashboard_858397694.rs @@ -1,6 +1,6 @@ // Create a new dashboard with template variable defaults returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::DashboardReflowType; @@ -40,7 +40,7 @@ async fn main() { ])) .defaults(vec!["my-host".to_string()]) .prefix(Some("host".to_string()))])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_913313564.rs b/examples/v1_dashboards_create_dashboard_913313564.rs index e8d23130a..a208cfe85 100644 --- a/examples/v1_dashboards_create_dashboard_913313564.rs +++ b/examples/v1_dashboards_create_dashboard_913313564.rs @@ -1,6 +1,6 @@ // Create a new dashboard with iframe widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::IFrameWidgetDefinition; @@ -28,7 +28,7 @@ async fn main() { .is_read_only(false) .notify_list(Some(vec![])) .template_variables(Some(vec![])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_915214113.rs b/examples/v1_dashboards_create_dashboard_915214113.rs index c5444e780..bc30b97a8 100644 --- a/examples/v1_dashboards_create_dashboard_915214113.rs +++ b/examples/v1_dashboards_create_dashboard_915214113.rs @@ -1,6 +1,6 @@ // Create a new dashboard with geomap widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::FormulaAndFunctionEventAggregation; @@ -104,7 +104,7 @@ async fn main() { .is_read_only(false) .notify_list(Some(vec![])) .template_variables(Some(vec![])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_dashboard_927141680.rs b/examples/v1_dashboards_create_dashboard_927141680.rs index 97022d65c..d337ac54b 100644 --- a/examples/v1_dashboards_create_dashboard_927141680.rs +++ b/examples/v1_dashboards_create_dashboard_927141680.rs @@ -1,6 +1,6 @@ // Create a new dashboard with funnel widget -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::FunnelQuery; @@ -27,7 +27,7 @@ async fn main() { )), ))], ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_create_public_dashboard.rs b/examples/v1_dashboards_create_public_dashboard.rs index 85492c091..e106025e4 100644 --- a/examples/v1_dashboards_create_public_dashboard.rs +++ b/examples/v1_dashboards_create_public_dashboard.rs @@ -1,6 +1,6 @@ // Create a shared dashboard returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::DashboardGlobalTime; use datadog_api_client::datadogV1::model::DashboardGlobalTimeLiveSpan; use datadog_api_client::datadogV1::model::DashboardShareType; @@ -16,7 +16,7 @@ async fn main() { DashboardGlobalTime::new().live_span(DashboardGlobalTimeLiveSpan::PAST_ONE_HOUR), ) .share_type(Some(DashboardShareType::OPEN)); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.create_public_dashboard(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_delete_dashboard.rs b/examples/v1_dashboards_delete_dashboard.rs index 1839fbe4a..a170de1c2 100644 --- a/examples/v1_dashboards_delete_dashboard.rs +++ b/examples/v1_dashboards_delete_dashboard.rs @@ -1,12 +1,12 @@ // Delete a dashboard returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; #[tokio::main] async fn main() { // there is a valid "dashboard" in the system let dashboard_id = std::env::var("DASHBOARD_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.delete_dashboard(dashboard_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_delete_dashboards.rs b/examples/v1_dashboards_delete_dashboards.rs index 0fbf36619..f43b32738 100644 --- a/examples/v1_dashboards_delete_dashboards.rs +++ b/examples/v1_dashboards_delete_dashboards.rs @@ -1,6 +1,6 @@ // Delete dashboards returns "No Content" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::DashboardBulkActionData; use datadog_api_client::datadogV1::model::DashboardBulkDeleteRequest; use datadog_api_client::datadogV1::model::DashboardResourceType; @@ -13,7 +13,7 @@ async fn main() { dashboard_id.clone(), DashboardResourceType::DASHBOARD, )]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.delete_dashboards(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_delete_public_dashboard.rs b/examples/v1_dashboards_delete_public_dashboard.rs index 30eca89bc..35a668f4e 100644 --- a/examples/v1_dashboards_delete_public_dashboard.rs +++ b/examples/v1_dashboards_delete_public_dashboard.rs @@ -1,10 +1,10 @@ // Revoke a shared dashboard URL returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.delete_public_dashboard("token".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_delete_public_dashboard_invitation.rs b/examples/v1_dashboards_delete_public_dashboard_invitation.rs index a8e770d75..483291e37 100644 --- a/examples/v1_dashboards_delete_public_dashboard_invitation.rs +++ b/examples/v1_dashboards_delete_public_dashboard_invitation.rs @@ -1,6 +1,6 @@ // Revoke shared dashboard invitations returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::DashboardInviteType; use datadog_api_client::datadogV1::model::SharedDashboardInvites; use datadog_api_client::datadogV1::model::SharedDashboardInvitesData; @@ -17,7 +17,7 @@ async fn main() { DashboardInviteType::PUBLIC_DASHBOARD_INVITATION, )], )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api .delete_public_dashboard_invitation("token".to_string(), body) diff --git a/examples/v1_dashboards_get_dashboard.rs b/examples/v1_dashboards_get_dashboard.rs index 931d40727..33970127c 100644 --- a/examples/v1_dashboards_get_dashboard.rs +++ b/examples/v1_dashboards_get_dashboard.rs @@ -1,12 +1,12 @@ // Get a dashboard returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; #[tokio::main] async fn main() { // there is a valid "dashboard" in the system let dashboard_id = std::env::var("DASHBOARD_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.get_dashboard(dashboard_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_get_dashboard_4262333854.rs b/examples/v1_dashboards_get_dashboard_4262333854.rs index ff2cdea4b..aecb69ed7 100644 --- a/examples/v1_dashboards_get_dashboard_4262333854.rs +++ b/examples/v1_dashboards_get_dashboard_4262333854.rs @@ -1,12 +1,12 @@ // Get a dashboard returns 'author_name' -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; #[tokio::main] async fn main() { // there is a valid "dashboard" in the system let dashboard_id = std::env::var("DASHBOARD_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.get_dashboard(dashboard_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_get_public_dashboard.rs b/examples/v1_dashboards_get_public_dashboard.rs index a512ff829..a3de8fc6e 100644 --- a/examples/v1_dashboards_get_public_dashboard.rs +++ b/examples/v1_dashboards_get_public_dashboard.rs @@ -1,12 +1,12 @@ // Get a shared dashboard returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; #[tokio::main] async fn main() { // there is a valid "shared_dashboard" in the system let shared_dashboard_token = std::env::var("SHARED_DASHBOARD_TOKEN").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api .get_public_dashboard(shared_dashboard_token.clone()) diff --git a/examples/v1_dashboards_get_public_dashboard_invitations.rs b/examples/v1_dashboards_get_public_dashboard_invitations.rs index e56be5831..c6b67a8ca 100644 --- a/examples/v1_dashboards_get_public_dashboard_invitations.rs +++ b/examples/v1_dashboards_get_public_dashboard_invitations.rs @@ -1,13 +1,13 @@ // Get all invitations for a shared dashboard returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; -use datadog_api_client::datadogV1::api::api_dashboards::GetPublicDashboardInvitationsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; +use datadog_api_client::datadogV1::api_dashboards::GetPublicDashboardInvitationsOptionalParams; #[tokio::main] async fn main() { // there is a valid "shared_dashboard" in the system let shared_dashboard_token = std::env::var("SHARED_DASHBOARD_TOKEN").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api .get_public_dashboard_invitations( diff --git a/examples/v1_dashboards_list_dashboards.rs b/examples/v1_dashboards_list_dashboards.rs index 5fa82f917..92cd2888a 100644 --- a/examples/v1_dashboards_list_dashboards.rs +++ b/examples/v1_dashboards_list_dashboards.rs @@ -1,11 +1,11 @@ // Get all dashboards returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; -use datadog_api_client::datadogV1::api::api_dashboards::ListDashboardsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; +use datadog_api_client::datadogV1::api_dashboards::ListDashboardsOptionalParams; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api .list_dashboards(ListDashboardsOptionalParams::default().filter_shared(false)) diff --git a/examples/v1_dashboards_list_dashboards_1062671515.rs b/examples/v1_dashboards_list_dashboards_1062671515.rs index 1c32ede5b..1f6ce40e7 100644 --- a/examples/v1_dashboards_list_dashboards_1062671515.rs +++ b/examples/v1_dashboards_list_dashboards_1062671515.rs @@ -1,13 +1,13 @@ // Get all dashboards returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; -use datadog_api_client::datadogV1::api::api_dashboards::ListDashboardsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; +use datadog_api_client::datadogV1::api_dashboards::ListDashboardsOptionalParams; use futures_util::pin_mut; use futures_util::stream::StreamExt; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let response = api.list_dashboards_with_pagination(ListDashboardsOptionalParams::default().count(2)); diff --git a/examples/v1_dashboards_list_dashboards_1773932563.rs b/examples/v1_dashboards_list_dashboards_1773932563.rs index 2bb19c4d5..cc7d8510c 100644 --- a/examples/v1_dashboards_list_dashboards_1773932563.rs +++ b/examples/v1_dashboards_list_dashboards_1773932563.rs @@ -1,11 +1,11 @@ // Get deleted dashboards returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; -use datadog_api_client::datadogV1::api::api_dashboards::ListDashboardsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; +use datadog_api_client::datadogV1::api_dashboards::ListDashboardsOptionalParams; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api .list_dashboards(ListDashboardsOptionalParams::default().filter_deleted(true)) diff --git a/examples/v1_dashboards_restore_dashboards.rs b/examples/v1_dashboards_restore_dashboards.rs index 2a624921b..b76a43abd 100644 --- a/examples/v1_dashboards_restore_dashboards.rs +++ b/examples/v1_dashboards_restore_dashboards.rs @@ -1,6 +1,6 @@ // Restore deleted dashboards returns "No Content" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::DashboardBulkActionData; use datadog_api_client::datadogV1::model::DashboardResourceType; use datadog_api_client::datadogV1::model::DashboardRestoreRequest; @@ -13,7 +13,7 @@ async fn main() { dashboard_id.clone(), DashboardResourceType::DASHBOARD, )]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.restore_dashboards(body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_send_public_dashboard_invitation.rs b/examples/v1_dashboards_send_public_dashboard_invitation.rs index 0bced61af..4094bc724 100644 --- a/examples/v1_dashboards_send_public_dashboard_invitation.rs +++ b/examples/v1_dashboards_send_public_dashboard_invitation.rs @@ -1,6 +1,6 @@ // Send shared dashboard invitation email returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::DashboardInviteType; use datadog_api_client::datadogV1::model::SharedDashboardInvites; use datadog_api_client::datadogV1::model::SharedDashboardInvitesData; @@ -20,7 +20,7 @@ async fn main() { ), )), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api .send_public_dashboard_invitation(shared_dashboard_token.clone(), body) diff --git a/examples/v1_dashboards_update_dashboard.rs b/examples/v1_dashboards_update_dashboard.rs index 4396a283b..e3432a3f6 100644 --- a/examples/v1_dashboards_update_dashboard.rs +++ b/examples/v1_dashboards_update_dashboard.rs @@ -1,6 +1,6 @@ // Update a dashboard returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::ListStreamColumn; @@ -36,7 +36,7 @@ async fn main() { ))], ) .description(Some("Updated description".to_string())); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.update_dashboard(dashboard_id.clone(), body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_update_dashboard_3454865944.rs b/examples/v1_dashboards_update_dashboard_3454865944.rs index edd7e5e45..297f39aeb 100644 --- a/examples/v1_dashboards_update_dashboard_3454865944.rs +++ b/examples/v1_dashboards_update_dashboard_3454865944.rs @@ -1,6 +1,6 @@ // Update a dashboard with tags returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; use datadog_api_client::datadogV1::model::ListStreamColumn; @@ -37,7 +37,7 @@ async fn main() { ) .description(Some("Updated description".to_string())) .tags(Some(vec!["team:foo".to_string(), "team:bar".to_string()])); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api.update_dashboard(dashboard_id.clone(), body).await; if let Ok(value) = resp { diff --git a/examples/v1_dashboards_update_public_dashboard.rs b/examples/v1_dashboards_update_public_dashboard.rs index ff081bf9e..315b07bb1 100644 --- a/examples/v1_dashboards_update_public_dashboard.rs +++ b/examples/v1_dashboards_update_public_dashboard.rs @@ -1,6 +1,6 @@ // Update a shared dashboard returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_dashboards::DashboardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::DashboardGlobalTimeLiveSpan; use datadog_api_client::datadogV1::model::DashboardShareType; use datadog_api_client::datadogV1::model::SharedDashboardUpdateRequest; @@ -16,7 +16,7 @@ async fn main() { )) .share_list(Some(vec![])) .share_type(Some(DashboardShareType::OPEN)); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardsAPI::with_config(configuration); let resp = api .update_public_dashboard(shared_dashboard_token.clone(), body) diff --git a/examples/v1_downtimes_cancel_downtime.rs b/examples/v1_downtimes_cancel_downtime.rs index 42f3647d3..521833cda 100644 --- a/examples/v1_downtimes_cancel_downtime.rs +++ b/examples/v1_downtimes_cancel_downtime.rs @@ -1,12 +1,12 @@ // Cancel a downtime returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_downtimes::DowntimesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_downtimes::DowntimesAPI; #[tokio::main] async fn main() { // there is a valid "downtime" in the system let downtime_id: i64 = std::env::var("DOWNTIME_ID").unwrap().parse().unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DowntimesAPI::with_config(configuration); let resp = api.cancel_downtime(downtime_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v1_downtimes_cancel_downtimes_by_scope.rs b/examples/v1_downtimes_cancel_downtimes_by_scope.rs index bcf6882f8..e6ba9afa7 100644 --- a/examples/v1_downtimes_cancel_downtimes_by_scope.rs +++ b/examples/v1_downtimes_cancel_downtimes_by_scope.rs @@ -1,6 +1,6 @@ // Cancel downtimes by scope returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_downtimes::DowntimesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_downtimes::DowntimesAPI; use datadog_api_client::datadogV1::model::CancelDowntimesByScopeRequest; #[tokio::main] @@ -8,7 +8,7 @@ async fn main() { // there is a valid "downtime" in the system let downtime_scope_0 = std::env::var("DOWNTIME_SCOPE_0").unwrap(); let body = CancelDowntimesByScopeRequest::new(downtime_scope_0.clone()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DowntimesAPI::with_config(configuration); let resp = api.cancel_downtimes_by_scope(body).await; if let Ok(value) = resp { diff --git a/examples/v1_downtimes_create_downtime.rs b/examples/v1_downtimes_create_downtime.rs index be0a585b8..a53e11176 100644 --- a/examples/v1_downtimes_create_downtime.rs +++ b/examples/v1_downtimes_create_downtime.rs @@ -1,6 +1,6 @@ // Schedule a downtime returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_downtimes::DowntimesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_downtimes::DowntimesAPI; use datadog_api_client::datadogV1::model::Downtime; use datadog_api_client::datadogV1::model::DowntimeRecurrence; use datadog_api_client::datadogV1::model::NotifyEndState; @@ -33,7 +33,7 @@ async fn main() { .scope(vec!["test:exampledowntime".to_string()]) .start(1636629071) .timezone("Etc/UTC".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DowntimesAPI::with_config(configuration); let resp = api.create_downtime(body).await; if let Ok(value) = resp { diff --git a/examples/v1_downtimes_create_downtime_1393233946.rs b/examples/v1_downtimes_create_downtime_1393233946.rs index 9d91b7604..ada054a0b 100644 --- a/examples/v1_downtimes_create_downtime_1393233946.rs +++ b/examples/v1_downtimes_create_downtime_1393233946.rs @@ -1,6 +1,6 @@ // Schedule a downtime with until occurrences -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_downtimes::DowntimesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_downtimes::DowntimesAPI; use datadog_api_client::datadogV1::model::Downtime; use datadog_api_client::datadogV1::model::DowntimeRecurrence; @@ -26,7 +26,7 @@ async fn main() { .scope(vec!["*".to_string()]) .start(1636629071) .timezone("Etc/UTC".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DowntimesAPI::with_config(configuration); let resp = api.create_downtime(body).await; if let Ok(value) = resp { diff --git a/examples/v1_downtimes_create_downtime_2908359488.rs b/examples/v1_downtimes_create_downtime_2908359488.rs index 4e7af28fa..978d9de97 100644 --- a/examples/v1_downtimes_create_downtime_2908359488.rs +++ b/examples/v1_downtimes_create_downtime_2908359488.rs @@ -1,6 +1,6 @@ // Schedule a downtime until date -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_downtimes::DowntimesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_downtimes::DowntimesAPI; use datadog_api_client::datadogV1::model::Downtime; use datadog_api_client::datadogV1::model::DowntimeRecurrence; use datadog_api_client::datadogV1::model::NotifyEndState; @@ -31,7 +31,7 @@ async fn main() { .scope(vec!["*".to_string()]) .start(1636629071) .timezone("Etc/UTC".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DowntimesAPI::with_config(configuration); let resp = api.create_downtime(body).await; if let Ok(value) = resp { diff --git a/examples/v1_downtimes_create_downtime_3059354445.rs b/examples/v1_downtimes_create_downtime_3059354445.rs index b4f58c619..d64702845 100644 --- a/examples/v1_downtimes_create_downtime_3059354445.rs +++ b/examples/v1_downtimes_create_downtime_3059354445.rs @@ -1,6 +1,6 @@ // Schedule a downtime once a year -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_downtimes::DowntimesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_downtimes::DowntimesAPI; use datadog_api_client::datadogV1::model::Downtime; use datadog_api_client::datadogV1::model::DowntimeRecurrence; use datadog_api_client::datadogV1::model::NotifyEndState; @@ -23,7 +23,7 @@ async fn main() { .scope(vec!["*".to_string()]) .start(1636629071) .timezone("Etc/UTC".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DowntimesAPI::with_config(configuration); let resp = api.create_downtime(body).await; if let Ok(value) = resp { diff --git a/examples/v1_downtimes_create_downtime_3355644446.rs b/examples/v1_downtimes_create_downtime_3355644446.rs index 2eebf0d87..d4f6d91e8 100644 --- a/examples/v1_downtimes_create_downtime_3355644446.rs +++ b/examples/v1_downtimes_create_downtime_3355644446.rs @@ -1,6 +1,6 @@ // Schedule a monitor downtime returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_downtimes::DowntimesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_downtimes::DowntimesAPI; use datadog_api_client::datadogV1::model::Downtime; #[tokio::main] @@ -13,7 +13,7 @@ async fn main() { .scope(vec!["test:exampledowntime".to_string()]) .start(1636629071) .timezone("Etc/UTC".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DowntimesAPI::with_config(configuration); let resp = api.create_downtime(body).await; if let Ok(value) = resp { diff --git a/examples/v1_downtimes_get_downtime.rs b/examples/v1_downtimes_get_downtime.rs index 6b100c326..018520b79 100644 --- a/examples/v1_downtimes_get_downtime.rs +++ b/examples/v1_downtimes_get_downtime.rs @@ -1,12 +1,12 @@ // Get a downtime returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_downtimes::DowntimesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_downtimes::DowntimesAPI; #[tokio::main] async fn main() { // there is a valid "downtime" in the system let downtime_id: i64 = std::env::var("DOWNTIME_ID").unwrap().parse().unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DowntimesAPI::with_config(configuration); let resp = api.get_downtime(downtime_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v1_downtimes_list_downtimes.rs b/examples/v1_downtimes_list_downtimes.rs index 8f4b9f543..d8da8d5c0 100644 --- a/examples/v1_downtimes_list_downtimes.rs +++ b/examples/v1_downtimes_list_downtimes.rs @@ -1,11 +1,11 @@ // Get all downtimes returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_downtimes::DowntimesAPI; -use datadog_api_client::datadogV1::api::api_downtimes::ListDowntimesOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_downtimes::DowntimesAPI; +use datadog_api_client::datadogV1::api_downtimes::ListDowntimesOptionalParams; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DowntimesAPI::with_config(configuration); let resp = api .list_downtimes(ListDowntimesOptionalParams::default().with_creator(true)) diff --git a/examples/v1_downtimes_list_monitor_downtimes.rs b/examples/v1_downtimes_list_monitor_downtimes.rs index 3f417ea95..0fa9c1081 100644 --- a/examples/v1_downtimes_list_monitor_downtimes.rs +++ b/examples/v1_downtimes_list_monitor_downtimes.rs @@ -1,10 +1,10 @@ // Get active downtimes for a monitor returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_downtimes::DowntimesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_downtimes::DowntimesAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DowntimesAPI::with_config(configuration); let resp = api.list_monitor_downtimes(9223372036854775807).await; if let Ok(value) = resp { diff --git a/examples/v1_downtimes_update_downtime.rs b/examples/v1_downtimes_update_downtime.rs index 44b475c72..5f4f72fd9 100644 --- a/examples/v1_downtimes_update_downtime.rs +++ b/examples/v1_downtimes_update_downtime.rs @@ -1,6 +1,6 @@ // Update a downtime returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_downtimes::DowntimesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_downtimes::DowntimesAPI; use datadog_api_client::datadogV1::model::Downtime; use datadog_api_client::datadogV1::model::NotifyEndState; use datadog_api_client::datadogV1::model::NotifyEndType; @@ -18,7 +18,7 @@ async fn main() { NotifyEndState::WARN, ]) .notify_end_types(vec![NotifyEndType::CANCELED, NotifyEndType::EXPIRED]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DowntimesAPI::with_config(configuration); let resp = api.update_downtime(downtime_id.clone(), body).await; if let Ok(value) = resp { diff --git a/examples/v1_events_create_event.rs b/examples/v1_events_create_event.rs index d6cb32e28..8990925c4 100644 --- a/examples/v1_events_create_event.rs +++ b/examples/v1_events_create_event.rs @@ -1,13 +1,13 @@ // Post an event returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_events::EventsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_events::EventsAPI; use datadog_api_client::datadogV1::model::EventCreateRequest; #[tokio::main] async fn main() { let body = EventCreateRequest::new("A text message.".to_string(), "Example-Event".to_string()) .tags(vec!["test:ExampleEvent".to_string()]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = EventsAPI::with_config(configuration); let resp = api.create_event(body).await; if let Ok(value) = resp { diff --git a/examples/v1_events_create_event_19927815.rs b/examples/v1_events_create_event_19927815.rs index 178123939..90cb07203 100644 --- a/examples/v1_events_create_event_19927815.rs +++ b/examples/v1_events_create_event_19927815.rs @@ -1,6 +1,6 @@ // Post an event with a long title returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_events::EventsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_events::EventsAPI; use datadog_api_client::datadogV1::model::EventCreateRequest; #[tokio::main] @@ -10,7 +10,7 @@ async fn main() { "A text message.".to_string(), "Example-Event very very very looooooooong looooooooooooong loooooooooooooooooooooong looooooooooooooooooooooooooong title with 100+ characters".to_string(), ).tags(vec!["test:ExampleEvent".to_string()]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = EventsAPI::with_config(configuration); let resp = api.create_event(body).await; if let Ok(value) = resp { diff --git a/examples/v1_events_get_event.rs b/examples/v1_events_get_event.rs index 4fc57a748..fc44d5a77 100644 --- a/examples/v1_events_get_event.rs +++ b/examples/v1_events_get_event.rs @@ -1,10 +1,10 @@ // Get an event returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_events::EventsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_events::EventsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = EventsAPI::with_config(configuration); let resp = api.get_event(9223372036854775807).await; if let Ok(value) = resp { diff --git a/examples/v1_events_list_events.rs b/examples/v1_events_list_events.rs index 2ace824e6..37906e400 100644 --- a/examples/v1_events_list_events.rs +++ b/examples/v1_events_list_events.rs @@ -1,11 +1,11 @@ // Get a list of events returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_events::EventsAPI; -use datadog_api_client::datadogV1::api::api_events::ListEventsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_events::EventsAPI; +use datadog_api_client::datadogV1::api_events::ListEventsOptionalParams; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = EventsAPI::with_config(configuration); let resp = api .list_events( diff --git a/examples/v1_gcp-integration_create_gcp_integration.rs b/examples/v1_gcp-integration_create_gcp_integration.rs index 904766f7e..699684060 100644 --- a/examples/v1_gcp-integration_create_gcp_integration.rs +++ b/examples/v1_gcp-integration_create_gcp_integration.rs @@ -1,6 +1,6 @@ // Create a GCP integration returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_gcp_integration::GCPIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_gcp_integration::GCPIntegrationAPI; use datadog_api_client::datadogV1::model::GCPAccount; #[tokio::main] @@ -13,6 +13,7 @@ async fn main() { .client_x509_cert_url( "https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL".to_string(), ) + .cloud_run_revision_filters(vec!["dr:dre".to_string()]) .host_filters("key:value,filter:example".to_string()) .is_cspm_enabled(true) .is_security_command_center_enabled(true) @@ -22,7 +23,7 @@ async fn main() { .resource_collection_enabled(true) .token_uri("https://accounts.google.com/o/oauth2/token".to_string()) .type_("service_account".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = GCPIntegrationAPI::with_config(configuration); let resp = api.create_gcp_integration(body).await; if let Ok(value) = resp { diff --git a/examples/v1_gcp-integration_delete_gcp_integration.rs b/examples/v1_gcp-integration_delete_gcp_integration.rs index 5084954fa..88ad156a6 100644 --- a/examples/v1_gcp-integration_delete_gcp_integration.rs +++ b/examples/v1_gcp-integration_delete_gcp_integration.rs @@ -1,6 +1,6 @@ // Delete a GCP integration returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_gcp_integration::GCPIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_gcp_integration::GCPIntegrationAPI; use datadog_api_client::datadogV1::model::GCPAccount; #[tokio::main] @@ -9,7 +9,7 @@ async fn main() { .client_email("252bf553ef04b351@example.com".to_string()) .client_id("163662907116366290710".to_string()) .project_id("datadog-apitest".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = GCPIntegrationAPI::with_config(configuration); let resp = api.delete_gcp_integration(body).await; if let Ok(value) = resp { diff --git a/examples/v1_gcp-integration_list_gcp_integration.rs b/examples/v1_gcp-integration_list_gcp_integration.rs index 9c5c37b69..10cfffe27 100644 --- a/examples/v1_gcp-integration_list_gcp_integration.rs +++ b/examples/v1_gcp-integration_list_gcp_integration.rs @@ -1,10 +1,10 @@ // List all GCP integrations returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_gcp_integration::GCPIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_gcp_integration::GCPIntegrationAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = GCPIntegrationAPI::with_config(configuration); let resp = api.list_gcp_integration().await; if let Ok(value) = resp { diff --git a/examples/v1_gcp-integration_update_gcp_integration.rs b/examples/v1_gcp-integration_update_gcp_integration.rs index 21430bf45..6b13eaed4 100644 --- a/examples/v1_gcp-integration_update_gcp_integration.rs +++ b/examples/v1_gcp-integration_update_gcp_integration.rs @@ -1,6 +1,6 @@ // Update a GCP integration returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_gcp_integration::GCPIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_gcp_integration::GCPIntegrationAPI; use datadog_api_client::datadogV1::model::GCPAccount; #[tokio::main] @@ -22,7 +22,7 @@ async fn main() { .resource_collection_enabled(true) .token_uri("https://accounts.google.com/o/oauth2/token".to_string()) .type_("service_account".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = GCPIntegrationAPI::with_config(configuration); let resp = api.update_gcp_integration(body).await; if let Ok(value) = resp { diff --git a/examples/v1_gcp-integration_update_gcp_integration_3544259255.rs b/examples/v1_gcp-integration_update_gcp_integration_3544259255.rs new file mode 100644 index 000000000..a3cda4133 --- /dev/null +++ b/examples/v1_gcp-integration_update_gcp_integration_3544259255.rs @@ -0,0 +1,34 @@ +// Update a GCP integration cloud run revision filters returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_gcp_integration::GCPIntegrationAPI; +use datadog_api_client::datadogV1::model::GCPAccount; + +#[tokio::main] +async fn main() { + let body = GCPAccount::new() + .auth_provider_x509_cert_url("https://www.googleapis.com/oauth2/v1/certs".to_string()) + .auth_uri("https://accounts.google.com/o/oauth2/auth".to_string()) + .client_email("252bf553ef04b351@example.com".to_string()) + .client_id("163662907116366290710".to_string()) + .client_x509_cert_url( + "https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL".to_string(), + ) + .cloud_run_revision_filters(vec!["merp:derp".to_string()]) + .host_filters("key:value,filter:example".to_string()) + .is_cspm_enabled(true) + .is_security_command_center_enabled(true) + .private_key("private_key".to_string()) + .private_key_id("123456789abcdefghi123456789abcdefghijklm".to_string()) + .project_id("datadog-apitest".to_string()) + .resource_collection_enabled(true) + .token_uri("https://accounts.google.com/o/oauth2/token".to_string()) + .type_("service_account".to_string()); + let configuration = datadog::Configuration::new(); + let api = GCPIntegrationAPI::with_config(configuration); + let resp = api.update_gcp_integration(body).await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v1_hosts_get_host_totals.rs b/examples/v1_hosts_get_host_totals.rs index 91ac26c15..da424b46b 100644 --- a/examples/v1_hosts_get_host_totals.rs +++ b/examples/v1_hosts_get_host_totals.rs @@ -1,11 +1,11 @@ // Get the total number of active hosts returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_hosts::GetHostTotalsOptionalParams; -use datadog_api_client::datadogV1::api::api_hosts::HostsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_hosts::GetHostTotalsOptionalParams; +use datadog_api_client::datadogV1::api_hosts::HostsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = HostsAPI::with_config(configuration); let resp = api .get_host_totals(GetHostTotalsOptionalParams::default()) diff --git a/examples/v1_hosts_list_hosts.rs b/examples/v1_hosts_list_hosts.rs index bbb90bd5c..7fb7fbe7d 100644 --- a/examples/v1_hosts_list_hosts.rs +++ b/examples/v1_hosts_list_hosts.rs @@ -1,11 +1,11 @@ // Get all hosts for your organization returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_hosts::HostsAPI; -use datadog_api_client::datadogV1::api::api_hosts::ListHostsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_hosts::HostsAPI; +use datadog_api_client::datadogV1::api_hosts::ListHostsOptionalParams; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = HostsAPI::with_config(configuration); let resp = api .list_hosts(ListHostsOptionalParams::default().filter("env:ci".to_string())) diff --git a/examples/v1_hosts_list_hosts_2975406675.rs b/examples/v1_hosts_list_hosts_2975406675.rs index 11d7350d9..64157d99e 100644 --- a/examples/v1_hosts_list_hosts_2975406675.rs +++ b/examples/v1_hosts_list_hosts_2975406675.rs @@ -1,11 +1,11 @@ // Get all hosts with metadata for your organization returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_hosts::HostsAPI; -use datadog_api_client::datadogV1::api::api_hosts::ListHostsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_hosts::HostsAPI; +use datadog_api_client::datadogV1::api_hosts::ListHostsOptionalParams; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = HostsAPI::with_config(configuration); let resp = api .list_hosts(ListHostsOptionalParams::default().include_hosts_metadata(true)) diff --git a/examples/v1_hosts_list_hosts_347346033.rs b/examples/v1_hosts_list_hosts_347346033.rs index 9d96aa238..e13337228 100644 --- a/examples/v1_hosts_list_hosts_347346033.rs +++ b/examples/v1_hosts_list_hosts_347346033.rs @@ -1,11 +1,11 @@ // Get all hosts with metadata deserializes successfully -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_hosts::HostsAPI; -use datadog_api_client::datadogV1::api::api_hosts::ListHostsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_hosts::HostsAPI; +use datadog_api_client::datadogV1::api_hosts::ListHostsOptionalParams; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = HostsAPI::with_config(configuration); let resp = api .list_hosts(ListHostsOptionalParams::default().include_hosts_metadata(true)) diff --git a/examples/v1_hosts_mute_host.rs b/examples/v1_hosts_mute_host.rs index 2bd5ba494..0fc703066 100644 --- a/examples/v1_hosts_mute_host.rs +++ b/examples/v1_hosts_mute_host.rs @@ -1,6 +1,6 @@ // Mute a host returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_hosts::HostsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_hosts::HostsAPI; use datadog_api_client::datadogV1::model::HostMuteSettings; #[tokio::main] @@ -9,7 +9,7 @@ async fn main() { .end(1579098130) .message("Muting this host for a test!".to_string()) .override_(false); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = HostsAPI::with_config(configuration); let resp = api.mute_host("host_name".to_string(), body).await; if let Ok(value) = resp { diff --git a/examples/v1_hosts_unmute_host.rs b/examples/v1_hosts_unmute_host.rs index 0053cbaaa..cc4b2eef9 100644 --- a/examples/v1_hosts_unmute_host.rs +++ b/examples/v1_hosts_unmute_host.rs @@ -1,10 +1,10 @@ // Unmute a host returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_hosts::HostsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_hosts::HostsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = HostsAPI::with_config(configuration); let resp = api.unmute_host("host_name".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v1_ip-ranges_get_ip_ranges.rs b/examples/v1_ip-ranges_get_ip_ranges.rs index ea9b2da90..ccfede3b2 100644 --- a/examples/v1_ip-ranges_get_ip_ranges.rs +++ b/examples/v1_ip-ranges_get_ip_ranges.rs @@ -1,10 +1,10 @@ // List IP Ranges returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_ip_ranges::IPRangesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_ip_ranges::IPRangesAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = IPRangesAPI::with_config(configuration); let resp = api.get_ip_ranges().await; if let Ok(value) = resp { diff --git a/examples/v1_key-management_create_api_key.rs b/examples/v1_key-management_create_api_key.rs index c9ca3b076..92dae9cdd 100644 --- a/examples/v1_key-management_create_api_key.rs +++ b/examples/v1_key-management_create_api_key.rs @@ -1,12 +1,12 @@ // Create an API key returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_key_management::KeyManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_key_management::KeyManagementAPI; use datadog_api_client::datadogV1::model::ApiKey; #[tokio::main] async fn main() { let body = ApiKey::new().name("example user".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = KeyManagementAPI::with_config(configuration); let resp = api.create_api_key(body).await; if let Ok(value) = resp { diff --git a/examples/v1_key-management_create_application_key.rs b/examples/v1_key-management_create_application_key.rs index 6405b55d9..35fb821f0 100644 --- a/examples/v1_key-management_create_application_key.rs +++ b/examples/v1_key-management_create_application_key.rs @@ -1,12 +1,12 @@ // Create an application key returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_key_management::KeyManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_key_management::KeyManagementAPI; use datadog_api_client::datadogV1::model::ApplicationKey; #[tokio::main] async fn main() { let body = ApplicationKey::new().name("example user".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = KeyManagementAPI::with_config(configuration); let resp = api.create_application_key(body).await; if let Ok(value) = resp { diff --git a/examples/v1_key-management_delete_api_key.rs b/examples/v1_key-management_delete_api_key.rs index 872dc383b..9b6d0fcb8 100644 --- a/examples/v1_key-management_delete_api_key.rs +++ b/examples/v1_key-management_delete_api_key.rs @@ -1,10 +1,10 @@ // Delete an API key returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_key_management::KeyManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_key_management::KeyManagementAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = KeyManagementAPI::with_config(configuration); let resp = api.delete_api_key("key".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v1_key-management_delete_application_key.rs b/examples/v1_key-management_delete_application_key.rs index 5e8caf196..4993408f5 100644 --- a/examples/v1_key-management_delete_application_key.rs +++ b/examples/v1_key-management_delete_application_key.rs @@ -1,10 +1,10 @@ // Delete an application key returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_key_management::KeyManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_key_management::KeyManagementAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = KeyManagementAPI::with_config(configuration); let resp = api.delete_application_key("key".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v1_key-management_get_api_key.rs b/examples/v1_key-management_get_api_key.rs index 1baa4efd1..67b6b6820 100644 --- a/examples/v1_key-management_get_api_key.rs +++ b/examples/v1_key-management_get_api_key.rs @@ -1,10 +1,10 @@ // Get API key returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_key_management::KeyManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_key_management::KeyManagementAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = KeyManagementAPI::with_config(configuration); let resp = api.get_api_key("key".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v1_key-management_get_application_key.rs b/examples/v1_key-management_get_application_key.rs index 3ae7e0f3e..66b710337 100644 --- a/examples/v1_key-management_get_application_key.rs +++ b/examples/v1_key-management_get_application_key.rs @@ -1,10 +1,10 @@ // Get an application key returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_key_management::KeyManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_key_management::KeyManagementAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = KeyManagementAPI::with_config(configuration); let resp = api.get_application_key("key".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v1_key-management_list_api_keys.rs b/examples/v1_key-management_list_api_keys.rs index b3d0baaea..d0ac1a36d 100644 --- a/examples/v1_key-management_list_api_keys.rs +++ b/examples/v1_key-management_list_api_keys.rs @@ -1,10 +1,10 @@ // Get all API keys returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_key_management::KeyManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_key_management::KeyManagementAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = KeyManagementAPI::with_config(configuration); let resp = api.list_api_keys().await; if let Ok(value) = resp { diff --git a/examples/v1_key-management_list_application_keys.rs b/examples/v1_key-management_list_application_keys.rs index 2eeace2c5..b5251f863 100644 --- a/examples/v1_key-management_list_application_keys.rs +++ b/examples/v1_key-management_list_application_keys.rs @@ -1,10 +1,10 @@ // Get all application keys returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_key_management::KeyManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_key_management::KeyManagementAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = KeyManagementAPI::with_config(configuration); let resp = api.list_application_keys().await; if let Ok(value) = resp { diff --git a/examples/v1_key-management_update_api_key.rs b/examples/v1_key-management_update_api_key.rs index 6a1c69467..6e9c2d393 100644 --- a/examples/v1_key-management_update_api_key.rs +++ b/examples/v1_key-management_update_api_key.rs @@ -1,12 +1,12 @@ // Edit an API key returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_key_management::KeyManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_key_management::KeyManagementAPI; use datadog_api_client::datadogV1::model::ApiKey; #[tokio::main] async fn main() { let body = ApiKey::new().name("example user".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = KeyManagementAPI::with_config(configuration); let resp = api.update_api_key("key".to_string(), body).await; if let Ok(value) = resp { diff --git a/examples/v1_key-management_update_application_key.rs b/examples/v1_key-management_update_application_key.rs index 872e6291b..aaeb5d259 100644 --- a/examples/v1_key-management_update_application_key.rs +++ b/examples/v1_key-management_update_application_key.rs @@ -1,12 +1,12 @@ // Edit an application key returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_key_management::KeyManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_key_management::KeyManagementAPI; use datadog_api_client::datadogV1::model::ApplicationKey; #[tokio::main] async fn main() { let body = ApplicationKey::new().name("example user".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = KeyManagementAPI::with_config(configuration); let resp = api.update_application_key("key".to_string(), body).await; if let Ok(value) = resp { diff --git a/examples/v1_logs-indexes_create_logs_index.rs b/examples/v1_logs-indexes_create_logs_index.rs index 1c82080d7..3e8e69e69 100644 --- a/examples/v1_logs-indexes_create_logs_index.rs +++ b/examples/v1_logs-indexes_create_logs_index.rs @@ -1,6 +1,7 @@ // Create an index returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_logs_indexes::LogsIndexesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_logs_indexes::LogsIndexesAPI; +use datadog_api_client::datadogV1::model::LogsDailyLimitReset; use datadog_api_client::datadogV1::model::LogsExclusion; use datadog_api_client::datadogV1::model::LogsExclusionFilter; use datadog_api_client::datadogV1::model::LogsFilter; @@ -13,10 +14,16 @@ async fn main() { "main".to_string(), ) .daily_limit(300000000) + .daily_limit_reset( + LogsDailyLimitReset::new() + .reset_time("14:00".to_string()) + .reset_utc_offset("+02:00".to_string()), + ) + .daily_limit_warning_threshold_percentage(70.0 as f64) .exclusion_filters(vec![LogsExclusion::new("payment".to_string()) .filter(LogsExclusionFilter::new(1.0).query("*".to_string()))]) .num_retention_days(15); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsIndexesAPI::with_config(configuration); let resp = api.create_logs_index(body).await; if let Ok(value) = resp { diff --git a/examples/v1_logs-indexes_get_logs_index.rs b/examples/v1_logs-indexes_get_logs_index.rs index 9be9b4db1..9ff5bda99 100644 --- a/examples/v1_logs-indexes_get_logs_index.rs +++ b/examples/v1_logs-indexes_get_logs_index.rs @@ -1,10 +1,10 @@ // Get an index returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_logs_indexes::LogsIndexesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_logs_indexes::LogsIndexesAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsIndexesAPI::with_config(configuration); let resp = api.get_logs_index("name".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v1_logs-indexes_get_logs_index_order.rs b/examples/v1_logs-indexes_get_logs_index_order.rs index f6bbd26fa..f66f0c5df 100644 --- a/examples/v1_logs-indexes_get_logs_index_order.rs +++ b/examples/v1_logs-indexes_get_logs_index_order.rs @@ -1,10 +1,10 @@ // Get indexes order returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_logs_indexes::LogsIndexesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_logs_indexes::LogsIndexesAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsIndexesAPI::with_config(configuration); let resp = api.get_logs_index_order().await; if let Ok(value) = resp { diff --git a/examples/v1_logs-indexes_list_log_indexes.rs b/examples/v1_logs-indexes_list_log_indexes.rs index f64e649af..399a6ebba 100644 --- a/examples/v1_logs-indexes_list_log_indexes.rs +++ b/examples/v1_logs-indexes_list_log_indexes.rs @@ -1,10 +1,10 @@ // Get all indexes returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_logs_indexes::LogsIndexesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_logs_indexes::LogsIndexesAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsIndexesAPI::with_config(configuration); let resp = api.list_log_indexes().await; if let Ok(value) = resp { diff --git a/examples/v1_logs-indexes_update_logs_index.rs b/examples/v1_logs-indexes_update_logs_index.rs index 4b75820c5..25056a90c 100644 --- a/examples/v1_logs-indexes_update_logs_index.rs +++ b/examples/v1_logs-indexes_update_logs_index.rs @@ -1,6 +1,7 @@ // Update an index returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_logs_indexes::LogsIndexesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_logs_indexes::LogsIndexesAPI; +use datadog_api_client::datadogV1::model::LogsDailyLimitReset; use datadog_api_client::datadogV1::model::LogsExclusion; use datadog_api_client::datadogV1::model::LogsExclusionFilter; use datadog_api_client::datadogV1::model::LogsFilter; @@ -10,11 +11,17 @@ use datadog_api_client::datadogV1::model::LogsIndexUpdateRequest; async fn main() { let body = LogsIndexUpdateRequest::new(LogsFilter::new().query("source:python".to_string())) .daily_limit(300000000) + .daily_limit_reset( + LogsDailyLimitReset::new() + .reset_time("14:00".to_string()) + .reset_utc_offset("+02:00".to_string()), + ) + .daily_limit_warning_threshold_percentage(70.0 as f64) .disable_daily_limit(false) .exclusion_filters(vec![LogsExclusion::new("payment".to_string()) .filter(LogsExclusionFilter::new(1.0).query("*".to_string()))]) .num_retention_days(15); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsIndexesAPI::with_config(configuration); let resp = api.update_logs_index("name".to_string(), body).await; if let Ok(value) = resp { diff --git a/examples/v1_logs-indexes_update_logs_index_order.rs b/examples/v1_logs-indexes_update_logs_index_order.rs index b69fbaa11..5ae52a1e7 100644 --- a/examples/v1_logs-indexes_update_logs_index_order.rs +++ b/examples/v1_logs-indexes_update_logs_index_order.rs @@ -1,6 +1,6 @@ // Update indexes order returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_logs_indexes::LogsIndexesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_logs_indexes::LogsIndexesAPI; use datadog_api_client::datadogV1::model::LogsIndexesOrder; #[tokio::main] @@ -10,7 +10,7 @@ async fn main() { "payments".to_string(), "web".to_string(), ]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsIndexesAPI::with_config(configuration); let resp = api.update_logs_index_order(body).await; if let Ok(value) = resp { diff --git a/examples/v1_logs-pipelines_create_logs_pipeline.rs b/examples/v1_logs-pipelines_create_logs_pipeline.rs index 92c605d46..98fbbb202 100644 --- a/examples/v1_logs-pipelines_create_logs_pipeline.rs +++ b/examples/v1_logs-pipelines_create_logs_pipeline.rs @@ -1,6 +1,6 @@ // Create a pipeline returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_logs_pipelines::LogsPipelinesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_logs_pipelines::LogsPipelinesAPI; use datadog_api_client::datadogV1::model::LogsFilter; use datadog_api_client::datadogV1::model::LogsGrokParser; use datadog_api_client::datadogV1::model::LogsGrokParserRules; @@ -32,7 +32,7 @@ rule_name_2 bar .is_enabled(false) .samples(vec![]), ))]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsPipelinesAPI::with_config(configuration); let resp = api.create_logs_pipeline(body).await; if let Ok(value) = resp { diff --git a/examples/v1_logs-pipelines_delete_logs_pipeline.rs b/examples/v1_logs-pipelines_delete_logs_pipeline.rs index 0a9cfe48f..fec2ea28c 100644 --- a/examples/v1_logs-pipelines_delete_logs_pipeline.rs +++ b/examples/v1_logs-pipelines_delete_logs_pipeline.rs @@ -1,10 +1,10 @@ // Delete a pipeline returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_logs_pipelines::LogsPipelinesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_logs_pipelines::LogsPipelinesAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsPipelinesAPI::with_config(configuration); let resp = api.delete_logs_pipeline("pipeline_id".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v1_logs-pipelines_get_logs_pipeline.rs b/examples/v1_logs-pipelines_get_logs_pipeline.rs index 123c3ccab..f30810574 100644 --- a/examples/v1_logs-pipelines_get_logs_pipeline.rs +++ b/examples/v1_logs-pipelines_get_logs_pipeline.rs @@ -1,10 +1,10 @@ // Get a pipeline returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_logs_pipelines::LogsPipelinesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_logs_pipelines::LogsPipelinesAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsPipelinesAPI::with_config(configuration); let resp = api.get_logs_pipeline("pipeline_id".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v1_logs-pipelines_get_logs_pipeline_order.rs b/examples/v1_logs-pipelines_get_logs_pipeline_order.rs index 4b3f1af7d..da3017678 100644 --- a/examples/v1_logs-pipelines_get_logs_pipeline_order.rs +++ b/examples/v1_logs-pipelines_get_logs_pipeline_order.rs @@ -1,10 +1,10 @@ // Get pipeline order returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_logs_pipelines::LogsPipelinesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_logs_pipelines::LogsPipelinesAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsPipelinesAPI::with_config(configuration); let resp = api.get_logs_pipeline_order().await; if let Ok(value) = resp { diff --git a/examples/v1_logs-pipelines_list_logs_pipelines.rs b/examples/v1_logs-pipelines_list_logs_pipelines.rs index e3f8a87ba..a17be2394 100644 --- a/examples/v1_logs-pipelines_list_logs_pipelines.rs +++ b/examples/v1_logs-pipelines_list_logs_pipelines.rs @@ -1,10 +1,10 @@ // Get all pipelines returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_logs_pipelines::LogsPipelinesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_logs_pipelines::LogsPipelinesAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsPipelinesAPI::with_config(configuration); let resp = api.list_logs_pipelines().await; if let Ok(value) = resp { diff --git a/examples/v1_logs-pipelines_update_logs_pipeline.rs b/examples/v1_logs-pipelines_update_logs_pipeline.rs index 02a6b0c78..2fd0a816a 100644 --- a/examples/v1_logs-pipelines_update_logs_pipeline.rs +++ b/examples/v1_logs-pipelines_update_logs_pipeline.rs @@ -1,6 +1,6 @@ // Update a pipeline returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_logs_pipelines::LogsPipelinesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_logs_pipelines::LogsPipelinesAPI; use datadog_api_client::datadogV1::model::LogsFilter; use datadog_api_client::datadogV1::model::LogsGrokParser; use datadog_api_client::datadogV1::model::LogsGrokParserRules; @@ -32,7 +32,7 @@ rule_name_2 bar .is_enabled(false) .samples(vec![]), ))]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsPipelinesAPI::with_config(configuration); let resp = api .update_logs_pipeline("pipeline_id".to_string(), body) diff --git a/examples/v1_logs-pipelines_update_logs_pipeline_order.rs b/examples/v1_logs-pipelines_update_logs_pipeline_order.rs index a64c2f9e6..cf9c601d9 100644 --- a/examples/v1_logs-pipelines_update_logs_pipeline_order.rs +++ b/examples/v1_logs-pipelines_update_logs_pipeline_order.rs @@ -1,6 +1,6 @@ // Update pipeline order returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_logs_pipelines::LogsPipelinesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_logs_pipelines::LogsPipelinesAPI; use datadog_api_client::datadogV1::model::LogsPipelinesOrder; #[tokio::main] @@ -10,7 +10,7 @@ async fn main() { "org_ids".to_string(), "products".to_string(), ]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsPipelinesAPI::with_config(configuration); let resp = api.update_logs_pipeline_order(body).await; if let Ok(value) = resp { diff --git a/examples/v1_logs_list_logs.rs b/examples/v1_logs_list_logs.rs index 47a2e98d7..f34a5fbed 100644 --- a/examples/v1_logs_list_logs.rs +++ b/examples/v1_logs_list_logs.rs @@ -1,6 +1,6 @@ // Search logs returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_logs::LogsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_logs::LogsAPI; use datadog_api_client::datadogV1::model::LogsListRequest; use datadog_api_client::datadogV1::model::LogsListRequestTime; use datadog_api_client::datadogV1::model::LogsSort; @@ -14,7 +14,7 @@ async fn main() { .index("retention-3,retention-15".to_string()) .query("service:web* AND @http.status_code:[200 TO 299]".to_string()) .sort(LogsSort::TIME_ASCENDING); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsAPI::with_config(configuration); let resp = api.list_logs(body).await; if let Ok(value) = resp { diff --git a/examples/v1_logs_list_logs_235998668.rs b/examples/v1_logs_list_logs_235998668.rs index 180f2ca47..24a2a1ca8 100644 --- a/examples/v1_logs_list_logs_235998668.rs +++ b/examples/v1_logs_list_logs_235998668.rs @@ -1,6 +1,6 @@ // Search test logs returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_logs::LogsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_logs::LogsAPI; use datadog_api_client::datadogV1::model::LogsListRequest; use datadog_api_client::datadogV1::model::LogsListRequestTime; use datadog_api_client::datadogV1::model::LogsSort; @@ -17,7 +17,7 @@ async fn main() { .index("main".to_string()) .query("host:Test*".to_string()) .sort(LogsSort::TIME_ASCENDING); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsAPI::with_config(configuration); let resp = api.list_logs(body).await; if let Ok(value) = resp { diff --git a/examples/v1_logs_submit_log.rs b/examples/v1_logs_submit_log.rs index f5eccea6a..8b9c8a63c 100644 --- a/examples/v1_logs_submit_log.rs +++ b/examples/v1_logs_submit_log.rs @@ -1,7 +1,7 @@ // Send logs returns "Response from server (always 200 empty JSON)." response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_logs::LogsAPI; -use datadog_api_client::datadogV1::api::api_logs::SubmitLogOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_logs::LogsAPI; +use datadog_api_client::datadogV1::api_logs::SubmitLogOptionalParams; use datadog_api_client::datadogV1::model::HTTPLogItem; use std::collections::BTreeMap; @@ -10,7 +10,7 @@ async fn main() { let body = vec![HTTPLogItem::new("Example-Log".to_string()) .ddtags("host:ExampleLog".to_string()) .additional_properties(BTreeMap::from([]))]; - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsAPI::with_config(configuration); let resp = api .submit_log(body, SubmitLogOptionalParams::default()) diff --git a/examples/v1_logs_submit_log_1920474053.rs b/examples/v1_logs_submit_log_1920474053.rs index 14bfd71d8..1bf7be72e 100644 --- a/examples/v1_logs_submit_log_1920474053.rs +++ b/examples/v1_logs_submit_log_1920474053.rs @@ -1,7 +1,7 @@ // Send gzip logs returns "Response from server (always 200 empty JSON)." response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_logs::LogsAPI; -use datadog_api_client::datadogV1::api::api_logs::SubmitLogOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_logs::LogsAPI; +use datadog_api_client::datadogV1::api_logs::SubmitLogOptionalParams; use datadog_api_client::datadogV1::model::ContentEncoding; use datadog_api_client::datadogV1::model::HTTPLogItem; use std::collections::BTreeMap; @@ -11,7 +11,7 @@ async fn main() { let body = vec![HTTPLogItem::new("Example-Log".to_string()) .ddtags("host:ExampleLog".to_string()) .additional_properties(BTreeMap::from([]))]; - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsAPI::with_config(configuration); let resp = api .submit_log( diff --git a/examples/v1_logs_submit_log_3418823904.rs b/examples/v1_logs_submit_log_3418823904.rs index 5641aa1de..ed30101e1 100644 --- a/examples/v1_logs_submit_log_3418823904.rs +++ b/examples/v1_logs_submit_log_3418823904.rs @@ -1,8 +1,8 @@ // Send deflate logs returns "Response from server (always 200 empty JSON)." // response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_logs::LogsAPI; -use datadog_api_client::datadogV1::api::api_logs::SubmitLogOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_logs::LogsAPI; +use datadog_api_client::datadogV1::api_logs::SubmitLogOptionalParams; use datadog_api_client::datadogV1::model::ContentEncoding; use datadog_api_client::datadogV1::model::HTTPLogItem; use std::collections::BTreeMap; @@ -12,7 +12,7 @@ async fn main() { let body = vec![HTTPLogItem::new("Example-Log".to_string()) .ddtags("host:ExampleLog".to_string()) .additional_properties(BTreeMap::from([]))]; - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsAPI::with_config(configuration); let resp = api .submit_log( diff --git a/examples/v1_metrics_get_metric_metadata.rs b/examples/v1_metrics_get_metric_metadata.rs index 8170dce03..8a9a7eae6 100644 --- a/examples/v1_metrics_get_metric_metadata.rs +++ b/examples/v1_metrics_get_metric_metadata.rs @@ -1,10 +1,10 @@ // Get metric metadata returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_metrics::MetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_metrics::MetricsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MetricsAPI::with_config(configuration); let resp = api.get_metric_metadata("metric_name".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v1_metrics_list_active_metrics.rs b/examples/v1_metrics_list_active_metrics.rs index da1ef8db3..70f63d047 100644 --- a/examples/v1_metrics_list_active_metrics.rs +++ b/examples/v1_metrics_list_active_metrics.rs @@ -1,11 +1,11 @@ // Get active metrics list returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_metrics::ListActiveMetricsOptionalParams; -use datadog_api_client::datadogV1::api::api_metrics::MetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_metrics::ListActiveMetricsOptionalParams; +use datadog_api_client::datadogV1::api_metrics::MetricsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MetricsAPI::with_config(configuration); let resp = api .list_active_metrics( diff --git a/examples/v1_metrics_list_metrics.rs b/examples/v1_metrics_list_metrics.rs index 79280468a..6d825448a 100644 --- a/examples/v1_metrics_list_metrics.rs +++ b/examples/v1_metrics_list_metrics.rs @@ -1,10 +1,10 @@ // Search metrics returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_metrics::MetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_metrics::MetricsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MetricsAPI::with_config(configuration); let resp = api.list_metrics("q".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v1_metrics_query_metrics.rs b/examples/v1_metrics_query_metrics.rs index 12c38b2f8..6bbb0f547 100644 --- a/examples/v1_metrics_query_metrics.rs +++ b/examples/v1_metrics_query_metrics.rs @@ -1,10 +1,10 @@ // Query timeseries points returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_metrics::MetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_metrics::MetricsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MetricsAPI::with_config(configuration); let resp = api .query_metrics(1636542671, 1636629071, "system.cpu.idle{*}".to_string()) diff --git a/examples/v1_metrics_submit_distribution_points.rs b/examples/v1_metrics_submit_distribution_points.rs index b7033a214..99f6e0764 100644 --- a/examples/v1_metrics_submit_distribution_points.rs +++ b/examples/v1_metrics_submit_distribution_points.rs @@ -1,7 +1,7 @@ // Submit distribution points returns "Payload accepted" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_metrics::MetricsAPI; -use datadog_api_client::datadogV1::api::api_metrics::SubmitDistributionPointsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_metrics::MetricsAPI; +use datadog_api_client::datadogV1::api_metrics::SubmitDistributionPointsOptionalParams; use datadog_api_client::datadogV1::model::DistributionPointItem; use datadog_api_client::datadogV1::model::DistributionPointsPayload; use datadog_api_client::datadogV1::model::DistributionPointsSeries; @@ -11,11 +11,11 @@ async fn main() { let body = DistributionPointsPayload::new(vec![DistributionPointsSeries::new( "system.load.1.dist".to_string(), vec![vec![ - DistributionPointItem::DistributionPointTimestamp(1636629071 as f64), + DistributionPointItem::DistributionPointTimestamp(1636629071.0 as f64), DistributionPointItem::DistributionPointData(vec![1.0, 2.0]), ]], )]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MetricsAPI::with_config(configuration); let resp = api .submit_distribution_points(body, SubmitDistributionPointsOptionalParams::default()) diff --git a/examples/v1_metrics_submit_distribution_points_3109558960.rs b/examples/v1_metrics_submit_distribution_points_3109558960.rs index f0b1e796c..6660c67da 100644 --- a/examples/v1_metrics_submit_distribution_points_3109558960.rs +++ b/examples/v1_metrics_submit_distribution_points_3109558960.rs @@ -1,7 +1,7 @@ // Submit deflate distribution points returns "Payload accepted" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_metrics::MetricsAPI; -use datadog_api_client::datadogV1::api::api_metrics::SubmitDistributionPointsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_metrics::MetricsAPI; +use datadog_api_client::datadogV1::api_metrics::SubmitDistributionPointsOptionalParams; use datadog_api_client::datadogV1::model::DistributionPointItem; use datadog_api_client::datadogV1::model::DistributionPointsContentEncoding; use datadog_api_client::datadogV1::model::DistributionPointsPayload; @@ -12,11 +12,11 @@ async fn main() { let body = DistributionPointsPayload::new(vec![DistributionPointsSeries::new( "system.load.1.dist".to_string(), vec![vec![ - DistributionPointItem::DistributionPointTimestamp(1636629071 as f64), + DistributionPointItem::DistributionPointTimestamp(1636629071.0 as f64), DistributionPointItem::DistributionPointData(vec![1.0, 2.0]), ]], )]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MetricsAPI::with_config(configuration); let resp = api .submit_distribution_points( diff --git a/examples/v1_metrics_submit_metrics.rs b/examples/v1_metrics_submit_metrics.rs index 7597549f8..aefc63bd7 100644 --- a/examples/v1_metrics_submit_metrics.rs +++ b/examples/v1_metrics_submit_metrics.rs @@ -1,7 +1,7 @@ // Submit metrics returns "Payload accepted" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_metrics::MetricsAPI; -use datadog_api_client::datadogV1::api::api_metrics::SubmitMetricsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_metrics::MetricsAPI; +use datadog_api_client::datadogV1::api_metrics::SubmitMetricsOptionalParams; use datadog_api_client::datadogV1::model::MetricsPayload; use datadog_api_client::datadogV1::model::Series; @@ -9,11 +9,11 @@ use datadog_api_client::datadogV1::model::Series; async fn main() { let body = MetricsPayload::new(vec![Series::new( "system.load.1".to_string(), - vec![vec![Some(1636629071 as f64), Some(1.1 as f64)]], + vec![vec![Some(1636629071.0 as f64), Some(1.1 as f64)]], ) .tags(vec!["test:ExampleMetric".to_string()]) .type_("gauge".to_string())]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MetricsAPI::with_config(configuration); let resp = api .submit_metrics(body, SubmitMetricsOptionalParams::default()) diff --git a/examples/v1_metrics_submit_metrics_2203981258.rs b/examples/v1_metrics_submit_metrics_2203981258.rs index 8b908f782..cfad700d4 100644 --- a/examples/v1_metrics_submit_metrics_2203981258.rs +++ b/examples/v1_metrics_submit_metrics_2203981258.rs @@ -1,7 +1,7 @@ // Submit deflate metrics returns "Payload accepted" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_metrics::MetricsAPI; -use datadog_api_client::datadogV1::api::api_metrics::SubmitMetricsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_metrics::MetricsAPI; +use datadog_api_client::datadogV1::api_metrics::SubmitMetricsOptionalParams; use datadog_api_client::datadogV1::model::MetricContentEncoding; use datadog_api_client::datadogV1::model::MetricsPayload; use datadog_api_client::datadogV1::model::Series; @@ -10,11 +10,11 @@ use datadog_api_client::datadogV1::model::Series; async fn main() { let body = MetricsPayload::new(vec![Series::new( "system.load.1".to_string(), - vec![vec![Some(1636629071 as f64), Some(1.1 as f64)]], + vec![vec![Some(1636629071.0 as f64), Some(1.1 as f64)]], ) .tags(vec!["test:ExampleMetric".to_string()]) .type_("gauge".to_string())]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MetricsAPI::with_config(configuration); let resp = api .submit_metrics( diff --git a/examples/v1_metrics_update_metric_metadata.rs b/examples/v1_metrics_update_metric_metadata.rs index 806a5771b..6fd7bf2fe 100644 --- a/examples/v1_metrics_update_metric_metadata.rs +++ b/examples/v1_metrics_update_metric_metadata.rs @@ -1,6 +1,6 @@ // Edit metric metadata returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_metrics::MetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_metrics::MetricsAPI; use datadog_api_client::datadogV1::model::MetricMetadata; #[tokio::main] @@ -9,7 +9,7 @@ async fn main() { .per_unit("second".to_string()) .type_("count".to_string()) .unit("byte".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MetricsAPI::with_config(configuration); let resp = api .update_metric_metadata("metric_name".to_string(), body) diff --git a/examples/v1_monitors_check_can_delete_monitor.rs b/examples/v1_monitors_check_can_delete_monitor.rs index e5068b37b..649bbce39 100644 --- a/examples/v1_monitors_check_can_delete_monitor.rs +++ b/examples/v1_monitors_check_can_delete_monitor.rs @@ -1,12 +1,12 @@ // Check if a monitor can be deleted returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_monitors::MonitorsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_monitors::MonitorsAPI; #[tokio::main] async fn main() { // there is a valid "monitor" in the system let monitor_id: i64 = std::env::var("MONITOR_ID").unwrap().parse().unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MonitorsAPI::with_config(configuration); let resp = api.check_can_delete_monitor(vec![monitor_id.clone()]).await; if let Ok(value) = resp { diff --git a/examples/v1_monitors_create_monitor.rs b/examples/v1_monitors_create_monitor.rs index 469fabcf9..f830cbb50 100644 --- a/examples/v1_monitors_create_monitor.rs +++ b/examples/v1_monitors_create_monitor.rs @@ -1,6 +1,6 @@ // Create a monitor returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_monitors::MonitorsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_monitors::MonitorsAPI; use datadog_api_client::datadogV1::model::Monitor; use datadog_api_client::datadogV1::model::MonitorType; @@ -18,7 +18,7 @@ async fn main() { .priority(Some(3)) .restricted_roles(Some(vec![role_data_id.clone()])) .tags(vec!["test:examplemonitor".to_string(), "env:ci".to_string()]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MonitorsAPI::with_config(configuration); let resp = api.create_monitor(body).await; if let Ok(value) = resp { diff --git a/examples/v1_monitors_create_monitor_1539578087.rs b/examples/v1_monitors_create_monitor_1539578087.rs index 161923be4..2e3e4b5a6 100644 --- a/examples/v1_monitors_create_monitor_1539578087.rs +++ b/examples/v1_monitors_create_monitor_1539578087.rs @@ -1,6 +1,6 @@ // Create a metric monitor with a custom schedule returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_monitors::MonitorsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_monitors::MonitorsAPI; use datadog_api_client::datadogV1::model::Monitor; use datadog_api_client::datadogV1::model::MonitorOptions; use datadog_api_client::datadogV1::model::MonitorOptionsCustomSchedule; @@ -39,7 +39,7 @@ async fn main() { .thresholds(MonitorThresholds::new().critical(0.5 as f64)), ) .tags(vec![]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MonitorsAPI::with_config(configuration); let resp = api.create_monitor(body).await; if let Ok(value) = resp { diff --git a/examples/v1_monitors_create_monitor_1969035628.rs b/examples/v1_monitors_create_monitor_1969035628.rs index 033f751f7..607486a73 100644 --- a/examples/v1_monitors_create_monitor_1969035628.rs +++ b/examples/v1_monitors_create_monitor_1969035628.rs @@ -1,6 +1,6 @@ // Create a ci-tests formula and functions monitor returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_monitors::MonitorsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_monitors::MonitorsAPI; use datadog_api_client::datadogV1::model::Monitor; use datadog_api_client::datadogV1::model::MonitorFormulaAndFunctionEventAggregation; use datadog_api_client::datadogV1::model::MonitorFormulaAndFunctionEventQueryDefinition; @@ -65,7 +65,7 @@ async fn main() { ) .priority(Some(3)) .tags(vec!["test:examplemonitor".to_string(), "env:ci".to_string()]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MonitorsAPI::with_config(configuration); let resp = api.create_monitor(body).await; if let Ok(value) = resp { diff --git a/examples/v1_monitors_create_monitor_2012680290.rs b/examples/v1_monitors_create_monitor_2012680290.rs index f42179199..0be0b65fa 100644 --- a/examples/v1_monitors_create_monitor_2012680290.rs +++ b/examples/v1_monitors_create_monitor_2012680290.rs @@ -1,6 +1,6 @@ // Create a metric monitor returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_monitors::MonitorsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_monitors::MonitorsAPI; use datadog_api_client::datadogV1::model::Monitor; use datadog_api_client::datadogV1::model::MonitorOptions; use datadog_api_client::datadogV1::model::MonitorOptionsSchedulingOptions; @@ -27,7 +27,7 @@ async fn main() { ) .thresholds(MonitorThresholds::new().critical(0.5 as f64)), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MonitorsAPI::with_config(configuration); let resp = api.create_monitor(body).await; if let Ok(value) = resp { diff --git a/examples/v1_monitors_create_monitor_2520912138.rs b/examples/v1_monitors_create_monitor_2520912138.rs index 2f4c91c3a..4350d6a3e 100644 --- a/examples/v1_monitors_create_monitor_2520912138.rs +++ b/examples/v1_monitors_create_monitor_2520912138.rs @@ -1,6 +1,6 @@ // Create a ci-tests monitor returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_monitors::MonitorsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_monitors::MonitorsAPI; use datadog_api_client::datadogV1::model::Monitor; use datadog_api_client::datadogV1::model::MonitorOptions; use datadog_api_client::datadogV1::model::MonitorThresholds; @@ -15,10 +15,10 @@ async fn main() { ) .message("some message Notify: @hipchat-channel".to_string()) .name("Example-Monitor".to_string()) - .options(MonitorOptions::new().thresholds(MonitorThresholds::new().critical(1 as f64))) + .options(MonitorOptions::new().thresholds(MonitorThresholds::new().critical(1.0 as f64))) .priority(Some(3)) .tags(vec!["test:examplemonitor".to_string(), "env:ci".to_string()]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MonitorsAPI::with_config(configuration); let resp = api.create_monitor(body).await; if let Ok(value) = resp { diff --git a/examples/v1_monitors_create_monitor_3790803616.rs b/examples/v1_monitors_create_monitor_3790803616.rs index 938e1d4a0..56fc46b30 100644 --- a/examples/v1_monitors_create_monitor_3790803616.rs +++ b/examples/v1_monitors_create_monitor_3790803616.rs @@ -1,6 +1,6 @@ // Create a ci-pipelines monitor returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_monitors::MonitorsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_monitors::MonitorsAPI; use datadog_api_client::datadogV1::model::Monitor; use datadog_api_client::datadogV1::model::MonitorOptions; use datadog_api_client::datadogV1::model::MonitorThresholds; @@ -15,10 +15,10 @@ async fn main() { ) .message("some message Notify: @hipchat-channel".to_string()) .name("Example-Monitor".to_string()) - .options(MonitorOptions::new().thresholds(MonitorThresholds::new().critical(1 as f64))) + .options(MonitorOptions::new().thresholds(MonitorThresholds::new().critical(1.0 as f64))) .priority(Some(3)) .tags(vec!["test:examplemonitor".to_string(), "env:ci".to_string()]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MonitorsAPI::with_config(configuration); let resp = api.create_monitor(body).await; if let Ok(value) = resp { diff --git a/examples/v1_monitors_create_monitor_3824294658.rs b/examples/v1_monitors_create_monitor_3824294658.rs index c837cea48..4707e2053 100644 --- a/examples/v1_monitors_create_monitor_3824294658.rs +++ b/examples/v1_monitors_create_monitor_3824294658.rs @@ -1,6 +1,6 @@ // Create a ci-pipelines formula and functions monitor returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_monitors::MonitorsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_monitors::MonitorsAPI; use datadog_api_client::datadogV1::model::Monitor; use datadog_api_client::datadogV1::model::MonitorFormulaAndFunctionEventAggregation; use datadog_api_client::datadogV1::model::MonitorFormulaAndFunctionEventQueryDefinition; @@ -65,7 +65,7 @@ async fn main() { ) .priority(Some(3)) .tags(vec!["test:examplemonitor".to_string(), "env:ci".to_string()]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MonitorsAPI::with_config(configuration); let resp = api.create_monitor(body).await; if let Ok(value) = resp { diff --git a/examples/v1_monitors_create_monitor_3883669300.rs b/examples/v1_monitors_create_monitor_3883669300.rs index c5d07e4af..ed68eb97d 100644 --- a/examples/v1_monitors_create_monitor_3883669300.rs +++ b/examples/v1_monitors_create_monitor_3883669300.rs @@ -1,6 +1,6 @@ // Create a RUM formula and functions monitor returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_monitors::MonitorsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_monitors::MonitorsAPI; use datadog_api_client::datadogV1::model::Monitor; use datadog_api_client::datadogV1::model::MonitorFormulaAndFunctionEventAggregation; use datadog_api_client::datadogV1::model::MonitorFormulaAndFunctionEventQueryDefinition; @@ -62,7 +62,7 @@ async fn main() { ) .priority(Some(3)) .tags(vec!["test:examplemonitor".to_string(), "env:ci".to_string()]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MonitorsAPI::with_config(configuration); let resp = api.create_monitor(body).await; if let Ok(value) = resp { diff --git a/examples/v1_monitors_create_monitor_440013737.rs b/examples/v1_monitors_create_monitor_440013737.rs index 18be7160f..ac932e61e 100644 --- a/examples/v1_monitors_create_monitor_440013737.rs +++ b/examples/v1_monitors_create_monitor_440013737.rs @@ -1,6 +1,6 @@ // Create an Error Tracking monitor returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_monitors::MonitorsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_monitors::MonitorsAPI; use datadog_api_client::datadogV1::model::Monitor; use datadog_api_client::datadogV1::model::MonitorOptions; use datadog_api_client::datadogV1::model::MonitorThresholds; @@ -15,10 +15,10 @@ async fn main() { ) .message("some message".to_string()) .name("Example-Monitor".to_string()) - .options(MonitorOptions::new().thresholds(MonitorThresholds::new().critical(1 as f64))) + .options(MonitorOptions::new().thresholds(MonitorThresholds::new().critical(1.0 as f64))) .priority(Some(3)) .tags(vec!["test:examplemonitor".to_string(), "env:ci".to_string()]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MonitorsAPI::with_config(configuration); let resp = api.create_monitor(body).await; if let Ok(value) = resp { diff --git a/examples/v1_monitors_delete_monitor.rs b/examples/v1_monitors_delete_monitor.rs index 1df40b6df..d0090bb48 100644 --- a/examples/v1_monitors_delete_monitor.rs +++ b/examples/v1_monitors_delete_monitor.rs @@ -1,13 +1,13 @@ // Delete a monitor returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_monitors::DeleteMonitorOptionalParams; -use datadog_api_client::datadogV1::api::api_monitors::MonitorsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_monitors::DeleteMonitorOptionalParams; +use datadog_api_client::datadogV1::api_monitors::MonitorsAPI; #[tokio::main] async fn main() { // there is a valid "monitor" in the system let monitor_id: i64 = std::env::var("MONITOR_ID").unwrap().parse().unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MonitorsAPI::with_config(configuration); let resp = api .delete_monitor(monitor_id.clone(), DeleteMonitorOptionalParams::default()) diff --git a/examples/v1_monitors_get_monitor.rs b/examples/v1_monitors_get_monitor.rs index 893fe2bfa..8838ba929 100644 --- a/examples/v1_monitors_get_monitor.rs +++ b/examples/v1_monitors_get_monitor.rs @@ -1,13 +1,13 @@ // Get a monitor's details returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_monitors::GetMonitorOptionalParams; -use datadog_api_client::datadogV1::api::api_monitors::MonitorsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_monitors::GetMonitorOptionalParams; +use datadog_api_client::datadogV1::api_monitors::MonitorsAPI; #[tokio::main] async fn main() { // there is a valid "monitor" in the system let monitor_id: i64 = std::env::var("MONITOR_ID").unwrap().parse().unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MonitorsAPI::with_config(configuration); let resp = api .get_monitor( diff --git a/examples/v1_monitors_get_monitor_2200114573.rs b/examples/v1_monitors_get_monitor_2200114573.rs index 8f68b10df..476b8446f 100644 --- a/examples/v1_monitors_get_monitor_2200114573.rs +++ b/examples/v1_monitors_get_monitor_2200114573.rs @@ -1,13 +1,13 @@ // Get a monitor's details with downtime returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_monitors::GetMonitorOptionalParams; -use datadog_api_client::datadogV1::api::api_monitors::MonitorsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_monitors::GetMonitorOptionalParams; +use datadog_api_client::datadogV1::api_monitors::MonitorsAPI; #[tokio::main] async fn main() { // there is a valid "monitor" in the system let monitor_id: i64 = std::env::var("MONITOR_ID").unwrap().parse().unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MonitorsAPI::with_config(configuration); let resp = api .get_monitor( diff --git a/examples/v1_monitors_get_monitor_3691711704.rs b/examples/v1_monitors_get_monitor_3691711704.rs index 04d431229..ee5209194 100644 --- a/examples/v1_monitors_get_monitor_3691711704.rs +++ b/examples/v1_monitors_get_monitor_3691711704.rs @@ -1,7 +1,7 @@ // Get a synthetics monitor's details -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_monitors::GetMonitorOptionalParams; -use datadog_api_client::datadogV1::api::api_monitors::MonitorsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_monitors::GetMonitorOptionalParams; +use datadog_api_client::datadogV1::api_monitors::MonitorsAPI; #[tokio::main] async fn main() { @@ -10,7 +10,7 @@ async fn main() { .unwrap() .parse() .unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MonitorsAPI::with_config(configuration); let resp = api .get_monitor( diff --git a/examples/v1_monitors_list_monitors.rs b/examples/v1_monitors_list_monitors.rs index 79e54151c..d4b39e0d5 100644 --- a/examples/v1_monitors_list_monitors.rs +++ b/examples/v1_monitors_list_monitors.rs @@ -1,11 +1,11 @@ // Get all monitor details returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_monitors::ListMonitorsOptionalParams; -use datadog_api_client::datadogV1::api::api_monitors::MonitorsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_monitors::ListMonitorsOptionalParams; +use datadog_api_client::datadogV1::api_monitors::MonitorsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MonitorsAPI::with_config(configuration); let resp = api .list_monitors(ListMonitorsOptionalParams::default()) diff --git a/examples/v1_monitors_list_monitors_2966492814.rs b/examples/v1_monitors_list_monitors_2966492814.rs index 2727165e1..a7e20d405 100644 --- a/examples/v1_monitors_list_monitors_2966492814.rs +++ b/examples/v1_monitors_list_monitors_2966492814.rs @@ -1,13 +1,13 @@ // Get all monitor details returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_monitors::ListMonitorsOptionalParams; -use datadog_api_client::datadogV1::api::api_monitors::MonitorsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_monitors::ListMonitorsOptionalParams; +use datadog_api_client::datadogV1::api_monitors::MonitorsAPI; use futures_util::pin_mut; use futures_util::stream::StreamExt; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MonitorsAPI::with_config(configuration); let response = api.list_monitors_with_pagination(ListMonitorsOptionalParams::default().page_size(2)); diff --git a/examples/v1_monitors_list_monitors_3448441939.rs b/examples/v1_monitors_list_monitors_3448441939.rs index 7420655a2..9156f1211 100644 --- a/examples/v1_monitors_list_monitors_3448441939.rs +++ b/examples/v1_monitors_list_monitors_3448441939.rs @@ -1,11 +1,11 @@ // Get all monitor details with tags -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_monitors::ListMonitorsOptionalParams; -use datadog_api_client::datadogV1::api::api_monitors::MonitorsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_monitors::ListMonitorsOptionalParams; +use datadog_api_client::datadogV1::api_monitors::MonitorsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MonitorsAPI::with_config(configuration); let resp = api .list_monitors( diff --git a/examples/v1_monitors_search_monitor_groups.rs b/examples/v1_monitors_search_monitor_groups.rs index 306b2b6ba..541db8e3f 100644 --- a/examples/v1_monitors_search_monitor_groups.rs +++ b/examples/v1_monitors_search_monitor_groups.rs @@ -1,11 +1,11 @@ // Monitors group search returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_monitors::MonitorsAPI; -use datadog_api_client::datadogV1::api::api_monitors::SearchMonitorGroupsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_monitors::MonitorsAPI; +use datadog_api_client::datadogV1::api_monitors::SearchMonitorGroupsOptionalParams; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MonitorsAPI::with_config(configuration); let resp = api .search_monitor_groups(SearchMonitorGroupsOptionalParams::default()) diff --git a/examples/v1_monitors_search_monitors.rs b/examples/v1_monitors_search_monitors.rs index 80a5042ab..22c7f0261 100644 --- a/examples/v1_monitors_search_monitors.rs +++ b/examples/v1_monitors_search_monitors.rs @@ -1,11 +1,11 @@ // Monitors search returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_monitors::MonitorsAPI; -use datadog_api_client::datadogV1::api::api_monitors::SearchMonitorsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_monitors::MonitorsAPI; +use datadog_api_client::datadogV1::api_monitors::SearchMonitorsOptionalParams; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MonitorsAPI::with_config(configuration); let resp = api .search_monitors(SearchMonitorsOptionalParams::default()) diff --git a/examples/v1_monitors_update_monitor.rs b/examples/v1_monitors_update_monitor.rs index 47a500128..d20580a48 100644 --- a/examples/v1_monitors_update_monitor.rs +++ b/examples/v1_monitors_update_monitor.rs @@ -1,6 +1,6 @@ // Edit a monitor returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_monitors::MonitorsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_monitors::MonitorsAPI; use datadog_api_client::datadogV1::model::MonitorOptions; use datadog_api_client::datadogV1::model::MonitorThresholds; use datadog_api_client::datadogV1::model::MonitorUpdateRequest; @@ -17,10 +17,10 @@ async fn main() { .new_group_delay(Some(600)) .new_host_delay(None) .renotify_interval(None) - .thresholds(MonitorThresholds::new().critical(2 as f64).warning(None)) + .thresholds(MonitorThresholds::new().critical(2.0 as f64).warning(None)) .timeout_h(None), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MonitorsAPI::with_config(configuration); let resp = api.update_monitor(monitor_id.clone(), body).await; if let Ok(value) = resp { diff --git a/examples/v1_monitors_validate_existing_monitor.rs b/examples/v1_monitors_validate_existing_monitor.rs index ffb8134c9..33b6907b0 100644 --- a/examples/v1_monitors_validate_existing_monitor.rs +++ b/examples/v1_monitors_validate_existing_monitor.rs @@ -1,6 +1,6 @@ // Validate an existing monitor returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_monitors::MonitorsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_monitors::MonitorsAPI; use datadog_api_client::datadogV1::model::Monitor; use datadog_api_client::datadogV1::model::MonitorOptions; use datadog_api_client::datadogV1::model::MonitorOptionsNotificationPresets; @@ -35,12 +35,12 @@ async fn main() { .on_missing_data(OnMissingDataOption::SHOW_AND_NOTIFY_NO_DATA) .renotify_interval(Some(60)) .require_full_window(true) - .thresholds(MonitorThresholds::new().critical(2 as f64).warning(Some(1 as f64))) + .thresholds(MonitorThresholds::new().critical(2.0 as f64).warning(Some(1.0 as f64))) .timeout_h(Some(24)), ) .priority(Some(3)) .tags(vec!["test:examplemonitor".to_string(), "env:ci".to_string()]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MonitorsAPI::with_config(configuration); let resp = api .validate_existing_monitor(monitor_id.clone(), body) diff --git a/examples/v1_monitors_validate_monitor.rs b/examples/v1_monitors_validate_monitor.rs index 67122b2e6..b6c1f9d8e 100644 --- a/examples/v1_monitors_validate_monitor.rs +++ b/examples/v1_monitors_validate_monitor.rs @@ -1,6 +1,6 @@ // Validate a monitor returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_monitors::MonitorsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_monitors::MonitorsAPI; use datadog_api_client::datadogV1::model::Monitor; use datadog_api_client::datadogV1::model::MonitorOptions; use datadog_api_client::datadogV1::model::MonitorOptionsNotificationPresets; @@ -33,12 +33,12 @@ async fn main() { .on_missing_data(OnMissingDataOption::SHOW_AND_NOTIFY_NO_DATA) .renotify_interval(Some(60)) .require_full_window(true) - .thresholds(MonitorThresholds::new().critical(2 as f64).warning(Some(1 as f64))) + .thresholds(MonitorThresholds::new().critical(2.0 as f64).warning(Some(1.0 as f64))) .timeout_h(Some(24)), ) .priority(Some(3)) .tags(vec!["test:examplemonitor".to_string(), "env:ci".to_string()]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MonitorsAPI::with_config(configuration); let resp = api.validate_monitor(body).await; if let Ok(value) = resp { diff --git a/examples/v1_monitors_validate_monitor_4247196452.rs b/examples/v1_monitors_validate_monitor_4247196452.rs index 4b31586bc..0baa91917 100644 --- a/examples/v1_monitors_validate_monitor_4247196452.rs +++ b/examples/v1_monitors_validate_monitor_4247196452.rs @@ -1,6 +1,6 @@ // Validate a multi-alert monitor returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_monitors::MonitorsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_monitors::MonitorsAPI; use datadog_api_client::datadogV1::model::Monitor; use datadog_api_client::datadogV1::model::MonitorOptions; use datadog_api_client::datadogV1::model::MonitorThresholds; @@ -33,12 +33,12 @@ async fn main() { .on_missing_data(OnMissingDataOption::SHOW_AND_NOTIFY_NO_DATA) .renotify_interval(Some(60)) .require_full_window(true) - .thresholds(MonitorThresholds::new().critical(2 as f64).warning(Some(1 as f64))) + .thresholds(MonitorThresholds::new().critical(2.0 as f64).warning(Some(1.0 as f64))) .timeout_h(Some(24)), ) .priority(Some(3)) .tags(vec!["test:examplemonitor".to_string(), "env:ci".to_string()]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MonitorsAPI::with_config(configuration); let resp = api.validate_monitor(body).await; if let Ok(value) = resp { diff --git a/examples/v1_notebooks_create_notebook.rs b/examples/v1_notebooks_create_notebook.rs index dc6d3994d..15d202488 100644 --- a/examples/v1_notebooks_create_notebook.rs +++ b/examples/v1_notebooks_create_notebook.rs @@ -1,6 +1,6 @@ // Create a notebook returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_notebooks::NotebooksAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_notebooks::NotebooksAPI; use datadog_api_client::datadogV1::model::NotebookCellCreateRequest; use datadog_api_client::datadogV1::model::NotebookCellCreateRequestAttributes; use datadog_api_client::datadogV1::model::NotebookCellResourceType; @@ -83,7 +83,7 @@ y = 6; .status(NotebookStatus::PUBLISHED), NotebookResourceType::NOTEBOOKS, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = NotebooksAPI::with_config(configuration); let resp = api.create_notebook(body).await; if let Ok(value) = resp { diff --git a/examples/v1_notebooks_delete_notebook.rs b/examples/v1_notebooks_delete_notebook.rs index 7462e58af..ad1383746 100644 --- a/examples/v1_notebooks_delete_notebook.rs +++ b/examples/v1_notebooks_delete_notebook.rs @@ -1,12 +1,12 @@ // Delete a notebook returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_notebooks::NotebooksAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_notebooks::NotebooksAPI; #[tokio::main] async fn main() { // there is a valid "notebook" in the system let notebook_data_id: i64 = std::env::var("NOTEBOOK_DATA_ID").unwrap().parse().unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = NotebooksAPI::with_config(configuration); let resp = api.delete_notebook(notebook_data_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v1_notebooks_get_notebook.rs b/examples/v1_notebooks_get_notebook.rs index 0a3f6e8fb..3d12b5423 100644 --- a/examples/v1_notebooks_get_notebook.rs +++ b/examples/v1_notebooks_get_notebook.rs @@ -1,12 +1,12 @@ // Get a notebook returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_notebooks::NotebooksAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_notebooks::NotebooksAPI; #[tokio::main] async fn main() { // there is a valid "notebook" in the system let notebook_data_id: i64 = std::env::var("NOTEBOOK_DATA_ID").unwrap().parse().unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = NotebooksAPI::with_config(configuration); let resp = api.get_notebook(notebook_data_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v1_notebooks_list_notebooks.rs b/examples/v1_notebooks_list_notebooks.rs index 9dedcb06f..3e3bace75 100644 --- a/examples/v1_notebooks_list_notebooks.rs +++ b/examples/v1_notebooks_list_notebooks.rs @@ -1,11 +1,11 @@ // Get all notebooks returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_notebooks::ListNotebooksOptionalParams; -use datadog_api_client::datadogV1::api::api_notebooks::NotebooksAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_notebooks::ListNotebooksOptionalParams; +use datadog_api_client::datadogV1::api_notebooks::NotebooksAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = NotebooksAPI::with_config(configuration); let resp = api .list_notebooks(ListNotebooksOptionalParams::default()) diff --git a/examples/v1_notebooks_list_notebooks_788665428.rs b/examples/v1_notebooks_list_notebooks_788665428.rs index 1249e0367..810ab9121 100644 --- a/examples/v1_notebooks_list_notebooks_788665428.rs +++ b/examples/v1_notebooks_list_notebooks_788665428.rs @@ -1,13 +1,13 @@ // Get all notebooks returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_notebooks::ListNotebooksOptionalParams; -use datadog_api_client::datadogV1::api::api_notebooks::NotebooksAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_notebooks::ListNotebooksOptionalParams; +use datadog_api_client::datadogV1::api_notebooks::NotebooksAPI; use futures_util::pin_mut; use futures_util::stream::StreamExt; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = NotebooksAPI::with_config(configuration); let response = api.list_notebooks_with_pagination(ListNotebooksOptionalParams::default().count(2)); diff --git a/examples/v1_notebooks_update_notebook.rs b/examples/v1_notebooks_update_notebook.rs index 973aef994..545ebc9c7 100644 --- a/examples/v1_notebooks_update_notebook.rs +++ b/examples/v1_notebooks_update_notebook.rs @@ -1,6 +1,6 @@ // Update a notebook returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_notebooks::NotebooksAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_notebooks::NotebooksAPI; use datadog_api_client::datadogV1::model::NotebookCellCreateRequest; use datadog_api_client::datadogV1::model::NotebookCellCreateRequestAttributes; use datadog_api_client::datadogV1::model::NotebookCellResourceType; @@ -92,7 +92,7 @@ y = 6; .status(NotebookStatus::PUBLISHED), NotebookResourceType::NOTEBOOKS, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = NotebooksAPI::with_config(configuration); let resp = api.update_notebook(notebook_data_id.clone(), body).await; if let Ok(value) = resp { diff --git a/examples/v1_organizations_create_child_org.rs b/examples/v1_organizations_create_child_org.rs index 762a17ca8..b4efaaaf2 100644 --- a/examples/v1_organizations_create_child_org.rs +++ b/examples/v1_organizations_create_child_org.rs @@ -1,6 +1,6 @@ // Create a child organization returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_organizations::OrganizationsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_organizations::OrganizationsAPI; use datadog_api_client::datadogV1::model::OrganizationBilling; use datadog_api_client::datadogV1::model::OrganizationCreateBody; use datadog_api_client::datadogV1::model::OrganizationSubscription; @@ -10,7 +10,7 @@ async fn main() { let body = OrganizationCreateBody::new("New child org".to_string()) .billing(OrganizationBilling::new().type_("parent_billing".to_string())) .subscription(OrganizationSubscription::new().type_("pro".to_string())); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = OrganizationsAPI::with_config(configuration); let resp = api.create_child_org(body).await; if let Ok(value) = resp { diff --git a/examples/v1_organizations_downgrade_org.rs b/examples/v1_organizations_downgrade_org.rs index b9a7a1856..1f2bdda92 100644 --- a/examples/v1_organizations_downgrade_org.rs +++ b/examples/v1_organizations_downgrade_org.rs @@ -1,10 +1,10 @@ // Spin-off Child Organization returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_organizations::OrganizationsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_organizations::OrganizationsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = OrganizationsAPI::with_config(configuration); let resp = api.downgrade_org("abc123".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v1_organizations_get_org.rs b/examples/v1_organizations_get_org.rs index b7d0858ea..c06ade561 100644 --- a/examples/v1_organizations_get_org.rs +++ b/examples/v1_organizations_get_org.rs @@ -1,10 +1,10 @@ // Get organization information returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_organizations::OrganizationsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_organizations::OrganizationsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = OrganizationsAPI::with_config(configuration); let resp = api.get_org("abc123".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v1_organizations_list_orgs.rs b/examples/v1_organizations_list_orgs.rs index f3d09efd0..9b55928b8 100644 --- a/examples/v1_organizations_list_orgs.rs +++ b/examples/v1_organizations_list_orgs.rs @@ -1,10 +1,10 @@ // List your managed organizations returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_organizations::OrganizationsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_organizations::OrganizationsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = OrganizationsAPI::with_config(configuration); let resp = api.list_orgs().await; if let Ok(value) = resp { diff --git a/examples/v1_organizations_update_org.rs b/examples/v1_organizations_update_org.rs index f18c5de31..9ce881a6f 100644 --- a/examples/v1_organizations_update_org.rs +++ b/examples/v1_organizations_update_org.rs @@ -1,6 +1,6 @@ // Update your organization returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_organizations::OrganizationsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_organizations::OrganizationsAPI; use datadog_api_client::datadogV1::model::AccessRole; use datadog_api_client::datadogV1::model::Organization; use datadog_api_client::datadogV1::model::OrganizationBilling; @@ -39,7 +39,7 @@ async fn main() { ) .subscription(OrganizationSubscription::new().type_("pro".to_string())) .trial(false); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = OrganizationsAPI::with_config(configuration); let resp = api.update_org("abc123".to_string(), body).await; if let Ok(value) = resp { diff --git a/examples/v1_organizations_upload_idp_for_org.rs b/examples/v1_organizations_upload_idp_for_org.rs index 9428478eb..4ea8bc6d4 100644 --- a/examples/v1_organizations_upload_idp_for_org.rs +++ b/examples/v1_organizations_upload_idp_for_org.rs @@ -1,11 +1,11 @@ // Upload IdP metadata returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_organizations::OrganizationsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_organizations::OrganizationsAPI; use std::fs; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = OrganizationsAPI::with_config(configuration); let resp = api .upload_idp_for_org( diff --git a/examples/v1_pagerduty-integration_create_pager_duty_integration_service.rs b/examples/v1_pagerduty-integration_create_pager_duty_integration_service.rs index 7f033427a..a5e2df65f 100644 --- a/examples/v1_pagerduty-integration_create_pager_duty_integration_service.rs +++ b/examples/v1_pagerduty-integration_create_pager_duty_integration_service.rs @@ -1,12 +1,12 @@ // Create a new service object returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_pager_duty_integration::PagerDutyIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_pager_duty_integration::PagerDutyIntegrationAPI; use datadog_api_client::datadogV1::model::PagerDutyService; #[tokio::main] async fn main() { let body = PagerDutyService::new("".to_string(), "".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = PagerDutyIntegrationAPI::with_config(configuration); let resp = api.create_pager_duty_integration_service(body).await; if let Ok(value) = resp { diff --git a/examples/v1_pagerduty-integration_delete_pager_duty_integration_service.rs b/examples/v1_pagerduty-integration_delete_pager_duty_integration_service.rs index b27b462a0..fc5b65542 100644 --- a/examples/v1_pagerduty-integration_delete_pager_duty_integration_service.rs +++ b/examples/v1_pagerduty-integration_delete_pager_duty_integration_service.rs @@ -1,10 +1,10 @@ // Delete a single service object returns "No Content" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_pager_duty_integration::PagerDutyIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_pager_duty_integration::PagerDutyIntegrationAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = PagerDutyIntegrationAPI::with_config(configuration); let resp = api .delete_pager_duty_integration_service("service_name".to_string()) diff --git a/examples/v1_pagerduty-integration_get_pager_duty_integration_service.rs b/examples/v1_pagerduty-integration_get_pager_duty_integration_service.rs index 1d905510e..3a03285ff 100644 --- a/examples/v1_pagerduty-integration_get_pager_duty_integration_service.rs +++ b/examples/v1_pagerduty-integration_get_pager_duty_integration_service.rs @@ -1,10 +1,10 @@ // Get a single service object returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_pager_duty_integration::PagerDutyIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_pager_duty_integration::PagerDutyIntegrationAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = PagerDutyIntegrationAPI::with_config(configuration); let resp = api .get_pager_duty_integration_service("service_name".to_string()) diff --git a/examples/v1_pagerduty-integration_update_pager_duty_integration_service.rs b/examples/v1_pagerduty-integration_update_pager_duty_integration_service.rs index 705c36cd5..d59283013 100644 --- a/examples/v1_pagerduty-integration_update_pager_duty_integration_service.rs +++ b/examples/v1_pagerduty-integration_update_pager_duty_integration_service.rs @@ -1,12 +1,12 @@ // Update a single service object returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_pager_duty_integration::PagerDutyIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_pager_duty_integration::PagerDutyIntegrationAPI; use datadog_api_client::datadogV1::model::PagerDutyServiceKey; #[tokio::main] async fn main() { let body = PagerDutyServiceKey::new("".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = PagerDutyIntegrationAPI::with_config(configuration); let resp = api .update_pager_duty_integration_service("service_name".to_string(), body) diff --git a/examples/v1_security-monitoring_add_security_monitoring_signal_to_incident.rs b/examples/v1_security-monitoring_add_security_monitoring_signal_to_incident.rs index e8481a1b4..870eae833 100644 --- a/examples/v1_security-monitoring_add_security_monitoring_signal_to_incident.rs +++ b/examples/v1_security-monitoring_add_security_monitoring_signal_to_incident.rs @@ -1,12 +1,12 @@ // Add a security signal to an incident returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_security_monitoring::SecurityMonitoringAPI; use datadog_api_client::datadogV1::model::AddSignalToIncidentRequest; #[tokio::main] async fn main() { let body = AddSignalToIncidentRequest::new(2609); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SecurityMonitoringAPI::with_config(configuration); let resp = api .add_security_monitoring_signal_to_incident( diff --git a/examples/v1_security-monitoring_edit_security_monitoring_signal_assignee.rs b/examples/v1_security-monitoring_edit_security_monitoring_signal_assignee.rs index a20945679..712b93e2b 100644 --- a/examples/v1_security-monitoring_edit_security_monitoring_signal_assignee.rs +++ b/examples/v1_security-monitoring_edit_security_monitoring_signal_assignee.rs @@ -1,12 +1,12 @@ // Modify the triage assignee of a security signal returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_security_monitoring::SecurityMonitoringAPI; use datadog_api_client::datadogV1::model::SignalAssigneeUpdateRequest; #[tokio::main] async fn main() { let body = SignalAssigneeUpdateRequest::new("773b045d-ccf8-4808-bd3b-955ef6a8c940".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SecurityMonitoringAPI::with_config(configuration); let resp = api .edit_security_monitoring_signal_assignee( diff --git a/examples/v1_security-monitoring_edit_security_monitoring_signal_state.rs b/examples/v1_security-monitoring_edit_security_monitoring_signal_state.rs index b0ff8c882..8b0cb5d8f 100644 --- a/examples/v1_security-monitoring_edit_security_monitoring_signal_state.rs +++ b/examples/v1_security-monitoring_edit_security_monitoring_signal_state.rs @@ -1,6 +1,6 @@ // Change the triage state of a security signal returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_security_monitoring::SecurityMonitoringAPI; use datadog_api_client::datadogV1::model::SignalArchiveReason; use datadog_api_client::datadogV1::model::SignalStateUpdateRequest; use datadog_api_client::datadogV1::model::SignalTriageState; @@ -9,7 +9,7 @@ use datadog_api_client::datadogV1::model::SignalTriageState; async fn main() { let body = SignalStateUpdateRequest::new(SignalTriageState::OPEN) .archive_reason(SignalArchiveReason::NONE); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SecurityMonitoringAPI::with_config(configuration); let resp = api .edit_security_monitoring_signal_state( diff --git a/examples/v1_service-checks_submit_service_check.rs b/examples/v1_service-checks_submit_service_check.rs index 006a49cb0..dfcc23767 100644 --- a/examples/v1_service-checks_submit_service_check.rs +++ b/examples/v1_service-checks_submit_service_check.rs @@ -1,6 +1,6 @@ // Submit a Service Check returns "Payload accepted" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_service_checks::ServiceChecksAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_service_checks::ServiceChecksAPI; use datadog_api_client::datadogV1::model::ServiceCheck; use datadog_api_client::datadogV1::model::ServiceCheckStatus; @@ -12,7 +12,7 @@ async fn main() { ServiceCheckStatus::OK, vec!["test:ExampleServiceCheck".to_string()], )]; - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceChecksAPI::with_config(configuration); let resp = api.submit_service_check(body).await; if let Ok(value) = resp { diff --git a/examples/v1_service-level-objective-corrections_create_slo_correction.rs b/examples/v1_service-level-objective-corrections_create_slo_correction.rs index dc4d3dec2..9ec3d8993 100644 --- a/examples/v1_service-level-objective-corrections_create_slo_correction.rs +++ b/examples/v1_service-level-objective-corrections_create_slo_correction.rs @@ -1,6 +1,6 @@ // Create an SLO correction returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_service_level_objective_corrections::ServiceLevelObjectiveCorrectionsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_service_level_objective_corrections::ServiceLevelObjectiveCorrectionsAPI; use datadog_api_client::datadogV1::model::SLOCorrectionCategory; use datadog_api_client::datadogV1::model::SLOCorrectionCreateData; use datadog_api_client::datadogV1::model::SLOCorrectionCreateRequest; @@ -23,7 +23,7 @@ async fn main() { .timezone("UTC".to_string()), ), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceLevelObjectiveCorrectionsAPI::with_config(configuration); let resp = api.create_slo_correction(body).await; if let Ok(value) = resp { diff --git a/examples/v1_service-level-objective-corrections_create_slo_correction_1326388368.rs b/examples/v1_service-level-objective-corrections_create_slo_correction_1326388368.rs index 8e3f99412..b24d23d71 100644 --- a/examples/v1_service-level-objective-corrections_create_slo_correction_1326388368.rs +++ b/examples/v1_service-level-objective-corrections_create_slo_correction_1326388368.rs @@ -1,6 +1,6 @@ // Create an SLO correction with rrule returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_service_level_objective_corrections::ServiceLevelObjectiveCorrectionsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_service_level_objective_corrections::ServiceLevelObjectiveCorrectionsAPI; use datadog_api_client::datadogV1::model::SLOCorrectionCategory; use datadog_api_client::datadogV1::model::SLOCorrectionCreateData; use datadog_api_client::datadogV1::model::SLOCorrectionCreateRequest; @@ -24,7 +24,7 @@ async fn main() { .timezone("UTC".to_string()), ), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceLevelObjectiveCorrectionsAPI::with_config(configuration); let resp = api.create_slo_correction(body).await; if let Ok(value) = resp { diff --git a/examples/v1_service-level-objective-corrections_delete_slo_correction.rs b/examples/v1_service-level-objective-corrections_delete_slo_correction.rs index 8f8748ea7..250dbce2d 100644 --- a/examples/v1_service-level-objective-corrections_delete_slo_correction.rs +++ b/examples/v1_service-level-objective-corrections_delete_slo_correction.rs @@ -1,10 +1,10 @@ // Delete an SLO correction returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_service_level_objective_corrections::ServiceLevelObjectiveCorrectionsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_service_level_objective_corrections::ServiceLevelObjectiveCorrectionsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceLevelObjectiveCorrectionsAPI::with_config(configuration); let resp = api .delete_slo_correction("slo_correction_id".to_string()) diff --git a/examples/v1_service-level-objective-corrections_get_slo_correction.rs b/examples/v1_service-level-objective-corrections_get_slo_correction.rs index 71465ab6a..bb73ddded 100644 --- a/examples/v1_service-level-objective-corrections_get_slo_correction.rs +++ b/examples/v1_service-level-objective-corrections_get_slo_correction.rs @@ -1,12 +1,12 @@ // Get an SLO correction for an SLO returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_service_level_objective_corrections::ServiceLevelObjectiveCorrectionsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_service_level_objective_corrections::ServiceLevelObjectiveCorrectionsAPI; #[tokio::main] async fn main() { // there is a valid "correction" for "slo" let correction_data_id = std::env::var("CORRECTION_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceLevelObjectiveCorrectionsAPI::with_config(configuration); let resp = api.get_slo_correction(correction_data_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v1_service-level-objective-corrections_list_slo_correction.rs b/examples/v1_service-level-objective-corrections_list_slo_correction.rs index 969d827f1..e90967c37 100644 --- a/examples/v1_service-level-objective-corrections_list_slo_correction.rs +++ b/examples/v1_service-level-objective-corrections_list_slo_correction.rs @@ -1,11 +1,11 @@ // Get all SLO corrections returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_service_level_objective_corrections::ListSLOCorrectionOptionalParams; -use datadog_api_client::datadogV1::api::api_service_level_objective_corrections::ServiceLevelObjectiveCorrectionsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_service_level_objective_corrections::ListSLOCorrectionOptionalParams; +use datadog_api_client::datadogV1::api_service_level_objective_corrections::ServiceLevelObjectiveCorrectionsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceLevelObjectiveCorrectionsAPI::with_config(configuration); let resp = api .list_slo_correction( diff --git a/examples/v1_service-level-objective-corrections_list_slo_correction_2647266873.rs b/examples/v1_service-level-objective-corrections_list_slo_correction_2647266873.rs index a6d5732ab..71fd6ca93 100644 --- a/examples/v1_service-level-objective-corrections_list_slo_correction_2647266873.rs +++ b/examples/v1_service-level-objective-corrections_list_slo_correction_2647266873.rs @@ -1,13 +1,13 @@ // Get all SLO corrections returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_service_level_objective_corrections::ListSLOCorrectionOptionalParams; -use datadog_api_client::datadogV1::api::api_service_level_objective_corrections::ServiceLevelObjectiveCorrectionsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_service_level_objective_corrections::ListSLOCorrectionOptionalParams; +use datadog_api_client::datadogV1::api_service_level_objective_corrections::ServiceLevelObjectiveCorrectionsAPI; use futures_util::pin_mut; use futures_util::stream::StreamExt; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceLevelObjectiveCorrectionsAPI::with_config(configuration); let response = api .list_slo_correction_with_pagination(ListSLOCorrectionOptionalParams::default().limit(2)); diff --git a/examples/v1_service-level-objective-corrections_update_slo_correction.rs b/examples/v1_service-level-objective-corrections_update_slo_correction.rs index feaf32a61..75c7af6e7 100644 --- a/examples/v1_service-level-objective-corrections_update_slo_correction.rs +++ b/examples/v1_service-level-objective-corrections_update_slo_correction.rs @@ -1,6 +1,6 @@ // Update an SLO correction returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_service_level_objective_corrections::ServiceLevelObjectiveCorrectionsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_service_level_objective_corrections::ServiceLevelObjectiveCorrectionsAPI; use datadog_api_client::datadogV1::model::SLOCorrectionCategory; use datadog_api_client::datadogV1::model::SLOCorrectionType; use datadog_api_client::datadogV1::model::SLOCorrectionUpdateData; @@ -23,7 +23,7 @@ async fn main() { ) .type_(SLOCorrectionType::CORRECTION), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceLevelObjectiveCorrectionsAPI::with_config(configuration); let resp = api .update_slo_correction(correction_data_id.clone(), body) diff --git a/examples/v1_service-level-objectives_check_can_delete_slo.rs b/examples/v1_service-level-objectives_check_can_delete_slo.rs index 18d1667ff..958c2a130 100644 --- a/examples/v1_service-level-objectives_check_can_delete_slo.rs +++ b/examples/v1_service-level-objectives_check_can_delete_slo.rs @@ -1,10 +1,10 @@ // Check if SLOs can be safely deleted returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_service_level_objectives::ServiceLevelObjectivesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_service_level_objectives::ServiceLevelObjectivesAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceLevelObjectivesAPI::with_config(configuration); let resp = api.check_can_delete_slo("ids".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v1_service-level-objectives_create_slo.rs b/examples/v1_service-level-objectives_create_slo.rs index f85b291ab..ae06d88f1 100644 --- a/examples/v1_service-level-objectives_create_slo.rs +++ b/examples/v1_service-level-objectives_create_slo.rs @@ -1,6 +1,6 @@ // Create an SLO object returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_service_level_objectives::ServiceLevelObjectivesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_service_level_objectives::ServiceLevelObjectivesAPI; use datadog_api_client::datadogV1::model::SLOThreshold; use datadog_api_client::datadogV1::model::SLOTimeframe; use datadog_api_client::datadogV1::model::SLOType; @@ -13,7 +13,7 @@ async fn main() { "Example-Service-Level-Objective".to_string(), vec![SLOThreshold::new(97.0, SLOTimeframe::SEVEN_DAYS) .target_display("97.0".to_string()) - .warning(98 as f64) + .warning(98.0 as f64) .warning_display("98.0".to_string())], SLOType::METRIC, ) @@ -27,8 +27,8 @@ async fn main() { .tags(vec!["env:prod".to_string(), "app:core".to_string()]) .target_threshold(97.0 as f64) .timeframe(SLOTimeframe::SEVEN_DAYS) - .warning_threshold(98 as f64); - let configuration = Configuration::new(); + .warning_threshold(98.0 as f64); + let configuration = datadog::Configuration::new(); let api = ServiceLevelObjectivesAPI::with_config(configuration); let resp = api.create_slo(body).await; if let Ok(value) = resp { diff --git a/examples/v1_service-level-objectives_create_slo_3765703239.rs b/examples/v1_service-level-objectives_create_slo_3765703239.rs new file mode 100644 index 000000000..ce219e177 --- /dev/null +++ b/examples/v1_service-level-objectives_create_slo_3765703239.rs @@ -0,0 +1,59 @@ +// Create a time-slice SLO object returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_service_level_objectives::ServiceLevelObjectivesAPI; +use datadog_api_client::datadogV1::model::FormulaAndFunctionMetricDataSource; +use datadog_api_client::datadogV1::model::FormulaAndFunctionMetricQueryDefinition; +use datadog_api_client::datadogV1::model::SLODataSourceQueryDefinition; +use datadog_api_client::datadogV1::model::SLOFormula; +use datadog_api_client::datadogV1::model::SLOSliSpec; +use datadog_api_client::datadogV1::model::SLOThreshold; +use datadog_api_client::datadogV1::model::SLOTimeSliceComparator; +use datadog_api_client::datadogV1::model::SLOTimeSliceCondition; +use datadog_api_client::datadogV1::model::SLOTimeSliceQuery; +use datadog_api_client::datadogV1::model::SLOTimeSliceSpec; +use datadog_api_client::datadogV1::model::SLOTimeframe; +use datadog_api_client::datadogV1::model::SLOType; +use datadog_api_client::datadogV1::model::ServiceLevelObjectiveRequest; + +#[tokio::main] +async fn main() { + let body = ServiceLevelObjectiveRequest::new( + "Example-Service-Level-Objective".to_string(), + vec![SLOThreshold::new(97.0, SLOTimeframe::SEVEN_DAYS) + .target_display("97.0".to_string()) + .warning(98.0 as f64) + .warning_display("98.0".to_string())], + SLOType::TIME_SLICE, + ) + .description(Some("string".to_string())) + .sli_specification(SLOSliSpec::SLOTimeSliceSpec(Box::new( + SLOTimeSliceSpec::new(SLOTimeSliceCondition::new( + SLOTimeSliceComparator::GREATER, + SLOTimeSliceQuery::new( + vec![SLOFormula::new("query1".to_string())], + vec![ + SLODataSourceQueryDefinition::FormulaAndFunctionMetricQueryDefinition( + Box::new(FormulaAndFunctionMetricQueryDefinition::new( + FormulaAndFunctionMetricDataSource::METRICS, + "query1".to_string(), + "trace.servlet.request{env:prod}".to_string(), + )), + ), + ], + ), + 5.0, + )), + ))) + .tags(vec!["env:prod".to_string()]) + .target_threshold(97.0 as f64) + .timeframe(SLOTimeframe::SEVEN_DAYS) + .warning_threshold(98.0 as f64); + let configuration = datadog::Configuration::new(); + let api = ServiceLevelObjectivesAPI::with_config(configuration); + let resp = api.create_slo(body).await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v1_service-level-objectives_delete_slo.rs b/examples/v1_service-level-objectives_delete_slo.rs index aeb64049f..87a26c321 100644 --- a/examples/v1_service-level-objectives_delete_slo.rs +++ b/examples/v1_service-level-objectives_delete_slo.rs @@ -1,13 +1,13 @@ // Delete an SLO returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_service_level_objectives::DeleteSLOOptionalParams; -use datadog_api_client::datadogV1::api::api_service_level_objectives::ServiceLevelObjectivesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_service_level_objectives::DeleteSLOOptionalParams; +use datadog_api_client::datadogV1::api_service_level_objectives::ServiceLevelObjectivesAPI; #[tokio::main] async fn main() { // there is a valid "slo" in the system let slo_data_0_id = std::env::var("SLO_DATA_0_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceLevelObjectivesAPI::with_config(configuration); let resp = api .delete_slo(slo_data_0_id.clone(), DeleteSLOOptionalParams::default()) diff --git a/examples/v1_service-level-objectives_delete_slo_timeframe_in_bulk.rs b/examples/v1_service-level-objectives_delete_slo_timeframe_in_bulk.rs index af7a7b531..7928abe5c 100644 --- a/examples/v1_service-level-objectives_delete_slo_timeframe_in_bulk.rs +++ b/examples/v1_service-level-objectives_delete_slo_timeframe_in_bulk.rs @@ -1,6 +1,6 @@ // Bulk Delete SLO Timeframes returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_service_level_objectives::ServiceLevelObjectivesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_service_level_objectives::ServiceLevelObjectivesAPI; use datadog_api_client::datadogV1::model::SLOTimeframe; use std::collections::BTreeMap; @@ -16,7 +16,7 @@ async fn main() { vec![SLOTimeframe::SEVEN_DAYS, SLOTimeframe::THIRTY_DAYS], ), ]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceLevelObjectivesAPI::with_config(configuration); let resp = api.delete_slo_timeframe_in_bulk(body).await; if let Ok(value) = resp { diff --git a/examples/v1_service-level-objectives_get_slo.rs b/examples/v1_service-level-objectives_get_slo.rs index 5db4a2862..9479322ab 100644 --- a/examples/v1_service-level-objectives_get_slo.rs +++ b/examples/v1_service-level-objectives_get_slo.rs @@ -1,13 +1,13 @@ // Get an SLO's details returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_service_level_objectives::GetSLOOptionalParams; -use datadog_api_client::datadogV1::api::api_service_level_objectives::ServiceLevelObjectivesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_service_level_objectives::GetSLOOptionalParams; +use datadog_api_client::datadogV1::api_service_level_objectives::ServiceLevelObjectivesAPI; #[tokio::main] async fn main() { // there is a valid "slo" in the system let slo_data_0_id = std::env::var("SLO_DATA_0_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceLevelObjectivesAPI::with_config(configuration); let resp = api .get_slo(slo_data_0_id.clone(), GetSLOOptionalParams::default()) diff --git a/examples/v1_service-level-objectives_get_slo_corrections.rs b/examples/v1_service-level-objectives_get_slo_corrections.rs index 580f600ae..c6def738e 100644 --- a/examples/v1_service-level-objectives_get_slo_corrections.rs +++ b/examples/v1_service-level-objectives_get_slo_corrections.rs @@ -1,12 +1,12 @@ // Get Corrections For an SLO returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_service_level_objectives::ServiceLevelObjectivesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_service_level_objectives::ServiceLevelObjectivesAPI; #[tokio::main] async fn main() { // there is a valid "slo" in the system let slo_data_0_id = std::env::var("SLO_DATA_0_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceLevelObjectivesAPI::with_config(configuration); let resp = api.get_slo_corrections(slo_data_0_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v1_service-level-objectives_get_slo_history.rs b/examples/v1_service-level-objectives_get_slo_history.rs index 2871bb59d..16f4d5309 100644 --- a/examples/v1_service-level-objectives_get_slo_history.rs +++ b/examples/v1_service-level-objectives_get_slo_history.rs @@ -1,13 +1,13 @@ // Get an SLO's history returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_service_level_objectives::GetSLOHistoryOptionalParams; -use datadog_api_client::datadogV1::api::api_service_level_objectives::ServiceLevelObjectivesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_service_level_objectives::GetSLOHistoryOptionalParams; +use datadog_api_client::datadogV1::api_service_level_objectives::ServiceLevelObjectivesAPI; #[tokio::main] async fn main() { // there is a valid "slo" in the system let slo_data_0_id = std::env::var("SLO_DATA_0_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceLevelObjectivesAPI::with_config(configuration); let resp = api .get_slo_history( diff --git a/examples/v1_service-level-objectives_list_slos.rs b/examples/v1_service-level-objectives_list_slos.rs index 03af1c576..68b3f5728 100644 --- a/examples/v1_service-level-objectives_list_slos.rs +++ b/examples/v1_service-level-objectives_list_slos.rs @@ -1,13 +1,13 @@ // Get all SLOs returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_service_level_objectives::ListSLOsOptionalParams; -use datadog_api_client::datadogV1::api::api_service_level_objectives::ServiceLevelObjectivesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_service_level_objectives::ListSLOsOptionalParams; +use datadog_api_client::datadogV1::api_service_level_objectives::ServiceLevelObjectivesAPI; #[tokio::main] async fn main() { // there is a valid "slo" in the system let slo_data_0_id = std::env::var("SLO_DATA_0_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceLevelObjectivesAPI::with_config(configuration); let resp = api .list_slos(ListSLOsOptionalParams::default().ids(slo_data_0_id.clone())) diff --git a/examples/v1_service-level-objectives_list_slos_3036942817.rs b/examples/v1_service-level-objectives_list_slos_3036942817.rs index 3a5f17533..9bc0ee9fa 100644 --- a/examples/v1_service-level-objectives_list_slos_3036942817.rs +++ b/examples/v1_service-level-objectives_list_slos_3036942817.rs @@ -1,13 +1,13 @@ // Get all SLOs returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_service_level_objectives::ListSLOsOptionalParams; -use datadog_api_client::datadogV1::api::api_service_level_objectives::ServiceLevelObjectivesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_service_level_objectives::ListSLOsOptionalParams; +use datadog_api_client::datadogV1::api_service_level_objectives::ServiceLevelObjectivesAPI; use futures_util::pin_mut; use futures_util::stream::StreamExt; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceLevelObjectivesAPI::with_config(configuration); let response = api.list_slos_with_pagination(ListSLOsOptionalParams::default().limit(2)); pin_mut!(response); diff --git a/examples/v1_service-level-objectives_search_slo.rs b/examples/v1_service-level-objectives_search_slo.rs index 77e334cde..0d9d9474d 100644 --- a/examples/v1_service-level-objectives_search_slo.rs +++ b/examples/v1_service-level-objectives_search_slo.rs @@ -1,13 +1,13 @@ // Search for SLOs returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_service_level_objectives::SearchSLOOptionalParams; -use datadog_api_client::datadogV1::api::api_service_level_objectives::ServiceLevelObjectivesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_service_level_objectives::SearchSLOOptionalParams; +use datadog_api_client::datadogV1::api_service_level_objectives::ServiceLevelObjectivesAPI; #[tokio::main] async fn main() { // there is a valid "slo" in the system let slo_data_0_name = std::env::var("SLO_DATA_0_NAME").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceLevelObjectivesAPI::with_config(configuration); let resp = api .search_slo( diff --git a/examples/v1_service-level-objectives_update_slo.rs b/examples/v1_service-level-objectives_update_slo.rs index 5d517fd98..66a055917 100644 --- a/examples/v1_service-level-objectives_update_slo.rs +++ b/examples/v1_service-level-objectives_update_slo.rs @@ -1,6 +1,6 @@ // Update an SLO returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_service_level_objectives::ServiceLevelObjectivesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_service_level_objectives::ServiceLevelObjectivesAPI; use datadog_api_client::datadogV1::model::SLOThreshold; use datadog_api_client::datadogV1::model::SLOTimeframe; use datadog_api_client::datadogV1::model::SLOType; @@ -23,8 +23,8 @@ async fn main() { )) .target_threshold(97.0 as f64) .timeframe(SLOTimeframe::SEVEN_DAYS) - .warning_threshold(98 as f64); - let configuration = Configuration::new(); + .warning_threshold(98.0 as f64); + let configuration = datadog::Configuration::new(); let api = ServiceLevelObjectivesAPI::with_config(configuration); let resp = api.update_slo(slo_data_0_id.clone(), body).await; if let Ok(value) = resp { diff --git a/examples/v1_slack-integration_create_slack_integration_channel.rs b/examples/v1_slack-integration_create_slack_integration_channel.rs index 9aa1f0e11..ecfc36a62 100644 --- a/examples/v1_slack-integration_create_slack_integration_channel.rs +++ b/examples/v1_slack-integration_create_slack_integration_channel.rs @@ -1,6 +1,6 @@ // Create a Slack integration channel returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_slack_integration::SlackIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_slack_integration::SlackIntegrationAPI; use datadog_api_client::datadogV1::model::SlackIntegrationChannel; use datadog_api_client::datadogV1::model::SlackIntegrationChannelDisplay; @@ -15,7 +15,7 @@ async fn main() { .tags(true), ) .name("#general".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SlackIntegrationAPI::with_config(configuration); let resp = api .create_slack_integration_channel("account_name".to_string(), body) diff --git a/examples/v1_slack-integration_get_slack_integration_channel.rs b/examples/v1_slack-integration_get_slack_integration_channel.rs index b6447b661..d541b5462 100644 --- a/examples/v1_slack-integration_get_slack_integration_channel.rs +++ b/examples/v1_slack-integration_get_slack_integration_channel.rs @@ -1,10 +1,10 @@ // Get a Slack integration channel returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_slack_integration::SlackIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_slack_integration::SlackIntegrationAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SlackIntegrationAPI::with_config(configuration); let resp = api .get_slack_integration_channel("account_name".to_string(), "channel_name".to_string()) diff --git a/examples/v1_slack-integration_get_slack_integration_channels.rs b/examples/v1_slack-integration_get_slack_integration_channels.rs index f01e9c6b1..ddb30f96e 100644 --- a/examples/v1_slack-integration_get_slack_integration_channels.rs +++ b/examples/v1_slack-integration_get_slack_integration_channels.rs @@ -1,10 +1,10 @@ // Get all channels in a Slack integration returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_slack_integration::SlackIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_slack_integration::SlackIntegrationAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SlackIntegrationAPI::with_config(configuration); let resp = api .get_slack_integration_channels("account_name".to_string()) diff --git a/examples/v1_slack-integration_remove_slack_integration_channel.rs b/examples/v1_slack-integration_remove_slack_integration_channel.rs index dac767a6c..e5561136c 100644 --- a/examples/v1_slack-integration_remove_slack_integration_channel.rs +++ b/examples/v1_slack-integration_remove_slack_integration_channel.rs @@ -1,11 +1,11 @@ // Remove a Slack integration channel returns "The channel was removed // successfully." response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_slack_integration::SlackIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_slack_integration::SlackIntegrationAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SlackIntegrationAPI::with_config(configuration); let resp = api .remove_slack_integration_channel("account_name".to_string(), "channel_name".to_string()) diff --git a/examples/v1_slack-integration_update_slack_integration_channel.rs b/examples/v1_slack-integration_update_slack_integration_channel.rs index 00fac246a..e84713c6f 100644 --- a/examples/v1_slack-integration_update_slack_integration_channel.rs +++ b/examples/v1_slack-integration_update_slack_integration_channel.rs @@ -1,6 +1,6 @@ // Update a Slack integration channel returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_slack_integration::SlackIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_slack_integration::SlackIntegrationAPI; use datadog_api_client::datadogV1::model::SlackIntegrationChannel; use datadog_api_client::datadogV1::model::SlackIntegrationChannelDisplay; @@ -15,7 +15,7 @@ async fn main() { .tags(true), ) .name("#general".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SlackIntegrationAPI::with_config(configuration); let resp = api .update_slack_integration_channel( diff --git a/examples/v1_snapshots_get_graph_snapshot.rs b/examples/v1_snapshots_get_graph_snapshot.rs index 1d1aed644..a84433a07 100644 --- a/examples/v1_snapshots_get_graph_snapshot.rs +++ b/examples/v1_snapshots_get_graph_snapshot.rs @@ -1,11 +1,11 @@ // Take graph snapshots returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_snapshots::GetGraphSnapshotOptionalParams; -use datadog_api_client::datadogV1::api::api_snapshots::SnapshotsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_snapshots::GetGraphSnapshotOptionalParams; +use datadog_api_client::datadogV1::api_snapshots::SnapshotsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SnapshotsAPI::with_config(configuration); let resp = api .get_graph_snapshot( diff --git a/examples/v1_synthetics_create_global_variable.rs b/examples/v1_synthetics_create_global_variable.rs index bab06d2b5..f054f539e 100644 --- a/examples/v1_synthetics_create_global_variable.rs +++ b/examples/v1_synthetics_create_global_variable.rs @@ -1,6 +1,6 @@ // Create a global variable returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; use datadog_api_client::datadogV1::model::SyntheticsGlobalVariable; use datadog_api_client::datadogV1::model::SyntheticsGlobalVariableAttributes; use datadog_api_client::datadogV1::model::SyntheticsGlobalVariableParseTestOptions; @@ -35,7 +35,7 @@ async fn main() { ), ) .parse_test_public_id("abc-def-123".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.create_global_variable(body).await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_create_global_variable_1068962881.rs b/examples/v1_synthetics_create_global_variable_1068962881.rs index 24f7f6d54..8a277f2cb 100644 --- a/examples/v1_synthetics_create_global_variable_1068962881.rs +++ b/examples/v1_synthetics_create_global_variable_1068962881.rs @@ -1,6 +1,6 @@ // Create a global variable from test returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; use datadog_api_client::datadogV1::model::SyntheticsGlobalVariable; use datadog_api_client::datadogV1::model::SyntheticsGlobalVariableOptions; use datadog_api_client::datadogV1::model::SyntheticsGlobalVariableParseTestOptions; @@ -35,7 +35,7 @@ async fn main() { .local_variable_name("EXTRACTED_VALUE".to_string()), ) .parse_test_public_id(synthetics_api_test_multi_step_public_id.clone()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.create_global_variable(body).await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_create_private_location.rs b/examples/v1_synthetics_create_private_location.rs index 9cc7d1d81..601827820 100644 --- a/examples/v1_synthetics_create_private_location.rs +++ b/examples/v1_synthetics_create_private_location.rs @@ -1,6 +1,6 @@ // Create a private location returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; use datadog_api_client::datadogV1::model::SyntheticsPrivateLocation; use datadog_api_client::datadogV1::model::SyntheticsPrivateLocationMetadata; @@ -16,7 +16,7 @@ async fn main() { .metadata( SyntheticsPrivateLocationMetadata::new().restricted_roles(vec![role_data_id.clone()]), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.create_private_location(body).await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_create_synthetics_api_test.rs b/examples/v1_synthetics_create_synthetics_api_test.rs index a245a3b43..a3418a2d8 100644 --- a/examples/v1_synthetics_create_synthetics_api_test.rs +++ b/examples/v1_synthetics_create_synthetics_api_test.rs @@ -1,6 +1,6 @@ // Create an API test returns "OK - Returns the created test details." response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; use datadog_api_client::datadogV1::model::SyntheticsAPITest; use datadog_api_client::datadogV1::model::SyntheticsAPITestConfig; use datadog_api_client::datadogV1::model::SyntheticsAPITestType; @@ -45,7 +45,7 @@ async fn main() { SyntheticsTestOptions::new() .ci(SyntheticsTestCiOptions::new() .execution_rule(SyntheticsTestExecutionRule::BLOCKING)) - .device_ids(vec![SyntheticsDeviceID::LAPTOP_LARGE]) + .device_ids(vec![SyntheticsDeviceID::CHROME_LAPTOP_LARGE]) .http_version(SyntheticsTestOptionsHTTPVersion::HTTP1) .monitor_options(SyntheticsTestOptionsMonitorOptions::new()) .restricted_roles(vec!["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".to_string()]) @@ -74,7 +74,7 @@ async fn main() { .status(SyntheticsTestPauseStatus::LIVE) .subtype(SyntheticsTestDetailsSubType::HTTP) .tags(vec!["env:production".to_string()]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.create_synthetics_api_test(body).await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_create_synthetics_api_test_1072503741.rs b/examples/v1_synthetics_create_synthetics_api_test_1072503741.rs index 20174c32b..4cc8e06c0 100644 --- a/examples/v1_synthetics_create_synthetics_api_test_1072503741.rs +++ b/examples/v1_synthetics_create_synthetics_api_test_1072503741.rs @@ -1,6 +1,6 @@ // Create an API SSL test returns "OK - Returns the created test details." response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; use datadog_api_client::datadogV1::model::SyntheticsAPITest; use datadog_api_client::datadogV1::model::SyntheticsAPITestConfig; use datadog_api_client::datadogV1::model::SyntheticsAPITestType; @@ -40,7 +40,7 @@ async fn main() { ) .subtype(SyntheticsTestDetailsSubType::SSL) .tags(vec!["testing:api".to_string()]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.create_synthetics_api_test(body).await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_create_synthetics_api_test_1241981394.rs b/examples/v1_synthetics_create_synthetics_api_test_1241981394.rs new file mode 100644 index 000000000..099c673c1 --- /dev/null +++ b/examples/v1_synthetics_create_synthetics_api_test_1241981394.rs @@ -0,0 +1,169 @@ +// Create an API test with a file payload returns "OK - Returns the created test +// details." response +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadogV1::model::SyntheticsAPITest; +use datadog_api_client::datadogV1::model::SyntheticsAPITestConfig; +use datadog_api_client::datadogV1::model::SyntheticsAPITestType; +use datadog_api_client::datadogV1::model::SyntheticsAssertion; +use datadog_api_client::datadogV1::model::SyntheticsAssertionJSONPathOperator; +use datadog_api_client::datadogV1::model::SyntheticsAssertionJSONPathTarget; +use datadog_api_client::datadogV1::model::SyntheticsAssertionJSONPathTargetTarget; +use datadog_api_client::datadogV1::model::SyntheticsAssertionOperator; +use datadog_api_client::datadogV1::model::SyntheticsAssertionTarget; +use datadog_api_client::datadogV1::model::SyntheticsAssertionTimingsScope; +use datadog_api_client::datadogV1::model::SyntheticsAssertionType; +use datadog_api_client::datadogV1::model::SyntheticsAssertionXPathOperator; +use datadog_api_client::datadogV1::model::SyntheticsAssertionXPathTarget; +use datadog_api_client::datadogV1::model::SyntheticsAssertionXPathTargetTarget; +use datadog_api_client::datadogV1::model::SyntheticsBasicAuth; +use datadog_api_client::datadogV1::model::SyntheticsBasicAuthOauthClient; +use datadog_api_client::datadogV1::model::SyntheticsBasicAuthOauthClientType; +use datadog_api_client::datadogV1::model::SyntheticsBasicAuthOauthTokenApiAuthentication; +use datadog_api_client::datadogV1::model::SyntheticsConfigVariable; +use datadog_api_client::datadogV1::model::SyntheticsConfigVariableType; +use datadog_api_client::datadogV1::model::SyntheticsTestDetailsSubType; +use datadog_api_client::datadogV1::model::SyntheticsTestOptions; +use datadog_api_client::datadogV1::model::SyntheticsTestOptionsHTTPVersion; +use datadog_api_client::datadogV1::model::SyntheticsTestOptionsRetry; +use datadog_api_client::datadogV1::model::SyntheticsTestRequest; +use datadog_api_client::datadogV1::model::SyntheticsTestRequestBodyFile; +use datadog_api_client::datadogV1::model::SyntheticsTestRequestBodyType; +use datadog_api_client::datadogV1::model::SyntheticsTestRequestCertificate; +use datadog_api_client::datadogV1::model::SyntheticsTestRequestCertificateItem; +use datadog_api_client::datadogV1::model::SyntheticsTestRequestProxy; +use serde_json::Value; +use std::collections::BTreeMap; + +#[tokio::main] +async fn main() { + let body = SyntheticsAPITest::new( + SyntheticsAPITestConfig::new() + .assertions(vec![ + SyntheticsAssertion::SyntheticsAssertionTarget(Box::new( + SyntheticsAssertionTarget::new( + SyntheticsAssertionOperator::IS, + Value::from("text/html"), + SyntheticsAssertionType::HEADER, + ) + .property("{{ PROPERTY }}".to_string()), + )), + SyntheticsAssertion::SyntheticsAssertionTarget(Box::new( + SyntheticsAssertionTarget::new( + SyntheticsAssertionOperator::LESS_THAN, + Value::from(2000), + SyntheticsAssertionType::RESPONSE_TIME, + ) + .timings_scope(SyntheticsAssertionTimingsScope::WITHOUT_DNS), + )), + SyntheticsAssertion::SyntheticsAssertionJSONPathTarget(Box::new( + SyntheticsAssertionJSONPathTarget::new( + SyntheticsAssertionJSONPathOperator::VALIDATES_JSON_PATH, + SyntheticsAssertionType::BODY, + ) + .target( + SyntheticsAssertionJSONPathTargetTarget::new() + .json_path("topKey".to_string()) + .operator("isNot".to_string()) + .target_value(Value::from("0")), + ), + )), + SyntheticsAssertion::SyntheticsAssertionXPathTarget(Box::new( + SyntheticsAssertionXPathTarget::new( + SyntheticsAssertionXPathOperator::VALIDATES_X_PATH, + SyntheticsAssertionType::BODY, + ) + .target( + SyntheticsAssertionXPathTargetTarget::new() + .operator("contains".to_string()) + .target_value(Value::from("0")) + .x_path("target-xpath".to_string()), + ), + )), + ]) + .config_variables(vec![SyntheticsConfigVariable::new( + "PROPERTY".to_string(), + SyntheticsConfigVariableType::TEXT, + ) + .example("content-type".to_string()) + .pattern("content-type".to_string())]) + .request( + SyntheticsTestRequest::new() + .basic_auth(SyntheticsBasicAuth::SyntheticsBasicAuthOauthClient( + Box::new( + SyntheticsBasicAuthOauthClient::new( + "https://datadog-token.com".to_string(), + "client-id".to_string(), + "client-secret".to_string(), + SyntheticsBasicAuthOauthTokenApiAuthentication::HEADER, + ) + .audience("audience".to_string()) + .resource("resource".to_string()) + .scope("yoyo".to_string()) + .type_(SyntheticsBasicAuthOauthClientType::OAUTH_CLIENT), + ), + )) + .body_type(SyntheticsTestRequestBodyType::APPLICATION_OCTET_STREAM) + .certificate( + SyntheticsTestRequestCertificate::new() + .cert( + SyntheticsTestRequestCertificateItem::new() + .content("cert-content".to_string()) + .filename("cert-filename".to_string()) + .updated_at("2020-10-16T09:23:24.857Z".to_string()), + ) + .key( + SyntheticsTestRequestCertificateItem::new() + .content("key-content".to_string()) + .filename("key-filename".to_string()) + .updated_at("2020-10-16T09:23:24.857Z".to_string()), + ), + ) + .files(vec![SyntheticsTestRequestBodyFile::new() + .content("file content".to_string()) + .name("file name".to_string()) + .type_("file type".to_string())]) + .headers(BTreeMap::from([( + "unique".to_string(), + "examplesynthetic".to_string(), + )])) + .method("GET".to_string()) + .persist_cookies(true) + .proxy( + SyntheticsTestRequestProxy::new("https://datadoghq.com".to_string()) + .headers(BTreeMap::from([])), + ) + .timeout(10.0 as f64) + .url("https://datadoghq.com".to_string()), + ), + vec!["aws:us-east-2".to_string()], + "BDD test payload: synthetics_api_http_test_payload.json".to_string(), + "Example-Synthetic".to_string(), + SyntheticsTestOptions::new() + .accept_self_signed(false) + .allow_insecure(true) + .follow_redirects(true) + .http_version(SyntheticsTestOptionsHTTPVersion::HTTP2) + .min_failure_duration(10) + .min_location_failed(1) + .monitor_name("Example-Synthetic".to_string()) + .monitor_priority(5) + .retry( + SyntheticsTestOptionsRetry::new() + .count(3) + .interval(10.0 as f64), + ) + .tick_every(60), + SyntheticsAPITestType::API, + ) + .subtype(SyntheticsTestDetailsSubType::HTTP) + .tags(vec!["testing:api".to_string()]); + let configuration = datadog::Configuration::new(); + let api = SyntheticsAPI::with_config(configuration); + let resp = api.create_synthetics_api_test(body).await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v1_synthetics_create_synthetics_api_test_1279271422.rs b/examples/v1_synthetics_create_synthetics_api_test_1279271422.rs index e9c238fd7..c33d7a441 100644 --- a/examples/v1_synthetics_create_synthetics_api_test_1279271422.rs +++ b/examples/v1_synthetics_create_synthetics_api_test_1279271422.rs @@ -1,7 +1,7 @@ // Create an API test with multi subtype returns "OK - Returns the created test // details." response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; use datadog_api_client::datadogV1::model::SyntheticsAPIStep; use datadog_api_client::datadogV1::model::SyntheticsAPIStepSubtype; use datadog_api_client::datadogV1::model::SyntheticsAPITest; @@ -16,75 +16,115 @@ use datadog_api_client::datadogV1::model::SyntheticsConfigVariableType; use datadog_api_client::datadogV1::model::SyntheticsGlobalVariableParseTestOptionsType; use datadog_api_client::datadogV1::model::SyntheticsGlobalVariableParserType; use datadog_api_client::datadogV1::model::SyntheticsParsingOptions; +use datadog_api_client::datadogV1::model::SyntheticsTestCallType; use datadog_api_client::datadogV1::model::SyntheticsTestDetailsSubType; use datadog_api_client::datadogV1::model::SyntheticsTestOptions; +use datadog_api_client::datadogV1::model::SyntheticsTestOptionsHTTPVersion; use datadog_api_client::datadogV1::model::SyntheticsTestOptionsRetry; use datadog_api_client::datadogV1::model::SyntheticsTestRequest; use datadog_api_client::datadogV1::model::SyntheticsVariableParser; use serde_json::Value; +use std::collections::BTreeMap; #[tokio::main] async fn main() { - let body = SyntheticsAPITest::new( - SyntheticsAPITestConfig::new() - .config_variables(vec![SyntheticsConfigVariable::new( - "PROPERTY".to_string(), - SyntheticsConfigVariableType::TEXT, - ) - .example("content-type".to_string()) - .pattern("content-type".to_string())]) - .steps(vec![SyntheticsAPIStep::new( - vec![SyntheticsAssertion::SyntheticsAssertionTarget(Box::new( - SyntheticsAssertionTarget::new( - SyntheticsAssertionOperator::IS, - Value::from(200), - SyntheticsAssertionType::STATUS_CODE, - ), - ))], - "request is sent".to_string(), - SyntheticsTestRequest::new() - .method("GET".to_string()) - .timeout(10 as f64) - .url("https://datadoghq.com".to_string()), - SyntheticsAPIStepSubtype::HTTP, - ) - .allow_failure(true) - .extracted_values(vec![SyntheticsParsingOptions::new() - .field("server".to_string()) - .name("EXTRACTED_VALUE".to_string()) - .parser(SyntheticsVariableParser::new( - SyntheticsGlobalVariableParserType::RAW, - )) - .secure(true) - .type_(SyntheticsGlobalVariableParseTestOptionsType::HTTP_HEADER)]) - .is_critical(true) - .retry( - SyntheticsTestOptionsRetry::new() - .count(5) - .interval(1000 as f64), - )]), - vec!["aws:us-east-2".to_string()], - "BDD test payload: synthetics_api_test_multi_step_payload.json".to_string(), - "Example-Synthetic".to_string(), - SyntheticsTestOptions::new() - .accept_self_signed(false) - .allow_insecure(true) - .follow_redirects(true) - .min_failure_duration(10) - .min_location_failed(1) - .monitor_name("Example-Synthetic".to_string()) - .monitor_priority(5) - .retry( - SyntheticsTestOptionsRetry::new() - .count(3) - .interval(1000 as f64), - ) - .tick_every(60), - SyntheticsAPITestType::API, - ) - .subtype(SyntheticsTestDetailsSubType::MULTI) - .tags(vec!["testing:api".to_string()]); - let configuration = Configuration::new(); + let body = + SyntheticsAPITest::new( + SyntheticsAPITestConfig::new() + .config_variables( + vec![ + SyntheticsConfigVariable::new("PROPERTY".to_string(), SyntheticsConfigVariableType::TEXT) + .example("content-type".to_string()) + .pattern("content-type".to_string()) + ], + ) + .steps( + vec![ + SyntheticsAPIStep::new( + vec![ + SyntheticsAssertion::SyntheticsAssertionTarget( + Box::new( + SyntheticsAssertionTarget::new( + SyntheticsAssertionOperator::IS, + Value::from(200), + SyntheticsAssertionType::STATUS_CODE, + ), + ), + ) + ], + "request is sent".to_string(), + SyntheticsTestRequest::new() + .http_version(SyntheticsTestOptionsHTTPVersion::HTTP2) + .method("GET".to_string()) + .timeout(10.0 as f64) + .url("https://datadoghq.com".to_string()), + SyntheticsAPIStepSubtype::HTTP, + ) + .allow_failure(true) + .extracted_values( + vec![ + SyntheticsParsingOptions::new() + .field("server".to_string()) + .name("EXTRACTED_VALUE".to_string()) + .parser( + SyntheticsVariableParser::new(SyntheticsGlobalVariableParserType::RAW), + ) + .secure(true) + .type_(SyntheticsGlobalVariableParseTestOptionsType::HTTP_HEADER) + ], + ) + .is_critical(true) + .retry(SyntheticsTestOptionsRetry::new().count(5).interval(1000.0 as f64)), + SyntheticsAPIStep::new( + vec![ + SyntheticsAssertion::SyntheticsAssertionTarget( + Box::new( + SyntheticsAssertionTarget::new( + SyntheticsAssertionOperator::LESS_THAN, + Value::from(1000), + SyntheticsAssertionType::RESPONSE_TIME, + ), + ), + ) + ], + "GRPC CALL".to_string(), + SyntheticsTestRequest::new() + .call_type(SyntheticsTestCallType::UNARY) + .compressed_json_descriptor( + "eJy1lU1z2yAQhv+Lzj74I3ETH506bQ7OZOSm1w4Wa4epBARQppqM/3v5koCJJdvtxCdW77vPssCO3zMKUgHOFu/ZXvBiS6hZho/f8qe7pftYgXphWJrlA8XwxywEvNba+6PhkC2yVcVVswYp0R6ykRYlZ1SCV21SDrxsssPIeS9FJKqGfK2rqnmmSBwhWa2XlKgtaQPiDcRGCUDVfwGD2sKUqKEtc1cSoOrsMlaMOec1sySYCCgUYRSVLv2zSva2u+FQkB0pVkIw8bFuIudOOn3pOaKYVT3Iy97Pd0AYhOx5QcMsnxvRHlnuLf8ETDd3CNtrv2nejkDpRnANCmGkkFn/hsYzpBKE7jVbufgnKnV9HRM9zRPDDKPttYT61n0TdWkAAjggk9AhuxIeaXd69CYTcsGw7cBTakLVbNpRzGEgyWjkSOpMbZXkhGL6oX30R49qt3GoHrap7i0XdD41WQ+2icCNm5p1hmFqnHNlcla0riKmDZ183crDxChjbnurtxHPRE784sVhWvDfGP+SsTKibU3o5NtWHuZFGZOxP6P5VXqIOvaOSec4eYohyd7NslHuJbd1bewds85xYrNxkr2d+5IhFWF3NvaO684xjE2S5ulY+tu64Pna0fCPJgzw6vF5/WucLcYjt5xoq19O3UDptOg/OamJQRaCcPPnMTQ2QDFn+uhPvUfnCrMc99upyQY4Ui9Dlc/YoG3R/v4Cs9YE+g==".to_string(), + ) + .host("grpcbin.test.k6.io".to_string()) + .message("{}".to_string()) + .metadata(BTreeMap::from([])) + .method("Index".to_string()) + .port(9000) + .service("grpcbin.GRPCBin".to_string()), + SyntheticsAPIStepSubtype::GRPC, + ) + .allow_failure(false) + .extracted_values(vec![]) + .is_critical(true) + .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)) + ], + ), + vec!["aws:us-east-2".to_string()], + "BDD test payload: synthetics_api_test_multi_step_payload.json".to_string(), + "Example-Synthetic".to_string(), + SyntheticsTestOptions::new() + .accept_self_signed(false) + .allow_insecure(true) + .follow_redirects(true) + .min_failure_duration(10) + .min_location_failed(1) + .monitor_name("Example-Synthetic".to_string()) + .monitor_priority(5) + .retry(SyntheticsTestOptionsRetry::new().count(3).interval(1000.0 as f64)) + .tick_every(60), + SyntheticsAPITestType::API, + ) + .subtype(SyntheticsTestDetailsSubType::MULTI) + .tags(vec!["testing:api".to_string()]); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.create_synthetics_api_test(body).await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_create_synthetics_api_test_1402674167.rs b/examples/v1_synthetics_create_synthetics_api_test_1402674167.rs index 36bd2bcb0..e2e02572b 100644 --- a/examples/v1_synthetics_create_synthetics_api_test_1402674167.rs +++ b/examples/v1_synthetics_create_synthetics_api_test_1402674167.rs @@ -1,7 +1,7 @@ // Create an API GRPC test returns "OK - Returns the created test details." // response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; use datadog_api_client::datadogV1::model::SyntheticsAPITest; use datadog_api_client::datadogV1::model::SyntheticsAPITestConfig; use datadog_api_client::datadogV1::model::SyntheticsAPITestType; @@ -66,7 +66,7 @@ async fn main() { ) .subtype(SyntheticsTestDetailsSubType::GRPC) .tags(vec!["testing:api".to_string()]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.create_synthetics_api_test(body).await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_create_synthetics_api_test_1487281163.rs b/examples/v1_synthetics_create_synthetics_api_test_1487281163.rs index eb1f9fbf8..627541fec 100644 --- a/examples/v1_synthetics_create_synthetics_api_test_1487281163.rs +++ b/examples/v1_synthetics_create_synthetics_api_test_1487281163.rs @@ -1,7 +1,7 @@ // Create an API HTTP test returns "OK - Returns the created test details." // response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; use datadog_api_client::datadogV1::model::SyntheticsAPITest; use datadog_api_client::datadogV1::model::SyntheticsAPITestConfig; use datadog_api_client::datadogV1::model::SyntheticsAPITestType; @@ -126,7 +126,7 @@ async fn main() { SyntheticsTestRequestProxy::new("https://datadoghq.com".to_string()) .headers(BTreeMap::from([])), ) - .timeout(10 as f64) + .timeout(10.0 as f64) .url("https://datadoghq.com".to_string()), ), vec!["aws:us-east-2".to_string()], @@ -144,14 +144,14 @@ async fn main() { .retry( SyntheticsTestOptionsRetry::new() .count(3) - .interval(10 as f64), + .interval(10.0 as f64), ) .tick_every(60), SyntheticsAPITestType::API, ) .subtype(SyntheticsTestDetailsSubType::HTTP) .tags(vec!["testing:api".to_string()]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.create_synthetics_api_test(body).await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_create_synthetics_api_test_2472747642.rs b/examples/v1_synthetics_create_synthetics_api_test_2472747642.rs index b1f911465..48bff2795 100644 --- a/examples/v1_synthetics_create_synthetics_api_test_2472747642.rs +++ b/examples/v1_synthetics_create_synthetics_api_test_2472747642.rs @@ -1,7 +1,7 @@ // Create an API test with WEBSOCKET subtype returns "OK - Returns the created // test details." response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; use datadog_api_client::datadogV1::model::SyntheticsAPITest; use datadog_api_client::datadogV1::model::SyntheticsAPITestConfig; use datadog_api_client::datadogV1::model::SyntheticsAPITestType; @@ -55,14 +55,14 @@ async fn main() { .retry( SyntheticsTestOptionsRetry::new() .count(3) - .interval(10 as f64), + .interval(10.0 as f64), ) .tick_every(60), SyntheticsAPITestType::API, ) .subtype(SyntheticsTestDetailsSubType::WEBSOCKET) .tags(vec!["testing:api".to_string()]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.create_synthetics_api_test(body).await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_create_synthetics_api_test_3829801148.rs b/examples/v1_synthetics_create_synthetics_api_test_3829801148.rs index e9fba46df..bafdb423c 100644 --- a/examples/v1_synthetics_create_synthetics_api_test_3829801148.rs +++ b/examples/v1_synthetics_create_synthetics_api_test_3829801148.rs @@ -1,7 +1,7 @@ // Create an API test with UDP subtype returns "OK - Returns the created test // details." response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; use datadog_api_client::datadogV1::model::SyntheticsAPITest; use datadog_api_client::datadogV1::model::SyntheticsAPITestConfig; use datadog_api_client::datadogV1::model::SyntheticsAPITestType; @@ -56,14 +56,14 @@ async fn main() { .retry( SyntheticsTestOptionsRetry::new() .count(3) - .interval(10 as f64), + .interval(10.0 as f64), ) .tick_every(60), SyntheticsAPITestType::API, ) .subtype(SyntheticsTestDetailsSubType::UDP) .tags(vec!["testing:api".to_string()]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.create_synthetics_api_test(body).await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_create_synthetics_api_test_960766374.rs b/examples/v1_synthetics_create_synthetics_api_test_960766374.rs index 9f2e63f81..ef69bc5ff 100644 --- a/examples/v1_synthetics_create_synthetics_api_test_960766374.rs +++ b/examples/v1_synthetics_create_synthetics_api_test_960766374.rs @@ -1,7 +1,7 @@ // Create an API HTTP with oauth-rop test returns "OK - Returns the created test // details." response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; use datadog_api_client::datadogV1::model::SyntheticsAPITest; use datadog_api_client::datadogV1::model::SyntheticsAPITestConfig; use datadog_api_client::datadogV1::model::SyntheticsAPITestType; @@ -122,7 +122,7 @@ async fn main() { SyntheticsTestRequestProxy::new("https://datadoghq.com".to_string()) .headers(BTreeMap::from([])), ) - .timeout(10 as f64) + .timeout(10.0 as f64) .url("https://datadoghq.com".to_string()), ), vec!["aws:us-east-2".to_string()], @@ -139,14 +139,14 @@ async fn main() { .retry( SyntheticsTestOptionsRetry::new() .count(3) - .interval(10 as f64), + .interval(10.0 as f64), ) .tick_every(60), SyntheticsAPITestType::API, ) .subtype(SyntheticsTestDetailsSubType::HTTP) .tags(vec!["testing:api".to_string()]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.create_synthetics_api_test(body).await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_create_synthetics_browser_test.rs b/examples/v1_synthetics_create_synthetics_browser_test.rs index c9c5abf7c..2e40eb856 100644 --- a/examples/v1_synthetics_create_synthetics_browser_test.rs +++ b/examples/v1_synthetics_create_synthetics_browser_test.rs @@ -1,6 +1,6 @@ // Create a browser test returns "OK - Returns the created test details." response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; use datadog_api_client::datadogV1::model::SyntheticsBrowserTest; use datadog_api_client::datadogV1::model::SyntheticsBrowserTestConfig; use datadog_api_client::datadogV1::model::SyntheticsBrowserTestType; @@ -46,7 +46,7 @@ async fn main() { SyntheticsTestOptions::new() .accept_self_signed(false) .allow_insecure(true) - .device_ids(vec![SyntheticsDeviceID::TABLET]) + .device_ids(vec![SyntheticsDeviceID::CHROME_LAPTOP_LARGE]) .disable_cors(true) .follow_redirects(true) .min_failure_duration(10) @@ -55,7 +55,7 @@ async fn main() { .retry( SyntheticsTestOptionsRetry::new() .count(2) - .interval(10 as f64), + .interval(10.0 as f64), ) .tick_every(300), SyntheticsBrowserTestType::BROWSER, @@ -67,7 +67,7 @@ async fn main() { .params(BTreeMap::new()) .type_(SyntheticsStepType::REFRESH)]) .tags(vec!["testing:browser".to_string()]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.create_synthetics_browser_test(body).await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_create_synthetics_browser_test_2932742688.rs b/examples/v1_synthetics_create_synthetics_browser_test_2932742688.rs index 4b0f3a5b7..0a6cab1d4 100644 --- a/examples/v1_synthetics_create_synthetics_browser_test_2932742688.rs +++ b/examples/v1_synthetics_create_synthetics_browser_test_2932742688.rs @@ -1,6 +1,6 @@ // Create a browser test returns "OK - Returns saved rumSettings." response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; use datadog_api_client::datadogV1::model::SyntheticsBrowserTest; use datadog_api_client::datadogV1::model::SyntheticsBrowserTestConfig; use datadog_api_client::datadogV1::model::SyntheticsBrowserTestRumSettings; @@ -53,7 +53,7 @@ async fn main() { .retry( SyntheticsTestOptionsRetry::new() .count(2) - .interval(10 as f64), + .interval(10.0 as f64), ) .rum_settings( SyntheticsBrowserTestRumSettings::new(true) @@ -70,7 +70,7 @@ async fn main() { .params(BTreeMap::new()) .type_(SyntheticsStepType::REFRESH)]) .tags(vec!["testing:browser".to_string()]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.create_synthetics_browser_test(body).await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_create_synthetics_browser_test_397420811.rs b/examples/v1_synthetics_create_synthetics_browser_test_397420811.rs index 566ba9cf5..8f8c35df9 100644 --- a/examples/v1_synthetics_create_synthetics_browser_test_397420811.rs +++ b/examples/v1_synthetics_create_synthetics_browser_test_397420811.rs @@ -1,7 +1,7 @@ // Create a browser test with advanced scheduling options returns "OK - Returns // the created test details." response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; use datadog_api_client::datadogV1::model::SyntheticsBrowserTest; use datadog_api_client::datadogV1::model::SyntheticsBrowserTestConfig; use datadog_api_client::datadogV1::model::SyntheticsBrowserTestType; @@ -48,7 +48,7 @@ async fn main() { .retry( SyntheticsTestOptionsRetry::new() .count(2) - .interval(10 as f64), + .interval(10.0 as f64), ) .scheduling( SyntheticsTestOptionsScheduling::new() @@ -74,7 +74,7 @@ async fn main() { .params(BTreeMap::new()) .type_(SyntheticsStepType::REFRESH)]) .tags(vec!["testing:browser".to_string()]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.create_synthetics_browser_test(body).await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_delete_global_variable.rs b/examples/v1_synthetics_delete_global_variable.rs index 621dee60a..c1b072510 100644 --- a/examples/v1_synthetics_delete_global_variable.rs +++ b/examples/v1_synthetics_delete_global_variable.rs @@ -1,10 +1,10 @@ // Delete a global variable returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.delete_global_variable("variable_id".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_delete_private_location.rs b/examples/v1_synthetics_delete_private_location.rs index d8f40f14a..f992c357f 100644 --- a/examples/v1_synthetics_delete_private_location.rs +++ b/examples/v1_synthetics_delete_private_location.rs @@ -1,10 +1,10 @@ // Delete a private location returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.delete_private_location("location_id".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_delete_tests.rs b/examples/v1_synthetics_delete_tests.rs index 98295324f..67c961d81 100644 --- a/examples/v1_synthetics_delete_tests.rs +++ b/examples/v1_synthetics_delete_tests.rs @@ -1,6 +1,6 @@ // Delete tests returns "OK." response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; use datadog_api_client::datadogV1::model::SyntheticsDeleteTestsPayload; #[tokio::main] @@ -9,7 +9,7 @@ async fn main() { let synthetics_api_test_public_id = std::env::var("SYNTHETICS_API_TEST_PUBLIC_ID").unwrap(); let body = SyntheticsDeleteTestsPayload::new().public_ids(vec![synthetics_api_test_public_id.clone()]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.delete_tests(body).await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_edit_global_variable.rs b/examples/v1_synthetics_edit_global_variable.rs index b29f7ab6d..8682af5bb 100644 --- a/examples/v1_synthetics_edit_global_variable.rs +++ b/examples/v1_synthetics_edit_global_variable.rs @@ -1,6 +1,6 @@ // Edit a global variable returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; use datadog_api_client::datadogV1::model::SyntheticsGlobalVariable; use datadog_api_client::datadogV1::model::SyntheticsGlobalVariableAttributes; use datadog_api_client::datadogV1::model::SyntheticsGlobalVariableParseTestOptions; @@ -35,7 +35,7 @@ async fn main() { ), ) .parse_test_public_id("abc-def-123".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api .edit_global_variable("variable_id".to_string(), body) diff --git a/examples/v1_synthetics_get_api_test.rs b/examples/v1_synthetics_get_api_test.rs index 9434aaaa8..8ac66905f 100644 --- a/examples/v1_synthetics_get_api_test.rs +++ b/examples/v1_synthetics_get_api_test.rs @@ -1,10 +1,10 @@ // Get an API test returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.get_api_test("public_id".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_get_api_test_latest_results.rs b/examples/v1_synthetics_get_api_test_latest_results.rs index 5305d3d8d..414327ee9 100644 --- a/examples/v1_synthetics_get_api_test_latest_results.rs +++ b/examples/v1_synthetics_get_api_test_latest_results.rs @@ -1,11 +1,11 @@ // Get an API test's latest results summaries returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::GetAPITestLatestResultsOptionalParams; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::GetAPITestLatestResultsOptionalParams; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api .get_api_test_latest_results( diff --git a/examples/v1_synthetics_get_api_test_result.rs b/examples/v1_synthetics_get_api_test_result.rs index 89ca6478f..94ba317a6 100644 --- a/examples/v1_synthetics_get_api_test_result.rs +++ b/examples/v1_synthetics_get_api_test_result.rs @@ -1,10 +1,10 @@ // Get an API test result returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api .get_api_test_result("hwb-332-3xe".to_string(), "3420446318379485707".to_string()) diff --git a/examples/v1_synthetics_get_api_test_result_1321866518.rs b/examples/v1_synthetics_get_api_test_result_1321866518.rs index 6c2ff6f6c..1590b7bf3 100644 --- a/examples/v1_synthetics_get_api_test_result_1321866518.rs +++ b/examples/v1_synthetics_get_api_test_result_1321866518.rs @@ -1,6 +1,6 @@ // Get an API test result returns result with failure object -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; #[tokio::main] async fn main() { @@ -11,7 +11,7 @@ async fn main() { // the "synthetics_api_test_with_wrong_dns" is triggered let synthetics_api_test_with_wrong_dns_result_results_0_result_id = std::env::var("SYNTHETICS_API_TEST_WITH_WRONG_DNS_RESULT_RESULTS_0_RESULT_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api .get_api_test_result( diff --git a/examples/v1_synthetics_get_browser_test.rs b/examples/v1_synthetics_get_browser_test.rs index 48dcccc2f..c62ee12fa 100644 --- a/examples/v1_synthetics_get_browser_test.rs +++ b/examples/v1_synthetics_get_browser_test.rs @@ -1,10 +1,10 @@ // Get a browser test returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.get_browser_test("public_id".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_get_browser_test_latest_results.rs b/examples/v1_synthetics_get_browser_test_latest_results.rs index f4b83ddd2..605b12a2e 100644 --- a/examples/v1_synthetics_get_browser_test_latest_results.rs +++ b/examples/v1_synthetics_get_browser_test_latest_results.rs @@ -1,11 +1,11 @@ // Get a browser test's latest results summaries returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::GetBrowserTestLatestResultsOptionalParams; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::GetBrowserTestLatestResultsOptionalParams; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api .get_browser_test_latest_results( diff --git a/examples/v1_synthetics_get_browser_test_result.rs b/examples/v1_synthetics_get_browser_test_result.rs index 81d5e3195..3db90a5ba 100644 --- a/examples/v1_synthetics_get_browser_test_result.rs +++ b/examples/v1_synthetics_get_browser_test_result.rs @@ -1,10 +1,10 @@ // Get a browser test result returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api .get_browser_test_result("2yy-sem-mjh".to_string(), "5671719892074090418".to_string()) diff --git a/examples/v1_synthetics_get_global_variable.rs b/examples/v1_synthetics_get_global_variable.rs index 9edf03f2d..715392f01 100644 --- a/examples/v1_synthetics_get_global_variable.rs +++ b/examples/v1_synthetics_get_global_variable.rs @@ -1,10 +1,10 @@ // Get a global variable returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.get_global_variable("variable_id".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_get_private_location.rs b/examples/v1_synthetics_get_private_location.rs index 016d9c8ea..18b29ef04 100644 --- a/examples/v1_synthetics_get_private_location.rs +++ b/examples/v1_synthetics_get_private_location.rs @@ -1,10 +1,10 @@ // Get a private location returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.get_private_location("location_id".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_get_synthetics_ci_batch.rs b/examples/v1_synthetics_get_synthetics_ci_batch.rs index f771fea06..9ba1c7515 100644 --- a/examples/v1_synthetics_get_synthetics_ci_batch.rs +++ b/examples/v1_synthetics_get_synthetics_ci_batch.rs @@ -1,10 +1,10 @@ // Get details of batch returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.get_synthetics_ci_batch("batch_id".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_get_synthetics_default_locations.rs b/examples/v1_synthetics_get_synthetics_default_locations.rs index a8f9401e6..bca02f3e1 100644 --- a/examples/v1_synthetics_get_synthetics_default_locations.rs +++ b/examples/v1_synthetics_get_synthetics_default_locations.rs @@ -1,10 +1,10 @@ // Get the default locations returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.get_synthetics_default_locations().await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_get_synthetics_default_locations_746853380.rs b/examples/v1_synthetics_get_synthetics_default_locations_746853380.rs index 3b6156b5c..30069c09f 100644 --- a/examples/v1_synthetics_get_synthetics_default_locations_746853380.rs +++ b/examples/v1_synthetics_get_synthetics_default_locations_746853380.rs @@ -1,10 +1,10 @@ // Get the list of default locations returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.get_synthetics_default_locations().await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_get_test.rs b/examples/v1_synthetics_get_test.rs index 8ae361674..12d4a795c 100644 --- a/examples/v1_synthetics_get_test.rs +++ b/examples/v1_synthetics_get_test.rs @@ -1,10 +1,10 @@ // Get a test configuration returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.get_test("public_id".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_list_global_variables.rs b/examples/v1_synthetics_list_global_variables.rs index 45a2e28a4..1e473ef44 100644 --- a/examples/v1_synthetics_list_global_variables.rs +++ b/examples/v1_synthetics_list_global_variables.rs @@ -1,10 +1,10 @@ // Get all global variables returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.list_global_variables().await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_list_locations.rs b/examples/v1_synthetics_list_locations.rs index 24702f690..61f2b3c1f 100644 --- a/examples/v1_synthetics_list_locations.rs +++ b/examples/v1_synthetics_list_locations.rs @@ -1,10 +1,10 @@ // Get all locations (public and private) returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.list_locations().await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_list_tests.rs b/examples/v1_synthetics_list_tests.rs index e0d51cfd5..a4235b0b4 100644 --- a/examples/v1_synthetics_list_tests.rs +++ b/examples/v1_synthetics_list_tests.rs @@ -1,12 +1,12 @@ // Get the list of all Synthetic tests returns "OK - Returns the list of all // Synthetic tests." response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::ListTestsOptionalParams; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::ListTestsOptionalParams; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.list_tests(ListTestsOptionalParams::default()).await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_list_tests_1938827783.rs b/examples/v1_synthetics_list_tests_1938827783.rs index 903f70481..2fe667c06 100644 --- a/examples/v1_synthetics_list_tests_1938827783.rs +++ b/examples/v1_synthetics_list_tests_1938827783.rs @@ -1,14 +1,14 @@ // Get the list of all Synthetic tests returns "OK - Returns the list of all // Synthetic tests." response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::ListTestsOptionalParams; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::ListTestsOptionalParams; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; use futures_util::pin_mut; use futures_util::stream::StreamExt; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let response = api.list_tests_with_pagination(ListTestsOptionalParams::default().page_size(2)); pin_mut!(response); diff --git a/examples/v1_synthetics_list_tests_2779190961.rs b/examples/v1_synthetics_list_tests_2779190961.rs index 61a15c7bf..a27a9a9a2 100644 --- a/examples/v1_synthetics_list_tests_2779190961.rs +++ b/examples/v1_synthetics_list_tests_2779190961.rs @@ -1,11 +1,11 @@ // Client is resilient to enum and oneOf deserialization errors -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::ListTestsOptionalParams; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::ListTestsOptionalParams; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.list_tests(ListTestsOptionalParams::default()).await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_patch_test.rs b/examples/v1_synthetics_patch_test.rs index 423a0b4c9..aabc80046 100644 --- a/examples/v1_synthetics_patch_test.rs +++ b/examples/v1_synthetics_patch_test.rs @@ -1,6 +1,6 @@ // Patch a Synthetic test returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; use datadog_api_client::datadogV1::model::SyntheticsPatchTestBody; use datadog_api_client::datadogV1::model::SyntheticsPatchTestOperation; use datadog_api_client::datadogV1::model::SyntheticsPatchTestOperationName; @@ -19,7 +19,7 @@ async fn main() { .op(SyntheticsPatchTestOperationName::REMOVE) .path("/config/assertions/0".to_string()), ]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api .patch_test(synthetics_api_test_public_id.clone(), body) diff --git a/examples/v1_synthetics_trigger_ci_tests.rs b/examples/v1_synthetics_trigger_ci_tests.rs index 8379896e2..495d5eff0 100644 --- a/examples/v1_synthetics_trigger_ci_tests.rs +++ b/examples/v1_synthetics_trigger_ci_tests.rs @@ -1,6 +1,6 @@ // Trigger tests from CI/CD pipelines returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; use datadog_api_client::datadogV1::model::SyntheticsBasicAuth; use datadog_api_client::datadogV1::model::SyntheticsBasicAuthWeb; use datadog_api_client::datadogV1::model::SyntheticsBasicAuthWebType; @@ -22,7 +22,7 @@ async fn main() { SyntheticsBasicAuthWeb::new("PaSSw0RD!".to_string(), "my_username".to_string()) .type_(SyntheticsBasicAuthWebType::WEB), ))) - .device_ids(vec![SyntheticsDeviceID::LAPTOP_LARGE]) + .device_ids(vec![SyntheticsDeviceID::CHROME_LAPTOP_LARGE]) .locations(vec!["aws:eu-west-3".to_string()]) .metadata( SyntheticsCIBatchMetadata::new() @@ -32,7 +32,7 @@ async fn main() { .git(SyntheticsCIBatchMetadataGit::new()), ) .retry(SyntheticsTestOptionsRetry::new())]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.trigger_ci_tests(body).await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_trigger_tests.rs b/examples/v1_synthetics_trigger_tests.rs index a1ba0e569..9510c3bf6 100644 --- a/examples/v1_synthetics_trigger_tests.rs +++ b/examples/v1_synthetics_trigger_tests.rs @@ -1,6 +1,6 @@ // Trigger Synthetic tests returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; use datadog_api_client::datadogV1::model::SyntheticsTriggerBody; use datadog_api_client::datadogV1::model::SyntheticsTriggerTest; @@ -11,7 +11,7 @@ async fn main() { let body = SyntheticsTriggerBody::new(vec![SyntheticsTriggerTest::new( synthetics_api_test_public_id.clone(), )]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.trigger_tests(body).await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_update_api_test.rs b/examples/v1_synthetics_update_api_test.rs index e2fbbfa09..eab4425c2 100644 --- a/examples/v1_synthetics_update_api_test.rs +++ b/examples/v1_synthetics_update_api_test.rs @@ -1,6 +1,6 @@ // Edit an API test returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; use datadog_api_client::datadogV1::model::SyntheticsAPITest; use datadog_api_client::datadogV1::model::SyntheticsAPITestConfig; use datadog_api_client::datadogV1::model::SyntheticsAPITestType; @@ -84,7 +84,7 @@ async fn main() { "examplesynthetic".to_string(), )])) .method("GET".to_string()) - .timeout(10 as f64) + .timeout(10.0 as f64) .url("https://datadoghq.com".to_string()), ), vec!["aws:us-east-2".to_string()], @@ -101,7 +101,7 @@ async fn main() { .retry( SyntheticsTestOptionsRetry::new() .count(3) - .interval(10 as f64), + .interval(10.0 as f64), ) .tick_every(60), SyntheticsAPITestType::API, @@ -109,7 +109,7 @@ async fn main() { .status(SyntheticsTestPauseStatus::LIVE) .subtype(SyntheticsTestDetailsSubType::HTTP) .tags(vec!["testing:api".to_string()]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api .update_api_test(synthetics_api_test_public_id.clone(), body) diff --git a/examples/v1_synthetics_update_browser_test.rs b/examples/v1_synthetics_update_browser_test.rs index 4fad79f75..71ef67695 100644 --- a/examples/v1_synthetics_update_browser_test.rs +++ b/examples/v1_synthetics_update_browser_test.rs @@ -1,6 +1,6 @@ // Edit a browser test returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; use datadog_api_client::datadogV1::model::SyntheticsBasicAuth; use datadog_api_client::datadogV1::model::SyntheticsBasicAuthWeb; use datadog_api_client::datadogV1::model::SyntheticsBasicAuthWebType; @@ -26,6 +26,7 @@ use datadog_api_client::datadogV1::model::SyntheticsTestOptionsScheduling; use datadog_api_client::datadogV1::model::SyntheticsTestOptionsSchedulingTimeframe; use datadog_api_client::datadogV1::model::SyntheticsTestPauseStatus; use datadog_api_client::datadogV1::model::SyntheticsTestRequest; +use datadog_api_client::datadogV1::model::SyntheticsTestRequestBodyFile; use datadog_api_client::datadogV1::model::SyntheticsTestRequestBodyType; use datadog_api_client::datadogV1::model::SyntheticsTestRequestCertificate; use datadog_api_client::datadogV1::model::SyntheticsTestRequestCertificateItem; @@ -49,6 +50,8 @@ async fn main() { .key(SyntheticsTestRequestCertificateItem::new()), ) .certificate_domains(vec![]) + .files(vec![SyntheticsTestRequestBodyFile::new()]) + .http_version(SyntheticsTestOptionsHTTPVersion::HTTP1) .proxy(SyntheticsTestRequestProxy::new( "https://example.com".to_string(), )) @@ -70,7 +73,7 @@ async fn main() { SyntheticsTestOptions::new() .ci(SyntheticsTestCiOptions::new() .execution_rule(SyntheticsTestExecutionRule::BLOCKING)) - .device_ids(vec![SyntheticsDeviceID::LAPTOP_LARGE]) + .device_ids(vec![SyntheticsDeviceID::CHROME_LAPTOP_LARGE]) .http_version(SyntheticsTestOptionsHTTPVersion::HTTP1) .monitor_options(SyntheticsTestOptionsMonitorOptions::new()) .restricted_roles(vec!["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".to_string()]) @@ -101,7 +104,7 @@ async fn main() { SyntheticsStep::new().type_(SyntheticsStepType::ASSERT_ELEMENT_CONTENT) ]) .tags(vec!["env:prod".to_string()]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.update_browser_test("public_id".to_string(), body).await; if let Ok(value) = resp { diff --git a/examples/v1_synthetics_update_private_location.rs b/examples/v1_synthetics_update_private_location.rs index 8babac472..ede748e38 100644 --- a/examples/v1_synthetics_update_private_location.rs +++ b/examples/v1_synthetics_update_private_location.rs @@ -1,6 +1,6 @@ // Edit a private location returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; use datadog_api_client::datadogV1::model::SyntheticsPrivateLocation; use datadog_api_client::datadogV1::model::SyntheticsPrivateLocationMetadata; @@ -15,7 +15,7 @@ async fn main() { SyntheticsPrivateLocationMetadata::new() .restricted_roles(vec!["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".to_string()]), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api .update_private_location("location_id".to_string(), body) diff --git a/examples/v1_synthetics_update_test_pause_status.rs b/examples/v1_synthetics_update_test_pause_status.rs index 061054173..4771bfcc1 100644 --- a/examples/v1_synthetics_update_test_pause_status.rs +++ b/examples/v1_synthetics_update_test_pause_status.rs @@ -1,7 +1,7 @@ // Pause or start a test returns "OK - Returns a boolean indicating if the update // was successful." response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI; use datadog_api_client::datadogV1::model::SyntheticsTestPauseStatus; use datadog_api_client::datadogV1::model::SyntheticsUpdateTestPauseStatusPayload; @@ -9,7 +9,7 @@ use datadog_api_client::datadogV1::model::SyntheticsUpdateTestPauseStatusPayload async fn main() { let body = SyntheticsUpdateTestPauseStatusPayload::new().new_status(SyntheticsTestPauseStatus::LIVE); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api .update_test_pause_status("public_id".to_string(), body) diff --git a/examples/v1_tags_create_host_tags.rs b/examples/v1_tags_create_host_tags.rs index 7c08218fe..57a9d0353 100644 --- a/examples/v1_tags_create_host_tags.rs +++ b/examples/v1_tags_create_host_tags.rs @@ -1,7 +1,7 @@ // Add tags to a host returns "Created" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_tags::CreateHostTagsOptionalParams; -use datadog_api_client::datadogV1::api::api_tags::TagsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_tags::CreateHostTagsOptionalParams; +use datadog_api_client::datadogV1::api_tags::TagsAPI; use datadog_api_client::datadogV1::model::HostTags; #[tokio::main] @@ -9,7 +9,7 @@ async fn main() { let body = HostTags::new() .host("test.host".to_string()) .tags(vec!["environment:production".to_string()]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = TagsAPI::with_config(configuration); let resp = api .create_host_tags( diff --git a/examples/v1_tags_delete_host_tags.rs b/examples/v1_tags_delete_host_tags.rs index d5ae94368..114c8c06c 100644 --- a/examples/v1_tags_delete_host_tags.rs +++ b/examples/v1_tags_delete_host_tags.rs @@ -1,11 +1,11 @@ // Remove host tags returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_tags::DeleteHostTagsOptionalParams; -use datadog_api_client::datadogV1::api::api_tags::TagsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_tags::DeleteHostTagsOptionalParams; +use datadog_api_client::datadogV1::api_tags::TagsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = TagsAPI::with_config(configuration); let resp = api .delete_host_tags( diff --git a/examples/v1_tags_get_host_tags.rs b/examples/v1_tags_get_host_tags.rs index 25c9157e5..9f03e66e4 100644 --- a/examples/v1_tags_get_host_tags.rs +++ b/examples/v1_tags_get_host_tags.rs @@ -1,11 +1,11 @@ // Get host tags returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_tags::GetHostTagsOptionalParams; -use datadog_api_client::datadogV1::api::api_tags::TagsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_tags::GetHostTagsOptionalParams; +use datadog_api_client::datadogV1::api_tags::TagsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = TagsAPI::with_config(configuration); let resp = api .get_host_tags( diff --git a/examples/v1_tags_list_host_tags.rs b/examples/v1_tags_list_host_tags.rs index f24fe0c0d..982cddb17 100644 --- a/examples/v1_tags_list_host_tags.rs +++ b/examples/v1_tags_list_host_tags.rs @@ -1,11 +1,11 @@ // Get Tags returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_tags::ListHostTagsOptionalParams; -use datadog_api_client::datadogV1::api::api_tags::TagsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_tags::ListHostTagsOptionalParams; +use datadog_api_client::datadogV1::api_tags::TagsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = TagsAPI::with_config(configuration); let resp = api .list_host_tags(ListHostTagsOptionalParams::default()) diff --git a/examples/v1_tags_update_host_tags.rs b/examples/v1_tags_update_host_tags.rs index 49c3d1356..7e1c24992 100644 --- a/examples/v1_tags_update_host_tags.rs +++ b/examples/v1_tags_update_host_tags.rs @@ -1,7 +1,7 @@ // Update host tags returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_tags::TagsAPI; -use datadog_api_client::datadogV1::api::api_tags::UpdateHostTagsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_tags::TagsAPI; +use datadog_api_client::datadogV1::api_tags::UpdateHostTagsOptionalParams; use datadog_api_client::datadogV1::model::HostTags; #[tokio::main] @@ -9,7 +9,7 @@ async fn main() { let body = HostTags::new() .host("test.host".to_string()) .tags(vec!["environment:production".to_string()]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = TagsAPI::with_config(configuration); let resp = api .update_host_tags( diff --git a/examples/v1_usage-metering_get_daily_custom_reports.rs b/examples/v1_usage-metering_get_daily_custom_reports.rs index f081fb9f5..78dae0ad5 100644 --- a/examples/v1_usage-metering_get_daily_custom_reports.rs +++ b/examples/v1_usage-metering_get_daily_custom_reports.rs @@ -1,11 +1,11 @@ // Get the list of available daily custom reports returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetDailyCustomReportsOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetDailyCustomReportsOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_daily_custom_reports(GetDailyCustomReportsOptionalParams::default()) diff --git a/examples/v1_usage-metering_get_hourly_usage_attribution.rs b/examples/v1_usage-metering_get_hourly_usage_attribution.rs index f47a64334..42691d155 100644 --- a/examples/v1_usage-metering_get_hourly_usage_attribution.rs +++ b/examples/v1_usage-metering_get_hourly_usage_attribution.rs @@ -1,12 +1,12 @@ // Get hourly usage attribution returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetHourlyUsageAttributionOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetHourlyUsageAttributionOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; use datadog_api_client::datadogV1::model::HourlyUsageAttributionUsageType; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_hourly_usage_attribution( diff --git a/examples/v1_usage-metering_get_incident_management.rs b/examples/v1_usage-metering_get_incident_management.rs index e007a726a..1312cf75e 100644 --- a/examples/v1_usage-metering_get_incident_management.rs +++ b/examples/v1_usage-metering_get_incident_management.rs @@ -1,11 +1,11 @@ // Get hourly usage for incident management returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetIncidentManagementOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetIncidentManagementOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_incident_management( diff --git a/examples/v1_usage-metering_get_ingested_spans.rs b/examples/v1_usage-metering_get_ingested_spans.rs index 4dc916252..99f52c4ea 100644 --- a/examples/v1_usage-metering_get_ingested_spans.rs +++ b/examples/v1_usage-metering_get_ingested_spans.rs @@ -1,11 +1,11 @@ // Get hourly usage for ingested spans returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetIngestedSpansOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetIngestedSpansOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_ingested_spans( diff --git a/examples/v1_usage-metering_get_monthly_custom_reports.rs b/examples/v1_usage-metering_get_monthly_custom_reports.rs index 2e73f3fb8..6147af11c 100644 --- a/examples/v1_usage-metering_get_monthly_custom_reports.rs +++ b/examples/v1_usage-metering_get_monthly_custom_reports.rs @@ -1,11 +1,11 @@ // Get the list of available monthly custom reports returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetMonthlyCustomReportsOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetMonthlyCustomReportsOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_monthly_custom_reports(GetMonthlyCustomReportsOptionalParams::default()) diff --git a/examples/v1_usage-metering_get_monthly_usage_attribution.rs b/examples/v1_usage-metering_get_monthly_usage_attribution.rs index 7295d5a89..b0d73ae60 100644 --- a/examples/v1_usage-metering_get_monthly_usage_attribution.rs +++ b/examples/v1_usage-metering_get_monthly_usage_attribution.rs @@ -1,12 +1,12 @@ // Get monthly usage attribution returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetMonthlyUsageAttributionOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetMonthlyUsageAttributionOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; use datadog_api_client::datadogV1::model::MonthlyUsageAttributionSupportedMetrics; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_monthly_usage_attribution( diff --git a/examples/v1_usage-metering_get_monthly_usage_attribution_3849653599.rs b/examples/v1_usage-metering_get_monthly_usage_attribution_3849653599.rs index de8bc7484..5a47f1dff 100644 --- a/examples/v1_usage-metering_get_monthly_usage_attribution_3849653599.rs +++ b/examples/v1_usage-metering_get_monthly_usage_attribution_3849653599.rs @@ -1,7 +1,7 @@ // Paginate monthly usage attribution -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetMonthlyUsageAttributionOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetMonthlyUsageAttributionOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; use datadog_api_client::datadogV1::model::MonthlyUsageAttributionSupportedMetrics; #[tokio::main] @@ -9,7 +9,7 @@ async fn main() { // there is a valid "monthly_usage_attribution" response let monthly_usage_attribution_metadata_pagination_next_record_id = std::env::var("MONTHLY_USAGE_ATTRIBUTION_METADATA_PAGINATION_NEXT_RECORD_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_monthly_usage_attribution( diff --git a/examples/v1_usage-metering_get_specified_daily_custom_reports.rs b/examples/v1_usage-metering_get_specified_daily_custom_reports.rs index 6546b2ae0..2f66fce9d 100644 --- a/examples/v1_usage-metering_get_specified_daily_custom_reports.rs +++ b/examples/v1_usage-metering_get_specified_daily_custom_reports.rs @@ -1,10 +1,10 @@ // Get specified daily custom reports returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_specified_daily_custom_reports("2022-03-20".to_string()) diff --git a/examples/v1_usage-metering_get_specified_monthly_custom_reports.rs b/examples/v1_usage-metering_get_specified_monthly_custom_reports.rs index 09d70d84c..c17b846c1 100644 --- a/examples/v1_usage-metering_get_specified_monthly_custom_reports.rs +++ b/examples/v1_usage-metering_get_specified_monthly_custom_reports.rs @@ -1,10 +1,10 @@ // Get specified monthly custom reports returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_specified_monthly_custom_reports("2021-05-01".to_string()) diff --git a/examples/v1_usage-metering_get_usage_analyzed_logs.rs b/examples/v1_usage-metering_get_usage_analyzed_logs.rs index 435c71a2b..7b5e7be14 100644 --- a/examples/v1_usage-metering_get_usage_analyzed_logs.rs +++ b/examples/v1_usage-metering_get_usage_analyzed_logs.rs @@ -1,11 +1,11 @@ // Get hourly usage for analyzed logs returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageAnalyzedLogsOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageAnalyzedLogsOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_analyzed_logs( diff --git a/examples/v1_usage-metering_get_usage_attribution.rs b/examples/v1_usage-metering_get_usage_attribution.rs deleted file mode 100644 index 7caa9e552..000000000 --- a/examples/v1_usage-metering_get_usage_attribution.rs +++ /dev/null @@ -1,25 +0,0 @@ -// Get usage attribution returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageAttributionOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; -use datadog_api_client::datadogV1::model::UsageAttributionSupportedMetrics; - -#[tokio::main] -async fn main() { - let configuration = Configuration::new(); - let api = UsageMeteringAPI::with_config(configuration); - let resp = api - .get_usage_attribution( - "2021-11-08T11:11:11+00:00".to_string(), - UsageAttributionSupportedMetrics::ALL, - GetUsageAttributionOptionalParams::default() - .offset(0) - .limit(1), - ) - .await; - if let Ok(value) = resp { - println!("{:#?}", value); - } else { - println!("{:#?}", resp.unwrap_err()); - } -} diff --git a/examples/v1_usage-metering_get_usage_audit_logs.rs b/examples/v1_usage-metering_get_usage_audit_logs.rs index 5f391d151..17fb6995a 100644 --- a/examples/v1_usage-metering_get_usage_audit_logs.rs +++ b/examples/v1_usage-metering_get_usage_audit_logs.rs @@ -1,11 +1,11 @@ // Get hourly usage for audit logs returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageAuditLogsOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageAuditLogsOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_audit_logs( diff --git a/examples/v1_usage-metering_get_usage_billable_summary.rs b/examples/v1_usage-metering_get_usage_billable_summary.rs index e6e82cd6e..236910a5c 100644 --- a/examples/v1_usage-metering_get_usage_billable_summary.rs +++ b/examples/v1_usage-metering_get_usage_billable_summary.rs @@ -1,11 +1,11 @@ // Get billable usage across your account returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageBillableSummaryOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageBillableSummaryOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_billable_summary(GetUsageBillableSummaryOptionalParams::default()) diff --git a/examples/v1_usage-metering_get_usage_ci_app.rs b/examples/v1_usage-metering_get_usage_ci_app.rs index 9d82bbc5c..412f3da9a 100644 --- a/examples/v1_usage-metering_get_usage_ci_app.rs +++ b/examples/v1_usage-metering_get_usage_ci_app.rs @@ -1,11 +1,11 @@ // Get hourly usage for CI visibility returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageCIAppOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageCIAppOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_ci_app( diff --git a/examples/v1_usage-metering_get_usage_cloud_security_posture_management.rs b/examples/v1_usage-metering_get_usage_cloud_security_posture_management.rs index 5753f01e3..995fb6a7a 100644 --- a/examples/v1_usage-metering_get_usage_cloud_security_posture_management.rs +++ b/examples/v1_usage-metering_get_usage_cloud_security_posture_management.rs @@ -1,11 +1,11 @@ // Get hourly usage for CSM Pro returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageCloudSecurityPostureManagementOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageCloudSecurityPostureManagementOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_cloud_security_posture_management( diff --git a/examples/v1_usage-metering_get_usage_cws.rs b/examples/v1_usage-metering_get_usage_cws.rs index ecc9fcbf9..a0c645ef2 100644 --- a/examples/v1_usage-metering_get_usage_cws.rs +++ b/examples/v1_usage-metering_get_usage_cws.rs @@ -1,11 +1,11 @@ // Get hourly usage for cloud workload security returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageCWSOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageCWSOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_cws( diff --git a/examples/v1_usage-metering_get_usage_dbm.rs b/examples/v1_usage-metering_get_usage_dbm.rs index 9145b7769..45f91dca5 100644 --- a/examples/v1_usage-metering_get_usage_dbm.rs +++ b/examples/v1_usage-metering_get_usage_dbm.rs @@ -1,11 +1,11 @@ // Get hourly usage for database monitoring returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageDBMOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageDBMOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_dbm( diff --git a/examples/v1_usage-metering_get_usage_dbm_3446806203.rs b/examples/v1_usage-metering_get_usage_dbm_3446806203.rs index e55484831..efe3e8c31 100644 --- a/examples/v1_usage-metering_get_usage_dbm_3446806203.rs +++ b/examples/v1_usage-metering_get_usage_dbm_3446806203.rs @@ -1,11 +1,11 @@ // Get hourly usage for Database Monitoring returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageDBMOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageDBMOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_dbm( diff --git a/examples/v1_usage-metering_get_usage_fargate.rs b/examples/v1_usage-metering_get_usage_fargate.rs index 3d23ed3ca..b98627b7a 100644 --- a/examples/v1_usage-metering_get_usage_fargate.rs +++ b/examples/v1_usage-metering_get_usage_fargate.rs @@ -1,11 +1,11 @@ // Get hourly usage for Fargate returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageFargateOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageFargateOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_fargate( diff --git a/examples/v1_usage-metering_get_usage_hosts.rs b/examples/v1_usage-metering_get_usage_hosts.rs index 17ad88667..20dfebafb 100644 --- a/examples/v1_usage-metering_get_usage_hosts.rs +++ b/examples/v1_usage-metering_get_usage_hosts.rs @@ -1,11 +1,11 @@ // Get hourly usage for hosts and containers returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageHostsOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageHostsOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_hosts( diff --git a/examples/v1_usage-metering_get_usage_indexed_spans.rs b/examples/v1_usage-metering_get_usage_indexed_spans.rs index 8175b43c9..4cab86609 100644 --- a/examples/v1_usage-metering_get_usage_indexed_spans.rs +++ b/examples/v1_usage-metering_get_usage_indexed_spans.rs @@ -1,11 +1,11 @@ // Get hourly usage for indexed spans returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageIndexedSpansOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageIndexedSpansOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_indexed_spans( diff --git a/examples/v1_usage-metering_get_usage_internet_of_things.rs b/examples/v1_usage-metering_get_usage_internet_of_things.rs index 70a065cae..3fcffdf90 100644 --- a/examples/v1_usage-metering_get_usage_internet_of_things.rs +++ b/examples/v1_usage-metering_get_usage_internet_of_things.rs @@ -1,11 +1,11 @@ // Get hourly usage for IoT returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageInternetOfThingsOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageInternetOfThingsOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_internet_of_things( diff --git a/examples/v1_usage-metering_get_usage_lambda.rs b/examples/v1_usage-metering_get_usage_lambda.rs index bec4e6bd2..cab9a6524 100644 --- a/examples/v1_usage-metering_get_usage_lambda.rs +++ b/examples/v1_usage-metering_get_usage_lambda.rs @@ -1,16 +1,16 @@ -// Get hourly usage for lambda returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageLambdaOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +// Get hourly usage for Lambda returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageLambdaOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_lambda( - "2021-11-11T11:11:11.111000+00:00".to_string(), - GetUsageLambdaOptionalParams::default(), + "2021-11-06T11:11:11+00:00".to_string(), + GetUsageLambdaOptionalParams::default().end_hr("2021-11-08T11:11:11+00:00".to_string()), ) .await; if let Ok(value) = resp { diff --git a/examples/v1_usage-metering_get_usage_lambda_3132428705.rs b/examples/v1_usage-metering_get_usage_lambda_3132428705.rs deleted file mode 100644 index aad0fd21d..000000000 --- a/examples/v1_usage-metering_get_usage_lambda_3132428705.rs +++ /dev/null @@ -1,21 +0,0 @@ -// Get hourly usage for Lambda returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageLambdaOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; - -#[tokio::main] -async fn main() { - let configuration = Configuration::new(); - let api = UsageMeteringAPI::with_config(configuration); - let resp = api - .get_usage_lambda( - "2021-11-06T11:11:11+00:00".to_string(), - GetUsageLambdaOptionalParams::default().end_hr("2021-11-08T11:11:11+00:00".to_string()), - ) - .await; - if let Ok(value) = resp { - println!("{:#?}", value); - } else { - println!("{:#?}", resp.unwrap_err()); - } -} diff --git a/examples/v1_usage-metering_get_usage_logs.rs b/examples/v1_usage-metering_get_usage_logs.rs index 9d0b1f912..99a44080b 100644 --- a/examples/v1_usage-metering_get_usage_logs.rs +++ b/examples/v1_usage-metering_get_usage_logs.rs @@ -1,11 +1,11 @@ // Get hourly usage for logs returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageLogsOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageLogsOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_logs( diff --git a/examples/v1_usage-metering_get_usage_logs_2562396405.rs b/examples/v1_usage-metering_get_usage_logs_2562396405.rs index 882724374..cddc7bee2 100644 --- a/examples/v1_usage-metering_get_usage_logs_2562396405.rs +++ b/examples/v1_usage-metering_get_usage_logs_2562396405.rs @@ -1,11 +1,11 @@ // Get hourly usage for Logs returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageLogsOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageLogsOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_logs( diff --git a/examples/v1_usage-metering_get_usage_logs_by_index.rs b/examples/v1_usage-metering_get_usage_logs_by_index.rs index a44d28ea0..bfd8308ae 100644 --- a/examples/v1_usage-metering_get_usage_logs_by_index.rs +++ b/examples/v1_usage-metering_get_usage_logs_by_index.rs @@ -1,11 +1,11 @@ // Get hourly usage for logs by index returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageLogsByIndexOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageLogsByIndexOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_logs_by_index( diff --git a/examples/v1_usage-metering_get_usage_logs_by_index_1025184776.rs b/examples/v1_usage-metering_get_usage_logs_by_index_1025184776.rs index 9c1fb44f3..cfcbc2dce 100644 --- a/examples/v1_usage-metering_get_usage_logs_by_index_1025184776.rs +++ b/examples/v1_usage-metering_get_usage_logs_by_index_1025184776.rs @@ -1,11 +1,11 @@ // Get hourly usage for Logs by Index returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageLogsByIndexOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageLogsByIndexOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_logs_by_index( diff --git a/examples/v1_usage-metering_get_usage_logs_by_retention.rs b/examples/v1_usage-metering_get_usage_logs_by_retention.rs index 31f42cf25..dac09c30b 100644 --- a/examples/v1_usage-metering_get_usage_logs_by_retention.rs +++ b/examples/v1_usage-metering_get_usage_logs_by_retention.rs @@ -1,11 +1,11 @@ // Get hourly logs usage by retention returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageLogsByRetentionOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageLogsByRetentionOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_logs_by_retention( diff --git a/examples/v1_usage-metering_get_usage_network_flows.rs b/examples/v1_usage-metering_get_usage_network_flows.rs index c3a74b2c4..56d6e587a 100644 --- a/examples/v1_usage-metering_get_usage_network_flows.rs +++ b/examples/v1_usage-metering_get_usage_network_flows.rs @@ -1,11 +1,11 @@ // get hourly usage for network flows returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageNetworkFlowsOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageNetworkFlowsOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_network_flows( diff --git a/examples/v1_usage-metering_get_usage_network_flows_1239422069.rs b/examples/v1_usage-metering_get_usage_network_flows_1239422069.rs index 137cb59b8..862c1982f 100644 --- a/examples/v1_usage-metering_get_usage_network_flows_1239422069.rs +++ b/examples/v1_usage-metering_get_usage_network_flows_1239422069.rs @@ -1,11 +1,11 @@ // Get hourly usage for Network Flows returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageNetworkFlowsOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageNetworkFlowsOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_network_flows( diff --git a/examples/v1_usage-metering_get_usage_network_hosts.rs b/examples/v1_usage-metering_get_usage_network_hosts.rs index 39a6a5d6d..375942d3e 100644 --- a/examples/v1_usage-metering_get_usage_network_hosts.rs +++ b/examples/v1_usage-metering_get_usage_network_hosts.rs @@ -1,11 +1,11 @@ // Get hourly usage for network hosts returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageNetworkHostsOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageNetworkHostsOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_network_hosts( diff --git a/examples/v1_usage-metering_get_usage_network_hosts_1249907835.rs b/examples/v1_usage-metering_get_usage_network_hosts_1249907835.rs index a8f0399bd..9fcb23dcc 100644 --- a/examples/v1_usage-metering_get_usage_network_hosts_1249907835.rs +++ b/examples/v1_usage-metering_get_usage_network_hosts_1249907835.rs @@ -1,11 +1,11 @@ // Get hourly usage for Network Hosts returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageNetworkHostsOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageNetworkHostsOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_network_hosts( diff --git a/examples/v1_usage-metering_get_usage_online_archive.rs b/examples/v1_usage-metering_get_usage_online_archive.rs index 226bcaa8d..4d4c63534 100644 --- a/examples/v1_usage-metering_get_usage_online_archive.rs +++ b/examples/v1_usage-metering_get_usage_online_archive.rs @@ -1,11 +1,11 @@ // Get hourly usage for online archive returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageOnlineArchiveOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageOnlineArchiveOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_online_archive( diff --git a/examples/v1_usage-metering_get_usage_online_archive_1501172903.rs b/examples/v1_usage-metering_get_usage_online_archive_1501172903.rs index b10fdc62a..1438c8061 100644 --- a/examples/v1_usage-metering_get_usage_online_archive_1501172903.rs +++ b/examples/v1_usage-metering_get_usage_online_archive_1501172903.rs @@ -1,11 +1,11 @@ // Get hourly usage for Online Archive returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageOnlineArchiveOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageOnlineArchiveOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_online_archive( diff --git a/examples/v1_usage-metering_get_usage_profiling.rs b/examples/v1_usage-metering_get_usage_profiling.rs index 0b6c6904b..91648cc7b 100644 --- a/examples/v1_usage-metering_get_usage_profiling.rs +++ b/examples/v1_usage-metering_get_usage_profiling.rs @@ -1,11 +1,11 @@ // Get hourly usage for profiled hosts returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageProfilingOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageProfilingOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_profiling( diff --git a/examples/v1_usage-metering_get_usage_rum_sessions.rs b/examples/v1_usage-metering_get_usage_rum_sessions.rs index 950ed91a3..8ceef406d 100644 --- a/examples/v1_usage-metering_get_usage_rum_sessions.rs +++ b/examples/v1_usage-metering_get_usage_rum_sessions.rs @@ -1,11 +1,11 @@ // Get hourly usage for RUM sessions returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageRumSessionsOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageRumSessionsOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_rum_sessions( diff --git a/examples/v1_usage-metering_get_usage_rum_sessions_3271366243.rs b/examples/v1_usage-metering_get_usage_rum_sessions_3271366243.rs index 4142a81c1..3ba8275c7 100644 --- a/examples/v1_usage-metering_get_usage_rum_sessions_3271366243.rs +++ b/examples/v1_usage-metering_get_usage_rum_sessions_3271366243.rs @@ -1,11 +1,11 @@ // Get mobile hourly usage for RUM Sessions returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageRumSessionsOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageRumSessionsOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_rum_sessions( diff --git a/examples/v1_usage-metering_get_usage_rum_sessions_714937291.rs b/examples/v1_usage-metering_get_usage_rum_sessions_714937291.rs index afb1d871f..50606d7ef 100644 --- a/examples/v1_usage-metering_get_usage_rum_sessions_714937291.rs +++ b/examples/v1_usage-metering_get_usage_rum_sessions_714937291.rs @@ -1,11 +1,11 @@ // Get hourly usage for RUM Sessions returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageRumSessionsOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageRumSessionsOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_rum_sessions( diff --git a/examples/v1_usage-metering_get_usage_rum_units.rs b/examples/v1_usage-metering_get_usage_rum_units.rs index bcd3e9431..39dd71cb1 100644 --- a/examples/v1_usage-metering_get_usage_rum_units.rs +++ b/examples/v1_usage-metering_get_usage_rum_units.rs @@ -1,11 +1,11 @@ // Get hourly usage for RUM units returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageRumUnitsOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageRumUnitsOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_rum_units( diff --git a/examples/v1_usage-metering_get_usage_rum_units_3959755399.rs b/examples/v1_usage-metering_get_usage_rum_units_3959755399.rs index 5cd84939c..c72a144b7 100644 --- a/examples/v1_usage-metering_get_usage_rum_units_3959755399.rs +++ b/examples/v1_usage-metering_get_usage_rum_units_3959755399.rs @@ -1,11 +1,11 @@ // Get hourly usage for RUM Units returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageRumUnitsOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageRumUnitsOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_rum_units( diff --git a/examples/v1_usage-metering_get_usage_sds.rs b/examples/v1_usage-metering_get_usage_sds.rs index df47e05b8..43de483df 100644 --- a/examples/v1_usage-metering_get_usage_sds.rs +++ b/examples/v1_usage-metering_get_usage_sds.rs @@ -1,11 +1,11 @@ // Get hourly usage for sensitive data scanner returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageSDSOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageSDSOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_sds( diff --git a/examples/v1_usage-metering_get_usage_sds_271128478.rs b/examples/v1_usage-metering_get_usage_sds_271128478.rs index 63f5346f9..e21379532 100644 --- a/examples/v1_usage-metering_get_usage_sds_271128478.rs +++ b/examples/v1_usage-metering_get_usage_sds_271128478.rs @@ -1,11 +1,11 @@ // Get hourly usage for Sensitive Data Scanner returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageSDSOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageSDSOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_sds( diff --git a/examples/v1_usage-metering_get_usage_snmp.rs b/examples/v1_usage-metering_get_usage_snmp.rs index d143a856e..dfdfaea0c 100644 --- a/examples/v1_usage-metering_get_usage_snmp.rs +++ b/examples/v1_usage-metering_get_usage_snmp.rs @@ -1,11 +1,11 @@ // Get hourly usage for SNMP devices returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageSNMPOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageSNMPOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_snmp( diff --git a/examples/v1_usage-metering_get_usage_summary.rs b/examples/v1_usage-metering_get_usage_summary.rs index 9938ca898..e6ccd818d 100644 --- a/examples/v1_usage-metering_get_usage_summary.rs +++ b/examples/v1_usage-metering_get_usage_summary.rs @@ -1,11 +1,11 @@ // Get usage across your account returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageSummaryOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageSummaryOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_summary( diff --git a/examples/v1_usage-metering_get_usage_synthetics.rs b/examples/v1_usage-metering_get_usage_synthetics.rs index 615872c64..28be42241 100644 --- a/examples/v1_usage-metering_get_usage_synthetics.rs +++ b/examples/v1_usage-metering_get_usage_synthetics.rs @@ -1,11 +1,11 @@ // Get hourly usage for synthetics checks returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageSyntheticsOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageSyntheticsOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_synthetics( diff --git a/examples/v1_usage-metering_get_usage_synthetics_api.rs b/examples/v1_usage-metering_get_usage_synthetics_api.rs index be1a2bb7e..1372d70f1 100644 --- a/examples/v1_usage-metering_get_usage_synthetics_api.rs +++ b/examples/v1_usage-metering_get_usage_synthetics_api.rs @@ -1,11 +1,11 @@ // Get hourly usage for synthetics API checks returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageSyntheticsAPIOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageSyntheticsAPIOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_synthetics_api( diff --git a/examples/v1_usage-metering_get_usage_synthetics_api_4048033529.rs b/examples/v1_usage-metering_get_usage_synthetics_api_4048033529.rs index f8cccb41c..665c1b61c 100644 --- a/examples/v1_usage-metering_get_usage_synthetics_api_4048033529.rs +++ b/examples/v1_usage-metering_get_usage_synthetics_api_4048033529.rs @@ -1,11 +1,11 @@ // Get hourly usage for Synthetics API Checks returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageSyntheticsAPIOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageSyntheticsAPIOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_synthetics_api( diff --git a/examples/v1_usage-metering_get_usage_synthetics_browser.rs b/examples/v1_usage-metering_get_usage_synthetics_browser.rs index e191749b7..d542e4d9f 100644 --- a/examples/v1_usage-metering_get_usage_synthetics_browser.rs +++ b/examples/v1_usage-metering_get_usage_synthetics_browser.rs @@ -1,11 +1,11 @@ // Get hourly usage for synthetics browser checks returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageSyntheticsBrowserOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageSyntheticsBrowserOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_synthetics_browser( diff --git a/examples/v1_usage-metering_get_usage_synthetics_browser_1704663299.rs b/examples/v1_usage-metering_get_usage_synthetics_browser_1704663299.rs index 0540deeda..72a1e678d 100644 --- a/examples/v1_usage-metering_get_usage_synthetics_browser_1704663299.rs +++ b/examples/v1_usage-metering_get_usage_synthetics_browser_1704663299.rs @@ -1,11 +1,11 @@ // Get hourly usage for Synthetics Browser Checks returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageSyntheticsBrowserOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageSyntheticsBrowserOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_synthetics_browser( diff --git a/examples/v1_usage-metering_get_usage_timeseries.rs b/examples/v1_usage-metering_get_usage_timeseries.rs index 7f8a2c570..3289d70f0 100644 --- a/examples/v1_usage-metering_get_usage_timeseries.rs +++ b/examples/v1_usage-metering_get_usage_timeseries.rs @@ -1,11 +1,11 @@ // Get hourly usage for custom metrics returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageTimeseriesOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageTimeseriesOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_timeseries( diff --git a/examples/v1_usage-metering_get_usage_top_avg_metrics.rs b/examples/v1_usage-metering_get_usage_top_avg_metrics.rs index e73378bf1..1c742031a 100644 --- a/examples/v1_usage-metering_get_usage_top_avg_metrics.rs +++ b/examples/v1_usage-metering_get_usage_top_avg_metrics.rs @@ -1,11 +1,11 @@ // Get all custom metrics by hourly average returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_usage_metering::GetUsageTopAvgMetricsOptionalParams; -use datadog_api_client::datadogV1::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_usage_metering::GetUsageTopAvgMetricsOptionalParams; +use datadog_api_client::datadogV1::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_top_avg_metrics( diff --git a/examples/v1_users_create_user.rs b/examples/v1_users_create_user.rs index 43ac8423e..d698f91f0 100644 --- a/examples/v1_users_create_user.rs +++ b/examples/v1_users_create_user.rs @@ -1,6 +1,6 @@ // Create a user returns "User created" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_users::UsersAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_users::UsersAPI; use datadog_api_client::datadogV1::model::AccessRole; use datadog_api_client::datadogV1::model::User; @@ -12,7 +12,7 @@ async fn main() { .email("test@datadoghq.com".to_string()) .handle("test@datadoghq.com".to_string()) .name("test user".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsersAPI::with_config(configuration); let resp = api.create_user(body).await; if let Ok(value) = resp { diff --git a/examples/v1_users_create_user_266604071.rs b/examples/v1_users_create_user_266604071.rs index b63522a57..3ffa62902 100644 --- a/examples/v1_users_create_user_266604071.rs +++ b/examples/v1_users_create_user_266604071.rs @@ -1,6 +1,6 @@ // Create a user returns null access role -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_users::UsersAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_users::UsersAPI; use datadog_api_client::datadogV1::model::User; #[tokio::main] @@ -11,7 +11,7 @@ async fn main() { .email("test@datadoghq.com".to_string()) .handle("test@datadoghq.com".to_string()) .name("test user".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsersAPI::with_config(configuration); let resp = api.create_user(body).await; if let Ok(value) = resp { diff --git a/examples/v1_users_disable_user.rs b/examples/v1_users_disable_user.rs index 993589e73..fa4b2f89d 100644 --- a/examples/v1_users_disable_user.rs +++ b/examples/v1_users_disable_user.rs @@ -1,10 +1,10 @@ // Disable a user returns "User disabled" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_users::UsersAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_users::UsersAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsersAPI::with_config(configuration); let resp = api.disable_user("test@datadoghq.com".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v1_users_get_user.rs b/examples/v1_users_get_user.rs index 87f0129dd..8d7c51f59 100644 --- a/examples/v1_users_get_user.rs +++ b/examples/v1_users_get_user.rs @@ -1,10 +1,10 @@ // Get user details returns "OK for get user" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_users::UsersAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_users::UsersAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsersAPI::with_config(configuration); let resp = api.get_user("test@datadoghq.com".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v1_users_list_users.rs b/examples/v1_users_list_users.rs index faa83cb27..7604df92e 100644 --- a/examples/v1_users_list_users.rs +++ b/examples/v1_users_list_users.rs @@ -1,10 +1,10 @@ // List all users returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_users::UsersAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_users::UsersAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsersAPI::with_config(configuration); let resp = api.list_users().await; if let Ok(value) = resp { diff --git a/examples/v1_users_update_user.rs b/examples/v1_users_update_user.rs index 2043dde2a..f0fb2f91c 100644 --- a/examples/v1_users_update_user.rs +++ b/examples/v1_users_update_user.rs @@ -1,6 +1,6 @@ // Update a user returns "User updated" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_users::UsersAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_users::UsersAPI; use datadog_api_client::datadogV1::model::AccessRole; use datadog_api_client::datadogV1::model::User; @@ -12,7 +12,7 @@ async fn main() { .email("test@datadoghq.com".to_string()) .handle("test@datadoghq.com".to_string()) .name("test user".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsersAPI::with_config(configuration); let resp = api .update_user("test@datadoghq.com".to_string(), body) diff --git a/examples/v1_webhooks-integration_create_webhooks_integration.rs b/examples/v1_webhooks-integration_create_webhooks_integration.rs index dcb512b11..c20efe09c 100644 --- a/examples/v1_webhooks-integration_create_webhooks_integration.rs +++ b/examples/v1_webhooks-integration_create_webhooks_integration.rs @@ -1,6 +1,6 @@ // Create a webhooks integration returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_webhooks_integration::WebhooksIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_webhooks_integration::WebhooksIntegrationAPI; use datadog_api_client::datadogV1::model::WebhooksIntegration; #[tokio::main] @@ -9,7 +9,7 @@ async fn main() { "Example-Webhooks-Integration".to_string(), "https://example.com/webhook".to_string(), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = WebhooksIntegrationAPI::with_config(configuration); let resp = api.create_webhooks_integration(body).await; if let Ok(value) = resp { diff --git a/examples/v1_webhooks-integration_create_webhooks_integration_custom_variable.rs b/examples/v1_webhooks-integration_create_webhooks_integration_custom_variable.rs index 404d17725..ae437e723 100644 --- a/examples/v1_webhooks-integration_create_webhooks_integration_custom_variable.rs +++ b/examples/v1_webhooks-integration_create_webhooks_integration_custom_variable.rs @@ -1,6 +1,6 @@ // Create a custom variable returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_webhooks_integration::WebhooksIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_webhooks_integration::WebhooksIntegrationAPI; use datadog_api_client::datadogV1::model::WebhooksIntegrationCustomVariable; #[tokio::main] @@ -10,7 +10,7 @@ async fn main() { "EXAMPLEWEBHOOKSINTEGRATION".to_string(), "CUSTOM_VARIABLE_VALUE".to_string(), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = WebhooksIntegrationAPI::with_config(configuration); let resp = api.create_webhooks_integration_custom_variable(body).await; if let Ok(value) = resp { diff --git a/examples/v1_webhooks-integration_delete_webhooks_integration.rs b/examples/v1_webhooks-integration_delete_webhooks_integration.rs index 39be12d61..318dc3038 100644 --- a/examples/v1_webhooks-integration_delete_webhooks_integration.rs +++ b/examples/v1_webhooks-integration_delete_webhooks_integration.rs @@ -1,12 +1,12 @@ // Delete a webhook returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_webhooks_integration::WebhooksIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_webhooks_integration::WebhooksIntegrationAPI; #[tokio::main] async fn main() { // there is a valid "webhook" in the system let webhook_name = std::env::var("WEBHOOK_NAME").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = WebhooksIntegrationAPI::with_config(configuration); let resp = api.delete_webhooks_integration(webhook_name.clone()).await; if let Ok(value) = resp { diff --git a/examples/v1_webhooks-integration_delete_webhooks_integration_custom_variable.rs b/examples/v1_webhooks-integration_delete_webhooks_integration_custom_variable.rs index 73ea3c579..6b78cd87a 100644 --- a/examples/v1_webhooks-integration_delete_webhooks_integration_custom_variable.rs +++ b/examples/v1_webhooks-integration_delete_webhooks_integration_custom_variable.rs @@ -1,12 +1,12 @@ // Delete a custom variable returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_webhooks_integration::WebhooksIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_webhooks_integration::WebhooksIntegrationAPI; #[tokio::main] async fn main() { // there is a valid "webhook_custom_variable" in the system let webhook_custom_variable_name = std::env::var("WEBHOOK_CUSTOM_VARIABLE_NAME").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = WebhooksIntegrationAPI::with_config(configuration); let resp = api .delete_webhooks_integration_custom_variable(webhook_custom_variable_name.clone()) diff --git a/examples/v1_webhooks-integration_get_webhooks_integration.rs b/examples/v1_webhooks-integration_get_webhooks_integration.rs index 3544fdd96..a5e0c0ce4 100644 --- a/examples/v1_webhooks-integration_get_webhooks_integration.rs +++ b/examples/v1_webhooks-integration_get_webhooks_integration.rs @@ -1,12 +1,12 @@ // Get a webhook integration returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_webhooks_integration::WebhooksIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_webhooks_integration::WebhooksIntegrationAPI; #[tokio::main] async fn main() { // there is a valid "webhook" in the system let webhook_name = std::env::var("WEBHOOK_NAME").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = WebhooksIntegrationAPI::with_config(configuration); let resp = api.get_webhooks_integration(webhook_name.clone()).await; if let Ok(value) = resp { diff --git a/examples/v1_webhooks-integration_get_webhooks_integration_custom_variable.rs b/examples/v1_webhooks-integration_get_webhooks_integration_custom_variable.rs index d33720952..23f5aaad4 100644 --- a/examples/v1_webhooks-integration_get_webhooks_integration_custom_variable.rs +++ b/examples/v1_webhooks-integration_get_webhooks_integration_custom_variable.rs @@ -1,10 +1,10 @@ // Get a custom variable returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_webhooks_integration::WebhooksIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_webhooks_integration::WebhooksIntegrationAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = WebhooksIntegrationAPI::with_config(configuration); let resp = api .get_webhooks_integration_custom_variable("custom_variable_name".to_string()) diff --git a/examples/v1_webhooks-integration_update_webhooks_integration.rs b/examples/v1_webhooks-integration_update_webhooks_integration.rs index fd593e1c9..2166c24af 100644 --- a/examples/v1_webhooks-integration_update_webhooks_integration.rs +++ b/examples/v1_webhooks-integration_update_webhooks_integration.rs @@ -1,6 +1,6 @@ // Update a webhook returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_webhooks_integration::WebhooksIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_webhooks_integration::WebhooksIntegrationAPI; use datadog_api_client::datadogV1::model::WebhooksIntegrationUpdateRequest; #[tokio::main] @@ -9,7 +9,7 @@ async fn main() { let webhook_name = std::env::var("WEBHOOK_NAME").unwrap(); let body = WebhooksIntegrationUpdateRequest::new() .url("https://example.com/webhook-updated".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = WebhooksIntegrationAPI::with_config(configuration); let resp = api .update_webhooks_integration(webhook_name.clone(), body) diff --git a/examples/v1_webhooks-integration_update_webhooks_integration_custom_variable.rs b/examples/v1_webhooks-integration_update_webhooks_integration_custom_variable.rs index ef7d3f934..9209ca3d4 100644 --- a/examples/v1_webhooks-integration_update_webhooks_integration_custom_variable.rs +++ b/examples/v1_webhooks-integration_update_webhooks_integration_custom_variable.rs @@ -1,6 +1,6 @@ // Update a custom variable returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV1::api::api_webhooks_integration::WebhooksIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_webhooks_integration::WebhooksIntegrationAPI; use datadog_api_client::datadogV1::model::WebhooksIntegrationCustomVariableUpdateRequest; #[tokio::main] @@ -9,7 +9,7 @@ async fn main() { let webhook_custom_variable_name = std::env::var("WEBHOOK_CUSTOM_VARIABLE_NAME").unwrap(); let body = WebhooksIntegrationCustomVariableUpdateRequest::new().value("variable-updated".to_string()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = WebhooksIntegrationAPI::with_config(configuration); let resp = api .update_webhooks_integration_custom_variable(webhook_custom_variable_name.clone(), body) diff --git a/examples/v2_api-management_create_open_api.rs b/examples/v2_api-management_create_open_api.rs new file mode 100644 index 000000000..dbc077e82 --- /dev/null +++ b/examples/v2_api-management_create_open_api.rs @@ -0,0 +1,23 @@ +// Create a new API returns "API created successfully" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_api_management::APIManagementAPI; +use datadog_api_client::datadogV2::api_api_management::CreateOpenAPIOptionalParams; +use std::fs; + +#[tokio::main] +async fn main() { + let mut configuration = datadog::Configuration::new(); + configuration.set_unstable_operation_enabled("v2.CreateOpenAPI", true); + let api = APIManagementAPI::with_config(configuration); + let resp = api + .create_open_api( + CreateOpenAPIOptionalParams::default() + .openapi_spec_file(fs::read("openapi-spec.yaml").unwrap()), + ) + .await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_api-management_delete_open_api.rs b/examples/v2_api-management_delete_open_api.rs new file mode 100644 index 000000000..0e5c8d486 --- /dev/null +++ b/examples/v2_api-management_delete_open_api.rs @@ -0,0 +1,18 @@ +// Delete an API returns "API deleted successfully" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_api_management::APIManagementAPI; + +#[tokio::main] +async fn main() { + // there is a valid "managed_api" in the system + let managed_api_data_id = std::env::var("MANAGED_API_DATA_ID").unwrap(); + let mut configuration = datadog::Configuration::new(); + configuration.set_unstable_operation_enabled("v2.DeleteOpenAPI", true); + let api = APIManagementAPI::with_config(configuration); + let resp = api.delete_open_api(managed_api_data_id.clone()).await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_api-management_get_open_api.rs b/examples/v2_api-management_get_open_api.rs new file mode 100644 index 000000000..aed0646af --- /dev/null +++ b/examples/v2_api-management_get_open_api.rs @@ -0,0 +1,18 @@ +// Get an API returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_api_management::APIManagementAPI; + +#[tokio::main] +async fn main() { + // there is a valid "managed_api" in the system + let managed_api_data_id = std::env::var("MANAGED_API_DATA_ID").unwrap(); + let mut configuration = datadog::Configuration::new(); + configuration.set_unstable_operation_enabled("v2.GetOpenAPI", true); + let api = APIManagementAPI::with_config(configuration); + let resp = api.get_open_api(managed_api_data_id.clone()).await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_api-management_update_open_api.rs b/examples/v2_api-management_update_open_api.rs new file mode 100644 index 000000000..cb63e10c3 --- /dev/null +++ b/examples/v2_api-management_update_open_api.rs @@ -0,0 +1,26 @@ +// Update an API returns "API updated successfully" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_api_management::APIManagementAPI; +use datadog_api_client::datadogV2::api_api_management::UpdateOpenAPIOptionalParams; +use std::fs; + +#[tokio::main] +async fn main() { + // there is a valid "managed_api" in the system + let managed_api_data_id = std::env::var("MANAGED_API_DATA_ID").unwrap(); + let mut configuration = datadog::Configuration::new(); + configuration.set_unstable_operation_enabled("v2.UpdateOpenAPI", true); + let api = APIManagementAPI::with_config(configuration); + let resp = api + .update_open_api( + managed_api_data_id.clone(), + UpdateOpenAPIOptionalParams::default() + .openapi_spec_file(fs::read("openapi-spec.yaml").unwrap()), + ) + .await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_apm-retention-filters_create_apm_retention_filter.rs b/examples/v2_apm-retention-filters_create_apm_retention_filter.rs index d6c413ad0..176bd400e 100644 --- a/examples/v2_apm-retention-filters_create_apm_retention_filter.rs +++ b/examples/v2_apm-retention-filters_create_apm_retention_filter.rs @@ -1,6 +1,6 @@ // Create a retention filter returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_apm_retention_filters::APMRetentionFiltersAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_apm_retention_filters::APMRetentionFiltersAPI; use datadog_api_client::datadogV2::model::ApmRetentionFilterType; use datadog_api_client::datadogV2::model::RetentionFilterCreateAttributes; use datadog_api_client::datadogV2::model::RetentionFilterCreateData; @@ -20,7 +20,7 @@ async fn main() { ), ApmRetentionFilterType::apm_retention_filter, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = APMRetentionFiltersAPI::with_config(configuration); let resp = api.create_apm_retention_filter(body).await; if let Ok(value) = resp { diff --git a/examples/v2_apm-retention-filters_delete_apm_retention_filter.rs b/examples/v2_apm-retention-filters_delete_apm_retention_filter.rs index 085a39ac6..ef5b44976 100644 --- a/examples/v2_apm-retention-filters_delete_apm_retention_filter.rs +++ b/examples/v2_apm-retention-filters_delete_apm_retention_filter.rs @@ -1,12 +1,12 @@ // Delete a retention filter returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_apm_retention_filters::APMRetentionFiltersAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_apm_retention_filters::APMRetentionFiltersAPI; #[tokio::main] async fn main() { // there is a valid "retention_filter" in the system let retention_filter_data_id = std::env::var("RETENTION_FILTER_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = APMRetentionFiltersAPI::with_config(configuration); let resp = api .delete_apm_retention_filter(retention_filter_data_id.clone()) diff --git a/examples/v2_apm-retention-filters_get_apm_retention_filter.rs b/examples/v2_apm-retention-filters_get_apm_retention_filter.rs index 705f9c232..79f7ef13e 100644 --- a/examples/v2_apm-retention-filters_get_apm_retention_filter.rs +++ b/examples/v2_apm-retention-filters_get_apm_retention_filter.rs @@ -1,12 +1,12 @@ // Get a given APM retention filter returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_apm_retention_filters::APMRetentionFiltersAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_apm_retention_filters::APMRetentionFiltersAPI; #[tokio::main] async fn main() { // there is a valid "retention_filter" in the system let retention_filter_data_id = std::env::var("RETENTION_FILTER_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = APMRetentionFiltersAPI::with_config(configuration); let resp = api .get_apm_retention_filter(retention_filter_data_id.clone()) diff --git a/examples/v2_apm-retention-filters_list_apm_retention_filters.rs b/examples/v2_apm-retention-filters_list_apm_retention_filters.rs index 2d62ef07a..5003a1e29 100644 --- a/examples/v2_apm-retention-filters_list_apm_retention_filters.rs +++ b/examples/v2_apm-retention-filters_list_apm_retention_filters.rs @@ -1,10 +1,10 @@ // List all APM retention filters returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_apm_retention_filters::APMRetentionFiltersAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_apm_retention_filters::APMRetentionFiltersAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = APMRetentionFiltersAPI::with_config(configuration); let resp = api.list_apm_retention_filters().await; if let Ok(value) = resp { diff --git a/examples/v2_apm-retention-filters_reorder_apm_retention_filters.rs b/examples/v2_apm-retention-filters_reorder_apm_retention_filters.rs index f1bdcfad1..893c017ec 100644 --- a/examples/v2_apm-retention-filters_reorder_apm_retention_filters.rs +++ b/examples/v2_apm-retention-filters_reorder_apm_retention_filters.rs @@ -1,6 +1,6 @@ // Re-order retention filters returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_apm_retention_filters::APMRetentionFiltersAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_apm_retention_filters::APMRetentionFiltersAPI; use datadog_api_client::datadogV2::model::ApmRetentionFilterType; use datadog_api_client::datadogV2::model::ReorderRetentionFiltersRequest; use datadog_api_client::datadogV2::model::RetentionFilterWithoutAttributes; @@ -17,7 +17,7 @@ async fn main() { ApmRetentionFilterType::apm_retention_filter, ), ]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = APMRetentionFiltersAPI::with_config(configuration); let resp = api.reorder_apm_retention_filters(body).await; if let Ok(value) = resp { diff --git a/examples/v2_apm-retention-filters_update_apm_retention_filter.rs b/examples/v2_apm-retention-filters_update_apm_retention_filter.rs index b3426c67f..3489f1393 100644 --- a/examples/v2_apm-retention-filters_update_apm_retention_filter.rs +++ b/examples/v2_apm-retention-filters_update_apm_retention_filter.rs @@ -1,6 +1,6 @@ // Update a retention filter returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_apm_retention_filters::APMRetentionFiltersAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_apm_retention_filters::APMRetentionFiltersAPI; use datadog_api_client::datadogV2::model::ApmRetentionFilterType; use datadog_api_client::datadogV2::model::RetentionFilterCreateAttributes; use datadog_api_client::datadogV2::model::RetentionFilterType; @@ -23,7 +23,7 @@ async fn main() { "test-id".to_string(), ApmRetentionFilterType::apm_retention_filter, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = APMRetentionFiltersAPI::with_config(configuration); let resp = api .update_apm_retention_filter(retention_filter_data_id.clone(), body) diff --git a/examples/v2_audit_list_audit_logs.rs b/examples/v2_audit_list_audit_logs.rs index 25af669fb..f5d06fbab 100644 --- a/examples/v2_audit_list_audit_logs.rs +++ b/examples/v2_audit_list_audit_logs.rs @@ -1,11 +1,11 @@ // Get a list of Audit Logs events returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_audit::AuditAPI; -use datadog_api_client::datadogV2::api::api_audit::ListAuditLogsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_audit::AuditAPI; +use datadog_api_client::datadogV2::api_audit::ListAuditLogsOptionalParams; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AuditAPI::with_config(configuration); let resp = api .list_audit_logs(ListAuditLogsOptionalParams::default()) diff --git a/examples/v2_audit_list_audit_logs_1275402458.rs b/examples/v2_audit_list_audit_logs_1275402458.rs index 9842de968..2a5465cb3 100644 --- a/examples/v2_audit_list_audit_logs_1275402458.rs +++ b/examples/v2_audit_list_audit_logs_1275402458.rs @@ -1,13 +1,13 @@ // Get a list of Audit Logs events returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_audit::AuditAPI; -use datadog_api_client::datadogV2::api::api_audit::ListAuditLogsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_audit::AuditAPI; +use datadog_api_client::datadogV2::api_audit::ListAuditLogsOptionalParams; use futures_util::pin_mut; use futures_util::stream::StreamExt; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AuditAPI::with_config(configuration); let response = api.list_audit_logs_with_pagination(ListAuditLogsOptionalParams::default().page_limit(2)); diff --git a/examples/v2_audit_search_audit_logs.rs b/examples/v2_audit_search_audit_logs.rs index e10204fa0..c003289fc 100644 --- a/examples/v2_audit_search_audit_logs.rs +++ b/examples/v2_audit_search_audit_logs.rs @@ -1,7 +1,7 @@ // Search Audit Logs events returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_audit::AuditAPI; -use datadog_api_client::datadogV2::api::api_audit::SearchAuditLogsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_audit::AuditAPI; +use datadog_api_client::datadogV2::api_audit::SearchAuditLogsOptionalParams; use datadog_api_client::datadogV2::model::AuditLogsQueryFilter; use datadog_api_client::datadogV2::model::AuditLogsQueryOptions; use datadog_api_client::datadogV2::model::AuditLogsQueryPageOptions; @@ -24,7 +24,7 @@ async fn main() { ) .page(AuditLogsQueryPageOptions::new().limit(25)) .sort(AuditLogsSort::TIMESTAMP_ASCENDING); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AuditAPI::with_config(configuration); let resp = api .search_audit_logs(SearchAuditLogsOptionalParams::default().body(body)) diff --git a/examples/v2_audit_search_audit_logs_3215529662.rs b/examples/v2_audit_search_audit_logs_3215529662.rs index d429e7cc4..6c6e509b0 100644 --- a/examples/v2_audit_search_audit_logs_3215529662.rs +++ b/examples/v2_audit_search_audit_logs_3215529662.rs @@ -1,7 +1,7 @@ // Search Audit Logs events returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_audit::AuditAPI; -use datadog_api_client::datadogV2::api::api_audit::SearchAuditLogsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_audit::AuditAPI; +use datadog_api_client::datadogV2::api_audit::SearchAuditLogsOptionalParams; use datadog_api_client::datadogV2::model::AuditLogsQueryFilter; use datadog_api_client::datadogV2::model::AuditLogsQueryOptions; use datadog_api_client::datadogV2::model::AuditLogsQueryPageOptions; @@ -21,7 +21,7 @@ async fn main() { .options(AuditLogsQueryOptions::new().timezone("GMT".to_string())) .page(AuditLogsQueryPageOptions::new().limit(2)) .sort(AuditLogsSort::TIMESTAMP_ASCENDING); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AuditAPI::with_config(configuration); let response = api.search_audit_logs_with_pagination(SearchAuditLogsOptionalParams::default().body(body)); diff --git a/examples/v2_authn-mappings_create_authn_mapping.rs b/examples/v2_authn-mappings_create_authn_mapping.rs index 4e706de66..add303926 100644 --- a/examples/v2_authn-mappings_create_authn_mapping.rs +++ b/examples/v2_authn-mappings_create_authn_mapping.rs @@ -1,10 +1,11 @@ // Create an AuthN Mapping returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_authn_mappings::AuthNMappingsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_authn_mappings::AuthNMappingsAPI; use datadog_api_client::datadogV2::model::AuthNMappingCreateAttributes; use datadog_api_client::datadogV2::model::AuthNMappingCreateData; use datadog_api_client::datadogV2::model::AuthNMappingCreateRelationships; use datadog_api_client::datadogV2::model::AuthNMappingCreateRequest; +use datadog_api_client::datadogV2::model::AuthNMappingRelationshipToRole; use datadog_api_client::datadogV2::model::AuthNMappingsType; use datadog_api_client::datadogV2::model::RelationshipToRole; use datadog_api_client::datadogV2::model::RelationshipToRoleData; @@ -22,16 +23,18 @@ async fn main() { .attribute_value("Example-AuthN-Mapping".to_string()), ) .relationships( - AuthNMappingCreateRelationships::new().role( - RelationshipToRole::new().data( - RelationshipToRoleData::new() - .id(role_data_id.clone()) - .type_(RolesType::ROLES), + AuthNMappingCreateRelationships::AuthNMappingRelationshipToRole(Box::new( + AuthNMappingRelationshipToRole::new( + RelationshipToRole::new().data( + RelationshipToRoleData::new() + .id(role_data_id.clone()) + .type_(RolesType::ROLES), + ), ), - ), + )), ), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AuthNMappingsAPI::with_config(configuration); let resp = api.create_authn_mapping(body).await; if let Ok(value) = resp { diff --git a/examples/v2_authn-mappings_delete_authn_mapping.rs b/examples/v2_authn-mappings_delete_authn_mapping.rs index 55e8385a0..42c497781 100644 --- a/examples/v2_authn-mappings_delete_authn_mapping.rs +++ b/examples/v2_authn-mappings_delete_authn_mapping.rs @@ -1,12 +1,12 @@ // Delete an AuthN Mapping returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_authn_mappings::AuthNMappingsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_authn_mappings::AuthNMappingsAPI; #[tokio::main] async fn main() { // there is a valid "authn_mapping" in the system let authn_mapping_data_id = std::env::var("AUTHN_MAPPING_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AuthNMappingsAPI::with_config(configuration); let resp = api .delete_authn_mapping(authn_mapping_data_id.clone()) diff --git a/examples/v2_authn-mappings_get_authn_mapping.rs b/examples/v2_authn-mappings_get_authn_mapping.rs index 3a4df6841..53f4850e3 100644 --- a/examples/v2_authn-mappings_get_authn_mapping.rs +++ b/examples/v2_authn-mappings_get_authn_mapping.rs @@ -1,12 +1,12 @@ // Get an AuthN Mapping by UUID returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_authn_mappings::AuthNMappingsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_authn_mappings::AuthNMappingsAPI; #[tokio::main] async fn main() { // there is a valid "authn_mapping" in the system let authn_mapping_data_id = std::env::var("AUTHN_MAPPING_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AuthNMappingsAPI::with_config(configuration); let resp = api.get_authn_mapping(authn_mapping_data_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v2_authn-mappings_list_authn_mappings.rs b/examples/v2_authn-mappings_list_authn_mappings.rs index 5053897a3..459daa158 100644 --- a/examples/v2_authn-mappings_list_authn_mappings.rs +++ b/examples/v2_authn-mappings_list_authn_mappings.rs @@ -1,11 +1,11 @@ // List all AuthN Mappings returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_authn_mappings::AuthNMappingsAPI; -use datadog_api_client::datadogV2::api::api_authn_mappings::ListAuthNMappingsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_authn_mappings::AuthNMappingsAPI; +use datadog_api_client::datadogV2::api_authn_mappings::ListAuthNMappingsOptionalParams; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AuthNMappingsAPI::with_config(configuration); let resp = api .list_authn_mappings(ListAuthNMappingsOptionalParams::default()) diff --git a/examples/v2_authn-mappings_update_authn_mapping.rs b/examples/v2_authn-mappings_update_authn_mapping.rs index 07d297ba2..d5951b584 100644 --- a/examples/v2_authn-mappings_update_authn_mapping.rs +++ b/examples/v2_authn-mappings_update_authn_mapping.rs @@ -1,6 +1,7 @@ // Edit an AuthN Mapping returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_authn_mappings::AuthNMappingsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_authn_mappings::AuthNMappingsAPI; +use datadog_api_client::datadogV2::model::AuthNMappingRelationshipToRole; use datadog_api_client::datadogV2::model::AuthNMappingUpdateAttributes; use datadog_api_client::datadogV2::model::AuthNMappingUpdateData; use datadog_api_client::datadogV2::model::AuthNMappingUpdateRelationships; @@ -28,16 +29,18 @@ async fn main() { .attribute_value("Development".to_string()), ) .relationships( - AuthNMappingUpdateRelationships::new().role( - RelationshipToRole::new().data( - RelationshipToRoleData::new() - .id(role_data_id.clone()) - .type_(RolesType::ROLES), + AuthNMappingUpdateRelationships::AuthNMappingRelationshipToRole(Box::new( + AuthNMappingRelationshipToRole::new( + RelationshipToRole::new().data( + RelationshipToRoleData::new() + .id(role_data_id.clone()) + .type_(RolesType::ROLES), + ), ), - ), + )), ), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = AuthNMappingsAPI::with_config(configuration); let resp = api .update_authn_mapping(authn_mapping_data_id.clone(), body) diff --git a/examples/v2_case-management_archive_case.rs b/examples/v2_case-management_archive_case.rs new file mode 100644 index 000000000..7c7dde0b9 --- /dev/null +++ b/examples/v2_case-management_archive_case.rs @@ -0,0 +1,21 @@ +// Archive case returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_case_management::CaseManagementAPI; +use datadog_api_client::datadogV2::model::CaseEmpty; +use datadog_api_client::datadogV2::model::CaseEmptyRequest; +use datadog_api_client::datadogV2::model::CaseResourceType; + +#[tokio::main] +async fn main() { + // there is a valid "case" in the system + let case_id = std::env::var("CASE_ID").unwrap(); + let body = CaseEmptyRequest::new(CaseEmpty::new(CaseResourceType::CASE)); + let configuration = datadog::Configuration::new(); + let api = CaseManagementAPI::with_config(configuration); + let resp = api.archive_case(case_id.clone(), body).await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_case-management_assign_case.rs b/examples/v2_case-management_assign_case.rs new file mode 100644 index 000000000..e978f2177 --- /dev/null +++ b/examples/v2_case-management_assign_case.rs @@ -0,0 +1,28 @@ +// Assign case returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_case_management::CaseManagementAPI; +use datadog_api_client::datadogV2::model::CaseAssign; +use datadog_api_client::datadogV2::model::CaseAssignAttributes; +use datadog_api_client::datadogV2::model::CaseAssignRequest; +use datadog_api_client::datadogV2::model::CaseResourceType; + +#[tokio::main] +async fn main() { + // there is a valid "case" in the system + let case_id = std::env::var("CASE_ID").unwrap(); + + // there is a valid "user" in the system + let user_data_id = std::env::var("USER_DATA_ID").unwrap(); + let body = CaseAssignRequest::new(CaseAssign::new( + CaseAssignAttributes::new(user_data_id.clone()), + CaseResourceType::CASE, + )); + let configuration = datadog::Configuration::new(); + let api = CaseManagementAPI::with_config(configuration); + let resp = api.assign_case(case_id.clone(), body).await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_case-management_create_case.rs b/examples/v2_case-management_create_case.rs new file mode 100644 index 000000000..073f6853b --- /dev/null +++ b/examples/v2_case-management_create_case.rs @@ -0,0 +1,49 @@ +// Create a case returns "CREATED" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_case_management::CaseManagementAPI; +use datadog_api_client::datadogV2::model::CaseCreate; +use datadog_api_client::datadogV2::model::CaseCreateAttributes; +use datadog_api_client::datadogV2::model::CaseCreateRelationships; +use datadog_api_client::datadogV2::model::CaseCreateRequest; +use datadog_api_client::datadogV2::model::CasePriority; +use datadog_api_client::datadogV2::model::CaseResourceType; +use datadog_api_client::datadogV2::model::CaseType; +use datadog_api_client::datadogV2::model::NullableUserRelationship; +use datadog_api_client::datadogV2::model::NullableUserRelationshipData; +use datadog_api_client::datadogV2::model::ProjectRelationship; +use datadog_api_client::datadogV2::model::ProjectRelationshipData; +use datadog_api_client::datadogV2::model::ProjectResourceType; +use datadog_api_client::datadogV2::model::UserResourceType; + +#[tokio::main] +async fn main() { + // there is a valid "user" in the system + let user_data_id = std::env::var("USER_DATA_ID").unwrap(); + let body = CaseCreateRequest::new( + CaseCreate::new( + CaseCreateAttributes::new( + "Security breach investigation in 0cfbc5cbc676ee71".to_string(), + CaseType::STANDARD, + ) + .priority(CasePriority::NOT_DEFINED), + CaseResourceType::CASE, + ) + .relationships( + CaseCreateRelationships::new(ProjectRelationship::new(ProjectRelationshipData::new( + "d4bbe1af-f36e-42f1-87c1-493ca35c320e".to_string(), + ProjectResourceType::PROJECT, + ))) + .assignee(Some(NullableUserRelationship::new(Some( + NullableUserRelationshipData::new(user_data_id.clone(), UserResourceType::USER), + )))), + ), + ); + let configuration = datadog::Configuration::new(); + let api = CaseManagementAPI::with_config(configuration); + let resp = api.create_case(body).await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_case-management_create_project.rs b/examples/v2_case-management_create_project.rs new file mode 100644 index 000000000..91a594471 --- /dev/null +++ b/examples/v2_case-management_create_project.rs @@ -0,0 +1,23 @@ +// Create a project returns "CREATED" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_case_management::CaseManagementAPI; +use datadog_api_client::datadogV2::model::ProjectCreate; +use datadog_api_client::datadogV2::model::ProjectCreateAttributes; +use datadog_api_client::datadogV2::model::ProjectCreateRequest; +use datadog_api_client::datadogV2::model::ProjectResourceType; + +#[tokio::main] +async fn main() { + let body = ProjectCreateRequest::new(ProjectCreate::new( + ProjectCreateAttributes::new("SEC".to_string(), "Security Investigation".to_string()), + ProjectResourceType::PROJECT, + )); + let configuration = datadog::Configuration::new(); + let api = CaseManagementAPI::with_config(configuration); + let resp = api.create_project(body).await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_case-management_delete_project.rs b/examples/v2_case-management_delete_project.rs new file mode 100644 index 000000000..a013e1447 --- /dev/null +++ b/examples/v2_case-management_delete_project.rs @@ -0,0 +1,15 @@ +// Remove a project returns "No Content" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_case_management::CaseManagementAPI; + +#[tokio::main] +async fn main() { + let configuration = datadog::Configuration::new(); + let api = CaseManagementAPI::with_config(configuration); + let resp = api.delete_project("project_id".to_string()).await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_case-management_get_case.rs b/examples/v2_case-management_get_case.rs new file mode 100644 index 000000000..4da9caefb --- /dev/null +++ b/examples/v2_case-management_get_case.rs @@ -0,0 +1,17 @@ +// Get the details of a case returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_case_management::CaseManagementAPI; + +#[tokio::main] +async fn main() { + // there is a valid "case" in the system + let case_id = std::env::var("CASE_ID").unwrap(); + let configuration = datadog::Configuration::new(); + let api = CaseManagementAPI::with_config(configuration); + let resp = api.get_case(case_id.clone()).await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_case-management_get_project.rs b/examples/v2_case-management_get_project.rs new file mode 100644 index 000000000..abf671a60 --- /dev/null +++ b/examples/v2_case-management_get_project.rs @@ -0,0 +1,15 @@ +// Get the details of a project returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_case_management::CaseManagementAPI; + +#[tokio::main] +async fn main() { + let configuration = datadog::Configuration::new(); + let api = CaseManagementAPI::with_config(configuration); + let resp = api.get_project("project_id".to_string()).await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_case-management_get_projects.rs b/examples/v2_case-management_get_projects.rs new file mode 100644 index 000000000..9cf64333c --- /dev/null +++ b/examples/v2_case-management_get_projects.rs @@ -0,0 +1,15 @@ +// Get all projects returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_case_management::CaseManagementAPI; + +#[tokio::main] +async fn main() { + let configuration = datadog::Configuration::new(); + let api = CaseManagementAPI::with_config(configuration); + let resp = api.get_projects().await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_case-management_search_cases.rs b/examples/v2_case-management_search_cases.rs new file mode 100644 index 000000000..9f0986c2a --- /dev/null +++ b/examples/v2_case-management_search_cases.rs @@ -0,0 +1,16 @@ +// Search cases returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_case_management::CaseManagementAPI; +use datadog_api_client::datadogV2::api_case_management::SearchCasesOptionalParams; + +#[tokio::main] +async fn main() { + let configuration = datadog::Configuration::new(); + let api = CaseManagementAPI::with_config(configuration); + let resp = api.search_cases(SearchCasesOptionalParams::default()).await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_case-management_search_cases_3433960044.rs b/examples/v2_case-management_search_cases_3433960044.rs new file mode 100644 index 000000000..298771abc --- /dev/null +++ b/examples/v2_case-management_search_cases_3433960044.rs @@ -0,0 +1,21 @@ +// Search cases returns "OK" response with pagination +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_case_management::CaseManagementAPI; +use datadog_api_client::datadogV2::api_case_management::SearchCasesOptionalParams; +use futures_util::pin_mut; +use futures_util::stream::StreamExt; + +#[tokio::main] +async fn main() { + let configuration = datadog::Configuration::new(); + let api = CaseManagementAPI::with_config(configuration); + let response = api.search_cases_with_pagination(SearchCasesOptionalParams::default()); + pin_mut!(response); + while let Some(resp) = response.next().await { + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } + } +} diff --git a/examples/v2_case-management_unarchive_case.rs b/examples/v2_case-management_unarchive_case.rs new file mode 100644 index 000000000..623887410 --- /dev/null +++ b/examples/v2_case-management_unarchive_case.rs @@ -0,0 +1,21 @@ +// Unarchive case returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_case_management::CaseManagementAPI; +use datadog_api_client::datadogV2::model::CaseEmpty; +use datadog_api_client::datadogV2::model::CaseEmptyRequest; +use datadog_api_client::datadogV2::model::CaseResourceType; + +#[tokio::main] +async fn main() { + // there is a valid "case" in the system + let case_id = std::env::var("CASE_ID").unwrap(); + let body = CaseEmptyRequest::new(CaseEmpty::new(CaseResourceType::CASE)); + let configuration = datadog::Configuration::new(); + let api = CaseManagementAPI::with_config(configuration); + let resp = api.unarchive_case(case_id.clone(), body).await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_case-management_unassign_case.rs b/examples/v2_case-management_unassign_case.rs new file mode 100644 index 000000000..b5b5b74ae --- /dev/null +++ b/examples/v2_case-management_unassign_case.rs @@ -0,0 +1,21 @@ +// Unassign case returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_case_management::CaseManagementAPI; +use datadog_api_client::datadogV2::model::CaseEmpty; +use datadog_api_client::datadogV2::model::CaseEmptyRequest; +use datadog_api_client::datadogV2::model::CaseResourceType; + +#[tokio::main] +async fn main() { + // there is a valid "case" in the system + let case_id = std::env::var("CASE_ID").unwrap(); + let body = CaseEmptyRequest::new(CaseEmpty::new(CaseResourceType::CASE)); + let configuration = datadog::Configuration::new(); + let api = CaseManagementAPI::with_config(configuration); + let resp = api.unassign_case(case_id.clone(), body).await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_case-management_update_priority.rs b/examples/v2_case-management_update_priority.rs new file mode 100644 index 000000000..1e0e33b14 --- /dev/null +++ b/examples/v2_case-management_update_priority.rs @@ -0,0 +1,26 @@ +// Update case priority returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_case_management::CaseManagementAPI; +use datadog_api_client::datadogV2::model::CasePriority; +use datadog_api_client::datadogV2::model::CaseResourceType; +use datadog_api_client::datadogV2::model::CaseUpdatePriority; +use datadog_api_client::datadogV2::model::CaseUpdatePriorityAttributes; +use datadog_api_client::datadogV2::model::CaseUpdatePriorityRequest; + +#[tokio::main] +async fn main() { + // there is a valid "case" in the system + let case_id = std::env::var("CASE_ID").unwrap(); + let body = CaseUpdatePriorityRequest::new(CaseUpdatePriority::new( + CaseUpdatePriorityAttributes::new(CasePriority::P3), + CaseResourceType::CASE, + )); + let configuration = datadog::Configuration::new(); + let api = CaseManagementAPI::with_config(configuration); + let resp = api.update_priority(case_id.clone(), body).await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_case-management_update_status.rs b/examples/v2_case-management_update_status.rs new file mode 100644 index 000000000..d5d8ef9cc --- /dev/null +++ b/examples/v2_case-management_update_status.rs @@ -0,0 +1,26 @@ +// Update case status returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_case_management::CaseManagementAPI; +use datadog_api_client::datadogV2::model::CaseResourceType; +use datadog_api_client::datadogV2::model::CaseStatus; +use datadog_api_client::datadogV2::model::CaseUpdateStatus; +use datadog_api_client::datadogV2::model::CaseUpdateStatusAttributes; +use datadog_api_client::datadogV2::model::CaseUpdateStatusRequest; + +#[tokio::main] +async fn main() { + // there is a valid "case" in the system + let case_id = std::env::var("CASE_ID").unwrap(); + let body = CaseUpdateStatusRequest::new(CaseUpdateStatus::new( + CaseUpdateStatusAttributes::new(CaseStatus::IN_PROGRESS), + CaseResourceType::CASE, + )); + let configuration = datadog::Configuration::new(); + let api = CaseManagementAPI::with_config(configuration); + let resp = api.update_status(case_id.clone(), body).await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_ci-visibility-pipelines_aggregate_ci_app_pipeline_events.rs b/examples/v2_ci-visibility-pipelines_aggregate_ci_app_pipeline_events.rs index ae62217dd..b9f983a1f 100644 --- a/examples/v2_ci-visibility-pipelines_aggregate_ci_app_pipeline_events.rs +++ b/examples/v2_ci-visibility-pipelines_aggregate_ci_app_pipeline_events.rs @@ -1,6 +1,6 @@ // Aggregate pipelines events returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_ci_visibility_pipelines::CIVisibilityPipelinesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_ci_visibility_pipelines::CIVisibilityPipelinesAPI; use datadog_api_client::datadogV2::model::CIAppAggregationFunction; use datadog_api_client::datadogV2::model::CIAppCompute; use datadog_api_client::datadogV2::model::CIAppComputeType; @@ -28,7 +28,7 @@ async fn main() { .limit(10) .total(CIAppGroupByTotal::CIAppGroupByTotalBoolean(false))]) .options(CIAppQueryOptions::new().timezone("GMT".to_string())); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CIVisibilityPipelinesAPI::with_config(configuration); let resp = api.aggregate_ci_app_pipeline_events(body).await; if let Ok(value) = resp { diff --git a/examples/v2_ci-visibility-pipelines_create_ci_app_pipeline_event.rs b/examples/v2_ci-visibility-pipelines_create_ci_app_pipeline_event.rs index 95df3d208..f4d4563f3 100644 --- a/examples/v2_ci-visibility-pipelines_create_ci_app_pipeline_event.rs +++ b/examples/v2_ci-visibility-pipelines_create_ci_app_pipeline_event.rs @@ -1,6 +1,6 @@ // Send pipeline event returns "Request accepted for processing" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_ci_visibility_pipelines::CIVisibilityPipelinesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_ci_visibility_pipelines::CIVisibilityPipelinesAPI; use datadog_api_client::datadogV2::model::CIAppCreatePipelineEventRequest; use datadog_api_client::datadogV2::model::CIAppCreatePipelineEventRequestAttributes; use datadog_api_client::datadogV2::model::CIAppCreatePipelineEventRequestAttributesResource; @@ -39,7 +39,7 @@ async fn main() { )) .type_(CIAppCreatePipelineEventRequestDataType::CIPIPELINE_RESOURCE_REQUEST), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CIVisibilityPipelinesAPI::with_config(configuration); let resp = api.create_ci_app_pipeline_event(body).await; if let Ok(value) = resp { diff --git a/examples/v2_ci-visibility-pipelines_create_ci_app_pipeline_event_129899466.rs b/examples/v2_ci-visibility-pipelines_create_ci_app_pipeline_event_129899466.rs index b7bfbc961..70b7144df 100644 --- a/examples/v2_ci-visibility-pipelines_create_ci_app_pipeline_event_129899466.rs +++ b/examples/v2_ci-visibility-pipelines_create_ci_app_pipeline_event_129899466.rs @@ -1,6 +1,6 @@ // Send pipeline job event returns "Request accepted for processing" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_ci_visibility_pipelines::CIVisibilityPipelinesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_ci_visibility_pipelines::CIVisibilityPipelinesAPI; use datadog_api_client::datadogV2::model::CIAppCreatePipelineEventRequest; use datadog_api_client::datadogV2::model::CIAppCreatePipelineEventRequestAttributes; use datadog_api_client::datadogV2::model::CIAppCreatePipelineEventRequestAttributesResource; @@ -31,7 +31,7 @@ async fn main() { )) .type_(CIAppCreatePipelineEventRequestDataType::CIPIPELINE_RESOURCE_REQUEST), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CIVisibilityPipelinesAPI::with_config(configuration); let resp = api.create_ci_app_pipeline_event(body).await; if let Ok(value) = resp { diff --git a/examples/v2_ci-visibility-pipelines_list_ci_app_pipeline_events.rs b/examples/v2_ci-visibility-pipelines_list_ci_app_pipeline_events.rs index bf544dedb..f4d32579d 100644 --- a/examples/v2_ci-visibility-pipelines_list_ci_app_pipeline_events.rs +++ b/examples/v2_ci-visibility-pipelines_list_ci_app_pipeline_events.rs @@ -1,11 +1,11 @@ // Get a list of pipelines events returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_ci_visibility_pipelines::CIVisibilityPipelinesAPI; -use datadog_api_client::datadogV2::api::api_ci_visibility_pipelines::ListCIAppPipelineEventsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_ci_visibility_pipelines::CIVisibilityPipelinesAPI; +use datadog_api_client::datadogV2::api_ci_visibility_pipelines::ListCIAppPipelineEventsOptionalParams; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CIVisibilityPipelinesAPI::with_config(configuration); let resp = api .list_ci_app_pipeline_events( diff --git a/examples/v2_ci-visibility-pipelines_list_ci_app_pipeline_events_1270618359.rs b/examples/v2_ci-visibility-pipelines_list_ci_app_pipeline_events_1270618359.rs index b781b0c7f..e85b74241 100644 --- a/examples/v2_ci-visibility-pipelines_list_ci_app_pipeline_events_1270618359.rs +++ b/examples/v2_ci-visibility-pipelines_list_ci_app_pipeline_events_1270618359.rs @@ -1,13 +1,13 @@ // Get a list of pipelines events returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_ci_visibility_pipelines::CIVisibilityPipelinesAPI; -use datadog_api_client::datadogV2::api::api_ci_visibility_pipelines::ListCIAppPipelineEventsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_ci_visibility_pipelines::CIVisibilityPipelinesAPI; +use datadog_api_client::datadogV2::api_ci_visibility_pipelines::ListCIAppPipelineEventsOptionalParams; use futures_util::pin_mut; use futures_util::stream::StreamExt; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CIVisibilityPipelinesAPI::with_config(configuration); let response = api.list_ci_app_pipeline_events_with_pagination( ListCIAppPipelineEventsOptionalParams::default() diff --git a/examples/v2_ci-visibility-pipelines_search_ci_app_pipeline_events.rs b/examples/v2_ci-visibility-pipelines_search_ci_app_pipeline_events.rs index 56359bb1a..9dee9f23c 100644 --- a/examples/v2_ci-visibility-pipelines_search_ci_app_pipeline_events.rs +++ b/examples/v2_ci-visibility-pipelines_search_ci_app_pipeline_events.rs @@ -1,7 +1,7 @@ // Search pipelines events returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_ci_visibility_pipelines::CIVisibilityPipelinesAPI; -use datadog_api_client::datadogV2::api::api_ci_visibility_pipelines::SearchCIAppPipelineEventsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_ci_visibility_pipelines::CIVisibilityPipelinesAPI; +use datadog_api_client::datadogV2::api_ci_visibility_pipelines::SearchCIAppPipelineEventsOptionalParams; use datadog_api_client::datadogV2::model::CIAppPipelineEventsRequest; use datadog_api_client::datadogV2::model::CIAppPipelinesQueryFilter; use datadog_api_client::datadogV2::model::CIAppQueryOptions; @@ -20,7 +20,7 @@ async fn main() { .options(CIAppQueryOptions::new().timezone("GMT".to_string())) .page(CIAppQueryPageOptions::new().limit(5)) .sort(CIAppSort::TIMESTAMP_ASCENDING); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CIVisibilityPipelinesAPI::with_config(configuration); let resp = api .search_ci_app_pipeline_events( diff --git a/examples/v2_ci-visibility-pipelines_search_ci_app_pipeline_events_3246135003.rs b/examples/v2_ci-visibility-pipelines_search_ci_app_pipeline_events_3246135003.rs index 3e6e96480..78d95d5aa 100644 --- a/examples/v2_ci-visibility-pipelines_search_ci_app_pipeline_events_3246135003.rs +++ b/examples/v2_ci-visibility-pipelines_search_ci_app_pipeline_events_3246135003.rs @@ -1,7 +1,7 @@ // Search pipelines events returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_ci_visibility_pipelines::CIVisibilityPipelinesAPI; -use datadog_api_client::datadogV2::api::api_ci_visibility_pipelines::SearchCIAppPipelineEventsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_ci_visibility_pipelines::CIVisibilityPipelinesAPI; +use datadog_api_client::datadogV2::api_ci_visibility_pipelines::SearchCIAppPipelineEventsOptionalParams; use datadog_api_client::datadogV2::model::CIAppPipelineEventsRequest; use datadog_api_client::datadogV2::model::CIAppPipelinesQueryFilter; use datadog_api_client::datadogV2::model::CIAppQueryOptions; @@ -21,7 +21,7 @@ async fn main() { .options(CIAppQueryOptions::new().timezone("GMT".to_string())) .page(CIAppQueryPageOptions::new().limit(2)) .sort(CIAppSort::TIMESTAMP_ASCENDING); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CIVisibilityPipelinesAPI::with_config(configuration); let response = api.search_ci_app_pipeline_events_with_pagination( SearchCIAppPipelineEventsOptionalParams::default().body(body), diff --git a/examples/v2_ci-visibility-tests_aggregate_ci_app_test_events.rs b/examples/v2_ci-visibility-tests_aggregate_ci_app_test_events.rs index 8936cef46..1ad250b15 100644 --- a/examples/v2_ci-visibility-tests_aggregate_ci_app_test_events.rs +++ b/examples/v2_ci-visibility-tests_aggregate_ci_app_test_events.rs @@ -1,6 +1,6 @@ // Aggregate tests events returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_ci_visibility_tests::CIVisibilityTestsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_ci_visibility_tests::CIVisibilityTestsAPI; use datadog_api_client::datadogV2::model::CIAppAggregateSort; use datadog_api_client::datadogV2::model::CIAppAggregationFunction; use datadog_api_client::datadogV2::model::CIAppCompute; @@ -29,7 +29,7 @@ async fn main() { .sort(CIAppAggregateSort::new().order(CIAppSortOrder::ASCENDING)) .total(CIAppGroupByTotal::CIAppGroupByTotalBoolean(false))]) .options(CIAppQueryOptions::new().timezone("GMT".to_string())); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CIVisibilityTestsAPI::with_config(configuration); let resp = api.aggregate_ci_app_test_events(body).await; if let Ok(value) = resp { diff --git a/examples/v2_ci-visibility-tests_list_ci_app_test_events.rs b/examples/v2_ci-visibility-tests_list_ci_app_test_events.rs index 7246fffc6..00afb8de2 100644 --- a/examples/v2_ci-visibility-tests_list_ci_app_test_events.rs +++ b/examples/v2_ci-visibility-tests_list_ci_app_test_events.rs @@ -1,11 +1,11 @@ // Get a list of tests events returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_ci_visibility_tests::CIVisibilityTestsAPI; -use datadog_api_client::datadogV2::api::api_ci_visibility_tests::ListCIAppTestEventsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_ci_visibility_tests::CIVisibilityTestsAPI; +use datadog_api_client::datadogV2::api_ci_visibility_tests::ListCIAppTestEventsOptionalParams; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CIVisibilityTestsAPI::with_config(configuration); let resp = api .list_ci_app_test_events( diff --git a/examples/v2_ci-visibility-tests_list_ci_app_test_events_3852605281.rs b/examples/v2_ci-visibility-tests_list_ci_app_test_events_3852605281.rs index 06af9c8c5..60da69b79 100644 --- a/examples/v2_ci-visibility-tests_list_ci_app_test_events_3852605281.rs +++ b/examples/v2_ci-visibility-tests_list_ci_app_test_events_3852605281.rs @@ -1,13 +1,13 @@ // Get a list of tests events returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_ci_visibility_tests::CIVisibilityTestsAPI; -use datadog_api_client::datadogV2::api::api_ci_visibility_tests::ListCIAppTestEventsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_ci_visibility_tests::CIVisibilityTestsAPI; +use datadog_api_client::datadogV2::api_ci_visibility_tests::ListCIAppTestEventsOptionalParams; use futures_util::pin_mut; use futures_util::stream::StreamExt; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CIVisibilityTestsAPI::with_config(configuration); let response = api.list_ci_app_test_events_with_pagination( ListCIAppTestEventsOptionalParams::default() diff --git a/examples/v2_ci-visibility-tests_search_ci_app_test_events.rs b/examples/v2_ci-visibility-tests_search_ci_app_test_events.rs index b7e934919..2aa75bbaf 100644 --- a/examples/v2_ci-visibility-tests_search_ci_app_test_events.rs +++ b/examples/v2_ci-visibility-tests_search_ci_app_test_events.rs @@ -1,7 +1,7 @@ // Search tests events returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_ci_visibility_tests::CIVisibilityTestsAPI; -use datadog_api_client::datadogV2::api::api_ci_visibility_tests::SearchCIAppTestEventsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_ci_visibility_tests::CIVisibilityTestsAPI; +use datadog_api_client::datadogV2::api_ci_visibility_tests::SearchCIAppTestEventsOptionalParams; use datadog_api_client::datadogV2::model::CIAppQueryOptions; use datadog_api_client::datadogV2::model::CIAppQueryPageOptions; use datadog_api_client::datadogV2::model::CIAppSort; @@ -20,7 +20,7 @@ async fn main() { .options(CIAppQueryOptions::new().timezone("GMT".to_string())) .page(CIAppQueryPageOptions::new().limit(25)) .sort(CIAppSort::TIMESTAMP_ASCENDING); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CIVisibilityTestsAPI::with_config(configuration); let resp = api .search_ci_app_test_events(SearchCIAppTestEventsOptionalParams::default().body(body)) diff --git a/examples/v2_ci-visibility-tests_search_ci_app_test_events_1675695429.rs b/examples/v2_ci-visibility-tests_search_ci_app_test_events_1675695429.rs index a49064150..5c2df3c82 100644 --- a/examples/v2_ci-visibility-tests_search_ci_app_test_events_1675695429.rs +++ b/examples/v2_ci-visibility-tests_search_ci_app_test_events_1675695429.rs @@ -1,7 +1,7 @@ // Search tests events returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_ci_visibility_tests::CIVisibilityTestsAPI; -use datadog_api_client::datadogV2::api::api_ci_visibility_tests::SearchCIAppTestEventsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_ci_visibility_tests::CIVisibilityTestsAPI; +use datadog_api_client::datadogV2::api_ci_visibility_tests::SearchCIAppTestEventsOptionalParams; use datadog_api_client::datadogV2::model::CIAppQueryPageOptions; use datadog_api_client::datadogV2::model::CIAppSort; use datadog_api_client::datadogV2::model::CIAppTestEventsRequest; @@ -20,7 +20,7 @@ async fn main() { ) .page(CIAppQueryPageOptions::new().limit(2)) .sort(CIAppSort::TIMESTAMP_ASCENDING); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CIVisibilityTestsAPI::with_config(configuration); let response = api.search_ci_app_test_events_with_pagination( SearchCIAppTestEventsOptionalParams::default().body(body), diff --git a/examples/v2_cloud-cost-management_create_cost_awscur_config.rs b/examples/v2_cloud-cost-management_create_cost_awscur_config.rs index adc65c504..7da454682 100644 --- a/examples/v2_cloud-cost-management_create_cost_awscur_config.rs +++ b/examples/v2_cloud-cost-management_create_cost_awscur_config.rs @@ -1,6 +1,6 @@ // Create Cloud Cost Management AWS CUR config returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_cloud_cost_management::CloudCostManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_cloud_cost_management::CloudCostManagementAPI; use datadog_api_client::datadogV2::model::AwsCURConfigPostData; use datadog_api_client::datadogV2::model::AwsCURConfigPostRequest; use datadog_api_client::datadogV2::model::AwsCURConfigPostRequestAttributes; @@ -18,7 +18,7 @@ async fn main() { .bucket_region("us-east-1".to_string()), AwsCURConfigPostRequestType::AWS_CUR_CONFIG_POST_REQUEST, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CloudCostManagementAPI::with_config(configuration); let resp = api.create_cost_awscur_config(body).await; if let Ok(value) = resp { diff --git a/examples/v2_cloud-cost-management_create_cost_azure_uc_configs.rs b/examples/v2_cloud-cost-management_create_cost_azure_uc_configs.rs index 6cc71d6d5..ff1e04a7b 100644 --- a/examples/v2_cloud-cost-management_create_cost_azure_uc_configs.rs +++ b/examples/v2_cloud-cost-management_create_cost_azure_uc_configs.rs @@ -1,6 +1,6 @@ // Create Cloud Cost Management Azure configs returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_cloud_cost_management::CloudCostManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_cloud_cost_management::CloudCostManagementAPI; use datadog_api_client::datadogV2::model::AzureUCConfigPostData; use datadog_api_client::datadogV2::model::AzureUCConfigPostRequest; use datadog_api_client::datadogV2::model::AzureUCConfigPostRequestAttributes; @@ -30,7 +30,7 @@ async fn main() { .is_enabled(true), AzureUCConfigPostRequestType::AZURE_UC_CONFIG_POST_REQUEST, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CloudCostManagementAPI::with_config(configuration); let resp = api.create_cost_azure_uc_configs(body).await; if let Ok(value) = resp { diff --git a/examples/v2_cloud-cost-management_delete_cost_awscur_config.rs b/examples/v2_cloud-cost-management_delete_cost_awscur_config.rs index 5911d04a0..3d20a6892 100644 --- a/examples/v2_cloud-cost-management_delete_cost_awscur_config.rs +++ b/examples/v2_cloud-cost-management_delete_cost_awscur_config.rs @@ -1,10 +1,10 @@ // Delete Cloud Cost Management AWS CUR config returns "No Content" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_cloud_cost_management::CloudCostManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_cloud_cost_management::CloudCostManagementAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CloudCostManagementAPI::with_config(configuration); let resp = api.delete_cost_awscur_config("100".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v2_cloud-cost-management_delete_cost_azure_uc_config.rs b/examples/v2_cloud-cost-management_delete_cost_azure_uc_config.rs index 2336aadc5..1a87e9389 100644 --- a/examples/v2_cloud-cost-management_delete_cost_azure_uc_config.rs +++ b/examples/v2_cloud-cost-management_delete_cost_azure_uc_config.rs @@ -1,10 +1,10 @@ // Delete Cloud Cost Management Azure config returns "No Content" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_cloud_cost_management::CloudCostManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_cloud_cost_management::CloudCostManagementAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CloudCostManagementAPI::with_config(configuration); let resp = api.delete_cost_azure_uc_config("100".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v2_cloud-cost-management_get_cloud_cost_activity.rs b/examples/v2_cloud-cost-management_get_cloud_cost_activity.rs index 549b7deaf..012d53a74 100644 --- a/examples/v2_cloud-cost-management_get_cloud_cost_activity.rs +++ b/examples/v2_cloud-cost-management_get_cloud_cost_activity.rs @@ -1,10 +1,10 @@ // Cloud Cost Enabled returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_cloud_cost_management::CloudCostManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_cloud_cost_management::CloudCostManagementAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CloudCostManagementAPI::with_config(configuration); let resp = api.get_cloud_cost_activity().await; if let Ok(value) = resp { diff --git a/examples/v2_cloud-cost-management_list_aws_related_accounts.rs b/examples/v2_cloud-cost-management_list_aws_related_accounts.rs index beae8a0a6..12c276331 100644 --- a/examples/v2_cloud-cost-management_list_aws_related_accounts.rs +++ b/examples/v2_cloud-cost-management_list_aws_related_accounts.rs @@ -1,10 +1,10 @@ // List related AWS accounts returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_cloud_cost_management::CloudCostManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_cloud_cost_management::CloudCostManagementAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CloudCostManagementAPI::with_config(configuration); let resp = api .list_aws_related_accounts("123456789123".to_string()) diff --git a/examples/v2_cloud-cost-management_list_cost_awscur_configs.rs b/examples/v2_cloud-cost-management_list_cost_awscur_configs.rs index e829f0319..8a6fbe68c 100644 --- a/examples/v2_cloud-cost-management_list_cost_awscur_configs.rs +++ b/examples/v2_cloud-cost-management_list_cost_awscur_configs.rs @@ -1,10 +1,10 @@ // List Cloud Cost Management AWS CUR configs returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_cloud_cost_management::CloudCostManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_cloud_cost_management::CloudCostManagementAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CloudCostManagementAPI::with_config(configuration); let resp = api.list_cost_awscur_configs().await; if let Ok(value) = resp { diff --git a/examples/v2_cloud-cost-management_list_cost_azure_uc_configs.rs b/examples/v2_cloud-cost-management_list_cost_azure_uc_configs.rs index 52597a435..66444c7e2 100644 --- a/examples/v2_cloud-cost-management_list_cost_azure_uc_configs.rs +++ b/examples/v2_cloud-cost-management_list_cost_azure_uc_configs.rs @@ -1,10 +1,10 @@ // List Cloud Cost Management Azure configs returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_cloud_cost_management::CloudCostManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_cloud_cost_management::CloudCostManagementAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CloudCostManagementAPI::with_config(configuration); let resp = api.list_cost_azure_uc_configs().await; if let Ok(value) = resp { diff --git a/examples/v2_cloud-cost-management_update_cost_awscur_config.rs b/examples/v2_cloud-cost-management_update_cost_awscur_config.rs index 916c654f1..8418f4cd8 100644 --- a/examples/v2_cloud-cost-management_update_cost_awscur_config.rs +++ b/examples/v2_cloud-cost-management_update_cost_awscur_config.rs @@ -1,6 +1,6 @@ // Update Cloud Cost Management AWS CUR config returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_cloud_cost_management::CloudCostManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_cloud_cost_management::CloudCostManagementAPI; use datadog_api_client::datadogV2::model::AwsCURConfigPatchData; use datadog_api_client::datadogV2::model::AwsCURConfigPatchRequest; use datadog_api_client::datadogV2::model::AwsCURConfigPatchRequestAttributes; @@ -12,7 +12,7 @@ async fn main() { AwsCURConfigPatchRequestAttributes::new(true), AwsCURConfigPatchRequestType::AWS_CUR_CONFIG_PATCH_REQUEST, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CloudCostManagementAPI::with_config(configuration); let resp = api.update_cost_awscur_config("100".to_string(), body).await; if let Ok(value) = resp { diff --git a/examples/v2_cloud-cost-management_update_cost_azure_uc_configs.rs b/examples/v2_cloud-cost-management_update_cost_azure_uc_configs.rs index 88c80ee52..0a3538656 100644 --- a/examples/v2_cloud-cost-management_update_cost_azure_uc_configs.rs +++ b/examples/v2_cloud-cost-management_update_cost_azure_uc_configs.rs @@ -1,6 +1,6 @@ // Update Cloud Cost Management Azure config returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_cloud_cost_management::CloudCostManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_cloud_cost_management::CloudCostManagementAPI; use datadog_api_client::datadogV2::model::AzureUCConfigPatchData; use datadog_api_client::datadogV2::model::AzureUCConfigPatchRequest; use datadog_api_client::datadogV2::model::AzureUCConfigPatchRequestAttributes; @@ -12,7 +12,7 @@ async fn main() { AzureUCConfigPatchRequestAttributes::new(true), AzureUCConfigPatchRequestType::AZURE_UC_CONFIG_PATCH_REQUEST, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CloudCostManagementAPI::with_config(configuration); let resp = api .update_cost_azure_uc_configs("100".to_string(), body) diff --git a/examples/v2_cloud-workload-security_create_cloud_workload_security_agent_rule.rs b/examples/v2_cloud-workload-security_create_cloud_workload_security_agent_rule.rs index 5096f681e..80e718415 100644 --- a/examples/v2_cloud-workload-security_create_cloud_workload_security_agent_rule.rs +++ b/examples/v2_cloud-workload-security_create_cloud_workload_security_agent_rule.rs @@ -1,6 +1,6 @@ // Create a Cloud Workload Security Agent rule returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_cloud_workload_security::CloudWorkloadSecurityAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_cloud_workload_security::CloudWorkloadSecurityAPI; use datadog_api_client::datadogV2::model::CloudWorkloadSecurityAgentRuleCreateAttributes; use datadog_api_client::datadogV2::model::CloudWorkloadSecurityAgentRuleCreateData; use datadog_api_client::datadogV2::model::CloudWorkloadSecurityAgentRuleCreateRequest; @@ -19,7 +19,7 @@ async fn main() { CloudWorkloadSecurityAgentRuleType::AGENT_RULE, ), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CloudWorkloadSecurityAPI::with_config(configuration); let resp = api.create_cloud_workload_security_agent_rule(body).await; if let Ok(value) = resp { diff --git a/examples/v2_cloud-workload-security_create_csm_threats_agent_rule.rs b/examples/v2_cloud-workload-security_create_csm_threats_agent_rule.rs new file mode 100644 index 000000000..7305f789d --- /dev/null +++ b/examples/v2_cloud-workload-security_create_csm_threats_agent_rule.rs @@ -0,0 +1,30 @@ +// Create a CSM Threats Agent rule returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_cloud_workload_security::CloudWorkloadSecurityAPI; +use datadog_api_client::datadogV2::model::CloudWorkloadSecurityAgentRuleCreateAttributes; +use datadog_api_client::datadogV2::model::CloudWorkloadSecurityAgentRuleCreateData; +use datadog_api_client::datadogV2::model::CloudWorkloadSecurityAgentRuleCreateRequest; +use datadog_api_client::datadogV2::model::CloudWorkloadSecurityAgentRuleType; + +#[tokio::main] +async fn main() { + let body = CloudWorkloadSecurityAgentRuleCreateRequest::new( + CloudWorkloadSecurityAgentRuleCreateData::new( + CloudWorkloadSecurityAgentRuleCreateAttributes::new( + r#"exec.file.name == "sh""#.to_string(), + "examplecloudworkloadsecurity".to_string(), + ) + .description("My Agent rule".to_string()) + .enabled(true), + CloudWorkloadSecurityAgentRuleType::AGENT_RULE, + ), + ); + let configuration = datadog::Configuration::new(); + let api = CloudWorkloadSecurityAPI::with_config(configuration); + let resp = api.create_csm_threats_agent_rule(body).await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_cloud-workload-security_delete_cloud_workload_security_agent_rule.rs b/examples/v2_cloud-workload-security_delete_cloud_workload_security_agent_rule.rs index 6b3dc8b5d..497947484 100644 --- a/examples/v2_cloud-workload-security_delete_cloud_workload_security_agent_rule.rs +++ b/examples/v2_cloud-workload-security_delete_cloud_workload_security_agent_rule.rs @@ -1,12 +1,12 @@ // Delete a Cloud Workload Security Agent rule returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_cloud_workload_security::CloudWorkloadSecurityAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_cloud_workload_security::CloudWorkloadSecurityAPI; #[tokio::main] async fn main() { // there is a valid "agent_rule" in the system let agent_rule_data_id = std::env::var("AGENT_RULE_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CloudWorkloadSecurityAPI::with_config(configuration); let resp = api .delete_cloud_workload_security_agent_rule(agent_rule_data_id.clone()) diff --git a/examples/v2_cloud-workload-security_delete_csm_threats_agent_rule.rs b/examples/v2_cloud-workload-security_delete_csm_threats_agent_rule.rs new file mode 100644 index 000000000..de5e337c4 --- /dev/null +++ b/examples/v2_cloud-workload-security_delete_csm_threats_agent_rule.rs @@ -0,0 +1,19 @@ +// Delete a CSM Threats Agent rule returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_cloud_workload_security::CloudWorkloadSecurityAPI; + +#[tokio::main] +async fn main() { + // there is a valid "agent_rule_rc" in the system + let agent_rule_data_id = std::env::var("AGENT_RULE_DATA_ID").unwrap(); + let configuration = datadog::Configuration::new(); + let api = CloudWorkloadSecurityAPI::with_config(configuration); + let resp = api + .delete_csm_threats_agent_rule(agent_rule_data_id.clone()) + .await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_cloud-workload-security_download_cloud_workload_policy_file.rs b/examples/v2_cloud-workload-security_download_cloud_workload_policy_file.rs index 7f0ce894a..3505ab7a4 100644 --- a/examples/v2_cloud-workload-security_download_cloud_workload_policy_file.rs +++ b/examples/v2_cloud-workload-security_download_cloud_workload_policy_file.rs @@ -1,10 +1,10 @@ // Get the latest Cloud Workload Security policy returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_cloud_workload_security::CloudWorkloadSecurityAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_cloud_workload_security::CloudWorkloadSecurityAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CloudWorkloadSecurityAPI::with_config(configuration); let resp = api.download_cloud_workload_policy_file().await; if let Ok(value) = resp { diff --git a/examples/v2_cloud-workload-security_download_csm_threats_policy.rs b/examples/v2_cloud-workload-security_download_csm_threats_policy.rs new file mode 100644 index 000000000..d32128e4a --- /dev/null +++ b/examples/v2_cloud-workload-security_download_csm_threats_policy.rs @@ -0,0 +1,15 @@ +// Get the latest CSM Threats policy returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_cloud_workload_security::CloudWorkloadSecurityAPI; + +#[tokio::main] +async fn main() { + let configuration = datadog::Configuration::new(); + let api = CloudWorkloadSecurityAPI::with_config(configuration); + let resp = api.download_csm_threats_policy().await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_cloud-workload-security_get_cloud_workload_security_agent_rule.rs b/examples/v2_cloud-workload-security_get_cloud_workload_security_agent_rule.rs index 07dcd9575..be0666fa3 100644 --- a/examples/v2_cloud-workload-security_get_cloud_workload_security_agent_rule.rs +++ b/examples/v2_cloud-workload-security_get_cloud_workload_security_agent_rule.rs @@ -1,12 +1,12 @@ // Get a Cloud Workload Security Agent rule returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_cloud_workload_security::CloudWorkloadSecurityAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_cloud_workload_security::CloudWorkloadSecurityAPI; #[tokio::main] async fn main() { // there is a valid "agent_rule" in the system let agent_rule_data_id = std::env::var("AGENT_RULE_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CloudWorkloadSecurityAPI::with_config(configuration); let resp = api .get_cloud_workload_security_agent_rule(agent_rule_data_id.clone()) diff --git a/examples/v2_cloud-workload-security_get_csm_threats_agent_rule.rs b/examples/v2_cloud-workload-security_get_csm_threats_agent_rule.rs new file mode 100644 index 000000000..9d572982b --- /dev/null +++ b/examples/v2_cloud-workload-security_get_csm_threats_agent_rule.rs @@ -0,0 +1,19 @@ +// Get a CSM Threats Agent rule returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_cloud_workload_security::CloudWorkloadSecurityAPI; + +#[tokio::main] +async fn main() { + // there is a valid "agent_rule_rc" in the system + let agent_rule_data_id = std::env::var("AGENT_RULE_DATA_ID").unwrap(); + let configuration = datadog::Configuration::new(); + let api = CloudWorkloadSecurityAPI::with_config(configuration); + let resp = api + .get_csm_threats_agent_rule(agent_rule_data_id.clone()) + .await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_cloud-workload-security_list_cloud_workload_security_agent_rules.rs b/examples/v2_cloud-workload-security_list_cloud_workload_security_agent_rules.rs index 0a7412fb6..1f6c914ac 100644 --- a/examples/v2_cloud-workload-security_list_cloud_workload_security_agent_rules.rs +++ b/examples/v2_cloud-workload-security_list_cloud_workload_security_agent_rules.rs @@ -1,10 +1,10 @@ // Get all Cloud Workload Security Agent rules returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_cloud_workload_security::CloudWorkloadSecurityAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_cloud_workload_security::CloudWorkloadSecurityAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CloudWorkloadSecurityAPI::with_config(configuration); let resp = api.list_cloud_workload_security_agent_rules().await; if let Ok(value) = resp { diff --git a/examples/v2_cloud-workload-security_list_csm_threats_agent_rules.rs b/examples/v2_cloud-workload-security_list_csm_threats_agent_rules.rs new file mode 100644 index 000000000..a4f38ba7d --- /dev/null +++ b/examples/v2_cloud-workload-security_list_csm_threats_agent_rules.rs @@ -0,0 +1,15 @@ +// Get all CSM Threats Agent rules returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_cloud_workload_security::CloudWorkloadSecurityAPI; + +#[tokio::main] +async fn main() { + let configuration = datadog::Configuration::new(); + let api = CloudWorkloadSecurityAPI::with_config(configuration); + let resp = api.list_csm_threats_agent_rules().await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_cloud-workload-security_update_cloud_workload_security_agent_rule.rs b/examples/v2_cloud-workload-security_update_cloud_workload_security_agent_rule.rs index 5c8f281ff..967e4b7cc 100644 --- a/examples/v2_cloud-workload-security_update_cloud_workload_security_agent_rule.rs +++ b/examples/v2_cloud-workload-security_update_cloud_workload_security_agent_rule.rs @@ -1,6 +1,6 @@ // Update a Cloud Workload Security Agent rule returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_cloud_workload_security::CloudWorkloadSecurityAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_cloud_workload_security::CloudWorkloadSecurityAPI; use datadog_api_client::datadogV2::model::CloudWorkloadSecurityAgentRuleType; use datadog_api_client::datadogV2::model::CloudWorkloadSecurityAgentRuleUpdateAttributes; use datadog_api_client::datadogV2::model::CloudWorkloadSecurityAgentRuleUpdateData; @@ -19,7 +19,7 @@ async fn main() { CloudWorkloadSecurityAgentRuleType::AGENT_RULE, ), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CloudWorkloadSecurityAPI::with_config(configuration); let resp = api .update_cloud_workload_security_agent_rule(agent_rule_data_id.clone(), body) diff --git a/examples/v2_cloud-workload-security_update_csm_threats_agent_rule.rs b/examples/v2_cloud-workload-security_update_csm_threats_agent_rule.rs new file mode 100644 index 000000000..e3c05cafc --- /dev/null +++ b/examples/v2_cloud-workload-security_update_csm_threats_agent_rule.rs @@ -0,0 +1,33 @@ +// Update a CSM Threats Agent rule returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_cloud_workload_security::CloudWorkloadSecurityAPI; +use datadog_api_client::datadogV2::model::CloudWorkloadSecurityAgentRuleType; +use datadog_api_client::datadogV2::model::CloudWorkloadSecurityAgentRuleUpdateAttributes; +use datadog_api_client::datadogV2::model::CloudWorkloadSecurityAgentRuleUpdateData; +use datadog_api_client::datadogV2::model::CloudWorkloadSecurityAgentRuleUpdateRequest; + +#[tokio::main] +async fn main() { + // there is a valid "agent_rule_rc" in the system + let agent_rule_data_id = std::env::var("AGENT_RULE_DATA_ID").unwrap(); + let body = CloudWorkloadSecurityAgentRuleUpdateRequest::new( + CloudWorkloadSecurityAgentRuleUpdateData::new( + CloudWorkloadSecurityAgentRuleUpdateAttributes::new() + .description("Test Agent rule".to_string()) + .enabled(true) + .expression(r#"exec.file.name == "sh""#.to_string()), + CloudWorkloadSecurityAgentRuleType::AGENT_RULE, + ) + .id(agent_rule_data_id.clone()), + ); + let configuration = datadog::Configuration::new(); + let api = CloudWorkloadSecurityAPI::with_config(configuration); + let resp = api + .update_csm_threats_agent_rule(agent_rule_data_id.clone(), body) + .await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_cloudflare-integration_create_cloudflare_account.rs b/examples/v2_cloudflare-integration_create_cloudflare_account.rs index f429c3c79..39ea4a4db 100644 --- a/examples/v2_cloudflare-integration_create_cloudflare_account.rs +++ b/examples/v2_cloudflare-integration_create_cloudflare_account.rs @@ -1,6 +1,6 @@ // Add Cloudflare account returns "CREATED" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_cloudflare_integration::CloudflareIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_cloudflare_integration::CloudflareIntegrationAPI; use datadog_api_client::datadogV2::model::CloudflareAccountCreateRequest; use datadog_api_client::datadogV2::model::CloudflareAccountCreateRequestAttributes; use datadog_api_client::datadogV2::model::CloudflareAccountCreateRequestData; @@ -13,10 +13,10 @@ async fn main() { "fakekey".to_string(), "examplecloudflareintegration".to_string(), ) - .email("new@email".to_string()), + .email("dev@datadoghq.com".to_string()), CloudflareAccountType::CLOUDFLARE_ACCOUNTS, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CloudflareIntegrationAPI::with_config(configuration); let resp = api.create_cloudflare_account(body).await; if let Ok(value) = resp { diff --git a/examples/v2_cloudflare-integration_delete_cloudflare_account.rs b/examples/v2_cloudflare-integration_delete_cloudflare_account.rs index b708b554b..c242a81db 100644 --- a/examples/v2_cloudflare-integration_delete_cloudflare_account.rs +++ b/examples/v2_cloudflare-integration_delete_cloudflare_account.rs @@ -1,10 +1,10 @@ // Delete Cloudflare account returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_cloudflare_integration::CloudflareIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_cloudflare_integration::CloudflareIntegrationAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CloudflareIntegrationAPI::with_config(configuration); let resp = api .delete_cloudflare_account("account_id".to_string()) diff --git a/examples/v2_cloudflare-integration_get_cloudflare_account.rs b/examples/v2_cloudflare-integration_get_cloudflare_account.rs index 3b93aebf8..b29e2b617 100644 --- a/examples/v2_cloudflare-integration_get_cloudflare_account.rs +++ b/examples/v2_cloudflare-integration_get_cloudflare_account.rs @@ -1,12 +1,12 @@ // Get Cloudflare account returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_cloudflare_integration::CloudflareIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_cloudflare_integration::CloudflareIntegrationAPI; #[tokio::main] async fn main() { // there is a valid "cloudflare_account" in the system let cloudflare_account_data_id = std::env::var("CLOUDFLARE_ACCOUNT_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CloudflareIntegrationAPI::with_config(configuration); let resp = api .get_cloudflare_account(cloudflare_account_data_id.clone()) diff --git a/examples/v2_cloudflare-integration_list_cloudflare_accounts.rs b/examples/v2_cloudflare-integration_list_cloudflare_accounts.rs index 6f13f175c..aa0737cfa 100644 --- a/examples/v2_cloudflare-integration_list_cloudflare_accounts.rs +++ b/examples/v2_cloudflare-integration_list_cloudflare_accounts.rs @@ -1,10 +1,10 @@ // List Cloudflare accounts returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_cloudflare_integration::CloudflareIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_cloudflare_integration::CloudflareIntegrationAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CloudflareIntegrationAPI::with_config(configuration); let resp = api.list_cloudflare_accounts().await; if let Ok(value) = resp { diff --git a/examples/v2_cloudflare-integration_update_cloudflare_account.rs b/examples/v2_cloudflare-integration_update_cloudflare_account.rs index fe988e9e6..10cc613b6 100644 --- a/examples/v2_cloudflare-integration_update_cloudflare_account.rs +++ b/examples/v2_cloudflare-integration_update_cloudflare_account.rs @@ -1,6 +1,6 @@ // Update Cloudflare account returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_cloudflare_integration::CloudflareIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_cloudflare_integration::CloudflareIntegrationAPI; use datadog_api_client::datadogV2::model::CloudflareAccountType; use datadog_api_client::datadogV2::model::CloudflareAccountUpdateRequest; use datadog_api_client::datadogV2::model::CloudflareAccountUpdateRequestAttributes; @@ -14,11 +14,12 @@ async fn main() { CloudflareAccountUpdateRequestData::new() .attributes( CloudflareAccountUpdateRequestAttributes::new("fakekey".to_string()) - .email("new@email".to_string()), + .email("dev@datadoghq.com".to_string()) + .zones(vec!["zone-id-3".to_string()]), ) .type_(CloudflareAccountType::CLOUDFLARE_ACCOUNTS), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = CloudflareIntegrationAPI::with_config(configuration); let resp = api .update_cloudflare_account(cloudflare_account_data_id.clone(), body) diff --git a/examples/v2_confluent-cloud_create_confluent_account.rs b/examples/v2_confluent-cloud_create_confluent_account.rs index 64852e1f2..9d55d391b 100644 --- a/examples/v2_confluent-cloud_create_confluent_account.rs +++ b/examples/v2_confluent-cloud_create_confluent_account.rs @@ -1,6 +1,6 @@ // Add Confluent account returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_confluent_cloud::ConfluentCloudAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_confluent_cloud::ConfluentCloudAPI; use datadog_api_client::datadogV2::model::ConfluentAccountCreateRequest; use datadog_api_client::datadogV2::model::ConfluentAccountCreateRequestAttributes; use datadog_api_client::datadogV2::model::ConfluentAccountCreateRequestData; @@ -23,7 +23,7 @@ async fn main() { .tags(vec!["myTag".to_string(), "myTag2:myValue".to_string()]), ConfluentAccountType::CONFLUENT_CLOUD_ACCOUNTS, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ConfluentCloudAPI::with_config(configuration); let resp = api.create_confluent_account(body).await; if let Ok(value) = resp { diff --git a/examples/v2_confluent-cloud_create_confluent_resource.rs b/examples/v2_confluent-cloud_create_confluent_resource.rs index 2d49dd74a..1b9d76e10 100644 --- a/examples/v2_confluent-cloud_create_confluent_resource.rs +++ b/examples/v2_confluent-cloud_create_confluent_resource.rs @@ -1,6 +1,6 @@ // Add resource to Confluent account returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_confluent_cloud::ConfluentCloudAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_confluent_cloud::ConfluentCloudAPI; use datadog_api_client::datadogV2::model::ConfluentResourceRequest; use datadog_api_client::datadogV2::model::ConfluentResourceRequestAttributes; use datadog_api_client::datadogV2::model::ConfluentResourceRequestData; @@ -17,7 +17,7 @@ async fn main() { "exampleconfluentcloud".to_string(), ConfluentResourceType::CONFLUENT_CLOUD_RESOURCES, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ConfluentCloudAPI::with_config(configuration); let resp = api .create_confluent_resource(confluent_account_data_id.clone(), body) diff --git a/examples/v2_confluent-cloud_delete_confluent_account.rs b/examples/v2_confluent-cloud_delete_confluent_account.rs index ebfecde9a..2c4892a43 100644 --- a/examples/v2_confluent-cloud_delete_confluent_account.rs +++ b/examples/v2_confluent-cloud_delete_confluent_account.rs @@ -1,12 +1,12 @@ // Delete Confluent account returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_confluent_cloud::ConfluentCloudAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_confluent_cloud::ConfluentCloudAPI; #[tokio::main] async fn main() { // there is a valid "confluent_account" in the system let confluent_account_data_id = std::env::var("CONFLUENT_ACCOUNT_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ConfluentCloudAPI::with_config(configuration); let resp = api .delete_confluent_account(confluent_account_data_id.clone()) diff --git a/examples/v2_confluent-cloud_delete_confluent_resource.rs b/examples/v2_confluent-cloud_delete_confluent_resource.rs index 5a8b4f19c..007f22ba7 100644 --- a/examples/v2_confluent-cloud_delete_confluent_resource.rs +++ b/examples/v2_confluent-cloud_delete_confluent_resource.rs @@ -1,10 +1,10 @@ // Delete resource from Confluent account returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_confluent_cloud::ConfluentCloudAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_confluent_cloud::ConfluentCloudAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ConfluentCloudAPI::with_config(configuration); let resp = api .delete_confluent_resource("account_id".to_string(), "resource_id".to_string()) diff --git a/examples/v2_confluent-cloud_get_confluent_account.rs b/examples/v2_confluent-cloud_get_confluent_account.rs index 827425199..b8536c94c 100644 --- a/examples/v2_confluent-cloud_get_confluent_account.rs +++ b/examples/v2_confluent-cloud_get_confluent_account.rs @@ -1,12 +1,12 @@ // Get Confluent account returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_confluent_cloud::ConfluentCloudAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_confluent_cloud::ConfluentCloudAPI; #[tokio::main] async fn main() { // there is a valid "confluent_account" in the system let confluent_account_data_id = std::env::var("CONFLUENT_ACCOUNT_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ConfluentCloudAPI::with_config(configuration); let resp = api .get_confluent_account(confluent_account_data_id.clone()) diff --git a/examples/v2_confluent-cloud_get_confluent_resource.rs b/examples/v2_confluent-cloud_get_confluent_resource.rs index d85eee881..b4e58b4bd 100644 --- a/examples/v2_confluent-cloud_get_confluent_resource.rs +++ b/examples/v2_confluent-cloud_get_confluent_resource.rs @@ -1,10 +1,10 @@ // Get resource from Confluent account returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_confluent_cloud::ConfluentCloudAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_confluent_cloud::ConfluentCloudAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ConfluentCloudAPI::with_config(configuration); let resp = api .get_confluent_resource("account_id".to_string(), "resource_id".to_string()) diff --git a/examples/v2_confluent-cloud_list_confluent_account.rs b/examples/v2_confluent-cloud_list_confluent_account.rs index d5956d5fd..0db0c6084 100644 --- a/examples/v2_confluent-cloud_list_confluent_account.rs +++ b/examples/v2_confluent-cloud_list_confluent_account.rs @@ -1,10 +1,10 @@ // List Confluent accounts returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_confluent_cloud::ConfluentCloudAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_confluent_cloud::ConfluentCloudAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ConfluentCloudAPI::with_config(configuration); let resp = api.list_confluent_account().await; if let Ok(value) = resp { diff --git a/examples/v2_confluent-cloud_list_confluent_resource.rs b/examples/v2_confluent-cloud_list_confluent_resource.rs index b4156df26..73f1e25c2 100644 --- a/examples/v2_confluent-cloud_list_confluent_resource.rs +++ b/examples/v2_confluent-cloud_list_confluent_resource.rs @@ -1,10 +1,10 @@ // List Confluent Account resources returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_confluent_cloud::ConfluentCloudAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_confluent_cloud::ConfluentCloudAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ConfluentCloudAPI::with_config(configuration); let resp = api.list_confluent_resource("account_id".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v2_confluent-cloud_update_confluent_account.rs b/examples/v2_confluent-cloud_update_confluent_account.rs index ebb52e02a..3162f081b 100644 --- a/examples/v2_confluent-cloud_update_confluent_account.rs +++ b/examples/v2_confluent-cloud_update_confluent_account.rs @@ -1,6 +1,6 @@ // Update Confluent account returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_confluent_cloud::ConfluentCloudAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_confluent_cloud::ConfluentCloudAPI; use datadog_api_client::datadogV2::model::ConfluentAccountType; use datadog_api_client::datadogV2::model::ConfluentAccountUpdateRequest; use datadog_api_client::datadogV2::model::ConfluentAccountUpdateRequestAttributes; @@ -20,7 +20,7 @@ async fn main() { .tags(vec!["updated_tag:val".to_string()]), ConfluentAccountType::CONFLUENT_CLOUD_ACCOUNTS, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ConfluentCloudAPI::with_config(configuration); let resp = api .update_confluent_account(confluent_account_data_id.clone(), body) diff --git a/examples/v2_confluent-cloud_update_confluent_resource.rs b/examples/v2_confluent-cloud_update_confluent_resource.rs index 36762821e..61bce314a 100644 --- a/examples/v2_confluent-cloud_update_confluent_resource.rs +++ b/examples/v2_confluent-cloud_update_confluent_resource.rs @@ -1,6 +1,6 @@ // Update resource in Confluent account returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_confluent_cloud::ConfluentCloudAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_confluent_cloud::ConfluentCloudAPI; use datadog_api_client::datadogV2::model::ConfluentResourceRequest; use datadog_api_client::datadogV2::model::ConfluentResourceRequestAttributes; use datadog_api_client::datadogV2::model::ConfluentResourceRequestData; @@ -15,7 +15,7 @@ async fn main() { "resource-id-123".to_string(), ConfluentResourceType::CONFLUENT_CLOUD_RESOURCES, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ConfluentCloudAPI::with_config(configuration); let resp = api .update_confluent_resource("account_id".to_string(), "resource_id".to_string(), body) diff --git a/examples/v2_container-images_list_container_images.rs b/examples/v2_container-images_list_container_images.rs index 10589d6c9..31ce5337b 100644 --- a/examples/v2_container-images_list_container_images.rs +++ b/examples/v2_container-images_list_container_images.rs @@ -1,11 +1,11 @@ // Get all Container Images returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_container_images::ContainerImagesAPI; -use datadog_api_client::datadogV2::api::api_container_images::ListContainerImagesOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_container_images::ContainerImagesAPI; +use datadog_api_client::datadogV2::api_container_images::ListContainerImagesOptionalParams; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ContainerImagesAPI::with_config(configuration); let resp = api .list_container_images(ListContainerImagesOptionalParams::default()) diff --git a/examples/v2_container-images_list_container_images_3088586393.rs b/examples/v2_container-images_list_container_images_3088586393.rs index aedb28a7a..0085b53c0 100644 --- a/examples/v2_container-images_list_container_images_3088586393.rs +++ b/examples/v2_container-images_list_container_images_3088586393.rs @@ -1,13 +1,13 @@ // Get all Container Images returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_container_images::ContainerImagesAPI; -use datadog_api_client::datadogV2::api::api_container_images::ListContainerImagesOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_container_images::ContainerImagesAPI; +use datadog_api_client::datadogV2::api_container_images::ListContainerImagesOptionalParams; use futures_util::pin_mut; use futures_util::stream::StreamExt; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ContainerImagesAPI::with_config(configuration); let response = api.list_container_images_with_pagination( ListContainerImagesOptionalParams::default().page_size(2), diff --git a/examples/v2_container-images_list_container_images_3974828736.rs b/examples/v2_container-images_list_container_images_3974828736.rs index 725f50b1f..8f1b9e2a6 100644 --- a/examples/v2_container-images_list_container_images_3974828736.rs +++ b/examples/v2_container-images_list_container_images_3974828736.rs @@ -1,11 +1,11 @@ // Get all Container Image groups returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_container_images::ContainerImagesAPI; -use datadog_api_client::datadogV2::api::api_container_images::ListContainerImagesOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_container_images::ContainerImagesAPI; +use datadog_api_client::datadogV2::api_container_images::ListContainerImagesOptionalParams; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ContainerImagesAPI::with_config(configuration); let resp = api .list_container_images( diff --git a/examples/v2_containers_list_containers.rs b/examples/v2_containers_list_containers.rs index c6ebadbb6..6fdd243b4 100644 --- a/examples/v2_containers_list_containers.rs +++ b/examples/v2_containers_list_containers.rs @@ -1,11 +1,11 @@ // Get All Containers returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_containers::ContainersAPI; -use datadog_api_client::datadogV2::api::api_containers::ListContainersOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_containers::ContainersAPI; +use datadog_api_client::datadogV2::api_containers::ListContainersOptionalParams; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ContainersAPI::with_config(configuration); let resp = api .list_containers(ListContainersOptionalParams::default()) diff --git a/examples/v2_containers_list_containers_2175733917.rs b/examples/v2_containers_list_containers_2175733917.rs index bd295dca1..6727c9e15 100644 --- a/examples/v2_containers_list_containers_2175733917.rs +++ b/examples/v2_containers_list_containers_2175733917.rs @@ -1,11 +1,11 @@ // Get All Container groups returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_containers::ContainersAPI; -use datadog_api_client::datadogV2::api::api_containers::ListContainersOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_containers::ContainersAPI; +use datadog_api_client::datadogV2::api_containers::ListContainersOptionalParams; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ContainersAPI::with_config(configuration); let resp = api .list_containers( diff --git a/examples/v2_containers_list_containers_931009654.rs b/examples/v2_containers_list_containers_931009654.rs index 4fbff9ddb..d95146931 100644 --- a/examples/v2_containers_list_containers_931009654.rs +++ b/examples/v2_containers_list_containers_931009654.rs @@ -1,13 +1,13 @@ // Get All Containers returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_containers::ContainersAPI; -use datadog_api_client::datadogV2::api::api_containers::ListContainersOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_containers::ContainersAPI; +use datadog_api_client::datadogV2::api_containers::ListContainersOptionalParams; use futures_util::pin_mut; use futures_util::stream::StreamExt; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ContainersAPI::with_config(configuration); let response = api.list_containers_with_pagination(ListContainersOptionalParams::default().page_size(2)); diff --git a/examples/v2_dashboard-lists_create_dashboard_list_items.rs b/examples/v2_dashboard-lists_create_dashboard_list_items.rs index a97ff8add..206332860 100644 --- a/examples/v2_dashboard-lists_create_dashboard_list_items.rs +++ b/examples/v2_dashboard-lists_create_dashboard_list_items.rs @@ -1,6 +1,6 @@ // Add Items to a Dashboard List returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_dashboard_lists::DashboardListsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_dashboard_lists::DashboardListsAPI; use datadog_api_client::datadogV2::model::DashboardListAddItemsRequest; use datadog_api_client::datadogV2::model::DashboardListItemRequest; use datadog_api_client::datadogV2::model::DashboardType; @@ -11,7 +11,7 @@ async fn main() { "q5j-nti-fv6".to_string(), DashboardType::HOST_TIMEBOARD, )]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardListsAPI::with_config(configuration); let resp = api .create_dashboard_list_items(9223372036854775807, body) diff --git a/examples/v2_dashboard-lists_create_dashboard_list_items_3995409989.rs b/examples/v2_dashboard-lists_create_dashboard_list_items_3995409989.rs index 41d635134..52ce410c5 100644 --- a/examples/v2_dashboard-lists_create_dashboard_list_items_3995409989.rs +++ b/examples/v2_dashboard-lists_create_dashboard_list_items_3995409989.rs @@ -1,7 +1,7 @@ // Add custom timeboard dashboard to an existing dashboard list returns "OK" // response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_dashboard_lists::DashboardListsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_dashboard_lists::DashboardListsAPI; use datadog_api_client::datadogV2::model::DashboardListAddItemsRequest; use datadog_api_client::datadogV2::model::DashboardListItemRequest; use datadog_api_client::datadogV2::model::DashboardType; @@ -17,7 +17,7 @@ async fn main() { dashboard_id.clone(), DashboardType::CUSTOM_TIMEBOARD, )]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardListsAPI::with_config(configuration); let resp = api .create_dashboard_list_items(dashboard_list_id.clone(), body) diff --git a/examples/v2_dashboard-lists_create_dashboard_list_items_825696022.rs b/examples/v2_dashboard-lists_create_dashboard_list_items_825696022.rs index 5b5d5eadb..35e0f8a45 100644 --- a/examples/v2_dashboard-lists_create_dashboard_list_items_825696022.rs +++ b/examples/v2_dashboard-lists_create_dashboard_list_items_825696022.rs @@ -1,7 +1,7 @@ // Add custom screenboard dashboard to an existing dashboard list returns "OK" // response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_dashboard_lists::DashboardListsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_dashboard_lists::DashboardListsAPI; use datadog_api_client::datadogV2::model::DashboardListAddItemsRequest; use datadog_api_client::datadogV2::model::DashboardListItemRequest; use datadog_api_client::datadogV2::model::DashboardType; @@ -17,7 +17,7 @@ async fn main() { screenboard_dashboard_id.clone(), DashboardType::CUSTOM_SCREENBOARD, )]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardListsAPI::with_config(configuration); let resp = api .create_dashboard_list_items(dashboard_list_id.clone(), body) diff --git a/examples/v2_dashboard-lists_delete_dashboard_list_items.rs b/examples/v2_dashboard-lists_delete_dashboard_list_items.rs index 3fb35e2e7..71ffb561d 100644 --- a/examples/v2_dashboard-lists_delete_dashboard_list_items.rs +++ b/examples/v2_dashboard-lists_delete_dashboard_list_items.rs @@ -1,6 +1,6 @@ // Delete items from a dashboard list returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_dashboard_lists::DashboardListsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_dashboard_lists::DashboardListsAPI; use datadog_api_client::datadogV2::model::DashboardListDeleteItemsRequest; use datadog_api_client::datadogV2::model::DashboardListItemRequest; use datadog_api_client::datadogV2::model::DashboardType; @@ -12,7 +12,7 @@ async fn main() { "q5j-nti-fv6".to_string(), DashboardType::HOST_TIMEBOARD, )]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardListsAPI::with_config(configuration); let resp = api .delete_dashboard_list_items(9223372036854775807, body) diff --git a/examples/v2_dashboard-lists_delete_dashboard_list_items_2656706656.rs b/examples/v2_dashboard-lists_delete_dashboard_list_items_2656706656.rs index 0a45c10a5..0dfba9d42 100644 --- a/examples/v2_dashboard-lists_delete_dashboard_list_items_2656706656.rs +++ b/examples/v2_dashboard-lists_delete_dashboard_list_items_2656706656.rs @@ -1,7 +1,7 @@ // Delete custom timeboard dashboard from an existing dashboard list returns "OK" // response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_dashboard_lists::DashboardListsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_dashboard_lists::DashboardListsAPI; use datadog_api_client::datadogV2::model::DashboardListDeleteItemsRequest; use datadog_api_client::datadogV2::model::DashboardListItemRequest; use datadog_api_client::datadogV2::model::DashboardType; @@ -18,7 +18,7 @@ async fn main() { dashboard_id.clone(), DashboardType::CUSTOM_TIMEBOARD, )]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardListsAPI::with_config(configuration); let resp = api .delete_dashboard_list_items(dashboard_list_id.clone(), body) diff --git a/examples/v2_dashboard-lists_delete_dashboard_list_items_3851624753.rs b/examples/v2_dashboard-lists_delete_dashboard_list_items_3851624753.rs index 9b4e7c98c..8a705bee1 100644 --- a/examples/v2_dashboard-lists_delete_dashboard_list_items_3851624753.rs +++ b/examples/v2_dashboard-lists_delete_dashboard_list_items_3851624753.rs @@ -1,7 +1,7 @@ // Delete custom screenboard dashboard from an existing dashboard list returns // "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_dashboard_lists::DashboardListsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_dashboard_lists::DashboardListsAPI; use datadog_api_client::datadogV2::model::DashboardListDeleteItemsRequest; use datadog_api_client::datadogV2::model::DashboardListItemRequest; use datadog_api_client::datadogV2::model::DashboardType; @@ -18,7 +18,7 @@ async fn main() { screenboard_dashboard_id.clone(), DashboardType::CUSTOM_SCREENBOARD, )]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardListsAPI::with_config(configuration); let resp = api .delete_dashboard_list_items(dashboard_list_id.clone(), body) diff --git a/examples/v2_dashboard-lists_get_dashboard_list_items.rs b/examples/v2_dashboard-lists_get_dashboard_list_items.rs index cc723f471..87de05a13 100644 --- a/examples/v2_dashboard-lists_get_dashboard_list_items.rs +++ b/examples/v2_dashboard-lists_get_dashboard_list_items.rs @@ -1,12 +1,12 @@ // Get items of a Dashboard List returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_dashboard_lists::DashboardListsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_dashboard_lists::DashboardListsAPI; #[tokio::main] async fn main() { // there is a valid "dashboard_list" in the system let dashboard_list_id: i64 = std::env::var("DASHBOARD_LIST_ID").unwrap().parse().unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardListsAPI::with_config(configuration); let resp = api .get_dashboard_list_items(dashboard_list_id.clone()) diff --git a/examples/v2_dashboard-lists_update_dashboard_list_items.rs b/examples/v2_dashboard-lists_update_dashboard_list_items.rs index b9db775aa..19fcf601d 100644 --- a/examples/v2_dashboard-lists_update_dashboard_list_items.rs +++ b/examples/v2_dashboard-lists_update_dashboard_list_items.rs @@ -1,6 +1,6 @@ // Update items of a dashboard list returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_dashboard_lists::DashboardListsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_dashboard_lists::DashboardListsAPI; use datadog_api_client::datadogV2::model::DashboardListItemRequest; use datadog_api_client::datadogV2::model::DashboardListUpdateItemsRequest; use datadog_api_client::datadogV2::model::DashboardType; @@ -17,7 +17,7 @@ async fn main() { screenboard_dashboard_id.clone(), DashboardType::CUSTOM_SCREENBOARD, )]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DashboardListsAPI::with_config(configuration); let resp = api .update_dashboard_list_items(dashboard_list_id.clone(), body) diff --git a/examples/v2_dora-metrics_create_dora_deployment.rs b/examples/v2_dora-metrics_create_dora_deployment.rs index cb10679a6..93dce5ac8 100644 --- a/examples/v2_dora-metrics_create_dora_deployment.rs +++ b/examples/v2_dora-metrics_create_dora_deployment.rs @@ -1,6 +1,6 @@ // Send a deployment event for DORA Metrics returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_dora_metrics::DORAMetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_dora_metrics::DORAMetricsAPI; use datadog_api_client::datadogV2::model::DORADeploymentRequest; use datadog_api_client::datadogV2::model::DORADeploymentRequestAttributes; use datadog_api_client::datadogV2::model::DORADeploymentRequestData; @@ -20,7 +20,7 @@ async fn main() { )) .version("v1.12.07".to_string()), )); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.CreateDORADeployment", true); let api = DORAMetricsAPI::with_config(configuration); let resp = api.create_dora_deployment(body).await; diff --git a/examples/v2_dora-metrics_create_dora_incident.rs b/examples/v2_dora-metrics_create_dora_incident.rs index 34186e1a7..a811344f0 100644 --- a/examples/v2_dora-metrics_create_dora_incident.rs +++ b/examples/v2_dora-metrics_create_dora_incident.rs @@ -1,6 +1,6 @@ // Send an incident event for DORA Metrics returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_dora_metrics::DORAMetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_dora_metrics::DORAMetricsAPI; use datadog_api_client::datadogV2::model::DORAGitInfo; use datadog_api_client::datadogV2::model::DORAIncidentRequest; use datadog_api_client::datadogV2::model::DORAIncidentRequestAttributes; @@ -9,17 +9,19 @@ use datadog_api_client::datadogV2::model::DORAIncidentRequestData; #[tokio::main] async fn main() { let body = DORAIncidentRequest::new(DORAIncidentRequestData::new( - DORAIncidentRequestAttributes::new("shopist".to_string(), 1693491974000000000) - .finished_at(1693491984000000000) + DORAIncidentRequestAttributes::new(1707842944500000000) + .finished_at(1707842944600000000) .git(DORAGitInfo::new( "66adc9350f2cc9b250b69abddab733dd55e1a588".to_string(), "https://github.com/organization/example-repository".to_string(), )) .name("Webserver is down failing all requests".to_string()) + .services(vec!["shopist".to_string()]) .severity("High".to_string()) + .team("backend".to_string()) .version("v1.12.07".to_string()), )); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.CreateDORAIncident", true); let api = DORAMetricsAPI::with_config(configuration); let resp = api.create_dora_incident(body).await; diff --git a/examples/v2_downtimes_cancel_downtime.rs b/examples/v2_downtimes_cancel_downtime.rs index 5405f67c1..f6401f0e4 100644 --- a/examples/v2_downtimes_cancel_downtime.rs +++ b/examples/v2_downtimes_cancel_downtime.rs @@ -1,12 +1,12 @@ // Cancel a downtime returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_downtimes::DowntimesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_downtimes::DowntimesAPI; #[tokio::main] async fn main() { // there is a valid "downtime_v2" in the system let downtime_v2_data_id = std::env::var("DOWNTIME_V2_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DowntimesAPI::with_config(configuration); let resp = api.cancel_downtime(downtime_v2_data_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v2_downtimes_create_downtime.rs b/examples/v2_downtimes_create_downtime.rs index 56d10e520..eb25c00f8 100644 --- a/examples/v2_downtimes_create_downtime.rs +++ b/examples/v2_downtimes_create_downtime.rs @@ -1,6 +1,6 @@ // Schedule a downtime returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_downtimes::DowntimesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_downtimes::DowntimesAPI; use datadog_api_client::datadogV2::model::DowntimeCreateRequest; use datadog_api_client::datadogV2::model::DowntimeCreateRequestAttributes; use datadog_api_client::datadogV2::model::DowntimeCreateRequestData; @@ -27,7 +27,7 @@ async fn main() { ), DowntimeResourceType::DOWNTIME, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DowntimesAPI::with_config(configuration); let resp = api.create_downtime(body).await; if let Ok(value) = resp { diff --git a/examples/v2_downtimes_get_downtime.rs b/examples/v2_downtimes_get_downtime.rs index 7f94c8845..b06ddf68a 100644 --- a/examples/v2_downtimes_get_downtime.rs +++ b/examples/v2_downtimes_get_downtime.rs @@ -1,13 +1,13 @@ // Get a downtime returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_downtimes::DowntimesAPI; -use datadog_api_client::datadogV2::api::api_downtimes::GetDowntimeOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_downtimes::DowntimesAPI; +use datadog_api_client::datadogV2::api_downtimes::GetDowntimeOptionalParams; #[tokio::main] async fn main() { // there is a valid "downtime_v2" in the system let downtime_v2_data_id = std::env::var("DOWNTIME_V2_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DowntimesAPI::with_config(configuration); let resp = api .get_downtime( diff --git a/examples/v2_downtimes_list_downtimes.rs b/examples/v2_downtimes_list_downtimes.rs index 60e84615d..cd93c83bb 100644 --- a/examples/v2_downtimes_list_downtimes.rs +++ b/examples/v2_downtimes_list_downtimes.rs @@ -1,11 +1,11 @@ // Get all downtimes returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_downtimes::DowntimesAPI; -use datadog_api_client::datadogV2::api::api_downtimes::ListDowntimesOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_downtimes::DowntimesAPI; +use datadog_api_client::datadogV2::api_downtimes::ListDowntimesOptionalParams; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DowntimesAPI::with_config(configuration); let resp = api .list_downtimes(ListDowntimesOptionalParams::default()) diff --git a/examples/v2_downtimes_list_downtimes_805770330.rs b/examples/v2_downtimes_list_downtimes_805770330.rs index bfa23efad..e043e4d0d 100644 --- a/examples/v2_downtimes_list_downtimes_805770330.rs +++ b/examples/v2_downtimes_list_downtimes_805770330.rs @@ -1,13 +1,13 @@ // Get all downtimes returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_downtimes::DowntimesAPI; -use datadog_api_client::datadogV2::api::api_downtimes::ListDowntimesOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_downtimes::DowntimesAPI; +use datadog_api_client::datadogV2::api_downtimes::ListDowntimesOptionalParams; use futures_util::pin_mut; use futures_util::stream::StreamExt; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DowntimesAPI::with_config(configuration); let response = api.list_downtimes_with_pagination(ListDowntimesOptionalParams::default().page_limit(2)); diff --git a/examples/v2_downtimes_list_monitor_downtimes.rs b/examples/v2_downtimes_list_monitor_downtimes.rs index b8f91c103..01ea2d586 100644 --- a/examples/v2_downtimes_list_monitor_downtimes.rs +++ b/examples/v2_downtimes_list_monitor_downtimes.rs @@ -1,11 +1,11 @@ // Get active downtimes for a monitor returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_downtimes::DowntimesAPI; -use datadog_api_client::datadogV2::api::api_downtimes::ListMonitorDowntimesOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_downtimes::DowntimesAPI; +use datadog_api_client::datadogV2::api_downtimes::ListMonitorDowntimesOptionalParams; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DowntimesAPI::with_config(configuration); let resp = api .list_monitor_downtimes(35534610, ListMonitorDowntimesOptionalParams::default()) diff --git a/examples/v2_downtimes_list_monitor_downtimes_3316718253.rs b/examples/v2_downtimes_list_monitor_downtimes_3316718253.rs index 478915184..cdc544fec 100644 --- a/examples/v2_downtimes_list_monitor_downtimes_3316718253.rs +++ b/examples/v2_downtimes_list_monitor_downtimes_3316718253.rs @@ -1,13 +1,13 @@ // Get active downtimes for a monitor returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_downtimes::DowntimesAPI; -use datadog_api_client::datadogV2::api::api_downtimes::ListMonitorDowntimesOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_downtimes::DowntimesAPI; +use datadog_api_client::datadogV2::api_downtimes::ListMonitorDowntimesOptionalParams; use futures_util::pin_mut; use futures_util::stream::StreamExt; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DowntimesAPI::with_config(configuration); let response = api.list_monitor_downtimes_with_pagination( 9223372036854775807, diff --git a/examples/v2_downtimes_update_downtime.rs b/examples/v2_downtimes_update_downtime.rs index f76b04126..431492f26 100644 --- a/examples/v2_downtimes_update_downtime.rs +++ b/examples/v2_downtimes_update_downtime.rs @@ -1,6 +1,6 @@ // Update a downtime returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_downtimes::DowntimesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_downtimes::DowntimesAPI; use datadog_api_client::datadogV2::model::DowntimeResourceType; use datadog_api_client::datadogV2::model::DowntimeUpdateRequest; use datadog_api_client::datadogV2::model::DowntimeUpdateRequestAttributes; @@ -15,7 +15,7 @@ async fn main() { downtime_v2_data_id.clone(), DowntimeResourceType::DOWNTIME, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = DowntimesAPI::with_config(configuration); let resp = api.update_downtime(downtime_v2_data_id.clone(), body).await; if let Ok(value) = resp { diff --git a/examples/v2_events_list_events.rs b/examples/v2_events_list_events.rs index 6be467d73..f0301c6db 100644 --- a/examples/v2_events_list_events.rs +++ b/examples/v2_events_list_events.rs @@ -1,11 +1,11 @@ // Get a list of events returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_events::EventsAPI; -use datadog_api_client::datadogV2::api::api_events::ListEventsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_events::EventsAPI; +use datadog_api_client::datadogV2::api_events::ListEventsOptionalParams; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = EventsAPI::with_config(configuration); let resp = api.list_events(ListEventsOptionalParams::default()).await; if let Ok(value) = resp { diff --git a/examples/v2_events_list_events_1527584014.rs b/examples/v2_events_list_events_1527584014.rs index 1a106cb3b..79726b5ae 100644 --- a/examples/v2_events_list_events_1527584014.rs +++ b/examples/v2_events_list_events_1527584014.rs @@ -1,13 +1,13 @@ // Get a list of events returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_events::EventsAPI; -use datadog_api_client::datadogV2::api::api_events::ListEventsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_events::EventsAPI; +use datadog_api_client::datadogV2::api_events::ListEventsOptionalParams; use futures_util::pin_mut; use futures_util::stream::StreamExt; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = EventsAPI::with_config(configuration); let response = api.list_events_with_pagination( ListEventsOptionalParams::default() diff --git a/examples/v2_events_list_events_2663715109.rs b/examples/v2_events_list_events_2663715109.rs index 8617acb7f..bfc213c4f 100644 --- a/examples/v2_events_list_events_2663715109.rs +++ b/examples/v2_events_list_events_2663715109.rs @@ -1,11 +1,11 @@ // Get a quick list of events returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_events::EventsAPI; -use datadog_api_client::datadogV2::api::api_events::ListEventsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_events::EventsAPI; +use datadog_api_client::datadogV2::api_events::ListEventsOptionalParams; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = EventsAPI::with_config(configuration); let resp = api .list_events( diff --git a/examples/v2_events_search_events.rs b/examples/v2_events_search_events.rs index 592646cce..752acfcc0 100644 --- a/examples/v2_events_search_events.rs +++ b/examples/v2_events_search_events.rs @@ -1,7 +1,7 @@ // Search events returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_events::EventsAPI; -use datadog_api_client::datadogV2::api::api_events::SearchEventsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_events::EventsAPI; +use datadog_api_client::datadogV2::api_events::SearchEventsOptionalParams; use datadog_api_client::datadogV2::model::EventsListRequest; use datadog_api_client::datadogV2::model::EventsQueryFilter; use datadog_api_client::datadogV2::model::EventsRequestPage; @@ -18,7 +18,7 @@ async fn main() { ) .page(EventsRequestPage::new().limit(5)) .sort(EventsSort::TIMESTAMP_ASCENDING); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = EventsAPI::with_config(configuration); let resp = api .search_events(SearchEventsOptionalParams::default().body(body)) diff --git a/examples/v2_events_search_events_3856995058.rs b/examples/v2_events_search_events_3856995058.rs index 10d015e29..c86d100c0 100644 --- a/examples/v2_events_search_events_3856995058.rs +++ b/examples/v2_events_search_events_3856995058.rs @@ -1,7 +1,7 @@ // Search events returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_events::EventsAPI; -use datadog_api_client::datadogV2::api::api_events::SearchEventsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_events::EventsAPI; +use datadog_api_client::datadogV2::api_events::SearchEventsOptionalParams; use datadog_api_client::datadogV2::model::EventsListRequest; use datadog_api_client::datadogV2::model::EventsQueryFilter; use datadog_api_client::datadogV2::model::EventsQueryOptions; @@ -21,7 +21,7 @@ async fn main() { .options(EventsQueryOptions::new().timezone("GMT".to_string())) .page(EventsRequestPage::new().limit(2)) .sort(EventsSort::TIMESTAMP_ASCENDING); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = EventsAPI::with_config(configuration); let response = api.search_events_with_pagination(SearchEventsOptionalParams::default().body(body)); diff --git a/examples/v2_fastly-integration_create_fastly_account.rs b/examples/v2_fastly-integration_create_fastly_account.rs index 563d8b2b5..d41184a2d 100644 --- a/examples/v2_fastly-integration_create_fastly_account.rs +++ b/examples/v2_fastly-integration_create_fastly_account.rs @@ -1,6 +1,6 @@ // Add Fastly account returns "CREATED" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_fastly_integration::FastlyIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_fastly_integration::FastlyIntegrationAPI; use datadog_api_client::datadogV2::model::FastlyAccountCreateRequest; use datadog_api_client::datadogV2::model::FastlyAccountCreateRequestAttributes; use datadog_api_client::datadogV2::model::FastlyAccountCreateRequestData; @@ -16,7 +16,7 @@ async fn main() { .services(vec![]), FastlyAccountType::FASTLY_ACCOUNTS, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = FastlyIntegrationAPI::with_config(configuration); let resp = api.create_fastly_account(body).await; if let Ok(value) = resp { diff --git a/examples/v2_fastly-integration_create_fastly_service.rs b/examples/v2_fastly-integration_create_fastly_service.rs index e2ee79c32..172e5895e 100644 --- a/examples/v2_fastly-integration_create_fastly_service.rs +++ b/examples/v2_fastly-integration_create_fastly_service.rs @@ -1,6 +1,6 @@ // Add Fastly service returns "CREATED" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_fastly_integration::FastlyIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_fastly_integration::FastlyIntegrationAPI; use datadog_api_client::datadogV2::model::FastlyServiceAttributes; use datadog_api_client::datadogV2::model::FastlyServiceData; use datadog_api_client::datadogV2::model::FastlyServiceRequest; @@ -15,7 +15,7 @@ async fn main() { .tags(vec!["myTag".to_string(), "myTag2:myValue".to_string()]), ), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = FastlyIntegrationAPI::with_config(configuration); let resp = api .create_fastly_service("account_id".to_string(), body) diff --git a/examples/v2_fastly-integration_delete_fastly_account.rs b/examples/v2_fastly-integration_delete_fastly_account.rs index 4e85b9bd4..eeed863fa 100644 --- a/examples/v2_fastly-integration_delete_fastly_account.rs +++ b/examples/v2_fastly-integration_delete_fastly_account.rs @@ -1,10 +1,10 @@ // Delete Fastly account returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_fastly_integration::FastlyIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_fastly_integration::FastlyIntegrationAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = FastlyIntegrationAPI::with_config(configuration); let resp = api.delete_fastly_account("account_id".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v2_fastly-integration_delete_fastly_service.rs b/examples/v2_fastly-integration_delete_fastly_service.rs index 600216cd7..2bd5c31b8 100644 --- a/examples/v2_fastly-integration_delete_fastly_service.rs +++ b/examples/v2_fastly-integration_delete_fastly_service.rs @@ -1,10 +1,10 @@ // Delete Fastly service returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_fastly_integration::FastlyIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_fastly_integration::FastlyIntegrationAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = FastlyIntegrationAPI::with_config(configuration); let resp = api .delete_fastly_service("account_id".to_string(), "service_id".to_string()) diff --git a/examples/v2_fastly-integration_get_fastly_account.rs b/examples/v2_fastly-integration_get_fastly_account.rs index 1b074305c..df0184235 100644 --- a/examples/v2_fastly-integration_get_fastly_account.rs +++ b/examples/v2_fastly-integration_get_fastly_account.rs @@ -1,12 +1,12 @@ // Get Fastly account returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_fastly_integration::FastlyIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_fastly_integration::FastlyIntegrationAPI; #[tokio::main] async fn main() { // there is a valid "fastly_account" in the system let fastly_account_data_id = std::env::var("FASTLY_ACCOUNT_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = FastlyIntegrationAPI::with_config(configuration); let resp = api.get_fastly_account(fastly_account_data_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v2_fastly-integration_get_fastly_service.rs b/examples/v2_fastly-integration_get_fastly_service.rs index bcd11ed3b..65babf67f 100644 --- a/examples/v2_fastly-integration_get_fastly_service.rs +++ b/examples/v2_fastly-integration_get_fastly_service.rs @@ -1,10 +1,10 @@ // Get Fastly service returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_fastly_integration::FastlyIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_fastly_integration::FastlyIntegrationAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = FastlyIntegrationAPI::with_config(configuration); let resp = api .get_fastly_service("account_id".to_string(), "service_id".to_string()) diff --git a/examples/v2_fastly-integration_list_fastly_accounts.rs b/examples/v2_fastly-integration_list_fastly_accounts.rs index 5cd6d152a..ceb8c92cd 100644 --- a/examples/v2_fastly-integration_list_fastly_accounts.rs +++ b/examples/v2_fastly-integration_list_fastly_accounts.rs @@ -1,10 +1,10 @@ // List Fastly accounts returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_fastly_integration::FastlyIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_fastly_integration::FastlyIntegrationAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = FastlyIntegrationAPI::with_config(configuration); let resp = api.list_fastly_accounts().await; if let Ok(value) = resp { diff --git a/examples/v2_fastly-integration_list_fastly_services.rs b/examples/v2_fastly-integration_list_fastly_services.rs index ca9923786..2dd7b1813 100644 --- a/examples/v2_fastly-integration_list_fastly_services.rs +++ b/examples/v2_fastly-integration_list_fastly_services.rs @@ -1,10 +1,10 @@ // List Fastly services returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_fastly_integration::FastlyIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_fastly_integration::FastlyIntegrationAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = FastlyIntegrationAPI::with_config(configuration); let resp = api.list_fastly_services("account_id".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v2_fastly-integration_update_fastly_account.rs b/examples/v2_fastly-integration_update_fastly_account.rs index 01f481da1..06c504b05 100644 --- a/examples/v2_fastly-integration_update_fastly_account.rs +++ b/examples/v2_fastly-integration_update_fastly_account.rs @@ -1,6 +1,6 @@ // Update Fastly account returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_fastly_integration::FastlyIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_fastly_integration::FastlyIntegrationAPI; use datadog_api_client::datadogV2::model::FastlyAccountType; use datadog_api_client::datadogV2::model::FastlyAccountUpdateRequest; use datadog_api_client::datadogV2::model::FastlyAccountUpdateRequestAttributes; @@ -17,7 +17,7 @@ async fn main() { ) .type_(FastlyAccountType::FASTLY_ACCOUNTS), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = FastlyIntegrationAPI::with_config(configuration); let resp = api .update_fastly_account(fastly_account_data_id.clone(), body) diff --git a/examples/v2_fastly-integration_update_fastly_service.rs b/examples/v2_fastly-integration_update_fastly_service.rs index 06b27ca16..e0c2699f9 100644 --- a/examples/v2_fastly-integration_update_fastly_service.rs +++ b/examples/v2_fastly-integration_update_fastly_service.rs @@ -1,6 +1,6 @@ // Update Fastly service returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_fastly_integration::FastlyIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_fastly_integration::FastlyIntegrationAPI; use datadog_api_client::datadogV2::model::FastlyServiceAttributes; use datadog_api_client::datadogV2::model::FastlyServiceData; use datadog_api_client::datadogV2::model::FastlyServiceRequest; @@ -15,7 +15,7 @@ async fn main() { .tags(vec!["myTag".to_string(), "myTag2:myValue".to_string()]), ), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = FastlyIntegrationAPI::with_config(configuration); let resp = api .update_fastly_service("account_id".to_string(), "service_id".to_string(), body) diff --git a/examples/v2_gcp-integration_create_gcpsts_account.rs b/examples/v2_gcp-integration_create_gcpsts_account.rs index 32be41edc..b90b41383 100644 --- a/examples/v2_gcp-integration_create_gcpsts_account.rs +++ b/examples/v2_gcp-integration_create_gcpsts_account.rs @@ -1,6 +1,6 @@ // Create a new entry for your service account returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_gcp_integration::GCPIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_gcp_integration::GCPIntegrationAPI; use datadog_api_client::datadogV2::model::GCPSTSServiceAccountAttributes; use datadog_api_client::datadogV2::model::GCPSTSServiceAccountCreateRequest; use datadog_api_client::datadogV2::model::GCPSTSServiceAccountData; @@ -13,13 +13,13 @@ async fn main() { .attributes( GCPSTSServiceAccountAttributes::new() .client_email( - "252bf553ef04b351@test-project.iam.gserviceaccount.com".to_string(), + "Test-252bf553ef04b351@test-project.iam.gserviceaccount.com".to_string(), ) .host_filters(vec![]), ) .type_(GCPServiceAccountType::GCP_SERVICE_ACCOUNT), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = GCPIntegrationAPI::with_config(configuration); let resp = api.create_gcpsts_account(body).await; if let Ok(value) = resp { diff --git a/examples/v2_gcp-integration_create_gcpsts_account_109518525.rs b/examples/v2_gcp-integration_create_gcpsts_account_109518525.rs index 74018bd6f..a4a6e37b0 100644 --- a/examples/v2_gcp-integration_create_gcpsts_account_109518525.rs +++ b/examples/v2_gcp-integration_create_gcpsts_account_109518525.rs @@ -1,7 +1,7 @@ // Create a new entry for your service account with account_tags returns "OK" // response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_gcp_integration::GCPIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_gcp_integration::GCPIntegrationAPI; use datadog_api_client::datadogV2::model::GCPSTSServiceAccountAttributes; use datadog_api_client::datadogV2::model::GCPSTSServiceAccountCreateRequest; use datadog_api_client::datadogV2::model::GCPSTSServiceAccountData; @@ -15,13 +15,13 @@ async fn main() { GCPSTSServiceAccountAttributes::new() .account_tags(vec!["lorem".to_string(), "ipsum".to_string()]) .client_email( - "252bf553ef04b351@test-project.iam.gserviceaccount.com".to_string(), + "Test-252bf553ef04b351@test-project.iam.gserviceaccount.com".to_string(), ) .host_filters(vec![]), ) .type_(GCPServiceAccountType::GCP_SERVICE_ACCOUNT), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = GCPIntegrationAPI::with_config(configuration); let resp = api.create_gcpsts_account(body).await; if let Ok(value) = resp { diff --git a/examples/v2_gcp-integration_create_gcpsts_account_130557025.rs b/examples/v2_gcp-integration_create_gcpsts_account_130557025.rs index d0892da45..bd05af7fb 100644 --- a/examples/v2_gcp-integration_create_gcpsts_account_130557025.rs +++ b/examples/v2_gcp-integration_create_gcpsts_account_130557025.rs @@ -1,7 +1,7 @@ // Create a new entry for your service account with resource collection enabled // returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_gcp_integration::GCPIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_gcp_integration::GCPIntegrationAPI; use datadog_api_client::datadogV2::model::GCPSTSServiceAccountAttributes; use datadog_api_client::datadogV2::model::GCPSTSServiceAccountCreateRequest; use datadog_api_client::datadogV2::model::GCPSTSServiceAccountData; @@ -14,14 +14,14 @@ async fn main() { .attributes( GCPSTSServiceAccountAttributes::new() .client_email( - "252bf553ef04b351@test-project.iam.gserviceaccount.com".to_string(), + "Test-252bf553ef04b351@test-project.iam.gserviceaccount.com".to_string(), ) .host_filters(vec![]) .resource_collection_enabled(true), ) .type_(GCPServiceAccountType::GCP_SERVICE_ACCOUNT), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = GCPIntegrationAPI::with_config(configuration); let resp = api.create_gcpsts_account(body).await; if let Ok(value) = resp { diff --git a/examples/v2_gcp-integration_create_gcpsts_account_194782945.rs b/examples/v2_gcp-integration_create_gcpsts_account_194782945.rs new file mode 100644 index 000000000..6767c7890 --- /dev/null +++ b/examples/v2_gcp-integration_create_gcpsts_account_194782945.rs @@ -0,0 +1,32 @@ +// Create a new entry for your service account with cloud run revision filters +// enabled returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_gcp_integration::GCPIntegrationAPI; +use datadog_api_client::datadogV2::model::GCPSTSServiceAccountAttributes; +use datadog_api_client::datadogV2::model::GCPSTSServiceAccountCreateRequest; +use datadog_api_client::datadogV2::model::GCPSTSServiceAccountData; +use datadog_api_client::datadogV2::model::GCPServiceAccountType; + +#[tokio::main] +async fn main() { + let body = GCPSTSServiceAccountCreateRequest::new().data( + GCPSTSServiceAccountData::new() + .attributes( + GCPSTSServiceAccountAttributes::new() + .client_email( + "Test-252bf553ef04b351@test-project.iam.gserviceaccount.com".to_string(), + ) + .cloud_run_revision_filters(vec!["meh:bleh".to_string()]) + .host_filters(vec![]), + ) + .type_(GCPServiceAccountType::GCP_SERVICE_ACCOUNT), + ); + let configuration = datadog::Configuration::new(); + let api = GCPIntegrationAPI::with_config(configuration); + let resp = api.create_gcpsts_account(body).await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_gcp-integration_create_gcpsts_account_2597004741.rs b/examples/v2_gcp-integration_create_gcpsts_account_2597004741.rs index 46fbd535d..4b6566877 100644 --- a/examples/v2_gcp-integration_create_gcpsts_account_2597004741.rs +++ b/examples/v2_gcp-integration_create_gcpsts_account_2597004741.rs @@ -1,7 +1,7 @@ // Create a new entry for your service account with security command center // enabled returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_gcp_integration::GCPIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_gcp_integration::GCPIntegrationAPI; use datadog_api_client::datadogV2::model::GCPSTSServiceAccountAttributes; use datadog_api_client::datadogV2::model::GCPSTSServiceAccountCreateRequest; use datadog_api_client::datadogV2::model::GCPSTSServiceAccountData; @@ -14,14 +14,14 @@ async fn main() { .attributes( GCPSTSServiceAccountAttributes::new() .client_email( - "252bf553ef04b351@test-project.iam.gserviceaccount.com".to_string(), + "Test-252bf553ef04b351@test-project.iam.gserviceaccount.com".to_string(), ) .host_filters(vec![]) .is_security_command_center_enabled(true), ) .type_(GCPServiceAccountType::GCP_SERVICE_ACCOUNT), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = GCPIntegrationAPI::with_config(configuration); let resp = api.create_gcpsts_account(body).await; if let Ok(value) = resp { diff --git a/examples/v2_gcp-integration_create_gcpsts_account_4235664992.rs b/examples/v2_gcp-integration_create_gcpsts_account_4235664992.rs index 2743c39df..326d3ee2b 100644 --- a/examples/v2_gcp-integration_create_gcpsts_account_4235664992.rs +++ b/examples/v2_gcp-integration_create_gcpsts_account_4235664992.rs @@ -1,7 +1,7 @@ // Create a new entry for your service account with cspm enabled returns "OK" // response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_gcp_integration::GCPIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_gcp_integration::GCPIntegrationAPI; use datadog_api_client::datadogV2::model::GCPSTSServiceAccountAttributes; use datadog_api_client::datadogV2::model::GCPSTSServiceAccountCreateRequest; use datadog_api_client::datadogV2::model::GCPSTSServiceAccountData; @@ -14,7 +14,7 @@ async fn main() { .attributes( GCPSTSServiceAccountAttributes::new() .client_email( - "252bf553ef04b351@test-project.iam.gserviceaccount.com".to_string(), + "Test-252bf553ef04b351@test-project.iam.gserviceaccount.com".to_string(), ) .host_filters(vec![]) .is_cspm_enabled(true) @@ -22,7 +22,7 @@ async fn main() { ) .type_(GCPServiceAccountType::GCP_SERVICE_ACCOUNT), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = GCPIntegrationAPI::with_config(configuration); let resp = api.create_gcpsts_account(body).await; if let Ok(value) = resp { diff --git a/examples/v2_gcp-integration_delete_gcpsts_account.rs b/examples/v2_gcp-integration_delete_gcpsts_account.rs index 27583c03b..1cdca7d38 100644 --- a/examples/v2_gcp-integration_delete_gcpsts_account.rs +++ b/examples/v2_gcp-integration_delete_gcpsts_account.rs @@ -1,10 +1,10 @@ // Delete an STS enabled GCP Account returns "No Content" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_gcp_integration::GCPIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_gcp_integration::GCPIntegrationAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = GCPIntegrationAPI::with_config(configuration); let resp = api.delete_gcpsts_account("account_id".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v2_gcp-integration_get_gcpsts_delegate.rs b/examples/v2_gcp-integration_get_gcpsts_delegate.rs index 689f773db..0ff67baba 100644 --- a/examples/v2_gcp-integration_get_gcpsts_delegate.rs +++ b/examples/v2_gcp-integration_get_gcpsts_delegate.rs @@ -1,10 +1,10 @@ // List delegate account returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_gcp_integration::GCPIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_gcp_integration::GCPIntegrationAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = GCPIntegrationAPI::with_config(configuration); let resp = api.get_gcpsts_delegate().await; if let Ok(value) = resp { diff --git a/examples/v2_gcp-integration_list_gcpsts_accounts.rs b/examples/v2_gcp-integration_list_gcpsts_accounts.rs index 64b4560fb..19755a441 100644 --- a/examples/v2_gcp-integration_list_gcpsts_accounts.rs +++ b/examples/v2_gcp-integration_list_gcpsts_accounts.rs @@ -1,10 +1,10 @@ // List all GCP STS-enabled service accounts returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_gcp_integration::GCPIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_gcp_integration::GCPIntegrationAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = GCPIntegrationAPI::with_config(configuration); let resp = api.list_gcpsts_accounts().await; if let Ok(value) = resp { diff --git a/examples/v2_gcp-integration_make_gcpsts_delegate.rs b/examples/v2_gcp-integration_make_gcpsts_delegate.rs index 045d10b04..dfa101614 100644 --- a/examples/v2_gcp-integration_make_gcpsts_delegate.rs +++ b/examples/v2_gcp-integration_make_gcpsts_delegate.rs @@ -1,11 +1,11 @@ // Create a Datadog GCP principal returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_gcp_integration::GCPIntegrationAPI; -use datadog_api_client::datadogV2::api::api_gcp_integration::MakeGCPSTSDelegateOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_gcp_integration::GCPIntegrationAPI; +use datadog_api_client::datadogV2::api_gcp_integration::MakeGCPSTSDelegateOptionalParams; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = GCPIntegrationAPI::with_config(configuration); let resp = api .make_gcpsts_delegate(MakeGCPSTSDelegateOptionalParams::default()) diff --git a/examples/v2_gcp-integration_make_gcpsts_delegate_962598975.rs b/examples/v2_gcp-integration_make_gcpsts_delegate_962598975.rs index 4c41d054f..ddf32e438 100644 --- a/examples/v2_gcp-integration_make_gcpsts_delegate_962598975.rs +++ b/examples/v2_gcp-integration_make_gcpsts_delegate_962598975.rs @@ -1,13 +1,13 @@ // Create a Datadog GCP principal with empty body returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_gcp_integration::GCPIntegrationAPI; -use datadog_api_client::datadogV2::api::api_gcp_integration::MakeGCPSTSDelegateOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_gcp_integration::GCPIntegrationAPI; +use datadog_api_client::datadogV2::api_gcp_integration::MakeGCPSTSDelegateOptionalParams; use std::collections::BTreeMap; #[tokio::main] async fn main() { let body = BTreeMap::new(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = GCPIntegrationAPI::with_config(configuration); let resp = api .make_gcpsts_delegate(MakeGCPSTSDelegateOptionalParams::default().body(body)) diff --git a/examples/v2_gcp-integration_update_gcpsts_account.rs b/examples/v2_gcp-integration_update_gcpsts_account.rs index 16bf928e5..f46a2cd22 100644 --- a/examples/v2_gcp-integration_update_gcpsts_account.rs +++ b/examples/v2_gcp-integration_update_gcpsts_account.rs @@ -1,6 +1,6 @@ // Update STS Service Account returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_gcp_integration::GCPIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_gcp_integration::GCPIntegrationAPI; use datadog_api_client::datadogV2::model::GCPSTSServiceAccountAttributes; use datadog_api_client::datadogV2::model::GCPSTSServiceAccountUpdateRequest; use datadog_api_client::datadogV2::model::GCPSTSServiceAccountUpdateRequestData; @@ -14,13 +14,13 @@ async fn main() { GCPSTSServiceAccountUpdateRequestData::new() .attributes( GCPSTSServiceAccountAttributes::new() - .client_email("252bf553ef04b351@example.com".to_string()) + .client_email("Test-252bf553ef04b351@example.com".to_string()) .host_filters(vec!["foo:bar".to_string()]), ) .id(gcp_sts_account_data_id.clone()) .type_(GCPServiceAccountType::GCP_SERVICE_ACCOUNT), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = GCPIntegrationAPI::with_config(configuration); let resp = api .update_gcpsts_account(gcp_sts_account_data_id.clone(), body) diff --git a/examples/v2_gcp-integration_update_gcpsts_account_2241994060.rs b/examples/v2_gcp-integration_update_gcpsts_account_2241994060.rs new file mode 100644 index 000000000..220b45eec --- /dev/null +++ b/examples/v2_gcp-integration_update_gcpsts_account_2241994060.rs @@ -0,0 +1,33 @@ +// Update STS Service Account returns "OK" response with cloud run revision filters +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_gcp_integration::GCPIntegrationAPI; +use datadog_api_client::datadogV2::model::GCPSTSServiceAccountAttributes; +use datadog_api_client::datadogV2::model::GCPSTSServiceAccountUpdateRequest; +use datadog_api_client::datadogV2::model::GCPSTSServiceAccountUpdateRequestData; +use datadog_api_client::datadogV2::model::GCPServiceAccountType; + +#[tokio::main] +async fn main() { + // there is a valid "gcp_sts_account" in the system + let gcp_sts_account_data_id = std::env::var("GCP_STS_ACCOUNT_DATA_ID").unwrap(); + let body = GCPSTSServiceAccountUpdateRequest::new().data( + GCPSTSServiceAccountUpdateRequestData::new() + .attributes( + GCPSTSServiceAccountAttributes::new() + .client_email("Test-252bf553ef04b351@example.com".to_string()) + .cloud_run_revision_filters(vec!["merp:derp".to_string()]), + ) + .id(gcp_sts_account_data_id.clone()) + .type_(GCPServiceAccountType::GCP_SERVICE_ACCOUNT), + ); + let configuration = datadog::Configuration::new(); + let api = GCPIntegrationAPI::with_config(configuration); + let resp = api + .update_gcpsts_account(gcp_sts_account_data_id.clone(), body) + .await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_gcp-integration_update_gcpsts_account_3205636354.rs b/examples/v2_gcp-integration_update_gcpsts_account_3205636354.rs index cabb68285..0139c644d 100644 --- a/examples/v2_gcp-integration_update_gcpsts_account_3205636354.rs +++ b/examples/v2_gcp-integration_update_gcpsts_account_3205636354.rs @@ -1,7 +1,7 @@ // Update STS Service Account returns "OK" response with enable resource // collection turned on -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_gcp_integration::GCPIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_gcp_integration::GCPIntegrationAPI; use datadog_api_client::datadogV2::model::GCPSTSServiceAccountAttributes; use datadog_api_client::datadogV2::model::GCPSTSServiceAccountUpdateRequest; use datadog_api_client::datadogV2::model::GCPSTSServiceAccountUpdateRequestData; @@ -15,13 +15,13 @@ async fn main() { GCPSTSServiceAccountUpdateRequestData::new() .attributes( GCPSTSServiceAccountAttributes::new() - .client_email("252bf553ef04b351@example.com".to_string()) + .client_email("Test-252bf553ef04b351@example.com".to_string()) .resource_collection_enabled(true), ) .id(gcp_sts_account_data_id.clone()) .type_(GCPServiceAccountType::GCP_SERVICE_ACCOUNT), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = GCPIntegrationAPI::with_config(configuration); let resp = api .update_gcpsts_account(gcp_sts_account_data_id.clone(), body) diff --git a/examples/v2_incident-services_create_incident_service.rs b/examples/v2_incident-services_create_incident_service.rs index 1fab4409e..64ae8abce 100644 --- a/examples/v2_incident-services_create_incident_service.rs +++ b/examples/v2_incident-services_create_incident_service.rs @@ -1,6 +1,6 @@ // Create a new incident service returns "CREATED" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incident_services::IncidentServicesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incident_services::IncidentServicesAPI; use datadog_api_client::datadogV2::model::IncidentServiceCreateAttributes; use datadog_api_client::datadogV2::model::IncidentServiceCreateData; use datadog_api_client::datadogV2::model::IncidentServiceCreateRequest; @@ -13,7 +13,7 @@ async fn main() { IncidentServiceCreateAttributes::new("Example-Incident-Service".to_string()), ), ); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.CreateIncidentService", true); let api = IncidentServicesAPI::with_config(configuration); let resp = api.create_incident_service(body).await; diff --git a/examples/v2_incident-services_delete_incident_service.rs b/examples/v2_incident-services_delete_incident_service.rs index 0296fcf6c..696721e30 100644 --- a/examples/v2_incident-services_delete_incident_service.rs +++ b/examples/v2_incident-services_delete_incident_service.rs @@ -1,12 +1,12 @@ // Delete an existing incident service returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incident_services::IncidentServicesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incident_services::IncidentServicesAPI; #[tokio::main] async fn main() { // there is a valid "service" in the system let service_data_id = std::env::var("SERVICE_DATA_ID").unwrap(); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.DeleteIncidentService", true); let api = IncidentServicesAPI::with_config(configuration); let resp = api.delete_incident_service(service_data_id.clone()).await; diff --git a/examples/v2_incident-services_get_incident_service.rs b/examples/v2_incident-services_get_incident_service.rs index 27a982713..bc0dfd5bd 100644 --- a/examples/v2_incident-services_get_incident_service.rs +++ b/examples/v2_incident-services_get_incident_service.rs @@ -1,13 +1,13 @@ // Get details of an incident service returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incident_services::GetIncidentServiceOptionalParams; -use datadog_api_client::datadogV2::api::api_incident_services::IncidentServicesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incident_services::GetIncidentServiceOptionalParams; +use datadog_api_client::datadogV2::api_incident_services::IncidentServicesAPI; #[tokio::main] async fn main() { // there is a valid "service" in the system let service_data_id = std::env::var("SERVICE_DATA_ID").unwrap(); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.GetIncidentService", true); let api = IncidentServicesAPI::with_config(configuration); let resp = api diff --git a/examples/v2_incident-services_list_incident_services.rs b/examples/v2_incident-services_list_incident_services.rs index e36bae768..ae99642fa 100644 --- a/examples/v2_incident-services_list_incident_services.rs +++ b/examples/v2_incident-services_list_incident_services.rs @@ -1,13 +1,13 @@ // Get a list of all incident services returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incident_services::IncidentServicesAPI; -use datadog_api_client::datadogV2::api::api_incident_services::ListIncidentServicesOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incident_services::IncidentServicesAPI; +use datadog_api_client::datadogV2::api_incident_services::ListIncidentServicesOptionalParams; #[tokio::main] async fn main() { // there is a valid "service" in the system let service_data_attributes_name = std::env::var("SERVICE_DATA_ATTRIBUTES_NAME").unwrap(); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.ListIncidentServices", true); let api = IncidentServicesAPI::with_config(configuration); let resp = api diff --git a/examples/v2_incident-services_update_incident_service.rs b/examples/v2_incident-services_update_incident_service.rs index eab4f4eb8..196227a63 100644 --- a/examples/v2_incident-services_update_incident_service.rs +++ b/examples/v2_incident-services_update_incident_service.rs @@ -1,6 +1,6 @@ // Update an existing incident service returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incident_services::IncidentServicesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incident_services::IncidentServicesAPI; use datadog_api_client::datadogV2::model::IncidentServiceType; use datadog_api_client::datadogV2::model::IncidentServiceUpdateAttributes; use datadog_api_client::datadogV2::model::IncidentServiceUpdateData; @@ -15,7 +15,7 @@ async fn main() { IncidentServiceUpdateAttributes::new("service name-updated".to_string()), ), ); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.UpdateIncidentService", true); let api = IncidentServicesAPI::with_config(configuration); let resp = api diff --git a/examples/v2_incident-teams_create_incident_team.rs b/examples/v2_incident-teams_create_incident_team.rs index b2d2e8236..9e610dc43 100644 --- a/examples/v2_incident-teams_create_incident_team.rs +++ b/examples/v2_incident-teams_create_incident_team.rs @@ -1,6 +1,6 @@ // Create a new incident team returns "CREATED" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incident_teams::IncidentTeamsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incident_teams::IncidentTeamsAPI; use datadog_api_client::datadogV2::model::IncidentTeamCreateAttributes; use datadog_api_client::datadogV2::model::IncidentTeamCreateData; use datadog_api_client::datadogV2::model::IncidentTeamCreateRequest; @@ -13,7 +13,7 @@ async fn main() { IncidentTeamCreateAttributes::new("Example-Incident-Team".to_string()), ), ); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.CreateIncidentTeam", true); let api = IncidentTeamsAPI::with_config(configuration); let resp = api.create_incident_team(body).await; diff --git a/examples/v2_incident-teams_delete_incident_team.rs b/examples/v2_incident-teams_delete_incident_team.rs index 6a45aefec..2bf61b508 100644 --- a/examples/v2_incident-teams_delete_incident_team.rs +++ b/examples/v2_incident-teams_delete_incident_team.rs @@ -1,12 +1,12 @@ // Delete an existing incident team returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incident_teams::IncidentTeamsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incident_teams::IncidentTeamsAPI; #[tokio::main] async fn main() { // there is a valid "team" in the system let team_data_id = std::env::var("TEAM_DATA_ID").unwrap(); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.DeleteIncidentTeam", true); let api = IncidentTeamsAPI::with_config(configuration); let resp = api.delete_incident_team(team_data_id.clone()).await; diff --git a/examples/v2_incident-teams_get_incident_team.rs b/examples/v2_incident-teams_get_incident_team.rs index a2c0e66e0..32117517c 100644 --- a/examples/v2_incident-teams_get_incident_team.rs +++ b/examples/v2_incident-teams_get_incident_team.rs @@ -1,13 +1,13 @@ // Get details of an incident team returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incident_teams::GetIncidentTeamOptionalParams; -use datadog_api_client::datadogV2::api::api_incident_teams::IncidentTeamsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incident_teams::GetIncidentTeamOptionalParams; +use datadog_api_client::datadogV2::api_incident_teams::IncidentTeamsAPI; #[tokio::main] async fn main() { // there is a valid "team" in the system let team_data_id = std::env::var("TEAM_DATA_ID").unwrap(); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.GetIncidentTeam", true); let api = IncidentTeamsAPI::with_config(configuration); let resp = api diff --git a/examples/v2_incident-teams_list_incident_teams.rs b/examples/v2_incident-teams_list_incident_teams.rs index 1612e835e..76614029d 100644 --- a/examples/v2_incident-teams_list_incident_teams.rs +++ b/examples/v2_incident-teams_list_incident_teams.rs @@ -1,13 +1,13 @@ // Get a list of all incident teams returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incident_teams::IncidentTeamsAPI; -use datadog_api_client::datadogV2::api::api_incident_teams::ListIncidentTeamsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incident_teams::IncidentTeamsAPI; +use datadog_api_client::datadogV2::api_incident_teams::ListIncidentTeamsOptionalParams; #[tokio::main] async fn main() { // there is a valid "team" in the system let team_data_attributes_name = std::env::var("TEAM_DATA_ATTRIBUTES_NAME").unwrap(); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.ListIncidentTeams", true); let api = IncidentTeamsAPI::with_config(configuration); let resp = api diff --git a/examples/v2_incident-teams_update_incident_team.rs b/examples/v2_incident-teams_update_incident_team.rs index 9fa4332f0..78befccd4 100644 --- a/examples/v2_incident-teams_update_incident_team.rs +++ b/examples/v2_incident-teams_update_incident_team.rs @@ -1,6 +1,6 @@ // Update an existing incident team returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incident_teams::IncidentTeamsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incident_teams::IncidentTeamsAPI; use datadog_api_client::datadogV2::model::IncidentTeamType; use datadog_api_client::datadogV2::model::IncidentTeamUpdateAttributes; use datadog_api_client::datadogV2::model::IncidentTeamUpdateData; @@ -15,7 +15,7 @@ async fn main() { IncidentTeamUpdateAttributes::new("team name-updated".to_string()), ), ); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.UpdateIncidentTeam", true); let api = IncidentTeamsAPI::with_config(configuration); let resp = api.update_incident_team(team_data_id.clone(), body).await; diff --git a/examples/v2_incidents_create_incident.rs b/examples/v2_incidents_create_incident.rs index f52ea36b2..2e87e1457 100644 --- a/examples/v2_incidents_create_incident.rs +++ b/examples/v2_incidents_create_incident.rs @@ -1,6 +1,6 @@ // Create an incident returns "CREATED" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incidents::IncidentsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incidents::IncidentsAPI; use datadog_api_client::datadogV2::model::IncidentCreateAttributes; use datadog_api_client::datadogV2::model::IncidentCreateData; use datadog_api_client::datadogV2::model::IncidentCreateRelationships; @@ -39,7 +39,7 @@ async fn main() { ))), ))), ); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.CreateIncident", true); let api = IncidentsAPI::with_config(configuration); let resp = api.create_incident(body).await; diff --git a/examples/v2_incidents_create_incident_integration.rs b/examples/v2_incidents_create_incident_integration.rs index 566ab7143..af118be3a 100644 --- a/examples/v2_incidents_create_incident_integration.rs +++ b/examples/v2_incidents_create_incident_integration.rs @@ -1,6 +1,6 @@ // Create an incident integration metadata returns "CREATED" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incidents::IncidentsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incidents::IncidentsAPI; use datadog_api_client::datadogV2::model::IncidentIntegrationMetadataAttributes; use datadog_api_client::datadogV2::model::IncidentIntegrationMetadataCreateData; use datadog_api_client::datadogV2::model::IncidentIntegrationMetadataCreateRequest; @@ -30,7 +30,7 @@ async fn main() { .incident_id(incident_data_id.clone()), IncidentIntegrationMetadataType::INCIDENT_INTEGRATIONS, )); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.CreateIncidentIntegration", true); let api = IncidentsAPI::with_config(configuration); let resp = api diff --git a/examples/v2_incidents_create_incident_todo.rs b/examples/v2_incidents_create_incident_todo.rs index f2ada014e..bfbf0e951 100644 --- a/examples/v2_incidents_create_incident_todo.rs +++ b/examples/v2_incidents_create_incident_todo.rs @@ -1,6 +1,6 @@ // Create an incident todo returns "CREATED" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incidents::IncidentsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incidents::IncidentsAPI; use datadog_api_client::datadogV2::model::IncidentTodoAssignee; use datadog_api_client::datadogV2::model::IncidentTodoAttributes; use datadog_api_client::datadogV2::model::IncidentTodoCreateData; @@ -20,7 +20,7 @@ async fn main() { ), IncidentTodoType::INCIDENT_TODOS, )); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.CreateIncidentTodo", true); let api = IncidentsAPI::with_config(configuration); let resp = api diff --git a/examples/v2_incidents_delete_incident.rs b/examples/v2_incidents_delete_incident.rs index 7f3ab9223..1052d0e8d 100644 --- a/examples/v2_incidents_delete_incident.rs +++ b/examples/v2_incidents_delete_incident.rs @@ -1,12 +1,12 @@ // Delete an existing incident returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incidents::IncidentsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incidents::IncidentsAPI; #[tokio::main] async fn main() { // there is a valid "incident" in the system let incident_data_id = std::env::var("INCIDENT_DATA_ID").unwrap(); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.DeleteIncident", true); let api = IncidentsAPI::with_config(configuration); let resp = api.delete_incident(incident_data_id.clone()).await; diff --git a/examples/v2_incidents_delete_incident_integration.rs b/examples/v2_incidents_delete_incident_integration.rs index 0f976cb3a..092eacdbb 100644 --- a/examples/v2_incidents_delete_incident_integration.rs +++ b/examples/v2_incidents_delete_incident_integration.rs @@ -1,6 +1,6 @@ // Delete an incident integration metadata returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incidents::IncidentsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incidents::IncidentsAPI; #[tokio::main] async fn main() { @@ -10,7 +10,7 @@ async fn main() { // the "incident" has an "incident_integration_metadata" let incident_integration_metadata_data_id = std::env::var("INCIDENT_INTEGRATION_METADATA_DATA_ID").unwrap(); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.DeleteIncidentIntegration", true); let api = IncidentsAPI::with_config(configuration); let resp = api diff --git a/examples/v2_incidents_delete_incident_todo.rs b/examples/v2_incidents_delete_incident_todo.rs index 6b7282adc..eb74fb9bc 100644 --- a/examples/v2_incidents_delete_incident_todo.rs +++ b/examples/v2_incidents_delete_incident_todo.rs @@ -1,6 +1,6 @@ // Delete an incident todo returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incidents::IncidentsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incidents::IncidentsAPI; #[tokio::main] async fn main() { @@ -9,7 +9,7 @@ async fn main() { // the "incident" has an "incident_todo" let incident_todo_data_id = std::env::var("INCIDENT_TODO_DATA_ID").unwrap(); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.DeleteIncidentTodo", true); let api = IncidentsAPI::with_config(configuration); let resp = api diff --git a/examples/v2_incidents_get_incident.rs b/examples/v2_incidents_get_incident.rs index ed6d00892..7884276ff 100644 --- a/examples/v2_incidents_get_incident.rs +++ b/examples/v2_incidents_get_incident.rs @@ -1,13 +1,13 @@ // Get the details of an incident returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incidents::GetIncidentOptionalParams; -use datadog_api_client::datadogV2::api::api_incidents::IncidentsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incidents::GetIncidentOptionalParams; +use datadog_api_client::datadogV2::api_incidents::IncidentsAPI; #[tokio::main] async fn main() { // there is a valid "incident" in the system let incident_data_id = std::env::var("INCIDENT_DATA_ID").unwrap(); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.GetIncident", true); let api = IncidentsAPI::with_config(configuration); let resp = api diff --git a/examples/v2_incidents_get_incident_integration.rs b/examples/v2_incidents_get_incident_integration.rs index c060670b6..5ffde972d 100644 --- a/examples/v2_incidents_get_incident_integration.rs +++ b/examples/v2_incidents_get_incident_integration.rs @@ -1,6 +1,6 @@ // Get incident integration metadata details returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incidents::IncidentsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incidents::IncidentsAPI; #[tokio::main] async fn main() { @@ -10,7 +10,7 @@ async fn main() { // the "incident" has an "incident_integration_metadata" let incident_integration_metadata_data_id = std::env::var("INCIDENT_INTEGRATION_METADATA_DATA_ID").unwrap(); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.GetIncidentIntegration", true); let api = IncidentsAPI::with_config(configuration); let resp = api diff --git a/examples/v2_incidents_get_incident_todo.rs b/examples/v2_incidents_get_incident_todo.rs index 1320d1f26..140824943 100644 --- a/examples/v2_incidents_get_incident_todo.rs +++ b/examples/v2_incidents_get_incident_todo.rs @@ -1,6 +1,6 @@ // Get incident todo details returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incidents::IncidentsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incidents::IncidentsAPI; #[tokio::main] async fn main() { @@ -9,7 +9,7 @@ async fn main() { // the "incident" has an "incident_todo" let incident_todo_data_id = std::env::var("INCIDENT_TODO_DATA_ID").unwrap(); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.GetIncidentTodo", true); let api = IncidentsAPI::with_config(configuration); let resp = api diff --git a/examples/v2_incidents_list_incident_attachments.rs b/examples/v2_incidents_list_incident_attachments.rs index cb471132f..2cedca5f6 100644 --- a/examples/v2_incidents_list_incident_attachments.rs +++ b/examples/v2_incidents_list_incident_attachments.rs @@ -1,11 +1,11 @@ // Get a list of attachments returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incidents::IncidentsAPI; -use datadog_api_client::datadogV2::api::api_incidents::ListIncidentAttachmentsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incidents::IncidentsAPI; +use datadog_api_client::datadogV2::api_incidents::ListIncidentAttachmentsOptionalParams; #[tokio::main] async fn main() { - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.ListIncidentAttachments", true); let api = IncidentsAPI::with_config(configuration); let resp = api diff --git a/examples/v2_incidents_list_incident_attachments_2457735435.rs b/examples/v2_incidents_list_incident_attachments_2457735435.rs index 0aa563bae..8ced7b70c 100644 --- a/examples/v2_incidents_list_incident_attachments_2457735435.rs +++ b/examples/v2_incidents_list_incident_attachments_2457735435.rs @@ -1,13 +1,13 @@ // Get incident attachments returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incidents::IncidentsAPI; -use datadog_api_client::datadogV2::api::api_incidents::ListIncidentAttachmentsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incidents::IncidentsAPI; +use datadog_api_client::datadogV2::api_incidents::ListIncidentAttachmentsOptionalParams; #[tokio::main] async fn main() { // there is a valid "incident" in the system let incident_data_id = std::env::var("INCIDENT_DATA_ID").unwrap(); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.ListIncidentAttachments", true); let api = IncidentsAPI::with_config(configuration); let resp = api diff --git a/examples/v2_incidents_list_incident_integrations.rs b/examples/v2_incidents_list_incident_integrations.rs index 64c837cd3..29a561fd2 100644 --- a/examples/v2_incidents_list_incident_integrations.rs +++ b/examples/v2_incidents_list_incident_integrations.rs @@ -1,12 +1,12 @@ // Get a list of an incident's integration metadata returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incidents::IncidentsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incidents::IncidentsAPI; #[tokio::main] async fn main() { // there is a valid "incident" in the system let incident_data_id = std::env::var("INCIDENT_DATA_ID").unwrap(); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.ListIncidentIntegrations", true); let api = IncidentsAPI::with_config(configuration); let resp = api diff --git a/examples/v2_incidents_list_incident_todos.rs b/examples/v2_incidents_list_incident_todos.rs index 642ab20c2..4a94c5526 100644 --- a/examples/v2_incidents_list_incident_todos.rs +++ b/examples/v2_incidents_list_incident_todos.rs @@ -1,12 +1,12 @@ // Get a list of an incident's todos returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incidents::IncidentsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incidents::IncidentsAPI; #[tokio::main] async fn main() { // there is a valid "incident" in the system let incident_data_id = std::env::var("INCIDENT_DATA_ID").unwrap(); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.ListIncidentTodos", true); let api = IncidentsAPI::with_config(configuration); let resp = api.list_incident_todos(incident_data_id.clone()).await; diff --git a/examples/v2_incidents_list_incidents.rs b/examples/v2_incidents_list_incidents.rs index 13395a077..168a309f1 100644 --- a/examples/v2_incidents_list_incidents.rs +++ b/examples/v2_incidents_list_incidents.rs @@ -1,11 +1,11 @@ // Get a list of incidents returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incidents::IncidentsAPI; -use datadog_api_client::datadogV2::api::api_incidents::ListIncidentsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incidents::IncidentsAPI; +use datadog_api_client::datadogV2::api_incidents::ListIncidentsOptionalParams; #[tokio::main] async fn main() { - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.ListIncidents", true); let api = IncidentsAPI::with_config(configuration); let resp = api diff --git a/examples/v2_incidents_list_incidents_2665616954.rs b/examples/v2_incidents_list_incidents_2665616954.rs index 9cf033060..99be0451c 100644 --- a/examples/v2_incidents_list_incidents_2665616954.rs +++ b/examples/v2_incidents_list_incidents_2665616954.rs @@ -1,13 +1,13 @@ // Get a list of incidents returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incidents::IncidentsAPI; -use datadog_api_client::datadogV2::api::api_incidents::ListIncidentsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incidents::IncidentsAPI; +use datadog_api_client::datadogV2::api_incidents::ListIncidentsOptionalParams; use futures_util::pin_mut; use futures_util::stream::StreamExt; #[tokio::main] async fn main() { - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.ListIncidents", true); let api = IncidentsAPI::with_config(configuration); let response = diff --git a/examples/v2_incidents_search_incidents.rs b/examples/v2_incidents_search_incidents.rs index e0f345cbf..490af4a52 100644 --- a/examples/v2_incidents_search_incidents.rs +++ b/examples/v2_incidents_search_incidents.rs @@ -1,11 +1,11 @@ // Search for incidents returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incidents::IncidentsAPI; -use datadog_api_client::datadogV2::api::api_incidents::SearchIncidentsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incidents::IncidentsAPI; +use datadog_api_client::datadogV2::api_incidents::SearchIncidentsOptionalParams; #[tokio::main] async fn main() { - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.SearchIncidents", true); let api = IncidentsAPI::with_config(configuration); let resp = api diff --git a/examples/v2_incidents_search_incidents_1931679109.rs b/examples/v2_incidents_search_incidents_1931679109.rs index 0d83c051e..f618c4425 100644 --- a/examples/v2_incidents_search_incidents_1931679109.rs +++ b/examples/v2_incidents_search_incidents_1931679109.rs @@ -1,13 +1,13 @@ // Search for incidents returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incidents::IncidentsAPI; -use datadog_api_client::datadogV2::api::api_incidents::SearchIncidentsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incidents::IncidentsAPI; +use datadog_api_client::datadogV2::api_incidents::SearchIncidentsOptionalParams; use futures_util::pin_mut; use futures_util::stream::StreamExt; #[tokio::main] async fn main() { - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.SearchIncidents", true); let api = IncidentsAPI::with_config(configuration); let response = api.search_incidents_with_pagination( diff --git a/examples/v2_incidents_update_incident.rs b/examples/v2_incidents_update_incident.rs index b239e7dee..ddc08b210 100644 --- a/examples/v2_incidents_update_incident.rs +++ b/examples/v2_incidents_update_incident.rs @@ -1,7 +1,7 @@ // Update an existing incident returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incidents::IncidentsAPI; -use datadog_api_client::datadogV2::api::api_incidents::UpdateIncidentOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incidents::IncidentsAPI; +use datadog_api_client::datadogV2::api_incidents::UpdateIncidentOptionalParams; use datadog_api_client::datadogV2::model::IncidentFieldAttributes; use datadog_api_client::datadogV2::model::IncidentFieldAttributesSingleValue; use datadog_api_client::datadogV2::model::IncidentFieldAttributesSingleValueType; @@ -29,7 +29,7 @@ async fn main() { .title("A test incident title-updated".to_string()), ), ); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.UpdateIncident", true); let api = IncidentsAPI::with_config(configuration); let resp = api diff --git a/examples/v2_incidents_update_incident_1009194038.rs b/examples/v2_incidents_update_incident_1009194038.rs index 16cf4d3fa..bfd8b1e23 100644 --- a/examples/v2_incidents_update_incident_1009194038.rs +++ b/examples/v2_incidents_update_incident_1009194038.rs @@ -1,7 +1,7 @@ // Remove commander from an incident returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incidents::IncidentsAPI; -use datadog_api_client::datadogV2::api::api_incidents::UpdateIncidentOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incidents::IncidentsAPI; +use datadog_api_client::datadogV2::api_incidents::UpdateIncidentOptionalParams; use datadog_api_client::datadogV2::model::IncidentType; use datadog_api_client::datadogV2::model::IncidentUpdateData; use datadog_api_client::datadogV2::model::IncidentUpdateRelationships; @@ -18,7 +18,7 @@ async fn main() { .commander_user(Some(NullableRelationshipToUser::new(None))), ), ); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.UpdateIncident", true); let api = IncidentsAPI::with_config(configuration); let resp = api diff --git a/examples/v2_incidents_update_incident_3369341440.rs b/examples/v2_incidents_update_incident_3369341440.rs index 94879433f..6ba86348c 100644 --- a/examples/v2_incidents_update_incident_3369341440.rs +++ b/examples/v2_incidents_update_incident_3369341440.rs @@ -1,7 +1,7 @@ // Add commander to an incident returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incidents::IncidentsAPI; -use datadog_api_client::datadogV2::api::api_incidents::UpdateIncidentOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incidents::IncidentsAPI; +use datadog_api_client::datadogV2::api_incidents::UpdateIncidentOptionalParams; use datadog_api_client::datadogV2::model::IncidentType; use datadog_api_client::datadogV2::model::IncidentUpdateData; use datadog_api_client::datadogV2::model::IncidentUpdateRelationships; @@ -27,7 +27,7 @@ async fn main() { )), ), ); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.UpdateIncident", true); let api = IncidentsAPI::with_config(configuration); let resp = api diff --git a/examples/v2_incidents_update_incident_attachments.rs b/examples/v2_incidents_update_incident_attachments.rs index 0ff5aa324..f4577da9c 100644 --- a/examples/v2_incidents_update_incident_attachments.rs +++ b/examples/v2_incidents_update_incident_attachments.rs @@ -1,7 +1,7 @@ // Create, update, and delete incident attachments returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incidents::IncidentsAPI; -use datadog_api_client::datadogV2::api::api_incidents::UpdateIncidentAttachmentsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incidents::IncidentsAPI; +use datadog_api_client::datadogV2::api_incidents::UpdateIncidentAttachmentsOptionalParams; use datadog_api_client::datadogV2::model::IncidentAttachmentLinkAttachmentType; use datadog_api_client::datadogV2::model::IncidentAttachmentLinkAttributes; use datadog_api_client::datadogV2::model::IncidentAttachmentLinkAttributesAttachmentObject; @@ -43,7 +43,7 @@ async fn main() { IncidentAttachmentUpdateData::new(IncidentAttachmentType::INCIDENT_ATTACHMENTS) .id("00000000-abcd-0003-0000-000000000000".to_string()), ]); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.UpdateIncidentAttachments", true); let api = IncidentsAPI::with_config(configuration); let resp = api diff --git a/examples/v2_incidents_update_incident_attachments_3881702075.rs b/examples/v2_incidents_update_incident_attachments_3881702075.rs index 2930cf4b1..7c15570b9 100644 --- a/examples/v2_incidents_update_incident_attachments_3881702075.rs +++ b/examples/v2_incidents_update_incident_attachments_3881702075.rs @@ -1,7 +1,7 @@ // Create an incident attachment returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incidents::IncidentsAPI; -use datadog_api_client::datadogV2::api::api_incidents::UpdateIncidentAttachmentsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incidents::IncidentsAPI; +use datadog_api_client::datadogV2::api_incidents::UpdateIncidentAttachmentsOptionalParams; use datadog_api_client::datadogV2::model::IncidentAttachmentLinkAttachmentType; use datadog_api_client::datadogV2::model::IncidentAttachmentLinkAttributes; use datadog_api_client::datadogV2::model::IncidentAttachmentLinkAttributesAttachmentObject; @@ -28,7 +28,7 @@ async fn main() { ), )), )]); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.UpdateIncidentAttachments", true); let api = IncidentsAPI::with_config(configuration); let resp = api diff --git a/examples/v2_incidents_update_incident_integration.rs b/examples/v2_incidents_update_incident_integration.rs index b91cd0f72..4a0097ec6 100644 --- a/examples/v2_incidents_update_incident_integration.rs +++ b/examples/v2_incidents_update_incident_integration.rs @@ -1,6 +1,6 @@ // Update an existing incident integration metadata returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incidents::IncidentsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incidents::IncidentsAPI; use datadog_api_client::datadogV2::model::IncidentIntegrationMetadataAttributes; use datadog_api_client::datadogV2::model::IncidentIntegrationMetadataMetadata; use datadog_api_client::datadogV2::model::IncidentIntegrationMetadataPatchData; @@ -34,7 +34,7 @@ async fn main() { .incident_id(incident_data_id.clone()), IncidentIntegrationMetadataType::INCIDENT_INTEGRATIONS, )); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.UpdateIncidentIntegration", true); let api = IncidentsAPI::with_config(configuration); let resp = api diff --git a/examples/v2_incidents_update_incident_todo.rs b/examples/v2_incidents_update_incident_todo.rs index a6dd02ece..1dfbb0dad 100644 --- a/examples/v2_incidents_update_incident_todo.rs +++ b/examples/v2_incidents_update_incident_todo.rs @@ -1,6 +1,6 @@ // Update an incident todo returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_incidents::IncidentsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_incidents::IncidentsAPI; use datadog_api_client::datadogV2::model::IncidentTodoAssignee; use datadog_api_client::datadogV2::model::IncidentTodoAttributes; use datadog_api_client::datadogV2::model::IncidentTodoPatchData; @@ -25,7 +25,7 @@ async fn main() { .due_date(Some("2023-07-10T05:00:00.000000+00:00".to_string())), IncidentTodoType::INCIDENT_TODOS, )); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.UpdateIncidentTodo", true); let api = IncidentsAPI::with_config(configuration); let resp = api diff --git a/examples/v2_ip-allowlist_get_ip_allowlist.rs b/examples/v2_ip-allowlist_get_ip_allowlist.rs index 67160d21f..bcf2f5dee 100644 --- a/examples/v2_ip-allowlist_get_ip_allowlist.rs +++ b/examples/v2_ip-allowlist_get_ip_allowlist.rs @@ -1,10 +1,10 @@ // Get IP Allowlist returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_ip_allowlist::IPAllowlistAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_ip_allowlist::IPAllowlistAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = IPAllowlistAPI::with_config(configuration); let resp = api.get_ip_allowlist().await; if let Ok(value) = resp { diff --git a/examples/v2_ip-allowlist_update_ip_allowlist.rs b/examples/v2_ip-allowlist_update_ip_allowlist.rs index 8c6ffee78..05755927c 100644 --- a/examples/v2_ip-allowlist_update_ip_allowlist.rs +++ b/examples/v2_ip-allowlist_update_ip_allowlist.rs @@ -1,6 +1,6 @@ // Update IP Allowlist returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_ip_allowlist::IPAllowlistAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_ip_allowlist::IPAllowlistAPI; use datadog_api_client::datadogV2::model::IPAllowlistAttributes; use datadog_api_client::datadogV2::model::IPAllowlistData; use datadog_api_client::datadogV2::model::IPAllowlistEntry; @@ -25,7 +25,7 @@ async fn main() { )]), ), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = IPAllowlistAPI::with_config(configuration); let resp = api.update_ip_allowlist(body).await; if let Ok(value) = resp { diff --git a/examples/v2_key-management_create_api_key.rs b/examples/v2_key-management_create_api_key.rs index 439f415b2..16759b5ff 100644 --- a/examples/v2_key-management_create_api_key.rs +++ b/examples/v2_key-management_create_api_key.rs @@ -1,6 +1,6 @@ // Create an API key returns "Created" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_key_management::KeyManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_key_management::KeyManagementAPI; use datadog_api_client::datadogV2::model::APIKeyCreateAttributes; use datadog_api_client::datadogV2::model::APIKeyCreateData; use datadog_api_client::datadogV2::model::APIKeyCreateRequest; @@ -12,7 +12,7 @@ async fn main() { APIKeyCreateAttributes::new("Example-Key-Management".to_string()), APIKeysType::API_KEYS, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = KeyManagementAPI::with_config(configuration); let resp = api.create_api_key(body).await; if let Ok(value) = resp { diff --git a/examples/v2_key-management_create_current_user_application_key.rs b/examples/v2_key-management_create_current_user_application_key.rs index 33d09555d..dbcd7ab27 100644 --- a/examples/v2_key-management_create_current_user_application_key.rs +++ b/examples/v2_key-management_create_current_user_application_key.rs @@ -1,6 +1,6 @@ // Create an application key for current user returns "Created" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_key_management::KeyManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_key_management::KeyManagementAPI; use datadog_api_client::datadogV2::model::ApplicationKeyCreateAttributes; use datadog_api_client::datadogV2::model::ApplicationKeyCreateData; use datadog_api_client::datadogV2::model::ApplicationKeyCreateRequest; @@ -12,7 +12,7 @@ async fn main() { ApplicationKeyCreateAttributes::new("Example-Key-Management".to_string()), ApplicationKeysType::APPLICATION_KEYS, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = KeyManagementAPI::with_config(configuration); let resp = api.create_current_user_application_key(body).await; if let Ok(value) = resp { diff --git a/examples/v2_key-management_create_current_user_application_key_3383369233.rs b/examples/v2_key-management_create_current_user_application_key_3383369233.rs index 7d6add666..915b9a2a6 100644 --- a/examples/v2_key-management_create_current_user_application_key_3383369233.rs +++ b/examples/v2_key-management_create_current_user_application_key_3383369233.rs @@ -1,7 +1,7 @@ // Create an Application key with scopes for current user returns "Created" // response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_key_management::KeyManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_key_management::KeyManagementAPI; use datadog_api_client::datadogV2::model::ApplicationKeyCreateAttributes; use datadog_api_client::datadogV2::model::ApplicationKeyCreateData; use datadog_api_client::datadogV2::model::ApplicationKeyCreateRequest; @@ -19,7 +19,7 @@ async fn main() { )), ApplicationKeysType::APPLICATION_KEYS, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = KeyManagementAPI::with_config(configuration); let resp = api.create_current_user_application_key(body).await; if let Ok(value) = resp { diff --git a/examples/v2_key-management_delete_api_key.rs b/examples/v2_key-management_delete_api_key.rs index 3a7d559f3..3dc8fd0cd 100644 --- a/examples/v2_key-management_delete_api_key.rs +++ b/examples/v2_key-management_delete_api_key.rs @@ -1,12 +1,12 @@ // Delete an API key returns "No Content" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_key_management::KeyManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_key_management::KeyManagementAPI; #[tokio::main] async fn main() { // there is a valid "api_key" in the system let api_key_data_id = std::env::var("API_KEY_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = KeyManagementAPI::with_config(configuration); let resp = api.delete_api_key(api_key_data_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v2_key-management_delete_application_key.rs b/examples/v2_key-management_delete_application_key.rs index cd9ef04d3..48b72b124 100644 --- a/examples/v2_key-management_delete_application_key.rs +++ b/examples/v2_key-management_delete_application_key.rs @@ -1,12 +1,12 @@ // Delete an application key returns "No Content" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_key_management::KeyManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_key_management::KeyManagementAPI; #[tokio::main] async fn main() { // there is a valid "application_key" in the system let application_key_data_id = std::env::var("APPLICATION_KEY_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = KeyManagementAPI::with_config(configuration); let resp = api .delete_application_key(application_key_data_id.clone()) diff --git a/examples/v2_key-management_delete_current_user_application_key.rs b/examples/v2_key-management_delete_current_user_application_key.rs index 88dfc842e..96ff1fa3c 100644 --- a/examples/v2_key-management_delete_current_user_application_key.rs +++ b/examples/v2_key-management_delete_current_user_application_key.rs @@ -1,12 +1,12 @@ // Delete an application key owned by current user returns "No Content" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_key_management::KeyManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_key_management::KeyManagementAPI; #[tokio::main] async fn main() { // there is a valid "application_key" in the system let application_key_data_id = std::env::var("APPLICATION_KEY_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = KeyManagementAPI::with_config(configuration); let resp = api .delete_current_user_application_key(application_key_data_id.clone()) diff --git a/examples/v2_key-management_get_api_key.rs b/examples/v2_key-management_get_api_key.rs index 10aa8ab78..56a4b4e43 100644 --- a/examples/v2_key-management_get_api_key.rs +++ b/examples/v2_key-management_get_api_key.rs @@ -1,13 +1,13 @@ // Get API key returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_key_management::GetAPIKeyOptionalParams; -use datadog_api_client::datadogV2::api::api_key_management::KeyManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_key_management::GetAPIKeyOptionalParams; +use datadog_api_client::datadogV2::api_key_management::KeyManagementAPI; #[tokio::main] async fn main() { // there is a valid "api_key" in the system let api_key_data_id = std::env::var("API_KEY_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = KeyManagementAPI::with_config(configuration); let resp = api .get_api_key(api_key_data_id.clone(), GetAPIKeyOptionalParams::default()) diff --git a/examples/v2_key-management_get_application_key.rs b/examples/v2_key-management_get_application_key.rs index 932ec5192..b9bf1a8fd 100644 --- a/examples/v2_key-management_get_application_key.rs +++ b/examples/v2_key-management_get_application_key.rs @@ -1,13 +1,13 @@ // Get an application key returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_key_management::GetApplicationKeyOptionalParams; -use datadog_api_client::datadogV2::api::api_key_management::KeyManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_key_management::GetApplicationKeyOptionalParams; +use datadog_api_client::datadogV2::api_key_management::KeyManagementAPI; #[tokio::main] async fn main() { // there is a valid "application_key" in the system let application_key_data_id = std::env::var("APPLICATION_KEY_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = KeyManagementAPI::with_config(configuration); let resp = api .get_application_key( diff --git a/examples/v2_key-management_get_current_user_application_key.rs b/examples/v2_key-management_get_current_user_application_key.rs index 2883cdfaa..16385cd89 100644 --- a/examples/v2_key-management_get_current_user_application_key.rs +++ b/examples/v2_key-management_get_current_user_application_key.rs @@ -1,10 +1,10 @@ // Get one application key owned by current user returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_key_management::KeyManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_key_management::KeyManagementAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = KeyManagementAPI::with_config(configuration); let resp = api .get_current_user_application_key("app_key_id".to_string()) diff --git a/examples/v2_key-management_list_api_keys.rs b/examples/v2_key-management_list_api_keys.rs index 29aabe261..3e4729567 100644 --- a/examples/v2_key-management_list_api_keys.rs +++ b/examples/v2_key-management_list_api_keys.rs @@ -1,13 +1,13 @@ // Get all API keys returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_key_management::KeyManagementAPI; -use datadog_api_client::datadogV2::api::api_key_management::ListAPIKeysOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_key_management::KeyManagementAPI; +use datadog_api_client::datadogV2::api_key_management::ListAPIKeysOptionalParams; #[tokio::main] async fn main() { // there is a valid "api_key" in the system let api_key_data_attributes_name = std::env::var("API_KEY_DATA_ATTRIBUTES_NAME").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = KeyManagementAPI::with_config(configuration); let resp = api .list_api_keys( diff --git a/examples/v2_key-management_list_application_keys.rs b/examples/v2_key-management_list_application_keys.rs index 532193b2f..863e63dfe 100644 --- a/examples/v2_key-management_list_application_keys.rs +++ b/examples/v2_key-management_list_application_keys.rs @@ -1,11 +1,11 @@ // Get all application keys returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_key_management::KeyManagementAPI; -use datadog_api_client::datadogV2::api::api_key_management::ListApplicationKeysOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_key_management::KeyManagementAPI; +use datadog_api_client::datadogV2::api_key_management::ListApplicationKeysOptionalParams; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = KeyManagementAPI::with_config(configuration); let resp = api .list_application_keys(ListApplicationKeysOptionalParams::default()) diff --git a/examples/v2_key-management_list_current_user_application_keys.rs b/examples/v2_key-management_list_current_user_application_keys.rs index 23f37cba6..de5fbd23b 100644 --- a/examples/v2_key-management_list_current_user_application_keys.rs +++ b/examples/v2_key-management_list_current_user_application_keys.rs @@ -1,11 +1,11 @@ // Get all application keys owned by current user returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_key_management::KeyManagementAPI; -use datadog_api_client::datadogV2::api::api_key_management::ListCurrentUserApplicationKeysOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_key_management::KeyManagementAPI; +use datadog_api_client::datadogV2::api_key_management::ListCurrentUserApplicationKeysOptionalParams; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = KeyManagementAPI::with_config(configuration); let resp = api .list_current_user_application_keys(ListCurrentUserApplicationKeysOptionalParams::default()) diff --git a/examples/v2_key-management_update_api_key.rs b/examples/v2_key-management_update_api_key.rs index 8e020a247..047b93cc2 100644 --- a/examples/v2_key-management_update_api_key.rs +++ b/examples/v2_key-management_update_api_key.rs @@ -1,6 +1,6 @@ // Edit an API key returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_key_management::KeyManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_key_management::KeyManagementAPI; use datadog_api_client::datadogV2::model::APIKeyUpdateAttributes; use datadog_api_client::datadogV2::model::APIKeyUpdateData; use datadog_api_client::datadogV2::model::APIKeyUpdateRequest; @@ -15,7 +15,7 @@ async fn main() { api_key_data_id.clone(), APIKeysType::API_KEYS, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = KeyManagementAPI::with_config(configuration); let resp = api.update_api_key(api_key_data_id.clone(), body).await; if let Ok(value) = resp { diff --git a/examples/v2_key-management_update_application_key.rs b/examples/v2_key-management_update_application_key.rs index 3169a7f91..7a81834a5 100644 --- a/examples/v2_key-management_update_application_key.rs +++ b/examples/v2_key-management_update_application_key.rs @@ -1,6 +1,6 @@ // Edit an application key returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_key_management::KeyManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_key_management::KeyManagementAPI; use datadog_api_client::datadogV2::model::ApplicationKeyUpdateAttributes; use datadog_api_client::datadogV2::model::ApplicationKeyUpdateData; use datadog_api_client::datadogV2::model::ApplicationKeyUpdateRequest; @@ -16,7 +16,7 @@ async fn main() { application_key_data_id.clone(), ApplicationKeysType::APPLICATION_KEYS, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = KeyManagementAPI::with_config(configuration); let resp = api .update_application_key(application_key_data_id.clone(), body) diff --git a/examples/v2_key-management_update_current_user_application_key.rs b/examples/v2_key-management_update_current_user_application_key.rs index 211da870a..4e0c3e274 100644 --- a/examples/v2_key-management_update_current_user_application_key.rs +++ b/examples/v2_key-management_update_current_user_application_key.rs @@ -1,6 +1,6 @@ // Edit an application key owned by current user returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_key_management::KeyManagementAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_key_management::KeyManagementAPI; use datadog_api_client::datadogV2::model::ApplicationKeyUpdateAttributes; use datadog_api_client::datadogV2::model::ApplicationKeyUpdateData; use datadog_api_client::datadogV2::model::ApplicationKeyUpdateRequest; @@ -16,7 +16,7 @@ async fn main() { application_key_data_id.clone(), ApplicationKeysType::APPLICATION_KEYS, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = KeyManagementAPI::with_config(configuration); let resp = api .update_current_user_application_key(application_key_data_id.clone(), body) diff --git a/examples/v2_logs-archives_add_read_role_to_archive.rs b/examples/v2_logs-archives_add_read_role_to_archive.rs index 678353876..0ac5b4a11 100644 --- a/examples/v2_logs-archives_add_read_role_to_archive.rs +++ b/examples/v2_logs-archives_add_read_role_to_archive.rs @@ -1,6 +1,6 @@ // Grant role to an archive returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_logs_archives::LogsArchivesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs_archives::LogsArchivesAPI; use datadog_api_client::datadogV2::model::RelationshipToRole; use datadog_api_client::datadogV2::model::RelationshipToRoleData; use datadog_api_client::datadogV2::model::RolesType; @@ -12,7 +12,7 @@ async fn main() { .id("3653d3c6-0c75-11ea-ad28-fb5701eabc7d".to_string()) .type_(RolesType::ROLES), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsArchivesAPI::with_config(configuration); let resp = api .add_read_role_to_archive("archive_id".to_string(), body) diff --git a/examples/v2_logs-archives_create_logs_archive.rs b/examples/v2_logs-archives_create_logs_archive.rs index c3642cd0f..05403bffe 100644 --- a/examples/v2_logs-archives_create_logs_archive.rs +++ b/examples/v2_logs-archives_create_logs_archive.rs @@ -1,6 +1,6 @@ // Create an archive returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_logs_archives::LogsArchivesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs_archives::LogsArchivesAPI; use datadog_api_client::datadogV2::model::LogsArchiveCreateRequest; use datadog_api_client::datadogV2::model::LogsArchiveCreateRequestAttributes; use datadog_api_client::datadogV2::model::LogsArchiveCreateRequestDefinition; @@ -33,7 +33,7 @@ async fn main() { .rehydration_tags(vec!["team:intake".to_string(), "team:app".to_string()]), ), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsArchivesAPI::with_config(configuration); let resp = api.create_logs_archive(body).await; if let Ok(value) = resp { diff --git a/examples/v2_logs-archives_delete_logs_archive.rs b/examples/v2_logs-archives_delete_logs_archive.rs index ec7435d91..b05aa1bcc 100644 --- a/examples/v2_logs-archives_delete_logs_archive.rs +++ b/examples/v2_logs-archives_delete_logs_archive.rs @@ -1,10 +1,10 @@ // Delete an archive returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_logs_archives::LogsArchivesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs_archives::LogsArchivesAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsArchivesAPI::with_config(configuration); let resp = api.delete_logs_archive("archive_id".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v2_logs-archives_get_logs_archive.rs b/examples/v2_logs-archives_get_logs_archive.rs index 9372fb290..8cdf4c471 100644 --- a/examples/v2_logs-archives_get_logs_archive.rs +++ b/examples/v2_logs-archives_get_logs_archive.rs @@ -1,10 +1,10 @@ // Get an archive returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_logs_archives::LogsArchivesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs_archives::LogsArchivesAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsArchivesAPI::with_config(configuration); let resp = api.get_logs_archive("archive_id".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v2_logs-archives_get_logs_archive_order.rs b/examples/v2_logs-archives_get_logs_archive_order.rs index 462d7d051..53fc462c1 100644 --- a/examples/v2_logs-archives_get_logs_archive_order.rs +++ b/examples/v2_logs-archives_get_logs_archive_order.rs @@ -1,10 +1,10 @@ // Get archive order returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_logs_archives::LogsArchivesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs_archives::LogsArchivesAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsArchivesAPI::with_config(configuration); let resp = api.get_logs_archive_order().await; if let Ok(value) = resp { diff --git a/examples/v2_logs-archives_list_archive_read_roles.rs b/examples/v2_logs-archives_list_archive_read_roles.rs index 98ce711b4..404f00d76 100644 --- a/examples/v2_logs-archives_list_archive_read_roles.rs +++ b/examples/v2_logs-archives_list_archive_read_roles.rs @@ -1,10 +1,10 @@ // List read roles for an archive returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_logs_archives::LogsArchivesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs_archives::LogsArchivesAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsArchivesAPI::with_config(configuration); let resp = api.list_archive_read_roles("archive_id".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v2_logs-archives_list_logs_archives.rs b/examples/v2_logs-archives_list_logs_archives.rs index 36f8fe7f1..7d9d35482 100644 --- a/examples/v2_logs-archives_list_logs_archives.rs +++ b/examples/v2_logs-archives_list_logs_archives.rs @@ -1,10 +1,10 @@ // Get all archives returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_logs_archives::LogsArchivesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs_archives::LogsArchivesAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsArchivesAPI::with_config(configuration); let resp = api.list_logs_archives().await; if let Ok(value) = resp { diff --git a/examples/v2_logs-archives_remove_role_from_archive.rs b/examples/v2_logs-archives_remove_role_from_archive.rs index 989fdabe6..bad685a23 100644 --- a/examples/v2_logs-archives_remove_role_from_archive.rs +++ b/examples/v2_logs-archives_remove_role_from_archive.rs @@ -1,6 +1,6 @@ // Revoke role from an archive returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_logs_archives::LogsArchivesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs_archives::LogsArchivesAPI; use datadog_api_client::datadogV2::model::RelationshipToRole; use datadog_api_client::datadogV2::model::RelationshipToRoleData; use datadog_api_client::datadogV2::model::RolesType; @@ -12,7 +12,7 @@ async fn main() { .id("3653d3c6-0c75-11ea-ad28-fb5701eabc7d".to_string()) .type_(RolesType::ROLES), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsArchivesAPI::with_config(configuration); let resp = api .remove_role_from_archive("archive_id".to_string(), body) diff --git a/examples/v2_logs-archives_update_logs_archive.rs b/examples/v2_logs-archives_update_logs_archive.rs index 63c175fa1..d988d45be 100644 --- a/examples/v2_logs-archives_update_logs_archive.rs +++ b/examples/v2_logs-archives_update_logs_archive.rs @@ -1,6 +1,6 @@ // Update an archive returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_logs_archives::LogsArchivesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs_archives::LogsArchivesAPI; use datadog_api_client::datadogV2::model::LogsArchiveCreateRequest; use datadog_api_client::datadogV2::model::LogsArchiveCreateRequestAttributes; use datadog_api_client::datadogV2::model::LogsArchiveCreateRequestDefinition; @@ -33,7 +33,7 @@ async fn main() { .rehydration_tags(vec!["team:intake".to_string(), "team:app".to_string()]), ), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsArchivesAPI::with_config(configuration); let resp = api .update_logs_archive("archive_id".to_string(), body) diff --git a/examples/v2_logs-archives_update_logs_archive_order.rs b/examples/v2_logs-archives_update_logs_archive_order.rs index 209017f82..1ab993796 100644 --- a/examples/v2_logs-archives_update_logs_archive_order.rs +++ b/examples/v2_logs-archives_update_logs_archive_order.rs @@ -1,6 +1,6 @@ // Update archive order returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_logs_archives::LogsArchivesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs_archives::LogsArchivesAPI; use datadog_api_client::datadogV2::model::LogsArchiveOrder; use datadog_api_client::datadogV2::model::LogsArchiveOrderAttributes; use datadog_api_client::datadogV2::model::LogsArchiveOrderDefinition; @@ -16,7 +16,7 @@ async fn main() { ]), LogsArchiveOrderDefinitionType::ARCHIVE_ORDER, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsArchivesAPI::with_config(configuration); let resp = api.update_logs_archive_order(body).await; if let Ok(value) = resp { diff --git a/examples/v2_logs-custom-destinations_create_logs_custom_destination.rs b/examples/v2_logs-custom-destinations_create_logs_custom_destination.rs new file mode 100644 index 000000000..df41999eb --- /dev/null +++ b/examples/v2_logs-custom-destinations_create_logs_custom_destination.rs @@ -0,0 +1,53 @@ +// Create a custom destination returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs_custom_destinations::LogsCustomDestinationsAPI; +use datadog_api_client::datadogV2::model::CustomDestinationAttributeTagsRestrictionListType; +use datadog_api_client::datadogV2::model::CustomDestinationCreateRequest; +use datadog_api_client::datadogV2::model::CustomDestinationCreateRequestAttributes; +use datadog_api_client::datadogV2::model::CustomDestinationCreateRequestDefinition; +use datadog_api_client::datadogV2::model::CustomDestinationForwardDestination; +use datadog_api_client::datadogV2::model::CustomDestinationForwardDestinationHttp; +use datadog_api_client::datadogV2::model::CustomDestinationForwardDestinationHttpType; +use datadog_api_client::datadogV2::model::CustomDestinationHttpDestinationAuth; +use datadog_api_client::datadogV2::model::CustomDestinationHttpDestinationAuthBasic; +use datadog_api_client::datadogV2::model::CustomDestinationHttpDestinationAuthBasicType; +use datadog_api_client::datadogV2::model::CustomDestinationType; + +#[tokio::main] +async fn main() { + let body = CustomDestinationCreateRequest::new() + .data(CustomDestinationCreateRequestDefinition::new( + CustomDestinationCreateRequestAttributes::new( + CustomDestinationForwardDestination::CustomDestinationForwardDestinationHttp(Box::new( + CustomDestinationForwardDestinationHttp::new( + CustomDestinationHttpDestinationAuth::CustomDestinationHttpDestinationAuthBasic( + Box::new(CustomDestinationHttpDestinationAuthBasic::new( + "datadog-custom-destination-password".to_string(), + CustomDestinationHttpDestinationAuthBasicType::BASIC, + "datadog-custom-destination-username".to_string(), + )), + ), + "https://example.com".to_string(), + CustomDestinationForwardDestinationHttpType::HTTP, + ), + )), + "Nginx logs".to_string(), + ) + .enabled(true) + .forward_tags(true) + .forward_tags_restriction_list(vec!["datacenter".to_string(), "host".to_string()]) + .forward_tags_restriction_list_type( + CustomDestinationAttributeTagsRestrictionListType::ALLOW_LIST, + ) + .query("source:nginx".to_string()), + CustomDestinationType::CUSTOM_DESTINATION, + )); + let configuration = datadog::Configuration::new(); + let api = LogsCustomDestinationsAPI::with_config(configuration); + let resp = api.create_logs_custom_destination(body).await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_logs-custom-destinations_create_logs_custom_destination_1091442807.rs b/examples/v2_logs-custom-destinations_create_logs_custom_destination_1091442807.rs new file mode 100644 index 000000000..4eeb840f4 --- /dev/null +++ b/examples/v2_logs-custom-destinations_create_logs_custom_destination_1091442807.rs @@ -0,0 +1,58 @@ +// Create a Custom Header HTTP custom destination returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs_custom_destinations::LogsCustomDestinationsAPI; +use datadog_api_client::datadogV2::model::CustomDestinationAttributeTagsRestrictionListType; +use datadog_api_client::datadogV2::model::CustomDestinationCreateRequest; +use datadog_api_client::datadogV2::model::CustomDestinationCreateRequestAttributes; +use datadog_api_client::datadogV2::model::CustomDestinationCreateRequestDefinition; +use datadog_api_client::datadogV2::model::CustomDestinationForwardDestination; +use datadog_api_client::datadogV2::model::CustomDestinationForwardDestinationHttp; +use datadog_api_client::datadogV2::model::CustomDestinationForwardDestinationHttpType; +use datadog_api_client::datadogV2::model::CustomDestinationHttpDestinationAuth; +use datadog_api_client::datadogV2::model::CustomDestinationHttpDestinationAuthCustomHeader; +use datadog_api_client::datadogV2::model::CustomDestinationHttpDestinationAuthCustomHeaderType; +use datadog_api_client::datadogV2::model::CustomDestinationType; + +#[tokio::main] +async fn main() { + let body = + CustomDestinationCreateRequest + ::new().data( + CustomDestinationCreateRequestDefinition::new( + CustomDestinationCreateRequestAttributes::new( + CustomDestinationForwardDestination::CustomDestinationForwardDestinationHttp( + Box::new( + CustomDestinationForwardDestinationHttp::new( + CustomDestinationHttpDestinationAuth::CustomDestinationHttpDestinationAuthCustomHeader( + Box::new( + CustomDestinationHttpDestinationAuthCustomHeader::new( + "MY-AUTHENTICATION-HEADER".to_string(), + "my-secret".to_string(), + CustomDestinationHttpDestinationAuthCustomHeaderType::CUSTOM_HEADER, + ), + ), + ), + "https://example.com".to_string(), + CustomDestinationForwardDestinationHttpType::HTTP, + ), + ), + ), + "Nginx logs".to_string(), + ) + .enabled(false) + .forward_tags(false) + .forward_tags_restriction_list(vec!["datacenter".to_string(), "host".to_string()]) + .forward_tags_restriction_list_type(CustomDestinationAttributeTagsRestrictionListType::ALLOW_LIST) + .query("source:nginx".to_string()), + CustomDestinationType::CUSTOM_DESTINATION, + ), + ); + let configuration = datadog::Configuration::new(); + let api = LogsCustomDestinationsAPI::with_config(configuration); + let resp = api.create_logs_custom_destination(body).await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_logs-custom-destinations_create_logs_custom_destination_1288180912.rs b/examples/v2_logs-custom-destinations_create_logs_custom_destination_1288180912.rs new file mode 100644 index 000000000..cdf0b2598 --- /dev/null +++ b/examples/v2_logs-custom-destinations_create_logs_custom_destination_1288180912.rs @@ -0,0 +1,44 @@ +// Create a Splunk custom destination returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs_custom_destinations::LogsCustomDestinationsAPI; +use datadog_api_client::datadogV2::model::CustomDestinationAttributeTagsRestrictionListType; +use datadog_api_client::datadogV2::model::CustomDestinationCreateRequest; +use datadog_api_client::datadogV2::model::CustomDestinationCreateRequestAttributes; +use datadog_api_client::datadogV2::model::CustomDestinationCreateRequestDefinition; +use datadog_api_client::datadogV2::model::CustomDestinationForwardDestination; +use datadog_api_client::datadogV2::model::CustomDestinationForwardDestinationSplunk; +use datadog_api_client::datadogV2::model::CustomDestinationForwardDestinationSplunkType; +use datadog_api_client::datadogV2::model::CustomDestinationType; + +#[tokio::main] +async fn main() { + let body = + CustomDestinationCreateRequest::new().data(CustomDestinationCreateRequestDefinition::new( + CustomDestinationCreateRequestAttributes::new( + CustomDestinationForwardDestination::CustomDestinationForwardDestinationSplunk( + Box::new(CustomDestinationForwardDestinationSplunk::new( + "my-access-token".to_string(), + "https://example.com".to_string(), + CustomDestinationForwardDestinationSplunkType::SPLUNK_HEC, + )), + ), + "Nginx logs".to_string(), + ) + .enabled(false) + .forward_tags(false) + .forward_tags_restriction_list(vec!["datacenter".to_string(), "host".to_string()]) + .forward_tags_restriction_list_type( + CustomDestinationAttributeTagsRestrictionListType::ALLOW_LIST, + ) + .query("source:nginx".to_string()), + CustomDestinationType::CUSTOM_DESTINATION, + )); + let configuration = datadog::Configuration::new(); + let api = LogsCustomDestinationsAPI::with_config(configuration); + let resp = api.create_logs_custom_destination(body).await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_logs-custom-destinations_create_logs_custom_destination_141236188.rs b/examples/v2_logs-custom-destinations_create_logs_custom_destination_141236188.rs new file mode 100644 index 000000000..0d1941fb6 --- /dev/null +++ b/examples/v2_logs-custom-destinations_create_logs_custom_destination_141236188.rs @@ -0,0 +1,52 @@ +// Create an Elasticsearch custom destination returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs_custom_destinations::LogsCustomDestinationsAPI; +use datadog_api_client::datadogV2::model::CustomDestinationAttributeTagsRestrictionListType; +use datadog_api_client::datadogV2::model::CustomDestinationCreateRequest; +use datadog_api_client::datadogV2::model::CustomDestinationCreateRequestAttributes; +use datadog_api_client::datadogV2::model::CustomDestinationCreateRequestDefinition; +use datadog_api_client::datadogV2::model::CustomDestinationElasticsearchDestinationAuth; +use datadog_api_client::datadogV2::model::CustomDestinationForwardDestination; +use datadog_api_client::datadogV2::model::CustomDestinationForwardDestinationElasticsearch; +use datadog_api_client::datadogV2::model::CustomDestinationForwardDestinationElasticsearchType; +use datadog_api_client::datadogV2::model::CustomDestinationType; + +#[tokio::main] +async fn main() { + let body = CustomDestinationCreateRequest::new() + .data(CustomDestinationCreateRequestDefinition::new( + CustomDestinationCreateRequestAttributes::new( + CustomDestinationForwardDestination::CustomDestinationForwardDestinationElasticsearch( + Box::new( + CustomDestinationForwardDestinationElasticsearch::new( + CustomDestinationElasticsearchDestinationAuth::new( + "my-password".to_string(), + "my-username".to_string(), + ), + "https://example.com".to_string(), + "nginx-logs".to_string(), + CustomDestinationForwardDestinationElasticsearchType::ELASTICSEARCH, + ) + .index_rotation("yyyy-MM-dd".to_string()), + ), + ), + "Nginx logs".to_string(), + ) + .enabled(false) + .forward_tags(false) + .forward_tags_restriction_list(vec!["datacenter".to_string(), "host".to_string()]) + .forward_tags_restriction_list_type( + CustomDestinationAttributeTagsRestrictionListType::ALLOW_LIST, + ) + .query("source:nginx".to_string()), + CustomDestinationType::CUSTOM_DESTINATION, + )); + let configuration = datadog::Configuration::new(); + let api = LogsCustomDestinationsAPI::with_config(configuration); + let resp = api.create_logs_custom_destination(body).await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_logs-custom-destinations_create_logs_custom_destination_2184123765.rs b/examples/v2_logs-custom-destinations_create_logs_custom_destination_2184123765.rs new file mode 100644 index 000000000..65ae9daac --- /dev/null +++ b/examples/v2_logs-custom-destinations_create_logs_custom_destination_2184123765.rs @@ -0,0 +1,53 @@ +// Create a Basic HTTP custom destination returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs_custom_destinations::LogsCustomDestinationsAPI; +use datadog_api_client::datadogV2::model::CustomDestinationAttributeTagsRestrictionListType; +use datadog_api_client::datadogV2::model::CustomDestinationCreateRequest; +use datadog_api_client::datadogV2::model::CustomDestinationCreateRequestAttributes; +use datadog_api_client::datadogV2::model::CustomDestinationCreateRequestDefinition; +use datadog_api_client::datadogV2::model::CustomDestinationForwardDestination; +use datadog_api_client::datadogV2::model::CustomDestinationForwardDestinationHttp; +use datadog_api_client::datadogV2::model::CustomDestinationForwardDestinationHttpType; +use datadog_api_client::datadogV2::model::CustomDestinationHttpDestinationAuth; +use datadog_api_client::datadogV2::model::CustomDestinationHttpDestinationAuthBasic; +use datadog_api_client::datadogV2::model::CustomDestinationHttpDestinationAuthBasicType; +use datadog_api_client::datadogV2::model::CustomDestinationType; + +#[tokio::main] +async fn main() { + let body = CustomDestinationCreateRequest::new() + .data(CustomDestinationCreateRequestDefinition::new( + CustomDestinationCreateRequestAttributes::new( + CustomDestinationForwardDestination::CustomDestinationForwardDestinationHttp(Box::new( + CustomDestinationForwardDestinationHttp::new( + CustomDestinationHttpDestinationAuth::CustomDestinationHttpDestinationAuthBasic( + Box::new(CustomDestinationHttpDestinationAuthBasic::new( + "datadog-custom-destination-password".to_string(), + CustomDestinationHttpDestinationAuthBasicType::BASIC, + "datadog-custom-destination-username".to_string(), + )), + ), + "https://example.com".to_string(), + CustomDestinationForwardDestinationHttpType::HTTP, + ), + )), + "Nginx logs".to_string(), + ) + .enabled(false) + .forward_tags(false) + .forward_tags_restriction_list(vec!["datacenter".to_string(), "host".to_string()]) + .forward_tags_restriction_list_type( + CustomDestinationAttributeTagsRestrictionListType::ALLOW_LIST, + ) + .query("source:nginx".to_string()), + CustomDestinationType::CUSTOM_DESTINATION, + )); + let configuration = datadog::Configuration::new(); + let api = LogsCustomDestinationsAPI::with_config(configuration); + let resp = api.create_logs_custom_destination(body).await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_logs-custom-destinations_delete_logs_custom_destination.rs b/examples/v2_logs-custom-destinations_delete_logs_custom_destination.rs new file mode 100644 index 000000000..18f691256 --- /dev/null +++ b/examples/v2_logs-custom-destinations_delete_logs_custom_destination.rs @@ -0,0 +1,19 @@ +// Delete a custom destination returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs_custom_destinations::LogsCustomDestinationsAPI; + +#[tokio::main] +async fn main() { + // there is a valid "custom_destination" in the system + let custom_destination_data_id = std::env::var("CUSTOM_DESTINATION_DATA_ID").unwrap(); + let configuration = datadog::Configuration::new(); + let api = LogsCustomDestinationsAPI::with_config(configuration); + let resp = api + .delete_logs_custom_destination(custom_destination_data_id.clone()) + .await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_logs-custom-destinations_get_logs_custom_destination.rs b/examples/v2_logs-custom-destinations_get_logs_custom_destination.rs new file mode 100644 index 000000000..904579215 --- /dev/null +++ b/examples/v2_logs-custom-destinations_get_logs_custom_destination.rs @@ -0,0 +1,19 @@ +// Get a custom destination returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs_custom_destinations::LogsCustomDestinationsAPI; + +#[tokio::main] +async fn main() { + // there is a valid "custom_destination" in the system + let custom_destination_data_id = std::env::var("CUSTOM_DESTINATION_DATA_ID").unwrap(); + let configuration = datadog::Configuration::new(); + let api = LogsCustomDestinationsAPI::with_config(configuration); + let resp = api + .get_logs_custom_destination(custom_destination_data_id.clone()) + .await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_logs-custom-destinations_list_logs_custom_destinations.rs b/examples/v2_logs-custom-destinations_list_logs_custom_destinations.rs new file mode 100644 index 000000000..e6944af21 --- /dev/null +++ b/examples/v2_logs-custom-destinations_list_logs_custom_destinations.rs @@ -0,0 +1,15 @@ +// Get all custom destinations returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs_custom_destinations::LogsCustomDestinationsAPI; + +#[tokio::main] +async fn main() { + let configuration = datadog::Configuration::new(); + let api = LogsCustomDestinationsAPI::with_config(configuration); + let resp = api.list_logs_custom_destinations().await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_logs-custom-destinations_update_logs_custom_destination.rs b/examples/v2_logs-custom-destinations_update_logs_custom_destination.rs new file mode 100644 index 000000000..dfdccbc9c --- /dev/null +++ b/examples/v2_logs-custom-destinations_update_logs_custom_destination.rs @@ -0,0 +1,40 @@ +// Update a custom destination returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs_custom_destinations::LogsCustomDestinationsAPI; +use datadog_api_client::datadogV2::model::CustomDestinationAttributeTagsRestrictionListType; +use datadog_api_client::datadogV2::model::CustomDestinationType; +use datadog_api_client::datadogV2::model::CustomDestinationUpdateRequest; +use datadog_api_client::datadogV2::model::CustomDestinationUpdateRequestAttributes; +use datadog_api_client::datadogV2::model::CustomDestinationUpdateRequestDefinition; + +#[tokio::main] +async fn main() { + // there is a valid "custom_destination" in the system + let custom_destination_data_id = std::env::var("CUSTOM_DESTINATION_DATA_ID").unwrap(); + let body = CustomDestinationUpdateRequest::new().data( + CustomDestinationUpdateRequestDefinition::new( + custom_destination_data_id.clone(), + CustomDestinationType::CUSTOM_DESTINATION, + ) + .attributes( + CustomDestinationUpdateRequestAttributes::new() + .enabled(false) + .forward_tags(false) + .forward_tags_restriction_list_type( + CustomDestinationAttributeTagsRestrictionListType::BLOCK_LIST, + ) + .name("Nginx logs (Updated)".to_string()) + .query("source:nginx".to_string()), + ), + ); + let configuration = datadog::Configuration::new(); + let api = LogsCustomDestinationsAPI::with_config(configuration); + let resp = api + .update_logs_custom_destination(custom_destination_data_id.clone(), body) + .await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_logs-metrics_create_logs_metric.rs b/examples/v2_logs-metrics_create_logs_metric.rs index f3a9e5cfa..a60772d48 100644 --- a/examples/v2_logs-metrics_create_logs_metric.rs +++ b/examples/v2_logs-metrics_create_logs_metric.rs @@ -1,6 +1,6 @@ // Create a log-based metric returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_logs_metrics::LogsMetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs_metrics::LogsMetricsAPI; use datadog_api_client::datadogV2::model::LogsMetricCompute; use datadog_api_client::datadogV2::model::LogsMetricComputeAggregationType; use datadog_api_client::datadogV2::model::LogsMetricCreateAttributes; @@ -19,7 +19,7 @@ async fn main() { "ExampleLogsMetric".to_string(), LogsMetricType::LOGS_METRICS, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsMetricsAPI::with_config(configuration); let resp = api.create_logs_metric(body).await; if let Ok(value) = resp { diff --git a/examples/v2_logs-metrics_delete_logs_metric.rs b/examples/v2_logs-metrics_delete_logs_metric.rs index 75a2ce142..cd38231a0 100644 --- a/examples/v2_logs-metrics_delete_logs_metric.rs +++ b/examples/v2_logs-metrics_delete_logs_metric.rs @@ -1,12 +1,12 @@ // Delete a log-based metric returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_logs_metrics::LogsMetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs_metrics::LogsMetricsAPI; #[tokio::main] async fn main() { // there is a valid "logs_metric" in the system let logs_metric_data_id = std::env::var("LOGS_METRIC_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsMetricsAPI::with_config(configuration); let resp = api.delete_logs_metric(logs_metric_data_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v2_logs-metrics_get_logs_metric.rs b/examples/v2_logs-metrics_get_logs_metric.rs index f9d848e5e..dcc349591 100644 --- a/examples/v2_logs-metrics_get_logs_metric.rs +++ b/examples/v2_logs-metrics_get_logs_metric.rs @@ -1,12 +1,12 @@ // Get a log-based metric returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_logs_metrics::LogsMetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs_metrics::LogsMetricsAPI; #[tokio::main] async fn main() { // there is a valid "logs_metric" in the system let logs_metric_data_id = std::env::var("LOGS_METRIC_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsMetricsAPI::with_config(configuration); let resp = api.get_logs_metric(logs_metric_data_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v2_logs-metrics_list_logs_metrics.rs b/examples/v2_logs-metrics_list_logs_metrics.rs index 47a04d8db..a758cf45e 100644 --- a/examples/v2_logs-metrics_list_logs_metrics.rs +++ b/examples/v2_logs-metrics_list_logs_metrics.rs @@ -1,10 +1,10 @@ // Get all log-based metrics returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_logs_metrics::LogsMetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs_metrics::LogsMetricsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsMetricsAPI::with_config(configuration); let resp = api.list_logs_metrics().await; if let Ok(value) = resp { diff --git a/examples/v2_logs-metrics_update_logs_metric.rs b/examples/v2_logs-metrics_update_logs_metric.rs index e1d8776a6..7249ce5f8 100644 --- a/examples/v2_logs-metrics_update_logs_metric.rs +++ b/examples/v2_logs-metrics_update_logs_metric.rs @@ -1,6 +1,6 @@ // Update a log-based metric returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_logs_metrics::LogsMetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs_metrics::LogsMetricsAPI; use datadog_api_client::datadogV2::model::LogsMetricFilter; use datadog_api_client::datadogV2::model::LogsMetricType; use datadog_api_client::datadogV2::model::LogsMetricUpdateAttributes; @@ -18,7 +18,7 @@ async fn main() { ), LogsMetricType::LOGS_METRICS, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsMetricsAPI::with_config(configuration); let resp = api .update_logs_metric(logs_metric_data_id.clone(), body) diff --git a/examples/v2_logs-metrics_update_logs_metric_1901534424.rs b/examples/v2_logs-metrics_update_logs_metric_1901534424.rs index 21efbcb22..f973e6123 100644 --- a/examples/v2_logs-metrics_update_logs_metric_1901534424.rs +++ b/examples/v2_logs-metrics_update_logs_metric_1901534424.rs @@ -1,6 +1,6 @@ // Update a log-based metric with include_percentiles field returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_logs_metrics::LogsMetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs_metrics::LogsMetricsAPI; use datadog_api_client::datadogV2::model::LogsMetricType; use datadog_api_client::datadogV2::model::LogsMetricUpdateAttributes; use datadog_api_client::datadogV2::model::LogsMetricUpdateCompute; @@ -16,7 +16,7 @@ async fn main() { .compute(LogsMetricUpdateCompute::new().include_percentiles(false)), LogsMetricType::LOGS_METRICS, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsMetricsAPI::with_config(configuration); let resp = api .update_logs_metric(logs_metric_percentile_data_id.clone(), body) diff --git a/examples/v2_logs_aggregate_logs.rs b/examples/v2_logs_aggregate_logs.rs index 9f056249a..0d237b1e9 100644 --- a/examples/v2_logs_aggregate_logs.rs +++ b/examples/v2_logs_aggregate_logs.rs @@ -1,6 +1,6 @@ // Aggregate events returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_logs::LogsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs::LogsAPI; use datadog_api_client::datadogV2::model::LogsAggregateRequest; use datadog_api_client::datadogV2::model::LogsQueryFilter; @@ -13,7 +13,7 @@ async fn main() { .query("*".to_string()) .to("now".to_string()), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsAPI::with_config(configuration); let resp = api.aggregate_logs(body).await; if let Ok(value) = resp { diff --git a/examples/v2_logs_aggregate_logs_2527007002.rs b/examples/v2_logs_aggregate_logs_2527007002.rs index 95176aa99..97cf7ade8 100644 --- a/examples/v2_logs_aggregate_logs_2527007002.rs +++ b/examples/v2_logs_aggregate_logs_2527007002.rs @@ -1,6 +1,6 @@ // Aggregate compute events returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_logs::LogsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs::LogsAPI; use datadog_api_client::datadogV2::model::LogsAggregateRequest; use datadog_api_client::datadogV2::model::LogsAggregationFunction; use datadog_api_client::datadogV2::model::LogsCompute; @@ -20,7 +20,7 @@ async fn main() { .query("*".to_string()) .to("now".to_string()), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsAPI::with_config(configuration); let resp = api.aggregate_logs(body).await; if let Ok(value) = resp { diff --git a/examples/v2_logs_aggregate_logs_2955613758.rs b/examples/v2_logs_aggregate_logs_2955613758.rs index 68c3d589c..07f739aec 100644 --- a/examples/v2_logs_aggregate_logs_2955613758.rs +++ b/examples/v2_logs_aggregate_logs_2955613758.rs @@ -1,6 +1,6 @@ // Aggregate compute events with group by returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_logs::LogsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs::LogsAPI; use datadog_api_client::datadogV2::model::LogsAggregateRequest; use datadog_api_client::datadogV2::model::LogsAggregateSort; use datadog_api_client::datadogV2::model::LogsAggregateSortType; @@ -40,7 +40,7 @@ async fn main() { .total(LogsGroupByTotal::LogsGroupByTotalString( "recall".to_string(), ))]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsAPI::with_config(configuration); let resp = api.aggregate_logs(body).await; if let Ok(value) = resp { diff --git a/examples/v2_logs_list_logs.rs b/examples/v2_logs_list_logs.rs index a2c58d391..06c8ee10b 100644 --- a/examples/v2_logs_list_logs.rs +++ b/examples/v2_logs_list_logs.rs @@ -1,7 +1,7 @@ // Search logs returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_logs::ListLogsOptionalParams; -use datadog_api_client::datadogV2::api::api_logs::LogsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs::ListLogsOptionalParams; +use datadog_api_client::datadogV2::api_logs::LogsAPI; use datadog_api_client::datadogV2::model::LogsListRequest; use datadog_api_client::datadogV2::model::LogsListRequestPage; use datadog_api_client::datadogV2::model::LogsQueryFilter; @@ -19,7 +19,7 @@ async fn main() { ) .page(LogsListRequestPage::new().limit(5)) .sort(LogsSort::TIMESTAMP_ASCENDING); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsAPI::with_config(configuration); let resp = api .list_logs(ListLogsOptionalParams::default().body(body)) diff --git a/examples/v2_logs_list_logs_3138392594.rs b/examples/v2_logs_list_logs_3138392594.rs index 910ca9a06..b57f9223b 100644 --- a/examples/v2_logs_list_logs_3138392594.rs +++ b/examples/v2_logs_list_logs_3138392594.rs @@ -1,7 +1,7 @@ // Search logs returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_logs::ListLogsOptionalParams; -use datadog_api_client::datadogV2::api::api_logs::LogsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs::ListLogsOptionalParams; +use datadog_api_client::datadogV2::api_logs::LogsAPI; use datadog_api_client::datadogV2::model::LogsListRequest; use datadog_api_client::datadogV2::model::LogsListRequestPage; use datadog_api_client::datadogV2::model::LogsQueryFilter; @@ -22,7 +22,7 @@ async fn main() { .options(LogsQueryOptions::new().timezone("GMT".to_string())) .page(LogsListRequestPage::new().limit(2)) .sort(LogsSort::TIMESTAMP_ASCENDING); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsAPI::with_config(configuration); let response = api.list_logs_with_pagination(ListLogsOptionalParams::default().body(body)); pin_mut!(response); diff --git a/examples/v2_logs_list_logs_get.rs b/examples/v2_logs_list_logs_get.rs index 01aab6130..1535c405a 100644 --- a/examples/v2_logs_list_logs_get.rs +++ b/examples/v2_logs_list_logs_get.rs @@ -1,11 +1,11 @@ // Get a list of logs returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_logs::ListLogsGetOptionalParams; -use datadog_api_client::datadogV2::api::api_logs::LogsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs::ListLogsGetOptionalParams; +use datadog_api_client::datadogV2::api_logs::LogsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsAPI::with_config(configuration); let resp = api .list_logs_get(ListLogsGetOptionalParams::default()) diff --git a/examples/v2_logs_list_logs_get_2034110533.rs b/examples/v2_logs_list_logs_get_2034110533.rs index 62c09c8ed..ea0df188e 100644 --- a/examples/v2_logs_list_logs_get_2034110533.rs +++ b/examples/v2_logs_list_logs_get_2034110533.rs @@ -1,11 +1,11 @@ // Get a quick list of logs returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_logs::ListLogsGetOptionalParams; -use datadog_api_client::datadogV2::api::api_logs::LogsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs::ListLogsGetOptionalParams; +use datadog_api_client::datadogV2::api_logs::LogsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsAPI::with_config(configuration); let resp = api .list_logs_get( diff --git a/examples/v2_logs_list_logs_get_738202670.rs b/examples/v2_logs_list_logs_get_738202670.rs index b6b577040..a7a40604d 100644 --- a/examples/v2_logs_list_logs_get_738202670.rs +++ b/examples/v2_logs_list_logs_get_738202670.rs @@ -1,13 +1,13 @@ // Get a list of logs returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_logs::ListLogsGetOptionalParams; -use datadog_api_client::datadogV2::api::api_logs::LogsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs::ListLogsGetOptionalParams; +use datadog_api_client::datadogV2::api_logs::LogsAPI; use futures_util::pin_mut; use futures_util::stream::StreamExt; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsAPI::with_config(configuration); let response = api.list_logs_get_with_pagination(ListLogsGetOptionalParams::default().page_limit(2)); diff --git a/examples/v2_logs_submit_log.rs b/examples/v2_logs_submit_log.rs index c393efbe5..8ce6fe059 100644 --- a/examples/v2_logs_submit_log.rs +++ b/examples/v2_logs_submit_log.rs @@ -1,8 +1,8 @@ // Send logs returns "Request accepted for processing (always 202 empty JSON)." // response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_logs::LogsAPI; -use datadog_api_client::datadogV2::api::api_logs::SubmitLogOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs::LogsAPI; +use datadog_api_client::datadogV2::api_logs::SubmitLogOptionalParams; use datadog_api_client::datadogV2::model::HTTPLogItem; use std::collections::BTreeMap; @@ -16,7 +16,7 @@ async fn main() { .hostname("i-012345678".to_string()) .service("payment".to_string()) .additional_properties(BTreeMap::from([("status".to_string(), "info".to_string())]))]; - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsAPI::with_config(configuration); let resp = api .submit_log(body, SubmitLogOptionalParams::default()) diff --git a/examples/v2_logs_submit_log_3496222707.rs b/examples/v2_logs_submit_log_3496222707.rs index cf77b21c7..7e9bcced4 100644 --- a/examples/v2_logs_submit_log_3496222707.rs +++ b/examples/v2_logs_submit_log_3496222707.rs @@ -1,8 +1,8 @@ // Send gzip logs returns "Request accepted for processing (always 202 empty // JSON)." response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_logs::LogsAPI; -use datadog_api_client::datadogV2::api::api_logs::SubmitLogOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs::LogsAPI; +use datadog_api_client::datadogV2::api_logs::SubmitLogOptionalParams; use datadog_api_client::datadogV2::model::ContentEncoding; use datadog_api_client::datadogV2::model::HTTPLogItem; use std::collections::BTreeMap; @@ -17,7 +17,7 @@ async fn main() { .hostname("i-012345678".to_string()) .service("payment".to_string()) .additional_properties(BTreeMap::from([]))]; - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsAPI::with_config(configuration); let resp = api .submit_log( diff --git a/examples/v2_logs_submit_log_904601870.rs b/examples/v2_logs_submit_log_904601870.rs index a6f0d7cbb..6bb579ddf 100644 --- a/examples/v2_logs_submit_log_904601870.rs +++ b/examples/v2_logs_submit_log_904601870.rs @@ -1,8 +1,8 @@ // Send deflate logs returns "Request accepted for processing (always 202 empty // JSON)." response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_logs::LogsAPI; -use datadog_api_client::datadogV2::api::api_logs::SubmitLogOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_logs::LogsAPI; +use datadog_api_client::datadogV2::api_logs::SubmitLogOptionalParams; use datadog_api_client::datadogV2::model::ContentEncoding; use datadog_api_client::datadogV2::model::HTTPLogItem; use std::collections::BTreeMap; @@ -17,7 +17,7 @@ async fn main() { .hostname("i-012345678".to_string()) .service("payment".to_string()) .additional_properties(BTreeMap::from([]))]; - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = LogsAPI::with_config(configuration); let resp = api .submit_log( diff --git a/examples/v2_metrics_create_bulk_tags_metrics_configuration.rs b/examples/v2_metrics_create_bulk_tags_metrics_configuration.rs index 469b5237e..ed752b5ee 100644 --- a/examples/v2_metrics_create_bulk_tags_metrics_configuration.rs +++ b/examples/v2_metrics_create_bulk_tags_metrics_configuration.rs @@ -1,6 +1,6 @@ // Configure tags for multiple metrics returns "Accepted" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_metrics::MetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_metrics::MetricsAPI; use datadog_api_client::datadogV2::model::MetricBulkConfigureTagsType; use datadog_api_client::datadogV2::model::MetricBulkTagConfigCreate; use datadog_api_client::datadogV2::model::MetricBulkTagConfigCreateAttributes; @@ -21,7 +21,7 @@ async fn main() { .tags(vec!["test".to_string(), "examplemetric".to_string()]), ), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MetricsAPI::with_config(configuration); let resp = api.create_bulk_tags_metrics_configuration(body).await; if let Ok(value) = resp { diff --git a/examples/v2_metrics_create_tag_configuration.rs b/examples/v2_metrics_create_tag_configuration.rs index f0b26fb2e..27f08158d 100644 --- a/examples/v2_metrics_create_tag_configuration.rs +++ b/examples/v2_metrics_create_tag_configuration.rs @@ -1,6 +1,6 @@ // Create a tag configuration returns "Created" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_metrics::MetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_metrics::MetricsAPI; use datadog_api_client::datadogV2::model::MetricTagConfigurationCreateAttributes; use datadog_api_client::datadogV2::model::MetricTagConfigurationCreateData; use datadog_api_client::datadogV2::model::MetricTagConfigurationCreateRequest; @@ -19,7 +19,7 @@ async fn main() { vec!["app".to_string(), "datacenter".to_string()], )), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MetricsAPI::with_config(configuration); let resp = api .create_tag_configuration("ExampleMetric".to_string(), body) diff --git a/examples/v2_metrics_delete_bulk_tags_metrics_configuration.rs b/examples/v2_metrics_delete_bulk_tags_metrics_configuration.rs index 2ac90c58f..6bd3fc0c7 100644 --- a/examples/v2_metrics_delete_bulk_tags_metrics_configuration.rs +++ b/examples/v2_metrics_delete_bulk_tags_metrics_configuration.rs @@ -1,6 +1,6 @@ // Delete tags for multiple metrics returns "Accepted" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_metrics::MetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_metrics::MetricsAPI; use datadog_api_client::datadogV2::model::MetricBulkConfigureTagsType; use datadog_api_client::datadogV2::model::MetricBulkTagConfigDelete; use datadog_api_client::datadogV2::model::MetricBulkTagConfigDeleteAttributes; @@ -18,7 +18,7 @@ async fn main() { "bob@example.com".to_string(), ])), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MetricsAPI::with_config(configuration); let resp = api.delete_bulk_tags_metrics_configuration(body).await; if let Ok(value) = resp { diff --git a/examples/v2_metrics_delete_tag_configuration.rs b/examples/v2_metrics_delete_tag_configuration.rs index d64c8bd2d..4bf050845 100644 --- a/examples/v2_metrics_delete_tag_configuration.rs +++ b/examples/v2_metrics_delete_tag_configuration.rs @@ -1,10 +1,10 @@ // Delete a tag configuration returns "No Content" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_metrics::MetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_metrics::MetricsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MetricsAPI::with_config(configuration); let resp = api .delete_tag_configuration("ExampleMetric".to_string()) diff --git a/examples/v2_metrics_estimate_metrics_output_series.rs b/examples/v2_metrics_estimate_metrics_output_series.rs index 71f1d8d44..43b96c8cb 100644 --- a/examples/v2_metrics_estimate_metrics_output_series.rs +++ b/examples/v2_metrics_estimate_metrics_output_series.rs @@ -1,11 +1,11 @@ // Tag Configuration Cardinality Estimator returns "Success" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_metrics::EstimateMetricsOutputSeriesOptionalParams; -use datadog_api_client::datadogV2::api::api_metrics::MetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_metrics::EstimateMetricsOutputSeriesOptionalParams; +use datadog_api_client::datadogV2::api_metrics::MetricsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MetricsAPI::with_config(configuration); let resp = api .estimate_metrics_output_series( diff --git a/examples/v2_metrics_list_active_metric_configurations.rs b/examples/v2_metrics_list_active_metric_configurations.rs index 15bf8d6fc..115b8f028 100644 --- a/examples/v2_metrics_list_active_metric_configurations.rs +++ b/examples/v2_metrics_list_active_metric_configurations.rs @@ -1,11 +1,11 @@ // List active tags and aggregations returns "Success" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_metrics::ListActiveMetricConfigurationsOptionalParams; -use datadog_api_client::datadogV2::api::api_metrics::MetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_metrics::ListActiveMetricConfigurationsOptionalParams; +use datadog_api_client::datadogV2::api_metrics::MetricsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MetricsAPI::with_config(configuration); let resp = api .list_active_metric_configurations( diff --git a/examples/v2_metrics_list_metric_assets.rs b/examples/v2_metrics_list_metric_assets.rs new file mode 100644 index 000000000..fbad2ac51 --- /dev/null +++ b/examples/v2_metrics_list_metric_assets.rs @@ -0,0 +1,15 @@ +// Related Assets to a Metric returns "Success" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_metrics::MetricsAPI; + +#[tokio::main] +async fn main() { + let configuration = datadog::Configuration::new(); + let api = MetricsAPI::with_config(configuration); + let resp = api.list_metric_assets("system.cpu.user".to_string()).await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_metrics_list_tag_configuration_by_name.rs b/examples/v2_metrics_list_tag_configuration_by_name.rs index 233ccf440..a0eb8bda8 100644 --- a/examples/v2_metrics_list_tag_configuration_by_name.rs +++ b/examples/v2_metrics_list_tag_configuration_by_name.rs @@ -1,13 +1,13 @@ // List tag configuration by name returns "Success" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_metrics::MetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_metrics::MetricsAPI; #[tokio::main] async fn main() { // there is a valid "metric_tag_configuration" in the system let metric_tag_configuration_data_id = std::env::var("METRIC_TAG_CONFIGURATION_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MetricsAPI::with_config(configuration); let resp = api .list_tag_configuration_by_name(metric_tag_configuration_data_id.clone()) diff --git a/examples/v2_metrics_list_tag_configurations.rs b/examples/v2_metrics_list_tag_configurations.rs index a14308044..781f11195 100644 --- a/examples/v2_metrics_list_tag_configurations.rs +++ b/examples/v2_metrics_list_tag_configurations.rs @@ -1,11 +1,11 @@ // Get a list of metrics returns "Success" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_metrics::ListTagConfigurationsOptionalParams; -use datadog_api_client::datadogV2::api::api_metrics::MetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_metrics::ListTagConfigurationsOptionalParams; +use datadog_api_client::datadogV2::api_metrics::MetricsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MetricsAPI::with_config(configuration); let resp = api .list_tag_configurations(ListTagConfigurationsOptionalParams::default()) diff --git a/examples/v2_metrics_list_tag_configurations_265033704.rs b/examples/v2_metrics_list_tag_configurations_265033704.rs index bd43d5365..ad4d307c7 100644 --- a/examples/v2_metrics_list_tag_configurations_265033704.rs +++ b/examples/v2_metrics_list_tag_configurations_265033704.rs @@ -1,11 +1,11 @@ // Get a list of metrics with a tag filter returns "Success" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_metrics::ListTagConfigurationsOptionalParams; -use datadog_api_client::datadogV2::api::api_metrics::MetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_metrics::ListTagConfigurationsOptionalParams; +use datadog_api_client::datadogV2::api_metrics::MetricsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MetricsAPI::with_config(configuration); let resp = api .list_tag_configurations( diff --git a/examples/v2_metrics_list_tag_configurations_2739018321.rs b/examples/v2_metrics_list_tag_configurations_2739018321.rs index 5b15b6294..6aea3773e 100644 --- a/examples/v2_metrics_list_tag_configurations_2739018321.rs +++ b/examples/v2_metrics_list_tag_configurations_2739018321.rs @@ -1,11 +1,11 @@ // Get a list of metrics with configured filter returns "Success" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_metrics::ListTagConfigurationsOptionalParams; -use datadog_api_client::datadogV2::api::api_metrics::MetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_metrics::ListTagConfigurationsOptionalParams; +use datadog_api_client::datadogV2::api_metrics::MetricsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MetricsAPI::with_config(configuration); let resp = api .list_tag_configurations( diff --git a/examples/v2_metrics_list_tags_by_metric_name.rs b/examples/v2_metrics_list_tags_by_metric_name.rs index 15df32d43..f197474f3 100644 --- a/examples/v2_metrics_list_tags_by_metric_name.rs +++ b/examples/v2_metrics_list_tags_by_metric_name.rs @@ -1,13 +1,13 @@ // List tags by metric name returns "Success" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_metrics::MetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_metrics::MetricsAPI; #[tokio::main] async fn main() { // there is a valid "metric_tag_configuration" in the system let metric_tag_configuration_data_id = std::env::var("METRIC_TAG_CONFIGURATION_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MetricsAPI::with_config(configuration); let resp = api .list_tags_by_metric_name(metric_tag_configuration_data_id.clone()) diff --git a/examples/v2_metrics_list_volumes_by_metric_name.rs b/examples/v2_metrics_list_volumes_by_metric_name.rs index 65b02a529..b03c7128c 100644 --- a/examples/v2_metrics_list_volumes_by_metric_name.rs +++ b/examples/v2_metrics_list_volumes_by_metric_name.rs @@ -1,10 +1,10 @@ // List distinct metric volumes by metric name returns "Success" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_metrics::MetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_metrics::MetricsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MetricsAPI::with_config(configuration); let resp = api .list_volumes_by_metric_name("static_test_metric_donotdelete".to_string()) diff --git a/examples/v2_metrics_query_scalar_data.rs b/examples/v2_metrics_query_scalar_data.rs index 0ccbad950..3a3ebfeee 100644 --- a/examples/v2_metrics_query_scalar_data.rs +++ b/examples/v2_metrics_query_scalar_data.rs @@ -1,6 +1,6 @@ // Query scalar data across multiple products returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_metrics::MetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_metrics::MetricsAPI; use datadog_api_client::datadogV2::model::FormulaLimit; use datadog_api_client::datadogV2::model::MetricsAggregator; use datadog_api_client::datadogV2::model::MetricsDataSource; @@ -31,7 +31,7 @@ async fn main() { .limit(FormulaLimit::new().count(10).order(QuerySortOrder::DESC))]), ScalarFormulaRequestType::SCALAR_REQUEST, )); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.QueryScalarData", true); let api = MetricsAPI::with_config(configuration); let resp = api.query_scalar_data(body).await; diff --git a/examples/v2_metrics_query_scalar_data_3112571352.rs b/examples/v2_metrics_query_scalar_data_3112571352.rs index 1e6ff63fd..24e97dbd6 100644 --- a/examples/v2_metrics_query_scalar_data_3112571352.rs +++ b/examples/v2_metrics_query_scalar_data_3112571352.rs @@ -1,6 +1,6 @@ // Scalar cross product query returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_metrics::MetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_metrics::MetricsAPI; use datadog_api_client::datadogV2::model::FormulaLimit; use datadog_api_client::datadogV2::model::MetricsAggregator; use datadog_api_client::datadogV2::model::MetricsDataSource; @@ -17,7 +17,7 @@ use datadog_api_client::datadogV2::model::ScalarQuery; async fn main() { let body = ScalarFormulaQueryRequest::new(ScalarFormulaRequest::new( ScalarFormulaRequestAttributes::new( - 1671612804000, + 1636625471000, vec![ScalarQuery::MetricsScalarQuery(Box::new( MetricsScalarQuery::new( MetricsAggregator::AVG, @@ -26,13 +26,13 @@ async fn main() { ) .name("a".to_string()), ))], - 1671620004000, + 1636629071000, ) .formulas(vec![QueryFormula::new("a".to_string()) .limit(FormulaLimit::new().count(10).order(QuerySortOrder::DESC))]), ScalarFormulaRequestType::SCALAR_REQUEST, )); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.QueryScalarData", true); let api = MetricsAPI::with_config(configuration); let resp = api.query_scalar_data(body).await; diff --git a/examples/v2_metrics_query_timeseries_data.rs b/examples/v2_metrics_query_timeseries_data.rs index 2dfef0308..346c9451f 100644 --- a/examples/v2_metrics_query_timeseries_data.rs +++ b/examples/v2_metrics_query_timeseries_data.rs @@ -1,6 +1,6 @@ // Query timeseries data across multiple products returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_metrics::MetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_metrics::MetricsAPI; use datadog_api_client::datadogV2::model::FormulaLimit; use datadog_api_client::datadogV2::model::MetricsDataSource; use datadog_api_client::datadogV2::model::MetricsTimeseriesQuery; @@ -30,7 +30,7 @@ async fn main() { .interval(5000), TimeseriesFormulaRequestType::TIMESERIES_REQUEST, )); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.QueryTimeseriesData", true); let api = MetricsAPI::with_config(configuration); let resp = api.query_timeseries_data(body).await; diff --git a/examples/v2_metrics_query_timeseries_data_301142940.rs b/examples/v2_metrics_query_timeseries_data_301142940.rs index d76226fb1..3d5f6fddf 100644 --- a/examples/v2_metrics_query_timeseries_data_301142940.rs +++ b/examples/v2_metrics_query_timeseries_data_301142940.rs @@ -1,6 +1,6 @@ // Timeseries cross product query returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_metrics::MetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_metrics::MetricsAPI; use datadog_api_client::datadogV2::model::FormulaLimit; use datadog_api_client::datadogV2::model::MetricsDataSource; use datadog_api_client::datadogV2::model::MetricsTimeseriesQuery; @@ -16,22 +16,22 @@ use datadog_api_client::datadogV2::model::TimeseriesQuery; async fn main() { let body = TimeseriesFormulaQueryRequest::new(TimeseriesFormulaRequest::new( TimeseriesFormulaRequestAttributes::new( - 1671612804000, + 1636625471000, vec![TimeseriesQuery::MetricsTimeseriesQuery(Box::new( MetricsTimeseriesQuery::new( MetricsDataSource::METRICS, - "avg:system.cpu.user{*}".to_string(), + "avg:datadog.estimated_usage.metrics.custom{*}".to_string(), ) .name("a".to_string()), ))], - 1671620004000, + 1636629071000, ) .formulas(vec![QueryFormula::new("a".to_string()) .limit(FormulaLimit::new().count(10).order(QuerySortOrder::DESC))]) .interval(5000), TimeseriesFormulaRequestType::TIMESERIES_REQUEST, )); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.QueryTimeseriesData", true); let api = MetricsAPI::with_config(configuration); let resp = api.query_timeseries_data(body).await; diff --git a/examples/v2_metrics_submit_metrics.rs b/examples/v2_metrics_submit_metrics.rs index d7fed0c45..d169cb144 100644 --- a/examples/v2_metrics_submit_metrics.rs +++ b/examples/v2_metrics_submit_metrics.rs @@ -1,7 +1,7 @@ // Submit metrics returns "Payload accepted" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_metrics::MetricsAPI; -use datadog_api_client::datadogV2::api::api_metrics::SubmitMetricsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_metrics::MetricsAPI; +use datadog_api_client::datadogV2::api_metrics::SubmitMetricsOptionalParams; use datadog_api_client::datadogV2::model::MetricIntakeType; use datadog_api_client::datadogV2::model::MetricPayload; use datadog_api_client::datadogV2::model::MetricPoint; @@ -18,7 +18,7 @@ async fn main() { .name("dummyhost".to_string()) .type_("host".to_string())]) .type_(MetricIntakeType::UNSPECIFIED)]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MetricsAPI::with_config(configuration); let resp = api .submit_metrics(body, SubmitMetricsOptionalParams::default()) diff --git a/examples/v2_metrics_submit_metrics_1762007427.rs b/examples/v2_metrics_submit_metrics_1762007427.rs index e2ed0d8c1..4d8b08809 100644 --- a/examples/v2_metrics_submit_metrics_1762007427.rs +++ b/examples/v2_metrics_submit_metrics_1762007427.rs @@ -1,7 +1,7 @@ // Submit metrics with compression returns "Payload accepted" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_metrics::MetricsAPI; -use datadog_api_client::datadogV2::api::api_metrics::SubmitMetricsOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_metrics::MetricsAPI; +use datadog_api_client::datadogV2::api_metrics::SubmitMetricsOptionalParams; use datadog_api_client::datadogV2::model::MetricContentEncoding; use datadog_api_client::datadogV2::model::MetricIntakeType; use datadog_api_client::datadogV2::model::MetricPayload; @@ -15,7 +15,7 @@ async fn main() { vec![MetricPoint::new().timestamp(1636629071).value(0.7 as f64)], ) .type_(MetricIntakeType::UNSPECIFIED)]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MetricsAPI::with_config(configuration); let resp = api .submit_metrics( diff --git a/examples/v2_metrics_update_tag_configuration.rs b/examples/v2_metrics_update_tag_configuration.rs index 5d0e5a2f0..db28acb86 100644 --- a/examples/v2_metrics_update_tag_configuration.rs +++ b/examples/v2_metrics_update_tag_configuration.rs @@ -1,6 +1,6 @@ // Update a tag configuration returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_metrics::MetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_metrics::MetricsAPI; use datadog_api_client::datadogV2::model::MetricTagConfigurationType; use datadog_api_client::datadogV2::model::MetricTagConfigurationUpdateAttributes; use datadog_api_client::datadogV2::model::MetricTagConfigurationUpdateData; @@ -18,7 +18,7 @@ async fn main() { ) .attributes(MetricTagConfigurationUpdateAttributes::new().tags(vec!["app".to_string()])), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MetricsAPI::with_config(configuration); let resp = api .update_tag_configuration(metric_tag_configuration_data_id.clone(), body) diff --git a/examples/v2_monitors_create_monitor_config_policy.rs b/examples/v2_monitors_create_monitor_config_policy.rs index 85869a329..69223e371 100644 --- a/examples/v2_monitors_create_monitor_config_policy.rs +++ b/examples/v2_monitors_create_monitor_config_policy.rs @@ -1,6 +1,6 @@ // Create a monitor configuration policy returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_monitors::MonitorsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_monitors::MonitorsAPI; use datadog_api_client::datadogV2::model::MonitorConfigPolicyAttributeCreateRequest; use datadog_api_client::datadogV2::model::MonitorConfigPolicyCreateData; use datadog_api_client::datadogV2::model::MonitorConfigPolicyCreateRequest; @@ -24,7 +24,7 @@ async fn main() { ), MonitorConfigPolicyResourceType::MONITOR_CONFIG_POLICY, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MonitorsAPI::with_config(configuration); let resp = api.create_monitor_config_policy(body).await; if let Ok(value) = resp { diff --git a/examples/v2_monitors_delete_monitor_config_policy.rs b/examples/v2_monitors_delete_monitor_config_policy.rs index 7de6d7a74..4665afa1d 100644 --- a/examples/v2_monitors_delete_monitor_config_policy.rs +++ b/examples/v2_monitors_delete_monitor_config_policy.rs @@ -1,13 +1,13 @@ // Delete a monitor configuration policy returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_monitors::MonitorsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_monitors::MonitorsAPI; #[tokio::main] async fn main() { // there is a valid "monitor_configuration_policy" in the system let monitor_configuration_policy_data_id = std::env::var("MONITOR_CONFIGURATION_POLICY_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MonitorsAPI::with_config(configuration); let resp = api .delete_monitor_config_policy(monitor_configuration_policy_data_id.clone()) diff --git a/examples/v2_monitors_get_monitor_config_policy.rs b/examples/v2_monitors_get_monitor_config_policy.rs index 583760320..c691102b8 100644 --- a/examples/v2_monitors_get_monitor_config_policy.rs +++ b/examples/v2_monitors_get_monitor_config_policy.rs @@ -1,13 +1,13 @@ // Get a monitor configuration policy returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_monitors::MonitorsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_monitors::MonitorsAPI; #[tokio::main] async fn main() { // there is a valid "monitor_configuration_policy" in the system let monitor_configuration_policy_data_id = std::env::var("MONITOR_CONFIGURATION_POLICY_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MonitorsAPI::with_config(configuration); let resp = api .get_monitor_config_policy(monitor_configuration_policy_data_id.clone()) diff --git a/examples/v2_monitors_list_monitor_config_policies.rs b/examples/v2_monitors_list_monitor_config_policies.rs index 5018fa198..ef462b085 100644 --- a/examples/v2_monitors_list_monitor_config_policies.rs +++ b/examples/v2_monitors_list_monitor_config_policies.rs @@ -1,10 +1,10 @@ // Get all monitor configuration policies returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_monitors::MonitorsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_monitors::MonitorsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MonitorsAPI::with_config(configuration); let resp = api.list_monitor_config_policies().await; if let Ok(value) = resp { diff --git a/examples/v2_monitors_update_monitor_config_policy.rs b/examples/v2_monitors_update_monitor_config_policy.rs index 3d7f38d63..39dbe5b64 100644 --- a/examples/v2_monitors_update_monitor_config_policy.rs +++ b/examples/v2_monitors_update_monitor_config_policy.rs @@ -1,6 +1,6 @@ // Edit a monitor configuration policy returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_monitors::MonitorsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_monitors::MonitorsAPI; use datadog_api_client::datadogV2::model::MonitorConfigPolicyAttributeEditRequest; use datadog_api_client::datadogV2::model::MonitorConfigPolicyEditData; use datadog_api_client::datadogV2::model::MonitorConfigPolicyEditRequest; @@ -27,7 +27,7 @@ async fn main() { monitor_configuration_policy_data_id.clone(), MonitorConfigPolicyResourceType::MONITOR_CONFIG_POLICY, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = MonitorsAPI::with_config(configuration); let resp = api .update_monitor_config_policy(monitor_configuration_policy_data_id.clone(), body) diff --git a/examples/v2_okta-integration_create_okta_account.rs b/examples/v2_okta-integration_create_okta_account.rs index 89848502e..6d40cb9ab 100644 --- a/examples/v2_okta-integration_create_okta_account.rs +++ b/examples/v2_okta-integration_create_okta_account.rs @@ -1,6 +1,6 @@ // Add Okta account returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_okta_integration::OktaIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_okta_integration::OktaIntegrationAPI; use datadog_api_client::datadogV2::model::OktaAccount; use datadog_api_client::datadogV2::model::OktaAccountAttributes; use datadog_api_client::datadogV2::model::OktaAccountRequest; @@ -13,7 +13,7 @@ async fn main() { OktaAccountAttributes::new( "oauth".to_string(), "https://example.okta.com/".to_string(), - "Okta_Prod".to_string(), + "exampleoktaintegration".to_string(), ) .client_id("client_id".to_string()) .client_secret("client_secret".to_string()), @@ -21,7 +21,7 @@ async fn main() { ) .id("f749daaf-682e-4208-a38d-c9b43162c609".to_string()), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = OktaIntegrationAPI::with_config(configuration); let resp = api.create_okta_account(body).await; if let Ok(value) = resp { diff --git a/examples/v2_okta-integration_delete_okta_account.rs b/examples/v2_okta-integration_delete_okta_account.rs index a81288a5b..ed16fcbd9 100644 --- a/examples/v2_okta-integration_delete_okta_account.rs +++ b/examples/v2_okta-integration_delete_okta_account.rs @@ -1,10 +1,10 @@ // Delete Okta account returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_okta_integration::OktaIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_okta_integration::OktaIntegrationAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = OktaIntegrationAPI::with_config(configuration); let resp = api.delete_okta_account("account_id".to_string()).await; if let Ok(value) = resp { diff --git a/examples/v2_okta-integration_get_okta_account.rs b/examples/v2_okta-integration_get_okta_account.rs index a379acb55..13dc09cd5 100644 --- a/examples/v2_okta-integration_get_okta_account.rs +++ b/examples/v2_okta-integration_get_okta_account.rs @@ -1,12 +1,12 @@ // Get Okta account returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_okta_integration::OktaIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_okta_integration::OktaIntegrationAPI; #[tokio::main] async fn main() { // there is a valid "okta_account" in the system let okta_account_data_id = std::env::var("OKTA_ACCOUNT_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = OktaIntegrationAPI::with_config(configuration); let resp = api.get_okta_account(okta_account_data_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v2_okta-integration_list_okta_accounts.rs b/examples/v2_okta-integration_list_okta_accounts.rs index 53b23b105..1e3c26fe4 100644 --- a/examples/v2_okta-integration_list_okta_accounts.rs +++ b/examples/v2_okta-integration_list_okta_accounts.rs @@ -1,10 +1,10 @@ // List Okta accounts returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_okta_integration::OktaIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_okta_integration::OktaIntegrationAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = OktaIntegrationAPI::with_config(configuration); let resp = api.list_okta_accounts().await; if let Ok(value) = resp { diff --git a/examples/v2_okta-integration_update_okta_account.rs b/examples/v2_okta-integration_update_okta_account.rs index 903822fed..3e7c82060 100644 --- a/examples/v2_okta-integration_update_okta_account.rs +++ b/examples/v2_okta-integration_update_okta_account.rs @@ -1,6 +1,6 @@ // Update Okta account returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_okta_integration::OktaIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_okta_integration::OktaIntegrationAPI; use datadog_api_client::datadogV2::model::OktaAccountType; use datadog_api_client::datadogV2::model::OktaAccountUpdateRequest; use datadog_api_client::datadogV2::model::OktaAccountUpdateRequestAttributes; @@ -22,7 +22,7 @@ async fn main() { ) .type_(OktaAccountType::OKTA_ACCOUNTS), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = OktaIntegrationAPI::with_config(configuration); let resp = api .update_okta_account(okta_account_data_id.clone(), body) diff --git a/examples/v2_opsgenie-integration_create_opsgenie_service.rs b/examples/v2_opsgenie-integration_create_opsgenie_service.rs index 826bcfd97..2edd91811 100644 --- a/examples/v2_opsgenie-integration_create_opsgenie_service.rs +++ b/examples/v2_opsgenie-integration_create_opsgenie_service.rs @@ -1,6 +1,6 @@ // Create a new service object returns "CREATED" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_opsgenie_integration::OpsgenieIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_opsgenie_integration::OpsgenieIntegrationAPI; use datadog_api_client::datadogV2::model::OpsgenieServiceCreateAttributes; use datadog_api_client::datadogV2::model::OpsgenieServiceCreateData; use datadog_api_client::datadogV2::model::OpsgenieServiceCreateRequest; @@ -17,7 +17,7 @@ async fn main() { ), OpsgenieServiceType::OPSGENIE_SERVICE, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = OpsgenieIntegrationAPI::with_config(configuration); let resp = api.create_opsgenie_service(body).await; if let Ok(value) = resp { diff --git a/examples/v2_opsgenie-integration_delete_opsgenie_service.rs b/examples/v2_opsgenie-integration_delete_opsgenie_service.rs index a5318730e..98565f0dd 100644 --- a/examples/v2_opsgenie-integration_delete_opsgenie_service.rs +++ b/examples/v2_opsgenie-integration_delete_opsgenie_service.rs @@ -1,12 +1,12 @@ // Delete a single service object returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_opsgenie_integration::OpsgenieIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_opsgenie_integration::OpsgenieIntegrationAPI; #[tokio::main] async fn main() { // there is a valid "opsgenie_service" in the system let opsgenie_service_data_id = std::env::var("OPSGENIE_SERVICE_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = OpsgenieIntegrationAPI::with_config(configuration); let resp = api .delete_opsgenie_service(opsgenie_service_data_id.clone()) diff --git a/examples/v2_opsgenie-integration_get_opsgenie_service.rs b/examples/v2_opsgenie-integration_get_opsgenie_service.rs index 316b52357..d14d5c669 100644 --- a/examples/v2_opsgenie-integration_get_opsgenie_service.rs +++ b/examples/v2_opsgenie-integration_get_opsgenie_service.rs @@ -1,12 +1,12 @@ // Get a single service object returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_opsgenie_integration::OpsgenieIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_opsgenie_integration::OpsgenieIntegrationAPI; #[tokio::main] async fn main() { // there is a valid "opsgenie_service" in the system let opsgenie_service_data_id = std::env::var("OPSGENIE_SERVICE_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = OpsgenieIntegrationAPI::with_config(configuration); let resp = api .get_opsgenie_service(opsgenie_service_data_id.clone()) diff --git a/examples/v2_opsgenie-integration_list_opsgenie_services.rs b/examples/v2_opsgenie-integration_list_opsgenie_services.rs index 0d85f4a54..0abbfda79 100644 --- a/examples/v2_opsgenie-integration_list_opsgenie_services.rs +++ b/examples/v2_opsgenie-integration_list_opsgenie_services.rs @@ -1,10 +1,10 @@ // Get all service objects returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_opsgenie_integration::OpsgenieIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_opsgenie_integration::OpsgenieIntegrationAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = OpsgenieIntegrationAPI::with_config(configuration); let resp = api.list_opsgenie_services().await; if let Ok(value) = resp { diff --git a/examples/v2_opsgenie-integration_update_opsgenie_service.rs b/examples/v2_opsgenie-integration_update_opsgenie_service.rs index c3e83c5da..62c47397f 100644 --- a/examples/v2_opsgenie-integration_update_opsgenie_service.rs +++ b/examples/v2_opsgenie-integration_update_opsgenie_service.rs @@ -1,6 +1,6 @@ // Update a single service object returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_opsgenie_integration::OpsgenieIntegrationAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_opsgenie_integration::OpsgenieIntegrationAPI; use datadog_api_client::datadogV2::model::OpsgenieServiceRegionType; use datadog_api_client::datadogV2::model::OpsgenieServiceType; use datadog_api_client::datadogV2::model::OpsgenieServiceUpdateAttributes; @@ -19,7 +19,7 @@ async fn main() { opsgenie_service_data_id.clone(), OpsgenieServiceType::OPSGENIE_SERVICE, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = OpsgenieIntegrationAPI::with_config(configuration); let resp = api .update_opsgenie_service(opsgenie_service_data_id.clone(), body) diff --git a/examples/v2_organizations_upload_idp_metadata.rs b/examples/v2_organizations_upload_idp_metadata.rs index beb059eb0..db36dcb98 100644 --- a/examples/v2_organizations_upload_idp_metadata.rs +++ b/examples/v2_organizations_upload_idp_metadata.rs @@ -1,12 +1,12 @@ // Upload IdP metadata returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_organizations::OrganizationsAPI; -use datadog_api_client::datadogV2::api::api_organizations::UploadIdPMetadataOptionalParams; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_organizations::OrganizationsAPI; +use datadog_api_client::datadogV2::api_organizations::UploadIdPMetadataOptionalParams; use std::fs; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = OrganizationsAPI::with_config(configuration); let resp = api .upload_idp_metadata(UploadIdPMetadataOptionalParams::default().idp_file( diff --git a/examples/v2_powerpack_create_powerpack.rs b/examples/v2_powerpack_create_powerpack.rs index e2e7a4870..a9e65df8a 100644 --- a/examples/v2_powerpack_create_powerpack.rs +++ b/examples/v2_powerpack_create_powerpack.rs @@ -1,6 +1,6 @@ // Create a new powerpack returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_powerpack::PowerpackAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_powerpack::PowerpackAPI; use datadog_api_client::datadogV2::model::Powerpack; use datadog_api_client::datadogV2::model::PowerpackAttributes; use datadog_api_client::datadogV2::model::PowerpackData; @@ -42,7 +42,7 @@ async fn main() { ) .type_("powerpack".to_string()), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = PowerpackAPI::with_config(configuration); let resp = api.create_powerpack(body).await; if let Ok(value) = resp { diff --git a/examples/v2_powerpack_delete_powerpack.rs b/examples/v2_powerpack_delete_powerpack.rs index a54d42b4b..cf4e3859a 100644 --- a/examples/v2_powerpack_delete_powerpack.rs +++ b/examples/v2_powerpack_delete_powerpack.rs @@ -1,12 +1,12 @@ // Delete a powerpack returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_powerpack::PowerpackAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_powerpack::PowerpackAPI; #[tokio::main] async fn main() { // there is a valid "powerpack" in the system let powerpack_data_id = std::env::var("POWERPACK_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = PowerpackAPI::with_config(configuration); let resp = api.delete_powerpack(powerpack_data_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v2_powerpack_get_powerpack.rs b/examples/v2_powerpack_get_powerpack.rs index 94bcae168..d407e5c35 100644 --- a/examples/v2_powerpack_get_powerpack.rs +++ b/examples/v2_powerpack_get_powerpack.rs @@ -1,12 +1,12 @@ // Get a Powerpack returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_powerpack::PowerpackAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_powerpack::PowerpackAPI; #[tokio::main] async fn main() { // there is a valid "powerpack" in the system let powerpack_data_id = std::env::var("POWERPACK_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = PowerpackAPI::with_config(configuration); let resp = api.get_powerpack(powerpack_data_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v2_powerpack_list_powerpacks.rs b/examples/v2_powerpack_list_powerpacks.rs index d1ba91170..125134168 100644 --- a/examples/v2_powerpack_list_powerpacks.rs +++ b/examples/v2_powerpack_list_powerpacks.rs @@ -1,11 +1,11 @@ // Get all powerpacks returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_powerpack::ListPowerpacksOptionalParams; -use datadog_api_client::datadogV2::api::api_powerpack::PowerpackAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_powerpack::ListPowerpacksOptionalParams; +use datadog_api_client::datadogV2::api_powerpack::PowerpackAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = PowerpackAPI::with_config(configuration); let resp = api .list_powerpacks(ListPowerpacksOptionalParams::default().page_limit(1000)) diff --git a/examples/v2_powerpack_list_powerpacks_1173755071.rs b/examples/v2_powerpack_list_powerpacks_1173755071.rs index 36a2526a4..f2003136f 100644 --- a/examples/v2_powerpack_list_powerpacks_1173755071.rs +++ b/examples/v2_powerpack_list_powerpacks_1173755071.rs @@ -1,13 +1,13 @@ // Get all powerpacks returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_powerpack::ListPowerpacksOptionalParams; -use datadog_api_client::datadogV2::api::api_powerpack::PowerpackAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_powerpack::ListPowerpacksOptionalParams; +use datadog_api_client::datadogV2::api_powerpack::PowerpackAPI; use futures_util::pin_mut; use futures_util::stream::StreamExt; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = PowerpackAPI::with_config(configuration); let response = api.list_powerpacks_with_pagination(ListPowerpacksOptionalParams::default().page_limit(2)); diff --git a/examples/v2_powerpack_update_powerpack.rs b/examples/v2_powerpack_update_powerpack.rs index 44ec6c420..da1196908 100644 --- a/examples/v2_powerpack_update_powerpack.rs +++ b/examples/v2_powerpack_update_powerpack.rs @@ -1,6 +1,6 @@ // Update a powerpack returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_powerpack::PowerpackAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_powerpack::PowerpackAPI; use datadog_api_client::datadogV2::model::Powerpack; use datadog_api_client::datadogV2::model::PowerpackAttributes; use datadog_api_client::datadogV2::model::PowerpackData; @@ -44,7 +44,7 @@ async fn main() { ) .type_("powerpack".to_string()), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = PowerpackAPI::with_config(configuration); let resp = api.update_powerpack(powerpack_data_id.clone(), body).await; if let Ok(value) = resp { diff --git a/examples/v2_processes_list_processes.rs b/examples/v2_processes_list_processes.rs index 0e966a748..093970cc3 100644 --- a/examples/v2_processes_list_processes.rs +++ b/examples/v2_processes_list_processes.rs @@ -1,11 +1,11 @@ // Get all processes returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_processes::ListProcessesOptionalParams; -use datadog_api_client::datadogV2::api::api_processes::ProcessesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_processes::ListProcessesOptionalParams; +use datadog_api_client::datadogV2::api_processes::ProcessesAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ProcessesAPI::with_config(configuration); let resp = api .list_processes( diff --git a/examples/v2_processes_list_processes_797840471.rs b/examples/v2_processes_list_processes_797840471.rs index 99866be7e..ff12464ef 100644 --- a/examples/v2_processes_list_processes_797840471.rs +++ b/examples/v2_processes_list_processes_797840471.rs @@ -1,13 +1,13 @@ // Get all processes returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_processes::ListProcessesOptionalParams; -use datadog_api_client::datadogV2::api::api_processes::ProcessesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_processes::ListProcessesOptionalParams; +use datadog_api_client::datadogV2::api_processes::ProcessesAPI; use futures_util::pin_mut; use futures_util::stream::StreamExt; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ProcessesAPI::with_config(configuration); let response = api.list_processes_with_pagination(ListProcessesOptionalParams::default().page_limit(2)); diff --git a/examples/v2_restriction-policies_delete_restriction_policy.rs b/examples/v2_restriction-policies_delete_restriction_policy.rs index bad437830..f728e5edd 100644 --- a/examples/v2_restriction-policies_delete_restriction_policy.rs +++ b/examples/v2_restriction-policies_delete_restriction_policy.rs @@ -1,10 +1,10 @@ // Delete a restriction policy returns "No Content" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_restriction_policies::RestrictionPoliciesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_restriction_policies::RestrictionPoliciesAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = RestrictionPoliciesAPI::with_config(configuration); let resp = api .delete_restriction_policy("dashboard:test-delete".to_string()) diff --git a/examples/v2_restriction-policies_get_restriction_policy.rs b/examples/v2_restriction-policies_get_restriction_policy.rs index 345b9784d..bd5a14505 100644 --- a/examples/v2_restriction-policies_get_restriction_policy.rs +++ b/examples/v2_restriction-policies_get_restriction_policy.rs @@ -1,10 +1,10 @@ // Get a restriction policy returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_restriction_policies::RestrictionPoliciesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_restriction_policies::RestrictionPoliciesAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = RestrictionPoliciesAPI::with_config(configuration); let resp = api .get_restriction_policy("dashboard:test-get".to_string()) diff --git a/examples/v2_restriction-policies_update_restriction_policy.rs b/examples/v2_restriction-policies_update_restriction_policy.rs index babcb17d1..a2a5270a9 100644 --- a/examples/v2_restriction-policies_update_restriction_policy.rs +++ b/examples/v2_restriction-policies_update_restriction_policy.rs @@ -1,6 +1,6 @@ // Update a restriction policy returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_restriction_policies::RestrictionPoliciesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_restriction_policies::RestrictionPoliciesAPI; use datadog_api_client::datadogV2::model::RestrictionPolicy; use datadog_api_client::datadogV2::model::RestrictionPolicyAttributes; use datadog_api_client::datadogV2::model::RestrictionPolicyBinding; @@ -18,7 +18,7 @@ async fn main() { "dashboard:test-update".to_string(), RestrictionPolicyType::RESTRICTION_POLICY, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = RestrictionPoliciesAPI::with_config(configuration); let resp = api .update_restriction_policy("dashboard:test-update".to_string(), body) diff --git a/examples/v2_roles_add_permission_to_role.rs b/examples/v2_roles_add_permission_to_role.rs index 02a7c941c..913262bd0 100644 --- a/examples/v2_roles_add_permission_to_role.rs +++ b/examples/v2_roles_add_permission_to_role.rs @@ -1,6 +1,6 @@ // Grant permission to a role returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_roles::RolesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_roles::RolesAPI; use datadog_api_client::datadogV2::model::PermissionsType; use datadog_api_client::datadogV2::model::RelationshipToPermission; use datadog_api_client::datadogV2::model::RelationshipToPermissionData; @@ -17,7 +17,7 @@ async fn main() { .id(permission_id.clone()) .type_(PermissionsType::PERMISSIONS), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = RolesAPI::with_config(configuration); let resp = api.add_permission_to_role(role_data_id.clone(), body).await; if let Ok(value) = resp { diff --git a/examples/v2_roles_add_user_to_role.rs b/examples/v2_roles_add_user_to_role.rs index c70502e97..8095d60bb 100644 --- a/examples/v2_roles_add_user_to_role.rs +++ b/examples/v2_roles_add_user_to_role.rs @@ -1,6 +1,6 @@ // Add a user to a role returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_roles::RolesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_roles::RolesAPI; use datadog_api_client::datadogV2::model::RelationshipToUser; use datadog_api_client::datadogV2::model::RelationshipToUserData; use datadog_api_client::datadogV2::model::UsersType; @@ -16,7 +16,7 @@ async fn main() { user_data_id.clone(), UsersType::USERS, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = RolesAPI::with_config(configuration); let resp = api.add_user_to_role(role_data_id.clone(), body).await; if let Ok(value) = resp { diff --git a/examples/v2_roles_clone_role.rs b/examples/v2_roles_clone_role.rs index 9b79dfc96..c3cac64c5 100644 --- a/examples/v2_roles_clone_role.rs +++ b/examples/v2_roles_clone_role.rs @@ -1,6 +1,6 @@ // Create a new role by cloning an existing role returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_roles::RolesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_roles::RolesAPI; use datadog_api_client::datadogV2::model::RoleClone; use datadog_api_client::datadogV2::model::RoleCloneAttributes; use datadog_api_client::datadogV2::model::RoleCloneRequest; @@ -14,7 +14,7 @@ async fn main() { RoleCloneAttributes::new("Example-Role clone".to_string()), RolesType::ROLES, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = RolesAPI::with_config(configuration); let resp = api.clone_role(role_data_id.clone(), body).await; if let Ok(value) = resp { diff --git a/examples/v2_roles_create_role.rs b/examples/v2_roles_create_role.rs index 3b201d976..9149137a2 100644 --- a/examples/v2_roles_create_role.rs +++ b/examples/v2_roles_create_role.rs @@ -1,6 +1,6 @@ // Create role returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_roles::RolesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_roles::RolesAPI; use datadog_api_client::datadogV2::model::RoleCreateAttributes; use datadog_api_client::datadogV2::model::RoleCreateData; use datadog_api_client::datadogV2::model::RoleCreateRequest; @@ -12,7 +12,7 @@ async fn main() { RoleCreateData::new(RoleCreateAttributes::new("Example-Role".to_string())) .type_(RolesType::ROLES), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = RolesAPI::with_config(configuration); let resp = api.create_role(body).await; if let Ok(value) = resp { diff --git a/examples/v2_roles_delete_role.rs b/examples/v2_roles_delete_role.rs index 1f5746d76..2243a2aeb 100644 --- a/examples/v2_roles_delete_role.rs +++ b/examples/v2_roles_delete_role.rs @@ -1,12 +1,12 @@ // Delete role returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_roles::RolesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_roles::RolesAPI; #[tokio::main] async fn main() { // there is a valid "role" in the system let role_data_id = std::env::var("ROLE_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = RolesAPI::with_config(configuration); let resp = api.delete_role(role_data_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v2_roles_get_role.rs b/examples/v2_roles_get_role.rs index efc51117b..2185cd597 100644 --- a/examples/v2_roles_get_role.rs +++ b/examples/v2_roles_get_role.rs @@ -1,12 +1,12 @@ // Get a role returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_roles::RolesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_roles::RolesAPI; #[tokio::main] async fn main() { // there is a valid "role" in the system let role_data_id = std::env::var("ROLE_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = RolesAPI::with_config(configuration); let resp = api.get_role(role_data_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v2_roles_list_permissions.rs b/examples/v2_roles_list_permissions.rs index 70d5e7008..c440a9ac0 100644 --- a/examples/v2_roles_list_permissions.rs +++ b/examples/v2_roles_list_permissions.rs @@ -1,10 +1,10 @@ // List permissions returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_roles::RolesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_roles::RolesAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = RolesAPI::with_config(configuration); let resp = api.list_permissions().await; if let Ok(value) = resp { diff --git a/examples/v2_roles_list_role_permissions.rs b/examples/v2_roles_list_role_permissions.rs index ac93a5f2c..b965c5ca5 100644 --- a/examples/v2_roles_list_role_permissions.rs +++ b/examples/v2_roles_list_role_permissions.rs @@ -1,12 +1,12 @@ // List permissions for a role returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_roles::RolesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_roles::RolesAPI; #[tokio::main] async fn main() { // there is a valid "role" in the system let role_data_id = std::env::var("ROLE_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = RolesAPI::with_config(configuration); let resp = api.list_role_permissions(role_data_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v2_roles_list_role_users.rs b/examples/v2_roles_list_role_users.rs index 450e01c97..682e687d9 100644 --- a/examples/v2_roles_list_role_users.rs +++ b/examples/v2_roles_list_role_users.rs @@ -1,13 +1,13 @@ // Get all users of a role returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_roles::ListRoleUsersOptionalParams; -use datadog_api_client::datadogV2::api::api_roles::RolesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_roles::ListRoleUsersOptionalParams; +use datadog_api_client::datadogV2::api_roles::RolesAPI; #[tokio::main] async fn main() { // there is a valid "role" in the system let role_data_id = std::env::var("ROLE_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = RolesAPI::with_config(configuration); let resp = api .list_role_users(role_data_id.clone(), ListRoleUsersOptionalParams::default()) diff --git a/examples/v2_roles_list_roles.rs b/examples/v2_roles_list_roles.rs index 469584f7e..1726b23f5 100644 --- a/examples/v2_roles_list_roles.rs +++ b/examples/v2_roles_list_roles.rs @@ -1,13 +1,13 @@ // List roles returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_roles::ListRolesOptionalParams; -use datadog_api_client::datadogV2::api::api_roles::RolesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_roles::ListRolesOptionalParams; +use datadog_api_client::datadogV2::api_roles::RolesAPI; #[tokio::main] async fn main() { // there is a valid "role" in the system let role_data_attributes_name = std::env::var("ROLE_DATA_ATTRIBUTES_NAME").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = RolesAPI::with_config(configuration); let resp = api .list_roles(ListRolesOptionalParams::default().filter(role_data_attributes_name.clone())) diff --git a/examples/v2_roles_remove_permission_from_role.rs b/examples/v2_roles_remove_permission_from_role.rs index cac52004c..b0a155b19 100644 --- a/examples/v2_roles_remove_permission_from_role.rs +++ b/examples/v2_roles_remove_permission_from_role.rs @@ -1,6 +1,6 @@ // Revoke permission returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_roles::RolesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_roles::RolesAPI; use datadog_api_client::datadogV2::model::PermissionsType; use datadog_api_client::datadogV2::model::RelationshipToPermission; use datadog_api_client::datadogV2::model::RelationshipToPermissionData; @@ -17,7 +17,7 @@ async fn main() { .id(permission_id.clone()) .type_(PermissionsType::PERMISSIONS), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = RolesAPI::with_config(configuration); let resp = api .remove_permission_from_role(role_data_id.clone(), body) diff --git a/examples/v2_roles_remove_user_from_role.rs b/examples/v2_roles_remove_user_from_role.rs index dabe2cc08..101ed87ed 100644 --- a/examples/v2_roles_remove_user_from_role.rs +++ b/examples/v2_roles_remove_user_from_role.rs @@ -1,6 +1,6 @@ // Remove a user from a role returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_roles::RolesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_roles::RolesAPI; use datadog_api_client::datadogV2::model::RelationshipToUser; use datadog_api_client::datadogV2::model::RelationshipToUserData; use datadog_api_client::datadogV2::model::UsersType; @@ -16,7 +16,7 @@ async fn main() { user_data_id.clone(), UsersType::USERS, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = RolesAPI::with_config(configuration); let resp = api.remove_user_from_role(role_data_id.clone(), body).await; if let Ok(value) = resp { diff --git a/examples/v2_roles_update_role.rs b/examples/v2_roles_update_role.rs index f092ac1be..2e36c16d1 100644 --- a/examples/v2_roles_update_role.rs +++ b/examples/v2_roles_update_role.rs @@ -1,6 +1,6 @@ // Update a role returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_roles::RolesAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_roles::RolesAPI; use datadog_api_client::datadogV2::model::PermissionsType; use datadog_api_client::datadogV2::model::RelationshipToPermissionData; use datadog_api_client::datadogV2::model::RelationshipToPermissions; @@ -31,7 +31,7 @@ async fn main() { ]), )), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = RolesAPI::with_config(configuration); let resp = api.update_role(role_data_id.clone(), body).await; if let Ok(value) = resp { diff --git a/examples/v2_rum_aggregate_rum_events.rs b/examples/v2_rum_aggregate_rum_events.rs index b17bbfd04..f7d2a5c6e 100644 --- a/examples/v2_rum_aggregate_rum_events.rs +++ b/examples/v2_rum_aggregate_rum_events.rs @@ -1,6 +1,6 @@ // Aggregate RUM events returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_rum::RUMAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_rum::RUMAPI; use datadog_api_client::datadogV2::model::RUMAggregateRequest; use datadog_api_client::datadogV2::model::RUMAggregationFunction; use datadog_api_client::datadogV2::model::RUMCompute; @@ -28,7 +28,7 @@ async fn main() { .total(RUMGroupByTotal::RUMGroupByTotalBoolean(false))]) .options(RUMQueryOptions::new().timezone("GMT".to_string())) .page(RUMQueryPageOptions::new().limit(25)); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = RUMAPI::with_config(configuration); let resp = api.aggregate_rum_events(body).await; if let Ok(value) = resp { diff --git a/examples/v2_rum_create_rum_application.rs b/examples/v2_rum_create_rum_application.rs index 6bdb6c2b6..d434fb961 100644 --- a/examples/v2_rum_create_rum_application.rs +++ b/examples/v2_rum_create_rum_application.rs @@ -1,6 +1,6 @@ // Create a new RUM application returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_rum::RUMAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_rum::RUMAPI; use datadog_api_client::datadogV2::model::RUMApplicationCreate; use datadog_api_client::datadogV2::model::RUMApplicationCreateAttributes; use datadog_api_client::datadogV2::model::RUMApplicationCreateRequest; @@ -13,7 +13,7 @@ async fn main() { .type_("ios".to_string()), RUMApplicationCreateType::RUM_APPLICATION_CREATE, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = RUMAPI::with_config(configuration); let resp = api.create_rum_application(body).await; if let Ok(value) = resp { diff --git a/examples/v2_rum_delete_rum_application.rs b/examples/v2_rum_delete_rum_application.rs index 082c9f5f4..cef598496 100644 --- a/examples/v2_rum_delete_rum_application.rs +++ b/examples/v2_rum_delete_rum_application.rs @@ -1,12 +1,12 @@ // Delete a RUM application returns "No Content" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_rum::RUMAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_rum::RUMAPI; #[tokio::main] async fn main() { // there is a valid "rum_application" in the system let rum_application_data_id = std::env::var("RUM_APPLICATION_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = RUMAPI::with_config(configuration); let resp = api .delete_rum_application(rum_application_data_id.clone()) diff --git a/examples/v2_rum_get_rum_application.rs b/examples/v2_rum_get_rum_application.rs index 2dd074a62..0c102d8be 100644 --- a/examples/v2_rum_get_rum_application.rs +++ b/examples/v2_rum_get_rum_application.rs @@ -1,12 +1,12 @@ // Get a RUM application returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_rum::RUMAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_rum::RUMAPI; #[tokio::main] async fn main() { // there is a valid "rum_application" in the system let rum_application_data_id = std::env::var("RUM_APPLICATION_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = RUMAPI::with_config(configuration); let resp = api .get_rum_application(rum_application_data_id.clone()) diff --git a/examples/v2_rum_get_rum_applications.rs b/examples/v2_rum_get_rum_applications.rs index 08d945f1f..a4633982c 100644 --- a/examples/v2_rum_get_rum_applications.rs +++ b/examples/v2_rum_get_rum_applications.rs @@ -1,10 +1,10 @@ // List all the RUM applications returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_rum::RUMAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_rum::RUMAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = RUMAPI::with_config(configuration); let resp = api.get_rum_applications().await; if let Ok(value) = resp { diff --git a/examples/v2_rum_list_rum_events.rs b/examples/v2_rum_list_rum_events.rs index 5bc2550a7..894f12566 100644 --- a/examples/v2_rum_list_rum_events.rs +++ b/examples/v2_rum_list_rum_events.rs @@ -1,11 +1,11 @@ // Get a list of RUM events returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_rum::ListRUMEventsOptionalParams; -use datadog_api_client::datadogV2::api::api_rum::RUMAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_rum::ListRUMEventsOptionalParams; +use datadog_api_client::datadogV2::api_rum::RUMAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = RUMAPI::with_config(configuration); let resp = api .list_rum_events(ListRUMEventsOptionalParams::default()) diff --git a/examples/v2_rum_list_rum_events_2680821282.rs b/examples/v2_rum_list_rum_events_2680821282.rs index eb79d8b95..99923ebe4 100644 --- a/examples/v2_rum_list_rum_events_2680821282.rs +++ b/examples/v2_rum_list_rum_events_2680821282.rs @@ -1,13 +1,13 @@ // Get a list of RUM events returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_rum::ListRUMEventsOptionalParams; -use datadog_api_client::datadogV2::api::api_rum::RUMAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_rum::ListRUMEventsOptionalParams; +use datadog_api_client::datadogV2::api_rum::RUMAPI; use futures_util::pin_mut; use futures_util::stream::StreamExt; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = RUMAPI::with_config(configuration); let response = api.list_rum_events_with_pagination(ListRUMEventsOptionalParams::default().page_limit(2)); diff --git a/examples/v2_rum_search_rum_events.rs b/examples/v2_rum_search_rum_events.rs index d56dc07a8..bd39df13f 100644 --- a/examples/v2_rum_search_rum_events.rs +++ b/examples/v2_rum_search_rum_events.rs @@ -1,6 +1,6 @@ // Search RUM events returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_rum::RUMAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_rum::RUMAPI; use datadog_api_client::datadogV2::model::RUMQueryFilter; use datadog_api_client::datadogV2::model::RUMQueryOptions; use datadog_api_client::datadogV2::model::RUMQueryPageOptions; @@ -23,7 +23,7 @@ async fn main() { ) .page(RUMQueryPageOptions::new().limit(25)) .sort(RUMSort::TIMESTAMP_ASCENDING); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = RUMAPI::with_config(configuration); let resp = api.search_rum_events(body).await; if let Ok(value) = resp { diff --git a/examples/v2_rum_search_rum_events_574690310.rs b/examples/v2_rum_search_rum_events_574690310.rs index 2f6798eed..882aa8881 100644 --- a/examples/v2_rum_search_rum_events_574690310.rs +++ b/examples/v2_rum_search_rum_events_574690310.rs @@ -1,6 +1,6 @@ // Search RUM events returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_rum::RUMAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_rum::RUMAPI; use datadog_api_client::datadogV2::model::RUMQueryFilter; use datadog_api_client::datadogV2::model::RUMQueryOptions; use datadog_api_client::datadogV2::model::RUMQueryPageOptions; @@ -25,7 +25,7 @@ async fn main() { ) .page(RUMQueryPageOptions::new().limit(2)) .sort(RUMSort::TIMESTAMP_ASCENDING); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = RUMAPI::with_config(configuration); let response = api.search_rum_events_with_pagination(body); pin_mut!(response); diff --git a/examples/v2_rum_update_rum_application.rs b/examples/v2_rum_update_rum_application.rs index 1ad96d337..cadf66953 100644 --- a/examples/v2_rum_update_rum_application.rs +++ b/examples/v2_rum_update_rum_application.rs @@ -1,6 +1,6 @@ // Update a RUM application returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_rum::RUMAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_rum::RUMAPI; use datadog_api_client::datadogV2::model::RUMApplicationUpdate; use datadog_api_client::datadogV2::model::RUMApplicationUpdateAttributes; use datadog_api_client::datadogV2::model::RUMApplicationUpdateRequest; @@ -21,7 +21,7 @@ async fn main() { .type_("browser".to_string()), ), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = RUMAPI::with_config(configuration); let resp = api .update_rum_application(rum_application_data_id.clone(), body) diff --git a/examples/v2_security-monitoring_create_security_filter.rs b/examples/v2_security-monitoring_create_security_filter.rs index 1ce9e9ffd..b7044b5aa 100644 --- a/examples/v2_security-monitoring_create_security_filter.rs +++ b/examples/v2_security-monitoring_create_security_filter.rs @@ -1,6 +1,6 @@ // Create a security filter returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; use datadog_api_client::datadogV2::model::SecurityFilterCreateAttributes; use datadog_api_client::datadogV2::model::SecurityFilterCreateData; use datadog_api_client::datadogV2::model::SecurityFilterCreateRequest; @@ -23,7 +23,7 @@ async fn main() { ), SecurityFilterType::SECURITY_FILTERS, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SecurityMonitoringAPI::with_config(configuration); let resp = api.create_security_filter(body).await; if let Ok(value) = resp { diff --git a/examples/v2_security-monitoring_create_security_monitoring_rule.rs b/examples/v2_security-monitoring_create_security_monitoring_rule.rs index 3af252943..9df4f3cea 100644 --- a/examples/v2_security-monitoring_create_security_monitoring_rule.rs +++ b/examples/v2_security-monitoring_create_security_monitoring_rule.rs @@ -1,6 +1,6 @@ // Create a detection rule returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; use datadog_api_client::datadogV2::model::SecurityMonitoringRuleCaseCreate; use datadog_api_client::datadogV2::model::SecurityMonitoringRuleCreatePayload; use datadog_api_client::datadogV2::model::SecurityMonitoringRuleEvaluationWindow; @@ -42,7 +42,7 @@ async fn main() { .tags(vec![]) .type_(SecurityMonitoringRuleTypeCreate::LOG_DETECTION), )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SecurityMonitoringAPI::with_config(configuration); let resp = api.create_security_monitoring_rule(body).await; if let Ok(value) = resp { diff --git a/examples/v2_security-monitoring_create_security_monitoring_rule_1092490364.rs b/examples/v2_security-monitoring_create_security_monitoring_rule_1092490364.rs index b4f981b6a..027e30b89 100644 --- a/examples/v2_security-monitoring_create_security_monitoring_rule_1092490364.rs +++ b/examples/v2_security-monitoring_create_security_monitoring_rule_1092490364.rs @@ -1,6 +1,6 @@ // Create a cloud_configuration rule returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; use datadog_api_client::datadogV2::model::CloudConfigurationComplianceRuleOptions; use datadog_api_client::datadogV2::model::CloudConfigurationRegoRule; use datadog_api_client::datadogV2::model::CloudConfigurationRuleCaseCreate; @@ -77,7 +77,7 @@ results contains result if { .type_(CloudConfigurationRuleType::CLOUD_CONFIGURATION), ), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SecurityMonitoringAPI::with_config(configuration); let resp = api.create_security_monitoring_rule(body).await; if let Ok(value) = resp { diff --git a/examples/v2_security-monitoring_create_security_monitoring_rule_3367706049.rs b/examples/v2_security-monitoring_create_security_monitoring_rule_3367706049.rs index 3114cba67..84b028bf1 100644 --- a/examples/v2_security-monitoring_create_security_monitoring_rule_3367706049.rs +++ b/examples/v2_security-monitoring_create_security_monitoring_rule_3367706049.rs @@ -1,7 +1,7 @@ // Create a detection rule with detection method 'third_party' returns "OK" // response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; use datadog_api_client::datadogV2::model::SecurityMonitoringRuleCreatePayload; use datadog_api_client::datadogV2::model::SecurityMonitoringRuleDetectionMethod; use datadog_api_client::datadogV2::model::SecurityMonitoringRuleKeepAlive; @@ -55,7 +55,7 @@ async fn main() { ]) .type_(SecurityMonitoringRuleTypeCreate::LOG_DETECTION), )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SecurityMonitoringAPI::with_config(configuration); let resp = api.create_security_monitoring_rule(body).await; if let Ok(value) = resp { diff --git a/examples/v2_security-monitoring_create_security_monitoring_rule_461183901.rs b/examples/v2_security-monitoring_create_security_monitoring_rule_461183901.rs index be14f2764..1290dd3ce 100644 --- a/examples/v2_security-monitoring_create_security_monitoring_rule_461183901.rs +++ b/examples/v2_security-monitoring_create_security_monitoring_rule_461183901.rs @@ -1,6 +1,6 @@ // Create a detection rule with type 'impossible_travel' returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; use datadog_api_client::datadogV2::model::SecurityMonitoringRuleCaseCreate; use datadog_api_client::datadogV2::model::SecurityMonitoringRuleCreatePayload; use datadog_api_client::datadogV2::model::SecurityMonitoringRuleDetectionMethod; @@ -49,7 +49,7 @@ async fn main() { .tags(vec![]) .type_(SecurityMonitoringRuleTypeCreate::LOG_DETECTION), )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SecurityMonitoringAPI::with_config(configuration); let resp = api.create_security_monitoring_rule(body).await; if let Ok(value) = resp { diff --git a/examples/v2_security-monitoring_create_security_monitoring_rule_498211763.rs b/examples/v2_security-monitoring_create_security_monitoring_rule_498211763.rs index 04fe990d1..a6c35ad20 100644 --- a/examples/v2_security-monitoring_create_security_monitoring_rule_498211763.rs +++ b/examples/v2_security-monitoring_create_security_monitoring_rule_498211763.rs @@ -1,6 +1,6 @@ // Create a detection rule with type 'workload_security' returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; use datadog_api_client::datadogV2::model::SecurityMonitoringRuleCaseCreate; use datadog_api_client::datadogV2::model::SecurityMonitoringRuleCreatePayload; use datadog_api_client::datadogV2::model::SecurityMonitoringRuleEvaluationWindow; @@ -42,7 +42,7 @@ async fn main() { .tags(vec![]) .type_(SecurityMonitoringRuleTypeCreate::WORKLOAD_SECURITY), )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SecurityMonitoringAPI::with_config(configuration); let resp = api.create_security_monitoring_rule(body).await; if let Ok(value) = resp { diff --git a/examples/v2_security-monitoring_create_security_monitoring_rule_914562040.rs b/examples/v2_security-monitoring_create_security_monitoring_rule_914562040.rs index 22e3dbf36..579a5fdfe 100644 --- a/examples/v2_security-monitoring_create_security_monitoring_rule_914562040.rs +++ b/examples/v2_security-monitoring_create_security_monitoring_rule_914562040.rs @@ -1,6 +1,6 @@ // Create a detection rule with type 'signal_correlation' returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; use datadog_api_client::datadogV2::model::SecurityMonitoringRuleCaseCreate; use datadog_api_client::datadogV2::model::SecurityMonitoringRuleCreatePayload; use datadog_api_client::datadogV2::model::SecurityMonitoringRuleEvaluationWindow; @@ -50,7 +50,7 @@ async fn main() { .tags(vec![]) .type_(SecurityMonitoringSignalRuleType::SIGNAL_CORRELATION), )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SecurityMonitoringAPI::with_config(configuration); let resp = api.create_security_monitoring_rule(body).await; if let Ok(value) = resp { diff --git a/examples/v2_security-monitoring_create_security_monitoring_suppression.rs b/examples/v2_security-monitoring_create_security_monitoring_suppression.rs new file mode 100644 index 000000000..5ac6e6d32 --- /dev/null +++ b/examples/v2_security-monitoring_create_security_monitoring_suppression.rs @@ -0,0 +1,34 @@ +// Create a suppression rule returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadogV2::model::SecurityMonitoringSuppressionCreateAttributes; +use datadog_api_client::datadogV2::model::SecurityMonitoringSuppressionCreateData; +use datadog_api_client::datadogV2::model::SecurityMonitoringSuppressionCreateRequest; +use datadog_api_client::datadogV2::model::SecurityMonitoringSuppressionType; + +#[tokio::main] +async fn main() { + let body = SecurityMonitoringSuppressionCreateRequest::new( + SecurityMonitoringSuppressionCreateData::new( + SecurityMonitoringSuppressionCreateAttributes::new( + true, + "Example-Security-Monitoring".to_string(), + "type:log_detection source:cloudtrail".to_string(), + "env:staging status:low".to_string(), + ) + .description( + "This rule suppresses low-severity signals in staging environments.".to_string(), + ) + .expiration_date(1703187336000), + SecurityMonitoringSuppressionType::SUPPRESSIONS, + ), + ); + let configuration = datadog::Configuration::new(); + let api = SecurityMonitoringAPI::with_config(configuration); + let resp = api.create_security_monitoring_suppression(body).await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_security-monitoring_delete_security_filter.rs b/examples/v2_security-monitoring_delete_security_filter.rs index d9b7dfa09..888e183f0 100644 --- a/examples/v2_security-monitoring_delete_security_filter.rs +++ b/examples/v2_security-monitoring_delete_security_filter.rs @@ -1,10 +1,10 @@ // Delete a security filter returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SecurityMonitoringAPI::with_config(configuration); let resp = api .delete_security_filter("security_filter_id".to_string()) diff --git a/examples/v2_security-monitoring_delete_security_filter_555029489.rs b/examples/v2_security-monitoring_delete_security_filter_555029489.rs index da73ecb00..83249a6fd 100644 --- a/examples/v2_security-monitoring_delete_security_filter_555029489.rs +++ b/examples/v2_security-monitoring_delete_security_filter_555029489.rs @@ -1,12 +1,12 @@ // Delete a security filter returns "No Content" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; #[tokio::main] async fn main() { // there is a valid "security_filter" in the system let security_filter_data_id = std::env::var("SECURITY_FILTER_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SecurityMonitoringAPI::with_config(configuration); let resp = api .delete_security_filter(security_filter_data_id.clone()) diff --git a/examples/v2_security-monitoring_delete_security_monitoring_rule.rs b/examples/v2_security-monitoring_delete_security_monitoring_rule.rs index 3a9d71078..ba238fc76 100644 --- a/examples/v2_security-monitoring_delete_security_monitoring_rule.rs +++ b/examples/v2_security-monitoring_delete_security_monitoring_rule.rs @@ -1,12 +1,12 @@ // Delete an existing rule returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; #[tokio::main] async fn main() { // there is a valid "security_rule" in the system let security_rule_id = std::env::var("SECURITY_RULE_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SecurityMonitoringAPI::with_config(configuration); let resp = api .delete_security_monitoring_rule(security_rule_id.clone()) diff --git a/examples/v2_security-monitoring_delete_security_monitoring_suppression.rs b/examples/v2_security-monitoring_delete_security_monitoring_suppression.rs new file mode 100644 index 000000000..50c8feb36 --- /dev/null +++ b/examples/v2_security-monitoring_delete_security_monitoring_suppression.rs @@ -0,0 +1,19 @@ +// Delete a suppression rule returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; + +#[tokio::main] +async fn main() { + // there is a valid "suppression" in the system + let suppression_data_id = std::env::var("SUPPRESSION_DATA_ID").unwrap(); + let configuration = datadog::Configuration::new(); + let api = SecurityMonitoringAPI::with_config(configuration); + let resp = api + .delete_security_monitoring_suppression(suppression_data_id.clone()) + .await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_security-monitoring_edit_security_monitoring_signal_assignee.rs b/examples/v2_security-monitoring_edit_security_monitoring_signal_assignee.rs index 25f493c70..496e108c9 100644 --- a/examples/v2_security-monitoring_edit_security_monitoring_signal_assignee.rs +++ b/examples/v2_security-monitoring_edit_security_monitoring_signal_assignee.rs @@ -1,6 +1,6 @@ // Modify the triage assignee of a security signal returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; use datadog_api_client::datadogV2::model::SecurityMonitoringSignalAssigneeUpdateAttributes; use datadog_api_client::datadogV2::model::SecurityMonitoringSignalAssigneeUpdateData; use datadog_api_client::datadogV2::model::SecurityMonitoringSignalAssigneeUpdateRequest; @@ -15,7 +15,7 @@ async fn main() { ), ), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SecurityMonitoringAPI::with_config(configuration); let resp = api .edit_security_monitoring_signal_assignee( diff --git a/examples/v2_security-monitoring_edit_security_monitoring_signal_incidents.rs b/examples/v2_security-monitoring_edit_security_monitoring_signal_incidents.rs index c98060308..04aaaa28d 100644 --- a/examples/v2_security-monitoring_edit_security_monitoring_signal_incidents.rs +++ b/examples/v2_security-monitoring_edit_security_monitoring_signal_incidents.rs @@ -1,6 +1,6 @@ // Change the related incidents of a security signal returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; use datadog_api_client::datadogV2::model::SecurityMonitoringSignalIncidentsUpdateAttributes; use datadog_api_client::datadogV2::model::SecurityMonitoringSignalIncidentsUpdateData; use datadog_api_client::datadogV2::model::SecurityMonitoringSignalIncidentsUpdateRequest; @@ -12,7 +12,7 @@ async fn main() { SecurityMonitoringSignalIncidentsUpdateAttributes::new(vec![2066]), ), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SecurityMonitoringAPI::with_config(configuration); let resp = api .edit_security_monitoring_signal_incidents( diff --git a/examples/v2_security-monitoring_edit_security_monitoring_signal_state.rs b/examples/v2_security-monitoring_edit_security_monitoring_signal_state.rs index 4e155ae6a..62e8d7ab2 100644 --- a/examples/v2_security-monitoring_edit_security_monitoring_signal_state.rs +++ b/examples/v2_security-monitoring_edit_security_monitoring_signal_state.rs @@ -1,6 +1,6 @@ // Change the triage state of a security signal returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; use datadog_api_client::datadogV2::model::SecurityMonitoringSignalArchiveReason; use datadog_api_client::datadogV2::model::SecurityMonitoringSignalState; use datadog_api_client::datadogV2::model::SecurityMonitoringSignalStateUpdateAttributes; @@ -15,7 +15,7 @@ async fn main() { .archive_reason(SecurityMonitoringSignalArchiveReason::NONE), ), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SecurityMonitoringAPI::with_config(configuration); let resp = api .edit_security_monitoring_signal_state( diff --git a/examples/v2_security-monitoring_get_finding.rs b/examples/v2_security-monitoring_get_finding.rs index 643d43b51..b21f1c1d7 100644 --- a/examples/v2_security-monitoring_get_finding.rs +++ b/examples/v2_security-monitoring_get_finding.rs @@ -1,11 +1,11 @@ // Get a finding returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_security_monitoring::GetFindingOptionalParams; -use datadog_api_client::datadogV2::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::GetFindingOptionalParams; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; #[tokio::main] async fn main() { - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.GetFinding", true); let api = SecurityMonitoringAPI::with_config(configuration); let resp = diff --git a/examples/v2_security-monitoring_get_security_filter.rs b/examples/v2_security-monitoring_get_security_filter.rs index f9e0d4996..19ac44f5c 100644 --- a/examples/v2_security-monitoring_get_security_filter.rs +++ b/examples/v2_security-monitoring_get_security_filter.rs @@ -1,12 +1,12 @@ // Get a security filter returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; #[tokio::main] async fn main() { // there is a valid "security_filter" in the system let security_filter_data_id = std::env::var("SECURITY_FILTER_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SecurityMonitoringAPI::with_config(configuration); let resp = api .get_security_filter(security_filter_data_id.clone()) diff --git a/examples/v2_security-monitoring_get_security_monitoring_rule.rs b/examples/v2_security-monitoring_get_security_monitoring_rule.rs index e1ecd3ddf..b81a90e4c 100644 --- a/examples/v2_security-monitoring_get_security_monitoring_rule.rs +++ b/examples/v2_security-monitoring_get_security_monitoring_rule.rs @@ -1,12 +1,12 @@ // Get a rule's details returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; #[tokio::main] async fn main() { // there is a valid "security_rule" in the system let security_rule_id = std::env::var("SECURITY_RULE_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SecurityMonitoringAPI::with_config(configuration); let resp = api .get_security_monitoring_rule(security_rule_id.clone()) diff --git a/examples/v2_security-monitoring_get_security_monitoring_rule_3370522281.rs b/examples/v2_security-monitoring_get_security_monitoring_rule_3370522281.rs index e66995cd1..b2de42b43 100644 --- a/examples/v2_security-monitoring_get_security_monitoring_rule_3370522281.rs +++ b/examples/v2_security-monitoring_get_security_monitoring_rule_3370522281.rs @@ -1,12 +1,12 @@ // Get a cloud configuration rule's details returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; #[tokio::main] async fn main() { // there is a valid "cloud_configuration_rule" in the system let cloud_configuration_rule_id = std::env::var("CLOUD_CONFIGURATION_RULE_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SecurityMonitoringAPI::with_config(configuration); let resp = api .get_security_monitoring_rule(cloud_configuration_rule_id.clone()) diff --git a/examples/v2_security-monitoring_get_security_monitoring_signal.rs b/examples/v2_security-monitoring_get_security_monitoring_signal.rs index 797cdffb9..992822143 100644 --- a/examples/v2_security-monitoring_get_security_monitoring_signal.rs +++ b/examples/v2_security-monitoring_get_security_monitoring_signal.rs @@ -1,10 +1,10 @@ // Get a signal's details returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SecurityMonitoringAPI::with_config(configuration); let resp = api .get_security_monitoring_signal( diff --git a/examples/v2_security-monitoring_get_security_monitoring_suppression.rs b/examples/v2_security-monitoring_get_security_monitoring_suppression.rs new file mode 100644 index 000000000..4f583d591 --- /dev/null +++ b/examples/v2_security-monitoring_get_security_monitoring_suppression.rs @@ -0,0 +1,19 @@ +// Get a suppression rule returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; + +#[tokio::main] +async fn main() { + // there is a valid "suppression" in the system + let suppression_data_id = std::env::var("SUPPRESSION_DATA_ID").unwrap(); + let configuration = datadog::Configuration::new(); + let api = SecurityMonitoringAPI::with_config(configuration); + let resp = api + .get_security_monitoring_suppression(suppression_data_id.clone()) + .await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_security-monitoring_list_findings.rs b/examples/v2_security-monitoring_list_findings.rs index f88ee4cbe..f4da7bca5 100644 --- a/examples/v2_security-monitoring_list_findings.rs +++ b/examples/v2_security-monitoring_list_findings.rs @@ -1,11 +1,11 @@ // List findings returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_security_monitoring::ListFindingsOptionalParams; -use datadog_api_client::datadogV2::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::ListFindingsOptionalParams; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; #[tokio::main] async fn main() { - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.ListFindings", true); let api = SecurityMonitoringAPI::with_config(configuration); let resp = api diff --git a/examples/v2_security-monitoring_list_findings_3865842421.rs b/examples/v2_security-monitoring_list_findings_3865842421.rs index 79f4ae9fd..3716c50c0 100644 --- a/examples/v2_security-monitoring_list_findings_3865842421.rs +++ b/examples/v2_security-monitoring_list_findings_3865842421.rs @@ -1,13 +1,13 @@ // List findings returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_security_monitoring::ListFindingsOptionalParams; -use datadog_api_client::datadogV2::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::ListFindingsOptionalParams; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; use futures_util::pin_mut; use futures_util::stream::StreamExt; #[tokio::main] async fn main() { - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.ListFindings", true); let api = SecurityMonitoringAPI::with_config(configuration); let response = api.list_findings_with_pagination(ListFindingsOptionalParams::default()); diff --git a/examples/v2_security-monitoring_list_security_filters.rs b/examples/v2_security-monitoring_list_security_filters.rs index 3831f436d..846bc3ed9 100644 --- a/examples/v2_security-monitoring_list_security_filters.rs +++ b/examples/v2_security-monitoring_list_security_filters.rs @@ -1,10 +1,10 @@ // Get all security filters returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SecurityMonitoringAPI::with_config(configuration); let resp = api.list_security_filters().await; if let Ok(value) = resp { diff --git a/examples/v2_security-monitoring_list_security_monitoring_rules.rs b/examples/v2_security-monitoring_list_security_monitoring_rules.rs index d57d9d1a3..6d4281c05 100644 --- a/examples/v2_security-monitoring_list_security_monitoring_rules.rs +++ b/examples/v2_security-monitoring_list_security_monitoring_rules.rs @@ -1,11 +1,11 @@ // List rules returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_security_monitoring::ListSecurityMonitoringRulesOptionalParams; -use datadog_api_client::datadogV2::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::ListSecurityMonitoringRulesOptionalParams; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SecurityMonitoringAPI::with_config(configuration); let resp = api .list_security_monitoring_rules(ListSecurityMonitoringRulesOptionalParams::default()) diff --git a/examples/v2_security-monitoring_list_security_monitoring_signals.rs b/examples/v2_security-monitoring_list_security_monitoring_signals.rs index 119a61503..b06dd9e61 100644 --- a/examples/v2_security-monitoring_list_security_monitoring_signals.rs +++ b/examples/v2_security-monitoring_list_security_monitoring_signals.rs @@ -1,11 +1,11 @@ // Get a quick list of security signals returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_security_monitoring::ListSecurityMonitoringSignalsOptionalParams; -use datadog_api_client::datadogV2::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::ListSecurityMonitoringSignalsOptionalParams; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SecurityMonitoringAPI::with_config(configuration); let resp = api .list_security_monitoring_signals(ListSecurityMonitoringSignalsOptionalParams::default()) diff --git a/examples/v2_security-monitoring_list_security_monitoring_signals_3960412991.rs b/examples/v2_security-monitoring_list_security_monitoring_signals_3960412991.rs index a6f4edb97..a0d135cd6 100644 --- a/examples/v2_security-monitoring_list_security_monitoring_signals_3960412991.rs +++ b/examples/v2_security-monitoring_list_security_monitoring_signals_3960412991.rs @@ -1,13 +1,13 @@ // Get a quick list of security signals returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_security_monitoring::ListSecurityMonitoringSignalsOptionalParams; -use datadog_api_client::datadogV2::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::ListSecurityMonitoringSignalsOptionalParams; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; use futures_util::pin_mut; use futures_util::stream::StreamExt; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SecurityMonitoringAPI::with_config(configuration); let response = api.list_security_monitoring_signals_with_pagination( ListSecurityMonitoringSignalsOptionalParams::default().page_limit(2), diff --git a/examples/v2_security-monitoring_list_security_monitoring_suppressions.rs b/examples/v2_security-monitoring_list_security_monitoring_suppressions.rs new file mode 100644 index 000000000..85745b6f2 --- /dev/null +++ b/examples/v2_security-monitoring_list_security_monitoring_suppressions.rs @@ -0,0 +1,15 @@ +// Get all suppression rules returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; + +#[tokio::main] +async fn main() { + let configuration = datadog::Configuration::new(); + let api = SecurityMonitoringAPI::with_config(configuration); + let resp = api.list_security_monitoring_suppressions().await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_security-monitoring_mute_findings.rs b/examples/v2_security-monitoring_mute_findings.rs index b134b242d..5e977006b 100644 --- a/examples/v2_security-monitoring_mute_findings.rs +++ b/examples/v2_security-monitoring_mute_findings.rs @@ -1,6 +1,6 @@ // Mute or unmute a batch of findings returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; use datadog_api_client::datadogV2::model::BulkMuteFindingsRequest; use datadog_api_client::datadogV2::model::BulkMuteFindingsRequestAttributes; use datadog_api_client::datadogV2::model::BulkMuteFindingsRequestData; @@ -24,7 +24,7 @@ async fn main() { )]), FindingType::FINDING, )); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.MuteFindings", true); let api = SecurityMonitoringAPI::with_config(configuration); let resp = api.mute_findings(body).await; diff --git a/examples/v2_security-monitoring_search_security_monitoring_signals.rs b/examples/v2_security-monitoring_search_security_monitoring_signals.rs index 08f4f5259..651ccdf75 100644 --- a/examples/v2_security-monitoring_search_security_monitoring_signals.rs +++ b/examples/v2_security-monitoring_search_security_monitoring_signals.rs @@ -1,7 +1,7 @@ // Get a list of security signals returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_security_monitoring::SearchSecurityMonitoringSignalsOptionalParams; -use datadog_api_client::datadogV2::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::SearchSecurityMonitoringSignalsOptionalParams; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; use datadog_api_client::datadogV2::model::SecurityMonitoringSignalListRequest; use datadog_api_client::datadogV2::model::SecurityMonitoringSignalListRequestFilter; use datadog_api_client::datadogV2::model::SecurityMonitoringSignalListRequestPage; @@ -25,7 +25,7 @@ async fn main() { .limit(25), ) .sort(SecurityMonitoringSignalsSort::TIMESTAMP_ASCENDING); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SecurityMonitoringAPI::with_config(configuration); let resp = api .search_security_monitoring_signals( diff --git a/examples/v2_security-monitoring_search_security_monitoring_signals_1309350146.rs b/examples/v2_security-monitoring_search_security_monitoring_signals_1309350146.rs index 5df2bb662..138b72789 100644 --- a/examples/v2_security-monitoring_search_security_monitoring_signals_1309350146.rs +++ b/examples/v2_security-monitoring_search_security_monitoring_signals_1309350146.rs @@ -1,7 +1,7 @@ // Get a list of security signals returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_security_monitoring::SearchSecurityMonitoringSignalsOptionalParams; -use datadog_api_client::datadogV2::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::SearchSecurityMonitoringSignalsOptionalParams; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; use datadog_api_client::datadogV2::model::SecurityMonitoringSignalListRequest; use datadog_api_client::datadogV2::model::SecurityMonitoringSignalListRequestFilter; use datadog_api_client::datadogV2::model::SecurityMonitoringSignalListRequestPage; @@ -20,7 +20,7 @@ async fn main() { ) .page(SecurityMonitoringSignalListRequestPage::new().limit(2)) .sort(SecurityMonitoringSignalsSort::TIMESTAMP_ASCENDING); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SecurityMonitoringAPI::with_config(configuration); let response = api.search_security_monitoring_signals_with_pagination( SearchSecurityMonitoringSignalsOptionalParams::default().body(body), diff --git a/examples/v2_security-monitoring_update_security_filter.rs b/examples/v2_security-monitoring_update_security_filter.rs index e80b6b86a..692604f61 100644 --- a/examples/v2_security-monitoring_update_security_filter.rs +++ b/examples/v2_security-monitoring_update_security_filter.rs @@ -1,6 +1,6 @@ // Update a security filter returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; use datadog_api_client::datadogV2::model::SecurityFilterFilteredDataType; use datadog_api_client::datadogV2::model::SecurityFilterType; use datadog_api_client::datadogV2::model::SecurityFilterUpdateAttributes; @@ -21,7 +21,7 @@ async fn main() { .version(1), SecurityFilterType::SECURITY_FILTERS, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SecurityMonitoringAPI::with_config(configuration); let resp = api .update_security_filter(security_filter_data_id.clone(), body) diff --git a/examples/v2_security-monitoring_update_security_monitoring_rule.rs b/examples/v2_security-monitoring_update_security_monitoring_rule.rs index c188530b9..b4a6a6403 100644 --- a/examples/v2_security-monitoring_update_security_monitoring_rule.rs +++ b/examples/v2_security-monitoring_update_security_monitoring_rule.rs @@ -1,6 +1,6 @@ // Update an existing rule returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; use datadog_api_client::datadogV2::model::SecurityMonitoringRuleCase; use datadog_api_client::datadogV2::model::SecurityMonitoringRuleEvaluationWindow; use datadog_api_client::datadogV2::model::SecurityMonitoringRuleKeepAlive; @@ -43,7 +43,7 @@ async fn main() { )), ]) .tags(vec![]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SecurityMonitoringAPI::with_config(configuration); let resp = api .update_security_monitoring_rule(security_rule_id.clone(), body) diff --git a/examples/v2_security-monitoring_update_security_monitoring_rule_428087276.rs b/examples/v2_security-monitoring_update_security_monitoring_rule_428087276.rs index 2c321c7ed..c2e3000f6 100644 --- a/examples/v2_security-monitoring_update_security_monitoring_rule_428087276.rs +++ b/examples/v2_security-monitoring_update_security_monitoring_rule_428087276.rs @@ -1,6 +1,6 @@ // Update a cloud configuration rule's details returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; use datadog_api_client::datadogV2::model::CloudConfigurationComplianceRuleOptions; use datadog_api_client::datadogV2::model::CloudConfigurationRegoRule; use datadog_api_client::datadogV2::model::CloudConfigurationRuleComplianceSignalOptions; @@ -65,7 +65,7 @@ results contains result if { ), ) .tags(vec![]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SecurityMonitoringAPI::with_config(configuration); let resp = api .update_security_monitoring_rule(cloud_configuration_rule_id.clone(), body) diff --git a/examples/v2_security-monitoring_update_security_monitoring_suppression.rs b/examples/v2_security-monitoring_update_security_monitoring_suppression.rs new file mode 100644 index 000000000..d13b2e5ae --- /dev/null +++ b/examples/v2_security-monitoring_update_security_monitoring_suppression.rs @@ -0,0 +1,30 @@ +// Update a suppression rule returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadogV2::model::SecurityMonitoringSuppressionType; +use datadog_api_client::datadogV2::model::SecurityMonitoringSuppressionUpdateAttributes; +use datadog_api_client::datadogV2::model::SecurityMonitoringSuppressionUpdateData; +use datadog_api_client::datadogV2::model::SecurityMonitoringSuppressionUpdateRequest; + +#[tokio::main] +async fn main() { + // there is a valid "suppression" in the system + let suppression_data_id = std::env::var("SUPPRESSION_DATA_ID").unwrap(); + let body = SecurityMonitoringSuppressionUpdateRequest::new( + SecurityMonitoringSuppressionUpdateData::new( + SecurityMonitoringSuppressionUpdateAttributes::new() + .suppression_query("env:staging status:low".to_string()), + SecurityMonitoringSuppressionType::SUPPRESSIONS, + ), + ); + let configuration = datadog::Configuration::new(); + let api = SecurityMonitoringAPI::with_config(configuration); + let resp = api + .update_security_monitoring_suppression(suppression_data_id.clone(), body) + .await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_security-monitoring_validate_security_monitoring_rule.rs b/examples/v2_security-monitoring_validate_security_monitoring_rule.rs new file mode 100644 index 000000000..47aeb6691 --- /dev/null +++ b/examples/v2_security-monitoring_validate_security_monitoring_rule.rs @@ -0,0 +1,55 @@ +// Validate a detection rule returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; +use datadog_api_client::datadogV2::model::SecurityMonitoringRuleCaseCreate; +use datadog_api_client::datadogV2::model::SecurityMonitoringRuleCreatePayload; +use datadog_api_client::datadogV2::model::SecurityMonitoringRuleDetectionMethod; +use datadog_api_client::datadogV2::model::SecurityMonitoringRuleEvaluationWindow; +use datadog_api_client::datadogV2::model::SecurityMonitoringRuleKeepAlive; +use datadog_api_client::datadogV2::model::SecurityMonitoringRuleMaxSignalDuration; +use datadog_api_client::datadogV2::model::SecurityMonitoringRuleOptions; +use datadog_api_client::datadogV2::model::SecurityMonitoringRuleQueryAggregation; +use datadog_api_client::datadogV2::model::SecurityMonitoringRuleSeverity; +use datadog_api_client::datadogV2::model::SecurityMonitoringRuleTypeCreate; +use datadog_api_client::datadogV2::model::SecurityMonitoringStandardRuleCreatePayload; +use datadog_api_client::datadogV2::model::SecurityMonitoringStandardRuleQuery; + +#[tokio::main] +async fn main() { + let body = + SecurityMonitoringRuleCreatePayload::SecurityMonitoringStandardRuleCreatePayload(Box::new( + SecurityMonitoringStandardRuleCreatePayload::new( + vec![ + SecurityMonitoringRuleCaseCreate::new(SecurityMonitoringRuleSeverity::INFO) + .condition("a > 0".to_string()) + .name("".to_string()) + .notifications(vec![]), + ], + true, + "My security monitoring rule".to_string(), + "My security monitoring rule".to_string(), + SecurityMonitoringRuleOptions::new() + .detection_method(SecurityMonitoringRuleDetectionMethod::THRESHOLD) + .evaluation_window(SecurityMonitoringRuleEvaluationWindow::THIRTY_MINUTES) + .keep_alive(SecurityMonitoringRuleKeepAlive::THIRTY_MINUTES) + .max_signal_duration(SecurityMonitoringRuleMaxSignalDuration::THIRTY_MINUTES), + vec![SecurityMonitoringStandardRuleQuery::new() + .aggregation(SecurityMonitoringRuleQueryAggregation::COUNT) + .distinct_fields(vec![]) + .group_by_fields(vec!["@userIdentity.assumed_role".to_string()]) + .name("".to_string()) + .query("source:source_here".to_string())], + ) + .has_extended_title(true) + .tags(vec!["env:prod".to_string(), "team:security".to_string()]) + .type_(SecurityMonitoringRuleTypeCreate::LOG_DETECTION), + )); + let configuration = datadog::Configuration::new(); + let api = SecurityMonitoringAPI::with_config(configuration); + let resp = api.validate_security_monitoring_rule(body).await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_sensitive-data-scanner_create_scanning_group.rs b/examples/v2_sensitive-data-scanner_create_scanning_group.rs index 789e17d4e..f7b924d54 100644 --- a/examples/v2_sensitive-data-scanner_create_scanning_group.rs +++ b/examples/v2_sensitive-data-scanner_create_scanning_group.rs @@ -1,6 +1,6 @@ // Create Scanning Group returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_sensitive_data_scanner::SensitiveDataScannerAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_sensitive_data_scanner::SensitiveDataScannerAPI; use datadog_api_client::datadogV2::model::SensitiveDataScannerConfiguration; use datadog_api_client::datadogV2::model::SensitiveDataScannerConfigurationData; use datadog_api_client::datadogV2::model::SensitiveDataScannerConfigurationType; @@ -44,7 +44,7 @@ async fn main() { ), ) .meta(SensitiveDataScannerMetaVersionOnly::new()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SensitiveDataScannerAPI::with_config(configuration); let resp = api.create_scanning_group(body).await; if let Ok(value) = resp { diff --git a/examples/v2_sensitive-data-scanner_create_scanning_rule.rs b/examples/v2_sensitive-data-scanner_create_scanning_rule.rs index 414cfc5df..e41f1a8b6 100644 --- a/examples/v2_sensitive-data-scanner_create_scanning_rule.rs +++ b/examples/v2_sensitive-data-scanner_create_scanning_rule.rs @@ -1,9 +1,10 @@ // Create Scanning Rule returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_sensitive_data_scanner::SensitiveDataScannerAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_sensitive_data_scanner::SensitiveDataScannerAPI; use datadog_api_client::datadogV2::model::SensitiveDataScannerGroup; use datadog_api_client::datadogV2::model::SensitiveDataScannerGroupData; use datadog_api_client::datadogV2::model::SensitiveDataScannerGroupType; +use datadog_api_client::datadogV2::model::SensitiveDataScannerIncludedKeywordConfiguration; use datadog_api_client::datadogV2::model::SensitiveDataScannerMetaVersionOnly; use datadog_api_client::datadogV2::model::SensitiveDataScannerRuleAttributes; use datadog_api_client::datadogV2::model::SensitiveDataScannerRuleCreate; @@ -21,6 +22,12 @@ async fn main() { SensitiveDataScannerRuleCreate::new( SensitiveDataScannerRuleAttributes::new() .excluded_namespaces(vec!["admin.name".to_string()]) + .included_keyword_configuration( + SensitiveDataScannerIncludedKeywordConfiguration::new( + 35, + vec!["credit card".to_string()], + ), + ) .is_enabled(true) .name("Example-Sensitive-Data-Scanner".to_string()) .namespaces(vec!["admin".to_string()]) @@ -42,7 +49,7 @@ async fn main() { ), SensitiveDataScannerMetaVersionOnly::new(), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SensitiveDataScannerAPI::with_config(configuration); let resp = api.create_scanning_rule(body).await; if let Ok(value) = resp { diff --git a/examples/v2_sensitive-data-scanner_delete_scanning_group.rs b/examples/v2_sensitive-data-scanner_delete_scanning_group.rs index 7e58362a7..8fab573a3 100644 --- a/examples/v2_sensitive-data-scanner_delete_scanning_group.rs +++ b/examples/v2_sensitive-data-scanner_delete_scanning_group.rs @@ -1,6 +1,6 @@ // Delete Scanning Group returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_sensitive_data_scanner::SensitiveDataScannerAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_sensitive_data_scanner::SensitiveDataScannerAPI; use datadog_api_client::datadogV2::model::SensitiveDataScannerGroupDeleteRequest; use datadog_api_client::datadogV2::model::SensitiveDataScannerMetaVersionOnly; @@ -10,7 +10,7 @@ async fn main() { let group_data_id = std::env::var("GROUP_DATA_ID").unwrap(); let body = SensitiveDataScannerGroupDeleteRequest::new(SensitiveDataScannerMetaVersionOnly::new()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SensitiveDataScannerAPI::with_config(configuration); let resp = api.delete_scanning_group(group_data_id.clone(), body).await; if let Ok(value) = resp { diff --git a/examples/v2_sensitive-data-scanner_delete_scanning_rule.rs b/examples/v2_sensitive-data-scanner_delete_scanning_rule.rs index a5c621043..ba91397d7 100644 --- a/examples/v2_sensitive-data-scanner_delete_scanning_rule.rs +++ b/examples/v2_sensitive-data-scanner_delete_scanning_rule.rs @@ -1,6 +1,6 @@ // Delete Scanning Rule returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_sensitive_data_scanner::SensitiveDataScannerAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_sensitive_data_scanner::SensitiveDataScannerAPI; use datadog_api_client::datadogV2::model::SensitiveDataScannerMetaVersionOnly; use datadog_api_client::datadogV2::model::SensitiveDataScannerRuleDeleteRequest; @@ -10,7 +10,7 @@ async fn main() { let rule_data_id = std::env::var("RULE_DATA_ID").unwrap(); let body = SensitiveDataScannerRuleDeleteRequest::new(SensitiveDataScannerMetaVersionOnly::new()); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SensitiveDataScannerAPI::with_config(configuration); let resp = api.delete_scanning_rule(rule_data_id.clone(), body).await; if let Ok(value) = resp { diff --git a/examples/v2_sensitive-data-scanner_list_scanning_groups.rs b/examples/v2_sensitive-data-scanner_list_scanning_groups.rs index 7a11dd5d8..dda4de973 100644 --- a/examples/v2_sensitive-data-scanner_list_scanning_groups.rs +++ b/examples/v2_sensitive-data-scanner_list_scanning_groups.rs @@ -1,10 +1,10 @@ // List Scanning Groups returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_sensitive_data_scanner::SensitiveDataScannerAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_sensitive_data_scanner::SensitiveDataScannerAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SensitiveDataScannerAPI::with_config(configuration); let resp = api.list_scanning_groups().await; if let Ok(value) = resp { diff --git a/examples/v2_sensitive-data-scanner_list_standard_patterns.rs b/examples/v2_sensitive-data-scanner_list_standard_patterns.rs index 51089b2f4..0d77d20f2 100644 --- a/examples/v2_sensitive-data-scanner_list_standard_patterns.rs +++ b/examples/v2_sensitive-data-scanner_list_standard_patterns.rs @@ -1,10 +1,10 @@ // List standard patterns returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_sensitive_data_scanner::SensitiveDataScannerAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_sensitive_data_scanner::SensitiveDataScannerAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SensitiveDataScannerAPI::with_config(configuration); let resp = api.list_standard_patterns().await; if let Ok(value) = resp { diff --git a/examples/v2_sensitive-data-scanner_reorder_scanning_groups.rs b/examples/v2_sensitive-data-scanner_reorder_scanning_groups.rs index 97d207277..f2ac3b2d7 100644 --- a/examples/v2_sensitive-data-scanner_reorder_scanning_groups.rs +++ b/examples/v2_sensitive-data-scanner_reorder_scanning_groups.rs @@ -1,6 +1,6 @@ // Reorder Groups returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_sensitive_data_scanner::SensitiveDataScannerAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_sensitive_data_scanner::SensitiveDataScannerAPI; use datadog_api_client::datadogV2::model::SensitiveDataScannerConfigRequest; use datadog_api_client::datadogV2::model::SensitiveDataScannerConfigurationRelationships; use datadog_api_client::datadogV2::model::SensitiveDataScannerConfigurationType; @@ -32,7 +32,7 @@ async fn main() { .type_(SensitiveDataScannerConfigurationType::SENSITIVE_DATA_SCANNER_CONFIGURATIONS), SensitiveDataScannerMetaVersionOnly::new(), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SensitiveDataScannerAPI::with_config(configuration); let resp = api.reorder_scanning_groups(body).await; if let Ok(value) = resp { diff --git a/examples/v2_sensitive-data-scanner_update_scanning_group.rs b/examples/v2_sensitive-data-scanner_update_scanning_group.rs index 500171f83..7d6bc94cb 100644 --- a/examples/v2_sensitive-data-scanner_update_scanning_group.rs +++ b/examples/v2_sensitive-data-scanner_update_scanning_group.rs @@ -1,6 +1,6 @@ // Update Scanning Group returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_sensitive_data_scanner::SensitiveDataScannerAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_sensitive_data_scanner::SensitiveDataScannerAPI; use datadog_api_client::datadogV2::model::SensitiveDataScannerConfiguration; use datadog_api_client::datadogV2::model::SensitiveDataScannerConfigurationData; use datadog_api_client::datadogV2::model::SensitiveDataScannerConfigurationType; @@ -49,7 +49,7 @@ async fn main() { .type_(SensitiveDataScannerGroupType::SENSITIVE_DATA_SCANNER_GROUP), SensitiveDataScannerMetaVersionOnly::new(), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SensitiveDataScannerAPI::with_config(configuration); let resp = api.update_scanning_group(group_data_id.clone(), body).await; if let Ok(value) = resp { diff --git a/examples/v2_sensitive-data-scanner_update_scanning_rule.rs b/examples/v2_sensitive-data-scanner_update_scanning_rule.rs index 1e7735f29..764805ec6 100644 --- a/examples/v2_sensitive-data-scanner_update_scanning_rule.rs +++ b/examples/v2_sensitive-data-scanner_update_scanning_rule.rs @@ -1,12 +1,9 @@ // Update Scanning Rule returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_sensitive_data_scanner::SensitiveDataScannerAPI; -use datadog_api_client::datadogV2::model::SensitiveDataScannerGroup; -use datadog_api_client::datadogV2::model::SensitiveDataScannerGroupData; -use datadog_api_client::datadogV2::model::SensitiveDataScannerGroupType; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_sensitive_data_scanner::SensitiveDataScannerAPI; +use datadog_api_client::datadogV2::model::SensitiveDataScannerIncludedKeywordConfiguration; use datadog_api_client::datadogV2::model::SensitiveDataScannerMetaVersionOnly; use datadog_api_client::datadogV2::model::SensitiveDataScannerRuleAttributes; -use datadog_api_client::datadogV2::model::SensitiveDataScannerRuleRelationships; use datadog_api_client::datadogV2::model::SensitiveDataScannerRuleType; use datadog_api_client::datadogV2::model::SensitiveDataScannerRuleUpdate; use datadog_api_client::datadogV2::model::SensitiveDataScannerRuleUpdateRequest; @@ -17,13 +14,16 @@ use datadog_api_client::datadogV2::model::SensitiveDataScannerTextReplacementTyp async fn main() { // the "scanning_group" has a "scanning_rule" let rule_data_id = std::env::var("RULE_DATA_ID").unwrap(); - - // there is a valid "scanning_group" in the system - let group_data_id = std::env::var("GROUP_DATA_ID").unwrap(); let body = SensitiveDataScannerRuleUpdateRequest::new( SensitiveDataScannerRuleUpdate::new() .attributes( SensitiveDataScannerRuleAttributes::new() + .included_keyword_configuration( + SensitiveDataScannerIncludedKeywordConfiguration::new( + 35, + vec!["credit card".to_string(), "cc".to_string()], + ), + ) .is_enabled(true) .name("Example-Sensitive-Data-Scanner".to_string()) .pattern("pattern".to_string()) @@ -35,19 +35,10 @@ async fn main() { ), ) .id(rule_data_id.clone()) - .relationships( - SensitiveDataScannerRuleRelationships::new().group( - SensitiveDataScannerGroupData::new().data( - SensitiveDataScannerGroup::new() - .id(group_data_id.clone()) - .type_(SensitiveDataScannerGroupType::SENSITIVE_DATA_SCANNER_GROUP), - ), - ), - ) .type_(SensitiveDataScannerRuleType::SENSITIVE_DATA_SCANNER_RULE), SensitiveDataScannerMetaVersionOnly::new(), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SensitiveDataScannerAPI::with_config(configuration); let resp = api.update_scanning_rule(rule_data_id.clone(), body).await; if let Ok(value) = resp { diff --git a/examples/v2_service-accounts_create_service_account.rs b/examples/v2_service-accounts_create_service_account.rs index a6cc64c87..89692c756 100644 --- a/examples/v2_service-accounts_create_service_account.rs +++ b/examples/v2_service-accounts_create_service_account.rs @@ -1,6 +1,6 @@ // Create a service account returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_service_accounts::ServiceAccountsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_service_accounts::ServiceAccountsAPI; use datadog_api_client::datadogV2::model::RelationshipToRoleData; use datadog_api_client::datadogV2::model::RelationshipToRoles; use datadog_api_client::datadogV2::model::RolesType; @@ -30,7 +30,7 @@ async fn main() { .type_(RolesType::ROLES)]), )), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceAccountsAPI::with_config(configuration); let resp = api.create_service_account(body).await; if let Ok(value) = resp { diff --git a/examples/v2_service-accounts_create_service_account_application_key.rs b/examples/v2_service-accounts_create_service_account_application_key.rs index efd3ef4c5..d8e740d80 100644 --- a/examples/v2_service-accounts_create_service_account_application_key.rs +++ b/examples/v2_service-accounts_create_service_account_application_key.rs @@ -1,6 +1,6 @@ // Create an application key for this service account returns "Created" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_service_accounts::ServiceAccountsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_service_accounts::ServiceAccountsAPI; use datadog_api_client::datadogV2::model::ApplicationKeyCreateAttributes; use datadog_api_client::datadogV2::model::ApplicationKeyCreateData; use datadog_api_client::datadogV2::model::ApplicationKeyCreateRequest; @@ -14,7 +14,7 @@ async fn main() { ApplicationKeyCreateAttributes::new("Example-Service-Account".to_string()), ApplicationKeysType::APPLICATION_KEYS, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceAccountsAPI::with_config(configuration); let resp = api .create_service_account_application_key(service_account_user_data_id.clone(), body) diff --git a/examples/v2_service-accounts_create_service_account_application_key_3480494373.rs b/examples/v2_service-accounts_create_service_account_application_key_3480494373.rs index 13cc108bd..f4671ca7b 100644 --- a/examples/v2_service-accounts_create_service_account_application_key_3480494373.rs +++ b/examples/v2_service-accounts_create_service_account_application_key_3480494373.rs @@ -1,7 +1,7 @@ // Create an application key with scopes for this service account returns // "Created" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_service_accounts::ServiceAccountsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_service_accounts::ServiceAccountsAPI; use datadog_api_client::datadogV2::model::ApplicationKeyCreateAttributes; use datadog_api_client::datadogV2::model::ApplicationKeyCreateData; use datadog_api_client::datadogV2::model::ApplicationKeyCreateRequest; @@ -21,7 +21,7 @@ async fn main() { )), ApplicationKeysType::APPLICATION_KEYS, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceAccountsAPI::with_config(configuration); let resp = api .create_service_account_application_key(service_account_user_data_id.clone(), body) diff --git a/examples/v2_service-accounts_delete_service_account_application_key.rs b/examples/v2_service-accounts_delete_service_account_application_key.rs index 6859eafe1..9ccf288d4 100644 --- a/examples/v2_service-accounts_delete_service_account_application_key.rs +++ b/examples/v2_service-accounts_delete_service_account_application_key.rs @@ -1,6 +1,6 @@ // Delete an application key for this service account returns "No Content" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_service_accounts::ServiceAccountsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_service_accounts::ServiceAccountsAPI; #[tokio::main] async fn main() { @@ -10,7 +10,7 @@ async fn main() { // there is a valid "service_account_application_key" for "service_account_user" let service_account_application_key_data_id = std::env::var("SERVICE_ACCOUNT_APPLICATION_KEY_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceAccountsAPI::with_config(configuration); let resp = api .delete_service_account_application_key( diff --git a/examples/v2_service-accounts_get_service_account_application_key.rs b/examples/v2_service-accounts_get_service_account_application_key.rs index 6dc391c9c..007565a83 100644 --- a/examples/v2_service-accounts_get_service_account_application_key.rs +++ b/examples/v2_service-accounts_get_service_account_application_key.rs @@ -1,6 +1,6 @@ // Get one application key for this service account returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_service_accounts::ServiceAccountsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_service_accounts::ServiceAccountsAPI; #[tokio::main] async fn main() { @@ -10,7 +10,7 @@ async fn main() { // there is a valid "service_account_application_key" for "service_account_user" let service_account_application_key_data_id = std::env::var("SERVICE_ACCOUNT_APPLICATION_KEY_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceAccountsAPI::with_config(configuration); let resp = api .get_service_account_application_key( diff --git a/examples/v2_service-accounts_list_service_account_application_keys.rs b/examples/v2_service-accounts_list_service_account_application_keys.rs index 26f41b55d..8dd1a23eb 100644 --- a/examples/v2_service-accounts_list_service_account_application_keys.rs +++ b/examples/v2_service-accounts_list_service_account_application_keys.rs @@ -1,13 +1,13 @@ // List application keys for this service account returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_service_accounts::ListServiceAccountApplicationKeysOptionalParams; -use datadog_api_client::datadogV2::api::api_service_accounts::ServiceAccountsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_service_accounts::ListServiceAccountApplicationKeysOptionalParams; +use datadog_api_client::datadogV2::api_service_accounts::ServiceAccountsAPI; #[tokio::main] async fn main() { // there is a valid "service_account_user" in the system let service_account_user_data_id = std::env::var("SERVICE_ACCOUNT_USER_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceAccountsAPI::with_config(configuration); let resp = api .list_service_account_application_keys( diff --git a/examples/v2_service-accounts_update_service_account_application_key.rs b/examples/v2_service-accounts_update_service_account_application_key.rs index bfcd737ef..a8e294dfa 100644 --- a/examples/v2_service-accounts_update_service_account_application_key.rs +++ b/examples/v2_service-accounts_update_service_account_application_key.rs @@ -1,6 +1,6 @@ // Edit an application key for this service account returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_service_accounts::ServiceAccountsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_service_accounts::ServiceAccountsAPI; use datadog_api_client::datadogV2::model::ApplicationKeyUpdateAttributes; use datadog_api_client::datadogV2::model::ApplicationKeyUpdateData; use datadog_api_client::datadogV2::model::ApplicationKeyUpdateRequest; @@ -20,7 +20,7 @@ async fn main() { service_account_application_key_data_id.clone(), ApplicationKeysType::APPLICATION_KEYS, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceAccountsAPI::with_config(configuration); let resp = api .update_service_account_application_key( diff --git a/examples/v2_service-definition_create_or_update_service_definitions.rs b/examples/v2_service-definition_create_or_update_service_definitions.rs index ac48ffb59..4746142dc 100644 --- a/examples/v2_service-definition_create_or_update_service_definitions.rs +++ b/examples/v2_service-definition_create_or_update_service_definitions.rs @@ -1,6 +1,6 @@ // Create or update service definition returns "CREATED" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_service_definition::ServiceDefinitionAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_service_definition::ServiceDefinitionAPI; use datadog_api_client::datadogV2::model::ServiceDefinitionV2Dot2; use datadog_api_client::datadogV2::model::ServiceDefinitionV2Dot2Contact; use datadog_api_client::datadogV2::model::ServiceDefinitionV2Dot2Integrations; @@ -22,6 +22,7 @@ async fn main() { ServiceDefinitionV2Dot2Version::V2_2, ) .application("my-app".to_string()) + .ci_pipeline_fingerprints(vec!["j88xdEy0J5lc".to_string(), "eZ7LMljCk8vo".to_string()]) .contacts(vec![ServiceDefinitionV2Dot2Contact::new( "https://teams.microsoft.com/myteam".to_string(), "slack".to_string(), @@ -67,7 +68,7 @@ async fn main() { .tier("High".to_string()) .type_(ServiceDefinitionV2Dot2Type::WEB), )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceDefinitionAPI::with_config(configuration); let resp = api.create_or_update_service_definitions(body).await; if let Ok(value) = resp { diff --git a/examples/v2_service-definition_create_or_update_service_definitions_1808735248.rs b/examples/v2_service-definition_create_or_update_service_definitions_1808735248.rs index b10750b1c..24dd6ea5a 100644 --- a/examples/v2_service-definition_create_or_update_service_definitions_1808735248.rs +++ b/examples/v2_service-definition_create_or_update_service_definitions_1808735248.rs @@ -1,6 +1,6 @@ // Create or update service definition using schema v2 returns "CREATED" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_service_definition::ServiceDefinitionAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_service_definition::ServiceDefinitionAPI; use datadog_api_client::datadogV2::model::ServiceDefinitionV2; use datadog_api_client::datadogV2::model::ServiceDefinitionV2Contact; use datadog_api_client::datadogV2::model::ServiceDefinitionV2Doc; @@ -67,7 +67,7 @@ async fn main() { .tags(vec!["my:tag".to_string(), "service:tag".to_string()]) .team("my-team".to_string()), )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceDefinitionAPI::with_config(configuration); let resp = api.create_or_update_service_definitions(body).await; if let Ok(value) = resp { diff --git a/examples/v2_service-definition_create_or_update_service_definitions_2619874414.rs b/examples/v2_service-definition_create_or_update_service_definitions_2619874414.rs index e1ce3ee27..66474a111 100644 --- a/examples/v2_service-definition_create_or_update_service_definitions_2619874414.rs +++ b/examples/v2_service-definition_create_or_update_service_definitions_2619874414.rs @@ -1,6 +1,6 @@ // Create or update service definition using schema v2-1 returns "CREATED" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_service_definition::ServiceDefinitionAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_service_definition::ServiceDefinitionAPI; use datadog_api_client::datadogV2::model::ServiceDefinitionV2Dot1; use datadog_api_client::datadogV2::model::ServiceDefinitionV2Dot1Contact; use datadog_api_client::datadogV2::model::ServiceDefinitionV2Dot1Email; @@ -71,7 +71,7 @@ async fn main() { .tags(vec!["my:tag".to_string(), "service:tag".to_string()]) .team("my-team".to_string()), )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceDefinitionAPI::with_config(configuration); let resp = api.create_or_update_service_definitions(body).await; if let Ok(value) = resp { diff --git a/examples/v2_service-definition_create_or_update_service_definitions_2621709423.rs b/examples/v2_service-definition_create_or_update_service_definitions_2621709423.rs index f2fa3ab1f..b083b4b14 100644 --- a/examples/v2_service-definition_create_or_update_service_definitions_2621709423.rs +++ b/examples/v2_service-definition_create_or_update_service_definitions_2621709423.rs @@ -1,6 +1,6 @@ // Create or update service definition using schema v2-2 returns "CREATED" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_service_definition::ServiceDefinitionAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_service_definition::ServiceDefinitionAPI; use datadog_api_client::datadogV2::model::ServiceDefinitionV2Dot2; use datadog_api_client::datadogV2::model::ServiceDefinitionV2Dot2Contact; use datadog_api_client::datadogV2::model::ServiceDefinitionV2Dot2Integrations; @@ -64,7 +64,7 @@ async fn main() { .tags(vec!["my:tag".to_string(), "service:tag".to_string()]) .team("my-team".to_string()), )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceDefinitionAPI::with_config(configuration); let resp = api.create_or_update_service_definitions(body).await; if let Ok(value) = resp { diff --git a/examples/v2_service-definition_delete_service_definition.rs b/examples/v2_service-definition_delete_service_definition.rs index 20e9efec9..ed33980d0 100644 --- a/examples/v2_service-definition_delete_service_definition.rs +++ b/examples/v2_service-definition_delete_service_definition.rs @@ -1,10 +1,10 @@ // Delete a single service definition returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_service_definition::ServiceDefinitionAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_service_definition::ServiceDefinitionAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceDefinitionAPI::with_config(configuration); let resp = api .delete_service_definition("service-definition-test".to_string()) diff --git a/examples/v2_service-definition_get_service_definition.rs b/examples/v2_service-definition_get_service_definition.rs index 38765bcdd..bca5b35ad 100644 --- a/examples/v2_service-definition_get_service_definition.rs +++ b/examples/v2_service-definition_get_service_definition.rs @@ -1,12 +1,12 @@ // Get a single service definition returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_service_definition::GetServiceDefinitionOptionalParams; -use datadog_api_client::datadogV2::api::api_service_definition::ServiceDefinitionAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_service_definition::GetServiceDefinitionOptionalParams; +use datadog_api_client::datadogV2::api_service_definition::ServiceDefinitionAPI; use datadog_api_client::datadogV2::model::ServiceDefinitionSchemaVersions; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceDefinitionAPI::with_config(configuration); let resp = api .get_service_definition( diff --git a/examples/v2_service-definition_list_service_definitions.rs b/examples/v2_service-definition_list_service_definitions.rs index 72c34b999..26a352de9 100644 --- a/examples/v2_service-definition_list_service_definitions.rs +++ b/examples/v2_service-definition_list_service_definitions.rs @@ -1,12 +1,12 @@ // Get all service definitions returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_service_definition::ListServiceDefinitionsOptionalParams; -use datadog_api_client::datadogV2::api::api_service_definition::ServiceDefinitionAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_service_definition::ListServiceDefinitionsOptionalParams; +use datadog_api_client::datadogV2::api_service_definition::ServiceDefinitionAPI; use datadog_api_client::datadogV2::model::ServiceDefinitionSchemaVersions; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceDefinitionAPI::with_config(configuration); let resp = api .list_service_definitions( diff --git a/examples/v2_service-definition_list_service_definitions_336468013.rs b/examples/v2_service-definition_list_service_definitions_336468013.rs index b9b35e8a4..b2e67753b 100644 --- a/examples/v2_service-definition_list_service_definitions_336468013.rs +++ b/examples/v2_service-definition_list_service_definitions_336468013.rs @@ -1,13 +1,13 @@ // Get all service definitions returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_service_definition::ListServiceDefinitionsOptionalParams; -use datadog_api_client::datadogV2::api::api_service_definition::ServiceDefinitionAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_service_definition::ListServiceDefinitionsOptionalParams; +use datadog_api_client::datadogV2::api_service_definition::ServiceDefinitionAPI; use futures_util::pin_mut; use futures_util::stream::StreamExt; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = ServiceDefinitionAPI::with_config(configuration); let response = api.list_service_definitions_with_pagination( ListServiceDefinitionsOptionalParams::default().page_size(2), diff --git a/examples/v2_service-scorecards_create_scorecard_outcomes_batch.rs b/examples/v2_service-scorecards_create_scorecard_outcomes_batch.rs index 813f5b7ac..388d9c6af 100644 --- a/examples/v2_service-scorecards_create_scorecard_outcomes_batch.rs +++ b/examples/v2_service-scorecards_create_scorecard_outcomes_batch.rs @@ -1,6 +1,6 @@ // Create outcomes batch returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_service_scorecards::ServiceScorecardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_service_scorecards::ServiceScorecardsAPI; use datadog_api_client::datadogV2::model::OutcomesBatchAttributes; use datadog_api_client::datadogV2::model::OutcomesBatchRequest; use datadog_api_client::datadogV2::model::OutcomesBatchRequestData; @@ -26,7 +26,7 @@ async fn main() { ) .type_(OutcomesBatchType::BATCHED_OUTCOME), ); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.CreateScorecardOutcomesBatch", true); let api = ServiceScorecardsAPI::with_config(configuration); let resp = api.create_scorecard_outcomes_batch(body).await; diff --git a/examples/v2_service-scorecards_create_scorecard_rule.rs b/examples/v2_service-scorecards_create_scorecard_rule.rs index 658c20fb7..5462f40a9 100644 --- a/examples/v2_service-scorecards_create_scorecard_rule.rs +++ b/examples/v2_service-scorecards_create_scorecard_rule.rs @@ -1,6 +1,6 @@ // Create a new rule returns "Created" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_service_scorecards::ServiceScorecardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_service_scorecards::ServiceScorecardsAPI; use datadog_api_client::datadogV2::model::CreateRuleRequest; use datadog_api_client::datadogV2::model::CreateRuleRequestData; use datadog_api_client::datadogV2::model::RuleAttributes; @@ -18,7 +18,7 @@ async fn main() { ) .type_(RuleType::RULE), ); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.CreateScorecardRule", true); let api = ServiceScorecardsAPI::with_config(configuration); let resp = api.create_scorecard_rule(body).await; diff --git a/examples/v2_service-scorecards_delete_scorecard_rule.rs b/examples/v2_service-scorecards_delete_scorecard_rule.rs index 8b6063abc..14684437f 100644 --- a/examples/v2_service-scorecards_delete_scorecard_rule.rs +++ b/examples/v2_service-scorecards_delete_scorecard_rule.rs @@ -1,12 +1,12 @@ // Delete a rule returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_service_scorecards::ServiceScorecardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_service_scorecards::ServiceScorecardsAPI; #[tokio::main] async fn main() { // there is a valid "create_scorecard_rule" in the system let create_scorecard_rule_data_id = std::env::var("CREATE_SCORECARD_RULE_DATA_ID").unwrap(); - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.DeleteScorecardRule", true); let api = ServiceScorecardsAPI::with_config(configuration); let resp = api diff --git a/examples/v2_service-scorecards_list_scorecard_outcomes.rs b/examples/v2_service-scorecards_list_scorecard_outcomes.rs index 66691654e..fd77cd529 100644 --- a/examples/v2_service-scorecards_list_scorecard_outcomes.rs +++ b/examples/v2_service-scorecards_list_scorecard_outcomes.rs @@ -1,11 +1,11 @@ // List all rule outcomes returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_service_scorecards::ListScorecardOutcomesOptionalParams; -use datadog_api_client::datadogV2::api::api_service_scorecards::ServiceScorecardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_service_scorecards::ListScorecardOutcomesOptionalParams; +use datadog_api_client::datadogV2::api_service_scorecards::ServiceScorecardsAPI; #[tokio::main] async fn main() { - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.ListScorecardOutcomes", true); let api = ServiceScorecardsAPI::with_config(configuration); let resp = api diff --git a/examples/v2_service-scorecards_list_scorecard_outcomes_2663454275.rs b/examples/v2_service-scorecards_list_scorecard_outcomes_2663454275.rs index c2cb5e717..10b402ce7 100644 --- a/examples/v2_service-scorecards_list_scorecard_outcomes_2663454275.rs +++ b/examples/v2_service-scorecards_list_scorecard_outcomes_2663454275.rs @@ -1,13 +1,13 @@ // List all rule outcomes returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_service_scorecards::ListScorecardOutcomesOptionalParams; -use datadog_api_client::datadogV2::api::api_service_scorecards::ServiceScorecardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_service_scorecards::ListScorecardOutcomesOptionalParams; +use datadog_api_client::datadogV2::api_service_scorecards::ServiceScorecardsAPI; use futures_util::pin_mut; use futures_util::stream::StreamExt; #[tokio::main] async fn main() { - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.ListScorecardOutcomes", true); let api = ServiceScorecardsAPI::with_config(configuration); let response = api.list_scorecard_outcomes_with_pagination( diff --git a/examples/v2_service-scorecards_list_scorecard_rules.rs b/examples/v2_service-scorecards_list_scorecard_rules.rs index 92eb5a98b..d7f389a1e 100644 --- a/examples/v2_service-scorecards_list_scorecard_rules.rs +++ b/examples/v2_service-scorecards_list_scorecard_rules.rs @@ -1,11 +1,11 @@ // List all rules returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_service_scorecards::ListScorecardRulesOptionalParams; -use datadog_api_client::datadogV2::api::api_service_scorecards::ServiceScorecardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_service_scorecards::ListScorecardRulesOptionalParams; +use datadog_api_client::datadogV2::api_service_scorecards::ServiceScorecardsAPI; #[tokio::main] async fn main() { - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.ListScorecardRules", true); let api = ServiceScorecardsAPI::with_config(configuration); let resp = api diff --git a/examples/v2_service-scorecards_list_scorecard_rules_4057666343.rs b/examples/v2_service-scorecards_list_scorecard_rules_4057666343.rs index 1c88fee66..cf891a310 100644 --- a/examples/v2_service-scorecards_list_scorecard_rules_4057666343.rs +++ b/examples/v2_service-scorecards_list_scorecard_rules_4057666343.rs @@ -1,13 +1,13 @@ // List all rules returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_service_scorecards::ListScorecardRulesOptionalParams; -use datadog_api_client::datadogV2::api::api_service_scorecards::ServiceScorecardsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_service_scorecards::ListScorecardRulesOptionalParams; +use datadog_api_client::datadogV2::api_service_scorecards::ServiceScorecardsAPI; use futures_util::pin_mut; use futures_util::stream::StreamExt; #[tokio::main] async fn main() { - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.ListScorecardRules", true); let api = ServiceScorecardsAPI::with_config(configuration); let response = api.list_scorecard_rules_with_pagination( diff --git a/examples/v2_spans-metrics_create_spans_metric.rs b/examples/v2_spans-metrics_create_spans_metric.rs index 98a728d5a..c4a0d165e 100644 --- a/examples/v2_spans-metrics_create_spans_metric.rs +++ b/examples/v2_spans-metrics_create_spans_metric.rs @@ -1,6 +1,6 @@ // Create a span-based metric returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_spans_metrics::SpansMetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_spans_metrics::SpansMetricsAPI; use datadog_api_client::datadogV2::model::SpansMetricCompute; use datadog_api_client::datadogV2::model::SpansMetricComputeAggregationType; use datadog_api_client::datadogV2::model::SpansMetricCreateAttributes; @@ -26,7 +26,7 @@ async fn main() { "ExampleSpansMetric".to_string(), SpansMetricType::SPANS_METRICS, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SpansMetricsAPI::with_config(configuration); let resp = api.create_spans_metric(body).await; if let Ok(value) = resp { diff --git a/examples/v2_spans-metrics_delete_spans_metric.rs b/examples/v2_spans-metrics_delete_spans_metric.rs index 8d9e35ef7..5928c15b2 100644 --- a/examples/v2_spans-metrics_delete_spans_metric.rs +++ b/examples/v2_spans-metrics_delete_spans_metric.rs @@ -1,12 +1,12 @@ // Delete a span-based metric returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_spans_metrics::SpansMetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_spans_metrics::SpansMetricsAPI; #[tokio::main] async fn main() { // there is a valid "spans_metric" in the system let spans_metric_data_id = std::env::var("SPANS_METRIC_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SpansMetricsAPI::with_config(configuration); let resp = api.delete_spans_metric(spans_metric_data_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v2_spans-metrics_get_spans_metric.rs b/examples/v2_spans-metrics_get_spans_metric.rs index 0ff4e8ccf..46745aacf 100644 --- a/examples/v2_spans-metrics_get_spans_metric.rs +++ b/examples/v2_spans-metrics_get_spans_metric.rs @@ -1,12 +1,12 @@ // Get a span-based metric returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_spans_metrics::SpansMetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_spans_metrics::SpansMetricsAPI; #[tokio::main] async fn main() { // there is a valid "spans_metric" in the system let spans_metric_data_id = std::env::var("SPANS_METRIC_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SpansMetricsAPI::with_config(configuration); let resp = api.get_spans_metric(spans_metric_data_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v2_spans-metrics_list_spans_metrics.rs b/examples/v2_spans-metrics_list_spans_metrics.rs index 3f7306ff7..e23165800 100644 --- a/examples/v2_spans-metrics_list_spans_metrics.rs +++ b/examples/v2_spans-metrics_list_spans_metrics.rs @@ -1,10 +1,10 @@ // Get all span-based metrics returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_spans_metrics::SpansMetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_spans_metrics::SpansMetricsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SpansMetricsAPI::with_config(configuration); let resp = api.list_spans_metrics().await; if let Ok(value) = resp { diff --git a/examples/v2_spans-metrics_update_spans_metric.rs b/examples/v2_spans-metrics_update_spans_metric.rs index 4472eebc9..2392eb5ff 100644 --- a/examples/v2_spans-metrics_update_spans_metric.rs +++ b/examples/v2_spans-metrics_update_spans_metric.rs @@ -1,6 +1,6 @@ // Update a span-based metric returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_spans_metrics::SpansMetricsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_spans_metrics::SpansMetricsAPI; use datadog_api_client::datadogV2::model::SpansMetricFilter; use datadog_api_client::datadogV2::model::SpansMetricGroupBy; use datadog_api_client::datadogV2::model::SpansMetricType; @@ -24,7 +24,7 @@ async fn main() { .tag_name("resource_name".to_string())]), SpansMetricType::SPANS_METRICS, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SpansMetricsAPI::with_config(configuration); let resp = api .update_spans_metric(spans_metric_data_id.clone(), body) diff --git a/examples/v2_spans_aggregate_spans.rs b/examples/v2_spans_aggregate_spans.rs index b546313f8..203d6393c 100644 --- a/examples/v2_spans_aggregate_spans.rs +++ b/examples/v2_spans_aggregate_spans.rs @@ -1,6 +1,6 @@ // Aggregate spans returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_spans::SpansAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_spans::SpansAPI; use datadog_api_client::datadogV2::model::SpansAggregateData; use datadog_api_client::datadogV2::model::SpansAggregateRequest; use datadog_api_client::datadogV2::model::SpansAggregateRequestAttributes; @@ -28,7 +28,7 @@ async fn main() { ) .type_(SpansAggregateRequestType::AGGREGATE_REQUEST), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SpansAPI::with_config(configuration); let resp = api.aggregate_spans(body).await; if let Ok(value) = resp { diff --git a/examples/v2_spans_list_spans.rs b/examples/v2_spans_list_spans.rs index 6547af6e4..faba72436 100644 --- a/examples/v2_spans_list_spans.rs +++ b/examples/v2_spans_list_spans.rs @@ -1,6 +1,6 @@ // Search spans returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_spans::SpansAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_spans::SpansAPI; use datadog_api_client::datadogV2::model::SpansListRequest; use datadog_api_client::datadogV2::model::SpansListRequestAttributes; use datadog_api_client::datadogV2::model::SpansListRequestData; @@ -28,7 +28,7 @@ async fn main() { ) .type_(SpansListRequestType::SEARCH_REQUEST), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SpansAPI::with_config(configuration); let resp = api.list_spans(body).await; if let Ok(value) = resp { diff --git a/examples/v2_spans_list_spans_3495563906.rs b/examples/v2_spans_list_spans_3495563906.rs index f2b64c4dd..c8a220244 100644 --- a/examples/v2_spans_list_spans_3495563906.rs +++ b/examples/v2_spans_list_spans_3495563906.rs @@ -1,6 +1,6 @@ // Search spans returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_spans::SpansAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_spans::SpansAPI; use datadog_api_client::datadogV2::model::SpansListRequest; use datadog_api_client::datadogV2::model::SpansListRequestAttributes; use datadog_api_client::datadogV2::model::SpansListRequestData; @@ -30,7 +30,7 @@ async fn main() { ) .type_(SpansListRequestType::SEARCH_REQUEST), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SpansAPI::with_config(configuration); let response = api.list_spans_with_pagination(body); pin_mut!(response); diff --git a/examples/v2_spans_list_spans_get.rs b/examples/v2_spans_list_spans_get.rs index a6685b53f..7cd25664e 100644 --- a/examples/v2_spans_list_spans_get.rs +++ b/examples/v2_spans_list_spans_get.rs @@ -1,11 +1,11 @@ // Get a list of spans returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_spans::ListSpansGetOptionalParams; -use datadog_api_client::datadogV2::api::api_spans::SpansAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_spans::ListSpansGetOptionalParams; +use datadog_api_client::datadogV2::api_spans::SpansAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SpansAPI::with_config(configuration); let resp = api .list_spans_get(ListSpansGetOptionalParams::default()) diff --git a/examples/v2_spans_list_spans_get_1130763422.rs b/examples/v2_spans_list_spans_get_1130763422.rs index d783db85f..6a149d96a 100644 --- a/examples/v2_spans_list_spans_get_1130763422.rs +++ b/examples/v2_spans_list_spans_get_1130763422.rs @@ -1,13 +1,13 @@ // Get a list of spans returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_spans::ListSpansGetOptionalParams; -use datadog_api_client::datadogV2::api::api_spans::SpansAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_spans::ListSpansGetOptionalParams; +use datadog_api_client::datadogV2::api_spans::SpansAPI; use futures_util::pin_mut; use futures_util::stream::StreamExt; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SpansAPI::with_config(configuration); let response = api.list_spans_get_with_pagination(ListSpansGetOptionalParams::default().page_limit(2)); diff --git a/examples/v2_synthetics_get_on_demand_concurrency_cap.rs b/examples/v2_synthetics_get_on_demand_concurrency_cap.rs index fd9e73f36..e22abbe47 100644 --- a/examples/v2_synthetics_get_on_demand_concurrency_cap.rs +++ b/examples/v2_synthetics_get_on_demand_concurrency_cap.rs @@ -1,10 +1,10 @@ // Get the on-demand concurrency cap returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_synthetics::SyntheticsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.get_on_demand_concurrency_cap().await; if let Ok(value) = resp { diff --git a/examples/v2_synthetics_set_on_demand_concurrency_cap.rs b/examples/v2_synthetics_set_on_demand_concurrency_cap.rs index 660bd06a0..417255558 100644 --- a/examples/v2_synthetics_set_on_demand_concurrency_cap.rs +++ b/examples/v2_synthetics_set_on_demand_concurrency_cap.rs @@ -1,12 +1,12 @@ // Save new value for on-demand concurrency cap returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_synthetics::SyntheticsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_synthetics::SyntheticsAPI; use datadog_api_client::datadogV2::model::OnDemandConcurrencyCapAttributes; #[tokio::main] async fn main() { - let body = OnDemandConcurrencyCapAttributes::new().on_demand_concurrency_cap(20 as f64); - let configuration = Configuration::new(); + let body = OnDemandConcurrencyCapAttributes::new().on_demand_concurrency_cap(20.0 as f64); + let configuration = datadog::Configuration::new(); let api = SyntheticsAPI::with_config(configuration); let resp = api.set_on_demand_concurrency_cap(body).await; if let Ok(value) = resp { diff --git a/examples/v2_teams_create_team.rs b/examples/v2_teams_create_team.rs index 8426ae975..7d6d4ae7a 100644 --- a/examples/v2_teams_create_team.rs +++ b/examples/v2_teams_create_team.rs @@ -1,6 +1,6 @@ // Create a team returns "CREATED" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_teams::TeamsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_teams::TeamsAPI; use datadog_api_client::datadogV2::model::RelationshipToUsers; use datadog_api_client::datadogV2::model::TeamCreate; use datadog_api_client::datadogV2::model::TeamCreateAttributes; @@ -20,7 +20,7 @@ async fn main() { ) .relationships(TeamCreateRelationships::new().users(RelationshipToUsers::new(vec![]))), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = TeamsAPI::with_config(configuration); let resp = api.create_team(body).await; if let Ok(value) = resp { diff --git a/examples/v2_teams_create_team_252121814.rs b/examples/v2_teams_create_team_252121814.rs index c1740eb6b..9ae2168fc 100644 --- a/examples/v2_teams_create_team_252121814.rs +++ b/examples/v2_teams_create_team_252121814.rs @@ -1,6 +1,6 @@ // Create a team with V2 fields returns "CREATED" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_teams::TeamsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_teams::TeamsAPI; use datadog_api_client::datadogV2::model::TeamCreate; use datadog_api_client::datadogV2::model::TeamCreateAttributes; use datadog_api_client::datadogV2::model::TeamCreateRequest; @@ -19,7 +19,7 @@ async fn main() { .visible_modules(vec!["m1".to_string(), "m2".to_string()]), TeamType::TEAM, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = TeamsAPI::with_config(configuration); let resp = api.create_team(body).await; if let Ok(value) = resp { diff --git a/examples/v2_teams_create_team_link.rs b/examples/v2_teams_create_team_link.rs index 4d3cdfdd7..ce9e1f446 100644 --- a/examples/v2_teams_create_team_link.rs +++ b/examples/v2_teams_create_team_link.rs @@ -1,6 +1,6 @@ // Create a team link returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_teams::TeamsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_teams::TeamsAPI; use datadog_api_client::datadogV2::model::TeamLinkAttributes; use datadog_api_client::datadogV2::model::TeamLinkCreate; use datadog_api_client::datadogV2::model::TeamLinkCreateRequest; @@ -15,7 +15,7 @@ async fn main() { .position(0), TeamLinkType::TEAM_LINKS, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = TeamsAPI::with_config(configuration); let resp = api.create_team_link(dd_team_data_id.clone(), body).await; if let Ok(value) = resp { diff --git a/examples/v2_teams_create_team_membership.rs b/examples/v2_teams_create_team_membership.rs index 6f402fa73..f21f33d1b 100644 --- a/examples/v2_teams_create_team_membership.rs +++ b/examples/v2_teams_create_team_membership.rs @@ -1,7 +1,7 @@ // Add a user to a team returns "Represents a user's association to a team" // response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_teams::TeamsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_teams::TeamsAPI; use datadog_api_client::datadogV2::model::RelationshipToUserTeamTeam; use datadog_api_client::datadogV2::model::RelationshipToUserTeamTeamData; use datadog_api_client::datadogV2::model::RelationshipToUserTeamUser; @@ -36,7 +36,7 @@ async fn main() { )), ), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = TeamsAPI::with_config(configuration); let resp = api .create_team_membership("team_id".to_string(), body) diff --git a/examples/v2_teams_delete_team.rs b/examples/v2_teams_delete_team.rs index c2dcaaae7..20cf49513 100644 --- a/examples/v2_teams_delete_team.rs +++ b/examples/v2_teams_delete_team.rs @@ -1,12 +1,12 @@ // Remove a team returns "No Content" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_teams::TeamsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_teams::TeamsAPI; #[tokio::main] async fn main() { // there is a valid "dd_team" in the system let dd_team_data_id = std::env::var("DD_TEAM_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = TeamsAPI::with_config(configuration); let resp = api.delete_team(dd_team_data_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v2_teams_delete_team_link.rs b/examples/v2_teams_delete_team_link.rs index cdeaec404..74c3825d6 100644 --- a/examples/v2_teams_delete_team_link.rs +++ b/examples/v2_teams_delete_team_link.rs @@ -1,6 +1,6 @@ // Remove a team link returns "No Content" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_teams::TeamsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_teams::TeamsAPI; #[tokio::main] async fn main() { @@ -9,7 +9,7 @@ async fn main() { // there is a valid "team_link" in the system let team_link_data_id = std::env::var("TEAM_LINK_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = TeamsAPI::with_config(configuration); let resp = api .delete_team_link(dd_team_data_id.clone(), team_link_data_id.clone()) diff --git a/examples/v2_teams_delete_team_membership.rs b/examples/v2_teams_delete_team_membership.rs index e7027fd8a..f7755f6aa 100644 --- a/examples/v2_teams_delete_team_membership.rs +++ b/examples/v2_teams_delete_team_membership.rs @@ -1,12 +1,12 @@ // Remove a user from a team returns "No Content" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_teams::TeamsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_teams::TeamsAPI; #[tokio::main] async fn main() { // there is a valid "dd_team" in the system let dd_team_data_id = std::env::var("DD_TEAM_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = TeamsAPI::with_config(configuration); let resp = api .delete_team_membership(dd_team_data_id.clone(), "user_id".to_string()) diff --git a/examples/v2_teams_get_team.rs b/examples/v2_teams_get_team.rs index 983b9b51f..6221db915 100644 --- a/examples/v2_teams_get_team.rs +++ b/examples/v2_teams_get_team.rs @@ -1,12 +1,12 @@ // Get a team returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_teams::TeamsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_teams::TeamsAPI; #[tokio::main] async fn main() { // there is a valid "dd_team" in the system let dd_team_data_id = std::env::var("DD_TEAM_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = TeamsAPI::with_config(configuration); let resp = api.get_team(dd_team_data_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v2_teams_get_team_link.rs b/examples/v2_teams_get_team_link.rs index 0636063a5..6b4c08faa 100644 --- a/examples/v2_teams_get_team_link.rs +++ b/examples/v2_teams_get_team_link.rs @@ -1,6 +1,6 @@ // Get a team link returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_teams::TeamsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_teams::TeamsAPI; #[tokio::main] async fn main() { @@ -9,7 +9,7 @@ async fn main() { // there is a valid "team_link" in the system let team_link_data_id = std::env::var("TEAM_LINK_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = TeamsAPI::with_config(configuration); let resp = api .get_team_link(dd_team_data_id.clone(), team_link_data_id.clone()) diff --git a/examples/v2_teams_get_team_links.rs b/examples/v2_teams_get_team_links.rs index c6cf05961..9ce22acae 100644 --- a/examples/v2_teams_get_team_links.rs +++ b/examples/v2_teams_get_team_links.rs @@ -1,12 +1,12 @@ // Get links for a team returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_teams::TeamsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_teams::TeamsAPI; #[tokio::main] async fn main() { // there is a valid "dd_team" in the system let dd_team_data_id = std::env::var("DD_TEAM_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = TeamsAPI::with_config(configuration); let resp = api.get_team_links(dd_team_data_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v2_teams_get_team_memberships.rs b/examples/v2_teams_get_team_memberships.rs index 2ff10eb73..62aa07e9a 100644 --- a/examples/v2_teams_get_team_memberships.rs +++ b/examples/v2_teams_get_team_memberships.rs @@ -1,14 +1,14 @@ // Get team memberships returns "Represents a user's association to a team" // response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_teams::GetTeamMembershipsOptionalParams; -use datadog_api_client::datadogV2::api::api_teams::TeamsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_teams::GetTeamMembershipsOptionalParams; +use datadog_api_client::datadogV2::api_teams::TeamsAPI; #[tokio::main] async fn main() { // there is a valid "dd_team" in the system let dd_team_data_id = std::env::var("DD_TEAM_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = TeamsAPI::with_config(configuration); let resp = api .get_team_memberships( diff --git a/examples/v2_teams_get_team_memberships_3799131168.rs b/examples/v2_teams_get_team_memberships_3799131168.rs new file mode 100644 index 000000000..201a91607 --- /dev/null +++ b/examples/v2_teams_get_team_memberships_3799131168.rs @@ -0,0 +1,25 @@ +// Get team memberships returns "Represents a user's association to a team" +// response with pagination +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_teams::GetTeamMembershipsOptionalParams; +use datadog_api_client::datadogV2::api_teams::TeamsAPI; +use futures_util::pin_mut; +use futures_util::stream::StreamExt; + +#[tokio::main] +async fn main() { + let configuration = datadog::Configuration::new(); + let api = TeamsAPI::with_config(configuration); + let response = api.get_team_memberships_with_pagination( + "2e06bf2c-193b-41d4-b3c2-afccc080458f".to_string(), + GetTeamMembershipsOptionalParams::default().page_size(2), + ); + pin_mut!(response); + while let Some(resp) = response.next().await { + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } + } +} diff --git a/examples/v2_teams_get_team_permission_settings.rs b/examples/v2_teams_get_team_permission_settings.rs index ab699caee..9ae28b6eb 100644 --- a/examples/v2_teams_get_team_permission_settings.rs +++ b/examples/v2_teams_get_team_permission_settings.rs @@ -1,12 +1,12 @@ // Get permission settings for a team returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_teams::TeamsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_teams::TeamsAPI; #[tokio::main] async fn main() { // there is a valid "dd_team" in the system let dd_team_data_id = std::env::var("DD_TEAM_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = TeamsAPI::with_config(configuration); let resp = api .get_team_permission_settings(dd_team_data_id.clone()) diff --git a/examples/v2_teams_get_user_memberships.rs b/examples/v2_teams_get_user_memberships.rs index c8d0f4a1b..752cfff75 100644 --- a/examples/v2_teams_get_user_memberships.rs +++ b/examples/v2_teams_get_user_memberships.rs @@ -1,13 +1,13 @@ // Get user memberships returns "Represents a user's association to a team" // response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_teams::TeamsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_teams::TeamsAPI; #[tokio::main] async fn main() { // there is a valid "user" in the system let user_data_id = std::env::var("USER_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = TeamsAPI::with_config(configuration); let resp = api.get_user_memberships(user_data_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v2_teams_list_teams.rs b/examples/v2_teams_list_teams.rs index f48751b12..67e2804ef 100644 --- a/examples/v2_teams_list_teams.rs +++ b/examples/v2_teams_list_teams.rs @@ -1,11 +1,11 @@ // Get all teams returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_teams::ListTeamsOptionalParams; -use datadog_api_client::datadogV2::api::api_teams::TeamsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_teams::ListTeamsOptionalParams; +use datadog_api_client::datadogV2::api_teams::TeamsAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = TeamsAPI::with_config(configuration); let resp = api.list_teams(ListTeamsOptionalParams::default()).await; if let Ok(value) = resp { diff --git a/examples/v2_teams_list_teams_3429963470.rs b/examples/v2_teams_list_teams_3429963470.rs index 2674b255f..423c2e58d 100644 --- a/examples/v2_teams_list_teams_3429963470.rs +++ b/examples/v2_teams_list_teams_3429963470.rs @@ -1,12 +1,12 @@ // Get all teams with fields_team parameter returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_teams::ListTeamsOptionalParams; -use datadog_api_client::datadogV2::api::api_teams::TeamsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_teams::ListTeamsOptionalParams; +use datadog_api_client::datadogV2::api_teams::TeamsAPI; use datadog_api_client::datadogV2::model::TeamsField; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = TeamsAPI::with_config(configuration); let resp = api .list_teams(ListTeamsOptionalParams::default().fields_team(vec![ diff --git a/examples/v2_teams_list_teams_3592098458.rs b/examples/v2_teams_list_teams_3592098458.rs index 1b708a314..a94da444a 100644 --- a/examples/v2_teams_list_teams_3592098458.rs +++ b/examples/v2_teams_list_teams_3592098458.rs @@ -1,13 +1,13 @@ // Get all teams returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_teams::ListTeamsOptionalParams; -use datadog_api_client::datadogV2::api::api_teams::TeamsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_teams::ListTeamsOptionalParams; +use datadog_api_client::datadogV2::api_teams::TeamsAPI; use futures_util::pin_mut; use futures_util::stream::StreamExt; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = TeamsAPI::with_config(configuration); let response = api.list_teams_with_pagination(ListTeamsOptionalParams::default().page_size(2)); pin_mut!(response); diff --git a/examples/v2_teams_update_team.rs b/examples/v2_teams_update_team.rs index f62d3887a..e0190bc23 100644 --- a/examples/v2_teams_update_team.rs +++ b/examples/v2_teams_update_team.rs @@ -1,6 +1,6 @@ // Update a team returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_teams::TeamsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_teams::TeamsAPI; use datadog_api_client::datadogV2::model::TeamType; use datadog_api_client::datadogV2::model::TeamUpdate; use datadog_api_client::datadogV2::model::TeamUpdateAttributes; @@ -22,7 +22,7 @@ async fn main() { .visible_modules(vec!["m1".to_string(), "m2".to_string()]), TeamType::TEAM, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = TeamsAPI::with_config(configuration); let resp = api.update_team(dd_team_data_id.clone(), body).await; if let Ok(value) = resp { diff --git a/examples/v2_teams_update_team_link.rs b/examples/v2_teams_update_team_link.rs index a2aa6455e..76faf78df 100644 --- a/examples/v2_teams_update_team_link.rs +++ b/examples/v2_teams_update_team_link.rs @@ -1,6 +1,6 @@ // Update a team link returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_teams::TeamsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_teams::TeamsAPI; use datadog_api_client::datadogV2::model::TeamLinkAttributes; use datadog_api_client::datadogV2::model::TeamLinkCreate; use datadog_api_client::datadogV2::model::TeamLinkCreateRequest; @@ -17,7 +17,7 @@ async fn main() { TeamLinkAttributes::new("New Label".to_string(), "https://example.com".to_string()), TeamLinkType::TEAM_LINKS, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = TeamsAPI::with_config(configuration); let resp = api .update_team_link(dd_team_data_id.clone(), team_link_data_id.clone(), body) diff --git a/examples/v2_teams_update_team_membership.rs b/examples/v2_teams_update_team_membership.rs index 6eb44df17..9ea41dbd6 100644 --- a/examples/v2_teams_update_team_membership.rs +++ b/examples/v2_teams_update_team_membership.rs @@ -1,7 +1,7 @@ // Update a user's membership attributes on a team returns "Represents a user's // association to a team" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_teams::TeamsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_teams::TeamsAPI; use datadog_api_client::datadogV2::model::UserTeamAttributes; use datadog_api_client::datadogV2::model::UserTeamRole; use datadog_api_client::datadogV2::model::UserTeamType; @@ -14,7 +14,7 @@ async fn main() { UserTeamUpdate::new(UserTeamType::TEAM_MEMBERSHIPS) .attributes(UserTeamAttributes::new().role(Some(UserTeamRole::ADMIN))), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = TeamsAPI::with_config(configuration); let resp = api .update_team_membership("team_id".to_string(), "user_id".to_string(), body) diff --git a/examples/v2_teams_update_team_permission_setting.rs b/examples/v2_teams_update_team_permission_setting.rs index 9372144c5..563f4240a 100644 --- a/examples/v2_teams_update_team_permission_setting.rs +++ b/examples/v2_teams_update_team_permission_setting.rs @@ -1,6 +1,6 @@ // Update permission setting for team returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_teams::TeamsAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_teams::TeamsAPI; use datadog_api_client::datadogV2::model::TeamPermissionSettingType; use datadog_api_client::datadogV2::model::TeamPermissionSettingUpdate; use datadog_api_client::datadogV2::model::TeamPermissionSettingUpdateAttributes; @@ -18,7 +18,7 @@ async fn main() { .value(TeamPermissionSettingValue::ADMINS), ), ); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = TeamsAPI::with_config(configuration); let resp = api .update_team_permission_setting( diff --git a/examples/v2_usage-metering_get_active_billing_dimensions.rs b/examples/v2_usage-metering_get_active_billing_dimensions.rs index cc166bc45..4e7003bc3 100644 --- a/examples/v2_usage-metering_get_active_billing_dimensions.rs +++ b/examples/v2_usage-metering_get_active_billing_dimensions.rs @@ -1,10 +1,10 @@ // Get active billing dimensions for cost attribution returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.GetActiveBillingDimensions", true); let api = UsageMeteringAPI::with_config(configuration); let resp = api.get_active_billing_dimensions().await; diff --git a/examples/v2_usage-metering_get_cost_by_org.rs b/examples/v2_usage-metering_get_cost_by_org.rs index b8f0fd789..ba9306e57 100644 --- a/examples/v2_usage-metering_get_cost_by_org.rs +++ b/examples/v2_usage-metering_get_cost_by_org.rs @@ -1,11 +1,11 @@ // Get cost across multi-org account returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_usage_metering::GetCostByOrgOptionalParams; -use datadog_api_client::datadogV2::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_usage_metering::GetCostByOrgOptionalParams; +use datadog_api_client::datadogV2::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_cost_by_org( diff --git a/examples/v2_usage-metering_get_estimated_cost_by_org.rs b/examples/v2_usage-metering_get_estimated_cost_by_org.rs index 85c803e3a..4b3166f8b 100644 --- a/examples/v2_usage-metering_get_estimated_cost_by_org.rs +++ b/examples/v2_usage-metering_get_estimated_cost_by_org.rs @@ -1,11 +1,11 @@ // Get estimated cost across your account returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_usage_metering::GetEstimatedCostByOrgOptionalParams; -use datadog_api_client::datadogV2::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_usage_metering::GetEstimatedCostByOrgOptionalParams; +use datadog_api_client::datadogV2::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_estimated_cost_by_org(GetEstimatedCostByOrgOptionalParams::default()) diff --git a/examples/v2_usage-metering_get_estimated_cost_by_org_3186693804.rs b/examples/v2_usage-metering_get_estimated_cost_by_org_3186693804.rs index 750beddfe..4f1b9bb3b 100644 --- a/examples/v2_usage-metering_get_estimated_cost_by_org_3186693804.rs +++ b/examples/v2_usage-metering_get_estimated_cost_by_org_3186693804.rs @@ -1,11 +1,11 @@ // GetEstimatedCostByOrg with start_month returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_usage_metering::GetEstimatedCostByOrgOptionalParams; -use datadog_api_client::datadogV2::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_usage_metering::GetEstimatedCostByOrgOptionalParams; +use datadog_api_client::datadogV2::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_estimated_cost_by_org( diff --git a/examples/v2_usage-metering_get_historical_cost_by_org.rs b/examples/v2_usage-metering_get_historical_cost_by_org.rs index 44c419589..077221be8 100644 --- a/examples/v2_usage-metering_get_historical_cost_by_org.rs +++ b/examples/v2_usage-metering_get_historical_cost_by_org.rs @@ -1,11 +1,11 @@ // Get historical cost across your account returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_usage_metering::GetHistoricalCostByOrgOptionalParams; -use datadog_api_client::datadogV2::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_usage_metering::GetHistoricalCostByOrgOptionalParams; +use datadog_api_client::datadogV2::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_historical_cost_by_org( diff --git a/examples/v2_usage-metering_get_hourly_usage.rs b/examples/v2_usage-metering_get_hourly_usage.rs index aeb748433..c8968529f 100644 --- a/examples/v2_usage-metering_get_hourly_usage.rs +++ b/examples/v2_usage-metering_get_hourly_usage.rs @@ -1,11 +1,11 @@ // Get hourly usage by product family returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_usage_metering::GetHourlyUsageOptionalParams; -use datadog_api_client::datadogV2::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_usage_metering::GetHourlyUsageOptionalParams; +use datadog_api_client::datadogV2::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_hourly_usage( diff --git a/examples/v2_usage-metering_get_monthly_cost_attribution.rs b/examples/v2_usage-metering_get_monthly_cost_attribution.rs index 0e40a714f..53b79c5c9 100644 --- a/examples/v2_usage-metering_get_monthly_cost_attribution.rs +++ b/examples/v2_usage-metering_get_monthly_cost_attribution.rs @@ -1,11 +1,11 @@ // Get Monthly Cost Attribution returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_usage_metering::GetMonthlyCostAttributionOptionalParams; -use datadog_api_client::datadogV2::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_usage_metering::GetMonthlyCostAttributionOptionalParams; +use datadog_api_client::datadogV2::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let mut configuration = Configuration::new(); + let mut configuration = datadog::Configuration::new(); configuration.set_unstable_operation_enabled("v2.GetMonthlyCostAttribution", true); let api = UsageMeteringAPI::with_config(configuration); let resp = api diff --git a/examples/v2_usage-metering_get_projected_cost.rs b/examples/v2_usage-metering_get_projected_cost.rs index ce9592be5..e8c7e4583 100644 --- a/examples/v2_usage-metering_get_projected_cost.rs +++ b/examples/v2_usage-metering_get_projected_cost.rs @@ -1,11 +1,11 @@ // Get projected cost across your account returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_usage_metering::GetProjectedCostOptionalParams; -use datadog_api_client::datadogV2::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_usage_metering::GetProjectedCostOptionalParams; +use datadog_api_client::datadogV2::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_projected_cost(GetProjectedCostOptionalParams::default().view("sub-org".to_string())) diff --git a/examples/v2_usage-metering_get_usage_application_security_monitoring.rs b/examples/v2_usage-metering_get_usage_application_security_monitoring.rs index 05345043b..7aec6f4a3 100644 --- a/examples/v2_usage-metering_get_usage_application_security_monitoring.rs +++ b/examples/v2_usage-metering_get_usage_application_security_monitoring.rs @@ -1,11 +1,11 @@ // Get hourly usage for application security returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_usage_metering::GetUsageApplicationSecurityMonitoringOptionalParams; -use datadog_api_client::datadogV2::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_usage_metering::GetUsageApplicationSecurityMonitoringOptionalParams; +use datadog_api_client::datadogV2::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_application_security_monitoring( diff --git a/examples/v2_usage-metering_get_usage_lambda_traced_invocations.rs b/examples/v2_usage-metering_get_usage_lambda_traced_invocations.rs index 947c37261..e508e5f3d 100644 --- a/examples/v2_usage-metering_get_usage_lambda_traced_invocations.rs +++ b/examples/v2_usage-metering_get_usage_lambda_traced_invocations.rs @@ -1,11 +1,11 @@ -// Get hourly usage for lambda traced invocations returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_usage_metering::GetUsageLambdaTracedInvocationsOptionalParams; -use datadog_api_client::datadogV2::api::api_usage_metering::UsageMeteringAPI; +// Get hourly usage for Lambda traced invocations returns "OK" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_usage_metering::GetUsageLambdaTracedInvocationsOptionalParams; +use datadog_api_client::datadogV2::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_lambda_traced_invocations( diff --git a/examples/v2_usage-metering_get_usage_observability_pipelines.rs b/examples/v2_usage-metering_get_usage_observability_pipelines.rs index 3fe788449..3bb93649a 100644 --- a/examples/v2_usage-metering_get_usage_observability_pipelines.rs +++ b/examples/v2_usage-metering_get_usage_observability_pipelines.rs @@ -1,11 +1,11 @@ // Get hourly usage for observability pipelines returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_usage_metering::GetUsageObservabilityPipelinesOptionalParams; -use datadog_api_client::datadogV2::api::api_usage_metering::UsageMeteringAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_usage_metering::GetUsageObservabilityPipelinesOptionalParams; +use datadog_api_client::datadogV2::api_usage_metering::UsageMeteringAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsageMeteringAPI::with_config(configuration); let resp = api .get_usage_observability_pipelines( diff --git a/examples/v2_users_create_user.rs b/examples/v2_users_create_user.rs index d31df5014..4eac0f343 100644 --- a/examples/v2_users_create_user.rs +++ b/examples/v2_users_create_user.rs @@ -1,6 +1,6 @@ // Create a user returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_users::UsersAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_users::UsersAPI; use datadog_api_client::datadogV2::model::UserCreateAttributes; use datadog_api_client::datadogV2::model::UserCreateData; use datadog_api_client::datadogV2::model::UserCreateRequest; @@ -13,7 +13,7 @@ async fn main() { .name("Datadog API Client Python".to_string()), UsersType::USERS, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsersAPI::with_config(configuration); let resp = api.create_user(body).await; if let Ok(value) = resp { diff --git a/examples/v2_users_disable_user.rs b/examples/v2_users_disable_user.rs index 143f65c32..22c5c16f5 100644 --- a/examples/v2_users_disable_user.rs +++ b/examples/v2_users_disable_user.rs @@ -1,12 +1,12 @@ // Disable a user returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_users::UsersAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_users::UsersAPI; #[tokio::main] async fn main() { // there is a valid "user" in the system let user_data_id = std::env::var("USER_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsersAPI::with_config(configuration); let resp = api.disable_user(user_data_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v2_users_get_invitation.rs b/examples/v2_users_get_invitation.rs index f6d76c782..fc78edac9 100644 --- a/examples/v2_users_get_invitation.rs +++ b/examples/v2_users_get_invitation.rs @@ -1,12 +1,12 @@ // Get a user invitation returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_users::UsersAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_users::UsersAPI; #[tokio::main] async fn main() { // the "user" has a "user_invitation" let user_invitation_id = std::env::var("USER_INVITATION_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsersAPI::with_config(configuration); let resp = api.get_invitation(user_invitation_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v2_users_get_user.rs b/examples/v2_users_get_user.rs index 8775b0cef..1961ec699 100644 --- a/examples/v2_users_get_user.rs +++ b/examples/v2_users_get_user.rs @@ -1,12 +1,12 @@ // Get user details returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_users::UsersAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_users::UsersAPI; #[tokio::main] async fn main() { // there is a valid "user" in the system let user_data_id = std::env::var("USER_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsersAPI::with_config(configuration); let resp = api.get_user(user_data_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v2_users_list_user_organizations.rs b/examples/v2_users_list_user_organizations.rs index 56a065b46..8379d4957 100644 --- a/examples/v2_users_list_user_organizations.rs +++ b/examples/v2_users_list_user_organizations.rs @@ -1,10 +1,10 @@ // Get a user organization returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_users::UsersAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_users::UsersAPI; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsersAPI::with_config(configuration); let resp = api .list_user_organizations("00000000-0000-9999-0000-000000000000".to_string()) diff --git a/examples/v2_users_list_user_permissions.rs b/examples/v2_users_list_user_permissions.rs index d8597cc8c..9713cce0d 100644 --- a/examples/v2_users_list_user_permissions.rs +++ b/examples/v2_users_list_user_permissions.rs @@ -1,12 +1,12 @@ // Get a user permissions returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_users::UsersAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_users::UsersAPI; #[tokio::main] async fn main() { // there is a valid "user" in the system let user_data_id = std::env::var("USER_DATA_ID").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsersAPI::with_config(configuration); let resp = api.list_user_permissions(user_data_id.clone()).await; if let Ok(value) = resp { diff --git a/examples/v2_users_list_users.rs b/examples/v2_users_list_users.rs index 825457655..9e60c2bf1 100644 --- a/examples/v2_users_list_users.rs +++ b/examples/v2_users_list_users.rs @@ -1,13 +1,13 @@ // List all users returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_users::ListUsersOptionalParams; -use datadog_api_client::datadogV2::api::api_users::UsersAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_users::ListUsersOptionalParams; +use datadog_api_client::datadogV2::api_users::UsersAPI; #[tokio::main] async fn main() { // there is a valid "user" in the system let user_data_attributes_email = std::env::var("USER_DATA_ATTRIBUTES_EMAIL").unwrap(); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsersAPI::with_config(configuration); let resp = api .list_users(ListUsersOptionalParams::default().filter(user_data_attributes_email.clone())) diff --git a/examples/v2_users_list_users_4075885358.rs b/examples/v2_users_list_users_4075885358.rs index 7fd9fd121..7508d8189 100644 --- a/examples/v2_users_list_users_4075885358.rs +++ b/examples/v2_users_list_users_4075885358.rs @@ -1,13 +1,13 @@ // List all users returns "OK" response with pagination -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_users::ListUsersOptionalParams; -use datadog_api_client::datadogV2::api::api_users::UsersAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_users::ListUsersOptionalParams; +use datadog_api_client::datadogV2::api_users::UsersAPI; use futures_util::pin_mut; use futures_util::stream::StreamExt; #[tokio::main] async fn main() { - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsersAPI::with_config(configuration); let response = api.list_users_with_pagination(ListUsersOptionalParams::default().page_size(2)); pin_mut!(response); diff --git a/examples/v2_users_send_invitations.rs b/examples/v2_users_send_invitations.rs index 1b17a1e3e..a9b035f23 100644 --- a/examples/v2_users_send_invitations.rs +++ b/examples/v2_users_send_invitations.rs @@ -1,6 +1,6 @@ // Send invitation emails returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_users::UsersAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_users::UsersAPI; use datadog_api_client::datadogV2::model::RelationshipToUser; use datadog_api_client::datadogV2::model::RelationshipToUserData; use datadog_api_client::datadogV2::model::UserInvitationData; @@ -20,7 +20,7 @@ async fn main() { ))), UserInvitationsType::USER_INVITATIONS, )]); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsersAPI::with_config(configuration); let resp = api.send_invitations(body).await; if let Ok(value) = resp { diff --git a/examples/v2_users_update_user.rs b/examples/v2_users_update_user.rs index 0fa594c9f..2c5198f2b 100644 --- a/examples/v2_users_update_user.rs +++ b/examples/v2_users_update_user.rs @@ -1,6 +1,6 @@ // Update a user returns "OK" response -use datadog_api_client::datadog::configuration::Configuration; -use datadog_api_client::datadogV2::api::api_users::UsersAPI; +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_users::UsersAPI; use datadog_api_client::datadogV2::model::UserUpdateAttributes; use datadog_api_client::datadogV2::model::UserUpdateData; use datadog_api_client::datadogV2::model::UserUpdateRequest; @@ -17,7 +17,7 @@ async fn main() { user_data_id.clone(), UsersType::USERS, )); - let configuration = Configuration::new(); + let configuration = datadog::Configuration::new(); let api = UsersAPI::with_config(configuration); let resp = api.update_user(user_data_id.clone(), body).await; if let Ok(value) = resp { diff --git a/generate.sh b/generate.sh index 44df2e0a4..2a9c7dcd7 100755 --- a/generate.sh +++ b/generate.sh @@ -27,4 +27,3 @@ rm -rf src/* pre_commit_wrapper generator pre_commit_wrapper format pre_commit_wrapper lint -pre_commit_wrapper license-check diff --git a/run-tests.sh b/run-tests.sh new file mode 100755 index 000000000..365f3b1e4 --- /dev/null +++ b/run-tests.sh @@ -0,0 +1,5 @@ +./scripts/license-check.sh +if [ $? -ne 0 ]; then + exit 1 +fi +cargo test --test main -- diff --git a/src/datadog/configuration.rs b/src/datadog/configuration.rs index a01e3c3c2..eecad6dc2 100644 --- a/src/datadog/configuration.rs +++ b/src/datadog/configuration.rs @@ -44,13 +44,15 @@ pub struct APIKey { #[derive(Debug, Clone)] pub struct Configuration { pub(crate) user_agent: String, - pub(crate) client: reqwest_middleware::ClientWithMiddleware, pub(crate) unstable_operations: HashMap, pub(crate) auth_keys: HashMap, pub server_index: usize, pub server_variables: HashMap, pub server_operation_index: HashMap, pub server_operation_variables: HashMap>, + pub proxy_url: Option, + pub enable_retry: bool, + pub max_retries: u32, } impl Configuration { @@ -58,10 +60,6 @@ impl Configuration { Self::default() } - pub fn client(&mut self, client: reqwest_middleware::ClientWithMiddleware) { - self.client = client; - } - pub fn get_operation_host(&self, operation_str: &str) -> String { let operation = operation_str.to_string(); if let Some(servers) = OPERATION_SERVERS.get(&operation) { @@ -117,19 +115,24 @@ impl Configuration { pub fn set_auth_key(&mut self, operation_str: &str, api_key: APIKey) { self.auth_keys.insert(operation_str.to_string(), api_key); } + + pub fn set_proxy_url(&mut self, proxy_url: Option) { + self.proxy_url = proxy_url; + } + + pub fn set_retry(&mut self, enable_retry: bool, max_retries: u32) { + self.enable_retry = enable_retry; + self.max_retries = max_retries; + } } impl Default for Configuration { fn default() -> Self { - let http_client = reqwest_middleware::ClientBuilder::new(reqwest::Client::new()); - let user_agent = format!( - "datadog-api-client-rust/{} (rust {}; os {}; arch {})", - option_env!("CARGO_PKG_VERSION").unwrap_or("?"), - option_env!("DD_RUSTC_VERSION").unwrap_or("?"), - env::consts::OS, - env::consts::ARCH, - ); let unstable_operations = HashMap::from([ + ("v2.create_open_api".to_owned(), false), + ("v2.delete_open_api".to_owned(), false), + ("v2.get_open_api".to_owned(), false), + ("v2.update_open_api".to_owned(), false), ("v2.get_active_billing_dimensions".to_owned(), false), ("v2.get_monthly_cost_attribution".to_owned(), false), ("v2.create_dora_deployment".to_owned(), false), @@ -190,19 +193,28 @@ impl Default for Configuration { ); Self { - user_agent, - client: http_client.build(), + user_agent: DEFAULT_USER_AGENT.clone(), unstable_operations, auth_keys, server_index: 0, server_variables: HashMap::new(), server_operation_index: HashMap::new(), server_operation_variables: HashMap::new(), + proxy_url: None, + enable_retry: false, + max_retries: 3, } } } lazy_static! { + pub static ref DEFAULT_USER_AGENT: String = format!( + "datadog-api-client-rust/{} (rust {}; os {}; arch {})", + option_env!("CARGO_PKG_VERSION").unwrap_or("?"), + option_env!("DD_RUSTC_VERSION").unwrap_or("?"), + env::consts::OS, + env::consts::ARCH, + ); static ref SERVERS: Vec = { vec![ ServerConfiguration { diff --git a/src/datadog/mod.rs b/src/datadog/mod.rs index a7a465771..e70ecb935 100644 --- a/src/datadog/mod.rs +++ b/src/datadog/mod.rs @@ -2,6 +2,9 @@ use serde::{Deserialize, Deserializer, Serialize, Serializer}; use std::error; use std::fmt; +mod configuration; +pub use configuration::{APIKey, Configuration, DEFAULT_USER_AGENT}; + #[derive(Debug, Clone)] pub struct ResponseContent { pub status: reqwest::StatusCode, @@ -77,40 +80,11 @@ impl From for Error { } } -pub fn urlencode>(s: T) -> String { +pub(crate) fn urlencode>(s: T) -> String { ::url::form_urlencoded::byte_serialize(s.as_ref().as_bytes()).collect() } -pub fn parse_deep_object(prefix: &str, value: &serde_json::Value) -> Vec<(String, String)> { - if let serde_json::Value::Object(object) = value { - let mut params = vec![]; - - for (key, value) in object { - match value { - serde_json::Value::Object(_) => params.append(&mut parse_deep_object( - &format!("{}[{}]", prefix, key), - value, - )), - serde_json::Value::Array(array) => { - for (i, value) in array.iter().enumerate() { - params.append(&mut parse_deep_object( - &format!("{}[{}][{}]", prefix, key, i), - value, - )); - } - } - serde_json::Value::String(s) => { - params.push((format!("{}[{}]", prefix, key), s.clone())) - } - _ => params.push((format!("{}[{}]", prefix, key), value.to_string())), - } - } - return params; - } - unimplemented!("Only objects are supported with style=deepObject") -} - -pub struct DDFormatter; +pub(crate) struct DDFormatter; impl serde_json::ser::Formatter for DDFormatter { fn write_f64(&mut self, writer: &mut W, value: f64) -> std::io::Result<()> @@ -121,8 +95,6 @@ impl serde_json::ser::Formatter for DDFormatter { } } -pub mod configuration; - #[derive(Clone, Debug, Eq, PartialEq)] pub struct UnparsedObject { pub value: serde_json::Value, diff --git a/src/datadogV1/api/api_authentication.rs b/src/datadogV1/api/api_authentication.rs index 27125f773..4a687a123 100644 --- a/src/datadogV1/api/api_authentication.rs +++ b/src/datadogV1/api/api_authentication.rs @@ -1,8 +1,8 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; /// ValidateError is a struct for typed errors of method [`AuthenticationAPI::validate`] @@ -16,14 +16,13 @@ pub enum ValidateError { #[derive(Debug, Clone)] pub struct AuthenticationAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for AuthenticationAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -31,21 +30,67 @@ impl AuthenticationAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Check if the API key (not the APP key) is valid. If invalid, a 403 is returned. pub async fn validate( &self, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::AuthenticationValidationResponse, + datadog::Error, + > { match self.validate_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -58,13 +103,13 @@ impl AuthenticationAPI { pub async fn validate_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.validate"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/validate", @@ -73,17 +118,32 @@ impl AuthenticationAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -95,22 +155,22 @@ impl AuthenticationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV1/api/api_aws_integration.rs b/src/datadogV1/api/api_aws_integration.rs index ef8a67971..e685c5365 100644 --- a/src/datadogV1/api/api_aws_integration.rs +++ b/src/datadogV1/api/api_aws_integration.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// ListAWSAccountsOptionalParams is a struct for passing parameters to the method [`AWSIntegrationAPI::list_aws_accounts`] #[non_exhaustive] @@ -193,14 +198,13 @@ pub enum UpdateAWSAccountError { #[derive(Debug, Clone)] pub struct AWSIntegrationAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for AWSIntegrationAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -208,8 +212,52 @@ impl AWSIntegrationAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create a Datadog-Amazon Web Services integration. @@ -219,14 +267,16 @@ impl AWSIntegrationAPI { pub async fn create_aws_account( &self, body: crate::datadogV1::model::AWSAccount, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::AWSAccountCreateResponse, + datadog::Error, + > { match self.create_aws_account_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -243,13 +293,13 @@ impl AWSIntegrationAPI { &self, body: crate::datadogV1::model::AWSAccount, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.create_aws_account"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/aws", @@ -258,27 +308,85 @@ impl AWSIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -290,23 +398,23 @@ impl AWSIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -316,7 +424,7 @@ impl AWSIntegrationAPI { body: crate::datadogV1::model::AWSEventBridgeCreateRequest, ) -> Result< crate::datadogV1::model::AWSEventBridgeCreateResponse, - Error, + datadog::Error, > { match self .create_aws_event_bridge_source_with_http_info(body) @@ -326,7 +434,7 @@ impl AWSIntegrationAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -340,13 +448,13 @@ impl AWSIntegrationAPI { &self, body: crate::datadogV1::model::AWSEventBridgeCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.create_aws_event_bridge_source"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/aws/event_bridge", @@ -355,27 +463,85 @@ impl AWSIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -387,23 +553,23 @@ impl AWSIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -411,14 +577,16 @@ impl AWSIntegrationAPI { pub async fn create_aws_tag_filter( &self, body: crate::datadogV1::model::AWSTagFilterCreateRequest, - ) -> Result, Error> - { + ) -> Result< + std::collections::BTreeMap, + datadog::Error, + > { match self.create_aws_tag_filter_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -432,13 +600,13 @@ impl AWSIntegrationAPI { &self, body: crate::datadogV1::model::AWSTagFilterCreateRequest, ) -> Result< - ResponseContent>, - Error, + datadog::ResponseContent>, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.create_aws_tag_filter"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/aws/filtering", @@ -447,27 +615,85 @@ impl AWSIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -479,23 +705,23 @@ impl AWSIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -503,14 +729,16 @@ impl AWSIntegrationAPI { pub async fn create_new_aws_external_id( &self, body: crate::datadogV1::model::AWSAccount, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::AWSAccountCreateResponse, + datadog::Error, + > { match self.create_new_aws_external_id_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -524,13 +752,13 @@ impl AWSIntegrationAPI { &self, body: crate::datadogV1::model::AWSAccount, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.create_new_aws_external_id"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/aws/generate_new_external_id", @@ -539,27 +767,85 @@ impl AWSIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -571,23 +857,23 @@ impl AWSIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -595,14 +881,16 @@ impl AWSIntegrationAPI { pub async fn delete_aws_account( &self, body: crate::datadogV1::model::AWSAccountDeleteRequest, - ) -> Result, Error> - { + ) -> Result< + std::collections::BTreeMap, + datadog::Error, + > { match self.delete_aws_account_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -616,13 +904,13 @@ impl AWSIntegrationAPI { &self, body: crate::datadogV1::model::AWSAccountDeleteRequest, ) -> Result< - ResponseContent>, - Error, + datadog::ResponseContent>, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.delete_aws_account"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/aws", @@ -631,27 +919,85 @@ impl AWSIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -663,23 +1009,23 @@ impl AWSIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -689,7 +1035,7 @@ impl AWSIntegrationAPI { body: crate::datadogV1::model::AWSEventBridgeDeleteRequest, ) -> Result< crate::datadogV1::model::AWSEventBridgeDeleteResponse, - Error, + datadog::Error, > { match self .delete_aws_event_bridge_source_with_http_info(body) @@ -699,7 +1045,7 @@ impl AWSIntegrationAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -713,13 +1059,13 @@ impl AWSIntegrationAPI { &self, body: crate::datadogV1::model::AWSEventBridgeDeleteRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.delete_aws_event_bridge_source"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/aws/event_bridge", @@ -728,27 +1074,85 @@ impl AWSIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -760,23 +1164,23 @@ impl AWSIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -784,14 +1188,16 @@ impl AWSIntegrationAPI { pub async fn delete_aws_tag_filter( &self, body: crate::datadogV1::model::AWSTagFilterDeleteRequest, - ) -> Result, Error> - { + ) -> Result< + std::collections::BTreeMap, + datadog::Error, + > { match self.delete_aws_tag_filter_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -805,13 +1211,13 @@ impl AWSIntegrationAPI { &self, body: crate::datadogV1::model::AWSTagFilterDeleteRequest, ) -> Result< - ResponseContent>, - Error, + datadog::ResponseContent>, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.delete_aws_tag_filter"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/aws/filtering", @@ -820,27 +1226,85 @@ impl AWSIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -852,23 +1316,23 @@ impl AWSIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -876,13 +1340,14 @@ impl AWSIntegrationAPI { pub async fn list_aws_accounts( &self, params: ListAWSAccountsOptionalParams, - ) -> Result> { + ) -> Result> + { match self.list_aws_accounts_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -896,8 +1361,8 @@ impl AWSIntegrationAPI { &self, params: ListAWSAccountsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.list_aws_accounts"; @@ -907,7 +1372,7 @@ impl AWSIntegrationAPI { let role_name = params.role_name; let access_key_id = params.access_key_id; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/aws", @@ -929,20 +1394,39 @@ impl AWSIntegrationAPI { local_req_builder.query(&[("access_key_id", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -954,23 +1438,23 @@ impl AWSIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -979,14 +1463,14 @@ impl AWSIntegrationAPI { &self, ) -> Result< crate::datadogV1::model::AWSEventBridgeListResponse, - Error, + datadog::Error, > { match self.list_aws_event_bridge_sources_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -999,13 +1483,13 @@ impl AWSIntegrationAPI { pub async fn list_aws_event_bridge_sources_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.list_aws_event_bridge_sources"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/aws/event_bridge", @@ -1014,20 +1498,39 @@ impl AWSIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1039,23 +1542,23 @@ impl AWSIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1063,14 +1566,16 @@ impl AWSIntegrationAPI { pub async fn list_aws_tag_filters( &self, account_id: String, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::AWSTagFilterListResponse, + datadog::Error, + > { match self.list_aws_tag_filters_with_http_info(account_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1084,13 +1589,13 @@ impl AWSIntegrationAPI { &self, account_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.list_aws_tag_filters"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/aws/filtering", @@ -1101,20 +1606,39 @@ impl AWSIntegrationAPI { local_req_builder = local_req_builder.query(&[("account_id", &account_id.to_string())]); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1126,36 +1650,36 @@ impl AWSIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// List all namespace rules for a given Datadog-AWS integration. This endpoint takes no arguments. pub async fn list_available_aws_namespaces( &self, - ) -> Result, Error> { + ) -> Result, datadog::Error> { match self.list_available_aws_namespaces_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1167,11 +1691,14 @@ impl AWSIntegrationAPI { /// List all namespace rules for a given Datadog-AWS integration. This endpoint takes no arguments. pub async fn list_available_aws_namespaces_with_http_info( &self, - ) -> Result>, Error> { + ) -> Result< + datadog::ResponseContent>, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.list_available_aws_namespaces"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/aws/available_namespace_rules", @@ -1180,20 +1707,39 @@ impl AWSIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1203,23 +1749,23 @@ impl AWSIntegrationAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::>(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1228,14 +1774,16 @@ impl AWSIntegrationAPI { &self, body: crate::datadogV1::model::AWSAccount, params: UpdateAWSAccountOptionalParams, - ) -> Result, Error> - { + ) -> Result< + std::collections::BTreeMap, + datadog::Error, + > { match self.update_aws_account_with_http_info(body, params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1250,8 +1798,8 @@ impl AWSIntegrationAPI { body: crate::datadogV1::model::AWSAccount, params: UpdateAWSAccountOptionalParams, ) -> Result< - ResponseContent>, - Error, + datadog::ResponseContent>, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.update_aws_account"; @@ -1261,7 +1809,7 @@ impl AWSIntegrationAPI { let role_name = params.role_name; let access_key_id = params.access_key_id; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/aws", @@ -1283,27 +1831,85 @@ impl AWSIntegrationAPI { local_req_builder.query(&[("access_key_id", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1315,23 +1921,23 @@ impl AWSIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV1/api/api_aws_logs_integration.rs b/src/datadogV1/api/api_aws_logs_integration.rs index 7d2a49251..6cd8d9f48 100644 --- a/src/datadogV1/api/api_aws_logs_integration.rs +++ b/src/datadogV1/api/api_aws_logs_integration.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// CheckAWSLogsLambdaAsyncError is a struct for typed errors of method [`AWSLogsIntegrationAPI::check_aws_logs_lambda_async`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -76,14 +81,13 @@ pub enum ListAWSLogsServicesError { #[derive(Debug, Clone)] pub struct AWSLogsIntegrationAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for AWSLogsIntegrationAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -91,8 +95,52 @@ impl AWSLogsIntegrationAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Test if permissions are present to add a log-forwarding triggers for the given services and AWS account. The input @@ -106,14 +154,16 @@ impl AWSLogsIntegrationAPI { pub async fn check_aws_logs_lambda_async( &self, body: crate::datadogV1::model::AWSAccountAndLambdaRequest, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::AWSLogsAsyncResponse, + datadog::Error, + > { match self.check_aws_logs_lambda_async_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -134,13 +184,13 @@ impl AWSLogsIntegrationAPI { &self, body: crate::datadogV1::model::AWSAccountAndLambdaRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.check_aws_logs_lambda_async"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/aws/logs/check_async", @@ -149,27 +199,85 @@ impl AWSLogsIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -181,23 +289,23 @@ impl AWSLogsIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -214,8 +322,10 @@ impl AWSLogsIntegrationAPI { pub async fn check_aws_logs_services_async( &self, body: crate::datadogV1::model::AWSLogsServicesRequest, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::AWSLogsAsyncResponse, + datadog::Error, + > { match self .check_aws_logs_services_async_with_http_info(body) .await @@ -224,7 +334,7 @@ impl AWSLogsIntegrationAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -247,13 +357,13 @@ impl AWSLogsIntegrationAPI { &self, body: crate::datadogV1::model::AWSLogsServicesRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.check_aws_logs_services_async"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/aws/logs/services_async", @@ -262,27 +372,85 @@ impl AWSLogsIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -294,23 +462,23 @@ impl AWSLogsIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -318,14 +486,16 @@ impl AWSLogsIntegrationAPI { pub async fn create_aws_lambda_arn( &self, body: crate::datadogV1::model::AWSAccountAndLambdaRequest, - ) -> Result, Error> - { + ) -> Result< + std::collections::BTreeMap, + datadog::Error, + > { match self.create_aws_lambda_arn_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -339,13 +509,13 @@ impl AWSLogsIntegrationAPI { &self, body: crate::datadogV1::model::AWSAccountAndLambdaRequest, ) -> Result< - ResponseContent>, - Error, + datadog::ResponseContent>, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.create_aws_lambda_arn"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/aws/logs", @@ -354,27 +524,85 @@ impl AWSLogsIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -386,23 +614,23 @@ impl AWSLogsIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -410,14 +638,16 @@ impl AWSLogsIntegrationAPI { pub async fn delete_aws_lambda_arn( &self, body: crate::datadogV1::model::AWSAccountAndLambdaRequest, - ) -> Result, Error> - { + ) -> Result< + std::collections::BTreeMap, + datadog::Error, + > { match self.delete_aws_lambda_arn_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -431,13 +661,13 @@ impl AWSLogsIntegrationAPI { &self, body: crate::datadogV1::model::AWSAccountAndLambdaRequest, ) -> Result< - ResponseContent>, - Error, + datadog::ResponseContent>, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.delete_aws_lambda_arn"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/aws/logs", @@ -446,27 +676,85 @@ impl AWSLogsIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -478,23 +766,23 @@ impl AWSLogsIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -504,14 +792,14 @@ impl AWSLogsIntegrationAPI { body: crate::datadogV1::model::AWSLogsServicesRequest, ) -> Result< std::collections::BTreeMap, - Error, + datadog::Error, > { match self.enable_aws_log_services_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -525,13 +813,13 @@ impl AWSLogsIntegrationAPI { &self, body: crate::datadogV1::model::AWSLogsServicesRequest, ) -> Result< - ResponseContent>, - Error, + datadog::ResponseContent>, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.enable_aws_log_services"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/aws/logs/services", @@ -540,27 +828,85 @@ impl AWSLogsIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -572,23 +918,23 @@ impl AWSLogsIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -597,14 +943,14 @@ impl AWSLogsIntegrationAPI { &self, ) -> Result< Vec, - Error, + datadog::Error, > { match self.list_aws_logs_integrations_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -617,13 +963,13 @@ impl AWSLogsIntegrationAPI { pub async fn list_aws_logs_integrations_with_http_info( &self, ) -> Result< - ResponseContent>, - Error, + datadog::ResponseContent>, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.list_aws_logs_integrations"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/aws/logs", @@ -632,20 +978,39 @@ impl AWSLogsIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -657,23 +1022,23 @@ impl AWSLogsIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -682,14 +1047,14 @@ impl AWSLogsIntegrationAPI { &self, ) -> Result< Vec, - Error, + datadog::Error, > { match self.list_aws_logs_services_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -702,13 +1067,13 @@ impl AWSLogsIntegrationAPI { pub async fn list_aws_logs_services_with_http_info( &self, ) -> Result< - ResponseContent>, - Error, + datadog::ResponseContent>, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.list_aws_logs_services"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/aws/logs/services", @@ -717,20 +1082,39 @@ impl AWSLogsIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -742,23 +1126,23 @@ impl AWSLogsIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV1/api/api_azure_integration.rs b/src/datadogV1/api/api_azure_integration.rs index 35914078a..fea6868fe 100644 --- a/src/datadogV1/api/api_azure_integration.rs +++ b/src/datadogV1/api/api_azure_integration.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// CreateAzureIntegrationError is a struct for typed errors of method [`AzureIntegrationAPI::create_azure_integration`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -57,14 +62,13 @@ pub enum UpdateAzureIntegrationError { #[derive(Debug, Clone)] pub struct AzureIntegrationAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for AzureIntegrationAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -72,8 +76,52 @@ impl AzureIntegrationAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create a Datadog-Azure integration. @@ -88,14 +136,14 @@ impl AzureIntegrationAPI { body: crate::datadogV1::model::AzureAccount, ) -> Result< std::collections::BTreeMap, - Error, + datadog::Error, > { match self.create_azure_integration_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -115,13 +163,13 @@ impl AzureIntegrationAPI { &self, body: crate::datadogV1::model::AzureAccount, ) -> Result< - ResponseContent>, - Error, + datadog::ResponseContent>, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.create_azure_integration"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/azure", @@ -130,27 +178,85 @@ impl AzureIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -162,23 +268,23 @@ impl AzureIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -188,14 +294,14 @@ impl AzureIntegrationAPI { body: crate::datadogV1::model::AzureAccount, ) -> Result< std::collections::BTreeMap, - Error, + datadog::Error, > { match self.delete_azure_integration_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -209,13 +315,13 @@ impl AzureIntegrationAPI { &self, body: crate::datadogV1::model::AzureAccount, ) -> Result< - ResponseContent>, - Error, + datadog::ResponseContent>, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.delete_azure_integration"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/azure", @@ -224,27 +330,85 @@ impl AzureIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -256,36 +420,37 @@ impl AzureIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// List all Datadog-Azure integrations configured in your Datadog account. pub async fn list_azure_integration( &self, - ) -> Result, Error> { + ) -> Result, datadog::Error> + { match self.list_azure_integration_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -298,13 +463,13 @@ impl AzureIntegrationAPI { pub async fn list_azure_integration_with_http_info( &self, ) -> Result< - ResponseContent>, - Error, + datadog::ResponseContent>, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.list_azure_integration"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/azure", @@ -313,20 +478,39 @@ impl AzureIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -337,23 +521,23 @@ impl AzureIntegrationAPI { match serde_json::from_str::>(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -363,14 +547,14 @@ impl AzureIntegrationAPI { body: crate::datadogV1::model::AzureAccount, ) -> Result< std::collections::BTreeMap, - Error, + datadog::Error, > { match self.update_azure_host_filters_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -384,13 +568,13 @@ impl AzureIntegrationAPI { &self, body: crate::datadogV1::model::AzureAccount, ) -> Result< - ResponseContent>, - Error, + datadog::ResponseContent>, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.update_azure_host_filters"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/azure/host_filters", @@ -399,27 +583,85 @@ impl AzureIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -431,23 +673,23 @@ impl AzureIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -459,14 +701,14 @@ impl AzureIntegrationAPI { body: crate::datadogV1::model::AzureAccount, ) -> Result< std::collections::BTreeMap, - Error, + datadog::Error, > { match self.update_azure_integration_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -482,13 +724,13 @@ impl AzureIntegrationAPI { &self, body: crate::datadogV1::model::AzureAccount, ) -> Result< - ResponseContent>, - Error, + datadog::ResponseContent>, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.update_azure_integration"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/azure", @@ -497,27 +739,85 @@ impl AzureIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -529,23 +829,23 @@ impl AzureIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV1/api/api_dashboard_lists.rs b/src/datadogV1/api/api_dashboard_lists.rs index cd54785a7..8995ac32c 100644 --- a/src/datadogV1/api/api_dashboard_lists.rs +++ b/src/datadogV1/api/api_dashboard_lists.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// CreateDashboardListError is a struct for typed errors of method [`DashboardListsAPI::create_dashboard_list`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -57,14 +62,13 @@ pub enum UpdateDashboardListError { #[derive(Debug, Clone)] pub struct DashboardListsAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for DashboardListsAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -72,21 +76,66 @@ impl DashboardListsAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create an empty dashboard list. pub async fn create_dashboard_list( &self, body: crate::datadogV1::model::DashboardList, - ) -> Result> { + ) -> Result> + { match self.create_dashboard_list_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -100,13 +149,13 @@ impl DashboardListsAPI { &self, body: crate::datadogV1::model::DashboardList, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.create_dashboard_list"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/dashboard/lists/manual", @@ -115,27 +164,85 @@ impl DashboardListsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -145,23 +252,23 @@ impl DashboardListsAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -169,14 +276,16 @@ impl DashboardListsAPI { pub async fn delete_dashboard_list( &self, list_id: i64, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::DashboardListDeleteResponse, + datadog::Error, + > { match self.delete_dashboard_list_with_http_info(list_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -190,13 +299,13 @@ impl DashboardListsAPI { &self, list_id: i64, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.delete_dashboard_list"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/dashboard/lists/manual/{list_id}", @@ -206,20 +315,39 @@ impl DashboardListsAPI { let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -231,23 +359,23 @@ impl DashboardListsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -255,13 +383,13 @@ impl DashboardListsAPI { pub async fn get_dashboard_list( &self, list_id: i64, - ) -> Result> { + ) -> Result> { match self.get_dashboard_list_with_http_info(list_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -274,12 +402,14 @@ impl DashboardListsAPI { pub async fn get_dashboard_list_with_http_info( &self, list_id: i64, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.get_dashboard_list"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/dashboard/lists/manual/{list_id}", @@ -289,20 +419,39 @@ impl DashboardListsAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -312,37 +461,39 @@ impl DashboardListsAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Fetch all of your existing dashboard list definitions. pub async fn list_dashboard_lists( &self, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::DashboardListListResponse, + datadog::Error, + > { match self.list_dashboard_lists_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -355,13 +506,13 @@ impl DashboardListsAPI { pub async fn list_dashboard_lists_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.list_dashboard_lists"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/dashboard/lists/manual", @@ -370,20 +521,39 @@ impl DashboardListsAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -395,23 +565,23 @@ impl DashboardListsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -420,7 +590,8 @@ impl DashboardListsAPI { &self, list_id: i64, body: crate::datadogV1::model::DashboardList, - ) -> Result> { + ) -> Result> + { match self .update_dashboard_list_with_http_info(list_id, body) .await @@ -429,7 +600,7 @@ impl DashboardListsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -444,13 +615,13 @@ impl DashboardListsAPI { list_id: i64, body: crate::datadogV1::model::DashboardList, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.update_dashboard_list"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/dashboard/lists/manual/{list_id}", @@ -460,27 +631,85 @@ impl DashboardListsAPI { let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -490,23 +719,23 @@ impl DashboardListsAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV1/api/api_dashboards.rs b/src/datadogV1/api/api_dashboards.rs index 2208d3858..1e3c9b311 100644 --- a/src/datadogV1/api/api_dashboards.rs +++ b/src/datadogV1/api/api_dashboards.rs @@ -1,11 +1,16 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; +use crate::datadog; use async_stream::try_stream; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; use futures_core::stream::Stream; -use reqwest; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// GetPublicDashboardInvitationsOptionalParams is a struct for passing parameters to the method [`DashboardsAPI::get_public_dashboard_invitations`] #[non_exhaustive] @@ -218,14 +223,13 @@ pub enum UpdatePublicDashboardError { #[derive(Debug, Clone)] pub struct DashboardsAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for DashboardsAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -233,8 +237,52 @@ impl DashboardsAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create a dashboard using the specified options. When defining queries in your widgets, take note of which queries should have the `as_count()` or `as_rate()` modifiers appended. @@ -242,13 +290,13 @@ impl DashboardsAPI { pub async fn create_dashboard( &self, body: crate::datadogV1::model::Dashboard, - ) -> Result> { + ) -> Result> { match self.create_dashboard_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -262,12 +310,14 @@ impl DashboardsAPI { pub async fn create_dashboard_with_http_info( &self, body: crate::datadogV1::model::Dashboard, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.create_dashboard"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/dashboard", @@ -276,27 +326,85 @@ impl DashboardsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -306,23 +414,23 @@ impl DashboardsAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -330,13 +438,14 @@ impl DashboardsAPI { pub async fn create_public_dashboard( &self, body: crate::datadogV1::model::SharedDashboard, - ) -> Result> { + ) -> Result> + { match self.create_public_dashboard_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -350,13 +459,13 @@ impl DashboardsAPI { &self, body: crate::datadogV1::model::SharedDashboard, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.create_public_dashboard"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/dashboard/public", @@ -365,27 +474,85 @@ impl DashboardsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -395,23 +562,23 @@ impl DashboardsAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -419,13 +586,16 @@ impl DashboardsAPI { pub async fn delete_dashboard( &self, dashboard_id: String, - ) -> Result> { + ) -> Result< + crate::datadogV1::model::DashboardDeleteResponse, + datadog::Error, + > { match self.delete_dashboard_with_http_info(dashboard_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -439,36 +609,55 @@ impl DashboardsAPI { &self, dashboard_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.delete_dashboard"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/dashboard/{dashboard_id}", local_configuration.get_operation_host(operation_id), - dashboard_id = urlencode(dashboard_id) + dashboard_id = datadog::urlencode(dashboard_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -480,23 +669,23 @@ impl DashboardsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -504,7 +693,7 @@ impl DashboardsAPI { pub async fn delete_dashboards( &self, body: crate::datadogV1::model::DashboardBulkDeleteRequest, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self.delete_dashboards_with_http_info(body).await { Ok(_) => Ok(()), Err(err) => Err(err), @@ -515,11 +704,11 @@ impl DashboardsAPI { pub async fn delete_dashboards_with_http_info( &self, body: crate::datadogV1::model::DashboardBulkDeleteRequest, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v1.delete_dashboards"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/dashboard", @@ -528,27 +717,85 @@ impl DashboardsAPI { let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -556,7 +803,7 @@ impl DashboardsAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -564,12 +811,12 @@ impl DashboardsAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -579,14 +826,14 @@ impl DashboardsAPI { token: String, ) -> Result< crate::datadogV1::model::DeleteSharedDashboardResponse, - Error, + datadog::Error, > { match self.delete_public_dashboard_with_http_info(token).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -600,36 +847,55 @@ impl DashboardsAPI { &self, token: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.delete_public_dashboard"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/dashboard/public/{token}", local_configuration.get_operation_host(operation_id), - token = urlencode(token) + token = datadog::urlencode(token) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -641,23 +907,23 @@ impl DashboardsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -666,7 +932,7 @@ impl DashboardsAPI { &self, token: String, body: crate::datadogV1::model::SharedDashboardInvites, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .delete_public_dashboard_invitation_with_http_info(token, body) .await @@ -681,41 +947,100 @@ impl DashboardsAPI { &self, token: String, body: crate::datadogV1::model::SharedDashboardInvites, - ) -> Result, Error> { + ) -> Result, datadog::Error> + { let local_configuration = &self.config; let operation_id = "v1.delete_public_dashboard_invitation"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/dashboard/public/{token}/invitation", local_configuration.get_operation_host(operation_id), - token = urlencode(token) + token = datadog::urlencode(token) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -723,7 +1048,7 @@ impl DashboardsAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -731,12 +1056,12 @@ impl DashboardsAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -744,13 +1069,13 @@ impl DashboardsAPI { pub async fn get_dashboard( &self, dashboard_id: String, - ) -> Result> { + ) -> Result> { match self.get_dashboard_with_http_info(dashboard_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -763,34 +1088,56 @@ impl DashboardsAPI { pub async fn get_dashboard_with_http_info( &self, dashboard_id: String, - ) -> Result, Error> { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.get_dashboard"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/dashboard/{dashboard_id}", local_configuration.get_operation_host(operation_id), - dashboard_id = urlencode(dashboard_id) + dashboard_id = datadog::urlencode(dashboard_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -800,22 +1147,22 @@ impl DashboardsAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -823,13 +1170,14 @@ impl DashboardsAPI { pub async fn get_public_dashboard( &self, token: String, - ) -> Result> { + ) -> Result> + { match self.get_public_dashboard_with_http_info(token).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -843,36 +1191,55 @@ impl DashboardsAPI { &self, token: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_public_dashboard"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/dashboard/public/{token}", local_configuration.get_operation_host(operation_id), - token = urlencode(token) + token = datadog::urlencode(token) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -882,23 +1249,23 @@ impl DashboardsAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -909,7 +1276,7 @@ impl DashboardsAPI { params: GetPublicDashboardInvitationsOptionalParams, ) -> Result< crate::datadogV1::model::SharedDashboardInvites, - Error, + datadog::Error, > { match self .get_public_dashboard_invitations_with_http_info(token, params) @@ -919,7 +1286,7 @@ impl DashboardsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -934,8 +1301,8 @@ impl DashboardsAPI { token: String, params: GetPublicDashboardInvitationsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_public_dashboard_invitations"; @@ -944,12 +1311,12 @@ impl DashboardsAPI { let page_size = params.page_size; let page_number = params.page_number; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/dashboard/public/{token}/invitation", local_configuration.get_operation_host(operation_id), - token = urlencode(token) + token = datadog::urlencode(token) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); @@ -963,20 +1330,39 @@ impl DashboardsAPI { local_req_builder.query(&[("page_number", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -988,23 +1374,23 @@ impl DashboardsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1015,13 +1401,14 @@ impl DashboardsAPI { pub async fn list_dashboards( &self, params: ListDashboardsOptionalParams, - ) -> Result> { + ) -> Result> + { match self.list_dashboards_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1036,7 +1423,7 @@ impl DashboardsAPI { ) -> impl Stream< Item = Result< crate::datadogV1::model::DashboardSummaryDefinition, - Error, + datadog::Error, >, > + '_ { try_stream! { @@ -1076,8 +1463,8 @@ impl DashboardsAPI { &self, params: ListDashboardsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.list_dashboards"; @@ -1088,7 +1475,7 @@ impl DashboardsAPI { let count = params.count; let start = params.start; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/dashboard", @@ -1114,20 +1501,39 @@ impl DashboardsAPI { local_req_builder.query(&[("start", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1138,23 +1544,23 @@ impl DashboardsAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1162,7 +1568,7 @@ impl DashboardsAPI { pub async fn restore_dashboards( &self, body: crate::datadogV1::model::DashboardRestoreRequest, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self.restore_dashboards_with_http_info(body).await { Ok(_) => Ok(()), Err(err) => Err(err), @@ -1173,11 +1579,11 @@ impl DashboardsAPI { pub async fn restore_dashboards_with_http_info( &self, body: crate::datadogV1::model::DashboardRestoreRequest, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v1.restore_dashboards"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/dashboard", @@ -1186,27 +1592,85 @@ impl DashboardsAPI { let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1214,7 +1678,7 @@ impl DashboardsAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -1222,12 +1686,12 @@ impl DashboardsAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1238,7 +1702,7 @@ impl DashboardsAPI { body: crate::datadogV1::model::SharedDashboardInvites, ) -> Result< crate::datadogV1::model::SharedDashboardInvites, - Error, + datadog::Error, > { match self .send_public_dashboard_invitation_with_http_info(token, body) @@ -1248,7 +1712,7 @@ impl DashboardsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1263,43 +1727,101 @@ impl DashboardsAPI { token: String, body: crate::datadogV1::model::SharedDashboardInvites, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.send_public_dashboard_invitation"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/dashboard/public/{token}/invitation", local_configuration.get_operation_host(operation_id), - token = urlencode(token) + token = datadog::urlencode(token) ); let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1311,23 +1833,23 @@ impl DashboardsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1336,7 +1858,7 @@ impl DashboardsAPI { &self, dashboard_id: String, body: crate::datadogV1::model::Dashboard, - ) -> Result> { + ) -> Result> { match self .update_dashboard_with_http_info(dashboard_id, body) .await @@ -1345,7 +1867,7 @@ impl DashboardsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1359,42 +1881,102 @@ impl DashboardsAPI { &self, dashboard_id: String, body: crate::datadogV1::model::Dashboard, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.update_dashboard"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/dashboard/{dashboard_id}", local_configuration.get_operation_host(operation_id), - dashboard_id = urlencode(dashboard_id) + dashboard_id = datadog::urlencode(dashboard_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1404,23 +1986,23 @@ impl DashboardsAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1429,7 +2011,8 @@ impl DashboardsAPI { &self, token: String, body: crate::datadogV1::model::SharedDashboardUpdateRequest, - ) -> Result> { + ) -> Result> + { match self .update_public_dashboard_with_http_info(token, body) .await @@ -1438,7 +2021,7 @@ impl DashboardsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1453,43 +2036,101 @@ impl DashboardsAPI { token: String, body: crate::datadogV1::model::SharedDashboardUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.update_public_dashboard"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/dashboard/public/{token}", local_configuration.get_operation_host(operation_id), - token = urlencode(token) + token = datadog::urlencode(token) ); let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1499,23 +2140,23 @@ impl DashboardsAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV1/api/api_downtimes.rs b/src/datadogV1/api/api_downtimes.rs index bb1be075d..a926e66eb 100644 --- a/src/datadogV1/api/api_downtimes.rs +++ b/src/datadogV1/api/api_downtimes.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// ListDowntimesOptionalParams is a struct for passing parameters to the method [`DowntimesAPI::list_downtimes`] #[non_exhaustive] @@ -101,14 +106,13 @@ pub enum UpdateDowntimeError { #[derive(Debug, Clone)] pub struct DowntimesAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for DowntimesAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -116,15 +120,59 @@ impl DowntimesAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Cancel a downtime. **Note:** This endpoint has been deprecated. Please use v2 endpoints. pub async fn cancel_downtime( &self, downtime_id: i64, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self.cancel_downtime_with_http_info(downtime_id).await { Ok(_) => Ok(()), Err(err) => Err(err), @@ -135,11 +183,11 @@ impl DowntimesAPI { pub async fn cancel_downtime_with_http_info( &self, downtime_id: i64, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v1.cancel_downtime"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/downtime/{downtime_id}", @@ -149,20 +197,39 @@ impl DowntimesAPI { let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -170,7 +237,7 @@ impl DowntimesAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -178,12 +245,12 @@ impl DowntimesAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -191,14 +258,16 @@ impl DowntimesAPI { pub async fn cancel_downtimes_by_scope( &self, body: crate::datadogV1::model::CancelDowntimesByScopeRequest, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::CanceledDowntimesIds, + datadog::Error, + > { match self.cancel_downtimes_by_scope_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -212,13 +281,13 @@ impl DowntimesAPI { &self, body: crate::datadogV1::model::CancelDowntimesByScopeRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.cancel_downtimes_by_scope"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/downtime/cancel/by_scope", @@ -227,27 +296,85 @@ impl DowntimesAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -259,23 +386,23 @@ impl DowntimesAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -283,13 +410,13 @@ impl DowntimesAPI { pub async fn create_downtime( &self, body: crate::datadogV1::model::Downtime, - ) -> Result> { + ) -> Result> { match self.create_downtime_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -302,12 +429,14 @@ impl DowntimesAPI { pub async fn create_downtime_with_http_info( &self, body: crate::datadogV1::model::Downtime, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.create_downtime"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/downtime", @@ -316,27 +445,85 @@ impl DowntimesAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -346,23 +533,23 @@ impl DowntimesAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -370,13 +557,13 @@ impl DowntimesAPI { pub async fn get_downtime( &self, downtime_id: i64, - ) -> Result> { + ) -> Result> { match self.get_downtime_with_http_info(downtime_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -389,11 +576,14 @@ impl DowntimesAPI { pub async fn get_downtime_with_http_info( &self, downtime_id: i64, - ) -> Result, Error> { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.get_downtime"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/downtime/{downtime_id}", @@ -403,20 +593,39 @@ impl DowntimesAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -426,22 +635,22 @@ impl DowntimesAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -449,13 +658,13 @@ impl DowntimesAPI { pub async fn list_downtimes( &self, params: ListDowntimesOptionalParams, - ) -> Result, Error> { + ) -> Result, datadog::Error> { match self.list_downtimes_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -468,8 +677,10 @@ impl DowntimesAPI { pub async fn list_downtimes_with_http_info( &self, params: ListDowntimesOptionalParams, - ) -> Result>, Error> - { + ) -> Result< + datadog::ResponseContent>, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.list_downtimes"; @@ -477,7 +688,7 @@ impl DowntimesAPI { let current_only = params.current_only; let with_creator = params.with_creator; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/downtime", @@ -495,20 +706,39 @@ impl DowntimesAPI { local_req_builder.query(&[("with_creator", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -518,23 +748,23 @@ impl DowntimesAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::>(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -542,13 +772,14 @@ impl DowntimesAPI { pub async fn list_monitor_downtimes( &self, monitor_id: i64, - ) -> Result, Error> { + ) -> Result, datadog::Error> + { match self.list_monitor_downtimes_with_http_info(monitor_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -562,13 +793,13 @@ impl DowntimesAPI { &self, monitor_id: i64, ) -> Result< - ResponseContent>, - Error, + datadog::ResponseContent>, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.list_monitor_downtimes"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/monitor/{monitor_id}/downtimes", @@ -578,20 +809,39 @@ impl DowntimesAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -601,23 +851,23 @@ impl DowntimesAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::>(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -626,13 +876,13 @@ impl DowntimesAPI { &self, downtime_id: i64, body: crate::datadogV1::model::Downtime, - ) -> Result> { + ) -> Result> { match self.update_downtime_with_http_info(downtime_id, body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -646,12 +896,14 @@ impl DowntimesAPI { &self, downtime_id: i64, body: crate::datadogV1::model::Downtime, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.update_downtime"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/downtime/{downtime_id}", @@ -661,27 +913,85 @@ impl DowntimesAPI { let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -691,23 +1001,23 @@ impl DowntimesAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV1/api/api_events.rs b/src/datadogV1/api/api_events.rs index fb929c778..c4cb52bce 100644 --- a/src/datadogV1/api/api_events.rs +++ b/src/datadogV1/api/api_events.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// ListEventsOptionalParams is a struct for passing parameters to the method [`EventsAPI::list_events`] #[non_exhaustive] @@ -95,14 +100,13 @@ pub enum ListEventsError { #[derive(Debug, Clone)] pub struct EventsAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for EventsAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -110,8 +114,52 @@ impl EventsAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// This endpoint allows you to post events to the stream. @@ -119,13 +167,14 @@ impl EventsAPI { pub async fn create_event( &self, body: crate::datadogV1::model::EventCreateRequest, - ) -> Result> { + ) -> Result> + { match self.create_event_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -140,13 +189,13 @@ impl EventsAPI { &self, body: crate::datadogV1::model::EventCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.create_event"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/events", @@ -155,24 +204,78 @@ impl EventsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -184,22 +287,22 @@ impl EventsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -210,13 +313,13 @@ impl EventsAPI { pub async fn get_event( &self, event_id: i64, - ) -> Result> { + ) -> Result> { match self.get_event_with_http_info(event_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -232,11 +335,14 @@ impl EventsAPI { pub async fn get_event_with_http_info( &self, event_id: i64, - ) -> Result, Error> { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.get_event"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/events/{event_id}", @@ -246,20 +352,39 @@ impl EventsAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -269,22 +394,22 @@ impl EventsAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -302,13 +427,13 @@ impl EventsAPI { start: i64, end: i64, params: ListEventsOptionalParams, - ) -> Result> { + ) -> Result> { match self.list_events_with_http_info(start, end, params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -331,8 +456,10 @@ impl EventsAPI { start: i64, end: i64, params: ListEventsOptionalParams, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.list_events"; @@ -344,7 +471,7 @@ impl EventsAPI { let exclude_aggregate = params.exclude_aggregate; let page = params.page; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/events", @@ -380,20 +507,39 @@ impl EventsAPI { local_req_builder.query(&[("page", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -404,22 +550,22 @@ impl EventsAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV1/api/api_gcp_integration.rs b/src/datadogV1/api/api_gcp_integration.rs index e67900da7..38dcfe81c 100644 --- a/src/datadogV1/api/api_gcp_integration.rs +++ b/src/datadogV1/api/api_gcp_integration.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// CreateGCPIntegrationError is a struct for typed errors of method [`GCPIntegrationAPI::create_gcp_integration`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -47,14 +52,13 @@ pub enum UpdateGCPIntegrationError { #[derive(Debug, Clone)] pub struct GCPIntegrationAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for GCPIntegrationAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -62,8 +66,52 @@ impl GCPIntegrationAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// This endpoint is deprecated – use the V2 endpoints instead. Create a Datadog-GCP integration. @@ -72,14 +120,14 @@ impl GCPIntegrationAPI { body: crate::datadogV1::model::GCPAccount, ) -> Result< std::collections::BTreeMap, - Error, + datadog::Error, > { match self.create_gcp_integration_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -93,13 +141,13 @@ impl GCPIntegrationAPI { &self, body: crate::datadogV1::model::GCPAccount, ) -> Result< - ResponseContent>, - Error, + datadog::ResponseContent>, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.create_gcp_integration"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/gcp", @@ -108,27 +156,85 @@ impl GCPIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -140,23 +246,23 @@ impl GCPIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -166,14 +272,14 @@ impl GCPIntegrationAPI { body: crate::datadogV1::model::GCPAccount, ) -> Result< std::collections::BTreeMap, - Error, + datadog::Error, > { match self.delete_gcp_integration_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -187,13 +293,13 @@ impl GCPIntegrationAPI { &self, body: crate::datadogV1::model::GCPAccount, ) -> Result< - ResponseContent>, - Error, + datadog::ResponseContent>, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.delete_gcp_integration"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/gcp", @@ -202,27 +308,85 @@ impl GCPIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -234,36 +398,37 @@ impl GCPIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// This endpoint is deprecated – use the V2 endpoints instead. List all Datadog-GCP integrations configured in your Datadog account. pub async fn list_gcp_integration( &self, - ) -> Result, Error> { + ) -> Result, datadog::Error> + { match self.list_gcp_integration_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -276,13 +441,13 @@ impl GCPIntegrationAPI { pub async fn list_gcp_integration_with_http_info( &self, ) -> Result< - ResponseContent>, - Error, + datadog::ResponseContent>, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.list_gcp_integration"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/gcp", @@ -291,20 +456,39 @@ impl GCPIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -314,23 +498,23 @@ impl GCPIntegrationAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::>(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -343,14 +527,14 @@ impl GCPIntegrationAPI { body: crate::datadogV1::model::GCPAccount, ) -> Result< std::collections::BTreeMap, - Error, + datadog::Error, > { match self.update_gcp_integration_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -367,13 +551,13 @@ impl GCPIntegrationAPI { &self, body: crate::datadogV1::model::GCPAccount, ) -> Result< - ResponseContent>, - Error, + datadog::ResponseContent>, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.update_gcp_integration"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/gcp", @@ -382,27 +566,85 @@ impl GCPIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -414,23 +656,23 @@ impl GCPIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV1/api/api_hosts.rs b/src/datadogV1/api/api_hosts.rs index b78945cd1..99160cd37 100644 --- a/src/datadogV1/api/api_hosts.rs +++ b/src/datadogV1/api/api_hosts.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// GetHostTotalsOptionalParams is a struct for passing parameters to the method [`HostsAPI::get_host_totals`] #[non_exhaustive] @@ -128,14 +133,13 @@ pub enum UnmuteHostError { #[derive(Debug, Clone)] pub struct HostsAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for HostsAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -143,8 +147,52 @@ impl HostsAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// This endpoint returns the total number of active and up hosts in your Datadog account. @@ -152,13 +200,13 @@ impl HostsAPI { pub async fn get_host_totals( &self, params: GetHostTotalsOptionalParams, - ) -> Result> { + ) -> Result> { match self.get_host_totals_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -172,15 +220,17 @@ impl HostsAPI { pub async fn get_host_totals_with_http_info( &self, params: GetHostTotalsOptionalParams, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.get_host_totals"; // unbox and build optional parameters let from = params.from; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/hosts/totals", @@ -194,20 +244,39 @@ impl HostsAPI { local_req_builder.query(&[("from", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -217,23 +286,23 @@ impl HostsAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -244,13 +313,13 @@ impl HostsAPI { pub async fn list_hosts( &self, params: ListHostsOptionalParams, - ) -> Result> { + ) -> Result> { match self.list_hosts_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -266,8 +335,10 @@ impl HostsAPI { pub async fn list_hosts_with_http_info( &self, params: ListHostsOptionalParams, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.list_hosts"; @@ -281,7 +352,7 @@ impl HostsAPI { let include_muted_hosts_data = params.include_muted_hosts_data; let include_hosts_metadata = params.include_hosts_metadata; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/hosts", @@ -323,20 +394,39 @@ impl HostsAPI { .query(&[("include_hosts_metadata", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -347,22 +437,22 @@ impl HostsAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -371,13 +461,13 @@ impl HostsAPI { &self, host_name: String, body: crate::datadogV1::model::HostMuteSettings, - ) -> Result> { + ) -> Result> { match self.mute_host_with_http_info(host_name, body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -391,42 +481,102 @@ impl HostsAPI { &self, host_name: String, body: crate::datadogV1::model::HostMuteSettings, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.mute_host"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/host/{host_name}/mute", local_configuration.get_operation_host(operation_id), - host_name = urlencode(host_name) + host_name = datadog::urlencode(host_name) ); let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -437,22 +587,22 @@ impl HostsAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -460,13 +610,13 @@ impl HostsAPI { pub async fn unmute_host( &self, host_name: String, - ) -> Result> { + ) -> Result> { match self.unmute_host_with_http_info(host_name).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -479,35 +629,56 @@ impl HostsAPI { pub async fn unmute_host_with_http_info( &self, host_name: String, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.unmute_host"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/host/{host_name}/unmute", local_configuration.get_operation_host(operation_id), - host_name = urlencode(host_name) + host_name = datadog::urlencode(host_name) ); let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -518,22 +689,22 @@ impl HostsAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV1/api/api_ip_ranges.rs b/src/datadogV1/api/api_ip_ranges.rs index efac8fdae..7098df756 100644 --- a/src/datadogV1/api/api_ip_ranges.rs +++ b/src/datadogV1/api/api_ip_ranges.rs @@ -1,8 +1,8 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; /// GetIPRangesError is a struct for typed errors of method [`IPRangesAPI::get_ip_ranges`] @@ -15,14 +15,13 @@ pub enum GetIPRangesError { #[derive(Debug, Clone)] pub struct IPRangesAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for IPRangesAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -30,20 +29,64 @@ impl IPRangesAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Get information about Datadog IP ranges. pub async fn get_ip_ranges( &self, - ) -> Result> { + ) -> Result> { match self.get_ip_ranges_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -55,24 +98,38 @@ impl IPRangesAPI { /// Get information about Datadog IP ranges. pub async fn get_ip_ranges_with_http_info( &self, - ) -> Result, Error> { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.get_ip_ranges"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!("{}/", local_configuration.get_operation_host(operation_id)); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -82,22 +139,22 @@ impl IPRangesAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV1/api/api_key_management.rs b/src/datadogV1/api/api_key_management.rs index 6d764a406..9d21b6de9 100644 --- a/src/datadogV1/api/api_key_management.rs +++ b/src/datadogV1/api/api_key_management.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// CreateAPIKeyError is a struct for typed errors of method [`KeyManagementAPI::create_api_key`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -110,14 +115,13 @@ pub enum UpdateApplicationKeyError { #[derive(Debug, Clone)] pub struct KeyManagementAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for KeyManagementAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -125,21 +129,65 @@ impl KeyManagementAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Creates an API key with a given name. pub async fn create_api_key( &self, body: crate::datadogV1::model::ApiKey, - ) -> Result> { + ) -> Result> { match self.create_api_key_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -152,12 +200,14 @@ impl KeyManagementAPI { pub async fn create_api_key_with_http_info( &self, body: crate::datadogV1::model::ApiKey, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.create_api_key"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/api_key", @@ -166,27 +216,85 @@ impl KeyManagementAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -196,22 +304,22 @@ impl KeyManagementAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -219,14 +327,16 @@ impl KeyManagementAPI { pub async fn create_application_key( &self, body: crate::datadogV1::model::ApplicationKey, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::ApplicationKeyResponse, + datadog::Error, + > { match self.create_application_key_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -240,13 +350,13 @@ impl KeyManagementAPI { &self, body: crate::datadogV1::model::ApplicationKey, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.create_application_key"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/application_key", @@ -255,27 +365,85 @@ impl KeyManagementAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -287,23 +455,23 @@ impl KeyManagementAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -311,13 +479,13 @@ impl KeyManagementAPI { pub async fn delete_api_key( &self, key: String, - ) -> Result> { + ) -> Result> { match self.delete_api_key_with_http_info(key).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -330,35 +498,56 @@ impl KeyManagementAPI { pub async fn delete_api_key_with_http_info( &self, key: String, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.delete_api_key"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/api_key/{key}", local_configuration.get_operation_host(operation_id), - key = urlencode(key) + key = datadog::urlencode(key) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -368,22 +557,22 @@ impl KeyManagementAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -391,14 +580,16 @@ impl KeyManagementAPI { pub async fn delete_application_key( &self, key: String, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::ApplicationKeyResponse, + datadog::Error, + > { match self.delete_application_key_with_http_info(key).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -412,36 +603,55 @@ impl KeyManagementAPI { &self, key: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.delete_application_key"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/application_key/{key}", local_configuration.get_operation_host(operation_id), - key = urlencode(key) + key = datadog::urlencode(key) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -453,23 +663,23 @@ impl KeyManagementAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -477,13 +687,13 @@ impl KeyManagementAPI { pub async fn get_api_key( &self, key: String, - ) -> Result> { + ) -> Result> { match self.get_api_key_with_http_info(key).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -496,35 +706,56 @@ impl KeyManagementAPI { pub async fn get_api_key_with_http_info( &self, key: String, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.get_api_key"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/api_key/{key}", local_configuration.get_operation_host(operation_id), - key = urlencode(key) + key = datadog::urlencode(key) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -534,22 +765,22 @@ impl KeyManagementAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -557,14 +788,16 @@ impl KeyManagementAPI { pub async fn get_application_key( &self, key: String, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::ApplicationKeyResponse, + datadog::Error, + > { match self.get_application_key_with_http_info(key).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -578,36 +811,55 @@ impl KeyManagementAPI { &self, key: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_application_key"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/application_key/{key}", local_configuration.get_operation_host(operation_id), - key = urlencode(key) + key = datadog::urlencode(key) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -619,36 +871,36 @@ impl KeyManagementAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get all API keys available for your account. pub async fn list_api_keys( &self, - ) -> Result> { + ) -> Result> { match self.list_api_keys_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -660,12 +912,14 @@ impl KeyManagementAPI { /// Get all API keys available for your account. pub async fn list_api_keys_with_http_info( &self, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.list_api_keys"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/api_key", @@ -674,20 +928,39 @@ impl KeyManagementAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -699,36 +972,38 @@ impl KeyManagementAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get all application keys available for your Datadog account. pub async fn list_application_keys( &self, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::ApplicationKeyListResponse, + datadog::Error, + > { match self.list_application_keys_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -741,13 +1016,13 @@ impl KeyManagementAPI { pub async fn list_application_keys_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.list_application_keys"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/application_key", @@ -756,20 +1031,39 @@ impl KeyManagementAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -781,23 +1075,23 @@ impl KeyManagementAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -806,13 +1100,13 @@ impl KeyManagementAPI { &self, key: String, body: crate::datadogV1::model::ApiKey, - ) -> Result> { + ) -> Result> { match self.update_api_key_with_http_info(key, body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -826,42 +1120,102 @@ impl KeyManagementAPI { &self, key: String, body: crate::datadogV1::model::ApiKey, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.update_api_key"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/api_key/{key}", local_configuration.get_operation_host(operation_id), - key = urlencode(key) + key = datadog::urlencode(key) ); let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -871,22 +1225,22 @@ impl KeyManagementAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -895,14 +1249,16 @@ impl KeyManagementAPI { &self, key: String, body: crate::datadogV1::model::ApplicationKey, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::ApplicationKeyResponse, + datadog::Error, + > { match self.update_application_key_with_http_info(key, body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -917,43 +1273,101 @@ impl KeyManagementAPI { key: String, body: crate::datadogV1::model::ApplicationKey, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.update_application_key"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/application_key/{key}", local_configuration.get_operation_host(operation_id), - key = urlencode(key) + key = datadog::urlencode(key) ); let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -965,23 +1379,23 @@ impl KeyManagementAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV1/api/api_logs.rs b/src/datadogV1/api/api_logs.rs index 51dac4e12..7e82f6b5a 100644 --- a/src/datadogV1/api/api_logs.rs +++ b/src/datadogV1/api/api_logs.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// SubmitLogOptionalParams is a struct for passing parameters to the method [`LogsAPI::submit_log`] #[non_exhaustive] @@ -49,14 +54,13 @@ pub enum SubmitLogError { #[derive(Debug, Clone)] pub struct LogsAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for LogsAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -64,8 +68,52 @@ impl LogsAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// List endpoint returns logs that match a log search query. @@ -80,13 +128,13 @@ impl LogsAPI { pub async fn list_logs( &self, body: crate::datadogV1::model::LogsListRequest, - ) -> Result> { + ) -> Result> { match self.list_logs_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -107,12 +155,14 @@ impl LogsAPI { pub async fn list_logs_with_http_info( &self, body: crate::datadogV1::model::LogsListRequest, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.list_logs"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/logs-queries/list", @@ -121,27 +171,85 @@ impl LogsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -152,22 +260,22 @@ impl LogsAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -194,13 +302,14 @@ impl LogsAPI { &self, body: Vec, params: SubmitLogOptionalParams, - ) -> Result, Error> { + ) -> Result, datadog::Error> + { match self.submit_log_with_http_info(body, params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -233,8 +342,8 @@ impl LogsAPI { body: Vec, params: SubmitLogOptionalParams, ) -> Result< - ResponseContent>, - Error, + datadog::ResponseContent>, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.submit_log"; @@ -243,7 +352,7 @@ impl LogsAPI { let content_encoding = params.content_encoding; let ddtags = params.ddtags; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/v1/input", @@ -257,28 +366,88 @@ impl LogsAPI { local_req_builder.query(&[("ddtags", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + if let Some(ref local) = content_encoding { - local_req_builder = local_req_builder.header("Content-Encoding", &local.to_string()); - }; + headers.insert( + "Content-Encoding", + local + .to_string() + .parse() + .expect("failed to parse Content-Encoding header"), + ); + } // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -290,22 +459,22 @@ impl LogsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV1/api/api_logs_indexes.rs b/src/datadogV1/api/api_logs_indexes.rs index c31480827..698faa681 100644 --- a/src/datadogV1/api/api_logs_indexes.rs +++ b/src/datadogV1/api/api_logs_indexes.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// CreateLogsIndexError is a struct for typed errors of method [`LogsIndexesAPI::create_logs_index`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -65,14 +70,13 @@ pub enum UpdateLogsIndexOrderError { #[derive(Debug, Clone)] pub struct LogsIndexesAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for LogsIndexesAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -80,21 +84,65 @@ impl LogsIndexesAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Creates a new index. Returns the Index object passed in the request body when the request is successful. pub async fn create_logs_index( &self, body: crate::datadogV1::model::LogsIndex, - ) -> Result> { + ) -> Result> { match self.create_logs_index_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -107,12 +155,14 @@ impl LogsIndexesAPI { pub async fn create_logs_index_with_http_info( &self, body: crate::datadogV1::model::LogsIndex, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.create_logs_index"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/logs/config/indexes", @@ -121,27 +171,85 @@ impl LogsIndexesAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -151,23 +259,23 @@ impl LogsIndexesAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -175,13 +283,13 @@ impl LogsIndexesAPI { pub async fn get_logs_index( &self, name: String, - ) -> Result> { + ) -> Result> { match self.get_logs_index_with_http_info(name).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -194,34 +302,56 @@ impl LogsIndexesAPI { pub async fn get_logs_index_with_http_info( &self, name: String, - ) -> Result, Error> { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.get_logs_index"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/logs/config/indexes/{name}", local_configuration.get_operation_host(operation_id), - name = urlencode(name) + name = datadog::urlencode(name) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -231,35 +361,36 @@ impl LogsIndexesAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get the current order of your log indexes. This endpoint takes no JSON arguments. pub async fn get_logs_index_order( &self, - ) -> Result> { + ) -> Result> + { match self.get_logs_index_order_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -272,13 +403,13 @@ impl LogsIndexesAPI { pub async fn get_logs_index_order_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_logs_index_order"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/logs/config/index-order", @@ -287,20 +418,39 @@ impl LogsIndexesAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -311,23 +461,23 @@ impl LogsIndexesAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -335,13 +485,14 @@ impl LogsIndexesAPI { /// This endpoint returns an array of the `LogIndex` objects of your organization. pub async fn list_log_indexes( &self, - ) -> Result> { + ) -> Result> + { match self.list_log_indexes_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -355,13 +506,13 @@ impl LogsIndexesAPI { pub async fn list_log_indexes_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.list_log_indexes"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/logs/config/indexes", @@ -370,20 +521,39 @@ impl LogsIndexesAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -395,23 +565,23 @@ impl LogsIndexesAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -424,13 +594,13 @@ impl LogsIndexesAPI { &self, name: String, body: crate::datadogV1::model::LogsIndexUpdateRequest, - ) -> Result> { + ) -> Result> { match self.update_logs_index_with_http_info(name, body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -448,42 +618,102 @@ impl LogsIndexesAPI { &self, name: String, body: crate::datadogV1::model::LogsIndexUpdateRequest, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.update_logs_index"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/logs/config/indexes/{name}", local_configuration.get_operation_host(operation_id), - name = urlencode(name) + name = datadog::urlencode(name) ); let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -493,23 +723,23 @@ impl LogsIndexesAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -518,13 +748,14 @@ impl LogsIndexesAPI { pub async fn update_logs_index_order( &self, body: crate::datadogV1::model::LogsIndexesOrder, - ) -> Result> { + ) -> Result> + { match self.update_logs_index_order_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -539,13 +770,13 @@ impl LogsIndexesAPI { &self, body: crate::datadogV1::model::LogsIndexesOrder, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.update_logs_index_order"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/logs/config/index-order", @@ -554,27 +785,85 @@ impl LogsIndexesAPI { let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -585,23 +874,23 @@ impl LogsIndexesAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV1/api/api_logs_pipelines.rs b/src/datadogV1/api/api_logs_pipelines.rs index 609b90b2b..32d3b48d4 100644 --- a/src/datadogV1/api/api_logs_pipelines.rs +++ b/src/datadogV1/api/api_logs_pipelines.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// CreateLogsPipelineError is a struct for typed errors of method [`LogsPipelinesAPI::create_logs_pipeline`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -76,14 +81,13 @@ pub enum UpdateLogsPipelineOrderError { #[derive(Debug, Clone)] pub struct LogsPipelinesAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for LogsPipelinesAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -91,21 +95,66 @@ impl LogsPipelinesAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create a pipeline in your organization. pub async fn create_logs_pipeline( &self, body: crate::datadogV1::model::LogsPipeline, - ) -> Result> { + ) -> Result> + { match self.create_logs_pipeline_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -119,13 +168,13 @@ impl LogsPipelinesAPI { &self, body: crate::datadogV1::model::LogsPipeline, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.create_logs_pipeline"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/logs/config/pipelines", @@ -134,27 +183,85 @@ impl LogsPipelinesAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -164,23 +271,23 @@ impl LogsPipelinesAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -189,7 +296,7 @@ impl LogsPipelinesAPI { pub async fn delete_logs_pipeline( &self, pipeline_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self.delete_logs_pipeline_with_http_info(pipeline_id).await { Ok(_) => Ok(()), Err(err) => Err(err), @@ -201,34 +308,53 @@ impl LogsPipelinesAPI { pub async fn delete_logs_pipeline_with_http_info( &self, pipeline_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v1.delete_logs_pipeline"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/logs/config/pipelines/{pipeline_id}", local_configuration.get_operation_host(operation_id), - pipeline_id = urlencode(pipeline_id) + pipeline_id = datadog::urlencode(pipeline_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -236,7 +362,7 @@ impl LogsPipelinesAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -244,12 +370,12 @@ impl LogsPipelinesAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -258,13 +384,13 @@ impl LogsPipelinesAPI { pub async fn get_logs_pipeline( &self, pipeline_id: String, - ) -> Result> { + ) -> Result> { match self.get_logs_pipeline_with_http_info(pipeline_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -278,35 +404,56 @@ impl LogsPipelinesAPI { pub async fn get_logs_pipeline_with_http_info( &self, pipeline_id: String, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.get_logs_pipeline"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/logs/config/pipelines/{pipeline_id}", local_configuration.get_operation_host(operation_id), - pipeline_id = urlencode(pipeline_id) + pipeline_id = datadog::urlencode(pipeline_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -316,23 +463,23 @@ impl LogsPipelinesAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -340,13 +487,16 @@ impl LogsPipelinesAPI { /// This endpoint takes no JSON arguments. pub async fn get_logs_pipeline_order( &self, - ) -> Result> { + ) -> Result< + crate::datadogV1::model::LogsPipelinesOrder, + datadog::Error, + > { match self.get_logs_pipeline_order_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -360,13 +510,13 @@ impl LogsPipelinesAPI { pub async fn get_logs_pipeline_order_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_logs_pipeline_order"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/logs/config/pipeline-order", @@ -375,20 +525,39 @@ impl LogsPipelinesAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -400,23 +569,23 @@ impl LogsPipelinesAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -424,13 +593,14 @@ impl LogsPipelinesAPI { /// This endpoint takes no JSON arguments. pub async fn list_logs_pipelines( &self, - ) -> Result, Error> { + ) -> Result, datadog::Error> + { match self.list_logs_pipelines_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -444,13 +614,13 @@ impl LogsPipelinesAPI { pub async fn list_logs_pipelines_with_http_info( &self, ) -> Result< - ResponseContent>, - Error, + datadog::ResponseContent>, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.list_logs_pipelines"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/logs/config/pipelines", @@ -459,20 +629,39 @@ impl LogsPipelinesAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -483,23 +672,23 @@ impl LogsPipelinesAPI { match serde_json::from_str::>(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -511,7 +700,8 @@ impl LogsPipelinesAPI { &self, pipeline_id: String, body: crate::datadogV1::model::LogsPipeline, - ) -> Result> { + ) -> Result> + { match self .update_logs_pipeline_with_http_info(pipeline_id, body) .await @@ -520,7 +710,7 @@ impl LogsPipelinesAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -538,43 +728,101 @@ impl LogsPipelinesAPI { pipeline_id: String, body: crate::datadogV1::model::LogsPipeline, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.update_logs_pipeline"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/logs/config/pipelines/{pipeline_id}", local_configuration.get_operation_host(operation_id), - pipeline_id = urlencode(pipeline_id) + pipeline_id = datadog::urlencode(pipeline_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -584,23 +832,23 @@ impl LogsPipelinesAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -612,14 +860,16 @@ impl LogsPipelinesAPI { pub async fn update_logs_pipeline_order( &self, body: crate::datadogV1::model::LogsPipelinesOrder, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::LogsPipelinesOrder, + datadog::Error, + > { match self.update_logs_pipeline_order_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -637,13 +887,13 @@ impl LogsPipelinesAPI { &self, body: crate::datadogV1::model::LogsPipelinesOrder, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.update_logs_pipeline_order"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/logs/config/pipeline-order", @@ -652,27 +902,85 @@ impl LogsPipelinesAPI { let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -684,23 +992,23 @@ impl LogsPipelinesAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV1/api/api_metrics.rs b/src/datadogV1/api/api_metrics.rs index eb250639e..dfb42dc1b 100644 --- a/src/datadogV1/api/api_metrics.rs +++ b/src/datadogV1/api/api_metrics.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// ListActiveMetricsOptionalParams is a struct for passing parameters to the method [`MetricsAPI::list_active_metrics`] #[non_exhaustive] @@ -147,14 +152,13 @@ pub enum UpdateMetricMetadataError { #[derive(Debug, Clone)] pub struct MetricsAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for MetricsAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -162,21 +166,66 @@ impl MetricsAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Get metadata about a specific metric. pub async fn get_metric_metadata( &self, metric_name: String, - ) -> Result> { + ) -> Result> + { match self.get_metric_metadata_with_http_info(metric_name).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -190,36 +239,55 @@ impl MetricsAPI { &self, metric_name: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_metric_metadata"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/metrics/{metric_name}", local_configuration.get_operation_host(operation_id), - metric_name = urlencode(metric_name) + metric_name = datadog::urlencode(metric_name) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -229,23 +297,23 @@ impl MetricsAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -254,13 +322,14 @@ impl MetricsAPI { &self, from: i64, params: ListActiveMetricsOptionalParams, - ) -> Result> { + ) -> Result> + { match self.list_active_metrics_with_http_info(from, params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -275,8 +344,8 @@ impl MetricsAPI { from: i64, params: ListActiveMetricsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.list_active_metrics"; @@ -285,7 +354,7 @@ impl MetricsAPI { let host = params.host; let tag_filter = params.tag_filter; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/metrics", @@ -304,20 +373,39 @@ impl MetricsAPI { local_req_builder.query(&[("tag_filter", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -329,23 +417,23 @@ impl MetricsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -353,13 +441,14 @@ impl MetricsAPI { pub async fn list_metrics( &self, q: String, - ) -> Result> { + ) -> Result> + { match self.list_metrics_with_http_info(q).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -373,13 +462,13 @@ impl MetricsAPI { &self, q: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.list_metrics"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/search", @@ -390,20 +479,39 @@ impl MetricsAPI { local_req_builder = local_req_builder.query(&[("q", &q.to_string())]); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -415,22 +523,22 @@ impl MetricsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -440,13 +548,14 @@ impl MetricsAPI { from: i64, to: i64, query: String, - ) -> Result> { + ) -> Result> + { match self.query_metrics_with_http_info(from, to, query).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -462,13 +571,13 @@ impl MetricsAPI { to: i64, query: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.query_metrics"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/query", @@ -481,20 +590,39 @@ impl MetricsAPI { local_req_builder = local_req_builder.query(&[("to", &to.to_string())]); local_req_builder = local_req_builder.query(&[("query", &query.to_string())]); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -506,22 +634,22 @@ impl MetricsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -530,8 +658,10 @@ impl MetricsAPI { &self, body: crate::datadogV1::model::DistributionPointsPayload, params: SubmitDistributionPointsOptionalParams, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::IntakePayloadAccepted, + datadog::Error, + > { match self .submit_distribution_points_with_http_info(body, params) .await @@ -540,7 +670,7 @@ impl MetricsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -555,8 +685,8 @@ impl MetricsAPI { body: crate::datadogV1::model::DistributionPointsPayload, params: SubmitDistributionPointsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.submit_distribution_points"; @@ -564,7 +694,7 @@ impl MetricsAPI { // unbox and build optional parameters let content_encoding = params.content_encoding; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/distribution_points", @@ -573,28 +703,88 @@ impl MetricsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("text/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + if let Some(ref local) = content_encoding { - local_req_builder = local_req_builder.header("Content-Encoding", &local.to_string()); - }; + headers.insert( + "Content-Encoding", + local + .to_string() + .parse() + .expect("failed to parse Content-Encoding header"), + ); + } // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -606,23 +796,23 @@ impl MetricsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -641,13 +831,14 @@ impl MetricsAPI { &self, body: crate::datadogV1::model::MetricsPayload, params: SubmitMetricsOptionalParams, - ) -> Result> { + ) -> Result> + { match self.submit_metrics_with_http_info(body, params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -672,8 +863,8 @@ impl MetricsAPI { body: crate::datadogV1::model::MetricsPayload, params: SubmitMetricsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.submit_metrics"; @@ -681,7 +872,7 @@ impl MetricsAPI { // unbox and build optional parameters let content_encoding = params.content_encoding; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/series", @@ -690,28 +881,88 @@ impl MetricsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("text/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + if let Some(ref local) = content_encoding { - local_req_builder = local_req_builder.header("Content-Encoding", &local.to_string()); - }; + headers.insert( + "Content-Encoding", + local + .to_string() + .parse() + .expect("failed to parse Content-Encoding header"), + ); + } // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -723,23 +974,23 @@ impl MetricsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -748,7 +999,8 @@ impl MetricsAPI { &self, metric_name: String, body: crate::datadogV1::model::MetricMetadata, - ) -> Result> { + ) -> Result> + { match self .update_metric_metadata_with_http_info(metric_name, body) .await @@ -757,7 +1009,7 @@ impl MetricsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -772,43 +1024,101 @@ impl MetricsAPI { metric_name: String, body: crate::datadogV1::model::MetricMetadata, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.update_metric_metadata"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/metrics/{metric_name}", local_configuration.get_operation_host(operation_id), - metric_name = urlencode(metric_name) + metric_name = datadog::urlencode(metric_name) ); let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -818,23 +1128,23 @@ impl MetricsAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV1/api/api_monitors.rs b/src/datadogV1/api/api_monitors.rs index efcbc889a..46ad8aa86 100644 --- a/src/datadogV1/api/api_monitors.rs +++ b/src/datadogV1/api/api_monitors.rs @@ -1,11 +1,16 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; +use crate::datadog; use async_stream::try_stream; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; use futures_core::stream::Stream; -use reqwest; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// DeleteMonitorOptionalParams is a struct for passing parameters to the method [`MonitorsAPI::delete_monitor`] #[non_exhaustive] @@ -343,14 +348,13 @@ pub enum ValidateMonitorError { #[derive(Debug, Clone)] pub struct MonitorsAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for MonitorsAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -358,8 +362,52 @@ impl MonitorsAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Check if the given monitors can be deleted. @@ -368,7 +416,7 @@ impl MonitorsAPI { monitor_ids: Vec, ) -> Result< crate::datadogV1::model::CheckCanDeleteMonitorResponse, - Error, + datadog::Error, > { match self .check_can_delete_monitor_with_http_info(monitor_ids) @@ -378,7 +426,7 @@ impl MonitorsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -392,13 +440,13 @@ impl MonitorsAPI { &self, monitor_ids: Vec, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.check_can_delete_monitor"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/monitor/can_delete", @@ -417,20 +465,39 @@ impl MonitorsAPI { .to_string(), )]); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -442,23 +509,23 @@ impl MonitorsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -491,7 +558,7 @@ impl MonitorsAPI { /// - database-monitoring: `database-monitoring alert` /// /// **Notes**: - /// - Synthetic monitors are created through the Synthetics API. See the [Synthetics API] () documentation for more information. + /// - Synthetic monitors are created through the Synthetics API. See the [Synthetics API]() documentation for more information. /// - Log monitors require an unscoped App Key. /// /// #### Query Types @@ -642,18 +709,16 @@ impl MonitorsAPI { /// - `time_window` #m (between 1 and 2880), #h (between 1 and 48). /// - `operator` `<`, `<=`, `>`, `>=`, `==`, or `!=`. /// - `#` an integer or decimal number used to set the threshold. - /// - /// **NOTE** Database Monitoring monitors are in alpha on US1. pub async fn create_monitor( &self, body: crate::datadogV1::model::Monitor, - ) -> Result> { + ) -> Result> { match self.create_monitor_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -691,7 +756,7 @@ impl MonitorsAPI { /// - database-monitoring: `database-monitoring alert` /// /// **Notes**: - /// - Synthetic monitors are created through the Synthetics API. See the [Synthetics API] () documentation for more information. + /// - Synthetic monitors are created through the Synthetics API. See the [Synthetics API]() documentation for more information. /// - Log monitors require an unscoped App Key. /// /// #### Query Types @@ -842,16 +907,17 @@ impl MonitorsAPI { /// - `time_window` #m (between 1 and 2880), #h (between 1 and 48). /// - `operator` `<`, `<=`, `>`, `>=`, `==`, or `!=`. /// - `#` an integer or decimal number used to set the threshold. - /// - /// **NOTE** Database Monitoring monitors are in alpha on US1. pub async fn create_monitor_with_http_info( &self, body: crate::datadogV1::model::Monitor, - ) -> Result, Error> { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.create_monitor"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/monitor", @@ -860,27 +926,85 @@ impl MonitorsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -890,23 +1014,23 @@ impl MonitorsAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -915,13 +1039,13 @@ impl MonitorsAPI { &self, monitor_id: i64, params: DeleteMonitorOptionalParams, - ) -> Result> { + ) -> Result> { match self.delete_monitor_with_http_info(monitor_id, params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -935,15 +1059,17 @@ impl MonitorsAPI { &self, monitor_id: i64, params: DeleteMonitorOptionalParams, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.delete_monitor"; // unbox and build optional parameters let force = params.force; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/monitor/{monitor_id}", @@ -958,20 +1084,39 @@ impl MonitorsAPI { local_req_builder.query(&[("force", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -981,23 +1126,23 @@ impl MonitorsAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1006,13 +1151,13 @@ impl MonitorsAPI { &self, monitor_id: i64, params: GetMonitorOptionalParams, - ) -> Result> { + ) -> Result> { match self.get_monitor_with_http_info(monitor_id, params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1026,7 +1171,10 @@ impl MonitorsAPI { &self, monitor_id: i64, params: GetMonitorOptionalParams, - ) -> Result, Error> { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.get_monitor"; @@ -1034,7 +1182,7 @@ impl MonitorsAPI { let group_states = params.group_states; let with_downtimes = params.with_downtimes; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/monitor/{monitor_id}", @@ -1053,20 +1201,39 @@ impl MonitorsAPI { local_req_builder.query(&[("with_downtimes", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1076,22 +1243,22 @@ impl MonitorsAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1099,13 +1266,13 @@ impl MonitorsAPI { pub async fn list_monitors( &self, params: ListMonitorsOptionalParams, - ) -> Result, Error> { + ) -> Result, datadog::Error> { match self.list_monitors_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1117,8 +1284,9 @@ impl MonitorsAPI { pub fn list_monitors_with_pagination( &self, mut params: ListMonitorsOptionalParams, - ) -> impl Stream>> + '_ - { + ) -> impl Stream< + Item = Result>, + > + '_ { try_stream! { let mut page_size: i32 = 100; if params.page_size.is_none() { @@ -1150,8 +1318,10 @@ impl MonitorsAPI { pub async fn list_monitors_with_http_info( &self, params: ListMonitorsOptionalParams, - ) -> Result>, Error> - { + ) -> Result< + datadog::ResponseContent>, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.list_monitors"; @@ -1165,7 +1335,7 @@ impl MonitorsAPI { let page = params.page; let page_size = params.page_size; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/monitor", @@ -1207,20 +1377,39 @@ impl MonitorsAPI { local_req_builder.query(&[("page_size", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1230,22 +1419,22 @@ impl MonitorsAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::>(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1253,14 +1442,16 @@ impl MonitorsAPI { pub async fn search_monitor_groups( &self, params: SearchMonitorGroupsOptionalParams, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::MonitorGroupSearchResponse, + datadog::Error, + > { match self.search_monitor_groups_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1274,8 +1465,8 @@ impl MonitorsAPI { &self, params: SearchMonitorGroupsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.search_monitor_groups"; @@ -1286,7 +1477,7 @@ impl MonitorsAPI { let per_page = params.per_page; let sort = params.sort; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/monitor/groups/search", @@ -1312,20 +1503,39 @@ impl MonitorsAPI { local_req_builder.query(&[("sort", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1337,23 +1547,23 @@ impl MonitorsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1361,13 +1571,14 @@ impl MonitorsAPI { pub async fn search_monitors( &self, params: SearchMonitorsOptionalParams, - ) -> Result> { + ) -> Result> + { match self.search_monitors_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1381,8 +1592,8 @@ impl MonitorsAPI { &self, params: SearchMonitorsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.search_monitors"; @@ -1393,7 +1604,7 @@ impl MonitorsAPI { let per_page = params.per_page; let sort = params.sort; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/monitor/search", @@ -1419,20 +1630,39 @@ impl MonitorsAPI { local_req_builder.query(&[("sort", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1444,23 +1674,23 @@ impl MonitorsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1469,13 +1699,13 @@ impl MonitorsAPI { &self, monitor_id: i64, body: crate::datadogV1::model::MonitorUpdateRequest, - ) -> Result> { + ) -> Result> { match self.update_monitor_with_http_info(monitor_id, body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1489,11 +1719,14 @@ impl MonitorsAPI { &self, monitor_id: i64, body: crate::datadogV1::model::MonitorUpdateRequest, - ) -> Result, Error> { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.update_monitor"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/monitor/{monitor_id}", @@ -1503,27 +1736,85 @@ impl MonitorsAPI { let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1533,23 +1824,23 @@ impl MonitorsAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1560,7 +1851,7 @@ impl MonitorsAPI { body: crate::datadogV1::model::Monitor, ) -> Result< std::collections::BTreeMap, - Error, + datadog::Error, > { match self .validate_existing_monitor_with_http_info(monitor_id, body) @@ -1570,7 +1861,7 @@ impl MonitorsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1585,13 +1876,13 @@ impl MonitorsAPI { monitor_id: i64, body: crate::datadogV1::model::Monitor, ) -> Result< - ResponseContent>, - Error, + datadog::ResponseContent>, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.validate_existing_monitor"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/monitor/{monitor_id}/validate", @@ -1601,27 +1892,85 @@ impl MonitorsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1633,23 +1982,23 @@ impl MonitorsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1659,14 +2008,16 @@ impl MonitorsAPI { pub async fn validate_monitor( &self, body: crate::datadogV1::model::Monitor, - ) -> Result, Error> - { + ) -> Result< + std::collections::BTreeMap, + datadog::Error, + > { match self.validate_monitor_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1682,13 +2033,13 @@ impl MonitorsAPI { &self, body: crate::datadogV1::model::Monitor, ) -> Result< - ResponseContent>, - Error, + datadog::ResponseContent>, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.validate_monitor"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/monitor/validate", @@ -1697,27 +2048,85 @@ impl MonitorsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1729,23 +2138,23 @@ impl MonitorsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV1/api/api_notebooks.rs b/src/datadogV1/api/api_notebooks.rs index 008b363d9..b14077a84 100644 --- a/src/datadogV1/api/api_notebooks.rs +++ b/src/datadogV1/api/api_notebooks.rs @@ -1,11 +1,16 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; +use crate::datadog; use async_stream::try_stream; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; use futures_core::stream::Stream; -use reqwest; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// ListNotebooksOptionalParams is a struct for passing parameters to the method [`NotebooksAPI::list_notebooks`] #[non_exhaustive] @@ -142,14 +147,13 @@ pub enum UpdateNotebookError { #[derive(Debug, Clone)] pub struct NotebooksAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for NotebooksAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -157,21 +161,66 @@ impl NotebooksAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create a notebook using the specified options. pub async fn create_notebook( &self, body: crate::datadogV1::model::NotebookCreateRequest, - ) -> Result> { + ) -> Result> + { match self.create_notebook_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -185,13 +234,13 @@ impl NotebooksAPI { &self, body: crate::datadogV1::model::NotebookCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.create_notebook"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/notebooks", @@ -200,27 +249,85 @@ impl NotebooksAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -231,23 +338,23 @@ impl NotebooksAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -255,7 +362,7 @@ impl NotebooksAPI { pub async fn delete_notebook( &self, notebook_id: i64, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self.delete_notebook_with_http_info(notebook_id).await { Ok(_) => Ok(()), Err(err) => Err(err), @@ -266,11 +373,11 @@ impl NotebooksAPI { pub async fn delete_notebook_with_http_info( &self, notebook_id: i64, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v1.delete_notebook"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/notebooks/{notebook_id}", @@ -280,20 +387,39 @@ impl NotebooksAPI { let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -301,7 +427,7 @@ impl NotebooksAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -309,12 +435,12 @@ impl NotebooksAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -322,13 +448,13 @@ impl NotebooksAPI { pub async fn get_notebook( &self, notebook_id: i64, - ) -> Result> { + ) -> Result> { match self.get_notebook_with_http_info(notebook_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -341,12 +467,14 @@ impl NotebooksAPI { pub async fn get_notebook_with_http_info( &self, notebook_id: i64, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.get_notebook"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/notebooks/{notebook_id}", @@ -356,20 +484,39 @@ impl NotebooksAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -380,22 +527,22 @@ impl NotebooksAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -404,13 +551,14 @@ impl NotebooksAPI { pub async fn list_notebooks( &self, params: ListNotebooksOptionalParams, - ) -> Result> { + ) -> Result> + { match self.list_notebooks_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -423,7 +571,10 @@ impl NotebooksAPI { &self, mut params: ListNotebooksOptionalParams, ) -> impl Stream< - Item = Result>, + Item = Result< + crate::datadogV1::model::NotebooksResponseData, + datadog::Error, + >, > + '_ { try_stream! { let mut page_size: i64 = 100; @@ -460,8 +611,8 @@ impl NotebooksAPI { &self, params: ListNotebooksOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.list_notebooks"; @@ -478,7 +629,7 @@ impl NotebooksAPI { let is_template = params.is_template; let type_ = params.type_; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/notebooks", @@ -528,20 +679,39 @@ impl NotebooksAPI { local_req_builder.query(&[("type", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -552,23 +722,23 @@ impl NotebooksAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -577,13 +747,14 @@ impl NotebooksAPI { &self, notebook_id: i64, body: crate::datadogV1::model::NotebookUpdateRequest, - ) -> Result> { + ) -> Result> + { match self.update_notebook_with_http_info(notebook_id, body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -598,13 +769,13 @@ impl NotebooksAPI { notebook_id: i64, body: crate::datadogV1::model::NotebookUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.update_notebook"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/notebooks/{notebook_id}", @@ -614,27 +785,85 @@ impl NotebooksAPI { let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -645,23 +874,23 @@ impl NotebooksAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV1/api/api_organizations.rs b/src/datadogV1/api/api_organizations.rs index ba892e46f..9fef7502a 100644 --- a/src/datadogV1/api/api_organizations.rs +++ b/src/datadogV1/api/api_organizations.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// CreateChildOrgError is a struct for typed errors of method [`OrganizationsAPI::create_child_org`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -67,14 +72,13 @@ pub enum UploadIdPForOrgError { #[derive(Debug, Clone)] pub struct OrganizationsAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for OrganizationsAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -82,8 +86,52 @@ impl OrganizationsAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create a child organization. @@ -99,14 +147,16 @@ impl OrganizationsAPI { pub async fn create_child_org( &self, body: crate::datadogV1::model::OrganizationCreateBody, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::OrganizationCreateResponse, + datadog::Error, + > { match self.create_child_org_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -129,13 +179,13 @@ impl OrganizationsAPI { &self, body: crate::datadogV1::model::OrganizationCreateBody, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.create_child_org"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/org", @@ -144,27 +194,85 @@ impl OrganizationsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -176,23 +284,23 @@ impl OrganizationsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -200,13 +308,14 @@ impl OrganizationsAPI { pub async fn downgrade_org( &self, public_id: String, - ) -> Result> { + ) -> Result> + { match self.downgrade_org_with_http_info(public_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -220,36 +329,55 @@ impl OrganizationsAPI { &self, public_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.downgrade_org"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/org/{public_id}/downgrade", local_configuration.get_operation_host(operation_id), - public_id = urlencode(public_id) + public_id = datadog::urlencode(public_id) ); let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -261,22 +389,22 @@ impl OrganizationsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -284,13 +412,13 @@ impl OrganizationsAPI { pub async fn get_org( &self, public_id: String, - ) -> Result> { + ) -> Result> { match self.get_org_with_http_info(public_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -303,35 +431,56 @@ impl OrganizationsAPI { pub async fn get_org_with_http_info( &self, public_id: String, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.get_org"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/org/{public_id}", local_configuration.get_operation_host(operation_id), - public_id = urlencode(public_id) + public_id = datadog::urlencode(public_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -343,35 +492,36 @@ impl OrganizationsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// This endpoint returns data on your top-level organization. pub async fn list_orgs( &self, - ) -> Result> { + ) -> Result> + { match self.list_orgs_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -384,13 +534,13 @@ impl OrganizationsAPI { pub async fn list_orgs_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.list_orgs"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/org", @@ -399,20 +549,39 @@ impl OrganizationsAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -424,22 +593,22 @@ impl OrganizationsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -448,13 +617,13 @@ impl OrganizationsAPI { &self, public_id: String, body: crate::datadogV1::model::Organization, - ) -> Result> { + ) -> Result> { match self.update_org_with_http_info(public_id, body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -468,42 +637,102 @@ impl OrganizationsAPI { &self, public_id: String, body: crate::datadogV1::model::Organization, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.update_org"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/org/{public_id}", local_configuration.get_operation_host(operation_id), - public_id = urlencode(public_id) + public_id = datadog::urlencode(public_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -515,22 +744,22 @@ impl OrganizationsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -544,7 +773,7 @@ impl OrganizationsAPI { &self, public_id: String, idp_file: Vec, - ) -> Result> { + ) -> Result> { match self .upload_idp_for_org_with_http_info(public_id, idp_file) .await @@ -553,7 +782,7 @@ impl OrganizationsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -572,43 +801,81 @@ impl OrganizationsAPI { &self, public_id: String, idp_file: Vec, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.upload_idp_for_org"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/org/{public_id}/idp_metadata", local_configuration.get_operation_host(operation_id), - public_id = urlencode(public_id) + public_id = datadog::urlencode(public_id) ); let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Content-Type", + HeaderValue::from_static("multipart/form-data"), ); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build form parameters - let mut local_form = reqwest::multipart::Form::new(); - local_form = local_form.part( + let mut local_form = form_data_builder::FormData::new(Vec::new()); + let cursor = std::io::Cursor::new(idp_file); + if let Err(e) = local_form.write_file( "idp_file", - reqwest::multipart::Part::bytes(idp_file).file_name("idp_file"), + cursor, + Some("idp_file".as_ref()), + "application/octet-stream", + ) { + return Err(crate::datadog::Error::Io(e)); + }; + headers.insert( + "Content-Type", + local_form.content_type_header().parse().unwrap(), ); - local_req_builder = local_req_builder.multipart(local_form); + let form_result = local_form.finish(); + match form_result { + Ok(form) => local_req_builder = local_req_builder.body(form), + Err(e) => return Err(crate::datadog::Error::Io(e)), + }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -618,23 +885,23 @@ impl OrganizationsAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV1/api/api_pager_duty_integration.rs b/src/datadogV1/api/api_pager_duty_integration.rs index 1918c4e2e..d55ecd1e1 100644 --- a/src/datadogV1/api/api_pager_duty_integration.rs +++ b/src/datadogV1/api/api_pager_duty_integration.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// CreatePagerDutyIntegrationServiceError is a struct for typed errors of method [`PagerDutyIntegrationAPI::create_pager_duty_integration_service`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -48,14 +53,13 @@ pub enum UpdatePagerDutyIntegrationServiceError { #[derive(Debug, Clone)] pub struct PagerDutyIntegrationAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for PagerDutyIntegrationAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -63,8 +67,52 @@ impl PagerDutyIntegrationAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create a new service object in the PagerDuty integration. @@ -73,7 +121,7 @@ impl PagerDutyIntegrationAPI { body: crate::datadogV1::model::PagerDutyService, ) -> Result< crate::datadogV1::model::PagerDutyServiceName, - Error, + datadog::Error, > { match self .create_pager_duty_integration_service_with_http_info(body) @@ -83,7 +131,7 @@ impl PagerDutyIntegrationAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -97,13 +145,13 @@ impl PagerDutyIntegrationAPI { &self, body: crate::datadogV1::model::PagerDutyService, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.create_pager_duty_integration_service"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/pagerduty/configuration/services", @@ -112,27 +160,85 @@ impl PagerDutyIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -144,23 +250,23 @@ impl PagerDutyIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -168,7 +274,7 @@ impl PagerDutyIntegrationAPI { pub async fn delete_pager_duty_integration_service( &self, service_name: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .delete_pager_duty_integration_service_with_http_info(service_name) .await @@ -182,34 +288,54 @@ impl PagerDutyIntegrationAPI { pub async fn delete_pager_duty_integration_service_with_http_info( &self, service_name: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> + { let local_configuration = &self.config; let operation_id = "v1.delete_pager_duty_integration_service"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/pagerduty/configuration/services/{service_name}", local_configuration.get_operation_host(operation_id), - service_name = urlencode(service_name) + service_name = datadog::urlencode(service_name) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -217,7 +343,7 @@ impl PagerDutyIntegrationAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -225,12 +351,12 @@ impl PagerDutyIntegrationAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -240,7 +366,7 @@ impl PagerDutyIntegrationAPI { service_name: String, ) -> Result< crate::datadogV1::model::PagerDutyServiceName, - Error, + datadog::Error, > { match self .get_pager_duty_integration_service_with_http_info(service_name) @@ -250,7 +376,7 @@ impl PagerDutyIntegrationAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -264,36 +390,55 @@ impl PagerDutyIntegrationAPI { &self, service_name: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_pager_duty_integration_service"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/pagerduty/configuration/services/{service_name}", local_configuration.get_operation_host(operation_id), - service_name = urlencode(service_name) + service_name = datadog::urlencode(service_name) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -305,23 +450,23 @@ impl PagerDutyIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -330,7 +475,7 @@ impl PagerDutyIntegrationAPI { &self, service_name: String, body: crate::datadogV1::model::PagerDutyServiceKey, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .update_pager_duty_integration_service_with_http_info(service_name, body) .await @@ -345,41 +490,100 @@ impl PagerDutyIntegrationAPI { &self, service_name: String, body: crate::datadogV1::model::PagerDutyServiceKey, - ) -> Result, Error> { + ) -> Result, datadog::Error> + { let local_configuration = &self.config; let operation_id = "v1.update_pager_duty_integration_service"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/pagerduty/configuration/services/{service_name}", local_configuration.get_operation_host(operation_id), - service_name = urlencode(service_name) + service_name = datadog::urlencode(service_name) ); let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -387,7 +591,7 @@ impl PagerDutyIntegrationAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -395,12 +599,12 @@ impl PagerDutyIntegrationAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV1/api/api_security_monitoring.rs b/src/datadogV1/api/api_security_monitoring.rs index 163606f05..6e6180724 100644 --- a/src/datadogV1/api/api_security_monitoring.rs +++ b/src/datadogV1/api/api_security_monitoring.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// AddSecurityMonitoringSignalToIncidentError is a struct for typed errors of method [`SecurityMonitoringAPI::add_security_monitoring_signal_to_incident`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -40,14 +45,13 @@ pub enum EditSecurityMonitoringSignalStateError { #[derive(Debug, Clone)] pub struct SecurityMonitoringAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for SecurityMonitoringAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -55,8 +59,52 @@ impl SecurityMonitoringAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Add a security signal to an incident. This makes it possible to search for signals by incident within the signal explorer and to view the signals on the incident timeline. @@ -66,7 +114,7 @@ impl SecurityMonitoringAPI { body: crate::datadogV1::model::AddSignalToIncidentRequest, ) -> Result< crate::datadogV1::model::SuccessfulSignalUpdateResponse, - Error, + datadog::Error, > { match self .add_security_monitoring_signal_to_incident_with_http_info(signal_id, body) @@ -76,7 +124,7 @@ impl SecurityMonitoringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -91,43 +139,101 @@ impl SecurityMonitoringAPI { signal_id: String, body: crate::datadogV1::model::AddSignalToIncidentRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.add_security_monitoring_signal_to_incident"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/security_analytics/signals/{signal_id}/add_to_incident", local_configuration.get_operation_host(operation_id), - signal_id = urlencode(signal_id) + signal_id = datadog::urlencode(signal_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -139,23 +245,23 @@ impl SecurityMonitoringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -166,7 +272,7 @@ impl SecurityMonitoringAPI { body: crate::datadogV1::model::SignalAssigneeUpdateRequest, ) -> Result< crate::datadogV1::model::SuccessfulSignalUpdateResponse, - Error, + datadog::Error, > { match self .edit_security_monitoring_signal_assignee_with_http_info(signal_id, body) @@ -176,7 +282,7 @@ impl SecurityMonitoringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -191,43 +297,101 @@ impl SecurityMonitoringAPI { signal_id: String, body: crate::datadogV1::model::SignalAssigneeUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.edit_security_monitoring_signal_assignee"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/security_analytics/signals/{signal_id}/assignee", local_configuration.get_operation_host(operation_id), - signal_id = urlencode(signal_id) + signal_id = datadog::urlencode(signal_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -239,23 +403,23 @@ impl SecurityMonitoringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -266,7 +430,7 @@ impl SecurityMonitoringAPI { body: crate::datadogV1::model::SignalStateUpdateRequest, ) -> Result< crate::datadogV1::model::SuccessfulSignalUpdateResponse, - Error, + datadog::Error, > { match self .edit_security_monitoring_signal_state_with_http_info(signal_id, body) @@ -276,7 +440,7 @@ impl SecurityMonitoringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -291,43 +455,101 @@ impl SecurityMonitoringAPI { signal_id: String, body: crate::datadogV1::model::SignalStateUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.edit_security_monitoring_signal_state"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/security_analytics/signals/{signal_id}/state", local_configuration.get_operation_host(operation_id), - signal_id = urlencode(signal_id) + signal_id = datadog::urlencode(signal_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -339,23 +561,23 @@ impl SecurityMonitoringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV1/api/api_service_checks.rs b/src/datadogV1/api/api_service_checks.rs index ddf0ae6f5..c85f076b7 100644 --- a/src/datadogV1/api/api_service_checks.rs +++ b/src/datadogV1/api/api_service_checks.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// SubmitServiceCheckError is a struct for typed errors of method [`ServiceChecksAPI::submit_service_check`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -19,14 +24,13 @@ pub enum SubmitServiceCheckError { #[derive(Debug, Clone)] pub struct ServiceChecksAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for ServiceChecksAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -34,8 +38,52 @@ impl ServiceChecksAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Submit a list of Service Checks. @@ -46,14 +94,16 @@ impl ServiceChecksAPI { pub async fn submit_service_check( &self, body: Vec, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::IntakePayloadAccepted, + datadog::Error, + > { match self.submit_service_check_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -71,13 +121,13 @@ impl ServiceChecksAPI { &self, body: Vec, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.submit_service_check"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/check_run", @@ -86,24 +136,78 @@ impl ServiceChecksAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -115,23 +219,23 @@ impl ServiceChecksAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV1/api/api_service_level_objective_corrections.rs b/src/datadogV1/api/api_service_level_objective_corrections.rs index e27b3974c..4e74bfe75 100644 --- a/src/datadogV1/api/api_service_level_objective_corrections.rs +++ b/src/datadogV1/api/api_service_level_objective_corrections.rs @@ -1,11 +1,16 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; +use crate::datadog; use async_stream::try_stream; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; use futures_core::stream::Stream; -use reqwest; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// ListSLOCorrectionOptionalParams is a struct for passing parameters to the method [`ServiceLevelObjectiveCorrectionsAPI::list_slo_correction`] #[non_exhaustive] @@ -83,14 +88,13 @@ pub enum UpdateSLOCorrectionError { #[derive(Debug, Clone)] pub struct ServiceLevelObjectiveCorrectionsAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for ServiceLevelObjectiveCorrectionsAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -98,22 +102,68 @@ impl ServiceLevelObjectiveCorrectionsAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create an SLO Correction. pub async fn create_slo_correction( &self, body: crate::datadogV1::model::SLOCorrectionCreateRequest, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::SLOCorrectionResponse, + datadog::Error, + > { match self.create_slo_correction_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -127,13 +177,13 @@ impl ServiceLevelObjectiveCorrectionsAPI { &self, body: crate::datadogV1::model::SLOCorrectionCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.create_slo_correction"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/slo/correction", @@ -142,27 +192,85 @@ impl ServiceLevelObjectiveCorrectionsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -174,23 +282,23 @@ impl ServiceLevelObjectiveCorrectionsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -198,7 +306,7 @@ impl ServiceLevelObjectiveCorrectionsAPI { pub async fn delete_slo_correction( &self, slo_correction_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .delete_slo_correction_with_http_info(slo_correction_id) .await @@ -212,34 +320,53 @@ impl ServiceLevelObjectiveCorrectionsAPI { pub async fn delete_slo_correction_with_http_info( &self, slo_correction_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v1.delete_slo_correction"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/slo/correction/{slo_correction_id}", local_configuration.get_operation_host(operation_id), - slo_correction_id = urlencode(slo_correction_id) + slo_correction_id = datadog::urlencode(slo_correction_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -247,7 +374,7 @@ impl ServiceLevelObjectiveCorrectionsAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -255,12 +382,12 @@ impl ServiceLevelObjectiveCorrectionsAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -268,7 +395,8 @@ impl ServiceLevelObjectiveCorrectionsAPI { pub async fn get_slo_correction( &self, slo_correction_id: String, - ) -> Result> { + ) -> Result> + { match self .get_slo_correction_with_http_info(slo_correction_id) .await @@ -277,7 +405,7 @@ impl ServiceLevelObjectiveCorrectionsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -291,36 +419,55 @@ impl ServiceLevelObjectiveCorrectionsAPI { &self, slo_correction_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_slo_correction"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/slo/correction/{slo_correction_id}", local_configuration.get_operation_host(operation_id), - slo_correction_id = urlencode(slo_correction_id) + slo_correction_id = datadog::urlencode(slo_correction_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -332,23 +479,23 @@ impl ServiceLevelObjectiveCorrectionsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -356,14 +503,16 @@ impl ServiceLevelObjectiveCorrectionsAPI { pub async fn list_slo_correction( &self, params: ListSLOCorrectionOptionalParams, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::SLOCorrectionListResponse, + datadog::Error, + > { match self.list_slo_correction_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -376,7 +525,10 @@ impl ServiceLevelObjectiveCorrectionsAPI { &self, mut params: ListSLOCorrectionOptionalParams, ) -> impl Stream< - Item = Result>, + Item = Result< + crate::datadogV1::model::SLOCorrection, + datadog::Error, + >, > + '_ { try_stream! { let mut page_size: i64 = 25; @@ -412,8 +564,8 @@ impl ServiceLevelObjectiveCorrectionsAPI { &self, params: ListSLOCorrectionOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.list_slo_correction"; @@ -422,7 +574,7 @@ impl ServiceLevelObjectiveCorrectionsAPI { let offset = params.offset; let limit = params.limit; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/slo/correction", @@ -440,20 +592,39 @@ impl ServiceLevelObjectiveCorrectionsAPI { local_req_builder.query(&[("limit", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -465,23 +636,23 @@ impl ServiceLevelObjectiveCorrectionsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -490,8 +661,10 @@ impl ServiceLevelObjectiveCorrectionsAPI { &self, slo_correction_id: String, body: crate::datadogV1::model::SLOCorrectionUpdateRequest, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::SLOCorrectionResponse, + datadog::Error, + > { match self .update_slo_correction_with_http_info(slo_correction_id, body) .await @@ -500,7 +673,7 @@ impl ServiceLevelObjectiveCorrectionsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -515,43 +688,101 @@ impl ServiceLevelObjectiveCorrectionsAPI { slo_correction_id: String, body: crate::datadogV1::model::SLOCorrectionUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.update_slo_correction"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/slo/correction/{slo_correction_id}", local_configuration.get_operation_host(operation_id), - slo_correction_id = urlencode(slo_correction_id) + slo_correction_id = datadog::urlencode(slo_correction_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -563,23 +794,23 @@ impl ServiceLevelObjectiveCorrectionsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV1/api/api_service_level_objectives.rs b/src/datadogV1/api/api_service_level_objectives.rs index 1e2dc1b4e..492c11e09 100644 --- a/src/datadogV1/api/api_service_level_objectives.rs +++ b/src/datadogV1/api/api_service_level_objectives.rs @@ -1,11 +1,16 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; +use crate::datadog; use async_stream::try_stream; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; use futures_core::stream::Stream; -use reqwest; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// DeleteSLOOptionalParams is a struct for passing parameters to the method [`ServiceLevelObjectivesAPI::delete_slo`] #[non_exhaustive] @@ -264,14 +269,13 @@ pub enum UpdateSLOError { #[derive(Debug, Clone)] pub struct ServiceLevelObjectivesAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for ServiceLevelObjectivesAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -279,8 +283,52 @@ impl ServiceLevelObjectivesAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Check if an SLO can be safely deleted. For example, @@ -288,14 +336,16 @@ impl ServiceLevelObjectivesAPI { pub async fn check_can_delete_slo( &self, ids: String, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::CheckCanDeleteSLOResponse, + datadog::Error, + > { match self.check_can_delete_slo_with_http_info(ids).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -310,13 +360,13 @@ impl ServiceLevelObjectivesAPI { &self, ids: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.check_can_delete_slo"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/slo/can_delete", @@ -327,20 +377,39 @@ impl ServiceLevelObjectivesAPI { local_req_builder = local_req_builder.query(&[("ids", &ids.to_string())]); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -352,23 +421,23 @@ impl ServiceLevelObjectivesAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -376,13 +445,13 @@ impl ServiceLevelObjectivesAPI { pub async fn create_slo( &self, body: crate::datadogV1::model::ServiceLevelObjectiveRequest, - ) -> Result> { + ) -> Result> { match self.create_slo_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -395,12 +464,14 @@ impl ServiceLevelObjectivesAPI { pub async fn create_slo_with_http_info( &self, body: crate::datadogV1::model::ServiceLevelObjectiveRequest, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.create_slo"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/slo", @@ -409,27 +480,85 @@ impl ServiceLevelObjectivesAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -439,22 +568,22 @@ impl ServiceLevelObjectivesAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -466,13 +595,13 @@ impl ServiceLevelObjectivesAPI { &self, slo_id: String, params: DeleteSLOOptionalParams, - ) -> Result> { + ) -> Result> { match self.delete_slo_with_http_info(slo_id, params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -489,20 +618,22 @@ impl ServiceLevelObjectivesAPI { &self, slo_id: String, params: DeleteSLOOptionalParams, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.delete_slo"; // unbox and build optional parameters let force = params.force; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/slo/{slo_id}", local_configuration.get_operation_host(operation_id), - slo_id = urlencode(slo_id) + slo_id = datadog::urlencode(slo_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); @@ -512,20 +643,39 @@ impl ServiceLevelObjectivesAPI { local_req_builder.query(&[("force", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -536,22 +686,22 @@ impl ServiceLevelObjectivesAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -563,14 +713,16 @@ impl ServiceLevelObjectivesAPI { pub async fn delete_slo_timeframe_in_bulk( &self, body: std::collections::BTreeMap>, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::SLOBulkDeleteResponse, + datadog::Error, + > { match self.delete_slo_timeframe_in_bulk_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -588,13 +740,13 @@ impl ServiceLevelObjectivesAPI { &self, body: std::collections::BTreeMap>, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.delete_slo_timeframe_in_bulk"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/slo/bulk_delete", @@ -603,27 +755,85 @@ impl ServiceLevelObjectivesAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -635,23 +845,23 @@ impl ServiceLevelObjectivesAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -660,13 +870,13 @@ impl ServiceLevelObjectivesAPI { &self, slo_id: String, params: GetSLOOptionalParams, - ) -> Result> { + ) -> Result> { match self.get_slo_with_http_info(slo_id, params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -680,19 +890,22 @@ impl ServiceLevelObjectivesAPI { &self, slo_id: String, params: GetSLOOptionalParams, - ) -> Result, Error> { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.get_slo"; // unbox and build optional parameters let with_configured_alert_ids = params.with_configured_alert_ids; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/slo/{slo_id}", local_configuration.get_operation_host(operation_id), - slo_id = urlencode(slo_id) + slo_id = datadog::urlencode(slo_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); @@ -702,20 +915,39 @@ impl ServiceLevelObjectivesAPI { .query(&[("with_configured_alert_ids", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -725,22 +957,22 @@ impl ServiceLevelObjectivesAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -748,14 +980,16 @@ impl ServiceLevelObjectivesAPI { pub async fn get_slo_corrections( &self, slo_id: String, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::SLOCorrectionListResponse, + datadog::Error, + > { match self.get_slo_corrections_with_http_info(slo_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -769,36 +1003,55 @@ impl ServiceLevelObjectivesAPI { &self, slo_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_slo_corrections"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/slo/{slo_id}/corrections", local_configuration.get_operation_host(operation_id), - slo_id = urlencode(slo_id) + slo_id = datadog::urlencode(slo_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -810,23 +1063,23 @@ impl ServiceLevelObjectivesAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -844,7 +1097,8 @@ impl ServiceLevelObjectivesAPI { from_ts: i64, to_ts: i64, params: GetSLOHistoryOptionalParams, - ) -> Result> { + ) -> Result> + { match self .get_slo_history_with_http_info(slo_id, from_ts, to_ts, params) .await @@ -853,7 +1107,7 @@ impl ServiceLevelObjectivesAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -877,8 +1131,8 @@ impl ServiceLevelObjectivesAPI { to_ts: i64, params: GetSLOHistoryOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_slo_history"; @@ -887,12 +1141,12 @@ impl ServiceLevelObjectivesAPI { let target = params.target; let apply_correction = params.apply_correction; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/slo/{slo_id}/history", local_configuration.get_operation_host(operation_id), - slo_id = urlencode(slo_id) + slo_id = datadog::urlencode(slo_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); @@ -908,20 +1162,39 @@ impl ServiceLevelObjectivesAPI { local_req_builder.query(&[("apply_correction", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -933,23 +1206,23 @@ impl ServiceLevelObjectivesAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -957,13 +1230,13 @@ impl ServiceLevelObjectivesAPI { pub async fn list_slos( &self, params: ListSLOsOptionalParams, - ) -> Result> { + ) -> Result> { match self.list_slos_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -976,7 +1249,10 @@ impl ServiceLevelObjectivesAPI { &self, mut params: ListSLOsOptionalParams, ) -> impl Stream< - Item = Result>, + Item = Result< + crate::datadogV1::model::ServiceLevelObjective, + datadog::Error, + >, > + '_ { try_stream! { let mut page_size: i64 = 1000; @@ -1011,8 +1287,10 @@ impl ServiceLevelObjectivesAPI { pub async fn list_slos_with_http_info( &self, params: ListSLOsOptionalParams, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.list_slos"; @@ -1024,7 +1302,7 @@ impl ServiceLevelObjectivesAPI { let limit = params.limit; let offset = params.offset; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/slo", @@ -1057,20 +1335,39 @@ impl ServiceLevelObjectivesAPI { local_req_builder.query(&[("offset", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1080,22 +1377,22 @@ impl ServiceLevelObjectivesAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1103,13 +1400,13 @@ impl ServiceLevelObjectivesAPI { pub async fn search_slo( &self, params: SearchSLOOptionalParams, - ) -> Result> { + ) -> Result> { match self.search_slo_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1122,8 +1419,10 @@ impl ServiceLevelObjectivesAPI { pub async fn search_slo_with_http_info( &self, params: SearchSLOOptionalParams, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.search_slo"; @@ -1133,7 +1432,7 @@ impl ServiceLevelObjectivesAPI { let page_number = params.page_number; let include_facets = params.include_facets; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/slo/search", @@ -1159,20 +1458,39 @@ impl ServiceLevelObjectivesAPI { local_req_builder.query(&[("include_facets", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1183,22 +1501,22 @@ impl ServiceLevelObjectivesAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1207,13 +1525,13 @@ impl ServiceLevelObjectivesAPI { &self, slo_id: String, body: crate::datadogV1::model::ServiceLevelObjective, - ) -> Result> { + ) -> Result> { match self.update_slo_with_http_info(slo_id, body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1227,42 +1545,102 @@ impl ServiceLevelObjectivesAPI { &self, slo_id: String, body: crate::datadogV1::model::ServiceLevelObjective, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.update_slo"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/slo/{slo_id}", local_configuration.get_operation_host(operation_id), - slo_id = urlencode(slo_id) + slo_id = datadog::urlencode(slo_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1272,22 +1650,22 @@ impl ServiceLevelObjectivesAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV1/api/api_slack_integration.rs b/src/datadogV1/api/api_slack_integration.rs index 3ec5ef4d2..696a53eed 100644 --- a/src/datadogV1/api/api_slack_integration.rs +++ b/src/datadogV1/api/api_slack_integration.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// CreateSlackIntegrationChannelError is a struct for typed errors of method [`SlackIntegrationAPI::create_slack_integration_channel`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -62,14 +67,13 @@ pub enum UpdateSlackIntegrationChannelError { #[derive(Debug, Clone)] pub struct SlackIntegrationAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for SlackIntegrationAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -77,8 +81,52 @@ impl SlackIntegrationAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Add a channel to your Datadog-Slack integration. @@ -88,7 +136,7 @@ impl SlackIntegrationAPI { body: crate::datadogV1::model::SlackIntegrationChannel, ) -> Result< crate::datadogV1::model::SlackIntegrationChannel, - Error, + datadog::Error, > { match self .create_slack_integration_channel_with_http_info(account_name, body) @@ -98,7 +146,7 @@ impl SlackIntegrationAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -113,43 +161,101 @@ impl SlackIntegrationAPI { account_name: String, body: crate::datadogV1::model::SlackIntegrationChannel, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.create_slack_integration_channel"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/slack/configuration/accounts/{account_name}/channels", local_configuration.get_operation_host(operation_id), - account_name = urlencode(account_name) + account_name = datadog::urlencode(account_name) ); let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -161,23 +267,23 @@ impl SlackIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -188,7 +294,7 @@ impl SlackIntegrationAPI { channel_name: String, ) -> Result< crate::datadogV1::model::SlackIntegrationChannel, - Error, + datadog::Error, > { match self .get_slack_integration_channel_with_http_info(account_name, channel_name) @@ -198,7 +304,7 @@ impl SlackIntegrationAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -213,38 +319,57 @@ impl SlackIntegrationAPI { account_name: String, channel_name: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_slack_integration_channel"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/slack/configuration/accounts/{account_name}/channels/{channel_name}", local_configuration.get_operation_host(operation_id), account_name= - urlencode(account_name) + datadog::urlencode(account_name) , channel_name= - urlencode(channel_name) + datadog::urlencode(channel_name) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -256,23 +381,23 @@ impl SlackIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -282,7 +407,7 @@ impl SlackIntegrationAPI { account_name: String, ) -> Result< Vec, - Error, + datadog::Error, > { match self .get_slack_integration_channels_with_http_info(account_name) @@ -292,7 +417,7 @@ impl SlackIntegrationAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -306,36 +431,55 @@ impl SlackIntegrationAPI { &self, account_name: String, ) -> Result< - ResponseContent>, - Error, + datadog::ResponseContent>, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_slack_integration_channels"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/slack/configuration/accounts/{account_name}/channels", local_configuration.get_operation_host(operation_id), - account_name = urlencode(account_name) + account_name = datadog::urlencode(account_name) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -347,23 +491,23 @@ impl SlackIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -372,7 +516,7 @@ impl SlackIntegrationAPI { &self, account_name: String, channel_name: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .remove_slack_integration_channel_with_http_info(account_name, channel_name) .await @@ -387,36 +531,56 @@ impl SlackIntegrationAPI { &self, account_name: String, channel_name: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> + { let local_configuration = &self.config; let operation_id = "v1.remove_slack_integration_channel"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/slack/configuration/accounts/{account_name}/channels/{channel_name}", local_configuration.get_operation_host(operation_id), account_name= - urlencode(account_name) + datadog::urlencode(account_name) , channel_name= - urlencode(channel_name) + datadog::urlencode(channel_name) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -424,7 +588,7 @@ impl SlackIntegrationAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -432,12 +596,12 @@ impl SlackIntegrationAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -449,7 +613,7 @@ impl SlackIntegrationAPI { body: crate::datadogV1::model::SlackIntegrationChannel, ) -> Result< crate::datadogV1::model::SlackIntegrationChannel, - Error, + datadog::Error, > { match self .update_slack_integration_channel_with_http_info(account_name, channel_name, body) @@ -459,7 +623,7 @@ impl SlackIntegrationAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -475,45 +639,103 @@ impl SlackIntegrationAPI { channel_name: String, body: crate::datadogV1::model::SlackIntegrationChannel, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.update_slack_integration_channel"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/slack/configuration/accounts/{account_name}/channels/{channel_name}", local_configuration.get_operation_host(operation_id), account_name= - urlencode(account_name) + datadog::urlencode(account_name) , channel_name= - urlencode(channel_name) + datadog::urlencode(channel_name) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -525,23 +747,23 @@ impl SlackIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV1/api/api_snapshots.rs b/src/datadogV1/api/api_snapshots.rs index bdf552ab3..20fbfefbf 100644 --- a/src/datadogV1/api/api_snapshots.rs +++ b/src/datadogV1/api/api_snapshots.rs @@ -1,8 +1,8 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; /// GetGraphSnapshotOptionalParams is a struct for passing parameters to the method [`SnapshotsAPI::get_graph_snapshot`] @@ -72,14 +72,13 @@ pub enum GetGraphSnapshotError { #[derive(Debug, Clone)] pub struct SnapshotsAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for SnapshotsAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -87,8 +86,52 @@ impl SnapshotsAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Take graph snapshots. @@ -98,7 +141,7 @@ impl SnapshotsAPI { start: i64, end: i64, params: GetGraphSnapshotOptionalParams, - ) -> Result> { + ) -> Result> { match self .get_graph_snapshot_with_http_info(start, end, params) .await @@ -107,7 +150,7 @@ impl SnapshotsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -123,8 +166,10 @@ impl SnapshotsAPI { start: i64, end: i64, params: GetGraphSnapshotOptionalParams, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.get_graph_snapshot"; @@ -136,7 +181,7 @@ impl SnapshotsAPI { let height = params.height; let width = params.width; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/graph/snapshot", @@ -172,20 +217,39 @@ impl SnapshotsAPI { local_req_builder.query(&[("width", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -195,23 +259,23 @@ impl SnapshotsAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV1/api/api_synthetics.rs b/src/datadogV1/api/api_synthetics.rs index eeb33bc74..b0ce5d901 100644 --- a/src/datadogV1/api/api_synthetics.rs +++ b/src/datadogV1/api/api_synthetics.rs @@ -1,11 +1,16 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; +use crate::datadog; use async_stream::try_stream; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; use futures_core::stream::Stream; -use reqwest; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// GetAPITestLatestResultsOptionalParams is a struct for passing parameters to the method [`SyntheticsAPI::get_api_test_latest_results`] #[non_exhaustive] @@ -379,14 +384,13 @@ pub enum UpdateTestPauseStatusError { #[derive(Debug, Clone)] pub struct SyntheticsAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for SyntheticsAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -394,22 +398,68 @@ impl SyntheticsAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create a Synthetic global variable. pub async fn create_global_variable( &self, body: crate::datadogV1::model::SyntheticsGlobalVariable, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::SyntheticsGlobalVariable, + datadog::Error, + > { match self.create_global_variable_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -423,13 +473,13 @@ impl SyntheticsAPI { &self, body: crate::datadogV1::model::SyntheticsGlobalVariable, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.create_global_variable"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/synthetics/variables", @@ -438,27 +488,85 @@ impl SyntheticsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -470,23 +578,23 @@ impl SyntheticsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -496,14 +604,14 @@ impl SyntheticsAPI { body: crate::datadogV1::model::SyntheticsPrivateLocation, ) -> Result< crate::datadogV1::model::SyntheticsPrivateLocationCreationResponse, - Error, + datadog::Error, > { match self.create_private_location_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -517,13 +625,15 @@ impl SyntheticsAPI { &self, body: crate::datadogV1::model::SyntheticsPrivateLocation, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent< + crate::datadogV1::model::SyntheticsPrivateLocationCreationResponse, + >, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.create_private_location"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/synthetics/private-locations", @@ -532,27 +642,85 @@ impl SyntheticsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -565,23 +733,23 @@ impl SyntheticsAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -589,14 +757,16 @@ impl SyntheticsAPI { pub async fn create_synthetics_api_test( &self, body: crate::datadogV1::model::SyntheticsAPITest, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::SyntheticsAPITest, + datadog::Error, + > { match self.create_synthetics_api_test_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -610,13 +780,13 @@ impl SyntheticsAPI { &self, body: crate::datadogV1::model::SyntheticsAPITest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.create_synthetics_api_test"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/synthetics/tests/api", @@ -625,27 +795,85 @@ impl SyntheticsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -656,23 +884,23 @@ impl SyntheticsAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -682,7 +910,7 @@ impl SyntheticsAPI { body: crate::datadogV1::model::SyntheticsBrowserTest, ) -> Result< crate::datadogV1::model::SyntheticsBrowserTest, - Error, + datadog::Error, > { match self .create_synthetics_browser_test_with_http_info(body) @@ -692,7 +920,7 @@ impl SyntheticsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -706,13 +934,13 @@ impl SyntheticsAPI { &self, body: crate::datadogV1::model::SyntheticsBrowserTest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.create_synthetics_browser_test"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/synthetics/tests/browser", @@ -721,27 +949,85 @@ impl SyntheticsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -753,23 +1039,23 @@ impl SyntheticsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -777,7 +1063,7 @@ impl SyntheticsAPI { pub async fn delete_global_variable( &self, variable_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .delete_global_variable_with_http_info(variable_id) .await @@ -791,34 +1077,53 @@ impl SyntheticsAPI { pub async fn delete_global_variable_with_http_info( &self, variable_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v1.delete_global_variable"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/synthetics/variables/{variable_id}", local_configuration.get_operation_host(operation_id), - variable_id = urlencode(variable_id) + variable_id = datadog::urlencode(variable_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -826,7 +1131,7 @@ impl SyntheticsAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -834,12 +1139,12 @@ impl SyntheticsAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -847,7 +1152,7 @@ impl SyntheticsAPI { pub async fn delete_private_location( &self, location_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .delete_private_location_with_http_info(location_id) .await @@ -861,34 +1166,53 @@ impl SyntheticsAPI { pub async fn delete_private_location_with_http_info( &self, location_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v1.delete_private_location"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/synthetics/private-locations/{location_id}", local_configuration.get_operation_host(operation_id), - location_id = urlencode(location_id) + location_id = datadog::urlencode(location_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -896,7 +1220,7 @@ impl SyntheticsAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -904,12 +1228,12 @@ impl SyntheticsAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -917,14 +1241,16 @@ impl SyntheticsAPI { pub async fn delete_tests( &self, body: crate::datadogV1::model::SyntheticsDeleteTestsPayload, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::SyntheticsDeleteTestsResponse, + datadog::Error, + > { match self.delete_tests_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -938,13 +1264,13 @@ impl SyntheticsAPI { &self, body: crate::datadogV1::model::SyntheticsDeleteTestsPayload, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.delete_tests"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/synthetics/tests/delete", @@ -953,27 +1279,85 @@ impl SyntheticsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -985,22 +1369,22 @@ impl SyntheticsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1009,8 +1393,10 @@ impl SyntheticsAPI { &self, variable_id: String, body: crate::datadogV1::model::SyntheticsGlobalVariable, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::SyntheticsGlobalVariable, + datadog::Error, + > { match self .edit_global_variable_with_http_info(variable_id, body) .await @@ -1019,7 +1405,7 @@ impl SyntheticsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1034,43 +1420,101 @@ impl SyntheticsAPI { variable_id: String, body: crate::datadogV1::model::SyntheticsGlobalVariable, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.edit_global_variable"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/synthetics/variables/{variable_id}", local_configuration.get_operation_host(operation_id), - variable_id = urlencode(variable_id) + variable_id = datadog::urlencode(variable_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1082,23 +1526,23 @@ impl SyntheticsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1107,13 +1551,13 @@ impl SyntheticsAPI { pub async fn get_api_test( &self, public_id: String, - ) -> Result> { + ) -> Result> { match self.get_api_test_with_http_info(public_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1127,35 +1571,56 @@ impl SyntheticsAPI { pub async fn get_api_test_with_http_info( &self, public_id: String, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.get_api_test"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/synthetics/tests/api/{public_id}", local_configuration.get_operation_host(operation_id), - public_id = urlencode(public_id) + public_id = datadog::urlencode(public_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1166,22 +1631,22 @@ impl SyntheticsAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1192,7 +1657,7 @@ impl SyntheticsAPI { params: GetAPITestLatestResultsOptionalParams, ) -> Result< crate::datadogV1::model::SyntheticsGetAPITestLatestResultsResponse, - Error, + datadog::Error, > { match self .get_api_test_latest_results_with_http_info(public_id, params) @@ -1202,7 +1667,7 @@ impl SyntheticsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1217,8 +1682,10 @@ impl SyntheticsAPI { public_id: String, params: GetAPITestLatestResultsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent< + crate::datadogV1::model::SyntheticsGetAPITestLatestResultsResponse, + >, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_api_test_latest_results"; @@ -1228,12 +1695,12 @@ impl SyntheticsAPI { let to_ts = params.to_ts; let probe_dc = params.probe_dc; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/synthetics/tests/{public_id}/results", local_configuration.get_operation_host(operation_id), - public_id = urlencode(public_id) + public_id = datadog::urlencode(public_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); @@ -1258,20 +1725,39 @@ impl SyntheticsAPI { )]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1284,23 +1770,23 @@ impl SyntheticsAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1309,8 +1795,10 @@ impl SyntheticsAPI { &self, public_id: String, result_id: String, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::SyntheticsAPITestResultFull, + datadog::Error, + > { match self .get_api_test_result_with_http_info(public_id, result_id) .await @@ -1319,7 +1807,7 @@ impl SyntheticsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1334,37 +1822,56 @@ impl SyntheticsAPI { public_id: String, result_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_api_test_result"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/synthetics/tests/{public_id}/results/{result_id}", local_configuration.get_operation_host(operation_id), - public_id = urlencode(public_id), - result_id = urlencode(result_id) + public_id = datadog::urlencode(public_id), + result_id = datadog::urlencode(result_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1376,23 +1883,23 @@ impl SyntheticsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1401,13 +1908,14 @@ impl SyntheticsAPI { pub async fn get_browser_test( &self, public_id: String, - ) -> Result> { + ) -> Result> + { match self.get_browser_test_with_http_info(public_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1422,36 +1930,55 @@ impl SyntheticsAPI { &self, public_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_browser_test"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/synthetics/tests/browser/{public_id}", local_configuration.get_operation_host(operation_id), - public_id = urlencode(public_id) + public_id = datadog::urlencode(public_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1463,23 +1990,23 @@ impl SyntheticsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1490,7 +2017,7 @@ impl SyntheticsAPI { params: GetBrowserTestLatestResultsOptionalParams, ) -> Result< crate::datadogV1::model::SyntheticsGetBrowserTestLatestResultsResponse, - Error, + datadog::Error, > { match self .get_browser_test_latest_results_with_http_info(public_id, params) @@ -1500,7 +2027,7 @@ impl SyntheticsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1515,8 +2042,10 @@ impl SyntheticsAPI { public_id: String, params: GetBrowserTestLatestResultsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent< + crate::datadogV1::model::SyntheticsGetBrowserTestLatestResultsResponse, + >, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_browser_test_latest_results"; @@ -1526,12 +2055,12 @@ impl SyntheticsAPI { let to_ts = params.to_ts; let probe_dc = params.probe_dc; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/synthetics/tests/browser/{public_id}/results", local_configuration.get_operation_host(operation_id), - public_id = urlencode(public_id) + public_id = datadog::urlencode(public_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); @@ -1556,20 +2085,39 @@ impl SyntheticsAPI { )]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1582,23 +2130,23 @@ impl SyntheticsAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1609,7 +2157,7 @@ impl SyntheticsAPI { result_id: String, ) -> Result< crate::datadogV1::model::SyntheticsBrowserTestResultFull, - Error, + datadog::Error, > { match self .get_browser_test_result_with_http_info(public_id, result_id) @@ -1619,7 +2167,7 @@ impl SyntheticsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1634,37 +2182,56 @@ impl SyntheticsAPI { public_id: String, result_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_browser_test_result"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/synthetics/tests/browser/{public_id}/results/{result_id}", local_configuration.get_operation_host(operation_id), - public_id = urlencode(public_id), - result_id = urlencode(result_id) + public_id = datadog::urlencode(public_id), + result_id = datadog::urlencode(result_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1676,23 +2243,23 @@ impl SyntheticsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1700,14 +2267,16 @@ impl SyntheticsAPI { pub async fn get_global_variable( &self, variable_id: String, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::SyntheticsGlobalVariable, + datadog::Error, + > { match self.get_global_variable_with_http_info(variable_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1721,36 +2290,55 @@ impl SyntheticsAPI { &self, variable_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_global_variable"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/synthetics/variables/{variable_id}", local_configuration.get_operation_host(operation_id), - variable_id = urlencode(variable_id) + variable_id = datadog::urlencode(variable_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1762,23 +2350,23 @@ impl SyntheticsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1786,14 +2374,16 @@ impl SyntheticsAPI { pub async fn get_private_location( &self, location_id: String, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::SyntheticsPrivateLocation, + datadog::Error, + > { match self.get_private_location_with_http_info(location_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1807,36 +2397,55 @@ impl SyntheticsAPI { &self, location_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_private_location"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/synthetics/private-locations/{location_id}", local_configuration.get_operation_host(operation_id), - location_id = urlencode(location_id) + location_id = datadog::urlencode(location_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1848,23 +2457,23 @@ impl SyntheticsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1872,14 +2481,16 @@ impl SyntheticsAPI { pub async fn get_synthetics_ci_batch( &self, batch_id: String, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::SyntheticsBatchDetails, + datadog::Error, + > { match self.get_synthetics_ci_batch_with_http_info(batch_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1893,36 +2504,55 @@ impl SyntheticsAPI { &self, batch_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_synthetics_ci_batch"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/synthetics/ci/batch/{batch_id}", local_configuration.get_operation_host(operation_id), - batch_id = urlencode(batch_id) + batch_id = datadog::urlencode(batch_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1934,36 +2564,36 @@ impl SyntheticsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get the default locations settings. pub async fn get_synthetics_default_locations( &self, - ) -> Result, Error> { + ) -> Result, datadog::Error> { match self.get_synthetics_default_locations_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1975,11 +2605,14 @@ impl SyntheticsAPI { /// Get the default locations settings. pub async fn get_synthetics_default_locations_with_http_info( &self, - ) -> Result>, Error> { + ) -> Result< + datadog::ResponseContent>, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.get_synthetics_default_locations"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/synthetics/settings/default_locations", @@ -1988,20 +2621,39 @@ impl SyntheticsAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -2011,23 +2663,23 @@ impl SyntheticsAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::>(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -2035,13 +2687,13 @@ impl SyntheticsAPI { pub async fn get_test( &self, public_id: String, - ) -> Result> { + ) -> Result> { match self.get_test_with_http_info(public_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -2054,35 +2706,56 @@ impl SyntheticsAPI { pub async fn get_test_with_http_info( &self, public_id: String, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.get_test"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/synthetics/tests/{public_id}", local_configuration.get_operation_host(operation_id), - public_id = urlencode(public_id) + public_id = datadog::urlencode(public_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -2094,22 +2767,22 @@ impl SyntheticsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -2118,14 +2791,14 @@ impl SyntheticsAPI { &self, ) -> Result< crate::datadogV1::model::SyntheticsListGlobalVariablesResponse, - Error, + datadog::Error, > { match self.list_global_variables_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -2138,13 +2811,13 @@ impl SyntheticsAPI { pub async fn list_global_variables_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.list_global_variables"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/synthetics/variables", @@ -2153,20 +2826,39 @@ impl SyntheticsAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -2179,23 +2871,23 @@ impl SyntheticsAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -2203,13 +2895,14 @@ impl SyntheticsAPI { /// tests. No arguments required. pub async fn list_locations( &self, - ) -> Result> { + ) -> Result> + { match self.list_locations_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -2223,13 +2916,13 @@ impl SyntheticsAPI { pub async fn list_locations_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.list_locations"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/synthetics/locations", @@ -2238,20 +2931,39 @@ impl SyntheticsAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -2263,23 +2975,23 @@ impl SyntheticsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -2287,13 +2999,14 @@ impl SyntheticsAPI { pub async fn list_tests( &self, params: ListTestsOptionalParams, - ) -> Result> { + ) -> Result> + { match self.list_tests_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -2306,7 +3019,10 @@ impl SyntheticsAPI { &self, mut params: ListTestsOptionalParams, ) -> impl Stream< - Item = Result>, + Item = Result< + crate::datadogV1::model::SyntheticsTestDetails, + datadog::Error, + >, > + '_ { try_stream! { let mut page_size: i64 = 100; @@ -2341,8 +3057,8 @@ impl SyntheticsAPI { &self, params: ListTestsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.list_tests"; @@ -2351,7 +3067,7 @@ impl SyntheticsAPI { let page_size = params.page_size; let page_number = params.page_number; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/synthetics/tests", @@ -2369,20 +3085,39 @@ impl SyntheticsAPI { local_req_builder.query(&[("page_number", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -2394,22 +3129,22 @@ impl SyntheticsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -2418,13 +3153,14 @@ impl SyntheticsAPI { &self, public_id: String, body: crate::datadogV1::model::SyntheticsPatchTestBody, - ) -> Result> { + ) -> Result> + { match self.patch_test_with_http_info(public_id, body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -2439,43 +3175,101 @@ impl SyntheticsAPI { public_id: String, body: crate::datadogV1::model::SyntheticsPatchTestBody, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.patch_test"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/synthetics/tests/{public_id}", local_configuration.get_operation_host(operation_id), - public_id = urlencode(public_id) + public_id = datadog::urlencode(public_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -2487,22 +3281,22 @@ impl SyntheticsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -2510,14 +3304,16 @@ impl SyntheticsAPI { pub async fn trigger_ci_tests( &self, body: crate::datadogV1::model::SyntheticsCITestBody, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::SyntheticsTriggerCITestsResponse, + datadog::Error, + > { match self.trigger_ci_tests_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -2531,13 +3327,13 @@ impl SyntheticsAPI { &self, body: crate::datadogV1::model::SyntheticsCITestBody, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.trigger_ci_tests"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/synthetics/tests/trigger/ci", @@ -2546,27 +3342,85 @@ impl SyntheticsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -2578,23 +3432,23 @@ impl SyntheticsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -2602,14 +3456,16 @@ impl SyntheticsAPI { pub async fn trigger_tests( &self, body: crate::datadogV1::model::SyntheticsTriggerBody, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::SyntheticsTriggerCITestsResponse, + datadog::Error, + > { match self.trigger_tests_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -2623,13 +3479,13 @@ impl SyntheticsAPI { &self, body: crate::datadogV1::model::SyntheticsTriggerBody, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.trigger_tests"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/synthetics/tests/trigger", @@ -2638,27 +3494,85 @@ impl SyntheticsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -2670,22 +3584,22 @@ impl SyntheticsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -2694,13 +3608,14 @@ impl SyntheticsAPI { &self, public_id: String, body: crate::datadogV1::model::SyntheticsAPITest, - ) -> Result> { + ) -> Result> + { match self.update_api_test_with_http_info(public_id, body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -2715,43 +3630,101 @@ impl SyntheticsAPI { public_id: String, body: crate::datadogV1::model::SyntheticsAPITest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.update_api_test"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/synthetics/tests/api/{public_id}", local_configuration.get_operation_host(operation_id), - public_id = urlencode(public_id) + public_id = datadog::urlencode(public_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -2762,23 +3735,23 @@ impl SyntheticsAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -2787,7 +3760,10 @@ impl SyntheticsAPI { &self, public_id: String, body: crate::datadogV1::model::SyntheticsBrowserTest, - ) -> Result> { + ) -> Result< + crate::datadogV1::model::SyntheticsBrowserTest, + datadog::Error, + > { match self .update_browser_test_with_http_info(public_id, body) .await @@ -2796,7 +3772,7 @@ impl SyntheticsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -2811,43 +3787,101 @@ impl SyntheticsAPI { public_id: String, body: crate::datadogV1::model::SyntheticsBrowserTest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.update_browser_test"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/synthetics/tests/browser/{public_id}", local_configuration.get_operation_host(operation_id), - public_id = urlencode(public_id) + public_id = datadog::urlencode(public_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -2859,23 +3893,23 @@ impl SyntheticsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -2884,8 +3918,10 @@ impl SyntheticsAPI { &self, location_id: String, body: crate::datadogV1::model::SyntheticsPrivateLocation, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::SyntheticsPrivateLocation, + datadog::Error, + > { match self .update_private_location_with_http_info(location_id, body) .await @@ -2894,7 +3930,7 @@ impl SyntheticsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -2909,43 +3945,101 @@ impl SyntheticsAPI { location_id: String, body: crate::datadogV1::model::SyntheticsPrivateLocation, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.update_private_location"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/synthetics/private-locations/{location_id}", local_configuration.get_operation_host(operation_id), - location_id = urlencode(location_id) + location_id = datadog::urlencode(location_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -2957,23 +4051,23 @@ impl SyntheticsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -2982,7 +4076,7 @@ impl SyntheticsAPI { &self, public_id: String, body: crate::datadogV1::model::SyntheticsUpdateTestPauseStatusPayload, - ) -> Result> { + ) -> Result> { match self .update_test_pause_status_with_http_info(public_id, body) .await @@ -2991,7 +4085,7 @@ impl SyntheticsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -3005,41 +4099,99 @@ impl SyntheticsAPI { &self, public_id: String, body: crate::datadogV1::model::SyntheticsUpdateTestPauseStatusPayload, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v1.update_test_pause_status"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/synthetics/tests/{public_id}/status", local_configuration.get_operation_host(operation_id), - public_id = urlencode(public_id) + public_id = datadog::urlencode(public_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -3049,23 +4201,23 @@ impl SyntheticsAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV1/api/api_tags.rs b/src/datadogV1/api/api_tags.rs index 84d550a25..11ec85df8 100644 --- a/src/datadogV1/api/api_tags.rs +++ b/src/datadogV1/api/api_tags.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// CreateHostTagsOptionalParams is a struct for passing parameters to the method [`TagsAPI::create_host_tags`] #[non_exhaustive] @@ -143,14 +148,13 @@ pub enum UpdateHostTagsError { #[derive(Debug, Clone)] pub struct TagsAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for TagsAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -158,8 +162,52 @@ impl TagsAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// This endpoint allows you to add new tags to a host, @@ -169,7 +217,7 @@ impl TagsAPI { host_name: String, body: crate::datadogV1::model::HostTags, params: CreateHostTagsOptionalParams, - ) -> Result> { + ) -> Result> { match self .create_host_tags_with_http_info(host_name, body, params) .await @@ -178,7 +226,7 @@ impl TagsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -194,20 +242,22 @@ impl TagsAPI { host_name: String, body: crate::datadogV1::model::HostTags, params: CreateHostTagsOptionalParams, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.create_host_tags"; // unbox and build optional parameters let source = params.source; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/tags/hosts/{host_name}", local_configuration.get_operation_host(operation_id), - host_name = urlencode(host_name) + host_name = datadog::urlencode(host_name) ); let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); @@ -217,27 +267,85 @@ impl TagsAPI { local_req_builder.query(&[("source", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -247,23 +355,23 @@ impl TagsAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -273,7 +381,7 @@ impl TagsAPI { &self, host_name: String, params: DeleteHostTagsOptionalParams, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .delete_host_tags_with_http_info(host_name, params) .await @@ -289,19 +397,19 @@ impl TagsAPI { &self, host_name: String, params: DeleteHostTagsOptionalParams, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v1.delete_host_tags"; // unbox and build optional parameters let source = params.source; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/tags/hosts/{host_name}", local_configuration.get_operation_host(operation_id), - host_name = urlencode(host_name) + host_name = datadog::urlencode(host_name) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); @@ -311,20 +419,39 @@ impl TagsAPI { local_req_builder.query(&[("source", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -332,7 +459,7 @@ impl TagsAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -340,12 +467,12 @@ impl TagsAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -354,13 +481,13 @@ impl TagsAPI { &self, host_name: String, params: GetHostTagsOptionalParams, - ) -> Result> { + ) -> Result> { match self.get_host_tags_with_http_info(host_name, params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -374,19 +501,22 @@ impl TagsAPI { &self, host_name: String, params: GetHostTagsOptionalParams, - ) -> Result, Error> { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.get_host_tags"; // unbox and build optional parameters let source = params.source; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/tags/hosts/{host_name}", local_configuration.get_operation_host(operation_id), - host_name = urlencode(host_name) + host_name = datadog::urlencode(host_name) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); @@ -396,20 +526,39 @@ impl TagsAPI { local_req_builder.query(&[("source", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -419,22 +568,22 @@ impl TagsAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -442,13 +591,13 @@ impl TagsAPI { pub async fn list_host_tags( &self, params: ListHostTagsOptionalParams, - ) -> Result> { + ) -> Result> { match self.list_host_tags_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -461,15 +610,17 @@ impl TagsAPI { pub async fn list_host_tags_with_http_info( &self, params: ListHostTagsOptionalParams, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.list_host_tags"; // unbox and build optional parameters let source = params.source; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/tags/hosts", @@ -483,20 +634,39 @@ impl TagsAPI { local_req_builder.query(&[("source", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -506,22 +676,22 @@ impl TagsAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -532,7 +702,7 @@ impl TagsAPI { host_name: String, body: crate::datadogV1::model::HostTags, params: UpdateHostTagsOptionalParams, - ) -> Result> { + ) -> Result> { match self .update_host_tags_with_http_info(host_name, body, params) .await @@ -541,7 +711,7 @@ impl TagsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -557,20 +727,22 @@ impl TagsAPI { host_name: String, body: crate::datadogV1::model::HostTags, params: UpdateHostTagsOptionalParams, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.update_host_tags"; // unbox and build optional parameters let source = params.source; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/tags/hosts/{host_name}", local_configuration.get_operation_host(operation_id), - host_name = urlencode(host_name) + host_name = datadog::urlencode(host_name) ); let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); @@ -580,27 +752,85 @@ impl TagsAPI { local_req_builder.query(&[("source", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -610,23 +840,23 @@ impl TagsAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV1/api/api_usage_metering.rs b/src/datadogV1/api/api_usage_metering.rs index b1fd209cd..8bf483657 100644 --- a/src/datadogV1/api/api_usage_metering.rs +++ b/src/datadogV1/api/api_usage_metering.rs @@ -1,8 +1,8 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; /// GetDailyCustomReportsOptionalParams is a struct for passing parameters to the method [`UsageMeteringAPI::get_daily_custom_reports`] @@ -234,57 +234,6 @@ impl GetUsageAnalyzedLogsOptionalParams { } } -/// GetUsageAttributionOptionalParams is a struct for passing parameters to the method [`UsageMeteringAPI::get_usage_attribution`] -#[non_exhaustive] -#[derive(Clone, Default, Debug)] -pub struct GetUsageAttributionOptionalParams { - /// Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for usage ending this month. - pub end_month: Option, - /// The direction to sort by: `[desc, asc]`. - pub sort_direction: Option, - /// The field to sort by. - pub sort_name: Option, - /// Include child org usage in the response. Defaults to false. - pub include_descendants: Option, - /// Number of records to skip before beginning to return. - pub offset: Option, - /// Maximum number of records to be returned. - pub limit: Option, -} - -impl GetUsageAttributionOptionalParams { - /// Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for usage ending this month. - pub fn end_month(mut self, value: String) -> Self { - self.end_month = Some(value); - self - } - /// The direction to sort by: `[desc, asc]`. - pub fn sort_direction(mut self, value: crate::datadogV1::model::UsageSortDirection) -> Self { - self.sort_direction = Some(value); - self - } - /// The field to sort by. - pub fn sort_name(mut self, value: crate::datadogV1::model::UsageAttributionSort) -> Self { - self.sort_name = Some(value); - self - } - /// Include child org usage in the response. Defaults to false. - pub fn include_descendants(mut self, value: bool) -> Self { - self.include_descendants = Some(value); - self - } - /// Number of records to skip before beginning to return. - pub fn offset(mut self, value: i64) -> Self { - self.offset = Some(value); - self - } - /// Maximum number of records to be returned. - pub fn limit(mut self, value: i64) -> Self { - self.limit = Some(value); - self - } -} - /// GetUsageAuditLogsOptionalParams is a struct for passing parameters to the method [`UsageMeteringAPI::get_usage_audit_logs`] #[non_exhaustive] #[derive(Clone, Default, Debug)] @@ -893,15 +842,6 @@ pub enum GetUsageAnalyzedLogsError { UnknownValue(serde_json::Value), } -/// GetUsageAttributionError is a struct for typed errors of method [`UsageMeteringAPI::get_usage_attribution`] -#[derive(Debug, Clone, Serialize, Deserialize)] -#[serde(untagged)] -pub enum GetUsageAttributionError { - Status403(Option), - Status429(Option), - UnknownValue(serde_json::Value), -} - /// GetUsageAuditLogsError is a struct for typed errors of method [`UsageMeteringAPI::get_usage_audit_logs`] #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] @@ -1184,14 +1124,13 @@ pub enum GetUsageTopAvgMetricsError { #[derive(Debug, Clone)] pub struct UsageMeteringAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for UsageMeteringAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -1199,8 +1138,52 @@ impl UsageMeteringAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Get daily custom reports. @@ -1211,14 +1194,14 @@ impl UsageMeteringAPI { params: GetDailyCustomReportsOptionalParams, ) -> Result< crate::datadogV1::model::UsageCustomReportsResponse, - Error, + datadog::Error, > { match self.get_daily_custom_reports_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1234,8 +1217,8 @@ impl UsageMeteringAPI { &self, params: GetDailyCustomReportsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_daily_custom_reports"; @@ -1246,7 +1229,7 @@ impl UsageMeteringAPI { let sort_dir = params.sort_dir; let sort = params.sort; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/daily_custom_reports", @@ -1272,20 +1255,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("sort", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1297,23 +1302,23 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1339,7 +1344,7 @@ impl UsageMeteringAPI { params: GetHourlyUsageAttributionOptionalParams, ) -> Result< crate::datadogV1::model::HourlyUsageAttributionResponse, - Error, + datadog::Error, > { match self .get_hourly_usage_attribution_with_http_info(start_hr, usage_type, params) @@ -1349,7 +1354,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1379,8 +1384,8 @@ impl UsageMeteringAPI { usage_type: crate::datadogV1::model::HourlyUsageAttributionUsageType, params: GetHourlyUsageAttributionOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_hourly_usage_attribution"; @@ -1391,7 +1396,7 @@ impl UsageMeteringAPI { let tag_breakdown_keys = params.tag_breakdown_keys; let include_descendants = params.include_descendants; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/hourly-attribution", @@ -1419,20 +1424,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("include_descendants", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1444,35 +1471,35 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get hourly usage for incident management. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_incident_management( &self, start_hr: String, params: GetIncidentManagementOptionalParams, ) -> Result< crate::datadogV1::model::UsageIncidentManagementResponse, - Error, + datadog::Error, > { match self .get_incident_management_with_http_info(start_hr, params) @@ -1482,7 +1509,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1492,14 +1519,14 @@ impl UsageMeteringAPI { } /// Get hourly usage for incident management. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_incident_management_with_http_info( &self, start_hr: String, params: GetIncidentManagementOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_incident_management"; @@ -1507,7 +1534,7 @@ impl UsageMeteringAPI { // unbox and build optional parameters let end_hr = params.end_hr; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/incident-management", @@ -1522,20 +1549,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_hr", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1547,34 +1596,36 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get hourly usage for ingested spans. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_ingested_spans( &self, start_hr: String, params: GetIngestedSpansOptionalParams, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::UsageIngestedSpansResponse, + datadog::Error, + > { match self .get_ingested_spans_with_http_info(start_hr, params) .await @@ -1583,7 +1634,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1593,14 +1644,14 @@ impl UsageMeteringAPI { } /// Get hourly usage for ingested spans. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_ingested_spans_with_http_info( &self, start_hr: String, params: GetIngestedSpansOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_ingested_spans"; @@ -1608,7 +1659,7 @@ impl UsageMeteringAPI { // unbox and build optional parameters let end_hr = params.end_hr; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/ingested-spans", @@ -1623,20 +1674,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_hr", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1648,23 +1721,23 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1676,14 +1749,14 @@ impl UsageMeteringAPI { params: GetMonthlyCustomReportsOptionalParams, ) -> Result< crate::datadogV1::model::UsageCustomReportsResponse, - Error, + datadog::Error, > { match self.get_monthly_custom_reports_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1699,8 +1772,8 @@ impl UsageMeteringAPI { &self, params: GetMonthlyCustomReportsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_monthly_custom_reports"; @@ -1711,7 +1784,7 @@ impl UsageMeteringAPI { let sort_dir = params.sort_dir; let sort = params.sort; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/monthly_custom_reports", @@ -1737,20 +1810,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("sort", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1762,23 +1857,23 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1804,7 +1899,7 @@ impl UsageMeteringAPI { params: GetMonthlyUsageAttributionOptionalParams, ) -> Result< crate::datadogV1::model::MonthlyUsageAttributionResponse, - Error, + datadog::Error, > { match self .get_monthly_usage_attribution_with_http_info(start_month, fields, params) @@ -1814,7 +1909,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1844,8 +1939,8 @@ impl UsageMeteringAPI { fields: crate::datadogV1::model::MonthlyUsageAttributionSupportedMetrics, params: GetMonthlyUsageAttributionOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_monthly_usage_attribution"; @@ -1858,7 +1953,7 @@ impl UsageMeteringAPI { let next_record_id = params.next_record_id; let include_descendants = params.include_descendants; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/monthly-attribution", @@ -1894,20 +1989,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("include_descendants", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1919,23 +2036,23 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1947,7 +2064,7 @@ impl UsageMeteringAPI { report_id: String, ) -> Result< crate::datadogV1::model::UsageSpecifiedCustomReportsResponse, - Error, + datadog::Error, > { match self .get_specified_daily_custom_reports_with_http_info(report_id) @@ -1957,7 +2074,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1973,36 +2090,58 @@ impl UsageMeteringAPI { &self, report_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_specified_daily_custom_reports"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/daily_custom_reports/{report_id}", local_configuration.get_operation_host(operation_id), - report_id = urlencode(report_id) + report_id = datadog::urlencode(report_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -2014,23 +2153,23 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -2042,7 +2181,7 @@ impl UsageMeteringAPI { report_id: String, ) -> Result< crate::datadogV1::model::UsageSpecifiedCustomReportsResponse, - Error, + datadog::Error, > { match self .get_specified_monthly_custom_reports_with_http_info(report_id) @@ -2052,7 +2191,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -2068,36 +2207,58 @@ impl UsageMeteringAPI { &self, report_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_specified_monthly_custom_reports"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/monthly_custom_reports/{report_id}", local_configuration.get_operation_host(operation_id), - report_id = urlencode(report_id) + report_id = datadog::urlencode(report_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -2109,34 +2270,36 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get hourly usage for analyzed logs (Security Monitoring). - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_analyzed_logs( &self, start_hr: String, params: GetUsageAnalyzedLogsOptionalParams, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::UsageAnalyzedLogsResponse, + datadog::Error, + > { match self .get_usage_analyzed_logs_with_http_info(start_hr, params) .await @@ -2145,7 +2308,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -2155,14 +2318,14 @@ impl UsageMeteringAPI { } /// Get hourly usage for analyzed logs (Security Monitoring). - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_analyzed_logs_with_http_info( &self, start_hr: String, params: GetUsageAnalyzedLogsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_usage_analyzed_logs"; @@ -2170,7 +2333,7 @@ impl UsageMeteringAPI { // unbox and build optional parameters let end_hr = params.end_hr; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/analyzed_logs", @@ -2185,151 +2348,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_hr", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); - // build auth - if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); - }; - if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); - }; - - let local_req = local_req_builder.build()?; - let local_resp = local_client.execute(local_req).await?; - - let local_status = local_resp.status(); - let local_content = local_resp.text().await?; - - if !local_status.is_client_error() && !local_status.is_server_error() { - match serde_json::from_str::( - &local_content, - ) { - Ok(e) => { - return Ok(ResponseContent { - status: local_status, - content: local_content, - entity: Some(e), - }) - } - Err(e) => return Err(crate::datadog::Error::Serde(e)), - }; - } else { - let local_entity: Option = - serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { - status: local_status, - content: local_content, - entity: local_entity, - }; - Err(Error::ResponseError(local_error)) - } - } - - /// Get usage attribution. - /// **Note:** This endpoint will be fully deprecated on December 1, 2022. - /// Refer to [Migrating from v1 to v2 of the Usage Attribution API]() for the associated migration guide. - pub async fn get_usage_attribution( - &self, - start_month: String, - fields: crate::datadogV1::model::UsageAttributionSupportedMetrics, - params: GetUsageAttributionOptionalParams, - ) -> Result> - { - match self - .get_usage_attribution_with_http_info(start_month, fields, params) - .await - { - Ok(response_content) => { - if let Some(e) = response_content.entity { - Ok(e) - } else { - Err(Error::Serde(serde::de::Error::custom( - "response content was None", - ))) - } + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) } - Err(err) => Err(err), - } - } - - /// Get usage attribution. - /// **Note:** This endpoint will be fully deprecated on December 1, 2022. - /// Refer to [Migrating from v1 to v2 of the Usage Attribution API]() for the associated migration guide. - pub async fn get_usage_attribution_with_http_info( - &self, - start_month: String, - fields: crate::datadogV1::model::UsageAttributionSupportedMetrics, - params: GetUsageAttributionOptionalParams, - ) -> Result< - ResponseContent, - Error, - > { - let local_configuration = &self.config; - let operation_id = "v1.get_usage_attribution"; - - // unbox and build optional parameters - let end_month = params.end_month; - let sort_direction = params.sort_direction; - let sort_name = params.sort_name; - let include_descendants = params.include_descendants; - let offset = params.offset; - let limit = params.limit; - - let local_client = &local_configuration.client; - - let local_uri_str = format!( - "{}/api/v1/usage/attribution", - local_configuration.get_operation_host(operation_id) - ); - let mut local_req_builder = - local_client.request(reqwest::Method::GET, local_uri_str.as_str()); - - local_req_builder = local_req_builder.query(&[("start_month", &start_month.to_string())]); - local_req_builder = local_req_builder.query(&[("fields", &fields.to_string())]); - if let Some(ref local_query_param) = end_month { - local_req_builder = - local_req_builder.query(&[("end_month", &local_query_param.to_string())]); - }; - if let Some(ref local_query_param) = sort_direction { - local_req_builder = - local_req_builder.query(&[("sort_direction", &local_query_param.to_string())]); - }; - if let Some(ref local_query_param) = sort_name { - local_req_builder = - local_req_builder.query(&[("sort_name", &local_query_param.to_string())]); - }; - if let Some(ref local_query_param) = include_descendants { - local_req_builder = - local_req_builder.query(&[("include_descendants", &local_query_param.to_string())]); - }; - if let Some(ref local_query_param) = offset { - local_req_builder = - local_req_builder.query(&[("offset", &local_query_param.to_string())]); - }; - if let Some(ref local_query_param) = limit { - local_req_builder = - local_req_builder.query(&[("limit", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); - // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -2337,27 +2391,27 @@ impl UsageMeteringAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - match serde_json::from_str::( + match serde_json::from_str::( &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { - let local_entity: Option = + let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -2367,8 +2421,10 @@ impl UsageMeteringAPI { &self, start_hr: String, params: GetUsageAuditLogsOptionalParams, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::UsageAuditLogsResponse, + datadog::Error, + > { match self .get_usage_audit_logs_with_http_info(start_hr, params) .await @@ -2377,7 +2433,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -2393,8 +2449,8 @@ impl UsageMeteringAPI { start_hr: String, params: GetUsageAuditLogsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_usage_audit_logs"; @@ -2402,7 +2458,7 @@ impl UsageMeteringAPI { // unbox and build optional parameters let end_hr = params.end_hr; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/audit_logs", @@ -2417,20 +2473,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_hr", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -2442,23 +2520,23 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -2468,14 +2546,14 @@ impl UsageMeteringAPI { params: GetUsageBillableSummaryOptionalParams, ) -> Result< crate::datadogV1::model::UsageBillableSummaryResponse, - Error, + datadog::Error, > { match self.get_usage_billable_summary_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -2489,8 +2567,8 @@ impl UsageMeteringAPI { &self, params: GetUsageBillableSummaryOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_usage_billable_summary"; @@ -2498,7 +2576,7 @@ impl UsageMeteringAPI { // unbox and build optional parameters let month = params.month; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/billable-summary", @@ -2512,20 +2590,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("month", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -2537,39 +2637,42 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get hourly usage for CI visibility (tests, pipeline, and spans). - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_ci_app( &self, start_hr: String, params: GetUsageCIAppOptionalParams, - ) -> Result> { + ) -> Result< + crate::datadogV1::model::UsageCIVisibilityResponse, + datadog::Error, + > { match self.get_usage_ci_app_with_http_info(start_hr, params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -2579,14 +2682,14 @@ impl UsageMeteringAPI { } /// Get hourly usage for CI visibility (tests, pipeline, and spans). - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_ci_app_with_http_info( &self, start_hr: String, params: GetUsageCIAppOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_usage_ci_app"; @@ -2594,7 +2697,7 @@ impl UsageMeteringAPI { // unbox and build optional parameters let end_hr = params.end_hr; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/ci-app", @@ -2609,20 +2712,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_hr", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -2634,39 +2759,39 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get hourly usage for cloud workload security. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_cws( &self, start_hr: String, params: GetUsageCWSOptionalParams, - ) -> Result> { + ) -> Result> { match self.get_usage_cws_with_http_info(start_hr, params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -2676,20 +2801,22 @@ impl UsageMeteringAPI { } /// Get hourly usage for cloud workload security. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_cws_with_http_info( &self, start_hr: String, params: GetUsageCWSOptionalParams, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.get_usage_cws"; // unbox and build optional parameters let end_hr = params.end_hr; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/cws", @@ -2704,20 +2831,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_hr", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -2728,34 +2877,34 @@ impl UsageMeteringAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get hourly usage for cloud security management (CSM) pro. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_cloud_security_posture_management( &self, start_hr: String, params: GetUsageCloudSecurityPostureManagementOptionalParams, ) -> Result< crate::datadogV1::model::UsageCloudSecurityPostureManagementResponse, - Error, + datadog::Error, > { match self .get_usage_cloud_security_posture_management_with_http_info(start_hr, params) @@ -2765,7 +2914,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -2775,14 +2924,16 @@ impl UsageMeteringAPI { } /// Get hourly usage for cloud security management (CSM) pro. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_cloud_security_posture_management_with_http_info( &self, start_hr: String, params: GetUsageCloudSecurityPostureManagementOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent< + crate::datadogV1::model::UsageCloudSecurityPostureManagementResponse, + >, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_usage_cloud_security_posture_management"; @@ -2790,7 +2941,7 @@ impl UsageMeteringAPI { // unbox and build optional parameters let end_hr = params.end_hr; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/cspm", @@ -2805,20 +2956,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_hr", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -2831,39 +3004,39 @@ impl UsageMeteringAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get hourly usage for database monitoring - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_dbm( &self, start_hr: String, params: GetUsageDBMOptionalParams, - ) -> Result> { + ) -> Result> { match self.get_usage_dbm_with_http_info(start_hr, params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -2873,20 +3046,22 @@ impl UsageMeteringAPI { } /// Get hourly usage for database monitoring - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_dbm_with_http_info( &self, start_hr: String, params: GetUsageDBMOptionalParams, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.get_usage_dbm"; // unbox and build optional parameters let end_hr = params.end_hr; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/dbm", @@ -2901,20 +3076,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_hr", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -2925,32 +3122,33 @@ impl UsageMeteringAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get hourly usage for [Fargate](). - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_fargate( &self, start_hr: String, params: GetUsageFargateOptionalParams, - ) -> Result> { + ) -> Result> + { match self .get_usage_fargate_with_http_info(start_hr, params) .await @@ -2959,7 +3157,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -2969,14 +3167,14 @@ impl UsageMeteringAPI { } /// Get hourly usage for [Fargate](). - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_fargate_with_http_info( &self, start_hr: String, params: GetUsageFargateOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_usage_fargate"; @@ -2984,7 +3182,7 @@ impl UsageMeteringAPI { // unbox and build optional parameters let end_hr = params.end_hr; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/fargate", @@ -2999,20 +3197,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_hr", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -3024,39 +3244,40 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get hourly usage for hosts and containers. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_hosts( &self, start_hr: String, params: GetUsageHostsOptionalParams, - ) -> Result> { + ) -> Result> + { match self.get_usage_hosts_with_http_info(start_hr, params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -3066,14 +3287,14 @@ impl UsageMeteringAPI { } /// Get hourly usage for hosts and containers. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_hosts_with_http_info( &self, start_hr: String, params: GetUsageHostsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_usage_hosts"; @@ -3081,7 +3302,7 @@ impl UsageMeteringAPI { // unbox and build optional parameters let end_hr = params.end_hr; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/hosts", @@ -3096,20 +3317,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_hr", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -3121,34 +3364,36 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get hourly usage for indexed spans. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_indexed_spans( &self, start_hr: String, params: GetUsageIndexedSpansOptionalParams, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::UsageIndexedSpansResponse, + datadog::Error, + > { match self .get_usage_indexed_spans_with_http_info(start_hr, params) .await @@ -3157,7 +3402,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -3167,14 +3412,14 @@ impl UsageMeteringAPI { } /// Get hourly usage for indexed spans. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_indexed_spans_with_http_info( &self, start_hr: String, params: GetUsageIndexedSpansOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_usage_indexed_spans"; @@ -3182,7 +3427,7 @@ impl UsageMeteringAPI { // unbox and build optional parameters let end_hr = params.end_hr; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/indexed-spans", @@ -3197,20 +3442,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_hr", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -3222,34 +3489,36 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get hourly usage for IoT. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_internet_of_things( &self, start_hr: String, params: GetUsageInternetOfThingsOptionalParams, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::UsageIoTResponse, + datadog::Error, + > { match self .get_usage_internet_of_things_with_http_info(start_hr, params) .await @@ -3258,7 +3527,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -3268,14 +3537,14 @@ impl UsageMeteringAPI { } /// Get hourly usage for IoT. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_internet_of_things_with_http_info( &self, start_hr: String, params: GetUsageInternetOfThingsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_usage_internet_of_things"; @@ -3283,7 +3552,7 @@ impl UsageMeteringAPI { // unbox and build optional parameters let end_hr = params.end_hr; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/iot", @@ -3298,20 +3567,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_hr", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -3322,39 +3613,40 @@ impl UsageMeteringAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } - /// Get hourly usage for lambda. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// Get hourly usage for Lambda. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_lambda( &self, start_hr: String, params: GetUsageLambdaOptionalParams, - ) -> Result> { + ) -> Result> + { match self.get_usage_lambda_with_http_info(start_hr, params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -3363,15 +3655,15 @@ impl UsageMeteringAPI { } } - /// Get hourly usage for lambda. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// Get hourly usage for Lambda. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_lambda_with_http_info( &self, start_hr: String, params: GetUsageLambdaOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_usage_lambda"; @@ -3379,7 +3671,7 @@ impl UsageMeteringAPI { // unbox and build optional parameters let end_hr = params.end_hr; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/aws_lambda", @@ -3394,20 +3686,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_hr", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -3419,39 +3733,39 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get hourly usage for logs. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_logs( &self, start_hr: String, params: GetUsageLogsOptionalParams, - ) -> Result> { + ) -> Result> { match self.get_usage_logs_with_http_info(start_hr, params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -3461,20 +3775,22 @@ impl UsageMeteringAPI { } /// Get hourly usage for logs. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_logs_with_http_info( &self, start_hr: String, params: GetUsageLogsOptionalParams, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.get_usage_logs"; // unbox and build optional parameters let end_hr = params.end_hr; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/logs", @@ -3489,20 +3805,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_hr", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -3513,22 +3851,22 @@ impl UsageMeteringAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -3537,8 +3875,10 @@ impl UsageMeteringAPI { &self, start_hr: String, params: GetUsageLogsByIndexOptionalParams, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::UsageLogsByIndexResponse, + datadog::Error, + > { match self .get_usage_logs_by_index_with_http_info(start_hr, params) .await @@ -3547,7 +3887,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -3562,8 +3902,8 @@ impl UsageMeteringAPI { start_hr: String, params: GetUsageLogsByIndexOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_usage_logs_by_index"; @@ -3572,7 +3912,7 @@ impl UsageMeteringAPI { let end_hr = params.end_hr; let index_name = params.index_name; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/logs_by_index", @@ -3598,20 +3938,42 @@ impl UsageMeteringAPI { )]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -3623,35 +3985,35 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get hourly usage for indexed logs by retention period. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_logs_by_retention( &self, start_hr: String, params: GetUsageLogsByRetentionOptionalParams, ) -> Result< crate::datadogV1::model::UsageLogsByRetentionResponse, - Error, + datadog::Error, > { match self .get_usage_logs_by_retention_with_http_info(start_hr, params) @@ -3661,7 +4023,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -3671,14 +4033,14 @@ impl UsageMeteringAPI { } /// Get hourly usage for indexed logs by retention period. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_logs_by_retention_with_http_info( &self, start_hr: String, params: GetUsageLogsByRetentionOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_usage_logs_by_retention"; @@ -3686,7 +4048,7 @@ impl UsageMeteringAPI { // unbox and build optional parameters let end_hr = params.end_hr; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/logs-by-retention", @@ -3701,20 +4063,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_hr", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -3726,34 +4110,36 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get hourly usage for network flows. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_network_flows( &self, start_hr: String, params: GetUsageNetworkFlowsOptionalParams, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::UsageNetworkFlowsResponse, + datadog::Error, + > { match self .get_usage_network_flows_with_http_info(start_hr, params) .await @@ -3762,7 +4148,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -3772,14 +4158,14 @@ impl UsageMeteringAPI { } /// Get hourly usage for network flows. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_network_flows_with_http_info( &self, start_hr: String, params: GetUsageNetworkFlowsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_usage_network_flows"; @@ -3787,7 +4173,7 @@ impl UsageMeteringAPI { // unbox and build optional parameters let end_hr = params.end_hr; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/network_flows", @@ -3802,20 +4188,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_hr", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -3827,34 +4235,36 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get hourly usage for network hosts. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_network_hosts( &self, start_hr: String, params: GetUsageNetworkHostsOptionalParams, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::UsageNetworkHostsResponse, + datadog::Error, + > { match self .get_usage_network_hosts_with_http_info(start_hr, params) .await @@ -3863,7 +4273,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -3873,14 +4283,14 @@ impl UsageMeteringAPI { } /// Get hourly usage for network hosts. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_network_hosts_with_http_info( &self, start_hr: String, params: GetUsageNetworkHostsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_usage_network_hosts"; @@ -3888,7 +4298,7 @@ impl UsageMeteringAPI { // unbox and build optional parameters let end_hr = params.end_hr; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/network_hosts", @@ -3903,20 +4313,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_hr", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -3928,35 +4360,35 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get hourly usage for online archive. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_online_archive( &self, start_hr: String, params: GetUsageOnlineArchiveOptionalParams, ) -> Result< crate::datadogV1::model::UsageOnlineArchiveResponse, - Error, + datadog::Error, > { match self .get_usage_online_archive_with_http_info(start_hr, params) @@ -3966,7 +4398,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -3976,14 +4408,14 @@ impl UsageMeteringAPI { } /// Get hourly usage for online archive. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_online_archive_with_http_info( &self, start_hr: String, params: GetUsageOnlineArchiveOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_usage_online_archive"; @@ -3991,7 +4423,7 @@ impl UsageMeteringAPI { // unbox and build optional parameters let end_hr = params.end_hr; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/online-archive", @@ -4006,20 +4438,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_hr", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -4031,34 +4485,36 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get hourly usage for profiled hosts. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_profiling( &self, start_hr: String, params: GetUsageProfilingOptionalParams, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::UsageProfilingResponse, + datadog::Error, + > { match self .get_usage_profiling_with_http_info(start_hr, params) .await @@ -4067,7 +4523,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -4077,14 +4533,14 @@ impl UsageMeteringAPI { } /// Get hourly usage for profiled hosts. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_profiling_with_http_info( &self, start_hr: String, params: GetUsageProfilingOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_usage_profiling"; @@ -4092,7 +4548,7 @@ impl UsageMeteringAPI { // unbox and build optional parameters let end_hr = params.end_hr; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/profiling", @@ -4107,20 +4563,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_hr", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -4132,34 +4610,36 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get hourly usage for [RUM]() Sessions. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_rum_sessions( &self, start_hr: String, params: GetUsageRumSessionsOptionalParams, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::UsageRumSessionsResponse, + datadog::Error, + > { match self .get_usage_rum_sessions_with_http_info(start_hr, params) .await @@ -4168,7 +4648,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -4178,14 +4658,14 @@ impl UsageMeteringAPI { } /// Get hourly usage for [RUM]() Sessions. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_rum_sessions_with_http_info( &self, start_hr: String, params: GetUsageRumSessionsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_usage_rum_sessions"; @@ -4194,7 +4674,7 @@ impl UsageMeteringAPI { let end_hr = params.end_hr; let type_ = params.type_; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/rum_sessions", @@ -4213,20 +4693,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("type", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -4238,33 +4740,34 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get hourly usage for [RUM]() Units. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_rum_units( &self, start_hr: String, params: GetUsageRumUnitsOptionalParams, - ) -> Result> { + ) -> Result> + { match self .get_usage_rum_units_with_http_info(start_hr, params) .await @@ -4273,7 +4776,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -4283,14 +4786,14 @@ impl UsageMeteringAPI { } /// Get hourly usage for [RUM]() Units. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_rum_units_with_http_info( &self, start_hr: String, params: GetUsageRumUnitsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_usage_rum_units"; @@ -4298,7 +4801,7 @@ impl UsageMeteringAPI { // unbox and build optional parameters let end_hr = params.end_hr; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/rum", @@ -4313,20 +4816,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_hr", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -4338,39 +4863,39 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get hourly usage for sensitive data scanner. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_sds( &self, start_hr: String, params: GetUsageSDSOptionalParams, - ) -> Result> { + ) -> Result> { match self.get_usage_sds_with_http_info(start_hr, params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -4380,20 +4905,22 @@ impl UsageMeteringAPI { } /// Get hourly usage for sensitive data scanner. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_sds_with_http_info( &self, start_hr: String, params: GetUsageSDSOptionalParams, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.get_usage_sds"; // unbox and build optional parameters let end_hr = params.end_hr; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/sds", @@ -4408,20 +4935,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_hr", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -4432,38 +4981,38 @@ impl UsageMeteringAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get hourly usage for SNMP devices. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_snmp( &self, start_hr: String, params: GetUsageSNMPOptionalParams, - ) -> Result> { + ) -> Result> { match self.get_usage_snmp_with_http_info(start_hr, params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -4473,20 +5022,22 @@ impl UsageMeteringAPI { } /// Get hourly usage for SNMP devices. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_snmp_with_http_info( &self, start_hr: String, params: GetUsageSNMPOptionalParams, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.get_usage_snmp"; // unbox and build optional parameters let end_hr = params.end_hr; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/snmp", @@ -4501,20 +5052,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_hr", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -4525,22 +5098,22 @@ impl UsageMeteringAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -4549,7 +5122,8 @@ impl UsageMeteringAPI { &self, start_month: String, params: GetUsageSummaryOptionalParams, - ) -> Result> { + ) -> Result> + { match self .get_usage_summary_with_http_info(start_month, params) .await @@ -4558,7 +5132,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -4573,8 +5147,8 @@ impl UsageMeteringAPI { start_month: String, params: GetUsageSummaryOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_usage_summary"; @@ -4583,7 +5157,7 @@ impl UsageMeteringAPI { let end_month = params.end_month; let include_org_details = params.include_org_details; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/summary", @@ -4602,20 +5176,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("include_org_details", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -4627,34 +5223,36 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get hourly usage for [synthetics checks](). - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_synthetics( &self, start_hr: String, params: GetUsageSyntheticsOptionalParams, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::UsageSyntheticsResponse, + datadog::Error, + > { match self .get_usage_synthetics_with_http_info(start_hr, params) .await @@ -4663,7 +5261,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -4673,14 +5271,14 @@ impl UsageMeteringAPI { } /// Get hourly usage for [synthetics checks](). - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_synthetics_with_http_info( &self, start_hr: String, params: GetUsageSyntheticsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_usage_synthetics"; @@ -4688,7 +5286,7 @@ impl UsageMeteringAPI { // unbox and build optional parameters let end_hr = params.end_hr; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/synthetics", @@ -4703,20 +5301,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_hr", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -4728,35 +5348,35 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get hourly usage for [synthetics API checks](). - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_synthetics_api( &self, start_hr: String, params: GetUsageSyntheticsAPIOptionalParams, ) -> Result< crate::datadogV1::model::UsageSyntheticsAPIResponse, - Error, + datadog::Error, > { match self .get_usage_synthetics_api_with_http_info(start_hr, params) @@ -4766,7 +5386,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -4776,14 +5396,14 @@ impl UsageMeteringAPI { } /// Get hourly usage for [synthetics API checks](). - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_synthetics_api_with_http_info( &self, start_hr: String, params: GetUsageSyntheticsAPIOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_usage_synthetics_api"; @@ -4791,7 +5411,7 @@ impl UsageMeteringAPI { // unbox and build optional parameters let end_hr = params.end_hr; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/synthetics_api", @@ -4806,20 +5426,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_hr", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -4831,35 +5473,35 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get hourly usage for synthetics browser checks. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_synthetics_browser( &self, start_hr: String, params: GetUsageSyntheticsBrowserOptionalParams, ) -> Result< crate::datadogV1::model::UsageSyntheticsBrowserResponse, - Error, + datadog::Error, > { match self .get_usage_synthetics_browser_with_http_info(start_hr, params) @@ -4869,7 +5511,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -4879,14 +5521,14 @@ impl UsageMeteringAPI { } /// Get hourly usage for synthetics browser checks. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_synthetics_browser_with_http_info( &self, start_hr: String, params: GetUsageSyntheticsBrowserOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_usage_synthetics_browser"; @@ -4894,7 +5536,7 @@ impl UsageMeteringAPI { // unbox and build optional parameters let end_hr = params.end_hr; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/synthetics_browser", @@ -4909,20 +5551,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_hr", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -4934,34 +5598,36 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get hourly usage for [custom metrics](). - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_timeseries( &self, start_hr: String, params: GetUsageTimeseriesOptionalParams, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::UsageTimeseriesResponse, + datadog::Error, + > { match self .get_usage_timeseries_with_http_info(start_hr, params) .await @@ -4970,7 +5636,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -4980,14 +5646,14 @@ impl UsageMeteringAPI { } /// Get hourly usage for [custom metrics](). - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](). Refer to [Migrating from the V1 Hourly Usage APIs to V2]() for the associated migration guide. pub async fn get_usage_timeseries_with_http_info( &self, start_hr: String, params: GetUsageTimeseriesOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_usage_timeseries"; @@ -4995,7 +5661,7 @@ impl UsageMeteringAPI { // unbox and build optional parameters let end_hr = params.end_hr; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/timeseries", @@ -5010,20 +5676,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_hr", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -5035,23 +5723,23 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -5061,14 +5749,14 @@ impl UsageMeteringAPI { params: GetUsageTopAvgMetricsOptionalParams, ) -> Result< crate::datadogV1::model::UsageTopAvgMetricsResponse, - Error, + datadog::Error, > { match self.get_usage_top_avg_metrics_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -5082,8 +5770,8 @@ impl UsageMeteringAPI { &self, params: GetUsageTopAvgMetricsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_usage_top_avg_metrics"; @@ -5095,7 +5783,7 @@ impl UsageMeteringAPI { let limit = params.limit; let next_record_id = params.next_record_id; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/usage/top_avg_metrics", @@ -5131,20 +5819,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("next_record_id", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -5156,23 +5866,23 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV1/api/api_users.rs b/src/datadogV1/api/api_users.rs index 563994293..235673bf0 100644 --- a/src/datadogV1/api/api_users.rs +++ b/src/datadogV1/api/api_users.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// CreateUserError is a struct for typed errors of method [`UsersAPI::create_user`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -59,14 +64,13 @@ pub enum UpdateUserError { #[derive(Debug, Clone)] pub struct UsersAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for UsersAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -74,8 +78,52 @@ impl UsersAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create a user for your organization. @@ -85,13 +133,13 @@ impl UsersAPI { pub async fn create_user( &self, body: crate::datadogV1::model::User, - ) -> Result> { + ) -> Result> { match self.create_user_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -107,12 +155,14 @@ impl UsersAPI { pub async fn create_user_with_http_info( &self, body: crate::datadogV1::model::User, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.create_user"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/user", @@ -121,27 +171,85 @@ impl UsersAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -151,22 +259,22 @@ impl UsersAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -177,13 +285,14 @@ impl UsersAPI { pub async fn disable_user( &self, user_handle: String, - ) -> Result> { + ) -> Result> + { match self.disable_user_with_http_info(user_handle).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -200,36 +309,55 @@ impl UsersAPI { &self, user_handle: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.disable_user"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/user/{user_handle}", local_configuration.get_operation_host(operation_id), - user_handle = urlencode(user_handle) + user_handle = datadog::urlencode(user_handle) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -241,22 +369,22 @@ impl UsersAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -264,13 +392,13 @@ impl UsersAPI { pub async fn get_user( &self, user_handle: String, - ) -> Result> { + ) -> Result> { match self.get_user_with_http_info(user_handle).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -283,34 +411,56 @@ impl UsersAPI { pub async fn get_user_with_http_info( &self, user_handle: String, - ) -> Result, Error> { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.get_user"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/user/{user_handle}", local_configuration.get_operation_host(operation_id), - user_handle = urlencode(user_handle) + user_handle = datadog::urlencode(user_handle) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -320,35 +470,35 @@ impl UsersAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// List all users for your organization. pub async fn list_users( &self, - ) -> Result> { + ) -> Result> { match self.list_users_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -360,12 +510,14 @@ impl UsersAPI { /// List all users for your organization. pub async fn list_users_with_http_info( &self, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.list_users"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/user", @@ -374,20 +526,39 @@ impl UsersAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -398,22 +569,22 @@ impl UsersAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -424,13 +595,13 @@ impl UsersAPI { &self, user_handle: String, body: crate::datadogV1::model::User, - ) -> Result> { + ) -> Result> { match self.update_user_with_http_info(user_handle, body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -446,42 +617,102 @@ impl UsersAPI { &self, user_handle: String, body: crate::datadogV1::model::User, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.update_user"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/user/{user_handle}", local_configuration.get_operation_host(operation_id), - user_handle = urlencode(user_handle) + user_handle = datadog::urlencode(user_handle) ); let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -491,22 +722,22 @@ impl UsersAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV1/api/api_webhooks_integration.rs b/src/datadogV1/api/api_webhooks_integration.rs index 87ad4262c..793bd4ed0 100644 --- a/src/datadogV1/api/api_webhooks_integration.rs +++ b/src/datadogV1/api/api_webhooks_integration.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// CreateWebhooksIntegrationError is a struct for typed errors of method [`WebhooksIntegrationAPI::create_webhooks_integration`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -91,14 +96,13 @@ pub enum UpdateWebhooksIntegrationCustomVariableError { #[derive(Debug, Clone)] pub struct WebhooksIntegrationAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for WebhooksIntegrationAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -106,22 +110,68 @@ impl WebhooksIntegrationAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Creates an endpoint with the name ``. pub async fn create_webhooks_integration( &self, body: crate::datadogV1::model::WebhooksIntegration, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::WebhooksIntegration, + datadog::Error, + > { match self.create_webhooks_integration_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -135,13 +185,13 @@ impl WebhooksIntegrationAPI { &self, body: crate::datadogV1::model::WebhooksIntegration, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.create_webhooks_integration"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/webhooks/configuration/webhooks", @@ -150,27 +200,85 @@ impl WebhooksIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -182,23 +290,23 @@ impl WebhooksIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -208,7 +316,7 @@ impl WebhooksIntegrationAPI { body: crate::datadogV1::model::WebhooksIntegrationCustomVariable, ) -> Result< crate::datadogV1::model::WebhooksIntegrationCustomVariableResponse, - Error, + datadog::Error, > { match self .create_webhooks_integration_custom_variable_with_http_info(body) @@ -218,7 +326,7 @@ impl WebhooksIntegrationAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -232,13 +340,15 @@ impl WebhooksIntegrationAPI { &self, body: crate::datadogV1::model::WebhooksIntegrationCustomVariable, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent< + crate::datadogV1::model::WebhooksIntegrationCustomVariableResponse, + >, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.create_webhooks_integration_custom_variable"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/webhooks/configuration/custom-variables", @@ -247,27 +357,85 @@ impl WebhooksIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -280,23 +448,23 @@ impl WebhooksIntegrationAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -304,7 +472,7 @@ impl WebhooksIntegrationAPI { pub async fn delete_webhooks_integration( &self, webhook_name: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .delete_webhooks_integration_with_http_info(webhook_name) .await @@ -318,34 +486,53 @@ impl WebhooksIntegrationAPI { pub async fn delete_webhooks_integration_with_http_info( &self, webhook_name: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v1.delete_webhooks_integration"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/webhooks/configuration/webhooks/{webhook_name}", local_configuration.get_operation_host(operation_id), - webhook_name = urlencode(webhook_name) + webhook_name = datadog::urlencode(webhook_name) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -353,7 +540,7 @@ impl WebhooksIntegrationAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -361,12 +548,12 @@ impl WebhooksIntegrationAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -374,7 +561,7 @@ impl WebhooksIntegrationAPI { pub async fn delete_webhooks_integration_custom_variable( &self, custom_variable_name: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .delete_webhooks_integration_custom_variable_with_http_info(custom_variable_name) .await @@ -388,34 +575,56 @@ impl WebhooksIntegrationAPI { pub async fn delete_webhooks_integration_custom_variable_with_http_info( &self, custom_variable_name: String, - ) -> Result, Error> { + ) -> Result< + datadog::ResponseContent<()>, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v1.delete_webhooks_integration_custom_variable"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/webhooks/configuration/custom-variables/{custom_variable_name}", local_configuration.get_operation_host(operation_id), - custom_variable_name = urlencode(custom_variable_name) + custom_variable_name = datadog::urlencode(custom_variable_name) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -423,7 +632,7 @@ impl WebhooksIntegrationAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -431,12 +640,12 @@ impl WebhooksIntegrationAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -444,8 +653,10 @@ impl WebhooksIntegrationAPI { pub async fn get_webhooks_integration( &self, webhook_name: String, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::WebhooksIntegration, + datadog::Error, + > { match self .get_webhooks_integration_with_http_info(webhook_name) .await @@ -454,7 +665,7 @@ impl WebhooksIntegrationAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -468,36 +679,55 @@ impl WebhooksIntegrationAPI { &self, webhook_name: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_webhooks_integration"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/webhooks/configuration/webhooks/{webhook_name}", local_configuration.get_operation_host(operation_id), - webhook_name = urlencode(webhook_name) + webhook_name = datadog::urlencode(webhook_name) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -509,23 +739,23 @@ impl WebhooksIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -538,7 +768,7 @@ impl WebhooksIntegrationAPI { custom_variable_name: String, ) -> Result< crate::datadogV1::model::WebhooksIntegrationCustomVariableResponse, - Error, + datadog::Error, > { match self .get_webhooks_integration_custom_variable_with_http_info(custom_variable_name) @@ -548,7 +778,7 @@ impl WebhooksIntegrationAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -565,36 +795,57 @@ impl WebhooksIntegrationAPI { &self, custom_variable_name: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent< + crate::datadogV1::model::WebhooksIntegrationCustomVariableResponse, + >, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.get_webhooks_integration_custom_variable"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/webhooks/configuration/custom-variables/{custom_variable_name}", local_configuration.get_operation_host(operation_id), - custom_variable_name = urlencode(custom_variable_name) + custom_variable_name = datadog::urlencode(custom_variable_name) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -607,23 +858,23 @@ impl WebhooksIntegrationAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -632,8 +883,10 @@ impl WebhooksIntegrationAPI { &self, webhook_name: String, body: crate::datadogV1::model::WebhooksIntegrationUpdateRequest, - ) -> Result> - { + ) -> Result< + crate::datadogV1::model::WebhooksIntegration, + datadog::Error, + > { match self .update_webhooks_integration_with_http_info(webhook_name, body) .await @@ -642,7 +895,7 @@ impl WebhooksIntegrationAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -657,43 +910,101 @@ impl WebhooksIntegrationAPI { webhook_name: String, body: crate::datadogV1::model::WebhooksIntegrationUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.update_webhooks_integration"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/webhooks/configuration/webhooks/{webhook_name}", local_configuration.get_operation_host(operation_id), - webhook_name = urlencode(webhook_name) + webhook_name = datadog::urlencode(webhook_name) ); let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -705,23 +1016,23 @@ impl WebhooksIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -732,7 +1043,7 @@ impl WebhooksIntegrationAPI { body: crate::datadogV1::model::WebhooksIntegrationCustomVariableUpdateRequest, ) -> Result< crate::datadogV1::model::WebhooksIntegrationCustomVariableResponse, - Error, + datadog::Error, > { match self .update_webhooks_integration_custom_variable_with_http_info(custom_variable_name, body) @@ -742,7 +1053,7 @@ impl WebhooksIntegrationAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -757,43 +1068,103 @@ impl WebhooksIntegrationAPI { custom_variable_name: String, body: crate::datadogV1::model::WebhooksIntegrationCustomVariableUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent< + crate::datadogV1::model::WebhooksIntegrationCustomVariableResponse, + >, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v1.update_webhooks_integration_custom_variable"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v1/integration/webhooks/configuration/custom-variables/{custom_variable_name}", local_configuration.get_operation_host(operation_id), - custom_variable_name = urlencode(custom_variable_name) + custom_variable_name = datadog::urlencode(custom_variable_name) ); let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -806,23 +1177,23 @@ impl WebhooksIntegrationAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV1/mod.rs b/src/datadogV1/mod.rs index f0d16bd38..a4f8bbe34 100644 --- a/src/datadogV1/mod.rs +++ b/src/datadogV1/mod.rs @@ -3,4 +3,35 @@ // Copyright 2019-Present Datadog, Inc. pub mod api; +pub use self::api::api_authentication; +pub use self::api::api_aws_integration; +pub use self::api::api_aws_logs_integration; +pub use self::api::api_azure_integration; +pub use self::api::api_dashboard_lists; +pub use self::api::api_dashboards; +pub use self::api::api_downtimes; +pub use self::api::api_events; +pub use self::api::api_gcp_integration; +pub use self::api::api_hosts; +pub use self::api::api_ip_ranges; +pub use self::api::api_key_management; +pub use self::api::api_logs; +pub use self::api::api_logs_indexes; +pub use self::api::api_logs_pipelines; +pub use self::api::api_metrics; +pub use self::api::api_monitors; +pub use self::api::api_notebooks; +pub use self::api::api_organizations; +pub use self::api::api_pager_duty_integration; +pub use self::api::api_security_monitoring; +pub use self::api::api_service_checks; +pub use self::api::api_service_level_objective_corrections; +pub use self::api::api_service_level_objectives; +pub use self::api::api_slack_integration; +pub use self::api::api_snapshots; +pub use self::api::api_synthetics; +pub use self::api::api_tags; +pub use self::api::api_usage_metering; +pub use self::api::api_users; +pub use self::api::api_webhooks_integration; pub mod model; diff --git a/src/datadogV1/model/mod.rs b/src/datadogV1/model/mod.rs index 4e2f1f306..bb8b3acaa 100644 --- a/src/datadogV1/model/mod.rs +++ b/src/datadogV1/model/mod.rs @@ -756,6 +756,8 @@ pub mod model_logs_index_list_response; pub use self::model_logs_index_list_response::LogsIndexListResponse; pub mod model_logs_index; pub use self::model_logs_index::LogsIndex; +pub mod model_logs_daily_limit_reset; +pub use self::model_logs_daily_limit_reset::LogsDailyLimitReset; pub mod model_logs_exclusion; pub use self::model_logs_exclusion::LogsExclusion; pub mod model_logs_exclusion_filter; @@ -1070,6 +1072,22 @@ pub mod model_service_level_objective; pub use self::model_service_level_objective::ServiceLevelObjective; pub mod model_service_level_objective_query; pub use self::model_service_level_objective_query::ServiceLevelObjectiveQuery; +pub mod model_slo_time_slice_spec; +pub use self::model_slo_time_slice_spec::SLOTimeSliceSpec; +pub mod model_slo_time_slice_condition; +pub use self::model_slo_time_slice_condition::SLOTimeSliceCondition; +pub mod model_slo_time_slice_comparator; +pub use self::model_slo_time_slice_comparator::SLOTimeSliceComparator; +pub mod model_slo_time_slice_query; +pub use self::model_slo_time_slice_query::SLOTimeSliceQuery; +pub mod model_slo_formula; +pub use self::model_slo_formula::SLOFormula; +pub mod model_slo_data_source_query_definition; +pub use self::model_slo_data_source_query_definition::SLODataSourceQueryDefinition; +pub mod model_slo_time_slice_interval; +pub use self::model_slo_time_slice_interval::SLOTimeSliceInterval; +pub mod model_slo_sli_spec; +pub use self::model_slo_sli_spec::SLOSliSpec; pub mod model_slo_threshold; pub use self::model_slo_threshold::SLOThreshold; pub mod model_slo_timeframe; @@ -1304,6 +1322,10 @@ pub mod model_synthetics_test_request_certificate; pub use self::model_synthetics_test_request_certificate::SyntheticsTestRequestCertificate; pub mod model_synthetics_test_request_certificate_item; pub use self::model_synthetics_test_request_certificate_item::SyntheticsTestRequestCertificateItem; +pub mod model_synthetics_test_request_body_file; +pub use self::model_synthetics_test_request_body_file::SyntheticsTestRequestBodyFile; +pub mod model_synthetics_test_options_http_version; +pub use self::model_synthetics_test_options_http_version::SyntheticsTestOptionsHTTPVersion; pub mod model_synthetics_test_request_proxy; pub use self::model_synthetics_test_request_proxy::SyntheticsTestRequestProxy; pub mod model_synthetics_browser_variable; @@ -1314,8 +1336,6 @@ pub mod model_synthetics_test_options; pub use self::model_synthetics_test_options::SyntheticsTestOptions; pub mod model_synthetics_test_ci_options; pub use self::model_synthetics_test_ci_options::SyntheticsTestCiOptions; -pub mod model_synthetics_test_options_http_version; -pub use self::model_synthetics_test_options_http_version::SyntheticsTestOptionsHTTPVersion; pub mod model_synthetics_test_options_monitor_options; pub use self::model_synthetics_test_options_monitor_options::SyntheticsTestOptionsMonitorOptions; pub mod model_synthetics_test_options_retry; @@ -1470,22 +1490,6 @@ pub mod model_usage_analyzed_logs_response; pub use self::model_usage_analyzed_logs_response::UsageAnalyzedLogsResponse; pub mod model_usage_analyzed_logs_hour; pub use self::model_usage_analyzed_logs_hour::UsageAnalyzedLogsHour; -pub mod model_usage_attribution_supported_metrics; -pub use self::model_usage_attribution_supported_metrics::UsageAttributionSupportedMetrics; -pub mod model_usage_attribution_sort; -pub use self::model_usage_attribution_sort::UsageAttributionSort; -pub mod model_usage_attribution_response; -pub use self::model_usage_attribution_response::UsageAttributionResponse; -pub mod model_usage_attribution_metadata; -pub use self::model_usage_attribution_metadata::UsageAttributionMetadata; -pub mod model_usage_attribution_aggregates_body; -pub use self::model_usage_attribution_aggregates_body::UsageAttributionAggregatesBody; -pub mod model_usage_attribution_pagination; -pub use self::model_usage_attribution_pagination::UsageAttributionPagination; -pub mod model_usage_attribution_body; -pub use self::model_usage_attribution_body::UsageAttributionBody; -pub mod model_usage_attribution_values; -pub use self::model_usage_attribution_values::UsageAttributionValues; pub mod model_usage_audit_logs_response; pub use self::model_usage_audit_logs_response::UsageAuditLogsResponse; pub mod model_usage_audit_logs_hour; @@ -1570,6 +1574,8 @@ pub mod model_monthly_usage_attribution_response; pub use self::model_monthly_usage_attribution_response::MonthlyUsageAttributionResponse; pub mod model_monthly_usage_attribution_metadata; pub use self::model_monthly_usage_attribution_metadata::MonthlyUsageAttributionMetadata; +pub mod model_usage_attribution_aggregates_body; +pub use self::model_usage_attribution_aggregates_body::UsageAttributionAggregatesBody; pub mod model_monthly_usage_attribution_pagination; pub use self::model_monthly_usage_attribution_pagination::MonthlyUsageAttributionPagination; pub mod model_monthly_usage_attribution_body; diff --git a/src/datadogV1/model/model_dashboard.rs b/src/datadogV1/model/model_dashboard.rs index 12e3eb491..e3e2e704a 100644 --- a/src/datadogV1/model/model_dashboard.rs +++ b/src/datadogV1/model/model_dashboard.rs @@ -35,7 +35,9 @@ pub struct Dashboard { /// ID of the dashboard. #[serde(rename = "id")] pub id: Option, - /// Whether this dashboard is read-only. If True, only the author and admins can make changes to it. Prefer using `restricted_roles` to manage write authorization. + /// Whether this dashboard is read-only. If True, only the author and admins can make changes to it. + /// + /// This property is deprecated; please use the [Restriction Policies API]() instead to manage write authorization for individual dashboards. #[deprecated] #[serde(rename = "is_read_only")] pub is_read_only: Option, @@ -58,6 +60,9 @@ pub struct Dashboard { #[serde(rename = "reflow_type")] pub reflow_type: Option, /// A list of role identifiers. Only the author and users associated with at least one of these roles can edit this dashboard. + /// + /// This property is deprecated; please use the [Restriction Policies API]() instead to manage write authorization for individual dashboards. + #[deprecated] #[serde(rename = "restricted_roles")] pub restricted_roles: Option>, /// List of team names representing ownership of a dashboard. diff --git a/src/datadogV1/model/model_dashboard_summary_definition.rs b/src/datadogV1/model/model_dashboard_summary_definition.rs index 9b8d53e58..5df251d8a 100644 --- a/src/datadogV1/model/model_dashboard_summary_definition.rs +++ b/src/datadogV1/model/model_dashboard_summary_definition.rs @@ -28,6 +28,9 @@ pub struct DashboardSummaryDefinition { #[serde(rename = "id")] pub id: Option, /// Whether this dashboard is read-only. If True, only the author and admins can make changes to it. + /// + /// This property is deprecated; please use the [Restriction Policies API]() instead to manage write authorization for individual dashboards. + #[deprecated] #[serde(rename = "is_read_only")] pub is_read_only: Option, /// Layout type of the dashboard. @@ -49,6 +52,7 @@ pub struct DashboardSummaryDefinition { impl DashboardSummaryDefinition { pub fn new() -> DashboardSummaryDefinition { + #[allow(deprecated)] DashboardSummaryDefinition { author_handle: None, created_at: None, @@ -63,46 +67,55 @@ impl DashboardSummaryDefinition { } } + #[allow(deprecated)] pub fn author_handle(mut self, value: String) -> Self { self.author_handle = Some(value); self } + #[allow(deprecated)] pub fn created_at(mut self, value: String) -> Self { self.created_at = Some(value); self } + #[allow(deprecated)] pub fn description(mut self, value: Option) -> Self { self.description = Some(value); self } + #[allow(deprecated)] pub fn id(mut self, value: String) -> Self { self.id = Some(value); self } + #[allow(deprecated)] pub fn is_read_only(mut self, value: bool) -> Self { self.is_read_only = Some(value); self } + #[allow(deprecated)] pub fn layout_type(mut self, value: crate::datadogV1::model::DashboardLayoutType) -> Self { self.layout_type = Some(value); self } + #[allow(deprecated)] pub fn modified_at(mut self, value: String) -> Self { self.modified_at = Some(value); self } + #[allow(deprecated)] pub fn title(mut self, value: String) -> Self { self.title = Some(value); self } + #[allow(deprecated)] pub fn url(mut self, value: String) -> Self { self.url = Some(value); self @@ -213,6 +226,7 @@ impl<'de> Deserialize<'de> for DashboardSummaryDefinition { } } + #[allow(deprecated)] let content = DashboardSummaryDefinition { author_handle, created_at, diff --git a/src/datadogV1/model/model_gcp_account.rs b/src/datadogV1/model/model_gcp_account.rs index d28a5fcfc..9abd66a79 100644 --- a/src/datadogV1/model/model_gcp_account.rs +++ b/src/datadogV1/model/model_gcp_account.rs @@ -30,6 +30,10 @@ pub struct GCPAccount { /// where `$CLIENT_EMAIL` is the email found in your JSON service account key. #[serde(rename = "client_x509_cert_url")] pub client_x509_cert_url: Option, + /// Limit the Cloud Run revisions that are pulled into Datadog by using tags. + /// Only Cloud Run revision resources that apply to specified filters are imported into Datadog. + #[serde(rename = "cloud_run_revision_filters")] + pub cloud_run_revision_filters: Option>, /// An array of errors. #[serde(rename = "errors")] pub errors: Option>, @@ -75,6 +79,7 @@ impl GCPAccount { client_email: None, client_id: None, client_x509_cert_url: None, + cloud_run_revision_filters: None, errors: None, host_filters: None, is_cspm_enabled: None, @@ -119,6 +124,11 @@ impl GCPAccount { self } + pub fn cloud_run_revision_filters(mut self, value: Vec) -> Self { + self.cloud_run_revision_filters = Some(value); + self + } + pub fn errors(mut self, value: Vec) -> Self { self.errors = Some(value); self @@ -199,6 +209,7 @@ impl<'de> Deserialize<'de> for GCPAccount { let mut client_email: Option = None; let mut client_id: Option = None; let mut client_x509_cert_url: Option = None; + let mut cloud_run_revision_filters: Option> = None; let mut errors: Option> = None; let mut host_filters: Option = None; let mut is_cspm_enabled: Option = None; @@ -252,6 +263,13 @@ impl<'de> Deserialize<'de> for GCPAccount { client_x509_cert_url = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "cloud_run_revision_filters" => { + if v.is_null() { + continue; + } + cloud_run_revision_filters = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "errors" => { if v.is_null() { continue; @@ -329,6 +347,7 @@ impl<'de> Deserialize<'de> for GCPAccount { client_email, client_id, client_x509_cert_url, + cloud_run_revision_filters, errors, host_filters, is_cspm_enabled, diff --git a/src/datadogV1/model/model_hourly_usage_attribution_usage_type.rs b/src/datadogV1/model/model_hourly_usage_attribution_usage_type.rs index 7d176551b..7379b9123 100644 --- a/src/datadogV1/model/model_hourly_usage_attribution_usage_type.rs +++ b/src/datadogV1/model/model_hourly_usage_attribution_usage_type.rs @@ -13,6 +13,8 @@ pub enum HourlyUsageAttributionUsageType { APM_USM_USAGE, APPSEC_FARGATE_USAGE, APPSEC_USAGE, + ASM_SERVERLESS_TRACED_INVOCATIONS_USAGE, + ASM_SERVERLESS_TRACED_INVOCATIONS_PERCENTAGE, BROWSER_USAGE, CI_PIPELINE_INDEXED_SPANS_USAGE, CI_TEST_INDEXED_SPANS_USAGE, @@ -29,6 +31,8 @@ pub enum HourlyUsageAttributionUsageType { CWS_HOSTS_USAGE, DBM_HOSTS_USAGE, DBM_QUERIES_USAGE, + ERROR_TRACKING_USAGE, + ERROR_TRACKING_PERCENTAGE, ESTIMATED_INDEXED_LOGS_USAGE, ESTIMATED_INDEXED_SPANS_USAGE, ESTIMATED_INGESTED_LOGS_USAGE, @@ -36,6 +40,7 @@ pub enum HourlyUsageAttributionUsageType { ESTIMATED_RUM_SESSIONS_USAGE, FARGATE_USAGE, FUNCTIONS_USAGE, + INCIDENT_MANAGEMENT_MONTHLY_ACTIVE_USERS_USAGE, INDEXED_SPANS_USAGE, INFRA_HOST_USAGE, INGESTED_LOGS_BYTES_USAGE, @@ -56,6 +61,8 @@ pub enum HourlyUsageAttributionUsageType { NDM_NETFLOW_USAGE, NPM_HOST_USAGE, OBS_PIPELINE_BYTES_USAGE, + OBS_PIPELINE_VCPU_USAGE, + ONLINE_ARCHIVE_USAGE, PROFILED_CONTAINER_USAGE, PROFILED_FARGATE_USAGE, PROFILED_HOST_USAGE, @@ -67,6 +74,7 @@ pub enum HourlyUsageAttributionUsageType { SNMP_USAGE, UNIVERSAL_SERVICE_MONITORING_USAGE, VULN_MANAGEMENT_HOSTS_USAGE, + WORKFLOW_EXECUTIONS_USAGE, UnparsedObject(crate::datadog::UnparsedObject), } @@ -79,6 +87,12 @@ impl ToString for HourlyUsageAttributionUsageType { Self::APM_USM_USAGE => String::from("apm_usm_usage"), Self::APPSEC_FARGATE_USAGE => String::from("appsec_fargate_usage"), Self::APPSEC_USAGE => String::from("appsec_usage"), + Self::ASM_SERVERLESS_TRACED_INVOCATIONS_USAGE => { + String::from("asm_serverless_traced_invocations_usage") + } + Self::ASM_SERVERLESS_TRACED_INVOCATIONS_PERCENTAGE => { + String::from("asm_serverless_traced_invocations_percentage") + } Self::BROWSER_USAGE => String::from("browser_usage"), Self::CI_PIPELINE_INDEXED_SPANS_USAGE => { String::from("ci_pipeline_indexed_spans_usage") @@ -99,6 +113,8 @@ impl ToString for HourlyUsageAttributionUsageType { Self::CWS_HOSTS_USAGE => String::from("cws_hosts_usage"), Self::DBM_HOSTS_USAGE => String::from("dbm_hosts_usage"), Self::DBM_QUERIES_USAGE => String::from("dbm_queries_usage"), + Self::ERROR_TRACKING_USAGE => String::from("error_tracking_usage"), + Self::ERROR_TRACKING_PERCENTAGE => String::from("error_tracking_percentage"), Self::ESTIMATED_INDEXED_LOGS_USAGE => String::from("estimated_indexed_logs_usage"), Self::ESTIMATED_INDEXED_SPANS_USAGE => String::from("estimated_indexed_spans_usage"), Self::ESTIMATED_INGESTED_LOGS_USAGE => String::from("estimated_ingested_logs_usage"), @@ -106,6 +122,9 @@ impl ToString for HourlyUsageAttributionUsageType { Self::ESTIMATED_RUM_SESSIONS_USAGE => String::from("estimated_rum_sessions_usage"), Self::FARGATE_USAGE => String::from("fargate_usage"), Self::FUNCTIONS_USAGE => String::from("functions_usage"), + Self::INCIDENT_MANAGEMENT_MONTHLY_ACTIVE_USERS_USAGE => { + String::from("incident_management_monthly_active_users_usage") + } Self::INDEXED_SPANS_USAGE => String::from("indexed_spans_usage"), Self::INFRA_HOST_USAGE => String::from("infra_host_usage"), Self::INGESTED_LOGS_BYTES_USAGE => String::from("ingested_logs_bytes_usage"), @@ -130,6 +149,8 @@ impl ToString for HourlyUsageAttributionUsageType { Self::NDM_NETFLOW_USAGE => String::from("ndm_netflow_usage"), Self::NPM_HOST_USAGE => String::from("npm_host_usage"), Self::OBS_PIPELINE_BYTES_USAGE => String::from("obs_pipeline_bytes_usage"), + Self::OBS_PIPELINE_VCPU_USAGE => String::from("obs_pipelines_vcpu_usage"), + Self::ONLINE_ARCHIVE_USAGE => String::from("online_archive_usage"), Self::PROFILED_CONTAINER_USAGE => String::from("profiled_container_usage"), Self::PROFILED_FARGATE_USAGE => String::from("profiled_fargate_usage"), Self::PROFILED_HOST_USAGE => String::from("profiled_host_usage"), @@ -145,6 +166,7 @@ impl ToString for HourlyUsageAttributionUsageType { String::from("universal_service_monitoring_usage") } Self::VULN_MANAGEMENT_HOSTS_USAGE => String::from("vuln_management_hosts_usage"), + Self::WORKFLOW_EXECUTIONS_USAGE => String::from("workflow_executions_usage"), Self::UnparsedObject(v) => v.value.to_string(), } } @@ -175,6 +197,12 @@ impl<'de> Deserialize<'de> for HourlyUsageAttributionUsageType { "apm_usm_usage" => Self::APM_USM_USAGE, "appsec_fargate_usage" => Self::APPSEC_FARGATE_USAGE, "appsec_usage" => Self::APPSEC_USAGE, + "asm_serverless_traced_invocations_usage" => { + Self::ASM_SERVERLESS_TRACED_INVOCATIONS_USAGE + } + "asm_serverless_traced_invocations_percentage" => { + Self::ASM_SERVERLESS_TRACED_INVOCATIONS_PERCENTAGE + } "browser_usage" => Self::BROWSER_USAGE, "ci_pipeline_indexed_spans_usage" => Self::CI_PIPELINE_INDEXED_SPANS_USAGE, "ci_test_indexed_spans_usage" => Self::CI_TEST_INDEXED_SPANS_USAGE, @@ -191,6 +219,8 @@ impl<'de> Deserialize<'de> for HourlyUsageAttributionUsageType { "cws_hosts_usage" => Self::CWS_HOSTS_USAGE, "dbm_hosts_usage" => Self::DBM_HOSTS_USAGE, "dbm_queries_usage" => Self::DBM_QUERIES_USAGE, + "error_tracking_usage" => Self::ERROR_TRACKING_USAGE, + "error_tracking_percentage" => Self::ERROR_TRACKING_PERCENTAGE, "estimated_indexed_logs_usage" => Self::ESTIMATED_INDEXED_LOGS_USAGE, "estimated_indexed_spans_usage" => Self::ESTIMATED_INDEXED_SPANS_USAGE, "estimated_ingested_logs_usage" => Self::ESTIMATED_INGESTED_LOGS_USAGE, @@ -198,6 +228,9 @@ impl<'de> Deserialize<'de> for HourlyUsageAttributionUsageType { "estimated_rum_sessions_usage" => Self::ESTIMATED_RUM_SESSIONS_USAGE, "fargate_usage" => Self::FARGATE_USAGE, "functions_usage" => Self::FUNCTIONS_USAGE, + "incident_management_monthly_active_users_usage" => { + Self::INCIDENT_MANAGEMENT_MONTHLY_ACTIVE_USERS_USAGE + } "indexed_spans_usage" => Self::INDEXED_SPANS_USAGE, "infra_host_usage" => Self::INFRA_HOST_USAGE, "ingested_logs_bytes_usage" => Self::INGESTED_LOGS_BYTES_USAGE, @@ -218,6 +251,8 @@ impl<'de> Deserialize<'de> for HourlyUsageAttributionUsageType { "ndm_netflow_usage" => Self::NDM_NETFLOW_USAGE, "npm_host_usage" => Self::NPM_HOST_USAGE, "obs_pipeline_bytes_usage" => Self::OBS_PIPELINE_BYTES_USAGE, + "obs_pipelines_vcpu_usage" => Self::OBS_PIPELINE_VCPU_USAGE, + "online_archive_usage" => Self::ONLINE_ARCHIVE_USAGE, "profiled_container_usage" => Self::PROFILED_CONTAINER_USAGE, "profiled_fargate_usage" => Self::PROFILED_FARGATE_USAGE, "profiled_host_usage" => Self::PROFILED_HOST_USAGE, @@ -229,6 +264,7 @@ impl<'de> Deserialize<'de> for HourlyUsageAttributionUsageType { "snmp_usage" => Self::SNMP_USAGE, "universal_service_monitoring_usage" => Self::UNIVERSAL_SERVICE_MONITORING_USAGE, "vuln_management_hosts_usage" => Self::VULN_MANAGEMENT_HOSTS_USAGE, + "workflow_executions_usage" => Self::WORKFLOW_EXECUTIONS_USAGE, _ => Self::UnparsedObject(crate::datadog::UnparsedObject { value: serde_json::Value::String(s.into()), }), diff --git a/src/datadogV1/model/model_log.rs b/src/datadogV1/model/model_log.rs index e3c9b0f79..b014056c4 100644 --- a/src/datadogV1/model/model_log.rs +++ b/src/datadogV1/model/model_log.rs @@ -14,7 +14,7 @@ pub struct Log { /// JSON object containing all log attributes and their associated values. #[serde(rename = "content")] pub content: Option, - /// Unique ID of the Log. + /// ID of the Log. #[serde(rename = "id")] pub id: Option, #[serde(skip)] diff --git a/src/datadogV1/model/model_logs_daily_limit_reset.rs b/src/datadogV1/model/model_logs_daily_limit_reset.rs new file mode 100644 index 000000000..9f4603ecb --- /dev/null +++ b/src/datadogV1/model/model_logs_daily_limit_reset.rs @@ -0,0 +1,103 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Object containing options to override the default daily limit reset time. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct LogsDailyLimitReset { + /// String in `HH:00` format representing the time of day the daily limit should be reset. The hours must be between 00 and 23 (inclusive). + #[serde(rename = "reset_time")] + pub reset_time: Option, + /// String in `(-|+)HH:00` format representing the UTC offset to apply to the given reset time. The hours must be between -12 and +14 (inclusive). + #[serde(rename = "reset_utc_offset")] + pub reset_utc_offset: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl LogsDailyLimitReset { + pub fn new() -> LogsDailyLimitReset { + LogsDailyLimitReset { + reset_time: None, + reset_utc_offset: None, + _unparsed: false, + } + } + + pub fn reset_time(mut self, value: String) -> Self { + self.reset_time = Some(value); + self + } + + pub fn reset_utc_offset(mut self, value: String) -> Self { + self.reset_utc_offset = Some(value); + self + } +} + +impl Default for LogsDailyLimitReset { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for LogsDailyLimitReset { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct LogsDailyLimitResetVisitor; + impl<'a> Visitor<'a> for LogsDailyLimitResetVisitor { + type Value = LogsDailyLimitReset; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut reset_time: Option = None; + let mut reset_utc_offset: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "reset_time" => { + if v.is_null() { + continue; + } + reset_time = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "reset_utc_offset" => { + if v.is_null() { + continue; + } + reset_utc_offset = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = LogsDailyLimitReset { + reset_time, + reset_utc_offset, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(LogsDailyLimitResetVisitor) + } +} diff --git a/src/datadogV1/model/model_logs_index.rs b/src/datadogV1/model/model_logs_index.rs index e4cc0ed54..c999c71fe 100644 --- a/src/datadogV1/model/model_logs_index.rs +++ b/src/datadogV1/model/model_logs_index.rs @@ -14,6 +14,12 @@ pub struct LogsIndex { /// The number of log events you can send in this index per day before you are rate-limited. #[serde(rename = "daily_limit")] pub daily_limit: Option, + /// Object containing options to override the default daily limit reset time. + #[serde(rename = "daily_limit_reset")] + pub daily_limit_reset: Option, + /// A percentage threshold of the daily quota at which a Datadog warning event is generated. + #[serde(rename = "daily_limit_warning_threshold_percentage")] + pub daily_limit_warning_threshold_percentage: Option, /// An array of exclusion objects. The logs are tested against the query of each filter, /// following the order of the array. Only the first matching active exclusion matters, /// others (if any) are ignored. @@ -42,6 +48,8 @@ impl LogsIndex { pub fn new(filter: crate::datadogV1::model::LogsFilter, name: String) -> LogsIndex { LogsIndex { daily_limit: None, + daily_limit_reset: None, + daily_limit_warning_threshold_percentage: None, exclusion_filters: None, filter, is_rate_limited: None, @@ -56,6 +64,19 @@ impl LogsIndex { self } + pub fn daily_limit_reset( + mut self, + value: crate::datadogV1::model::LogsDailyLimitReset, + ) -> Self { + self.daily_limit_reset = Some(value); + self + } + + pub fn daily_limit_warning_threshold_percentage(mut self, value: f64) -> Self { + self.daily_limit_warning_threshold_percentage = Some(value); + self + } + pub fn exclusion_filters(mut self, value: Vec) -> Self { self.exclusion_filters = Some(value); self @@ -90,6 +111,9 @@ impl<'de> Deserialize<'de> for LogsIndex { M: MapAccess<'a>, { let mut daily_limit: Option = None; + let mut daily_limit_reset: Option = + None; + let mut daily_limit_warning_threshold_percentage: Option = None; let mut exclusion_filters: Option> = None; let mut filter: Option = None; @@ -107,6 +131,20 @@ impl<'de> Deserialize<'de> for LogsIndex { daily_limit = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "daily_limit_reset" => { + if v.is_null() { + continue; + } + daily_limit_reset = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "daily_limit_warning_threshold_percentage" => { + if v.is_null() { + continue; + } + daily_limit_warning_threshold_percentage = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "exclusion_filters" => { if v.is_null() { continue; @@ -142,6 +180,8 @@ impl<'de> Deserialize<'de> for LogsIndex { let content = LogsIndex { daily_limit, + daily_limit_reset, + daily_limit_warning_threshold_percentage, exclusion_filters, filter, is_rate_limited, diff --git a/src/datadogV1/model/model_logs_index_update_request.rs b/src/datadogV1/model/model_logs_index_update_request.rs index dfe82dd51..6b1ba63dc 100644 --- a/src/datadogV1/model/model_logs_index_update_request.rs +++ b/src/datadogV1/model/model_logs_index_update_request.rs @@ -14,6 +14,12 @@ pub struct LogsIndexUpdateRequest { /// The number of log events you can send in this index per day before you are rate-limited. #[serde(rename = "daily_limit")] pub daily_limit: Option, + /// Object containing options to override the default daily limit reset time. + #[serde(rename = "daily_limit_reset")] + pub daily_limit_reset: Option, + /// A percentage threshold of the daily quota at which a Datadog warning event is generated. + #[serde(rename = "daily_limit_warning_threshold_percentage")] + pub daily_limit_warning_threshold_percentage: Option, /// If true, sets the `daily_limit` value to null and the index is not limited on a daily basis (any /// specified `daily_limit` value in the request is ignored). If false or omitted, the index's current /// `daily_limit` is maintained. @@ -43,6 +49,8 @@ impl LogsIndexUpdateRequest { pub fn new(filter: crate::datadogV1::model::LogsFilter) -> LogsIndexUpdateRequest { LogsIndexUpdateRequest { daily_limit: None, + daily_limit_reset: None, + daily_limit_warning_threshold_percentage: None, disable_daily_limit: None, exclusion_filters: None, filter, @@ -56,6 +64,19 @@ impl LogsIndexUpdateRequest { self } + pub fn daily_limit_reset( + mut self, + value: crate::datadogV1::model::LogsDailyLimitReset, + ) -> Self { + self.daily_limit_reset = Some(value); + self + } + + pub fn daily_limit_warning_threshold_percentage(mut self, value: f64) -> Self { + self.daily_limit_warning_threshold_percentage = Some(value); + self + } + pub fn disable_daily_limit(mut self, value: bool) -> Self { self.disable_daily_limit = Some(value); self @@ -90,6 +111,9 @@ impl<'de> Deserialize<'de> for LogsIndexUpdateRequest { M: MapAccess<'a>, { let mut daily_limit: Option = None; + let mut daily_limit_reset: Option = + None; + let mut daily_limit_warning_threshold_percentage: Option = None; let mut disable_daily_limit: Option = None; let mut exclusion_filters: Option> = None; @@ -106,6 +130,20 @@ impl<'de> Deserialize<'de> for LogsIndexUpdateRequest { daily_limit = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "daily_limit_reset" => { + if v.is_null() { + continue; + } + daily_limit_reset = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "daily_limit_warning_threshold_percentage" => { + if v.is_null() { + continue; + } + daily_limit_warning_threshold_percentage = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "disable_daily_limit" => { if v.is_null() { continue; @@ -137,6 +175,8 @@ impl<'de> Deserialize<'de> for LogsIndexUpdateRequest { let content = LogsIndexUpdateRequest { daily_limit, + daily_limit_reset, + daily_limit_warning_threshold_percentage, disable_daily_limit, exclusion_filters, filter, diff --git a/src/datadogV1/model/model_metrics_payload.rs b/src/datadogV1/model/model_metrics_payload.rs index bb05abc2f..7fb33f082 100644 --- a/src/datadogV1/model/model_metrics_payload.rs +++ b/src/datadogV1/model/model_metrics_payload.rs @@ -11,7 +11,7 @@ use std::fmt::{self, Formatter}; #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] pub struct MetricsPayload { - /// A list of time series to submit to Datadog. + /// A list of timeseries to submit to Datadog. #[serde(rename = "series")] pub series: Vec, #[serde(skip)] diff --git a/src/datadogV1/model/model_metrics_query_metadata.rs b/src/datadogV1/model/model_metrics_query_metadata.rs index d6ff0757d..96d2885f2 100644 --- a/src/datadogV1/model/model_metrics_query_metadata.rs +++ b/src/datadogV1/model/model_metrics_query_metadata.rs @@ -32,7 +32,7 @@ pub struct MetricsQueryMetadata { /// Metric name. #[serde(rename = "metric")] pub metric: Option, - /// List of points of the time series in milliseconds. + /// List of points of the timeseries in milliseconds. #[serde(rename = "pointlist")] pub pointlist: Option>>>, /// The index of the series' query within the request. diff --git a/src/datadogV1/model/model_monitor_formula_and_function_events_data_source.rs b/src/datadogV1/model/model_monitor_formula_and_function_events_data_source.rs index 28b286abd..4cfb6d46a 100644 --- a/src/datadogV1/model/model_monitor_formula_and_function_events_data_source.rs +++ b/src/datadogV1/model/model_monitor_formula_and_function_events_data_source.rs @@ -14,6 +14,7 @@ pub enum MonitorFormulaAndFunctionEventsDataSource { EVENTS, LOGS, SPANS, + DATABASE_QUERIES, UnparsedObject(crate::datadog::UnparsedObject), } @@ -27,6 +28,7 @@ impl ToString for MonitorFormulaAndFunctionEventsDataSource { Self::EVENTS => String::from("events"), Self::LOGS => String::from("logs"), Self::SPANS => String::from("spans"), + Self::DATABASE_QUERIES => String::from("database_queries"), Self::UnparsedObject(v) => v.value.to_string(), } } @@ -58,6 +60,7 @@ impl<'de> Deserialize<'de> for MonitorFormulaAndFunctionEventsDataSource { "events" => Self::EVENTS, "logs" => Self::LOGS, "spans" => Self::SPANS, + "database_queries" => Self::DATABASE_QUERIES, _ => Self::UnparsedObject(crate::datadog::UnparsedObject { value: serde_json::Value::String(s.into()), }), diff --git a/src/datadogV1/model/model_monitor_options.rs b/src/datadogV1/model/model_monitor_options.rs index ca6a809b0..6df6425b8 100644 --- a/src/datadogV1/model/model_monitor_options.rs +++ b/src/datadogV1/model/model_monitor_options.rs @@ -148,6 +148,8 @@ pub struct MonitorOptions { )] pub renotify_occurrences: Option>, /// The types of monitor statuses for which re-notification messages are sent. + /// Default: **null** if `renotify_interval` is **null**. + /// If `renotify_interval` is set, defaults to renotify on `Alert` and `No Data`. #[serde( rename = "renotify_statuses", default, @@ -156,7 +158,8 @@ pub struct MonitorOptions { pub renotify_statuses: Option>>, /// A Boolean indicating whether this monitor needs a full window of data before it’s evaluated. /// We highly recommend you set this to `false` for sparse metrics, - /// otherwise some evaluations are skipped. Default is false. + /// otherwise some evaluations are skipped. Default is false. This setting only applies to + /// metric monitors. #[serde(rename = "require_full_window")] pub require_full_window: Option, /// Configuration options for scheduling. diff --git a/src/datadogV1/model/model_monthly_usage_attribution_supported_metrics.rs b/src/datadogV1/model/model_monthly_usage_attribution_supported_metrics.rs index 432785d60..09af55711 100644 --- a/src/datadogV1/model/model_monthly_usage_attribution_supported_metrics.rs +++ b/src/datadogV1/model/model_monthly_usage_attribution_supported_metrics.rs @@ -19,6 +19,8 @@ pub enum MonthlyUsageAttributionSupportedMetrics { APM_USM_PERCENTAGE, APPSEC_USAGE, APPSEC_PERCENTAGE, + ASM_SERVERLESS_TRACED_INVOCATIONS_USAGE, + ASM_SERVERLESS_TRACED_INVOCATIONS_PERCENTAGE, BROWSER_USAGE, BROWSER_PERCENTAGE, CI_VISIBILITY_ITR_USAGE, @@ -45,6 +47,8 @@ pub enum MonthlyUsageAttributionSupportedMetrics { DBM_HOSTS_USAGE, DBM_QUERIES_PERCENTAGE, DBM_QUERIES_USAGE, + ERROR_TRACKING_USAGE, + ERROR_TRACKING_PERCENTAGE, ESTIMATED_INDEXED_LOGS_USAGE, ESTIMATED_INDEXED_LOGS_PERCENTAGE, ESTIMATED_INGESTED_LOGS_USAGE, @@ -57,6 +61,8 @@ pub enum MonthlyUsageAttributionSupportedMetrics { FARGATE_PERCENTAGE, FUNCTIONS_USAGE, FUNCTIONS_PERCENTAGE, + INCIDENT_MANAGEMENT_MONTHLY_ACTIVE_USERS_USAGE, + INCIDENT_MANAGEMENT_MONTHLY_ACTIVE_USERS_PERCENTAGE, INFRA_HOST_USAGE, INFRA_HOST_PERCENTAGE, INVOCATIONS_USAGE, @@ -71,6 +77,10 @@ pub enum MonthlyUsageAttributionSupportedMetrics { NPM_HOST_PERCENTAGE, OBS_PIPELINE_BYTES_USAGE, OBS_PIPELINE_BYTES_PERCENTAGE, + OBS_PIPELINES_VCPU_USAGE, + OBS_PIPELINES_VCPU_PERCENTAGE, + ONLINE_ARCHIVE_USAGE, + ONLINE_ARCHIVE_PERCENTAGE, PROFILED_CONTAINER_USAGE, PROFILED_CONTAINER_PERCENTAGE, PROFILED_FARGATE_USAGE, @@ -127,6 +137,8 @@ pub enum MonthlyUsageAttributionSupportedMetrics { INGESTED_SPANS_BYTES_PERCENTAGE, SIEM_INGESTED_BYTES_USAGE, SIEM_INGESTED_BYTES_PERCENTAGE, + WORKFLOW_EXECUTIONS_USAGE, + WORKFLOW_EXECUTIONS_PERCENTAGE, ALL, UnparsedObject(crate::datadog::UnparsedObject), } @@ -146,6 +158,12 @@ impl ToString for MonthlyUsageAttributionSupportedMetrics { Self::APM_USM_PERCENTAGE => String::from("apm_usm_percentage"), Self::APPSEC_USAGE => String::from("appsec_usage"), Self::APPSEC_PERCENTAGE => String::from("appsec_percentage"), + Self::ASM_SERVERLESS_TRACED_INVOCATIONS_USAGE => { + String::from("asm_serverless_traced_invocations_usage") + } + Self::ASM_SERVERLESS_TRACED_INVOCATIONS_PERCENTAGE => { + String::from("asm_serverless_traced_invocations_percentage") + } Self::BROWSER_USAGE => String::from("browser_usage"), Self::BROWSER_PERCENTAGE => String::from("browser_percentage"), Self::CI_VISIBILITY_ITR_USAGE => String::from("ci_visibility_itr_usage"), @@ -178,6 +196,8 @@ impl ToString for MonthlyUsageAttributionSupportedMetrics { Self::DBM_HOSTS_USAGE => String::from("dbm_hosts_usage"), Self::DBM_QUERIES_PERCENTAGE => String::from("dbm_queries_percentage"), Self::DBM_QUERIES_USAGE => String::from("dbm_queries_usage"), + Self::ERROR_TRACKING_USAGE => String::from("error_tracking_usage"), + Self::ERROR_TRACKING_PERCENTAGE => String::from("error_tracking_percentage"), Self::ESTIMATED_INDEXED_LOGS_USAGE => String::from("estimated_indexed_logs_usage"), Self::ESTIMATED_INDEXED_LOGS_PERCENTAGE => { String::from("estimated_indexed_logs_percentage") @@ -198,6 +218,12 @@ impl ToString for MonthlyUsageAttributionSupportedMetrics { Self::FARGATE_PERCENTAGE => String::from("fargate_percentage"), Self::FUNCTIONS_USAGE => String::from("functions_usage"), Self::FUNCTIONS_PERCENTAGE => String::from("functions_percentage"), + Self::INCIDENT_MANAGEMENT_MONTHLY_ACTIVE_USERS_USAGE => { + String::from("incident_management_monthly_active_users_usage") + } + Self::INCIDENT_MANAGEMENT_MONTHLY_ACTIVE_USERS_PERCENTAGE => { + String::from("incident_management_monthly_active_users_percentage") + } Self::INFRA_HOST_USAGE => String::from("infra_host_usage"), Self::INFRA_HOST_PERCENTAGE => String::from("infra_host_percentage"), Self::INVOCATIONS_USAGE => String::from("invocations_usage"), @@ -216,6 +242,10 @@ impl ToString for MonthlyUsageAttributionSupportedMetrics { Self::NPM_HOST_PERCENTAGE => String::from("npm_host_percentage"), Self::OBS_PIPELINE_BYTES_USAGE => String::from("obs_pipeline_bytes_usage"), Self::OBS_PIPELINE_BYTES_PERCENTAGE => String::from("obs_pipeline_bytes_percentage"), + Self::OBS_PIPELINES_VCPU_USAGE => String::from("obs_pipelines_vcpu_usage"), + Self::OBS_PIPELINES_VCPU_PERCENTAGE => String::from("obs_pipelines_vcpu_percentage"), + Self::ONLINE_ARCHIVE_USAGE => String::from("online_archive_usage"), + Self::ONLINE_ARCHIVE_PERCENTAGE => String::from("online_archive_percentage"), Self::PROFILED_CONTAINER_USAGE => String::from("profiled_container_usage"), Self::PROFILED_CONTAINER_PERCENTAGE => String::from("profiled_container_percentage"), Self::PROFILED_FARGATE_USAGE => String::from("profiled_fargate_usage"), @@ -296,6 +326,8 @@ impl ToString for MonthlyUsageAttributionSupportedMetrics { } Self::SIEM_INGESTED_BYTES_USAGE => String::from("siem_ingested_bytes_usage"), Self::SIEM_INGESTED_BYTES_PERCENTAGE => String::from("siem_ingested_bytes_percentage"), + Self::WORKFLOW_EXECUTIONS_USAGE => String::from("workflow_executions_usage"), + Self::WORKFLOW_EXECUTIONS_PERCENTAGE => String::from("workflow_executions_percentage"), Self::ALL => String::from("*"), Self::UnparsedObject(v) => v.value.to_string(), } @@ -333,6 +365,12 @@ impl<'de> Deserialize<'de> for MonthlyUsageAttributionSupportedMetrics { "apm_usm_percentage" => Self::APM_USM_PERCENTAGE, "appsec_usage" => Self::APPSEC_USAGE, "appsec_percentage" => Self::APPSEC_PERCENTAGE, + "asm_serverless_traced_invocations_usage" => { + Self::ASM_SERVERLESS_TRACED_INVOCATIONS_USAGE + } + "asm_serverless_traced_invocations_percentage" => { + Self::ASM_SERVERLESS_TRACED_INVOCATIONS_PERCENTAGE + } "browser_usage" => Self::BROWSER_USAGE, "browser_percentage" => Self::BROWSER_PERCENTAGE, "ci_visibility_itr_usage" => Self::CI_VISIBILITY_ITR_USAGE, @@ -359,6 +397,8 @@ impl<'de> Deserialize<'de> for MonthlyUsageAttributionSupportedMetrics { "dbm_hosts_usage" => Self::DBM_HOSTS_USAGE, "dbm_queries_percentage" => Self::DBM_QUERIES_PERCENTAGE, "dbm_queries_usage" => Self::DBM_QUERIES_USAGE, + "error_tracking_usage" => Self::ERROR_TRACKING_USAGE, + "error_tracking_percentage" => Self::ERROR_TRACKING_PERCENTAGE, "estimated_indexed_logs_usage" => Self::ESTIMATED_INDEXED_LOGS_USAGE, "estimated_indexed_logs_percentage" => Self::ESTIMATED_INDEXED_LOGS_PERCENTAGE, "estimated_ingested_logs_usage" => Self::ESTIMATED_INGESTED_LOGS_USAGE, @@ -371,6 +411,12 @@ impl<'de> Deserialize<'de> for MonthlyUsageAttributionSupportedMetrics { "fargate_percentage" => Self::FARGATE_PERCENTAGE, "functions_usage" => Self::FUNCTIONS_USAGE, "functions_percentage" => Self::FUNCTIONS_PERCENTAGE, + "incident_management_monthly_active_users_usage" => { + Self::INCIDENT_MANAGEMENT_MONTHLY_ACTIVE_USERS_USAGE + } + "incident_management_monthly_active_users_percentage" => { + Self::INCIDENT_MANAGEMENT_MONTHLY_ACTIVE_USERS_PERCENTAGE + } "infra_host_usage" => Self::INFRA_HOST_USAGE, "infra_host_percentage" => Self::INFRA_HOST_PERCENTAGE, "invocations_usage" => Self::INVOCATIONS_USAGE, @@ -385,6 +431,10 @@ impl<'de> Deserialize<'de> for MonthlyUsageAttributionSupportedMetrics { "npm_host_percentage" => Self::NPM_HOST_PERCENTAGE, "obs_pipeline_bytes_usage" => Self::OBS_PIPELINE_BYTES_USAGE, "obs_pipeline_bytes_percentage" => Self::OBS_PIPELINE_BYTES_PERCENTAGE, + "obs_pipelines_vcpu_usage" => Self::OBS_PIPELINES_VCPU_USAGE, + "obs_pipelines_vcpu_percentage" => Self::OBS_PIPELINES_VCPU_PERCENTAGE, + "online_archive_usage" => Self::ONLINE_ARCHIVE_USAGE, + "online_archive_percentage" => Self::ONLINE_ARCHIVE_PERCENTAGE, "profiled_container_usage" => Self::PROFILED_CONTAINER_USAGE, "profiled_container_percentage" => Self::PROFILED_CONTAINER_PERCENTAGE, "profiled_fargate_usage" => Self::PROFILED_FARGATE_USAGE, @@ -447,6 +497,8 @@ impl<'de> Deserialize<'de> for MonthlyUsageAttributionSupportedMetrics { "ingested_spans_bytes_percentage" => Self::INGESTED_SPANS_BYTES_PERCENTAGE, "siem_ingested_bytes_usage" => Self::SIEM_INGESTED_BYTES_USAGE, "siem_ingested_bytes_percentage" => Self::SIEM_INGESTED_BYTES_PERCENTAGE, + "workflow_executions_usage" => Self::WORKFLOW_EXECUTIONS_USAGE, + "workflow_executions_percentage" => Self::WORKFLOW_EXECUTIONS_PERCENTAGE, "*" => Self::ALL, _ => Self::UnparsedObject(crate::datadog::UnparsedObject { value: serde_json::Value::String(s.into()), diff --git a/src/datadogV1/model/model_monthly_usage_attribution_values.rs b/src/datadogV1/model/model_monthly_usage_attribution_values.rs index f1d4356a8..92c553c5a 100644 --- a/src/datadogV1/model/model_monthly_usage_attribution_values.rs +++ b/src/datadogV1/model/model_monthly_usage_attribution_values.rs @@ -47,6 +47,12 @@ pub struct MonthlyUsageAttributionValues { /// The Application Security Monitoring host usage by tag(s). #[serde(rename = "appsec_usage")] pub appsec_usage: Option, + /// The percentage of Application Security Monitoring Serverless traced invocations usage by tag(s). + #[serde(rename = "asm_serverless_traced_invocations_percentage")] + pub asm_serverless_traced_invocations_percentage: Option, + /// The Application Security Monitoring Serverless traced invocations usage by tag(s). + #[serde(rename = "asm_serverless_traced_invocations_usage")] + pub asm_serverless_traced_invocations_usage: Option, /// The percentage of synthetic browser test usage by tag(s). #[serde(rename = "browser_percentage")] pub browser_percentage: Option, @@ -143,6 +149,12 @@ pub struct MonthlyUsageAttributionValues { /// The Database Monitoring queries usage by tag(s). #[serde(rename = "dbm_queries_usage")] pub dbm_queries_usage: Option, + /// The percentage of error tracking events usage by tag(s). + #[serde(rename = "error_tracking_percentage")] + pub error_tracking_percentage: Option, + /// The error tracking events usage by tag(s). + #[serde(rename = "error_tracking_usage")] + pub error_tracking_usage: Option, /// The percentage of estimated live indexed logs usage by tag(s). #[serde(rename = "estimated_indexed_logs_percentage")] pub estimated_indexed_logs_percentage: Option, @@ -185,6 +197,12 @@ pub struct MonthlyUsageAttributionValues { /// The Lambda function usage by tag(s). #[serde(rename = "functions_usage")] pub functions_usage: Option, + /// The percentage of Incident Management monthly active users usage by tag(s). + #[serde(rename = "incident_management_monthly_active_users_percentage")] + pub incident_management_monthly_active_users_percentage: Option, + /// The Incident Management monthly active users usage by tag(s). + #[serde(rename = "incident_management_monthly_active_users_usage")] + pub incident_management_monthly_active_users_usage: Option, /// The percentage of APM Indexed Spans usage by tag(s). #[serde(rename = "indexed_spans_percentage")] pub indexed_spans_percentage: Option, @@ -305,6 +323,18 @@ pub struct MonthlyUsageAttributionValues { /// The observability pipeline bytes usage by tag(s). #[serde(rename = "obs_pipeline_bytes_usage")] pub obs_pipeline_bytes_usage: Option, + /// The percentage of observability pipeline per core usage by tag(s). + #[serde(rename = "obs_pipelines_vcpu_percentage")] + pub obs_pipelines_vcpu_percentage: Option, + /// The observability pipeline per core usage by tag(s). + #[serde(rename = "obs_pipelines_vcpu_usage")] + pub obs_pipelines_vcpu_usage: Option, + /// The percentage of online archive usage by tag(s). + #[serde(rename = "online_archive_percentage")] + pub online_archive_percentage: Option, + /// The online archive usage by tag(s). + #[serde(rename = "online_archive_usage")] + pub online_archive_usage: Option, /// The percentage of profiled container usage by tag(s). #[serde(rename = "profiled_container_percentage")] pub profiled_container_percentage: Option, @@ -371,6 +401,12 @@ pub struct MonthlyUsageAttributionValues { /// The Application Vulnerability Management usage by tag(s). #[serde(rename = "vuln_management_hosts_usage")] pub vuln_management_hosts_usage: Option, + /// The percentage of workflow executions usage by tag(s). + #[serde(rename = "workflow_executions_percentage")] + pub workflow_executions_percentage: Option, + /// The total workflow executions usage by tag(s). + #[serde(rename = "workflow_executions_usage")] + pub workflow_executions_usage: Option, #[serde(skip)] #[serde(default)] pub(crate) _unparsed: bool, @@ -391,6 +427,8 @@ impl MonthlyUsageAttributionValues { appsec_fargate_usage: None, appsec_percentage: None, appsec_usage: None, + asm_serverless_traced_invocations_percentage: None, + asm_serverless_traced_invocations_usage: None, browser_percentage: None, browser_usage: None, ci_pipeline_indexed_spans_percentage: None, @@ -423,6 +461,8 @@ impl MonthlyUsageAttributionValues { dbm_hosts_usage: None, dbm_queries_percentage: None, dbm_queries_usage: None, + error_tracking_percentage: None, + error_tracking_usage: None, estimated_indexed_logs_percentage: None, estimated_indexed_logs_usage: None, estimated_indexed_spans_percentage: None, @@ -437,6 +477,8 @@ impl MonthlyUsageAttributionValues { fargate_usage: None, functions_percentage: None, functions_usage: None, + incident_management_monthly_active_users_percentage: None, + incident_management_monthly_active_users_usage: None, indexed_spans_percentage: None, indexed_spans_usage: None, infra_host_percentage: None, @@ -477,6 +519,10 @@ impl MonthlyUsageAttributionValues { npm_host_usage: None, obs_pipeline_bytes_percentage: None, obs_pipeline_bytes_usage: None, + obs_pipelines_vcpu_percentage: None, + obs_pipelines_vcpu_usage: None, + online_archive_percentage: None, + online_archive_usage: None, profiled_container_percentage: None, profiled_container_usage: None, profiled_fargate_percentage: None, @@ -499,6 +545,8 @@ impl MonthlyUsageAttributionValues { universal_service_monitoring_usage: None, vuln_management_hosts_percentage: None, vuln_management_hosts_usage: None, + workflow_executions_percentage: None, + workflow_executions_usage: None, _unparsed: false, } } @@ -563,6 +611,16 @@ impl MonthlyUsageAttributionValues { self } + pub fn asm_serverless_traced_invocations_percentage(mut self, value: f64) -> Self { + self.asm_serverless_traced_invocations_percentage = Some(value); + self + } + + pub fn asm_serverless_traced_invocations_usage(mut self, value: f64) -> Self { + self.asm_serverless_traced_invocations_usage = Some(value); + self + } + pub fn browser_percentage(mut self, value: f64) -> Self { self.browser_percentage = Some(value); self @@ -723,6 +781,16 @@ impl MonthlyUsageAttributionValues { self } + pub fn error_tracking_percentage(mut self, value: f64) -> Self { + self.error_tracking_percentage = Some(value); + self + } + + pub fn error_tracking_usage(mut self, value: f64) -> Self { + self.error_tracking_usage = Some(value); + self + } + pub fn estimated_indexed_logs_percentage(mut self, value: f64) -> Self { self.estimated_indexed_logs_percentage = Some(value); self @@ -793,6 +861,16 @@ impl MonthlyUsageAttributionValues { self } + pub fn incident_management_monthly_active_users_percentage(mut self, value: f64) -> Self { + self.incident_management_monthly_active_users_percentage = Some(value); + self + } + + pub fn incident_management_monthly_active_users_usage(mut self, value: f64) -> Self { + self.incident_management_monthly_active_users_usage = Some(value); + self + } + pub fn indexed_spans_percentage(mut self, value: f64) -> Self { self.indexed_spans_percentage = Some(value); self @@ -993,6 +1071,26 @@ impl MonthlyUsageAttributionValues { self } + pub fn obs_pipelines_vcpu_percentage(mut self, value: f64) -> Self { + self.obs_pipelines_vcpu_percentage = Some(value); + self + } + + pub fn obs_pipelines_vcpu_usage(mut self, value: f64) -> Self { + self.obs_pipelines_vcpu_usage = Some(value); + self + } + + pub fn online_archive_percentage(mut self, value: f64) -> Self { + self.online_archive_percentage = Some(value); + self + } + + pub fn online_archive_usage(mut self, value: f64) -> Self { + self.online_archive_usage = Some(value); + self + } + pub fn profiled_container_percentage(mut self, value: f64) -> Self { self.profiled_container_percentage = Some(value); self @@ -1102,6 +1200,16 @@ impl MonthlyUsageAttributionValues { self.vuln_management_hosts_usage = Some(value); self } + + pub fn workflow_executions_percentage(mut self, value: f64) -> Self { + self.workflow_executions_percentage = Some(value); + self + } + + pub fn workflow_executions_usage(mut self, value: f64) -> Self { + self.workflow_executions_usage = Some(value); + self + } } impl Default for MonthlyUsageAttributionValues { @@ -1139,6 +1247,8 @@ impl<'de> Deserialize<'de> for MonthlyUsageAttributionValues { let mut appsec_fargate_usage: Option = None; let mut appsec_percentage: Option = None; let mut appsec_usage: Option = None; + let mut asm_serverless_traced_invocations_percentage: Option = None; + let mut asm_serverless_traced_invocations_usage: Option = None; let mut browser_percentage: Option = None; let mut browser_usage: Option = None; let mut ci_pipeline_indexed_spans_percentage: Option = None; @@ -1171,6 +1281,8 @@ impl<'de> Deserialize<'de> for MonthlyUsageAttributionValues { let mut dbm_hosts_usage: Option = None; let mut dbm_queries_percentage: Option = None; let mut dbm_queries_usage: Option = None; + let mut error_tracking_percentage: Option = None; + let mut error_tracking_usage: Option = None; let mut estimated_indexed_logs_percentage: Option = None; let mut estimated_indexed_logs_usage: Option = None; let mut estimated_indexed_spans_percentage: Option = None; @@ -1185,6 +1297,8 @@ impl<'de> Deserialize<'de> for MonthlyUsageAttributionValues { let mut fargate_usage: Option = None; let mut functions_percentage: Option = None; let mut functions_usage: Option = None; + let mut incident_management_monthly_active_users_percentage: Option = None; + let mut incident_management_monthly_active_users_usage: Option = None; let mut indexed_spans_percentage: Option = None; let mut indexed_spans_usage: Option = None; let mut infra_host_percentage: Option = None; @@ -1225,6 +1339,10 @@ impl<'de> Deserialize<'de> for MonthlyUsageAttributionValues { let mut npm_host_usage: Option = None; let mut obs_pipeline_bytes_percentage: Option = None; let mut obs_pipeline_bytes_usage: Option = None; + let mut obs_pipelines_vcpu_percentage: Option = None; + let mut obs_pipelines_vcpu_usage: Option = None; + let mut online_archive_percentage: Option = None; + let mut online_archive_usage: Option = None; let mut profiled_container_percentage: Option = None; let mut profiled_container_usage: Option = None; let mut profiled_fargate_percentage: Option = None; @@ -1247,6 +1365,8 @@ impl<'de> Deserialize<'de> for MonthlyUsageAttributionValues { let mut universal_service_monitoring_usage: Option = None; let mut vuln_management_hosts_percentage: Option = None; let mut vuln_management_hosts_usage: Option = None; + let mut workflow_executions_percentage: Option = None; + let mut workflow_executions_usage: Option = None; let mut _unparsed = false; while let Some((k, v)) = map.next_entry::()? { @@ -1334,6 +1454,20 @@ impl<'de> Deserialize<'de> for MonthlyUsageAttributionValues { appsec_usage = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "asm_serverless_traced_invocations_percentage" => { + if v.is_null() { + continue; + } + asm_serverless_traced_invocations_percentage = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "asm_serverless_traced_invocations_usage" => { + if v.is_null() { + continue; + } + asm_serverless_traced_invocations_usage = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "browser_percentage" => { if v.is_null() { continue; @@ -1558,6 +1692,20 @@ impl<'de> Deserialize<'de> for MonthlyUsageAttributionValues { dbm_queries_usage = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "error_tracking_percentage" => { + if v.is_null() { + continue; + } + error_tracking_percentage = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "error_tracking_usage" => { + if v.is_null() { + continue; + } + error_tracking_usage = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "estimated_indexed_logs_percentage" => { if v.is_null() { continue; @@ -1656,6 +1804,20 @@ impl<'de> Deserialize<'de> for MonthlyUsageAttributionValues { functions_usage = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "incident_management_monthly_active_users_percentage" => { + if v.is_null() { + continue; + } + incident_management_monthly_active_users_percentage = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "incident_management_monthly_active_users_usage" => { + if v.is_null() { + continue; + } + incident_management_monthly_active_users_usage = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "indexed_spans_percentage" => { if v.is_null() { continue; @@ -1936,6 +2098,34 @@ impl<'de> Deserialize<'de> for MonthlyUsageAttributionValues { obs_pipeline_bytes_usage = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "obs_pipelines_vcpu_percentage" => { + if v.is_null() { + continue; + } + obs_pipelines_vcpu_percentage = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "obs_pipelines_vcpu_usage" => { + if v.is_null() { + continue; + } + obs_pipelines_vcpu_usage = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "online_archive_percentage" => { + if v.is_null() { + continue; + } + online_archive_percentage = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "online_archive_usage" => { + if v.is_null() { + continue; + } + online_archive_usage = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "profiled_container_percentage" => { if v.is_null() { continue; @@ -2089,6 +2279,20 @@ impl<'de> Deserialize<'de> for MonthlyUsageAttributionValues { vuln_management_hosts_usage = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "workflow_executions_percentage" => { + if v.is_null() { + continue; + } + workflow_executions_percentage = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "workflow_executions_usage" => { + if v.is_null() { + continue; + } + workflow_executions_usage = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } &_ => {} } } @@ -2106,6 +2310,8 @@ impl<'de> Deserialize<'de> for MonthlyUsageAttributionValues { appsec_fargate_usage, appsec_percentage, appsec_usage, + asm_serverless_traced_invocations_percentage, + asm_serverless_traced_invocations_usage, browser_percentage, browser_usage, ci_pipeline_indexed_spans_percentage, @@ -2138,6 +2344,8 @@ impl<'de> Deserialize<'de> for MonthlyUsageAttributionValues { dbm_hosts_usage, dbm_queries_percentage, dbm_queries_usage, + error_tracking_percentage, + error_tracking_usage, estimated_indexed_logs_percentage, estimated_indexed_logs_usage, estimated_indexed_spans_percentage, @@ -2152,6 +2360,8 @@ impl<'de> Deserialize<'de> for MonthlyUsageAttributionValues { fargate_usage, functions_percentage, functions_usage, + incident_management_monthly_active_users_percentage, + incident_management_monthly_active_users_usage, indexed_spans_percentage, indexed_spans_usage, infra_host_percentage, @@ -2192,6 +2402,10 @@ impl<'de> Deserialize<'de> for MonthlyUsageAttributionValues { npm_host_usage, obs_pipeline_bytes_percentage, obs_pipeline_bytes_usage, + obs_pipelines_vcpu_percentage, + obs_pipelines_vcpu_usage, + online_archive_percentage, + online_archive_usage, profiled_container_percentage, profiled_container_usage, profiled_fargate_percentage, @@ -2214,6 +2428,8 @@ impl<'de> Deserialize<'de> for MonthlyUsageAttributionValues { universal_service_monitoring_usage, vuln_management_hosts_percentage, vuln_management_hosts_usage, + workflow_executions_percentage, + workflow_executions_usage, _unparsed, }; diff --git a/src/datadogV1/model/model_service_level_objective.rs b/src/datadogV1/model/model_service_level_objective.rs index 45779aa55..455b68e59 100644 --- a/src/datadogV1/model/model_service_level_objective.rs +++ b/src/datadogV1/model/model_service_level_objective.rs @@ -67,6 +67,9 @@ pub struct ServiceLevelObjective { /// min of all of those requests. #[serde(rename = "query")] pub query: Option, + /// A generic SLI specification. This is currently used for time-slice SLOs only. + #[serde(rename = "sli_specification")] + pub sli_specification: Option, /// A list of tags associated with this service level objective. /// Always included in service level objective responses (but may be empty). /// Optional in create/update requests. @@ -114,6 +117,7 @@ impl ServiceLevelObjective { monitor_tags: None, name, query: None, + sli_specification: None, tags: None, target_threshold: None, thresholds, @@ -169,6 +173,11 @@ impl ServiceLevelObjective { self } + pub fn sli_specification(mut self, value: crate::datadogV1::model::SLOSliSpec) -> Self { + self.sli_specification = Some(value); + self + } + pub fn tags(mut self, value: Vec) -> Self { self.tags = Some(value); self @@ -217,6 +226,7 @@ impl<'de> Deserialize<'de> for ServiceLevelObjective { let mut monitor_tags: Option> = None; let mut name: Option = None; let mut query: Option = None; + let mut sli_specification: Option = None; let mut tags: Option> = None; let mut target_threshold: Option = None; let mut thresholds: Option> = None; @@ -285,6 +295,23 @@ impl<'de> Deserialize<'de> for ServiceLevelObjective { } query = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "sli_specification" => { + if v.is_null() { + continue; + } + sli_specification = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _sli_specification) = sli_specification { + match _sli_specification { + crate::datadogV1::model::SLOSliSpec::UnparsedObject( + _sli_specification, + ) => { + _unparsed = true; + } + _ => {} + } + } + } "tags" => { if v.is_null() { continue; @@ -353,6 +380,7 @@ impl<'de> Deserialize<'de> for ServiceLevelObjective { monitor_tags, name, query, + sli_specification, tags, target_threshold, thresholds, diff --git a/src/datadogV1/model/model_service_level_objective_request.rs b/src/datadogV1/model/model_service_level_objective_request.rs index f2b6bbcb3..c77f26636 100644 --- a/src/datadogV1/model/model_service_level_objective_request.rs +++ b/src/datadogV1/model/model_service_level_objective_request.rs @@ -41,6 +41,9 @@ pub struct ServiceLevelObjectiveRequest { /// min of all of those requests. #[serde(rename = "query")] pub query: Option, + /// A generic SLI specification. This is currently used for time-slice SLOs only. + #[serde(rename = "sli_specification")] + pub sli_specification: Option, /// A list of tags associated with this service level objective. /// Always included in service level objective responses (but may be empty). /// Optional in create/update requests. @@ -83,6 +86,7 @@ impl ServiceLevelObjectiveRequest { monitor_ids: None, name, query: None, + sli_specification: None, tags: None, target_threshold: None, thresholds, @@ -113,6 +117,11 @@ impl ServiceLevelObjectiveRequest { self } + pub fn sli_specification(mut self, value: crate::datadogV1::model::SLOSliSpec) -> Self { + self.sli_specification = Some(value); + self + } + pub fn tags(mut self, value: Vec) -> Self { self.tags = Some(value); self @@ -156,6 +165,7 @@ impl<'de> Deserialize<'de> for ServiceLevelObjectiveRequest { let mut monitor_ids: Option> = None; let mut name: Option = None; let mut query: Option = None; + let mut sli_specification: Option = None; let mut tags: Option> = None; let mut target_threshold: Option = None; let mut thresholds: Option> = None; @@ -192,6 +202,23 @@ impl<'de> Deserialize<'de> for ServiceLevelObjectiveRequest { } query = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "sli_specification" => { + if v.is_null() { + continue; + } + sli_specification = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _sli_specification) = sli_specification { + match _sli_specification { + crate::datadogV1::model::SLOSliSpec::UnparsedObject( + _sli_specification, + ) => { + _unparsed = true; + } + _ => {} + } + } + } "tags" => { if v.is_null() { continue; @@ -255,6 +282,7 @@ impl<'de> Deserialize<'de> for ServiceLevelObjectiveRequest { monitor_ids, name, query, + sli_specification, tags, target_threshold, thresholds, diff --git a/src/datadogV1/model/model_slo_correction_create_request_attributes.rs b/src/datadogV1/model/model_slo_correction_create_request_attributes.rs index 99eb1b369..e72b3c68a 100644 --- a/src/datadogV1/model/model_slo_correction_create_request_attributes.rs +++ b/src/datadogV1/model/model_slo_correction_create_request_attributes.rs @@ -24,7 +24,7 @@ pub struct SLOCorrectionCreateRequestAttributes { #[serde(rename = "end")] pub end: Option, /// The recurrence rules as defined in the iCalendar RFC 5545. The supported rules for SLO corrections - /// are `FREQ`, `INTERVAL`, `COUNT` and `UNTIL`. + /// are `FREQ`, `INTERVAL`, `COUNT`, `UNTIL` and `BYDAY`. #[serde(rename = "rrule")] pub rrule: Option, /// ID of the SLO that this correction applies to. diff --git a/src/datadogV1/model/model_slo_correction_response_attributes.rs b/src/datadogV1/model/model_slo_correction_response_attributes.rs index 875febf80..a21101d50 100644 --- a/src/datadogV1/model/model_slo_correction_response_attributes.rs +++ b/src/datadogV1/model/model_slo_correction_response_attributes.rs @@ -52,7 +52,7 @@ pub struct SLOCorrectionResponseAttributes { )] pub modifier: Option>, /// The recurrence rules as defined in the iCalendar RFC 5545. The supported rules for SLO corrections - /// are `FREQ`, `INTERVAL`, `COUNT`, and `UNTIL`. + /// are `FREQ`, `INTERVAL`, `COUNT`, `UNTIL` and `BYDAY`. #[serde(rename = "rrule", default, with = "::serde_with::rust::double_option")] pub rrule: Option>, /// ID of the SLO that this correction applies to. diff --git a/src/datadogV1/model/model_slo_correction_update_request_attributes.rs b/src/datadogV1/model/model_slo_correction_update_request_attributes.rs index c3d584161..666085e26 100644 --- a/src/datadogV1/model/model_slo_correction_update_request_attributes.rs +++ b/src/datadogV1/model/model_slo_correction_update_request_attributes.rs @@ -24,7 +24,7 @@ pub struct SLOCorrectionUpdateRequestAttributes { #[serde(rename = "end")] pub end: Option, /// The recurrence rules as defined in the iCalendar RFC 5545. The supported rules for SLO corrections - /// are `FREQ`, `INTERVAL`, `COUNT`, and `UNTIL`. + /// are `FREQ`, `INTERVAL`, `COUNT`, `UNTIL` and `BYDAY`. #[serde(rename = "rrule")] pub rrule: Option, /// Starting time of the correction in epoch seconds. diff --git a/src/datadogV1/model/model_slo_data_source_query_definition.rs b/src/datadogV1/model/model_slo_data_source_query_definition.rs new file mode 100644 index 000000000..ccf92096a --- /dev/null +++ b/src/datadogV1/model/model_slo_data_source_query_definition.rs @@ -0,0 +1,38 @@ +// 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 2019-Present Datadog, Inc. +use serde::{Deserialize, Deserializer, Serialize}; + +/// A formula and function query. +#[non_exhaustive] +#[derive(Clone, Debug, PartialEq, Serialize)] +#[serde(untagged)] +pub enum SLODataSourceQueryDefinition { + FormulaAndFunctionMetricQueryDefinition( + Box, + ), + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl<'de> Deserialize<'de> for SLODataSourceQueryDefinition { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let value: serde_json::Value = Deserialize::deserialize(deserializer)?; + if let Ok(_v) = serde_json::from_value::< + Box, + >(value.clone()) + { + if !_v._unparsed { + return Ok( + SLODataSourceQueryDefinition::FormulaAndFunctionMetricQueryDefinition(_v), + ); + } + } + + return Ok(SLODataSourceQueryDefinition::UnparsedObject( + crate::datadog::UnparsedObject { value }, + )); + } +} diff --git a/src/datadogV1/model/model_slo_formula.rs b/src/datadogV1/model/model_slo_formula.rs new file mode 100644 index 000000000..62f63f22f --- /dev/null +++ b/src/datadogV1/model/model_slo_formula.rs @@ -0,0 +1,69 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// A formula that specifies how to combine the results of multiple queries. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct SLOFormula { + /// The formula string, which is an expression involving named queries. + #[serde(rename = "formula")] + pub formula: String, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl SLOFormula { + pub fn new(formula: String) -> SLOFormula { + SLOFormula { + formula, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for SLOFormula { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct SLOFormulaVisitor; + impl<'a> Visitor<'a> for SLOFormulaVisitor { + type Value = SLOFormula; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut formula: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "formula" => { + formula = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + let formula = formula.ok_or_else(|| M::Error::missing_field("formula"))?; + + let content = SLOFormula { formula, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(SLOFormulaVisitor) + } +} diff --git a/src/datadogV1/model/model_slo_history_metrics.rs b/src/datadogV1/model/model_slo_history_metrics.rs index 6e073eeb8..36a799d56 100644 --- a/src/datadogV1/model/model_slo_history_metrics.rs +++ b/src/datadogV1/model/model_slo_history_metrics.rs @@ -13,7 +13,7 @@ use std::fmt::{self, Formatter}; #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] pub struct SLOHistoryMetrics { - /// A representation of `metric` based SLO time series for the provided queries. + /// A representation of `metric` based SLO timeseries for the provided queries. /// This is the same response type from `batch_query` endpoint. #[serde(rename = "denominator")] pub denominator: crate::datadogV1::model::SLOHistoryMetricsSeries, @@ -23,7 +23,7 @@ pub struct SLOHistoryMetrics { /// Optional message if there are specific query issues/warnings. #[serde(rename = "message")] pub message: Option, - /// A representation of `metric` based SLO time series for the provided queries. + /// A representation of `metric` based SLO timeseries for the provided queries. /// This is the same response type from `batch_query` endpoint. #[serde(rename = "numerator")] pub numerator: crate::datadogV1::model::SLOHistoryMetricsSeries, diff --git a/src/datadogV1/model/model_slo_history_metrics_series.rs b/src/datadogV1/model/model_slo_history_metrics_series.rs index 8f57765df..a68a1dc40 100644 --- a/src/datadogV1/model/model_slo_history_metrics_series.rs +++ b/src/datadogV1/model/model_slo_history_metrics_series.rs @@ -6,7 +6,7 @@ use serde::{Deserialize, Deserializer, Serialize}; use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; -/// A representation of `metric` based SLO time series for the provided queries. +/// A representation of `metric` based SLO timeseries for the provided queries. /// This is the same response type from `batch_query` endpoint. #[non_exhaustive] #[skip_serializing_none] diff --git a/src/datadogV1/model/model_slo_history_monitor.rs b/src/datadogV1/model/model_slo_history_monitor.rs index ff59620af..b2c9d0ab8 100644 --- a/src/datadogV1/model/model_slo_history_monitor.rs +++ b/src/datadogV1/model/model_slo_history_monitor.rs @@ -21,7 +21,7 @@ pub struct SLOHistoryMonitor { /// For groups in a grouped SLO, this is the group name. #[serde(rename = "group")] pub group: Option, - /// For `monitor` based SLOs, this includes the aggregated history as arrays that include time series and uptime data where `0=monitor` is in `OK` state and `1=monitor` is in `alert` state. + /// For `monitor` based SLOs, this includes the aggregated history as arrays that include timeseries and uptime data where `0=monitor` is in `OK` state and `1=monitor` is in `alert` state. #[serde(rename = "history")] pub history: Option>>, /// For `monitor` based SLOs, this is the last modified timestamp in epoch seconds of the monitor. diff --git a/src/datadogV1/model/model_slo_history_sli_data.rs b/src/datadogV1/model/model_slo_history_sli_data.rs index df2d2d9bf..d9127fdf4 100644 --- a/src/datadogV1/model/model_slo_history_sli_data.rs +++ b/src/datadogV1/model/model_slo_history_sli_data.rs @@ -21,7 +21,7 @@ pub struct SLOHistorySLIData { /// For groups in a grouped SLO, this is the group name. #[serde(rename = "group")] pub group: Option, - /// For `monitor` based SLOs, this includes the aggregated history as arrays that include time series and uptime data where `0=monitor` is in `OK` state and `1=monitor` is in `alert` state. + /// For `monitor` based SLOs, this includes the aggregated history as arrays that include timeseries and uptime data where `0=monitor` is in `OK` state and `1=monitor` is in `alert` state. #[serde(rename = "history")] pub history: Option>>, /// For `monitor` based SLOs, this is the last modified timestamp in epoch seconds of the monitor. diff --git a/src/datadogV1/model/model_slo_response_data.rs b/src/datadogV1/model/model_slo_response_data.rs index b0e1f8c0a..794903d41 100644 --- a/src/datadogV1/model/model_slo_response_data.rs +++ b/src/datadogV1/model/model_slo_response_data.rs @@ -70,6 +70,9 @@ pub struct SLOResponseData { /// min of all of those requests. #[serde(rename = "query")] pub query: Option, + /// A generic SLI specification. This is currently used for time-slice SLOs only. + #[serde(rename = "sli_specification")] + pub sli_specification: Option, /// A list of tags associated with this service level objective. /// Always included in service level objective responses (but may be empty). /// Optional in create/update requests. @@ -114,6 +117,7 @@ impl SLOResponseData { monitor_tags: None, name: None, query: None, + sli_specification: None, tags: None, target_threshold: None, thresholds: None, @@ -179,6 +183,11 @@ impl SLOResponseData { self } + pub fn sli_specification(mut self, value: crate::datadogV1::model::SLOSliSpec) -> Self { + self.sli_specification = Some(value); + self + } + pub fn tags(mut self, value: Vec) -> Self { self.tags = Some(value); self @@ -244,6 +253,7 @@ impl<'de> Deserialize<'de> for SLOResponseData { let mut monitor_tags: Option> = None; let mut name: Option = None; let mut query: Option = None; + let mut sli_specification: Option = None; let mut tags: Option> = None; let mut target_threshold: Option = None; let mut thresholds: Option> = None; @@ -322,6 +332,23 @@ impl<'de> Deserialize<'de> for SLOResponseData { } query = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "sli_specification" => { + if v.is_null() { + continue; + } + sli_specification = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _sli_specification) = sli_specification { + match _sli_specification { + crate::datadogV1::model::SLOSliSpec::UnparsedObject( + _sli_specification, + ) => { + _unparsed = true; + } + _ => {} + } + } + } "tags" => { if v.is_null() { continue; @@ -394,6 +421,7 @@ impl<'de> Deserialize<'de> for SLOResponseData { monitor_tags, name, query, + sli_specification, tags, target_threshold, thresholds, diff --git a/src/datadogV1/model/model_slo_sli_spec.rs b/src/datadogV1/model/model_slo_sli_spec.rs new file mode 100644 index 000000000..12687266a --- /dev/null +++ b/src/datadogV1/model/model_slo_sli_spec.rs @@ -0,0 +1,33 @@ +// 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 2019-Present Datadog, Inc. +use serde::{Deserialize, Deserializer, Serialize}; + +/// A generic SLI specification. This is currently used for time-slice SLOs only. +#[non_exhaustive] +#[derive(Clone, Debug, PartialEq, Serialize)] +#[serde(untagged)] +pub enum SLOSliSpec { + SLOTimeSliceSpec(Box), + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl<'de> Deserialize<'de> for SLOSliSpec { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let value: serde_json::Value = Deserialize::deserialize(deserializer)?; + if let Ok(_v) = + serde_json::from_value::>(value.clone()) + { + if !_v._unparsed { + return Ok(SLOSliSpec::SLOTimeSliceSpec(_v)); + } + } + + return Ok(SLOSliSpec::UnparsedObject(crate::datadog::UnparsedObject { + value, + })); + } +} diff --git a/src/datadogV1/model/model_slo_time_slice_comparator.rs b/src/datadogV1/model/model_slo_time_slice_comparator.rs new file mode 100644 index 000000000..04f49954a --- /dev/null +++ b/src/datadogV1/model/model_slo_time_slice_comparator.rs @@ -0,0 +1,57 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum SLOTimeSliceComparator { + GREATER, + GREATER_EQUAL, + LESS, + LESS_EQUAL, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for SLOTimeSliceComparator { + fn to_string(&self) -> String { + match self { + Self::GREATER => String::from(">"), + Self::GREATER_EQUAL => String::from(">="), + Self::LESS => String::from("<"), + Self::LESS_EQUAL => String::from("<="), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for SLOTimeSliceComparator { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for SLOTimeSliceComparator { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + ">" => Self::GREATER, + ">=" => Self::GREATER_EQUAL, + "<" => Self::LESS, + "<=" => Self::LESS_EQUAL, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV1/model/model_slo_time_slice_condition.rs b/src/datadogV1/model/model_slo_time_slice_condition.rs new file mode 100644 index 000000000..74271496a --- /dev/null +++ b/src/datadogV1/model/model_slo_time_slice_condition.rs @@ -0,0 +1,138 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// The time-slice condition, composed of 3 parts: 1. the metric timeseries query, 2. the comparator, +/// and 3. the threshold. Optionally, a fourth part, the query interval, can be provided. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct SLOTimeSliceCondition { + /// The comparator used to compare the SLI value to the threshold. + #[serde(rename = "comparator")] + pub comparator: crate::datadogV1::model::SLOTimeSliceComparator, + /// The queries and formula used to calculate the SLI value. + #[serde(rename = "query")] + pub query: crate::datadogV1::model::SLOTimeSliceQuery, + /// The interval used when querying data, which defines the size of a time slice. + /// Two values are allowed: 60 (1 minute) and 300 (5 minutes). + /// If not provided, the value defaults to 300 (5 minutes). + #[serde(rename = "query_interval_seconds")] + pub query_interval_seconds: Option, + /// The threshold value to which each SLI value will be compared. + #[serde(rename = "threshold")] + pub threshold: f64, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl SLOTimeSliceCondition { + pub fn new( + comparator: crate::datadogV1::model::SLOTimeSliceComparator, + query: crate::datadogV1::model::SLOTimeSliceQuery, + threshold: f64, + ) -> SLOTimeSliceCondition { + SLOTimeSliceCondition { + comparator, + query, + query_interval_seconds: None, + threshold, + _unparsed: false, + } + } + + pub fn query_interval_seconds( + mut self, + value: crate::datadogV1::model::SLOTimeSliceInterval, + ) -> Self { + self.query_interval_seconds = Some(value); + self + } +} + +impl<'de> Deserialize<'de> for SLOTimeSliceCondition { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct SLOTimeSliceConditionVisitor; + impl<'a> Visitor<'a> for SLOTimeSliceConditionVisitor { + type Value = SLOTimeSliceCondition; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut comparator: Option = None; + let mut query: Option = None; + let mut query_interval_seconds: Option< + crate::datadogV1::model::SLOTimeSliceInterval, + > = None; + let mut threshold: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "comparator" => { + comparator = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _comparator) = comparator { + match _comparator { + crate::datadogV1::model::SLOTimeSliceComparator::UnparsedObject(_comparator) => { + _unparsed = true; + }, + _ => {} + } + } + } + "query" => { + query = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "query_interval_seconds" => { + if v.is_null() { + continue; + } + query_interval_seconds = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _query_interval_seconds) = query_interval_seconds { + match _query_interval_seconds { + crate::datadogV1::model::SLOTimeSliceInterval::UnparsedObject(_query_interval_seconds) => { + _unparsed = true; + }, + _ => {} + } + } + } + "threshold" => { + threshold = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + let comparator = comparator.ok_or_else(|| M::Error::missing_field("comparator"))?; + let query = query.ok_or_else(|| M::Error::missing_field("query"))?; + let threshold = threshold.ok_or_else(|| M::Error::missing_field("threshold"))?; + + let content = SLOTimeSliceCondition { + comparator, + query, + query_interval_seconds, + threshold, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(SLOTimeSliceConditionVisitor) + } +} diff --git a/src/datadogV1/model/model_slo_time_slice_interval.rs b/src/datadogV1/model/model_slo_time_slice_interval.rs new file mode 100644 index 000000000..0feb3c8a5 --- /dev/null +++ b/src/datadogV1/model/model_slo_time_slice_interval.rs @@ -0,0 +1,42 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum SLOTimeSliceInterval { + ONE_MINUTE, + FIVE_MINUTES, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl Serialize for SLOTimeSliceInterval { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + Self::ONE_MINUTE => serializer.serialize_i32(60), + Self::FIVE_MINUTES => serializer.serialize_i32(300), + } + } +} + +impl<'de> Deserialize<'de> for SLOTimeSliceInterval { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: i32 = i32::deserialize(deserializer)?; + Ok(match s { + 60 => Self::ONE_MINUTE, + 300 => Self::FIVE_MINUTES, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::Number(s.into()), + }), + }) + } +} diff --git a/src/datadogV1/model/model_slo_time_slice_query.rs b/src/datadogV1/model/model_slo_time_slice_query.rs new file mode 100644 index 000000000..00e9ef2fc --- /dev/null +++ b/src/datadogV1/model/model_slo_time_slice_query.rs @@ -0,0 +1,87 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// The queries and formula used to calculate the SLI value. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct SLOTimeSliceQuery { + /// A list that contains exactly one formula, as only a single formula may be used in a time-slice SLO. + #[serde(rename = "formulas")] + pub formulas: Vec, + /// A list of queries that are used to calculate the SLI value. + #[serde(rename = "queries")] + pub queries: Vec, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl SLOTimeSliceQuery { + pub fn new( + formulas: Vec, + queries: Vec, + ) -> SLOTimeSliceQuery { + SLOTimeSliceQuery { + formulas, + queries, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for SLOTimeSliceQuery { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct SLOTimeSliceQueryVisitor; + impl<'a> Visitor<'a> for SLOTimeSliceQueryVisitor { + type Value = SLOTimeSliceQuery; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut formulas: Option> = None; + let mut queries: Option< + Vec, + > = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "formulas" => { + formulas = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "queries" => { + queries = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + let formulas = formulas.ok_or_else(|| M::Error::missing_field("formulas"))?; + let queries = queries.ok_or_else(|| M::Error::missing_field("queries"))?; + + let content = SLOTimeSliceQuery { + formulas, + queries, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(SLOTimeSliceQueryVisitor) + } +} diff --git a/src/datadogV1/model/model_slo_time_slice_spec.rs b/src/datadogV1/model/model_slo_time_slice_spec.rs new file mode 100644 index 000000000..b85f9fc9b --- /dev/null +++ b/src/datadogV1/model/model_slo_time_slice_spec.rs @@ -0,0 +1,73 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// A time-slice SLI specification. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct SLOTimeSliceSpec { + /// The time-slice condition, composed of 3 parts: 1. the metric timeseries query, 2. the comparator, + /// and 3. the threshold. Optionally, a fourth part, the query interval, can be provided. + #[serde(rename = "time_slice")] + pub time_slice: crate::datadogV1::model::SLOTimeSliceCondition, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl SLOTimeSliceSpec { + pub fn new(time_slice: crate::datadogV1::model::SLOTimeSliceCondition) -> SLOTimeSliceSpec { + SLOTimeSliceSpec { + time_slice, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for SLOTimeSliceSpec { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct SLOTimeSliceSpecVisitor; + impl<'a> Visitor<'a> for SLOTimeSliceSpecVisitor { + type Value = SLOTimeSliceSpec; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut time_slice: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "time_slice" => { + time_slice = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + let time_slice = time_slice.ok_or_else(|| M::Error::missing_field("time_slice"))?; + + let content = SLOTimeSliceSpec { + time_slice, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(SLOTimeSliceSpecVisitor) + } +} diff --git a/src/datadogV1/model/model_slo_type.rs b/src/datadogV1/model/model_slo_type.rs index 84866a7fd..5cebb1022 100644 --- a/src/datadogV1/model/model_slo_type.rs +++ b/src/datadogV1/model/model_slo_type.rs @@ -9,6 +9,7 @@ use serde::{Deserialize, Deserializer, Serialize, Serializer}; pub enum SLOType { METRIC, MONITOR, + TIME_SLICE, UnparsedObject(crate::datadog::UnparsedObject), } @@ -17,6 +18,7 @@ impl ToString for SLOType { match self { Self::METRIC => String::from("metric"), Self::MONITOR => String::from("monitor"), + Self::TIME_SLICE => String::from("time_slice"), Self::UnparsedObject(v) => v.value.to_string(), } } @@ -43,6 +45,7 @@ impl<'de> Deserialize<'de> for SLOType { Ok(match s.as_str() { "metric" => Self::METRIC, "monitor" => Self::MONITOR, + "time_slice" => Self::TIME_SLICE, _ => Self::UnparsedObject(crate::datadog::UnparsedObject { value: serde_json::Value::String(s.into()), }), diff --git a/src/datadogV1/model/model_slo_type_numeric.rs b/src/datadogV1/model/model_slo_type_numeric.rs index f6715b73b..f2d594f8b 100644 --- a/src/datadogV1/model/model_slo_type_numeric.rs +++ b/src/datadogV1/model/model_slo_type_numeric.rs @@ -9,6 +9,7 @@ use serde::{Deserialize, Deserializer, Serialize, Serializer}; pub enum SLOTypeNumeric { MONITOR, METRIC, + TIME_SLICE, UnparsedObject(crate::datadog::UnparsedObject), } @@ -21,6 +22,7 @@ impl Serialize for SLOTypeNumeric { Self::UnparsedObject(v) => v.serialize(serializer), Self::MONITOR => serializer.serialize_i32(0), Self::METRIC => serializer.serialize_i32(1), + Self::TIME_SLICE => serializer.serialize_i32(2), } } } @@ -34,6 +36,7 @@ impl<'de> Deserialize<'de> for SLOTypeNumeric { Ok(match s { 0 => Self::MONITOR, 1 => Self::METRIC, + 2 => Self::TIME_SLICE, _ => Self::UnparsedObject(crate::datadog::UnparsedObject { value: serde_json::Value::Number(s.into()), }), diff --git a/src/datadogV1/model/model_synthetics_api_step_subtype.rs b/src/datadogV1/model/model_synthetics_api_step_subtype.rs index cd2ec0a98..056176af7 100644 --- a/src/datadogV1/model/model_synthetics_api_step_subtype.rs +++ b/src/datadogV1/model/model_synthetics_api_step_subtype.rs @@ -8,6 +8,7 @@ use serde::{Deserialize, Deserializer, Serialize, Serializer}; #[derive(Clone, Debug, Eq, PartialEq)] pub enum SyntheticsAPIStepSubtype { HTTP, + GRPC, UnparsedObject(crate::datadog::UnparsedObject), } @@ -15,6 +16,7 @@ impl ToString for SyntheticsAPIStepSubtype { fn to_string(&self) -> String { match self { Self::HTTP => String::from("http"), + Self::GRPC => String::from("grpc"), Self::UnparsedObject(v) => v.value.to_string(), } } @@ -40,6 +42,7 @@ impl<'de> Deserialize<'de> for SyntheticsAPIStepSubtype { let s: String = String::deserialize(deserializer)?; Ok(match s.as_str() { "http" => Self::HTTP, + "grpc" => Self::GRPC, _ => Self::UnparsedObject(crate::datadog::UnparsedObject { value: serde_json::Value::String(s.into()), }), diff --git a/src/datadogV1/model/model_synthetics_test_request.rs b/src/datadogV1/model/model_synthetics_test_request.rs index 630d64275..90121f4ff 100644 --- a/src/datadogV1/model/model_synthetics_test_request.rs +++ b/src/datadogV1/model/model_synthetics_test_request.rs @@ -35,12 +35,18 @@ pub struct SyntheticsTestRequest { /// A protobuf JSON descriptor that needs to be gzipped first then base64 encoded. #[serde(rename = "compressedJsonDescriptor")] pub compressed_json_descriptor: Option, + /// A protobuf file that needs to be gzipped first then base64 encoded. + #[serde(rename = "compressedProtoFile")] + pub compressed_proto_file: Option, /// DNS server to use for DNS tests. #[serde(rename = "dnsServer")] pub dns_server: Option, /// DNS server port to use for DNS tests. #[serde(rename = "dnsServerPort")] pub dns_server_port: Option, + /// Files to be used as part of the request in the test. + #[serde(rename = "files")] + pub files: Option>, /// Specifies whether or not the request follows redirects. #[serde(rename = "follow_redirects")] pub follow_redirects: Option, @@ -50,6 +56,9 @@ pub struct SyntheticsTestRequest { /// Host name to perform the test with. #[serde(rename = "host")] pub host: Option, + /// HTTP version to use for a Synthetic test. + #[serde(rename = "httpVersion")] + pub http_version: Option, /// Message to send for UDP or WebSocket tests. #[serde(rename = "message")] pub message: Option, @@ -110,11 +119,14 @@ impl SyntheticsTestRequest { certificate: None, certificate_domains: None, compressed_json_descriptor: None, + compressed_proto_file: None, dns_server: None, dns_server_port: None, + files: None, follow_redirects: None, headers: None, host: None, + http_version: None, message: None, metadata: None, method: None, @@ -179,6 +191,11 @@ impl SyntheticsTestRequest { self } + pub fn compressed_proto_file(mut self, value: String) -> Self { + self.compressed_proto_file = Some(value); + self + } + pub fn dns_server(mut self, value: String) -> Self { self.dns_server = Some(value); self @@ -189,6 +206,14 @@ impl SyntheticsTestRequest { self } + pub fn files( + mut self, + value: Vec, + ) -> Self { + self.files = Some(value); + self + } + pub fn follow_redirects(mut self, value: bool) -> Self { self.follow_redirects = Some(value); self @@ -204,6 +229,14 @@ impl SyntheticsTestRequest { self } + pub fn http_version( + mut self, + value: crate::datadogV1::model::SyntheticsTestOptionsHTTPVersion, + ) -> Self { + self.http_version = Some(value); + self + } + pub fn message(mut self, value: String) -> Self { self.message = Some(value); self @@ -309,11 +342,17 @@ impl<'de> Deserialize<'de> for SyntheticsTestRequest { > = None; let mut certificate_domains: Option> = None; let mut compressed_json_descriptor: Option = None; + let mut compressed_proto_file: Option = None; let mut dns_server: Option = None; let mut dns_server_port: Option = None; + let mut files: Option> = + None; let mut follow_redirects: Option = None; let mut headers: Option> = None; let mut host: Option = None; + let mut http_version: Option< + crate::datadogV1::model::SyntheticsTestOptionsHTTPVersion, + > = None; let mut message: Option = None; let mut metadata: Option> = None; let mut method: Option = None; @@ -408,6 +447,13 @@ impl<'de> Deserialize<'de> for SyntheticsTestRequest { compressed_json_descriptor = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "compressedProtoFile" => { + if v.is_null() { + continue; + } + compressed_proto_file = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "dnsServer" => { if v.is_null() { continue; @@ -421,6 +467,12 @@ impl<'de> Deserialize<'de> for SyntheticsTestRequest { dns_server_port = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "files" => { + if v.is_null() { + continue; + } + files = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "follow_redirects" => { if v.is_null() { continue; @@ -440,6 +492,21 @@ impl<'de> Deserialize<'de> for SyntheticsTestRequest { } host = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "httpVersion" => { + if v.is_null() { + continue; + } + http_version = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _http_version) = http_version { + match _http_version { + crate::datadogV1::model::SyntheticsTestOptionsHTTPVersion::UnparsedObject(_http_version) => { + _unparsed = true; + }, + _ => {} + } + } + } "message" => { if v.is_null() { continue; @@ -541,11 +608,14 @@ impl<'de> Deserialize<'de> for SyntheticsTestRequest { certificate, certificate_domains, compressed_json_descriptor, + compressed_proto_file, dns_server, dns_server_port, + files, follow_redirects, headers, host, + http_version, message, metadata, method, diff --git a/src/datadogV1/model/model_synthetics_test_request_body_file.rs b/src/datadogV1/model/model_synthetics_test_request_body_file.rs new file mode 100644 index 000000000..0bd23c304 --- /dev/null +++ b/src/datadogV1/model/model_synthetics_test_request_body_file.rs @@ -0,0 +1,153 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Object describing a file to be used as part of the request in the test. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct SyntheticsTestRequestBodyFile { + /// Bucket key of the file. + #[serde(rename = "bucketKey")] + pub bucket_key: Option, + /// Content of the file. + #[serde(rename = "content")] + pub content: Option, + /// Name of the file. + #[serde(rename = "name")] + pub name: Option, + /// Size of the file. + #[serde(rename = "size")] + pub size: Option, + /// Type of the file. + #[serde(rename = "type")] + pub type_: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl SyntheticsTestRequestBodyFile { + pub fn new() -> SyntheticsTestRequestBodyFile { + SyntheticsTestRequestBodyFile { + bucket_key: None, + content: None, + name: None, + size: None, + type_: None, + _unparsed: false, + } + } + + pub fn bucket_key(mut self, value: String) -> Self { + self.bucket_key = Some(value); + self + } + + pub fn content(mut self, value: String) -> Self { + self.content = Some(value); + self + } + + pub fn name(mut self, value: String) -> Self { + self.name = Some(value); + self + } + + pub fn size(mut self, value: i64) -> Self { + self.size = Some(value); + self + } + + pub fn type_(mut self, value: String) -> Self { + self.type_ = Some(value); + self + } +} + +impl Default for SyntheticsTestRequestBodyFile { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for SyntheticsTestRequestBodyFile { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct SyntheticsTestRequestBodyFileVisitor; + impl<'a> Visitor<'a> for SyntheticsTestRequestBodyFileVisitor { + type Value = SyntheticsTestRequestBodyFile; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut bucket_key: Option = None; + let mut content: Option = None; + let mut name: Option = None; + let mut size: Option = None; + let mut type_: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "bucketKey" => { + if v.is_null() { + continue; + } + bucket_key = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "content" => { + if v.is_null() { + continue; + } + content = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "name" => { + if v.is_null() { + continue; + } + name = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "size" => { + if v.is_null() { + continue; + } + size = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + if v.is_null() { + continue; + } + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = SyntheticsTestRequestBodyFile { + bucket_key, + content, + name, + size, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(SyntheticsTestRequestBodyFileVisitor) + } +} diff --git a/src/datadogV1/model/model_synthetics_test_request_body_type.rs b/src/datadogV1/model/model_synthetics_test_request_body_type.rs index 9a080e464..df55ee652 100644 --- a/src/datadogV1/model/model_synthetics_test_request_body_type.rs +++ b/src/datadogV1/model/model_synthetics_test_request_body_type.rs @@ -13,6 +13,8 @@ pub enum SyntheticsTestRequestBodyType { TEXT_HTML, APPLICATION_X_WWW_FORM_URLENCODED, GRAPHQL, + APPLICATION_OCTET_STREAM, + MULTIPART_FORM_DATA, UnparsedObject(crate::datadog::UnparsedObject), } @@ -27,6 +29,8 @@ impl ToString for SyntheticsTestRequestBodyType { String::from("application/x-www-form-urlencoded") } Self::GRAPHQL => String::from("graphql"), + Self::APPLICATION_OCTET_STREAM => String::from("application/octet-stream"), + Self::MULTIPART_FORM_DATA => String::from("multipart/form-data"), Self::UnparsedObject(v) => v.value.to_string(), } } @@ -57,6 +61,8 @@ impl<'de> Deserialize<'de> for SyntheticsTestRequestBodyType { "text/html" => Self::TEXT_HTML, "application/x-www-form-urlencoded" => Self::APPLICATION_X_WWW_FORM_URLENCODED, "graphql" => Self::GRAPHQL, + "application/octet-stream" => Self::APPLICATION_OCTET_STREAM, + "multipart/form-data" => Self::MULTIPART_FORM_DATA, _ => Self::UnparsedObject(crate::datadog::UnparsedObject { value: serde_json::Value::String(s.into()), }), diff --git a/src/datadogV1/model/model_usage_attribution_body.rs b/src/datadogV1/model/model_usage_attribution_body.rs deleted file mode 100644 index 6423c1d70..000000000 --- a/src/datadogV1/model/model_usage_attribution_body.rs +++ /dev/null @@ -1,194 +0,0 @@ -// 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 2019-Present Datadog, Inc. -use serde::de::{Error, MapAccess, Visitor}; -use serde::{Deserialize, Deserializer, Serialize}; -use serde_with::skip_serializing_none; -use std::fmt::{self, Formatter}; - -/// Usage Summary by tag for a given organization. -#[non_exhaustive] -#[skip_serializing_none] -#[derive(Clone, Debug, PartialEq, Serialize)] -pub struct UsageAttributionBody { - /// Datetime in ISO-8601 format, UTC, precise to month: [YYYY-MM]. - #[serde(rename = "month")] - pub month: Option, - /// The name of the organization. - #[serde(rename = "org_name")] - pub org_name: Option, - /// The organization public ID. - #[serde(rename = "public_id")] - pub public_id: Option, - /// The source of the usage attribution tag configuration and the selected tags in the format `::://////`. - #[serde(rename = "tag_config_source")] - pub tag_config_source: Option, - /// Tag keys and values. - /// - /// A `null` value here means that the requested tag breakdown cannot be applied because it does not match the [tags - /// configured for usage attribution](). - /// In this scenario the API returns the total usage, not broken down by tags. - #[serde(rename = "tags", default, with = "::serde_with::rust::double_option")] - pub tags: Option>>>>, - /// Shows the the most recent hour in the current months for all organizations for which all usages were calculated. - #[serde(rename = "updated_at")] - pub updated_at: Option, - /// Fields in Usage Summary by tag(s). - #[serde(rename = "values")] - pub values: Option, - #[serde(skip)] - #[serde(default)] - pub(crate) _unparsed: bool, -} - -impl UsageAttributionBody { - pub fn new() -> UsageAttributionBody { - UsageAttributionBody { - month: None, - org_name: None, - public_id: None, - tag_config_source: None, - tags: None, - updated_at: None, - values: None, - _unparsed: false, - } - } - - pub fn month(mut self, value: String) -> Self { - self.month = Some(value); - self - } - - pub fn org_name(mut self, value: String) -> Self { - self.org_name = Some(value); - self - } - - pub fn public_id(mut self, value: String) -> Self { - self.public_id = Some(value); - self - } - - pub fn tag_config_source(mut self, value: String) -> Self { - self.tag_config_source = Some(value); - self - } - - pub fn tags( - mut self, - value: Option>>>, - ) -> Self { - self.tags = Some(value); - self - } - - pub fn updated_at(mut self, value: String) -> Self { - self.updated_at = Some(value); - self - } - - pub fn values(mut self, value: crate::datadogV1::model::UsageAttributionValues) -> Self { - self.values = Some(value); - self - } -} - -impl Default for UsageAttributionBody { - fn default() -> Self { - Self::new() - } -} - -impl<'de> Deserialize<'de> for UsageAttributionBody { - fn deserialize(deserializer: D) -> Result - where - D: Deserializer<'de>, - { - struct UsageAttributionBodyVisitor; - impl<'a> Visitor<'a> for UsageAttributionBodyVisitor { - type Value = UsageAttributionBody; - - fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { - f.write_str("a mapping") - } - - fn visit_map(self, mut map: M) -> Result - where - M: MapAccess<'a>, - { - let mut month: Option = None; - let mut org_name: Option = None; - let mut public_id: Option = None; - let mut tag_config_source: Option = None; - let mut tags: Option< - Option>>>, - > = None; - let mut updated_at: Option = None; - let mut values: Option = None; - let mut _unparsed = false; - - while let Some((k, v)) = map.next_entry::()? { - match k.as_str() { - "month" => { - if v.is_null() { - continue; - } - month = Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "org_name" => { - if v.is_null() { - continue; - } - org_name = Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "public_id" => { - if v.is_null() { - continue; - } - public_id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "tag_config_source" => { - if v.is_null() { - continue; - } - tag_config_source = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "tags" => { - tags = Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "updated_at" => { - if v.is_null() { - continue; - } - updated_at = Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "values" => { - if v.is_null() { - continue; - } - values = Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - &_ => {} - } - } - - let content = UsageAttributionBody { - month, - org_name, - public_id, - tag_config_source, - tags, - updated_at, - values, - _unparsed, - }; - - Ok(content) - } - } - - deserializer.deserialize_any(UsageAttributionBodyVisitor) - } -} diff --git a/src/datadogV1/model/model_usage_attribution_metadata.rs b/src/datadogV1/model/model_usage_attribution_metadata.rs deleted file mode 100644 index 7321137d6..000000000 --- a/src/datadogV1/model/model_usage_attribution_metadata.rs +++ /dev/null @@ -1,111 +0,0 @@ -// 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 2019-Present Datadog, Inc. -use serde::de::{Error, MapAccess, Visitor}; -use serde::{Deserialize, Deserializer, Serialize}; -use serde_with::skip_serializing_none; -use std::fmt::{self, Formatter}; - -/// The object containing document metadata. -#[non_exhaustive] -#[skip_serializing_none] -#[derive(Clone, Debug, PartialEq, Serialize)] -pub struct UsageAttributionMetadata { - /// An array of available aggregates. - #[serde(rename = "aggregates")] - pub aggregates: Option>, - /// The metadata for the current pagination. - #[serde(rename = "pagination")] - pub pagination: Option, - #[serde(skip)] - #[serde(default)] - pub(crate) _unparsed: bool, -} - -impl UsageAttributionMetadata { - pub fn new() -> UsageAttributionMetadata { - UsageAttributionMetadata { - aggregates: None, - pagination: None, - _unparsed: false, - } - } - - pub fn aggregates( - mut self, - value: Vec, - ) -> Self { - self.aggregates = Some(value); - self - } - - pub fn pagination( - mut self, - value: crate::datadogV1::model::UsageAttributionPagination, - ) -> Self { - self.pagination = Some(value); - self - } -} - -impl Default for UsageAttributionMetadata { - fn default() -> Self { - Self::new() - } -} - -impl<'de> Deserialize<'de> for UsageAttributionMetadata { - fn deserialize(deserializer: D) -> Result - where - D: Deserializer<'de>, - { - struct UsageAttributionMetadataVisitor; - impl<'a> Visitor<'a> for UsageAttributionMetadataVisitor { - type Value = UsageAttributionMetadata; - - fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { - f.write_str("a mapping") - } - - fn visit_map(self, mut map: M) -> Result - where - M: MapAccess<'a>, - { - let mut aggregates: Option< - Vec, - > = None; - let mut pagination: Option = - None; - let mut _unparsed = false; - - while let Some((k, v)) = map.next_entry::()? { - match k.as_str() { - "aggregates" => { - if v.is_null() { - continue; - } - aggregates = Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "pagination" => { - if v.is_null() { - continue; - } - pagination = Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - &_ => {} - } - } - - let content = UsageAttributionMetadata { - aggregates, - pagination, - _unparsed, - }; - - Ok(content) - } - } - - deserializer.deserialize_any(UsageAttributionMetadataVisitor) - } -} diff --git a/src/datadogV1/model/model_usage_attribution_pagination.rs b/src/datadogV1/model/model_usage_attribution_pagination.rs deleted file mode 100644 index 2dcabe858..000000000 --- a/src/datadogV1/model/model_usage_attribution_pagination.rs +++ /dev/null @@ -1,155 +0,0 @@ -// 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 2019-Present Datadog, Inc. -use serde::de::{Error, MapAccess, Visitor}; -use serde::{Deserialize, Deserializer, Serialize}; -use serde_with::skip_serializing_none; -use std::fmt::{self, Formatter}; - -/// The metadata for the current pagination. -#[non_exhaustive] -#[skip_serializing_none] -#[derive(Clone, Debug, PartialEq, Serialize)] -pub struct UsageAttributionPagination { - /// Maximum amount of records to be returned. - #[serde(rename = "limit")] - pub limit: Option, - /// Records to be skipped before beginning to return. - #[serde(rename = "offset")] - pub offset: Option, - /// Direction to sort by. - #[serde(rename = "sort_direction")] - pub sort_direction: Option, - /// Field to sort by. - #[serde(rename = "sort_name")] - pub sort_name: Option, - /// Total number of records. - #[serde(rename = "total_number_of_records")] - pub total_number_of_records: Option, - #[serde(skip)] - #[serde(default)] - pub(crate) _unparsed: bool, -} - -impl UsageAttributionPagination { - pub fn new() -> UsageAttributionPagination { - UsageAttributionPagination { - limit: None, - offset: None, - sort_direction: None, - sort_name: None, - total_number_of_records: None, - _unparsed: false, - } - } - - pub fn limit(mut self, value: i64) -> Self { - self.limit = Some(value); - self - } - - pub fn offset(mut self, value: i64) -> Self { - self.offset = Some(value); - self - } - - pub fn sort_direction(mut self, value: String) -> Self { - self.sort_direction = Some(value); - self - } - - pub fn sort_name(mut self, value: String) -> Self { - self.sort_name = Some(value); - self - } - - pub fn total_number_of_records(mut self, value: i64) -> Self { - self.total_number_of_records = Some(value); - self - } -} - -impl Default for UsageAttributionPagination { - fn default() -> Self { - Self::new() - } -} - -impl<'de> Deserialize<'de> for UsageAttributionPagination { - fn deserialize(deserializer: D) -> Result - where - D: Deserializer<'de>, - { - struct UsageAttributionPaginationVisitor; - impl<'a> Visitor<'a> for UsageAttributionPaginationVisitor { - type Value = UsageAttributionPagination; - - fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { - f.write_str("a mapping") - } - - fn visit_map(self, mut map: M) -> Result - where - M: MapAccess<'a>, - { - let mut limit: Option = None; - let mut offset: Option = None; - let mut sort_direction: Option = None; - let mut sort_name: Option = None; - let mut total_number_of_records: Option = None; - let mut _unparsed = false; - - while let Some((k, v)) = map.next_entry::()? { - match k.as_str() { - "limit" => { - if v.is_null() { - continue; - } - limit = Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "offset" => { - if v.is_null() { - continue; - } - offset = Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "sort_direction" => { - if v.is_null() { - continue; - } - sort_direction = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "sort_name" => { - if v.is_null() { - continue; - } - sort_name = Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "total_number_of_records" => { - if v.is_null() { - continue; - } - total_number_of_records = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - &_ => {} - } - } - - let content = UsageAttributionPagination { - limit, - offset, - sort_direction, - sort_name, - total_number_of_records, - _unparsed, - }; - - Ok(content) - } - } - - deserializer.deserialize_any(UsageAttributionPaginationVisitor) - } -} diff --git a/src/datadogV1/model/model_usage_attribution_sort.rs b/src/datadogV1/model/model_usage_attribution_sort.rs deleted file mode 100644 index 356004913..000000000 --- a/src/datadogV1/model/model_usage_attribution_sort.rs +++ /dev/null @@ -1,167 +0,0 @@ -// 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 2019-Present Datadog, Inc. - -use serde::{Deserialize, Deserializer, Serialize, Serializer}; - -#[non_exhaustive] -#[derive(Clone, Debug, Eq, PartialEq)] -pub enum UsageAttributionSort { - API_PERCENTAGE, - SNMP_USAGE, - APM_HOST_USAGE, - API_USAGE, - APPSEC_USAGE, - APPSEC_PERCENTAGE, - CONTAINER_USAGE, - CUSTOM_TIMESERIES_PERCENTAGE, - CONTAINER_PERCENTAGE, - APM_HOST_PERCENTAGE, - NPM_HOST_PERCENTAGE, - BROWSER_PERCENTAGE, - BROWSER_USAGE, - INFRA_HOST_PERCENTAGE, - SNMP_PERCENTAGE, - NPM_HOST_USAGE, - INFRA_HOST_USAGE, - CUSTOM_TIMESERIES_USAGE, - LAMBDA_FUNCTIONS_USAGE, - LAMBDA_FUNCTIONS_PERCENTAGE, - LAMBDA_INVOCATIONS_USAGE, - LAMBDA_INVOCATIONS_PERCENTAGE, - ESTIMATED_INDEXED_LOGS_USAGE, - ESTIMATED_INDEXED_LOGS_PERCENTAGE, - ESTIMATED_INGESTED_LOGS_USAGE, - ESTIMATED_INGESTED_LOGS_PERCENTAGE, - ESTIMATED_INDEXED_SPANS_USAGE, - ESTIMATED_INDEXED_SPANS_PERCENTAGE, - ESTIMATED_INGESTED_SPANS_USAGE, - ESTIMATED_INGESTED_SPANS_PERCENTAGE, - APM_FARGATE_USAGE, - APM_FARGATE_PERCENTAGE, - APPSEC_FARGATE_USAGE, - APPSEC_FARGATE_PERCENTAGE, - ESTIMATED_RUM_USAGE_ATTRIBUTION_USAGE, - ESTIMATED_RUM_USAGE_ATTRIBUTION_PERCENTAGE, - UnparsedObject(crate::datadog::UnparsedObject), -} - -impl ToString for UsageAttributionSort { - fn to_string(&self) -> String { - match self { - Self::API_PERCENTAGE => String::from("api_percentage"), - Self::SNMP_USAGE => String::from("snmp_usage"), - Self::APM_HOST_USAGE => String::from("apm_host_usage"), - Self::API_USAGE => String::from("api_usage"), - Self::APPSEC_USAGE => String::from("appsec_usage"), - Self::APPSEC_PERCENTAGE => String::from("appsec_percentage"), - Self::CONTAINER_USAGE => String::from("container_usage"), - Self::CUSTOM_TIMESERIES_PERCENTAGE => String::from("custom_timeseries_percentage"), - Self::CONTAINER_PERCENTAGE => String::from("container_percentage"), - Self::APM_HOST_PERCENTAGE => String::from("apm_host_percentage"), - Self::NPM_HOST_PERCENTAGE => String::from("npm_host_percentage"), - Self::BROWSER_PERCENTAGE => String::from("browser_percentage"), - Self::BROWSER_USAGE => String::from("browser_usage"), - Self::INFRA_HOST_PERCENTAGE => String::from("infra_host_percentage"), - Self::SNMP_PERCENTAGE => String::from("snmp_percentage"), - Self::NPM_HOST_USAGE => String::from("npm_host_usage"), - Self::INFRA_HOST_USAGE => String::from("infra_host_usage"), - Self::CUSTOM_TIMESERIES_USAGE => String::from("custom_timeseries_usage"), - Self::LAMBDA_FUNCTIONS_USAGE => String::from("lambda_functions_usage"), - Self::LAMBDA_FUNCTIONS_PERCENTAGE => String::from("lambda_functions_percentage"), - Self::LAMBDA_INVOCATIONS_USAGE => String::from("lambda_invocations_usage"), - Self::LAMBDA_INVOCATIONS_PERCENTAGE => String::from("lambda_invocations_percentage"), - Self::ESTIMATED_INDEXED_LOGS_USAGE => String::from("estimated_indexed_logs_usage"), - Self::ESTIMATED_INDEXED_LOGS_PERCENTAGE => { - String::from("estimated_indexed_logs_percentage") - } - Self::ESTIMATED_INGESTED_LOGS_USAGE => String::from("estimated_ingested_logs_usage"), - Self::ESTIMATED_INGESTED_LOGS_PERCENTAGE => { - String::from("estimated_ingested_logs_percentage") - } - Self::ESTIMATED_INDEXED_SPANS_USAGE => String::from("estimated_indexed_spans_usage"), - Self::ESTIMATED_INDEXED_SPANS_PERCENTAGE => { - String::from("estimated_indexed_spans_percentage") - } - Self::ESTIMATED_INGESTED_SPANS_USAGE => String::from("estimated_ingested_spans_usage"), - Self::ESTIMATED_INGESTED_SPANS_PERCENTAGE => { - String::from("estimated_ingested_spans_percentage") - } - Self::APM_FARGATE_USAGE => String::from("apm_fargate_usage"), - Self::APM_FARGATE_PERCENTAGE => String::from("apm_fargate_percentage"), - Self::APPSEC_FARGATE_USAGE => String::from("appsec_fargate_usage"), - Self::APPSEC_FARGATE_PERCENTAGE => String::from("appsec_fargate_percentage"), - Self::ESTIMATED_RUM_USAGE_ATTRIBUTION_USAGE => { - String::from("estimated_rum_usage_attribution_usage") - } - Self::ESTIMATED_RUM_USAGE_ATTRIBUTION_PERCENTAGE => { - String::from("estimated_rum_usage_attribution_percentage") - } - Self::UnparsedObject(v) => v.value.to_string(), - } - } -} - -impl Serialize for UsageAttributionSort { - fn serialize(&self, serializer: S) -> Result - where - S: Serializer, - { - match self { - Self::UnparsedObject(v) => v.serialize(serializer), - _ => serializer.serialize_str(self.to_string().as_str()), - } - } -} - -impl<'de> Deserialize<'de> for UsageAttributionSort { - fn deserialize(deserializer: D) -> Result - where - D: Deserializer<'de>, - { - let s: String = String::deserialize(deserializer)?; - Ok(match s.as_str() { - "api_percentage" => Self::API_PERCENTAGE, - "snmp_usage" => Self::SNMP_USAGE, - "apm_host_usage" => Self::APM_HOST_USAGE, - "api_usage" => Self::API_USAGE, - "appsec_usage" => Self::APPSEC_USAGE, - "appsec_percentage" => Self::APPSEC_PERCENTAGE, - "container_usage" => Self::CONTAINER_USAGE, - "custom_timeseries_percentage" => Self::CUSTOM_TIMESERIES_PERCENTAGE, - "container_percentage" => Self::CONTAINER_PERCENTAGE, - "apm_host_percentage" => Self::APM_HOST_PERCENTAGE, - "npm_host_percentage" => Self::NPM_HOST_PERCENTAGE, - "browser_percentage" => Self::BROWSER_PERCENTAGE, - "browser_usage" => Self::BROWSER_USAGE, - "infra_host_percentage" => Self::INFRA_HOST_PERCENTAGE, - "snmp_percentage" => Self::SNMP_PERCENTAGE, - "npm_host_usage" => Self::NPM_HOST_USAGE, - "infra_host_usage" => Self::INFRA_HOST_USAGE, - "custom_timeseries_usage" => Self::CUSTOM_TIMESERIES_USAGE, - "lambda_functions_usage" => Self::LAMBDA_FUNCTIONS_USAGE, - "lambda_functions_percentage" => Self::LAMBDA_FUNCTIONS_PERCENTAGE, - "lambda_invocations_usage" => Self::LAMBDA_INVOCATIONS_USAGE, - "lambda_invocations_percentage" => Self::LAMBDA_INVOCATIONS_PERCENTAGE, - "estimated_indexed_logs_usage" => Self::ESTIMATED_INDEXED_LOGS_USAGE, - "estimated_indexed_logs_percentage" => Self::ESTIMATED_INDEXED_LOGS_PERCENTAGE, - "estimated_ingested_logs_usage" => Self::ESTIMATED_INGESTED_LOGS_USAGE, - "estimated_ingested_logs_percentage" => Self::ESTIMATED_INGESTED_LOGS_PERCENTAGE, - "estimated_indexed_spans_usage" => Self::ESTIMATED_INDEXED_SPANS_USAGE, - "estimated_indexed_spans_percentage" => Self::ESTIMATED_INDEXED_SPANS_PERCENTAGE, - "estimated_ingested_spans_usage" => Self::ESTIMATED_INGESTED_SPANS_USAGE, - "estimated_ingested_spans_percentage" => Self::ESTIMATED_INGESTED_SPANS_PERCENTAGE, - "apm_fargate_usage" => Self::APM_FARGATE_USAGE, - "apm_fargate_percentage" => Self::APM_FARGATE_PERCENTAGE, - "appsec_fargate_usage" => Self::APPSEC_FARGATE_USAGE, - "appsec_fargate_percentage" => Self::APPSEC_FARGATE_PERCENTAGE, - "estimated_rum_usage_attribution_usage" => Self::ESTIMATED_RUM_USAGE_ATTRIBUTION_USAGE, - "estimated_rum_usage_attribution_percentage" => { - Self::ESTIMATED_RUM_USAGE_ATTRIBUTION_PERCENTAGE - } - _ => Self::UnparsedObject(crate::datadog::UnparsedObject { - value: serde_json::Value::String(s.into()), - }), - }) - } -} diff --git a/src/datadogV1/model/model_usage_attribution_supported_metrics.rs b/src/datadogV1/model/model_usage_attribution_supported_metrics.rs deleted file mode 100644 index ec9a2d349..000000000 --- a/src/datadogV1/model/model_usage_attribution_supported_metrics.rs +++ /dev/null @@ -1,200 +0,0 @@ -// 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 2019-Present Datadog, Inc. - -use serde::{Deserialize, Deserializer, Serialize, Serializer}; - -#[non_exhaustive] -#[derive(Clone, Debug, Eq, PartialEq)] -pub enum UsageAttributionSupportedMetrics { - CUSTOM_TIMESERIES_USAGE, - CONTAINER_USAGE, - SNMP_PERCENTAGE, - APM_HOST_USAGE, - BROWSER_USAGE, - NPM_HOST_PERCENTAGE, - INFRA_HOST_USAGE, - CUSTOM_TIMESERIES_PERCENTAGE, - CONTAINER_PERCENTAGE, - API_USAGE, - APM_HOST_PERCENTAGE, - INFRA_HOST_PERCENTAGE, - SNMP_USAGE, - BROWSER_PERCENTAGE, - API_PERCENTAGE, - NPM_HOST_USAGE, - LAMBDA_FUNCTIONS_USAGE, - LAMBDA_FUNCTIONS_PERCENTAGE, - LAMBDA_INVOCATIONS_USAGE, - LAMBDA_INVOCATIONS_PERCENTAGE, - FARGATE_USAGE, - FARGATE_PERCENTAGE, - PROFILED_HOST_USAGE, - PROFILED_HOST_PERCENTAGE, - PROFILED_CONTAINER_USAGE, - PROFILED_CONTAINER_PERCENTAGE, - DBM_HOSTS_USAGE, - DBM_HOSTS_PERCENTAGE, - DBM_QUERIES_USAGE, - DBM_QUERIES_PERCENTAGE, - ESTIMATED_INDEXED_LOGS_USAGE, - ESTIMATED_INDEXED_LOGS_PERCENTAGE, - ESTIMATED_INGESTED_LOGS_USAGE, - ESTIMATED_INGESTED_LOGS_PERCENTAGE, - APPSEC_USAGE, - APPSEC_PERCENTAGE, - ESTIMATED_INDEXED_SPANS_USAGE, - ESTIMATED_INDEXED_SPANS_PERCENTAGE, - ESTIMATED_INGESTED_SPANS_USAGE, - ESTIMATED_INGESTED_SPANS_PERCENTAGE, - APM_FARGATE_USAGE, - APM_FARGATE_PERCENTAGE, - APPSEC_FARGATE_USAGE, - APPSEC_FARGATE_PERCENTAGE, - ESTIMATED_RUM_USAGE_ATTRIBUTION_USAGE, - ESTIMATED_RUM_USAGE_ATTRIBUTION_PERCENTAGE, - ALL, - UnparsedObject(crate::datadog::UnparsedObject), -} - -impl ToString for UsageAttributionSupportedMetrics { - fn to_string(&self) -> String { - match self { - Self::CUSTOM_TIMESERIES_USAGE => String::from("custom_timeseries_usage"), - Self::CONTAINER_USAGE => String::from("container_usage"), - Self::SNMP_PERCENTAGE => String::from("snmp_percentage"), - Self::APM_HOST_USAGE => String::from("apm_host_usage"), - Self::BROWSER_USAGE => String::from("browser_usage"), - Self::NPM_HOST_PERCENTAGE => String::from("npm_host_percentage"), - Self::INFRA_HOST_USAGE => String::from("infra_host_usage"), - Self::CUSTOM_TIMESERIES_PERCENTAGE => String::from("custom_timeseries_percentage"), - Self::CONTAINER_PERCENTAGE => String::from("container_percentage"), - Self::API_USAGE => String::from("api_usage"), - Self::APM_HOST_PERCENTAGE => String::from("apm_host_percentage"), - Self::INFRA_HOST_PERCENTAGE => String::from("infra_host_percentage"), - Self::SNMP_USAGE => String::from("snmp_usage"), - Self::BROWSER_PERCENTAGE => String::from("browser_percentage"), - Self::API_PERCENTAGE => String::from("api_percentage"), - Self::NPM_HOST_USAGE => String::from("npm_host_usage"), - Self::LAMBDA_FUNCTIONS_USAGE => String::from("lambda_functions_usage"), - Self::LAMBDA_FUNCTIONS_PERCENTAGE => String::from("lambda_functions_percentage"), - Self::LAMBDA_INVOCATIONS_USAGE => String::from("lambda_invocations_usage"), - Self::LAMBDA_INVOCATIONS_PERCENTAGE => String::from("lambda_invocations_percentage"), - Self::FARGATE_USAGE => String::from("fargate_usage"), - Self::FARGATE_PERCENTAGE => String::from("fargate_percentage"), - Self::PROFILED_HOST_USAGE => String::from("profiled_host_usage"), - Self::PROFILED_HOST_PERCENTAGE => String::from("profiled_host_percentage"), - Self::PROFILED_CONTAINER_USAGE => String::from("profiled_container_usage"), - Self::PROFILED_CONTAINER_PERCENTAGE => String::from("profiled_container_percentage"), - Self::DBM_HOSTS_USAGE => String::from("dbm_hosts_usage"), - Self::DBM_HOSTS_PERCENTAGE => String::from("dbm_hosts_percentage"), - Self::DBM_QUERIES_USAGE => String::from("dbm_queries_usage"), - Self::DBM_QUERIES_PERCENTAGE => String::from("dbm_queries_percentage"), - Self::ESTIMATED_INDEXED_LOGS_USAGE => String::from("estimated_indexed_logs_usage"), - Self::ESTIMATED_INDEXED_LOGS_PERCENTAGE => { - String::from("estimated_indexed_logs_percentage") - } - Self::ESTIMATED_INGESTED_LOGS_USAGE => String::from("estimated_ingested_logs_usage"), - Self::ESTIMATED_INGESTED_LOGS_PERCENTAGE => { - String::from("estimated_ingested_logs_percentage") - } - Self::APPSEC_USAGE => String::from("appsec_usage"), - Self::APPSEC_PERCENTAGE => String::from("appsec_percentage"), - Self::ESTIMATED_INDEXED_SPANS_USAGE => String::from("estimated_indexed_spans_usage"), - Self::ESTIMATED_INDEXED_SPANS_PERCENTAGE => { - String::from("estimated_indexed_spans_percentage") - } - Self::ESTIMATED_INGESTED_SPANS_USAGE => String::from("estimated_ingested_spans_usage"), - Self::ESTIMATED_INGESTED_SPANS_PERCENTAGE => { - String::from("estimated_ingested_spans_percentage") - } - Self::APM_FARGATE_USAGE => String::from("apm_fargate_usage"), - Self::APM_FARGATE_PERCENTAGE => String::from("apm_fargate_percentage"), - Self::APPSEC_FARGATE_USAGE => String::from("appsec_fargate_usage"), - Self::APPSEC_FARGATE_PERCENTAGE => String::from("appsec_fargate_percentage"), - Self::ESTIMATED_RUM_USAGE_ATTRIBUTION_USAGE => { - String::from("estimated_rum_usage_attribution_usage") - } - Self::ESTIMATED_RUM_USAGE_ATTRIBUTION_PERCENTAGE => { - String::from("estimated_rum_usage_attribution_percentage") - } - Self::ALL => String::from("*"), - Self::UnparsedObject(v) => v.value.to_string(), - } - } -} - -impl Serialize for UsageAttributionSupportedMetrics { - fn serialize(&self, serializer: S) -> Result - where - S: Serializer, - { - match self { - Self::UnparsedObject(v) => v.serialize(serializer), - _ => serializer.serialize_str(self.to_string().as_str()), - } - } -} - -impl<'de> Deserialize<'de> for UsageAttributionSupportedMetrics { - fn deserialize(deserializer: D) -> Result - where - D: Deserializer<'de>, - { - let s: String = String::deserialize(deserializer)?; - Ok(match s.as_str() { - "custom_timeseries_usage" => Self::CUSTOM_TIMESERIES_USAGE, - "container_usage" => Self::CONTAINER_USAGE, - "snmp_percentage" => Self::SNMP_PERCENTAGE, - "apm_host_usage" => Self::APM_HOST_USAGE, - "browser_usage" => Self::BROWSER_USAGE, - "npm_host_percentage" => Self::NPM_HOST_PERCENTAGE, - "infra_host_usage" => Self::INFRA_HOST_USAGE, - "custom_timeseries_percentage" => Self::CUSTOM_TIMESERIES_PERCENTAGE, - "container_percentage" => Self::CONTAINER_PERCENTAGE, - "api_usage" => Self::API_USAGE, - "apm_host_percentage" => Self::APM_HOST_PERCENTAGE, - "infra_host_percentage" => Self::INFRA_HOST_PERCENTAGE, - "snmp_usage" => Self::SNMP_USAGE, - "browser_percentage" => Self::BROWSER_PERCENTAGE, - "api_percentage" => Self::API_PERCENTAGE, - "npm_host_usage" => Self::NPM_HOST_USAGE, - "lambda_functions_usage" => Self::LAMBDA_FUNCTIONS_USAGE, - "lambda_functions_percentage" => Self::LAMBDA_FUNCTIONS_PERCENTAGE, - "lambda_invocations_usage" => Self::LAMBDA_INVOCATIONS_USAGE, - "lambda_invocations_percentage" => Self::LAMBDA_INVOCATIONS_PERCENTAGE, - "fargate_usage" => Self::FARGATE_USAGE, - "fargate_percentage" => Self::FARGATE_PERCENTAGE, - "profiled_host_usage" => Self::PROFILED_HOST_USAGE, - "profiled_host_percentage" => Self::PROFILED_HOST_PERCENTAGE, - "profiled_container_usage" => Self::PROFILED_CONTAINER_USAGE, - "profiled_container_percentage" => Self::PROFILED_CONTAINER_PERCENTAGE, - "dbm_hosts_usage" => Self::DBM_HOSTS_USAGE, - "dbm_hosts_percentage" => Self::DBM_HOSTS_PERCENTAGE, - "dbm_queries_usage" => Self::DBM_QUERIES_USAGE, - "dbm_queries_percentage" => Self::DBM_QUERIES_PERCENTAGE, - "estimated_indexed_logs_usage" => Self::ESTIMATED_INDEXED_LOGS_USAGE, - "estimated_indexed_logs_percentage" => Self::ESTIMATED_INDEXED_LOGS_PERCENTAGE, - "estimated_ingested_logs_usage" => Self::ESTIMATED_INGESTED_LOGS_USAGE, - "estimated_ingested_logs_percentage" => Self::ESTIMATED_INGESTED_LOGS_PERCENTAGE, - "appsec_usage" => Self::APPSEC_USAGE, - "appsec_percentage" => Self::APPSEC_PERCENTAGE, - "estimated_indexed_spans_usage" => Self::ESTIMATED_INDEXED_SPANS_USAGE, - "estimated_indexed_spans_percentage" => Self::ESTIMATED_INDEXED_SPANS_PERCENTAGE, - "estimated_ingested_spans_usage" => Self::ESTIMATED_INGESTED_SPANS_USAGE, - "estimated_ingested_spans_percentage" => Self::ESTIMATED_INGESTED_SPANS_PERCENTAGE, - "apm_fargate_usage" => Self::APM_FARGATE_USAGE, - "apm_fargate_percentage" => Self::APM_FARGATE_PERCENTAGE, - "appsec_fargate_usage" => Self::APPSEC_FARGATE_USAGE, - "appsec_fargate_percentage" => Self::APPSEC_FARGATE_PERCENTAGE, - "estimated_rum_usage_attribution_usage" => Self::ESTIMATED_RUM_USAGE_ATTRIBUTION_USAGE, - "estimated_rum_usage_attribution_percentage" => { - Self::ESTIMATED_RUM_USAGE_ATTRIBUTION_PERCENTAGE - } - "*" => Self::ALL, - _ => Self::UnparsedObject(crate::datadog::UnparsedObject { - value: serde_json::Value::String(s.into()), - }), - }) - } -} diff --git a/src/datadogV1/model/model_usage_attribution_values.rs b/src/datadogV1/model/model_usage_attribution_values.rs deleted file mode 100644 index 045340ff0..000000000 --- a/src/datadogV1/model/model_usage_attribution_values.rs +++ /dev/null @@ -1,1002 +0,0 @@ -// 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 2019-Present Datadog, Inc. -use serde::de::{Error, MapAccess, Visitor}; -use serde::{Deserialize, Deserializer, Serialize}; -use serde_with::skip_serializing_none; -use std::fmt::{self, Formatter}; - -/// Fields in Usage Summary by tag(s). -#[non_exhaustive] -#[skip_serializing_none] -#[derive(Clone, Debug, PartialEq, Serialize)] -pub struct UsageAttributionValues { - /// The percentage of synthetic API test usage by tag(s). - #[serde(rename = "api_percentage")] - pub api_percentage: Option, - /// The synthetic API test usage by tag(s). - #[serde(rename = "api_usage")] - pub api_usage: Option, - /// The percentage of APM ECS Fargate task usage by tag(s). - #[serde(rename = "apm_fargate_percentage")] - pub apm_fargate_percentage: Option, - /// The APM ECS Fargate task usage by tag(s). - #[serde(rename = "apm_fargate_usage")] - pub apm_fargate_usage: Option, - /// The percentage of APM host usage by tag(s). - #[serde(rename = "apm_host_percentage")] - pub apm_host_percentage: Option, - /// The APM host usage by tag(s). - #[serde(rename = "apm_host_usage")] - pub apm_host_usage: Option, - /// The percentage of Application Security Monitoring ECS Fargate task usage by tag(s). - #[serde(rename = "appsec_fargate_percentage")] - pub appsec_fargate_percentage: Option, - /// The Application Security Monitoring ECS Fargate task usage by tag(s). - #[serde(rename = "appsec_fargate_usage")] - pub appsec_fargate_usage: Option, - /// The percentage of Application Security Monitoring host usage by tag(s). - #[serde(rename = "appsec_percentage")] - pub appsec_percentage: Option, - /// The Application Security Monitoring host usage by tag(s). - #[serde(rename = "appsec_usage")] - pub appsec_usage: Option, - /// The percentage of synthetic browser test usage by tag(s). - #[serde(rename = "browser_percentage")] - pub browser_percentage: Option, - /// The synthetic browser test usage by tag(s). - #[serde(rename = "browser_usage")] - pub browser_usage: Option, - /// The percentage of container usage by tag(s). - #[serde(rename = "container_percentage")] - pub container_percentage: Option, - /// The container usage by tag(s). - #[serde(rename = "container_usage")] - pub container_usage: Option, - /// The percentage of Cloud Security Management Pro container usage by tag(s) - #[serde(rename = "cspm_container_percentage")] - pub cspm_container_percentage: Option, - /// The Cloud Security Management Pro container usage by tag(s) - #[serde(rename = "cspm_container_usage")] - pub cspm_container_usage: Option, - /// The percentage of Cloud Security Management Pro host usage by tag(s) - #[serde(rename = "cspm_host_percentage")] - pub cspm_host_percentage: Option, - /// The Cloud Security Management Pro host usage by tag(s) - #[serde(rename = "cspm_host_usage")] - pub cspm_host_usage: Option, - /// The percentage of custom metrics usage by tag(s). - #[serde(rename = "custom_timeseries_percentage")] - pub custom_timeseries_percentage: Option, - /// The custom metrics usage by tag(s). - #[serde(rename = "custom_timeseries_usage")] - pub custom_timeseries_usage: Option, - /// The percentage of Cloud Workload Security container usage by tag(s) - #[serde(rename = "cws_container_percentage")] - pub cws_container_percentage: Option, - /// The Cloud Workload Security container usage by tag(s) - #[serde(rename = "cws_container_usage")] - pub cws_container_usage: Option, - /// The percentage of Cloud Workload Security host usage by tag(s) - #[serde(rename = "cws_host_percentage")] - pub cws_host_percentage: Option, - /// The Cloud Workload Security host usage by tag(s) - #[serde(rename = "cws_host_usage")] - pub cws_host_usage: Option, - /// The percentage of Database Monitoring host usage by tag(s). - #[serde(rename = "dbm_hosts_percentage")] - pub dbm_hosts_percentage: Option, - /// The Database Monitoring host usage by tag(s). - #[serde(rename = "dbm_hosts_usage")] - pub dbm_hosts_usage: Option, - /// The percentage of Database Monitoring normalized queries usage by tag(s). - #[serde(rename = "dbm_queries_percentage")] - pub dbm_queries_percentage: Option, - /// The Database Monitoring normalized queries usage by tag(s). - #[serde(rename = "dbm_queries_usage")] - pub dbm_queries_usage: Option, - /// The percentage of estimated live indexed logs usage by tag(s). - #[serde(rename = "estimated_indexed_logs_percentage")] - pub estimated_indexed_logs_percentage: Option, - /// The estimated live indexed logs usage by tag(s). - #[serde(rename = "estimated_indexed_logs_usage")] - pub estimated_indexed_logs_usage: Option, - /// The percentage of estimated indexed spans usage by tag(s). - #[serde(rename = "estimated_indexed_spans_percentage")] - pub estimated_indexed_spans_percentage: Option, - /// The estimated indexed spans usage by tag(s). - #[serde(rename = "estimated_indexed_spans_usage")] - pub estimated_indexed_spans_usage: Option, - /// The percentage of estimated live ingested logs usage by tag(s). - #[serde(rename = "estimated_ingested_logs_percentage")] - pub estimated_ingested_logs_percentage: Option, - /// The estimated live ingested logs usage by tag(s). - #[serde(rename = "estimated_ingested_logs_usage")] - pub estimated_ingested_logs_usage: Option, - /// The percentage of estimated ingested spans usage by tag(s). - #[serde(rename = "estimated_ingested_spans_percentage")] - pub estimated_ingested_spans_percentage: Option, - /// The estimated ingested spans usage by tag(s). - #[serde(rename = "estimated_ingested_spans_usage")] - pub estimated_ingested_spans_usage: Option, - /// The percentage of estimated rum sessions usage by tag(s). - #[serde(rename = "estimated_rum_sessions_percentage")] - pub estimated_rum_sessions_percentage: Option, - /// The estimated rum sessions usage by tag(s). - #[serde(rename = "estimated_rum_sessions_usage")] - pub estimated_rum_sessions_usage: Option, - /// The percentage of infrastructure host usage by tag(s). - #[serde(rename = "infra_host_percentage")] - pub infra_host_percentage: Option, - /// The infrastructure host usage by tag(s). - #[serde(rename = "infra_host_usage")] - pub infra_host_usage: Option, - /// The percentage of Lambda function usage by tag(s). - #[serde(rename = "lambda_functions_percentage")] - pub lambda_functions_percentage: Option, - /// The Lambda function usage by tag(s). - #[serde(rename = "lambda_functions_usage")] - pub lambda_functions_usage: Option, - /// The percentage of Lambda invocation usage by tag(s). - #[serde(rename = "lambda_invocations_percentage")] - pub lambda_invocations_percentage: Option, - /// The Lambda invocation usage by tag(s). - #[serde(rename = "lambda_invocations_usage")] - pub lambda_invocations_usage: Option, - /// The percentage of network host usage by tag(s). - #[serde(rename = "npm_host_percentage")] - pub npm_host_percentage: Option, - /// The network host usage by tag(s). - #[serde(rename = "npm_host_usage")] - pub npm_host_usage: Option, - /// The percentage of profiled containers usage by tag(s). - #[serde(rename = "profiled_container_percentage")] - pub profiled_container_percentage: Option, - /// The profiled container usage by tag(s). - #[serde(rename = "profiled_container_usage")] - pub profiled_container_usage: Option, - /// The percentage of profiled hosts usage by tag(s). - #[serde(rename = "profiled_hosts_percentage")] - pub profiled_hosts_percentage: Option, - /// The profiled host usage by tag(s). - #[serde(rename = "profiled_hosts_usage")] - pub profiled_hosts_usage: Option, - /// The percentage of network device usage by tag(s). - #[serde(rename = "snmp_percentage")] - pub snmp_percentage: Option, - /// The network device usage by tag(s). - #[serde(rename = "snmp_usage")] - pub snmp_usage: Option, - #[serde(skip)] - #[serde(default)] - pub(crate) _unparsed: bool, -} - -impl UsageAttributionValues { - pub fn new() -> UsageAttributionValues { - UsageAttributionValues { - api_percentage: None, - api_usage: None, - apm_fargate_percentage: None, - apm_fargate_usage: None, - apm_host_percentage: None, - apm_host_usage: None, - appsec_fargate_percentage: None, - appsec_fargate_usage: None, - appsec_percentage: None, - appsec_usage: None, - browser_percentage: None, - browser_usage: None, - container_percentage: None, - container_usage: None, - cspm_container_percentage: None, - cspm_container_usage: None, - cspm_host_percentage: None, - cspm_host_usage: None, - custom_timeseries_percentage: None, - custom_timeseries_usage: None, - cws_container_percentage: None, - cws_container_usage: None, - cws_host_percentage: None, - cws_host_usage: None, - dbm_hosts_percentage: None, - dbm_hosts_usage: None, - dbm_queries_percentage: None, - dbm_queries_usage: None, - estimated_indexed_logs_percentage: None, - estimated_indexed_logs_usage: None, - estimated_indexed_spans_percentage: None, - estimated_indexed_spans_usage: None, - estimated_ingested_logs_percentage: None, - estimated_ingested_logs_usage: None, - estimated_ingested_spans_percentage: None, - estimated_ingested_spans_usage: None, - estimated_rum_sessions_percentage: None, - estimated_rum_sessions_usage: None, - infra_host_percentage: None, - infra_host_usage: None, - lambda_functions_percentage: None, - lambda_functions_usage: None, - lambda_invocations_percentage: None, - lambda_invocations_usage: None, - npm_host_percentage: None, - npm_host_usage: None, - profiled_container_percentage: None, - profiled_container_usage: None, - profiled_hosts_percentage: None, - profiled_hosts_usage: None, - snmp_percentage: None, - snmp_usage: None, - _unparsed: false, - } - } - - pub fn api_percentage(mut self, value: f64) -> Self { - self.api_percentage = Some(value); - self - } - - pub fn api_usage(mut self, value: f64) -> Self { - self.api_usage = Some(value); - self - } - - pub fn apm_fargate_percentage(mut self, value: f64) -> Self { - self.apm_fargate_percentage = Some(value); - self - } - - pub fn apm_fargate_usage(mut self, value: f64) -> Self { - self.apm_fargate_usage = Some(value); - self - } - - pub fn apm_host_percentage(mut self, value: f64) -> Self { - self.apm_host_percentage = Some(value); - self - } - - pub fn apm_host_usage(mut self, value: f64) -> Self { - self.apm_host_usage = Some(value); - self - } - - pub fn appsec_fargate_percentage(mut self, value: f64) -> Self { - self.appsec_fargate_percentage = Some(value); - self - } - - pub fn appsec_fargate_usage(mut self, value: f64) -> Self { - self.appsec_fargate_usage = Some(value); - self - } - - pub fn appsec_percentage(mut self, value: f64) -> Self { - self.appsec_percentage = Some(value); - self - } - - pub fn appsec_usage(mut self, value: f64) -> Self { - self.appsec_usage = Some(value); - self - } - - pub fn browser_percentage(mut self, value: f64) -> Self { - self.browser_percentage = Some(value); - self - } - - pub fn browser_usage(mut self, value: f64) -> Self { - self.browser_usage = Some(value); - self - } - - pub fn container_percentage(mut self, value: f64) -> Self { - self.container_percentage = Some(value); - self - } - - pub fn container_usage(mut self, value: f64) -> Self { - self.container_usage = Some(value); - self - } - - pub fn cspm_container_percentage(mut self, value: f64) -> Self { - self.cspm_container_percentage = Some(value); - self - } - - pub fn cspm_container_usage(mut self, value: f64) -> Self { - self.cspm_container_usage = Some(value); - self - } - - pub fn cspm_host_percentage(mut self, value: f64) -> Self { - self.cspm_host_percentage = Some(value); - self - } - - pub fn cspm_host_usage(mut self, value: f64) -> Self { - self.cspm_host_usage = Some(value); - self - } - - pub fn custom_timeseries_percentage(mut self, value: f64) -> Self { - self.custom_timeseries_percentage = Some(value); - self - } - - pub fn custom_timeseries_usage(mut self, value: f64) -> Self { - self.custom_timeseries_usage = Some(value); - self - } - - pub fn cws_container_percentage(mut self, value: f64) -> Self { - self.cws_container_percentage = Some(value); - self - } - - pub fn cws_container_usage(mut self, value: f64) -> Self { - self.cws_container_usage = Some(value); - self - } - - pub fn cws_host_percentage(mut self, value: f64) -> Self { - self.cws_host_percentage = Some(value); - self - } - - pub fn cws_host_usage(mut self, value: f64) -> Self { - self.cws_host_usage = Some(value); - self - } - - pub fn dbm_hosts_percentage(mut self, value: f64) -> Self { - self.dbm_hosts_percentage = Some(value); - self - } - - pub fn dbm_hosts_usage(mut self, value: f64) -> Self { - self.dbm_hosts_usage = Some(value); - self - } - - pub fn dbm_queries_percentage(mut self, value: f64) -> Self { - self.dbm_queries_percentage = Some(value); - self - } - - pub fn dbm_queries_usage(mut self, value: f64) -> Self { - self.dbm_queries_usage = Some(value); - self - } - - pub fn estimated_indexed_logs_percentage(mut self, value: f64) -> Self { - self.estimated_indexed_logs_percentage = Some(value); - self - } - - pub fn estimated_indexed_logs_usage(mut self, value: f64) -> Self { - self.estimated_indexed_logs_usage = Some(value); - self - } - - pub fn estimated_indexed_spans_percentage(mut self, value: f64) -> Self { - self.estimated_indexed_spans_percentage = Some(value); - self - } - - pub fn estimated_indexed_spans_usage(mut self, value: f64) -> Self { - self.estimated_indexed_spans_usage = Some(value); - self - } - - pub fn estimated_ingested_logs_percentage(mut self, value: f64) -> Self { - self.estimated_ingested_logs_percentage = Some(value); - self - } - - pub fn estimated_ingested_logs_usage(mut self, value: f64) -> Self { - self.estimated_ingested_logs_usage = Some(value); - self - } - - pub fn estimated_ingested_spans_percentage(mut self, value: f64) -> Self { - self.estimated_ingested_spans_percentage = Some(value); - self - } - - pub fn estimated_ingested_spans_usage(mut self, value: f64) -> Self { - self.estimated_ingested_spans_usage = Some(value); - self - } - - pub fn estimated_rum_sessions_percentage(mut self, value: f64) -> Self { - self.estimated_rum_sessions_percentage = Some(value); - self - } - - pub fn estimated_rum_sessions_usage(mut self, value: f64) -> Self { - self.estimated_rum_sessions_usage = Some(value); - self - } - - pub fn infra_host_percentage(mut self, value: f64) -> Self { - self.infra_host_percentage = Some(value); - self - } - - pub fn infra_host_usage(mut self, value: f64) -> Self { - self.infra_host_usage = Some(value); - self - } - - pub fn lambda_functions_percentage(mut self, value: f64) -> Self { - self.lambda_functions_percentage = Some(value); - self - } - - pub fn lambda_functions_usage(mut self, value: f64) -> Self { - self.lambda_functions_usage = Some(value); - self - } - - pub fn lambda_invocations_percentage(mut self, value: f64) -> Self { - self.lambda_invocations_percentage = Some(value); - self - } - - pub fn lambda_invocations_usage(mut self, value: f64) -> Self { - self.lambda_invocations_usage = Some(value); - self - } - - pub fn npm_host_percentage(mut self, value: f64) -> Self { - self.npm_host_percentage = Some(value); - self - } - - pub fn npm_host_usage(mut self, value: f64) -> Self { - self.npm_host_usage = Some(value); - self - } - - pub fn profiled_container_percentage(mut self, value: f64) -> Self { - self.profiled_container_percentage = Some(value); - self - } - - pub fn profiled_container_usage(mut self, value: f64) -> Self { - self.profiled_container_usage = Some(value); - self - } - - pub fn profiled_hosts_percentage(mut self, value: f64) -> Self { - self.profiled_hosts_percentage = Some(value); - self - } - - pub fn profiled_hosts_usage(mut self, value: f64) -> Self { - self.profiled_hosts_usage = Some(value); - self - } - - pub fn snmp_percentage(mut self, value: f64) -> Self { - self.snmp_percentage = Some(value); - self - } - - pub fn snmp_usage(mut self, value: f64) -> Self { - self.snmp_usage = Some(value); - self - } -} - -impl Default for UsageAttributionValues { - fn default() -> Self { - Self::new() - } -} - -impl<'de> Deserialize<'de> for UsageAttributionValues { - fn deserialize(deserializer: D) -> Result - where - D: Deserializer<'de>, - { - struct UsageAttributionValuesVisitor; - impl<'a> Visitor<'a> for UsageAttributionValuesVisitor { - type Value = UsageAttributionValues; - - fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { - f.write_str("a mapping") - } - - fn visit_map(self, mut map: M) -> Result - where - M: MapAccess<'a>, - { - let mut api_percentage: Option = None; - let mut api_usage: Option = None; - let mut apm_fargate_percentage: Option = None; - let mut apm_fargate_usage: Option = None; - let mut apm_host_percentage: Option = None; - let mut apm_host_usage: Option = None; - let mut appsec_fargate_percentage: Option = None; - let mut appsec_fargate_usage: Option = None; - let mut appsec_percentage: Option = None; - let mut appsec_usage: Option = None; - let mut browser_percentage: Option = None; - let mut browser_usage: Option = None; - let mut container_percentage: Option = None; - let mut container_usage: Option = None; - let mut cspm_container_percentage: Option = None; - let mut cspm_container_usage: Option = None; - let mut cspm_host_percentage: Option = None; - let mut cspm_host_usage: Option = None; - let mut custom_timeseries_percentage: Option = None; - let mut custom_timeseries_usage: Option = None; - let mut cws_container_percentage: Option = None; - let mut cws_container_usage: Option = None; - let mut cws_host_percentage: Option = None; - let mut cws_host_usage: Option = None; - let mut dbm_hosts_percentage: Option = None; - let mut dbm_hosts_usage: Option = None; - let mut dbm_queries_percentage: Option = None; - let mut dbm_queries_usage: Option = None; - let mut estimated_indexed_logs_percentage: Option = None; - let mut estimated_indexed_logs_usage: Option = None; - let mut estimated_indexed_spans_percentage: Option = None; - let mut estimated_indexed_spans_usage: Option = None; - let mut estimated_ingested_logs_percentage: Option = None; - let mut estimated_ingested_logs_usage: Option = None; - let mut estimated_ingested_spans_percentage: Option = None; - let mut estimated_ingested_spans_usage: Option = None; - let mut estimated_rum_sessions_percentage: Option = None; - let mut estimated_rum_sessions_usage: Option = None; - let mut infra_host_percentage: Option = None; - let mut infra_host_usage: Option = None; - let mut lambda_functions_percentage: Option = None; - let mut lambda_functions_usage: Option = None; - let mut lambda_invocations_percentage: Option = None; - let mut lambda_invocations_usage: Option = None; - let mut npm_host_percentage: Option = None; - let mut npm_host_usage: Option = None; - let mut profiled_container_percentage: Option = None; - let mut profiled_container_usage: Option = None; - let mut profiled_hosts_percentage: Option = None; - let mut profiled_hosts_usage: Option = None; - let mut snmp_percentage: Option = None; - let mut snmp_usage: Option = None; - let mut _unparsed = false; - - while let Some((k, v)) = map.next_entry::()? { - match k.as_str() { - "api_percentage" => { - if v.is_null() { - continue; - } - api_percentage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "api_usage" => { - if v.is_null() { - continue; - } - api_usage = Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "apm_fargate_percentage" => { - if v.is_null() { - continue; - } - apm_fargate_percentage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "apm_fargate_usage" => { - if v.is_null() { - continue; - } - apm_fargate_usage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "apm_host_percentage" => { - if v.is_null() { - continue; - } - apm_host_percentage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "apm_host_usage" => { - if v.is_null() { - continue; - } - apm_host_usage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "appsec_fargate_percentage" => { - if v.is_null() { - continue; - } - appsec_fargate_percentage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "appsec_fargate_usage" => { - if v.is_null() { - continue; - } - appsec_fargate_usage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "appsec_percentage" => { - if v.is_null() { - continue; - } - appsec_percentage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "appsec_usage" => { - if v.is_null() { - continue; - } - appsec_usage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "browser_percentage" => { - if v.is_null() { - continue; - } - browser_percentage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "browser_usage" => { - if v.is_null() { - continue; - } - browser_usage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "container_percentage" => { - if v.is_null() { - continue; - } - container_percentage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "container_usage" => { - if v.is_null() { - continue; - } - container_usage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "cspm_container_percentage" => { - if v.is_null() { - continue; - } - cspm_container_percentage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "cspm_container_usage" => { - if v.is_null() { - continue; - } - cspm_container_usage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "cspm_host_percentage" => { - if v.is_null() { - continue; - } - cspm_host_percentage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "cspm_host_usage" => { - if v.is_null() { - continue; - } - cspm_host_usage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "custom_timeseries_percentage" => { - if v.is_null() { - continue; - } - custom_timeseries_percentage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "custom_timeseries_usage" => { - if v.is_null() { - continue; - } - custom_timeseries_usage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "cws_container_percentage" => { - if v.is_null() { - continue; - } - cws_container_percentage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "cws_container_usage" => { - if v.is_null() { - continue; - } - cws_container_usage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "cws_host_percentage" => { - if v.is_null() { - continue; - } - cws_host_percentage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "cws_host_usage" => { - if v.is_null() { - continue; - } - cws_host_usage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "dbm_hosts_percentage" => { - if v.is_null() { - continue; - } - dbm_hosts_percentage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "dbm_hosts_usage" => { - if v.is_null() { - continue; - } - dbm_hosts_usage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "dbm_queries_percentage" => { - if v.is_null() { - continue; - } - dbm_queries_percentage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "dbm_queries_usage" => { - if v.is_null() { - continue; - } - dbm_queries_usage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "estimated_indexed_logs_percentage" => { - if v.is_null() { - continue; - } - estimated_indexed_logs_percentage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "estimated_indexed_logs_usage" => { - if v.is_null() { - continue; - } - estimated_indexed_logs_usage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "estimated_indexed_spans_percentage" => { - if v.is_null() { - continue; - } - estimated_indexed_spans_percentage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "estimated_indexed_spans_usage" => { - if v.is_null() { - continue; - } - estimated_indexed_spans_usage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "estimated_ingested_logs_percentage" => { - if v.is_null() { - continue; - } - estimated_ingested_logs_percentage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "estimated_ingested_logs_usage" => { - if v.is_null() { - continue; - } - estimated_ingested_logs_usage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "estimated_ingested_spans_percentage" => { - if v.is_null() { - continue; - } - estimated_ingested_spans_percentage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "estimated_ingested_spans_usage" => { - if v.is_null() { - continue; - } - estimated_ingested_spans_usage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "estimated_rum_sessions_percentage" => { - if v.is_null() { - continue; - } - estimated_rum_sessions_percentage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "estimated_rum_sessions_usage" => { - if v.is_null() { - continue; - } - estimated_rum_sessions_usage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "infra_host_percentage" => { - if v.is_null() { - continue; - } - infra_host_percentage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "infra_host_usage" => { - if v.is_null() { - continue; - } - infra_host_usage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "lambda_functions_percentage" => { - if v.is_null() { - continue; - } - lambda_functions_percentage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "lambda_functions_usage" => { - if v.is_null() { - continue; - } - lambda_functions_usage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "lambda_invocations_percentage" => { - if v.is_null() { - continue; - } - lambda_invocations_percentage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "lambda_invocations_usage" => { - if v.is_null() { - continue; - } - lambda_invocations_usage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "npm_host_percentage" => { - if v.is_null() { - continue; - } - npm_host_percentage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "npm_host_usage" => { - if v.is_null() { - continue; - } - npm_host_usage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "profiled_container_percentage" => { - if v.is_null() { - continue; - } - profiled_container_percentage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "profiled_container_usage" => { - if v.is_null() { - continue; - } - profiled_container_usage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "profiled_hosts_percentage" => { - if v.is_null() { - continue; - } - profiled_hosts_percentage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "profiled_hosts_usage" => { - if v.is_null() { - continue; - } - profiled_hosts_usage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "snmp_percentage" => { - if v.is_null() { - continue; - } - snmp_percentage = - Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - "snmp_usage" => { - if v.is_null() { - continue; - } - snmp_usage = Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - &_ => {} - } - } - - let content = UsageAttributionValues { - api_percentage, - api_usage, - apm_fargate_percentage, - apm_fargate_usage, - apm_host_percentage, - apm_host_usage, - appsec_fargate_percentage, - appsec_fargate_usage, - appsec_percentage, - appsec_usage, - browser_percentage, - browser_usage, - container_percentage, - container_usage, - cspm_container_percentage, - cspm_container_usage, - cspm_host_percentage, - cspm_host_usage, - custom_timeseries_percentage, - custom_timeseries_usage, - cws_container_percentage, - cws_container_usage, - cws_host_percentage, - cws_host_usage, - dbm_hosts_percentage, - dbm_hosts_usage, - dbm_queries_percentage, - dbm_queries_usage, - estimated_indexed_logs_percentage, - estimated_indexed_logs_usage, - estimated_indexed_spans_percentage, - estimated_indexed_spans_usage, - estimated_ingested_logs_percentage, - estimated_ingested_logs_usage, - estimated_ingested_spans_percentage, - estimated_ingested_spans_usage, - estimated_rum_sessions_percentage, - estimated_rum_sessions_usage, - infra_host_percentage, - infra_host_usage, - lambda_functions_percentage, - lambda_functions_usage, - lambda_invocations_percentage, - lambda_invocations_usage, - npm_host_percentage, - npm_host_usage, - profiled_container_percentage, - profiled_container_usage, - profiled_hosts_percentage, - profiled_hosts_usage, - snmp_percentage, - snmp_usage, - _unparsed, - }; - - Ok(content) - } - } - - deserializer.deserialize_any(UsageAttributionValuesVisitor) - } -} diff --git a/src/datadogV1/model/model_usage_lambda_hour.rs b/src/datadogV1/model/model_usage_lambda_hour.rs index 010651acd..01ceaeb59 100644 --- a/src/datadogV1/model/model_usage_lambda_hour.rs +++ b/src/datadogV1/model/model_usage_lambda_hour.rs @@ -6,7 +6,7 @@ use serde::{Deserialize, Deserializer, Serialize}; use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; -/// Number of lambda functions and sum of the invocations of all lambda functions +/// Number of Lambda functions and sum of the invocations of all Lambda functions /// for each hour for a given organization. #[non_exhaustive] #[skip_serializing_none] diff --git a/src/datadogV1/model/model_usage_lambda_response.rs b/src/datadogV1/model/model_usage_lambda_response.rs index 6dbb2a5a8..06bfe7dd2 100644 --- a/src/datadogV1/model/model_usage_lambda_response.rs +++ b/src/datadogV1/model/model_usage_lambda_response.rs @@ -6,7 +6,7 @@ use serde::{Deserialize, Deserializer, Serialize}; use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; -/// Response containing the number of lambda functions and sum of the invocations of all lambda functions +/// Response containing the number of Lambda functions and sum of the invocations of all Lambda functions /// for each hour for a given organization. #[non_exhaustive] #[skip_serializing_none] diff --git a/src/datadogV1/model/model_usage_summary_date.rs b/src/datadogV1/model/model_usage_summary_date.rs index a9c044705..516e27568 100644 --- a/src/datadogV1/model/model_usage_summary_date.rs +++ b/src/datadogV1/model/model_usage_summary_date.rs @@ -17,6 +17,9 @@ pub struct UsageSummaryDate { /// Shows the 99th percentile of all Azure app services using APM over all hours in the current date all organizations. #[serde(rename = "apm_azure_app_service_host_top99p")] pub apm_azure_app_service_host_top99p: Option, + /// Shows the 99th percentile of all APM DevSecOps hosts over all hours in the current date for the given org. + #[serde(rename = "apm_devsecops_host_top99p")] + pub apm_devsecops_host_top99p: Option, /// Shows the average of all APM ECS Fargate tasks over all hours in the current date for all organizations. #[serde(rename = "apm_fargate_count_avg")] pub apm_fargate_count_avg: Option, @@ -26,6 +29,9 @@ pub struct UsageSummaryDate { /// Shows the average of all Application Security Monitoring ECS Fargate tasks over all hours in the current date for all organizations. #[serde(rename = "appsec_fargate_count_avg")] pub appsec_fargate_count_avg: Option, + /// Shows the sum of all Application Security Monitoring Serverless invocations over all hours in the current date for all organizations. + #[serde(rename = "asm_serverless_sum")] + pub asm_serverless_sum: Option, /// Shows the sum of audit logs lines indexed over all hours in the current date for all organizations. #[deprecated] #[serde(rename = "audit_logs_lines_indexed_sum")] @@ -81,6 +87,9 @@ pub struct UsageSummaryDate { /// Host count average of Cloud Cost Management for Azure for the given date and given organization. #[serde(rename = "cloud_cost_management_azure_host_count_avg")] pub cloud_cost_management_azure_host_count_avg: Option, + /// Host count average of Cloud Cost Management for GCP for the given date and given organization. + #[serde(rename = "cloud_cost_management_gcp_host_count_avg")] + pub cloud_cost_management_gcp_host_count_avg: Option, /// Host count average of Cloud Cost Management for all cloud providers for the given date and given organization. #[serde(rename = "cloud_cost_management_host_count_avg")] pub cloud_cost_management_host_count_avg: Option, @@ -165,12 +174,30 @@ pub struct UsageSummaryDate { /// Shows the average of all normalized Database Monitoring queries over all hours in the current date for all organizations. #[serde(rename = "dbm_queries_count_avg")] pub dbm_queries_count_avg: Option, + /// Shows the sum of all Error Tracking events over all hours in the current date for the given org. + #[serde(rename = "error_tracking_events_sum")] + pub error_tracking_events_sum: Option, /// Shows the high-watermark of all Fargate tasks over all hours in the current date for all organizations. #[serde(rename = "fargate_tasks_count_avg")] pub fargate_tasks_count_avg: Option, /// Shows the average of all Fargate tasks over all hours in the current date for all organizations. #[serde(rename = "fargate_tasks_count_hwm")] pub fargate_tasks_count_hwm: Option, + /// Shows the average number of Flex Logs Compute Large Instances over all hours in the current date for the given org. + #[serde(rename = "flex_logs_compute_large_avg")] + pub flex_logs_compute_large_avg: Option, + /// Shows the average number of Flex Logs Compute Medium Instances over all hours in the current date for the given org. + #[serde(rename = "flex_logs_compute_medium_avg")] + pub flex_logs_compute_medium_avg: Option, + /// Shows the average number of Flex Logs Compute Small Instances over all hours in the current date for the given org. + #[serde(rename = "flex_logs_compute_small_avg")] + pub flex_logs_compute_small_avg: Option, + /// Shows the average number of Flex Logs Compute Extra Small Instances over all hours in the current date for the given org. + #[serde(rename = "flex_logs_compute_xsmall_avg")] + pub flex_logs_compute_xsmall_avg: Option, + /// Shows the average of all Flex Stored Logs over all hours in the current date for the given org. + #[serde(rename = "flex_stored_logs_avg")] + pub flex_stored_logs_avg: Option, /// Shows the sum of all log bytes forwarded over all hours in the current date for all organizations. #[serde(rename = "forwarding_events_bytes_sum")] pub forwarding_events_bytes_sum: Option, @@ -329,9 +356,11 @@ impl UsageSummaryDate { UsageSummaryDate { agent_host_top99p: None, apm_azure_app_service_host_top99p: None, + apm_devsecops_host_top99p: None, apm_fargate_count_avg: None, apm_host_top99p: None, appsec_fargate_count_avg: None, + asm_serverless_sum: None, audit_logs_lines_indexed_sum: None, audit_trail_enabled_hwm: None, avg_profiled_fargate_tasks: None, @@ -350,6 +379,7 @@ impl UsageSummaryDate { ci_visibility_test_committers_hwm: None, cloud_cost_management_aws_host_count_avg: None, cloud_cost_management_azure_host_count_avg: None, + cloud_cost_management_gcp_host_count_avg: None, cloud_cost_management_host_count_avg: None, cloud_siem_events_sum: None, container_avg: None, @@ -378,8 +408,14 @@ impl UsageSummaryDate { date: None, dbm_host_top99p: None, dbm_queries_count_avg: None, + error_tracking_events_sum: None, fargate_tasks_count_avg: None, fargate_tasks_count_hwm: None, + flex_logs_compute_large_avg: None, + flex_logs_compute_medium_avg: None, + flex_logs_compute_small_avg: None, + flex_logs_compute_xsmall_avg: None, + flex_stored_logs_avg: None, forwarding_events_bytes_sum: None, gcp_host_top99p: None, heroku_host_top99p: None, @@ -445,6 +481,12 @@ impl UsageSummaryDate { self } + #[allow(deprecated)] + pub fn apm_devsecops_host_top99p(mut self, value: i64) -> Self { + self.apm_devsecops_host_top99p = Some(value); + self + } + #[allow(deprecated)] pub fn apm_fargate_count_avg(mut self, value: i64) -> Self { self.apm_fargate_count_avg = Some(value); @@ -463,6 +505,12 @@ impl UsageSummaryDate { self } + #[allow(deprecated)] + pub fn asm_serverless_sum(mut self, value: i64) -> Self { + self.asm_serverless_sum = Some(value); + self + } + #[allow(deprecated)] pub fn audit_logs_lines_indexed_sum(mut self, value: i64) -> Self { self.audit_logs_lines_indexed_sum = Some(value); @@ -571,6 +619,12 @@ impl UsageSummaryDate { self } + #[allow(deprecated)] + pub fn cloud_cost_management_gcp_host_count_avg(mut self, value: i64) -> Self { + self.cloud_cost_management_gcp_host_count_avg = Some(value); + self + } + #[allow(deprecated)] pub fn cloud_cost_management_host_count_avg(mut self, value: i64) -> Self { self.cloud_cost_management_host_count_avg = Some(value); @@ -739,6 +793,12 @@ impl UsageSummaryDate { self } + #[allow(deprecated)] + pub fn error_tracking_events_sum(mut self, value: i64) -> Self { + self.error_tracking_events_sum = Some(value); + self + } + #[allow(deprecated)] pub fn fargate_tasks_count_avg(mut self, value: i64) -> Self { self.fargate_tasks_count_avg = Some(value); @@ -751,6 +811,36 @@ impl UsageSummaryDate { self } + #[allow(deprecated)] + pub fn flex_logs_compute_large_avg(mut self, value: i64) -> Self { + self.flex_logs_compute_large_avg = Some(value); + self + } + + #[allow(deprecated)] + pub fn flex_logs_compute_medium_avg(mut self, value: i64) -> Self { + self.flex_logs_compute_medium_avg = Some(value); + self + } + + #[allow(deprecated)] + pub fn flex_logs_compute_small_avg(mut self, value: i64) -> Self { + self.flex_logs_compute_small_avg = Some(value); + self + } + + #[allow(deprecated)] + pub fn flex_logs_compute_xsmall_avg(mut self, value: i64) -> Self { + self.flex_logs_compute_xsmall_avg = Some(value); + self + } + + #[allow(deprecated)] + pub fn flex_stored_logs_avg(mut self, value: i64) -> Self { + self.flex_stored_logs_avg = Some(value); + self + } + #[allow(deprecated)] pub fn forwarding_events_bytes_sum(mut self, value: i64) -> Self { self.forwarding_events_bytes_sum = Some(value); @@ -1071,9 +1161,11 @@ impl<'de> Deserialize<'de> for UsageSummaryDate { { let mut agent_host_top99p: Option = None; let mut apm_azure_app_service_host_top99p: Option = None; + let mut apm_devsecops_host_top99p: Option = None; let mut apm_fargate_count_avg: Option = None; let mut apm_host_top99p: Option = None; let mut appsec_fargate_count_avg: Option = None; + let mut asm_serverless_sum: Option = None; let mut audit_logs_lines_indexed_sum: Option = None; let mut audit_trail_enabled_hwm: Option = None; let mut avg_profiled_fargate_tasks: Option = None; @@ -1092,6 +1184,7 @@ impl<'de> Deserialize<'de> for UsageSummaryDate { let mut ci_visibility_test_committers_hwm: Option = None; let mut cloud_cost_management_aws_host_count_avg: Option = None; let mut cloud_cost_management_azure_host_count_avg: Option = None; + let mut cloud_cost_management_gcp_host_count_avg: Option = None; let mut cloud_cost_management_host_count_avg: Option = None; let mut cloud_siem_events_sum: Option = None; let mut container_avg: Option = None; @@ -1120,8 +1213,14 @@ impl<'de> Deserialize<'de> for UsageSummaryDate { let mut date: Option = None; let mut dbm_host_top99p: Option = None; let mut dbm_queries_count_avg: Option = None; + let mut error_tracking_events_sum: Option = None; let mut fargate_tasks_count_avg: Option = None; let mut fargate_tasks_count_hwm: Option = None; + let mut flex_logs_compute_large_avg: Option = None; + let mut flex_logs_compute_medium_avg: Option = None; + let mut flex_logs_compute_small_avg: Option = None; + let mut flex_logs_compute_xsmall_avg: Option = None; + let mut flex_stored_logs_avg: Option = None; let mut forwarding_events_bytes_sum: Option = None; let mut gcp_host_top99p: Option = None; let mut heroku_host_top99p: Option = None; @@ -1189,6 +1288,13 @@ impl<'de> Deserialize<'de> for UsageSummaryDate { apm_azure_app_service_host_top99p = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "apm_devsecops_host_top99p" => { + if v.is_null() { + continue; + } + apm_devsecops_host_top99p = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "apm_fargate_count_avg" => { if v.is_null() { continue; @@ -1210,6 +1316,13 @@ impl<'de> Deserialize<'de> for UsageSummaryDate { appsec_fargate_count_avg = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "asm_serverless_sum" => { + if v.is_null() { + continue; + } + asm_serverless_sum = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "audit_logs_lines_indexed_sum" => { if v.is_null() { continue; @@ -1336,6 +1449,13 @@ impl<'de> Deserialize<'de> for UsageSummaryDate { cloud_cost_management_azure_host_count_avg = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "cloud_cost_management_gcp_host_count_avg" => { + if v.is_null() { + continue; + } + cloud_cost_management_gcp_host_count_avg = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "cloud_cost_management_host_count_avg" => { if v.is_null() { continue; @@ -1531,6 +1651,13 @@ impl<'de> Deserialize<'de> for UsageSummaryDate { dbm_queries_count_avg = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "error_tracking_events_sum" => { + if v.is_null() { + continue; + } + error_tracking_events_sum = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "fargate_tasks_count_avg" => { if v.is_null() { continue; @@ -1545,6 +1672,41 @@ impl<'de> Deserialize<'de> for UsageSummaryDate { fargate_tasks_count_hwm = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "flex_logs_compute_large_avg" => { + if v.is_null() { + continue; + } + flex_logs_compute_large_avg = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "flex_logs_compute_medium_avg" => { + if v.is_null() { + continue; + } + flex_logs_compute_medium_avg = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "flex_logs_compute_small_avg" => { + if v.is_null() { + continue; + } + flex_logs_compute_small_avg = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "flex_logs_compute_xsmall_avg" => { + if v.is_null() { + continue; + } + flex_logs_compute_xsmall_avg = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "flex_stored_logs_avg" => { + if v.is_null() { + continue; + } + flex_stored_logs_avg = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "forwarding_events_bytes_sum" => { if v.is_null() { continue; @@ -1895,9 +2057,11 @@ impl<'de> Deserialize<'de> for UsageSummaryDate { let content = UsageSummaryDate { agent_host_top99p, apm_azure_app_service_host_top99p, + apm_devsecops_host_top99p, apm_fargate_count_avg, apm_host_top99p, appsec_fargate_count_avg, + asm_serverless_sum, audit_logs_lines_indexed_sum, audit_trail_enabled_hwm, avg_profiled_fargate_tasks, @@ -1916,6 +2080,7 @@ impl<'de> Deserialize<'de> for UsageSummaryDate { ci_visibility_test_committers_hwm, cloud_cost_management_aws_host_count_avg, cloud_cost_management_azure_host_count_avg, + cloud_cost_management_gcp_host_count_avg, cloud_cost_management_host_count_avg, cloud_siem_events_sum, container_avg, @@ -1944,8 +2109,14 @@ impl<'de> Deserialize<'de> for UsageSummaryDate { date, dbm_host_top99p, dbm_queries_count_avg, + error_tracking_events_sum, fargate_tasks_count_avg, fargate_tasks_count_hwm, + flex_logs_compute_large_avg, + flex_logs_compute_medium_avg, + flex_logs_compute_small_avg, + flex_logs_compute_xsmall_avg, + flex_stored_logs_avg, forwarding_events_bytes_sum, gcp_host_top99p, heroku_host_top99p, diff --git a/src/datadogV1/model/model_usage_summary_date_org.rs b/src/datadogV1/model/model_usage_summary_date_org.rs index 26f4abca3..c4cb33808 100644 --- a/src/datadogV1/model/model_usage_summary_date_org.rs +++ b/src/datadogV1/model/model_usage_summary_date_org.rs @@ -17,15 +17,21 @@ pub struct UsageSummaryDateOrg { /// Shows the 99th percentile of all Azure app services using APM over all hours in the current date for the given org. #[serde(rename = "apm_azure_app_service_host_top99p")] pub apm_azure_app_service_host_top99p: Option, - /// Shows the average of all APM ECS Fargate tasks over all hours in the current months for the given org. + /// Shows the 99th percentile of all APM DevSecOps hosts over all hours in the current date for the given org. + #[serde(rename = "apm_devsecops_host_top99p")] + pub apm_devsecops_host_top99p: Option, + /// Shows the average of all APM ECS Fargate tasks over all hours in the current month for the given org. #[serde(rename = "apm_fargate_count_avg")] pub apm_fargate_count_avg: Option, /// Shows the 99th percentile of all distinct APM hosts over all hours in the current date for the given org. #[serde(rename = "apm_host_top99p")] pub apm_host_top99p: Option, - /// Shows the average of all Application Security Monitoring ECS Fargate tasks over all hours in the current months for the given org. + /// Shows the average of all Application Security Monitoring ECS Fargate tasks over all hours in the current month for the given org. #[serde(rename = "appsec_fargate_count_avg")] pub appsec_fargate_count_avg: Option, + /// Shows the sum of all Application Security Monitoring Serverless invocations over all hours in the current month for the given org. + #[serde(rename = "asm_serverless_sum")] + pub asm_serverless_sum: Option, /// Shows the sum of all audit logs lines indexed over all hours in the current date for the given org. #[deprecated] #[serde(rename = "audit_logs_lines_indexed_sum")] @@ -81,6 +87,9 @@ pub struct UsageSummaryDateOrg { /// Host count average of Cloud Cost Management for Azure for the given date and given org. #[serde(rename = "cloud_cost_management_azure_host_count_avg")] pub cloud_cost_management_azure_host_count_avg: Option, + /// Host count average of Cloud Cost Management for GCP for the given date and given org. + #[serde(rename = "cloud_cost_management_gcp_host_count_avg")] + pub cloud_cost_management_gcp_host_count_avg: Option, /// Host count average of Cloud Cost Management for all cloud providers for the given date and given org. #[serde(rename = "cloud_cost_management_host_count_avg")] pub cloud_cost_management_host_count_avg: Option, @@ -168,12 +177,30 @@ pub struct UsageSummaryDateOrg { /// Shows the average of all distinct Database Monitoring normalized queries over all hours in the current month for the given org. #[serde(rename = "dbm_queries_avg_sum")] pub dbm_queries_avg_sum: Option, + /// Shows the sum of all Error Tracking events over all hours in the current date for the given org. + #[serde(rename = "error_tracking_events_sum")] + pub error_tracking_events_sum: Option, /// The average task count for Fargate. #[serde(rename = "fargate_tasks_count_avg")] pub fargate_tasks_count_avg: Option, /// Shows the high-water mark of all Fargate tasks over all hours in the current date for the given org. #[serde(rename = "fargate_tasks_count_hwm")] pub fargate_tasks_count_hwm: Option, + /// Shows the average number of Flex Logs Compute Large Instances over all hours in the current date for the given org. + #[serde(rename = "flex_logs_compute_large_avg")] + pub flex_logs_compute_large_avg: Option, + /// Shows the average number of Flex Logs Compute Medium Instances over all hours in the current date for the given org. + #[serde(rename = "flex_logs_compute_medium_avg")] + pub flex_logs_compute_medium_avg: Option, + /// Shows the average number of Flex Logs Compute Small Instances over all hours in the current date for the given org. + #[serde(rename = "flex_logs_compute_small_avg")] + pub flex_logs_compute_small_avg: Option, + /// Shows the average number of Flex Logs Compute Extra Small Instances over all hours in the current date for the given org. + #[serde(rename = "flex_logs_compute_xsmall_avg")] + pub flex_logs_compute_xsmall_avg: Option, + /// Shows the average of all Flex Stored Logs over all hours in the current date for the given org. + #[serde(rename = "flex_stored_logs_avg")] + pub flex_stored_logs_avg: Option, /// Shows the sum of all log bytes forwarded over all hours in the current date for the given org. #[serde(rename = "forwarding_events_bytes_sum")] pub forwarding_events_bytes_sum: Option, @@ -341,9 +368,11 @@ impl UsageSummaryDateOrg { UsageSummaryDateOrg { agent_host_top99p: None, apm_azure_app_service_host_top99p: None, + apm_devsecops_host_top99p: None, apm_fargate_count_avg: None, apm_host_top99p: None, appsec_fargate_count_avg: None, + asm_serverless_sum: None, audit_logs_lines_indexed_sum: None, audit_trail_enabled_hwm: None, avg_profiled_fargate_tasks: None, @@ -362,6 +391,7 @@ impl UsageSummaryDateOrg { ci_visibility_test_committers_hwm: None, cloud_cost_management_aws_host_count_avg: None, cloud_cost_management_azure_host_count_avg: None, + cloud_cost_management_gcp_host_count_avg: None, cloud_cost_management_host_count_avg: None, cloud_siem_events_sum: None, container_avg: None, @@ -391,8 +421,14 @@ impl UsageSummaryDateOrg { cws_host_top99p: None, dbm_host_top99p_sum: None, dbm_queries_avg_sum: None, + error_tracking_events_sum: None, fargate_tasks_count_avg: None, fargate_tasks_count_hwm: None, + flex_logs_compute_large_avg: None, + flex_logs_compute_medium_avg: None, + flex_logs_compute_small_avg: None, + flex_logs_compute_xsmall_avg: None, + flex_stored_logs_avg: None, forwarding_events_bytes_sum: None, gcp_host_top99p: None, heroku_host_top99p: None, @@ -461,6 +497,12 @@ impl UsageSummaryDateOrg { self } + #[allow(deprecated)] + pub fn apm_devsecops_host_top99p(mut self, value: i64) -> Self { + self.apm_devsecops_host_top99p = Some(value); + self + } + #[allow(deprecated)] pub fn apm_fargate_count_avg(mut self, value: i64) -> Self { self.apm_fargate_count_avg = Some(value); @@ -479,6 +521,12 @@ impl UsageSummaryDateOrg { self } + #[allow(deprecated)] + pub fn asm_serverless_sum(mut self, value: i64) -> Self { + self.asm_serverless_sum = Some(value); + self + } + #[allow(deprecated)] pub fn audit_logs_lines_indexed_sum(mut self, value: i64) -> Self { self.audit_logs_lines_indexed_sum = Some(value); @@ -587,6 +635,12 @@ impl UsageSummaryDateOrg { self } + #[allow(deprecated)] + pub fn cloud_cost_management_gcp_host_count_avg(mut self, value: i64) -> Self { + self.cloud_cost_management_gcp_host_count_avg = Some(value); + self + } + #[allow(deprecated)] pub fn cloud_cost_management_host_count_avg(mut self, value: i64) -> Self { self.cloud_cost_management_host_count_avg = Some(value); @@ -761,6 +815,12 @@ impl UsageSummaryDateOrg { self } + #[allow(deprecated)] + pub fn error_tracking_events_sum(mut self, value: i64) -> Self { + self.error_tracking_events_sum = Some(value); + self + } + #[allow(deprecated)] pub fn fargate_tasks_count_avg(mut self, value: i64) -> Self { self.fargate_tasks_count_avg = Some(value); @@ -773,6 +833,36 @@ impl UsageSummaryDateOrg { self } + #[allow(deprecated)] + pub fn flex_logs_compute_large_avg(mut self, value: i64) -> Self { + self.flex_logs_compute_large_avg = Some(value); + self + } + + #[allow(deprecated)] + pub fn flex_logs_compute_medium_avg(mut self, value: i64) -> Self { + self.flex_logs_compute_medium_avg = Some(value); + self + } + + #[allow(deprecated)] + pub fn flex_logs_compute_small_avg(mut self, value: i64) -> Self { + self.flex_logs_compute_small_avg = Some(value); + self + } + + #[allow(deprecated)] + pub fn flex_logs_compute_xsmall_avg(mut self, value: i64) -> Self { + self.flex_logs_compute_xsmall_avg = Some(value); + self + } + + #[allow(deprecated)] + pub fn flex_stored_logs_avg(mut self, value: i64) -> Self { + self.flex_stored_logs_avg = Some(value); + self + } + #[allow(deprecated)] pub fn forwarding_events_bytes_sum(mut self, value: i64) -> Self { self.forwarding_events_bytes_sum = Some(value); @@ -1111,9 +1201,11 @@ impl<'de> Deserialize<'de> for UsageSummaryDateOrg { { let mut agent_host_top99p: Option = None; let mut apm_azure_app_service_host_top99p: Option = None; + let mut apm_devsecops_host_top99p: Option = None; let mut apm_fargate_count_avg: Option = None; let mut apm_host_top99p: Option = None; let mut appsec_fargate_count_avg: Option = None; + let mut asm_serverless_sum: Option = None; let mut audit_logs_lines_indexed_sum: Option = None; let mut audit_trail_enabled_hwm: Option = None; let mut avg_profiled_fargate_tasks: Option = None; @@ -1132,6 +1224,7 @@ impl<'de> Deserialize<'de> for UsageSummaryDateOrg { let mut ci_visibility_test_committers_hwm: Option = None; let mut cloud_cost_management_aws_host_count_avg: Option = None; let mut cloud_cost_management_azure_host_count_avg: Option = None; + let mut cloud_cost_management_gcp_host_count_avg: Option = None; let mut cloud_cost_management_host_count_avg: Option = None; let mut cloud_siem_events_sum: Option = None; let mut container_avg: Option = None; @@ -1161,8 +1254,14 @@ impl<'de> Deserialize<'de> for UsageSummaryDateOrg { let mut cws_host_top99p: Option = None; let mut dbm_host_top99p_sum: Option = None; let mut dbm_queries_avg_sum: Option = None; + let mut error_tracking_events_sum: Option = None; let mut fargate_tasks_count_avg: Option = None; let mut fargate_tasks_count_hwm: Option = None; + let mut flex_logs_compute_large_avg: Option = None; + let mut flex_logs_compute_medium_avg: Option = None; + let mut flex_logs_compute_small_avg: Option = None; + let mut flex_logs_compute_xsmall_avg: Option = None; + let mut flex_stored_logs_avg: Option = None; let mut forwarding_events_bytes_sum: Option = None; let mut gcp_host_top99p: Option = None; let mut heroku_host_top99p: Option = None; @@ -1233,6 +1332,13 @@ impl<'de> Deserialize<'de> for UsageSummaryDateOrg { apm_azure_app_service_host_top99p = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "apm_devsecops_host_top99p" => { + if v.is_null() { + continue; + } + apm_devsecops_host_top99p = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "apm_fargate_count_avg" => { if v.is_null() { continue; @@ -1254,6 +1360,13 @@ impl<'de> Deserialize<'de> for UsageSummaryDateOrg { appsec_fargate_count_avg = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "asm_serverless_sum" => { + if v.is_null() { + continue; + } + asm_serverless_sum = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "audit_logs_lines_indexed_sum" => { if v.is_null() { continue; @@ -1380,6 +1493,13 @@ impl<'de> Deserialize<'de> for UsageSummaryDateOrg { cloud_cost_management_azure_host_count_avg = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "cloud_cost_management_gcp_host_count_avg" => { + if v.is_null() { + continue; + } + cloud_cost_management_gcp_host_count_avg = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "cloud_cost_management_host_count_avg" => { if v.is_null() { continue; @@ -1583,6 +1703,13 @@ impl<'de> Deserialize<'de> for UsageSummaryDateOrg { dbm_queries_avg_sum = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "error_tracking_events_sum" => { + if v.is_null() { + continue; + } + error_tracking_events_sum = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "fargate_tasks_count_avg" => { if v.is_null() { continue; @@ -1597,6 +1724,41 @@ impl<'de> Deserialize<'de> for UsageSummaryDateOrg { fargate_tasks_count_hwm = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "flex_logs_compute_large_avg" => { + if v.is_null() { + continue; + } + flex_logs_compute_large_avg = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "flex_logs_compute_medium_avg" => { + if v.is_null() { + continue; + } + flex_logs_compute_medium_avg = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "flex_logs_compute_small_avg" => { + if v.is_null() { + continue; + } + flex_logs_compute_small_avg = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "flex_logs_compute_xsmall_avg" => { + if v.is_null() { + continue; + } + flex_logs_compute_xsmall_avg = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "flex_stored_logs_avg" => { + if v.is_null() { + continue; + } + flex_stored_logs_avg = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "forwarding_events_bytes_sum" => { if v.is_null() { continue; @@ -1965,9 +2127,11 @@ impl<'de> Deserialize<'de> for UsageSummaryDateOrg { let content = UsageSummaryDateOrg { agent_host_top99p, apm_azure_app_service_host_top99p, + apm_devsecops_host_top99p, apm_fargate_count_avg, apm_host_top99p, appsec_fargate_count_avg, + asm_serverless_sum, audit_logs_lines_indexed_sum, audit_trail_enabled_hwm, avg_profiled_fargate_tasks, @@ -1986,6 +2150,7 @@ impl<'de> Deserialize<'de> for UsageSummaryDateOrg { ci_visibility_test_committers_hwm, cloud_cost_management_aws_host_count_avg, cloud_cost_management_azure_host_count_avg, + cloud_cost_management_gcp_host_count_avg, cloud_cost_management_host_count_avg, cloud_siem_events_sum, container_avg, @@ -2015,8 +2180,14 @@ impl<'de> Deserialize<'de> for UsageSummaryDateOrg { cws_host_top99p, dbm_host_top99p_sum, dbm_queries_avg_sum, + error_tracking_events_sum, fargate_tasks_count_avg, fargate_tasks_count_hwm, + flex_logs_compute_large_avg, + flex_logs_compute_medium_avg, + flex_logs_compute_small_avg, + flex_logs_compute_xsmall_avg, + flex_stored_logs_avg, forwarding_events_bytes_sum, gcp_host_top99p, heroku_host_top99p, diff --git a/src/datadogV1/model/model_usage_summary_response.rs b/src/datadogV1/model/model_usage_summary_response.rs index 5b795a50b..fbad445b4 100644 --- a/src/datadogV1/model/model_usage_summary_response.rs +++ b/src/datadogV1/model/model_usage_summary_response.rs @@ -11,71 +11,77 @@ use std::fmt::{self, Formatter}; #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] pub struct UsageSummaryResponse { - /// Shows the 99th percentile of all agent hosts over all hours in the current months for all organizations. + /// Shows the 99th percentile of all agent hosts over all hours in the current month for all organizations. #[serde(rename = "agent_host_top99p_sum")] pub agent_host_top99p_sum: Option, - /// Shows the 99th percentile of all Azure app services using APM over all hours in the current months all organizations. + /// Shows the 99th percentile of all Azure app services using APM over all hours in the current month all organizations. #[serde(rename = "apm_azure_app_service_host_top99p_sum")] pub apm_azure_app_service_host_top99p_sum: Option, - /// Shows the average of all APM ECS Fargate tasks over all hours in the current months for all organizations. + /// Shows the 99th percentile of all APM DevSecOps hosts over all hours in the current month for all organizations. + #[serde(rename = "apm_devsecops_host_top99p_sum")] + pub apm_devsecops_host_top99p_sum: Option, + /// Shows the average of all APM ECS Fargate tasks over all hours in the current month for all organizations. #[serde(rename = "apm_fargate_count_avg_sum")] pub apm_fargate_count_avg_sum: Option, - /// Shows the 99th percentile of all distinct APM hosts over all hours in the current months for all organizations. + /// Shows the 99th percentile of all distinct APM hosts over all hours in the current month for all organizations. #[serde(rename = "apm_host_top99p_sum")] pub apm_host_top99p_sum: Option, - /// Shows the average of all Application Security Monitoring ECS Fargate tasks over all hours in the current months for all organizations. + /// Shows the average of all Application Security Monitoring ECS Fargate tasks over all hours in the current month for all organizations. #[serde(rename = "appsec_fargate_count_avg_sum")] pub appsec_fargate_count_avg_sum: Option, - /// Shows the sum of all audit logs lines indexed over all hours in the current months for all organizations. + /// Shows the sum of all Application Security Monitoring Serverless invocations over all hours in the current months for all organizations. + #[serde(rename = "asm_serverless_agg_sum")] + pub asm_serverless_agg_sum: Option, + /// Shows the sum of all audit logs lines indexed over all hours in the current month for all organizations. #[deprecated] #[serde(rename = "audit_logs_lines_indexed_agg_sum")] pub audit_logs_lines_indexed_agg_sum: Option, /// Shows the total number of organizations that had Audit Trail enabled over a specific number of months. #[serde(rename = "audit_trail_enabled_hwm_sum")] pub audit_trail_enabled_hwm_sum: Option, - /// Shows the average of all profiled Fargate tasks over all hours in the current months for all organizations. + /// Shows the average of all profiled Fargate tasks over all hours in the current month for all organizations. #[serde(rename = "avg_profiled_fargate_tasks_sum")] pub avg_profiled_fargate_tasks_sum: Option, - /// Shows the 99th percentile of all AWS hosts over all hours in the current months for all organizations. + /// Shows the 99th percentile of all AWS hosts over all hours in the current month for all organizations. #[serde(rename = "aws_host_top99p_sum")] pub aws_host_top99p_sum: Option, - /// Shows the average of the number of functions that executed 1 or more times each hour in the current months for all organizations. + /// Shows the average of the number of functions that executed 1 or more times each hour in the current month for all organizations. #[serde(rename = "aws_lambda_func_count")] pub aws_lambda_func_count: Option, - /// Shows the sum of all AWS Lambda invocations over all hours in the current months for all organizations. + /// Shows the sum of all AWS Lambda invocations over all hours in the current month for all organizations. #[serde(rename = "aws_lambda_invocations_sum")] pub aws_lambda_invocations_sum: Option, - /// Shows the 99th percentile of all Azure app services over all hours in the current months for all organizations. + /// Shows the 99th percentile of all Azure app services over all hours in the current month for all organizations. #[serde(rename = "azure_app_service_top99p_sum")] pub azure_app_service_top99p_sum: Option, - /// Shows the 99th percentile of all Azure hosts over all hours in the current months for all organizations. + /// Shows the 99th percentile of all Azure hosts over all hours in the current month for all organizations. #[serde(rename = "azure_host_top99p_sum")] pub azure_host_top99p_sum: Option, - /// Shows the sum of all log bytes ingested over all hours in the current months for all organizations. + /// Shows the sum of all log bytes ingested over all hours in the current month for all organizations. #[serde(rename = "billable_ingested_bytes_agg_sum")] pub billable_ingested_bytes_agg_sum: Option, - /// Shows the sum of all browser lite sessions over all hours in the current months for all organizations. + /// Shows the sum of all browser lite sessions over all hours in the current month for all organizations. #[serde(rename = "browser_rum_lite_session_count_agg_sum")] pub browser_rum_lite_session_count_agg_sum: Option, - /// Shows the sum of all browser replay sessions over all hours in the current months for all organizations. + /// Shows the sum of all browser replay sessions over all hours in the current month for all organizations. #[serde(rename = "browser_rum_replay_session_count_agg_sum")] pub browser_rum_replay_session_count_agg_sum: Option, - /// Shows the sum of all browser RUM units over all hours in the current months for all organizations. + /// Shows the sum of all browser RUM units over all hours in the current month for all organizations. #[serde(rename = "browser_rum_units_agg_sum")] pub browser_rum_units_agg_sum: Option, - /// Shows the sum of all CI pipeline indexed spans over all hours in the current months for all organizations. + /// Shows the sum of all CI pipeline indexed spans over all hours in the current month for all organizations. #[serde(rename = "ci_pipeline_indexed_spans_agg_sum")] pub ci_pipeline_indexed_spans_agg_sum: Option, - /// Shows the sum of all CI test indexed spans over all hours in the current months for all organizations. + /// Shows the sum of all CI test indexed spans over all hours in the current month for all organizations. #[serde(rename = "ci_test_indexed_spans_agg_sum")] pub ci_test_indexed_spans_agg_sum: Option, - /// Shows the high-water mark of all CI visibility intelligent test runner committers over all hours in the current months for all organizations. + /// Shows the high-water mark of all CI visibility intelligent test runner committers over all hours in the current month for all organizations. #[serde(rename = "ci_visibility_itr_committers_hwm_sum")] pub ci_visibility_itr_committers_hwm_sum: Option, - /// Shows the high-water mark of all CI visibility pipeline committers over all hours in the current months for all organizations. + /// Shows the high-water mark of all CI visibility pipeline committers over all hours in the current month for all organizations. #[serde(rename = "ci_visibility_pipeline_committers_hwm_sum")] pub ci_visibility_pipeline_committers_hwm_sum: Option, - /// Shows the high-water mark of all CI visibility test committers over all hours in the current months for all organizations. + /// Shows the high-water mark of all CI visibility test committers over all hours in the current month for all organizations. #[serde(rename = "ci_visibility_test_committers_hwm_sum")] pub ci_visibility_test_committers_hwm_sum: Option, /// Sum of the host count average for Cloud Cost Management for AWS. @@ -84,85 +90,88 @@ pub struct UsageSummaryResponse { /// Sum of the host count average for Cloud Cost Management for Azure. #[serde(rename = "cloud_cost_management_azure_host_count_avg_sum")] pub cloud_cost_management_azure_host_count_avg_sum: Option, + /// Sum of the host count average for Cloud Cost Management for GCP. + #[serde(rename = "cloud_cost_management_gcp_host_count_avg_sum")] + pub cloud_cost_management_gcp_host_count_avg_sum: Option, /// Sum of the host count average for Cloud Cost Management for all cloud providers. #[serde(rename = "cloud_cost_management_host_count_avg_sum")] pub cloud_cost_management_host_count_avg_sum: Option, - /// Shows the sum of all Cloud Security Information and Event Management events over all hours in the current months for all organizations. + /// Shows the sum of all Cloud Security Information and Event Management events over all hours in the current month for all organizations. #[serde(rename = "cloud_siem_events_agg_sum")] pub cloud_siem_events_agg_sum: Option, - /// Shows the average of all distinct containers over all hours in the current months for all organizations. + /// Shows the average of all distinct containers over all hours in the current month for all organizations. #[serde(rename = "container_avg_sum")] pub container_avg_sum: Option, /// Shows the average of the containers without the Datadog Agent over all hours in the current month for all organizations. #[serde(rename = "container_excl_agent_avg_sum")] pub container_excl_agent_avg_sum: Option, - /// Shows the sum of the high-water marks of all distinct containers over all hours in the current months for all organizations. + /// Shows the sum of the high-water marks of all distinct containers over all hours in the current month for all organizations. #[serde(rename = "container_hwm_sum")] pub container_hwm_sum: Option, - /// Shows the sum of all Cloud Security Management Enterprise compliance containers over all hours in the current months for all organizations. + /// Shows the sum of all Cloud Security Management Enterprise compliance containers over all hours in the current month for all organizations. #[serde(rename = "csm_container_enterprise_compliance_count_agg_sum")] pub csm_container_enterprise_compliance_count_agg_sum: Option, - /// Shows the sum of all Cloud Security Management Enterprise Cloud Workload Security containers over all hours in the current months for all organizations. + /// Shows the sum of all Cloud Security Management Enterprise Cloud Workload Security containers over all hours in the current month for all organizations. #[serde(rename = "csm_container_enterprise_cws_count_agg_sum")] pub csm_container_enterprise_cws_count_agg_sum: Option, - /// Shows the sum of all Cloud Security Management Enterprise containers over all hours in the current months for all organizations. + /// Shows the sum of all Cloud Security Management Enterprise containers over all hours in the current month for all organizations. #[serde(rename = "csm_container_enterprise_total_count_agg_sum")] pub csm_container_enterprise_total_count_agg_sum: Option, - /// Shows the 99th percentile of all Cloud Security Management Enterprise Azure app services hosts over all hours in the current months for all organizations. + /// Shows the 99th percentile of all Cloud Security Management Enterprise Azure app services hosts over all hours in the current month for all organizations. #[serde(rename = "csm_host_enterprise_aas_host_count_top99p_sum")] pub csm_host_enterprise_aas_host_count_top99p_sum: Option, - /// Shows the 99th percentile of all Cloud Security Management Enterprise AWS hosts over all hours in the current months for all organizations. + /// Shows the 99th percentile of all Cloud Security Management Enterprise AWS hosts over all hours in the current month for all organizations. #[serde(rename = "csm_host_enterprise_aws_host_count_top99p_sum")] pub csm_host_enterprise_aws_host_count_top99p_sum: Option, - /// Shows the 99th percentile of all Cloud Security Management Enterprise Azure hosts over all hours in the current months for all organizations. + /// Shows the 99th percentile of all Cloud Security Management Enterprise Azure hosts over all hours in the current month for all organizations. #[serde(rename = "csm_host_enterprise_azure_host_count_top99p_sum")] pub csm_host_enterprise_azure_host_count_top99p_sum: Option, - /// Shows the 99th percentile of all Cloud Security Management Enterprise compliance hosts over all hours in the current months for all organizations. + /// Shows the 99th percentile of all Cloud Security Management Enterprise compliance hosts over all hours in the current month for all organizations. #[serde(rename = "csm_host_enterprise_compliance_host_count_top99p_sum")] pub csm_host_enterprise_compliance_host_count_top99p_sum: Option, - /// Shows the 99th percentile of all Cloud Security Management Enterprise Cloud Workload Security hosts over all hours in the current months for all organizations. + /// Shows the 99th percentile of all Cloud Security Management Enterprise Cloud Workload Security hosts over all hours in the current month for all organizations. #[serde(rename = "csm_host_enterprise_cws_host_count_top99p_sum")] pub csm_host_enterprise_cws_host_count_top99p_sum: Option, - /// Shows the 99th percentile of all Cloud Security Management Enterprise GCP hosts over all hours in the current months for all organizations. + /// Shows the 99th percentile of all Cloud Security Management Enterprise GCP hosts over all hours in the current month for all organizations. #[serde(rename = "csm_host_enterprise_gcp_host_count_top99p_sum")] pub csm_host_enterprise_gcp_host_count_top99p_sum: Option, - /// Shows the 99th percentile of all Cloud Security Management Enterprise hosts over all hours in the current months for all organizations. + /// Shows the 99th percentile of all Cloud Security Management Enterprise hosts over all hours in the current month for all organizations. #[serde(rename = "csm_host_enterprise_total_host_count_top99p_sum")] pub csm_host_enterprise_total_host_count_top99p_sum: Option, - /// Shows the 99th percentile of all Cloud Security Management Pro Azure app services hosts over all hours in the current months for all organizations. + /// Shows the 99th percentile of all Cloud Security Management Pro Azure app services hosts over all hours in the current month for all organizations. #[serde(rename = "cspm_aas_host_top99p_sum")] pub cspm_aas_host_top99p_sum: Option, - /// Shows the 99th percentile of all Cloud Security Management Pro AWS hosts over all hours in the current months for all organizations. + /// Shows the 99th percentile of all Cloud Security Management Pro AWS hosts over all hours in the current month for all organizations. #[serde(rename = "cspm_aws_host_top99p_sum")] pub cspm_aws_host_top99p_sum: Option, - /// Shows the 99th percentile of all Cloud Security Management Pro Azure hosts over all hours in the current months for all organizations. + /// Shows the 99th percentile of all Cloud Security Management Pro Azure hosts over all hours in the current month for all organizations. #[serde(rename = "cspm_azure_host_top99p_sum")] pub cspm_azure_host_top99p_sum: Option, - /// Shows the average number of Cloud Security Management Pro containers over all hours in the current months for all organizations. + /// Shows the average number of Cloud Security Management Pro containers over all hours in the current month for all organizations. #[serde(rename = "cspm_container_avg_sum")] pub cspm_container_avg_sum: Option, - /// Shows the sum of the the high-water marks of Cloud Security Management Pro containers over all hours in the current months for all organizations. + /// Shows the sum of the the high-water marks of Cloud Security Management Pro containers over all hours in the current month for all organizations. #[serde(rename = "cspm_container_hwm_sum")] pub cspm_container_hwm_sum: Option, - /// Shows the 99th percentile of all Cloud Security Management Pro GCP hosts over all hours in the current months for all organizations. + /// Shows the 99th percentile of all Cloud Security Management Pro GCP hosts over all hours in the current month for all organizations. #[serde(rename = "cspm_gcp_host_top99p_sum")] pub cspm_gcp_host_top99p_sum: Option, - /// Shows the 99th percentile of all Cloud Security Management Pro hosts over all hours in the current months for all organizations. + /// Shows the 99th percentile of all Cloud Security Management Pro hosts over all hours in the current month for all organizations. #[serde(rename = "cspm_host_top99p_sum")] pub cspm_host_top99p_sum: Option, - /// Shows the average number of distinct historical custom metrics over all hours in the current months for all organizations. + /// Shows the average number of distinct historical custom metrics over all hours in the current month for all organizations. #[serde(rename = "custom_historical_ts_sum")] pub custom_historical_ts_sum: Option, - /// Shows the average number of distinct live custom metrics over all hours in the current months for all organizations. + /// Shows the average number of distinct live custom metrics over all hours in the current month for all organizations. #[serde(rename = "custom_live_ts_sum")] pub custom_live_ts_sum: Option, - /// Shows the average number of distinct custom metrics over all hours in the current months for all organizations. + /// Shows the average number of distinct custom metrics over all hours in the current month for all organizations. #[serde(rename = "custom_ts_sum")] pub custom_ts_sum: Option, - /// Shows the average of all distinct Cloud Workload Security containers over all hours in the current months for all organizations. + /// Shows the average of all distinct Cloud Workload Security containers over all hours in the current month for all organizations. #[serde(rename = "cws_containers_avg_sum")] pub cws_containers_avg_sum: Option, - /// Shows the 99th percentile of all Cloud Workload Security hosts over all hours in the current months for all organizations. + /// Shows the 99th percentile of all Cloud Workload Security hosts over all hours in the current month for all organizations. #[serde(rename = "cws_host_top99p_sum")] pub cws_host_top99p_sum: Option, /// Shows the 99th percentile of all Database Monitoring hosts over all hours in the current month for all organizations. @@ -171,184 +180,202 @@ pub struct UsageSummaryResponse { /// Shows the average of all distinct Database Monitoring Normalized Queries over all hours in the current month for all organizations. #[serde(rename = "dbm_queries_avg_sum")] pub dbm_queries_avg_sum: Option, - /// Shows the last date of usage in the current months for all organizations. + /// Shows the last date of usage in the current month for all organizations. #[serde(rename = "end_date")] pub end_date: Option, - /// Shows the average of all Fargate tasks over all hours in the current months for all organizations. + /// Shows the sum of all Error Tracking events over all hours in the current months for all organizations. + #[serde(rename = "error_tracking_events_agg_sum")] + pub error_tracking_events_agg_sum: Option, + /// Shows the average of all Fargate tasks over all hours in the current month for all organizations. #[serde(rename = "fargate_tasks_count_avg_sum")] pub fargate_tasks_count_avg_sum: Option, - /// Shows the sum of the high-water marks of all Fargate tasks over all hours in the current months for all organizations. + /// Shows the sum of the high-water marks of all Fargate tasks over all hours in the current month for all organizations. #[serde(rename = "fargate_tasks_count_hwm_sum")] pub fargate_tasks_count_hwm_sum: Option, - /// Shows the sum of all logs forwarding bytes over all hours in the current months for all organizations (data available as of April 1, 2023) + /// Shows the average number of Flex Logs Compute Large Instances over all hours in the current months for all organizations. + #[serde(rename = "flex_logs_compute_large_avg_sum")] + pub flex_logs_compute_large_avg_sum: Option, + /// Shows the average number of Flex Logs Compute Medium Instances over all hours in the current months for all organizations. + #[serde(rename = "flex_logs_compute_medium_avg_sum")] + pub flex_logs_compute_medium_avg_sum: Option, + /// Shows the average number of Flex Logs Compute Small Instances over all hours in the current months for all organizations. + #[serde(rename = "flex_logs_compute_small_avg_sum")] + pub flex_logs_compute_small_avg_sum: Option, + /// Shows the average number of Flex Logs Compute Extra Small Instances over all hours in the current months for all organizations. + #[serde(rename = "flex_logs_compute_xsmall_avg_sum")] + pub flex_logs_compute_xsmall_avg_sum: Option, + /// Shows the average of all Flex Stored Logs over all hours in the current months for all organizations. + #[serde(rename = "flex_stored_logs_avg_sum")] + pub flex_stored_logs_avg_sum: Option, + /// Shows the sum of all logs forwarding bytes over all hours in the current month for all organizations (data available as of April 1, 2023) #[serde(rename = "forwarding_events_bytes_agg_sum")] pub forwarding_events_bytes_agg_sum: Option, - /// Shows the 99th percentile of all GCP hosts over all hours in the current months for all organizations. + /// Shows the 99th percentile of all GCP hosts over all hours in the current month for all organizations. #[serde(rename = "gcp_host_top99p_sum")] pub gcp_host_top99p_sum: Option, - /// Shows the 99th percentile of all Heroku dynos over all hours in the current months for all organizations. + /// Shows the 99th percentile of all Heroku dynos over all hours in the current month for all organizations. #[serde(rename = "heroku_host_top99p_sum")] pub heroku_host_top99p_sum: Option, - /// Shows sum of the the high-water marks of incident management monthly active users in the current months for all organizations. + /// Shows sum of the the high-water marks of incident management monthly active users in the current month for all organizations. #[serde(rename = "incident_management_monthly_active_users_hwm_sum")] pub incident_management_monthly_active_users_hwm_sum: Option, - /// Shows the sum of all log events indexed over all hours in the current months for all organizations. + /// Shows the sum of all log events indexed over all hours in the current month for all organizations. #[serde(rename = "indexed_events_count_agg_sum")] pub indexed_events_count_agg_sum: Option, - /// Shows the 99th percentile of all distinct infrastructure hosts over all hours in the current months for all organizations. + /// Shows the 99th percentile of all distinct infrastructure hosts over all hours in the current month for all organizations. #[serde(rename = "infra_host_top99p_sum")] pub infra_host_top99p_sum: Option, - /// Shows the sum of all log bytes ingested over all hours in the current months for all organizations. + /// Shows the sum of all log bytes ingested over all hours in the current month for all organizations. #[serde(rename = "ingested_events_bytes_agg_sum")] pub ingested_events_bytes_agg_sum: Option, - /// Shows the sum of all IoT devices over all hours in the current months for all organizations. + /// Shows the sum of all IoT devices over all hours in the current month for all organizations. #[serde(rename = "iot_device_agg_sum")] pub iot_device_agg_sum: Option, - /// Shows the 99th percentile of all IoT devices over all hours in the current months of all organizations. + /// Shows the 99th percentile of all IoT devices over all hours in the current month of all organizations. #[serde(rename = "iot_device_top99p_sum")] pub iot_device_top99p_sum: Option, - /// Shows the the most recent hour in the current months for all organizations for which all usages were calculated. + /// Shows the the most recent hour in the current month for all organizations for which all usages were calculated. #[serde(rename = "last_updated")] pub last_updated: Option, - /// Shows the sum of all live logs indexed over all hours in the current months for all organizations (data available as of December 1, 2020). + /// Shows the sum of all live logs indexed over all hours in the current month for all organizations (data available as of December 1, 2020). #[serde(rename = "live_indexed_events_agg_sum")] pub live_indexed_events_agg_sum: Option, - /// Shows the sum of all live logs bytes ingested over all hours in the current months for all organizations (data available as of December 1, 2020). + /// Shows the sum of all live logs bytes ingested over all hours in the current month for all organizations (data available as of December 1, 2020). #[serde(rename = "live_ingested_bytes_agg_sum")] pub live_ingested_bytes_agg_sum: Option, /// Object containing logs usage data broken down by retention period. #[serde(rename = "logs_by_retention")] pub logs_by_retention: Option, - /// Shows the sum of all mobile lite sessions over all hours in the current months for all organizations. + /// Shows the sum of all mobile lite sessions over all hours in the current month for all organizations. #[serde(rename = "mobile_rum_lite_session_count_agg_sum")] pub mobile_rum_lite_session_count_agg_sum: Option, - /// Shows the sum of all mobile RUM Sessions over all hours in the current months for all organizations. + /// Shows the sum of all mobile RUM Sessions over all hours in the current month for all organizations. #[serde(rename = "mobile_rum_session_count_agg_sum")] pub mobile_rum_session_count_agg_sum: Option, - /// Shows the sum of all mobile RUM Sessions on Android over all hours in the current months for all organizations. + /// Shows the sum of all mobile RUM Sessions on Android over all hours in the current month for all organizations. #[serde(rename = "mobile_rum_session_count_android_agg_sum")] pub mobile_rum_session_count_android_agg_sum: Option, - /// Shows the sum of all mobile RUM Sessions on Flutter over all hours in the current months for all organizations. + /// Shows the sum of all mobile RUM Sessions on Flutter over all hours in the current month for all organizations. #[serde(rename = "mobile_rum_session_count_flutter_agg_sum")] pub mobile_rum_session_count_flutter_agg_sum: Option, - /// Shows the sum of all mobile RUM Sessions on iOS over all hours in the current months for all organizations. + /// Shows the sum of all mobile RUM Sessions on iOS over all hours in the current month for all organizations. #[serde(rename = "mobile_rum_session_count_ios_agg_sum")] pub mobile_rum_session_count_ios_agg_sum: Option, - /// Shows the sum of all mobile RUM Sessions on React Native over all hours in the current months for all organizations. + /// Shows the sum of all mobile RUM Sessions on React Native over all hours in the current month for all organizations. #[serde(rename = "mobile_rum_session_count_reactnative_agg_sum")] pub mobile_rum_session_count_reactnative_agg_sum: Option, - /// Shows the sum of all mobile RUM Sessions on Roku over all hours in the current months for all organizations. + /// Shows the sum of all mobile RUM Sessions on Roku over all hours in the current month for all organizations. #[serde(rename = "mobile_rum_session_count_roku_agg_sum")] pub mobile_rum_session_count_roku_agg_sum: Option, - /// Shows the sum of all mobile RUM units over all hours in the current months for all organizations. + /// Shows the sum of all mobile RUM units over all hours in the current month for all organizations. #[serde(rename = "mobile_rum_units_agg_sum")] pub mobile_rum_units_agg_sum: Option, - /// Shows the sum of all Network Device Monitoring NetFlow events over all hours in the current months for all organizations. + /// Shows the sum of all Network Device Monitoring NetFlow events over all hours in the current month for all organizations. #[serde(rename = "ndm_netflow_events_agg_sum")] pub ndm_netflow_events_agg_sum: Option, - /// Shows the sum of all Network flows indexed over all hours in the current months for all organizations. + /// Shows the sum of all Network flows indexed over all hours in the current month for all organizations. #[serde(rename = "netflow_indexed_events_count_agg_sum")] pub netflow_indexed_events_count_agg_sum: Option, - /// Shows the 99th percentile of all distinct Networks hosts over all hours in the current months for all organizations. + /// Shows the 99th percentile of all distinct Networks hosts over all hours in the current month for all organizations. #[serde(rename = "npm_host_top99p_sum")] pub npm_host_top99p_sum: Option, - /// Sum of all observability pipelines bytes processed over all hours in the current months for all organizations. + /// Sum of all observability pipelines bytes processed over all hours in the current month for all organizations. #[serde(rename = "observability_pipelines_bytes_processed_agg_sum")] pub observability_pipelines_bytes_processed_agg_sum: Option, - /// Sum of all online archived events over all hours in the current months for all organizations. + /// Sum of all online archived events over all hours in the current month for all organizations. #[serde(rename = "online_archive_events_count_agg_sum")] pub online_archive_events_count_agg_sum: Option, - /// Shows the 99th percentile of APM hosts reported by the Datadog exporter for the OpenTelemetry Collector over all hours in the current months for all organizations. + /// Shows the 99th percentile of APM hosts reported by the Datadog exporter for the OpenTelemetry Collector over all hours in the current month for all organizations. #[serde(rename = "opentelemetry_apm_host_top99p_sum")] pub opentelemetry_apm_host_top99p_sum: Option, - /// Shows the 99th percentile of all hosts reported by the Datadog exporter for the OpenTelemetry Collector over all hours in the current months for all organizations. + /// Shows the 99th percentile of all hosts reported by the Datadog exporter for the OpenTelemetry Collector over all hours in the current month for all organizations. #[serde(rename = "opentelemetry_host_top99p_sum")] pub opentelemetry_host_top99p_sum: Option, - /// Shows the 99th percentile of all profiled Azure app services over all hours in the current months for all organizations. + /// Shows the 99th percentile of all profiled Azure app services over all hours in the current month for all organizations. #[serde(rename = "profiling_aas_count_top99p_sum")] pub profiling_aas_count_top99p_sum: Option, - /// Shows the average number of profiled containers over all hours in the current months for all organizations. + /// Shows the average number of profiled containers over all hours in the current month for all organizations. #[serde(rename = "profiling_container_agent_count_avg")] pub profiling_container_agent_count_avg: Option, - /// Shows the 99th percentile of all profiled hosts over all hours in the current months for all organizations. + /// Shows the 99th percentile of all profiled hosts over all hours in the current month for all organizations. #[serde(rename = "profiling_host_count_top99p_sum")] pub profiling_host_count_top99p_sum: Option, - /// Shows the sum of all rehydrated logs indexed over all hours in the current months for all organizations (data available as of December 1, 2020). + /// Shows the sum of all rehydrated logs indexed over all hours in the current month for all organizations (data available as of December 1, 2020). #[serde(rename = "rehydrated_indexed_events_agg_sum")] pub rehydrated_indexed_events_agg_sum: Option, - /// Shows the sum of all rehydrated logs bytes ingested over all hours in the current months for all organizations (data available as of December 1, 2020). + /// Shows the sum of all rehydrated logs bytes ingested over all hours in the current month for all organizations (data available as of December 1, 2020). #[serde(rename = "rehydrated_ingested_bytes_agg_sum")] pub rehydrated_ingested_bytes_agg_sum: Option, /// Shows the sum of all mobile sessions and all browser lite and legacy sessions over all hours in the current month for all organizations. #[serde(rename = "rum_browser_and_mobile_session_count")] pub rum_browser_and_mobile_session_count: Option, - /// Shows the sum of all browser RUM Lite Sessions over all hours in the current months for all organizations. + /// Shows the sum of all browser RUM Lite Sessions over all hours in the current month for all organizations. #[serde(rename = "rum_session_count_agg_sum")] pub rum_session_count_agg_sum: Option, - /// Shows the sum of RUM Sessions (browser and mobile) over all hours in the current months for all organizations. + /// Shows the sum of RUM Sessions (browser and mobile) over all hours in the current month for all organizations. #[serde(rename = "rum_total_session_count_agg_sum")] pub rum_total_session_count_agg_sum: Option, - /// Shows the sum of all browser and mobile RUM units over all hours in the current months for all organizations. + /// Shows the sum of all browser and mobile RUM units over all hours in the current month for all organizations. #[serde(rename = "rum_units_agg_sum")] pub rum_units_agg_sum: Option, - /// Sum of all APM bytes scanned with sensitive data scanner in the current months for all organizations. + /// Sum of all APM bytes scanned with sensitive data scanner in the current month for all organizations. #[serde(rename = "sds_apm_scanned_bytes_sum")] pub sds_apm_scanned_bytes_sum: Option, - /// Sum of all event stream events bytes scanned with sensitive data scanner in the current months for all organizations. + /// Sum of all event stream events bytes scanned with sensitive data scanner in the current month for all organizations. #[serde(rename = "sds_events_scanned_bytes_sum")] pub sds_events_scanned_bytes_sum: Option, /// Shows the sum of all bytes scanned of logs usage by the Sensitive Data Scanner over all hours in the current month for all organizations. #[serde(rename = "sds_logs_scanned_bytes_sum")] pub sds_logs_scanned_bytes_sum: Option, - /// Sum of all RUM bytes scanned with sensitive data scanner in the current months for all organizations. + /// Sum of all RUM bytes scanned with sensitive data scanner in the current month for all organizations. #[serde(rename = "sds_rum_scanned_bytes_sum")] pub sds_rum_scanned_bytes_sum: Option, /// Shows the sum of all bytes scanned across all usage types by the Sensitive Data Scanner over all hours in the current month for all organizations. #[serde(rename = "sds_total_scanned_bytes_sum")] pub sds_total_scanned_bytes_sum: Option, - /// Sum of the average number of Serverless Apps for Azure in the current months for all organizations. + /// Sum of the average number of Serverless Apps for Azure in the current month for all organizations. #[serde(rename = "serverless_apps_azure_count_avg_sum")] pub serverless_apps_azure_count_avg_sum: Option, - /// Sum of the average number of Serverless Apps for Google Cloud in the current months for all organizations. + /// Sum of the average number of Serverless Apps for Google Cloud in the current month for all organizations. #[serde(rename = "serverless_apps_google_count_avg_sum")] pub serverless_apps_google_count_avg_sum: Option, - /// Sum of the average number of Serverless Apps for Azure and Google Cloud in the current months for all organizations. + /// Sum of the average number of Serverless Apps for Azure and Google Cloud in the current month for all organizations. #[serde(rename = "serverless_apps_total_count_avg_sum")] pub serverless_apps_total_count_avg_sum: Option, - /// Shows the first date of usage in the current months for all organizations. + /// Shows the first date of usage in the current month for all organizations. #[serde(rename = "start_date")] pub start_date: Option, - /// Shows the sum of all Synthetic browser tests over all hours in the current months for all organizations. + /// Shows the sum of all Synthetic browser tests over all hours in the current month for all organizations. #[serde(rename = "synthetics_browser_check_calls_count_agg_sum")] pub synthetics_browser_check_calls_count_agg_sum: Option, - /// Shows the sum of all Synthetic API tests over all hours in the current months for all organizations. + /// Shows the sum of all Synthetic API tests over all hours in the current month for all organizations. #[serde(rename = "synthetics_check_calls_count_agg_sum")] pub synthetics_check_calls_count_agg_sum: Option, - /// Shows the sum of Synthetic mobile application tests over all hours in the current months for all organizations. + /// Shows the sum of Synthetic mobile application tests over all hours in the current month for all organizations. #[serde(rename = "synthetics_mobile_test_runs_agg_sum")] pub synthetics_mobile_test_runs_agg_sum: Option, /// Shows the sum of the high-water marks of used synthetics parallel testing slots over all hours in the current month for all organizations. #[serde(rename = "synthetics_parallel_testing_max_slots_hwm_sum")] pub synthetics_parallel_testing_max_slots_hwm_sum: Option, - /// Shows the sum of all Indexed Spans indexed over all hours in the current months for all organizations. + /// Shows the sum of all Indexed Spans indexed over all hours in the current month for all organizations. #[serde(rename = "trace_search_indexed_events_count_agg_sum")] pub trace_search_indexed_events_count_agg_sum: Option, - /// Shows the sum of all ingested APM span bytes over all hours in the current months for all organizations. + /// Shows the sum of all ingested APM span bytes over all hours in the current month for all organizations. #[serde(rename = "twol_ingested_events_bytes_agg_sum")] pub twol_ingested_events_bytes_agg_sum: Option, - /// Shows the 99th percentile of all Universal Service Monitoring hosts over all hours in the current months for all organizations. + /// Shows the 99th percentile of all Universal Service Monitoring hosts over all hours in the current month for all organizations. #[serde(rename = "universal_service_monitoring_host_top99p_sum")] pub universal_service_monitoring_host_top99p_sum: Option, /// An array of objects regarding hourly usage. #[serde(rename = "usage")] pub usage: Option>, - /// Shows the 99th percentile of all vSphere hosts over all hours in the current months for all organizations. + /// Shows the 99th percentile of all vSphere hosts over all hours in the current month for all organizations. #[serde(rename = "vsphere_host_top99p_sum")] pub vsphere_host_top99p_sum: Option, - /// Shows the 99th percentile of all Application Vulnerability Management hosts over all hours in the current months for all organizations. + /// Shows the 99th percentile of all Application Vulnerability Management hosts over all hours in the current month for all organizations. #[serde(rename = "vuln_management_host_count_top99p_sum")] pub vuln_management_host_count_top99p_sum: Option, - /// Sum of all workflows executed over all hours in the current months for all organizations. + /// Sum of all workflows executed over all hours in the current month for all organizations. #[serde(rename = "workflow_executions_usage_agg_sum")] pub workflow_executions_usage_agg_sum: Option, #[serde(skip)] @@ -362,9 +389,11 @@ impl UsageSummaryResponse { UsageSummaryResponse { agent_host_top99p_sum: None, apm_azure_app_service_host_top99p_sum: None, + apm_devsecops_host_top99p_sum: None, apm_fargate_count_avg_sum: None, apm_host_top99p_sum: None, appsec_fargate_count_avg_sum: None, + asm_serverless_agg_sum: None, audit_logs_lines_indexed_agg_sum: None, audit_trail_enabled_hwm_sum: None, avg_profiled_fargate_tasks_sum: None, @@ -384,6 +413,7 @@ impl UsageSummaryResponse { ci_visibility_test_committers_hwm_sum: None, cloud_cost_management_aws_host_count_avg_sum: None, cloud_cost_management_azure_host_count_avg_sum: None, + cloud_cost_management_gcp_host_count_avg_sum: None, cloud_cost_management_host_count_avg_sum: None, cloud_siem_events_agg_sum: None, container_avg_sum: None, @@ -414,8 +444,14 @@ impl UsageSummaryResponse { dbm_host_top99p_sum: None, dbm_queries_avg_sum: None, end_date: None, + error_tracking_events_agg_sum: None, fargate_tasks_count_avg_sum: None, fargate_tasks_count_hwm_sum: None, + flex_logs_compute_large_avg_sum: None, + flex_logs_compute_medium_avg_sum: None, + flex_logs_compute_small_avg_sum: None, + flex_logs_compute_xsmall_avg_sum: None, + flex_stored_logs_avg_sum: None, forwarding_events_bytes_agg_sum: None, gcp_host_top99p_sum: None, heroku_host_top99p_sum: None, @@ -489,6 +525,12 @@ impl UsageSummaryResponse { self } + #[allow(deprecated)] + pub fn apm_devsecops_host_top99p_sum(mut self, value: i64) -> Self { + self.apm_devsecops_host_top99p_sum = Some(value); + self + } + #[allow(deprecated)] pub fn apm_fargate_count_avg_sum(mut self, value: i64) -> Self { self.apm_fargate_count_avg_sum = Some(value); @@ -507,6 +549,12 @@ impl UsageSummaryResponse { self } + #[allow(deprecated)] + pub fn asm_serverless_agg_sum(mut self, value: i64) -> Self { + self.asm_serverless_agg_sum = Some(value); + self + } + #[allow(deprecated)] pub fn audit_logs_lines_indexed_agg_sum(mut self, value: i64) -> Self { self.audit_logs_lines_indexed_agg_sum = Some(value); @@ -621,6 +669,12 @@ impl UsageSummaryResponse { self } + #[allow(deprecated)] + pub fn cloud_cost_management_gcp_host_count_avg_sum(mut self, value: i64) -> Self { + self.cloud_cost_management_gcp_host_count_avg_sum = Some(value); + self + } + #[allow(deprecated)] pub fn cloud_cost_management_host_count_avg_sum(mut self, value: i64) -> Self { self.cloud_cost_management_host_count_avg_sum = Some(value); @@ -801,6 +855,12 @@ impl UsageSummaryResponse { self } + #[allow(deprecated)] + pub fn error_tracking_events_agg_sum(mut self, value: i64) -> Self { + self.error_tracking_events_agg_sum = Some(value); + self + } + #[allow(deprecated)] pub fn fargate_tasks_count_avg_sum(mut self, value: i64) -> Self { self.fargate_tasks_count_avg_sum = Some(value); @@ -813,6 +873,36 @@ impl UsageSummaryResponse { self } + #[allow(deprecated)] + pub fn flex_logs_compute_large_avg_sum(mut self, value: i64) -> Self { + self.flex_logs_compute_large_avg_sum = Some(value); + self + } + + #[allow(deprecated)] + pub fn flex_logs_compute_medium_avg_sum(mut self, value: i64) -> Self { + self.flex_logs_compute_medium_avg_sum = Some(value); + self + } + + #[allow(deprecated)] + pub fn flex_logs_compute_small_avg_sum(mut self, value: i64) -> Self { + self.flex_logs_compute_small_avg_sum = Some(value); + self + } + + #[allow(deprecated)] + pub fn flex_logs_compute_xsmall_avg_sum(mut self, value: i64) -> Self { + self.flex_logs_compute_xsmall_avg_sum = Some(value); + self + } + + #[allow(deprecated)] + pub fn flex_stored_logs_avg_sum(mut self, value: i64) -> Self { + self.flex_stored_logs_avg_sum = Some(value); + self + } + #[allow(deprecated)] pub fn forwarding_events_bytes_agg_sum(mut self, value: i64) -> Self { self.forwarding_events_bytes_agg_sum = Some(value); @@ -1181,9 +1271,11 @@ impl<'de> Deserialize<'de> for UsageSummaryResponse { { let mut agent_host_top99p_sum: Option = None; let mut apm_azure_app_service_host_top99p_sum: Option = None; + let mut apm_devsecops_host_top99p_sum: Option = None; let mut apm_fargate_count_avg_sum: Option = None; let mut apm_host_top99p_sum: Option = None; let mut appsec_fargate_count_avg_sum: Option = None; + let mut asm_serverless_agg_sum: Option = None; let mut audit_logs_lines_indexed_agg_sum: Option = None; let mut audit_trail_enabled_hwm_sum: Option = None; let mut avg_profiled_fargate_tasks_sum: Option = None; @@ -1203,6 +1295,7 @@ impl<'de> Deserialize<'de> for UsageSummaryResponse { let mut ci_visibility_test_committers_hwm_sum: Option = None; let mut cloud_cost_management_aws_host_count_avg_sum: Option = None; let mut cloud_cost_management_azure_host_count_avg_sum: Option = None; + let mut cloud_cost_management_gcp_host_count_avg_sum: Option = None; let mut cloud_cost_management_host_count_avg_sum: Option = None; let mut cloud_siem_events_agg_sum: Option = None; let mut container_avg_sum: Option = None; @@ -1233,8 +1326,14 @@ impl<'de> Deserialize<'de> for UsageSummaryResponse { let mut dbm_host_top99p_sum: Option = None; let mut dbm_queries_avg_sum: Option = None; let mut end_date: Option = None; + let mut error_tracking_events_agg_sum: Option = None; let mut fargate_tasks_count_avg_sum: Option = None; let mut fargate_tasks_count_hwm_sum: Option = None; + let mut flex_logs_compute_large_avg_sum: Option = None; + let mut flex_logs_compute_medium_avg_sum: Option = None; + let mut flex_logs_compute_small_avg_sum: Option = None; + let mut flex_logs_compute_xsmall_avg_sum: Option = None; + let mut flex_stored_logs_avg_sum: Option = None; let mut forwarding_events_bytes_agg_sum: Option = None; let mut gcp_host_top99p_sum: Option = None; let mut heroku_host_top99p_sum: Option = None; @@ -1310,6 +1409,13 @@ impl<'de> Deserialize<'de> for UsageSummaryResponse { apm_azure_app_service_host_top99p_sum = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "apm_devsecops_host_top99p_sum" => { + if v.is_null() { + continue; + } + apm_devsecops_host_top99p_sum = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "apm_fargate_count_avg_sum" => { if v.is_null() { continue; @@ -1331,6 +1437,13 @@ impl<'de> Deserialize<'de> for UsageSummaryResponse { appsec_fargate_count_avg_sum = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "asm_serverless_agg_sum" => { + if v.is_null() { + continue; + } + asm_serverless_agg_sum = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "audit_logs_lines_indexed_agg_sum" => { if v.is_null() { continue; @@ -1464,6 +1577,13 @@ impl<'de> Deserialize<'de> for UsageSummaryResponse { cloud_cost_management_azure_host_count_avg_sum = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "cloud_cost_management_gcp_host_count_avg_sum" => { + if v.is_null() { + continue; + } + cloud_cost_management_gcp_host_count_avg_sum = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "cloud_cost_management_host_count_avg_sum" => { if v.is_null() { continue; @@ -1673,6 +1793,13 @@ impl<'de> Deserialize<'de> for UsageSummaryResponse { } end_date = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "error_tracking_events_agg_sum" => { + if v.is_null() { + continue; + } + error_tracking_events_agg_sum = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "fargate_tasks_count_avg_sum" => { if v.is_null() { continue; @@ -1687,6 +1814,41 @@ impl<'de> Deserialize<'de> for UsageSummaryResponse { fargate_tasks_count_hwm_sum = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "flex_logs_compute_large_avg_sum" => { + if v.is_null() { + continue; + } + flex_logs_compute_large_avg_sum = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "flex_logs_compute_medium_avg_sum" => { + if v.is_null() { + continue; + } + flex_logs_compute_medium_avg_sum = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "flex_logs_compute_small_avg_sum" => { + if v.is_null() { + continue; + } + flex_logs_compute_small_avg_sum = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "flex_logs_compute_xsmall_avg_sum" => { + if v.is_null() { + continue; + } + flex_logs_compute_xsmall_avg_sum = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "flex_stored_logs_avg_sum" => { + if v.is_null() { + continue; + } + flex_stored_logs_avg_sum = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "forwarding_events_bytes_agg_sum" => { if v.is_null() { continue; @@ -2092,9 +2254,11 @@ impl<'de> Deserialize<'de> for UsageSummaryResponse { let content = UsageSummaryResponse { agent_host_top99p_sum, apm_azure_app_service_host_top99p_sum, + apm_devsecops_host_top99p_sum, apm_fargate_count_avg_sum, apm_host_top99p_sum, appsec_fargate_count_avg_sum, + asm_serverless_agg_sum, audit_logs_lines_indexed_agg_sum, audit_trail_enabled_hwm_sum, avg_profiled_fargate_tasks_sum, @@ -2114,6 +2278,7 @@ impl<'de> Deserialize<'de> for UsageSummaryResponse { ci_visibility_test_committers_hwm_sum, cloud_cost_management_aws_host_count_avg_sum, cloud_cost_management_azure_host_count_avg_sum, + cloud_cost_management_gcp_host_count_avg_sum, cloud_cost_management_host_count_avg_sum, cloud_siem_events_agg_sum, container_avg_sum, @@ -2144,8 +2309,14 @@ impl<'de> Deserialize<'de> for UsageSummaryResponse { dbm_host_top99p_sum, dbm_queries_avg_sum, end_date, + error_tracking_events_agg_sum, fargate_tasks_count_avg_sum, fargate_tasks_count_hwm_sum, + flex_logs_compute_large_avg_sum, + flex_logs_compute_medium_avg_sum, + flex_logs_compute_small_avg_sum, + flex_logs_compute_xsmall_avg_sum, + flex_stored_logs_avg_sum, forwarding_events_bytes_agg_sum, gcp_host_top99p_sum, heroku_host_top99p_sum, diff --git a/src/datadogV2/api/api_api_management.rs b/src/datadogV2/api/api_api_management.rs new file mode 100644 index 000000000..68c1207c9 --- /dev/null +++ b/src/datadogV2/api/api_api_management.rs @@ -0,0 +1,641 @@ +// 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 2019-Present Datadog, Inc. +use crate::datadog; +use log::warn; +use reqwest::header::{HeaderMap, HeaderValue}; +use serde::{Deserialize, Serialize}; + +/// CreateOpenAPIOptionalParams is a struct for passing parameters to the method [`APIManagementAPI::create_open_api`] +#[non_exhaustive] +#[derive(Clone, Default, Debug)] +pub struct CreateOpenAPIOptionalParams { + /// Binary `OpenAPI` spec file + pub openapi_spec_file: Option>, +} + +impl CreateOpenAPIOptionalParams { + /// Binary `OpenAPI` spec file + pub fn openapi_spec_file(mut self, value: Vec) -> Self { + self.openapi_spec_file = Some(value); + self + } +} + +/// UpdateOpenAPIOptionalParams is a struct for passing parameters to the method [`APIManagementAPI::update_open_api`] +#[non_exhaustive] +#[derive(Clone, Default, Debug)] +pub struct UpdateOpenAPIOptionalParams { + /// Binary `OpenAPI` spec file + pub openapi_spec_file: Option>, +} + +impl UpdateOpenAPIOptionalParams { + /// Binary `OpenAPI` spec file + pub fn openapi_spec_file(mut self, value: Vec) -> Self { + self.openapi_spec_file = Some(value); + self + } +} + +/// CreateOpenAPIError is a struct for typed errors of method [`APIManagementAPI::create_open_api`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum CreateOpenAPIError { + Status400(Option), + Status403(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + +/// DeleteOpenAPIError is a struct for typed errors of method [`APIManagementAPI::delete_open_api`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum DeleteOpenAPIError { + Status400(Option), + Status403(Option), + Status404(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + +/// GetOpenAPIError is a struct for typed errors of method [`APIManagementAPI::get_open_api`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum GetOpenAPIError { + Status400(Option), + Status403(Option), + Status404(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + +/// UpdateOpenAPIError is a struct for typed errors of method [`APIManagementAPI::update_open_api`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum UpdateOpenAPIError { + Status400(Option), + Status403(Option), + Status404(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + +#[derive(Debug, Clone)] +pub struct APIManagementAPI { + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, +} + +impl Default for APIManagementAPI { + fn default() -> Self { + Self::with_config(datadog::Configuration::default()) + } +} + +impl APIManagementAPI { + pub fn new() -> Self { + Self::default() + } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } + } + + /// Create a new API from the [OpenAPI]() specification given. + /// It supports version `2.0`, `3.0` and `3.1` of the specification. A specific extension section, `x-datadog`, + /// let you specify the `teamHandle` for your team responsible for the API in Datadog. + /// It returns the created API ID. + /// + pub async fn create_open_api( + &self, + params: CreateOpenAPIOptionalParams, + ) -> Result> + { + match self.create_open_api_with_http_info(params).await { + Ok(response_content) => { + if let Some(e) = response_content.entity { + Ok(e) + } else { + Err(datadog::Error::Serde(serde::de::Error::custom( + "response content was None", + ))) + } + } + Err(err) => Err(err), + } + } + + /// Create a new API from the [OpenAPI]() specification given. + /// It supports version `2.0`, `3.0` and `3.1` of the specification. A specific extension section, `x-datadog`, + /// let you specify the `teamHandle` for your team responsible for the API in Datadog. + /// It returns the created API ID. + /// + pub async fn create_open_api_with_http_info( + &self, + params: CreateOpenAPIOptionalParams, + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { + let local_configuration = &self.config; + let operation_id = "v2.create_open_api"; + if local_configuration.is_unstable_operation_enabled(operation_id) { + warn!("Using unstable operation {operation_id}"); + } else { + let local_error = datadog::UnstableOperationDisabledError { + msg: "Operation 'v2.create_open_api' is not enabled".to_string(), + }; + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); + } + + // unbox and build optional parameters + let openapi_spec_file = params.openapi_spec_file; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/apicatalog/openapi", + local_configuration.get_operation_host(operation_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Content-Type", + HeaderValue::from_static("multipart/form-data"), + ); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + // build form parameters + if let Some(openapi_spec_file) = openapi_spec_file { + let mut local_form = form_data_builder::FormData::new(Vec::new()); + let cursor = std::io::Cursor::new(openapi_spec_file); + if let Err(e) = local_form.write_file( + "openapi_spec_file", + cursor, + Some("openapi_spec_file".as_ref()), + "application/octet-stream", + ) { + return Err(crate::datadog::Error::Io(e)); + }; + headers.insert( + "Content-Type", + local_form.content_type_header().parse().unwrap(), + ); + let form_result = local_form.finish(); + match form_result { + Ok(form) => local_req_builder = local_req_builder.body(form), + Err(e) => return Err(crate::datadog::Error::Io(e)), + }; + }; + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + match serde_json::from_str::( + &local_content, + ) { + Ok(e) => { + return Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: Some(e), + }) + } + Err(e) => return Err(datadog::Error::Serde(e)), + }; + } else { + let local_entity: Option = + serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// Delete a specific API by ID. + pub async fn delete_open_api( + &self, + id: uuid::Uuid, + ) -> Result<(), datadog::Error> { + match self.delete_open_api_with_http_info(id).await { + Ok(_) => Ok(()), + Err(err) => Err(err), + } + } + + /// Delete a specific API by ID. + pub async fn delete_open_api_with_http_info( + &self, + id: uuid::Uuid, + ) -> Result, datadog::Error> { + let local_configuration = &self.config; + let operation_id = "v2.delete_open_api"; + if local_configuration.is_unstable_operation_enabled(operation_id) { + warn!("Using unstable operation {operation_id}"); + } else { + let local_error = datadog::UnstableOperationDisabledError { + msg: "Operation 'v2.delete_open_api' is not enabled".to_string(), + }; + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); + } + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/apicatalog/api/{id}", + local_configuration.get_operation_host(operation_id), + id = datadog::urlencode(id.to_string()) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: None, + }) + } else { + let local_entity: Option = + serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// Retrieve information about a specific API in [OpenAPI]() format file. + pub async fn get_open_api( + &self, + id: uuid::Uuid, + ) -> Result, datadog::Error> { + match self.get_open_api_with_http_info(id).await { + Ok(response_content) => { + if let Some(e) = response_content.entity { + Ok(e) + } else { + Err(datadog::Error::Serde(serde::de::Error::custom( + "response content was None", + ))) + } + } + Err(err) => Err(err), + } + } + + /// Retrieve information about a specific API in [OpenAPI]() format file. + pub async fn get_open_api_with_http_info( + &self, + id: uuid::Uuid, + ) -> Result>, datadog::Error> { + let local_configuration = &self.config; + let operation_id = "v2.get_open_api"; + if local_configuration.is_unstable_operation_enabled(operation_id) { + warn!("Using unstable operation {operation_id}"); + } else { + let local_error = datadog::UnstableOperationDisabledError { + msg: "Operation 'v2.get_open_api' is not enabled".to_string(), + }; + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); + } + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/apicatalog/api/{id}/openapi", + local_configuration.get_operation_host(operation_id), + id = datadog::urlencode(id.to_string()) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + Ok(datadog::ResponseContent { + status: local_status, + content: local_content.clone(), + entity: Some(local_content.into_bytes()), + }) + } else { + let local_entity: Option = serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// Update information about a specific API. The given content will replace all API content of the given ID. + /// The ID is returned by the create API, or can be found in the URL in the API catalog UI. + /// + pub async fn update_open_api( + &self, + id: uuid::Uuid, + params: UpdateOpenAPIOptionalParams, + ) -> Result> + { + match self.update_open_api_with_http_info(id, params).await { + Ok(response_content) => { + if let Some(e) = response_content.entity { + Ok(e) + } else { + Err(datadog::Error::Serde(serde::de::Error::custom( + "response content was None", + ))) + } + } + Err(err) => Err(err), + } + } + + /// Update information about a specific API. The given content will replace all API content of the given ID. + /// The ID is returned by the create API, or can be found in the URL in the API catalog UI. + /// + pub async fn update_open_api_with_http_info( + &self, + id: uuid::Uuid, + params: UpdateOpenAPIOptionalParams, + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { + let local_configuration = &self.config; + let operation_id = "v2.update_open_api"; + if local_configuration.is_unstable_operation_enabled(operation_id) { + warn!("Using unstable operation {operation_id}"); + } else { + let local_error = datadog::UnstableOperationDisabledError { + msg: "Operation 'v2.update_open_api' is not enabled".to_string(), + }; + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); + } + + // unbox and build optional parameters + let openapi_spec_file = params.openapi_spec_file; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/apicatalog/api/{id}/openapi", + local_configuration.get_operation_host(operation_id), + id = datadog::urlencode(id.to_string()) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Content-Type", + HeaderValue::from_static("multipart/form-data"), + ); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + // build form parameters + if let Some(openapi_spec_file) = openapi_spec_file { + let mut local_form = form_data_builder::FormData::new(Vec::new()); + let cursor = std::io::Cursor::new(openapi_spec_file); + if let Err(e) = local_form.write_file( + "openapi_spec_file", + cursor, + Some("openapi_spec_file".as_ref()), + "application/octet-stream", + ) { + return Err(crate::datadog::Error::Io(e)); + }; + headers.insert( + "Content-Type", + local_form.content_type_header().parse().unwrap(), + ); + let form_result = local_form.finish(); + match form_result { + Ok(form) => local_req_builder = local_req_builder.body(form), + Err(e) => return Err(crate::datadog::Error::Io(e)), + }; + }; + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + match serde_json::from_str::( + &local_content, + ) { + Ok(e) => { + return Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: Some(e), + }) + } + Err(e) => return Err(datadog::Error::Serde(e)), + }; + } else { + let local_entity: Option = + serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) + } + } +} diff --git a/src/datadogV2/api/api_apm_retention_filters.rs b/src/datadogV2/api/api_apm_retention_filters.rs index 7697270d3..3dee028ac 100644 --- a/src/datadogV2/api/api_apm_retention_filters.rs +++ b/src/datadogV2/api/api_apm_retention_filters.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// CreateApmRetentionFilterError is a struct for typed errors of method [`APMRetentionFiltersAPI::create_apm_retention_filter`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -68,14 +73,13 @@ pub enum UpdateApmRetentionFilterError { #[derive(Debug, Clone)] pub struct APMRetentionFiltersAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for APMRetentionFiltersAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -83,8 +87,52 @@ impl APMRetentionFiltersAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create a retention filter to index spans in your organization. @@ -94,14 +142,14 @@ impl APMRetentionFiltersAPI { body: crate::datadogV2::model::RetentionFilterCreateRequest, ) -> Result< crate::datadogV2::model::RetentionFilterResponse, - Error, + datadog::Error, > { match self.create_apm_retention_filter_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -116,13 +164,13 @@ impl APMRetentionFiltersAPI { &self, body: crate::datadogV2::model::RetentionFilterCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_apm_retention_filter"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/apm/config/retention-filters", @@ -131,27 +179,85 @@ impl APMRetentionFiltersAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -163,23 +269,23 @@ impl APMRetentionFiltersAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -187,7 +293,7 @@ impl APMRetentionFiltersAPI { pub async fn delete_apm_retention_filter( &self, filter_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .delete_apm_retention_filter_with_http_info(filter_id) .await @@ -201,34 +307,53 @@ impl APMRetentionFiltersAPI { pub async fn delete_apm_retention_filter_with_http_info( &self, filter_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_apm_retention_filter"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/apm/config/retention-filters/{filter_id}", local_configuration.get_operation_host(operation_id), - filter_id = urlencode(filter_id) + filter_id = datadog::urlencode(filter_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -236,7 +361,7 @@ impl APMRetentionFiltersAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -244,12 +369,12 @@ impl APMRetentionFiltersAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -257,8 +382,10 @@ impl APMRetentionFiltersAPI { pub async fn get_apm_retention_filter( &self, filter_id: String, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::RetentionFilterResponse, + datadog::Error, + > { match self .get_apm_retention_filter_with_http_info(filter_id) .await @@ -267,7 +394,7 @@ impl APMRetentionFiltersAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -281,36 +408,55 @@ impl APMRetentionFiltersAPI { &self, filter_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_apm_retention_filter"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/apm/config/retention-filters/{filter_id}", local_configuration.get_operation_host(operation_id), - filter_id = urlencode(filter_id) + filter_id = datadog::urlencode(filter_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -322,23 +468,23 @@ impl APMRetentionFiltersAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -347,14 +493,14 @@ impl APMRetentionFiltersAPI { &self, ) -> Result< crate::datadogV2::model::RetentionFiltersResponse, - Error, + datadog::Error, > { match self.list_apm_retention_filters_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -367,13 +513,13 @@ impl APMRetentionFiltersAPI { pub async fn list_apm_retention_filters_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_apm_retention_filters"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/apm/config/retention-filters", @@ -382,20 +528,39 @@ impl APMRetentionFiltersAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -407,23 +572,23 @@ impl APMRetentionFiltersAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -431,7 +596,7 @@ impl APMRetentionFiltersAPI { pub async fn reorder_apm_retention_filters( &self, body: crate::datadogV2::model::ReorderRetentionFiltersRequest, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .reorder_apm_retention_filters_with_http_info(body) .await @@ -445,11 +610,11 @@ impl APMRetentionFiltersAPI { pub async fn reorder_apm_retention_filters_with_http_info( &self, body: crate::datadogV2::model::ReorderRetentionFiltersRequest, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.reorder_apm_retention_filters"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/apm/config/retention-filters-execution-order", @@ -458,27 +623,85 @@ impl APMRetentionFiltersAPI { let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -486,7 +709,7 @@ impl APMRetentionFiltersAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -494,12 +717,12 @@ impl APMRetentionFiltersAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -510,7 +733,7 @@ impl APMRetentionFiltersAPI { body: crate::datadogV2::model::RetentionFilterUpdateRequest, ) -> Result< crate::datadogV2::model::RetentionFilterResponse, - Error, + datadog::Error, > { match self .update_apm_retention_filter_with_http_info(filter_id, body) @@ -520,7 +743,7 @@ impl APMRetentionFiltersAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -535,43 +758,101 @@ impl APMRetentionFiltersAPI { filter_id: String, body: crate::datadogV2::model::RetentionFilterUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_apm_retention_filter"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/apm/config/retention-filters/{filter_id}", local_configuration.get_operation_host(operation_id), - filter_id = urlencode(filter_id) + filter_id = datadog::urlencode(filter_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -583,23 +864,23 @@ impl APMRetentionFiltersAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_audit.rs b/src/datadogV2/api/api_audit.rs index 88b315ac6..fec00e63d 100644 --- a/src/datadogV2/api/api_audit.rs +++ b/src/datadogV2/api/api_audit.rs @@ -1,11 +1,16 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; +use crate::datadog; use async_stream::try_stream; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; use futures_core::stream::Stream; -use reqwest; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// ListAuditLogsOptionalParams is a struct for passing parameters to the method [`AuditAPI::list_audit_logs`] #[non_exhaustive] @@ -94,14 +99,13 @@ pub enum SearchAuditLogsError { #[derive(Debug, Clone)] pub struct AuditAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for AuditAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -109,8 +113,52 @@ impl AuditAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// List endpoint returns events that match a Audit Logs search query. @@ -122,13 +170,14 @@ impl AuditAPI { pub async fn list_audit_logs( &self, params: ListAuditLogsOptionalParams, - ) -> Result> { + ) -> Result> + { match self.list_audit_logs_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -140,8 +189,9 @@ impl AuditAPI { pub fn list_audit_logs_with_pagination( &self, mut params: ListAuditLogsOptionalParams, - ) -> impl Stream>> - + '_ { + ) -> impl Stream< + Item = Result>, + > + '_ { try_stream! { let mut page_size: i32 = 10; if params.page_limit.is_none() { @@ -181,8 +231,8 @@ impl AuditAPI { &self, params: ListAuditLogsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_audit_logs"; @@ -195,7 +245,7 @@ impl AuditAPI { let page_cursor = params.page_cursor; let page_limit = params.page_limit; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/audit/events", @@ -229,20 +279,39 @@ impl AuditAPI { local_req_builder.query(&[("page[limit]", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -254,23 +323,23 @@ impl AuditAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -283,13 +352,16 @@ impl AuditAPI { pub async fn search_audit_logs( &self, params: SearchAuditLogsOptionalParams, - ) -> Result> { + ) -> Result< + crate::datadogV2::model::AuditLogsEventsResponse, + datadog::Error, + > { match self.search_audit_logs_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -302,7 +374,10 @@ impl AuditAPI { &self, mut params: SearchAuditLogsOptionalParams, ) -> impl Stream< - Item = Result>, + Item = Result< + crate::datadogV2::model::AuditLogsEvent, + datadog::Error, + >, > + '_ { try_stream! { let mut page_size: i32 = 10; @@ -349,8 +424,8 @@ impl AuditAPI { &self, params: SearchAuditLogsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.search_audit_logs"; @@ -358,7 +433,7 @@ impl AuditAPI { // unbox and build optional parameters let body = params.body; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/audit/events/search", @@ -367,27 +442,85 @@ impl AuditAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -399,23 +532,23 @@ impl AuditAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_authn_mappings.rs b/src/datadogV2/api/api_authn_mappings.rs index 5ec6442ce..f20fc9d46 100644 --- a/src/datadogV2/api/api_authn_mappings.rs +++ b/src/datadogV2/api/api_authn_mappings.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// ListAuthNMappingsOptionalParams is a struct for passing parameters to the method [`AuthNMappingsAPI::list_authn_mappings`] #[non_exhaustive] @@ -97,14 +102,13 @@ pub enum UpdateAuthNMappingError { #[derive(Debug, Clone)] pub struct AuthNMappingsAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for AuthNMappingsAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -112,21 +116,68 @@ impl AuthNMappingsAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create an AuthN Mapping. pub async fn create_authn_mapping( &self, body: crate::datadogV2::model::AuthNMappingCreateRequest, - ) -> Result> { + ) -> Result< + crate::datadogV2::model::AuthNMappingResponse, + datadog::Error, + > { match self.create_authn_mapping_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -140,13 +191,13 @@ impl AuthNMappingsAPI { &self, body: crate::datadogV2::model::AuthNMappingCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_authn_mapping"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/authn_mappings", @@ -155,27 +206,85 @@ impl AuthNMappingsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -187,23 +296,23 @@ impl AuthNMappingsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -211,7 +320,7 @@ impl AuthNMappingsAPI { pub async fn delete_authn_mapping( &self, authn_mapping_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .delete_authn_mapping_with_http_info(authn_mapping_id) .await @@ -225,34 +334,53 @@ impl AuthNMappingsAPI { pub async fn delete_authn_mapping_with_http_info( &self, authn_mapping_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_authn_mapping"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/authn_mappings/{authn_mapping_id}", local_configuration.get_operation_host(operation_id), - authn_mapping_id = urlencode(authn_mapping_id) + authn_mapping_id = datadog::urlencode(authn_mapping_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -260,7 +388,7 @@ impl AuthNMappingsAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -268,12 +396,12 @@ impl AuthNMappingsAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -281,7 +409,8 @@ impl AuthNMappingsAPI { pub async fn get_authn_mapping( &self, authn_mapping_id: String, - ) -> Result> { + ) -> Result> + { match self .get_authn_mapping_with_http_info(authn_mapping_id) .await @@ -290,7 +419,7 @@ impl AuthNMappingsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -304,36 +433,55 @@ impl AuthNMappingsAPI { &self, authn_mapping_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_authn_mapping"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/authn_mappings/{authn_mapping_id}", local_configuration.get_operation_host(operation_id), - authn_mapping_id = urlencode(authn_mapping_id) + authn_mapping_id = datadog::urlencode(authn_mapping_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -345,23 +493,23 @@ impl AuthNMappingsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -369,13 +517,16 @@ impl AuthNMappingsAPI { pub async fn list_authn_mappings( &self, params: ListAuthNMappingsOptionalParams, - ) -> Result> { + ) -> Result< + crate::datadogV2::model::AuthNMappingsResponse, + datadog::Error, + > { match self.list_authn_mappings_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -389,8 +540,8 @@ impl AuthNMappingsAPI { &self, params: ListAuthNMappingsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_authn_mappings"; @@ -401,7 +552,7 @@ impl AuthNMappingsAPI { let sort = params.sort; let filter = params.filter; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/authn_mappings", @@ -427,20 +578,39 @@ impl AuthNMappingsAPI { local_req_builder.query(&[("filter", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -452,23 +622,23 @@ impl AuthNMappingsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -477,7 +647,10 @@ impl AuthNMappingsAPI { &self, authn_mapping_id: String, body: crate::datadogV2::model::AuthNMappingUpdateRequest, - ) -> Result> { + ) -> Result< + crate::datadogV2::model::AuthNMappingResponse, + datadog::Error, + > { match self .update_authn_mapping_with_http_info(authn_mapping_id, body) .await @@ -486,7 +659,7 @@ impl AuthNMappingsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -501,43 +674,101 @@ impl AuthNMappingsAPI { authn_mapping_id: String, body: crate::datadogV2::model::AuthNMappingUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_authn_mapping"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/authn_mappings/{authn_mapping_id}", local_configuration.get_operation_host(operation_id), - authn_mapping_id = urlencode(authn_mapping_id) + authn_mapping_id = datadog::urlencode(authn_mapping_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -549,23 +780,23 @@ impl AuthNMappingsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_case_management.rs b/src/datadogV2/api/api_case_management.rs new file mode 100644 index 000000000..701f9b086 --- /dev/null +++ b/src/datadogV2/api/api_case_management.rs @@ -0,0 +1,2014 @@ +// 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 2019-Present Datadog, Inc. +use crate::datadog; +use async_stream::try_stream; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use futures_core::stream::Stream; +use reqwest::header::{HeaderMap, HeaderValue}; +use serde::{Deserialize, Serialize}; +use std::io::Write; + +/// SearchCasesOptionalParams is a struct for passing parameters to the method [`CaseManagementAPI::search_cases`] +#[non_exhaustive] +#[derive(Clone, Default, Debug)] +pub struct SearchCasesOptionalParams { + /// Size for a given page. The maximum allowed value is 100. + pub page_size: Option, + /// Specific offset to use as the beginning of the returned page. + pub page_offset: Option, + /// Specify which field to sort + pub sort_field: Option, + /// Search query + pub filter: Option, + /// Specify if order is ascending or not + pub sort_asc: Option, +} + +impl SearchCasesOptionalParams { + /// Size for a given page. The maximum allowed value is 100. + pub fn page_size(mut self, value: i64) -> Self { + self.page_size = Some(value); + self + } + /// Specific offset to use as the beginning of the returned page. + pub fn page_offset(mut self, value: i64) -> Self { + self.page_offset = Some(value); + self + } + /// Specify which field to sort + pub fn sort_field(mut self, value: crate::datadogV2::model::CaseSortableField) -> Self { + self.sort_field = Some(value); + self + } + /// Search query + pub fn filter(mut self, value: String) -> Self { + self.filter = Some(value); + self + } + /// Specify if order is ascending or not + pub fn sort_asc(mut self, value: bool) -> Self { + self.sort_asc = Some(value); + self + } +} + +/// ArchiveCaseError is a struct for typed errors of method [`CaseManagementAPI::archive_case`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum ArchiveCaseError { + Status400(Option), + Status401(Option), + Status403(Option), + Status404(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + +/// AssignCaseError is a struct for typed errors of method [`CaseManagementAPI::assign_case`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum AssignCaseError { + Status400(Option), + Status401(Option), + Status403(Option), + Status404(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + +/// CreateCaseError is a struct for typed errors of method [`CaseManagementAPI::create_case`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum CreateCaseError { + Status400(Option), + Status401(Option), + Status403(Option), + Status404(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + +/// CreateProjectError is a struct for typed errors of method [`CaseManagementAPI::create_project`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum CreateProjectError { + Status400(Option), + Status401(Option), + Status403(Option), + Status404(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + +/// DeleteProjectError is a struct for typed errors of method [`CaseManagementAPI::delete_project`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum DeleteProjectError { + Status403(Option), + Status404(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + +/// GetCaseError is a struct for typed errors of method [`CaseManagementAPI::get_case`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum GetCaseError { + Status400(Option), + Status401(Option), + Status403(Option), + Status404(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + +/// GetProjectError is a struct for typed errors of method [`CaseManagementAPI::get_project`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum GetProjectError { + Status400(Option), + Status401(Option), + Status403(Option), + Status404(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + +/// GetProjectsError is a struct for typed errors of method [`CaseManagementAPI::get_projects`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum GetProjectsError { + Status400(Option), + Status401(Option), + Status403(Option), + Status404(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + +/// SearchCasesError is a struct for typed errors of method [`CaseManagementAPI::search_cases`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum SearchCasesError { + Status400(Option), + Status401(Option), + Status403(Option), + Status404(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + +/// UnarchiveCaseError is a struct for typed errors of method [`CaseManagementAPI::unarchive_case`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum UnarchiveCaseError { + Status400(Option), + Status401(Option), + Status403(Option), + Status404(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + +/// UnassignCaseError is a struct for typed errors of method [`CaseManagementAPI::unassign_case`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum UnassignCaseError { + Status400(Option), + Status401(Option), + Status403(Option), + Status404(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + +/// UpdatePriorityError is a struct for typed errors of method [`CaseManagementAPI::update_priority`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum UpdatePriorityError { + Status400(Option), + Status401(Option), + Status403(Option), + Status404(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + +/// UpdateStatusError is a struct for typed errors of method [`CaseManagementAPI::update_status`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum UpdateStatusError { + Status400(Option), + Status401(Option), + Status403(Option), + Status404(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + +#[derive(Debug, Clone)] +pub struct CaseManagementAPI { + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, +} + +impl Default for CaseManagementAPI { + fn default() -> Self { + Self::with_config(datadog::Configuration::default()) + } +} + +impl CaseManagementAPI { + pub fn new() -> Self { + Self::default() + } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } + } + + /// Archive case + pub async fn archive_case( + &self, + case_id: String, + body: crate::datadogV2::model::CaseEmptyRequest, + ) -> Result> { + match self.archive_case_with_http_info(case_id, body).await { + Ok(response_content) => { + if let Some(e) = response_content.entity { + Ok(e) + } else { + Err(datadog::Error::Serde(serde::de::Error::custom( + "response content was None", + ))) + } + } + Err(err) => Err(err), + } + } + + /// Archive case + pub async fn archive_case_with_http_info( + &self, + case_id: String, + body: crate::datadogV2::model::CaseEmptyRequest, + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { + let local_configuration = &self.config; + let operation_id = "v2.archive_case"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/cases/{case_id}/archive", + local_configuration.get_operation_host(operation_id), + case_id = datadog::urlencode(case_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + // build body parameters + let output = Vec::new(); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); + if body.serialize(&mut ser).is_ok() { + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + match serde_json::from_str::(&local_content) { + Ok(e) => { + return Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: Some(e), + }) + } + Err(e) => return Err(datadog::Error::Serde(e)), + }; + } else { + let local_entity: Option = serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// Assign case to a user + pub async fn assign_case( + &self, + case_id: String, + body: crate::datadogV2::model::CaseAssignRequest, + ) -> Result> { + match self.assign_case_with_http_info(case_id, body).await { + Ok(response_content) => { + if let Some(e) = response_content.entity { + Ok(e) + } else { + Err(datadog::Error::Serde(serde::de::Error::custom( + "response content was None", + ))) + } + } + Err(err) => Err(err), + } + } + + /// Assign case to a user + pub async fn assign_case_with_http_info( + &self, + case_id: String, + body: crate::datadogV2::model::CaseAssignRequest, + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { + let local_configuration = &self.config; + let operation_id = "v2.assign_case"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/cases/{case_id}/assign", + local_configuration.get_operation_host(operation_id), + case_id = datadog::urlencode(case_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + // build body parameters + let output = Vec::new(); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); + if body.serialize(&mut ser).is_ok() { + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + match serde_json::from_str::(&local_content) { + Ok(e) => { + return Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: Some(e), + }) + } + Err(e) => return Err(datadog::Error::Serde(e)), + }; + } else { + let local_entity: Option = serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// Create a Case + pub async fn create_case( + &self, + body: crate::datadogV2::model::CaseCreateRequest, + ) -> Result> { + match self.create_case_with_http_info(body).await { + Ok(response_content) => { + if let Some(e) = response_content.entity { + Ok(e) + } else { + Err(datadog::Error::Serde(serde::de::Error::custom( + "response content was None", + ))) + } + } + Err(err) => Err(err), + } + } + + /// Create a Case + pub async fn create_case_with_http_info( + &self, + body: crate::datadogV2::model::CaseCreateRequest, + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { + let local_configuration = &self.config; + let operation_id = "v2.create_case"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/cases", + local_configuration.get_operation_host(operation_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + // build body parameters + let output = Vec::new(); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); + if body.serialize(&mut ser).is_ok() { + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + match serde_json::from_str::(&local_content) { + Ok(e) => { + return Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: Some(e), + }) + } + Err(e) => return Err(datadog::Error::Serde(e)), + }; + } else { + let local_entity: Option = serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// Create a project. + pub async fn create_project( + &self, + body: crate::datadogV2::model::ProjectCreateRequest, + ) -> Result> { + match self.create_project_with_http_info(body).await { + Ok(response_content) => { + if let Some(e) = response_content.entity { + Ok(e) + } else { + Err(datadog::Error::Serde(serde::de::Error::custom( + "response content was None", + ))) + } + } + Err(err) => Err(err), + } + } + + /// Create a project. + pub async fn create_project_with_http_info( + &self, + body: crate::datadogV2::model::ProjectCreateRequest, + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { + let local_configuration = &self.config; + let operation_id = "v2.create_project"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/cases/projects", + local_configuration.get_operation_host(operation_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + // build body parameters + let output = Vec::new(); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); + if body.serialize(&mut ser).is_ok() { + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + match serde_json::from_str::(&local_content) { + Ok(e) => { + return Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: Some(e), + }) + } + Err(e) => return Err(datadog::Error::Serde(e)), + }; + } else { + let local_entity: Option = + serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// Remove a project using the project's `id`. + pub async fn delete_project( + &self, + project_id: String, + ) -> Result<(), datadog::Error> { + match self.delete_project_with_http_info(project_id).await { + Ok(_) => Ok(()), + Err(err) => Err(err), + } + } + + /// Remove a project using the project's `id`. + pub async fn delete_project_with_http_info( + &self, + project_id: String, + ) -> Result, datadog::Error> { + let local_configuration = &self.config; + let operation_id = "v2.delete_project"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/cases/projects/{project_id}", + local_configuration.get_operation_host(operation_id), + project_id = datadog::urlencode(project_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: None, + }) + } else { + let local_entity: Option = + serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// Get the details of case by `case_id` + pub async fn get_case( + &self, + case_id: String, + ) -> Result> { + match self.get_case_with_http_info(case_id).await { + Ok(response_content) => { + if let Some(e) = response_content.entity { + Ok(e) + } else { + Err(datadog::Error::Serde(serde::de::Error::custom( + "response content was None", + ))) + } + } + Err(err) => Err(err), + } + } + + /// Get the details of case by `case_id` + pub async fn get_case_with_http_info( + &self, + case_id: String, + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { + let local_configuration = &self.config; + let operation_id = "v2.get_case"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/cases/{case_id}", + local_configuration.get_operation_host(operation_id), + case_id = datadog::urlencode(case_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + match serde_json::from_str::(&local_content) { + Ok(e) => { + return Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: Some(e), + }) + } + Err(e) => return Err(datadog::Error::Serde(e)), + }; + } else { + let local_entity: Option = serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// Get the details of a project by `project_id`. + pub async fn get_project( + &self, + project_id: String, + ) -> Result> { + match self.get_project_with_http_info(project_id).await { + Ok(response_content) => { + if let Some(e) = response_content.entity { + Ok(e) + } else { + Err(datadog::Error::Serde(serde::de::Error::custom( + "response content was None", + ))) + } + } + Err(err) => Err(err), + } + } + + /// Get the details of a project by `project_id`. + pub async fn get_project_with_http_info( + &self, + project_id: String, + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { + let local_configuration = &self.config; + let operation_id = "v2.get_project"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/cases/projects/{project_id}", + local_configuration.get_operation_host(operation_id), + project_id = datadog::urlencode(project_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + match serde_json::from_str::(&local_content) { + Ok(e) => { + return Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: Some(e), + }) + } + Err(e) => return Err(datadog::Error::Serde(e)), + }; + } else { + let local_entity: Option = serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// Get all projects. + pub async fn get_projects( + &self, + ) -> Result> { + match self.get_projects_with_http_info().await { + Ok(response_content) => { + if let Some(e) = response_content.entity { + Ok(e) + } else { + Err(datadog::Error::Serde(serde::de::Error::custom( + "response content was None", + ))) + } + } + Err(err) => Err(err), + } + } + + /// Get all projects. + pub async fn get_projects_with_http_info( + &self, + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { + let local_configuration = &self.config; + let operation_id = "v2.get_projects"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/cases/projects", + local_configuration.get_operation_host(operation_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + match serde_json::from_str::(&local_content) + { + Ok(e) => { + return Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: Some(e), + }) + } + Err(e) => return Err(datadog::Error::Serde(e)), + }; + } else { + let local_entity: Option = serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// Search cases. + pub async fn search_cases( + &self, + params: SearchCasesOptionalParams, + ) -> Result> { + match self.search_cases_with_http_info(params).await { + Ok(response_content) => { + if let Some(e) = response_content.entity { + Ok(e) + } else { + Err(datadog::Error::Serde(serde::de::Error::custom( + "response content was None", + ))) + } + } + Err(err) => Err(err), + } + } + + pub fn search_cases_with_pagination( + &self, + mut params: SearchCasesOptionalParams, + ) -> impl Stream>> + '_ + { + try_stream! { + let mut page_size: i64 = 10; + if params.page_size.is_none() { + params.page_size = Some(page_size); + } else { + page_size = params.page_size.unwrap().clone(); + } + loop { + let resp = self.search_cases(params.clone()).await?; + let Some(data) = resp.data else { break }; + + let r = data; + let count = r.len(); + for team in r { + yield team; + } + + if count < page_size as usize { + break; + } + if params.page_offset.is_none() { + params.page_offset = Some(page_size.clone()); + } else { + params.page_offset = Some(params.page_offset.unwrap() + page_size.clone()); + } + } + } + } + + /// Search cases. + pub async fn search_cases_with_http_info( + &self, + params: SearchCasesOptionalParams, + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { + let local_configuration = &self.config; + let operation_id = "v2.search_cases"; + + // unbox and build optional parameters + let page_size = params.page_size; + let page_offset = params.page_offset; + let sort_field = params.sort_field; + let filter = params.filter; + let sort_asc = params.sort_asc; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/cases", + local_configuration.get_operation_host(operation_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + + if let Some(ref local_query_param) = page_size { + local_req_builder = + local_req_builder.query(&[("page[size]", &local_query_param.to_string())]); + }; + if let Some(ref local_query_param) = page_offset { + local_req_builder = + local_req_builder.query(&[("page[offset]", &local_query_param.to_string())]); + }; + if let Some(ref local_query_param) = sort_field { + local_req_builder = + local_req_builder.query(&[("sort[field]", &local_query_param.to_string())]); + }; + if let Some(ref local_query_param) = filter { + local_req_builder = + local_req_builder.query(&[("filter", &local_query_param.to_string())]); + }; + if let Some(ref local_query_param) = sort_asc { + local_req_builder = + local_req_builder.query(&[("sort[asc]", &local_query_param.to_string())]); + }; + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + match serde_json::from_str::(&local_content) { + Ok(e) => { + return Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: Some(e), + }) + } + Err(e) => return Err(datadog::Error::Serde(e)), + }; + } else { + let local_entity: Option = serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// Unarchive case + pub async fn unarchive_case( + &self, + case_id: String, + body: crate::datadogV2::model::CaseEmptyRequest, + ) -> Result> { + match self.unarchive_case_with_http_info(case_id, body).await { + Ok(response_content) => { + if let Some(e) = response_content.entity { + Ok(e) + } else { + Err(datadog::Error::Serde(serde::de::Error::custom( + "response content was None", + ))) + } + } + Err(err) => Err(err), + } + } + + /// Unarchive case + pub async fn unarchive_case_with_http_info( + &self, + case_id: String, + body: crate::datadogV2::model::CaseEmptyRequest, + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { + let local_configuration = &self.config; + let operation_id = "v2.unarchive_case"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/cases/{case_id}/unarchive", + local_configuration.get_operation_host(operation_id), + case_id = datadog::urlencode(case_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + // build body parameters + let output = Vec::new(); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); + if body.serialize(&mut ser).is_ok() { + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + match serde_json::from_str::(&local_content) { + Ok(e) => { + return Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: Some(e), + }) + } + Err(e) => return Err(datadog::Error::Serde(e)), + }; + } else { + let local_entity: Option = + serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// Unassign case + pub async fn unassign_case( + &self, + case_id: String, + body: crate::datadogV2::model::CaseEmptyRequest, + ) -> Result> { + match self.unassign_case_with_http_info(case_id, body).await { + Ok(response_content) => { + if let Some(e) = response_content.entity { + Ok(e) + } else { + Err(datadog::Error::Serde(serde::de::Error::custom( + "response content was None", + ))) + } + } + Err(err) => Err(err), + } + } + + /// Unassign case + pub async fn unassign_case_with_http_info( + &self, + case_id: String, + body: crate::datadogV2::model::CaseEmptyRequest, + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { + let local_configuration = &self.config; + let operation_id = "v2.unassign_case"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/cases/{case_id}/unassign", + local_configuration.get_operation_host(operation_id), + case_id = datadog::urlencode(case_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + // build body parameters + let output = Vec::new(); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); + if body.serialize(&mut ser).is_ok() { + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + match serde_json::from_str::(&local_content) { + Ok(e) => { + return Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: Some(e), + }) + } + Err(e) => return Err(datadog::Error::Serde(e)), + }; + } else { + let local_entity: Option = serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// Update case priority + pub async fn update_priority( + &self, + case_id: String, + body: crate::datadogV2::model::CaseUpdatePriorityRequest, + ) -> Result> { + match self.update_priority_with_http_info(case_id, body).await { + Ok(response_content) => { + if let Some(e) = response_content.entity { + Ok(e) + } else { + Err(datadog::Error::Serde(serde::de::Error::custom( + "response content was None", + ))) + } + } + Err(err) => Err(err), + } + } + + /// Update case priority + pub async fn update_priority_with_http_info( + &self, + case_id: String, + body: crate::datadogV2::model::CaseUpdatePriorityRequest, + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { + let local_configuration = &self.config; + let operation_id = "v2.update_priority"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/cases/{case_id}/priority", + local_configuration.get_operation_host(operation_id), + case_id = datadog::urlencode(case_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + // build body parameters + let output = Vec::new(); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); + if body.serialize(&mut ser).is_ok() { + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + match serde_json::from_str::(&local_content) { + Ok(e) => { + return Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: Some(e), + }) + } + Err(e) => return Err(datadog::Error::Serde(e)), + }; + } else { + let local_entity: Option = + serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// Update case status + pub async fn update_status( + &self, + case_id: String, + body: crate::datadogV2::model::CaseUpdateStatusRequest, + ) -> Result> { + match self.update_status_with_http_info(case_id, body).await { + Ok(response_content) => { + if let Some(e) = response_content.entity { + Ok(e) + } else { + Err(datadog::Error::Serde(serde::de::Error::custom( + "response content was None", + ))) + } + } + Err(err) => Err(err), + } + } + + /// Update case status + pub async fn update_status_with_http_info( + &self, + case_id: String, + body: crate::datadogV2::model::CaseUpdateStatusRequest, + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { + let local_configuration = &self.config; + let operation_id = "v2.update_status"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/cases/{case_id}/status", + local_configuration.get_operation_host(operation_id), + case_id = datadog::urlencode(case_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + // build body parameters + let output = Vec::new(); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); + if body.serialize(&mut ser).is_ok() { + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + match serde_json::from_str::(&local_content) { + Ok(e) => { + return Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: Some(e), + }) + } + Err(e) => return Err(datadog::Error::Serde(e)), + }; + } else { + let local_entity: Option = serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) + } + } +} diff --git a/src/datadogV2/api/api_ci_visibility_pipelines.rs b/src/datadogV2/api/api_ci_visibility_pipelines.rs index e03f6863c..3149e8c84 100644 --- a/src/datadogV2/api/api_ci_visibility_pipelines.rs +++ b/src/datadogV2/api/api_ci_visibility_pipelines.rs @@ -1,11 +1,16 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; +use crate::datadog; use async_stream::try_stream; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; use futures_core::stream::Stream; -use reqwest; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// ListCIAppPipelineEventsOptionalParams is a struct for passing parameters to the method [`CIVisibilityPipelinesAPI::list_ci_app_pipeline_events`] #[non_exhaustive] @@ -119,14 +124,13 @@ pub enum SearchCIAppPipelineEventsError { #[derive(Debug, Clone)] pub struct CIVisibilityPipelinesAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for CIVisibilityPipelinesAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -134,8 +138,52 @@ impl CIVisibilityPipelinesAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Use this API endpoint to aggregate CI Visibility pipeline events into buckets of computed metrics and timeseries. @@ -144,7 +192,7 @@ impl CIVisibilityPipelinesAPI { body: crate::datadogV2::model::CIAppPipelinesAggregateRequest, ) -> Result< crate::datadogV2::model::CIAppPipelinesAnalyticsAggregateResponse, - Error, + datadog::Error, > { match self .aggregate_ci_app_pipeline_events_with_http_info(body) @@ -154,7 +202,7 @@ impl CIVisibilityPipelinesAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -168,13 +216,13 @@ impl CIVisibilityPipelinesAPI { &self, body: crate::datadogV2::model::CIAppPipelinesAggregateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.aggregate_ci_app_pipeline_events"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/ci/pipelines/analytics/aggregate", @@ -183,27 +231,85 @@ impl CIVisibilityPipelinesAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -216,23 +322,23 @@ impl CIVisibilityPipelinesAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -244,14 +350,14 @@ impl CIVisibilityPipelinesAPI { body: crate::datadogV2::model::CIAppCreatePipelineEventRequest, ) -> Result< std::collections::BTreeMap, - Error, + datadog::Error, > { match self.create_ci_app_pipeline_event_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -267,13 +373,13 @@ impl CIVisibilityPipelinesAPI { &self, body: crate::datadogV2::model::CIAppCreatePipelineEventRequest, ) -> Result< - ResponseContent>, - Error, + datadog::ResponseContent>, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_ci_app_pipeline_event"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/ci/pipeline", @@ -282,24 +388,78 @@ impl CIVisibilityPipelinesAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -311,23 +471,23 @@ impl CIVisibilityPipelinesAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -340,7 +500,7 @@ impl CIVisibilityPipelinesAPI { params: ListCIAppPipelineEventsOptionalParams, ) -> Result< crate::datadogV2::model::CIAppPipelineEventsResponse, - Error, + datadog::Error, > { match self .list_ci_app_pipeline_events_with_http_info(params) @@ -350,7 +510,7 @@ impl CIVisibilityPipelinesAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -365,7 +525,7 @@ impl CIVisibilityPipelinesAPI { ) -> impl Stream< Item = Result< crate::datadogV2::model::CIAppPipelineEvent, - Error, + datadog::Error, >, > + '_ { try_stream! { @@ -405,8 +565,8 @@ impl CIVisibilityPipelinesAPI { &self, params: ListCIAppPipelineEventsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_ci_app_pipeline_events"; @@ -419,7 +579,7 @@ impl CIVisibilityPipelinesAPI { let page_cursor = params.page_cursor; let page_limit = params.page_limit; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/ci/pipelines/events", @@ -453,20 +613,39 @@ impl CIVisibilityPipelinesAPI { local_req_builder.query(&[("page[limit]", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -478,23 +657,23 @@ impl CIVisibilityPipelinesAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -507,7 +686,7 @@ impl CIVisibilityPipelinesAPI { params: SearchCIAppPipelineEventsOptionalParams, ) -> Result< crate::datadogV2::model::CIAppPipelineEventsResponse, - Error, + datadog::Error, > { match self .search_ci_app_pipeline_events_with_http_info(params) @@ -517,7 +696,7 @@ impl CIVisibilityPipelinesAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -532,7 +711,7 @@ impl CIVisibilityPipelinesAPI { ) -> impl Stream< Item = Result< crate::datadogV2::model::CIAppPipelineEvent, - Error, + datadog::Error, >, > + '_ { try_stream! { @@ -578,8 +757,8 @@ impl CIVisibilityPipelinesAPI { &self, params: SearchCIAppPipelineEventsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.search_ci_app_pipeline_events"; @@ -587,7 +766,7 @@ impl CIVisibilityPipelinesAPI { // unbox and build optional parameters let body = params.body; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/ci/pipelines/events/search", @@ -596,27 +775,85 @@ impl CIVisibilityPipelinesAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -628,23 +865,23 @@ impl CIVisibilityPipelinesAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_ci_visibility_tests.rs b/src/datadogV2/api/api_ci_visibility_tests.rs index cc4f6b4f4..09e6bc832 100644 --- a/src/datadogV2/api/api_ci_visibility_tests.rs +++ b/src/datadogV2/api/api_ci_visibility_tests.rs @@ -1,11 +1,16 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; +use crate::datadog; use async_stream::try_stream; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; use futures_core::stream::Stream; -use reqwest; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// ListCIAppTestEventsOptionalParams is a struct for passing parameters to the method [`CIVisibilityTestsAPI::list_ci_app_test_events`] #[non_exhaustive] @@ -104,14 +109,13 @@ pub enum SearchCIAppTestEventsError { #[derive(Debug, Clone)] pub struct CIVisibilityTestsAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for CIVisibilityTestsAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -119,8 +123,52 @@ impl CIVisibilityTestsAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// The API endpoint to aggregate CI Visibility test events into buckets of computed metrics and timeseries. @@ -129,14 +177,14 @@ impl CIVisibilityTestsAPI { body: crate::datadogV2::model::CIAppTestsAggregateRequest, ) -> Result< crate::datadogV2::model::CIAppTestsAnalyticsAggregateResponse, - Error, + datadog::Error, > { match self.aggregate_ci_app_test_events_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -150,13 +198,13 @@ impl CIVisibilityTestsAPI { &self, body: crate::datadogV2::model::CIAppTestsAggregateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.aggregate_ci_app_test_events"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/ci/tests/analytics/aggregate", @@ -165,27 +213,85 @@ impl CIVisibilityTestsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -198,41 +304,43 @@ impl CIVisibilityTestsAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } - /// List endpoint returns CI Visibility test events that match a [log search query](). + /// List endpoint returns CI Visibility test events that match a [search query](). /// [Results are paginated similarly to logs](). /// /// Use this endpoint to see your latest test events. pub async fn list_ci_app_test_events( &self, params: ListCIAppTestEventsOptionalParams, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::CIAppTestEventsResponse, + datadog::Error, + > { match self.list_ci_app_test_events_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -245,7 +353,10 @@ impl CIVisibilityTestsAPI { &self, mut params: ListCIAppTestEventsOptionalParams, ) -> impl Stream< - Item = Result>, + Item = Result< + crate::datadogV2::model::CIAppTestEvent, + datadog::Error, + >, > + '_ { try_stream! { let mut page_size: i32 = 10; @@ -276,7 +387,7 @@ impl CIVisibilityTestsAPI { } } - /// List endpoint returns CI Visibility test events that match a [log search query](). + /// List endpoint returns CI Visibility test events that match a [search query](). /// [Results are paginated similarly to logs](). /// /// Use this endpoint to see your latest test events. @@ -284,8 +395,8 @@ impl CIVisibilityTestsAPI { &self, params: ListCIAppTestEventsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_ci_app_test_events"; @@ -298,7 +409,7 @@ impl CIVisibilityTestsAPI { let page_cursor = params.page_cursor; let page_limit = params.page_limit; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/ci/tests/events", @@ -332,20 +443,39 @@ impl CIVisibilityTestsAPI { local_req_builder.query(&[("page[limit]", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -357,41 +487,43 @@ impl CIVisibilityTestsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } - /// List endpoint returns CI Visibility test events that match a [log search query](). + /// List endpoint returns CI Visibility test events that match a [search query](). /// [Results are paginated similarly to logs](). /// /// Use this endpoint to build complex events filtering and search. pub async fn search_ci_app_test_events( &self, params: SearchCIAppTestEventsOptionalParams, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::CIAppTestEventsResponse, + datadog::Error, + > { match self.search_ci_app_test_events_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -404,7 +536,10 @@ impl CIVisibilityTestsAPI { &self, mut params: SearchCIAppTestEventsOptionalParams, ) -> impl Stream< - Item = Result>, + Item = Result< + crate::datadogV2::model::CIAppTestEvent, + datadog::Error, + >, > + '_ { try_stream! { let mut page_size: i32 = 10; @@ -441,7 +576,7 @@ impl CIVisibilityTestsAPI { } } - /// List endpoint returns CI Visibility test events that match a [log search query](). + /// List endpoint returns CI Visibility test events that match a [search query](). /// [Results are paginated similarly to logs](). /// /// Use this endpoint to build complex events filtering and search. @@ -449,8 +584,8 @@ impl CIVisibilityTestsAPI { &self, params: SearchCIAppTestEventsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.search_ci_app_test_events"; @@ -458,7 +593,7 @@ impl CIVisibilityTestsAPI { // unbox and build optional parameters let body = params.body; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/ci/tests/events/search", @@ -467,27 +602,85 @@ impl CIVisibilityTestsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -499,23 +692,23 @@ impl CIVisibilityTestsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_cloud_cost_management.rs b/src/datadogV2/api/api_cloud_cost_management.rs index b99700e0e..b14c800fc 100644 --- a/src/datadogV2/api/api_cloud_cost_management.rs +++ b/src/datadogV2/api/api_cloud_cost_management.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// CreateCostAWSCURConfigError is a struct for typed errors of method [`CloudCostManagementAPI::create_cost_awscur_config`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -103,14 +108,13 @@ pub enum UpdateCostAzureUCConfigsError { #[derive(Debug, Clone)] pub struct CloudCostManagementAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for CloudCostManagementAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -118,22 +122,68 @@ impl CloudCostManagementAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create a Cloud Cost Management account for an AWS CUR config. pub async fn create_cost_awscur_config( &self, body: crate::datadogV2::model::AwsCURConfigPostRequest, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::AwsCURConfigResponse, + datadog::Error, + > { match self.create_cost_awscur_config_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -147,13 +197,13 @@ impl CloudCostManagementAPI { &self, body: crate::datadogV2::model::AwsCURConfigPostRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_cost_awscur_config"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/cost/aws_cur_config", @@ -162,27 +212,85 @@ impl CloudCostManagementAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -194,23 +302,23 @@ impl CloudCostManagementAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -220,14 +328,14 @@ impl CloudCostManagementAPI { body: crate::datadogV2::model::AzureUCConfigPostRequest, ) -> Result< crate::datadogV2::model::AzureUCConfigPairsResponse, - Error, + datadog::Error, > { match self.create_cost_azure_uc_configs_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -241,13 +349,13 @@ impl CloudCostManagementAPI { &self, body: crate::datadogV2::model::AzureUCConfigPostRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_cost_azure_uc_configs"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/cost/azure_uc_config", @@ -256,27 +364,85 @@ impl CloudCostManagementAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -288,23 +454,23 @@ impl CloudCostManagementAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -312,7 +478,7 @@ impl CloudCostManagementAPI { pub async fn delete_cost_awscur_config( &self, cloud_account_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .delete_cost_awscur_config_with_http_info(cloud_account_id) .await @@ -326,34 +492,53 @@ impl CloudCostManagementAPI { pub async fn delete_cost_awscur_config_with_http_info( &self, cloud_account_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_cost_awscur_config"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/cost/aws_cur_config/{cloud_account_id}", local_configuration.get_operation_host(operation_id), - cloud_account_id = urlencode(cloud_account_id) + cloud_account_id = datadog::urlencode(cloud_account_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -361,7 +546,7 @@ impl CloudCostManagementAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -369,12 +554,12 @@ impl CloudCostManagementAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -382,7 +567,7 @@ impl CloudCostManagementAPI { pub async fn delete_cost_azure_uc_config( &self, cloud_account_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .delete_cost_azure_uc_config_with_http_info(cloud_account_id) .await @@ -396,34 +581,53 @@ impl CloudCostManagementAPI { pub async fn delete_cost_azure_uc_config_with_http_info( &self, cloud_account_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_cost_azure_uc_config"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/cost/azure_uc_config/{cloud_account_id}", local_configuration.get_operation_host(operation_id), - cloud_account_id = urlencode(cloud_account_id) + cloud_account_id = datadog::urlencode(cloud_account_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -431,7 +635,7 @@ impl CloudCostManagementAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -439,26 +643,28 @@ impl CloudCostManagementAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get the Cloud Cost Management activity. pub async fn get_cloud_cost_activity( &self, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::CloudCostActivityResponse, + datadog::Error, + > { match self.get_cloud_cost_activity_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -471,13 +677,13 @@ impl CloudCostManagementAPI { pub async fn get_cloud_cost_activity_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_cloud_cost_activity"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/cost/enabled", @@ -486,20 +692,39 @@ impl CloudCostManagementAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -511,23 +736,23 @@ impl CloudCostManagementAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -537,7 +762,7 @@ impl CloudCostManagementAPI { filter_management_account_id: String, ) -> Result< crate::datadogV2::model::AWSRelatedAccountsResponse, - Error, + datadog::Error, > { match self .list_aws_related_accounts_with_http_info(filter_management_account_id) @@ -547,7 +772,7 @@ impl CloudCostManagementAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -561,13 +786,13 @@ impl CloudCostManagementAPI { &self, filter_management_account_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_aws_related_accounts"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/cost/aws_related_accounts", @@ -581,20 +806,39 @@ impl CloudCostManagementAPI { &filter_management_account_id.to_string(), )]); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -606,37 +850,39 @@ impl CloudCostManagementAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// List the AWS CUR configs. pub async fn list_cost_awscur_configs( &self, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::AwsCURConfigsResponse, + datadog::Error, + > { match self.list_cost_awscur_configs_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -649,13 +895,13 @@ impl CloudCostManagementAPI { pub async fn list_cost_awscur_configs_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_cost_awscur_configs"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/cost/aws_cur_config", @@ -664,20 +910,39 @@ impl CloudCostManagementAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -689,37 +954,39 @@ impl CloudCostManagementAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// List the Azure configs. pub async fn list_cost_azure_uc_configs( &self, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::AzureUCConfigsResponse, + datadog::Error, + > { match self.list_cost_azure_uc_configs_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -732,13 +999,13 @@ impl CloudCostManagementAPI { pub async fn list_cost_azure_uc_configs_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_cost_azure_uc_configs"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/cost/azure_uc_config", @@ -747,20 +1014,39 @@ impl CloudCostManagementAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -772,23 +1058,23 @@ impl CloudCostManagementAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -797,8 +1083,10 @@ impl CloudCostManagementAPI { &self, cloud_account_id: String, body: crate::datadogV2::model::AwsCURConfigPatchRequest, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::AwsCURConfigsResponse, + datadog::Error, + > { match self .update_cost_awscur_config_with_http_info(cloud_account_id, body) .await @@ -807,7 +1095,7 @@ impl CloudCostManagementAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -822,43 +1110,101 @@ impl CloudCostManagementAPI { cloud_account_id: String, body: crate::datadogV2::model::AwsCURConfigPatchRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_cost_awscur_config"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/cost/aws_cur_config/{cloud_account_id}", local_configuration.get_operation_host(operation_id), - cloud_account_id = urlencode(cloud_account_id) + cloud_account_id = datadog::urlencode(cloud_account_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -870,23 +1216,23 @@ impl CloudCostManagementAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -897,7 +1243,7 @@ impl CloudCostManagementAPI { body: crate::datadogV2::model::AzureUCConfigPatchRequest, ) -> Result< crate::datadogV2::model::AzureUCConfigPairsResponse, - Error, + datadog::Error, > { match self .update_cost_azure_uc_configs_with_http_info(cloud_account_id, body) @@ -907,7 +1253,7 @@ impl CloudCostManagementAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -922,43 +1268,101 @@ impl CloudCostManagementAPI { cloud_account_id: String, body: crate::datadogV2::model::AzureUCConfigPatchRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_cost_azure_uc_configs"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/cost/azure_uc_config/{cloud_account_id}", local_configuration.get_operation_host(operation_id), - cloud_account_id = urlencode(cloud_account_id) + cloud_account_id = datadog::urlencode(cloud_account_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -970,23 +1374,23 @@ impl CloudCostManagementAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_cloud_workload_security.rs b/src/datadogV2/api/api_cloud_workload_security.rs index 15ad06f52..f796b69a6 100644 --- a/src/datadogV2/api/api_cloud_workload_security.rs +++ b/src/datadogV2/api/api_cloud_workload_security.rs @@ -1,9 +1,25 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; + +/// CreateCSMThreatsAgentRuleError is a struct for typed errors of method [`CloudWorkloadSecurityAPI::create_csm_threats_agent_rule`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum CreateCSMThreatsAgentRuleError { + Status400(Option), + Status403(Option), + Status409(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} /// CreateCloudWorkloadSecurityAgentRuleError is a struct for typed errors of method [`CloudWorkloadSecurityAPI::create_cloud_workload_security_agent_rule`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -16,6 +32,16 @@ pub enum CreateCloudWorkloadSecurityAgentRuleError { UnknownValue(serde_json::Value), } +/// DeleteCSMThreatsAgentRuleError is a struct for typed errors of method [`CloudWorkloadSecurityAPI::delete_csm_threats_agent_rule`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum DeleteCSMThreatsAgentRuleError { + Status403(Option), + Status404(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + /// DeleteCloudWorkloadSecurityAgentRuleError is a struct for typed errors of method [`CloudWorkloadSecurityAPI::delete_cloud_workload_security_agent_rule`] #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] @@ -26,6 +52,15 @@ pub enum DeleteCloudWorkloadSecurityAgentRuleError { UnknownValue(serde_json::Value), } +/// DownloadCSMThreatsPolicyError is a struct for typed errors of method [`CloudWorkloadSecurityAPI::download_csm_threats_policy`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum DownloadCSMThreatsPolicyError { + Status403(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + /// DownloadCloudWorkloadPolicyFileError is a struct for typed errors of method [`CloudWorkloadSecurityAPI::download_cloud_workload_policy_file`] #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] @@ -35,6 +70,16 @@ pub enum DownloadCloudWorkloadPolicyFileError { UnknownValue(serde_json::Value), } +/// GetCSMThreatsAgentRuleError is a struct for typed errors of method [`CloudWorkloadSecurityAPI::get_csm_threats_agent_rule`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum GetCSMThreatsAgentRuleError { + Status403(Option), + Status404(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + /// GetCloudWorkloadSecurityAgentRuleError is a struct for typed errors of method [`CloudWorkloadSecurityAPI::get_cloud_workload_security_agent_rule`] #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] @@ -45,6 +90,15 @@ pub enum GetCloudWorkloadSecurityAgentRuleError { UnknownValue(serde_json::Value), } +/// ListCSMThreatsAgentRulesError is a struct for typed errors of method [`CloudWorkloadSecurityAPI::list_csm_threats_agent_rules`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum ListCSMThreatsAgentRulesError { + Status403(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + /// ListCloudWorkloadSecurityAgentRulesError is a struct for typed errors of method [`CloudWorkloadSecurityAPI::list_cloud_workload_security_agent_rules`] #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] @@ -54,6 +108,18 @@ pub enum ListCloudWorkloadSecurityAgentRulesError { UnknownValue(serde_json::Value), } +/// UpdateCSMThreatsAgentRuleError is a struct for typed errors of method [`CloudWorkloadSecurityAPI::update_csm_threats_agent_rule`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum UpdateCSMThreatsAgentRuleError { + Status400(Option), + Status403(Option), + Status404(Option), + Status409(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + /// UpdateCloudWorkloadSecurityAgentRuleError is a struct for typed errors of method [`CloudWorkloadSecurityAPI::update_cloud_workload_security_agent_rule`] #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] @@ -68,14 +134,13 @@ pub enum UpdateCloudWorkloadSecurityAgentRuleError { #[derive(Debug, Clone)] pub struct CloudWorkloadSecurityAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for CloudWorkloadSecurityAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -83,8 +148,208 @@ impl CloudWorkloadSecurityAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } + } + + /// Create a new Cloud Security Management Threats Agent rule with the given parameters. + pub async fn create_csm_threats_agent_rule( + &self, + body: crate::datadogV2::model::CloudWorkloadSecurityAgentRuleCreateRequest, + ) -> Result< + crate::datadogV2::model::CloudWorkloadSecurityAgentRuleResponse, + datadog::Error, + > { + match self + .create_csm_threats_agent_rule_with_http_info(body) + .await + { + Ok(response_content) => { + if let Some(e) = response_content.entity { + Ok(e) + } else { + Err(datadog::Error::Serde(serde::de::Error::custom( + "response content was None", + ))) + } + } + Err(err) => Err(err), + } + } + + /// Create a new Cloud Security Management Threats Agent rule with the given parameters. + pub async fn create_csm_threats_agent_rule_with_http_info( + &self, + body: crate::datadogV2::model::CloudWorkloadSecurityAgentRuleCreateRequest, + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { + let local_configuration = &self.config; + let operation_id = "v2.create_csm_threats_agent_rule"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/remote_config/products/cws/agent_rules", + local_configuration.get_operation_host(operation_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + // build body parameters + let output = Vec::new(); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); + if body.serialize(&mut ser).is_ok() { + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + match serde_json::from_str::< + crate::datadogV2::model::CloudWorkloadSecurityAgentRuleResponse, + >(&local_content) + { + Ok(e) => { + return Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: Some(e), + }) + } + Err(e) => return Err(datadog::Error::Serde(e)), + }; + } else { + let local_entity: Option = + serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) + } } /// Create a new Agent rule with the given parameters. @@ -93,7 +358,7 @@ impl CloudWorkloadSecurityAPI { body: crate::datadogV2::model::CloudWorkloadSecurityAgentRuleCreateRequest, ) -> Result< crate::datadogV2::model::CloudWorkloadSecurityAgentRuleResponse, - Error, + datadog::Error, > { match self .create_cloud_workload_security_agent_rule_with_http_info(body) @@ -103,7 +368,7 @@ impl CloudWorkloadSecurityAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -117,13 +382,13 @@ impl CloudWorkloadSecurityAPI { &self, body: crate::datadogV2::model::CloudWorkloadSecurityAgentRuleCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_cloud_workload_security_agent_rule"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/security_monitoring/cloud_workload_security/agent_rules", @@ -132,27 +397,85 @@ impl CloudWorkloadSecurityAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -165,23 +488,112 @@ impl CloudWorkloadSecurityAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// Delete a specific Cloud Security Management Threats Agent rule. + pub async fn delete_csm_threats_agent_rule( + &self, + agent_rule_id: String, + ) -> Result<(), datadog::Error> { + match self + .delete_csm_threats_agent_rule_with_http_info(agent_rule_id) + .await + { + Ok(_) => Ok(()), + Err(err) => Err(err), + } + } + + /// Delete a specific Cloud Security Management Threats Agent rule. + pub async fn delete_csm_threats_agent_rule_with_http_info( + &self, + agent_rule_id: String, + ) -> Result, datadog::Error> { + let local_configuration = &self.config; + let operation_id = "v2.delete_csm_threats_agent_rule"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/remote_config/products/cws/agent_rules/{agent_rule_id}", + local_configuration.get_operation_host(operation_id), + agent_rule_id = datadog::urlencode(agent_rule_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: None, + }) + } else { + let local_entity: Option = + serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) } } @@ -189,7 +601,7 @@ impl CloudWorkloadSecurityAPI { pub async fn delete_cloud_workload_security_agent_rule( &self, agent_rule_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .delete_cloud_workload_security_agent_rule_with_http_info(agent_rule_id) .await @@ -203,34 +615,56 @@ impl CloudWorkloadSecurityAPI { pub async fn delete_cloud_workload_security_agent_rule_with_http_info( &self, agent_rule_id: String, - ) -> Result, Error> { + ) -> Result< + datadog::ResponseContent<()>, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.delete_cloud_workload_security_agent_rule"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/security_monitoring/cloud_workload_security/agent_rules/{agent_rule_id}", local_configuration.get_operation_host(operation_id), - agent_rule_id = urlencode(agent_rule_id) + agent_rule_id = datadog::urlencode(agent_rule_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -238,7 +672,7 @@ impl CloudWorkloadSecurityAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -246,12 +680,108 @@ impl CloudWorkloadSecurityAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// The download endpoint generates a CSM Threats policy file from your currently active + /// CSM Threats rules, and downloads them as a `.policy` file. This file can then be deployed to + /// your Agents to update the policy running in your environment. + pub async fn download_csm_threats_policy( + &self, + ) -> Result, datadog::Error> { + match self.download_csm_threats_policy_with_http_info().await { + Ok(response_content) => { + if let Some(e) = response_content.entity { + Ok(e) + } else { + Err(datadog::Error::Serde(serde::de::Error::custom( + "response content was None", + ))) + } + } + Err(err) => Err(err), + } + } + + /// The download endpoint generates a CSM Threats policy file from your currently active + /// CSM Threats rules, and downloads them as a `.policy` file. This file can then be deployed to + /// your Agents to update the policy running in your environment. + pub async fn download_csm_threats_policy_with_http_info( + &self, + ) -> Result>, datadog::Error> + { + let local_configuration = &self.config; + let operation_id = "v2.download_csm_threats_policy"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/remote_config/products/cws/policy/download", + local_configuration.get_operation_host(operation_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + Ok(datadog::ResponseContent { + status: local_status, + content: local_content.clone(), + entity: Some(local_content.into_bytes()), + }) + } else { + let local_entity: Option = + serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) } } @@ -260,7 +790,7 @@ impl CloudWorkloadSecurityAPI { /// your Agents to update the policy running in your environment. pub async fn download_cloud_workload_policy_file( &self, - ) -> Result, Error> { + ) -> Result, datadog::Error> { match self .download_cloud_workload_policy_file_with_http_info() .await @@ -269,7 +799,7 @@ impl CloudWorkloadSecurityAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -283,11 +813,14 @@ impl CloudWorkloadSecurityAPI { /// your Agents to update the policy running in your environment. pub async fn download_cloud_workload_policy_file_with_http_info( &self, - ) -> Result>, Error> { + ) -> Result< + datadog::ResponseContent>, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.download_cloud_workload_policy_file"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/security/cloud_workload/policy/download", @@ -296,20 +829,39 @@ impl CloudWorkloadSecurityAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -317,7 +869,7 @@ impl CloudWorkloadSecurityAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content.clone(), entity: Some(local_content.into_bytes()), @@ -325,12 +877,123 @@ impl CloudWorkloadSecurityAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// Get the details of a specific Cloud Security Management Threats Agent rule. + pub async fn get_csm_threats_agent_rule( + &self, + agent_rule_id: String, + ) -> Result< + crate::datadogV2::model::CloudWorkloadSecurityAgentRuleResponse, + datadog::Error, + > { + match self + .get_csm_threats_agent_rule_with_http_info(agent_rule_id) + .await + { + Ok(response_content) => { + if let Some(e) = response_content.entity { + Ok(e) + } else { + Err(datadog::Error::Serde(serde::de::Error::custom( + "response content was None", + ))) + } + } + Err(err) => Err(err), + } + } + + /// Get the details of a specific Cloud Security Management Threats Agent rule. + pub async fn get_csm_threats_agent_rule_with_http_info( + &self, + agent_rule_id: String, + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { + let local_configuration = &self.config; + let operation_id = "v2.get_csm_threats_agent_rule"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/remote_config/products/cws/agent_rules/{agent_rule_id}", + local_configuration.get_operation_host(operation_id), + agent_rule_id = datadog::urlencode(agent_rule_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + match serde_json::from_str::< + crate::datadogV2::model::CloudWorkloadSecurityAgentRuleResponse, + >(&local_content) + { + Ok(e) => { + return Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: Some(e), + }) + } + Err(e) => return Err(datadog::Error::Serde(e)), + }; + } else { + let local_entity: Option = + serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) } } @@ -340,7 +1003,7 @@ impl CloudWorkloadSecurityAPI { agent_rule_id: String, ) -> Result< crate::datadogV2::model::CloudWorkloadSecurityAgentRuleResponse, - Error, + datadog::Error, > { match self .get_cloud_workload_security_agent_rule_with_http_info(agent_rule_id) @@ -350,7 +1013,7 @@ impl CloudWorkloadSecurityAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -364,36 +1027,55 @@ impl CloudWorkloadSecurityAPI { &self, agent_rule_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_cloud_workload_security_agent_rule"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/security_monitoring/cloud_workload_security/agent_rules/{agent_rule_id}", local_configuration.get_operation_host(operation_id), - agent_rule_id = urlencode(agent_rule_id) + agent_rule_id = datadog::urlencode(agent_rule_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -406,23 +1088,130 @@ impl CloudWorkloadSecurityAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// Get the list of Cloud Security Management Threats Agent rules. + pub async fn list_csm_threats_agent_rules( + &self, + ) -> Result< + crate::datadogV2::model::CloudWorkloadSecurityAgentRulesListResponse, + datadog::Error, + > { + match self.list_csm_threats_agent_rules_with_http_info().await { + Ok(response_content) => { + if let Some(e) = response_content.entity { + Ok(e) + } else { + Err(datadog::Error::Serde(serde::de::Error::custom( + "response content was None", + ))) + } + } + Err(err) => Err(err), + } + } + + /// Get the list of Cloud Security Management Threats Agent rules. + pub async fn list_csm_threats_agent_rules_with_http_info( + &self, + ) -> Result< + datadog::ResponseContent< + crate::datadogV2::model::CloudWorkloadSecurityAgentRulesListResponse, + >, + datadog::Error, + > { + let local_configuration = &self.config; + let operation_id = "v2.list_csm_threats_agent_rules"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/remote_config/products/cws/agent_rules", + local_configuration.get_operation_host(operation_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + match serde_json::from_str::< + crate::datadogV2::model::CloudWorkloadSecurityAgentRulesListResponse, + >(&local_content) + { + Ok(e) => { + return Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: Some(e), + }) + } + Err(e) => return Err(datadog::Error::Serde(e)), + }; + } else { + let local_entity: Option = + serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) } } @@ -431,7 +1220,7 @@ impl CloudWorkloadSecurityAPI { &self, ) -> Result< crate::datadogV2::model::CloudWorkloadSecurityAgentRulesListResponse, - Error, + datadog::Error, > { match self .list_cloud_workload_security_agent_rules_with_http_info() @@ -441,7 +1230,7 @@ impl CloudWorkloadSecurityAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -454,13 +1243,15 @@ impl CloudWorkloadSecurityAPI { pub async fn list_cloud_workload_security_agent_rules_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent< + crate::datadogV2::model::CloudWorkloadSecurityAgentRulesListResponse, + >, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_cloud_workload_security_agent_rules"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/security_monitoring/cloud_workload_security/agent_rules", @@ -469,20 +1260,39 @@ impl CloudWorkloadSecurityAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -495,23 +1305,184 @@ impl CloudWorkloadSecurityAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// Update a specific Cloud Security Management Threats Agent rule. + /// Returns the Agent rule object when the request is successful. + pub async fn update_csm_threats_agent_rule( + &self, + agent_rule_id: String, + body: crate::datadogV2::model::CloudWorkloadSecurityAgentRuleUpdateRequest, + ) -> Result< + crate::datadogV2::model::CloudWorkloadSecurityAgentRuleResponse, + datadog::Error, + > { + match self + .update_csm_threats_agent_rule_with_http_info(agent_rule_id, body) + .await + { + Ok(response_content) => { + if let Some(e) = response_content.entity { + Ok(e) + } else { + Err(datadog::Error::Serde(serde::de::Error::custom( + "response content was None", + ))) + } + } + Err(err) => Err(err), + } + } + + /// Update a specific Cloud Security Management Threats Agent rule. + /// Returns the Agent rule object when the request is successful. + pub async fn update_csm_threats_agent_rule_with_http_info( + &self, + agent_rule_id: String, + body: crate::datadogV2::model::CloudWorkloadSecurityAgentRuleUpdateRequest, + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { + let local_configuration = &self.config; + let operation_id = "v2.update_csm_threats_agent_rule"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/remote_config/products/cws/agent_rules/{agent_rule_id}", + local_configuration.get_operation_host(operation_id), + agent_rule_id = datadog::urlencode(agent_rule_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + // build body parameters + let output = Vec::new(); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); + if body.serialize(&mut ser).is_ok() { + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + match serde_json::from_str::< + crate::datadogV2::model::CloudWorkloadSecurityAgentRuleResponse, + >(&local_content) + { + Ok(e) => { + return Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: Some(e), + }) + } + Err(e) => return Err(datadog::Error::Serde(e)), + }; + } else { + let local_entity: Option = + serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -523,7 +1494,7 @@ impl CloudWorkloadSecurityAPI { body: crate::datadogV2::model::CloudWorkloadSecurityAgentRuleUpdateRequest, ) -> Result< crate::datadogV2::model::CloudWorkloadSecurityAgentRuleResponse, - Error, + datadog::Error, > { match self .update_cloud_workload_security_agent_rule_with_http_info(agent_rule_id, body) @@ -533,7 +1504,7 @@ impl CloudWorkloadSecurityAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -549,43 +1520,101 @@ impl CloudWorkloadSecurityAPI { agent_rule_id: String, body: crate::datadogV2::model::CloudWorkloadSecurityAgentRuleUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_cloud_workload_security_agent_rule"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/security_monitoring/cloud_workload_security/agent_rules/{agent_rule_id}", local_configuration.get_operation_host(operation_id), - agent_rule_id = urlencode(agent_rule_id) + agent_rule_id = datadog::urlencode(agent_rule_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -598,23 +1627,23 @@ impl CloudWorkloadSecurityAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_cloudflare_integration.rs b/src/datadogV2/api/api_cloudflare_integration.rs index ffccc23d5..e4185e38d 100644 --- a/src/datadogV2/api/api_cloudflare_integration.rs +++ b/src/datadogV2/api/api_cloudflare_integration.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// CreateCloudflareAccountError is a struct for typed errors of method [`CloudflareIntegrationAPI::create_cloudflare_account`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -62,14 +67,13 @@ pub enum UpdateCloudflareAccountError { #[derive(Debug, Clone)] pub struct CloudflareIntegrationAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for CloudflareIntegrationAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -77,8 +81,52 @@ impl CloudflareIntegrationAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create a Cloudflare account. @@ -87,14 +135,14 @@ impl CloudflareIntegrationAPI { body: crate::datadogV2::model::CloudflareAccountCreateRequest, ) -> Result< crate::datadogV2::model::CloudflareAccountResponse, - Error, + datadog::Error, > { match self.create_cloudflare_account_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -108,13 +156,13 @@ impl CloudflareIntegrationAPI { &self, body: crate::datadogV2::model::CloudflareAccountCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_cloudflare_account"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integrations/cloudflare/accounts", @@ -123,27 +171,85 @@ impl CloudflareIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -155,23 +261,23 @@ impl CloudflareIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -179,7 +285,7 @@ impl CloudflareIntegrationAPI { pub async fn delete_cloudflare_account( &self, account_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .delete_cloudflare_account_with_http_info(account_id) .await @@ -193,34 +299,53 @@ impl CloudflareIntegrationAPI { pub async fn delete_cloudflare_account_with_http_info( &self, account_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_cloudflare_account"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integrations/cloudflare/accounts/{account_id}", local_configuration.get_operation_host(operation_id), - account_id = urlencode(account_id) + account_id = datadog::urlencode(account_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -228,7 +353,7 @@ impl CloudflareIntegrationAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -236,12 +361,12 @@ impl CloudflareIntegrationAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -249,14 +374,16 @@ impl CloudflareIntegrationAPI { pub async fn get_cloudflare_account( &self, account_id: String, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::CloudflareAccountResponse, + datadog::Error, + > { match self.get_cloudflare_account_with_http_info(account_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -270,36 +397,55 @@ impl CloudflareIntegrationAPI { &self, account_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_cloudflare_account"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integrations/cloudflare/accounts/{account_id}", local_configuration.get_operation_host(operation_id), - account_id = urlencode(account_id) + account_id = datadog::urlencode(account_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -311,23 +457,23 @@ impl CloudflareIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -336,14 +482,14 @@ impl CloudflareIntegrationAPI { &self, ) -> Result< crate::datadogV2::model::CloudflareAccountsResponse, - Error, + datadog::Error, > { match self.list_cloudflare_accounts_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -356,13 +502,13 @@ impl CloudflareIntegrationAPI { pub async fn list_cloudflare_accounts_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_cloudflare_accounts"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integrations/cloudflare/accounts", @@ -371,20 +517,39 @@ impl CloudflareIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -396,23 +561,23 @@ impl CloudflareIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -423,7 +588,7 @@ impl CloudflareIntegrationAPI { body: crate::datadogV2::model::CloudflareAccountUpdateRequest, ) -> Result< crate::datadogV2::model::CloudflareAccountResponse, - Error, + datadog::Error, > { match self .update_cloudflare_account_with_http_info(account_id, body) @@ -433,7 +598,7 @@ impl CloudflareIntegrationAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -448,43 +613,101 @@ impl CloudflareIntegrationAPI { account_id: String, body: crate::datadogV2::model::CloudflareAccountUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_cloudflare_account"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integrations/cloudflare/accounts/{account_id}", local_configuration.get_operation_host(operation_id), - account_id = urlencode(account_id) + account_id = datadog::urlencode(account_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -496,23 +719,23 @@ impl CloudflareIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_confluent_cloud.rs b/src/datadogV2/api/api_confluent_cloud.rs index bfff66cf8..597b5e4b1 100644 --- a/src/datadogV2/api/api_confluent_cloud.rs +++ b/src/datadogV2/api/api_confluent_cloud.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// CreateConfluentAccountError is a struct for typed errors of method [`ConfluentCloudAPI::create_confluent_account`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -117,14 +122,13 @@ pub enum UpdateConfluentResourceError { #[derive(Debug, Clone)] pub struct ConfluentCloudAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for ConfluentCloudAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -132,22 +136,68 @@ impl ConfluentCloudAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create a Confluent account. pub async fn create_confluent_account( &self, body: crate::datadogV2::model::ConfluentAccountCreateRequest, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::ConfluentAccountResponse, + datadog::Error, + > { match self.create_confluent_account_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -161,13 +211,13 @@ impl ConfluentCloudAPI { &self, body: crate::datadogV2::model::ConfluentAccountCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_confluent_account"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integrations/confluent-cloud/accounts", @@ -176,27 +226,85 @@ impl ConfluentCloudAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -208,23 +316,23 @@ impl ConfluentCloudAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -235,7 +343,7 @@ impl ConfluentCloudAPI { body: crate::datadogV2::model::ConfluentResourceRequest, ) -> Result< crate::datadogV2::model::ConfluentResourceResponse, - Error, + datadog::Error, > { match self .create_confluent_resource_with_http_info(account_id, body) @@ -245,7 +353,7 @@ impl ConfluentCloudAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -260,43 +368,101 @@ impl ConfluentCloudAPI { account_id: String, body: crate::datadogV2::model::ConfluentResourceRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_confluent_resource"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integrations/confluent-cloud/accounts/{account_id}/resources", local_configuration.get_operation_host(operation_id), - account_id = urlencode(account_id) + account_id = datadog::urlencode(account_id) ); let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -308,23 +474,23 @@ impl ConfluentCloudAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -332,7 +498,7 @@ impl ConfluentCloudAPI { pub async fn delete_confluent_account( &self, account_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .delete_confluent_account_with_http_info(account_id) .await @@ -346,34 +512,53 @@ impl ConfluentCloudAPI { pub async fn delete_confluent_account_with_http_info( &self, account_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_confluent_account"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integrations/confluent-cloud/accounts/{account_id}", local_configuration.get_operation_host(operation_id), - account_id = urlencode(account_id) + account_id = datadog::urlencode(account_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -381,7 +566,7 @@ impl ConfluentCloudAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -389,12 +574,12 @@ impl ConfluentCloudAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -403,7 +588,7 @@ impl ConfluentCloudAPI { &self, account_id: String, resource_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .delete_confluent_resource_with_http_info(account_id, resource_id) .await @@ -418,35 +603,54 @@ impl ConfluentCloudAPI { &self, account_id: String, resource_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_confluent_resource"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integrations/confluent-cloud/accounts/{account_id}/resources/{resource_id}", local_configuration.get_operation_host(operation_id), - account_id = urlencode(account_id), - resource_id = urlencode(resource_id) + account_id = datadog::urlencode(account_id), + resource_id = datadog::urlencode(resource_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -454,7 +658,7 @@ impl ConfluentCloudAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -462,12 +666,12 @@ impl ConfluentCloudAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -475,14 +679,16 @@ impl ConfluentCloudAPI { pub async fn get_confluent_account( &self, account_id: String, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::ConfluentAccountResponse, + datadog::Error, + > { match self.get_confluent_account_with_http_info(account_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -496,36 +702,55 @@ impl ConfluentCloudAPI { &self, account_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_confluent_account"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integrations/confluent-cloud/accounts/{account_id}", local_configuration.get_operation_host(operation_id), - account_id = urlencode(account_id) + account_id = datadog::urlencode(account_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -537,23 +762,23 @@ impl ConfluentCloudAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -562,8 +787,10 @@ impl ConfluentCloudAPI { &self, account_id: String, resource_id: String, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::ConfluentResourceResponse, + datadog::Error, + > { match self .get_confluent_resource_with_http_info(account_id, resource_id) .await @@ -572,7 +799,7 @@ impl ConfluentCloudAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -587,37 +814,56 @@ impl ConfluentCloudAPI { account_id: String, resource_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_confluent_resource"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integrations/confluent-cloud/accounts/{account_id}/resources/{resource_id}", local_configuration.get_operation_host(operation_id), - account_id = urlencode(account_id), - resource_id = urlencode(resource_id) + account_id = datadog::urlencode(account_id), + resource_id = datadog::urlencode(resource_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -629,37 +875,39 @@ impl ConfluentCloudAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// List Confluent accounts. pub async fn list_confluent_account( &self, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::ConfluentAccountsResponse, + datadog::Error, + > { match self.list_confluent_account_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -672,13 +920,13 @@ impl ConfluentCloudAPI { pub async fn list_confluent_account_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_confluent_account"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integrations/confluent-cloud/accounts", @@ -687,20 +935,39 @@ impl ConfluentCloudAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -712,23 +979,23 @@ impl ConfluentCloudAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -738,7 +1005,7 @@ impl ConfluentCloudAPI { account_id: String, ) -> Result< crate::datadogV2::model::ConfluentResourcesResponse, - Error, + datadog::Error, > { match self .list_confluent_resource_with_http_info(account_id) @@ -748,7 +1015,7 @@ impl ConfluentCloudAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -762,36 +1029,55 @@ impl ConfluentCloudAPI { &self, account_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_confluent_resource"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integrations/confluent-cloud/accounts/{account_id}/resources", local_configuration.get_operation_host(operation_id), - account_id = urlencode(account_id) + account_id = datadog::urlencode(account_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -803,23 +1089,23 @@ impl ConfluentCloudAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -828,8 +1114,10 @@ impl ConfluentCloudAPI { &self, account_id: String, body: crate::datadogV2::model::ConfluentAccountUpdateRequest, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::ConfluentAccountResponse, + datadog::Error, + > { match self .update_confluent_account_with_http_info(account_id, body) .await @@ -838,7 +1126,7 @@ impl ConfluentCloudAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -853,43 +1141,101 @@ impl ConfluentCloudAPI { account_id: String, body: crate::datadogV2::model::ConfluentAccountUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_confluent_account"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integrations/confluent-cloud/accounts/{account_id}", local_configuration.get_operation_host(operation_id), - account_id = urlencode(account_id) + account_id = datadog::urlencode(account_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -901,23 +1247,23 @@ impl ConfluentCloudAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -929,7 +1275,7 @@ impl ConfluentCloudAPI { body: crate::datadogV2::model::ConfluentResourceRequest, ) -> Result< crate::datadogV2::model::ConfluentResourceResponse, - Error, + datadog::Error, > { match self .update_confluent_resource_with_http_info(account_id, resource_id, body) @@ -939,7 +1285,7 @@ impl ConfluentCloudAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -955,44 +1301,102 @@ impl ConfluentCloudAPI { resource_id: String, body: crate::datadogV2::model::ConfluentResourceRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_confluent_resource"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integrations/confluent-cloud/accounts/{account_id}/resources/{resource_id}", local_configuration.get_operation_host(operation_id), - account_id = urlencode(account_id), - resource_id = urlencode(resource_id) + account_id = datadog::urlencode(account_id), + resource_id = datadog::urlencode(resource_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1004,23 +1408,23 @@ impl ConfluentCloudAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_container_images.rs b/src/datadogV2/api/api_container_images.rs index f6699d0f2..6c1d1623f 100644 --- a/src/datadogV2/api/api_container_images.rs +++ b/src/datadogV2/api/api_container_images.rs @@ -1,10 +1,10 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; +use crate::datadog; use async_stream::try_stream; use futures_core::stream::Stream; -use reqwest; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; /// ListContainerImagesOptionalParams is a struct for passing parameters to the method [`ContainerImagesAPI::list_container_images`] @@ -65,14 +65,13 @@ pub enum ListContainerImagesError { #[derive(Debug, Clone)] pub struct ContainerImagesAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for ContainerImagesAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -80,22 +79,68 @@ impl ContainerImagesAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Get all Container Images for your organization. pub async fn list_container_images( &self, params: ListContainerImagesOptionalParams, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::ContainerImagesResponse, + datadog::Error, + > { match self.list_container_images_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -108,7 +153,10 @@ impl ContainerImagesAPI { &self, mut params: ListContainerImagesOptionalParams, ) -> impl Stream< - Item = Result>, + Item = Result< + crate::datadogV2::model::ContainerImageItem, + datadog::Error, + >, > + '_ { try_stream! { let mut page_size: i32 = 1000; @@ -144,8 +192,8 @@ impl ContainerImagesAPI { &self, params: ListContainerImagesOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_container_images"; @@ -157,7 +205,7 @@ impl ContainerImagesAPI { let page_size = params.page_size; let page_cursor = params.page_cursor; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/container_images", @@ -187,20 +235,39 @@ impl ContainerImagesAPI { local_req_builder.query(&[("page[cursor]", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -212,23 +279,23 @@ impl ContainerImagesAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_containers.rs b/src/datadogV2/api/api_containers.rs index d748e230d..25bb800c8 100644 --- a/src/datadogV2/api/api_containers.rs +++ b/src/datadogV2/api/api_containers.rs @@ -1,10 +1,10 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; +use crate::datadog; use async_stream::try_stream; use futures_core::stream::Stream; -use reqwest; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; /// ListContainersOptionalParams is a struct for passing parameters to the method [`ContainersAPI::list_containers`] @@ -65,14 +65,13 @@ pub enum ListContainersError { #[derive(Debug, Clone)] pub struct ContainersAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for ContainersAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -80,21 +79,66 @@ impl ContainersAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Get all containers for your organization. pub async fn list_containers( &self, params: ListContainersOptionalParams, - ) -> Result> { + ) -> Result> + { match self.list_containers_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -106,8 +150,9 @@ impl ContainersAPI { pub fn list_containers_with_pagination( &self, mut params: ListContainersOptionalParams, - ) -> impl Stream>> - + '_ { + ) -> impl Stream< + Item = Result>, + > + '_ { try_stream! { let mut page_size: i32 = 1000; if params.page_size.is_none() { @@ -142,8 +187,8 @@ impl ContainersAPI { &self, params: ListContainersOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_containers"; @@ -155,7 +200,7 @@ impl ContainersAPI { let page_size = params.page_size; let page_cursor = params.page_cursor; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/containers", @@ -185,20 +230,39 @@ impl ContainersAPI { local_req_builder.query(&[("page[cursor]", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -210,23 +274,23 @@ impl ContainersAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_dashboard_lists.rs b/src/datadogV2/api/api_dashboard_lists.rs index e3ee5ed4a..4bf858006 100644 --- a/src/datadogV2/api/api_dashboard_lists.rs +++ b/src/datadogV2/api/api_dashboard_lists.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// CreateDashboardListItemsError is a struct for typed errors of method [`DashboardListsAPI::create_dashboard_list_items`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -50,14 +55,13 @@ pub enum UpdateDashboardListItemsError { #[derive(Debug, Clone)] pub struct DashboardListsAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for DashboardListsAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -65,8 +69,52 @@ impl DashboardListsAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Add dashboards to an existing dashboard list. @@ -76,7 +124,7 @@ impl DashboardListsAPI { body: crate::datadogV2::model::DashboardListAddItemsRequest, ) -> Result< crate::datadogV2::model::DashboardListAddItemsResponse, - Error, + datadog::Error, > { match self .create_dashboard_list_items_with_http_info(dashboard_list_id, body) @@ -86,7 +134,7 @@ impl DashboardListsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -101,13 +149,13 @@ impl DashboardListsAPI { dashboard_list_id: i64, body: crate::datadogV2::model::DashboardListAddItemsRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_dashboard_list_items"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/dashboard/lists/manual/{dashboard_list_id}/dashboards", @@ -117,27 +165,85 @@ impl DashboardListsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -149,23 +255,23 @@ impl DashboardListsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -176,7 +282,7 @@ impl DashboardListsAPI { body: crate::datadogV2::model::DashboardListDeleteItemsRequest, ) -> Result< crate::datadogV2::model::DashboardListDeleteItemsResponse, - Error, + datadog::Error, > { match self .delete_dashboard_list_items_with_http_info(dashboard_list_id, body) @@ -186,7 +292,7 @@ impl DashboardListsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -201,13 +307,13 @@ impl DashboardListsAPI { dashboard_list_id: i64, body: crate::datadogV2::model::DashboardListDeleteItemsRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.delete_dashboard_list_items"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/dashboard/lists/manual/{dashboard_list_id}/dashboards", @@ -217,27 +323,85 @@ impl DashboardListsAPI { let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -249,23 +413,23 @@ impl DashboardListsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -273,8 +437,10 @@ impl DashboardListsAPI { pub async fn get_dashboard_list_items( &self, dashboard_list_id: i64, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::DashboardListItems, + datadog::Error, + > { match self .get_dashboard_list_items_with_http_info(dashboard_list_id) .await @@ -283,7 +449,7 @@ impl DashboardListsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -297,13 +463,13 @@ impl DashboardListsAPI { &self, dashboard_list_id: i64, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_dashboard_list_items"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/dashboard/lists/manual/{dashboard_list_id}/dashboards", @@ -313,20 +479,39 @@ impl DashboardListsAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -338,23 +523,23 @@ impl DashboardListsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -365,7 +550,7 @@ impl DashboardListsAPI { body: crate::datadogV2::model::DashboardListUpdateItemsRequest, ) -> Result< crate::datadogV2::model::DashboardListUpdateItemsResponse, - Error, + datadog::Error, > { match self .update_dashboard_list_items_with_http_info(dashboard_list_id, body) @@ -375,7 +560,7 @@ impl DashboardListsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -390,13 +575,13 @@ impl DashboardListsAPI { dashboard_list_id: i64, body: crate::datadogV2::model::DashboardListUpdateItemsRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_dashboard_list_items"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/dashboard/lists/manual/{dashboard_list_id}/dashboards", @@ -406,27 +591,85 @@ impl DashboardListsAPI { let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -438,23 +681,23 @@ impl DashboardListsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_dora_metrics.rs b/src/datadogV2/api/api_dora_metrics.rs index 71953646d..f602d5f26 100644 --- a/src/datadogV2/api/api_dora_metrics.rs +++ b/src/datadogV2/api/api_dora_metrics.rs @@ -1,10 +1,15 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; use log::warn; -use reqwest; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// CreateDORADeploymentError is a struct for typed errors of method [`DORAMetricsAPI::create_dora_deployment`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -28,14 +33,13 @@ pub enum CreateDORAIncidentError { #[derive(Debug, Clone)] pub struct DORAMetricsAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for DORAMetricsAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -43,8 +47,52 @@ impl DORAMetricsAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Use this API endpoint to provide data about deployments for DORA metrics. @@ -56,14 +104,16 @@ impl DORAMetricsAPI { pub async fn create_dora_deployment( &self, body: crate::datadogV2::model::DORADeploymentRequest, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::DORADeploymentResponse, + datadog::Error, + > { match self.create_dora_deployment_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -82,21 +132,21 @@ impl DORAMetricsAPI { &self, body: crate::datadogV2::model::DORADeploymentRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_dora_deployment"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.create_dora_deployment' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/dora/deployment", @@ -105,24 +155,78 @@ impl DORAMetricsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -134,23 +238,23 @@ impl DORAMetricsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -162,13 +266,16 @@ impl DORAMetricsAPI { pub async fn create_dora_incident( &self, body: crate::datadogV2::model::DORAIncidentRequest, - ) -> Result> { + ) -> Result< + crate::datadogV2::model::DORAIncidentResponse, + datadog::Error, + > { match self.create_dora_incident_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -186,21 +293,21 @@ impl DORAMetricsAPI { &self, body: crate::datadogV2::model::DORAIncidentRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_dora_incident"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.create_dora_incident' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/dora/incident", @@ -209,24 +316,78 @@ impl DORAMetricsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -238,23 +399,23 @@ impl DORAMetricsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_downtimes.rs b/src/datadogV2/api/api_downtimes.rs index 1d90be891..109a2558c 100644 --- a/src/datadogV2/api/api_downtimes.rs +++ b/src/datadogV2/api/api_downtimes.rs @@ -1,11 +1,16 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; +use crate::datadog; use async_stream::try_stream; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; use futures_core::stream::Stream; -use reqwest; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// GetDowntimeOptionalParams is a struct for passing parameters to the method [`DowntimesAPI::get_downtime`] #[non_exhaustive] @@ -149,14 +154,13 @@ pub enum UpdateDowntimeError { #[derive(Debug, Clone)] pub struct DowntimesAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for DowntimesAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -164,15 +168,59 @@ impl DowntimesAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Cancel a downtime. pub async fn cancel_downtime( &self, downtime_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self.cancel_downtime_with_http_info(downtime_id).await { Ok(_) => Ok(()), Err(err) => Err(err), @@ -183,34 +231,53 @@ impl DowntimesAPI { pub async fn cancel_downtime_with_http_info( &self, downtime_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.cancel_downtime"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/downtime/{downtime_id}", local_configuration.get_operation_host(operation_id), - downtime_id = urlencode(downtime_id) + downtime_id = datadog::urlencode(downtime_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -218,7 +285,7 @@ impl DowntimesAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -226,12 +293,12 @@ impl DowntimesAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -239,13 +306,14 @@ impl DowntimesAPI { pub async fn create_downtime( &self, body: crate::datadogV2::model::DowntimeCreateRequest, - ) -> Result> { + ) -> Result> + { match self.create_downtime_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -259,13 +327,13 @@ impl DowntimesAPI { &self, body: crate::datadogV2::model::DowntimeCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_downtime"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/downtime", @@ -274,27 +342,85 @@ impl DowntimesAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -305,23 +431,23 @@ impl DowntimesAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -330,13 +456,13 @@ impl DowntimesAPI { &self, downtime_id: String, params: GetDowntimeOptionalParams, - ) -> Result> { + ) -> Result> { match self.get_downtime_with_http_info(downtime_id, params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -350,20 +476,22 @@ impl DowntimesAPI { &self, downtime_id: String, params: GetDowntimeOptionalParams, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.get_downtime"; // unbox and build optional parameters let include = params.include; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/downtime/{downtime_id}", local_configuration.get_operation_host(operation_id), - downtime_id = urlencode(downtime_id) + downtime_id = datadog::urlencode(downtime_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); @@ -373,20 +501,39 @@ impl DowntimesAPI { local_req_builder.query(&[("include", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -397,22 +544,22 @@ impl DowntimesAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -420,13 +567,14 @@ impl DowntimesAPI { pub async fn list_downtimes( &self, params: ListDowntimesOptionalParams, - ) -> Result> { + ) -> Result> + { match self.list_downtimes_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -439,7 +587,10 @@ impl DowntimesAPI { &self, mut params: ListDowntimesOptionalParams, ) -> impl Stream< - Item = Result>, + Item = Result< + crate::datadogV2::model::DowntimeResponseData, + datadog::Error, + >, > + '_ { try_stream! { let mut page_size: i64 = 30; @@ -475,8 +626,8 @@ impl DowntimesAPI { &self, params: ListDowntimesOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_downtimes"; @@ -487,7 +638,7 @@ impl DowntimesAPI { let page_offset = params.page_offset; let page_limit = params.page_limit; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/downtime", @@ -513,20 +664,39 @@ impl DowntimesAPI { local_req_builder.query(&[("page[limit]", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -538,23 +708,23 @@ impl DowntimesAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -565,7 +735,7 @@ impl DowntimesAPI { params: ListMonitorDowntimesOptionalParams, ) -> Result< crate::datadogV2::model::MonitorDowntimeMatchResponse, - Error, + datadog::Error, > { match self .list_monitor_downtimes_with_http_info(monitor_id, params) @@ -575,7 +745,7 @@ impl DowntimesAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -591,7 +761,7 @@ impl DowntimesAPI { ) -> impl Stream< Item = Result< crate::datadogV2::model::MonitorDowntimeMatchResponseData, - Error, + datadog::Error, >, > + '_ { try_stream! { @@ -629,8 +799,8 @@ impl DowntimesAPI { monitor_id: i64, params: ListMonitorDowntimesOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_monitor_downtimes"; @@ -639,7 +809,7 @@ impl DowntimesAPI { let page_offset = params.page_offset; let page_limit = params.page_limit; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/monitor/{monitor_id}/downtime_matches", @@ -658,20 +828,39 @@ impl DowntimesAPI { local_req_builder.query(&[("page[limit]", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -683,23 +872,23 @@ impl DowntimesAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -708,13 +897,14 @@ impl DowntimesAPI { &self, downtime_id: String, body: crate::datadogV2::model::DowntimeUpdateRequest, - ) -> Result> { + ) -> Result> + { match self.update_downtime_with_http_info(downtime_id, body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -729,43 +919,101 @@ impl DowntimesAPI { downtime_id: String, body: crate::datadogV2::model::DowntimeUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_downtime"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/downtime/{downtime_id}", local_configuration.get_operation_host(operation_id), - downtime_id = urlencode(downtime_id) + downtime_id = datadog::urlencode(downtime_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -776,23 +1024,23 @@ impl DowntimesAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_events.rs b/src/datadogV2/api/api_events.rs index 0d42abc94..e2481b65a 100644 --- a/src/datadogV2/api/api_events.rs +++ b/src/datadogV2/api/api_events.rs @@ -1,11 +1,16 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; +use crate::datadog; use async_stream::try_stream; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; use futures_core::stream::Stream; -use reqwest; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// ListEventsOptionalParams is a struct for passing parameters to the method [`EventsAPI::list_events`] #[non_exhaustive] @@ -94,14 +99,13 @@ pub enum SearchEventsError { #[derive(Debug, Clone)] pub struct EventsAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for EventsAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -109,8 +113,52 @@ impl EventsAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// List endpoint returns events that match an events search query. @@ -120,13 +168,13 @@ impl EventsAPI { pub async fn list_events( &self, params: ListEventsOptionalParams, - ) -> Result> { + ) -> Result> { match self.list_events_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -138,8 +186,9 @@ impl EventsAPI { pub fn list_events_with_pagination( &self, mut params: ListEventsOptionalParams, - ) -> impl Stream>> + '_ - { + ) -> impl Stream< + Item = Result>, + > + '_ { try_stream! { let mut page_size: i32 = 10; if params.page_limit.is_none() { @@ -176,8 +225,10 @@ impl EventsAPI { pub async fn list_events_with_http_info( &self, params: ListEventsOptionalParams, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.list_events"; @@ -189,7 +240,7 @@ impl EventsAPI { let page_cursor = params.page_cursor; let page_limit = params.page_limit; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/events", @@ -223,20 +274,39 @@ impl EventsAPI { local_req_builder.query(&[("page[limit]", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -248,22 +318,22 @@ impl EventsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -274,13 +344,14 @@ impl EventsAPI { pub async fn search_events( &self, params: SearchEventsOptionalParams, - ) -> Result> { + ) -> Result> + { match self.search_events_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -292,8 +363,9 @@ impl EventsAPI { pub fn search_events_with_pagination( &self, mut params: SearchEventsOptionalParams, - ) -> impl Stream>> + '_ - { + ) -> impl Stream< + Item = Result>, + > + '_ { try_stream! { let mut page_size: i32 = 10; if params.body.is_none() { @@ -337,8 +409,8 @@ impl EventsAPI { &self, params: SearchEventsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.search_events"; @@ -346,7 +418,7 @@ impl EventsAPI { // unbox and build optional parameters let body = params.body; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/events/search", @@ -355,27 +427,85 @@ impl EventsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -387,22 +517,22 @@ impl EventsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_fastly_integration.rs b/src/datadogV2/api/api_fastly_integration.rs index 9ef07c623..35a580d11 100644 --- a/src/datadogV2/api/api_fastly_integration.rs +++ b/src/datadogV2/api/api_fastly_integration.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// CreateFastlyAccountError is a struct for typed errors of method [`FastlyIntegrationAPI::create_fastly_account`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -117,14 +122,13 @@ pub enum UpdateFastlyServiceError { #[derive(Debug, Clone)] pub struct FastlyIntegrationAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for FastlyIntegrationAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -132,22 +136,68 @@ impl FastlyIntegrationAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create a Fastly account. pub async fn create_fastly_account( &self, body: crate::datadogV2::model::FastlyAccountCreateRequest, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::FastlyAccountResponse, + datadog::Error, + > { match self.create_fastly_account_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -161,13 +211,13 @@ impl FastlyIntegrationAPI { &self, body: crate::datadogV2::model::FastlyAccountCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_fastly_account"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integrations/fastly/accounts", @@ -176,27 +226,85 @@ impl FastlyIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -208,23 +316,23 @@ impl FastlyIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -233,8 +341,10 @@ impl FastlyIntegrationAPI { &self, account_id: String, body: crate::datadogV2::model::FastlyServiceRequest, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::FastlyServiceResponse, + datadog::Error, + > { match self .create_fastly_service_with_http_info(account_id, body) .await @@ -243,7 +353,7 @@ impl FastlyIntegrationAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -258,43 +368,101 @@ impl FastlyIntegrationAPI { account_id: String, body: crate::datadogV2::model::FastlyServiceRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_fastly_service"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integrations/fastly/accounts/{account_id}/services", local_configuration.get_operation_host(operation_id), - account_id = urlencode(account_id) + account_id = datadog::urlencode(account_id) ); let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -306,23 +474,23 @@ impl FastlyIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -330,7 +498,7 @@ impl FastlyIntegrationAPI { pub async fn delete_fastly_account( &self, account_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self.delete_fastly_account_with_http_info(account_id).await { Ok(_) => Ok(()), Err(err) => Err(err), @@ -341,34 +509,53 @@ impl FastlyIntegrationAPI { pub async fn delete_fastly_account_with_http_info( &self, account_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_fastly_account"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integrations/fastly/accounts/{account_id}", local_configuration.get_operation_host(operation_id), - account_id = urlencode(account_id) + account_id = datadog::urlencode(account_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -376,7 +563,7 @@ impl FastlyIntegrationAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -384,12 +571,12 @@ impl FastlyIntegrationAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -398,7 +585,7 @@ impl FastlyIntegrationAPI { &self, account_id: String, service_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .delete_fastly_service_with_http_info(account_id, service_id) .await @@ -413,35 +600,54 @@ impl FastlyIntegrationAPI { &self, account_id: String, service_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_fastly_service"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integrations/fastly/accounts/{account_id}/services/{service_id}", local_configuration.get_operation_host(operation_id), - account_id = urlencode(account_id), - service_id = urlencode(service_id) + account_id = datadog::urlencode(account_id), + service_id = datadog::urlencode(service_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -449,7 +655,7 @@ impl FastlyIntegrationAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -457,12 +663,12 @@ impl FastlyIntegrationAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -470,13 +676,14 @@ impl FastlyIntegrationAPI { pub async fn get_fastly_account( &self, account_id: String, - ) -> Result> { + ) -> Result> + { match self.get_fastly_account_with_http_info(account_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -490,36 +697,55 @@ impl FastlyIntegrationAPI { &self, account_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_fastly_account"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integrations/fastly/accounts/{account_id}", local_configuration.get_operation_host(operation_id), - account_id = urlencode(account_id) + account_id = datadog::urlencode(account_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -531,23 +757,23 @@ impl FastlyIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -556,7 +782,8 @@ impl FastlyIntegrationAPI { &self, account_id: String, service_id: String, - ) -> Result> { + ) -> Result> + { match self .get_fastly_service_with_http_info(account_id, service_id) .await @@ -565,7 +792,7 @@ impl FastlyIntegrationAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -580,37 +807,56 @@ impl FastlyIntegrationAPI { account_id: String, service_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_fastly_service"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integrations/fastly/accounts/{account_id}/services/{service_id}", local_configuration.get_operation_host(operation_id), - account_id = urlencode(account_id), - service_id = urlencode(service_id) + account_id = datadog::urlencode(account_id), + service_id = datadog::urlencode(service_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -622,37 +868,39 @@ impl FastlyIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// List Fastly accounts. pub async fn list_fastly_accounts( &self, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::FastlyAccountsResponse, + datadog::Error, + > { match self.list_fastly_accounts_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -665,13 +913,13 @@ impl FastlyIntegrationAPI { pub async fn list_fastly_accounts_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_fastly_accounts"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integrations/fastly/accounts", @@ -680,20 +928,39 @@ impl FastlyIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -705,23 +972,23 @@ impl FastlyIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -729,14 +996,16 @@ impl FastlyIntegrationAPI { pub async fn list_fastly_services( &self, account_id: String, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::FastlyServicesResponse, + datadog::Error, + > { match self.list_fastly_services_with_http_info(account_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -750,36 +1019,55 @@ impl FastlyIntegrationAPI { &self, account_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_fastly_services"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integrations/fastly/accounts/{account_id}/services", local_configuration.get_operation_host(operation_id), - account_id = urlencode(account_id) + account_id = datadog::urlencode(account_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -791,23 +1079,23 @@ impl FastlyIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -816,8 +1104,10 @@ impl FastlyIntegrationAPI { &self, account_id: String, body: crate::datadogV2::model::FastlyAccountUpdateRequest, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::FastlyAccountResponse, + datadog::Error, + > { match self .update_fastly_account_with_http_info(account_id, body) .await @@ -826,7 +1116,7 @@ impl FastlyIntegrationAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -841,43 +1131,101 @@ impl FastlyIntegrationAPI { account_id: String, body: crate::datadogV2::model::FastlyAccountUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_fastly_account"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integrations/fastly/accounts/{account_id}", local_configuration.get_operation_host(operation_id), - account_id = urlencode(account_id) + account_id = datadog::urlencode(account_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -889,23 +1237,23 @@ impl FastlyIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -915,8 +1263,10 @@ impl FastlyIntegrationAPI { account_id: String, service_id: String, body: crate::datadogV2::model::FastlyServiceRequest, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::FastlyServiceResponse, + datadog::Error, + > { match self .update_fastly_service_with_http_info(account_id, service_id, body) .await @@ -925,7 +1275,7 @@ impl FastlyIntegrationAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -941,44 +1291,102 @@ impl FastlyIntegrationAPI { service_id: String, body: crate::datadogV2::model::FastlyServiceRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_fastly_service"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integrations/fastly/accounts/{account_id}/services/{service_id}", local_configuration.get_operation_host(operation_id), - account_id = urlencode(account_id), - service_id = urlencode(service_id) + account_id = datadog::urlencode(account_id), + service_id = datadog::urlencode(service_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -990,23 +1398,23 @@ impl FastlyIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_gcp_integration.rs b/src/datadogV2/api/api_gcp_integration.rs index a193d4e2b..30b07ee27 100644 --- a/src/datadogV2/api/api_gcp_integration.rs +++ b/src/datadogV2/api/api_gcp_integration.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// MakeGCPSTSDelegateOptionalParams is a struct for passing parameters to the method [`GCPIntegrationAPI::make_gcpsts_delegate`] #[non_exhaustive] @@ -85,14 +90,13 @@ pub enum UpdateGCPSTSAccountError { #[derive(Debug, Clone)] pub struct GCPIntegrationAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for GCPIntegrationAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -100,8 +104,52 @@ impl GCPIntegrationAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create a new entry within Datadog for your STS enabled service account. @@ -110,14 +158,14 @@ impl GCPIntegrationAPI { body: crate::datadogV2::model::GCPSTSServiceAccountCreateRequest, ) -> Result< crate::datadogV2::model::GCPSTSServiceAccountResponse, - Error, + datadog::Error, > { match self.create_gcpsts_account_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -131,13 +179,13 @@ impl GCPIntegrationAPI { &self, body: crate::datadogV2::model::GCPSTSServiceAccountCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_gcpsts_account"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integration/gcp/accounts", @@ -146,27 +194,85 @@ impl GCPIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -178,23 +284,23 @@ impl GCPIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -202,7 +308,7 @@ impl GCPIntegrationAPI { pub async fn delete_gcpsts_account( &self, account_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self.delete_gcpsts_account_with_http_info(account_id).await { Ok(_) => Ok(()), Err(err) => Err(err), @@ -213,34 +319,53 @@ impl GCPIntegrationAPI { pub async fn delete_gcpsts_account_with_http_info( &self, account_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_gcpsts_account"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integration/gcp/accounts/{account_id}", local_configuration.get_operation_host(operation_id), - account_id = urlencode(account_id) + account_id = datadog::urlencode(account_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -248,7 +373,7 @@ impl GCPIntegrationAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -256,26 +381,28 @@ impl GCPIntegrationAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// List your Datadog-GCP STS delegate account configured in your Datadog account. pub async fn get_gcpsts_delegate( &self, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::GCPSTSDelegateAccountResponse, + datadog::Error, + > { match self.get_gcpsts_delegate_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -288,13 +415,13 @@ impl GCPIntegrationAPI { pub async fn get_gcpsts_delegate_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_gcpsts_delegate"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integration/gcp/sts_delegate", @@ -303,20 +430,39 @@ impl GCPIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -328,23 +474,23 @@ impl GCPIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -353,14 +499,14 @@ impl GCPIntegrationAPI { &self, ) -> Result< crate::datadogV2::model::GCPSTSServiceAccountsResponse, - Error, + datadog::Error, > { match self.list_gcpsts_accounts_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -373,13 +519,13 @@ impl GCPIntegrationAPI { pub async fn list_gcpsts_accounts_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_gcpsts_accounts"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integration/gcp/accounts", @@ -388,20 +534,39 @@ impl GCPIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -413,23 +578,23 @@ impl GCPIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -439,14 +604,14 @@ impl GCPIntegrationAPI { params: MakeGCPSTSDelegateOptionalParams, ) -> Result< crate::datadogV2::model::GCPSTSDelegateAccountResponse, - Error, + datadog::Error, > { match self.make_gcpsts_delegate_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -460,8 +625,8 @@ impl GCPIntegrationAPI { &self, params: MakeGCPSTSDelegateOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.make_gcpsts_delegate"; @@ -469,7 +634,7 @@ impl GCPIntegrationAPI { // unbox and build optional parameters let body = params.body; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integration/gcp/sts_delegate", @@ -478,27 +643,85 @@ impl GCPIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -510,23 +733,23 @@ impl GCPIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -537,7 +760,7 @@ impl GCPIntegrationAPI { body: crate::datadogV2::model::GCPSTSServiceAccountUpdateRequest, ) -> Result< crate::datadogV2::model::GCPSTSServiceAccountResponse, - Error, + datadog::Error, > { match self .update_gcpsts_account_with_http_info(account_id, body) @@ -547,7 +770,7 @@ impl GCPIntegrationAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -562,43 +785,101 @@ impl GCPIntegrationAPI { account_id: String, body: crate::datadogV2::model::GCPSTSServiceAccountUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_gcpsts_account"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integration/gcp/accounts/{account_id}", local_configuration.get_operation_host(operation_id), - account_id = urlencode(account_id) + account_id = datadog::urlencode(account_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -610,23 +891,23 @@ impl GCPIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_incident_services.rs b/src/datadogV2/api/api_incident_services.rs index 4e4ff1f67..d9e2050eb 100644 --- a/src/datadogV2/api/api_incident_services.rs +++ b/src/datadogV2/api/api_incident_services.rs @@ -1,10 +1,15 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; use log::warn; -use reqwest; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// GetIncidentServiceOptionalParams is a struct for passing parameters to the method [`IncidentServicesAPI::get_incident_service`] #[non_exhaustive] @@ -121,14 +126,13 @@ pub enum UpdateIncidentServiceError { #[derive(Debug, Clone)] pub struct IncidentServicesAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for IncidentServicesAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -136,22 +140,68 @@ impl IncidentServicesAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Creates a new incident service. pub async fn create_incident_service( &self, body: crate::datadogV2::model::IncidentServiceCreateRequest, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::IncidentServiceResponse, + datadog::Error, + > { match self.create_incident_service_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -165,21 +215,21 @@ impl IncidentServicesAPI { &self, body: crate::datadogV2::model::IncidentServiceCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_incident_service"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.create_incident_service' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/services", @@ -188,27 +238,85 @@ impl IncidentServicesAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -220,23 +328,23 @@ impl IncidentServicesAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -244,7 +352,7 @@ impl IncidentServicesAPI { pub async fn delete_incident_service( &self, service_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .delete_incident_service_with_http_info(service_id) .await @@ -258,42 +366,61 @@ impl IncidentServicesAPI { pub async fn delete_incident_service_with_http_info( &self, service_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_incident_service"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.delete_incident_service' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/services/{service_id}", local_configuration.get_operation_host(operation_id), - service_id = urlencode(service_id) + service_id = datadog::urlencode(service_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -301,7 +428,7 @@ impl IncidentServicesAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -309,12 +436,12 @@ impl IncidentServicesAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -324,8 +451,10 @@ impl IncidentServicesAPI { &self, service_id: String, params: GetIncidentServiceOptionalParams, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::IncidentServiceResponse, + datadog::Error, + > { match self .get_incident_service_with_http_info(service_id, params) .await @@ -334,7 +463,7 @@ impl IncidentServicesAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -350,29 +479,29 @@ impl IncidentServicesAPI { service_id: String, params: GetIncidentServiceOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_incident_service"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.get_incident_service' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } // unbox and build optional parameters let include = params.include; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/services/{service_id}", local_configuration.get_operation_host(operation_id), - service_id = urlencode(service_id) + service_id = datadog::urlencode(service_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); @@ -382,20 +511,39 @@ impl IncidentServicesAPI { local_req_builder.query(&[("include", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -407,23 +555,23 @@ impl IncidentServicesAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -431,14 +579,16 @@ impl IncidentServicesAPI { pub async fn list_incident_services( &self, params: ListIncidentServicesOptionalParams, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::IncidentServicesResponse, + datadog::Error, + > { match self.list_incident_services_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -452,18 +602,18 @@ impl IncidentServicesAPI { &self, params: ListIncidentServicesOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_incident_services"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.list_incident_services' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } // unbox and build optional parameters @@ -472,7 +622,7 @@ impl IncidentServicesAPI { let page_offset = params.page_offset; let filter = params.filter; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/services", @@ -498,20 +648,39 @@ impl IncidentServicesAPI { local_req_builder.query(&[("filter", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -523,23 +692,23 @@ impl IncidentServicesAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -548,8 +717,10 @@ impl IncidentServicesAPI { &self, service_id: String, body: crate::datadogV2::model::IncidentServiceUpdateRequest, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::IncidentServiceResponse, + datadog::Error, + > { match self .update_incident_service_with_http_info(service_id, body) .await @@ -558,7 +729,7 @@ impl IncidentServicesAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -573,51 +744,109 @@ impl IncidentServicesAPI { service_id: String, body: crate::datadogV2::model::IncidentServiceUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_incident_service"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.update_incident_service' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/services/{service_id}", local_configuration.get_operation_host(operation_id), - service_id = urlencode(service_id) + service_id = datadog::urlencode(service_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -629,23 +858,23 @@ impl IncidentServicesAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_incident_teams.rs b/src/datadogV2/api/api_incident_teams.rs index 08b2c8021..d96c87871 100644 --- a/src/datadogV2/api/api_incident_teams.rs +++ b/src/datadogV2/api/api_incident_teams.rs @@ -1,10 +1,15 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; use log::warn; -use reqwest; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// GetIncidentTeamOptionalParams is a struct for passing parameters to the method [`IncidentTeamsAPI::get_incident_team`] #[non_exhaustive] @@ -121,14 +126,13 @@ pub enum UpdateIncidentTeamError { #[derive(Debug, Clone)] pub struct IncidentTeamsAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for IncidentTeamsAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -136,21 +140,68 @@ impl IncidentTeamsAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Creates a new incident team. pub async fn create_incident_team( &self, body: crate::datadogV2::model::IncidentTeamCreateRequest, - ) -> Result> { + ) -> Result< + crate::datadogV2::model::IncidentTeamResponse, + datadog::Error, + > { match self.create_incident_team_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -164,21 +215,21 @@ impl IncidentTeamsAPI { &self, body: crate::datadogV2::model::IncidentTeamCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_incident_team"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.create_incident_team' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/teams", @@ -187,27 +238,85 @@ impl IncidentTeamsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -219,23 +328,23 @@ impl IncidentTeamsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -243,7 +352,7 @@ impl IncidentTeamsAPI { pub async fn delete_incident_team( &self, team_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self.delete_incident_team_with_http_info(team_id).await { Ok(_) => Ok(()), Err(err) => Err(err), @@ -254,42 +363,61 @@ impl IncidentTeamsAPI { pub async fn delete_incident_team_with_http_info( &self, team_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_incident_team"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.delete_incident_team' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/teams/{team_id}", local_configuration.get_operation_host(operation_id), - team_id = urlencode(team_id) + team_id = datadog::urlencode(team_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -297,7 +425,7 @@ impl IncidentTeamsAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -305,12 +433,12 @@ impl IncidentTeamsAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -320,13 +448,14 @@ impl IncidentTeamsAPI { &self, team_id: String, params: GetIncidentTeamOptionalParams, - ) -> Result> { + ) -> Result> + { match self.get_incident_team_with_http_info(team_id, params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -342,29 +471,29 @@ impl IncidentTeamsAPI { team_id: String, params: GetIncidentTeamOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_incident_team"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.get_incident_team' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } // unbox and build optional parameters let include = params.include; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/teams/{team_id}", local_configuration.get_operation_host(operation_id), - team_id = urlencode(team_id) + team_id = datadog::urlencode(team_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); @@ -374,20 +503,39 @@ impl IncidentTeamsAPI { local_req_builder.query(&[("include", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -399,23 +547,23 @@ impl IncidentTeamsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -423,13 +571,16 @@ impl IncidentTeamsAPI { pub async fn list_incident_teams( &self, params: ListIncidentTeamsOptionalParams, - ) -> Result> { + ) -> Result< + crate::datadogV2::model::IncidentTeamsResponse, + datadog::Error, + > { match self.list_incident_teams_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -443,18 +594,18 @@ impl IncidentTeamsAPI { &self, params: ListIncidentTeamsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_incident_teams"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.list_incident_teams' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } // unbox and build optional parameters @@ -463,7 +614,7 @@ impl IncidentTeamsAPI { let page_offset = params.page_offset; let filter = params.filter; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/teams", @@ -489,20 +640,39 @@ impl IncidentTeamsAPI { local_req_builder.query(&[("filter", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -514,23 +684,23 @@ impl IncidentTeamsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -539,7 +709,10 @@ impl IncidentTeamsAPI { &self, team_id: String, body: crate::datadogV2::model::IncidentTeamUpdateRequest, - ) -> Result> { + ) -> Result< + crate::datadogV2::model::IncidentTeamResponse, + datadog::Error, + > { match self .update_incident_team_with_http_info(team_id, body) .await @@ -548,7 +721,7 @@ impl IncidentTeamsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -563,51 +736,109 @@ impl IncidentTeamsAPI { team_id: String, body: crate::datadogV2::model::IncidentTeamUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_incident_team"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.update_incident_team' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/teams/{team_id}", local_configuration.get_operation_host(operation_id), - team_id = urlencode(team_id) + team_id = datadog::urlencode(team_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -619,23 +850,23 @@ impl IncidentTeamsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_incidents.rs b/src/datadogV2/api/api_incidents.rs index 9035adeb0..d99ce5498 100644 --- a/src/datadogV2/api/api_incidents.rs +++ b/src/datadogV2/api/api_incidents.rs @@ -1,12 +1,17 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; +use crate::datadog; use async_stream::try_stream; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; use futures_core::stream::Stream; use log::warn; -use reqwest; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// GetIncidentOptionalParams is a struct for passing parameters to the method [`IncidentsAPI::get_incident`] #[non_exhaustive] @@ -374,14 +379,13 @@ pub enum UpdateIncidentTodoError { #[derive(Debug, Clone)] pub struct IncidentsAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for IncidentsAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -389,21 +393,66 @@ impl IncidentsAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create an incident. pub async fn create_incident( &self, body: crate::datadogV2::model::IncidentCreateRequest, - ) -> Result> { + ) -> Result> + { match self.create_incident_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -417,21 +466,21 @@ impl IncidentsAPI { &self, body: crate::datadogV2::model::IncidentCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_incident"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.create_incident' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/incidents", @@ -440,27 +489,85 @@ impl IncidentsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -471,23 +578,23 @@ impl IncidentsAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -498,7 +605,7 @@ impl IncidentsAPI { body: crate::datadogV2::model::IncidentIntegrationMetadataCreateRequest, ) -> Result< crate::datadogV2::model::IncidentIntegrationMetadataResponse, - Error, + datadog::Error, > { match self .create_incident_integration_with_http_info(incident_id, body) @@ -508,7 +615,7 @@ impl IncidentsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -523,51 +630,109 @@ impl IncidentsAPI { incident_id: String, body: crate::datadogV2::model::IncidentIntegrationMetadataCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_incident_integration"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.create_incident_integration' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/incidents/{incident_id}/relationships/integrations", local_configuration.get_operation_host(operation_id), - incident_id = urlencode(incident_id) + incident_id = datadog::urlencode(incident_id) ); let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -579,23 +744,23 @@ impl IncidentsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -604,7 +769,10 @@ impl IncidentsAPI { &self, incident_id: String, body: crate::datadogV2::model::IncidentTodoCreateRequest, - ) -> Result> { + ) -> Result< + crate::datadogV2::model::IncidentTodoResponse, + datadog::Error, + > { match self .create_incident_todo_with_http_info(incident_id, body) .await @@ -613,7 +781,7 @@ impl IncidentsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -628,51 +796,109 @@ impl IncidentsAPI { incident_id: String, body: crate::datadogV2::model::IncidentTodoCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_incident_todo"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.create_incident_todo' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/incidents/{incident_id}/relationships/todos", local_configuration.get_operation_host(operation_id), - incident_id = urlencode(incident_id) + incident_id = datadog::urlencode(incident_id) ); let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -684,23 +910,23 @@ impl IncidentsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -708,7 +934,7 @@ impl IncidentsAPI { pub async fn delete_incident( &self, incident_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self.delete_incident_with_http_info(incident_id).await { Ok(_) => Ok(()), Err(err) => Err(err), @@ -719,42 +945,61 @@ impl IncidentsAPI { pub async fn delete_incident_with_http_info( &self, incident_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_incident"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.delete_incident' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/incidents/{incident_id}", local_configuration.get_operation_host(operation_id), - incident_id = urlencode(incident_id) + incident_id = datadog::urlencode(incident_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -762,7 +1007,7 @@ impl IncidentsAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -770,12 +1015,12 @@ impl IncidentsAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -784,7 +1029,7 @@ impl IncidentsAPI { &self, incident_id: String, integration_metadata_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .delete_incident_integration_with_http_info(incident_id, integration_metadata_id) .await @@ -799,44 +1044,63 @@ impl IncidentsAPI { &self, incident_id: String, integration_metadata_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_incident_integration"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.delete_incident_integration' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/incidents/{incident_id}/relationships/integrations/{integration_metadata_id}", local_configuration.get_operation_host(operation_id), incident_id= - urlencode(incident_id) + datadog::urlencode(incident_id) , integration_metadata_id= - urlencode(integration_metadata_id) + datadog::urlencode(integration_metadata_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -844,7 +1108,7 @@ impl IncidentsAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -852,12 +1116,12 @@ impl IncidentsAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -866,7 +1130,7 @@ impl IncidentsAPI { &self, incident_id: String, todo_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .delete_incident_todo_with_http_info(incident_id, todo_id) .await @@ -881,43 +1145,62 @@ impl IncidentsAPI { &self, incident_id: String, todo_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_incident_todo"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.delete_incident_todo' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/incidents/{incident_id}/relationships/todos/{todo_id}", local_configuration.get_operation_host(operation_id), - incident_id = urlencode(incident_id), - todo_id = urlencode(todo_id) + incident_id = datadog::urlencode(incident_id), + todo_id = datadog::urlencode(todo_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -925,7 +1208,7 @@ impl IncidentsAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -933,12 +1216,12 @@ impl IncidentsAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -947,13 +1230,13 @@ impl IncidentsAPI { &self, incident_id: String, params: GetIncidentOptionalParams, - ) -> Result> { + ) -> Result> { match self.get_incident_with_http_info(incident_id, params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -967,28 +1250,30 @@ impl IncidentsAPI { &self, incident_id: String, params: GetIncidentOptionalParams, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.get_incident"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.get_incident' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } // unbox and build optional parameters let include = params.include; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/incidents/{incident_id}", local_configuration.get_operation_host(operation_id), - incident_id = urlencode(incident_id) + incident_id = datadog::urlencode(incident_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); @@ -1005,20 +1290,39 @@ impl IncidentsAPI { )]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1029,22 +1333,22 @@ impl IncidentsAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1055,7 +1359,7 @@ impl IncidentsAPI { integration_metadata_id: String, ) -> Result< crate::datadogV2::model::IncidentIntegrationMetadataResponse, - Error, + datadog::Error, > { match self .get_incident_integration_with_http_info(incident_id, integration_metadata_id) @@ -1065,7 +1369,7 @@ impl IncidentsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1080,46 +1384,65 @@ impl IncidentsAPI { incident_id: String, integration_metadata_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_incident_integration"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.get_incident_integration' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/incidents/{incident_id}/relationships/integrations/{integration_metadata_id}", local_configuration.get_operation_host(operation_id), incident_id= - urlencode(incident_id) + datadog::urlencode(incident_id) , integration_metadata_id= - urlencode(integration_metadata_id) + datadog::urlencode(integration_metadata_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1131,23 +1454,23 @@ impl IncidentsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1156,7 +1479,8 @@ impl IncidentsAPI { &self, incident_id: String, todo_id: String, - ) -> Result> { + ) -> Result> + { match self .get_incident_todo_with_http_info(incident_id, todo_id) .await @@ -1165,7 +1489,7 @@ impl IncidentsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1180,45 +1504,64 @@ impl IncidentsAPI { incident_id: String, todo_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_incident_todo"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.get_incident_todo' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/incidents/{incident_id}/relationships/todos/{todo_id}", local_configuration.get_operation_host(operation_id), - incident_id = urlencode(incident_id), - todo_id = urlencode(todo_id) + incident_id = datadog::urlencode(incident_id), + todo_id = datadog::urlencode(todo_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1230,23 +1573,23 @@ impl IncidentsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1257,7 +1600,7 @@ impl IncidentsAPI { params: ListIncidentAttachmentsOptionalParams, ) -> Result< crate::datadogV2::model::IncidentAttachmentsResponse, - Error, + datadog::Error, > { match self .list_incident_attachments_with_http_info(incident_id, params) @@ -1267,7 +1610,7 @@ impl IncidentsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1282,30 +1625,30 @@ impl IncidentsAPI { incident_id: String, params: ListIncidentAttachmentsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_incident_attachments"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.list_incident_attachments' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } // unbox and build optional parameters let include = params.include; let filter_attachment_type = params.filter_attachment_type; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/incidents/{incident_id}/attachments", local_configuration.get_operation_host(operation_id), - incident_id = urlencode(incident_id) + incident_id = datadog::urlencode(incident_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); @@ -1333,20 +1676,39 @@ impl IncidentsAPI { )]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1358,23 +1720,23 @@ impl IncidentsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1384,7 +1746,7 @@ impl IncidentsAPI { incident_id: String, ) -> Result< crate::datadogV2::model::IncidentIntegrationMetadataListResponse, - Error, + datadog::Error, > { match self .list_incident_integrations_with_http_info(incident_id) @@ -1394,7 +1756,7 @@ impl IncidentsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1408,44 +1770,63 @@ impl IncidentsAPI { &self, incident_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_incident_integrations"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.list_incident_integrations' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/incidents/{incident_id}/relationships/integrations", local_configuration.get_operation_host(operation_id), - incident_id = urlencode(incident_id) + incident_id = datadog::urlencode(incident_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1458,23 +1839,23 @@ impl IncidentsAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1482,14 +1863,16 @@ impl IncidentsAPI { pub async fn list_incident_todos( &self, incident_id: String, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::IncidentTodoListResponse, + datadog::Error, + > { match self.list_incident_todos_with_http_info(incident_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1503,44 +1886,63 @@ impl IncidentsAPI { &self, incident_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_incident_todos"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.list_incident_todos' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/incidents/{incident_id}/relationships/todos", local_configuration.get_operation_host(operation_id), - incident_id = urlencode(incident_id) + incident_id = datadog::urlencode(incident_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1552,23 +1954,23 @@ impl IncidentsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1576,13 +1978,14 @@ impl IncidentsAPI { pub async fn list_incidents( &self, params: ListIncidentsOptionalParams, - ) -> Result> { + ) -> Result> + { match self.list_incidents_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1595,7 +1998,10 @@ impl IncidentsAPI { &self, mut params: ListIncidentsOptionalParams, ) -> impl Stream< - Item = Result>, + Item = Result< + crate::datadogV2::model::IncidentResponseData, + datadog::Error, + >, > + '_ { try_stream! { let mut page_size: i64 = 10; @@ -1630,18 +2036,18 @@ impl IncidentsAPI { &self, params: ListIncidentsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_incidents"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.list_incidents' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } // unbox and build optional parameters @@ -1649,7 +2055,7 @@ impl IncidentsAPI { let page_size = params.page_size; let page_offset = params.page_offset; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/incidents", @@ -1678,20 +2084,39 @@ impl IncidentsAPI { local_req_builder.query(&[("page[offset]", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1702,23 +2127,23 @@ impl IncidentsAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1727,13 +2152,14 @@ impl IncidentsAPI { &self, query: String, params: SearchIncidentsOptionalParams, - ) -> Result> { + ) -> Result> + { match self.search_incidents_with_http_info(query, params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1749,7 +2175,7 @@ impl IncidentsAPI { ) -> impl Stream< Item = Result< crate::datadogV2::model::IncidentSearchResponseIncidentsData, - Error, + datadog::Error, >, > + '_ { try_stream! { @@ -1787,18 +2213,18 @@ impl IncidentsAPI { query: String, params: SearchIncidentsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.search_incidents"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.search_incidents' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } // unbox and build optional parameters @@ -1807,7 +2233,7 @@ impl IncidentsAPI { let page_size = params.page_size; let page_offset = params.page_offset; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/incidents/search", @@ -1834,20 +2260,39 @@ impl IncidentsAPI { local_req_builder.query(&[("page[offset]", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1859,23 +2304,23 @@ impl IncidentsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1885,7 +2330,8 @@ impl IncidentsAPI { incident_id: String, body: crate::datadogV2::model::IncidentUpdateRequest, params: UpdateIncidentOptionalParams, - ) -> Result> { + ) -> Result> + { match self .update_incident_with_http_info(incident_id, body, params) .await @@ -1894,7 +2340,7 @@ impl IncidentsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1910,29 +2356,29 @@ impl IncidentsAPI { body: crate::datadogV2::model::IncidentUpdateRequest, params: UpdateIncidentOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_incident"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.update_incident' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } // unbox and build optional parameters let include = params.include; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/incidents/{incident_id}", local_configuration.get_operation_host(operation_id), - incident_id = urlencode(incident_id) + incident_id = datadog::urlencode(incident_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); @@ -1949,27 +2395,85 @@ impl IncidentsAPI { )]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1980,23 +2484,23 @@ impl IncidentsAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -2008,7 +2512,7 @@ impl IncidentsAPI { params: UpdateIncidentAttachmentsOptionalParams, ) -> Result< crate::datadogV2::model::IncidentAttachmentUpdateResponse, - Error, + datadog::Error, > { match self .update_incident_attachments_with_http_info(incident_id, body, params) @@ -2018,7 +2522,7 @@ impl IncidentsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -2034,29 +2538,29 @@ impl IncidentsAPI { body: crate::datadogV2::model::IncidentAttachmentUpdateRequest, params: UpdateIncidentAttachmentsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_incident_attachments"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.update_incident_attachments' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } // unbox and build optional parameters let include = params.include; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/incidents/{incident_id}/attachments", local_configuration.get_operation_host(operation_id), - incident_id = urlencode(incident_id) + incident_id = datadog::urlencode(incident_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); @@ -2073,27 +2577,85 @@ impl IncidentsAPI { )]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -2105,23 +2667,23 @@ impl IncidentsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -2133,7 +2695,7 @@ impl IncidentsAPI { body: crate::datadogV2::model::IncidentIntegrationMetadataPatchRequest, ) -> Result< crate::datadogV2::model::IncidentIntegrationMetadataResponse, - Error, + datadog::Error, > { match self .update_incident_integration_with_http_info(incident_id, integration_metadata_id, body) @@ -2143,7 +2705,7 @@ impl IncidentsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -2159,53 +2721,111 @@ impl IncidentsAPI { integration_metadata_id: String, body: crate::datadogV2::model::IncidentIntegrationMetadataPatchRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_incident_integration"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.update_incident_integration' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/incidents/{incident_id}/relationships/integrations/{integration_metadata_id}", local_configuration.get_operation_host(operation_id), incident_id= - urlencode(incident_id) + datadog::urlencode(incident_id) , integration_metadata_id= - urlencode(integration_metadata_id) + datadog::urlencode(integration_metadata_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -2217,23 +2837,23 @@ impl IncidentsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -2243,7 +2863,10 @@ impl IncidentsAPI { incident_id: String, todo_id: String, body: crate::datadogV2::model::IncidentTodoPatchRequest, - ) -> Result> { + ) -> Result< + crate::datadogV2::model::IncidentTodoResponse, + datadog::Error, + > { match self .update_incident_todo_with_http_info(incident_id, todo_id, body) .await @@ -2252,7 +2875,7 @@ impl IncidentsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -2268,52 +2891,110 @@ impl IncidentsAPI { todo_id: String, body: crate::datadogV2::model::IncidentTodoPatchRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_incident_todo"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.update_incident_todo' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/incidents/{incident_id}/relationships/todos/{todo_id}", local_configuration.get_operation_host(operation_id), - incident_id = urlencode(incident_id), - todo_id = urlencode(todo_id) + incident_id = datadog::urlencode(incident_id), + todo_id = datadog::urlencode(todo_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -2325,23 +3006,23 @@ impl IncidentsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_ip_allowlist.rs b/src/datadogV2/api/api_ip_allowlist.rs index ae2d3da41..c8ba4c0bb 100644 --- a/src/datadogV2/api/api_ip_allowlist.rs +++ b/src/datadogV2/api/api_ip_allowlist.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// GetIPAllowlistError is a struct for typed errors of method [`IPAllowlistAPI::get_ip_allowlist`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -28,14 +33,13 @@ pub enum UpdateIPAllowlistError { #[derive(Debug, Clone)] pub struct IPAllowlistAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for IPAllowlistAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -43,20 +47,65 @@ impl IPAllowlistAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Returns the IP allowlist and its enabled or disabled state. pub async fn get_ip_allowlist( &self, - ) -> Result> { + ) -> Result> + { match self.get_ip_allowlist_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -69,13 +118,13 @@ impl IPAllowlistAPI { pub async fn get_ip_allowlist_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_ip_allowlist"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/ip_allowlist", @@ -84,20 +133,39 @@ impl IPAllowlistAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -109,23 +177,23 @@ impl IPAllowlistAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -133,13 +201,14 @@ impl IPAllowlistAPI { pub async fn update_ip_allowlist( &self, body: crate::datadogV2::model::IPAllowlistUpdateRequest, - ) -> Result> { + ) -> Result> + { match self.update_ip_allowlist_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -153,13 +222,13 @@ impl IPAllowlistAPI { &self, body: crate::datadogV2::model::IPAllowlistUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_ip_allowlist"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/ip_allowlist", @@ -168,27 +237,85 @@ impl IPAllowlistAPI { let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -200,23 +327,23 @@ impl IPAllowlistAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_key_management.rs b/src/datadogV2/api/api_key_management.rs index bd32e7daf..01545f426 100644 --- a/src/datadogV2/api/api_key_management.rs +++ b/src/datadogV2/api/api_key_management.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// GetAPIKeyOptionalParams is a struct for passing parameters to the method [`KeyManagementAPI::get_api_key`] #[non_exhaustive] @@ -399,14 +404,13 @@ pub enum UpdateCurrentUserApplicationKeyError { #[derive(Debug, Clone)] pub struct KeyManagementAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for KeyManagementAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -414,21 +418,65 @@ impl KeyManagementAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create an API key. pub async fn create_api_key( &self, body: crate::datadogV2::model::APIKeyCreateRequest, - ) -> Result> { + ) -> Result> { match self.create_api_key_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -441,12 +489,14 @@ impl KeyManagementAPI { pub async fn create_api_key_with_http_info( &self, body: crate::datadogV2::model::APIKeyCreateRequest, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.create_api_key"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/api_keys", @@ -455,27 +505,85 @@ impl KeyManagementAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -485,22 +593,22 @@ impl KeyManagementAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -510,7 +618,7 @@ impl KeyManagementAPI { body: crate::datadogV2::model::ApplicationKeyCreateRequest, ) -> Result< crate::datadogV2::model::ApplicationKeyResponse, - Error, + datadog::Error, > { match self .create_current_user_application_key_with_http_info(body) @@ -520,7 +628,7 @@ impl KeyManagementAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -534,13 +642,13 @@ impl KeyManagementAPI { &self, body: crate::datadogV2::model::ApplicationKeyCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_current_user_application_key"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/current_user/application_keys", @@ -549,27 +657,85 @@ impl KeyManagementAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -581,28 +747,31 @@ impl KeyManagementAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Delete an API key. - pub async fn delete_api_key(&self, api_key_id: String) -> Result<(), Error> { + pub async fn delete_api_key( + &self, + api_key_id: String, + ) -> Result<(), datadog::Error> { match self.delete_api_key_with_http_info(api_key_id).await { Ok(_) => Ok(()), Err(err) => Err(err), @@ -613,34 +782,53 @@ impl KeyManagementAPI { pub async fn delete_api_key_with_http_info( &self, api_key_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_api_key"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/api_keys/{api_key_id}", local_configuration.get_operation_host(operation_id), - api_key_id = urlencode(api_key_id) + api_key_id = datadog::urlencode(api_key_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -648,19 +836,19 @@ impl KeyManagementAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, }) } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -668,7 +856,7 @@ impl KeyManagementAPI { pub async fn delete_application_key( &self, app_key_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self.delete_application_key_with_http_info(app_key_id).await { Ok(_) => Ok(()), Err(err) => Err(err), @@ -679,34 +867,53 @@ impl KeyManagementAPI { pub async fn delete_application_key_with_http_info( &self, app_key_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_application_key"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/application_keys/{app_key_id}", local_configuration.get_operation_host(operation_id), - app_key_id = urlencode(app_key_id) + app_key_id = datadog::urlencode(app_key_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -714,7 +921,7 @@ impl KeyManagementAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -722,12 +929,12 @@ impl KeyManagementAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -735,7 +942,7 @@ impl KeyManagementAPI { pub async fn delete_current_user_application_key( &self, app_key_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .delete_current_user_application_key_with_http_info(app_key_id) .await @@ -749,34 +956,54 @@ impl KeyManagementAPI { pub async fn delete_current_user_application_key_with_http_info( &self, app_key_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> + { let local_configuration = &self.config; let operation_id = "v2.delete_current_user_application_key"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/current_user/application_keys/{app_key_id}", local_configuration.get_operation_host(operation_id), - app_key_id = urlencode(app_key_id) + app_key_id = datadog::urlencode(app_key_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -784,7 +1011,7 @@ impl KeyManagementAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -792,12 +1019,12 @@ impl KeyManagementAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -806,13 +1033,13 @@ impl KeyManagementAPI { &self, api_key_id: String, params: GetAPIKeyOptionalParams, - ) -> Result> { + ) -> Result> { match self.get_api_key_with_http_info(api_key_id, params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -826,20 +1053,22 @@ impl KeyManagementAPI { &self, api_key_id: String, params: GetAPIKeyOptionalParams, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.get_api_key"; // unbox and build optional parameters let include = params.include; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/api_keys/{api_key_id}", local_configuration.get_operation_host(operation_id), - api_key_id = urlencode(api_key_id) + api_key_id = datadog::urlencode(api_key_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); @@ -849,20 +1078,39 @@ impl KeyManagementAPI { local_req_builder.query(&[("include", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -872,22 +1120,22 @@ impl KeyManagementAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -896,8 +1144,10 @@ impl KeyManagementAPI { &self, app_key_id: String, params: GetApplicationKeyOptionalParams, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::ApplicationKeyResponse, + datadog::Error, + > { match self .get_application_key_with_http_info(app_key_id, params) .await @@ -906,7 +1156,7 @@ impl KeyManagementAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -921,8 +1171,8 @@ impl KeyManagementAPI { app_key_id: String, params: GetApplicationKeyOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_application_key"; @@ -930,12 +1180,12 @@ impl KeyManagementAPI { // unbox and build optional parameters let include = params.include; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/application_keys/{app_key_id}", local_configuration.get_operation_host(operation_id), - app_key_id = urlencode(app_key_id) + app_key_id = datadog::urlencode(app_key_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); @@ -945,20 +1195,39 @@ impl KeyManagementAPI { local_req_builder.query(&[("include", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -970,23 +1239,23 @@ impl KeyManagementAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -996,7 +1265,7 @@ impl KeyManagementAPI { app_key_id: String, ) -> Result< crate::datadogV2::model::ApplicationKeyResponse, - Error, + datadog::Error, > { match self .get_current_user_application_key_with_http_info(app_key_id) @@ -1006,7 +1275,7 @@ impl KeyManagementAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1020,36 +1289,55 @@ impl KeyManagementAPI { &self, app_key_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_current_user_application_key"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/current_user/application_keys/{app_key_id}", local_configuration.get_operation_host(operation_id), - app_key_id = urlencode(app_key_id) + app_key_id = datadog::urlencode(app_key_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1061,23 +1349,23 @@ impl KeyManagementAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1085,13 +1373,13 @@ impl KeyManagementAPI { pub async fn list_api_keys( &self, params: ListAPIKeysOptionalParams, - ) -> Result> { + ) -> Result> { match self.list_api_keys_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1104,8 +1392,10 @@ impl KeyManagementAPI { pub async fn list_api_keys_with_http_info( &self, params: ListAPIKeysOptionalParams, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.list_api_keys"; @@ -1122,7 +1412,7 @@ impl KeyManagementAPI { let filter_remote_config_read_enabled = params.filter_remote_config_read_enabled; let filter_category = params.filter_category; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/api_keys", @@ -1178,20 +1468,39 @@ impl KeyManagementAPI { local_req_builder.query(&[("filter[category]", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1201,22 +1510,22 @@ impl KeyManagementAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1224,14 +1533,16 @@ impl KeyManagementAPI { pub async fn list_application_keys( &self, params: ListApplicationKeysOptionalParams, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::ListApplicationKeysResponse, + datadog::Error, + > { match self.list_application_keys_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1245,8 +1556,8 @@ impl KeyManagementAPI { &self, params: ListApplicationKeysOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_application_keys"; @@ -1260,7 +1571,7 @@ impl KeyManagementAPI { let filter_created_at_end = params.filter_created_at_end; let include = params.include; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/application_keys", @@ -1298,20 +1609,39 @@ impl KeyManagementAPI { local_req_builder.query(&[("include", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1323,23 +1653,23 @@ impl KeyManagementAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1349,7 +1679,7 @@ impl KeyManagementAPI { params: ListCurrentUserApplicationKeysOptionalParams, ) -> Result< crate::datadogV2::model::ListApplicationKeysResponse, - Error, + datadog::Error, > { match self .list_current_user_application_keys_with_http_info(params) @@ -1359,7 +1689,7 @@ impl KeyManagementAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1373,8 +1703,8 @@ impl KeyManagementAPI { &self, params: ListCurrentUserApplicationKeysOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_current_user_application_keys"; @@ -1388,7 +1718,7 @@ impl KeyManagementAPI { let filter_created_at_end = params.filter_created_at_end; let include = params.include; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/current_user/application_keys", @@ -1426,20 +1756,39 @@ impl KeyManagementAPI { local_req_builder.query(&[("include", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1451,23 +1800,23 @@ impl KeyManagementAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1476,13 +1825,13 @@ impl KeyManagementAPI { &self, api_key_id: String, body: crate::datadogV2::model::APIKeyUpdateRequest, - ) -> Result> { + ) -> Result> { match self.update_api_key_with_http_info(api_key_id, body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1496,42 +1845,102 @@ impl KeyManagementAPI { &self, api_key_id: String, body: crate::datadogV2::model::APIKeyUpdateRequest, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.update_api_key"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/api_keys/{api_key_id}", local_configuration.get_operation_host(operation_id), - api_key_id = urlencode(api_key_id) + api_key_id = datadog::urlencode(api_key_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1541,22 +1950,22 @@ impl KeyManagementAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1565,8 +1974,10 @@ impl KeyManagementAPI { &self, app_key_id: String, body: crate::datadogV2::model::ApplicationKeyUpdateRequest, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::ApplicationKeyResponse, + datadog::Error, + > { match self .update_application_key_with_http_info(app_key_id, body) .await @@ -1575,7 +1986,7 @@ impl KeyManagementAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1590,43 +2001,101 @@ impl KeyManagementAPI { app_key_id: String, body: crate::datadogV2::model::ApplicationKeyUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_application_key"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/application_keys/{app_key_id}", local_configuration.get_operation_host(operation_id), - app_key_id = urlencode(app_key_id) + app_key_id = datadog::urlencode(app_key_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1638,23 +2107,23 @@ impl KeyManagementAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1665,7 +2134,7 @@ impl KeyManagementAPI { body: crate::datadogV2::model::ApplicationKeyUpdateRequest, ) -> Result< crate::datadogV2::model::ApplicationKeyResponse, - Error, + datadog::Error, > { match self .update_current_user_application_key_with_http_info(app_key_id, body) @@ -1675,7 +2144,7 @@ impl KeyManagementAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1690,43 +2159,101 @@ impl KeyManagementAPI { app_key_id: String, body: crate::datadogV2::model::ApplicationKeyUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_current_user_application_key"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/current_user/application_keys/{app_key_id}", local_configuration.get_operation_host(operation_id), - app_key_id = urlencode(app_key_id) + app_key_id = datadog::urlencode(app_key_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1738,23 +2265,23 @@ impl KeyManagementAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_logs.rs b/src/datadogV2/api/api_logs.rs index e126da9c4..0bb198719 100644 --- a/src/datadogV2/api/api_logs.rs +++ b/src/datadogV2/api/api_logs.rs @@ -1,11 +1,16 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; +use crate::datadog; use async_stream::try_stream; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; use futures_core::stream::Stream; -use reqwest; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// ListLogsOptionalParams is a struct for passing parameters to the method [`LogsAPI::list_logs`] #[non_exhaustive] @@ -158,14 +163,13 @@ pub enum SubmitLogError { #[derive(Debug, Clone)] pub struct LogsAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for LogsAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -173,21 +177,66 @@ impl LogsAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// The API endpoint to aggregate events into buckets and compute metrics and timeseries. pub async fn aggregate_logs( &self, body: crate::datadogV2::model::LogsAggregateRequest, - ) -> Result> { + ) -> Result> + { match self.aggregate_logs_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -201,13 +250,13 @@ impl LogsAPI { &self, body: crate::datadogV2::model::LogsAggregateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.aggregate_logs"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/logs/analytics/aggregate", @@ -216,27 +265,85 @@ impl LogsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -248,23 +355,23 @@ impl LogsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -282,13 +389,13 @@ impl LogsAPI { pub async fn list_logs( &self, params: ListLogsOptionalParams, - ) -> Result> { + ) -> Result> { match self.list_logs_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -300,7 +407,8 @@ impl LogsAPI { pub fn list_logs_with_pagination( &self, mut params: ListLogsOptionalParams, - ) -> impl Stream>> + '_ { + ) -> impl Stream>> + '_ + { try_stream! { let mut page_size: i32 = 10; if params.body.is_none() { @@ -350,15 +458,17 @@ impl LogsAPI { pub async fn list_logs_with_http_info( &self, params: ListLogsOptionalParams, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.list_logs"; // unbox and build optional parameters let body = params.body; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/logs/events/search", @@ -367,27 +477,85 @@ impl LogsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -398,22 +566,22 @@ impl LogsAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -431,13 +599,13 @@ impl LogsAPI { pub async fn list_logs_get( &self, params: ListLogsGetOptionalParams, - ) -> Result> { + ) -> Result> { match self.list_logs_get_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -449,7 +617,7 @@ impl LogsAPI { pub fn list_logs_get_with_pagination( &self, mut params: ListLogsGetOptionalParams, - ) -> impl Stream>> + '_ + ) -> impl Stream>> + '_ { try_stream! { let mut page_size: i32 = 10; @@ -494,8 +662,10 @@ impl LogsAPI { pub async fn list_logs_get_with_http_info( &self, params: ListLogsGetOptionalParams, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.list_logs_get"; @@ -509,7 +679,7 @@ impl LogsAPI { let page_cursor = params.page_cursor; let page_limit = params.page_limit; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/logs/events", @@ -558,20 +728,39 @@ impl LogsAPI { local_req_builder.query(&[("page[limit]", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -582,22 +771,22 @@ impl LogsAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -629,13 +818,14 @@ impl LogsAPI { &self, body: Vec, params: SubmitLogOptionalParams, - ) -> Result, Error> { + ) -> Result, datadog::Error> + { match self.submit_log_with_http_info(body, params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -673,8 +863,8 @@ impl LogsAPI { body: Vec, params: SubmitLogOptionalParams, ) -> Result< - ResponseContent>, - Error, + datadog::ResponseContent>, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.submit_log"; @@ -683,7 +873,7 @@ impl LogsAPI { let content_encoding = params.content_encoding; let ddtags = params.ddtags; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/logs", @@ -697,28 +887,88 @@ impl LogsAPI { local_req_builder.query(&[("ddtags", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + if let Some(ref local) = content_encoding { - local_req_builder = local_req_builder.header("Content-Encoding", &local.to_string()); - }; + headers.insert( + "Content-Encoding", + local + .to_string() + .parse() + .expect("failed to parse Content-Encoding header"), + ); + } // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -730,22 +980,22 @@ impl LogsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_logs_archives.rs b/src/datadogV2/api/api_logs_archives.rs index b46a419ce..b102e99cb 100644 --- a/src/datadogV2/api/api_logs_archives.rs +++ b/src/datadogV2/api/api_logs_archives.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// AddReadRoleToArchiveError is a struct for typed errors of method [`LogsArchivesAPI::add_read_role_to_archive`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -112,14 +117,13 @@ pub enum UpdateLogsArchiveOrderError { #[derive(Debug, Clone)] pub struct LogsArchivesAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for LogsArchivesAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -127,8 +131,52 @@ impl LogsArchivesAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Adds a read role to an archive. ([Roles API]()) @@ -136,7 +184,7 @@ impl LogsArchivesAPI { &self, archive_id: String, body: crate::datadogV2::model::RelationshipToRole, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .add_read_role_to_archive_with_http_info(archive_id, body) .await @@ -151,41 +199,99 @@ impl LogsArchivesAPI { &self, archive_id: String, body: crate::datadogV2::model::RelationshipToRole, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.add_read_role_to_archive"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/logs/config/archives/{archive_id}/readers", local_configuration.get_operation_host(operation_id), - archive_id = urlencode(archive_id) + archive_id = datadog::urlencode(archive_id) ); let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -193,7 +299,7 @@ impl LogsArchivesAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -201,12 +307,12 @@ impl LogsArchivesAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -214,13 +320,13 @@ impl LogsArchivesAPI { pub async fn create_logs_archive( &self, body: crate::datadogV2::model::LogsArchiveCreateRequest, - ) -> Result> { + ) -> Result> { match self.create_logs_archive_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -233,12 +339,14 @@ impl LogsArchivesAPI { pub async fn create_logs_archive_with_http_info( &self, body: crate::datadogV2::model::LogsArchiveCreateRequest, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.create_logs_archive"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/logs/config/archives", @@ -247,27 +355,85 @@ impl LogsArchivesAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -277,23 +443,23 @@ impl LogsArchivesAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -301,7 +467,7 @@ impl LogsArchivesAPI { pub async fn delete_logs_archive( &self, archive_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self.delete_logs_archive_with_http_info(archive_id).await { Ok(_) => Ok(()), Err(err) => Err(err), @@ -312,34 +478,53 @@ impl LogsArchivesAPI { pub async fn delete_logs_archive_with_http_info( &self, archive_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_logs_archive"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/logs/config/archives/{archive_id}", local_configuration.get_operation_host(operation_id), - archive_id = urlencode(archive_id) + archive_id = datadog::urlencode(archive_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -347,7 +532,7 @@ impl LogsArchivesAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -355,12 +540,12 @@ impl LogsArchivesAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -368,13 +553,13 @@ impl LogsArchivesAPI { pub async fn get_logs_archive( &self, archive_id: String, - ) -> Result> { + ) -> Result> { match self.get_logs_archive_with_http_info(archive_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -387,35 +572,56 @@ impl LogsArchivesAPI { pub async fn get_logs_archive_with_http_info( &self, archive_id: String, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.get_logs_archive"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/logs/config/archives/{archive_id}", local_configuration.get_operation_host(operation_id), - archive_id = urlencode(archive_id) + archive_id = datadog::urlencode(archive_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -425,23 +631,23 @@ impl LogsArchivesAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -449,13 +655,14 @@ impl LogsArchivesAPI { /// This endpoint takes no JSON arguments. pub async fn get_logs_archive_order( &self, - ) -> Result> { + ) -> Result> + { match self.get_logs_archive_order_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -469,13 +676,13 @@ impl LogsArchivesAPI { pub async fn get_logs_archive_order_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_logs_archive_order"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/logs/config/archive-order", @@ -484,20 +691,39 @@ impl LogsArchivesAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -508,23 +734,23 @@ impl LogsArchivesAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -532,7 +758,8 @@ impl LogsArchivesAPI { pub async fn list_archive_read_roles( &self, archive_id: String, - ) -> Result> { + ) -> Result> + { match self .list_archive_read_roles_with_http_info(archive_id) .await @@ -541,7 +768,7 @@ impl LogsArchivesAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -555,36 +782,55 @@ impl LogsArchivesAPI { &self, archive_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_archive_read_roles"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/logs/config/archives/{archive_id}/readers", local_configuration.get_operation_host(operation_id), - archive_id = urlencode(archive_id) + archive_id = datadog::urlencode(archive_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -594,36 +840,36 @@ impl LogsArchivesAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get the list of configured logs archives with their definitions. pub async fn list_logs_archives( &self, - ) -> Result> { + ) -> Result> { match self.list_logs_archives_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -635,12 +881,14 @@ impl LogsArchivesAPI { /// Get the list of configured logs archives with their definitions. pub async fn list_logs_archives_with_http_info( &self, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.list_logs_archives"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/logs/config/archives", @@ -649,20 +897,39 @@ impl LogsArchivesAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -672,23 +939,23 @@ impl LogsArchivesAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -697,7 +964,7 @@ impl LogsArchivesAPI { &self, archive_id: String, body: crate::datadogV2::model::RelationshipToRole, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .remove_role_from_archive_with_http_info(archive_id, body) .await @@ -712,41 +979,99 @@ impl LogsArchivesAPI { &self, archive_id: String, body: crate::datadogV2::model::RelationshipToRole, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.remove_role_from_archive"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/logs/config/archives/{archive_id}/readers", local_configuration.get_operation_host(operation_id), - archive_id = urlencode(archive_id) + archive_id = datadog::urlencode(archive_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -754,7 +1079,7 @@ impl LogsArchivesAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -762,12 +1087,12 @@ impl LogsArchivesAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -779,7 +1104,7 @@ impl LogsArchivesAPI { &self, archive_id: String, body: crate::datadogV2::model::LogsArchiveCreateRequest, - ) -> Result> { + ) -> Result> { match self .update_logs_archive_with_http_info(archive_id, body) .await @@ -788,7 +1113,7 @@ impl LogsArchivesAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -805,42 +1130,102 @@ impl LogsArchivesAPI { &self, archive_id: String, body: crate::datadogV2::model::LogsArchiveCreateRequest, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.update_logs_archive"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/logs/config/archives/{archive_id}", local_configuration.get_operation_host(operation_id), - archive_id = urlencode(archive_id) + archive_id = datadog::urlencode(archive_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -850,23 +1235,23 @@ impl LogsArchivesAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -878,13 +1263,16 @@ impl LogsArchivesAPI { pub async fn update_logs_archive_order( &self, body: crate::datadogV2::model::LogsArchiveOrder, - ) -> Result> { + ) -> Result< + crate::datadogV2::model::LogsArchiveOrder, + datadog::Error, + > { match self.update_logs_archive_order_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -902,13 +1290,13 @@ impl LogsArchivesAPI { &self, body: crate::datadogV2::model::LogsArchiveOrder, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_logs_archive_order"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/logs/config/archive-order", @@ -917,27 +1305,85 @@ impl LogsArchivesAPI { let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -948,23 +1394,23 @@ impl LogsArchivesAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_logs_custom_destinations.rs b/src/datadogV2/api/api_logs_custom_destinations.rs new file mode 100644 index 000000000..6e2880e40 --- /dev/null +++ b/src/datadogV2/api/api_logs_custom_destinations.rs @@ -0,0 +1,747 @@ +// 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 2019-Present Datadog, Inc. +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; +use serde::{Deserialize, Serialize}; +use std::io::Write; + +/// CreateLogsCustomDestinationError is a struct for typed errors of method [`LogsCustomDestinationsAPI::create_logs_custom_destination`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum CreateLogsCustomDestinationError { + Status400(Option), + Status403(Option), + Status409(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + +/// DeleteLogsCustomDestinationError is a struct for typed errors of method [`LogsCustomDestinationsAPI::delete_logs_custom_destination`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum DeleteLogsCustomDestinationError { + Status400(Option), + Status403(Option), + Status404(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + +/// GetLogsCustomDestinationError is a struct for typed errors of method [`LogsCustomDestinationsAPI::get_logs_custom_destination`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum GetLogsCustomDestinationError { + Status400(Option), + Status403(Option), + Status404(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + +/// ListLogsCustomDestinationsError is a struct for typed errors of method [`LogsCustomDestinationsAPI::list_logs_custom_destinations`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum ListLogsCustomDestinationsError { + Status403(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + +/// UpdateLogsCustomDestinationError is a struct for typed errors of method [`LogsCustomDestinationsAPI::update_logs_custom_destination`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum UpdateLogsCustomDestinationError { + Status400(Option), + Status403(Option), + Status404(Option), + Status409(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + +#[derive(Debug, Clone)] +pub struct LogsCustomDestinationsAPI { + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, +} + +impl Default for LogsCustomDestinationsAPI { + fn default() -> Self { + Self::with_config(datadog::Configuration::default()) + } +} + +impl LogsCustomDestinationsAPI { + pub fn new() -> Self { + Self::default() + } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } + } + + /// Create a custom destination in your organization. + pub async fn create_logs_custom_destination( + &self, + body: crate::datadogV2::model::CustomDestinationCreateRequest, + ) -> Result< + crate::datadogV2::model::CustomDestinationResponse, + datadog::Error, + > { + match self + .create_logs_custom_destination_with_http_info(body) + .await + { + Ok(response_content) => { + if let Some(e) = response_content.entity { + Ok(e) + } else { + Err(datadog::Error::Serde(serde::de::Error::custom( + "response content was None", + ))) + } + } + Err(err) => Err(err), + } + } + + /// Create a custom destination in your organization. + pub async fn create_logs_custom_destination_with_http_info( + &self, + body: crate::datadogV2::model::CustomDestinationCreateRequest, + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { + let local_configuration = &self.config; + let operation_id = "v2.create_logs_custom_destination"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/logs/config/custom-destinations", + local_configuration.get_operation_host(operation_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + // build body parameters + let output = Vec::new(); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); + if body.serialize(&mut ser).is_ok() { + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + match serde_json::from_str::( + &local_content, + ) { + Ok(e) => { + return Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: Some(e), + }) + } + Err(e) => return Err(datadog::Error::Serde(e)), + }; + } else { + let local_entity: Option = + serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// Delete a specific custom destination in your organization. + pub async fn delete_logs_custom_destination( + &self, + custom_destination_id: String, + ) -> Result<(), datadog::Error> { + match self + .delete_logs_custom_destination_with_http_info(custom_destination_id) + .await + { + Ok(_) => Ok(()), + Err(err) => Err(err), + } + } + + /// Delete a specific custom destination in your organization. + pub async fn delete_logs_custom_destination_with_http_info( + &self, + custom_destination_id: String, + ) -> Result, datadog::Error> + { + let local_configuration = &self.config; + let operation_id = "v2.delete_logs_custom_destination"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/logs/config/custom-destinations/{custom_destination_id}", + local_configuration.get_operation_host(operation_id), + custom_destination_id = datadog::urlencode(custom_destination_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: None, + }) + } else { + let local_entity: Option = + serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// Get a specific custom destination in your organization. + pub async fn get_logs_custom_destination( + &self, + custom_destination_id: String, + ) -> Result< + crate::datadogV2::model::CustomDestinationResponse, + datadog::Error, + > { + match self + .get_logs_custom_destination_with_http_info(custom_destination_id) + .await + { + Ok(response_content) => { + if let Some(e) = response_content.entity { + Ok(e) + } else { + Err(datadog::Error::Serde(serde::de::Error::custom( + "response content was None", + ))) + } + } + Err(err) => Err(err), + } + } + + /// Get a specific custom destination in your organization. + pub async fn get_logs_custom_destination_with_http_info( + &self, + custom_destination_id: String, + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { + let local_configuration = &self.config; + let operation_id = "v2.get_logs_custom_destination"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/logs/config/custom-destinations/{custom_destination_id}", + local_configuration.get_operation_host(operation_id), + custom_destination_id = datadog::urlencode(custom_destination_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + match serde_json::from_str::( + &local_content, + ) { + Ok(e) => { + return Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: Some(e), + }) + } + Err(e) => return Err(datadog::Error::Serde(e)), + }; + } else { + let local_entity: Option = + serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// Get the list of configured custom destinations in your organization with their definitions. + pub async fn list_logs_custom_destinations( + &self, + ) -> Result< + crate::datadogV2::model::CustomDestinationsResponse, + datadog::Error, + > { + match self.list_logs_custom_destinations_with_http_info().await { + Ok(response_content) => { + if let Some(e) = response_content.entity { + Ok(e) + } else { + Err(datadog::Error::Serde(serde::de::Error::custom( + "response content was None", + ))) + } + } + Err(err) => Err(err), + } + } + + /// Get the list of configured custom destinations in your organization with their definitions. + pub async fn list_logs_custom_destinations_with_http_info( + &self, + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { + let local_configuration = &self.config; + let operation_id = "v2.list_logs_custom_destinations"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/logs/config/custom-destinations", + local_configuration.get_operation_host(operation_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + match serde_json::from_str::( + &local_content, + ) { + Ok(e) => { + return Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: Some(e), + }) + } + Err(e) => return Err(datadog::Error::Serde(e)), + }; + } else { + let local_entity: Option = + serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// Update the given fields of a specific custom destination in your organization. + pub async fn update_logs_custom_destination( + &self, + custom_destination_id: String, + body: crate::datadogV2::model::CustomDestinationUpdateRequest, + ) -> Result< + crate::datadogV2::model::CustomDestinationResponse, + datadog::Error, + > { + match self + .update_logs_custom_destination_with_http_info(custom_destination_id, body) + .await + { + Ok(response_content) => { + if let Some(e) = response_content.entity { + Ok(e) + } else { + Err(datadog::Error::Serde(serde::de::Error::custom( + "response content was None", + ))) + } + } + Err(err) => Err(err), + } + } + + /// Update the given fields of a specific custom destination in your organization. + pub async fn update_logs_custom_destination_with_http_info( + &self, + custom_destination_id: String, + body: crate::datadogV2::model::CustomDestinationUpdateRequest, + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { + let local_configuration = &self.config; + let operation_id = "v2.update_logs_custom_destination"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/logs/config/custom-destinations/{custom_destination_id}", + local_configuration.get_operation_host(operation_id), + custom_destination_id = datadog::urlencode(custom_destination_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + // build body parameters + let output = Vec::new(); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); + if body.serialize(&mut ser).is_ok() { + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + match serde_json::from_str::( + &local_content, + ) { + Ok(e) => { + return Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: Some(e), + }) + } + Err(e) => return Err(datadog::Error::Serde(e)), + }; + } else { + let local_entity: Option = + serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) + } + } +} diff --git a/src/datadogV2/api/api_logs_metrics.rs b/src/datadogV2/api/api_logs_metrics.rs index 05051d237..3cc12aeb7 100644 --- a/src/datadogV2/api/api_logs_metrics.rs +++ b/src/datadogV2/api/api_logs_metrics.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// CreateLogsMetricError is a struct for typed errors of method [`LogsMetricsAPI::create_logs_metric`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -58,14 +63,13 @@ pub enum UpdateLogsMetricError { #[derive(Debug, Clone)] pub struct LogsMetricsAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for LogsMetricsAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -73,8 +77,52 @@ impl LogsMetricsAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create a metric based on your ingested logs in your organization. @@ -82,13 +130,14 @@ impl LogsMetricsAPI { pub async fn create_logs_metric( &self, body: crate::datadogV2::model::LogsMetricCreateRequest, - ) -> Result> { + ) -> Result> + { match self.create_logs_metric_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -103,13 +152,13 @@ impl LogsMetricsAPI { &self, body: crate::datadogV2::model::LogsMetricCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_logs_metric"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/logs/config/metrics", @@ -118,27 +167,85 @@ impl LogsMetricsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -150,23 +257,23 @@ impl LogsMetricsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -174,7 +281,7 @@ impl LogsMetricsAPI { pub async fn delete_logs_metric( &self, metric_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self.delete_logs_metric_with_http_info(metric_id).await { Ok(_) => Ok(()), Err(err) => Err(err), @@ -185,34 +292,53 @@ impl LogsMetricsAPI { pub async fn delete_logs_metric_with_http_info( &self, metric_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_logs_metric"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/logs/config/metrics/{metric_id}", local_configuration.get_operation_host(operation_id), - metric_id = urlencode(metric_id) + metric_id = datadog::urlencode(metric_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -220,7 +346,7 @@ impl LogsMetricsAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -228,12 +354,12 @@ impl LogsMetricsAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -241,13 +367,14 @@ impl LogsMetricsAPI { pub async fn get_logs_metric( &self, metric_id: String, - ) -> Result> { + ) -> Result> + { match self.get_logs_metric_with_http_info(metric_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -261,36 +388,55 @@ impl LogsMetricsAPI { &self, metric_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_logs_metric"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/logs/config/metrics/{metric_id}", local_configuration.get_operation_host(operation_id), - metric_id = urlencode(metric_id) + metric_id = datadog::urlencode(metric_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -302,36 +448,37 @@ impl LogsMetricsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get the list of configured log-based metrics with their definitions. pub async fn list_logs_metrics( &self, - ) -> Result> { + ) -> Result> + { match self.list_logs_metrics_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -344,13 +491,13 @@ impl LogsMetricsAPI { pub async fn list_logs_metrics_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_logs_metrics"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/logs/config/metrics", @@ -359,20 +506,39 @@ impl LogsMetricsAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -384,23 +550,23 @@ impl LogsMetricsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -410,7 +576,8 @@ impl LogsMetricsAPI { &self, metric_id: String, body: crate::datadogV2::model::LogsMetricUpdateRequest, - ) -> Result> { + ) -> Result> + { match self .update_logs_metric_with_http_info(metric_id, body) .await @@ -419,7 +586,7 @@ impl LogsMetricsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -435,43 +602,101 @@ impl LogsMetricsAPI { metric_id: String, body: crate::datadogV2::model::LogsMetricUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_logs_metric"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/logs/config/metrics/{metric_id}", local_configuration.get_operation_host(operation_id), - metric_id = urlencode(metric_id) + metric_id = datadog::urlencode(metric_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -483,23 +708,23 @@ impl LogsMetricsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_metrics.rs b/src/datadogV2/api/api_metrics.rs index 4743428d8..7d3cf4509 100644 --- a/src/datadogV2/api/api_metrics.rs +++ b/src/datadogV2/api/api_metrics.rs @@ -1,10 +1,15 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; use log::warn; -use reqwest; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// EstimateMetricsOutputSeriesOptionalParams is a struct for passing parameters to the method [`MetricsAPI::estimate_metrics_output_series`] #[non_exhaustive] @@ -12,7 +17,7 @@ use serde::{Deserialize, Serialize}; pub struct EstimateMetricsOutputSeriesOptionalParams { /// Filtered tag keys that the metric is configured to query with. pub filter_groups: Option, - /// The number of hours of look back (from now) to estimate cardinality with. + /// The number of hours of look back (from now) to estimate cardinality with. Estimates are based on historical data, and unspecified fields default to the minimum 49 hours. pub filter_hours_ago: Option, /// The number of aggregations that a `count`, `rate`, or `gauge` metric is configured to use. Max number of aggregation combos is 9. pub filter_num_aggregations: Option, @@ -28,7 +33,7 @@ impl EstimateMetricsOutputSeriesOptionalParams { self.filter_groups = Some(value); self } - /// The number of hours of look back (from now) to estimate cardinality with. + /// The number of hours of look back (from now) to estimate cardinality with. Estimates are based on historical data, and unspecified fields default to the minimum 49 hours. pub fn filter_hours_ago(mut self, value: i32) -> Self { self.filter_hours_ago = Some(value); self @@ -221,6 +226,17 @@ pub enum ListActiveMetricConfigurationsError { UnknownValue(serde_json::Value), } +/// ListMetricAssetsError is a struct for typed errors of method [`MetricsAPI::list_metric_assets`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum ListMetricAssetsError { + Status400(Option), + Status403(Option), + Status404(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + /// ListTagConfigurationByNameError is a struct for typed errors of method [`MetricsAPI::list_tag_configuration_by_name`] #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] @@ -310,14 +326,13 @@ pub enum UpdateTagConfigurationError { #[derive(Debug, Clone)] pub struct MetricsAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for MetricsAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -325,8 +340,52 @@ impl MetricsAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create and define a list of queryable tag keys for a set of existing count, gauge, rate, and distribution metrics. @@ -341,7 +400,7 @@ impl MetricsAPI { body: crate::datadogV2::model::MetricBulkTagConfigCreateRequest, ) -> Result< crate::datadogV2::model::MetricBulkTagConfigResponse, - Error, + datadog::Error, > { match self .create_bulk_tags_metrics_configuration_with_http_info(body) @@ -351,7 +410,7 @@ impl MetricsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -371,13 +430,13 @@ impl MetricsAPI { &self, body: crate::datadogV2::model::MetricBulkTagConfigCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_bulk_tags_metrics_configuration"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/metrics/config/bulk-tags", @@ -386,27 +445,85 @@ impl MetricsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -418,23 +535,23 @@ impl MetricsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -449,7 +566,7 @@ impl MetricsAPI { body: crate::datadogV2::model::MetricTagConfigurationCreateRequest, ) -> Result< crate::datadogV2::model::MetricTagConfigurationResponse, - Error, + datadog::Error, > { match self .create_tag_configuration_with_http_info(metric_name, body) @@ -459,7 +576,7 @@ impl MetricsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -478,43 +595,101 @@ impl MetricsAPI { metric_name: String, body: crate::datadogV2::model::MetricTagConfigurationCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_tag_configuration"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/metrics/{metric_name}/tags", local_configuration.get_operation_host(operation_id), - metric_name = urlencode(metric_name) + metric_name = datadog::urlencode(metric_name) ); let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -526,23 +701,23 @@ impl MetricsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -555,7 +730,7 @@ impl MetricsAPI { body: crate::datadogV2::model::MetricBulkTagConfigDeleteRequest, ) -> Result< crate::datadogV2::model::MetricBulkTagConfigResponse, - Error, + datadog::Error, > { match self .delete_bulk_tags_metrics_configuration_with_http_info(body) @@ -565,7 +740,7 @@ impl MetricsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -582,13 +757,13 @@ impl MetricsAPI { &self, body: crate::datadogV2::model::MetricBulkTagConfigDeleteRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.delete_bulk_tags_metrics_configuration"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/metrics/config/bulk-tags", @@ -597,27 +772,85 @@ impl MetricsAPI { let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -629,23 +862,23 @@ impl MetricsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -654,7 +887,7 @@ impl MetricsAPI { pub async fn delete_tag_configuration( &self, metric_name: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .delete_tag_configuration_with_http_info(metric_name) .await @@ -669,34 +902,53 @@ impl MetricsAPI { pub async fn delete_tag_configuration_with_http_info( &self, metric_name: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_tag_configuration"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/metrics/{metric_name}/tags", local_configuration.get_operation_host(operation_id), - metric_name = urlencode(metric_name) + metric_name = datadog::urlencode(metric_name) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -704,7 +956,7 @@ impl MetricsAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -712,12 +964,12 @@ impl MetricsAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -728,7 +980,7 @@ impl MetricsAPI { params: EstimateMetricsOutputSeriesOptionalParams, ) -> Result< crate::datadogV2::model::MetricEstimateResponse, - Error, + datadog::Error, > { match self .estimate_metrics_output_series_with_http_info(metric_name, params) @@ -738,7 +990,7 @@ impl MetricsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -753,8 +1005,8 @@ impl MetricsAPI { metric_name: String, params: EstimateMetricsOutputSeriesOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.estimate_metrics_output_series"; @@ -766,12 +1018,12 @@ impl MetricsAPI { let filter_pct = params.filter_pct; let filter_timespan_h = params.filter_timespan_h; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/metrics/{metric_name}/estimate", local_configuration.get_operation_host(operation_id), - metric_name = urlencode(metric_name) + metric_name = datadog::urlencode(metric_name) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); @@ -797,20 +1049,39 @@ impl MetricsAPI { local_req_builder.query(&[("filter[timespan_h]", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -822,34 +1093,34 @@ impl MetricsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } - /// List tags and aggregations that are actively queried on dashboards and monitors for a given metric name. + /// List tags and aggregations that are actively queried on dashboards, notebooks, monitors, and the Metrics Explorer for a given metric name. pub async fn list_active_metric_configurations( &self, metric_name: String, params: ListActiveMetricConfigurationsOptionalParams, ) -> Result< crate::datadogV2::model::MetricSuggestedTagsAndAggregationsResponse, - Error, + datadog::Error, > { match self .list_active_metric_configurations_with_http_info(metric_name, params) @@ -859,7 +1130,7 @@ impl MetricsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -868,14 +1139,16 @@ impl MetricsAPI { } } - /// List tags and aggregations that are actively queried on dashboards and monitors for a given metric name. + /// List tags and aggregations that are actively queried on dashboards, notebooks, monitors, and the Metrics Explorer for a given metric name. pub async fn list_active_metric_configurations_with_http_info( &self, metric_name: String, params: ListActiveMetricConfigurationsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent< + crate::datadogV2::model::MetricSuggestedTagsAndAggregationsResponse, + >, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_active_metric_configurations"; @@ -883,12 +1156,12 @@ impl MetricsAPI { // unbox and build optional parameters let window_seconds = params.window_seconds; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/metrics/{metric_name}/active-configurations", local_configuration.get_operation_host(operation_id), - metric_name = urlencode(metric_name) + metric_name = datadog::urlencode(metric_name) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); @@ -898,20 +1171,39 @@ impl MetricsAPI { local_req_builder.query(&[("window[seconds]", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -924,23 +1216,128 @@ impl MetricsAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// Returns dashboards, monitors, notebooks, and SLOs that a metric is stored in, if any. Updated every 24 hours. + pub async fn list_metric_assets( + &self, + metric_name: String, + ) -> Result> + { + match self.list_metric_assets_with_http_info(metric_name).await { + Ok(response_content) => { + if let Some(e) = response_content.entity { + Ok(e) + } else { + Err(datadog::Error::Serde(serde::de::Error::custom( + "response content was None", + ))) + } + } + Err(err) => Err(err), + } + } + + /// Returns dashboards, monitors, notebooks, and SLOs that a metric is stored in, if any. Updated every 24 hours. + pub async fn list_metric_assets_with_http_info( + &self, + metric_name: String, + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { + let local_configuration = &self.config; + let operation_id = "v2.list_metric_assets"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/metrics/{metric_name}/assets", + local_configuration.get_operation_host(operation_id), + metric_name = datadog::urlencode(metric_name) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + match serde_json::from_str::( + &local_content, + ) { + Ok(e) => { + return Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: Some(e), + }) + } + Err(e) => return Err(datadog::Error::Serde(e)), + }; + } else { + let local_entity: Option = + serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) } } @@ -950,7 +1347,7 @@ impl MetricsAPI { metric_name: String, ) -> Result< crate::datadogV2::model::MetricTagConfigurationResponse, - Error, + datadog::Error, > { match self .list_tag_configuration_by_name_with_http_info(metric_name) @@ -960,7 +1357,7 @@ impl MetricsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -974,36 +1371,55 @@ impl MetricsAPI { &self, metric_name: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_tag_configuration_by_name"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/metrics/{metric_name}/tags", local_configuration.get_operation_host(operation_id), - metric_name = urlencode(metric_name) + metric_name = datadog::urlencode(metric_name) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1015,23 +1431,23 @@ impl MetricsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1041,14 +1457,14 @@ impl MetricsAPI { params: ListTagConfigurationsOptionalParams, ) -> Result< crate::datadogV2::model::MetricsAndMetricTagConfigurationsResponse, - Error, + datadog::Error, > { match self.list_tag_configurations_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1062,8 +1478,10 @@ impl MetricsAPI { &self, params: ListTagConfigurationsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent< + crate::datadogV2::model::MetricsAndMetricTagConfigurationsResponse, + >, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_tag_configurations"; @@ -1077,7 +1495,7 @@ impl MetricsAPI { let filter_tags = params.filter_tags; let window_seconds = params.window_seconds; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/metrics", @@ -1117,20 +1535,39 @@ impl MetricsAPI { local_req_builder.query(&[("window[seconds]", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1143,23 +1580,23 @@ impl MetricsAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1167,8 +1604,10 @@ impl MetricsAPI { pub async fn list_tags_by_metric_name( &self, metric_name: String, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::MetricAllTagsResponse, + datadog::Error, + > { match self .list_tags_by_metric_name_with_http_info(metric_name) .await @@ -1177,7 +1616,7 @@ impl MetricsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1191,36 +1630,55 @@ impl MetricsAPI { &self, metric_name: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_tags_by_metric_name"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/metrics/{metric_name}/all-tags", local_configuration.get_operation_host(operation_id), - metric_name = urlencode(metric_name) + metric_name = datadog::urlencode(metric_name) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1232,23 +1690,23 @@ impl MetricsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1258,8 +1716,10 @@ impl MetricsAPI { pub async fn list_volumes_by_metric_name( &self, metric_name: String, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::MetricVolumesResponse, + datadog::Error, + > { match self .list_volumes_by_metric_name_with_http_info(metric_name) .await @@ -1268,7 +1728,7 @@ impl MetricsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1284,36 +1744,55 @@ impl MetricsAPI { &self, metric_name: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_volumes_by_metric_name"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/metrics/{metric_name}/volumes", local_configuration.get_operation_host(operation_id), - metric_name = urlencode(metric_name) + metric_name = datadog::urlencode(metric_name) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1325,23 +1804,23 @@ impl MetricsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1351,14 +1830,16 @@ impl MetricsAPI { pub async fn query_scalar_data( &self, body: crate::datadogV2::model::ScalarFormulaQueryRequest, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::ScalarFormulaQueryResponse, + datadog::Error, + > { match self.query_scalar_data_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1374,21 +1855,21 @@ impl MetricsAPI { &self, body: crate::datadogV2::model::ScalarFormulaQueryRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.query_scalar_data"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.query_scalar_data' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/query/scalar", @@ -1397,27 +1878,85 @@ impl MetricsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1429,23 +1968,23 @@ impl MetricsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1456,14 +1995,14 @@ impl MetricsAPI { body: crate::datadogV2::model::TimeseriesFormulaQueryRequest, ) -> Result< crate::datadogV2::model::TimeseriesFormulaQueryResponse, - Error, + datadog::Error, > { match self.query_timeseries_data_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1478,21 +2017,21 @@ impl MetricsAPI { &self, body: crate::datadogV2::model::TimeseriesFormulaQueryRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.query_timeseries_data"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.query_timeseries_data' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/query/timeseries", @@ -1501,27 +2040,85 @@ impl MetricsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1533,23 +2130,23 @@ impl MetricsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1569,13 +2166,14 @@ impl MetricsAPI { &self, body: crate::datadogV2::model::MetricPayload, params: SubmitMetricsOptionalParams, - ) -> Result> { + ) -> Result> + { match self.submit_metrics_with_http_info(body, params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1601,8 +2199,8 @@ impl MetricsAPI { body: crate::datadogV2::model::MetricPayload, params: SubmitMetricsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.submit_metrics"; @@ -1610,7 +2208,7 @@ impl MetricsAPI { // unbox and build optional parameters let content_encoding = params.content_encoding; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/series", @@ -1619,28 +2217,88 @@ impl MetricsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + if let Some(ref local) = content_encoding { - local_req_builder = local_req_builder.header("Content-Encoding", &local.to_string()); - }; + headers.insert( + "Content-Encoding", + local + .to_string() + .parse() + .expect("failed to parse Content-Encoding header"), + ); + } // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1652,23 +2310,23 @@ impl MetricsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1683,7 +2341,7 @@ impl MetricsAPI { body: crate::datadogV2::model::MetricTagConfigurationUpdateRequest, ) -> Result< crate::datadogV2::model::MetricTagConfigurationResponse, - Error, + datadog::Error, > { match self .update_tag_configuration_with_http_info(metric_name, body) @@ -1693,7 +2351,7 @@ impl MetricsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1712,43 +2370,101 @@ impl MetricsAPI { metric_name: String, body: crate::datadogV2::model::MetricTagConfigurationUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_tag_configuration"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/metrics/{metric_name}/tags", local_configuration.get_operation_host(operation_id), - metric_name = urlencode(metric_name) + metric_name = datadog::urlencode(metric_name) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1760,23 +2476,23 @@ impl MetricsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_monitors.rs b/src/datadogV2/api/api_monitors.rs index b7e550501..84fde8f98 100644 --- a/src/datadogV2/api/api_monitors.rs +++ b/src/datadogV2/api/api_monitors.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// CreateMonitorConfigPolicyError is a struct for typed errors of method [`MonitorsAPI::create_monitor_config_policy`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -58,14 +63,13 @@ pub enum UpdateMonitorConfigPolicyError { #[derive(Debug, Clone)] pub struct MonitorsAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for MonitorsAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -73,8 +77,52 @@ impl MonitorsAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create a monitor configuration policy. @@ -83,14 +131,14 @@ impl MonitorsAPI { body: crate::datadogV2::model::MonitorConfigPolicyCreateRequest, ) -> Result< crate::datadogV2::model::MonitorConfigPolicyResponse, - Error, + datadog::Error, > { match self.create_monitor_config_policy_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -104,13 +152,13 @@ impl MonitorsAPI { &self, body: crate::datadogV2::model::MonitorConfigPolicyCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_monitor_config_policy"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/monitor/policy", @@ -119,27 +167,85 @@ impl MonitorsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -151,23 +257,23 @@ impl MonitorsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -175,7 +281,7 @@ impl MonitorsAPI { pub async fn delete_monitor_config_policy( &self, policy_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .delete_monitor_config_policy_with_http_info(policy_id) .await @@ -189,34 +295,53 @@ impl MonitorsAPI { pub async fn delete_monitor_config_policy_with_http_info( &self, policy_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_monitor_config_policy"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/monitor/policy/{policy_id}", local_configuration.get_operation_host(operation_id), - policy_id = urlencode(policy_id) + policy_id = datadog::urlencode(policy_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -224,7 +349,7 @@ impl MonitorsAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -232,12 +357,12 @@ impl MonitorsAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -247,7 +372,7 @@ impl MonitorsAPI { policy_id: String, ) -> Result< crate::datadogV2::model::MonitorConfigPolicyResponse, - Error, + datadog::Error, > { match self .get_monitor_config_policy_with_http_info(policy_id) @@ -257,7 +382,7 @@ impl MonitorsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -271,36 +396,55 @@ impl MonitorsAPI { &self, policy_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_monitor_config_policy"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/monitor/policy/{policy_id}", local_configuration.get_operation_host(operation_id), - policy_id = urlencode(policy_id) + policy_id = datadog::urlencode(policy_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -312,23 +456,23 @@ impl MonitorsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -337,14 +481,14 @@ impl MonitorsAPI { &self, ) -> Result< crate::datadogV2::model::MonitorConfigPolicyListResponse, - Error, + datadog::Error, > { match self.list_monitor_config_policies_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -357,13 +501,13 @@ impl MonitorsAPI { pub async fn list_monitor_config_policies_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_monitor_config_policies"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/monitor/policy", @@ -372,20 +516,39 @@ impl MonitorsAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -397,23 +560,23 @@ impl MonitorsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -424,7 +587,7 @@ impl MonitorsAPI { body: crate::datadogV2::model::MonitorConfigPolicyEditRequest, ) -> Result< crate::datadogV2::model::MonitorConfigPolicyResponse, - Error, + datadog::Error, > { match self .update_monitor_config_policy_with_http_info(policy_id, body) @@ -434,7 +597,7 @@ impl MonitorsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -449,43 +612,101 @@ impl MonitorsAPI { policy_id: String, body: crate::datadogV2::model::MonitorConfigPolicyEditRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_monitor_config_policy"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/monitor/policy/{policy_id}", local_configuration.get_operation_host(operation_id), - policy_id = urlencode(policy_id) + policy_id = datadog::urlencode(policy_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -497,23 +718,23 @@ impl MonitorsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_okta_integration.rs b/src/datadogV2/api/api_okta_integration.rs index 91bd54b0e..5216f02ac 100644 --- a/src/datadogV2/api/api_okta_integration.rs +++ b/src/datadogV2/api/api_okta_integration.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// CreateOktaAccountError is a struct for typed errors of method [`OktaIntegrationAPI::create_okta_account`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -62,14 +67,13 @@ pub enum UpdateOktaAccountError { #[derive(Debug, Clone)] pub struct OktaIntegrationAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for OktaIntegrationAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -77,21 +81,66 @@ impl OktaIntegrationAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create an Okta account. pub async fn create_okta_account( &self, body: crate::datadogV2::model::OktaAccountRequest, - ) -> Result> { + ) -> Result> + { match self.create_okta_account_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -105,13 +154,13 @@ impl OktaIntegrationAPI { &self, body: crate::datadogV2::model::OktaAccountRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_okta_account"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integrations/okta/accounts", @@ -120,27 +169,85 @@ impl OktaIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -152,23 +259,23 @@ impl OktaIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -176,7 +283,7 @@ impl OktaIntegrationAPI { pub async fn delete_okta_account( &self, account_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self.delete_okta_account_with_http_info(account_id).await { Ok(_) => Ok(()), Err(err) => Err(err), @@ -187,34 +294,53 @@ impl OktaIntegrationAPI { pub async fn delete_okta_account_with_http_info( &self, account_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_okta_account"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integrations/okta/accounts/{account_id}", local_configuration.get_operation_host(operation_id), - account_id = urlencode(account_id) + account_id = datadog::urlencode(account_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -222,7 +348,7 @@ impl OktaIntegrationAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -230,12 +356,12 @@ impl OktaIntegrationAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -243,13 +369,14 @@ impl OktaIntegrationAPI { pub async fn get_okta_account( &self, account_id: String, - ) -> Result> { + ) -> Result> + { match self.get_okta_account_with_http_info(account_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -263,36 +390,55 @@ impl OktaIntegrationAPI { &self, account_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_okta_account"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integrations/okta/accounts/{account_id}", local_configuration.get_operation_host(operation_id), - account_id = urlencode(account_id) + account_id = datadog::urlencode(account_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -304,36 +450,37 @@ impl OktaIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// List Okta accounts. pub async fn list_okta_accounts( &self, - ) -> Result> { + ) -> Result> + { match self.list_okta_accounts_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -346,13 +493,13 @@ impl OktaIntegrationAPI { pub async fn list_okta_accounts_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_okta_accounts"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integrations/okta/accounts", @@ -361,20 +508,39 @@ impl OktaIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -386,23 +552,23 @@ impl OktaIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -411,7 +577,8 @@ impl OktaIntegrationAPI { &self, account_id: String, body: crate::datadogV2::model::OktaAccountUpdateRequest, - ) -> Result> { + ) -> Result> + { match self .update_okta_account_with_http_info(account_id, body) .await @@ -420,7 +587,7 @@ impl OktaIntegrationAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -435,43 +602,101 @@ impl OktaIntegrationAPI { account_id: String, body: crate::datadogV2::model::OktaAccountUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_okta_account"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integrations/okta/accounts/{account_id}", local_configuration.get_operation_host(operation_id), - account_id = urlencode(account_id) + account_id = datadog::urlencode(account_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -483,23 +708,23 @@ impl OktaIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_opsgenie_integration.rs b/src/datadogV2/api/api_opsgenie_integration.rs index a45e4bd84..05f8cc5fe 100644 --- a/src/datadogV2/api/api_opsgenie_integration.rs +++ b/src/datadogV2/api/api_opsgenie_integration.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// CreateOpsgenieServiceError is a struct for typed errors of method [`OpsgenieIntegrationAPI::create_opsgenie_service`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -62,14 +67,13 @@ pub enum UpdateOpsgenieServiceError { #[derive(Debug, Clone)] pub struct OpsgenieIntegrationAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for OpsgenieIntegrationAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -77,22 +81,68 @@ impl OpsgenieIntegrationAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create a new service object in the Opsgenie integration. pub async fn create_opsgenie_service( &self, body: crate::datadogV2::model::OpsgenieServiceCreateRequest, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::OpsgenieServiceResponse, + datadog::Error, + > { match self.create_opsgenie_service_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -106,13 +156,13 @@ impl OpsgenieIntegrationAPI { &self, body: crate::datadogV2::model::OpsgenieServiceCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_opsgenie_service"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integration/opsgenie/services", @@ -121,27 +171,85 @@ impl OpsgenieIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -153,23 +261,23 @@ impl OpsgenieIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -177,7 +285,7 @@ impl OpsgenieIntegrationAPI { pub async fn delete_opsgenie_service( &self, integration_service_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .delete_opsgenie_service_with_http_info(integration_service_id) .await @@ -191,34 +299,53 @@ impl OpsgenieIntegrationAPI { pub async fn delete_opsgenie_service_with_http_info( &self, integration_service_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_opsgenie_service"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integration/opsgenie/services/{integration_service_id}", local_configuration.get_operation_host(operation_id), - integration_service_id = urlencode(integration_service_id) + integration_service_id = datadog::urlencode(integration_service_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -226,7 +353,7 @@ impl OpsgenieIntegrationAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -234,12 +361,12 @@ impl OpsgenieIntegrationAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -247,8 +374,10 @@ impl OpsgenieIntegrationAPI { pub async fn get_opsgenie_service( &self, integration_service_id: String, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::OpsgenieServiceResponse, + datadog::Error, + > { match self .get_opsgenie_service_with_http_info(integration_service_id) .await @@ -257,7 +386,7 @@ impl OpsgenieIntegrationAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -271,36 +400,55 @@ impl OpsgenieIntegrationAPI { &self, integration_service_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_opsgenie_service"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integration/opsgenie/services/{integration_service_id}", local_configuration.get_operation_host(operation_id), - integration_service_id = urlencode(integration_service_id) + integration_service_id = datadog::urlencode(integration_service_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -312,37 +460,39 @@ impl OpsgenieIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get a list of all services from the Datadog Opsgenie integration. pub async fn list_opsgenie_services( &self, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::OpsgenieServicesResponse, + datadog::Error, + > { match self.list_opsgenie_services_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -355,13 +505,13 @@ impl OpsgenieIntegrationAPI { pub async fn list_opsgenie_services_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_opsgenie_services"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integration/opsgenie/services", @@ -370,20 +520,39 @@ impl OpsgenieIntegrationAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -395,23 +564,23 @@ impl OpsgenieIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -420,8 +589,10 @@ impl OpsgenieIntegrationAPI { &self, integration_service_id: String, body: crate::datadogV2::model::OpsgenieServiceUpdateRequest, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::OpsgenieServiceResponse, + datadog::Error, + > { match self .update_opsgenie_service_with_http_info(integration_service_id, body) .await @@ -430,7 +601,7 @@ impl OpsgenieIntegrationAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -445,43 +616,101 @@ impl OpsgenieIntegrationAPI { integration_service_id: String, body: crate::datadogV2::model::OpsgenieServiceUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_opsgenie_service"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/integration/opsgenie/services/{integration_service_id}", local_configuration.get_operation_host(operation_id), - integration_service_id = urlencode(integration_service_id) + integration_service_id = datadog::urlencode(integration_service_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -493,23 +722,23 @@ impl OpsgenieIntegrationAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_organizations.rs b/src/datadogV2/api/api_organizations.rs index c6178398a..2a49870a0 100644 --- a/src/datadogV2/api/api_organizations.rs +++ b/src/datadogV2/api/api_organizations.rs @@ -1,8 +1,8 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; /// UploadIdPMetadataOptionalParams is a struct for passing parameters to the method [`OrganizationsAPI::upload_idp_metadata`] @@ -33,14 +33,13 @@ pub enum UploadIdPMetadataError { #[derive(Debug, Clone)] pub struct OrganizationsAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for OrganizationsAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -48,8 +47,52 @@ impl OrganizationsAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Endpoint for uploading IdP metadata for SAML setup. @@ -58,7 +101,7 @@ impl OrganizationsAPI { pub async fn upload_idp_metadata( &self, params: UploadIdPMetadataOptionalParams, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self.upload_idp_metadata_with_http_info(params).await { Ok(_) => Ok(()), Err(err) => Err(err), @@ -71,14 +114,14 @@ impl OrganizationsAPI { pub async fn upload_idp_metadata_with_http_info( &self, params: UploadIdPMetadataOptionalParams, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.upload_idp_metadata"; // unbox and build optional parameters let idp_file = params.idp_file; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/saml_configurations/idp_metadata", @@ -87,30 +130,66 @@ impl OrganizationsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Content-Type", + HeaderValue::from_static("multipart/form-data"), ); + headers.insert("Accept", HeaderValue::from_static("*/*")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build form parameters if let Some(idp_file) = idp_file { - let mut local_form = reqwest::multipart::Form::new(); - local_form = local_form.part( + let mut local_form = form_data_builder::FormData::new(Vec::new()); + let cursor = std::io::Cursor::new(idp_file); + if let Err(e) = local_form.write_file( "idp_file", - reqwest::multipart::Part::bytes(idp_file).file_name("idp_file"), + cursor, + Some("idp_file".as_ref()), + "application/octet-stream", + ) { + return Err(crate::datadog::Error::Io(e)); + }; + headers.insert( + "Content-Type", + local_form.content_type_header().parse().unwrap(), ); - local_req_builder = local_req_builder.multipart(local_form); + let form_result = local_form.finish(); + match form_result { + Ok(form) => local_req_builder = local_req_builder.body(form), + Err(e) => return Err(crate::datadog::Error::Io(e)), + }; }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -118,7 +197,7 @@ impl OrganizationsAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -126,12 +205,12 @@ impl OrganizationsAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_powerpack.rs b/src/datadogV2/api/api_powerpack.rs index 028a2bcef..45adde9ad 100644 --- a/src/datadogV2/api/api_powerpack.rs +++ b/src/datadogV2/api/api_powerpack.rs @@ -1,11 +1,16 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; +use crate::datadog; use async_stream::try_stream; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; use futures_core::stream::Stream; -use reqwest; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// ListPowerpacksOptionalParams is a struct for passing parameters to the method [`PowerpackAPI::list_powerpacks`] #[non_exhaustive] @@ -77,14 +82,13 @@ pub enum UpdatePowerpackError { #[derive(Debug, Clone)] pub struct PowerpackAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for PowerpackAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -92,21 +96,66 @@ impl PowerpackAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create a powerpack. pub async fn create_powerpack( &self, body: crate::datadogV2::model::Powerpack, - ) -> Result> { + ) -> Result> + { match self.create_powerpack_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -120,13 +169,13 @@ impl PowerpackAPI { &self, body: crate::datadogV2::model::Powerpack, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_powerpack"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/powerpacks", @@ -135,27 +184,85 @@ impl PowerpackAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -166,23 +273,23 @@ impl PowerpackAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -190,7 +297,7 @@ impl PowerpackAPI { pub async fn delete_powerpack( &self, powerpack_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self.delete_powerpack_with_http_info(powerpack_id).await { Ok(_) => Ok(()), Err(err) => Err(err), @@ -201,34 +308,53 @@ impl PowerpackAPI { pub async fn delete_powerpack_with_http_info( &self, powerpack_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_powerpack"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/powerpacks/{powerpack_id}", local_configuration.get_operation_host(operation_id), - powerpack_id = urlencode(powerpack_id) + powerpack_id = datadog::urlencode(powerpack_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -236,7 +362,7 @@ impl PowerpackAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -244,12 +370,12 @@ impl PowerpackAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -257,13 +383,13 @@ impl PowerpackAPI { pub async fn get_powerpack( &self, powerpack_id: String, - ) -> Result> { + ) -> Result> { match self.get_powerpack_with_http_info(powerpack_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -276,35 +402,56 @@ impl PowerpackAPI { pub async fn get_powerpack_with_http_info( &self, powerpack_id: String, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.get_powerpack"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/powerpacks/{powerpack_id}", local_configuration.get_operation_host(operation_id), - powerpack_id = urlencode(powerpack_id) + powerpack_id = datadog::urlencode(powerpack_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -315,22 +462,22 @@ impl PowerpackAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -338,13 +485,14 @@ impl PowerpackAPI { pub async fn list_powerpacks( &self, params: ListPowerpacksOptionalParams, - ) -> Result> { + ) -> Result> + { match self.list_powerpacks_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -356,8 +504,9 @@ impl PowerpackAPI { pub fn list_powerpacks_with_pagination( &self, mut params: ListPowerpacksOptionalParams, - ) -> impl Stream>> - + '_ { + ) -> impl Stream< + Item = Result>, + > + '_ { try_stream! { let mut page_size: i64 = 25; if params.page_limit.is_none() { @@ -392,8 +541,8 @@ impl PowerpackAPI { &self, params: ListPowerpacksOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_powerpacks"; @@ -402,7 +551,7 @@ impl PowerpackAPI { let page_limit = params.page_limit; let page_offset = params.page_offset; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/powerpacks", @@ -420,20 +569,39 @@ impl PowerpackAPI { local_req_builder.query(&[("page[offset]", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -445,23 +613,23 @@ impl PowerpackAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -470,7 +638,8 @@ impl PowerpackAPI { &self, powerpack_id: String, body: crate::datadogV2::model::Powerpack, - ) -> Result> { + ) -> Result> + { match self .update_powerpack_with_http_info(powerpack_id, body) .await @@ -479,7 +648,7 @@ impl PowerpackAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -494,43 +663,101 @@ impl PowerpackAPI { powerpack_id: String, body: crate::datadogV2::model::Powerpack, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_powerpack"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/powerpacks/{powerpack_id}", local_configuration.get_operation_host(operation_id), - powerpack_id = urlencode(powerpack_id) + powerpack_id = datadog::urlencode(powerpack_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -541,23 +768,23 @@ impl PowerpackAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_processes.rs b/src/datadogV2/api/api_processes.rs index 36fb305ed..b63d744a8 100644 --- a/src/datadogV2/api/api_processes.rs +++ b/src/datadogV2/api/api_processes.rs @@ -1,10 +1,10 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; +use crate::datadog; use async_stream::try_stream; use futures_core::stream::Stream; -use reqwest; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; /// ListProcessesOptionalParams is a struct for passing parameters to the method [`ProcessesAPI::list_processes`] @@ -80,14 +80,13 @@ pub enum ListProcessesError { #[derive(Debug, Clone)] pub struct ProcessesAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for ProcessesAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -95,21 +94,66 @@ impl ProcessesAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Get all processes for your organization. pub async fn list_processes( &self, params: ListProcessesOptionalParams, - ) -> Result> { + ) -> Result> + { match self.list_processes_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -121,8 +165,9 @@ impl ProcessesAPI { pub fn list_processes_with_pagination( &self, mut params: ListProcessesOptionalParams, - ) -> impl Stream>> - + '_ { + ) -> impl Stream< + Item = Result>, + > + '_ { try_stream! { let mut page_size: i32 = 1000; if params.page_limit.is_none() { @@ -157,8 +202,8 @@ impl ProcessesAPI { &self, params: ListProcessesOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_processes"; @@ -171,7 +216,7 @@ impl ProcessesAPI { let page_limit = params.page_limit; let page_cursor = params.page_cursor; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/processes", @@ -204,20 +249,39 @@ impl ProcessesAPI { local_req_builder.query(&[("page[cursor]", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -229,23 +293,23 @@ impl ProcessesAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_restriction_policies.rs b/src/datadogV2/api/api_restriction_policies.rs index 5b562c1f6..12292f31d 100644 --- a/src/datadogV2/api/api_restriction_policies.rs +++ b/src/datadogV2/api/api_restriction_policies.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// DeleteRestrictionPolicyError is a struct for typed errors of method [`RestrictionPoliciesAPI::delete_restriction_policy`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -37,14 +42,13 @@ pub enum UpdateRestrictionPolicyError { #[derive(Debug, Clone)] pub struct RestrictionPoliciesAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for RestrictionPoliciesAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -52,15 +56,59 @@ impl RestrictionPoliciesAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Deletes the restriction policy associated with a specified resource. pub async fn delete_restriction_policy( &self, resource_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .delete_restriction_policy_with_http_info(resource_id) .await @@ -74,34 +122,53 @@ impl RestrictionPoliciesAPI { pub async fn delete_restriction_policy_with_http_info( &self, resource_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_restriction_policy"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/restriction_policy/{resource_id}", local_configuration.get_operation_host(operation_id), - resource_id = urlencode(resource_id) + resource_id = datadog::urlencode(resource_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -109,7 +176,7 @@ impl RestrictionPoliciesAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -117,12 +184,12 @@ impl RestrictionPoliciesAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -130,8 +197,10 @@ impl RestrictionPoliciesAPI { pub async fn get_restriction_policy( &self, resource_id: String, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::RestrictionPolicyResponse, + datadog::Error, + > { match self .get_restriction_policy_with_http_info(resource_id) .await @@ -140,7 +209,7 @@ impl RestrictionPoliciesAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -154,36 +223,55 @@ impl RestrictionPoliciesAPI { &self, resource_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_restriction_policy"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/restriction_policy/{resource_id}", local_configuration.get_operation_host(operation_id), - resource_id = urlencode(resource_id) + resource_id = datadog::urlencode(resource_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -195,23 +283,23 @@ impl RestrictionPoliciesAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -239,7 +327,7 @@ impl RestrictionPoliciesAPI { body: crate::datadogV2::model::RestrictionPolicyUpdateRequest, ) -> Result< crate::datadogV2::model::RestrictionPolicyResponse, - Error, + datadog::Error, > { match self .update_restriction_policy_with_http_info(resource_id, body) @@ -249,7 +337,7 @@ impl RestrictionPoliciesAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -281,43 +369,101 @@ impl RestrictionPoliciesAPI { resource_id: String, body: crate::datadogV2::model::RestrictionPolicyUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_restriction_policy"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/restriction_policy/{resource_id}", local_configuration.get_operation_host(operation_id), - resource_id = urlencode(resource_id) + resource_id = datadog::urlencode(resource_id) ); let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -329,23 +475,23 @@ impl RestrictionPoliciesAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_roles.rs b/src/datadogV2/api/api_roles.rs index 0b6fc3856..cdfeb7acc 100644 --- a/src/datadogV2/api/api_roles.rs +++ b/src/datadogV2/api/api_roles.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// ListRoleUsersOptionalParams is a struct for passing parameters to the method [`RolesAPI::list_role_users`] #[non_exhaustive] @@ -233,14 +238,13 @@ pub enum UpdateRoleError { #[derive(Debug, Clone)] pub struct RolesAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for RolesAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -248,8 +252,52 @@ impl RolesAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Adds a permission to a role. @@ -257,7 +305,10 @@ impl RolesAPI { &self, role_id: String, body: crate::datadogV2::model::RelationshipToPermission, - ) -> Result> { + ) -> Result< + crate::datadogV2::model::PermissionsResponse, + datadog::Error, + > { match self .add_permission_to_role_with_http_info(role_id, body) .await @@ -266,7 +317,7 @@ impl RolesAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -281,43 +332,101 @@ impl RolesAPI { role_id: String, body: crate::datadogV2::model::RelationshipToPermission, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.add_permission_to_role"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/roles/{role_id}/permissions", local_configuration.get_operation_host(operation_id), - role_id = urlencode(role_id) + role_id = datadog::urlencode(role_id) ); let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -329,23 +438,23 @@ impl RolesAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -354,13 +463,13 @@ impl RolesAPI { &self, role_id: String, body: crate::datadogV2::model::RelationshipToUser, - ) -> Result> { + ) -> Result> { match self.add_user_to_role_with_http_info(role_id, body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -374,42 +483,102 @@ impl RolesAPI { &self, role_id: String, body: crate::datadogV2::model::RelationshipToUser, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.add_user_to_role"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/roles/{role_id}/users", local_configuration.get_operation_host(operation_id), - role_id = urlencode(role_id) + role_id = datadog::urlencode(role_id) ); let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -419,23 +588,23 @@ impl RolesAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -444,13 +613,13 @@ impl RolesAPI { &self, role_id: String, body: crate::datadogV2::model::RoleCloneRequest, - ) -> Result> { + ) -> Result> { match self.clone_role_with_http_info(role_id, body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -464,41 +633,102 @@ impl RolesAPI { &self, role_id: String, body: crate::datadogV2::model::RoleCloneRequest, - ) -> Result, Error> { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.clone_role"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/roles/{role_id}/clone", local_configuration.get_operation_host(operation_id), - role_id = urlencode(role_id) + role_id = datadog::urlencode(role_id) ); let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -508,22 +738,22 @@ impl RolesAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -531,13 +761,13 @@ impl RolesAPI { pub async fn create_role( &self, body: crate::datadogV2::model::RoleCreateRequest, - ) -> Result> { + ) -> Result> { match self.create_role_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -550,12 +780,14 @@ impl RolesAPI { pub async fn create_role_with_http_info( &self, body: crate::datadogV2::model::RoleCreateRequest, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.create_role"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/roles", @@ -564,27 +796,85 @@ impl RolesAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -596,27 +886,30 @@ impl RolesAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Disables a role. - pub async fn delete_role(&self, role_id: String) -> Result<(), Error> { + pub async fn delete_role( + &self, + role_id: String, + ) -> Result<(), datadog::Error> { match self.delete_role_with_http_info(role_id).await { Ok(_) => Ok(()), Err(err) => Err(err), @@ -627,34 +920,53 @@ impl RolesAPI { pub async fn delete_role_with_http_info( &self, role_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_role"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/roles/{role_id}", local_configuration.get_operation_host(operation_id), - role_id = urlencode(role_id) + role_id = datadog::urlencode(role_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -662,19 +974,19 @@ impl RolesAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, }) } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -682,13 +994,13 @@ impl RolesAPI { pub async fn get_role( &self, role_id: String, - ) -> Result> { + ) -> Result> { match self.get_role_with_http_info(role_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -701,34 +1013,56 @@ impl RolesAPI { pub async fn get_role_with_http_info( &self, role_id: String, - ) -> Result, Error> { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.get_role"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/roles/{role_id}", local_configuration.get_operation_host(operation_id), - role_id = urlencode(role_id) + role_id = datadog::urlencode(role_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -738,35 +1072,36 @@ impl RolesAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Returns a list of all permissions, including name, description, and ID. pub async fn list_permissions( &self, - ) -> Result> { + ) -> Result> + { match self.list_permissions_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -779,13 +1114,13 @@ impl RolesAPI { pub async fn list_permissions_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_permissions"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/permissions", @@ -794,20 +1129,39 @@ impl RolesAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -819,23 +1173,23 @@ impl RolesAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -843,13 +1197,16 @@ impl RolesAPI { pub async fn list_role_permissions( &self, role_id: String, - ) -> Result> { + ) -> Result< + crate::datadogV2::model::PermissionsResponse, + datadog::Error, + > { match self.list_role_permissions_with_http_info(role_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -863,36 +1220,55 @@ impl RolesAPI { &self, role_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_role_permissions"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/roles/{role_id}/permissions", local_configuration.get_operation_host(operation_id), - role_id = urlencode(role_id) + role_id = datadog::urlencode(role_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -904,23 +1280,23 @@ impl RolesAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -929,13 +1305,13 @@ impl RolesAPI { &self, role_id: String, params: ListRoleUsersOptionalParams, - ) -> Result> { + ) -> Result> { match self.list_role_users_with_http_info(role_id, params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -949,8 +1325,10 @@ impl RolesAPI { &self, role_id: String, params: ListRoleUsersOptionalParams, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.list_role_users"; @@ -960,12 +1338,12 @@ impl RolesAPI { let sort = params.sort; let filter = params.filter; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/roles/{role_id}/users", local_configuration.get_operation_host(operation_id), - role_id = urlencode(role_id) + role_id = datadog::urlencode(role_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); @@ -987,20 +1365,39 @@ impl RolesAPI { local_req_builder.query(&[("filter", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1010,23 +1407,23 @@ impl RolesAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1034,13 +1431,13 @@ impl RolesAPI { pub async fn list_roles( &self, params: ListRolesOptionalParams, - ) -> Result> { + ) -> Result> { match self.list_roles_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1053,8 +1450,10 @@ impl RolesAPI { pub async fn list_roles_with_http_info( &self, params: ListRolesOptionalParams, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.list_roles"; @@ -1065,7 +1464,7 @@ impl RolesAPI { let filter = params.filter; let filter_id = params.filter_id; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/roles", @@ -1095,20 +1494,39 @@ impl RolesAPI { local_req_builder.query(&[("filter[id]", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1118,22 +1536,22 @@ impl RolesAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1142,8 +1560,10 @@ impl RolesAPI { &self, role_id: String, body: crate::datadogV2::model::RelationshipToPermission, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::PermissionsResponse, + datadog::Error, + > { match self .remove_permission_from_role_with_http_info(role_id, body) .await @@ -1152,7 +1572,7 @@ impl RolesAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1167,43 +1587,101 @@ impl RolesAPI { role_id: String, body: crate::datadogV2::model::RelationshipToPermission, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.remove_permission_from_role"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/roles/{role_id}/permissions", local_configuration.get_operation_host(operation_id), - role_id = urlencode(role_id) + role_id = datadog::urlencode(role_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1215,23 +1693,23 @@ impl RolesAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1240,7 +1718,8 @@ impl RolesAPI { &self, role_id: String, body: crate::datadogV2::model::RelationshipToUser, - ) -> Result> { + ) -> Result> + { match self .remove_user_from_role_with_http_info(role_id, body) .await @@ -1249,7 +1728,7 @@ impl RolesAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1264,43 +1743,101 @@ impl RolesAPI { role_id: String, body: crate::datadogV2::model::RelationshipToUser, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.remove_user_from_role"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/roles/{role_id}/users", local_configuration.get_operation_host(operation_id), - role_id = urlencode(role_id) + role_id = datadog::urlencode(role_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1310,23 +1847,23 @@ impl RolesAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1335,13 +1872,13 @@ impl RolesAPI { &self, role_id: String, body: crate::datadogV2::model::RoleUpdateRequest, - ) -> Result> { + ) -> Result> { match self.update_role_with_http_info(role_id, body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1355,42 +1892,102 @@ impl RolesAPI { &self, role_id: String, body: crate::datadogV2::model::RoleUpdateRequest, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.update_role"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/roles/{role_id}", local_configuration.get_operation_host(operation_id), - role_id = urlencode(role_id) + role_id = datadog::urlencode(role_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1402,22 +1999,22 @@ impl RolesAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_rum.rs b/src/datadogV2/api/api_rum.rs index 4bb7fedb2..1e601a8cb 100644 --- a/src/datadogV2/api/api_rum.rs +++ b/src/datadogV2/api/api_rum.rs @@ -1,11 +1,16 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; +use crate::datadog; use async_stream::try_stream; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; use futures_core::stream::Stream; -use reqwest; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// ListRUMEventsOptionalParams is a struct for passing parameters to the method [`RUMAPI::list_rum_events`] #[non_exhaustive] @@ -137,14 +142,13 @@ pub enum UpdateRUMApplicationError { #[derive(Debug, Clone)] pub struct RUMAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for RUMAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -152,8 +156,52 @@ impl RUMAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// The API endpoint to aggregate RUM events into buckets of computed metrics and timeseries. @@ -162,14 +210,14 @@ impl RUMAPI { body: crate::datadogV2::model::RUMAggregateRequest, ) -> Result< crate::datadogV2::model::RUMAnalyticsAggregateResponse, - Error, + datadog::Error, > { match self.aggregate_rum_events_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -183,13 +231,13 @@ impl RUMAPI { &self, body: crate::datadogV2::model::RUMAggregateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.aggregate_rum_events"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/rum/analytics/aggregate", @@ -198,27 +246,85 @@ impl RUMAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -230,23 +336,23 @@ impl RUMAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -254,14 +360,16 @@ impl RUMAPI { pub async fn create_rum_application( &self, body: crate::datadogV2::model::RUMApplicationCreateRequest, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::RUMApplicationResponse, + datadog::Error, + > { match self.create_rum_application_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -275,13 +383,13 @@ impl RUMAPI { &self, body: crate::datadogV2::model::RUMApplicationCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_rum_application"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/rum/applications", @@ -290,27 +398,85 @@ impl RUMAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -322,23 +488,23 @@ impl RUMAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -346,7 +512,7 @@ impl RUMAPI { pub async fn delete_rum_application( &self, id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self.delete_rum_application_with_http_info(id).await { Ok(_) => Ok(()), Err(err) => Err(err), @@ -357,34 +523,53 @@ impl RUMAPI { pub async fn delete_rum_application_with_http_info( &self, id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_rum_application"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/rum/applications/{id}", local_configuration.get_operation_host(operation_id), - id = urlencode(id) + id = datadog::urlencode(id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -392,7 +577,7 @@ impl RUMAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -400,12 +585,12 @@ impl RUMAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -413,14 +598,16 @@ impl RUMAPI { pub async fn get_rum_application( &self, id: String, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::RUMApplicationResponse, + datadog::Error, + > { match self.get_rum_application_with_http_info(id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -434,36 +621,55 @@ impl RUMAPI { &self, id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_rum_application"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/rum/applications/{id}", local_configuration.get_operation_host(operation_id), - id = urlencode(id) + id = datadog::urlencode(id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -475,37 +681,39 @@ impl RUMAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// List all the RUM applications in your organization. pub async fn get_rum_applications( &self, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::RUMApplicationsResponse, + datadog::Error, + > { match self.get_rum_applications_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -518,13 +726,13 @@ impl RUMAPI { pub async fn get_rum_applications_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_rum_applications"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/rum/applications", @@ -533,20 +741,39 @@ impl RUMAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -558,23 +785,23 @@ impl RUMAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -587,13 +814,14 @@ impl RUMAPI { pub async fn list_rum_events( &self, params: ListRUMEventsOptionalParams, - ) -> Result> { + ) -> Result> + { match self.list_rum_events_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -605,8 +833,9 @@ impl RUMAPI { pub fn list_rum_events_with_pagination( &self, mut params: ListRUMEventsOptionalParams, - ) -> impl Stream>> + '_ - { + ) -> impl Stream< + Item = Result>, + > + '_ { try_stream! { let mut page_size: i32 = 10; if params.page_limit.is_none() { @@ -646,8 +875,8 @@ impl RUMAPI { &self, params: ListRUMEventsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_rum_events"; @@ -660,7 +889,7 @@ impl RUMAPI { let page_cursor = params.page_cursor; let page_limit = params.page_limit; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/rum/events", @@ -694,20 +923,39 @@ impl RUMAPI { local_req_builder.query(&[("page[limit]", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -718,23 +966,23 @@ impl RUMAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -747,13 +995,14 @@ impl RUMAPI { pub async fn search_rum_events( &self, body: crate::datadogV2::model::RUMSearchEventsRequest, - ) -> Result> { + ) -> Result> + { match self.search_rum_events_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -765,8 +1014,9 @@ impl RUMAPI { pub fn search_rum_events_with_pagination( &self, mut body: crate::datadogV2::model::RUMSearchEventsRequest, - ) -> impl Stream>> + '_ - { + ) -> impl Stream< + Item = Result>, + > + '_ { try_stream! { let mut page_size: i32 = 10; if body.page.is_none() { @@ -809,13 +1059,13 @@ impl RUMAPI { &self, body: crate::datadogV2::model::RUMSearchEventsRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.search_rum_events"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/rum/events/search", @@ -824,27 +1074,85 @@ impl RUMAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -855,23 +1163,23 @@ impl RUMAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -880,14 +1188,16 @@ impl RUMAPI { &self, id: String, body: crate::datadogV2::model::RUMApplicationUpdateRequest, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::RUMApplicationResponse, + datadog::Error, + > { match self.update_rum_application_with_http_info(id, body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -902,43 +1212,101 @@ impl RUMAPI { id: String, body: crate::datadogV2::model::RUMApplicationUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_rum_application"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/rum/applications/{id}", local_configuration.get_operation_host(operation_id), - id = urlencode(id) + id = datadog::urlencode(id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -950,23 +1318,23 @@ impl RUMAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_security_monitoring.rs b/src/datadogV2/api/api_security_monitoring.rs index 82a7c150c..9f9c4a589 100644 --- a/src/datadogV2/api/api_security_monitoring.rs +++ b/src/datadogV2/api/api_security_monitoring.rs @@ -1,12 +1,17 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; +use crate::datadog; use async_stream::try_stream; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; use futures_core::stream::Stream; use log::warn; -use reqwest; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// GetFindingOptionalParams is a struct for passing parameters to the method [`SecurityMonitoringAPI::get_finding`] #[non_exhaustive] @@ -229,6 +234,17 @@ pub enum CreateSecurityMonitoringRuleError { UnknownValue(serde_json::Value), } +/// CreateSecurityMonitoringSuppressionError is a struct for typed errors of method [`SecurityMonitoringAPI::create_security_monitoring_suppression`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum CreateSecurityMonitoringSuppressionError { + Status400(Option), + Status403(Option), + Status409(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + /// DeleteSecurityFilterError is a struct for typed errors of method [`SecurityMonitoringAPI::delete_security_filter`] #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] @@ -249,6 +265,16 @@ pub enum DeleteSecurityMonitoringRuleError { UnknownValue(serde_json::Value), } +/// DeleteSecurityMonitoringSuppressionError is a struct for typed errors of method [`SecurityMonitoringAPI::delete_security_monitoring_suppression`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum DeleteSecurityMonitoringSuppressionError { + Status403(Option), + Status404(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + /// EditSecurityMonitoringSignalAssigneeError is a struct for typed errors of method [`SecurityMonitoringAPI::edit_security_monitoring_signal_assignee`] #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] @@ -321,6 +347,16 @@ pub enum GetSecurityMonitoringSignalError { UnknownValue(serde_json::Value), } +/// GetSecurityMonitoringSuppressionError is a struct for typed errors of method [`SecurityMonitoringAPI::get_security_monitoring_suppression`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum GetSecurityMonitoringSuppressionError { + Status403(Option), + Status404(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + /// ListFindingsError is a struct for typed errors of method [`SecurityMonitoringAPI::list_findings`] #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] @@ -360,6 +396,15 @@ pub enum ListSecurityMonitoringSignalsError { UnknownValue(serde_json::Value), } +/// ListSecurityMonitoringSuppressionsError is a struct for typed errors of method [`SecurityMonitoringAPI::list_security_monitoring_suppressions`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum ListSecurityMonitoringSuppressionsError { + Status403(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + /// MuteFindingsError is a struct for typed errors of method [`SecurityMonitoringAPI::mute_findings`] #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] @@ -406,16 +451,37 @@ pub enum UpdateSecurityMonitoringRuleError { UnknownValue(serde_json::Value), } +/// UpdateSecurityMonitoringSuppressionError is a struct for typed errors of method [`SecurityMonitoringAPI::update_security_monitoring_suppression`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum UpdateSecurityMonitoringSuppressionError { + Status400(Option), + Status403(Option), + Status404(Option), + Status409(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + +/// ValidateSecurityMonitoringRuleError is a struct for typed errors of method [`SecurityMonitoringAPI::validate_security_monitoring_rule`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum ValidateSecurityMonitoringRuleError { + Status400(Option), + Status403(Option), + Status429(Option), + UnknownValue(serde_json::Value), +} + #[derive(Debug, Clone)] pub struct SecurityMonitoringAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for SecurityMonitoringAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -423,8 +489,52 @@ impl SecurityMonitoringAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create a security filter. @@ -434,14 +544,16 @@ impl SecurityMonitoringAPI { pub async fn create_security_filter( &self, body: crate::datadogV2::model::SecurityFilterCreateRequest, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::SecurityFilterResponse, + datadog::Error, + > { match self.create_security_filter_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -458,13 +570,13 @@ impl SecurityMonitoringAPI { &self, body: crate::datadogV2::model::SecurityFilterCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_security_filter"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/security_monitoring/configuration/security_filters", @@ -473,27 +585,85 @@ impl SecurityMonitoringAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -505,23 +675,23 @@ impl SecurityMonitoringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -531,7 +701,7 @@ impl SecurityMonitoringAPI { body: crate::datadogV2::model::SecurityMonitoringRuleCreatePayload, ) -> Result< crate::datadogV2::model::SecurityMonitoringRuleResponse, - Error, + datadog::Error, > { match self .create_security_monitoring_rule_with_http_info(body) @@ -541,7 +711,7 @@ impl SecurityMonitoringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -555,13 +725,13 @@ impl SecurityMonitoringAPI { &self, body: crate::datadogV2::model::SecurityMonitoringRuleCreatePayload, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_security_monitoring_rule"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/security_monitoring/rules", @@ -570,27 +740,85 @@ impl SecurityMonitoringAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -602,23 +830,179 @@ impl SecurityMonitoringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// Create a new suppression rule. + pub async fn create_security_monitoring_suppression( + &self, + body: crate::datadogV2::model::SecurityMonitoringSuppressionCreateRequest, + ) -> Result< + crate::datadogV2::model::SecurityMonitoringSuppressionResponse, + datadog::Error, + > { + match self + .create_security_monitoring_suppression_with_http_info(body) + .await + { + Ok(response_content) => { + if let Some(e) = response_content.entity { + Ok(e) + } else { + Err(datadog::Error::Serde(serde::de::Error::custom( + "response content was None", + ))) + } + } + Err(err) => Err(err), + } + } + + /// Create a new suppression rule. + pub async fn create_security_monitoring_suppression_with_http_info( + &self, + body: crate::datadogV2::model::SecurityMonitoringSuppressionCreateRequest, + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { + let local_configuration = &self.config; + let operation_id = "v2.create_security_monitoring_suppression"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/security_monitoring/configuration/suppressions", + local_configuration.get_operation_host(operation_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + // build body parameters + let output = Vec::new(); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); + if body.serialize(&mut ser).is_ok() { + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + match serde_json::from_str::< + crate::datadogV2::model::SecurityMonitoringSuppressionResponse, + >(&local_content) + { + Ok(e) => { + return Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: Some(e), + }) + } + Err(e) => return Err(datadog::Error::Serde(e)), + }; + } else { + let local_entity: Option = + serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -626,7 +1010,7 @@ impl SecurityMonitoringAPI { pub async fn delete_security_filter( &self, security_filter_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .delete_security_filter_with_http_info(security_filter_id) .await @@ -640,34 +1024,53 @@ impl SecurityMonitoringAPI { pub async fn delete_security_filter_with_http_info( &self, security_filter_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_security_filter"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/security_monitoring/configuration/security_filters/{security_filter_id}", local_configuration.get_operation_host(operation_id), - security_filter_id = urlencode(security_filter_id) + security_filter_id = datadog::urlencode(security_filter_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -675,7 +1078,7 @@ impl SecurityMonitoringAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -683,12 +1086,12 @@ impl SecurityMonitoringAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -696,7 +1099,7 @@ impl SecurityMonitoringAPI { pub async fn delete_security_monitoring_rule( &self, rule_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .delete_security_monitoring_rule_with_http_info(rule_id) .await @@ -710,34 +1113,54 @@ impl SecurityMonitoringAPI { pub async fn delete_security_monitoring_rule_with_http_info( &self, rule_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> + { let local_configuration = &self.config; let operation_id = "v2.delete_security_monitoring_rule"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/security_monitoring/rules/{rule_id}", local_configuration.get_operation_host(operation_id), - rule_id = urlencode(rule_id) + rule_id = datadog::urlencode(rule_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -745,7 +1168,7 @@ impl SecurityMonitoringAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -753,12 +1176,104 @@ impl SecurityMonitoringAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// Delete a specific suppression rule. + pub async fn delete_security_monitoring_suppression( + &self, + suppression_id: String, + ) -> Result<(), datadog::Error> { + match self + .delete_security_monitoring_suppression_with_http_info(suppression_id) + .await + { + Ok(_) => Ok(()), + Err(err) => Err(err), + } + } + + /// Delete a specific suppression rule. + pub async fn delete_security_monitoring_suppression_with_http_info( + &self, + suppression_id: String, + ) -> Result< + datadog::ResponseContent<()>, + datadog::Error, + > { + let local_configuration = &self.config; + let operation_id = "v2.delete_security_monitoring_suppression"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/security_monitoring/configuration/suppressions/{suppression_id}", + local_configuration.get_operation_host(operation_id), + suppression_id = datadog::urlencode(suppression_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: None, + }) + } else { + let local_entity: Option = + serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -769,7 +1284,7 @@ impl SecurityMonitoringAPI { body: crate::datadogV2::model::SecurityMonitoringSignalAssigneeUpdateRequest, ) -> Result< crate::datadogV2::model::SecurityMonitoringSignalTriageUpdateResponse, - Error, + datadog::Error, > { match self .edit_security_monitoring_signal_assignee_with_http_info(signal_id, body) @@ -779,7 +1294,7 @@ impl SecurityMonitoringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -794,43 +1309,103 @@ impl SecurityMonitoringAPI { signal_id: String, body: crate::datadogV2::model::SecurityMonitoringSignalAssigneeUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent< + crate::datadogV2::model::SecurityMonitoringSignalTriageUpdateResponse, + >, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.edit_security_monitoring_signal_assignee"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/security_monitoring/signals/{signal_id}/assignee", local_configuration.get_operation_host(operation_id), - signal_id = urlencode(signal_id) + signal_id = datadog::urlencode(signal_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -843,23 +1418,23 @@ impl SecurityMonitoringAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -870,7 +1445,7 @@ impl SecurityMonitoringAPI { body: crate::datadogV2::model::SecurityMonitoringSignalIncidentsUpdateRequest, ) -> Result< crate::datadogV2::model::SecurityMonitoringSignalTriageUpdateResponse, - Error, + datadog::Error, > { match self .edit_security_monitoring_signal_incidents_with_http_info(signal_id, body) @@ -880,7 +1455,7 @@ impl SecurityMonitoringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -895,43 +1470,103 @@ impl SecurityMonitoringAPI { signal_id: String, body: crate::datadogV2::model::SecurityMonitoringSignalIncidentsUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent< + crate::datadogV2::model::SecurityMonitoringSignalTriageUpdateResponse, + >, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.edit_security_monitoring_signal_incidents"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/security_monitoring/signals/{signal_id}/incidents", local_configuration.get_operation_host(operation_id), - signal_id = urlencode(signal_id) + signal_id = datadog::urlencode(signal_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -944,23 +1579,23 @@ impl SecurityMonitoringAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -971,7 +1606,7 @@ impl SecurityMonitoringAPI { body: crate::datadogV2::model::SecurityMonitoringSignalStateUpdateRequest, ) -> Result< crate::datadogV2::model::SecurityMonitoringSignalTriageUpdateResponse, - Error, + datadog::Error, > { match self .edit_security_monitoring_signal_state_with_http_info(signal_id, body) @@ -981,7 +1616,7 @@ impl SecurityMonitoringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -996,43 +1631,103 @@ impl SecurityMonitoringAPI { signal_id: String, body: crate::datadogV2::model::SecurityMonitoringSignalStateUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent< + crate::datadogV2::model::SecurityMonitoringSignalTriageUpdateResponse, + >, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.edit_security_monitoring_signal_state"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/security_monitoring/signals/{signal_id}/state", local_configuration.get_operation_host(operation_id), - signal_id = urlencode(signal_id) + signal_id = datadog::urlencode(signal_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1045,23 +1740,23 @@ impl SecurityMonitoringAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1070,13 +1765,13 @@ impl SecurityMonitoringAPI { &self, finding_id: String, params: GetFindingOptionalParams, - ) -> Result> { + ) -> Result> { match self.get_finding_with_http_info(finding_id, params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1090,28 +1785,30 @@ impl SecurityMonitoringAPI { &self, finding_id: String, params: GetFindingOptionalParams, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.get_finding"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.get_finding' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } // unbox and build optional parameters let snapshot_timestamp = params.snapshot_timestamp; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/posture_management/findings/{finding_id}", local_configuration.get_operation_host(operation_id), - finding_id = urlencode(finding_id) + finding_id = datadog::urlencode(finding_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); @@ -1121,20 +1818,39 @@ impl SecurityMonitoringAPI { local_req_builder.query(&[("snapshot_timestamp", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1146,22 +1862,22 @@ impl SecurityMonitoringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1172,8 +1888,10 @@ impl SecurityMonitoringAPI { pub async fn get_security_filter( &self, security_filter_id: String, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::SecurityFilterResponse, + datadog::Error, + > { match self .get_security_filter_with_http_info(security_filter_id) .await @@ -1182,7 +1900,7 @@ impl SecurityMonitoringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1199,36 +1917,55 @@ impl SecurityMonitoringAPI { &self, security_filter_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_security_filter"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/security_monitoring/configuration/security_filters/{security_filter_id}", local_configuration.get_operation_host(operation_id), - security_filter_id = urlencode(security_filter_id) + security_filter_id = datadog::urlencode(security_filter_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1240,23 +1977,23 @@ impl SecurityMonitoringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1266,7 +2003,7 @@ impl SecurityMonitoringAPI { rule_id: String, ) -> Result< crate::datadogV2::model::SecurityMonitoringRuleResponse, - Error, + datadog::Error, > { match self .get_security_monitoring_rule_with_http_info(rule_id) @@ -1276,7 +2013,7 @@ impl SecurityMonitoringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1290,36 +2027,55 @@ impl SecurityMonitoringAPI { &self, rule_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_security_monitoring_rule"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/security_monitoring/rules/{rule_id}", local_configuration.get_operation_host(operation_id), - rule_id = urlencode(rule_id) + rule_id = datadog::urlencode(rule_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1331,23 +2087,23 @@ impl SecurityMonitoringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1357,7 +2113,7 @@ impl SecurityMonitoringAPI { signal_id: String, ) -> Result< crate::datadogV2::model::SecurityMonitoringSignalResponse, - Error, + datadog::Error, > { match self .get_security_monitoring_signal_with_http_info(signal_id) @@ -1367,7 +2123,7 @@ impl SecurityMonitoringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1381,36 +2137,55 @@ impl SecurityMonitoringAPI { &self, signal_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_security_monitoring_signal"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/security_monitoring/signals/{signal_id}", local_configuration.get_operation_host(operation_id), - signal_id = urlencode(signal_id) + signal_id = datadog::urlencode(signal_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1422,23 +2197,134 @@ impl SecurityMonitoringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// Get the details of a specific suppression rule. + pub async fn get_security_monitoring_suppression( + &self, + suppression_id: String, + ) -> Result< + crate::datadogV2::model::SecurityMonitoringSuppressionResponse, + datadog::Error, + > { + match self + .get_security_monitoring_suppression_with_http_info(suppression_id) + .await + { + Ok(response_content) => { + if let Some(e) = response_content.entity { + Ok(e) + } else { + Err(datadog::Error::Serde(serde::de::Error::custom( + "response content was None", + ))) + } + } + Err(err) => Err(err), + } + } + + /// Get the details of a specific suppression rule. + pub async fn get_security_monitoring_suppression_with_http_info( + &self, + suppression_id: String, + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { + let local_configuration = &self.config; + let operation_id = "v2.get_security_monitoring_suppression"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/security_monitoring/configuration/suppressions/{suppression_id}", + local_configuration.get_operation_host(operation_id), + suppression_id = datadog::urlencode(suppression_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + match serde_json::from_str::< + crate::datadogV2::model::SecurityMonitoringSuppressionResponse, + >(&local_content) + { + Ok(e) => { + return Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: Some(e), + }) + } + Err(e) => return Err(datadog::Error::Serde(e)), + }; + } else { + let local_entity: Option = + serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) } } @@ -1476,13 +2362,14 @@ impl SecurityMonitoringAPI { pub async fn list_findings( &self, params: ListFindingsOptionalParams, - ) -> Result> { + ) -> Result> + { match self.list_findings_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1494,8 +2381,9 @@ impl SecurityMonitoringAPI { pub fn list_findings_with_pagination( &self, mut params: ListFindingsOptionalParams, - ) -> impl Stream>> + '_ - { + ) -> impl Stream< + Item = Result>, + > + '_ { try_stream! { let mut page_size: i64 = 100; if params.page_limit.is_none() { @@ -1558,18 +2446,18 @@ impl SecurityMonitoringAPI { &self, params: ListFindingsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_findings"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.list_findings' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } // unbox and build optional parameters @@ -1586,7 +2474,7 @@ impl SecurityMonitoringAPI { let filter_evaluation = params.filter_evaluation; let filter_status = params.filter_status; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/posture_management/findings", @@ -1648,20 +2536,39 @@ impl SecurityMonitoringAPI { local_req_builder.query(&[("filter[status]", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1673,36 +2580,38 @@ impl SecurityMonitoringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get the list of configured security filters with their definitions. pub async fn list_security_filters( &self, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::SecurityFiltersResponse, + datadog::Error, + > { match self.list_security_filters_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1715,13 +2624,13 @@ impl SecurityMonitoringAPI { pub async fn list_security_filters_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_security_filters"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/security_monitoring/configuration/security_filters", @@ -1730,20 +2639,39 @@ impl SecurityMonitoringAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1755,23 +2683,23 @@ impl SecurityMonitoringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1781,7 +2709,7 @@ impl SecurityMonitoringAPI { params: ListSecurityMonitoringRulesOptionalParams, ) -> Result< crate::datadogV2::model::SecurityMonitoringListRulesResponse, - Error, + datadog::Error, > { match self .list_security_monitoring_rules_with_http_info(params) @@ -1791,7 +2719,7 @@ impl SecurityMonitoringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1805,8 +2733,8 @@ impl SecurityMonitoringAPI { &self, params: ListSecurityMonitoringRulesOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_security_monitoring_rules"; @@ -1815,7 +2743,7 @@ impl SecurityMonitoringAPI { let page_size = params.page_size; let page_number = params.page_number; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/security_monitoring/rules", @@ -1833,20 +2761,39 @@ impl SecurityMonitoringAPI { local_req_builder.query(&[("page[number]", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1858,23 +2805,23 @@ impl SecurityMonitoringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1886,7 +2833,7 @@ impl SecurityMonitoringAPI { params: ListSecurityMonitoringSignalsOptionalParams, ) -> Result< crate::datadogV2::model::SecurityMonitoringSignalsListResponse, - Error, + datadog::Error, > { match self .list_security_monitoring_signals_with_http_info(params) @@ -1896,7 +2843,7 @@ impl SecurityMonitoringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1911,7 +2858,7 @@ impl SecurityMonitoringAPI { ) -> impl Stream< Item = Result< crate::datadogV2::model::SecurityMonitoringSignal, - Error, + datadog::Error, >, > + '_ { try_stream! { @@ -1950,8 +2897,8 @@ impl SecurityMonitoringAPI { &self, params: ListSecurityMonitoringSignalsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_security_monitoring_signals"; @@ -1964,7 +2911,7 @@ impl SecurityMonitoringAPI { let page_cursor = params.page_cursor; let page_limit = params.page_limit; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/security_monitoring/signals", @@ -1998,20 +2945,39 @@ impl SecurityMonitoringAPI { local_req_builder.query(&[("page[limit]", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -2024,23 +2990,131 @@ impl SecurityMonitoringAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// Get the list of all suppression rules. + pub async fn list_security_monitoring_suppressions( + &self, + ) -> Result< + crate::datadogV2::model::SecurityMonitoringSuppressionsResponse, + datadog::Error, + > { + match self + .list_security_monitoring_suppressions_with_http_info() + .await + { + Ok(response_content) => { + if let Some(e) = response_content.entity { + Ok(e) + } else { + Err(datadog::Error::Serde(serde::de::Error::custom( + "response content was None", + ))) + } + } + Err(err) => Err(err), + } + } + + /// Get the list of all suppression rules. + pub async fn list_security_monitoring_suppressions_with_http_info( + &self, + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { + let local_configuration = &self.config; + let operation_id = "v2.list_security_monitoring_suppressions"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/security_monitoring/configuration/suppressions", + local_configuration.get_operation_host(operation_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + match serde_json::from_str::< + crate::datadogV2::model::SecurityMonitoringSuppressionsResponse, + >(&local_content) + { + Ok(e) => { + return Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: Some(e), + }) + } + Err(e) => return Err(datadog::Error::Serde(e)), + }; + } else { + let local_entity: Option = + serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) } } @@ -2048,13 +3122,14 @@ impl SecurityMonitoringAPI { pub async fn mute_findings( &self, body: crate::datadogV2::model::BulkMuteFindingsRequest, - ) -> Result> { + ) -> Result> + { match self.mute_findings_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -2068,21 +3143,21 @@ impl SecurityMonitoringAPI { &self, body: crate::datadogV2::model::BulkMuteFindingsRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.mute_findings"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.mute_findings' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/posture_management/findings", @@ -2091,27 +3166,85 @@ impl SecurityMonitoringAPI { let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -2123,22 +3256,22 @@ impl SecurityMonitoringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -2150,7 +3283,7 @@ impl SecurityMonitoringAPI { params: SearchSecurityMonitoringSignalsOptionalParams, ) -> Result< crate::datadogV2::model::SecurityMonitoringSignalsListResponse, - Error, + datadog::Error, > { match self .search_security_monitoring_signals_with_http_info(params) @@ -2160,7 +3293,7 @@ impl SecurityMonitoringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -2175,7 +3308,7 @@ impl SecurityMonitoringAPI { ) -> impl Stream< Item = Result< crate::datadogV2::model::SecurityMonitoringSignal, - Error, + datadog::Error, >, > + '_ { try_stream! { @@ -2220,8 +3353,8 @@ impl SecurityMonitoringAPI { &self, params: SearchSecurityMonitoringSignalsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.search_security_monitoring_signals"; @@ -2229,7 +3362,7 @@ impl SecurityMonitoringAPI { // unbox and build optional parameters let body = params.body; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/security_monitoring/signals/search", @@ -2238,27 +3371,85 @@ impl SecurityMonitoringAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -2271,23 +3462,23 @@ impl SecurityMonitoringAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -2297,8 +3488,10 @@ impl SecurityMonitoringAPI { &self, security_filter_id: String, body: crate::datadogV2::model::SecurityFilterUpdateRequest, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::SecurityFilterResponse, + datadog::Error, + > { match self .update_security_filter_with_http_info(security_filter_id, body) .await @@ -2307,7 +3500,7 @@ impl SecurityMonitoringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -2323,43 +3516,101 @@ impl SecurityMonitoringAPI { security_filter_id: String, body: crate::datadogV2::model::SecurityFilterUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_security_filter"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/security_monitoring/configuration/security_filters/{security_filter_id}", local_configuration.get_operation_host(operation_id), - security_filter_id = urlencode(security_filter_id) + security_filter_id = datadog::urlencode(security_filter_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -2371,23 +3622,23 @@ impl SecurityMonitoringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -2400,7 +3651,7 @@ impl SecurityMonitoringAPI { body: crate::datadogV2::model::SecurityMonitoringRuleUpdatePayload, ) -> Result< crate::datadogV2::model::SecurityMonitoringRuleResponse, - Error, + datadog::Error, > { match self .update_security_monitoring_rule_with_http_info(rule_id, body) @@ -2410,7 +3661,7 @@ impl SecurityMonitoringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -2427,43 +3678,101 @@ impl SecurityMonitoringAPI { rule_id: String, body: crate::datadogV2::model::SecurityMonitoringRuleUpdatePayload, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_security_monitoring_rule"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/security_monitoring/rules/{rule_id}", local_configuration.get_operation_host(operation_id), - rule_id = urlencode(rule_id) + rule_id = datadog::urlencode(rule_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -2475,23 +3784,317 @@ impl SecurityMonitoringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// Update a specific suppression rule. + pub async fn update_security_monitoring_suppression( + &self, + suppression_id: String, + body: crate::datadogV2::model::SecurityMonitoringSuppressionUpdateRequest, + ) -> Result< + crate::datadogV2::model::SecurityMonitoringSuppressionResponse, + datadog::Error, + > { + match self + .update_security_monitoring_suppression_with_http_info(suppression_id, body) + .await + { + Ok(response_content) => { + if let Some(e) = response_content.entity { + Ok(e) + } else { + Err(datadog::Error::Serde(serde::de::Error::custom( + "response content was None", + ))) + } + } + Err(err) => Err(err), + } + } + + /// Update a specific suppression rule. + pub async fn update_security_monitoring_suppression_with_http_info( + &self, + suppression_id: String, + body: crate::datadogV2::model::SecurityMonitoringSuppressionUpdateRequest, + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { + let local_configuration = &self.config; + let operation_id = "v2.update_security_monitoring_suppression"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/security_monitoring/configuration/suppressions/{suppression_id}", + local_configuration.get_operation_host(operation_id), + suppression_id = datadog::urlencode(suppression_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + // build body parameters + let output = Vec::new(); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); + if body.serialize(&mut ser).is_ok() { + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + match serde_json::from_str::< + crate::datadogV2::model::SecurityMonitoringSuppressionResponse, + >(&local_content) + { + Ok(e) => { + return Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: Some(e), + }) + } + Err(e) => return Err(datadog::Error::Serde(e)), + }; + } else { + let local_entity: Option = + serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// Validate a detection rule. + pub async fn validate_security_monitoring_rule( + &self, + body: crate::datadogV2::model::SecurityMonitoringRuleCreatePayload, + ) -> Result<(), datadog::Error> { + match self + .validate_security_monitoring_rule_with_http_info(body) + .await + { + Ok(_) => Ok(()), + Err(err) => Err(err), + } + } + + /// Validate a detection rule. + pub async fn validate_security_monitoring_rule_with_http_info( + &self, + body: crate::datadogV2::model::SecurityMonitoringRuleCreatePayload, + ) -> Result, datadog::Error> + { + let local_configuration = &self.config; + let operation_id = "v2.validate_security_monitoring_rule"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/security_monitoring/rules/validation", + local_configuration.get_operation_host(operation_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("*/*")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + // build body parameters + let output = Vec::new(); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); + if body.serialize(&mut ser).is_ok() { + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + + if !local_status.is_client_error() && !local_status.is_server_error() { + Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: None, + }) + } else { + let local_entity: Option = + serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_sensitive_data_scanner.rs b/src/datadogV2/api/api_sensitive_data_scanner.rs index 45a6a01cb..83940d77e 100644 --- a/src/datadogV2/api/api_sensitive_data_scanner.rs +++ b/src/datadogV2/api/api_sensitive_data_scanner.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// CreateScanningGroupError is a struct for typed errors of method [`SensitiveDataScannerAPI::create_scanning_group`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -101,14 +106,13 @@ pub enum UpdateScanningRuleError { #[derive(Debug, Clone)] pub struct SensitiveDataScannerAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for SensitiveDataScannerAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -116,8 +120,52 @@ impl SensitiveDataScannerAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create a scanning group. @@ -130,14 +178,14 @@ impl SensitiveDataScannerAPI { body: crate::datadogV2::model::SensitiveDataScannerGroupCreateRequest, ) -> Result< crate::datadogV2::model::SensitiveDataScannerCreateGroupResponse, - Error, + datadog::Error, > { match self.create_scanning_group_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -155,13 +203,13 @@ impl SensitiveDataScannerAPI { &self, body: crate::datadogV2::model::SensitiveDataScannerGroupCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_scanning_group"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/sensitive-data-scanner/config/groups", @@ -170,27 +218,85 @@ impl SensitiveDataScannerAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -203,23 +309,23 @@ impl SensitiveDataScannerAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -233,14 +339,14 @@ impl SensitiveDataScannerAPI { body: crate::datadogV2::model::SensitiveDataScannerRuleCreateRequest, ) -> Result< crate::datadogV2::model::SensitiveDataScannerCreateRuleResponse, - Error, + datadog::Error, > { match self.create_scanning_rule_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -258,13 +364,13 @@ impl SensitiveDataScannerAPI { &self, body: crate::datadogV2::model::SensitiveDataScannerRuleCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_scanning_rule"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/sensitive-data-scanner/config/rules", @@ -273,27 +379,85 @@ impl SensitiveDataScannerAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -306,23 +470,23 @@ impl SensitiveDataScannerAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -333,7 +497,7 @@ impl SensitiveDataScannerAPI { body: crate::datadogV2::model::SensitiveDataScannerGroupDeleteRequest, ) -> Result< crate::datadogV2::model::SensitiveDataScannerGroupDeleteResponse, - Error, + datadog::Error, > { match self .delete_scanning_group_with_http_info(group_id, body) @@ -343,7 +507,7 @@ impl SensitiveDataScannerAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -358,43 +522,101 @@ impl SensitiveDataScannerAPI { group_id: String, body: crate::datadogV2::model::SensitiveDataScannerGroupDeleteRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.delete_scanning_group"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/sensitive-data-scanner/config/groups/{group_id}", local_configuration.get_operation_host(operation_id), - group_id = urlencode(group_id) + group_id = datadog::urlencode(group_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -407,23 +629,23 @@ impl SensitiveDataScannerAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -434,7 +656,7 @@ impl SensitiveDataScannerAPI { body: crate::datadogV2::model::SensitiveDataScannerRuleDeleteRequest, ) -> Result< crate::datadogV2::model::SensitiveDataScannerRuleDeleteResponse, - Error, + datadog::Error, > { match self .delete_scanning_rule_with_http_info(rule_id, body) @@ -444,7 +666,7 @@ impl SensitiveDataScannerAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -459,43 +681,101 @@ impl SensitiveDataScannerAPI { rule_id: String, body: crate::datadogV2::model::SensitiveDataScannerRuleDeleteRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.delete_scanning_rule"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/sensitive-data-scanner/config/rules/{rule_id}", local_configuration.get_operation_host(operation_id), - rule_id = urlencode(rule_id) + rule_id = datadog::urlencode(rule_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -508,23 +788,23 @@ impl SensitiveDataScannerAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -533,14 +813,14 @@ impl SensitiveDataScannerAPI { &self, ) -> Result< crate::datadogV2::model::SensitiveDataScannerGetConfigResponse, - Error, + datadog::Error, > { match self.list_scanning_groups_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -553,13 +833,13 @@ impl SensitiveDataScannerAPI { pub async fn list_scanning_groups_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_scanning_groups"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/sensitive-data-scanner/config", @@ -568,20 +848,39 @@ impl SensitiveDataScannerAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -594,23 +893,23 @@ impl SensitiveDataScannerAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -619,14 +918,14 @@ impl SensitiveDataScannerAPI { &self, ) -> Result< crate::datadogV2::model::SensitiveDataScannerStandardPatternsResponseData, - Error, + datadog::Error, > { match self.list_standard_patterns_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -639,13 +938,15 @@ impl SensitiveDataScannerAPI { pub async fn list_standard_patterns_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent< + crate::datadogV2::model::SensitiveDataScannerStandardPatternsResponseData, + >, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_standard_patterns"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/sensitive-data-scanner/config/standard-patterns", @@ -654,20 +955,39 @@ impl SensitiveDataScannerAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -680,23 +1000,23 @@ impl SensitiveDataScannerAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -706,14 +1026,14 @@ impl SensitiveDataScannerAPI { body: crate::datadogV2::model::SensitiveDataScannerConfigRequest, ) -> Result< crate::datadogV2::model::SensitiveDataScannerReorderGroupsResponse, - Error, + datadog::Error, > { match self.reorder_scanning_groups_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -727,13 +1047,15 @@ impl SensitiveDataScannerAPI { &self, body: crate::datadogV2::model::SensitiveDataScannerConfigRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent< + crate::datadogV2::model::SensitiveDataScannerReorderGroupsResponse, + >, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.reorder_scanning_groups"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/sensitive-data-scanner/config", @@ -742,27 +1064,85 @@ impl SensitiveDataScannerAPI { let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -775,23 +1155,23 @@ impl SensitiveDataScannerAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -805,7 +1185,7 @@ impl SensitiveDataScannerAPI { body: crate::datadogV2::model::SensitiveDataScannerGroupUpdateRequest, ) -> Result< crate::datadogV2::model::SensitiveDataScannerGroupUpdateResponse, - Error, + datadog::Error, > { match self .update_scanning_group_with_http_info(group_id, body) @@ -815,7 +1195,7 @@ impl SensitiveDataScannerAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -833,43 +1213,101 @@ impl SensitiveDataScannerAPI { group_id: String, body: crate::datadogV2::model::SensitiveDataScannerGroupUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_scanning_group"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/sensitive-data-scanner/config/groups/{group_id}", local_configuration.get_operation_host(operation_id), - group_id = urlencode(group_id) + group_id = datadog::urlencode(group_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -882,23 +1320,23 @@ impl SensitiveDataScannerAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -912,7 +1350,7 @@ impl SensitiveDataScannerAPI { body: crate::datadogV2::model::SensitiveDataScannerRuleUpdateRequest, ) -> Result< crate::datadogV2::model::SensitiveDataScannerRuleUpdateResponse, - Error, + datadog::Error, > { match self .update_scanning_rule_with_http_info(rule_id, body) @@ -922,7 +1360,7 @@ impl SensitiveDataScannerAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -940,43 +1378,101 @@ impl SensitiveDataScannerAPI { rule_id: String, body: crate::datadogV2::model::SensitiveDataScannerRuleUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_scanning_rule"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/sensitive-data-scanner/config/rules/{rule_id}", local_configuration.get_operation_host(operation_id), - rule_id = urlencode(rule_id) + rule_id = datadog::urlencode(rule_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -989,23 +1485,23 @@ impl SensitiveDataScannerAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_service_accounts.rs b/src/datadogV2/api/api_service_accounts.rs index 7e803d415..ea2e39275 100644 --- a/src/datadogV2/api/api_service_accounts.rs +++ b/src/datadogV2/api/api_service_accounts.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// ListServiceAccountApplicationKeysOptionalParams is a struct for passing parameters to the method [`ServiceAccountsAPI::list_service_account_application_keys`] #[non_exhaustive] @@ -124,14 +129,13 @@ pub enum UpdateServiceAccountApplicationKeyError { #[derive(Debug, Clone)] pub struct ServiceAccountsAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for ServiceAccountsAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -139,21 +143,66 @@ impl ServiceAccountsAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create a service account for your organization. pub async fn create_service_account( &self, body: crate::datadogV2::model::ServiceAccountCreateRequest, - ) -> Result> { + ) -> Result> + { match self.create_service_account_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -167,13 +216,13 @@ impl ServiceAccountsAPI { &self, body: crate::datadogV2::model::ServiceAccountCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_service_account"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/service_accounts", @@ -182,27 +231,85 @@ impl ServiceAccountsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -212,23 +319,23 @@ impl ServiceAccountsAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -239,7 +346,7 @@ impl ServiceAccountsAPI { body: crate::datadogV2::model::ApplicationKeyCreateRequest, ) -> Result< crate::datadogV2::model::ApplicationKeyResponse, - Error, + datadog::Error, > { match self .create_service_account_application_key_with_http_info(service_account_id, body) @@ -249,7 +356,7 @@ impl ServiceAccountsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -264,43 +371,101 @@ impl ServiceAccountsAPI { service_account_id: String, body: crate::datadogV2::model::ApplicationKeyCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_service_account_application_key"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/service_accounts/{service_account_id}/application_keys", local_configuration.get_operation_host(operation_id), - service_account_id = urlencode(service_account_id) + service_account_id = datadog::urlencode(service_account_id) ); let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -312,23 +477,23 @@ impl ServiceAccountsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -337,7 +502,7 @@ impl ServiceAccountsAPI { &self, service_account_id: String, app_key_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .delete_service_account_application_key_with_http_info(service_account_id, app_key_id) .await @@ -352,35 +517,55 @@ impl ServiceAccountsAPI { &self, service_account_id: String, app_key_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> + { let local_configuration = &self.config; let operation_id = "v2.delete_service_account_application_key"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/service_accounts/{service_account_id}/application_keys/{app_key_id}", local_configuration.get_operation_host(operation_id), - service_account_id = urlencode(service_account_id), - app_key_id = urlencode(app_key_id) + service_account_id = datadog::urlencode(service_account_id), + app_key_id = datadog::urlencode(app_key_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -388,7 +573,7 @@ impl ServiceAccountsAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -396,12 +581,12 @@ impl ServiceAccountsAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -412,7 +597,7 @@ impl ServiceAccountsAPI { app_key_id: String, ) -> Result< crate::datadogV2::model::PartialApplicationKeyResponse, - Error, + datadog::Error, > { match self .get_service_account_application_key_with_http_info(service_account_id, app_key_id) @@ -422,7 +607,7 @@ impl ServiceAccountsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -437,37 +622,56 @@ impl ServiceAccountsAPI { service_account_id: String, app_key_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_service_account_application_key"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/service_accounts/{service_account_id}/application_keys/{app_key_id}", local_configuration.get_operation_host(operation_id), - service_account_id = urlencode(service_account_id), - app_key_id = urlencode(app_key_id) + service_account_id = datadog::urlencode(service_account_id), + app_key_id = datadog::urlencode(app_key_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -479,23 +683,23 @@ impl ServiceAccountsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -506,7 +710,7 @@ impl ServiceAccountsAPI { params: ListServiceAccountApplicationKeysOptionalParams, ) -> Result< crate::datadogV2::model::ListApplicationKeysResponse, - Error, + datadog::Error, > { match self .list_service_account_application_keys_with_http_info(service_account_id, params) @@ -516,7 +720,7 @@ impl ServiceAccountsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -531,8 +735,8 @@ impl ServiceAccountsAPI { service_account_id: String, params: ListServiceAccountApplicationKeysOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_service_account_application_keys"; @@ -545,12 +749,12 @@ impl ServiceAccountsAPI { let filter_created_at_start = params.filter_created_at_start; let filter_created_at_end = params.filter_created_at_end; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/service_accounts/{service_account_id}/application_keys", local_configuration.get_operation_host(operation_id), - service_account_id = urlencode(service_account_id) + service_account_id = datadog::urlencode(service_account_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); @@ -580,20 +784,39 @@ impl ServiceAccountsAPI { .query(&[("filter[created_at][end]", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -605,23 +828,23 @@ impl ServiceAccountsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -633,7 +856,7 @@ impl ServiceAccountsAPI { body: crate::datadogV2::model::ApplicationKeyUpdateRequest, ) -> Result< crate::datadogV2::model::PartialApplicationKeyResponse, - Error, + datadog::Error, > { match self .update_service_account_application_key_with_http_info( @@ -647,7 +870,7 @@ impl ServiceAccountsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -663,44 +886,102 @@ impl ServiceAccountsAPI { app_key_id: String, body: crate::datadogV2::model::ApplicationKeyUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_service_account_application_key"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/service_accounts/{service_account_id}/application_keys/{app_key_id}", local_configuration.get_operation_host(operation_id), - service_account_id = urlencode(service_account_id), - app_key_id = urlencode(app_key_id) + service_account_id = datadog::urlencode(service_account_id), + app_key_id = datadog::urlencode(app_key_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -712,23 +993,23 @@ impl ServiceAccountsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_service_definition.rs b/src/datadogV2/api/api_service_definition.rs index db1e3e168..807eb3503 100644 --- a/src/datadogV2/api/api_service_definition.rs +++ b/src/datadogV2/api/api_service_definition.rs @@ -1,11 +1,16 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; +use crate::datadog; use async_stream::try_stream; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; use futures_core::stream::Stream; -use reqwest; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// GetServiceDefinitionOptionalParams is a struct for passing parameters to the method [`ServiceDefinitionAPI::get_service_definition`] #[non_exhaustive] @@ -104,14 +109,13 @@ pub enum ListServiceDefinitionsError { #[derive(Debug, Clone)] pub struct ServiceDefinitionAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for ServiceDefinitionAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -119,8 +123,52 @@ impl ServiceDefinitionAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create or update service definition in the Datadog Service Catalog. @@ -129,7 +177,7 @@ impl ServiceDefinitionAPI { body: crate::datadogV2::model::ServiceDefinitionsCreateRequest, ) -> Result< crate::datadogV2::model::ServiceDefinitionCreateResponse, - Error, + datadog::Error, > { match self .create_or_update_service_definitions_with_http_info(body) @@ -139,7 +187,7 @@ impl ServiceDefinitionAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -153,13 +201,13 @@ impl ServiceDefinitionAPI { &self, body: crate::datadogV2::model::ServiceDefinitionsCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_or_update_service_definitions"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/services/definitions", @@ -168,27 +216,85 @@ impl ServiceDefinitionAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -200,23 +306,23 @@ impl ServiceDefinitionAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -224,7 +330,7 @@ impl ServiceDefinitionAPI { pub async fn delete_service_definition( &self, service_name: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .delete_service_definition_with_http_info(service_name) .await @@ -238,34 +344,53 @@ impl ServiceDefinitionAPI { pub async fn delete_service_definition_with_http_info( &self, service_name: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_service_definition"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/services/definitions/{service_name}", local_configuration.get_operation_host(operation_id), - service_name = urlencode(service_name) + service_name = datadog::urlencode(service_name) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -273,7 +398,7 @@ impl ServiceDefinitionAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -281,12 +406,12 @@ impl ServiceDefinitionAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -297,7 +422,7 @@ impl ServiceDefinitionAPI { params: GetServiceDefinitionOptionalParams, ) -> Result< crate::datadogV2::model::ServiceDefinitionGetResponse, - Error, + datadog::Error, > { match self .get_service_definition_with_http_info(service_name, params) @@ -307,7 +432,7 @@ impl ServiceDefinitionAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -322,8 +447,8 @@ impl ServiceDefinitionAPI { service_name: String, params: GetServiceDefinitionOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_service_definition"; @@ -331,12 +456,12 @@ impl ServiceDefinitionAPI { // unbox and build optional parameters let schema_version = params.schema_version; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/services/definitions/{service_name}", local_configuration.get_operation_host(operation_id), - service_name = urlencode(service_name) + service_name = datadog::urlencode(service_name) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); @@ -346,20 +471,39 @@ impl ServiceDefinitionAPI { local_req_builder.query(&[("schema_version", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -371,23 +515,23 @@ impl ServiceDefinitionAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -397,14 +541,14 @@ impl ServiceDefinitionAPI { params: ListServiceDefinitionsOptionalParams, ) -> Result< crate::datadogV2::model::ServiceDefinitionsListResponse, - Error, + datadog::Error, > { match self.list_service_definitions_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -419,7 +563,7 @@ impl ServiceDefinitionAPI { ) -> impl Stream< Item = Result< crate::datadogV2::model::ServiceDefinitionData, - Error, + datadog::Error, >, > + '_ { try_stream! { @@ -429,6 +573,9 @@ impl ServiceDefinitionAPI { } else { page_size = params.page_size.unwrap().clone(); } + if params.page_number.is_none() { + params.page_number = Some(0); + } loop { let resp = self.list_service_definitions(params.clone()).await?; let Some(data) = resp.data else { break }; @@ -442,11 +589,7 @@ impl ServiceDefinitionAPI { if count < page_size as usize { break; } - if params.page_number.is_none() { - params.page_number = Some(page_size.clone()); - } else { - params.page_number = Some(params.page_number.unwrap() + page_size.clone()); - } + params.page_number = Some(params.page_number.unwrap() + 1); } } } @@ -456,8 +599,8 @@ impl ServiceDefinitionAPI { &self, params: ListServiceDefinitionsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_service_definitions"; @@ -467,7 +610,7 @@ impl ServiceDefinitionAPI { let page_number = params.page_number; let schema_version = params.schema_version; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/services/definitions", @@ -489,20 +632,39 @@ impl ServiceDefinitionAPI { local_req_builder.query(&[("schema_version", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -514,23 +676,23 @@ impl ServiceDefinitionAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_service_scorecards.rs b/src/datadogV2/api/api_service_scorecards.rs index b9e002f69..36f150ece 100644 --- a/src/datadogV2/api/api_service_scorecards.rs +++ b/src/datadogV2/api/api_service_scorecards.rs @@ -1,12 +1,17 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; +use crate::datadog; use async_stream::try_stream; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; use futures_core::stream::Stream; use log::warn; -use reqwest; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// ListScorecardOutcomesOptionalParams is a struct for passing parameters to the method [`ServiceScorecardsAPI::list_scorecard_outcomes`] #[non_exhaustive] @@ -219,14 +224,13 @@ pub enum ListScorecardRulesError { #[derive(Debug, Clone)] pub struct ServiceScorecardsAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for ServiceScorecardsAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -234,8 +238,52 @@ impl ServiceScorecardsAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Sets multiple service-rule outcomes in a single batched request. @@ -244,7 +292,7 @@ impl ServiceScorecardsAPI { body: crate::datadogV2::model::OutcomesBatchRequest, ) -> Result< crate::datadogV2::model::OutcomesBatchResponse, - Error, + datadog::Error, > { match self .create_scorecard_outcomes_batch_with_http_info(body) @@ -254,7 +302,7 @@ impl ServiceScorecardsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -268,21 +316,21 @@ impl ServiceScorecardsAPI { &self, body: crate::datadogV2::model::OutcomesBatchRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_scorecard_outcomes_batch"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.create_scorecard_outcomes_batch' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/scorecard/outcomes/batch", @@ -291,27 +339,85 @@ impl ServiceScorecardsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -323,23 +429,23 @@ impl ServiceScorecardsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -347,13 +453,14 @@ impl ServiceScorecardsAPI { pub async fn create_scorecard_rule( &self, body: crate::datadogV2::model::CreateRuleRequest, - ) -> Result> { + ) -> Result> + { match self.create_scorecard_rule_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -367,21 +474,21 @@ impl ServiceScorecardsAPI { &self, body: crate::datadogV2::model::CreateRuleRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_scorecard_rule"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.create_scorecard_rule' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/scorecard/rules", @@ -390,27 +497,85 @@ impl ServiceScorecardsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -422,23 +587,23 @@ impl ServiceScorecardsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -446,7 +611,7 @@ impl ServiceScorecardsAPI { pub async fn delete_scorecard_rule( &self, rule_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self.delete_scorecard_rule_with_http_info(rule_id).await { Ok(_) => Ok(()), Err(err) => Err(err), @@ -457,42 +622,61 @@ impl ServiceScorecardsAPI { pub async fn delete_scorecard_rule_with_http_info( &self, rule_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_scorecard_rule"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.delete_scorecard_rule' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/scorecard/rules/{rule_id}", local_configuration.get_operation_host(operation_id), - rule_id = urlencode(rule_id) + rule_id = datadog::urlencode(rule_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -500,7 +684,7 @@ impl ServiceScorecardsAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -508,12 +692,12 @@ impl ServiceScorecardsAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -521,13 +705,14 @@ impl ServiceScorecardsAPI { pub async fn list_scorecard_outcomes( &self, params: ListScorecardOutcomesOptionalParams, - ) -> Result> { + ) -> Result> + { match self.list_scorecard_outcomes_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -542,7 +727,7 @@ impl ServiceScorecardsAPI { ) -> impl Stream< Item = Result< crate::datadogV2::model::OutcomesResponseDataItem, - Error, + datadog::Error, >, > + '_ { try_stream! { @@ -579,18 +764,18 @@ impl ServiceScorecardsAPI { &self, params: ListScorecardOutcomesOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_scorecard_outcomes"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.list_scorecard_outcomes' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } // unbox and build optional parameters @@ -605,7 +790,7 @@ impl ServiceScorecardsAPI { let filter_rule_id = params.filter_rule_id; let filter_rule_name = params.filter_rule_name; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/scorecard/outcomes", @@ -657,20 +842,39 @@ impl ServiceScorecardsAPI { local_req_builder.query(&[("filter[rule][name]", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -681,23 +885,23 @@ impl ServiceScorecardsAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -705,13 +909,14 @@ impl ServiceScorecardsAPI { pub async fn list_scorecard_rules( &self, params: ListScorecardRulesOptionalParams, - ) -> Result> { + ) -> Result> + { match self.list_scorecard_rules_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -726,7 +931,7 @@ impl ServiceScorecardsAPI { ) -> impl Stream< Item = Result< crate::datadogV2::model::ListRulesResponseDataItem, - Error, + datadog::Error, >, > + '_ { try_stream! { @@ -763,18 +968,18 @@ impl ServiceScorecardsAPI { &self, params: ListScorecardRulesOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_scorecard_rules"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.list_scorecard_rules' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } // unbox and build optional parameters @@ -789,7 +994,7 @@ impl ServiceScorecardsAPI { let fields_rule = params.fields_rule; let fields_scorecard = params.fields_scorecard; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/scorecard/rules", @@ -839,20 +1044,39 @@ impl ServiceScorecardsAPI { local_req_builder.query(&[("fields[scorecard]", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -863,23 +1087,23 @@ impl ServiceScorecardsAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_spans.rs b/src/datadogV2/api/api_spans.rs index 3ce301ebd..1937b1516 100644 --- a/src/datadogV2/api/api_spans.rs +++ b/src/datadogV2/api/api_spans.rs @@ -1,11 +1,16 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; +use crate::datadog; use async_stream::try_stream; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; use futures_core::stream::Stream; -use reqwest; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// ListSpansGetOptionalParams is a struct for passing parameters to the method [`SpansAPI::list_spans_get`] #[non_exhaustive] @@ -92,14 +97,13 @@ pub enum ListSpansGetError { #[derive(Debug, Clone)] pub struct SpansAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for SpansAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -107,8 +111,52 @@ impl SpansAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// The API endpoint to aggregate spans into buckets and compute metrics and timeseries. @@ -116,13 +164,14 @@ impl SpansAPI { pub async fn aggregate_spans( &self, body: crate::datadogV2::model::SpansAggregateRequest, - ) -> Result> { + ) -> Result> + { match self.aggregate_spans_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -137,13 +186,13 @@ impl SpansAPI { &self, body: crate::datadogV2::model::SpansAggregateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.aggregate_spans"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/spans/analytics/aggregate", @@ -152,27 +201,85 @@ impl SpansAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -184,23 +291,23 @@ impl SpansAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -214,13 +321,13 @@ impl SpansAPI { pub async fn list_spans( &self, body: crate::datadogV2::model::SpansListRequest, - ) -> Result> { + ) -> Result> { match self.list_spans_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -232,7 +339,8 @@ impl SpansAPI { pub fn list_spans_with_pagination( &self, mut body: crate::datadogV2::model::SpansListRequest, - ) -> impl Stream>> + '_ { + ) -> impl Stream>> + '_ + { try_stream! { let mut page_size: i32 = 10; if body.data.is_none() { @@ -281,12 +389,14 @@ impl SpansAPI { pub async fn list_spans_with_http_info( &self, body: crate::datadogV2::model::SpansListRequest, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.list_spans"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/spans/events/search", @@ -295,27 +405,85 @@ impl SpansAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -326,22 +494,22 @@ impl SpansAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -355,13 +523,13 @@ impl SpansAPI { pub async fn list_spans_get( &self, params: ListSpansGetOptionalParams, - ) -> Result> { + ) -> Result> { match self.list_spans_get_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -373,7 +541,7 @@ impl SpansAPI { pub fn list_spans_get_with_pagination( &self, mut params: ListSpansGetOptionalParams, - ) -> impl Stream>> + '_ + ) -> impl Stream>> + '_ { try_stream! { let mut page_size: i32 = 10; @@ -414,8 +582,10 @@ impl SpansAPI { pub async fn list_spans_get_with_http_info( &self, params: ListSpansGetOptionalParams, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.list_spans_get"; @@ -427,7 +597,7 @@ impl SpansAPI { let page_cursor = params.page_cursor; let page_limit = params.page_limit; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/spans/events", @@ -461,20 +631,39 @@ impl SpansAPI { local_req_builder.query(&[("page[limit]", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -485,22 +674,22 @@ impl SpansAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_spans_metrics.rs b/src/datadogV2/api/api_spans_metrics.rs index b784c9aa1..5296de649 100644 --- a/src/datadogV2/api/api_spans_metrics.rs +++ b/src/datadogV2/api/api_spans_metrics.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// CreateSpansMetricError is a struct for typed errors of method [`SpansMetricsAPI::create_spans_metric`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -58,14 +63,13 @@ pub enum UpdateSpansMetricError { #[derive(Debug, Clone)] pub struct SpansMetricsAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for SpansMetricsAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -73,8 +77,52 @@ impl SpansMetricsAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create a metric based on your ingested spans in your organization. @@ -82,13 +130,14 @@ impl SpansMetricsAPI { pub async fn create_spans_metric( &self, body: crate::datadogV2::model::SpansMetricCreateRequest, - ) -> Result> { + ) -> Result> + { match self.create_spans_metric_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -103,13 +152,13 @@ impl SpansMetricsAPI { &self, body: crate::datadogV2::model::SpansMetricCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_spans_metric"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/apm/config/metrics", @@ -118,27 +167,85 @@ impl SpansMetricsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -150,23 +257,23 @@ impl SpansMetricsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -174,7 +281,7 @@ impl SpansMetricsAPI { pub async fn delete_spans_metric( &self, metric_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self.delete_spans_metric_with_http_info(metric_id).await { Ok(_) => Ok(()), Err(err) => Err(err), @@ -185,34 +292,53 @@ impl SpansMetricsAPI { pub async fn delete_spans_metric_with_http_info( &self, metric_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_spans_metric"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/apm/config/metrics/{metric_id}", local_configuration.get_operation_host(operation_id), - metric_id = urlencode(metric_id) + metric_id = datadog::urlencode(metric_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -220,7 +346,7 @@ impl SpansMetricsAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -228,12 +354,12 @@ impl SpansMetricsAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -241,13 +367,14 @@ impl SpansMetricsAPI { pub async fn get_spans_metric( &self, metric_id: String, - ) -> Result> { + ) -> Result> + { match self.get_spans_metric_with_http_info(metric_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -261,36 +388,55 @@ impl SpansMetricsAPI { &self, metric_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_spans_metric"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/apm/config/metrics/{metric_id}", local_configuration.get_operation_host(operation_id), - metric_id = urlencode(metric_id) + metric_id = datadog::urlencode(metric_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -302,36 +448,37 @@ impl SpansMetricsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get the list of configured span-based metrics with their definitions. pub async fn list_spans_metrics( &self, - ) -> Result> { + ) -> Result> + { match self.list_spans_metrics_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -344,13 +491,13 @@ impl SpansMetricsAPI { pub async fn list_spans_metrics_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_spans_metrics"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/apm/config/metrics", @@ -359,20 +506,39 @@ impl SpansMetricsAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -384,23 +550,23 @@ impl SpansMetricsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -410,7 +576,8 @@ impl SpansMetricsAPI { &self, metric_id: String, body: crate::datadogV2::model::SpansMetricUpdateRequest, - ) -> Result> { + ) -> Result> + { match self .update_spans_metric_with_http_info(metric_id, body) .await @@ -419,7 +586,7 @@ impl SpansMetricsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -435,43 +602,101 @@ impl SpansMetricsAPI { metric_id: String, body: crate::datadogV2::model::SpansMetricUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_spans_metric"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/apm/config/metrics/{metric_id}", local_configuration.get_operation_host(operation_id), - metric_id = urlencode(metric_id) + metric_id = datadog::urlencode(metric_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -483,23 +708,23 @@ impl SpansMetricsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_synthetics.rs b/src/datadogV2/api/api_synthetics.rs index 4c4751e13..a4e13d3e1 100644 --- a/src/datadogV2/api/api_synthetics.rs +++ b/src/datadogV2/api/api_synthetics.rs @@ -1,9 +1,14 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; -use reqwest; +use crate::datadog; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// GetOnDemandConcurrencyCapError is a struct for typed errors of method [`SyntheticsAPI::get_on_demand_concurrency_cap`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -23,14 +28,13 @@ pub enum SetOnDemandConcurrencyCapError { #[derive(Debug, Clone)] pub struct SyntheticsAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for SyntheticsAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -38,8 +42,52 @@ impl SyntheticsAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Get the on-demand concurrency cap. @@ -47,14 +95,14 @@ impl SyntheticsAPI { &self, ) -> Result< crate::datadogV2::model::OnDemandConcurrencyCapResponse, - Error, + datadog::Error, > { match self.get_on_demand_concurrency_cap_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -67,13 +115,13 @@ impl SyntheticsAPI { pub async fn get_on_demand_concurrency_cap_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_on_demand_concurrency_cap"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/synthetics/settings/on_demand_concurrency_cap", @@ -82,20 +130,39 @@ impl SyntheticsAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -107,23 +174,23 @@ impl SyntheticsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -133,7 +200,7 @@ impl SyntheticsAPI { body: crate::datadogV2::model::OnDemandConcurrencyCapAttributes, ) -> Result< crate::datadogV2::model::OnDemandConcurrencyCapResponse, - Error, + datadog::Error, > { match self .set_on_demand_concurrency_cap_with_http_info(body) @@ -143,7 +210,7 @@ impl SyntheticsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -157,13 +224,13 @@ impl SyntheticsAPI { &self, body: crate::datadogV2::model::OnDemandConcurrencyCapAttributes, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.set_on_demand_concurrency_cap"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/synthetics/settings/on_demand_concurrency_cap", @@ -172,27 +239,85 @@ impl SyntheticsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -204,23 +329,23 @@ impl SyntheticsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_teams.rs b/src/datadogV2/api/api_teams.rs index 59770852e..ecabf4451 100644 --- a/src/datadogV2/api/api_teams.rs +++ b/src/datadogV2/api/api_teams.rs @@ -1,11 +1,16 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; +use crate::datadog; use async_stream::try_stream; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; use futures_core::stream::Stream; -use reqwest; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// GetTeamMembershipsOptionalParams is a struct for passing parameters to the method [`TeamsAPI::get_team_memberships`] #[non_exhaustive] @@ -276,14 +281,13 @@ pub enum UpdateTeamPermissionSettingError { #[derive(Debug, Clone)] pub struct TeamsAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for TeamsAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -291,8 +295,52 @@ impl TeamsAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create a new team. @@ -300,13 +348,13 @@ impl TeamsAPI { pub async fn create_team( &self, body: crate::datadogV2::model::TeamCreateRequest, - ) -> Result> { + ) -> Result> { match self.create_team_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -320,12 +368,14 @@ impl TeamsAPI { pub async fn create_team_with_http_info( &self, body: crate::datadogV2::model::TeamCreateRequest, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.create_team"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/team", @@ -334,27 +384,85 @@ impl TeamsAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -364,22 +472,22 @@ impl TeamsAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -388,13 +496,14 @@ impl TeamsAPI { &self, team_id: String, body: crate::datadogV2::model::TeamLinkCreateRequest, - ) -> Result> { + ) -> Result> + { match self.create_team_link_with_http_info(team_id, body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -409,43 +518,101 @@ impl TeamsAPI { team_id: String, body: crate::datadogV2::model::TeamLinkCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_team_link"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/team/{team_id}/links", local_configuration.get_operation_host(operation_id), - team_id = urlencode(team_id) + team_id = datadog::urlencode(team_id) ); let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -456,23 +623,23 @@ impl TeamsAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -481,7 +648,8 @@ impl TeamsAPI { &self, team_id: String, body: crate::datadogV2::model::UserTeamRequest, - ) -> Result> { + ) -> Result> + { match self .create_team_membership_with_http_info(team_id, body) .await @@ -490,7 +658,7 @@ impl TeamsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -505,43 +673,101 @@ impl TeamsAPI { team_id: String, body: crate::datadogV2::model::UserTeamRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.create_team_membership"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/team/{team_id}/memberships", local_configuration.get_operation_host(operation_id), - team_id = urlencode(team_id) + team_id = datadog::urlencode(team_id) ); let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -552,28 +778,31 @@ impl TeamsAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Remove a team using the team's `id`. - pub async fn delete_team(&self, team_id: String) -> Result<(), Error> { + pub async fn delete_team( + &self, + team_id: String, + ) -> Result<(), datadog::Error> { match self.delete_team_with_http_info(team_id).await { Ok(_) => Ok(()), Err(err) => Err(err), @@ -584,34 +813,53 @@ impl TeamsAPI { pub async fn delete_team_with_http_info( &self, team_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_team"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/team/{team_id}", local_configuration.get_operation_host(operation_id), - team_id = urlencode(team_id) + team_id = datadog::urlencode(team_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -619,19 +867,19 @@ impl TeamsAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, }) } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -640,7 +888,7 @@ impl TeamsAPI { &self, team_id: String, link_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self.delete_team_link_with_http_info(team_id, link_id).await { Ok(_) => Ok(()), Err(err) => Err(err), @@ -652,35 +900,54 @@ impl TeamsAPI { &self, team_id: String, link_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_team_link"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/team/{team_id}/links/{link_id}", local_configuration.get_operation_host(operation_id), - team_id = urlencode(team_id), - link_id = urlencode(link_id) + team_id = datadog::urlencode(team_id), + link_id = datadog::urlencode(link_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -688,7 +955,7 @@ impl TeamsAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -696,12 +963,12 @@ impl TeamsAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -710,7 +977,7 @@ impl TeamsAPI { &self, team_id: String, user_id: String, - ) -> Result<(), Error> { + ) -> Result<(), datadog::Error> { match self .delete_team_membership_with_http_info(team_id, user_id) .await @@ -725,35 +992,54 @@ impl TeamsAPI { &self, team_id: String, user_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.delete_team_membership"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/team/{team_id}/memberships/{user_id}", local_configuration.get_operation_host(operation_id), - team_id = urlencode(team_id), - user_id = urlencode(user_id) + team_id = datadog::urlencode(team_id), + user_id = datadog::urlencode(user_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -761,7 +1047,7 @@ impl TeamsAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, @@ -769,12 +1055,12 @@ impl TeamsAPI { } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -782,13 +1068,13 @@ impl TeamsAPI { pub async fn get_team( &self, team_id: String, - ) -> Result> { + ) -> Result> { match self.get_team_with_http_info(team_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -801,34 +1087,56 @@ impl TeamsAPI { pub async fn get_team_with_http_info( &self, team_id: String, - ) -> Result, Error> { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.get_team"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/team/{team_id}", local_configuration.get_operation_host(operation_id), - team_id = urlencode(team_id) + team_id = datadog::urlencode(team_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -838,22 +1146,22 @@ impl TeamsAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -862,13 +1170,13 @@ impl TeamsAPI { &self, team_id: String, link_id: String, - ) -> Result> { + ) -> Result> { match self.get_team_link_with_http_info(team_id, link_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -882,36 +1190,57 @@ impl TeamsAPI { &self, team_id: String, link_id: String, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.get_team_link"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/team/{team_id}/links/{link_id}", local_configuration.get_operation_host(operation_id), - team_id = urlencode(team_id), - link_id = urlencode(link_id) + team_id = datadog::urlencode(team_id), + link_id = datadog::urlencode(link_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -922,22 +1251,22 @@ impl TeamsAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -945,13 +1274,13 @@ impl TeamsAPI { pub async fn get_team_links( &self, team_id: String, - ) -> Result> { + ) -> Result> { match self.get_team_links_with_http_info(team_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -964,35 +1293,56 @@ impl TeamsAPI { pub async fn get_team_links_with_http_info( &self, team_id: String, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.get_team_links"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/team/{team_id}/links", local_configuration.get_operation_host(operation_id), - team_id = urlencode(team_id) + team_id = datadog::urlencode(team_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1003,22 +1353,22 @@ impl TeamsAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1027,7 +1377,8 @@ impl TeamsAPI { &self, team_id: String, params: GetTeamMembershipsOptionalParams, - ) -> Result> { + ) -> Result> + { match self .get_team_memberships_with_http_info(team_id, params) .await @@ -1036,7 +1387,7 @@ impl TeamsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1045,14 +1396,49 @@ impl TeamsAPI { } } + pub fn get_team_memberships_with_pagination( + &self, + team_id: String, + mut params: GetTeamMembershipsOptionalParams, + ) -> impl Stream< + Item = Result>, + > + '_ { + try_stream! { + let mut page_size: i64 = 10; + if params.page_size.is_none() { + params.page_size = Some(page_size); + } else { + page_size = params.page_size.unwrap().clone(); + } + if params.page_number.is_none() { + params.page_number = Some(0); + } + loop { + let resp = self.get_team_memberships( team_id.clone(),params.clone()).await?; + let Some(data) = resp.data else { break }; + + let r = data; + let count = r.len(); + for team in r { + yield team; + } + + if count < page_size as usize { + break; + } + params.page_number = Some(params.page_number.unwrap() + 1); + } + } + } + /// Get a paginated list of members for a team pub async fn get_team_memberships_with_http_info( &self, team_id: String, params: GetTeamMembershipsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_team_memberships"; @@ -1063,12 +1449,12 @@ impl TeamsAPI { let sort = params.sort; let filter_keyword = params.filter_keyword; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/team/{team_id}/memberships", local_configuration.get_operation_host(operation_id), - team_id = urlencode(team_id) + team_id = datadog::urlencode(team_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); @@ -1090,20 +1476,39 @@ impl TeamsAPI { local_req_builder.query(&[("filter[keyword]", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1114,23 +1519,23 @@ impl TeamsAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1140,7 +1545,7 @@ impl TeamsAPI { team_id: String, ) -> Result< crate::datadogV2::model::TeamPermissionSettingsResponse, - Error, + datadog::Error, > { match self .get_team_permission_settings_with_http_info(team_id) @@ -1150,7 +1555,7 @@ impl TeamsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1164,36 +1569,55 @@ impl TeamsAPI { &self, team_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_team_permission_settings"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/team/{team_id}/permission-settings", local_configuration.get_operation_host(operation_id), - team_id = urlencode(team_id) + team_id = datadog::urlencode(team_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1205,23 +1629,23 @@ impl TeamsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1229,13 +1653,14 @@ impl TeamsAPI { pub async fn get_user_memberships( &self, user_uuid: String, - ) -> Result> { + ) -> Result> + { match self.get_user_memberships_with_http_info(user_uuid).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1249,36 +1674,55 @@ impl TeamsAPI { &self, user_uuid: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_user_memberships"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/users/{user_uuid}/memberships", local_configuration.get_operation_host(operation_id), - user_uuid = urlencode(user_uuid) + user_uuid = datadog::urlencode(user_uuid) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1289,23 +1733,23 @@ impl TeamsAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1314,13 +1758,13 @@ impl TeamsAPI { pub async fn list_teams( &self, params: ListTeamsOptionalParams, - ) -> Result> { + ) -> Result> { match self.list_teams_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1332,7 +1776,8 @@ impl TeamsAPI { pub fn list_teams_with_pagination( &self, mut params: ListTeamsOptionalParams, - ) -> impl Stream>> + '_ { + ) -> impl Stream>> + '_ + { try_stream! { let mut page_size: i64 = 10; if params.page_size.is_none() { @@ -1366,8 +1811,10 @@ impl TeamsAPI { pub async fn list_teams_with_http_info( &self, params: ListTeamsOptionalParams, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.list_teams"; @@ -1380,7 +1827,7 @@ impl TeamsAPI { let filter_me = params.filter_me; let fields_team = params.fields_team; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/team", @@ -1432,20 +1879,39 @@ impl TeamsAPI { )]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1455,22 +1921,22 @@ impl TeamsAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1480,13 +1946,13 @@ impl TeamsAPI { &self, team_id: String, body: crate::datadogV2::model::TeamUpdateRequest, - ) -> Result> { + ) -> Result> { match self.update_team_with_http_info(team_id, body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1501,42 +1967,102 @@ impl TeamsAPI { &self, team_id: String, body: crate::datadogV2::model::TeamUpdateRequest, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.update_team"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/team/{team_id}", local_configuration.get_operation_host(operation_id), - team_id = urlencode(team_id) + team_id = datadog::urlencode(team_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1546,22 +2072,22 @@ impl TeamsAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1571,7 +2097,8 @@ impl TeamsAPI { team_id: String, link_id: String, body: crate::datadogV2::model::TeamLinkCreateRequest, - ) -> Result> { + ) -> Result> + { match self .update_team_link_with_http_info(team_id, link_id, body) .await @@ -1580,7 +2107,7 @@ impl TeamsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1596,44 +2123,102 @@ impl TeamsAPI { link_id: String, body: crate::datadogV2::model::TeamLinkCreateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_team_link"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/team/{team_id}/links/{link_id}", local_configuration.get_operation_host(operation_id), - team_id = urlencode(team_id), - link_id = urlencode(link_id) + team_id = datadog::urlencode(team_id), + link_id = datadog::urlencode(link_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1644,23 +2229,23 @@ impl TeamsAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1670,7 +2255,8 @@ impl TeamsAPI { team_id: String, user_id: String, body: crate::datadogV2::model::UserTeamUpdateRequest, - ) -> Result> { + ) -> Result> + { match self .update_team_membership_with_http_info(team_id, user_id, body) .await @@ -1679,7 +2265,7 @@ impl TeamsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1695,44 +2281,102 @@ impl TeamsAPI { user_id: String, body: crate::datadogV2::model::UserTeamUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_team_membership"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/team/{team_id}/memberships/{user_id}", local_configuration.get_operation_host(operation_id), - team_id = urlencode(team_id), - user_id = urlencode(user_id) + team_id = datadog::urlencode(team_id), + user_id = datadog::urlencode(user_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1743,23 +2387,23 @@ impl TeamsAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1771,7 +2415,7 @@ impl TeamsAPI { body: crate::datadogV2::model::TeamPermissionSettingUpdateRequest, ) -> Result< crate::datadogV2::model::TeamPermissionSettingResponse, - Error, + datadog::Error, > { match self .update_team_permission_setting_with_http_info(team_id, action, body) @@ -1781,7 +2425,7 @@ impl TeamsAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1797,44 +2441,102 @@ impl TeamsAPI { action: String, body: crate::datadogV2::model::TeamPermissionSettingUpdateRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.update_team_permission_setting"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/team/{team_id}/permission-settings/{action}", local_configuration.get_operation_host(operation_id), - team_id = urlencode(team_id), - action = urlencode(action) + team_id = datadog::urlencode(team_id), + action = datadog::urlencode(action) ); let mut local_req_builder = local_client.request(reqwest::Method::PUT, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1846,23 +2548,23 @@ impl TeamsAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_usage_metering.rs b/src/datadogV2/api/api_usage_metering.rs index e66d83a56..aba7d83ff 100644 --- a/src/datadogV2/api/api_usage_metering.rs +++ b/src/datadogV2/api/api_usage_metering.rs @@ -1,9 +1,9 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; +use crate::datadog; use log::warn; -use reqwest; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; /// GetCostByOrgOptionalParams is a struct for passing parameters to the method [`UsageMeteringAPI::get_cost_by_org`] @@ -362,14 +362,13 @@ pub enum GetUsageObservabilityPipelinesError { #[derive(Debug, Clone)] pub struct UsageMeteringAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for UsageMeteringAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -377,23 +376,67 @@ impl UsageMeteringAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } - /// Get active billing dimensions for cost attribution. Cost data for a given month becomes available no later than the 17th of the following month. + /// Get active billing dimensions for cost attribution. Cost data for a given month becomes available no later than the 19th of the following month. pub async fn get_active_billing_dimensions( &self, ) -> Result< crate::datadogV2::model::ActiveBillingDimensionsResponse, - Error, + datadog::Error, > { match self.get_active_billing_dimensions_with_http_info().await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -402,25 +445,25 @@ impl UsageMeteringAPI { } } - /// Get active billing dimensions for cost attribution. Cost data for a given month becomes available no later than the 17th of the following month. + /// Get active billing dimensions for cost attribution. Cost data for a given month becomes available no later than the 19th of the following month. pub async fn get_active_billing_dimensions_with_http_info( &self, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_active_billing_dimensions"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.get_active_billing_dimensions' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/cost_by_tag/active_billing_dimensions", @@ -429,20 +472,42 @@ impl UsageMeteringAPI { let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -454,23 +519,23 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -483,7 +548,7 @@ impl UsageMeteringAPI { &self, start_month: String, params: GetCostByOrgOptionalParams, - ) -> Result> { + ) -> Result> { match self .get_cost_by_org_with_http_info(start_month, params) .await @@ -492,7 +557,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -510,15 +575,17 @@ impl UsageMeteringAPI { &self, start_month: String, params: GetCostByOrgOptionalParams, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.get_cost_by_org"; // unbox and build optional parameters let end_month = params.end_month; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/usage/cost_by_org", @@ -533,20 +600,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_month", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -557,22 +646,22 @@ impl UsageMeteringAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -583,13 +672,16 @@ impl UsageMeteringAPI { pub async fn get_estimated_cost_by_org( &self, params: GetEstimatedCostByOrgOptionalParams, - ) -> Result> { + ) -> Result< + crate::datadogV2::model::CostByOrgResponse, + datadog::Error, + > { match self.get_estimated_cost_by_org_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -606,8 +698,8 @@ impl UsageMeteringAPI { &self, params: GetEstimatedCostByOrgOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_estimated_cost_by_org"; @@ -619,7 +711,7 @@ impl UsageMeteringAPI { let start_date = params.start_date; let end_date = params.end_date; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/usage/estimated_cost", @@ -649,20 +741,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_date", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -673,23 +787,23 @@ impl UsageMeteringAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -699,8 +813,10 @@ impl UsageMeteringAPI { &self, start_month: String, params: GetHistoricalCostByOrgOptionalParams, - ) -> Result> - { + ) -> Result< + crate::datadogV2::model::CostByOrgResponse, + datadog::Error, + > { match self .get_historical_cost_by_org_with_http_info(start_month, params) .await @@ -709,7 +825,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -725,8 +841,8 @@ impl UsageMeteringAPI { start_month: String, params: GetHistoricalCostByOrgOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_historical_cost_by_org"; @@ -735,7 +851,7 @@ impl UsageMeteringAPI { let view = params.view; let end_month = params.end_month; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/usage/historical_cost", @@ -754,20 +870,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_month", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -778,23 +916,23 @@ impl UsageMeteringAPI { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -804,7 +942,8 @@ impl UsageMeteringAPI { filter_timestamp_start: String, filter_product_families: String, params: GetHourlyUsageOptionalParams, - ) -> Result> { + ) -> Result> + { match self .get_hourly_usage_with_http_info( filter_timestamp_start, @@ -817,7 +956,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -833,8 +972,8 @@ impl UsageMeteringAPI { filter_product_families: String, params: GetHourlyUsageOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_hourly_usage"; @@ -847,7 +986,7 @@ impl UsageMeteringAPI { let page_limit = params.page_limit; let page_next_record_id = params.page_next_record_id; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/usage/hourly_usage", @@ -891,20 +1030,42 @@ impl UsageMeteringAPI { .query(&[("page[next_record_id]", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -916,28 +1077,28 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get monthly cost attribution by tag across multi-org and single root-org accounts. - /// Cost Attribution data for a given month becomes available no later than the 17th of the following month. + /// Cost Attribution data for a given month becomes available no later than the 19th of the following month. /// This API endpoint is paginated. To make sure you receive all records, check if the value of `next_record_id` is /// set in the response. If it is, make another request and pass `next_record_id` as a parameter. /// Pseudo code example: @@ -958,7 +1119,7 @@ impl UsageMeteringAPI { params: GetMonthlyCostAttributionOptionalParams, ) -> Result< crate::datadogV2::model::MonthlyCostAttributionResponse, - Error, + datadog::Error, > { match self .get_monthly_cost_attribution_with_http_info(start_month, end_month, fields, params) @@ -968,7 +1129,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -978,7 +1139,7 @@ impl UsageMeteringAPI { } /// Get monthly cost attribution by tag across multi-org and single root-org accounts. - /// Cost Attribution data for a given month becomes available no later than the 17th of the following month. + /// Cost Attribution data for a given month becomes available no later than the 19th of the following month. /// This API endpoint is paginated. To make sure you receive all records, check if the value of `next_record_id` is /// set in the response. If it is, make another request and pass `next_record_id` as a parameter. /// Pseudo code example: @@ -998,18 +1159,18 @@ impl UsageMeteringAPI { fields: String, params: GetMonthlyCostAttributionOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_monthly_cost_attribution"; if local_configuration.is_unstable_operation_enabled(operation_id) { warn!("Using unstable operation {operation_id}"); } else { - let local_error = UnstableOperationDisabledError { + let local_error = datadog::UnstableOperationDisabledError { msg: "Operation 'v2.get_monthly_cost_attribution' is not enabled".to_string(), }; - return Err(Error::UnstableOperationDisabledError(local_error)); + return Err(datadog::Error::UnstableOperationDisabledError(local_error)); } // unbox and build optional parameters @@ -1019,7 +1180,7 @@ impl UsageMeteringAPI { let next_record_id = params.next_record_id; let include_descendants = params.include_descendants; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/cost_by_tag/monthly_cost_attribution", @@ -1052,20 +1213,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("include_descendants", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1077,23 +1260,23 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -1103,13 +1286,14 @@ impl UsageMeteringAPI { pub async fn get_projected_cost( &self, params: GetProjectedCostOptionalParams, - ) -> Result> { + ) -> Result> + { match self.get_projected_cost_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1125,8 +1309,8 @@ impl UsageMeteringAPI { &self, params: GetProjectedCostOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_projected_cost"; @@ -1134,7 +1318,7 @@ impl UsageMeteringAPI { // unbox and build optional parameters let view = params.view; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/usage/projected_cost", @@ -1148,20 +1332,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("view", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1173,35 +1379,35 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get hourly usage for application security . - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API]() + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API]() pub async fn get_usage_application_security_monitoring( &self, start_hr: String, params: GetUsageApplicationSecurityMonitoringOptionalParams, ) -> Result< crate::datadogV2::model::UsageApplicationSecurityMonitoringResponse, - Error, + datadog::Error, > { match self .get_usage_application_security_monitoring_with_http_info(start_hr, params) @@ -1211,7 +1417,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1221,14 +1427,16 @@ impl UsageMeteringAPI { } /// Get hourly usage for application security . - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API]() + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API]() pub async fn get_usage_application_security_monitoring_with_http_info( &self, start_hr: String, params: GetUsageApplicationSecurityMonitoringOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent< + crate::datadogV2::model::UsageApplicationSecurityMonitoringResponse, + >, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_usage_application_security_monitoring"; @@ -1236,7 +1444,7 @@ impl UsageMeteringAPI { // unbox and build optional parameters let end_hr = params.end_hr; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/usage/application_security", @@ -1251,20 +1459,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_hr", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1277,35 +1507,35 @@ impl UsageMeteringAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } - /// Get hourly usage for lambda traced invocations. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API]() + /// Get hourly usage for Lambda traced invocations. + /// **Note:** This endpoint has been deprecated.. Hourly usage data for all products is now available in the [Get hourly usage by product family API]() pub async fn get_usage_lambda_traced_invocations( &self, start_hr: String, params: GetUsageLambdaTracedInvocationsOptionalParams, ) -> Result< crate::datadogV2::model::UsageLambdaTracedInvocationsResponse, - Error, + datadog::Error, > { match self .get_usage_lambda_traced_invocations_with_http_info(start_hr, params) @@ -1315,7 +1545,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1324,15 +1554,15 @@ impl UsageMeteringAPI { } } - /// Get hourly usage for lambda traced invocations. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API]() + /// Get hourly usage for Lambda traced invocations. + /// **Note:** This endpoint has been deprecated.. Hourly usage data for all products is now available in the [Get hourly usage by product family API]() pub async fn get_usage_lambda_traced_invocations_with_http_info( &self, start_hr: String, params: GetUsageLambdaTracedInvocationsOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_usage_lambda_traced_invocations"; @@ -1340,7 +1570,7 @@ impl UsageMeteringAPI { // unbox and build optional parameters let end_hr = params.end_hr; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/usage/lambda_traced_invocations", @@ -1355,20 +1585,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_hr", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1381,35 +1633,35 @@ impl UsageMeteringAPI { >(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Get hourly usage for observability pipelines. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API]() + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API]() pub async fn get_usage_observability_pipelines( &self, start_hr: String, params: GetUsageObservabilityPipelinesOptionalParams, ) -> Result< crate::datadogV2::model::UsageObservabilityPipelinesResponse, - Error, + datadog::Error, > { match self .get_usage_observability_pipelines_with_http_info(start_hr, params) @@ -1419,7 +1671,7 @@ impl UsageMeteringAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -1429,14 +1681,14 @@ impl UsageMeteringAPI { } /// Get hourly usage for observability pipelines. - /// **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API]() + /// **Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API]() pub async fn get_usage_observability_pipelines_with_http_info( &self, start_hr: String, params: GetUsageObservabilityPipelinesOptionalParams, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_usage_observability_pipelines"; @@ -1444,7 +1696,7 @@ impl UsageMeteringAPI { // unbox and build optional parameters let end_hr = params.end_hr; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/usage/observability_pipelines", @@ -1459,20 +1711,42 @@ impl UsageMeteringAPI { local_req_builder.query(&[("end_hr", &local_query_param.to_string())]); }; - // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), + // build headers + let mut headers = HeaderMap::new(); + headers.insert( + "Accept", + HeaderValue::from_static("application/json;datetime-format=rfc3339"), ); + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -1484,23 +1758,23 @@ impl UsageMeteringAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/api_users.rs b/src/datadogV2/api/api_users.rs index d57dd1536..bb09bb4b3 100644 --- a/src/datadogV2/api/api_users.rs +++ b/src/datadogV2/api/api_users.rs @@ -1,11 +1,16 @@ // 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 2019-Present Datadog, Inc. -use crate::datadog::*; +use crate::datadog; use async_stream::try_stream; +use flate2::{ + write::{GzEncoder, ZlibEncoder}, + Compression, +}; use futures_core::stream::Stream; -use reqwest; +use reqwest::header::{HeaderMap, HeaderValue}; use serde::{Deserialize, Serialize}; +use std::io::Write; /// ListUsersOptionalParams is a struct for passing parameters to the method [`UsersAPI::list_users`] #[non_exhaustive] @@ -162,14 +167,13 @@ pub enum UpdateUserError { #[derive(Debug, Clone)] pub struct UsersAPI { - config: configuration::Configuration, + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, } impl Default for UsersAPI { fn default() -> Self { - Self { - config: configuration::Configuration::new(), - } + Self::with_config(datadog::Configuration::default()) } } @@ -177,21 +181,65 @@ impl UsersAPI { pub fn new() -> Self { Self::default() } - pub fn with_config(config: configuration::Configuration) -> Self { - Self { config } + pub fn with_config(config: datadog::Configuration) -> Self { + let mut reqwest_client_builder = reqwest::Client::builder(); + + if let Some(proxy_url) = &config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut middleware_client_builder = + reqwest_middleware::ClientBuilder::new(reqwest_client_builder.build().unwrap()); + + if config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + middleware_client_builder = middleware_client_builder.with(retry_middleware); + } + + let client = middleware_client_builder.build(); + + Self { config, client } + } + + pub fn with_client_and_config( + config: datadog::Configuration, + client: reqwest_middleware::ClientWithMiddleware, + ) -> Self { + Self { config, client } } /// Create a user for your organization. pub async fn create_user( &self, body: crate::datadogV2::model::UserCreateRequest, - ) -> Result> { + ) -> Result> { match self.create_user_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -204,12 +252,14 @@ impl UsersAPI { pub async fn create_user_with_http_info( &self, body: crate::datadogV2::model::UserCreateRequest, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.create_user"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/users", @@ -218,27 +268,85 @@ impl UsersAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -248,28 +356,31 @@ impl UsersAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } /// Disable a user. Can only be used with an application key belonging /// to an administrator user. - pub async fn disable_user(&self, user_id: String) -> Result<(), Error> { + pub async fn disable_user( + &self, + user_id: String, + ) -> Result<(), datadog::Error> { match self.disable_user_with_http_info(user_id).await { Ok(_) => Ok(()), Err(err) => Err(err), @@ -281,34 +392,53 @@ impl UsersAPI { pub async fn disable_user_with_http_info( &self, user_id: String, - ) -> Result, Error> { + ) -> Result, datadog::Error> { let local_configuration = &self.config; let operation_id = "v2.disable_user"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/users/{user_id}", local_configuration.get_operation_host(operation_id), - user_id = urlencode(user_id) + user_id = datadog::urlencode(user_id) ); let mut local_req_builder = local_client.request(reqwest::Method::DELETE, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("*/*")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -316,19 +446,19 @@ impl UsersAPI { let local_content = local_resp.text().await?; if !local_status.is_client_error() && !local_status.is_server_error() { - Ok(ResponseContent { + Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: None, }) } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -336,7 +466,8 @@ impl UsersAPI { pub async fn get_invitation( &self, user_invitation_uuid: String, - ) -> Result> { + ) -> Result> + { match self .get_invitation_with_http_info(user_invitation_uuid) .await @@ -345,7 +476,7 @@ impl UsersAPI { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -359,36 +490,55 @@ impl UsersAPI { &self, user_invitation_uuid: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.get_invitation"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/user_invitations/{user_invitation_uuid}", local_configuration.get_operation_host(operation_id), - user_invitation_uuid = urlencode(user_invitation_uuid) + user_invitation_uuid = datadog::urlencode(user_invitation_uuid) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -400,23 +550,23 @@ impl UsersAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -424,13 +574,13 @@ impl UsersAPI { pub async fn get_user( &self, user_id: String, - ) -> Result> { + ) -> Result> { match self.get_user_with_http_info(user_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -443,34 +593,56 @@ impl UsersAPI { pub async fn get_user_with_http_info( &self, user_id: String, - ) -> Result, Error> { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.get_user"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/users/{user_id}", local_configuration.get_operation_host(operation_id), - user_id = urlencode(user_id) + user_id = datadog::urlencode(user_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -480,22 +652,22 @@ impl UsersAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -504,13 +676,14 @@ impl UsersAPI { pub async fn list_user_organizations( &self, user_id: String, - ) -> Result> { + ) -> Result> + { match self.list_user_organizations_with_http_info(user_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -525,36 +698,55 @@ impl UsersAPI { &self, user_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_user_organizations"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/users/{user_id}/orgs", local_configuration.get_operation_host(operation_id), - user_id = urlencode(user_id) + user_id = datadog::urlencode(user_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -564,23 +756,23 @@ impl UsersAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -589,13 +781,16 @@ impl UsersAPI { pub async fn list_user_permissions( &self, user_id: String, - ) -> Result> { + ) -> Result< + crate::datadogV2::model::PermissionsResponse, + datadog::Error, + > { match self.list_user_permissions_with_http_info(user_id).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -610,36 +805,55 @@ impl UsersAPI { &self, user_id: String, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.list_user_permissions"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/users/{user_id}/permissions", local_configuration.get_operation_host(operation_id), - user_id = urlencode(user_id) + user_id = datadog::urlencode(user_id) ); let mut local_req_builder = local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -651,23 +865,23 @@ impl UsersAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -676,13 +890,13 @@ impl UsersAPI { pub async fn list_users( &self, params: ListUsersOptionalParams, - ) -> Result> { + ) -> Result> { match self.list_users_with_http_info(params).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -694,7 +908,8 @@ impl UsersAPI { pub fn list_users_with_pagination( &self, mut params: ListUsersOptionalParams, - ) -> impl Stream>> + '_ { + ) -> impl Stream>> + '_ + { try_stream! { let mut page_size: i64 = 10; if params.page_size.is_none() { @@ -728,8 +943,10 @@ impl UsersAPI { pub async fn list_users_with_http_info( &self, params: ListUsersOptionalParams, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.list_users"; @@ -741,7 +958,7 @@ impl UsersAPI { let filter = params.filter; let filter_status = params.filter_status; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/users", @@ -775,20 +992,39 @@ impl UsersAPI { local_req_builder.query(&[("filter[status]", &local_query_param.to_string())]); }; + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -798,22 +1034,22 @@ impl UsersAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -821,13 +1057,16 @@ impl UsersAPI { pub async fn send_invitations( &self, body: crate::datadogV2::model::UserInvitationsRequest, - ) -> Result> { + ) -> Result< + crate::datadogV2::model::UserInvitationsResponse, + datadog::Error, + > { match self.send_invitations_with_http_info(body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -841,13 +1080,13 @@ impl UsersAPI { &self, body: crate::datadogV2::model::UserInvitationsRequest, ) -> Result< - ResponseContent, - Error, + datadog::ResponseContent, + datadog::Error, > { let local_configuration = &self.config; let operation_id = "v2.send_invitations"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/user_invitations", @@ -856,27 +1095,85 @@ impl UsersAPI { let mut local_req_builder = local_client.request(reqwest::Method::POST, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -888,23 +1185,23 @@ impl UsersAPI { &local_content, ) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } @@ -914,13 +1211,13 @@ impl UsersAPI { &self, user_id: String, body: crate::datadogV2::model::UserUpdateRequest, - ) -> Result> { + ) -> Result> { match self.update_user_with_http_info(user_id, body).await { Ok(response_content) => { if let Some(e) = response_content.entity { Ok(e) } else { - Err(Error::Serde(serde::de::Error::custom( + Err(datadog::Error::Serde(serde::de::Error::custom( "response content was None", ))) } @@ -935,42 +1232,102 @@ impl UsersAPI { &self, user_id: String, body: crate::datadogV2::model::UserUpdateRequest, - ) -> Result, Error> - { + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { let local_configuration = &self.config; let operation_id = "v2.update_user"; - let local_client = &local_configuration.client; + let local_client = &self.client; let local_uri_str = format!( "{}/api/v2/users/{user_id}", local_configuration.get_operation_host(operation_id), - user_id = urlencode(user_id) + user_id = datadog::urlencode(user_id) ); let mut local_req_builder = local_client.request(reqwest::Method::PATCH, local_uri_str.as_str()); + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Content-Type", HeaderValue::from_static("application/json")); + headers.insert("Accept", HeaderValue::from_static("application/json")); + // build user agent - local_req_builder = local_req_builder.header( - reqwest::header::USER_AGENT, - local_configuration.user_agent.clone(), - ); + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; // build auth if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { - local_req_builder = local_req_builder.header("DD-API-KEY", &local_key.key); + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); }; if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { - local_req_builder = local_req_builder.header("DD-APPLICATION-KEY", &local_key.key); + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); }; // build body parameters let output = Vec::new(); - let mut ser = serde_json::Serializer::with_formatter(output, DDFormatter); + let mut ser = serde_json::Serializer::with_formatter(output, datadog::DDFormatter); if body.serialize(&mut ser).is_ok() { - local_req_builder = local_req_builder.body(ser.into_inner()); + if let Some(content_encoding) = headers.get("Content-Encoding") { + match content_encoding.to_str().unwrap_or_default() { + "gzip" => { + let mut enc = GzEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "deflate" => { + let mut enc = ZlibEncoder::new(Vec::new(), Compression::default()); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + "zstd1" => { + let mut enc = zstd::stream::Encoder::new(Vec::new(), 0).unwrap(); + let _ = enc.write_all(ser.into_inner().as_slice()); + match enc.finish() { + Ok(buf) => { + local_req_builder = local_req_builder.body(buf); + } + Err(e) => return Err(datadog::Error::Io(e)), + } + } + _ => { + local_req_builder = local_req_builder.body(ser.into_inner()); + } + } + } else { + local_req_builder = local_req_builder.body(ser.into_inner()); + } } + local_req_builder = local_req_builder.headers(headers); let local_req = local_req_builder.build()?; let local_resp = local_client.execute(local_req).await?; @@ -980,22 +1337,22 @@ impl UsersAPI { if !local_status.is_client_error() && !local_status.is_server_error() { match serde_json::from_str::(&local_content) { Ok(e) => { - return Ok(ResponseContent { + return Ok(datadog::ResponseContent { status: local_status, content: local_content, entity: Some(e), }) } - Err(e) => return Err(crate::datadog::Error::Serde(e)), + Err(e) => return Err(datadog::Error::Serde(e)), }; } else { let local_entity: Option = serde_json::from_str(&local_content).ok(); - let local_error = ResponseContent { + let local_error = datadog::ResponseContent { status: local_status, content: local_content, entity: local_entity, }; - Err(Error::ResponseError(local_error)) + Err(datadog::Error::ResponseError(local_error)) } } } diff --git a/src/datadogV2/api/mod.rs b/src/datadogV2/api/mod.rs index 34cefc319..85853f635 100644 --- a/src/datadogV2/api/mod.rs +++ b/src/datadogV2/api/mod.rs @@ -2,9 +2,11 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2019-Present Datadog, Inc. +pub mod api_api_management; pub mod api_apm_retention_filters; pub mod api_audit; pub mod api_authn_mappings; +pub mod api_case_management; pub mod api_ci_visibility_pipelines; pub mod api_ci_visibility_tests; pub mod api_cloud_cost_management; @@ -26,6 +28,7 @@ pub mod api_ip_allowlist; pub mod api_key_management; pub mod api_logs; pub mod api_logs_archives; +pub mod api_logs_custom_destinations; pub mod api_logs_metrics; pub mod api_metrics; pub mod api_monitors; diff --git a/src/datadogV2/mod.rs b/src/datadogV2/mod.rs index f0d16bd38..695cbb35f 100644 --- a/src/datadogV2/mod.rs +++ b/src/datadogV2/mod.rs @@ -3,4 +3,53 @@ // Copyright 2019-Present Datadog, Inc. pub mod api; +pub use self::api::api_api_management; +pub use self::api::api_apm_retention_filters; +pub use self::api::api_audit; +pub use self::api::api_authn_mappings; +pub use self::api::api_case_management; +pub use self::api::api_ci_visibility_pipelines; +pub use self::api::api_ci_visibility_tests; +pub use self::api::api_cloud_cost_management; +pub use self::api::api_cloud_workload_security; +pub use self::api::api_cloudflare_integration; +pub use self::api::api_confluent_cloud; +pub use self::api::api_container_images; +pub use self::api::api_containers; +pub use self::api::api_dashboard_lists; +pub use self::api::api_dora_metrics; +pub use self::api::api_downtimes; +pub use self::api::api_events; +pub use self::api::api_fastly_integration; +pub use self::api::api_gcp_integration; +pub use self::api::api_incident_services; +pub use self::api::api_incident_teams; +pub use self::api::api_incidents; +pub use self::api::api_ip_allowlist; +pub use self::api::api_key_management; +pub use self::api::api_logs; +pub use self::api::api_logs_archives; +pub use self::api::api_logs_custom_destinations; +pub use self::api::api_logs_metrics; +pub use self::api::api_metrics; +pub use self::api::api_monitors; +pub use self::api::api_okta_integration; +pub use self::api::api_opsgenie_integration; +pub use self::api::api_organizations; +pub use self::api::api_powerpack; +pub use self::api::api_processes; +pub use self::api::api_restriction_policies; +pub use self::api::api_roles; +pub use self::api::api_rum; +pub use self::api::api_security_monitoring; +pub use self::api::api_sensitive_data_scanner; +pub use self::api::api_service_accounts; +pub use self::api::api_service_definition; +pub use self::api::api_service_scorecards; +pub use self::api::api_spans; +pub use self::api::api_spans_metrics; +pub use self::api::api_synthetics; +pub use self::api::api_teams; +pub use self::api::api_usage_metering; +pub use self::api::api_users; pub mod model; diff --git a/src/datadogV2/model/mod.rs b/src/datadogV2/model/mod.rs index 6b46fe8ca..c118c62d2 100644 --- a/src/datadogV2/model/mod.rs +++ b/src/datadogV2/model/mod.rs @@ -68,6 +68,26 @@ pub mod model_api_key_update_data; pub use self::model_api_key_update_data::APIKeyUpdateData; pub mod model_api_key_update_attributes; pub use self::model_api_key_update_attributes::APIKeyUpdateAttributes; +pub mod model_jsonapi_error_response; +pub use self::model_jsonapi_error_response::JSONAPIErrorResponse; +pub mod model_jsonapi_error_item; +pub use self::model_jsonapi_error_item::JSONAPIErrorItem; +pub mod model_open_api_file; +pub use self::model_open_api_file::OpenAPIFile; +pub mod model_update_open_api_response; +pub use self::model_update_open_api_response::UpdateOpenAPIResponse; +pub mod model_update_open_api_response_data; +pub use self::model_update_open_api_response_data::UpdateOpenAPIResponseData; +pub mod model_update_open_api_response_attributes; +pub use self::model_update_open_api_response_attributes::UpdateOpenAPIResponseAttributes; +pub mod model_open_api_endpoint; +pub use self::model_open_api_endpoint::OpenAPIEndpoint; +pub mod model_create_open_api_response; +pub use self::model_create_open_api_response::CreateOpenAPIResponse; +pub mod model_create_open_api_response_data; +pub use self::model_create_open_api_response_data::CreateOpenAPIResponseData; +pub mod model_create_open_api_response_attributes; +pub use self::model_create_open_api_response_attributes::CreateOpenAPIResponseAttributes; pub mod model_spans_metrics_response; pub use self::model_spans_metrics_response::SpansMetricsResponse; pub mod model_spans_metric_response_data; @@ -230,12 +250,22 @@ pub mod model_relationship_to_saml_assertion_attribute_data; pub use self::model_relationship_to_saml_assertion_attribute_data::RelationshipToSAMLAssertionAttributeData; pub mod model_saml_assertion_attributes_type; pub use self::model_saml_assertion_attributes_type::SAMLAssertionAttributesType; +pub mod model_relationship_to_team; +pub use self::model_relationship_to_team::RelationshipToTeam; +pub mod model_relationship_to_team_data; +pub use self::model_relationship_to_team_data::RelationshipToTeamData; +pub mod model_team_type; +pub use self::model_team_type::TeamType; pub mod model_authn_mappings_type; pub use self::model_authn_mappings_type::AuthNMappingsType; pub mod model_saml_assertion_attribute; pub use self::model_saml_assertion_attribute::SAMLAssertionAttribute; pub mod model_saml_assertion_attribute_attributes; pub use self::model_saml_assertion_attribute_attributes::SAMLAssertionAttributeAttributes; +pub mod model_authn_mapping_team; +pub use self::model_authn_mapping_team::AuthNMappingTeam; +pub mod model_authn_mapping_team_attributes; +pub use self::model_authn_mapping_team_attributes::AuthNMappingTeamAttributes; pub mod model_authn_mapping_included; pub use self::model_authn_mapping_included::AuthNMappingIncluded; pub mod model_response_meta_attributes; @@ -248,6 +278,10 @@ pub mod model_authn_mapping_create_data; pub use self::model_authn_mapping_create_data::AuthNMappingCreateData; pub mod model_authn_mapping_create_attributes; pub use self::model_authn_mapping_create_attributes::AuthNMappingCreateAttributes; +pub mod model_authn_mapping_relationship_to_role; +pub use self::model_authn_mapping_relationship_to_role::AuthNMappingRelationshipToRole; +pub mod model_authn_mapping_relationship_to_team; +pub use self::model_authn_mapping_relationship_to_team::AuthNMappingRelationshipToTeam; pub mod model_authn_mapping_create_relationships; pub use self::model_authn_mapping_create_relationships::AuthNMappingCreateRelationships; pub mod model_authn_mapping_response; @@ -260,6 +294,110 @@ pub mod model_authn_mapping_update_attributes; pub use self::model_authn_mapping_update_attributes::AuthNMappingUpdateAttributes; pub mod model_authn_mapping_update_relationships; pub use self::model_authn_mapping_update_relationships::AuthNMappingUpdateRelationships; +pub mod model_case_sortable_field; +pub use self::model_case_sortable_field::CaseSortableField; +pub mod model_cases_response; +pub use self::model_cases_response::CasesResponse; +pub mod model_case; +pub use self::model_case::Case; +pub mod model_case_attributes; +pub use self::model_case_attributes::CaseAttributes; +pub mod model_jira_issue; +pub use self::model_jira_issue::JiraIssue; +pub mod model_jira_issue_result; +pub use self::model_jira_issue_result::JiraIssueResult; +pub mod model_case3rd_party_ticket_status; +pub use self::model_case3rd_party_ticket_status::Case3rdPartyTicketStatus; +pub mod model_case_priority; +pub use self::model_case_priority::CasePriority; +pub mod model_service_now_ticket; +pub use self::model_service_now_ticket::ServiceNowTicket; +pub mod model_service_now_ticket_result; +pub use self::model_service_now_ticket_result::ServiceNowTicketResult; +pub mod model_case_status; +pub use self::model_case_status::CaseStatus; +pub mod model_case_type; +pub use self::model_case_type::CaseType; +pub mod model_case_relationships; +pub use self::model_case_relationships::CaseRelationships; +pub mod model_nullable_user_relationship; +pub use self::model_nullable_user_relationship::NullableUserRelationship; +pub mod model_nullable_user_relationship_data; +pub use self::model_nullable_user_relationship_data::NullableUserRelationshipData; +pub mod model_user_resource_type; +pub use self::model_user_resource_type::UserResourceType; +pub mod model_project_relationship; +pub use self::model_project_relationship::ProjectRelationship; +pub mod model_project_relationship_data; +pub use self::model_project_relationship_data::ProjectRelationshipData; +pub mod model_project_resource_type; +pub use self::model_project_resource_type::ProjectResourceType; +pub mod model_case_resource_type; +pub use self::model_case_resource_type::CaseResourceType; +pub mod model_cases_response_meta; +pub use self::model_cases_response_meta::CasesResponseMeta; +pub mod model_cases_response_meta_pagination; +pub use self::model_cases_response_meta_pagination::CasesResponseMetaPagination; +pub mod model_case_create_request; +pub use self::model_case_create_request::CaseCreateRequest; +pub mod model_case_create; +pub use self::model_case_create::CaseCreate; +pub mod model_case_create_attributes; +pub use self::model_case_create_attributes::CaseCreateAttributes; +pub mod model_case_create_relationships; +pub use self::model_case_create_relationships::CaseCreateRelationships; +pub mod model_case_response; +pub use self::model_case_response::CaseResponse; +pub mod model_projects_response; +pub use self::model_projects_response::ProjectsResponse; +pub mod model_project; +pub use self::model_project::Project; +pub mod model_project_attributes; +pub use self::model_project_attributes::ProjectAttributes; +pub mod model_project_relationships; +pub use self::model_project_relationships::ProjectRelationships; +pub mod model_relationship_to_team_links; +pub use self::model_relationship_to_team_links::RelationshipToTeamLinks; +pub mod model_relationship_to_team_link_data; +pub use self::model_relationship_to_team_link_data::RelationshipToTeamLinkData; +pub mod model_team_link_type; +pub use self::model_team_link_type::TeamLinkType; +pub mod model_team_relationships_links; +pub use self::model_team_relationships_links::TeamRelationshipsLinks; +pub mod model_users_relationship; +pub use self::model_users_relationship::UsersRelationship; +pub mod model_user_relationship_data; +pub use self::model_user_relationship_data::UserRelationshipData; +pub mod model_project_create_request; +pub use self::model_project_create_request::ProjectCreateRequest; +pub mod model_project_create; +pub use self::model_project_create::ProjectCreate; +pub mod model_project_create_attributes; +pub use self::model_project_create_attributes::ProjectCreateAttributes; +pub mod model_project_response; +pub use self::model_project_response::ProjectResponse; +pub mod model_case_empty_request; +pub use self::model_case_empty_request::CaseEmptyRequest; +pub mod model_case_empty; +pub use self::model_case_empty::CaseEmpty; +pub mod model_case_assign_request; +pub use self::model_case_assign_request::CaseAssignRequest; +pub mod model_case_assign; +pub use self::model_case_assign::CaseAssign; +pub mod model_case_assign_attributes; +pub use self::model_case_assign_attributes::CaseAssignAttributes; +pub mod model_case_update_priority_request; +pub use self::model_case_update_priority_request::CaseUpdatePriorityRequest; +pub mod model_case_update_priority; +pub use self::model_case_update_priority::CaseUpdatePriority; +pub mod model_case_update_priority_attributes; +pub use self::model_case_update_priority_attributes::CaseUpdatePriorityAttributes; +pub mod model_case_update_status_request; +pub use self::model_case_update_status_request::CaseUpdateStatusRequest; +pub mod model_case_update_status; +pub use self::model_case_update_status::CaseUpdateStatus; +pub mod model_case_update_status_attributes; +pub use self::model_case_update_status_attributes::CaseUpdateStatusAttributes; pub mod model_ci_app_create_pipeline_event_request; pub use self::model_ci_app_create_pipeline_event_request::CIAppCreatePipelineEventRequest; pub mod model_ci_app_create_pipeline_event_request_data; @@ -602,10 +740,6 @@ pub mod model_dora_deployment_response_data; pub use self::model_dora_deployment_response_data::DORADeploymentResponseData; pub mod model_dora_deployment_type; pub use self::model_dora_deployment_type::DORADeploymentType; -pub mod model_jsonapi_error_response; -pub use self::model_jsonapi_error_response::JSONAPIErrorResponse; -pub mod model_jsonapi_error_item; -pub use self::model_jsonapi_error_item::JSONAPIErrorItem; pub mod model_dora_incident_request; pub use self::model_dora_incident_request::DORAIncidentRequest; pub mod model_dora_incident_request_data; @@ -1242,6 +1376,80 @@ pub mod model_logs_archive; pub use self::model_logs_archive::LogsArchive; pub mod model_roles_response; pub use self::model_roles_response::RolesResponse; +pub mod model_custom_destinations_response; +pub use self::model_custom_destinations_response::CustomDestinationsResponse; +pub mod model_custom_destination_response_definition; +pub use self::model_custom_destination_response_definition::CustomDestinationResponseDefinition; +pub mod model_custom_destination_response_attributes; +pub use self::model_custom_destination_response_attributes::CustomDestinationResponseAttributes; +pub mod model_custom_destination_attribute_tags_restriction_list_type; +pub use self::model_custom_destination_attribute_tags_restriction_list_type::CustomDestinationAttributeTagsRestrictionListType; +pub mod model_custom_destination_response_forward_destination_http; +pub use self::model_custom_destination_response_forward_destination_http::CustomDestinationResponseForwardDestinationHttp; +pub mod model_custom_destination_response_http_destination_auth_basic; +pub use self::model_custom_destination_response_http_destination_auth_basic::CustomDestinationResponseHttpDestinationAuthBasic; +pub mod model_custom_destination_response_http_destination_auth_basic_type; +pub use self::model_custom_destination_response_http_destination_auth_basic_type::CustomDestinationResponseHttpDestinationAuthBasicType; +pub mod model_custom_destination_response_http_destination_auth_custom_header; +pub use self::model_custom_destination_response_http_destination_auth_custom_header::CustomDestinationResponseHttpDestinationAuthCustomHeader; +pub mod model_custom_destination_response_http_destination_auth_custom_header_type; +pub use self::model_custom_destination_response_http_destination_auth_custom_header_type::CustomDestinationResponseHttpDestinationAuthCustomHeaderType; +pub mod model_custom_destination_response_http_destination_auth; +pub use self::model_custom_destination_response_http_destination_auth::CustomDestinationResponseHttpDestinationAuth; +pub mod model_custom_destination_response_forward_destination_http_type; +pub use self::model_custom_destination_response_forward_destination_http_type::CustomDestinationResponseForwardDestinationHttpType; +pub mod model_custom_destination_response_forward_destination_splunk; +pub use self::model_custom_destination_response_forward_destination_splunk::CustomDestinationResponseForwardDestinationSplunk; +pub mod model_custom_destination_response_forward_destination_splunk_type; +pub use self::model_custom_destination_response_forward_destination_splunk_type::CustomDestinationResponseForwardDestinationSplunkType; +pub mod model_custom_destination_response_forward_destination_elasticsearch; +pub use self::model_custom_destination_response_forward_destination_elasticsearch::CustomDestinationResponseForwardDestinationElasticsearch; +pub mod model_custom_destination_response_forward_destination_elasticsearch_type; +pub use self::model_custom_destination_response_forward_destination_elasticsearch_type::CustomDestinationResponseForwardDestinationElasticsearchType; +pub mod model_custom_destination_response_forward_destination; +pub use self::model_custom_destination_response_forward_destination::CustomDestinationResponseForwardDestination; +pub mod model_custom_destination_type; +pub use self::model_custom_destination_type::CustomDestinationType; +pub mod model_custom_destination_create_request; +pub use self::model_custom_destination_create_request::CustomDestinationCreateRequest; +pub mod model_custom_destination_create_request_definition; +pub use self::model_custom_destination_create_request_definition::CustomDestinationCreateRequestDefinition; +pub mod model_custom_destination_create_request_attributes; +pub use self::model_custom_destination_create_request_attributes::CustomDestinationCreateRequestAttributes; +pub mod model_custom_destination_forward_destination_http; +pub use self::model_custom_destination_forward_destination_http::CustomDestinationForwardDestinationHttp; +pub mod model_custom_destination_http_destination_auth_basic; +pub use self::model_custom_destination_http_destination_auth_basic::CustomDestinationHttpDestinationAuthBasic; +pub mod model_custom_destination_http_destination_auth_basic_type; +pub use self::model_custom_destination_http_destination_auth_basic_type::CustomDestinationHttpDestinationAuthBasicType; +pub mod model_custom_destination_http_destination_auth_custom_header; +pub use self::model_custom_destination_http_destination_auth_custom_header::CustomDestinationHttpDestinationAuthCustomHeader; +pub mod model_custom_destination_http_destination_auth_custom_header_type; +pub use self::model_custom_destination_http_destination_auth_custom_header_type::CustomDestinationHttpDestinationAuthCustomHeaderType; +pub mod model_custom_destination_http_destination_auth; +pub use self::model_custom_destination_http_destination_auth::CustomDestinationHttpDestinationAuth; +pub mod model_custom_destination_forward_destination_http_type; +pub use self::model_custom_destination_forward_destination_http_type::CustomDestinationForwardDestinationHttpType; +pub mod model_custom_destination_forward_destination_splunk; +pub use self::model_custom_destination_forward_destination_splunk::CustomDestinationForwardDestinationSplunk; +pub mod model_custom_destination_forward_destination_splunk_type; +pub use self::model_custom_destination_forward_destination_splunk_type::CustomDestinationForwardDestinationSplunkType; +pub mod model_custom_destination_forward_destination_elasticsearch; +pub use self::model_custom_destination_forward_destination_elasticsearch::CustomDestinationForwardDestinationElasticsearch; +pub mod model_custom_destination_elasticsearch_destination_auth; +pub use self::model_custom_destination_elasticsearch_destination_auth::CustomDestinationElasticsearchDestinationAuth; +pub mod model_custom_destination_forward_destination_elasticsearch_type; +pub use self::model_custom_destination_forward_destination_elasticsearch_type::CustomDestinationForwardDestinationElasticsearchType; +pub mod model_custom_destination_forward_destination; +pub use self::model_custom_destination_forward_destination::CustomDestinationForwardDestination; +pub mod model_custom_destination_response; +pub use self::model_custom_destination_response::CustomDestinationResponse; +pub mod model_custom_destination_update_request; +pub use self::model_custom_destination_update_request::CustomDestinationUpdateRequest; +pub mod model_custom_destination_update_request_definition; +pub use self::model_custom_destination_update_request_definition::CustomDestinationUpdateRequestDefinition; +pub mod model_custom_destination_update_request_attributes; +pub use self::model_custom_destination_update_request_attributes::CustomDestinationUpdateRequestAttributes; pub mod model_logs_metrics_response; pub use self::model_logs_metrics_response::LogsMetricsResponse; pub mod model_logs_metric_response_data; @@ -1354,6 +1562,50 @@ pub mod model_metric_all_tags; pub use self::model_metric_all_tags::MetricAllTags; pub mod model_metric_all_tags_attributes; pub use self::model_metric_all_tags_attributes::MetricAllTagsAttributes; +pub mod model_metric_assets_response; +pub use self::model_metric_assets_response::MetricAssetsResponse; +pub mod model_metric_asset_response_data; +pub use self::model_metric_asset_response_data::MetricAssetResponseData; +pub mod model_metric_asset_response_relationships; +pub use self::model_metric_asset_response_relationships::MetricAssetResponseRelationships; +pub mod model_metric_asset_dashboard_relationships; +pub use self::model_metric_asset_dashboard_relationships::MetricAssetDashboardRelationships; +pub mod model_metric_asset_dashboard_relationship; +pub use self::model_metric_asset_dashboard_relationship::MetricAssetDashboardRelationship; +pub mod model_metric_dashboard_type; +pub use self::model_metric_dashboard_type::MetricDashboardType; +pub mod model_metric_asset_monitor_relationships; +pub use self::model_metric_asset_monitor_relationships::MetricAssetMonitorRelationships; +pub mod model_metric_asset_monitor_relationship; +pub use self::model_metric_asset_monitor_relationship::MetricAssetMonitorRelationship; +pub mod model_metric_monitor_type; +pub use self::model_metric_monitor_type::MetricMonitorType; +pub mod model_metric_asset_notebook_relationships; +pub use self::model_metric_asset_notebook_relationships::MetricAssetNotebookRelationships; +pub mod model_metric_asset_notebook_relationship; +pub use self::model_metric_asset_notebook_relationship::MetricAssetNotebookRelationship; +pub mod model_metric_notebook_type; +pub use self::model_metric_notebook_type::MetricNotebookType; +pub mod model_metric_asset_slo_relationships; +pub use self::model_metric_asset_slo_relationships::MetricAssetSLORelationships; +pub mod model_metric_asset_slo_relationship; +pub use self::model_metric_asset_slo_relationship::MetricAssetSLORelationship; +pub mod model_metric_slo_type; +pub use self::model_metric_slo_type::MetricSLOType; +pub mod model_metric_dashboard_asset; +pub use self::model_metric_dashboard_asset::MetricDashboardAsset; +pub mod model_metric_dashboard_attributes; +pub use self::model_metric_dashboard_attributes::MetricDashboardAttributes; +pub mod model_metric_monitor_asset; +pub use self::model_metric_monitor_asset::MetricMonitorAsset; +pub mod model_metric_asset_attributes; +pub use self::model_metric_asset_attributes::MetricAssetAttributes; +pub mod model_metric_notebook_asset; +pub use self::model_metric_notebook_asset::MetricNotebookAsset; +pub mod model_metric_slo_asset; +pub use self::model_metric_slo_asset::MetricSLOAsset; +pub mod model_metric_asset_response_included; +pub use self::model_metric_asset_response_included::MetricAssetResponseIncluded; pub mod model_metric_estimate_response; pub use self::model_metric_estimate_response::MetricEstimateResponse; pub mod model_metric_estimate; @@ -1614,6 +1866,36 @@ pub mod model_timeseries_response_series; pub use self::model_timeseries_response_series::TimeseriesResponseSeries; pub mod model_timeseries_formula_response_type; pub use self::model_timeseries_formula_response_type::TimeseriesFormulaResponseType; +pub mod model_cloud_workload_security_agent_rules_list_response; +pub use self::model_cloud_workload_security_agent_rules_list_response::CloudWorkloadSecurityAgentRulesListResponse; +pub mod model_cloud_workload_security_agent_rule_data; +pub use self::model_cloud_workload_security_agent_rule_data::CloudWorkloadSecurityAgentRuleData; +pub mod model_cloud_workload_security_agent_rule_attributes; +pub use self::model_cloud_workload_security_agent_rule_attributes::CloudWorkloadSecurityAgentRuleAttributes; +pub mod model_cloud_workload_security_agent_rule_action; +pub use self::model_cloud_workload_security_agent_rule_action::CloudWorkloadSecurityAgentRuleAction; +pub mod model_cloud_workload_security_agent_rule_kill; +pub use self::model_cloud_workload_security_agent_rule_kill::CloudWorkloadSecurityAgentRuleKill; +pub mod model_cloud_workload_security_agent_rule_creator_attributes; +pub use self::model_cloud_workload_security_agent_rule_creator_attributes::CloudWorkloadSecurityAgentRuleCreatorAttributes; +pub mod model_cloud_workload_security_agent_rule_updater_attributes; +pub use self::model_cloud_workload_security_agent_rule_updater_attributes::CloudWorkloadSecurityAgentRuleUpdaterAttributes; +pub mod model_cloud_workload_security_agent_rule_type; +pub use self::model_cloud_workload_security_agent_rule_type::CloudWorkloadSecurityAgentRuleType; +pub mod model_cloud_workload_security_agent_rule_create_request; +pub use self::model_cloud_workload_security_agent_rule_create_request::CloudWorkloadSecurityAgentRuleCreateRequest; +pub mod model_cloud_workload_security_agent_rule_create_data; +pub use self::model_cloud_workload_security_agent_rule_create_data::CloudWorkloadSecurityAgentRuleCreateData; +pub mod model_cloud_workload_security_agent_rule_create_attributes; +pub use self::model_cloud_workload_security_agent_rule_create_attributes::CloudWorkloadSecurityAgentRuleCreateAttributes; +pub mod model_cloud_workload_security_agent_rule_response; +pub use self::model_cloud_workload_security_agent_rule_response::CloudWorkloadSecurityAgentRuleResponse; +pub mod model_cloud_workload_security_agent_rule_update_request; +pub use self::model_cloud_workload_security_agent_rule_update_request::CloudWorkloadSecurityAgentRuleUpdateRequest; +pub mod model_cloud_workload_security_agent_rule_update_data; +pub use self::model_cloud_workload_security_agent_rule_update_data::CloudWorkloadSecurityAgentRuleUpdateData; +pub mod model_cloud_workload_security_agent_rule_update_attributes; +pub use self::model_cloud_workload_security_agent_rule_update_attributes::CloudWorkloadSecurityAgentRuleUpdateAttributes; pub mod model_restriction_policy_response; pub use self::model_restriction_policy_response::RestrictionPolicyResponse; pub mod model_restriction_policy; @@ -1824,32 +2106,6 @@ pub mod model_create_rule_response; pub use self::model_create_rule_response::CreateRuleResponse; pub mod model_create_rule_response_data; pub use self::model_create_rule_response_data::CreateRuleResponseData; -pub mod model_cloud_workload_security_agent_rules_list_response; -pub use self::model_cloud_workload_security_agent_rules_list_response::CloudWorkloadSecurityAgentRulesListResponse; -pub mod model_cloud_workload_security_agent_rule_data; -pub use self::model_cloud_workload_security_agent_rule_data::CloudWorkloadSecurityAgentRuleData; -pub mod model_cloud_workload_security_agent_rule_attributes; -pub use self::model_cloud_workload_security_agent_rule_attributes::CloudWorkloadSecurityAgentRuleAttributes; -pub mod model_cloud_workload_security_agent_rule_creator_attributes; -pub use self::model_cloud_workload_security_agent_rule_creator_attributes::CloudWorkloadSecurityAgentRuleCreatorAttributes; -pub mod model_cloud_workload_security_agent_rule_updater_attributes; -pub use self::model_cloud_workload_security_agent_rule_updater_attributes::CloudWorkloadSecurityAgentRuleUpdaterAttributes; -pub mod model_cloud_workload_security_agent_rule_type; -pub use self::model_cloud_workload_security_agent_rule_type::CloudWorkloadSecurityAgentRuleType; -pub mod model_cloud_workload_security_agent_rule_create_request; -pub use self::model_cloud_workload_security_agent_rule_create_request::CloudWorkloadSecurityAgentRuleCreateRequest; -pub mod model_cloud_workload_security_agent_rule_create_data; -pub use self::model_cloud_workload_security_agent_rule_create_data::CloudWorkloadSecurityAgentRuleCreateData; -pub mod model_cloud_workload_security_agent_rule_create_attributes; -pub use self::model_cloud_workload_security_agent_rule_create_attributes::CloudWorkloadSecurityAgentRuleCreateAttributes; -pub mod model_cloud_workload_security_agent_rule_response; -pub use self::model_cloud_workload_security_agent_rule_response::CloudWorkloadSecurityAgentRuleResponse; -pub mod model_cloud_workload_security_agent_rule_update_request; -pub use self::model_cloud_workload_security_agent_rule_update_request::CloudWorkloadSecurityAgentRuleUpdateRequest; -pub mod model_cloud_workload_security_agent_rule_update_data; -pub use self::model_cloud_workload_security_agent_rule_update_data::CloudWorkloadSecurityAgentRuleUpdateData; -pub mod model_cloud_workload_security_agent_rule_update_attributes; -pub use self::model_cloud_workload_security_agent_rule_update_attributes::CloudWorkloadSecurityAgentRuleUpdateAttributes; pub mod model_security_filters_response; pub use self::model_security_filters_response::SecurityFiltersResponse; pub mod model_security_filter; @@ -1880,6 +2136,30 @@ pub mod model_security_filter_update_data; pub use self::model_security_filter_update_data::SecurityFilterUpdateData; pub mod model_security_filter_update_attributes; pub use self::model_security_filter_update_attributes::SecurityFilterUpdateAttributes; +pub mod model_security_monitoring_suppressions_response; +pub use self::model_security_monitoring_suppressions_response::SecurityMonitoringSuppressionsResponse; +pub mod model_security_monitoring_suppression; +pub use self::model_security_monitoring_suppression::SecurityMonitoringSuppression; +pub mod model_security_monitoring_suppression_attributes; +pub use self::model_security_monitoring_suppression_attributes::SecurityMonitoringSuppressionAttributes; +pub mod model_security_monitoring_user; +pub use self::model_security_monitoring_user::SecurityMonitoringUser; +pub mod model_security_monitoring_suppression_type; +pub use self::model_security_monitoring_suppression_type::SecurityMonitoringSuppressionType; +pub mod model_security_monitoring_suppression_create_request; +pub use self::model_security_monitoring_suppression_create_request::SecurityMonitoringSuppressionCreateRequest; +pub mod model_security_monitoring_suppression_create_data; +pub use self::model_security_monitoring_suppression_create_data::SecurityMonitoringSuppressionCreateData; +pub mod model_security_monitoring_suppression_create_attributes; +pub use self::model_security_monitoring_suppression_create_attributes::SecurityMonitoringSuppressionCreateAttributes; +pub mod model_security_monitoring_suppression_response; +pub use self::model_security_monitoring_suppression_response::SecurityMonitoringSuppressionResponse; +pub mod model_security_monitoring_suppression_update_request; +pub use self::model_security_monitoring_suppression_update_request::SecurityMonitoringSuppressionUpdateRequest; +pub mod model_security_monitoring_suppression_update_data; +pub use self::model_security_monitoring_suppression_update_data::SecurityMonitoringSuppressionUpdateData; +pub mod model_security_monitoring_suppression_update_attributes; +pub use self::model_security_monitoring_suppression_update_attributes::SecurityMonitoringSuppressionUpdateAttributes; pub mod model_security_monitoring_list_rules_response; pub use self::model_security_monitoring_list_rules_response::SecurityMonitoringListRulesResponse; pub mod model_security_monitoring_standard_rule_response; @@ -2042,6 +2322,8 @@ pub mod model_sensitive_data_scanner_rule_included_item; pub use self::model_sensitive_data_scanner_rule_included_item::SensitiveDataScannerRuleIncludedItem; pub mod model_sensitive_data_scanner_rule_attributes; pub use self::model_sensitive_data_scanner_rule_attributes::SensitiveDataScannerRuleAttributes; +pub mod model_sensitive_data_scanner_included_keyword_configuration; +pub use self::model_sensitive_data_scanner_included_keyword_configuration::SensitiveDataScannerIncludedKeywordConfiguration; pub mod model_sensitive_data_scanner_text_replacement; pub use self::model_sensitive_data_scanner_text_replacement::SensitiveDataScannerTextReplacement; pub mod model_sensitive_data_scanner_text_replacement_type; @@ -2402,22 +2684,12 @@ pub mod model_team_attributes; pub use self::model_team_attributes::TeamAttributes; pub mod model_team_relationships; pub use self::model_team_relationships::TeamRelationships; -pub mod model_relationship_to_team_links; -pub use self::model_relationship_to_team_links::RelationshipToTeamLinks; -pub mod model_relationship_to_team_link_data; -pub use self::model_relationship_to_team_link_data::RelationshipToTeamLinkData; -pub mod model_team_link_type; -pub use self::model_team_link_type::TeamLinkType; -pub mod model_team_relationships_links; -pub use self::model_team_relationships_links::TeamRelationshipsLinks; pub mod model_relationship_to_user_team_permission; pub use self::model_relationship_to_user_team_permission::RelationshipToUserTeamPermission; pub mod model_relationship_to_user_team_permission_data; pub use self::model_relationship_to_user_team_permission_data::RelationshipToUserTeamPermissionData; pub mod model_user_team_permission_type; pub use self::model_user_team_permission_type::UserTeamPermissionType; -pub mod model_team_type; -pub use self::model_team_type::TeamType; pub mod model_team_link; pub use self::model_team_link::TeamLink; pub mod model_team_link_attributes; @@ -2486,6 +2758,8 @@ pub mod model_user_team_user_type; pub use self::model_user_team_user_type::UserTeamUserType; pub mod model_user_team_type; pub use self::model_user_team_type::UserTeamType; +pub mod model_user_team_included; +pub use self::model_user_team_included::UserTeamIncluded; pub mod model_user_team_request; pub use self::model_user_team_request::UserTeamRequest; pub mod model_user_team_create; diff --git a/src/datadogV2/model/model_authn_mapping_create_data.rs b/src/datadogV2/model/model_authn_mapping_create_data.rs index 769c4819b..c6641c24e 100644 --- a/src/datadogV2/model/model_authn_mapping_create_data.rs +++ b/src/datadogV2/model/model_authn_mapping_create_data.rs @@ -14,7 +14,7 @@ pub struct AuthNMappingCreateData { /// Key/Value pair of attributes used for create request. #[serde(rename = "attributes")] pub attributes: Option, - /// Relationship of AuthN Mapping create object to Role. + /// Relationship of AuthN Mapping create object to a Role or Team. #[serde(rename = "relationships")] pub relationships: Option, /// AuthN Mappings resource type. @@ -91,6 +91,14 @@ impl<'de> Deserialize<'de> for AuthNMappingCreateData { } relationships = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _relationships) = relationships { + match _relationships { + crate::datadogV2::model::AuthNMappingCreateRelationships::UnparsedObject(_relationships) => { + _unparsed = true; + }, + _ => {} + } + } } "type" => { type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); diff --git a/src/datadogV2/model/model_authn_mapping_create_relationships.rs b/src/datadogV2/model/model_authn_mapping_create_relationships.rs index 0fc1aed11..74ff61333 100644 --- a/src/datadogV2/model/model_authn_mapping_create_relationships.rs +++ b/src/datadogV2/model/model_authn_mapping_create_relationships.rs @@ -1,42 +1,16 @@ // 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 2019-Present Datadog, Inc. -use serde::de::{Error, MapAccess, Visitor}; use serde::{Deserialize, Deserializer, Serialize}; -use serde_with::skip_serializing_none; -use std::fmt::{self, Formatter}; -/// Relationship of AuthN Mapping create object to Role. +/// Relationship of AuthN Mapping create object to a Role or Team. #[non_exhaustive] -#[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] -pub struct AuthNMappingCreateRelationships { - /// Relationship to role. - #[serde(rename = "role")] - pub role: Option, - #[serde(skip)] - #[serde(default)] - pub(crate) _unparsed: bool, -} - -impl AuthNMappingCreateRelationships { - pub fn new() -> AuthNMappingCreateRelationships { - AuthNMappingCreateRelationships { - role: None, - _unparsed: false, - } - } - - pub fn role(mut self, value: crate::datadogV2::model::RelationshipToRole) -> Self { - self.role = Some(value); - self - } -} - -impl Default for AuthNMappingCreateRelationships { - fn default() -> Self { - Self::new() - } +#[serde(untagged)] +pub enum AuthNMappingCreateRelationships { + AuthNMappingRelationshipToRole(Box), + AuthNMappingRelationshipToTeam(Box), + UnparsedObject(crate::datadog::UnparsedObject), } impl<'de> Deserialize<'de> for AuthNMappingCreateRelationships { @@ -44,39 +18,26 @@ impl<'de> Deserialize<'de> for AuthNMappingCreateRelationships { where D: Deserializer<'de>, { - struct AuthNMappingCreateRelationshipsVisitor; - impl<'a> Visitor<'a> for AuthNMappingCreateRelationshipsVisitor { - type Value = AuthNMappingCreateRelationships; - - fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { - f.write_str("a mapping") + let value: serde_json::Value = Deserialize::deserialize(deserializer)?; + if let Ok(_v) = serde_json::from_value::< + Box, + >(value.clone()) + { + if !_v._unparsed { + return Ok(AuthNMappingCreateRelationships::AuthNMappingRelationshipToRole(_v)); } - - fn visit_map(self, mut map: M) -> Result - where - M: MapAccess<'a>, - { - let mut role: Option = None; - let mut _unparsed = false; - - while let Some((k, v)) = map.next_entry::()? { - match k.as_str() { - "role" => { - if v.is_null() { - continue; - } - role = Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - &_ => {} - } - } - - let content = AuthNMappingCreateRelationships { role, _unparsed }; - - Ok(content) + } + if let Ok(_v) = serde_json::from_value::< + Box, + >(value.clone()) + { + if !_v._unparsed { + return Ok(AuthNMappingCreateRelationships::AuthNMappingRelationshipToTeam(_v)); } } - deserializer.deserialize_any(AuthNMappingCreateRelationshipsVisitor) + return Ok(AuthNMappingCreateRelationships::UnparsedObject( + crate::datadog::UnparsedObject { value }, + )); } } diff --git a/src/datadogV2/model/model_authn_mapping_included.rs b/src/datadogV2/model/model_authn_mapping_included.rs index 8a4dc800d..c37e023ce 100644 --- a/src/datadogV2/model/model_authn_mapping_included.rs +++ b/src/datadogV2/model/model_authn_mapping_included.rs @@ -10,6 +10,7 @@ use serde::{Deserialize, Deserializer, Serialize}; pub enum AuthNMappingIncluded { SAMLAssertionAttribute(Box), Role(Box), + AuthNMappingTeam(Box), UnparsedObject(crate::datadog::UnparsedObject), } @@ -32,6 +33,13 @@ impl<'de> Deserialize<'de> for AuthNMappingIncluded { return Ok(AuthNMappingIncluded::Role(_v)); } } + if let Ok(_v) = + serde_json::from_value::>(value.clone()) + { + if !_v._unparsed { + return Ok(AuthNMappingIncluded::AuthNMappingTeam(_v)); + } + } return Ok(AuthNMappingIncluded::UnparsedObject( crate::datadog::UnparsedObject { value }, diff --git a/src/datadogV2/model/model_authn_mapping_relationship_to_role.rs b/src/datadogV2/model/model_authn_mapping_relationship_to_role.rs new file mode 100644 index 000000000..61d2cefc3 --- /dev/null +++ b/src/datadogV2/model/model_authn_mapping_relationship_to_role.rs @@ -0,0 +1,71 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Relationship of AuthN Mapping to a Role. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct AuthNMappingRelationshipToRole { + /// Relationship to role. + #[serde(rename = "role")] + pub role: crate::datadogV2::model::RelationshipToRole, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl AuthNMappingRelationshipToRole { + pub fn new( + role: crate::datadogV2::model::RelationshipToRole, + ) -> AuthNMappingRelationshipToRole { + AuthNMappingRelationshipToRole { + role, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for AuthNMappingRelationshipToRole { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct AuthNMappingRelationshipToRoleVisitor; + impl<'a> Visitor<'a> for AuthNMappingRelationshipToRoleVisitor { + type Value = AuthNMappingRelationshipToRole; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut role: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "role" => { + role = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + let role = role.ok_or_else(|| M::Error::missing_field("role"))?; + + let content = AuthNMappingRelationshipToRole { role, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(AuthNMappingRelationshipToRoleVisitor) + } +} diff --git a/src/datadogV2/model/model_authn_mapping_relationship_to_team.rs b/src/datadogV2/model/model_authn_mapping_relationship_to_team.rs new file mode 100644 index 000000000..9fa2c7426 --- /dev/null +++ b/src/datadogV2/model/model_authn_mapping_relationship_to_team.rs @@ -0,0 +1,71 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Relationship of AuthN Mapping to a Team. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct AuthNMappingRelationshipToTeam { + /// Relationship to team. + #[serde(rename = "team")] + pub team: crate::datadogV2::model::RelationshipToTeam, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl AuthNMappingRelationshipToTeam { + pub fn new( + team: crate::datadogV2::model::RelationshipToTeam, + ) -> AuthNMappingRelationshipToTeam { + AuthNMappingRelationshipToTeam { + team, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for AuthNMappingRelationshipToTeam { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct AuthNMappingRelationshipToTeamVisitor; + impl<'a> Visitor<'a> for AuthNMappingRelationshipToTeamVisitor { + type Value = AuthNMappingRelationshipToTeam; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut team: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "team" => { + team = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + let team = team.ok_or_else(|| M::Error::missing_field("team"))?; + + let content = AuthNMappingRelationshipToTeam { team, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(AuthNMappingRelationshipToTeamVisitor) + } +} diff --git a/src/datadogV2/model/model_authn_mapping_relationships.rs b/src/datadogV2/model/model_authn_mapping_relationships.rs index 66ab3632b..cfd96b5bf 100644 --- a/src/datadogV2/model/model_authn_mapping_relationships.rs +++ b/src/datadogV2/model/model_authn_mapping_relationships.rs @@ -18,6 +18,9 @@ pub struct AuthNMappingRelationships { #[serde(rename = "saml_assertion_attribute")] pub saml_assertion_attribute: Option, + /// Relationship to team. + #[serde(rename = "team")] + pub team: Option, #[serde(skip)] #[serde(default)] pub(crate) _unparsed: bool, @@ -28,6 +31,7 @@ impl AuthNMappingRelationships { AuthNMappingRelationships { role: None, saml_assertion_attribute: None, + team: None, _unparsed: false, } } @@ -44,6 +48,11 @@ impl AuthNMappingRelationships { self.saml_assertion_attribute = Some(value); self } + + pub fn team(mut self, value: crate::datadogV2::model::RelationshipToTeam) -> Self { + self.team = Some(value); + self + } } impl Default for AuthNMappingRelationships { @@ -73,6 +82,7 @@ impl<'de> Deserialize<'de> for AuthNMappingRelationships { let mut saml_assertion_attribute: Option< crate::datadogV2::model::RelationshipToSAMLAssertionAttribute, > = None; + let mut team: Option = None; let mut _unparsed = false; while let Some((k, v)) = map.next_entry::()? { @@ -90,6 +100,12 @@ impl<'de> Deserialize<'de> for AuthNMappingRelationships { saml_assertion_attribute = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "team" => { + if v.is_null() { + continue; + } + team = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } &_ => {} } } @@ -97,6 +113,7 @@ impl<'de> Deserialize<'de> for AuthNMappingRelationships { let content = AuthNMappingRelationships { role, saml_assertion_attribute, + team, _unparsed, }; diff --git a/src/datadogV2/model/model_authn_mapping_team.rs b/src/datadogV2/model/model_authn_mapping_team.rs new file mode 100644 index 000000000..504509dde --- /dev/null +++ b/src/datadogV2/model/model_authn_mapping_team.rs @@ -0,0 +1,131 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Team. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct AuthNMappingTeam { + /// Team attributes. + #[serde(rename = "attributes")] + pub attributes: Option, + /// The ID of the Team. + #[serde(rename = "id")] + pub id: Option, + /// Team type + #[serde(rename = "type")] + pub type_: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl AuthNMappingTeam { + pub fn new() -> AuthNMappingTeam { + AuthNMappingTeam { + attributes: None, + id: None, + type_: None, + _unparsed: false, + } + } + + pub fn attributes( + mut self, + value: crate::datadogV2::model::AuthNMappingTeamAttributes, + ) -> Self { + self.attributes = Some(value); + self + } + + pub fn id(mut self, value: String) -> Self { + self.id = Some(value); + self + } + + pub fn type_(mut self, value: crate::datadogV2::model::TeamType) -> Self { + self.type_ = Some(value); + self + } +} + +impl Default for AuthNMappingTeam { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for AuthNMappingTeam { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct AuthNMappingTeamVisitor; + impl<'a> Visitor<'a> for AuthNMappingTeamVisitor { + type Value = AuthNMappingTeam; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut attributes: Option = + None; + let mut id: Option = None; + let mut type_: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "attributes" => { + if v.is_null() { + continue; + } + attributes = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "id" => { + if v.is_null() { + continue; + } + id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + if v.is_null() { + continue; + } + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::TeamType::UnparsedObject(_type_) => { + _unparsed = true; + } + _ => {} + } + } + } + &_ => {} + } + } + + let content = AuthNMappingTeam { + attributes, + id, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(AuthNMappingTeamVisitor) + } +} diff --git a/src/datadogV2/model/model_authn_mapping_team_attributes.rs b/src/datadogV2/model/model_authn_mapping_team_attributes.rs new file mode 100644 index 000000000..9e6ff9708 --- /dev/null +++ b/src/datadogV2/model/model_authn_mapping_team_attributes.rs @@ -0,0 +1,182 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Team attributes. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct AuthNMappingTeamAttributes { + /// Unicode representation of the avatar for the team, limited to a single grapheme + #[serde(rename = "avatar", default, with = "::serde_with::rust::double_option")] + pub avatar: Option>, + /// Banner selection for the team + #[serde(rename = "banner", default, with = "::serde_with::rust::double_option")] + pub banner: Option>, + /// The team's identifier + #[serde(rename = "handle")] + pub handle: Option, + /// The number of links belonging to the team + #[serde(rename = "link_count")] + pub link_count: Option, + /// The name of the team + #[serde(rename = "name")] + pub name: Option, + /// A brief summary of the team, derived from the `description` + #[serde( + rename = "summary", + default, + with = "::serde_with::rust::double_option" + )] + pub summary: Option>, + /// The number of users belonging to the team + #[serde(rename = "user_count")] + pub user_count: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl AuthNMappingTeamAttributes { + pub fn new() -> AuthNMappingTeamAttributes { + AuthNMappingTeamAttributes { + avatar: None, + banner: None, + handle: None, + link_count: None, + name: None, + summary: None, + user_count: None, + _unparsed: false, + } + } + + pub fn avatar(mut self, value: Option) -> Self { + self.avatar = Some(value); + self + } + + pub fn banner(mut self, value: Option) -> Self { + self.banner = Some(value); + self + } + + pub fn handle(mut self, value: String) -> Self { + self.handle = Some(value); + self + } + + pub fn link_count(mut self, value: i32) -> Self { + self.link_count = Some(value); + self + } + + pub fn name(mut self, value: String) -> Self { + self.name = Some(value); + self + } + + pub fn summary(mut self, value: Option) -> Self { + self.summary = Some(value); + self + } + + pub fn user_count(mut self, value: i32) -> Self { + self.user_count = Some(value); + self + } +} + +impl Default for AuthNMappingTeamAttributes { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for AuthNMappingTeamAttributes { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct AuthNMappingTeamAttributesVisitor; + impl<'a> Visitor<'a> for AuthNMappingTeamAttributesVisitor { + type Value = AuthNMappingTeamAttributes; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut avatar: Option> = None; + let mut banner: Option> = None; + let mut handle: Option = None; + let mut link_count: Option = None; + let mut name: Option = None; + let mut summary: Option> = None; + let mut user_count: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "avatar" => { + avatar = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "banner" => { + banner = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "handle" => { + if v.is_null() { + continue; + } + handle = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "link_count" => { + if v.is_null() { + continue; + } + link_count = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "name" => { + if v.is_null() { + continue; + } + name = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "summary" => { + summary = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "user_count" => { + if v.is_null() { + continue; + } + user_count = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = AuthNMappingTeamAttributes { + avatar, + banner, + handle, + link_count, + name, + summary, + user_count, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(AuthNMappingTeamAttributesVisitor) + } +} diff --git a/src/datadogV2/model/model_authn_mapping_update_data.rs b/src/datadogV2/model/model_authn_mapping_update_data.rs index 633cf243d..5ae4ed39c 100644 --- a/src/datadogV2/model/model_authn_mapping_update_data.rs +++ b/src/datadogV2/model/model_authn_mapping_update_data.rs @@ -17,7 +17,7 @@ pub struct AuthNMappingUpdateData { /// ID of the AuthN Mapping. #[serde(rename = "id")] pub id: String, - /// Relationship of AuthN Mapping update object to Role. + /// Relationship of AuthN Mapping update object to a Role or Team. #[serde(rename = "relationships")] pub relationships: Option, /// AuthN Mappings resource type. @@ -102,6 +102,14 @@ impl<'de> Deserialize<'de> for AuthNMappingUpdateData { } relationships = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _relationships) = relationships { + match _relationships { + crate::datadogV2::model::AuthNMappingUpdateRelationships::UnparsedObject(_relationships) => { + _unparsed = true; + }, + _ => {} + } + } } "type" => { type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); diff --git a/src/datadogV2/model/model_authn_mapping_update_relationships.rs b/src/datadogV2/model/model_authn_mapping_update_relationships.rs index 07551cd75..436b2e0fa 100644 --- a/src/datadogV2/model/model_authn_mapping_update_relationships.rs +++ b/src/datadogV2/model/model_authn_mapping_update_relationships.rs @@ -1,42 +1,16 @@ // 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 2019-Present Datadog, Inc. -use serde::de::{Error, MapAccess, Visitor}; use serde::{Deserialize, Deserializer, Serialize}; -use serde_with::skip_serializing_none; -use std::fmt::{self, Formatter}; -/// Relationship of AuthN Mapping update object to Role. +/// Relationship of AuthN Mapping update object to a Role or Team. #[non_exhaustive] -#[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] -pub struct AuthNMappingUpdateRelationships { - /// Relationship to role. - #[serde(rename = "role")] - pub role: Option, - #[serde(skip)] - #[serde(default)] - pub(crate) _unparsed: bool, -} - -impl AuthNMappingUpdateRelationships { - pub fn new() -> AuthNMappingUpdateRelationships { - AuthNMappingUpdateRelationships { - role: None, - _unparsed: false, - } - } - - pub fn role(mut self, value: crate::datadogV2::model::RelationshipToRole) -> Self { - self.role = Some(value); - self - } -} - -impl Default for AuthNMappingUpdateRelationships { - fn default() -> Self { - Self::new() - } +#[serde(untagged)] +pub enum AuthNMappingUpdateRelationships { + AuthNMappingRelationshipToRole(Box), + AuthNMappingRelationshipToTeam(Box), + UnparsedObject(crate::datadog::UnparsedObject), } impl<'de> Deserialize<'de> for AuthNMappingUpdateRelationships { @@ -44,39 +18,26 @@ impl<'de> Deserialize<'de> for AuthNMappingUpdateRelationships { where D: Deserializer<'de>, { - struct AuthNMappingUpdateRelationshipsVisitor; - impl<'a> Visitor<'a> for AuthNMappingUpdateRelationshipsVisitor { - type Value = AuthNMappingUpdateRelationships; - - fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { - f.write_str("a mapping") + let value: serde_json::Value = Deserialize::deserialize(deserializer)?; + if let Ok(_v) = serde_json::from_value::< + Box, + >(value.clone()) + { + if !_v._unparsed { + return Ok(AuthNMappingUpdateRelationships::AuthNMappingRelationshipToRole(_v)); } - - fn visit_map(self, mut map: M) -> Result - where - M: MapAccess<'a>, - { - let mut role: Option = None; - let mut _unparsed = false; - - while let Some((k, v)) = map.next_entry::()? { - match k.as_str() { - "role" => { - if v.is_null() { - continue; - } - role = Some(serde_json::from_value(v).map_err(M::Error::custom)?); - } - &_ => {} - } - } - - let content = AuthNMappingUpdateRelationships { role, _unparsed }; - - Ok(content) + } + if let Ok(_v) = serde_json::from_value::< + Box, + >(value.clone()) + { + if !_v._unparsed { + return Ok(AuthNMappingUpdateRelationships::AuthNMappingRelationshipToTeam(_v)); } } - deserializer.deserialize_any(AuthNMappingUpdateRelationshipsVisitor) + return Ok(AuthNMappingUpdateRelationships::UnparsedObject( + crate::datadog::UnparsedObject { value }, + )); } } diff --git a/src/datadogV2/model/model_case.rs b/src/datadogV2/model/model_case.rs new file mode 100644 index 000000000..4a7af2aeb --- /dev/null +++ b/src/datadogV2/model/model_case.rs @@ -0,0 +1,124 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// A case +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct Case { + /// Case attributes + #[serde(rename = "attributes")] + pub attributes: crate::datadogV2::model::CaseAttributes, + /// Case's identifier + #[serde(rename = "id")] + pub id: String, + /// Resources related to a case + #[serde(rename = "relationships")] + pub relationships: Option, + /// Case resource type + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::CaseResourceType, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl Case { + pub fn new( + attributes: crate::datadogV2::model::CaseAttributes, + id: String, + type_: crate::datadogV2::model::CaseResourceType, + ) -> Case { + Case { + attributes, + id, + relationships: None, + type_, + _unparsed: false, + } + } + + pub fn relationships(mut self, value: crate::datadogV2::model::CaseRelationships) -> Self { + self.relationships = Some(value); + self + } +} + +impl<'de> Deserialize<'de> for Case { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CaseVisitor; + impl<'a> Visitor<'a> for CaseVisitor { + type Value = Case; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut attributes: Option = None; + let mut id: Option = None; + let mut relationships: Option = None; + let mut type_: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "attributes" => { + attributes = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "id" => { + id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "relationships" => { + if v.is_null() { + continue; + } + relationships = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::CaseResourceType::UnparsedObject( + _type_, + ) => { + _unparsed = true; + } + _ => {} + } + } + } + &_ => {} + } + } + let attributes = attributes.ok_or_else(|| M::Error::missing_field("attributes"))?; + let id = id.ok_or_else(|| M::Error::missing_field("id"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = Case { + attributes, + id, + relationships, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(CaseVisitor) + } +} diff --git a/src/datadogV2/model/model_case3rd_party_ticket_status.rs b/src/datadogV2/model/model_case3rd_party_ticket_status.rs new file mode 100644 index 000000000..5154f4465 --- /dev/null +++ b/src/datadogV2/model/model_case3rd_party_ticket_status.rs @@ -0,0 +1,54 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum Case3rdPartyTicketStatus { + IN_PROGRESS, + COMPLETED, + FAILED, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for Case3rdPartyTicketStatus { + fn to_string(&self) -> String { + match self { + Self::IN_PROGRESS => String::from("IN_PROGRESS"), + Self::COMPLETED => String::from("COMPLETED"), + Self::FAILED => String::from("FAILED"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for Case3rdPartyTicketStatus { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for Case3rdPartyTicketStatus { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "IN_PROGRESS" => Self::IN_PROGRESS, + "COMPLETED" => Self::COMPLETED, + "FAILED" => Self::FAILED, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_case_assign.rs b/src/datadogV2/model/model_case_assign.rs new file mode 100644 index 000000000..5f4b85491 --- /dev/null +++ b/src/datadogV2/model/model_case_assign.rs @@ -0,0 +1,95 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Case assign +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CaseAssign { + /// Case assign attributes + #[serde(rename = "attributes")] + pub attributes: crate::datadogV2::model::CaseAssignAttributes, + /// Case resource type + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::CaseResourceType, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CaseAssign { + pub fn new( + attributes: crate::datadogV2::model::CaseAssignAttributes, + type_: crate::datadogV2::model::CaseResourceType, + ) -> CaseAssign { + CaseAssign { + attributes, + type_, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for CaseAssign { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CaseAssignVisitor; + impl<'a> Visitor<'a> for CaseAssignVisitor { + type Value = CaseAssign; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut attributes: Option = None; + let mut type_: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "attributes" => { + attributes = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::CaseResourceType::UnparsedObject( + _type_, + ) => { + _unparsed = true; + } + _ => {} + } + } + } + &_ => {} + } + } + let attributes = attributes.ok_or_else(|| M::Error::missing_field("attributes"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = CaseAssign { + attributes, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(CaseAssignVisitor) + } +} diff --git a/src/datadogV2/model/model_case_assign_attributes.rs b/src/datadogV2/model/model_case_assign_attributes.rs new file mode 100644 index 000000000..58350c7dd --- /dev/null +++ b/src/datadogV2/model/model_case_assign_attributes.rs @@ -0,0 +1,74 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Case assign attributes +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CaseAssignAttributes { + /// Assignee's UUID + #[serde(rename = "assignee_id")] + pub assignee_id: String, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CaseAssignAttributes { + pub fn new(assignee_id: String) -> CaseAssignAttributes { + CaseAssignAttributes { + assignee_id, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for CaseAssignAttributes { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CaseAssignAttributesVisitor; + impl<'a> Visitor<'a> for CaseAssignAttributesVisitor { + type Value = CaseAssignAttributes; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut assignee_id: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "assignee_id" => { + assignee_id = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + let assignee_id = + assignee_id.ok_or_else(|| M::Error::missing_field("assignee_id"))?; + + let content = CaseAssignAttributes { + assignee_id, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(CaseAssignAttributesVisitor) + } +} diff --git a/src/datadogV2/model/model_case_assign_request.rs b/src/datadogV2/model/model_case_assign_request.rs new file mode 100644 index 000000000..0eb563a20 --- /dev/null +++ b/src/datadogV2/model/model_case_assign_request.rs @@ -0,0 +1,69 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Case assign request +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CaseAssignRequest { + /// Case assign + #[serde(rename = "data")] + pub data: crate::datadogV2::model::CaseAssign, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CaseAssignRequest { + pub fn new(data: crate::datadogV2::model::CaseAssign) -> CaseAssignRequest { + CaseAssignRequest { + data, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for CaseAssignRequest { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CaseAssignRequestVisitor; + impl<'a> Visitor<'a> for CaseAssignRequestVisitor { + type Value = CaseAssignRequest; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut data: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "data" => { + data = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + let data = data.ok_or_else(|| M::Error::missing_field("data"))?; + + let content = CaseAssignRequest { data, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(CaseAssignRequestVisitor) + } +} diff --git a/src/datadogV2/model/model_case_attributes.rs b/src/datadogV2/model/model_case_attributes.rs new file mode 100644 index 000000000..06670989c --- /dev/null +++ b/src/datadogV2/model/model_case_attributes.rs @@ -0,0 +1,314 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Case attributes +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CaseAttributes { + /// Timestamp of when the case was archived + #[serde( + rename = "archived_at", + default, + with = "::serde_with::rust::double_option" + )] + pub archived_at: Option>, + /// Timestamp of when the case was closed + #[serde( + rename = "closed_at", + default, + with = "::serde_with::rust::double_option" + )] + pub closed_at: Option>, + /// Timestamp of when the case was created + #[serde(rename = "created_at")] + pub created_at: Option, + /// Description + #[serde(rename = "description")] + pub description: Option, + /// Jira issue attached to case + #[serde( + rename = "jira_issue", + default, + with = "::serde_with::rust::double_option" + )] + pub jira_issue: Option>, + /// Key + #[serde(rename = "key")] + pub key: Option, + /// Timestamp of when the case was last modified + #[serde( + rename = "modified_at", + default, + with = "::serde_with::rust::double_option" + )] + pub modified_at: Option>, + /// Case priority + #[serde(rename = "priority")] + pub priority: Option, + /// ServiceNow ticket attached to case + #[serde( + rename = "service_now_ticket", + default, + with = "::serde_with::rust::double_option" + )] + pub service_now_ticket: Option>, + /// Case status + #[serde(rename = "status")] + pub status: Option, + /// Title + #[serde(rename = "title")] + pub title: Option, + /// Case type + #[serde(rename = "type")] + pub type_: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CaseAttributes { + pub fn new() -> CaseAttributes { + CaseAttributes { + archived_at: None, + closed_at: None, + created_at: None, + description: None, + jira_issue: None, + key: None, + modified_at: None, + priority: None, + service_now_ticket: None, + status: None, + title: None, + type_: None, + _unparsed: false, + } + } + + pub fn archived_at(mut self, value: Option) -> Self { + self.archived_at = Some(value); + self + } + + pub fn closed_at(mut self, value: Option) -> Self { + self.closed_at = Some(value); + self + } + + pub fn created_at(mut self, value: String) -> Self { + self.created_at = Some(value); + self + } + + pub fn description(mut self, value: String) -> Self { + self.description = Some(value); + self + } + + pub fn jira_issue(mut self, value: Option) -> Self { + self.jira_issue = Some(value); + self + } + + pub fn key(mut self, value: String) -> Self { + self.key = Some(value); + self + } + + pub fn modified_at(mut self, value: Option) -> Self { + self.modified_at = Some(value); + self + } + + pub fn priority(mut self, value: crate::datadogV2::model::CasePriority) -> Self { + self.priority = Some(value); + self + } + + pub fn service_now_ticket( + mut self, + value: Option, + ) -> Self { + self.service_now_ticket = Some(value); + self + } + + pub fn status(mut self, value: crate::datadogV2::model::CaseStatus) -> Self { + self.status = Some(value); + self + } + + pub fn title(mut self, value: String) -> Self { + self.title = Some(value); + self + } + + pub fn type_(mut self, value: crate::datadogV2::model::CaseType) -> Self { + self.type_ = Some(value); + self + } +} + +impl Default for CaseAttributes { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for CaseAttributes { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CaseAttributesVisitor; + impl<'a> Visitor<'a> for CaseAttributesVisitor { + type Value = CaseAttributes; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut archived_at: Option> = None; + let mut closed_at: Option> = None; + let mut created_at: Option = None; + let mut description: Option = None; + let mut jira_issue: Option> = None; + let mut key: Option = None; + let mut modified_at: Option> = None; + let mut priority: Option = None; + let mut service_now_ticket: Option< + Option, + > = None; + let mut status: Option = None; + let mut title: Option = None; + let mut type_: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "archived_at" => { + archived_at = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "closed_at" => { + closed_at = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "created_at" => { + if v.is_null() { + continue; + } + created_at = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "description" => { + if v.is_null() { + continue; + } + description = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "jira_issue" => { + jira_issue = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "key" => { + if v.is_null() { + continue; + } + key = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "modified_at" => { + modified_at = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "priority" => { + if v.is_null() { + continue; + } + priority = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _priority) = priority { + match _priority { + crate::datadogV2::model::CasePriority::UnparsedObject( + _priority, + ) => { + _unparsed = true; + } + _ => {} + } + } + } + "service_now_ticket" => { + service_now_ticket = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "status" => { + if v.is_null() { + continue; + } + status = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _status) = status { + match _status { + crate::datadogV2::model::CaseStatus::UnparsedObject( + _status, + ) => { + _unparsed = true; + } + _ => {} + } + } + } + "title" => { + if v.is_null() { + continue; + } + title = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + if v.is_null() { + continue; + } + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::CaseType::UnparsedObject(_type_) => { + _unparsed = true; + } + _ => {} + } + } + } + &_ => {} + } + } + + let content = CaseAttributes { + archived_at, + closed_at, + created_at, + description, + jira_issue, + key, + modified_at, + priority, + service_now_ticket, + status, + title, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(CaseAttributesVisitor) + } +} diff --git a/src/datadogV2/model/model_case_create.rs b/src/datadogV2/model/model_case_create.rs new file mode 100644 index 000000000..80154aee9 --- /dev/null +++ b/src/datadogV2/model/model_case_create.rs @@ -0,0 +1,117 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Case creation data +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CaseCreate { + /// Case creation attributes + #[serde(rename = "attributes")] + pub attributes: crate::datadogV2::model::CaseCreateAttributes, + /// Relationships formed with the case on creation + #[serde(rename = "relationships")] + pub relationships: Option, + /// Case resource type + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::CaseResourceType, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CaseCreate { + pub fn new( + attributes: crate::datadogV2::model::CaseCreateAttributes, + type_: crate::datadogV2::model::CaseResourceType, + ) -> CaseCreate { + CaseCreate { + attributes, + relationships: None, + type_, + _unparsed: false, + } + } + + pub fn relationships( + mut self, + value: crate::datadogV2::model::CaseCreateRelationships, + ) -> Self { + self.relationships = Some(value); + self + } +} + +impl<'de> Deserialize<'de> for CaseCreate { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CaseCreateVisitor; + impl<'a> Visitor<'a> for CaseCreateVisitor { + type Value = CaseCreate; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut attributes: Option = None; + let mut relationships: Option = + None; + let mut type_: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "attributes" => { + attributes = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "relationships" => { + if v.is_null() { + continue; + } + relationships = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::CaseResourceType::UnparsedObject( + _type_, + ) => { + _unparsed = true; + } + _ => {} + } + } + } + &_ => {} + } + } + let attributes = attributes.ok_or_else(|| M::Error::missing_field("attributes"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = CaseCreate { + attributes, + relationships, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(CaseCreateVisitor) + } +} diff --git a/src/datadogV2/model/model_case_create_attributes.rs b/src/datadogV2/model/model_case_create_attributes.rs new file mode 100644 index 000000000..55ec84599 --- /dev/null +++ b/src/datadogV2/model/model_case_create_attributes.rs @@ -0,0 +1,135 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Case creation attributes +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CaseCreateAttributes { + /// Description + #[serde(rename = "description")] + pub description: Option, + /// Case priority + #[serde(rename = "priority")] + pub priority: Option, + /// Title + #[serde(rename = "title")] + pub title: String, + /// Case type + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::CaseType, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CaseCreateAttributes { + pub fn new(title: String, type_: crate::datadogV2::model::CaseType) -> CaseCreateAttributes { + CaseCreateAttributes { + description: None, + priority: None, + title, + type_, + _unparsed: false, + } + } + + pub fn description(mut self, value: String) -> Self { + self.description = Some(value); + self + } + + pub fn priority(mut self, value: crate::datadogV2::model::CasePriority) -> Self { + self.priority = Some(value); + self + } +} + +impl<'de> Deserialize<'de> for CaseCreateAttributes { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CaseCreateAttributesVisitor; + impl<'a> Visitor<'a> for CaseCreateAttributesVisitor { + type Value = CaseCreateAttributes; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut description: Option = None; + let mut priority: Option = None; + let mut title: Option = None; + let mut type_: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "description" => { + if v.is_null() { + continue; + } + description = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "priority" => { + if v.is_null() { + continue; + } + priority = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _priority) = priority { + match _priority { + crate::datadogV2::model::CasePriority::UnparsedObject( + _priority, + ) => { + _unparsed = true; + } + _ => {} + } + } + } + "title" => { + title = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::CaseType::UnparsedObject(_type_) => { + _unparsed = true; + } + _ => {} + } + } + } + &_ => {} + } + } + let title = title.ok_or_else(|| M::Error::missing_field("title"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = CaseCreateAttributes { + description, + priority, + title, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(CaseCreateAttributesVisitor) + } +} diff --git a/src/datadogV2/model/model_case_create_relationships.rs b/src/datadogV2/model/model_case_create_relationships.rs new file mode 100644 index 000000000..9a7d96367 --- /dev/null +++ b/src/datadogV2/model/model_case_create_relationships.rs @@ -0,0 +1,95 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Relationships formed with the case on creation +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CaseCreateRelationships { + /// Relationship to user. + #[serde( + rename = "assignee", + default, + with = "::serde_with::rust::double_option" + )] + pub assignee: Option>, + /// Relationship to project + #[serde(rename = "project")] + pub project: crate::datadogV2::model::ProjectRelationship, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CaseCreateRelationships { + pub fn new(project: crate::datadogV2::model::ProjectRelationship) -> CaseCreateRelationships { + CaseCreateRelationships { + assignee: None, + project, + _unparsed: false, + } + } + + pub fn assignee( + mut self, + value: Option, + ) -> Self { + self.assignee = Some(value); + self + } +} + +impl<'de> Deserialize<'de> for CaseCreateRelationships { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CaseCreateRelationshipsVisitor; + impl<'a> Visitor<'a> for CaseCreateRelationshipsVisitor { + type Value = CaseCreateRelationships; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut assignee: Option< + Option, + > = None; + let mut project: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "assignee" => { + assignee = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "project" => { + project = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + let project = project.ok_or_else(|| M::Error::missing_field("project"))?; + + let content = CaseCreateRelationships { + assignee, + project, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(CaseCreateRelationshipsVisitor) + } +} diff --git a/src/datadogV2/model/model_case_create_request.rs b/src/datadogV2/model/model_case_create_request.rs new file mode 100644 index 000000000..01d2374ac --- /dev/null +++ b/src/datadogV2/model/model_case_create_request.rs @@ -0,0 +1,69 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Case create request +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CaseCreateRequest { + /// Case creation data + #[serde(rename = "data")] + pub data: crate::datadogV2::model::CaseCreate, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CaseCreateRequest { + pub fn new(data: crate::datadogV2::model::CaseCreate) -> CaseCreateRequest { + CaseCreateRequest { + data, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for CaseCreateRequest { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CaseCreateRequestVisitor; + impl<'a> Visitor<'a> for CaseCreateRequestVisitor { + type Value = CaseCreateRequest; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut data: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "data" => { + data = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + let data = data.ok_or_else(|| M::Error::missing_field("data"))?; + + let content = CaseCreateRequest { data, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(CaseCreateRequestVisitor) + } +} diff --git a/src/datadogV2/model/model_case_empty.rs b/src/datadogV2/model/model_case_empty.rs new file mode 100644 index 000000000..2dea0eaef --- /dev/null +++ b/src/datadogV2/model/model_case_empty.rs @@ -0,0 +1,79 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Case empty request data +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CaseEmpty { + /// Case resource type + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::CaseResourceType, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CaseEmpty { + pub fn new(type_: crate::datadogV2::model::CaseResourceType) -> CaseEmpty { + CaseEmpty { + type_, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for CaseEmpty { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CaseEmptyVisitor; + impl<'a> Visitor<'a> for CaseEmptyVisitor { + type Value = CaseEmpty; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut type_: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::CaseResourceType::UnparsedObject( + _type_, + ) => { + _unparsed = true; + } + _ => {} + } + } + } + &_ => {} + } + } + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = CaseEmpty { type_, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(CaseEmptyVisitor) + } +} diff --git a/src/datadogV2/model/model_case_empty_request.rs b/src/datadogV2/model/model_case_empty_request.rs new file mode 100644 index 000000000..92cd6055f --- /dev/null +++ b/src/datadogV2/model/model_case_empty_request.rs @@ -0,0 +1,69 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Case empty request +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CaseEmptyRequest { + /// Case empty request data + #[serde(rename = "data")] + pub data: crate::datadogV2::model::CaseEmpty, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CaseEmptyRequest { + pub fn new(data: crate::datadogV2::model::CaseEmpty) -> CaseEmptyRequest { + CaseEmptyRequest { + data, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for CaseEmptyRequest { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CaseEmptyRequestVisitor; + impl<'a> Visitor<'a> for CaseEmptyRequestVisitor { + type Value = CaseEmptyRequest; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut data: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "data" => { + data = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + let data = data.ok_or_else(|| M::Error::missing_field("data"))?; + + let content = CaseEmptyRequest { data, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(CaseEmptyRequestVisitor) + } +} diff --git a/src/datadogV2/model/model_case_priority.rs b/src/datadogV2/model/model_case_priority.rs new file mode 100644 index 000000000..bd1c7eea3 --- /dev/null +++ b/src/datadogV2/model/model_case_priority.rs @@ -0,0 +1,63 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum CasePriority { + NOT_DEFINED, + P1, + P2, + P3, + P4, + P5, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for CasePriority { + fn to_string(&self) -> String { + match self { + Self::NOT_DEFINED => String::from("NOT_DEFINED"), + Self::P1 => String::from("P1"), + Self::P2 => String::from("P2"), + Self::P3 => String::from("P3"), + Self::P4 => String::from("P4"), + Self::P5 => String::from("P5"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for CasePriority { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for CasePriority { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "NOT_DEFINED" => Self::NOT_DEFINED, + "P1" => Self::P1, + "P2" => Self::P2, + "P3" => Self::P3, + "P4" => Self::P4, + "P5" => Self::P5, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_case_relationships.rs b/src/datadogV2/model/model_case_relationships.rs new file mode 100644 index 000000000..5d28ab4a6 --- /dev/null +++ b/src/datadogV2/model/model_case_relationships.rs @@ -0,0 +1,155 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Resources related to a case +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CaseRelationships { + /// Relationship to user. + #[serde( + rename = "assignee", + default, + with = "::serde_with::rust::double_option" + )] + pub assignee: Option>, + /// Relationship to user. + #[serde( + rename = "created_by", + default, + with = "::serde_with::rust::double_option" + )] + pub created_by: Option>, + /// Relationship to user. + #[serde( + rename = "modified_by", + default, + with = "::serde_with::rust::double_option" + )] + pub modified_by: Option>, + /// Relationship to project + #[serde(rename = "project")] + pub project: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CaseRelationships { + pub fn new() -> CaseRelationships { + CaseRelationships { + assignee: None, + created_by: None, + modified_by: None, + project: None, + _unparsed: false, + } + } + + pub fn assignee( + mut self, + value: Option, + ) -> Self { + self.assignee = Some(value); + self + } + + pub fn created_by( + mut self, + value: Option, + ) -> Self { + self.created_by = Some(value); + self + } + + pub fn modified_by( + mut self, + value: Option, + ) -> Self { + self.modified_by = Some(value); + self + } + + pub fn project(mut self, value: crate::datadogV2::model::ProjectRelationship) -> Self { + self.project = Some(value); + self + } +} + +impl Default for CaseRelationships { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for CaseRelationships { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CaseRelationshipsVisitor; + impl<'a> Visitor<'a> for CaseRelationshipsVisitor { + type Value = CaseRelationships; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut assignee: Option< + Option, + > = None; + let mut created_by: Option< + Option, + > = None; + let mut modified_by: Option< + Option, + > = None; + let mut project: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "assignee" => { + assignee = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "created_by" => { + created_by = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "modified_by" => { + modified_by = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "project" => { + if v.is_null() { + continue; + } + project = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = CaseRelationships { + assignee, + created_by, + modified_by, + project, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(CaseRelationshipsVisitor) + } +} diff --git a/src/datadogV2/model/model_case_resource_type.rs b/src/datadogV2/model/model_case_resource_type.rs new file mode 100644 index 000000000..cf38f70bb --- /dev/null +++ b/src/datadogV2/model/model_case_resource_type.rs @@ -0,0 +1,48 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum CaseResourceType { + CASE, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for CaseResourceType { + fn to_string(&self) -> String { + match self { + Self::CASE => String::from("case"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for CaseResourceType { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for CaseResourceType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "case" => Self::CASE, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_case_response.rs b/src/datadogV2/model/model_case_response.rs new file mode 100644 index 000000000..364193a59 --- /dev/null +++ b/src/datadogV2/model/model_case_response.rs @@ -0,0 +1,82 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Case response +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CaseResponse { + /// A case + #[serde(rename = "data")] + pub data: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CaseResponse { + pub fn new() -> CaseResponse { + CaseResponse { + data: None, + _unparsed: false, + } + } + + pub fn data(mut self, value: crate::datadogV2::model::Case) -> Self { + self.data = Some(value); + self + } +} + +impl Default for CaseResponse { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for CaseResponse { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CaseResponseVisitor; + impl<'a> Visitor<'a> for CaseResponseVisitor { + type Value = CaseResponse; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut data: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "data" => { + if v.is_null() { + continue; + } + data = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = CaseResponse { data, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(CaseResponseVisitor) + } +} diff --git a/src/datadogV2/model/model_case_sortable_field.rs b/src/datadogV2/model/model_case_sortable_field.rs new file mode 100644 index 000000000..8ce3b531f --- /dev/null +++ b/src/datadogV2/model/model_case_sortable_field.rs @@ -0,0 +1,54 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum CaseSortableField { + CREATED_AT, + PRIORITY, + STATUS, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for CaseSortableField { + fn to_string(&self) -> String { + match self { + Self::CREATED_AT => String::from("created_at"), + Self::PRIORITY => String::from("priority"), + Self::STATUS => String::from("status"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for CaseSortableField { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for CaseSortableField { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "created_at" => Self::CREATED_AT, + "priority" => Self::PRIORITY, + "status" => Self::STATUS, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_case_status.rs b/src/datadogV2/model/model_case_status.rs new file mode 100644 index 000000000..f9974d05f --- /dev/null +++ b/src/datadogV2/model/model_case_status.rs @@ -0,0 +1,54 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum CaseStatus { + OPEN, + IN_PROGRESS, + CLOSED, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for CaseStatus { + fn to_string(&self) -> String { + match self { + Self::OPEN => String::from("OPEN"), + Self::IN_PROGRESS => String::from("IN_PROGRESS"), + Self::CLOSED => String::from("CLOSED"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for CaseStatus { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for CaseStatus { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "OPEN" => Self::OPEN, + "IN_PROGRESS" => Self::IN_PROGRESS, + "CLOSED" => Self::CLOSED, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_case_type.rs b/src/datadogV2/model/model_case_type.rs new file mode 100644 index 000000000..0ac568c56 --- /dev/null +++ b/src/datadogV2/model/model_case_type.rs @@ -0,0 +1,48 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum CaseType { + STANDARD, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for CaseType { + fn to_string(&self) -> String { + match self { + Self::STANDARD => String::from("STANDARD"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for CaseType { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for CaseType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "STANDARD" => Self::STANDARD, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_case_update_priority.rs b/src/datadogV2/model/model_case_update_priority.rs new file mode 100644 index 000000000..ac9bef099 --- /dev/null +++ b/src/datadogV2/model/model_case_update_priority.rs @@ -0,0 +1,96 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Case priority status +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CaseUpdatePriority { + /// Case update priority attributes + #[serde(rename = "attributes")] + pub attributes: crate::datadogV2::model::CaseUpdatePriorityAttributes, + /// Case resource type + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::CaseResourceType, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CaseUpdatePriority { + pub fn new( + attributes: crate::datadogV2::model::CaseUpdatePriorityAttributes, + type_: crate::datadogV2::model::CaseResourceType, + ) -> CaseUpdatePriority { + CaseUpdatePriority { + attributes, + type_, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for CaseUpdatePriority { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CaseUpdatePriorityVisitor; + impl<'a> Visitor<'a> for CaseUpdatePriorityVisitor { + type Value = CaseUpdatePriority; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut attributes: Option = + None; + let mut type_: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "attributes" => { + attributes = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::CaseResourceType::UnparsedObject( + _type_, + ) => { + _unparsed = true; + } + _ => {} + } + } + } + &_ => {} + } + } + let attributes = attributes.ok_or_else(|| M::Error::missing_field("attributes"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = CaseUpdatePriority { + attributes, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(CaseUpdatePriorityVisitor) + } +} diff --git a/src/datadogV2/model/model_case_update_priority_attributes.rs b/src/datadogV2/model/model_case_update_priority_attributes.rs new file mode 100644 index 000000000..e73df7f30 --- /dev/null +++ b/src/datadogV2/model/model_case_update_priority_attributes.rs @@ -0,0 +1,82 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Case update priority attributes +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CaseUpdatePriorityAttributes { + /// Case priority + #[serde(rename = "priority")] + pub priority: crate::datadogV2::model::CasePriority, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CaseUpdatePriorityAttributes { + pub fn new(priority: crate::datadogV2::model::CasePriority) -> CaseUpdatePriorityAttributes { + CaseUpdatePriorityAttributes { + priority, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for CaseUpdatePriorityAttributes { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CaseUpdatePriorityAttributesVisitor; + impl<'a> Visitor<'a> for CaseUpdatePriorityAttributesVisitor { + type Value = CaseUpdatePriorityAttributes; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut priority: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "priority" => { + priority = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _priority) = priority { + match _priority { + crate::datadogV2::model::CasePriority::UnparsedObject( + _priority, + ) => { + _unparsed = true; + } + _ => {} + } + } + } + &_ => {} + } + } + let priority = priority.ok_or_else(|| M::Error::missing_field("priority"))?; + + let content = CaseUpdatePriorityAttributes { + priority, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(CaseUpdatePriorityAttributesVisitor) + } +} diff --git a/src/datadogV2/model/model_case_update_priority_request.rs b/src/datadogV2/model/model_case_update_priority_request.rs new file mode 100644 index 000000000..fa7147c8d --- /dev/null +++ b/src/datadogV2/model/model_case_update_priority_request.rs @@ -0,0 +1,69 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Case update priority request +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CaseUpdatePriorityRequest { + /// Case priority status + #[serde(rename = "data")] + pub data: crate::datadogV2::model::CaseUpdatePriority, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CaseUpdatePriorityRequest { + pub fn new(data: crate::datadogV2::model::CaseUpdatePriority) -> CaseUpdatePriorityRequest { + CaseUpdatePriorityRequest { + data, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for CaseUpdatePriorityRequest { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CaseUpdatePriorityRequestVisitor; + impl<'a> Visitor<'a> for CaseUpdatePriorityRequestVisitor { + type Value = CaseUpdatePriorityRequest; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut data: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "data" => { + data = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + let data = data.ok_or_else(|| M::Error::missing_field("data"))?; + + let content = CaseUpdatePriorityRequest { data, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(CaseUpdatePriorityRequestVisitor) + } +} diff --git a/src/datadogV2/model/model_case_update_status.rs b/src/datadogV2/model/model_case_update_status.rs new file mode 100644 index 000000000..7ba3a551f --- /dev/null +++ b/src/datadogV2/model/model_case_update_status.rs @@ -0,0 +1,96 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Case update status +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CaseUpdateStatus { + /// Case update status attributes + #[serde(rename = "attributes")] + pub attributes: crate::datadogV2::model::CaseUpdateStatusAttributes, + /// Case resource type + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::CaseResourceType, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CaseUpdateStatus { + pub fn new( + attributes: crate::datadogV2::model::CaseUpdateStatusAttributes, + type_: crate::datadogV2::model::CaseResourceType, + ) -> CaseUpdateStatus { + CaseUpdateStatus { + attributes, + type_, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for CaseUpdateStatus { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CaseUpdateStatusVisitor; + impl<'a> Visitor<'a> for CaseUpdateStatusVisitor { + type Value = CaseUpdateStatus; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut attributes: Option = + None; + let mut type_: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "attributes" => { + attributes = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::CaseResourceType::UnparsedObject( + _type_, + ) => { + _unparsed = true; + } + _ => {} + } + } + } + &_ => {} + } + } + let attributes = attributes.ok_or_else(|| M::Error::missing_field("attributes"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = CaseUpdateStatus { + attributes, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(CaseUpdateStatusVisitor) + } +} diff --git a/src/datadogV2/model/model_case_update_status_attributes.rs b/src/datadogV2/model/model_case_update_status_attributes.rs new file mode 100644 index 000000000..2e3f18b63 --- /dev/null +++ b/src/datadogV2/model/model_case_update_status_attributes.rs @@ -0,0 +1,79 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Case update status attributes +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CaseUpdateStatusAttributes { + /// Case status + #[serde(rename = "status")] + pub status: crate::datadogV2::model::CaseStatus, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CaseUpdateStatusAttributes { + pub fn new(status: crate::datadogV2::model::CaseStatus) -> CaseUpdateStatusAttributes { + CaseUpdateStatusAttributes { + status, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for CaseUpdateStatusAttributes { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CaseUpdateStatusAttributesVisitor; + impl<'a> Visitor<'a> for CaseUpdateStatusAttributesVisitor { + type Value = CaseUpdateStatusAttributes; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut status: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "status" => { + status = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _status) = status { + match _status { + crate::datadogV2::model::CaseStatus::UnparsedObject( + _status, + ) => { + _unparsed = true; + } + _ => {} + } + } + } + &_ => {} + } + } + let status = status.ok_or_else(|| M::Error::missing_field("status"))?; + + let content = CaseUpdateStatusAttributes { status, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(CaseUpdateStatusAttributesVisitor) + } +} diff --git a/src/datadogV2/model/model_case_update_status_request.rs b/src/datadogV2/model/model_case_update_status_request.rs new file mode 100644 index 000000000..415a7ab96 --- /dev/null +++ b/src/datadogV2/model/model_case_update_status_request.rs @@ -0,0 +1,69 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Case update status request +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CaseUpdateStatusRequest { + /// Case update status + #[serde(rename = "data")] + pub data: crate::datadogV2::model::CaseUpdateStatus, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CaseUpdateStatusRequest { + pub fn new(data: crate::datadogV2::model::CaseUpdateStatus) -> CaseUpdateStatusRequest { + CaseUpdateStatusRequest { + data, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for CaseUpdateStatusRequest { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CaseUpdateStatusRequestVisitor; + impl<'a> Visitor<'a> for CaseUpdateStatusRequestVisitor { + type Value = CaseUpdateStatusRequest; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut data: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "data" => { + data = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + let data = data.ok_or_else(|| M::Error::missing_field("data"))?; + + let content = CaseUpdateStatusRequest { data, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(CaseUpdateStatusRequestVisitor) + } +} diff --git a/src/datadogV2/model/model_cases_response.rs b/src/datadogV2/model/model_cases_response.rs new file mode 100644 index 000000000..ed3c5d1c7 --- /dev/null +++ b/src/datadogV2/model/model_cases_response.rs @@ -0,0 +1,102 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Response with cases +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CasesResponse { + /// Cases response data + #[serde(rename = "data")] + pub data: Option>, + /// Cases response metadata + #[serde(rename = "meta")] + pub meta: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CasesResponse { + pub fn new() -> CasesResponse { + CasesResponse { + data: None, + meta: None, + _unparsed: false, + } + } + + pub fn data(mut self, value: Vec) -> Self { + self.data = Some(value); + self + } + + pub fn meta(mut self, value: crate::datadogV2::model::CasesResponseMeta) -> Self { + self.meta = Some(value); + self + } +} + +impl Default for CasesResponse { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for CasesResponse { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CasesResponseVisitor; + impl<'a> Visitor<'a> for CasesResponseVisitor { + type Value = CasesResponse; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut data: Option> = None; + let mut meta: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "data" => { + if v.is_null() { + continue; + } + data = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "meta" => { + if v.is_null() { + continue; + } + meta = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = CasesResponse { + data, + meta, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(CasesResponseVisitor) + } +} diff --git a/src/datadogV2/model/model_cases_response_meta.rs b/src/datadogV2/model/model_cases_response_meta.rs new file mode 100644 index 000000000..b6e53e3e0 --- /dev/null +++ b/src/datadogV2/model/model_cases_response_meta.rs @@ -0,0 +1,82 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Cases response metadata +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CasesResponseMeta { + /// Pagination metadata + #[serde(rename = "page")] + pub page: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CasesResponseMeta { + pub fn new() -> CasesResponseMeta { + CasesResponseMeta { + page: None, + _unparsed: false, + } + } + + pub fn page(mut self, value: crate::datadogV2::model::CasesResponseMetaPagination) -> Self { + self.page = Some(value); + self + } +} + +impl Default for CasesResponseMeta { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for CasesResponseMeta { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CasesResponseMetaVisitor; + impl<'a> Visitor<'a> for CasesResponseMetaVisitor { + type Value = CasesResponseMeta; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut page: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "page" => { + if v.is_null() { + continue; + } + page = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = CasesResponseMeta { page, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(CasesResponseMetaVisitor) + } +} diff --git a/src/datadogV2/model/model_cases_response_meta_pagination.rs b/src/datadogV2/model/model_cases_response_meta_pagination.rs new file mode 100644 index 000000000..15f358fa7 --- /dev/null +++ b/src/datadogV2/model/model_cases_response_meta_pagination.rs @@ -0,0 +1,119 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Pagination metadata +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CasesResponseMetaPagination { + /// Current page number + #[serde(rename = "current")] + pub current: Option, + /// Number of cases in current page + #[serde(rename = "size")] + pub size: Option, + /// Total number of pages + #[serde(rename = "total")] + pub total: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CasesResponseMetaPagination { + pub fn new() -> CasesResponseMetaPagination { + CasesResponseMetaPagination { + current: None, + size: None, + total: None, + _unparsed: false, + } + } + + pub fn current(mut self, value: i64) -> Self { + self.current = Some(value); + self + } + + pub fn size(mut self, value: i64) -> Self { + self.size = Some(value); + self + } + + pub fn total(mut self, value: i64) -> Self { + self.total = Some(value); + self + } +} + +impl Default for CasesResponseMetaPagination { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for CasesResponseMetaPagination { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CasesResponseMetaPaginationVisitor; + impl<'a> Visitor<'a> for CasesResponseMetaPaginationVisitor { + type Value = CasesResponseMetaPagination; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut current: Option = None; + let mut size: Option = None; + let mut total: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "current" => { + if v.is_null() { + continue; + } + current = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "size" => { + if v.is_null() { + continue; + } + size = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "total" => { + if v.is_null() { + continue; + } + total = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = CasesResponseMetaPagination { + current, + size, + total, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(CasesResponseMetaPaginationVisitor) + } +} diff --git a/src/datadogV2/model/model_ci_app_aggregate_sort.rs b/src/datadogV2/model/model_ci_app_aggregate_sort.rs index 7d6e96265..02d99e4a3 100644 --- a/src/datadogV2/model/model_ci_app_aggregate_sort.rs +++ b/src/datadogV2/model/model_ci_app_aggregate_sort.rs @@ -6,7 +6,7 @@ use serde::{Deserialize, Deserializer, Serialize}; use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; -/// A sort rule. +/// A sort rule. The `aggregation` field is required when `type` is `measure`. #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_ci_app_pipelines_group_by.rs b/src/datadogV2/model/model_ci_app_pipelines_group_by.rs index 62c2f4442..2189d0ef5 100644 --- a/src/datadogV2/model/model_ci_app_pipelines_group_by.rs +++ b/src/datadogV2/model/model_ci_app_pipelines_group_by.rs @@ -24,7 +24,7 @@ pub struct CIAppPipelinesGroupBy { /// The value to use for logs that don't have the facet used to group-by. #[serde(rename = "missing")] pub missing: Option, - /// A sort rule. + /// A sort rule. The `aggregation` field is required when `type` is `measure`. #[serde(rename = "sort")] pub sort: Option, /// A resulting object to put the given computes in over all the matching records. diff --git a/src/datadogV2/model/model_ci_app_tests_group_by.rs b/src/datadogV2/model/model_ci_app_tests_group_by.rs index a0ad87d82..f9de7eeb0 100644 --- a/src/datadogV2/model/model_ci_app_tests_group_by.rs +++ b/src/datadogV2/model/model_ci_app_tests_group_by.rs @@ -24,7 +24,7 @@ pub struct CIAppTestsGroupBy { /// The value to use for logs that don't have the facet used to group-by. #[serde(rename = "missing")] pub missing: Option, - /// A sort rule. + /// A sort rule. The `aggregation` field is required when `type` is `measure`. #[serde(rename = "sort")] pub sort: Option, /// A resulting object to put the given computes in over all the matching records. diff --git a/src/datadogV2/model/model_cloud_workload_security_agent_rule_action.rs b/src/datadogV2/model/model_cloud_workload_security_agent_rule_action.rs new file mode 100644 index 000000000..30e890c58 --- /dev/null +++ b/src/datadogV2/model/model_cloud_workload_security_agent_rule_action.rs @@ -0,0 +1,106 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// The action the rule can perform if triggered. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CloudWorkloadSecurityAgentRuleAction { + /// SECL expression used to target the container to apply the action on + #[serde(rename = "filter")] + pub filter: Option, + /// Kill system call applied on the container matching the rule + #[serde(rename = "kill")] + pub kill: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CloudWorkloadSecurityAgentRuleAction { + pub fn new() -> CloudWorkloadSecurityAgentRuleAction { + CloudWorkloadSecurityAgentRuleAction { + filter: None, + kill: None, + _unparsed: false, + } + } + + pub fn filter(mut self, value: String) -> Self { + self.filter = Some(value); + self + } + + pub fn kill( + mut self, + value: crate::datadogV2::model::CloudWorkloadSecurityAgentRuleKill, + ) -> Self { + self.kill = Some(value); + self + } +} + +impl Default for CloudWorkloadSecurityAgentRuleAction { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for CloudWorkloadSecurityAgentRuleAction { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CloudWorkloadSecurityAgentRuleActionVisitor; + impl<'a> Visitor<'a> for CloudWorkloadSecurityAgentRuleActionVisitor { + type Value = CloudWorkloadSecurityAgentRuleAction; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut filter: Option = None; + let mut kill: Option = + None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "filter" => { + if v.is_null() { + continue; + } + filter = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "kill" => { + if v.is_null() { + continue; + } + kill = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = CloudWorkloadSecurityAgentRuleAction { + filter, + kill, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(CloudWorkloadSecurityAgentRuleActionVisitor) + } +} diff --git a/src/datadogV2/model/model_cloud_workload_security_agent_rule_attributes.rs b/src/datadogV2/model/model_cloud_workload_security_agent_rule_attributes.rs index ec942c1b3..9abc633d4 100644 --- a/src/datadogV2/model/model_cloud_workload_security_agent_rule_attributes.rs +++ b/src/datadogV2/model/model_cloud_workload_security_agent_rule_attributes.rs @@ -11,6 +11,13 @@ use std::fmt::{self, Formatter}; #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] pub struct CloudWorkloadSecurityAgentRuleAttributes { + /// The array of actions the rule can perform if triggered. + #[serde( + rename = "actions", + default, + with = "::serde_with::rust::double_option" + )] + pub actions: Option>>, /// The version of the agent. #[serde(rename = "agentConstraint")] pub agent_constraint: Option, @@ -67,6 +74,7 @@ pub struct CloudWorkloadSecurityAgentRuleAttributes { impl CloudWorkloadSecurityAgentRuleAttributes { pub fn new() -> CloudWorkloadSecurityAgentRuleAttributes { CloudWorkloadSecurityAgentRuleAttributes { + actions: None, agent_constraint: None, category: None, creation_author_uu_id: None, @@ -87,6 +95,14 @@ impl CloudWorkloadSecurityAgentRuleAttributes { } } + pub fn actions( + mut self, + value: Option>, + ) -> Self { + self.actions = Some(value); + self + } + pub fn agent_constraint(mut self, value: String) -> Self { self.agent_constraint = Some(value); self @@ -197,6 +213,9 @@ impl<'de> Deserialize<'de> for CloudWorkloadSecurityAgentRuleAttributes { where M: MapAccess<'a>, { + let mut actions: Option< + Option>, + > = None; let mut agent_constraint: Option = None; let mut category: Option = None; let mut creation_author_uu_id: Option = None; @@ -221,6 +240,9 @@ impl<'de> Deserialize<'de> for CloudWorkloadSecurityAgentRuleAttributes { while let Some((k, v)) = map.next_entry::()? { match k.as_str() { + "actions" => { + actions = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "agentConstraint" => { if v.is_null() { continue; @@ -329,6 +351,7 @@ impl<'de> Deserialize<'de> for CloudWorkloadSecurityAgentRuleAttributes { } let content = CloudWorkloadSecurityAgentRuleAttributes { + actions, agent_constraint, category, creation_author_uu_id, diff --git a/src/datadogV2/model/model_cloud_workload_security_agent_rule_kill.rs b/src/datadogV2/model/model_cloud_workload_security_agent_rule_kill.rs new file mode 100644 index 000000000..5fbd740e1 --- /dev/null +++ b/src/datadogV2/model/model_cloud_workload_security_agent_rule_kill.rs @@ -0,0 +1,82 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Kill system call applied on the container matching the rule +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CloudWorkloadSecurityAgentRuleKill { + /// Supported signals for the kill system call. + #[serde(rename = "signal")] + pub signal: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CloudWorkloadSecurityAgentRuleKill { + pub fn new() -> CloudWorkloadSecurityAgentRuleKill { + CloudWorkloadSecurityAgentRuleKill { + signal: None, + _unparsed: false, + } + } + + pub fn signal(mut self, value: String) -> Self { + self.signal = Some(value); + self + } +} + +impl Default for CloudWorkloadSecurityAgentRuleKill { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for CloudWorkloadSecurityAgentRuleKill { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CloudWorkloadSecurityAgentRuleKillVisitor; + impl<'a> Visitor<'a> for CloudWorkloadSecurityAgentRuleKillVisitor { + type Value = CloudWorkloadSecurityAgentRuleKill; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut signal: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "signal" => { + if v.is_null() { + continue; + } + signal = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = CloudWorkloadSecurityAgentRuleKill { signal, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(CloudWorkloadSecurityAgentRuleKillVisitor) + } +} diff --git a/src/datadogV2/model/model_cloud_workload_security_agent_rule_update_data.rs b/src/datadogV2/model/model_cloud_workload_security_agent_rule_update_data.rs index e3791756c..c1fdc72be 100644 --- a/src/datadogV2/model/model_cloud_workload_security_agent_rule_update_data.rs +++ b/src/datadogV2/model/model_cloud_workload_security_agent_rule_update_data.rs @@ -14,6 +14,9 @@ pub struct CloudWorkloadSecurityAgentRuleUpdateData { /// Update an existing Cloud Workload Security Agent rule. #[serde(rename = "attributes")] pub attributes: crate::datadogV2::model::CloudWorkloadSecurityAgentRuleUpdateAttributes, + /// The ID of the agent rule. + #[serde(rename = "id")] + pub id: Option, /// The type of the resource. The value should always be `agent_rule`. #[serde(rename = "type")] pub type_: crate::datadogV2::model::CloudWorkloadSecurityAgentRuleType, @@ -29,10 +32,16 @@ impl CloudWorkloadSecurityAgentRuleUpdateData { ) -> CloudWorkloadSecurityAgentRuleUpdateData { CloudWorkloadSecurityAgentRuleUpdateData { attributes, + id: None, type_, _unparsed: false, } } + + pub fn id(mut self, value: String) -> Self { + self.id = Some(value); + self + } } impl<'de> Deserialize<'de> for CloudWorkloadSecurityAgentRuleUpdateData { @@ -55,6 +64,7 @@ impl<'de> Deserialize<'de> for CloudWorkloadSecurityAgentRuleUpdateData { let mut attributes: Option< crate::datadogV2::model::CloudWorkloadSecurityAgentRuleUpdateAttributes, > = None; + let mut id: Option = None; let mut type_: Option = None; let mut _unparsed = false; @@ -64,6 +74,12 @@ impl<'de> Deserialize<'de> for CloudWorkloadSecurityAgentRuleUpdateData { "attributes" => { attributes = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "id" => { + if v.is_null() { + continue; + } + id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "type" => { type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); if let Some(ref _type_) = type_ { @@ -83,6 +99,7 @@ impl<'de> Deserialize<'de> for CloudWorkloadSecurityAgentRuleUpdateData { let content = CloudWorkloadSecurityAgentRuleUpdateData { attributes, + id, type_, _unparsed, }; diff --git a/src/datadogV2/model/model_cloudflare_account_create_request_attributes.rs b/src/datadogV2/model/model_cloudflare_account_create_request_attributes.rs index 814abb765..edb9f064b 100644 --- a/src/datadogV2/model/model_cloudflare_account_create_request_attributes.rs +++ b/src/datadogV2/model/model_cloudflare_account_create_request_attributes.rs @@ -20,6 +20,12 @@ pub struct CloudflareAccountCreateRequestAttributes { /// The name of the Cloudflare account. #[serde(rename = "name")] pub name: String, + /// An allowlist of resources to restrict pulling metrics for. + #[serde(rename = "resources")] + pub resources: Option>, + /// An allowlist of zones to restrict pulling metrics for. + #[serde(rename = "zones")] + pub zones: Option>, #[serde(skip)] #[serde(default)] pub(crate) _unparsed: bool, @@ -31,6 +37,8 @@ impl CloudflareAccountCreateRequestAttributes { api_key, email: None, name, + resources: None, + zones: None, _unparsed: false, } } @@ -39,6 +47,16 @@ impl CloudflareAccountCreateRequestAttributes { self.email = Some(value); self } + + pub fn resources(mut self, value: Vec) -> Self { + self.resources = Some(value); + self + } + + pub fn zones(mut self, value: Vec) -> Self { + self.zones = Some(value); + self + } } impl<'de> Deserialize<'de> for CloudflareAccountCreateRequestAttributes { @@ -61,6 +79,8 @@ impl<'de> Deserialize<'de> for CloudflareAccountCreateRequestAttributes { let mut api_key: Option = None; let mut email: Option = None; let mut name: Option = None; + let mut resources: Option> = None; + let mut zones: Option> = None; let mut _unparsed = false; while let Some((k, v)) = map.next_entry::()? { @@ -77,6 +97,18 @@ impl<'de> Deserialize<'de> for CloudflareAccountCreateRequestAttributes { "name" => { name = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "resources" => { + if v.is_null() { + continue; + } + resources = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "zones" => { + if v.is_null() { + continue; + } + zones = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } &_ => {} } } @@ -87,6 +119,8 @@ impl<'de> Deserialize<'de> for CloudflareAccountCreateRequestAttributes { api_key, email, name, + resources, + zones, _unparsed, }; diff --git a/src/datadogV2/model/model_cloudflare_account_response_attributes.rs b/src/datadogV2/model/model_cloudflare_account_response_attributes.rs index e6e6caeb0..bb5c68201 100644 --- a/src/datadogV2/model/model_cloudflare_account_response_attributes.rs +++ b/src/datadogV2/model/model_cloudflare_account_response_attributes.rs @@ -17,6 +17,12 @@ pub struct CloudflareAccountResponseAttributes { /// The name of the Cloudflare account. #[serde(rename = "name")] pub name: String, + /// An allowlist of resources to restrict pulling metrics for. + #[serde(rename = "resources")] + pub resources: Option>, + /// An allowlist of zones to restrict pulling metrics for. + #[serde(rename = "zones")] + pub zones: Option>, #[serde(skip)] #[serde(default)] pub(crate) _unparsed: bool, @@ -27,6 +33,8 @@ impl CloudflareAccountResponseAttributes { CloudflareAccountResponseAttributes { email: None, name, + resources: None, + zones: None, _unparsed: false, } } @@ -35,6 +43,16 @@ impl CloudflareAccountResponseAttributes { self.email = Some(value); self } + + pub fn resources(mut self, value: Vec) -> Self { + self.resources = Some(value); + self + } + + pub fn zones(mut self, value: Vec) -> Self { + self.zones = Some(value); + self + } } impl<'de> Deserialize<'de> for CloudflareAccountResponseAttributes { @@ -56,6 +74,8 @@ impl<'de> Deserialize<'de> for CloudflareAccountResponseAttributes { { let mut email: Option = None; let mut name: Option = None; + let mut resources: Option> = None; + let mut zones: Option> = None; let mut _unparsed = false; while let Some((k, v)) = map.next_entry::()? { @@ -69,6 +89,18 @@ impl<'de> Deserialize<'de> for CloudflareAccountResponseAttributes { "name" => { name = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "resources" => { + if v.is_null() { + continue; + } + resources = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "zones" => { + if v.is_null() { + continue; + } + zones = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } &_ => {} } } @@ -77,6 +109,8 @@ impl<'de> Deserialize<'de> for CloudflareAccountResponseAttributes { let content = CloudflareAccountResponseAttributes { email, name, + resources, + zones, _unparsed, }; diff --git a/src/datadogV2/model/model_cloudflare_account_update_request_attributes.rs b/src/datadogV2/model/model_cloudflare_account_update_request_attributes.rs index 1ea55fd19..cbccd0e27 100644 --- a/src/datadogV2/model/model_cloudflare_account_update_request_attributes.rs +++ b/src/datadogV2/model/model_cloudflare_account_update_request_attributes.rs @@ -17,6 +17,12 @@ pub struct CloudflareAccountUpdateRequestAttributes { /// The email associated with the Cloudflare account. If an API key is provided (and not a token), this field is also required. #[serde(rename = "email")] pub email: Option, + /// An allowlist of resources to restrict pulling metrics for. + #[serde(rename = "resources")] + pub resources: Option>, + /// An allowlist of zones to restrict pulling metrics for. + #[serde(rename = "zones")] + pub zones: Option>, #[serde(skip)] #[serde(default)] pub(crate) _unparsed: bool, @@ -27,6 +33,8 @@ impl CloudflareAccountUpdateRequestAttributes { CloudflareAccountUpdateRequestAttributes { api_key, email: None, + resources: None, + zones: None, _unparsed: false, } } @@ -35,6 +43,16 @@ impl CloudflareAccountUpdateRequestAttributes { self.email = Some(value); self } + + pub fn resources(mut self, value: Vec) -> Self { + self.resources = Some(value); + self + } + + pub fn zones(mut self, value: Vec) -> Self { + self.zones = Some(value); + self + } } impl<'de> Deserialize<'de> for CloudflareAccountUpdateRequestAttributes { @@ -56,6 +74,8 @@ impl<'de> Deserialize<'de> for CloudflareAccountUpdateRequestAttributes { { let mut api_key: Option = None; let mut email: Option = None; + let mut resources: Option> = None; + let mut zones: Option> = None; let mut _unparsed = false; while let Some((k, v)) = map.next_entry::()? { @@ -69,6 +89,18 @@ impl<'de> Deserialize<'de> for CloudflareAccountUpdateRequestAttributes { } email = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "resources" => { + if v.is_null() { + continue; + } + resources = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "zones" => { + if v.is_null() { + continue; + } + zones = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } &_ => {} } } @@ -77,6 +109,8 @@ impl<'de> Deserialize<'de> for CloudflareAccountUpdateRequestAttributes { let content = CloudflareAccountUpdateRequestAttributes { api_key, email, + resources, + zones, _unparsed, }; diff --git a/src/datadogV2/model/model_create_open_api_response.rs b/src/datadogV2/model/model_create_open_api_response.rs new file mode 100644 index 000000000..85849196d --- /dev/null +++ b/src/datadogV2/model/model_create_open_api_response.rs @@ -0,0 +1,82 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Response for `CreateOpenAPI` operation. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CreateOpenAPIResponse { + /// Data envelope for `CreateOpenAPIResponse`. + #[serde(rename = "data")] + pub data: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CreateOpenAPIResponse { + pub fn new() -> CreateOpenAPIResponse { + CreateOpenAPIResponse { + data: None, + _unparsed: false, + } + } + + pub fn data(mut self, value: crate::datadogV2::model::CreateOpenAPIResponseData) -> Self { + self.data = Some(value); + self + } +} + +impl Default for CreateOpenAPIResponse { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for CreateOpenAPIResponse { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CreateOpenAPIResponseVisitor; + impl<'a> Visitor<'a> for CreateOpenAPIResponseVisitor { + type Value = CreateOpenAPIResponse; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut data: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "data" => { + if v.is_null() { + continue; + } + data = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = CreateOpenAPIResponse { data, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(CreateOpenAPIResponseVisitor) + } +} diff --git a/src/datadogV2/model/model_create_open_api_response_attributes.rs b/src/datadogV2/model/model_create_open_api_response_attributes.rs new file mode 100644 index 000000000..2be03ca97 --- /dev/null +++ b/src/datadogV2/model/model_create_open_api_response_attributes.rs @@ -0,0 +1,90 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Attributes for `CreateOpenAPI`. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CreateOpenAPIResponseAttributes { + /// List of endpoints which couldn't be parsed. + #[serde(rename = "failed_endpoints")] + pub failed_endpoints: Option>, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CreateOpenAPIResponseAttributes { + pub fn new() -> CreateOpenAPIResponseAttributes { + CreateOpenAPIResponseAttributes { + failed_endpoints: None, + _unparsed: false, + } + } + + pub fn failed_endpoints( + mut self, + value: Vec, + ) -> Self { + self.failed_endpoints = Some(value); + self + } +} + +impl Default for CreateOpenAPIResponseAttributes { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for CreateOpenAPIResponseAttributes { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CreateOpenAPIResponseAttributesVisitor; + impl<'a> Visitor<'a> for CreateOpenAPIResponseAttributesVisitor { + type Value = CreateOpenAPIResponseAttributes; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut failed_endpoints: Option> = + None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "failed_endpoints" => { + if v.is_null() { + continue; + } + failed_endpoints = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = CreateOpenAPIResponseAttributes { + failed_endpoints, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(CreateOpenAPIResponseAttributesVisitor) + } +} diff --git a/src/datadogV2/model/model_create_open_api_response_data.rs b/src/datadogV2/model/model_create_open_api_response_data.rs new file mode 100644 index 000000000..a5f158f69 --- /dev/null +++ b/src/datadogV2/model/model_create_open_api_response_data.rs @@ -0,0 +1,107 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Data envelope for `CreateOpenAPIResponse`. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CreateOpenAPIResponseData { + /// Attributes for `CreateOpenAPI`. + #[serde(rename = "attributes")] + pub attributes: Option, + /// API identifier. + #[serde(rename = "id")] + pub id: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CreateOpenAPIResponseData { + pub fn new() -> CreateOpenAPIResponseData { + CreateOpenAPIResponseData { + attributes: None, + id: None, + _unparsed: false, + } + } + + pub fn attributes( + mut self, + value: crate::datadogV2::model::CreateOpenAPIResponseAttributes, + ) -> Self { + self.attributes = Some(value); + self + } + + pub fn id(mut self, value: uuid::Uuid) -> Self { + self.id = Some(value); + self + } +} + +impl Default for CreateOpenAPIResponseData { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for CreateOpenAPIResponseData { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CreateOpenAPIResponseDataVisitor; + impl<'a> Visitor<'a> for CreateOpenAPIResponseDataVisitor { + type Value = CreateOpenAPIResponseData; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut attributes: Option< + crate::datadogV2::model::CreateOpenAPIResponseAttributes, + > = None; + let mut id: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "attributes" => { + if v.is_null() { + continue; + } + attributes = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "id" => { + if v.is_null() { + continue; + } + id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = CreateOpenAPIResponseData { + attributes, + id, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(CreateOpenAPIResponseDataVisitor) + } +} diff --git a/src/datadogV2/model/model_custom_destination_attribute_tags_restriction_list_type.rs b/src/datadogV2/model/model_custom_destination_attribute_tags_restriction_list_type.rs new file mode 100644 index 000000000..847d7c1d7 --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_attribute_tags_restriction_list_type.rs @@ -0,0 +1,51 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum CustomDestinationAttributeTagsRestrictionListType { + ALLOW_LIST, + BLOCK_LIST, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for CustomDestinationAttributeTagsRestrictionListType { + fn to_string(&self) -> String { + match self { + Self::ALLOW_LIST => String::from("ALLOW_LIST"), + Self::BLOCK_LIST => String::from("BLOCK_LIST"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for CustomDestinationAttributeTagsRestrictionListType { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for CustomDestinationAttributeTagsRestrictionListType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "ALLOW_LIST" => Self::ALLOW_LIST, + "BLOCK_LIST" => Self::BLOCK_LIST, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_custom_destination_create_request.rs b/src/datadogV2/model/model_custom_destination_create_request.rs new file mode 100644 index 000000000..11b84b9b0 --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_create_request.rs @@ -0,0 +1,87 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// The custom destination. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CustomDestinationCreateRequest { + /// The definition of a custom destination. + #[serde(rename = "data")] + pub data: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CustomDestinationCreateRequest { + pub fn new() -> CustomDestinationCreateRequest { + CustomDestinationCreateRequest { + data: None, + _unparsed: false, + } + } + + pub fn data( + mut self, + value: crate::datadogV2::model::CustomDestinationCreateRequestDefinition, + ) -> Self { + self.data = Some(value); + self + } +} + +impl Default for CustomDestinationCreateRequest { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for CustomDestinationCreateRequest { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CustomDestinationCreateRequestVisitor; + impl<'a> Visitor<'a> for CustomDestinationCreateRequestVisitor { + type Value = CustomDestinationCreateRequest; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut data: Option< + crate::datadogV2::model::CustomDestinationCreateRequestDefinition, + > = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "data" => { + if v.is_null() { + continue; + } + data = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = CustomDestinationCreateRequest { data, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(CustomDestinationCreateRequestVisitor) + } +} diff --git a/src/datadogV2/model/model_custom_destination_create_request_attributes.rs b/src/datadogV2/model/model_custom_destination_create_request_attributes.rs new file mode 100644 index 000000000..abf9ebeb8 --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_create_request_attributes.rs @@ -0,0 +1,208 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// The attributes associated with the custom destination. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CustomDestinationCreateRequestAttributes { + /// Whether logs matching this custom destination should be forwarded or not. + #[serde(rename = "enabled")] + pub enabled: Option, + /// Whether tags from the forwarded logs should be forwarded or not. + #[serde(rename = "forward_tags")] + pub forward_tags: Option, + /// List of [keys of tags]() to be filtered. + /// + /// An empty list represents no restriction is in place and either all or no tags will be + /// forwarded depending on `forward_tags_restriction_list_type` parameter. + #[serde(rename = "forward_tags_restriction_list")] + pub forward_tags_restriction_list: Option>, + /// How `forward_tags_restriction_list` parameter should be interpreted. + /// If `ALLOW_LIST`, then only tags whose keys on the forwarded logs match the ones on the restriction list + /// are forwarded. + /// + /// `BLOCK_LIST` works the opposite way. It does not forward the tags matching the ones on the list. + #[serde(rename = "forward_tags_restriction_list_type")] + pub forward_tags_restriction_list_type: + Option, + /// A custom destination's location to forward logs. + #[serde(rename = "forwarder_destination")] + pub forwarder_destination: crate::datadogV2::model::CustomDestinationForwardDestination, + /// The custom destination name. + #[serde(rename = "name")] + pub name: String, + /// The custom destination query and filter. Logs matching this query are forwarded to the destination. + #[serde(rename = "query")] + pub query: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CustomDestinationCreateRequestAttributes { + pub fn new( + forwarder_destination: crate::datadogV2::model::CustomDestinationForwardDestination, + name: String, + ) -> CustomDestinationCreateRequestAttributes { + CustomDestinationCreateRequestAttributes { + enabled: None, + forward_tags: None, + forward_tags_restriction_list: None, + forward_tags_restriction_list_type: None, + forwarder_destination, + name, + query: None, + _unparsed: false, + } + } + + pub fn enabled(mut self, value: bool) -> Self { + self.enabled = Some(value); + self + } + + pub fn forward_tags(mut self, value: bool) -> Self { + self.forward_tags = Some(value); + self + } + + pub fn forward_tags_restriction_list(mut self, value: Vec) -> Self { + self.forward_tags_restriction_list = Some(value); + self + } + + pub fn forward_tags_restriction_list_type( + mut self, + value: crate::datadogV2::model::CustomDestinationAttributeTagsRestrictionListType, + ) -> Self { + self.forward_tags_restriction_list_type = Some(value); + self + } + + pub fn query(mut self, value: String) -> Self { + self.query = Some(value); + self + } +} + +impl<'de> Deserialize<'de> for CustomDestinationCreateRequestAttributes { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CustomDestinationCreateRequestAttributesVisitor; + impl<'a> Visitor<'a> for CustomDestinationCreateRequestAttributesVisitor { + type Value = CustomDestinationCreateRequestAttributes; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut enabled: Option = None; + let mut forward_tags: Option = None; + let mut forward_tags_restriction_list: Option> = None; + let mut forward_tags_restriction_list_type: Option< + crate::datadogV2::model::CustomDestinationAttributeTagsRestrictionListType, + > = None; + let mut forwarder_destination: Option< + crate::datadogV2::model::CustomDestinationForwardDestination, + > = None; + let mut name: Option = None; + let mut query: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "enabled" => { + if v.is_null() { + continue; + } + enabled = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "forward_tags" => { + if v.is_null() { + continue; + } + forward_tags = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "forward_tags_restriction_list" => { + if v.is_null() { + continue; + } + forward_tags_restriction_list = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "forward_tags_restriction_list_type" => { + if v.is_null() { + continue; + } + forward_tags_restriction_list_type = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _forward_tags_restriction_list_type) = + forward_tags_restriction_list_type + { + match _forward_tags_restriction_list_type { + crate::datadogV2::model::CustomDestinationAttributeTagsRestrictionListType::UnparsedObject(_forward_tags_restriction_list_type) => { + _unparsed = true; + }, + _ => {} + } + } + } + "forwarder_destination" => { + forwarder_destination = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _forwarder_destination) = forwarder_destination { + match _forwarder_destination { + crate::datadogV2::model::CustomDestinationForwardDestination::UnparsedObject(_forwarder_destination) => { + _unparsed = true; + }, + _ => {} + } + } + } + "name" => { + name = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "query" => { + if v.is_null() { + continue; + } + query = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + let forwarder_destination = forwarder_destination + .ok_or_else(|| M::Error::missing_field("forwarder_destination"))?; + let name = name.ok_or_else(|| M::Error::missing_field("name"))?; + + let content = CustomDestinationCreateRequestAttributes { + enabled, + forward_tags, + forward_tags_restriction_list, + forward_tags_restriction_list_type, + forwarder_destination, + name, + query, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(CustomDestinationCreateRequestAttributesVisitor) + } +} diff --git a/src/datadogV2/model/model_custom_destination_create_request_definition.rs b/src/datadogV2/model/model_custom_destination_create_request_definition.rs new file mode 100644 index 000000000..fbd2f804e --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_create_request_definition.rs @@ -0,0 +1,95 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// The definition of a custom destination. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CustomDestinationCreateRequestDefinition { + /// The attributes associated with the custom destination. + #[serde(rename = "attributes")] + pub attributes: crate::datadogV2::model::CustomDestinationCreateRequestAttributes, + /// The type of the resource. The value should always be `custom_destination`. + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::CustomDestinationType, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CustomDestinationCreateRequestDefinition { + pub fn new( + attributes: crate::datadogV2::model::CustomDestinationCreateRequestAttributes, + type_: crate::datadogV2::model::CustomDestinationType, + ) -> CustomDestinationCreateRequestDefinition { + CustomDestinationCreateRequestDefinition { + attributes, + type_, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for CustomDestinationCreateRequestDefinition { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CustomDestinationCreateRequestDefinitionVisitor; + impl<'a> Visitor<'a> for CustomDestinationCreateRequestDefinitionVisitor { + type Value = CustomDestinationCreateRequestDefinition; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut attributes: Option< + crate::datadogV2::model::CustomDestinationCreateRequestAttributes, + > = None; + let mut type_: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "attributes" => { + attributes = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::CustomDestinationType::UnparsedObject(_type_) => { + _unparsed = true; + }, + _ => {} + } + } + } + &_ => {} + } + } + let attributes = attributes.ok_or_else(|| M::Error::missing_field("attributes"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = CustomDestinationCreateRequestDefinition { + attributes, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(CustomDestinationCreateRequestDefinitionVisitor) + } +} diff --git a/src/datadogV2/model/model_custom_destination_elasticsearch_destination_auth.rs b/src/datadogV2/model/model_custom_destination_elasticsearch_destination_auth.rs new file mode 100644 index 000000000..6aee64551 --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_elasticsearch_destination_auth.rs @@ -0,0 +1,85 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Basic access authentication. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CustomDestinationElasticsearchDestinationAuth { + /// The password of the authentication. This field is not returned by the API. + #[serde(rename = "password")] + pub password: String, + /// The username of the authentication. This field is not returned by the API. + #[serde(rename = "username")] + pub username: String, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CustomDestinationElasticsearchDestinationAuth { + pub fn new( + password: String, + username: String, + ) -> CustomDestinationElasticsearchDestinationAuth { + CustomDestinationElasticsearchDestinationAuth { + password, + username, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for CustomDestinationElasticsearchDestinationAuth { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CustomDestinationElasticsearchDestinationAuthVisitor; + impl<'a> Visitor<'a> for CustomDestinationElasticsearchDestinationAuthVisitor { + type Value = CustomDestinationElasticsearchDestinationAuth; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut password: Option = None; + let mut username: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "password" => { + password = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "username" => { + username = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + let password = password.ok_or_else(|| M::Error::missing_field("password"))?; + let username = username.ok_or_else(|| M::Error::missing_field("username"))?; + + let content = CustomDestinationElasticsearchDestinationAuth { + password, + username, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(CustomDestinationElasticsearchDestinationAuthVisitor) + } +} diff --git a/src/datadogV2/model/model_custom_destination_forward_destination.rs b/src/datadogV2/model/model_custom_destination_forward_destination.rs new file mode 100644 index 000000000..de5d70522 --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_forward_destination.rs @@ -0,0 +1,66 @@ +// 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 2019-Present Datadog, Inc. +use serde::{Deserialize, Deserializer, Serialize}; + +/// A custom destination's location to forward logs. +#[non_exhaustive] +#[derive(Clone, Debug, PartialEq, Serialize)] +#[serde(untagged)] +pub enum CustomDestinationForwardDestination { + CustomDestinationForwardDestinationHttp( + Box, + ), + CustomDestinationForwardDestinationSplunk( + Box, + ), + CustomDestinationForwardDestinationElasticsearch( + Box, + ), + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl<'de> Deserialize<'de> for CustomDestinationForwardDestination { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let value: serde_json::Value = Deserialize::deserialize(deserializer)?; + if let Ok(_v) = serde_json::from_value::< + Box, + >(value.clone()) + { + if !_v._unparsed { + return Ok( + CustomDestinationForwardDestination::CustomDestinationForwardDestinationHttp( + _v, + ), + ); + } + } + if let Ok(_v) = serde_json::from_value::< + Box, + >(value.clone()) + { + if !_v._unparsed { + return Ok( + CustomDestinationForwardDestination::CustomDestinationForwardDestinationSplunk( + _v, + ), + ); + } + } + if let Ok(_v) = serde_json::from_value::< + Box, + >(value.clone()) + { + if !_v._unparsed { + return Ok(CustomDestinationForwardDestination::CustomDestinationForwardDestinationElasticsearch(_v)); + } + } + + return Ok(CustomDestinationForwardDestination::UnparsedObject( + crate::datadog::UnparsedObject { value }, + )); + } +} diff --git a/src/datadogV2/model/model_custom_destination_forward_destination_elasticsearch.rs b/src/datadogV2/model/model_custom_destination_forward_destination_elasticsearch.rs new file mode 100644 index 000000000..2ce9dd103 --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_forward_destination_elasticsearch.rs @@ -0,0 +1,147 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// The Elasticsearch destination. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CustomDestinationForwardDestinationElasticsearch { + /// Basic access authentication. + #[serde(rename = "auth")] + pub auth: crate::datadogV2::model::CustomDestinationElasticsearchDestinationAuth, + /// The destination for which logs will be forwarded to. + /// Must have HTTPS scheme and forwarding back to Datadog is not allowed. + #[serde(rename = "endpoint")] + pub endpoint: String, + /// Name of the Elasticsearch index (must follow [Elasticsearch's criteria]()). + #[serde(rename = "index_name")] + pub index_name: String, + /// Date pattern with US locale and UTC timezone to be appended to the index name after adding `-` + /// (that is, `${index_name}-${indexPattern}`). + /// You can customize the index rotation naming pattern by choosing one of these options: + /// - Hourly: `yyyy-MM-dd-HH` (as an example, it would render: `2022-10-19-09`) + /// - Daily: `yyyy-MM-dd` (as an example, it would render: `2022-10-19`) + /// - Weekly: `yyyy-'W'ww` (as an example, it would render: `2022-W42`) + /// - Monthly: `yyyy-MM` (as an example, it would render: `2022-10`) + /// + /// If this field is missing or is blank, it means that the index name will always be the same + /// (that is, no rotation). + #[serde(rename = "index_rotation")] + pub index_rotation: Option, + /// Type of the Elasticsearch destination. + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::CustomDestinationForwardDestinationElasticsearchType, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CustomDestinationForwardDestinationElasticsearch { + pub fn new( + auth: crate::datadogV2::model::CustomDestinationElasticsearchDestinationAuth, + endpoint: String, + index_name: String, + type_: crate::datadogV2::model::CustomDestinationForwardDestinationElasticsearchType, + ) -> CustomDestinationForwardDestinationElasticsearch { + CustomDestinationForwardDestinationElasticsearch { + auth, + endpoint, + index_name, + index_rotation: None, + type_, + _unparsed: false, + } + } + + pub fn index_rotation(mut self, value: String) -> Self { + self.index_rotation = Some(value); + self + } +} + +impl<'de> Deserialize<'de> for CustomDestinationForwardDestinationElasticsearch { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CustomDestinationForwardDestinationElasticsearchVisitor; + impl<'a> Visitor<'a> for CustomDestinationForwardDestinationElasticsearchVisitor { + type Value = CustomDestinationForwardDestinationElasticsearch; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut auth: Option< + crate::datadogV2::model::CustomDestinationElasticsearchDestinationAuth, + > = None; + let mut endpoint: Option = None; + let mut index_name: Option = None; + let mut index_rotation: Option = None; + let mut type_: Option< + crate::datadogV2::model::CustomDestinationForwardDestinationElasticsearchType, + > = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "auth" => { + auth = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "endpoint" => { + endpoint = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "index_name" => { + index_name = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "index_rotation" => { + if v.is_null() { + continue; + } + index_rotation = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::CustomDestinationForwardDestinationElasticsearchType::UnparsedObject(_type_) => { + _unparsed = true; + }, + _ => {} + } + } + } + &_ => {} + } + } + let auth = auth.ok_or_else(|| M::Error::missing_field("auth"))?; + let endpoint = endpoint.ok_or_else(|| M::Error::missing_field("endpoint"))?; + let index_name = index_name.ok_or_else(|| M::Error::missing_field("index_name"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = CustomDestinationForwardDestinationElasticsearch { + auth, + endpoint, + index_name, + index_rotation, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(CustomDestinationForwardDestinationElasticsearchVisitor) + } +} diff --git a/src/datadogV2/model/model_custom_destination_forward_destination_elasticsearch_type.rs b/src/datadogV2/model/model_custom_destination_forward_destination_elasticsearch_type.rs new file mode 100644 index 000000000..5ac6a4ef3 --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_forward_destination_elasticsearch_type.rs @@ -0,0 +1,48 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum CustomDestinationForwardDestinationElasticsearchType { + ELASTICSEARCH, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for CustomDestinationForwardDestinationElasticsearchType { + fn to_string(&self) -> String { + match self { + Self::ELASTICSEARCH => String::from("elasticsearch"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for CustomDestinationForwardDestinationElasticsearchType { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for CustomDestinationForwardDestinationElasticsearchType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "elasticsearch" => Self::ELASTICSEARCH, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_custom_destination_forward_destination_http.rs b/src/datadogV2/model/model_custom_destination_forward_destination_http.rs new file mode 100644 index 000000000..d52be6ff5 --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_forward_destination_http.rs @@ -0,0 +1,117 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// The HTTP destination. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CustomDestinationForwardDestinationHttp { + /// Authentication method of the HTTP requests. + #[serde(rename = "auth")] + pub auth: crate::datadogV2::model::CustomDestinationHttpDestinationAuth, + /// The destination for which logs will be forwarded to. + /// Must have HTTPS scheme and forwarding back to Datadog is not allowed. + #[serde(rename = "endpoint")] + pub endpoint: String, + /// Type of the HTTP destination. + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::CustomDestinationForwardDestinationHttpType, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CustomDestinationForwardDestinationHttp { + pub fn new( + auth: crate::datadogV2::model::CustomDestinationHttpDestinationAuth, + endpoint: String, + type_: crate::datadogV2::model::CustomDestinationForwardDestinationHttpType, + ) -> CustomDestinationForwardDestinationHttp { + CustomDestinationForwardDestinationHttp { + auth, + endpoint, + type_, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for CustomDestinationForwardDestinationHttp { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CustomDestinationForwardDestinationHttpVisitor; + impl<'a> Visitor<'a> for CustomDestinationForwardDestinationHttpVisitor { + type Value = CustomDestinationForwardDestinationHttp; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut auth: Option< + crate::datadogV2::model::CustomDestinationHttpDestinationAuth, + > = None; + let mut endpoint: Option = None; + let mut type_: Option< + crate::datadogV2::model::CustomDestinationForwardDestinationHttpType, + > = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "auth" => { + auth = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _auth) = auth { + match _auth { + crate::datadogV2::model::CustomDestinationHttpDestinationAuth::UnparsedObject(_auth) => { + _unparsed = true; + }, + _ => {} + } + } + } + "endpoint" => { + endpoint = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::CustomDestinationForwardDestinationHttpType::UnparsedObject(_type_) => { + _unparsed = true; + }, + _ => {} + } + } + } + &_ => {} + } + } + let auth = auth.ok_or_else(|| M::Error::missing_field("auth"))?; + let endpoint = endpoint.ok_or_else(|| M::Error::missing_field("endpoint"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = CustomDestinationForwardDestinationHttp { + auth, + endpoint, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(CustomDestinationForwardDestinationHttpVisitor) + } +} diff --git a/src/datadogV2/model/model_custom_destination_forward_destination_http_type.rs b/src/datadogV2/model/model_custom_destination_forward_destination_http_type.rs new file mode 100644 index 000000000..13994d401 --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_forward_destination_http_type.rs @@ -0,0 +1,48 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum CustomDestinationForwardDestinationHttpType { + HTTP, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for CustomDestinationForwardDestinationHttpType { + fn to_string(&self) -> String { + match self { + Self::HTTP => String::from("http"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for CustomDestinationForwardDestinationHttpType { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for CustomDestinationForwardDestinationHttpType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "http" => Self::HTTP, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_custom_destination_forward_destination_splunk.rs b/src/datadogV2/model/model_custom_destination_forward_destination_splunk.rs new file mode 100644 index 000000000..2ab55577c --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_forward_destination_splunk.rs @@ -0,0 +1,109 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// The Splunk HTTP Event Collector (HEC) destination. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CustomDestinationForwardDestinationSplunk { + /// Access token of the Splunk HTTP Event Collector. This field is not returned by the API. + #[serde(rename = "access_token")] + pub access_token: String, + /// The destination for which logs will be forwarded to. + /// Must have HTTPS scheme and forwarding back to Datadog is not allowed. + #[serde(rename = "endpoint")] + pub endpoint: String, + /// Type of the Splunk HTTP Event Collector (HEC) destination. + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::CustomDestinationForwardDestinationSplunkType, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CustomDestinationForwardDestinationSplunk { + pub fn new( + access_token: String, + endpoint: String, + type_: crate::datadogV2::model::CustomDestinationForwardDestinationSplunkType, + ) -> CustomDestinationForwardDestinationSplunk { + CustomDestinationForwardDestinationSplunk { + access_token, + endpoint, + type_, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for CustomDestinationForwardDestinationSplunk { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CustomDestinationForwardDestinationSplunkVisitor; + impl<'a> Visitor<'a> for CustomDestinationForwardDestinationSplunkVisitor { + type Value = CustomDestinationForwardDestinationSplunk; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut access_token: Option = None; + let mut endpoint: Option = None; + let mut type_: Option< + crate::datadogV2::model::CustomDestinationForwardDestinationSplunkType, + > = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "access_token" => { + access_token = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "endpoint" => { + endpoint = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::CustomDestinationForwardDestinationSplunkType::UnparsedObject(_type_) => { + _unparsed = true; + }, + _ => {} + } + } + } + &_ => {} + } + } + let access_token = + access_token.ok_or_else(|| M::Error::missing_field("access_token"))?; + let endpoint = endpoint.ok_or_else(|| M::Error::missing_field("endpoint"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = CustomDestinationForwardDestinationSplunk { + access_token, + endpoint, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(CustomDestinationForwardDestinationSplunkVisitor) + } +} diff --git a/src/datadogV2/model/model_custom_destination_forward_destination_splunk_type.rs b/src/datadogV2/model/model_custom_destination_forward_destination_splunk_type.rs new file mode 100644 index 000000000..199290045 --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_forward_destination_splunk_type.rs @@ -0,0 +1,48 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum CustomDestinationForwardDestinationSplunkType { + SPLUNK_HEC, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for CustomDestinationForwardDestinationSplunkType { + fn to_string(&self) -> String { + match self { + Self::SPLUNK_HEC => String::from("splunk_hec"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for CustomDestinationForwardDestinationSplunkType { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for CustomDestinationForwardDestinationSplunkType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "splunk_hec" => Self::SPLUNK_HEC, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_custom_destination_http_destination_auth.rs b/src/datadogV2/model/model_custom_destination_http_destination_auth.rs new file mode 100644 index 000000000..dce2e6cee --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_http_destination_auth.rs @@ -0,0 +1,51 @@ +// 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 2019-Present Datadog, Inc. +use serde::{Deserialize, Deserializer, Serialize}; + +/// Authentication method of the HTTP requests. +#[non_exhaustive] +#[derive(Clone, Debug, PartialEq, Serialize)] +#[serde(untagged)] +pub enum CustomDestinationHttpDestinationAuth { + CustomDestinationHttpDestinationAuthBasic( + Box, + ), + CustomDestinationHttpDestinationAuthCustomHeader( + Box, + ), + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl<'de> Deserialize<'de> for CustomDestinationHttpDestinationAuth { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let value: serde_json::Value = Deserialize::deserialize(deserializer)?; + if let Ok(_v) = serde_json::from_value::< + Box, + >(value.clone()) + { + if !_v._unparsed { + return Ok( + CustomDestinationHttpDestinationAuth::CustomDestinationHttpDestinationAuthBasic( + _v, + ), + ); + } + } + if let Ok(_v) = serde_json::from_value::< + Box, + >(value.clone()) + { + if !_v._unparsed { + return Ok(CustomDestinationHttpDestinationAuth::CustomDestinationHttpDestinationAuthCustomHeader(_v)); + } + } + + return Ok(CustomDestinationHttpDestinationAuth::UnparsedObject( + crate::datadog::UnparsedObject { value }, + )); + } +} diff --git a/src/datadogV2/model/model_custom_destination_http_destination_auth_basic.rs b/src/datadogV2/model/model_custom_destination_http_destination_auth_basic.rs new file mode 100644 index 000000000..95771fe3f --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_http_destination_auth_basic.rs @@ -0,0 +1,106 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Basic access authentication. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CustomDestinationHttpDestinationAuthBasic { + /// The password of the authentication. This field is not returned by the API. + #[serde(rename = "password")] + pub password: String, + /// Type of the basic access authentication. + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::CustomDestinationHttpDestinationAuthBasicType, + /// The username of the authentication. This field is not returned by the API. + #[serde(rename = "username")] + pub username: String, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CustomDestinationHttpDestinationAuthBasic { + pub fn new( + password: String, + type_: crate::datadogV2::model::CustomDestinationHttpDestinationAuthBasicType, + username: String, + ) -> CustomDestinationHttpDestinationAuthBasic { + CustomDestinationHttpDestinationAuthBasic { + password, + type_, + username, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for CustomDestinationHttpDestinationAuthBasic { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CustomDestinationHttpDestinationAuthBasicVisitor; + impl<'a> Visitor<'a> for CustomDestinationHttpDestinationAuthBasicVisitor { + type Value = CustomDestinationHttpDestinationAuthBasic; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut password: Option = None; + let mut type_: Option< + crate::datadogV2::model::CustomDestinationHttpDestinationAuthBasicType, + > = None; + let mut username: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "password" => { + password = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::CustomDestinationHttpDestinationAuthBasicType::UnparsedObject(_type_) => { + _unparsed = true; + }, + _ => {} + } + } + } + "username" => { + username = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + let password = password.ok_or_else(|| M::Error::missing_field("password"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + let username = username.ok_or_else(|| M::Error::missing_field("username"))?; + + let content = CustomDestinationHttpDestinationAuthBasic { + password, + type_, + username, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(CustomDestinationHttpDestinationAuthBasicVisitor) + } +} diff --git a/src/datadogV2/model/model_custom_destination_http_destination_auth_basic_type.rs b/src/datadogV2/model/model_custom_destination_http_destination_auth_basic_type.rs new file mode 100644 index 000000000..304cb4b56 --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_http_destination_auth_basic_type.rs @@ -0,0 +1,48 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum CustomDestinationHttpDestinationAuthBasicType { + BASIC, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for CustomDestinationHttpDestinationAuthBasicType { + fn to_string(&self) -> String { + match self { + Self::BASIC => String::from("basic"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for CustomDestinationHttpDestinationAuthBasicType { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for CustomDestinationHttpDestinationAuthBasicType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "basic" => Self::BASIC, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_custom_destination_http_destination_auth_custom_header.rs b/src/datadogV2/model/model_custom_destination_http_destination_auth_custom_header.rs new file mode 100644 index 000000000..109f56b5a --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_http_destination_auth_custom_header.rs @@ -0,0 +1,110 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Custom header access authentication. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CustomDestinationHttpDestinationAuthCustomHeader { + /// The header name of the authentication. + #[serde(rename = "header_name")] + pub header_name: String, + /// The header value of the authentication. This field is not returned by the API. + #[serde(rename = "header_value")] + pub header_value: String, + /// Type of the custom header access authentication. + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::CustomDestinationHttpDestinationAuthCustomHeaderType, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CustomDestinationHttpDestinationAuthCustomHeader { + pub fn new( + header_name: String, + header_value: String, + type_: crate::datadogV2::model::CustomDestinationHttpDestinationAuthCustomHeaderType, + ) -> CustomDestinationHttpDestinationAuthCustomHeader { + CustomDestinationHttpDestinationAuthCustomHeader { + header_name, + header_value, + type_, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for CustomDestinationHttpDestinationAuthCustomHeader { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CustomDestinationHttpDestinationAuthCustomHeaderVisitor; + impl<'a> Visitor<'a> for CustomDestinationHttpDestinationAuthCustomHeaderVisitor { + type Value = CustomDestinationHttpDestinationAuthCustomHeader; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut header_name: Option = None; + let mut header_value: Option = None; + let mut type_: Option< + crate::datadogV2::model::CustomDestinationHttpDestinationAuthCustomHeaderType, + > = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "header_name" => { + header_name = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "header_value" => { + header_value = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::CustomDestinationHttpDestinationAuthCustomHeaderType::UnparsedObject(_type_) => { + _unparsed = true; + }, + _ => {} + } + } + } + &_ => {} + } + } + let header_name = + header_name.ok_or_else(|| M::Error::missing_field("header_name"))?; + let header_value = + header_value.ok_or_else(|| M::Error::missing_field("header_value"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = CustomDestinationHttpDestinationAuthCustomHeader { + header_name, + header_value, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(CustomDestinationHttpDestinationAuthCustomHeaderVisitor) + } +} diff --git a/src/datadogV2/model/model_custom_destination_http_destination_auth_custom_header_type.rs b/src/datadogV2/model/model_custom_destination_http_destination_auth_custom_header_type.rs new file mode 100644 index 000000000..a7f3b826c --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_http_destination_auth_custom_header_type.rs @@ -0,0 +1,48 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum CustomDestinationHttpDestinationAuthCustomHeaderType { + CUSTOM_HEADER, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for CustomDestinationHttpDestinationAuthCustomHeaderType { + fn to_string(&self) -> String { + match self { + Self::CUSTOM_HEADER => String::from("custom_header"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for CustomDestinationHttpDestinationAuthCustomHeaderType { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for CustomDestinationHttpDestinationAuthCustomHeaderType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "custom_header" => Self::CUSTOM_HEADER, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_custom_destination_response.rs b/src/datadogV2/model/model_custom_destination_response.rs new file mode 100644 index 000000000..fea3b60ea --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_response.rs @@ -0,0 +1,86 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// The custom destination. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CustomDestinationResponse { + /// The definition of a custom destination. + #[serde(rename = "data")] + pub data: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CustomDestinationResponse { + pub fn new() -> CustomDestinationResponse { + CustomDestinationResponse { + data: None, + _unparsed: false, + } + } + + pub fn data( + mut self, + value: crate::datadogV2::model::CustomDestinationResponseDefinition, + ) -> Self { + self.data = Some(value); + self + } +} + +impl Default for CustomDestinationResponse { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for CustomDestinationResponse { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CustomDestinationResponseVisitor; + impl<'a> Visitor<'a> for CustomDestinationResponseVisitor { + type Value = CustomDestinationResponse; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut data: Option = + None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "data" => { + if v.is_null() { + continue; + } + data = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = CustomDestinationResponse { data, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(CustomDestinationResponseVisitor) + } +} diff --git a/src/datadogV2/model/model_custom_destination_response_attributes.rs b/src/datadogV2/model/model_custom_destination_response_attributes.rs new file mode 100644 index 000000000..d91a7cc31 --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_response_attributes.rs @@ -0,0 +1,228 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// The attributes associated with the custom destination. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CustomDestinationResponseAttributes { + /// Whether logs matching this custom destination should be forwarded or not. + #[serde(rename = "enabled")] + pub enabled: Option, + /// Whether tags from the forwarded logs should be forwarded or not. + #[serde(rename = "forward_tags")] + pub forward_tags: Option, + /// List of [keys of tags]() to be filtered. + /// + /// An empty list represents no restriction is in place and either all or no tags will be + /// forwarded depending on `forward_tags_restriction_list_type` parameter. + #[serde(rename = "forward_tags_restriction_list")] + pub forward_tags_restriction_list: Option>, + /// How `forward_tags_restriction_list` parameter should be interpreted. + /// If `ALLOW_LIST`, then only tags whose keys on the forwarded logs match the ones on the restriction list + /// are forwarded. + /// + /// `BLOCK_LIST` works the opposite way. It does not forward the tags matching the ones on the list. + #[serde(rename = "forward_tags_restriction_list_type")] + pub forward_tags_restriction_list_type: + Option, + /// A custom destination's location to forward logs. + #[serde(rename = "forwarder_destination")] + pub forwarder_destination: + Option, + /// The custom destination name. + #[serde(rename = "name")] + pub name: Option, + /// The custom destination query filter. Logs matching this query are forwarded to the destination. + #[serde(rename = "query")] + pub query: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CustomDestinationResponseAttributes { + pub fn new() -> CustomDestinationResponseAttributes { + CustomDestinationResponseAttributes { + enabled: None, + forward_tags: None, + forward_tags_restriction_list: None, + forward_tags_restriction_list_type: None, + forwarder_destination: None, + name: None, + query: None, + _unparsed: false, + } + } + + pub fn enabled(mut self, value: bool) -> Self { + self.enabled = Some(value); + self + } + + pub fn forward_tags(mut self, value: bool) -> Self { + self.forward_tags = Some(value); + self + } + + pub fn forward_tags_restriction_list(mut self, value: Vec) -> Self { + self.forward_tags_restriction_list = Some(value); + self + } + + pub fn forward_tags_restriction_list_type( + mut self, + value: crate::datadogV2::model::CustomDestinationAttributeTagsRestrictionListType, + ) -> Self { + self.forward_tags_restriction_list_type = Some(value); + self + } + + pub fn forwarder_destination( + mut self, + value: crate::datadogV2::model::CustomDestinationResponseForwardDestination, + ) -> Self { + self.forwarder_destination = Some(value); + self + } + + pub fn name(mut self, value: String) -> Self { + self.name = Some(value); + self + } + + pub fn query(mut self, value: String) -> Self { + self.query = Some(value); + self + } +} + +impl Default for CustomDestinationResponseAttributes { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for CustomDestinationResponseAttributes { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CustomDestinationResponseAttributesVisitor; + impl<'a> Visitor<'a> for CustomDestinationResponseAttributesVisitor { + type Value = CustomDestinationResponseAttributes; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut enabled: Option = None; + let mut forward_tags: Option = None; + let mut forward_tags_restriction_list: Option> = None; + let mut forward_tags_restriction_list_type: Option< + crate::datadogV2::model::CustomDestinationAttributeTagsRestrictionListType, + > = None; + let mut forwarder_destination: Option< + crate::datadogV2::model::CustomDestinationResponseForwardDestination, + > = None; + let mut name: Option = None; + let mut query: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "enabled" => { + if v.is_null() { + continue; + } + enabled = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "forward_tags" => { + if v.is_null() { + continue; + } + forward_tags = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "forward_tags_restriction_list" => { + if v.is_null() { + continue; + } + forward_tags_restriction_list = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "forward_tags_restriction_list_type" => { + if v.is_null() { + continue; + } + forward_tags_restriction_list_type = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _forward_tags_restriction_list_type) = + forward_tags_restriction_list_type + { + match _forward_tags_restriction_list_type { + crate::datadogV2::model::CustomDestinationAttributeTagsRestrictionListType::UnparsedObject(_forward_tags_restriction_list_type) => { + _unparsed = true; + }, + _ => {} + } + } + } + "forwarder_destination" => { + if v.is_null() { + continue; + } + forwarder_destination = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _forwarder_destination) = forwarder_destination { + match _forwarder_destination { + crate::datadogV2::model::CustomDestinationResponseForwardDestination::UnparsedObject(_forwarder_destination) => { + _unparsed = true; + }, + _ => {} + } + } + } + "name" => { + if v.is_null() { + continue; + } + name = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "query" => { + if v.is_null() { + continue; + } + query = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = CustomDestinationResponseAttributes { + enabled, + forward_tags, + forward_tags_restriction_list, + forward_tags_restriction_list_type, + forwarder_destination, + name, + query, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(CustomDestinationResponseAttributesVisitor) + } +} diff --git a/src/datadogV2/model/model_custom_destination_response_definition.rs b/src/datadogV2/model/model_custom_destination_response_definition.rs new file mode 100644 index 000000000..2617d7fc3 --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_response_definition.rs @@ -0,0 +1,132 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// The definition of a custom destination. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CustomDestinationResponseDefinition { + /// The attributes associated with the custom destination. + #[serde(rename = "attributes")] + pub attributes: Option, + /// The custom destination ID. + #[serde(rename = "id")] + pub id: Option, + /// The type of the resource. The value should always be `custom_destination`. + #[serde(rename = "type")] + pub type_: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CustomDestinationResponseDefinition { + pub fn new() -> CustomDestinationResponseDefinition { + CustomDestinationResponseDefinition { + attributes: None, + id: None, + type_: None, + _unparsed: false, + } + } + + pub fn attributes( + mut self, + value: crate::datadogV2::model::CustomDestinationResponseAttributes, + ) -> Self { + self.attributes = Some(value); + self + } + + pub fn id(mut self, value: String) -> Self { + self.id = Some(value); + self + } + + pub fn type_(mut self, value: crate::datadogV2::model::CustomDestinationType) -> Self { + self.type_ = Some(value); + self + } +} + +impl Default for CustomDestinationResponseDefinition { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for CustomDestinationResponseDefinition { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CustomDestinationResponseDefinitionVisitor; + impl<'a> Visitor<'a> for CustomDestinationResponseDefinitionVisitor { + type Value = CustomDestinationResponseDefinition; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut attributes: Option< + crate::datadogV2::model::CustomDestinationResponseAttributes, + > = None; + let mut id: Option = None; + let mut type_: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "attributes" => { + if v.is_null() { + continue; + } + attributes = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "id" => { + if v.is_null() { + continue; + } + id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + if v.is_null() { + continue; + } + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::CustomDestinationType::UnparsedObject(_type_) => { + _unparsed = true; + }, + _ => {} + } + } + } + &_ => {} + } + } + + let content = CustomDestinationResponseDefinition { + attributes, + id, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(CustomDestinationResponseDefinitionVisitor) + } +} diff --git a/src/datadogV2/model/model_custom_destination_response_forward_destination.rs b/src/datadogV2/model/model_custom_destination_response_forward_destination.rs new file mode 100644 index 000000000..68c3159e0 --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_response_forward_destination.rs @@ -0,0 +1,58 @@ +// 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 2019-Present Datadog, Inc. +use serde::{Deserialize, Deserializer, Serialize}; + +/// A custom destination's location to forward logs. +#[non_exhaustive] +#[derive(Clone, Debug, PartialEq, Serialize)] +#[serde(untagged)] +pub enum CustomDestinationResponseForwardDestination { + CustomDestinationResponseForwardDestinationHttp( + Box, + ), + CustomDestinationResponseForwardDestinationSplunk( + Box, + ), + CustomDestinationResponseForwardDestinationElasticsearch( + Box, + ), + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl<'de> Deserialize<'de> for CustomDestinationResponseForwardDestination { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let value: serde_json::Value = Deserialize::deserialize(deserializer)?; + if let Ok(_v) = serde_json::from_value::< + Box, + >(value.clone()) + { + if !_v._unparsed { + return Ok(CustomDestinationResponseForwardDestination::CustomDestinationResponseForwardDestinationHttp(_v)); + } + } + if let Ok(_v) = serde_json::from_value::< + Box, + >(value.clone()) + { + if !_v._unparsed { + return Ok(CustomDestinationResponseForwardDestination::CustomDestinationResponseForwardDestinationSplunk(_v)); + } + } + if let Ok(_v) = serde_json::from_value::< + Box, + >(value.clone()) + { + if !_v._unparsed { + return Ok(CustomDestinationResponseForwardDestination::CustomDestinationResponseForwardDestinationElasticsearch(_v)); + } + } + + return Ok(CustomDestinationResponseForwardDestination::UnparsedObject( + crate::datadog::UnparsedObject { value }, + )); + } +} diff --git a/src/datadogV2/model/model_custom_destination_response_forward_destination_elasticsearch.rs b/src/datadogV2/model/model_custom_destination_response_forward_destination_elasticsearch.rs new file mode 100644 index 000000000..94bc5e4fb --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_response_forward_destination_elasticsearch.rs @@ -0,0 +1,145 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// The Elasticsearch destination. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CustomDestinationResponseForwardDestinationElasticsearch { + /// Basic access authentication. + #[serde(rename = "auth")] + pub auth: std::collections::BTreeMap, + /// The destination for which logs will be forwarded to. + /// Must have HTTPS scheme and forwarding back to Datadog is not allowed. + #[serde(rename = "endpoint")] + pub endpoint: String, + /// Name of the Elasticsearch index (must follow [Elasticsearch's criteria]()). + #[serde(rename = "index_name")] + pub index_name: String, + /// Date pattern with US locale and UTC timezone to be appended to the index name after adding `-` + /// (that is, `${index_name}-${indexPattern}`). + /// You can customize the index rotation naming pattern by choosing one of these options: + /// - Hourly: `yyyy-MM-dd-HH` (as an example, it would render: `2022-10-19-09`) + /// - Daily: `yyyy-MM-dd` (as an example, it would render: `2022-10-19`) + /// - Weekly: `yyyy-'W'ww` (as an example, it would render: `2022-W42`) + /// - Monthly: `yyyy-MM` (as an example, it would render: `2022-10`) + /// + /// If this field is missing or is blank, it means that the index name will always be the same + /// (that is, no rotation). + #[serde(rename = "index_rotation")] + pub index_rotation: Option, + /// Type of the Elasticsearch destination. + #[serde(rename = "type")] + pub type_: + crate::datadogV2::model::CustomDestinationResponseForwardDestinationElasticsearchType, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CustomDestinationResponseForwardDestinationElasticsearch { + pub fn new( + auth: std::collections::BTreeMap, + endpoint: String, + index_name: String, + type_: crate::datadogV2::model::CustomDestinationResponseForwardDestinationElasticsearchType, + ) -> CustomDestinationResponseForwardDestinationElasticsearch { + CustomDestinationResponseForwardDestinationElasticsearch { + auth, + endpoint, + index_name, + index_rotation: None, + type_, + _unparsed: false, + } + } + + pub fn index_rotation(mut self, value: String) -> Self { + self.index_rotation = Some(value); + self + } +} + +impl<'de> Deserialize<'de> for CustomDestinationResponseForwardDestinationElasticsearch { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CustomDestinationResponseForwardDestinationElasticsearchVisitor; + impl<'a> Visitor<'a> for CustomDestinationResponseForwardDestinationElasticsearchVisitor { + type Value = CustomDestinationResponseForwardDestinationElasticsearch; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut auth: Option> = None; + let mut endpoint: Option = None; + let mut index_name: Option = None; + let mut index_rotation: Option = None; + let mut type_: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "auth" => { + auth = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "endpoint" => { + endpoint = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "index_name" => { + index_name = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "index_rotation" => { + if v.is_null() { + continue; + } + index_rotation = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::CustomDestinationResponseForwardDestinationElasticsearchType::UnparsedObject(_type_) => { + _unparsed = true; + }, + _ => {} + } + } + } + &_ => {} + } + } + let auth = auth.ok_or_else(|| M::Error::missing_field("auth"))?; + let endpoint = endpoint.ok_or_else(|| M::Error::missing_field("endpoint"))?; + let index_name = index_name.ok_or_else(|| M::Error::missing_field("index_name"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = CustomDestinationResponseForwardDestinationElasticsearch { + auth, + endpoint, + index_name, + index_rotation, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer + .deserialize_any(CustomDestinationResponseForwardDestinationElasticsearchVisitor) + } +} diff --git a/src/datadogV2/model/model_custom_destination_response_forward_destination_elasticsearch_type.rs b/src/datadogV2/model/model_custom_destination_response_forward_destination_elasticsearch_type.rs new file mode 100644 index 000000000..2ca70548f --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_response_forward_destination_elasticsearch_type.rs @@ -0,0 +1,48 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum CustomDestinationResponseForwardDestinationElasticsearchType { + ELASTICSEARCH, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for CustomDestinationResponseForwardDestinationElasticsearchType { + fn to_string(&self) -> String { + match self { + Self::ELASTICSEARCH => String::from("elasticsearch"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for CustomDestinationResponseForwardDestinationElasticsearchType { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for CustomDestinationResponseForwardDestinationElasticsearchType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "elasticsearch" => Self::ELASTICSEARCH, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_custom_destination_response_forward_destination_http.rs b/src/datadogV2/model/model_custom_destination_response_forward_destination_http.rs new file mode 100644 index 000000000..0b47f68e9 --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_response_forward_destination_http.rs @@ -0,0 +1,117 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// The HTTP destination. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CustomDestinationResponseForwardDestinationHttp { + /// Authentication method of the HTTP requests. + #[serde(rename = "auth")] + pub auth: crate::datadogV2::model::CustomDestinationResponseHttpDestinationAuth, + /// The destination for which logs will be forwarded to. + /// Must have HTTPS scheme and forwarding back to Datadog is not allowed. + #[serde(rename = "endpoint")] + pub endpoint: String, + /// Type of the HTTP destination. + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::CustomDestinationResponseForwardDestinationHttpType, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CustomDestinationResponseForwardDestinationHttp { + pub fn new( + auth: crate::datadogV2::model::CustomDestinationResponseHttpDestinationAuth, + endpoint: String, + type_: crate::datadogV2::model::CustomDestinationResponseForwardDestinationHttpType, + ) -> CustomDestinationResponseForwardDestinationHttp { + CustomDestinationResponseForwardDestinationHttp { + auth, + endpoint, + type_, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for CustomDestinationResponseForwardDestinationHttp { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CustomDestinationResponseForwardDestinationHttpVisitor; + impl<'a> Visitor<'a> for CustomDestinationResponseForwardDestinationHttpVisitor { + type Value = CustomDestinationResponseForwardDestinationHttp; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut auth: Option< + crate::datadogV2::model::CustomDestinationResponseHttpDestinationAuth, + > = None; + let mut endpoint: Option = None; + let mut type_: Option< + crate::datadogV2::model::CustomDestinationResponseForwardDestinationHttpType, + > = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "auth" => { + auth = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _auth) = auth { + match _auth { + crate::datadogV2::model::CustomDestinationResponseHttpDestinationAuth::UnparsedObject(_auth) => { + _unparsed = true; + }, + _ => {} + } + } + } + "endpoint" => { + endpoint = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::CustomDestinationResponseForwardDestinationHttpType::UnparsedObject(_type_) => { + _unparsed = true; + }, + _ => {} + } + } + } + &_ => {} + } + } + let auth = auth.ok_or_else(|| M::Error::missing_field("auth"))?; + let endpoint = endpoint.ok_or_else(|| M::Error::missing_field("endpoint"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = CustomDestinationResponseForwardDestinationHttp { + auth, + endpoint, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(CustomDestinationResponseForwardDestinationHttpVisitor) + } +} diff --git a/src/datadogV2/model/model_custom_destination_response_forward_destination_http_type.rs b/src/datadogV2/model/model_custom_destination_response_forward_destination_http_type.rs new file mode 100644 index 000000000..6b10c42f0 --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_response_forward_destination_http_type.rs @@ -0,0 +1,48 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum CustomDestinationResponseForwardDestinationHttpType { + HTTP, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for CustomDestinationResponseForwardDestinationHttpType { + fn to_string(&self) -> String { + match self { + Self::HTTP => String::from("http"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for CustomDestinationResponseForwardDestinationHttpType { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for CustomDestinationResponseForwardDestinationHttpType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "http" => Self::HTTP, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_custom_destination_response_forward_destination_splunk.rs b/src/datadogV2/model/model_custom_destination_response_forward_destination_splunk.rs new file mode 100644 index 000000000..09398467c --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_response_forward_destination_splunk.rs @@ -0,0 +1,96 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// The Splunk HTTP Event Collector (HEC) destination. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CustomDestinationResponseForwardDestinationSplunk { + /// The destination for which logs will be forwarded to. + /// Must have HTTPS scheme and forwarding back to Datadog is not allowed. + #[serde(rename = "endpoint")] + pub endpoint: String, + /// Type of the Splunk HTTP Event Collector (HEC) destination. + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::CustomDestinationResponseForwardDestinationSplunkType, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CustomDestinationResponseForwardDestinationSplunk { + pub fn new( + endpoint: String, + type_: crate::datadogV2::model::CustomDestinationResponseForwardDestinationSplunkType, + ) -> CustomDestinationResponseForwardDestinationSplunk { + CustomDestinationResponseForwardDestinationSplunk { + endpoint, + type_, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for CustomDestinationResponseForwardDestinationSplunk { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CustomDestinationResponseForwardDestinationSplunkVisitor; + impl<'a> Visitor<'a> for CustomDestinationResponseForwardDestinationSplunkVisitor { + type Value = CustomDestinationResponseForwardDestinationSplunk; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut endpoint: Option = None; + let mut type_: Option< + crate::datadogV2::model::CustomDestinationResponseForwardDestinationSplunkType, + > = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "endpoint" => { + endpoint = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::CustomDestinationResponseForwardDestinationSplunkType::UnparsedObject(_type_) => { + _unparsed = true; + }, + _ => {} + } + } + } + &_ => {} + } + } + let endpoint = endpoint.ok_or_else(|| M::Error::missing_field("endpoint"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = CustomDestinationResponseForwardDestinationSplunk { + endpoint, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(CustomDestinationResponseForwardDestinationSplunkVisitor) + } +} diff --git a/src/datadogV2/model/model_custom_destination_response_forward_destination_splunk_type.rs b/src/datadogV2/model/model_custom_destination_response_forward_destination_splunk_type.rs new file mode 100644 index 000000000..c5d5fa2a8 --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_response_forward_destination_splunk_type.rs @@ -0,0 +1,48 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum CustomDestinationResponseForwardDestinationSplunkType { + SPLUNK_HEC, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for CustomDestinationResponseForwardDestinationSplunkType { + fn to_string(&self) -> String { + match self { + Self::SPLUNK_HEC => String::from("splunk_hec"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for CustomDestinationResponseForwardDestinationSplunkType { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for CustomDestinationResponseForwardDestinationSplunkType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "splunk_hec" => Self::SPLUNK_HEC, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_custom_destination_response_http_destination_auth.rs b/src/datadogV2/model/model_custom_destination_response_http_destination_auth.rs new file mode 100644 index 000000000..abbfaf7a6 --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_response_http_destination_auth.rs @@ -0,0 +1,49 @@ +// 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 2019-Present Datadog, Inc. +use serde::{Deserialize, Deserializer, Serialize}; + +/// Authentication method of the HTTP requests. +#[non_exhaustive] +#[derive(Clone, Debug, PartialEq, Serialize)] +#[serde(untagged)] +pub enum CustomDestinationResponseHttpDestinationAuth { + CustomDestinationResponseHttpDestinationAuthBasic( + Box, + ), + CustomDestinationResponseHttpDestinationAuthCustomHeader( + Box, + ), + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl<'de> Deserialize<'de> for CustomDestinationResponseHttpDestinationAuth { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let value: serde_json::Value = Deserialize::deserialize(deserializer)?; + if let Ok(_v) = serde_json::from_value::< + Box, + >(value.clone()) + { + if !_v._unparsed { + return Ok(CustomDestinationResponseHttpDestinationAuth::CustomDestinationResponseHttpDestinationAuthBasic(_v)); + } + } + if let Ok(_v) = serde_json::from_value::< + Box, + >(value.clone()) + { + if !_v._unparsed { + return Ok(CustomDestinationResponseHttpDestinationAuth::CustomDestinationResponseHttpDestinationAuthCustomHeader(_v)); + } + } + + return Ok( + CustomDestinationResponseHttpDestinationAuth::UnparsedObject( + crate::datadog::UnparsedObject { value }, + ), + ); + } +} diff --git a/src/datadogV2/model/model_custom_destination_response_http_destination_auth_basic.rs b/src/datadogV2/model/model_custom_destination_response_http_destination_auth_basic.rs new file mode 100644 index 000000000..b060d1779 --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_response_http_destination_auth_basic.rs @@ -0,0 +1,82 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Basic access authentication. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CustomDestinationResponseHttpDestinationAuthBasic { + /// Type of the basic access authentication. + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::CustomDestinationResponseHttpDestinationAuthBasicType, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CustomDestinationResponseHttpDestinationAuthBasic { + pub fn new( + type_: crate::datadogV2::model::CustomDestinationResponseHttpDestinationAuthBasicType, + ) -> CustomDestinationResponseHttpDestinationAuthBasic { + CustomDestinationResponseHttpDestinationAuthBasic { + type_, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for CustomDestinationResponseHttpDestinationAuthBasic { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CustomDestinationResponseHttpDestinationAuthBasicVisitor; + impl<'a> Visitor<'a> for CustomDestinationResponseHttpDestinationAuthBasicVisitor { + type Value = CustomDestinationResponseHttpDestinationAuthBasic; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut type_: Option< + crate::datadogV2::model::CustomDestinationResponseHttpDestinationAuthBasicType, + > = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::CustomDestinationResponseHttpDestinationAuthBasicType::UnparsedObject(_type_) => { + _unparsed = true; + }, + _ => {} + } + } + } + &_ => {} + } + } + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = + CustomDestinationResponseHttpDestinationAuthBasic { type_, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(CustomDestinationResponseHttpDestinationAuthBasicVisitor) + } +} diff --git a/src/datadogV2/model/model_custom_destination_response_http_destination_auth_basic_type.rs b/src/datadogV2/model/model_custom_destination_response_http_destination_auth_basic_type.rs new file mode 100644 index 000000000..e22c70e80 --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_response_http_destination_auth_basic_type.rs @@ -0,0 +1,48 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum CustomDestinationResponseHttpDestinationAuthBasicType { + BASIC, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for CustomDestinationResponseHttpDestinationAuthBasicType { + fn to_string(&self) -> String { + match self { + Self::BASIC => String::from("basic"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for CustomDestinationResponseHttpDestinationAuthBasicType { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for CustomDestinationResponseHttpDestinationAuthBasicType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "basic" => Self::BASIC, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_custom_destination_response_http_destination_auth_custom_header.rs b/src/datadogV2/model/model_custom_destination_response_http_destination_auth_custom_header.rs new file mode 100644 index 000000000..9c6836e6e --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_response_http_destination_auth_custom_header.rs @@ -0,0 +1,97 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Custom header access authentication. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CustomDestinationResponseHttpDestinationAuthCustomHeader { + /// The header name of the authentication. + #[serde(rename = "header_name")] + pub header_name: String, + /// Type of the custom header access authentication. + #[serde(rename = "type")] + pub type_: + crate::datadogV2::model::CustomDestinationResponseHttpDestinationAuthCustomHeaderType, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CustomDestinationResponseHttpDestinationAuthCustomHeader { + pub fn new( + header_name: String, + type_: crate::datadogV2::model::CustomDestinationResponseHttpDestinationAuthCustomHeaderType, + ) -> CustomDestinationResponseHttpDestinationAuthCustomHeader { + CustomDestinationResponseHttpDestinationAuthCustomHeader { + header_name, + type_, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for CustomDestinationResponseHttpDestinationAuthCustomHeader { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CustomDestinationResponseHttpDestinationAuthCustomHeaderVisitor; + impl<'a> Visitor<'a> for CustomDestinationResponseHttpDestinationAuthCustomHeaderVisitor { + type Value = CustomDestinationResponseHttpDestinationAuthCustomHeader; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut header_name: Option = None; + let mut type_: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "header_name" => { + header_name = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::CustomDestinationResponseHttpDestinationAuthCustomHeaderType::UnparsedObject(_type_) => { + _unparsed = true; + }, + _ => {} + } + } + } + &_ => {} + } + } + let header_name = + header_name.ok_or_else(|| M::Error::missing_field("header_name"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = CustomDestinationResponseHttpDestinationAuthCustomHeader { + header_name, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer + .deserialize_any(CustomDestinationResponseHttpDestinationAuthCustomHeaderVisitor) + } +} diff --git a/src/datadogV2/model/model_custom_destination_response_http_destination_auth_custom_header_type.rs b/src/datadogV2/model/model_custom_destination_response_http_destination_auth_custom_header_type.rs new file mode 100644 index 000000000..d101379e8 --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_response_http_destination_auth_custom_header_type.rs @@ -0,0 +1,48 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum CustomDestinationResponseHttpDestinationAuthCustomHeaderType { + CUSTOM_HEADER, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for CustomDestinationResponseHttpDestinationAuthCustomHeaderType { + fn to_string(&self) -> String { + match self { + Self::CUSTOM_HEADER => String::from("custom_header"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for CustomDestinationResponseHttpDestinationAuthCustomHeaderType { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for CustomDestinationResponseHttpDestinationAuthCustomHeaderType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "custom_header" => Self::CUSTOM_HEADER, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_custom_destination_type.rs b/src/datadogV2/model/model_custom_destination_type.rs new file mode 100644 index 000000000..e04b84a96 --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_type.rs @@ -0,0 +1,48 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum CustomDestinationType { + CUSTOM_DESTINATION, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for CustomDestinationType { + fn to_string(&self) -> String { + match self { + Self::CUSTOM_DESTINATION => String::from("custom_destination"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for CustomDestinationType { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for CustomDestinationType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "custom_destination" => Self::CUSTOM_DESTINATION, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_custom_destination_update_request.rs b/src/datadogV2/model/model_custom_destination_update_request.rs new file mode 100644 index 000000000..7259f409f --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_update_request.rs @@ -0,0 +1,87 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// The custom destination. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CustomDestinationUpdateRequest { + /// The definition of a custom destination. + #[serde(rename = "data")] + pub data: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CustomDestinationUpdateRequest { + pub fn new() -> CustomDestinationUpdateRequest { + CustomDestinationUpdateRequest { + data: None, + _unparsed: false, + } + } + + pub fn data( + mut self, + value: crate::datadogV2::model::CustomDestinationUpdateRequestDefinition, + ) -> Self { + self.data = Some(value); + self + } +} + +impl Default for CustomDestinationUpdateRequest { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for CustomDestinationUpdateRequest { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CustomDestinationUpdateRequestVisitor; + impl<'a> Visitor<'a> for CustomDestinationUpdateRequestVisitor { + type Value = CustomDestinationUpdateRequest; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut data: Option< + crate::datadogV2::model::CustomDestinationUpdateRequestDefinition, + > = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "data" => { + if v.is_null() { + continue; + } + data = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = CustomDestinationUpdateRequest { data, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(CustomDestinationUpdateRequestVisitor) + } +} diff --git a/src/datadogV2/model/model_custom_destination_update_request_attributes.rs b/src/datadogV2/model/model_custom_destination_update_request_attributes.rs new file mode 100644 index 000000000..038bb1cb1 --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_update_request_attributes.rs @@ -0,0 +1,225 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// The attributes associated with the custom destination. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CustomDestinationUpdateRequestAttributes { + /// Whether logs matching this custom destination should be forwarded or not. + #[serde(rename = "enabled")] + pub enabled: Option, + /// Whether tags from the forwarded logs should be forwarded or not. + #[serde(rename = "forward_tags")] + pub forward_tags: Option, + /// List of [keys of tags]() to be restricted from being forwarded. + /// An empty list represents no restriction is in place and either all or no tags will be forwarded depending on `forward_tags_restriction_list_type` parameter. + #[serde(rename = "forward_tags_restriction_list")] + pub forward_tags_restriction_list: Option>, + /// How `forward_tags_restriction_list` parameter should be interpreted. + /// If `ALLOW_LIST`, then only tags whose keys on the forwarded logs match the ones on the restriction list + /// are forwarded. + /// + /// `BLOCK_LIST` works the opposite way. It does not forward the tags matching the ones on the list. + #[serde(rename = "forward_tags_restriction_list_type")] + pub forward_tags_restriction_list_type: + Option, + /// A custom destination's location to forward logs. + #[serde(rename = "forwarder_destination")] + pub forwarder_destination: Option, + /// The custom destination name. + #[serde(rename = "name")] + pub name: Option, + /// The custom destination query and filter. Logs matching this query are forwarded to the destination. + #[serde(rename = "query")] + pub query: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CustomDestinationUpdateRequestAttributes { + pub fn new() -> CustomDestinationUpdateRequestAttributes { + CustomDestinationUpdateRequestAttributes { + enabled: None, + forward_tags: None, + forward_tags_restriction_list: None, + forward_tags_restriction_list_type: None, + forwarder_destination: None, + name: None, + query: None, + _unparsed: false, + } + } + + pub fn enabled(mut self, value: bool) -> Self { + self.enabled = Some(value); + self + } + + pub fn forward_tags(mut self, value: bool) -> Self { + self.forward_tags = Some(value); + self + } + + pub fn forward_tags_restriction_list(mut self, value: Vec) -> Self { + self.forward_tags_restriction_list = Some(value); + self + } + + pub fn forward_tags_restriction_list_type( + mut self, + value: crate::datadogV2::model::CustomDestinationAttributeTagsRestrictionListType, + ) -> Self { + self.forward_tags_restriction_list_type = Some(value); + self + } + + pub fn forwarder_destination( + mut self, + value: crate::datadogV2::model::CustomDestinationForwardDestination, + ) -> Self { + self.forwarder_destination = Some(value); + self + } + + pub fn name(mut self, value: String) -> Self { + self.name = Some(value); + self + } + + pub fn query(mut self, value: String) -> Self { + self.query = Some(value); + self + } +} + +impl Default for CustomDestinationUpdateRequestAttributes { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for CustomDestinationUpdateRequestAttributes { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CustomDestinationUpdateRequestAttributesVisitor; + impl<'a> Visitor<'a> for CustomDestinationUpdateRequestAttributesVisitor { + type Value = CustomDestinationUpdateRequestAttributes; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut enabled: Option = None; + let mut forward_tags: Option = None; + let mut forward_tags_restriction_list: Option> = None; + let mut forward_tags_restriction_list_type: Option< + crate::datadogV2::model::CustomDestinationAttributeTagsRestrictionListType, + > = None; + let mut forwarder_destination: Option< + crate::datadogV2::model::CustomDestinationForwardDestination, + > = None; + let mut name: Option = None; + let mut query: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "enabled" => { + if v.is_null() { + continue; + } + enabled = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "forward_tags" => { + if v.is_null() { + continue; + } + forward_tags = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "forward_tags_restriction_list" => { + if v.is_null() { + continue; + } + forward_tags_restriction_list = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "forward_tags_restriction_list_type" => { + if v.is_null() { + continue; + } + forward_tags_restriction_list_type = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _forward_tags_restriction_list_type) = + forward_tags_restriction_list_type + { + match _forward_tags_restriction_list_type { + crate::datadogV2::model::CustomDestinationAttributeTagsRestrictionListType::UnparsedObject(_forward_tags_restriction_list_type) => { + _unparsed = true; + }, + _ => {} + } + } + } + "forwarder_destination" => { + if v.is_null() { + continue; + } + forwarder_destination = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _forwarder_destination) = forwarder_destination { + match _forwarder_destination { + crate::datadogV2::model::CustomDestinationForwardDestination::UnparsedObject(_forwarder_destination) => { + _unparsed = true; + }, + _ => {} + } + } + } + "name" => { + if v.is_null() { + continue; + } + name = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "query" => { + if v.is_null() { + continue; + } + query = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = CustomDestinationUpdateRequestAttributes { + enabled, + forward_tags, + forward_tags_restriction_list, + forward_tags_restriction_list_type, + forwarder_destination, + name, + query, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(CustomDestinationUpdateRequestAttributesVisitor) + } +} diff --git a/src/datadogV2/model/model_custom_destination_update_request_definition.rs b/src/datadogV2/model/model_custom_destination_update_request_definition.rs new file mode 100644 index 000000000..baf9672b8 --- /dev/null +++ b/src/datadogV2/model/model_custom_destination_update_request_definition.rs @@ -0,0 +1,115 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// The definition of a custom destination. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CustomDestinationUpdateRequestDefinition { + /// The attributes associated with the custom destination. + #[serde(rename = "attributes")] + pub attributes: Option, + /// The custom destination ID. + #[serde(rename = "id")] + pub id: String, + /// The type of the resource. The value should always be `custom_destination`. + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::CustomDestinationType, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CustomDestinationUpdateRequestDefinition { + pub fn new( + id: String, + type_: crate::datadogV2::model::CustomDestinationType, + ) -> CustomDestinationUpdateRequestDefinition { + CustomDestinationUpdateRequestDefinition { + attributes: None, + id, + type_, + _unparsed: false, + } + } + + pub fn attributes( + mut self, + value: crate::datadogV2::model::CustomDestinationUpdateRequestAttributes, + ) -> Self { + self.attributes = Some(value); + self + } +} + +impl<'de> Deserialize<'de> for CustomDestinationUpdateRequestDefinition { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CustomDestinationUpdateRequestDefinitionVisitor; + impl<'a> Visitor<'a> for CustomDestinationUpdateRequestDefinitionVisitor { + type Value = CustomDestinationUpdateRequestDefinition; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut attributes: Option< + crate::datadogV2::model::CustomDestinationUpdateRequestAttributes, + > = None; + let mut id: Option = None; + let mut type_: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "attributes" => { + if v.is_null() { + continue; + } + attributes = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "id" => { + id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::CustomDestinationType::UnparsedObject(_type_) => { + _unparsed = true; + }, + _ => {} + } + } + } + &_ => {} + } + } + let id = id.ok_or_else(|| M::Error::missing_field("id"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = CustomDestinationUpdateRequestDefinition { + attributes, + id, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(CustomDestinationUpdateRequestDefinitionVisitor) + } +} diff --git a/src/datadogV2/model/model_custom_destinations_response.rs b/src/datadogV2/model/model_custom_destinations_response.rs new file mode 100644 index 000000000..f097f4735 --- /dev/null +++ b/src/datadogV2/model/model_custom_destinations_response.rs @@ -0,0 +1,87 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// The available custom destinations. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct CustomDestinationsResponse { + /// A list of custom destinations. + #[serde(rename = "data")] + pub data: Option>, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl CustomDestinationsResponse { + pub fn new() -> CustomDestinationsResponse { + CustomDestinationsResponse { + data: None, + _unparsed: false, + } + } + + pub fn data( + mut self, + value: Vec, + ) -> Self { + self.data = Some(value); + self + } +} + +impl Default for CustomDestinationsResponse { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for CustomDestinationsResponse { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CustomDestinationsResponseVisitor; + impl<'a> Visitor<'a> for CustomDestinationsResponseVisitor { + type Value = CustomDestinationsResponse; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut data: Option< + Vec, + > = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "data" => { + if v.is_null() { + continue; + } + data = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = CustomDestinationsResponse { data, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(CustomDestinationsResponseVisitor) + } +} diff --git a/src/datadogV2/model/model_dora_deployment_request_attributes.rs b/src/datadogV2/model/model_dora_deployment_request_attributes.rs index dde4e72b0..3c7837df8 100644 --- a/src/datadogV2/model/model_dora_deployment_request_attributes.rs +++ b/src/datadogV2/model/model_dora_deployment_request_attributes.rs @@ -11,7 +11,10 @@ use std::fmt::{self, Formatter}; #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] pub struct DORADeploymentRequestAttributes { - /// Unix timestamp in nanoseconds when the deployment finished. It should not be older than 3 hours. + /// Environment name to where the service was deployed. + #[serde(rename = "env")] + pub env: Option, + /// Unix timestamp in nanoseconds when the deployment finished. It should not be older than 1 hour. #[serde(rename = "finished_at")] pub finished_at: i64, /// Git info for DORA Metrics events. @@ -41,6 +44,7 @@ impl DORADeploymentRequestAttributes { started_at: i64, ) -> DORADeploymentRequestAttributes { DORADeploymentRequestAttributes { + env: None, finished_at, git: None, id: None, @@ -51,6 +55,11 @@ impl DORADeploymentRequestAttributes { } } + pub fn env(mut self, value: String) -> Self { + self.env = Some(value); + self + } + pub fn git(mut self, value: crate::datadogV2::model::DORAGitInfo) -> Self { self.git = Some(value); self @@ -84,6 +93,7 @@ impl<'de> Deserialize<'de> for DORADeploymentRequestAttributes { where M: MapAccess<'a>, { + let mut env: Option = None; let mut finished_at: Option = None; let mut git: Option = None; let mut id: Option = None; @@ -94,6 +104,12 @@ impl<'de> Deserialize<'de> for DORADeploymentRequestAttributes { while let Some((k, v)) = map.next_entry::()? { match k.as_str() { + "env" => { + if v.is_null() { + continue; + } + env = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "finished_at" => { finished_at = Some(serde_json::from_value(v).map_err(M::Error::custom)?); @@ -131,6 +147,7 @@ impl<'de> Deserialize<'de> for DORADeploymentRequestAttributes { let started_at = started_at.ok_or_else(|| M::Error::missing_field("started_at"))?; let content = DORADeploymentRequestAttributes { + env, finished_at, git, id, diff --git a/src/datadogV2/model/model_dora_incident_request_attributes.rs b/src/datadogV2/model/model_dora_incident_request_attributes.rs index 089c62f42..8d1ff74c8 100644 --- a/src/datadogV2/model/model_dora_incident_request_attributes.rs +++ b/src/datadogV2/model/model_dora_incident_request_attributes.rs @@ -11,27 +11,33 @@ use std::fmt::{self, Formatter}; #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] pub struct DORAIncidentRequestAttributes { + /// Environment name that was impacted by the incident. + #[serde(rename = "env")] + pub env: Option, /// Unix timestamp in nanoseconds when the incident finished. It should not be older than 3 hours. #[serde(rename = "finished_at")] pub finished_at: Option, /// Git info for DORA Metrics events. #[serde(rename = "git")] pub git: Option, - /// Incident ID + /// Incident ID. Required to update a previously sent incident. #[serde(rename = "id")] pub id: Option, /// Incident name. #[serde(rename = "name")] pub name: Option, - /// Service name from a service available in the Service Catalog. - #[serde(rename = "service")] - pub service: String, + /// Service names impacted by the incident. If possible, use names registered in the Service Catalog. Required when the team field is not provided. + #[serde(rename = "services")] + pub services: Option>, /// Incident severity. #[serde(rename = "severity")] pub severity: Option, /// Unix timestamp in nanoseconds when the incident started. #[serde(rename = "started_at")] pub started_at: i64, + /// Name of the team owning the services impacted. If possible, use team handles registered in Datadog. Required when the services field is not provided. + #[serde(rename = "team")] + pub team: Option, /// Version to correlate with [APM Deployment Tracking](). #[serde(rename = "version")] pub version: Option, @@ -41,20 +47,27 @@ pub struct DORAIncidentRequestAttributes { } impl DORAIncidentRequestAttributes { - pub fn new(service: String, started_at: i64) -> DORAIncidentRequestAttributes { + pub fn new(started_at: i64) -> DORAIncidentRequestAttributes { DORAIncidentRequestAttributes { + env: None, finished_at: None, git: None, id: None, name: None, - service, + services: None, severity: None, started_at, + team: None, version: None, _unparsed: false, } } + pub fn env(mut self, value: String) -> Self { + self.env = Some(value); + self + } + pub fn finished_at(mut self, value: i64) -> Self { self.finished_at = Some(value); self @@ -75,11 +88,21 @@ impl DORAIncidentRequestAttributes { self } + pub fn services(mut self, value: Vec) -> Self { + self.services = Some(value); + self + } + pub fn severity(mut self, value: String) -> Self { self.severity = Some(value); self } + pub fn team(mut self, value: String) -> Self { + self.team = Some(value); + self + } + pub fn version(mut self, value: String) -> Self { self.version = Some(value); self @@ -103,18 +126,26 @@ impl<'de> Deserialize<'de> for DORAIncidentRequestAttributes { where M: MapAccess<'a>, { + let mut env: Option = None; let mut finished_at: Option = None; let mut git: Option = None; let mut id: Option = None; let mut name: Option = None; - let mut service: Option = None; + let mut services: Option> = None; let mut severity: Option = None; let mut started_at: Option = None; + let mut team: Option = None; let mut version: Option = None; let mut _unparsed = false; while let Some((k, v)) = map.next_entry::()? { match k.as_str() { + "env" => { + if v.is_null() { + continue; + } + env = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "finished_at" => { if v.is_null() { continue; @@ -140,8 +171,11 @@ impl<'de> Deserialize<'de> for DORAIncidentRequestAttributes { } name = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } - "service" => { - service = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + "services" => { + if v.is_null() { + continue; + } + services = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } "severity" => { if v.is_null() { @@ -152,6 +186,12 @@ impl<'de> Deserialize<'de> for DORAIncidentRequestAttributes { "started_at" => { started_at = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "team" => { + if v.is_null() { + continue; + } + team = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "version" => { if v.is_null() { continue; @@ -161,17 +201,18 @@ impl<'de> Deserialize<'de> for DORAIncidentRequestAttributes { &_ => {} } } - let service = service.ok_or_else(|| M::Error::missing_field("service"))?; let started_at = started_at.ok_or_else(|| M::Error::missing_field("started_at"))?; let content = DORAIncidentRequestAttributes { + env, finished_at, git, id, name, - service, + services, severity, started_at, + team, version, _unparsed, }; diff --git a/src/datadogV2/model/model_downtime_schedule_one_time_create_update_request.rs b/src/datadogV2/model/model_downtime_schedule_one_time_create_update_request.rs index ba93d1f41..9363f4ab3 100644 --- a/src/datadogV2/model/model_downtime_schedule_one_time_create_update_request.rs +++ b/src/datadogV2/model/model_downtime_schedule_one_time_create_update_request.rs @@ -19,8 +19,6 @@ pub struct DowntimeScheduleOneTimeCreateUpdateRequest { /// downtime starts the moment it is created. #[serde(rename = "start", default, with = "::serde_with::rust::double_option")] pub start: Option>, - #[serde(flatten)] - pub additional_properties: std::collections::BTreeMap, #[serde(skip)] #[serde(default)] pub(crate) _unparsed: bool, @@ -31,7 +29,6 @@ impl DowntimeScheduleOneTimeCreateUpdateRequest { DowntimeScheduleOneTimeCreateUpdateRequest { end: None, start: None, - additional_properties: std::collections::BTreeMap::new(), _unparsed: false, } } @@ -45,14 +42,6 @@ impl DowntimeScheduleOneTimeCreateUpdateRequest { self.start = Some(value); self } - - pub fn additional_properties( - mut self, - value: std::collections::BTreeMap, - ) -> Self { - self.additional_properties = value; - self - } } impl Default for DowntimeScheduleOneTimeCreateUpdateRequest { @@ -80,10 +69,6 @@ impl<'de> Deserialize<'de> for DowntimeScheduleOneTimeCreateUpdateRequest { { let mut end: Option> = None; let mut start: Option> = None; - let mut additional_properties: std::collections::BTreeMap< - String, - serde_json::Value, - > = std::collections::BTreeMap::new(); let mut _unparsed = false; while let Some((k, v)) = map.next_entry::()? { @@ -94,18 +79,13 @@ impl<'de> Deserialize<'de> for DowntimeScheduleOneTimeCreateUpdateRequest { "start" => { start = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } - &_ => { - if let Ok(value) = serde_json::from_value(v.clone()) { - additional_properties.insert(k, value); - } - } + &_ => {} } } let content = DowntimeScheduleOneTimeCreateUpdateRequest { end, start, - additional_properties, _unparsed, }; diff --git a/src/datadogV2/model/model_gcpsts_service_account_attributes.rs b/src/datadogV2/model/model_gcpsts_service_account_attributes.rs index 85ece0643..e7bbd78fc 100644 --- a/src/datadogV2/model/model_gcpsts_service_account_attributes.rs +++ b/src/datadogV2/model/model_gcpsts_service_account_attributes.rs @@ -20,6 +20,10 @@ pub struct GCPSTSServiceAccountAttributes { /// Your service account email address. #[serde(rename = "client_email")] pub client_email: Option, + /// List of filters to limit the Cloud Run revisions that are pulled into Datadog by using tags. + /// Only Cloud Run revision resources that apply to specified filters are imported into Datadog. + #[serde(rename = "cloud_run_revision_filters")] + pub cloud_run_revision_filters: Option>, /// Your Host Filters. #[serde(rename = "host_filters")] pub host_filters: Option>, @@ -43,6 +47,7 @@ impl GCPSTSServiceAccountAttributes { account_tags: None, automute: None, client_email: None, + cloud_run_revision_filters: None, host_filters: None, is_cspm_enabled: None, is_security_command_center_enabled: None, @@ -66,6 +71,11 @@ impl GCPSTSServiceAccountAttributes { self } + pub fn cloud_run_revision_filters(mut self, value: Vec) -> Self { + self.cloud_run_revision_filters = Some(value); + self + } + pub fn host_filters(mut self, value: Vec) -> Self { self.host_filters = Some(value); self @@ -113,6 +123,7 @@ impl<'de> Deserialize<'de> for GCPSTSServiceAccountAttributes { let mut account_tags: Option> = None; let mut automute: Option = None; let mut client_email: Option = None; + let mut cloud_run_revision_filters: Option> = None; let mut host_filters: Option> = None; let mut is_cspm_enabled: Option = None; let mut is_security_command_center_enabled: Option = None; @@ -141,6 +152,13 @@ impl<'de> Deserialize<'de> for GCPSTSServiceAccountAttributes { client_email = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "cloud_run_revision_filters" => { + if v.is_null() { + continue; + } + cloud_run_revision_filters = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "host_filters" => { if v.is_null() { continue; @@ -177,6 +195,7 @@ impl<'de> Deserialize<'de> for GCPSTSServiceAccountAttributes { account_tags, automute, client_email, + cloud_run_revision_filters, host_filters, is_cspm_enabled, is_security_command_center_enabled, diff --git a/src/datadogV2/model/model_jira_issue.rs b/src/datadogV2/model/model_jira_issue.rs new file mode 100644 index 000000000..430997fc7 --- /dev/null +++ b/src/datadogV2/model/model_jira_issue.rs @@ -0,0 +1,110 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Jira issue attached to case +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct JiraIssue { + /// Jira issue information + #[serde(rename = "result")] + pub result: Option, + /// Case status + #[serde(rename = "status")] + pub status: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl JiraIssue { + pub fn new() -> JiraIssue { + JiraIssue { + result: None, + status: None, + _unparsed: false, + } + } + + pub fn result(mut self, value: crate::datadogV2::model::JiraIssueResult) -> Self { + self.result = Some(value); + self + } + + pub fn status(mut self, value: crate::datadogV2::model::Case3rdPartyTicketStatus) -> Self { + self.status = Some(value); + self + } +} + +impl Default for JiraIssue { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for JiraIssue { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct JiraIssueVisitor; + impl<'a> Visitor<'a> for JiraIssueVisitor { + type Value = JiraIssue; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut result: Option = None; + let mut status: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "result" => { + if v.is_null() { + continue; + } + result = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "status" => { + if v.is_null() { + continue; + } + status = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _status) = status { + match _status { + crate::datadogV2::model::Case3rdPartyTicketStatus::UnparsedObject(_status) => { + _unparsed = true; + }, + _ => {} + } + } + } + &_ => {} + } + } + + let content = JiraIssue { + result, + status, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(JiraIssueVisitor) + } +} diff --git a/src/datadogV2/model/model_jira_issue_result.rs b/src/datadogV2/model/model_jira_issue_result.rs new file mode 100644 index 000000000..62a2e5a42 --- /dev/null +++ b/src/datadogV2/model/model_jira_issue_result.rs @@ -0,0 +1,137 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Jira issue information +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct JiraIssueResult { + /// Jira issue ID + #[serde(rename = "issue_id")] + pub issue_id: Option, + /// Jira issue key + #[serde(rename = "issue_key")] + pub issue_key: Option, + /// Jira issue URL + #[serde(rename = "issue_url")] + pub issue_url: Option, + /// Jira project key + #[serde(rename = "project_key")] + pub project_key: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl JiraIssueResult { + pub fn new() -> JiraIssueResult { + JiraIssueResult { + issue_id: None, + issue_key: None, + issue_url: None, + project_key: None, + _unparsed: false, + } + } + + pub fn issue_id(mut self, value: String) -> Self { + self.issue_id = Some(value); + self + } + + pub fn issue_key(mut self, value: String) -> Self { + self.issue_key = Some(value); + self + } + + pub fn issue_url(mut self, value: String) -> Self { + self.issue_url = Some(value); + self + } + + pub fn project_key(mut self, value: String) -> Self { + self.project_key = Some(value); + self + } +} + +impl Default for JiraIssueResult { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for JiraIssueResult { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct JiraIssueResultVisitor; + impl<'a> Visitor<'a> for JiraIssueResultVisitor { + type Value = JiraIssueResult; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut issue_id: Option = None; + let mut issue_key: Option = None; + let mut issue_url: Option = None; + let mut project_key: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "issue_id" => { + if v.is_null() { + continue; + } + issue_id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "issue_key" => { + if v.is_null() { + continue; + } + issue_key = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "issue_url" => { + if v.is_null() { + continue; + } + issue_url = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "project_key" => { + if v.is_null() { + continue; + } + project_key = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = JiraIssueResult { + issue_id, + issue_key, + issue_url, + project_key, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(JiraIssueResultVisitor) + } +} diff --git a/src/datadogV2/model/model_logs_archive_integration_gcs.rs b/src/datadogV2/model/model_logs_archive_integration_gcs.rs index abe9eecc8..5da50cc81 100644 --- a/src/datadogV2/model/model_logs_archive_integration_gcs.rs +++ b/src/datadogV2/model/model_logs_archive_integration_gcs.rs @@ -16,20 +16,25 @@ pub struct LogsArchiveIntegrationGCS { pub client_email: String, /// A project ID. #[serde(rename = "project_id")] - pub project_id: String, + pub project_id: Option, #[serde(skip)] #[serde(default)] pub(crate) _unparsed: bool, } impl LogsArchiveIntegrationGCS { - pub fn new(client_email: String, project_id: String) -> LogsArchiveIntegrationGCS { + pub fn new(client_email: String) -> LogsArchiveIntegrationGCS { LogsArchiveIntegrationGCS { client_email, - project_id, + project_id: None, _unparsed: false, } } + + pub fn project_id(mut self, value: String) -> Self { + self.project_id = Some(value); + self + } } impl<'de> Deserialize<'de> for LogsArchiveIntegrationGCS { @@ -60,6 +65,9 @@ impl<'de> Deserialize<'de> for LogsArchiveIntegrationGCS { Some(serde_json::from_value(v).map_err(M::Error::custom)?); } "project_id" => { + if v.is_null() { + continue; + } project_id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } &_ => {} @@ -67,7 +75,6 @@ impl<'de> Deserialize<'de> for LogsArchiveIntegrationGCS { } let client_email = client_email.ok_or_else(|| M::Error::missing_field("client_email"))?; - let project_id = project_id.ok_or_else(|| M::Error::missing_field("project_id"))?; let content = LogsArchiveIntegrationGCS { client_email, diff --git a/src/datadogV2/model/model_metric_asset_attributes.rs b/src/datadogV2/model/model_metric_asset_attributes.rs new file mode 100644 index 000000000..e62bf30c9 --- /dev/null +++ b/src/datadogV2/model/model_metric_asset_attributes.rs @@ -0,0 +1,82 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Assets where only included attribute is its title +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct MetricAssetAttributes { + /// Title of the asset. + #[serde(rename = "title")] + pub title: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl MetricAssetAttributes { + pub fn new() -> MetricAssetAttributes { + MetricAssetAttributes { + title: None, + _unparsed: false, + } + } + + pub fn title(mut self, value: String) -> Self { + self.title = Some(value); + self + } +} + +impl Default for MetricAssetAttributes { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for MetricAssetAttributes { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct MetricAssetAttributesVisitor; + impl<'a> Visitor<'a> for MetricAssetAttributesVisitor { + type Value = MetricAssetAttributes; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut title: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "title" => { + if v.is_null() { + continue; + } + title = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = MetricAssetAttributes { title, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(MetricAssetAttributesVisitor) + } +} diff --git a/src/datadogV2/model/model_metric_asset_dashboard_relationship.rs b/src/datadogV2/model/model_metric_asset_dashboard_relationship.rs new file mode 100644 index 000000000..7b629e8e3 --- /dev/null +++ b/src/datadogV2/model/model_metric_asset_dashboard_relationship.rs @@ -0,0 +1,110 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// An object of type `dashboard` that can be referenced in the `included` data. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct MetricAssetDashboardRelationship { + /// The related dashboard's ID. + #[serde(rename = "id")] + pub id: Option, + /// Dashboard resource type. + #[serde(rename = "type")] + pub type_: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl MetricAssetDashboardRelationship { + pub fn new() -> MetricAssetDashboardRelationship { + MetricAssetDashboardRelationship { + id: None, + type_: None, + _unparsed: false, + } + } + + pub fn id(mut self, value: String) -> Self { + self.id = Some(value); + self + } + + pub fn type_(mut self, value: crate::datadogV2::model::MetricDashboardType) -> Self { + self.type_ = Some(value); + self + } +} + +impl Default for MetricAssetDashboardRelationship { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for MetricAssetDashboardRelationship { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct MetricAssetDashboardRelationshipVisitor; + impl<'a> Visitor<'a> for MetricAssetDashboardRelationshipVisitor { + type Value = MetricAssetDashboardRelationship; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut id: Option = None; + let mut type_: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "id" => { + if v.is_null() { + continue; + } + id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + if v.is_null() { + continue; + } + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::MetricDashboardType::UnparsedObject(_type_) => { + _unparsed = true; + }, + _ => {} + } + } + } + &_ => {} + } + } + + let content = MetricAssetDashboardRelationship { + id, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(MetricAssetDashboardRelationshipVisitor) + } +} diff --git a/src/datadogV2/model/model_metric_asset_dashboard_relationships.rs b/src/datadogV2/model/model_metric_asset_dashboard_relationships.rs new file mode 100644 index 000000000..d7d201f39 --- /dev/null +++ b/src/datadogV2/model/model_metric_asset_dashboard_relationships.rs @@ -0,0 +1,87 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// An object containing the list of dashboards that can be referenced in the `included` data. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct MetricAssetDashboardRelationships { + /// A list of dashboards that can be referenced in the `included` data. + #[serde(rename = "data")] + pub data: Option>, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl MetricAssetDashboardRelationships { + pub fn new() -> MetricAssetDashboardRelationships { + MetricAssetDashboardRelationships { + data: None, + _unparsed: false, + } + } + + pub fn data( + mut self, + value: Vec, + ) -> Self { + self.data = Some(value); + self + } +} + +impl Default for MetricAssetDashboardRelationships { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for MetricAssetDashboardRelationships { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct MetricAssetDashboardRelationshipsVisitor; + impl<'a> Visitor<'a> for MetricAssetDashboardRelationshipsVisitor { + type Value = MetricAssetDashboardRelationships; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut data: Option< + Vec, + > = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "data" => { + if v.is_null() { + continue; + } + data = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = MetricAssetDashboardRelationships { data, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(MetricAssetDashboardRelationshipsVisitor) + } +} diff --git a/src/datadogV2/model/model_metric_asset_monitor_relationship.rs b/src/datadogV2/model/model_metric_asset_monitor_relationship.rs new file mode 100644 index 000000000..825e6cf6f --- /dev/null +++ b/src/datadogV2/model/model_metric_asset_monitor_relationship.rs @@ -0,0 +1,112 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// An object of type `monitor` that can be referenced in the `included` data. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct MetricAssetMonitorRelationship { + /// The related monitor's ID. + #[serde(rename = "id")] + pub id: Option, + /// Monitor resource type. + #[serde(rename = "type")] + pub type_: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl MetricAssetMonitorRelationship { + pub fn new() -> MetricAssetMonitorRelationship { + MetricAssetMonitorRelationship { + id: None, + type_: None, + _unparsed: false, + } + } + + pub fn id(mut self, value: String) -> Self { + self.id = Some(value); + self + } + + pub fn type_(mut self, value: crate::datadogV2::model::MetricMonitorType) -> Self { + self.type_ = Some(value); + self + } +} + +impl Default for MetricAssetMonitorRelationship { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for MetricAssetMonitorRelationship { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct MetricAssetMonitorRelationshipVisitor; + impl<'a> Visitor<'a> for MetricAssetMonitorRelationshipVisitor { + type Value = MetricAssetMonitorRelationship; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut id: Option = None; + let mut type_: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "id" => { + if v.is_null() { + continue; + } + id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + if v.is_null() { + continue; + } + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::MetricMonitorType::UnparsedObject( + _type_, + ) => { + _unparsed = true; + } + _ => {} + } + } + } + &_ => {} + } + } + + let content = MetricAssetMonitorRelationship { + id, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(MetricAssetMonitorRelationshipVisitor) + } +} diff --git a/src/datadogV2/model/model_metric_asset_monitor_relationships.rs b/src/datadogV2/model/model_metric_asset_monitor_relationships.rs new file mode 100644 index 000000000..1bbd6e2d4 --- /dev/null +++ b/src/datadogV2/model/model_metric_asset_monitor_relationships.rs @@ -0,0 +1,86 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// A object containing the list of monitors that can be referenced in the `included` data. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct MetricAssetMonitorRelationships { + /// A list of monitors that can be referenced in the `included` data. + #[serde(rename = "data")] + pub data: Option>, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl MetricAssetMonitorRelationships { + pub fn new() -> MetricAssetMonitorRelationships { + MetricAssetMonitorRelationships { + data: None, + _unparsed: false, + } + } + + pub fn data( + mut self, + value: Vec, + ) -> Self { + self.data = Some(value); + self + } +} + +impl Default for MetricAssetMonitorRelationships { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for MetricAssetMonitorRelationships { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct MetricAssetMonitorRelationshipsVisitor; + impl<'a> Visitor<'a> for MetricAssetMonitorRelationshipsVisitor { + type Value = MetricAssetMonitorRelationships; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut data: Option> = + None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "data" => { + if v.is_null() { + continue; + } + data = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = MetricAssetMonitorRelationships { data, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(MetricAssetMonitorRelationshipsVisitor) + } +} diff --git a/src/datadogV2/model/model_metric_asset_notebook_relationship.rs b/src/datadogV2/model/model_metric_asset_notebook_relationship.rs new file mode 100644 index 000000000..b7100f358 --- /dev/null +++ b/src/datadogV2/model/model_metric_asset_notebook_relationship.rs @@ -0,0 +1,112 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// An object of type `notebook` that can be referenced in the `included` data. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct MetricAssetNotebookRelationship { + /// The related notebook's ID. + #[serde(rename = "id")] + pub id: Option, + /// Notebook resource type. + #[serde(rename = "type")] + pub type_: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl MetricAssetNotebookRelationship { + pub fn new() -> MetricAssetNotebookRelationship { + MetricAssetNotebookRelationship { + id: None, + type_: None, + _unparsed: false, + } + } + + pub fn id(mut self, value: String) -> Self { + self.id = Some(value); + self + } + + pub fn type_(mut self, value: crate::datadogV2::model::MetricNotebookType) -> Self { + self.type_ = Some(value); + self + } +} + +impl Default for MetricAssetNotebookRelationship { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for MetricAssetNotebookRelationship { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct MetricAssetNotebookRelationshipVisitor; + impl<'a> Visitor<'a> for MetricAssetNotebookRelationshipVisitor { + type Value = MetricAssetNotebookRelationship; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut id: Option = None; + let mut type_: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "id" => { + if v.is_null() { + continue; + } + id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + if v.is_null() { + continue; + } + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::MetricNotebookType::UnparsedObject( + _type_, + ) => { + _unparsed = true; + } + _ => {} + } + } + } + &_ => {} + } + } + + let content = MetricAssetNotebookRelationship { + id, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(MetricAssetNotebookRelationshipVisitor) + } +} diff --git a/src/datadogV2/model/model_metric_asset_notebook_relationships.rs b/src/datadogV2/model/model_metric_asset_notebook_relationships.rs new file mode 100644 index 000000000..dda0ad695 --- /dev/null +++ b/src/datadogV2/model/model_metric_asset_notebook_relationships.rs @@ -0,0 +1,87 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// An object containing the list of notebooks that can be referenced in the `included` data. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct MetricAssetNotebookRelationships { + /// A list of notebooks that can be referenced in the `included` data. + #[serde(rename = "data")] + pub data: Option>, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl MetricAssetNotebookRelationships { + pub fn new() -> MetricAssetNotebookRelationships { + MetricAssetNotebookRelationships { + data: None, + _unparsed: false, + } + } + + pub fn data( + mut self, + value: Vec, + ) -> Self { + self.data = Some(value); + self + } +} + +impl Default for MetricAssetNotebookRelationships { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for MetricAssetNotebookRelationships { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct MetricAssetNotebookRelationshipsVisitor; + impl<'a> Visitor<'a> for MetricAssetNotebookRelationshipsVisitor { + type Value = MetricAssetNotebookRelationships; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut data: Option< + Vec, + > = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "data" => { + if v.is_null() { + continue; + } + data = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = MetricAssetNotebookRelationships { data, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(MetricAssetNotebookRelationshipsVisitor) + } +} diff --git a/src/datadogV2/model/model_metric_asset_response_data.rs b/src/datadogV2/model/model_metric_asset_response_data.rs new file mode 100644 index 000000000..1af764e00 --- /dev/null +++ b/src/datadogV2/model/model_metric_asset_response_data.rs @@ -0,0 +1,113 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Metric assets response data. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct MetricAssetResponseData { + /// The metric name for this resource. + #[serde(rename = "id")] + pub id: String, + /// Relationships to assets related to the metric. + #[serde(rename = "relationships")] + pub relationships: Option, + /// The metric resource type. + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::MetricType, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl MetricAssetResponseData { + pub fn new(id: String, type_: crate::datadogV2::model::MetricType) -> MetricAssetResponseData { + MetricAssetResponseData { + id, + relationships: None, + type_, + _unparsed: false, + } + } + + pub fn relationships( + mut self, + value: crate::datadogV2::model::MetricAssetResponseRelationships, + ) -> Self { + self.relationships = Some(value); + self + } +} + +impl<'de> Deserialize<'de> for MetricAssetResponseData { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct MetricAssetResponseDataVisitor; + impl<'a> Visitor<'a> for MetricAssetResponseDataVisitor { + type Value = MetricAssetResponseData; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut id: Option = None; + let mut relationships: Option< + crate::datadogV2::model::MetricAssetResponseRelationships, + > = None; + let mut type_: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "id" => { + id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "relationships" => { + if v.is_null() { + continue; + } + relationships = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::MetricType::UnparsedObject(_type_) => { + _unparsed = true; + } + _ => {} + } + } + } + &_ => {} + } + } + let id = id.ok_or_else(|| M::Error::missing_field("id"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = MetricAssetResponseData { + id, + relationships, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(MetricAssetResponseDataVisitor) + } +} diff --git a/src/datadogV2/model/model_metric_asset_response_included.rs b/src/datadogV2/model/model_metric_asset_response_included.rs new file mode 100644 index 000000000..6dd128aec --- /dev/null +++ b/src/datadogV2/model/model_metric_asset_response_included.rs @@ -0,0 +1,57 @@ +// 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 2019-Present Datadog, Inc. +use serde::{Deserialize, Deserializer, Serialize}; + +/// List of included assets with full set of attributes. +#[non_exhaustive] +#[derive(Clone, Debug, PartialEq, Serialize)] +#[serde(untagged)] +pub enum MetricAssetResponseIncluded { + MetricDashboardAsset(Box), + MetricMonitorAsset(Box), + MetricNotebookAsset(Box), + MetricSLOAsset(Box), + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl<'de> Deserialize<'de> for MetricAssetResponseIncluded { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let value: serde_json::Value = Deserialize::deserialize(deserializer)?; + if let Ok(_v) = serde_json::from_value::>( + value.clone(), + ) { + if !_v._unparsed { + return Ok(MetricAssetResponseIncluded::MetricDashboardAsset(_v)); + } + } + if let Ok(_v) = serde_json::from_value::>( + value.clone(), + ) { + if !_v._unparsed { + return Ok(MetricAssetResponseIncluded::MetricMonitorAsset(_v)); + } + } + if let Ok(_v) = serde_json::from_value::>( + value.clone(), + ) { + if !_v._unparsed { + return Ok(MetricAssetResponseIncluded::MetricNotebookAsset(_v)); + } + } + if let Ok(_v) = + serde_json::from_value::>(value.clone()) + { + if !_v._unparsed { + return Ok(MetricAssetResponseIncluded::MetricSLOAsset(_v)); + } + } + + return Ok(MetricAssetResponseIncluded::UnparsedObject( + crate::datadog::UnparsedObject { value }, + )); + } +} diff --git a/src/datadogV2/model/model_metric_asset_response_relationships.rs b/src/datadogV2/model/model_metric_asset_response_relationships.rs new file mode 100644 index 000000000..800f3961b --- /dev/null +++ b/src/datadogV2/model/model_metric_asset_response_relationships.rs @@ -0,0 +1,150 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Relationships to assets related to the metric. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct MetricAssetResponseRelationships { + /// An object containing the list of dashboards that can be referenced in the `included` data. + #[serde(rename = "dashboards")] + pub dashboards: Option, + /// A object containing the list of monitors that can be referenced in the `included` data. + #[serde(rename = "monitors")] + pub monitors: Option, + /// An object containing the list of notebooks that can be referenced in the `included` data. + #[serde(rename = "notebooks")] + pub notebooks: Option, + /// An object containing a list of SLOs that can be referenced in the `included` data. + #[serde(rename = "slos")] + pub slos: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl MetricAssetResponseRelationships { + pub fn new() -> MetricAssetResponseRelationships { + MetricAssetResponseRelationships { + dashboards: None, + monitors: None, + notebooks: None, + slos: None, + _unparsed: false, + } + } + + pub fn dashboards( + mut self, + value: crate::datadogV2::model::MetricAssetDashboardRelationships, + ) -> Self { + self.dashboards = Some(value); + self + } + + pub fn monitors( + mut self, + value: crate::datadogV2::model::MetricAssetMonitorRelationships, + ) -> Self { + self.monitors = Some(value); + self + } + + pub fn notebooks( + mut self, + value: crate::datadogV2::model::MetricAssetNotebookRelationships, + ) -> Self { + self.notebooks = Some(value); + self + } + + pub fn slos(mut self, value: crate::datadogV2::model::MetricAssetSLORelationships) -> Self { + self.slos = Some(value); + self + } +} + +impl Default for MetricAssetResponseRelationships { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for MetricAssetResponseRelationships { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct MetricAssetResponseRelationshipsVisitor; + impl<'a> Visitor<'a> for MetricAssetResponseRelationshipsVisitor { + type Value = MetricAssetResponseRelationships; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut dashboards: Option< + crate::datadogV2::model::MetricAssetDashboardRelationships, + > = None; + let mut monitors: Option = + None; + let mut notebooks: Option< + crate::datadogV2::model::MetricAssetNotebookRelationships, + > = None; + let mut slos: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "dashboards" => { + if v.is_null() { + continue; + } + dashboards = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "monitors" => { + if v.is_null() { + continue; + } + monitors = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "notebooks" => { + if v.is_null() { + continue; + } + notebooks = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "slos" => { + if v.is_null() { + continue; + } + slos = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = MetricAssetResponseRelationships { + dashboards, + monitors, + notebooks, + slos, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(MetricAssetResponseRelationshipsVisitor) + } +} diff --git a/src/datadogV2/model/model_metric_asset_slo_relationship.rs b/src/datadogV2/model/model_metric_asset_slo_relationship.rs new file mode 100644 index 000000000..e72b44061 --- /dev/null +++ b/src/datadogV2/model/model_metric_asset_slo_relationship.rs @@ -0,0 +1,112 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// An object of type `slos` that can be referenced in the `included` data. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct MetricAssetSLORelationship { + /// The SLO ID. + #[serde(rename = "id")] + pub id: Option, + /// SLO resource type. + #[serde(rename = "type")] + pub type_: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl MetricAssetSLORelationship { + pub fn new() -> MetricAssetSLORelationship { + MetricAssetSLORelationship { + id: None, + type_: None, + _unparsed: false, + } + } + + pub fn id(mut self, value: String) -> Self { + self.id = Some(value); + self + } + + pub fn type_(mut self, value: crate::datadogV2::model::MetricSLOType) -> Self { + self.type_ = Some(value); + self + } +} + +impl Default for MetricAssetSLORelationship { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for MetricAssetSLORelationship { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct MetricAssetSLORelationshipVisitor; + impl<'a> Visitor<'a> for MetricAssetSLORelationshipVisitor { + type Value = MetricAssetSLORelationship; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut id: Option = None; + let mut type_: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "id" => { + if v.is_null() { + continue; + } + id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + if v.is_null() { + continue; + } + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::MetricSLOType::UnparsedObject( + _type_, + ) => { + _unparsed = true; + } + _ => {} + } + } + } + &_ => {} + } + } + + let content = MetricAssetSLORelationship { + id, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(MetricAssetSLORelationshipVisitor) + } +} diff --git a/src/datadogV2/model/model_metric_asset_slo_relationships.rs b/src/datadogV2/model/model_metric_asset_slo_relationships.rs new file mode 100644 index 000000000..833b9b9f3 --- /dev/null +++ b/src/datadogV2/model/model_metric_asset_slo_relationships.rs @@ -0,0 +1,83 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// An object containing a list of SLOs that can be referenced in the `included` data. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct MetricAssetSLORelationships { + /// A list of SLOs that can be referenced in the `included` data. + #[serde(rename = "data")] + pub data: Option>, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl MetricAssetSLORelationships { + pub fn new() -> MetricAssetSLORelationships { + MetricAssetSLORelationships { + data: None, + _unparsed: false, + } + } + + pub fn data(mut self, value: Vec) -> Self { + self.data = Some(value); + self + } +} + +impl Default for MetricAssetSLORelationships { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for MetricAssetSLORelationships { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct MetricAssetSLORelationshipsVisitor; + impl<'a> Visitor<'a> for MetricAssetSLORelationshipsVisitor { + type Value = MetricAssetSLORelationships; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut data: Option> = + None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "data" => { + if v.is_null() { + continue; + } + data = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = MetricAssetSLORelationships { data, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(MetricAssetSLORelationshipsVisitor) + } +} diff --git a/src/datadogV2/model/model_metric_assets_response.rs b/src/datadogV2/model/model_metric_assets_response.rs new file mode 100644 index 000000000..220e9282e --- /dev/null +++ b/src/datadogV2/model/model_metric_assets_response.rs @@ -0,0 +1,107 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Response object that includes related dashboards, monitors, notebooks, and SLOs. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct MetricAssetsResponse { + /// Metric assets response data. + #[serde(rename = "data")] + pub data: Option, + /// Array of objects related to the metric assets. + #[serde(rename = "included")] + pub included: Option>, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl MetricAssetsResponse { + pub fn new() -> MetricAssetsResponse { + MetricAssetsResponse { + data: None, + included: None, + _unparsed: false, + } + } + + pub fn data(mut self, value: crate::datadogV2::model::MetricAssetResponseData) -> Self { + self.data = Some(value); + self + } + + pub fn included( + mut self, + value: Vec, + ) -> Self { + self.included = Some(value); + self + } +} + +impl Default for MetricAssetsResponse { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for MetricAssetsResponse { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct MetricAssetsResponseVisitor; + impl<'a> Visitor<'a> for MetricAssetsResponseVisitor { + type Value = MetricAssetsResponse; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut data: Option = None; + let mut included: Option< + Vec, + > = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "data" => { + if v.is_null() { + continue; + } + data = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "included" => { + if v.is_null() { + continue; + } + included = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = MetricAssetsResponse { + data, + included, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(MetricAssetsResponseVisitor) + } +} diff --git a/src/datadogV2/model/model_metric_dashboard_asset.rs b/src/datadogV2/model/model_metric_dashboard_asset.rs new file mode 100644 index 000000000..9f96426a1 --- /dev/null +++ b/src/datadogV2/model/model_metric_dashboard_asset.rs @@ -0,0 +1,111 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// A dashboard object with title and popularity. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct MetricDashboardAsset { + /// Attributes related to the dashboard, including title and popularity. + #[serde(rename = "attributes")] + pub attributes: Option, + /// The related dashboard's ID. + #[serde(rename = "id")] + pub id: String, + /// Dashboard resource type. + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::MetricDashboardType, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl MetricDashboardAsset { + pub fn new( + id: String, + type_: crate::datadogV2::model::MetricDashboardType, + ) -> MetricDashboardAsset { + MetricDashboardAsset { + attributes: None, + id, + type_, + _unparsed: false, + } + } + + pub fn attributes(mut self, value: crate::datadogV2::model::MetricDashboardAttributes) -> Self { + self.attributes = Some(value); + self + } +} + +impl<'de> Deserialize<'de> for MetricDashboardAsset { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct MetricDashboardAssetVisitor; + impl<'a> Visitor<'a> for MetricDashboardAssetVisitor { + type Value = MetricDashboardAsset; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut attributes: Option = + None; + let mut id: Option = None; + let mut type_: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "attributes" => { + if v.is_null() { + continue; + } + attributes = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "id" => { + id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::MetricDashboardType::UnparsedObject(_type_) => { + _unparsed = true; + }, + _ => {} + } + } + } + &_ => {} + } + } + let id = id.ok_or_else(|| M::Error::missing_field("id"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = MetricDashboardAsset { + attributes, + id, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(MetricDashboardAssetVisitor) + } +} diff --git a/src/datadogV1/model/model_usage_attribution_response.rs b/src/datadogV2/model/model_metric_dashboard_attributes.rs similarity index 50% rename from src/datadogV1/model/model_usage_attribution_response.rs rename to src/datadogV2/model/model_metric_dashboard_attributes.rs index 27409ac32..2e0d64ef5 100644 --- a/src/datadogV1/model/model_usage_attribution_response.rs +++ b/src/datadogV2/model/model_metric_dashboard_attributes.rs @@ -6,56 +6,56 @@ use serde::{Deserialize, Deserializer, Serialize}; use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; -/// Response containing the Usage Summary by tag(s). +/// Attributes related to the dashboard, including title and popularity. #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] -pub struct UsageAttributionResponse { - /// The object containing document metadata. - #[serde(rename = "metadata")] - pub metadata: Option, - /// Get usage summary by tag(s). - #[serde(rename = "usage")] - pub usage: Option>, +pub struct MetricDashboardAttributes { + /// Value from 0 to 5 that ranks popularity of the dashboard. + #[serde(rename = "popularity")] + pub popularity: Option, + /// Title of the asset. + #[serde(rename = "title")] + pub title: Option, #[serde(skip)] #[serde(default)] pub(crate) _unparsed: bool, } -impl UsageAttributionResponse { - pub fn new() -> UsageAttributionResponse { - UsageAttributionResponse { - metadata: None, - usage: None, +impl MetricDashboardAttributes { + pub fn new() -> MetricDashboardAttributes { + MetricDashboardAttributes { + popularity: None, + title: None, _unparsed: false, } } - pub fn metadata(mut self, value: crate::datadogV1::model::UsageAttributionMetadata) -> Self { - self.metadata = Some(value); + pub fn popularity(mut self, value: f64) -> Self { + self.popularity = Some(value); self } - pub fn usage(mut self, value: Vec) -> Self { - self.usage = Some(value); + pub fn title(mut self, value: String) -> Self { + self.title = Some(value); self } } -impl Default for UsageAttributionResponse { +impl Default for MetricDashboardAttributes { fn default() -> Self { Self::new() } } -impl<'de> Deserialize<'de> for UsageAttributionResponse { +impl<'de> Deserialize<'de> for MetricDashboardAttributes { fn deserialize(deserializer: D) -> Result where D: Deserializer<'de>, { - struct UsageAttributionResponseVisitor; - impl<'a> Visitor<'a> for UsageAttributionResponseVisitor { - type Value = UsageAttributionResponse; + struct MetricDashboardAttributesVisitor; + impl<'a> Visitor<'a> for MetricDashboardAttributesVisitor { + type Value = MetricDashboardAttributes; fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { f.write_str("a mapping") @@ -65,31 +65,31 @@ impl<'de> Deserialize<'de> for UsageAttributionResponse { where M: MapAccess<'a>, { - let mut metadata: Option = None; - let mut usage: Option> = None; + let mut popularity: Option = None; + let mut title: Option = None; let mut _unparsed = false; while let Some((k, v)) = map.next_entry::()? { match k.as_str() { - "metadata" => { + "popularity" => { if v.is_null() { continue; } - metadata = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + popularity = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } - "usage" => { + "title" => { if v.is_null() { continue; } - usage = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + title = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } &_ => {} } } - let content = UsageAttributionResponse { - metadata, - usage, + let content = MetricDashboardAttributes { + popularity, + title, _unparsed, }; @@ -97,6 +97,6 @@ impl<'de> Deserialize<'de> for UsageAttributionResponse { } } - deserializer.deserialize_any(UsageAttributionResponseVisitor) + deserializer.deserialize_any(MetricDashboardAttributesVisitor) } } diff --git a/src/datadogV2/model/model_metric_dashboard_type.rs b/src/datadogV2/model/model_metric_dashboard_type.rs new file mode 100644 index 000000000..a359510ed --- /dev/null +++ b/src/datadogV2/model/model_metric_dashboard_type.rs @@ -0,0 +1,48 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum MetricDashboardType { + DASHBOARDS, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for MetricDashboardType { + fn to_string(&self) -> String { + match self { + Self::DASHBOARDS => String::from("dashboards"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for MetricDashboardType { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for MetricDashboardType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "dashboards" => Self::DASHBOARDS, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_metric_monitor_asset.rs b/src/datadogV2/model/model_metric_monitor_asset.rs new file mode 100644 index 000000000..49f9033c0 --- /dev/null +++ b/src/datadogV2/model/model_metric_monitor_asset.rs @@ -0,0 +1,112 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// A monitor object with title. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct MetricMonitorAsset { + /// Assets where only included attribute is its title + #[serde(rename = "attributes")] + pub attributes: Option, + /// The related monitor's ID. + #[serde(rename = "id")] + pub id: String, + /// Monitor resource type. + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::MetricMonitorType, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl MetricMonitorAsset { + pub fn new( + id: String, + type_: crate::datadogV2::model::MetricMonitorType, + ) -> MetricMonitorAsset { + MetricMonitorAsset { + attributes: None, + id, + type_, + _unparsed: false, + } + } + + pub fn attributes(mut self, value: crate::datadogV2::model::MetricAssetAttributes) -> Self { + self.attributes = Some(value); + self + } +} + +impl<'de> Deserialize<'de> for MetricMonitorAsset { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct MetricMonitorAssetVisitor; + impl<'a> Visitor<'a> for MetricMonitorAssetVisitor { + type Value = MetricMonitorAsset; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut attributes: Option = None; + let mut id: Option = None; + let mut type_: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "attributes" => { + if v.is_null() { + continue; + } + attributes = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "id" => { + id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::MetricMonitorType::UnparsedObject( + _type_, + ) => { + _unparsed = true; + } + _ => {} + } + } + } + &_ => {} + } + } + let id = id.ok_or_else(|| M::Error::missing_field("id"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = MetricMonitorAsset { + attributes, + id, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(MetricMonitorAssetVisitor) + } +} diff --git a/src/datadogV2/model/model_metric_monitor_type.rs b/src/datadogV2/model/model_metric_monitor_type.rs new file mode 100644 index 000000000..8f05b2d9a --- /dev/null +++ b/src/datadogV2/model/model_metric_monitor_type.rs @@ -0,0 +1,48 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum MetricMonitorType { + MONITORS, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for MetricMonitorType { + fn to_string(&self) -> String { + match self { + Self::MONITORS => String::from("monitors"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for MetricMonitorType { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for MetricMonitorType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "monitors" => Self::MONITORS, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_metric_notebook_asset.rs b/src/datadogV2/model/model_metric_notebook_asset.rs new file mode 100644 index 000000000..82ee2f2e8 --- /dev/null +++ b/src/datadogV2/model/model_metric_notebook_asset.rs @@ -0,0 +1,112 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// A notebook object with title. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct MetricNotebookAsset { + /// Assets where only included attribute is its title + #[serde(rename = "attributes")] + pub attributes: Option, + /// The related notebook's ID. + #[serde(rename = "id")] + pub id: String, + /// Notebook resource type. + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::MetricNotebookType, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl MetricNotebookAsset { + pub fn new( + id: String, + type_: crate::datadogV2::model::MetricNotebookType, + ) -> MetricNotebookAsset { + MetricNotebookAsset { + attributes: None, + id, + type_, + _unparsed: false, + } + } + + pub fn attributes(mut self, value: crate::datadogV2::model::MetricAssetAttributes) -> Self { + self.attributes = Some(value); + self + } +} + +impl<'de> Deserialize<'de> for MetricNotebookAsset { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct MetricNotebookAssetVisitor; + impl<'a> Visitor<'a> for MetricNotebookAssetVisitor { + type Value = MetricNotebookAsset; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut attributes: Option = None; + let mut id: Option = None; + let mut type_: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "attributes" => { + if v.is_null() { + continue; + } + attributes = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "id" => { + id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::MetricNotebookType::UnparsedObject( + _type_, + ) => { + _unparsed = true; + } + _ => {} + } + } + } + &_ => {} + } + } + let id = id.ok_or_else(|| M::Error::missing_field("id"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = MetricNotebookAsset { + attributes, + id, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(MetricNotebookAssetVisitor) + } +} diff --git a/src/datadogV2/model/model_metric_notebook_type.rs b/src/datadogV2/model/model_metric_notebook_type.rs new file mode 100644 index 000000000..32e59590f --- /dev/null +++ b/src/datadogV2/model/model_metric_notebook_type.rs @@ -0,0 +1,48 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum MetricNotebookType { + NOTEBOOKS, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for MetricNotebookType { + fn to_string(&self) -> String { + match self { + Self::NOTEBOOKS => String::from("notebooks"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for MetricNotebookType { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for MetricNotebookType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "notebooks" => Self::NOTEBOOKS, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_metric_payload.rs b/src/datadogV2/model/model_metric_payload.rs index 5d0b40158..a7cf64606 100644 --- a/src/datadogV2/model/model_metric_payload.rs +++ b/src/datadogV2/model/model_metric_payload.rs @@ -11,7 +11,7 @@ use std::fmt::{self, Formatter}; #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] pub struct MetricPayload { - /// A list of time series to submit to Datadog. + /// A list of timeseries to submit to Datadog. #[serde(rename = "series")] pub series: Vec, #[serde(skip)] diff --git a/src/datadogV2/model/model_metric_series.rs b/src/datadogV2/model/model_metric_series.rs index 5a022d92e..4ea8ac3a1 100644 --- a/src/datadogV2/model/model_metric_series.rs +++ b/src/datadogV2/model/model_metric_series.rs @@ -12,7 +12,7 @@ use std::fmt::{self, Formatter}; #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] pub struct MetricSeries { - /// If the type of the metric is rate or count, define the corresponding interval. + /// If the type of the metric is rate or count, define the corresponding interval in seconds. #[serde(rename = "interval")] pub interval: Option, /// Metadata for the metric. diff --git a/src/datadogV2/model/model_metric_slo_asset.rs b/src/datadogV2/model/model_metric_slo_asset.rs new file mode 100644 index 000000000..7b9217982 --- /dev/null +++ b/src/datadogV2/model/model_metric_slo_asset.rs @@ -0,0 +1,109 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// A SLO object with title. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct MetricSLOAsset { + /// Assets where only included attribute is its title + #[serde(rename = "attributes")] + pub attributes: Option, + /// The SLO ID. + #[serde(rename = "id")] + pub id: String, + /// SLO resource type. + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::MetricSLOType, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl MetricSLOAsset { + pub fn new(id: String, type_: crate::datadogV2::model::MetricSLOType) -> MetricSLOAsset { + MetricSLOAsset { + attributes: None, + id, + type_, + _unparsed: false, + } + } + + pub fn attributes(mut self, value: crate::datadogV2::model::MetricAssetAttributes) -> Self { + self.attributes = Some(value); + self + } +} + +impl<'de> Deserialize<'de> for MetricSLOAsset { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct MetricSLOAssetVisitor; + impl<'a> Visitor<'a> for MetricSLOAssetVisitor { + type Value = MetricSLOAsset; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut attributes: Option = None; + let mut id: Option = None; + let mut type_: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "attributes" => { + if v.is_null() { + continue; + } + attributes = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "id" => { + id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::MetricSLOType::UnparsedObject( + _type_, + ) => { + _unparsed = true; + } + _ => {} + } + } + } + &_ => {} + } + } + let id = id.ok_or_else(|| M::Error::missing_field("id"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = MetricSLOAsset { + attributes, + id, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(MetricSLOAssetVisitor) + } +} diff --git a/src/datadogV2/model/model_metric_slo_type.rs b/src/datadogV2/model/model_metric_slo_type.rs new file mode 100644 index 000000000..c27cfe3bd --- /dev/null +++ b/src/datadogV2/model/model_metric_slo_type.rs @@ -0,0 +1,48 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum MetricSLOType { + SLOS, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for MetricSLOType { + fn to_string(&self) -> String { + match self { + Self::SLOS => String::from("slos"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for MetricSLOType { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for MetricSLOType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "slos" => Self::SLOS, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_nullable_user_relationship.rs b/src/datadogV2/model/model_nullable_user_relationship.rs new file mode 100644 index 000000000..6300fbd86 --- /dev/null +++ b/src/datadogV2/model/model_nullable_user_relationship.rs @@ -0,0 +1,74 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Relationship to user. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct NullableUserRelationship { + /// Relationship to user object. + #[serialize_always] + #[serde(rename = "data")] + pub data: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl NullableUserRelationship { + pub fn new( + data: Option, + ) -> NullableUserRelationship { + NullableUserRelationship { + data, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for NullableUserRelationship { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct NullableUserRelationshipVisitor; + impl<'a> Visitor<'a> for NullableUserRelationshipVisitor { + type Value = NullableUserRelationship; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut data: Option< + Option, + > = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "data" => { + data = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + let data = data.ok_or_else(|| M::Error::missing_field("data"))?; + + let content = NullableUserRelationship { data, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(NullableUserRelationshipVisitor) + } +} diff --git a/src/datadogV2/model/model_nullable_user_relationship_data.rs b/src/datadogV2/model/model_nullable_user_relationship_data.rs new file mode 100644 index 000000000..a32c6bfc2 --- /dev/null +++ b/src/datadogV2/model/model_nullable_user_relationship_data.rs @@ -0,0 +1,95 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Relationship to user object. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct NullableUserRelationshipData { + /// A unique identifier that represents the user. + #[serde(rename = "id")] + pub id: String, + /// User resource type. + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::UserResourceType, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl NullableUserRelationshipData { + pub fn new( + id: String, + type_: crate::datadogV2::model::UserResourceType, + ) -> NullableUserRelationshipData { + NullableUserRelationshipData { + id, + type_, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for NullableUserRelationshipData { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct NullableUserRelationshipDataVisitor; + impl<'a> Visitor<'a> for NullableUserRelationshipDataVisitor { + type Value = NullableUserRelationshipData; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut id: Option = None; + let mut type_: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "id" => { + id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::UserResourceType::UnparsedObject( + _type_, + ) => { + _unparsed = true; + } + _ => {} + } + } + } + &_ => {} + } + } + let id = id.ok_or_else(|| M::Error::missing_field("id"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = NullableUserRelationshipData { + id, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(NullableUserRelationshipDataVisitor) + } +} diff --git a/src/datadogV2/model/model_open_api_endpoint.rs b/src/datadogV2/model/model_open_api_endpoint.rs new file mode 100644 index 000000000..b1a983993 --- /dev/null +++ b/src/datadogV2/model/model_open_api_endpoint.rs @@ -0,0 +1,102 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Endpoint info extracted from an `OpenAPI` specification. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct OpenAPIEndpoint { + /// The endpoint method. + #[serde(rename = "method")] + pub method: Option, + /// The endpoint path. + #[serde(rename = "path")] + pub path: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl OpenAPIEndpoint { + pub fn new() -> OpenAPIEndpoint { + OpenAPIEndpoint { + method: None, + path: None, + _unparsed: false, + } + } + + pub fn method(mut self, value: String) -> Self { + self.method = Some(value); + self + } + + pub fn path(mut self, value: String) -> Self { + self.path = Some(value); + self + } +} + +impl Default for OpenAPIEndpoint { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for OpenAPIEndpoint { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct OpenAPIEndpointVisitor; + impl<'a> Visitor<'a> for OpenAPIEndpointVisitor { + type Value = OpenAPIEndpoint; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut method: Option = None; + let mut path: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "method" => { + if v.is_null() { + continue; + } + method = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "path" => { + if v.is_null() { + continue; + } + path = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = OpenAPIEndpoint { + method, + path, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(OpenAPIEndpointVisitor) + } +} diff --git a/src/datadogV2/model/model_open_api_file.rs b/src/datadogV2/model/model_open_api_file.rs new file mode 100644 index 000000000..e054dbbdc --- /dev/null +++ b/src/datadogV2/model/model_open_api_file.rs @@ -0,0 +1,86 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Object for API data in an `OpenAPI` format as a file. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct OpenAPIFile { + /// Binary `OpenAPI` spec file + #[serde(rename = "openapi_spec_file")] + pub openapi_spec_file: Option>, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl OpenAPIFile { + pub fn new() -> OpenAPIFile { + OpenAPIFile { + openapi_spec_file: None, + _unparsed: false, + } + } + + pub fn openapi_spec_file(mut self, value: Vec) -> Self { + self.openapi_spec_file = Some(value); + self + } +} + +impl Default for OpenAPIFile { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for OpenAPIFile { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct OpenAPIFileVisitor; + impl<'a> Visitor<'a> for OpenAPIFileVisitor { + type Value = OpenAPIFile; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut openapi_spec_file: Option> = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "openapi_spec_file" => { + if v.is_null() { + continue; + } + openapi_spec_file = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = OpenAPIFile { + openapi_spec_file, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(OpenAPIFileVisitor) + } +} diff --git a/src/datadogV2/model/model_project.rs b/src/datadogV2/model/model_project.rs new file mode 100644 index 000000000..e9ecf6540 --- /dev/null +++ b/src/datadogV2/model/model_project.rs @@ -0,0 +1,122 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// A Project +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct Project { + /// Project attributes + #[serde(rename = "attributes")] + pub attributes: crate::datadogV2::model::ProjectAttributes, + /// The Project's identifier + #[serde(rename = "id")] + pub id: String, + /// Project relationships + #[serde(rename = "relationships")] + pub relationships: Option, + /// Project resource type + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::ProjectResourceType, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl Project { + pub fn new( + attributes: crate::datadogV2::model::ProjectAttributes, + id: String, + type_: crate::datadogV2::model::ProjectResourceType, + ) -> Project { + Project { + attributes, + id, + relationships: None, + type_, + _unparsed: false, + } + } + + pub fn relationships(mut self, value: crate::datadogV2::model::ProjectRelationships) -> Self { + self.relationships = Some(value); + self + } +} + +impl<'de> Deserialize<'de> for Project { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct ProjectVisitor; + impl<'a> Visitor<'a> for ProjectVisitor { + type Value = Project; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut attributes: Option = None; + let mut id: Option = None; + let mut relationships: Option = None; + let mut type_: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "attributes" => { + attributes = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "id" => { + id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "relationships" => { + if v.is_null() { + continue; + } + relationships = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::ProjectResourceType::UnparsedObject(_type_) => { + _unparsed = true; + }, + _ => {} + } + } + } + &_ => {} + } + } + let attributes = attributes.ok_or_else(|| M::Error::missing_field("attributes"))?; + let id = id.ok_or_else(|| M::Error::missing_field("id"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = Project { + attributes, + id, + relationships, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(ProjectVisitor) + } +} diff --git a/src/datadogV2/model/model_project_attributes.rs b/src/datadogV2/model/model_project_attributes.rs new file mode 100644 index 000000000..e338ddb05 --- /dev/null +++ b/src/datadogV2/model/model_project_attributes.rs @@ -0,0 +1,102 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Project attributes +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct ProjectAttributes { + /// The project's key + #[serde(rename = "key")] + pub key: Option, + /// Project's name + #[serde(rename = "name")] + pub name: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl ProjectAttributes { + pub fn new() -> ProjectAttributes { + ProjectAttributes { + key: None, + name: None, + _unparsed: false, + } + } + + pub fn key(mut self, value: String) -> Self { + self.key = Some(value); + self + } + + pub fn name(mut self, value: String) -> Self { + self.name = Some(value); + self + } +} + +impl Default for ProjectAttributes { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for ProjectAttributes { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct ProjectAttributesVisitor; + impl<'a> Visitor<'a> for ProjectAttributesVisitor { + type Value = ProjectAttributes; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut key: Option = None; + let mut name: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "key" => { + if v.is_null() { + continue; + } + key = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "name" => { + if v.is_null() { + continue; + } + name = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = ProjectAttributes { + key, + name, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(ProjectAttributesVisitor) + } +} diff --git a/src/datadogV2/model/model_project_create.rs b/src/datadogV2/model/model_project_create.rs new file mode 100644 index 000000000..cb4e7cd6c --- /dev/null +++ b/src/datadogV2/model/model_project_create.rs @@ -0,0 +1,93 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Project create +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct ProjectCreate { + /// Project creation attributes + #[serde(rename = "attributes")] + pub attributes: crate::datadogV2::model::ProjectCreateAttributes, + /// Project resource type + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::ProjectResourceType, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl ProjectCreate { + pub fn new( + attributes: crate::datadogV2::model::ProjectCreateAttributes, + type_: crate::datadogV2::model::ProjectResourceType, + ) -> ProjectCreate { + ProjectCreate { + attributes, + type_, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for ProjectCreate { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct ProjectCreateVisitor; + impl<'a> Visitor<'a> for ProjectCreateVisitor { + type Value = ProjectCreate; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut attributes: Option = None; + let mut type_: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "attributes" => { + attributes = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::ProjectResourceType::UnparsedObject(_type_) => { + _unparsed = true; + }, + _ => {} + } + } + } + &_ => {} + } + } + let attributes = attributes.ok_or_else(|| M::Error::missing_field("attributes"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = ProjectCreate { + attributes, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(ProjectCreateVisitor) + } +} diff --git a/src/datadogV2/model/model_project_create_attributes.rs b/src/datadogV2/model/model_project_create_attributes.rs new file mode 100644 index 000000000..b6b105a40 --- /dev/null +++ b/src/datadogV2/model/model_project_create_attributes.rs @@ -0,0 +1,82 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Project creation attributes +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct ProjectCreateAttributes { + /// Project's key. Cannot be "CASE" + #[serde(rename = "key")] + pub key: String, + /// name + #[serde(rename = "name")] + pub name: String, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl ProjectCreateAttributes { + pub fn new(key: String, name: String) -> ProjectCreateAttributes { + ProjectCreateAttributes { + key, + name, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for ProjectCreateAttributes { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct ProjectCreateAttributesVisitor; + impl<'a> Visitor<'a> for ProjectCreateAttributesVisitor { + type Value = ProjectCreateAttributes; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut key: Option = None; + let mut name: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "key" => { + key = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "name" => { + name = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + let key = key.ok_or_else(|| M::Error::missing_field("key"))?; + let name = name.ok_or_else(|| M::Error::missing_field("name"))?; + + let content = ProjectCreateAttributes { + key, + name, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(ProjectCreateAttributesVisitor) + } +} diff --git a/src/datadogV2/model/model_project_create_request.rs b/src/datadogV2/model/model_project_create_request.rs new file mode 100644 index 000000000..1768b0458 --- /dev/null +++ b/src/datadogV2/model/model_project_create_request.rs @@ -0,0 +1,69 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Project create request +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct ProjectCreateRequest { + /// Project create + #[serde(rename = "data")] + pub data: crate::datadogV2::model::ProjectCreate, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl ProjectCreateRequest { + pub fn new(data: crate::datadogV2::model::ProjectCreate) -> ProjectCreateRequest { + ProjectCreateRequest { + data, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for ProjectCreateRequest { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct ProjectCreateRequestVisitor; + impl<'a> Visitor<'a> for ProjectCreateRequestVisitor { + type Value = ProjectCreateRequest; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut data: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "data" => { + data = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + let data = data.ok_or_else(|| M::Error::missing_field("data"))?; + + let content = ProjectCreateRequest { data, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(ProjectCreateRequestVisitor) + } +} diff --git a/src/datadogV2/model/model_project_relationship.rs b/src/datadogV2/model/model_project_relationship.rs new file mode 100644 index 000000000..35641b7e3 --- /dev/null +++ b/src/datadogV2/model/model_project_relationship.rs @@ -0,0 +1,69 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Relationship to project +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct ProjectRelationship { + /// Relationship to project object + #[serde(rename = "data")] + pub data: crate::datadogV2::model::ProjectRelationshipData, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl ProjectRelationship { + pub fn new(data: crate::datadogV2::model::ProjectRelationshipData) -> ProjectRelationship { + ProjectRelationship { + data, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for ProjectRelationship { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct ProjectRelationshipVisitor; + impl<'a> Visitor<'a> for ProjectRelationshipVisitor { + type Value = ProjectRelationship; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut data: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "data" => { + data = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + let data = data.ok_or_else(|| M::Error::missing_field("data"))?; + + let content = ProjectRelationship { data, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(ProjectRelationshipVisitor) + } +} diff --git a/src/datadogV2/model/model_project_relationship_data.rs b/src/datadogV2/model/model_project_relationship_data.rs new file mode 100644 index 000000000..8286d2cfd --- /dev/null +++ b/src/datadogV2/model/model_project_relationship_data.rs @@ -0,0 +1,93 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Relationship to project object +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct ProjectRelationshipData { + /// A unique identifier that represents the project + #[serde(rename = "id")] + pub id: String, + /// Project resource type + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::ProjectResourceType, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl ProjectRelationshipData { + pub fn new( + id: String, + type_: crate::datadogV2::model::ProjectResourceType, + ) -> ProjectRelationshipData { + ProjectRelationshipData { + id, + type_, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for ProjectRelationshipData { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct ProjectRelationshipDataVisitor; + impl<'a> Visitor<'a> for ProjectRelationshipDataVisitor { + type Value = ProjectRelationshipData; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut id: Option = None; + let mut type_: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "id" => { + id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::ProjectResourceType::UnparsedObject(_type_) => { + _unparsed = true; + }, + _ => {} + } + } + } + &_ => {} + } + } + let id = id.ok_or_else(|| M::Error::missing_field("id"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = ProjectRelationshipData { + id, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(ProjectRelationshipDataVisitor) + } +} diff --git a/src/datadogV2/model/model_project_relationships.rs b/src/datadogV2/model/model_project_relationships.rs new file mode 100644 index 000000000..46ab21a1e --- /dev/null +++ b/src/datadogV2/model/model_project_relationships.rs @@ -0,0 +1,105 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Project relationships +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct ProjectRelationships { + /// Relationship between a team and a team link + #[serde(rename = "member_team")] + pub member_team: Option, + /// Relationship to users. + #[serde(rename = "member_user")] + pub member_user: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl ProjectRelationships { + pub fn new() -> ProjectRelationships { + ProjectRelationships { + member_team: None, + member_user: None, + _unparsed: false, + } + } + + pub fn member_team(mut self, value: crate::datadogV2::model::RelationshipToTeamLinks) -> Self { + self.member_team = Some(value); + self + } + + pub fn member_user(mut self, value: crate::datadogV2::model::UsersRelationship) -> Self { + self.member_user = Some(value); + self + } +} + +impl Default for ProjectRelationships { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for ProjectRelationships { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct ProjectRelationshipsVisitor; + impl<'a> Visitor<'a> for ProjectRelationshipsVisitor { + type Value = ProjectRelationships; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut member_team: Option = + None; + let mut member_user: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "member_team" => { + if v.is_null() { + continue; + } + member_team = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "member_user" => { + if v.is_null() { + continue; + } + member_user = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = ProjectRelationships { + member_team, + member_user, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(ProjectRelationshipsVisitor) + } +} diff --git a/src/datadogV2/model/model_project_resource_type.rs b/src/datadogV2/model/model_project_resource_type.rs new file mode 100644 index 000000000..975757101 --- /dev/null +++ b/src/datadogV2/model/model_project_resource_type.rs @@ -0,0 +1,48 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum ProjectResourceType { + PROJECT, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for ProjectResourceType { + fn to_string(&self) -> String { + match self { + Self::PROJECT => String::from("project"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for ProjectResourceType { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for ProjectResourceType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "project" => Self::PROJECT, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_project_response.rs b/src/datadogV2/model/model_project_response.rs new file mode 100644 index 000000000..978f28faf --- /dev/null +++ b/src/datadogV2/model/model_project_response.rs @@ -0,0 +1,82 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Project response +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct ProjectResponse { + /// A Project + #[serde(rename = "data")] + pub data: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl ProjectResponse { + pub fn new() -> ProjectResponse { + ProjectResponse { + data: None, + _unparsed: false, + } + } + + pub fn data(mut self, value: crate::datadogV2::model::Project) -> Self { + self.data = Some(value); + self + } +} + +impl Default for ProjectResponse { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for ProjectResponse { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct ProjectResponseVisitor; + impl<'a> Visitor<'a> for ProjectResponseVisitor { + type Value = ProjectResponse; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut data: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "data" => { + if v.is_null() { + continue; + } + data = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = ProjectResponse { data, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(ProjectResponseVisitor) + } +} diff --git a/src/datadogV2/model/model_projects_response.rs b/src/datadogV2/model/model_projects_response.rs new file mode 100644 index 000000000..e39b25e9a --- /dev/null +++ b/src/datadogV2/model/model_projects_response.rs @@ -0,0 +1,82 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Response with projects +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct ProjectsResponse { + /// Projects response data + #[serde(rename = "data")] + pub data: Option>, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl ProjectsResponse { + pub fn new() -> ProjectsResponse { + ProjectsResponse { + data: None, + _unparsed: false, + } + } + + pub fn data(mut self, value: Vec) -> Self { + self.data = Some(value); + self + } +} + +impl Default for ProjectsResponse { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for ProjectsResponse { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct ProjectsResponseVisitor; + impl<'a> Visitor<'a> for ProjectsResponseVisitor { + type Value = ProjectsResponse; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut data: Option> = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "data" => { + if v.is_null() { + continue; + } + data = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = ProjectsResponse { data, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(ProjectsResponseVisitor) + } +} diff --git a/src/datadogV2/model/model_relationship_to_team.rs b/src/datadogV2/model/model_relationship_to_team.rs new file mode 100644 index 000000000..a985095f4 --- /dev/null +++ b/src/datadogV2/model/model_relationship_to_team.rs @@ -0,0 +1,82 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Relationship to team. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct RelationshipToTeam { + /// Relationship to Team object. + #[serde(rename = "data")] + pub data: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl RelationshipToTeam { + pub fn new() -> RelationshipToTeam { + RelationshipToTeam { + data: None, + _unparsed: false, + } + } + + pub fn data(mut self, value: crate::datadogV2::model::RelationshipToTeamData) -> Self { + self.data = Some(value); + self + } +} + +impl Default for RelationshipToTeam { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for RelationshipToTeam { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct RelationshipToTeamVisitor; + impl<'a> Visitor<'a> for RelationshipToTeamVisitor { + type Value = RelationshipToTeam; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut data: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "data" => { + if v.is_null() { + continue; + } + data = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = RelationshipToTeam { data, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(RelationshipToTeamVisitor) + } +} diff --git a/src/datadogV2/model/model_relationship_to_team_data.rs b/src/datadogV2/model/model_relationship_to_team_data.rs new file mode 100644 index 000000000..9c0ab3705 --- /dev/null +++ b/src/datadogV2/model/model_relationship_to_team_data.rs @@ -0,0 +1,110 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Relationship to Team object. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct RelationshipToTeamData { + /// The unique identifier of the team. + #[serde(rename = "id")] + pub id: Option, + /// Team type + #[serde(rename = "type")] + pub type_: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl RelationshipToTeamData { + pub fn new() -> RelationshipToTeamData { + RelationshipToTeamData { + id: None, + type_: None, + _unparsed: false, + } + } + + pub fn id(mut self, value: String) -> Self { + self.id = Some(value); + self + } + + pub fn type_(mut self, value: crate::datadogV2::model::TeamType) -> Self { + self.type_ = Some(value); + self + } +} + +impl Default for RelationshipToTeamData { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for RelationshipToTeamData { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct RelationshipToTeamDataVisitor; + impl<'a> Visitor<'a> for RelationshipToTeamDataVisitor { + type Value = RelationshipToTeamData; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut id: Option = None; + let mut type_: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "id" => { + if v.is_null() { + continue; + } + id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + if v.is_null() { + continue; + } + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::TeamType::UnparsedObject(_type_) => { + _unparsed = true; + } + _ => {} + } + } + } + &_ => {} + } + } + + let content = RelationshipToTeamData { + id, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(RelationshipToTeamDataVisitor) + } +} diff --git a/src/datadogV2/model/model_security_monitoring_rule_update_payload.rs b/src/datadogV2/model/model_security_monitoring_rule_update_payload.rs index 4a6a0fd7a..fb75b6811 100644 --- a/src/datadogV2/model/model_security_monitoring_rule_update_payload.rs +++ b/src/datadogV2/model/model_security_monitoring_rule_update_payload.rs @@ -18,7 +18,7 @@ pub struct SecurityMonitoringRuleUpdatePayload { #[serde(rename = "complianceSignalOptions")] pub compliance_signal_options: Option, - /// Additional queries to filter matched events before they are processed. + /// Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules. #[serde(rename = "filters")] pub filters: Option>, /// Whether the notifications include the triggering group-by values in their title. diff --git a/src/datadogV2/model/model_security_monitoring_signal_rule_create_payload.rs b/src/datadogV2/model/model_security_monitoring_signal_rule_create_payload.rs index 5128a28a5..90323c4bc 100644 --- a/src/datadogV2/model/model_security_monitoring_signal_rule_create_payload.rs +++ b/src/datadogV2/model/model_security_monitoring_signal_rule_create_payload.rs @@ -14,7 +14,7 @@ pub struct SecurityMonitoringSignalRuleCreatePayload { /// Cases for generating signals. #[serde(rename = "cases")] pub cases: Vec, - /// Additional queries to filter matched events before they are processed. + /// Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules. #[serde(rename = "filters")] pub filters: Option>, /// Whether the notifications include the triggering group-by values in their title. diff --git a/src/datadogV2/model/model_security_monitoring_signal_rule_response.rs b/src/datadogV2/model/model_security_monitoring_signal_rule_response.rs index e7a30670c..7e3000daa 100644 --- a/src/datadogV2/model/model_security_monitoring_signal_rule_response.rs +++ b/src/datadogV2/model/model_security_monitoring_signal_rule_response.rs @@ -23,7 +23,7 @@ pub struct SecurityMonitoringSignalRuleResponse { /// When the rule will be deprecated, timestamp in milliseconds. #[serde(rename = "deprecationDate")] pub deprecation_date: Option, - /// Additional queries to filter matched events before they are processed. + /// Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules. #[serde(rename = "filters")] pub filters: Option>, /// Whether the notifications include the triggering group-by values in their title. diff --git a/src/datadogV2/model/model_security_monitoring_standard_rule_create_payload.rs b/src/datadogV2/model/model_security_monitoring_standard_rule_create_payload.rs index 41cd98314..d6ca67181 100644 --- a/src/datadogV2/model/model_security_monitoring_standard_rule_create_payload.rs +++ b/src/datadogV2/model/model_security_monitoring_standard_rule_create_payload.rs @@ -14,7 +14,7 @@ pub struct SecurityMonitoringStandardRuleCreatePayload { /// Cases for generating signals. #[serde(rename = "cases")] pub cases: Vec, - /// Additional queries to filter matched events before they are processed. + /// Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules. #[serde(rename = "filters")] pub filters: Option>, /// Whether the notifications include the triggering group-by values in their title. diff --git a/src/datadogV2/model/model_security_monitoring_standard_rule_response.rs b/src/datadogV2/model/model_security_monitoring_standard_rule_response.rs index 59f3b9f8e..e7b6a22c9 100644 --- a/src/datadogV2/model/model_security_monitoring_standard_rule_response.rs +++ b/src/datadogV2/model/model_security_monitoring_standard_rule_response.rs @@ -27,7 +27,7 @@ pub struct SecurityMonitoringStandardRuleResponse { /// When the rule will be deprecated, timestamp in milliseconds. #[serde(rename = "deprecationDate")] pub deprecation_date: Option, - /// Additional queries to filter matched events before they are processed. + /// Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules. #[serde(rename = "filters")] pub filters: Option>, /// Whether the notifications include the triggering group-by values in their title. diff --git a/src/datadogV2/model/model_security_monitoring_suppression.rs b/src/datadogV2/model/model_security_monitoring_suppression.rs new file mode 100644 index 000000000..4ff6b5b0a --- /dev/null +++ b/src/datadogV2/model/model_security_monitoring_suppression.rs @@ -0,0 +1,136 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// The suppression rule's properties. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct SecurityMonitoringSuppression { + /// The attributes of the suppression rule. + #[serde(rename = "attributes")] + pub attributes: Option, + /// The ID of the suppression rule. + #[serde(rename = "id")] + pub id: Option, + /// The type of the resource. The value should always be `suppressions`. + #[serde(rename = "type")] + pub type_: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl SecurityMonitoringSuppression { + pub fn new() -> SecurityMonitoringSuppression { + SecurityMonitoringSuppression { + attributes: None, + id: None, + type_: None, + _unparsed: false, + } + } + + pub fn attributes( + mut self, + value: crate::datadogV2::model::SecurityMonitoringSuppressionAttributes, + ) -> Self { + self.attributes = Some(value); + self + } + + pub fn id(mut self, value: String) -> Self { + self.id = Some(value); + self + } + + pub fn type_( + mut self, + value: crate::datadogV2::model::SecurityMonitoringSuppressionType, + ) -> Self { + self.type_ = Some(value); + self + } +} + +impl Default for SecurityMonitoringSuppression { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for SecurityMonitoringSuppression { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct SecurityMonitoringSuppressionVisitor; + impl<'a> Visitor<'a> for SecurityMonitoringSuppressionVisitor { + type Value = SecurityMonitoringSuppression; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut attributes: Option< + crate::datadogV2::model::SecurityMonitoringSuppressionAttributes, + > = None; + let mut id: Option = None; + let mut type_: Option = + None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "attributes" => { + if v.is_null() { + continue; + } + attributes = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "id" => { + if v.is_null() { + continue; + } + id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + if v.is_null() { + continue; + } + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::SecurityMonitoringSuppressionType::UnparsedObject(_type_) => { + _unparsed = true; + }, + _ => {} + } + } + } + &_ => {} + } + } + + let content = SecurityMonitoringSuppression { + attributes, + id, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(SecurityMonitoringSuppressionVisitor) + } +} diff --git a/src/datadogV2/model/model_security_monitoring_suppression_attributes.rs b/src/datadogV2/model/model_security_monitoring_suppression_attributes.rs new file mode 100644 index 000000000..4126872c8 --- /dev/null +++ b/src/datadogV2/model/model_security_monitoring_suppression_attributes.rs @@ -0,0 +1,260 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// The attributes of the suppression rule. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct SecurityMonitoringSuppressionAttributes { + /// A Unix millisecond timestamp given the creation date of the suppression rule. + #[serde(rename = "creation_date")] + pub creation_date: Option, + /// A user. + #[serde(rename = "creator")] + pub creator: Option, + /// A description for the suppression rule. + #[serde(rename = "description")] + pub description: Option, + /// Whether the suppression rule is enabled. + #[serde(rename = "enabled")] + pub enabled: Option, + /// A Unix millisecond timestamp giving an expiration date for the suppression rule. After this date, it won't suppress signals anymore. + #[serde(rename = "expiration_date")] + pub expiration_date: Option, + /// The name of the suppression rule. + #[serde(rename = "name")] + pub name: Option, + /// The rule query of the suppression rule, with the same syntax as the search bar for detection rules. + #[serde(rename = "rule_query")] + pub rule_query: Option, + /// The suppression query of the suppression rule. If a signal matches this query, it is suppressed and not triggered. Same syntax as the queries to search signals in the signal explorer. + #[serde(rename = "suppression_query")] + pub suppression_query: Option, + /// A Unix millisecond timestamp given the update date of the suppression rule. + #[serde(rename = "update_date")] + pub update_date: Option, + /// A user. + #[serde(rename = "updater")] + pub updater: Option, + /// The version of the suppression rule; it starts at 1, and is incremented at each update. + #[serde(rename = "version")] + pub version: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl SecurityMonitoringSuppressionAttributes { + pub fn new() -> SecurityMonitoringSuppressionAttributes { + SecurityMonitoringSuppressionAttributes { + creation_date: None, + creator: None, + description: None, + enabled: None, + expiration_date: None, + name: None, + rule_query: None, + suppression_query: None, + update_date: None, + updater: None, + version: None, + _unparsed: false, + } + } + + pub fn creation_date(mut self, value: i64) -> Self { + self.creation_date = Some(value); + self + } + + pub fn creator(mut self, value: crate::datadogV2::model::SecurityMonitoringUser) -> Self { + self.creator = Some(value); + self + } + + pub fn description(mut self, value: String) -> Self { + self.description = Some(value); + self + } + + pub fn enabled(mut self, value: bool) -> Self { + self.enabled = Some(value); + self + } + + pub fn expiration_date(mut self, value: i64) -> Self { + self.expiration_date = Some(value); + self + } + + pub fn name(mut self, value: String) -> Self { + self.name = Some(value); + self + } + + pub fn rule_query(mut self, value: String) -> Self { + self.rule_query = Some(value); + self + } + + pub fn suppression_query(mut self, value: String) -> Self { + self.suppression_query = Some(value); + self + } + + pub fn update_date(mut self, value: i64) -> Self { + self.update_date = Some(value); + self + } + + pub fn updater(mut self, value: crate::datadogV2::model::SecurityMonitoringUser) -> Self { + self.updater = Some(value); + self + } + + pub fn version(mut self, value: i32) -> Self { + self.version = Some(value); + self + } +} + +impl Default for SecurityMonitoringSuppressionAttributes { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for SecurityMonitoringSuppressionAttributes { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct SecurityMonitoringSuppressionAttributesVisitor; + impl<'a> Visitor<'a> for SecurityMonitoringSuppressionAttributesVisitor { + type Value = SecurityMonitoringSuppressionAttributes; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut creation_date: Option = None; + let mut creator: Option = None; + let mut description: Option = None; + let mut enabled: Option = None; + let mut expiration_date: Option = None; + let mut name: Option = None; + let mut rule_query: Option = None; + let mut suppression_query: Option = None; + let mut update_date: Option = None; + let mut updater: Option = None; + let mut version: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "creation_date" => { + if v.is_null() { + continue; + } + creation_date = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "creator" => { + if v.is_null() { + continue; + } + creator = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "description" => { + if v.is_null() { + continue; + } + description = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "enabled" => { + if v.is_null() { + continue; + } + enabled = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "expiration_date" => { + if v.is_null() { + continue; + } + expiration_date = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "name" => { + if v.is_null() { + continue; + } + name = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "rule_query" => { + if v.is_null() { + continue; + } + rule_query = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "suppression_query" => { + if v.is_null() { + continue; + } + suppression_query = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "update_date" => { + if v.is_null() { + continue; + } + update_date = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "updater" => { + if v.is_null() { + continue; + } + updater = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "version" => { + if v.is_null() { + continue; + } + version = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = SecurityMonitoringSuppressionAttributes { + creation_date, + creator, + description, + enabled, + expiration_date, + name, + rule_query, + suppression_query, + update_date, + updater, + version, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(SecurityMonitoringSuppressionAttributesVisitor) + } +} diff --git a/src/datadogV2/model/model_security_monitoring_suppression_create_attributes.rs b/src/datadogV2/model/model_security_monitoring_suppression_create_attributes.rs new file mode 100644 index 000000000..add5d717f --- /dev/null +++ b/src/datadogV2/model/model_security_monitoring_suppression_create_attributes.rs @@ -0,0 +1,145 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Object containing the attributes of the suppression rule to be created. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct SecurityMonitoringSuppressionCreateAttributes { + /// A description for the suppression rule. + #[serde(rename = "description")] + pub description: Option, + /// Whether the suppression rule is enabled. + #[serde(rename = "enabled")] + pub enabled: bool, + /// A Unix millisecond timestamp giving an expiration date for the suppression rule. After this date, it won't suppress signals anymore. + #[serde(rename = "expiration_date")] + pub expiration_date: Option, + /// The name of the suppression rule. + #[serde(rename = "name")] + pub name: String, + /// The rule query of the suppression rule, with the same syntax as the search bar for detection rules. + #[serde(rename = "rule_query")] + pub rule_query: String, + /// The suppression query of the suppression rule. If a signal matches this query, it is suppressed and is not triggered . Same syntax as the queries to search signals in the signal explorer. + #[serde(rename = "suppression_query")] + pub suppression_query: String, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl SecurityMonitoringSuppressionCreateAttributes { + pub fn new( + enabled: bool, + name: String, + rule_query: String, + suppression_query: String, + ) -> SecurityMonitoringSuppressionCreateAttributes { + SecurityMonitoringSuppressionCreateAttributes { + description: None, + enabled, + expiration_date: None, + name, + rule_query, + suppression_query, + _unparsed: false, + } + } + + pub fn description(mut self, value: String) -> Self { + self.description = Some(value); + self + } + + pub fn expiration_date(mut self, value: i64) -> Self { + self.expiration_date = Some(value); + self + } +} + +impl<'de> Deserialize<'de> for SecurityMonitoringSuppressionCreateAttributes { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct SecurityMonitoringSuppressionCreateAttributesVisitor; + impl<'a> Visitor<'a> for SecurityMonitoringSuppressionCreateAttributesVisitor { + type Value = SecurityMonitoringSuppressionCreateAttributes; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut description: Option = None; + let mut enabled: Option = None; + let mut expiration_date: Option = None; + let mut name: Option = None; + let mut rule_query: Option = None; + let mut suppression_query: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "description" => { + if v.is_null() { + continue; + } + description = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "enabled" => { + enabled = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "expiration_date" => { + if v.is_null() { + continue; + } + expiration_date = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "name" => { + name = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "rule_query" => { + rule_query = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "suppression_query" => { + suppression_query = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + let enabled = enabled.ok_or_else(|| M::Error::missing_field("enabled"))?; + let name = name.ok_or_else(|| M::Error::missing_field("name"))?; + let rule_query = rule_query.ok_or_else(|| M::Error::missing_field("rule_query"))?; + let suppression_query = suppression_query + .ok_or_else(|| M::Error::missing_field("suppression_query"))?; + + let content = SecurityMonitoringSuppressionCreateAttributes { + description, + enabled, + expiration_date, + name, + rule_query, + suppression_query, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(SecurityMonitoringSuppressionCreateAttributesVisitor) + } +} diff --git a/src/datadogV2/model/model_security_monitoring_suppression_create_data.rs b/src/datadogV2/model/model_security_monitoring_suppression_create_data.rs new file mode 100644 index 000000000..060755071 --- /dev/null +++ b/src/datadogV2/model/model_security_monitoring_suppression_create_data.rs @@ -0,0 +1,96 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Object for a single suppression rule. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct SecurityMonitoringSuppressionCreateData { + /// Object containing the attributes of the suppression rule to be created. + #[serde(rename = "attributes")] + pub attributes: crate::datadogV2::model::SecurityMonitoringSuppressionCreateAttributes, + /// The type of the resource. The value should always be `suppressions`. + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::SecurityMonitoringSuppressionType, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl SecurityMonitoringSuppressionCreateData { + pub fn new( + attributes: crate::datadogV2::model::SecurityMonitoringSuppressionCreateAttributes, + type_: crate::datadogV2::model::SecurityMonitoringSuppressionType, + ) -> SecurityMonitoringSuppressionCreateData { + SecurityMonitoringSuppressionCreateData { + attributes, + type_, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for SecurityMonitoringSuppressionCreateData { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct SecurityMonitoringSuppressionCreateDataVisitor; + impl<'a> Visitor<'a> for SecurityMonitoringSuppressionCreateDataVisitor { + type Value = SecurityMonitoringSuppressionCreateData; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut attributes: Option< + crate::datadogV2::model::SecurityMonitoringSuppressionCreateAttributes, + > = None; + let mut type_: Option = + None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "attributes" => { + attributes = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::SecurityMonitoringSuppressionType::UnparsedObject(_type_) => { + _unparsed = true; + }, + _ => {} + } + } + } + &_ => {} + } + } + let attributes = attributes.ok_or_else(|| M::Error::missing_field("attributes"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = SecurityMonitoringSuppressionCreateData { + attributes, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(SecurityMonitoringSuppressionCreateDataVisitor) + } +} diff --git a/src/datadogV2/model/model_security_monitoring_suppression_create_request.rs b/src/datadogV2/model/model_security_monitoring_suppression_create_request.rs new file mode 100644 index 000000000..5e2fd6d71 --- /dev/null +++ b/src/datadogV2/model/model_security_monitoring_suppression_create_request.rs @@ -0,0 +1,73 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Request object that includes the suppression rule that you would like to create. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct SecurityMonitoringSuppressionCreateRequest { + /// Object for a single suppression rule. + #[serde(rename = "data")] + pub data: crate::datadogV2::model::SecurityMonitoringSuppressionCreateData, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl SecurityMonitoringSuppressionCreateRequest { + pub fn new( + data: crate::datadogV2::model::SecurityMonitoringSuppressionCreateData, + ) -> SecurityMonitoringSuppressionCreateRequest { + SecurityMonitoringSuppressionCreateRequest { + data, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for SecurityMonitoringSuppressionCreateRequest { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct SecurityMonitoringSuppressionCreateRequestVisitor; + impl<'a> Visitor<'a> for SecurityMonitoringSuppressionCreateRequestVisitor { + type Value = SecurityMonitoringSuppressionCreateRequest; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut data: Option< + crate::datadogV2::model::SecurityMonitoringSuppressionCreateData, + > = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "data" => { + data = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + let data = data.ok_or_else(|| M::Error::missing_field("data"))?; + + let content = SecurityMonitoringSuppressionCreateRequest { data, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(SecurityMonitoringSuppressionCreateRequestVisitor) + } +} diff --git a/src/datadogV2/model/model_security_monitoring_suppression_response.rs b/src/datadogV2/model/model_security_monitoring_suppression_response.rs new file mode 100644 index 000000000..3ec6e03cd --- /dev/null +++ b/src/datadogV2/model/model_security_monitoring_suppression_response.rs @@ -0,0 +1,82 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Response object containing a single suppression rule. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct SecurityMonitoringSuppressionResponse { + /// The suppression rule's properties. + #[serde(rename = "data")] + pub data: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl SecurityMonitoringSuppressionResponse { + pub fn new() -> SecurityMonitoringSuppressionResponse { + SecurityMonitoringSuppressionResponse { + data: None, + _unparsed: false, + } + } + + pub fn data(mut self, value: crate::datadogV2::model::SecurityMonitoringSuppression) -> Self { + self.data = Some(value); + self + } +} + +impl Default for SecurityMonitoringSuppressionResponse { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for SecurityMonitoringSuppressionResponse { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct SecurityMonitoringSuppressionResponseVisitor; + impl<'a> Visitor<'a> for SecurityMonitoringSuppressionResponseVisitor { + type Value = SecurityMonitoringSuppressionResponse; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut data: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "data" => { + if v.is_null() { + continue; + } + data = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = SecurityMonitoringSuppressionResponse { data, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(SecurityMonitoringSuppressionResponseVisitor) + } +} diff --git a/src/datadogV2/model/model_security_monitoring_suppression_type.rs b/src/datadogV2/model/model_security_monitoring_suppression_type.rs new file mode 100644 index 000000000..0ce322285 --- /dev/null +++ b/src/datadogV2/model/model_security_monitoring_suppression_type.rs @@ -0,0 +1,48 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum SecurityMonitoringSuppressionType { + SUPPRESSIONS, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for SecurityMonitoringSuppressionType { + fn to_string(&self) -> String { + match self { + Self::SUPPRESSIONS => String::from("suppressions"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for SecurityMonitoringSuppressionType { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for SecurityMonitoringSuppressionType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "suppressions" => Self::SUPPRESSIONS, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_security_monitoring_suppression_update_attributes.rs b/src/datadogV2/model/model_security_monitoring_suppression_update_attributes.rs new file mode 100644 index 000000000..9d495577d --- /dev/null +++ b/src/datadogV2/model/model_security_monitoring_suppression_update_attributes.rs @@ -0,0 +1,191 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// The suppression rule properties to be updated. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct SecurityMonitoringSuppressionUpdateAttributes { + /// A description for the suppression rule. + #[serde(rename = "description")] + pub description: Option, + /// Whether the suppression rule is enabled. + #[serde(rename = "enabled")] + pub enabled: Option, + /// A Unix millisecond timestamp giving an expiration date for the suppression rule. After this date, it won't suppress signals anymore. If unset, the expiration date of the suppression rule is left untouched. If set to `null`, the expiration date is removed. + #[serde( + rename = "expiration_date", + default, + with = "::serde_with::rust::double_option" + )] + pub expiration_date: Option>, + /// The name of the suppression rule. + #[serde(rename = "name")] + pub name: Option, + /// The rule query of the suppression rule, with the same syntax as the search bar for detection rules. + #[serde(rename = "rule_query")] + pub rule_query: Option, + /// The suppression query of the suppression rule. If a signal matches this query, it is suppressed and not triggered. Same syntax as the queries to search signals in the signal explorer. + #[serde(rename = "suppression_query")] + pub suppression_query: Option, + /// The current version of the suppression. This is optional, but it can help prevent concurrent modifications. + #[serde(rename = "version")] + pub version: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl SecurityMonitoringSuppressionUpdateAttributes { + pub fn new() -> SecurityMonitoringSuppressionUpdateAttributes { + SecurityMonitoringSuppressionUpdateAttributes { + description: None, + enabled: None, + expiration_date: None, + name: None, + rule_query: None, + suppression_query: None, + version: None, + _unparsed: false, + } + } + + pub fn description(mut self, value: String) -> Self { + self.description = Some(value); + self + } + + pub fn enabled(mut self, value: bool) -> Self { + self.enabled = Some(value); + self + } + + pub fn expiration_date(mut self, value: Option) -> Self { + self.expiration_date = Some(value); + self + } + + pub fn name(mut self, value: String) -> Self { + self.name = Some(value); + self + } + + pub fn rule_query(mut self, value: String) -> Self { + self.rule_query = Some(value); + self + } + + pub fn suppression_query(mut self, value: String) -> Self { + self.suppression_query = Some(value); + self + } + + pub fn version(mut self, value: i32) -> Self { + self.version = Some(value); + self + } +} + +impl Default for SecurityMonitoringSuppressionUpdateAttributes { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for SecurityMonitoringSuppressionUpdateAttributes { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct SecurityMonitoringSuppressionUpdateAttributesVisitor; + impl<'a> Visitor<'a> for SecurityMonitoringSuppressionUpdateAttributesVisitor { + type Value = SecurityMonitoringSuppressionUpdateAttributes; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut description: Option = None; + let mut enabled: Option = None; + let mut expiration_date: Option> = None; + let mut name: Option = None; + let mut rule_query: Option = None; + let mut suppression_query: Option = None; + let mut version: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "description" => { + if v.is_null() { + continue; + } + description = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "enabled" => { + if v.is_null() { + continue; + } + enabled = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "expiration_date" => { + expiration_date = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "name" => { + if v.is_null() { + continue; + } + name = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "rule_query" => { + if v.is_null() { + continue; + } + rule_query = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "suppression_query" => { + if v.is_null() { + continue; + } + suppression_query = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "version" => { + if v.is_null() { + continue; + } + version = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = SecurityMonitoringSuppressionUpdateAttributes { + description, + enabled, + expiration_date, + name, + rule_query, + suppression_query, + version, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(SecurityMonitoringSuppressionUpdateAttributesVisitor) + } +} diff --git a/src/datadogV2/model/model_security_monitoring_suppression_update_data.rs b/src/datadogV2/model/model_security_monitoring_suppression_update_data.rs new file mode 100644 index 000000000..9d68cfbd5 --- /dev/null +++ b/src/datadogV2/model/model_security_monitoring_suppression_update_data.rs @@ -0,0 +1,96 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// The new suppression properties; partial updates are supported. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct SecurityMonitoringSuppressionUpdateData { + /// The suppression rule properties to be updated. + #[serde(rename = "attributes")] + pub attributes: crate::datadogV2::model::SecurityMonitoringSuppressionUpdateAttributes, + /// The type of the resource. The value should always be `suppressions`. + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::SecurityMonitoringSuppressionType, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl SecurityMonitoringSuppressionUpdateData { + pub fn new( + attributes: crate::datadogV2::model::SecurityMonitoringSuppressionUpdateAttributes, + type_: crate::datadogV2::model::SecurityMonitoringSuppressionType, + ) -> SecurityMonitoringSuppressionUpdateData { + SecurityMonitoringSuppressionUpdateData { + attributes, + type_, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for SecurityMonitoringSuppressionUpdateData { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct SecurityMonitoringSuppressionUpdateDataVisitor; + impl<'a> Visitor<'a> for SecurityMonitoringSuppressionUpdateDataVisitor { + type Value = SecurityMonitoringSuppressionUpdateData; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut attributes: Option< + crate::datadogV2::model::SecurityMonitoringSuppressionUpdateAttributes, + > = None; + let mut type_: Option = + None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "attributes" => { + attributes = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::SecurityMonitoringSuppressionType::UnparsedObject(_type_) => { + _unparsed = true; + }, + _ => {} + } + } + } + &_ => {} + } + } + let attributes = attributes.ok_or_else(|| M::Error::missing_field("attributes"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = SecurityMonitoringSuppressionUpdateData { + attributes, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(SecurityMonitoringSuppressionUpdateDataVisitor) + } +} diff --git a/src/datadogV2/model/model_security_monitoring_suppression_update_request.rs b/src/datadogV2/model/model_security_monitoring_suppression_update_request.rs new file mode 100644 index 000000000..bd86f8cce --- /dev/null +++ b/src/datadogV2/model/model_security_monitoring_suppression_update_request.rs @@ -0,0 +1,73 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Request object containing the fields to update on the suppression rule. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct SecurityMonitoringSuppressionUpdateRequest { + /// The new suppression properties; partial updates are supported. + #[serde(rename = "data")] + pub data: crate::datadogV2::model::SecurityMonitoringSuppressionUpdateData, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl SecurityMonitoringSuppressionUpdateRequest { + pub fn new( + data: crate::datadogV2::model::SecurityMonitoringSuppressionUpdateData, + ) -> SecurityMonitoringSuppressionUpdateRequest { + SecurityMonitoringSuppressionUpdateRequest { + data, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for SecurityMonitoringSuppressionUpdateRequest { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct SecurityMonitoringSuppressionUpdateRequestVisitor; + impl<'a> Visitor<'a> for SecurityMonitoringSuppressionUpdateRequestVisitor { + type Value = SecurityMonitoringSuppressionUpdateRequest; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut data: Option< + crate::datadogV2::model::SecurityMonitoringSuppressionUpdateData, + > = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "data" => { + data = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + let data = data.ok_or_else(|| M::Error::missing_field("data"))?; + + let content = SecurityMonitoringSuppressionUpdateRequest { data, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(SecurityMonitoringSuppressionUpdateRequestVisitor) + } +} diff --git a/src/datadogV2/model/model_security_monitoring_suppressions_response.rs b/src/datadogV2/model/model_security_monitoring_suppressions_response.rs new file mode 100644 index 000000000..76deb5ccb --- /dev/null +++ b/src/datadogV2/model/model_security_monitoring_suppressions_response.rs @@ -0,0 +1,86 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Response object containing the available suppression rules. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct SecurityMonitoringSuppressionsResponse { + /// A list of suppressions objects. + #[serde(rename = "data")] + pub data: Option>, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl SecurityMonitoringSuppressionsResponse { + pub fn new() -> SecurityMonitoringSuppressionsResponse { + SecurityMonitoringSuppressionsResponse { + data: None, + _unparsed: false, + } + } + + pub fn data( + mut self, + value: Vec, + ) -> Self { + self.data = Some(value); + self + } +} + +impl Default for SecurityMonitoringSuppressionsResponse { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for SecurityMonitoringSuppressionsResponse { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct SecurityMonitoringSuppressionsResponseVisitor; + impl<'a> Visitor<'a> for SecurityMonitoringSuppressionsResponseVisitor { + type Value = SecurityMonitoringSuppressionsResponse; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut data: Option> = + None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "data" => { + if v.is_null() { + continue; + } + data = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = SecurityMonitoringSuppressionsResponse { data, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(SecurityMonitoringSuppressionsResponseVisitor) + } +} diff --git a/src/datadogV2/model/model_security_monitoring_user.rs b/src/datadogV2/model/model_security_monitoring_user.rs new file mode 100644 index 000000000..5e99d1eea --- /dev/null +++ b/src/datadogV2/model/model_security_monitoring_user.rs @@ -0,0 +1,99 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// A user. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct SecurityMonitoringUser { + /// The handle of the user. + #[serde(rename = "handle")] + pub handle: Option, + /// The name of the user. + #[serde(rename = "name", default, with = "::serde_with::rust::double_option")] + pub name: Option>, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl SecurityMonitoringUser { + pub fn new() -> SecurityMonitoringUser { + SecurityMonitoringUser { + handle: None, + name: None, + _unparsed: false, + } + } + + pub fn handle(mut self, value: String) -> Self { + self.handle = Some(value); + self + } + + pub fn name(mut self, value: Option) -> Self { + self.name = Some(value); + self + } +} + +impl Default for SecurityMonitoringUser { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for SecurityMonitoringUser { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct SecurityMonitoringUserVisitor; + impl<'a> Visitor<'a> for SecurityMonitoringUserVisitor { + type Value = SecurityMonitoringUser; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut handle: Option = None; + let mut name: Option> = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "handle" => { + if v.is_null() { + continue; + } + handle = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "name" => { + name = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = SecurityMonitoringUser { + handle, + name, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(SecurityMonitoringUserVisitor) + } +} diff --git a/src/datadogV2/model/model_sensitive_data_scanner_included_keyword_configuration.rs b/src/datadogV2/model/model_sensitive_data_scanner_included_keyword_configuration.rs new file mode 100644 index 000000000..2b47f0512 --- /dev/null +++ b/src/datadogV2/model/model_sensitive_data_scanner_included_keyword_configuration.rs @@ -0,0 +1,92 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Object defining a set of keywords and a number of characters that help reduce noise. +/// You can provide a list of keywords you would like to check within a defined proximity of the matching pattern. +/// If any of the keywords are found within the proximity check, the match is kept. +/// If none are found, the match is discarded. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct SensitiveDataScannerIncludedKeywordConfiguration { + /// The number of characters behind a match detected by Sensitive Data Scanner to look for the keywords defined. + /// `character_count` should be greater than the maximum length of a keyword defined for a rule. + #[serde(rename = "character_count")] + pub character_count: i64, + /// Keyword list that will be checked during scanning in order to validate a match. + /// The number of keywords in the list must be less than or equal to 30. + #[serde(rename = "keywords")] + pub keywords: Vec, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl SensitiveDataScannerIncludedKeywordConfiguration { + pub fn new( + character_count: i64, + keywords: Vec, + ) -> SensitiveDataScannerIncludedKeywordConfiguration { + SensitiveDataScannerIncludedKeywordConfiguration { + character_count, + keywords, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for SensitiveDataScannerIncludedKeywordConfiguration { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct SensitiveDataScannerIncludedKeywordConfigurationVisitor; + impl<'a> Visitor<'a> for SensitiveDataScannerIncludedKeywordConfigurationVisitor { + type Value = SensitiveDataScannerIncludedKeywordConfiguration; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut character_count: Option = None; + let mut keywords: Option> = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "character_count" => { + character_count = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "keywords" => { + keywords = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + let character_count = + character_count.ok_or_else(|| M::Error::missing_field("character_count"))?; + let keywords = keywords.ok_or_else(|| M::Error::missing_field("keywords"))?; + + let content = SensitiveDataScannerIncludedKeywordConfiguration { + character_count, + keywords, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(SensitiveDataScannerIncludedKeywordConfigurationVisitor) + } +} diff --git a/src/datadogV2/model/model_sensitive_data_scanner_rule_attributes.rs b/src/datadogV2/model/model_sensitive_data_scanner_rule_attributes.rs index 20d2e2dd2..571d3aafe 100644 --- a/src/datadogV2/model/model_sensitive_data_scanner_rule_attributes.rs +++ b/src/datadogV2/model/model_sensitive_data_scanner_rule_attributes.rs @@ -17,6 +17,13 @@ pub struct SensitiveDataScannerRuleAttributes { /// Attributes excluded from the scan. If namespaces is provided, it has to be a sub-path of the namespaces array. #[serde(rename = "excluded_namespaces")] pub excluded_namespaces: Option>, + /// Object defining a set of keywords and a number of characters that help reduce noise. + /// You can provide a list of keywords you would like to check within a defined proximity of the matching pattern. + /// If any of the keywords are found within the proximity check, the match is kept. + /// If none are found, the match is discarded. + #[serde(rename = "included_keyword_configuration")] + pub included_keyword_configuration: + Option, /// Whether or not the rule is enabled. #[serde(rename = "is_enabled")] pub is_enabled: Option, @@ -49,6 +56,7 @@ impl SensitiveDataScannerRuleAttributes { SensitiveDataScannerRuleAttributes { description: None, excluded_namespaces: None, + included_keyword_configuration: None, is_enabled: None, name: None, namespaces: None, @@ -70,6 +78,14 @@ impl SensitiveDataScannerRuleAttributes { self } + pub fn included_keyword_configuration( + mut self, + value: crate::datadogV2::model::SensitiveDataScannerIncludedKeywordConfiguration, + ) -> Self { + self.included_keyword_configuration = Some(value); + self + } + pub fn is_enabled(mut self, value: bool) -> Self { self.is_enabled = Some(value); self @@ -134,6 +150,9 @@ impl<'de> Deserialize<'de> for SensitiveDataScannerRuleAttributes { { let mut description: Option = None; let mut excluded_namespaces: Option> = None; + let mut included_keyword_configuration: Option< + crate::datadogV2::model::SensitiveDataScannerIncludedKeywordConfiguration, + > = None; let mut is_enabled: Option = None; let mut name: Option = None; let mut namespaces: Option> = None; @@ -161,6 +180,13 @@ impl<'de> Deserialize<'de> for SensitiveDataScannerRuleAttributes { excluded_namespaces = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "included_keyword_configuration" => { + if v.is_null() { + continue; + } + included_keyword_configuration = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "is_enabled" => { if v.is_null() { continue; @@ -211,6 +237,7 @@ impl<'de> Deserialize<'de> for SensitiveDataScannerRuleAttributes { let content = SensitiveDataScannerRuleAttributes { description, excluded_namespaces, + included_keyword_configuration, is_enabled, name, namespaces, diff --git a/src/datadogV2/model/model_sensitive_data_scanner_standard_pattern_attributes.rs b/src/datadogV2/model/model_sensitive_data_scanner_standard_pattern_attributes.rs index 3e311ddf6..33e147779 100644 --- a/src/datadogV2/model/model_sensitive_data_scanner_standard_pattern_attributes.rs +++ b/src/datadogV2/model/model_sensitive_data_scanner_standard_pattern_attributes.rs @@ -20,7 +20,8 @@ pub struct SensitiveDataScannerStandardPatternAttributes { /// Name of the standard pattern. #[serde(rename = "name")] pub name: Option, - /// Regex to match. + /// (Deprecated) Regex to match, optionally documented for older standard rules. Refer to the `description` field to understand what the rule does. + #[deprecated] #[serde(rename = "pattern")] pub pattern: Option, /// Integer from 1 (high) to 5 (low) indicating standard pattern issue severity. @@ -36,6 +37,7 @@ pub struct SensitiveDataScannerStandardPatternAttributes { impl SensitiveDataScannerStandardPatternAttributes { pub fn new() -> SensitiveDataScannerStandardPatternAttributes { + #[allow(deprecated)] SensitiveDataScannerStandardPatternAttributes { description: None, included_keywords: None, @@ -47,31 +49,37 @@ impl SensitiveDataScannerStandardPatternAttributes { } } + #[allow(deprecated)] pub fn description(mut self, value: String) -> Self { self.description = Some(value); self } + #[allow(deprecated)] pub fn included_keywords(mut self, value: Vec) -> Self { self.included_keywords = Some(value); self } + #[allow(deprecated)] pub fn name(mut self, value: String) -> Self { self.name = Some(value); self } + #[allow(deprecated)] pub fn pattern(mut self, value: String) -> Self { self.pattern = Some(value); self } + #[allow(deprecated)] pub fn priority(mut self, value: i64) -> Self { self.priority = Some(value); self } + #[allow(deprecated)] pub fn tags(mut self, value: Vec) -> Self { self.tags = Some(value); self @@ -153,6 +161,7 @@ impl<'de> Deserialize<'de> for SensitiveDataScannerStandardPatternAttributes { } } + #[allow(deprecated)] let content = SensitiveDataScannerStandardPatternAttributes { description, included_keywords, diff --git a/src/datadogV2/model/model_service_definition_v2_dot2.rs b/src/datadogV2/model/model_service_definition_v2_dot2.rs index f5c780c12..ee136245b 100644 --- a/src/datadogV2/model/model_service_definition_v2_dot2.rs +++ b/src/datadogV2/model/model_service_definition_v2_dot2.rs @@ -14,6 +14,9 @@ pub struct ServiceDefinitionV2Dot2 { /// Identifier for a group of related services serving a product feature, which the service is a part of. #[serde(rename = "application")] pub application: Option, + /// A set of CI fingerprints. + #[serde(rename = "ci-pipeline-fingerprints")] + pub ci_pipeline_fingerprints: Option>, /// A list of contacts related to the services. #[serde(rename = "contacts")] pub contacts: Option>, @@ -65,6 +68,7 @@ impl ServiceDefinitionV2Dot2 { ) -> ServiceDefinitionV2Dot2 { ServiceDefinitionV2Dot2 { application: None, + ci_pipeline_fingerprints: None, contacts: None, dd_service, description: None, @@ -87,6 +91,11 @@ impl ServiceDefinitionV2Dot2 { self } + pub fn ci_pipeline_fingerprints(mut self, value: Vec) -> Self { + self.ci_pipeline_fingerprints = Some(value); + self + } + pub fn contacts( mut self, value: Vec, @@ -173,6 +182,7 @@ impl<'de> Deserialize<'de> for ServiceDefinitionV2Dot2 { M: MapAccess<'a>, { let mut application: Option = None; + let mut ci_pipeline_fingerprints: Option> = None; let mut contacts: Option< Vec, > = None; @@ -205,6 +215,13 @@ impl<'de> Deserialize<'de> for ServiceDefinitionV2Dot2 { application = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "ci-pipeline-fingerprints" => { + if v.is_null() { + continue; + } + ci_pipeline_fingerprints = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "contacts" => { if v.is_null() { continue; @@ -305,6 +322,7 @@ impl<'de> Deserialize<'de> for ServiceDefinitionV2Dot2 { let content = ServiceDefinitionV2Dot2 { application, + ci_pipeline_fingerprints, contacts, dd_service, description, diff --git a/src/datadogV2/model/model_service_now_ticket.rs b/src/datadogV2/model/model_service_now_ticket.rs new file mode 100644 index 000000000..769cb9d54 --- /dev/null +++ b/src/datadogV2/model/model_service_now_ticket.rs @@ -0,0 +1,110 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// ServiceNow ticket attached to case +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct ServiceNowTicket { + /// ServiceNow ticket information + #[serde(rename = "result")] + pub result: Option, + /// Case status + #[serde(rename = "status")] + pub status: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl ServiceNowTicket { + pub fn new() -> ServiceNowTicket { + ServiceNowTicket { + result: None, + status: None, + _unparsed: false, + } + } + + pub fn result(mut self, value: crate::datadogV2::model::ServiceNowTicketResult) -> Self { + self.result = Some(value); + self + } + + pub fn status(mut self, value: crate::datadogV2::model::Case3rdPartyTicketStatus) -> Self { + self.status = Some(value); + self + } +} + +impl Default for ServiceNowTicket { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for ServiceNowTicket { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct ServiceNowTicketVisitor; + impl<'a> Visitor<'a> for ServiceNowTicketVisitor { + type Value = ServiceNowTicket; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut result: Option = None; + let mut status: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "result" => { + if v.is_null() { + continue; + } + result = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "status" => { + if v.is_null() { + continue; + } + status = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _status) = status { + match _status { + crate::datadogV2::model::Case3rdPartyTicketStatus::UnparsedObject(_status) => { + _unparsed = true; + }, + _ => {} + } + } + } + &_ => {} + } + } + + let content = ServiceNowTicket { + result, + status, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(ServiceNowTicketVisitor) + } +} diff --git a/src/datadogV2/model/model_service_now_ticket_result.rs b/src/datadogV2/model/model_service_now_ticket_result.rs new file mode 100644 index 000000000..fe974a65d --- /dev/null +++ b/src/datadogV2/model/model_service_now_ticket_result.rs @@ -0,0 +1,86 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// ServiceNow ticket information +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct ServiceNowTicketResult { + /// Link to the Incident created on ServiceNow + #[serde(rename = "sys_target_link")] + pub sys_target_link: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl ServiceNowTicketResult { + pub fn new() -> ServiceNowTicketResult { + ServiceNowTicketResult { + sys_target_link: None, + _unparsed: false, + } + } + + pub fn sys_target_link(mut self, value: String) -> Self { + self.sys_target_link = Some(value); + self + } +} + +impl Default for ServiceNowTicketResult { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for ServiceNowTicketResult { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct ServiceNowTicketResultVisitor; + impl<'a> Visitor<'a> for ServiceNowTicketResultVisitor { + type Value = ServiceNowTicketResult; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut sys_target_link: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "sys_target_link" => { + if v.is_null() { + continue; + } + sys_target_link = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = ServiceNowTicketResult { + sys_target_link, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(ServiceNowTicketResultVisitor) + } +} diff --git a/src/datadogV2/model/model_timeseries_response_series.rs b/src/datadogV2/model/model_timeseries_response_series.rs index 20ee750ed..20dd5dacb 100644 --- a/src/datadogV2/model/model_timeseries_response_series.rs +++ b/src/datadogV2/model/model_timeseries_response_series.rs @@ -21,8 +21,8 @@ pub struct TimeseriesResponseSeries { /// The first element describes the "primary unit" (for example, `bytes` in `bytes per second`). /// The second element describes the "per unit" (for example, `second` in `bytes per second`). /// If the second element is not present, the API returns null. - #[serde(rename = "unit")] - pub unit: Option>>, + #[serde(rename = "unit", default, with = "::serde_with::rust::double_option")] + pub unit: Option>>>, #[serde(skip)] #[serde(default)] pub(crate) _unparsed: bool, @@ -48,7 +48,7 @@ impl TimeseriesResponseSeries { self } - pub fn unit(mut self, value: Vec>) -> Self { + pub fn unit(mut self, value: Option>>) -> Self { self.unit = Some(value); self } @@ -79,7 +79,7 @@ impl<'de> Deserialize<'de> for TimeseriesResponseSeries { { let mut group_tags: Option> = None; let mut query_index: Option = None; - let mut unit: Option>> = None; + let mut unit: Option>>> = None; let mut _unparsed = false; while let Some((k, v)) = map.next_entry::()? { @@ -98,9 +98,6 @@ impl<'de> Deserialize<'de> for TimeseriesResponseSeries { Some(serde_json::from_value(v).map_err(M::Error::custom)?); } "unit" => { - if v.is_null() { - continue; - } unit = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } &_ => {} diff --git a/src/datadogV2/model/model_update_open_api_response.rs b/src/datadogV2/model/model_update_open_api_response.rs new file mode 100644 index 000000000..45b803ac8 --- /dev/null +++ b/src/datadogV2/model/model_update_open_api_response.rs @@ -0,0 +1,82 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Response for `UpdateOpenAPI`. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct UpdateOpenAPIResponse { + /// Data envelope for `UpdateOpenAPIResponse`. + #[serde(rename = "data")] + pub data: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl UpdateOpenAPIResponse { + pub fn new() -> UpdateOpenAPIResponse { + UpdateOpenAPIResponse { + data: None, + _unparsed: false, + } + } + + pub fn data(mut self, value: crate::datadogV2::model::UpdateOpenAPIResponseData) -> Self { + self.data = Some(value); + self + } +} + +impl Default for UpdateOpenAPIResponse { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for UpdateOpenAPIResponse { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct UpdateOpenAPIResponseVisitor; + impl<'a> Visitor<'a> for UpdateOpenAPIResponseVisitor { + type Value = UpdateOpenAPIResponse; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut data: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "data" => { + if v.is_null() { + continue; + } + data = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = UpdateOpenAPIResponse { data, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(UpdateOpenAPIResponseVisitor) + } +} diff --git a/src/datadogV2/model/model_update_open_api_response_attributes.rs b/src/datadogV2/model/model_update_open_api_response_attributes.rs new file mode 100644 index 000000000..a1eaf0cd2 --- /dev/null +++ b/src/datadogV2/model/model_update_open_api_response_attributes.rs @@ -0,0 +1,90 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Attributes for `UpdateOpenAPI`. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct UpdateOpenAPIResponseAttributes { + /// List of endpoints which couldn't be parsed. + #[serde(rename = "failed_endpoints")] + pub failed_endpoints: Option>, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl UpdateOpenAPIResponseAttributes { + pub fn new() -> UpdateOpenAPIResponseAttributes { + UpdateOpenAPIResponseAttributes { + failed_endpoints: None, + _unparsed: false, + } + } + + pub fn failed_endpoints( + mut self, + value: Vec, + ) -> Self { + self.failed_endpoints = Some(value); + self + } +} + +impl Default for UpdateOpenAPIResponseAttributes { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for UpdateOpenAPIResponseAttributes { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct UpdateOpenAPIResponseAttributesVisitor; + impl<'a> Visitor<'a> for UpdateOpenAPIResponseAttributesVisitor { + type Value = UpdateOpenAPIResponseAttributes; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut failed_endpoints: Option> = + None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "failed_endpoints" => { + if v.is_null() { + continue; + } + failed_endpoints = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = UpdateOpenAPIResponseAttributes { + failed_endpoints, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(UpdateOpenAPIResponseAttributesVisitor) + } +} diff --git a/src/datadogV2/model/model_update_open_api_response_data.rs b/src/datadogV2/model/model_update_open_api_response_data.rs new file mode 100644 index 000000000..a914d2f2b --- /dev/null +++ b/src/datadogV2/model/model_update_open_api_response_data.rs @@ -0,0 +1,107 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Data envelope for `UpdateOpenAPIResponse`. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct UpdateOpenAPIResponseData { + /// Attributes for `UpdateOpenAPI`. + #[serde(rename = "attributes")] + pub attributes: Option, + /// API identifier. + #[serde(rename = "id")] + pub id: Option, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl UpdateOpenAPIResponseData { + pub fn new() -> UpdateOpenAPIResponseData { + UpdateOpenAPIResponseData { + attributes: None, + id: None, + _unparsed: false, + } + } + + pub fn attributes( + mut self, + value: crate::datadogV2::model::UpdateOpenAPIResponseAttributes, + ) -> Self { + self.attributes = Some(value); + self + } + + pub fn id(mut self, value: uuid::Uuid) -> Self { + self.id = Some(value); + self + } +} + +impl Default for UpdateOpenAPIResponseData { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for UpdateOpenAPIResponseData { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct UpdateOpenAPIResponseDataVisitor; + impl<'a> Visitor<'a> for UpdateOpenAPIResponseDataVisitor { + type Value = UpdateOpenAPIResponseData; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut attributes: Option< + crate::datadogV2::model::UpdateOpenAPIResponseAttributes, + > = None; + let mut id: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "attributes" => { + if v.is_null() { + continue; + } + attributes = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "id" => { + if v.is_null() { + continue; + } + id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + + let content = UpdateOpenAPIResponseData { + attributes, + id, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(UpdateOpenAPIResponseDataVisitor) + } +} diff --git a/src/datadogV2/model/model_user_relationship_data.rs b/src/datadogV2/model/model_user_relationship_data.rs new file mode 100644 index 000000000..5ae133a4d --- /dev/null +++ b/src/datadogV2/model/model_user_relationship_data.rs @@ -0,0 +1,95 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Relationship to user object. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct UserRelationshipData { + /// A unique identifier that represents the user. + #[serde(rename = "id")] + pub id: String, + /// User resource type. + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::UserResourceType, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl UserRelationshipData { + pub fn new( + id: String, + type_: crate::datadogV2::model::UserResourceType, + ) -> UserRelationshipData { + UserRelationshipData { + id, + type_, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for UserRelationshipData { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct UserRelationshipDataVisitor; + impl<'a> Visitor<'a> for UserRelationshipDataVisitor { + type Value = UserRelationshipData; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut id: Option = None; + let mut type_: Option = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "id" => { + id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::UserResourceType::UnparsedObject( + _type_, + ) => { + _unparsed = true; + } + _ => {} + } + } + } + &_ => {} + } + } + let id = id.ok_or_else(|| M::Error::missing_field("id"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = UserRelationshipData { + id, + type_, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(UserRelationshipDataVisitor) + } +} diff --git a/src/datadogV2/model/model_user_resource_type.rs b/src/datadogV2/model/model_user_resource_type.rs new file mode 100644 index 000000000..1f86c16c5 --- /dev/null +++ b/src/datadogV2/model/model_user_resource_type.rs @@ -0,0 +1,48 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum UserResourceType { + USER, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for UserResourceType { + fn to_string(&self) -> String { + match self { + Self::USER => String::from("user"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for UserResourceType { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for UserResourceType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "user" => Self::USER, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_user_team_included.rs b/src/datadogV2/model/model_user_team_included.rs new file mode 100644 index 000000000..886506125 --- /dev/null +++ b/src/datadogV2/model/model_user_team_included.rs @@ -0,0 +1,32 @@ +// 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 2019-Present Datadog, Inc. +use serde::{Deserialize, Deserializer, Serialize}; + +/// Included resources related to the team membership +#[non_exhaustive] +#[derive(Clone, Debug, PartialEq, Serialize)] +#[serde(untagged)] +pub enum UserTeamIncluded { + User(Box), + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl<'de> Deserialize<'de> for UserTeamIncluded { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let value: serde_json::Value = Deserialize::deserialize(deserializer)?; + if let Ok(_v) = serde_json::from_value::>(value.clone()) + { + if !_v._unparsed { + return Ok(UserTeamIncluded::User(_v)); + } + } + + return Ok(UserTeamIncluded::UnparsedObject( + crate::datadog::UnparsedObject { value }, + )); + } +} diff --git a/src/datadogV2/model/model_user_team_response.rs b/src/datadogV2/model/model_user_team_response.rs index bc2cf7e50..f7b5823b8 100644 --- a/src/datadogV2/model/model_user_team_response.rs +++ b/src/datadogV2/model/model_user_team_response.rs @@ -14,6 +14,9 @@ pub struct UserTeamResponse { /// A user's relationship with a team #[serde(rename = "data")] pub data: Option, + /// Resources related to the team memberships + #[serde(rename = "included")] + pub included: Option>, #[serde(skip)] #[serde(default)] pub(crate) _unparsed: bool, @@ -23,6 +26,7 @@ impl UserTeamResponse { pub fn new() -> UserTeamResponse { UserTeamResponse { data: None, + included: None, _unparsed: false, } } @@ -31,6 +35,11 @@ impl UserTeamResponse { self.data = Some(value); self } + + pub fn included(mut self, value: Vec) -> Self { + self.included = Some(value); + self + } } impl Default for UserTeamResponse { @@ -57,6 +66,7 @@ impl<'de> Deserialize<'de> for UserTeamResponse { M: MapAccess<'a>, { let mut data: Option = None; + let mut included: Option> = None; let mut _unparsed = false; while let Some((k, v)) = map.next_entry::()? { @@ -67,11 +77,21 @@ impl<'de> Deserialize<'de> for UserTeamResponse { } data = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "included" => { + if v.is_null() { + continue; + } + included = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } &_ => {} } } - let content = UserTeamResponse { data, _unparsed }; + let content = UserTeamResponse { + data, + included, + _unparsed, + }; Ok(content) } diff --git a/src/datadogV2/model/model_user_teams_response.rs b/src/datadogV2/model/model_user_teams_response.rs index 935f7b709..95903d026 100644 --- a/src/datadogV2/model/model_user_teams_response.rs +++ b/src/datadogV2/model/model_user_teams_response.rs @@ -14,6 +14,9 @@ pub struct UserTeamsResponse { /// Team memberships response data #[serde(rename = "data")] pub data: Option>, + /// Resources related to the team memberships + #[serde(rename = "included")] + pub included: Option>, /// Teams response links. #[serde(rename = "links")] pub links: Option, @@ -29,6 +32,7 @@ impl UserTeamsResponse { pub fn new() -> UserTeamsResponse { UserTeamsResponse { data: None, + included: None, links: None, meta: None, _unparsed: false, @@ -40,6 +44,11 @@ impl UserTeamsResponse { self } + pub fn included(mut self, value: Vec) -> Self { + self.included = Some(value); + self + } + pub fn links(mut self, value: crate::datadogV2::model::TeamsResponseLinks) -> Self { self.links = Some(value); self @@ -75,6 +84,7 @@ impl<'de> Deserialize<'de> for UserTeamsResponse { M: MapAccess<'a>, { let mut data: Option> = None; + let mut included: Option> = None; let mut links: Option = None; let mut meta: Option = None; let mut _unparsed = false; @@ -87,6 +97,12 @@ impl<'de> Deserialize<'de> for UserTeamsResponse { } data = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "included" => { + if v.is_null() { + continue; + } + included = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "links" => { if v.is_null() { continue; @@ -105,6 +121,7 @@ impl<'de> Deserialize<'de> for UserTeamsResponse { let content = UserTeamsResponse { data, + included, links, meta, _unparsed, diff --git a/src/datadogV2/model/model_users_relationship.rs b/src/datadogV2/model/model_users_relationship.rs new file mode 100644 index 000000000..7aa064554 --- /dev/null +++ b/src/datadogV2/model/model_users_relationship.rs @@ -0,0 +1,69 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Relationship to users. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct UsersRelationship { + /// Relationships to user objects. + #[serde(rename = "data")] + pub data: Vec, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl UsersRelationship { + pub fn new(data: Vec) -> UsersRelationship { + UsersRelationship { + data, + _unparsed: false, + } + } +} + +impl<'de> Deserialize<'de> for UsersRelationship { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct UsersRelationshipVisitor; + impl<'a> Visitor<'a> for UsersRelationshipVisitor { + type Value = UsersRelationship; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut data: Option> = None; + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "data" => { + data = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => {} + } + } + let data = data.ok_or_else(|| M::Error::missing_field("data"))?; + + let content = UsersRelationship { data, _unparsed }; + + Ok(content) + } + } + + deserializer.deserialize_any(UsersRelationshipVisitor) + } +} diff --git a/src/lib.rs b/src/lib.rs index 6906bdd5e..7ceb7d5aa 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -3,6 +3,7 @@ // Copyright 2019-Present Datadog, Inc. #![allow(non_camel_case_types)] #![allow(non_snake_case)] +#![doc = include_str!("../README.md")] pub mod datadog; pub mod datadogV1; diff --git a/tests/main.rs b/tests/main.rs index 01f7f7edc..95aef7663 100644 --- a/tests/main.rs +++ b/tests/main.rs @@ -1,6 +1,6 @@ mod scenarios; -use cucumber::{cli, parser, runner, writer, World}; +use cucumber::{cli, parser, runner, writer, StatsWriter, World}; use lazy_static::lazy_static; use regex::Regex; use scenarios::fixtures::{ @@ -91,7 +91,7 @@ async fn main() { } } - cucumber + if cucumber .filter_run("tests/scenarios/features/".to_string(), move |_, _, sc| { let name_re = parsed_cli.re_filter.clone(); let name_match = name_re @@ -109,6 +109,10 @@ async fn main() { true } }) - .await; + .await + .execution_has_failed() + { + std::process::exit(1); + } } // right now it repeats failed steps, eventually write custom writer logic for repeating failed scenarios diff --git a/tests/scenarios/cassettes/v1/authentication/Validate-API-key-returns-Forbidden-response.json b/tests/scenarios/cassettes/v1/authentication/Validate-API-key-returns-Forbidden-response.json index 62497dd14..9683c2a7d 100644 --- a/tests/scenarios/cassettes/v1/authentication/Validate-API-key-returns-Forbidden-response.json +++ b/tests/scenarios/cassettes/v1/authentication/Validate-API-key-returns-Forbidden-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/validate"}, "response": {"body": {"string": "{\"errors\":[\"API key required\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 403, "message": "Forbidden"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:20 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/validate" + }, + "response": { + "body": { + "string": "{\"errors\":[\"API key required\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 403, + "message": "Forbidden" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:20 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/authentication/Validate-API-key-returns-OK-response.json b/tests/scenarios/cassettes/v1/authentication/Validate-API-key-returns-OK-response.json index 8f6aec415..c15bd42fc 100644 --- a/tests/scenarios/cassettes/v1/authentication/Validate-API-key-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/authentication/Validate-API-key-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/validate"}, "response": {"body": {"string": "{\"valid\":true}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:20 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/validate" + }, + "response": { + "body": { + "string": "{\"valid\":true}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:20 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/aws_integration/Create-an-AWS-integration-returns-OK-response.json b/tests/scenarios/cassettes/v1/aws_integration/Create-an-AWS-integration-returns-OK-response.json index e46621e18..4d917aabf 100644 --- a/tests/scenarios/cassettes/v1/aws_integration/Create-an-AWS-integration-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/aws_integration/Create-an-AWS-integration-returns-OK-response.json @@ -1 +1,73 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"account_id\":\"169988502100\",\"account_specific_namespace_rules\":{\"auto_scaling\":false},\"cspm_resource_collection_enabled\":true,\"excluded_regions\":[\"us-east-1\",\"us-west-2\"],\"filter_tags\":[\"$KEY:$VALUE\"],\"host_tags\":[\"$KEY:$VALUE\"],\"metrics_collection_enabled\":false,\"resource_collection_enabled\":true,\"role_name\":\"DatadogAWSIntegrationRole\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/integration/aws"}, "response": {"body": {"string": "{\"external_id\":\"9668e281c0ef4cc8be01710ef7a0ae4c\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 13 Nov 2023 14:17:01 GMT"}, {"request": {"body": {"string": "{\"account_id\":\"169988502100\",\"role_name\":\"DatadogAWSIntegrationRole\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/integration/aws"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 13 Nov 2023 14:17:01 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"account_id\":\"169988502100\",\"account_specific_namespace_rules\":{\"auto_scaling\":false},\"cspm_resource_collection_enabled\":true,\"excluded_regions\":[\"us-east-1\",\"us-west-2\"],\"filter_tags\":[\"$KEY:$VALUE\"],\"host_tags\":[\"$KEY:$VALUE\"],\"metrics_collection_enabled\":false,\"resource_collection_enabled\":true,\"role_name\":\"DatadogAWSIntegrationRole\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/integration/aws" + }, + "response": { + "body": { + "string": "{\"external_id\":\"9668e281c0ef4cc8be01710ef7a0ae4c\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 13 Nov 2023 14:17:01 GMT" + }, + { + "request": { + "body": { + "string": "{\"account_id\":\"169988502100\",\"role_name\":\"DatadogAWSIntegrationRole\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/integration/aws" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 13 Nov 2023 14:17:01 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/aws_integration/Delete-an-AWS-integration-returns-OK-response.json b/tests/scenarios/cassettes/v1/aws_integration/Delete-an-AWS-integration-returns-OK-response.json index 75833aa65..3cc4481ac 100644 --- a/tests/scenarios/cassettes/v1/aws_integration/Delete-an-AWS-integration-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/aws_integration/Delete-an-AWS-integration-returns-OK-response.json @@ -1 +1,107 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"account_id\":\"170059471500\",\"account_specific_namespace_rules\":{\"auto_scaling\":false},\"cspm_resource_collection_enabled\":true,\"excluded_regions\":[\"us-east-1\",\"us-west-2\"],\"filter_tags\":[\"$KEY:$VALUE\"],\"host_tags\":[\"$KEY:$VALUE\"],\"metrics_collection_enabled\":false,\"resource_collection_enabled\":true,\"role_name\":\"DatadogAWSIntegrationRole\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/integration/aws"}, "response": {"body": {"string": "{\"external_id\":\"77c77ead62584b0fa1bb6a9fe7d2fa28\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 21 Nov 2023 19:25:15 GMT"}, {"request": {"body": {"string": "{\"account_id\":\"170059471500\",\"role_name\":\"DatadogAWSIntegrationRole\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/integration/aws"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 21 Nov 2023 19:25:15 GMT"}, {"request": {"body": {"string": "{\"account_id\":\"170059471500\",\"role_name\":\"DatadogAWSIntegrationRole\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/integration/aws"}, "response": {"body": {"string": "{\"errors\":[\"AWS account 170059471500 does not exist in integration\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Tue, 21 Nov 2023 19:25:15 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"account_id\":\"170059471500\",\"account_specific_namespace_rules\":{\"auto_scaling\":false},\"cspm_resource_collection_enabled\":true,\"excluded_regions\":[\"us-east-1\",\"us-west-2\"],\"filter_tags\":[\"$KEY:$VALUE\"],\"host_tags\":[\"$KEY:$VALUE\"],\"metrics_collection_enabled\":false,\"resource_collection_enabled\":true,\"role_name\":\"DatadogAWSIntegrationRole\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/integration/aws" + }, + "response": { + "body": { + "string": "{\"external_id\":\"77c77ead62584b0fa1bb6a9fe7d2fa28\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 21 Nov 2023 19:25:15 GMT" + }, + { + "request": { + "body": { + "string": "{\"account_id\":\"170059471500\",\"role_name\":\"DatadogAWSIntegrationRole\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/integration/aws" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 21 Nov 2023 19:25:15 GMT" + }, + { + "request": { + "body": { + "string": "{\"account_id\":\"170059471500\",\"role_name\":\"DatadogAWSIntegrationRole\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/integration/aws" + }, + "response": { + "body": { + "string": "{\"errors\":[\"AWS account 170059471500 does not exist in integration\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Tue, 21 Nov 2023 19:25:15 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/aws_integration/Update-an-AWS-integration-returns-OK-response.json b/tests/scenarios/cassettes/v1/aws_integration/Update-an-AWS-integration-returns-OK-response.json index ba11149b8..e62d14792 100644 --- a/tests/scenarios/cassettes/v1/aws_integration/Update-an-AWS-integration-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/aws_integration/Update-an-AWS-integration-returns-OK-response.json @@ -1 +1,107 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"account_id\":\"170076337600\",\"account_specific_namespace_rules\":{\"auto_scaling\":false},\"cspm_resource_collection_enabled\":true,\"excluded_regions\":[\"us-east-1\",\"us-west-2\"],\"filter_tags\":[\"$KEY:$VALUE\"],\"host_tags\":[\"$KEY:$VALUE\"],\"metrics_collection_enabled\":false,\"resource_collection_enabled\":true,\"role_name\":\"DatadogAWSIntegrationRole\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/integration/aws"}, "response": {"body": {"string": "{\"external_id\":\"c7298c166e774bf1bd1bc0419e68f1a0\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 23 Nov 2023 18:16:16 GMT"}, {"request": {"body": {"string": "{\"account_id\":\"170076337600\",\"account_specific_namespace_rules\":{\"auto_scaling\":false},\"cspm_resource_collection_enabled\":false,\"excluded_regions\":[\"us-east-1\",\"us-west-2\"],\"filter_tags\":[\"$KEY:$VALUE\"],\"host_tags\":[\"$KEY:$VALUE\"],\"metrics_collection_enabled\":true,\"resource_collection_enabled\":true,\"role_name\":\"DatadogAWSIntegrationRole\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "put", "uri": "https://api.datadoghq.com/api/v1/integration/aws?account_id=170076337600&role_name=DatadogAWSIntegrationRole"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 23 Nov 2023 18:16:16 GMT"}, {"request": {"body": {"string": "{\"account_id\":\"170076337600\",\"role_name\":\"DatadogAWSIntegrationRole\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/integration/aws"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 23 Nov 2023 18:16:16 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"account_id\":\"170076337600\",\"account_specific_namespace_rules\":{\"auto_scaling\":false},\"cspm_resource_collection_enabled\":true,\"excluded_regions\":[\"us-east-1\",\"us-west-2\"],\"filter_tags\":[\"$KEY:$VALUE\"],\"host_tags\":[\"$KEY:$VALUE\"],\"metrics_collection_enabled\":false,\"resource_collection_enabled\":true,\"role_name\":\"DatadogAWSIntegrationRole\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/integration/aws" + }, + "response": { + "body": { + "string": "{\"external_id\":\"c7298c166e774bf1bd1bc0419e68f1a0\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 23 Nov 2023 18:16:16 GMT" + }, + { + "request": { + "body": { + "string": "{\"account_id\":\"170076337600\",\"account_specific_namespace_rules\":{\"auto_scaling\":false},\"cspm_resource_collection_enabled\":false,\"excluded_regions\":[\"us-east-1\",\"us-west-2\"],\"filter_tags\":[\"$KEY:$VALUE\"],\"host_tags\":[\"$KEY:$VALUE\"],\"metrics_collection_enabled\":true,\"resource_collection_enabled\":true,\"role_name\":\"DatadogAWSIntegrationRole\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v1/integration/aws?account_id=170076337600&role_name=DatadogAWSIntegrationRole" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 23 Nov 2023 18:16:16 GMT" + }, + { + "request": { + "body": { + "string": "{\"account_id\":\"170076337600\",\"role_name\":\"DatadogAWSIntegrationRole\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/integration/aws" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 23 Nov 2023 18:16:16 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/azure_integration/Create-an-Azure-integration-returns-OK-response.frozen b/tests/scenarios/cassettes/v1/azure_integration/Create-an-Azure-integration-returns-OK-response.frozen index 10af779fb..d8f2b0841 100644 --- a/tests/scenarios/cassettes/v1/azure_integration/Create-an-Azure-integration-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v1/azure_integration/Create-an-Azure-integration-returns-OK-response.frozen @@ -1 +1 @@ -2023-12-15T18:21:55.828Z \ No newline at end of file +2024-02-28T20:25:59.580Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/azure_integration/Create-an-Azure-integration-returns-OK-response.json b/tests/scenarios/cassettes/v1/azure_integration/Create-an-Azure-integration-returns-OK-response.json index 2bbc671b1..56eb11f01 100644 --- a/tests/scenarios/cassettes/v1/azure_integration/Create-an-Azure-integration-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/azure_integration/Create-an-Azure-integration-returns-OK-response.json @@ -1 +1,73 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"app_service_plan_filters\":\"key:value,filter:example\",\"automute\":true,\"client_id\":\"17026645-0000-0000-0000-170266451500\",\"client_secret\":\"testingx./Sw*g/Y33t..R1cH+hScMDt\",\"container_app_filters\":\"key:value,filter:example\",\"cspm_enabled\":true,\"custom_metrics_enabled\":true,\"errors\":[\"*\"],\"host_filters\":\"key:value,filter:example\",\"new_client_id\":\"17026645-0000-0000-0000-170266451500\",\"new_tenant_name\":\"17026645-0000-0000-0000-170266451500\",\"resource_collection_enabled\":true,\"tenant_name\":\"17026645-0000-0000-0000-170266451500\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/integration/azure"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 15 Dec 2023 18:21:55 GMT"}, {"request": {"body": {"string": "{\"client_id\":\"17026645-0000-0000-0000-170266451500\",\"tenant_name\":\"17026645-0000-0000-0000-170266451500\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/integration/azure"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 15 Dec 2023 18:21:55 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"app_service_plan_filters\":\"key:value,filter:example\",\"automute\":true,\"client_id\":\"17091519-0000-0000-0000-170915195900\",\"client_secret\":\"testingx./Sw*g/Y33t..R1cH+hScMDt\",\"container_app_filters\":\"key:value,filter:example\",\"cspm_enabled\":true,\"custom_metrics_enabled\":true,\"errors\":[\"*\"],\"host_filters\":\"key:value,filter:example\",\"new_client_id\":\"17091519-0000-0000-0000-170915195900\",\"new_tenant_name\":\"17091519-0000-0000-0000-170915195900\",\"resource_collection_enabled\":true,\"tenant_name\":\"17091519-0000-0000-0000-170915195900\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/integration/azure" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 28 Feb 2024 20:25:59 GMT" + }, + { + "request": { + "body": { + "string": "{\"client_id\":\"17091519-0000-0000-0000-170915195900\",\"tenant_name\":\"17091519-0000-0000-0000-170915195900\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/integration/azure" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 28 Feb 2024 20:25:59 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/azure_integration/Delete-an-Azure-integration-returns-OK-response.frozen b/tests/scenarios/cassettes/v1/azure_integration/Delete-an-Azure-integration-returns-OK-response.frozen index 59b6f680c..d524edb78 100644 --- a/tests/scenarios/cassettes/v1/azure_integration/Delete-an-Azure-integration-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v1/azure_integration/Delete-an-Azure-integration-returns-OK-response.frozen @@ -1 +1 @@ -2023-12-15T18:21:57.741Z \ No newline at end of file +2024-02-28T20:25:59.931Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/azure_integration/Delete-an-Azure-integration-returns-OK-response.json b/tests/scenarios/cassettes/v1/azure_integration/Delete-an-Azure-integration-returns-OK-response.json index 2bc522191..e088b092b 100644 --- a/tests/scenarios/cassettes/v1/azure_integration/Delete-an-Azure-integration-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/azure_integration/Delete-an-Azure-integration-returns-OK-response.json @@ -1 +1,107 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"app_service_plan_filters\":\"key:value,filter:example\",\"automute\":true,\"client_id\":\"17026645-0000-0000-0000-170266451700\",\"client_secret\":\"testingx./Sw*g/Y33t..R1cH+hScMDt\",\"container_app_filters\":\"key:value,filter:example\",\"cspm_enabled\":true,\"custom_metrics_enabled\":true,\"errors\":[\"*\"],\"host_filters\":\"key:value,filter:example\",\"new_client_id\":\"17026645-0000-0000-0000-170266451700\",\"new_tenant_name\":\"17026645-0000-0000-0000-170266451700\",\"resource_collection_enabled\":true,\"tenant_name\":\"17026645-0000-0000-0000-170266451700\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/integration/azure"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 15 Dec 2023 18:21:57 GMT"}, {"request": {"body": {"string": "{\"client_id\":\"17026645-0000-0000-0000-170266451700\",\"tenant_name\":\"17026645-0000-0000-0000-170266451700\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/integration/azure"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 15 Dec 2023 18:21:57 GMT"}, {"request": {"body": {"string": "{\"client_id\":\"17026645-0000-0000-0000-170266451700\",\"tenant_name\":\"17026645-0000-0000-0000-170266451700\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/integration/azure"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 15 Dec 2023 18:21:57 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"app_service_plan_filters\":\"key:value,filter:example\",\"automute\":true,\"client_id\":\"17091519-0000-0000-0000-170915195900\",\"client_secret\":\"testingx./Sw*g/Y33t..R1cH+hScMDt\",\"container_app_filters\":\"key:value,filter:example\",\"cspm_enabled\":true,\"custom_metrics_enabled\":true,\"errors\":[\"*\"],\"host_filters\":\"key:value,filter:example\",\"new_client_id\":\"17091519-0000-0000-0000-170915195900\",\"new_tenant_name\":\"17091519-0000-0000-0000-170915195900\",\"resource_collection_enabled\":true,\"tenant_name\":\"17091519-0000-0000-0000-170915195900\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/integration/azure" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 28 Feb 2024 20:25:59 GMT" + }, + { + "request": { + "body": { + "string": "{\"client_id\":\"17091519-0000-0000-0000-170915195900\",\"tenant_name\":\"17091519-0000-0000-0000-170915195900\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/integration/azure" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 28 Feb 2024 20:25:59 GMT" + }, + { + "request": { + "body": { + "string": "{\"client_id\":\"17091519-0000-0000-0000-170915195900\",\"tenant_name\":\"17091519-0000-0000-0000-170915195900\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/integration/azure" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 28 Feb 2024 20:25:59 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/azure_integration/Update-an-Azure-integration-returns-OK-response.frozen b/tests/scenarios/cassettes/v1/azure_integration/Update-an-Azure-integration-returns-OK-response.frozen index 28414158e..331d98661 100644 --- a/tests/scenarios/cassettes/v1/azure_integration/Update-an-Azure-integration-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v1/azure_integration/Update-an-Azure-integration-returns-OK-response.frozen @@ -1 +1 @@ -2023-12-15T18:21:59.912Z \ No newline at end of file +2024-02-28T20:26:00.368Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/azure_integration/Update-an-Azure-integration-returns-OK-response.json b/tests/scenarios/cassettes/v1/azure_integration/Update-an-Azure-integration-returns-OK-response.json index 83b93ef65..ae33f92d5 100644 --- a/tests/scenarios/cassettes/v1/azure_integration/Update-an-Azure-integration-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/azure_integration/Update-an-Azure-integration-returns-OK-response.json @@ -1 +1,107 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"app_service_plan_filters\":\"key:value,filter:example\",\"automute\":true,\"client_id\":\"17026645-0000-0000-0000-170266451900\",\"client_secret\":\"testingx./Sw*g/Y33t..R1cH+hScMDt\",\"container_app_filters\":\"key:value,filter:example\",\"cspm_enabled\":true,\"custom_metrics_enabled\":true,\"errors\":[\"*\"],\"host_filters\":\"key:value,filter:example\",\"new_client_id\":\"17026645-0000-0000-0000-170266451900\",\"new_tenant_name\":\"17026645-0000-0000-0000-170266451900\",\"resource_collection_enabled\":true,\"tenant_name\":\"17026645-0000-0000-0000-170266451900\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/integration/azure"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 15 Dec 2023 18:21:59 GMT"}, {"request": {"body": {"string": "{\"app_service_plan_filters\":\"key:value,filter:example\",\"automute\":true,\"client_id\":\"17026645-0000-0000-0000-170266451900\",\"client_secret\":\"testingx./Sw*g/Y33t..R1cH+hScMDt\",\"container_app_filters\":\"key:value,filter:example\",\"cspm_enabled\":true,\"custom_metrics_enabled\":true,\"errors\":[\"*\"],\"host_filters\":\"key:value,filter:example\",\"new_client_id\":\"17026645-0000-0000-0000-170266451900\",\"new_tenant_name\":\"17026645-0000-0000-0000-170266451900\",\"resource_collection_enabled\":true,\"tenant_name\":\"17026645-0000-0000-0000-170266451900\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "put", "uri": "https://api.datadoghq.com/api/v1/integration/azure"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 15 Dec 2023 18:21:59 GMT"}, {"request": {"body": {"string": "{\"client_id\":\"17026645-0000-0000-0000-170266451900\",\"tenant_name\":\"17026645-0000-0000-0000-170266451900\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/integration/azure"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 15 Dec 2023 18:21:59 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"app_service_plan_filters\":\"key:value,filter:example\",\"automute\":true,\"client_id\":\"17091519-0000-0000-0000-170915196000\",\"client_secret\":\"testingx./Sw*g/Y33t..R1cH+hScMDt\",\"container_app_filters\":\"key:value,filter:example\",\"cspm_enabled\":true,\"custom_metrics_enabled\":true,\"errors\":[\"*\"],\"host_filters\":\"key:value,filter:example\",\"new_client_id\":\"17091519-0000-0000-0000-170915196000\",\"new_tenant_name\":\"17091519-0000-0000-0000-170915196000\",\"resource_collection_enabled\":true,\"tenant_name\":\"17091519-0000-0000-0000-170915196000\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/integration/azure" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 28 Feb 2024 20:26:00 GMT" + }, + { + "request": { + "body": { + "string": "{\"app_service_plan_filters\":\"key:value,filter:example\",\"automute\":true,\"client_id\":\"17091519-0000-0000-0000-170915196000\",\"client_secret\":\"testingx./Sw*g/Y33t..R1cH+hScMDt\",\"container_app_filters\":\"key:value,filter:example\",\"cspm_enabled\":true,\"custom_metrics_enabled\":true,\"errors\":[\"*\"],\"host_filters\":\"key:value,filter:example\",\"new_client_id\":\"17091519-0000-0000-0000-170915196000\",\"new_tenant_name\":\"17091519-0000-0000-0000-170915196000\",\"resource_collection_enabled\":true,\"tenant_name\":\"17091519-0000-0000-0000-170915196000\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v1/integration/azure" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 28 Feb 2024 20:26:00 GMT" + }, + { + "request": { + "body": { + "string": "{\"client_id\":\"17091519-0000-0000-0000-170915196000\",\"tenant_name\":\"17091519-0000-0000-0000-170915196000\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/integration/azure" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 28 Feb 2024 20:26:00 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboard_lists/Create-a-dashboard-list-returns-OK-response.json b/tests/scenarios/cassettes/v1/dashboard_lists/Create-a-dashboard-list-returns-OK-response.json index 7b2eec495..1e6434f21 100644 --- a/tests/scenarios/cassettes/v1/dashboard_lists/Create-a-dashboard-list-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/dashboard_lists/Create-a-dashboard-list-returns-OK-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Create_a_dashboard_list_returns_OK_response-1641430221\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual"}, "response": {"body": {"string": "{\"is_favorite\":false,\"name\":\"Test-Create_a_dashboard_list_returns_OK_response-1641430221\",\"dashboard_count\":0,\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"created\":\"2022-01-06T00:50:21.382205+00:00\",\"type\":\"manual_dashboard_list\",\"dashboards\":null,\"modified\":\"2022-01-06T00:50:21.382231+00:00\",\"id\":269879}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:21 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/269879"}, "response": {"body": {"string": "{\"deleted_dashboard_list_id\":269879}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:21 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Create_a_dashboard_list_returns_OK_response-1641430221\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual" + }, + "response": { + "body": { + "string": "{\"is_favorite\":false,\"name\":\"Test-Create_a_dashboard_list_returns_OK_response-1641430221\",\"dashboard_count\":0,\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"created\":\"2022-01-06T00:50:21.382205+00:00\",\"type\":\"manual_dashboard_list\",\"dashboards\":null,\"modified\":\"2022-01-06T00:50:21.382231+00:00\",\"id\":269879}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:21 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/269879" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_list_id\":269879}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:21 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboard_lists/Delete-a-dashboard-list-returns-Not-Found-response.json b/tests/scenarios/cassettes/v1/dashboard_lists/Delete-a-dashboard-list-returns-Not-Found-response.json index 7027d36a6..cd8a39749 100644 --- a/tests/scenarios/cassettes/v1/dashboard_lists/Delete-a-dashboard-list-returns-Not-Found-response.json +++ b/tests/scenarios/cassettes/v1/dashboard_lists/Delete-a-dashboard-list-returns-Not-Found-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/0"}, "response": {"body": {"string": "{\"errors\":[\"Manual Dashboard List with id 0 not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:21 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/0" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Manual Dashboard List with id 0 not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:21 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboard_lists/Delete-a-dashboard-list-returns-OK-response.json b/tests/scenarios/cassettes/v1/dashboard_lists/Delete-a-dashboard-list-returns-OK-response.json index 40dbde805..73f7ae39d 100644 --- a/tests/scenarios/cassettes/v1/dashboard_lists/Delete-a-dashboard-list-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/dashboard_lists/Delete-a-dashboard-list-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Delete_a_dashboard_list_returns_OK_response-1641430221\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual"}, "response": {"body": {"string": "{\"is_favorite\":false,\"name\":\"Test-Delete_a_dashboard_list_returns_OK_response-1641430221\",\"dashboard_count\":0,\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"created\":\"2022-01-06T00:50:22.024122+00:00\",\"type\":\"manual_dashboard_list\",\"dashboards\":null,\"modified\":\"2022-01-06T00:50:22.024147+00:00\",\"id\":269880}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:21 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/269880"}, "response": {"body": {"string": "{\"deleted_dashboard_list_id\":269880}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:21 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/269880"}, "response": {"body": {"string": "{\"errors\":[\"Manual Dashboard List with id 269880 not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:21 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Delete_a_dashboard_list_returns_OK_response-1641430221\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual" + }, + "response": { + "body": { + "string": "{\"is_favorite\":false,\"name\":\"Test-Delete_a_dashboard_list_returns_OK_response-1641430221\",\"dashboard_count\":0,\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"created\":\"2022-01-06T00:50:22.024122+00:00\",\"type\":\"manual_dashboard_list\",\"dashboards\":null,\"modified\":\"2022-01-06T00:50:22.024147+00:00\",\"id\":269880}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:21 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/269880" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_list_id\":269880}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:21 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/269880" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Manual Dashboard List with id 269880 not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:21 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboard_lists/Get-a-dashboard-list-returns-Not-Found-response.json b/tests/scenarios/cassettes/v1/dashboard_lists/Get-a-dashboard-list-returns-Not-Found-response.json index b65923026..e9aa891e7 100644 --- a/tests/scenarios/cassettes/v1/dashboard_lists/Get-a-dashboard-list-returns-Not-Found-response.json +++ b/tests/scenarios/cassettes/v1/dashboard_lists/Get-a-dashboard-list-returns-Not-Found-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/0"}, "response": {"body": {"string": "{\"errors\":[\"Manual Dashboard List with id 0 not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:22 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/0" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Manual Dashboard List with id 0 not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:22 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboard_lists/Get-a-dashboard-list-returns-OK-response.json b/tests/scenarios/cassettes/v1/dashboard_lists/Get-a-dashboard-list-returns-OK-response.json index 667977c19..b858c775b 100644 --- a/tests/scenarios/cassettes/v1/dashboard_lists/Get-a-dashboard-list-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/dashboard_lists/Get-a-dashboard-list-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Get_a_dashboard_list_returns_OK_response-1641430222\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual"}, "response": {"body": {"string": "{\"is_favorite\":false,\"name\":\"Test-Get_a_dashboard_list_returns_OK_response-1641430222\",\"dashboard_count\":0,\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"created\":\"2022-01-06T00:50:22.806263+00:00\",\"type\":\"manual_dashboard_list\",\"dashboards\":null,\"modified\":\"2022-01-06T00:50:22.806287+00:00\",\"id\":269881}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:22 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/269881"}, "response": {"body": {"string": "{\"is_favorite\":false,\"name\":\"Test-Get_a_dashboard_list_returns_OK_response-1641430222\",\"dashboard_count\":0,\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"created\":\"2022-01-06T00:50:22.806263+00:00\",\"type\":\"manual_dashboard_list\",\"dashboards\":null,\"modified\":\"2022-01-06T00:50:22.806287+00:00\",\"id\":269881}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:22 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/269881"}, "response": {"body": {"string": "{\"deleted_dashboard_list_id\":269881}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:22 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Get_a_dashboard_list_returns_OK_response-1641430222\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual" + }, + "response": { + "body": { + "string": "{\"is_favorite\":false,\"name\":\"Test-Get_a_dashboard_list_returns_OK_response-1641430222\",\"dashboard_count\":0,\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"created\":\"2022-01-06T00:50:22.806263+00:00\",\"type\":\"manual_dashboard_list\",\"dashboards\":null,\"modified\":\"2022-01-06T00:50:22.806287+00:00\",\"id\":269881}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:22 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/269881" + }, + "response": { + "body": { + "string": "{\"is_favorite\":false,\"name\":\"Test-Get_a_dashboard_list_returns_OK_response-1641430222\",\"dashboard_count\":0,\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"created\":\"2022-01-06T00:50:22.806263+00:00\",\"type\":\"manual_dashboard_list\",\"dashboards\":null,\"modified\":\"2022-01-06T00:50:22.806287+00:00\",\"id\":269881}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:22 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/269881" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_list_id\":269881}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:22 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboard_lists/Get-all-dashboard-lists-returns-OK-response.json b/tests/scenarios/cassettes/v1/dashboard_lists/Get-all-dashboard-lists-returns-OK-response.json index 4ab83af33..4c9aade6c 100644 --- a/tests/scenarios/cassettes/v1/dashboard_lists/Get-all-dashboard-lists-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/dashboard_lists/Get-all-dashboard-lists-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Get_all_dashboard_lists_returns_OK_response-1676581817\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual"}, "response": {"body": {"string": "{\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\"},\"created\":\"2023-02-16T21:10:17.185865+00:00\",\"dashboards\":null,\"dashboard_count\":0,\"id\":364491,\"is_favorite\":false,\"modified\":\"2023-02-16T21:10:17.185872+00:00\",\"name\":\"Test-Get_all_dashboard_lists_returns_OK_response-1676581817\",\"type\":\"manual_dashboard_list\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 16 Feb 2023 21:10:17 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual"}, "response": {"body": {"string": "{\"dashboard_lists\":[{\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\"},\"created\":\"2023-02-16T21:10:17.185865+00:00\",\"dashboards\":null,\"dashboard_count\":0,\"id\":364491,\"is_favorite\":false,\"modified\":\"2023-02-16T21:10:17.185872+00:00\",\"name\":\"Test-Get_all_dashboard_lists_returns_OK_response-1676581817\",\"type\":\"manual_dashboard_list\"},{\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\"},\"created\":\"2022-12-09T15:04:28.806069+00:00\",\"dashboards\":null,\"dashboard_count\":1,\"id\":348463,\"is_favorite\":false,\"modified\":\"2022-12-09T15:04:29.985883+00:00\",\"name\":\"Test-Go-TestDashboardListItemCRUD-1670598268\",\"type\":\"manual_dashboard_list\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 16 Feb 2023 21:10:17 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/364491"}, "response": {"body": {"string": "{\"deleted_dashboard_list_id\":364491}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 16 Feb 2023 21:10:17 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Get_all_dashboard_lists_returns_OK_response-1676581817\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual" + }, + "response": { + "body": { + "string": "{\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\"},\"created\":\"2023-02-16T21:10:17.185865+00:00\",\"dashboards\":null,\"dashboard_count\":0,\"id\":364491,\"is_favorite\":false,\"modified\":\"2023-02-16T21:10:17.185872+00:00\",\"name\":\"Test-Get_all_dashboard_lists_returns_OK_response-1676581817\",\"type\":\"manual_dashboard_list\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 16 Feb 2023 21:10:17 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual" + }, + "response": { + "body": { + "string": "{\"dashboard_lists\":[{\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\"},\"created\":\"2023-02-16T21:10:17.185865+00:00\",\"dashboards\":null,\"dashboard_count\":0,\"id\":364491,\"is_favorite\":false,\"modified\":\"2023-02-16T21:10:17.185872+00:00\",\"name\":\"Test-Get_all_dashboard_lists_returns_OK_response-1676581817\",\"type\":\"manual_dashboard_list\"},{\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\"},\"created\":\"2022-12-09T15:04:28.806069+00:00\",\"dashboards\":null,\"dashboard_count\":1,\"id\":348463,\"is_favorite\":false,\"modified\":\"2022-12-09T15:04:29.985883+00:00\",\"name\":\"Test-Go-TestDashboardListItemCRUD-1670598268\",\"type\":\"manual_dashboard_list\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 16 Feb 2023 21:10:17 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/364491" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_list_id\":364491}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 16 Feb 2023 21:10:17 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboard_lists/Update-a-dashboard-list-returns-Not-Found-response.json b/tests/scenarios/cassettes/v1/dashboard_lists/Update-a-dashboard-list-returns-Not-Found-response.json index fcd530e52..b7279588c 100644 --- a/tests/scenarios/cassettes/v1/dashboard_lists/Update-a-dashboard-list-returns-Not-Found-response.json +++ b/tests/scenarios/cassettes/v1/dashboard_lists/Update-a-dashboard-list-returns-Not-Found-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Not found\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "put", "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/0"}, "response": {"body": {"string": "{\"errors\":[\"Manual Dashboard List with id 0 not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:23 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Not found\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/0" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Manual Dashboard List with id 0 not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:23 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboard_lists/Update-a-dashboard-list-returns-OK-response.json b/tests/scenarios/cassettes/v1/dashboard_lists/Update-a-dashboard-list-returns-OK-response.json index 0c239d1aa..f89302f46 100644 --- a/tests/scenarios/cassettes/v1/dashboard_lists/Update-a-dashboard-list-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/dashboard_lists/Update-a-dashboard-list-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Update_a_dashboard_list_returns_OK_response-1641430223\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual"}, "response": {"body": {"string": "{\"is_favorite\":false,\"name\":\"Test-Update_a_dashboard_list_returns_OK_response-1641430223\",\"dashboard_count\":0,\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"created\":\"2022-01-06T00:50:23.876774+00:00\",\"type\":\"manual_dashboard_list\",\"dashboards\":null,\"modified\":\"2022-01-06T00:50:23.876799+00:00\",\"id\":269882}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:23 GMT"}, {"request": {"body": {"string": "{\"name\":\"updated Test-Update_a_dashboard_list_returns_OK_response-1641430223\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "put", "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/269882"}, "response": {"body": {"string": "{\"is_favorite\":false,\"name\":\"updated Test-Update_a_dashboard_list_returns_OK_response-1641430223\",\"dashboard_count\":0,\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"created\":\"2022-01-06T00:50:23.876774+00:00\",\"type\":\"manual_dashboard_list\",\"dashboards\":null,\"modified\":\"2022-01-06T00:50:24.060886+00:00\",\"id\":269882}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:23 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/269882"}, "response": {"body": {"string": "{\"deleted_dashboard_list_id\":269882}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:23 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Update_a_dashboard_list_returns_OK_response-1641430223\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual" + }, + "response": { + "body": { + "string": "{\"is_favorite\":false,\"name\":\"Test-Update_a_dashboard_list_returns_OK_response-1641430223\",\"dashboard_count\":0,\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"created\":\"2022-01-06T00:50:23.876774+00:00\",\"type\":\"manual_dashboard_list\",\"dashboards\":null,\"modified\":\"2022-01-06T00:50:23.876799+00:00\",\"id\":269882}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:23 GMT" + }, + { + "request": { + "body": { + "string": "{\"name\":\"updated Test-Update_a_dashboard_list_returns_OK_response-1641430223\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/269882" + }, + "response": { + "body": { + "string": "{\"is_favorite\":false,\"name\":\"updated Test-Update_a_dashboard_list_returns_OK_response-1641430223\",\"dashboard_count\":0,\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"created\":\"2022-01-06T00:50:23.876774+00:00\",\"type\":\"manual_dashboard_list\",\"dashboards\":null,\"modified\":\"2022-01-06T00:50:24.060886+00:00\",\"id\":269882}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:23 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/269882" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_list_id\":269882}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:23 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-distribution-widget-using-a-histogram-request-containing-a-formulas-and-functions-APM-Stats-query.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-distribution-widget-using-a-histogram-request-containing-a-formulas-and-functions-APM-Stats-query.json index 84740f1bb..ed6cfc569 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-distribution-widget-using-a-histogram-request-containing-a-formulas-and-functions-APM-Stats-query.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-distribution-widget-using-a-histogram-request-containing-a-formulas-and-functions-APM-Stats-query.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":\"\",\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_distribution_widget_using_a_histogram_request_containing_a_formulas_and_functions_APM_Stats-1654267230\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"data_source\":\"apm_resource_stats\",\"env\":\"staging\",\"group_by\":[\"resource_name\"],\"name\":\"query1\",\"operation_name\":\"universal.http.client\",\"primary_tag_name\":\"datacenter\",\"primary_tag_value\":\"*\",\"service\":\"azure-bill-import\",\"stat\":\"latency_distribution\"},\"request_type\":\"histogram\",\"style\":{\"palette\":\"dog_classic\"}}],\"show_legend\":false,\"title\":\"APM Stats - Request latency HOP\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"distribution\",\"xaxis\":{\"include_zero\":true,\"max\":\"auto\",\"min\":\"auto\",\"scale\":\"linear\"},\"yaxis\":{\"include_zero\":true,\"max\":\"auto\",\"min\":\"auto\",\"scale\":\"linear\"}},\"layout\":{\"height\":2,\"width\":4,\"x\":8,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"u8n-j9a-4sd\",\"title\":\"Test-Create_a_distribution_widget_using_a_histogram_request_containing_a_formulas_and_functions_APM_Stats-1654267230\",\"url\":\"/dashboard/u8n-j9a-4sd/test-createadistributionwidgetusingahistogramrequestcontainingaformulasandfuncti\",\"created_at\":\"2022-06-03T14:40:30.784732+00:00\",\"modified_at\":\"2022-06-03T14:40:30.784732+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"title_size\":\"16\",\"title\":\"APM Stats - Request latency HOP\",\"title_align\":\"left\",\"yaxis\":{\"include_zero\":true,\"scale\":\"linear\",\"min\":\"auto\",\"max\":\"auto\"},\"show_legend\":false,\"xaxis\":{\"include_zero\":true,\"scale\":\"linear\",\"min\":\"auto\",\"max\":\"auto\"},\"requests\":[{\"query\":{\"primary_tag_value\":\"*\",\"stat\":\"latency_distribution\",\"data_source\":\"apm_resource_stats\",\"name\":\"query1\",\"service\":\"azure-bill-import\",\"group_by\":[\"resource_name\"],\"env\":\"staging\",\"primary_tag_name\":\"datacenter\",\"operation_name\":\"universal.http.client\"},\"request_type\":\"histogram\",\"style\":{\"palette\":\"dog_classic\"}}],\"type\":\"distribution\"},\"layout\":{\"y\":0,\"width\":4,\"x\":8,\"height\":2},\"id\":8784141872614013}],\"layout_type\":\"ordered\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 03 Jun 2022 14:40:30 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/u8n-j9a-4sd"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"u8n-j9a-4sd\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 03 Jun 2022 14:40:30 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":\"\",\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_distribution_widget_using_a_histogram_request_containing_a_formulas_and_functions_APM_Stats-1654267230\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"data_source\":\"apm_resource_stats\",\"env\":\"staging\",\"group_by\":[\"resource_name\"],\"name\":\"query1\",\"operation_name\":\"universal.http.client\",\"primary_tag_name\":\"datacenter\",\"primary_tag_value\":\"*\",\"service\":\"azure-bill-import\",\"stat\":\"latency_distribution\"},\"request_type\":\"histogram\",\"style\":{\"palette\":\"dog_classic\"}}],\"show_legend\":false,\"title\":\"APM Stats - Request latency HOP\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"distribution\",\"xaxis\":{\"include_zero\":true,\"max\":\"auto\",\"min\":\"auto\",\"scale\":\"linear\"},\"yaxis\":{\"include_zero\":true,\"max\":\"auto\",\"min\":\"auto\",\"scale\":\"linear\"}},\"layout\":{\"height\":2,\"width\":4,\"x\":8,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"u8n-j9a-4sd\",\"title\":\"Test-Create_a_distribution_widget_using_a_histogram_request_containing_a_formulas_and_functions_APM_Stats-1654267230\",\"url\":\"/dashboard/u8n-j9a-4sd/test-createadistributionwidgetusingahistogramrequestcontainingaformulasandfuncti\",\"created_at\":\"2022-06-03T14:40:30.784732+00:00\",\"modified_at\":\"2022-06-03T14:40:30.784732+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"title_size\":\"16\",\"title\":\"APM Stats - Request latency HOP\",\"title_align\":\"left\",\"yaxis\":{\"include_zero\":true,\"scale\":\"linear\",\"min\":\"auto\",\"max\":\"auto\"},\"show_legend\":false,\"xaxis\":{\"include_zero\":true,\"scale\":\"linear\",\"min\":\"auto\",\"max\":\"auto\"},\"requests\":[{\"query\":{\"primary_tag_value\":\"*\",\"stat\":\"latency_distribution\",\"data_source\":\"apm_resource_stats\",\"name\":\"query1\",\"service\":\"azure-bill-import\",\"group_by\":[\"resource_name\"],\"env\":\"staging\",\"primary_tag_name\":\"datacenter\",\"operation_name\":\"universal.http.client\"},\"request_type\":\"histogram\",\"style\":{\"palette\":\"dog_classic\"}}],\"type\":\"distribution\"},\"layout\":{\"y\":0,\"width\":4,\"x\":8,\"height\":2},\"id\":8784141872614013}],\"layout_type\":\"ordered\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 03 Jun 2022 14:40:30 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/u8n-j9a-4sd" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"u8n-j9a-4sd\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 03 Jun 2022 14:40:30 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-distribution-widget-using-a-histogram-request-containing-a-formulas-and-functions-events-query.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-distribution-widget-using-a-histogram-request-containing-a-formulas-and-functions-events-query.json index 71a857809..c128a00ca 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-distribution-widget-using-a-histogram-request-containing-a-formulas-and-functions-events-query.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-distribution-widget-using-a-histogram-request-containing-a-formulas-and-functions-events-query.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":\"Test-Create_a_distribution_widget_using_a_histogram_request_containing_a_formulas_and_functions_events_qu-1654267231\",\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_distribution_widget_using_a_histogram_request_containing_a_formulas_and_functions_events_qu-1654267231\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"compute\":{\"aggregation\":\"min\",\"metric\":\"@duration\"},\"data_source\":\"events\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query1\",\"search\":{\"query\":\"\"}},\"request_type\":\"histogram\"}],\"show_legend\":false,\"title\":\"Events Platform - Request latency HOP\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"distribution\",\"xaxis\":{\"include_zero\":true,\"max\":\"auto\",\"min\":\"auto\",\"scale\":\"linear\"},\"yaxis\":{\"include_zero\":true,\"max\":\"auto\",\"min\":\"auto\",\"scale\":\"linear\"}},\"layout\":{\"height\":2,\"width\":4,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":\"Test-Create_a_distribution_widget_using_a_histogram_request_containing_a_formulas_and_functions_events_qu-1654267231\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"z8p-mhb-k4x\",\"title\":\"Test-Create_a_distribution_widget_using_a_histogram_request_containing_a_formulas_and_functions_events_qu-1654267231\",\"url\":\"/dashboard/z8p-mhb-k4x/test-createadistributionwidgetusingahistogramrequestcontainingaformulasandfuncti\",\"created_at\":\"2022-06-03T14:40:31.823381+00:00\",\"modified_at\":\"2022-06-03T14:40:31.823381+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"title_size\":\"16\",\"title\":\"Events Platform - Request latency HOP\",\"title_align\":\"left\",\"yaxis\":{\"include_zero\":true,\"scale\":\"linear\",\"min\":\"auto\",\"max\":\"auto\"},\"show_legend\":false,\"xaxis\":{\"include_zero\":true,\"scale\":\"linear\",\"min\":\"auto\",\"max\":\"auto\"},\"requests\":[{\"query\":{\"search\":{\"query\":\"\"},\"data_source\":\"events\",\"compute\":{\"metric\":\"@duration\",\"aggregation\":\"min\"},\"name\":\"query1\",\"indexes\":[\"*\"],\"group_by\":[]},\"request_type\":\"histogram\"}],\"type\":\"distribution\"},\"layout\":{\"y\":0,\"width\":4,\"x\":0,\"height\":2},\"id\":5948993743115767}],\"layout_type\":\"ordered\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 03 Jun 2022 14:40:31 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/z8p-mhb-k4x"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"z8p-mhb-k4x\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 03 Jun 2022 14:40:31 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":\"Test-Create_a_distribution_widget_using_a_histogram_request_containing_a_formulas_and_functions_events_qu-1654267231\",\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_distribution_widget_using_a_histogram_request_containing_a_formulas_and_functions_events_qu-1654267231\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"compute\":{\"aggregation\":\"min\",\"metric\":\"@duration\"},\"data_source\":\"events\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query1\",\"search\":{\"query\":\"\"}},\"request_type\":\"histogram\"}],\"show_legend\":false,\"title\":\"Events Platform - Request latency HOP\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"distribution\",\"xaxis\":{\"include_zero\":true,\"max\":\"auto\",\"min\":\"auto\",\"scale\":\"linear\"},\"yaxis\":{\"include_zero\":true,\"max\":\"auto\",\"min\":\"auto\",\"scale\":\"linear\"}},\"layout\":{\"height\":2,\"width\":4,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":\"Test-Create_a_distribution_widget_using_a_histogram_request_containing_a_formulas_and_functions_events_qu-1654267231\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"z8p-mhb-k4x\",\"title\":\"Test-Create_a_distribution_widget_using_a_histogram_request_containing_a_formulas_and_functions_events_qu-1654267231\",\"url\":\"/dashboard/z8p-mhb-k4x/test-createadistributionwidgetusingahistogramrequestcontainingaformulasandfuncti\",\"created_at\":\"2022-06-03T14:40:31.823381+00:00\",\"modified_at\":\"2022-06-03T14:40:31.823381+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"title_size\":\"16\",\"title\":\"Events Platform - Request latency HOP\",\"title_align\":\"left\",\"yaxis\":{\"include_zero\":true,\"scale\":\"linear\",\"min\":\"auto\",\"max\":\"auto\"},\"show_legend\":false,\"xaxis\":{\"include_zero\":true,\"scale\":\"linear\",\"min\":\"auto\",\"max\":\"auto\"},\"requests\":[{\"query\":{\"search\":{\"query\":\"\"},\"data_source\":\"events\",\"compute\":{\"metric\":\"@duration\",\"aggregation\":\"min\"},\"name\":\"query1\",\"indexes\":[\"*\"],\"group_by\":[]},\"request_type\":\"histogram\"}],\"type\":\"distribution\"},\"layout\":{\"y\":0,\"width\":4,\"x\":0,\"height\":2},\"id\":5948993743115767}],\"layout_type\":\"ordered\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 03 Jun 2022 14:40:31 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/z8p-mhb-k4x" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"z8p-mhb-k4x\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 03 Jun 2022 14:40:31 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-distribution-widget-using-a-histogram-request-containing-a-formulas-and-functions-metrics-query.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-distribution-widget-using-a-histogram-request-containing-a-formulas-and-functions-metrics-query.json index cb4c0e75f..097ad960b 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-distribution-widget-using-a-histogram-request-containing-a-formulas-and-functions-metrics-query.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-distribution-widget-using-a-histogram-request-containing-a-formulas-and-functions-metrics-query.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_distribution_widget_using_a_histogram_request_containing_a_formulas_and_functions_metrics_q-1690903004\",\"widgets\":[{\"definition\":{\"custom_links\":[{\"label\":\"Example\",\"link\":\"https://example.org/\"}],\"requests\":[{\"query\":{\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"histogram:trace.Load{*}\"},\"request_type\":\"histogram\",\"style\":{\"palette\":\"dog_classic\"}}],\"show_legend\":false,\"title\":\"Metrics HOP\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"distribution\",\"xaxis\":{\"include_zero\":true,\"max\":\"auto\",\"min\":\"auto\",\"scale\":\"linear\"},\"yaxis\":{\"include_zero\":true,\"max\":\"auto\",\"min\":\"auto\",\"scale\":\"linear\"}},\"layout\":{\"height\":2,\"width\":4,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"id\":\"uts-6em-2su\",\"title\":\"Test-Create_a_distribution_widget_using_a_histogram_request_containing_a_formulas_and_functions_metrics_q-1690903004\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/uts-6em-2su/test-createadistributionwidgetusingahistogramrequestcontainingaformulasandfuncti\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"custom_links\":[{\"label\":\"Example\",\"link\":\"https://example.org/\"}],\"requests\":[{\"query\":{\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"histogram:trace.Load{*}\"},\"request_type\":\"histogram\",\"style\":{\"palette\":\"dog_classic\"}}],\"show_legend\":false,\"title\":\"Metrics HOP\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"distribution\",\"xaxis\":{\"include_zero\":true,\"max\":\"auto\",\"min\":\"auto\",\"scale\":\"linear\"},\"yaxis\":{\"include_zero\":true,\"max\":\"auto\",\"min\":\"auto\",\"scale\":\"linear\"}},\"layout\":{\"height\":2,\"width\":4,\"x\":0,\"y\":0},\"id\":4570406064684725}],\"notify_list\":null,\"created_at\":\"2023-08-01T15:16:44.785380+00:00\",\"modified_at\":\"2023-08-01T15:16:44.785380+00:00\",\"restricted_roles\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 01 Aug 2023 15:16:44 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/uts-6em-2su"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"uts-6em-2su\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 01 Aug 2023 15:16:44 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_distribution_widget_using_a_histogram_request_containing_a_formulas_and_functions_metrics_q-1690903004\",\"widgets\":[{\"definition\":{\"custom_links\":[{\"label\":\"Example\",\"link\":\"https://example.org/\"}],\"requests\":[{\"query\":{\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"histogram:trace.Load{*}\"},\"request_type\":\"histogram\",\"style\":{\"palette\":\"dog_classic\"}}],\"show_legend\":false,\"title\":\"Metrics HOP\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"distribution\",\"xaxis\":{\"include_zero\":true,\"max\":\"auto\",\"min\":\"auto\",\"scale\":\"linear\"},\"yaxis\":{\"include_zero\":true,\"max\":\"auto\",\"min\":\"auto\",\"scale\":\"linear\"}},\"layout\":{\"height\":2,\"width\":4,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"id\":\"uts-6em-2su\",\"title\":\"Test-Create_a_distribution_widget_using_a_histogram_request_containing_a_formulas_and_functions_metrics_q-1690903004\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/uts-6em-2su/test-createadistributionwidgetusingahistogramrequestcontainingaformulasandfuncti\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"custom_links\":[{\"label\":\"Example\",\"link\":\"https://example.org/\"}],\"requests\":[{\"query\":{\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"histogram:trace.Load{*}\"},\"request_type\":\"histogram\",\"style\":{\"palette\":\"dog_classic\"}}],\"show_legend\":false,\"title\":\"Metrics HOP\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"distribution\",\"xaxis\":{\"include_zero\":true,\"max\":\"auto\",\"min\":\"auto\",\"scale\":\"linear\"},\"yaxis\":{\"include_zero\":true,\"max\":\"auto\",\"min\":\"auto\",\"scale\":\"linear\"}},\"layout\":{\"height\":2,\"width\":4,\"x\":0,\"y\":0},\"id\":4570406064684725}],\"notify_list\":null,\"created_at\":\"2023-08-01T15:16:44.785380+00:00\",\"modified_at\":\"2023-08-01T15:16:44.785380+00:00\",\"restricted_roles\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 01 Aug 2023 15:16:44 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/uts-6em-2su" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"uts-6em-2su\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 01 Aug 2023 15:16:44 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-geomap-widget-using-an-event-list-request.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-geomap-widget-using-an-event-list-request.json index 4c316c451..440849b59 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-geomap-widget-using-an-event-list-request.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-geomap-widget-using-an-event-list-request.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":\"Test-Create_a_geomap_widget_using_an_event_list_request-1687375743\",\"layout_type\":\"ordered\",\"notify_list\":[],\"reflow_type\":\"fixed\",\"tags\":[],\"template_variables\":[],\"title\":\"Test-Create_a_geomap_widget_using_an_event_list_request-1687375743\",\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"@network.client.geoip.location.latitude\",\"width\":\"auto\"},{\"field\":\"@network.client.geoip.location.longitude\",\"width\":\"auto\"},{\"field\":\"@network.client.geoip.country.iso_code\",\"width\":\"auto\"},{\"field\":\"@network.client.geoip.subdivision.name\",\"width\":\"auto\"},{\"field\":\"classic\",\"width\":\"auto\"},{\"field\":\"\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"logs_stream\",\"indexes\":[],\"query_string\":\"\"},\"response_format\":\"event_list\"}],\"style\":{\"palette\":\"hostmap_blues\",\"palette_flip\":false},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"geomap\",\"view\":{\"focus\":\"WORLD\"}},\"layout\":{\"height\":6,\"width\":12,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"id\":\"cn7-qfm-s9w\",\"title\":\"Test-Create_a_geomap_widget_using_an_event_list_request-1687375743\",\"description\":\"Test-Create_a_geomap_widget_using_an_event_list_request-1687375743\",\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/cn7-qfm-s9w/test-createageomapwidgetusinganeventlistrequest-1687375743\",\"is_read_only\":false,\"template_variables\":[],\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"@network.client.geoip.location.latitude\",\"width\":\"auto\"},{\"field\":\"@network.client.geoip.location.longitude\",\"width\":\"auto\"},{\"field\":\"@network.client.geoip.country.iso_code\",\"width\":\"auto\"},{\"field\":\"@network.client.geoip.subdivision.name\",\"width\":\"auto\"},{\"field\":\"classic\",\"width\":\"auto\"},{\"field\":\"\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"logs_stream\",\"indexes\":[],\"query_string\":\"\"},\"response_format\":\"event_list\"}],\"style\":{\"palette\":\"hostmap_blues\",\"palette_flip\":false},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"geomap\",\"view\":{\"focus\":\"WORLD\"}},\"layout\":{\"height\":6,\"width\":12,\"x\":0,\"y\":0},\"id\":8506811379916619}],\"notify_list\":[],\"created_at\":\"2023-06-21T19:29:03.801081+00:00\",\"modified_at\":\"2023-06-21T19:29:03.801081+00:00\",\"reflow_type\":\"fixed\",\"tags\":[],\"restricted_roles\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 21 Jun 2023 19:29:03 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/cn7-qfm-s9w"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"cn7-qfm-s9w\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 21 Jun 2023 19:29:03 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":\"Test-Create_a_geomap_widget_using_an_event_list_request-1687375743\",\"layout_type\":\"ordered\",\"notify_list\":[],\"reflow_type\":\"fixed\",\"tags\":[],\"template_variables\":[],\"title\":\"Test-Create_a_geomap_widget_using_an_event_list_request-1687375743\",\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"@network.client.geoip.location.latitude\",\"width\":\"auto\"},{\"field\":\"@network.client.geoip.location.longitude\",\"width\":\"auto\"},{\"field\":\"@network.client.geoip.country.iso_code\",\"width\":\"auto\"},{\"field\":\"@network.client.geoip.subdivision.name\",\"width\":\"auto\"},{\"field\":\"classic\",\"width\":\"auto\"},{\"field\":\"\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"logs_stream\",\"indexes\":[],\"query_string\":\"\"},\"response_format\":\"event_list\"}],\"style\":{\"palette\":\"hostmap_blues\",\"palette_flip\":false},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"geomap\",\"view\":{\"focus\":\"WORLD\"}},\"layout\":{\"height\":6,\"width\":12,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"id\":\"cn7-qfm-s9w\",\"title\":\"Test-Create_a_geomap_widget_using_an_event_list_request-1687375743\",\"description\":\"Test-Create_a_geomap_widget_using_an_event_list_request-1687375743\",\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/cn7-qfm-s9w/test-createageomapwidgetusinganeventlistrequest-1687375743\",\"is_read_only\":false,\"template_variables\":[],\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"@network.client.geoip.location.latitude\",\"width\":\"auto\"},{\"field\":\"@network.client.geoip.location.longitude\",\"width\":\"auto\"},{\"field\":\"@network.client.geoip.country.iso_code\",\"width\":\"auto\"},{\"field\":\"@network.client.geoip.subdivision.name\",\"width\":\"auto\"},{\"field\":\"classic\",\"width\":\"auto\"},{\"field\":\"\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"logs_stream\",\"indexes\":[],\"query_string\":\"\"},\"response_format\":\"event_list\"}],\"style\":{\"palette\":\"hostmap_blues\",\"palette_flip\":false},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"geomap\",\"view\":{\"focus\":\"WORLD\"}},\"layout\":{\"height\":6,\"width\":12,\"x\":0,\"y\":0},\"id\":8506811379916619}],\"notify_list\":[],\"created_at\":\"2023-06-21T19:29:03.801081+00:00\",\"modified_at\":\"2023-06-21T19:29:03.801081+00:00\",\"reflow_type\":\"fixed\",\"tags\":[],\"restricted_roles\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 21 Jun 2023 19:29:03 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/cn7-qfm-s9w" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"cn7-qfm-s9w\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 21 Jun 2023 19:29:03 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-returns-OK-response.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-returns-OK-response.json index 21b31bbae..5bf0aa7dc 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-returns-OK-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_returns_OK_response-1641430224 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"755-ivq-cdy\",\"title\":\"Test-Create_a_new_dashboard_returns_OK_response-1641430224 with Profile Metrics Query\",\"url\":\"/dashboard/755-ivq-cdy/test-createanewdashboardreturnsokresponse-1641430224-with-profile-metrics-query\",\"created_at\":\"2022-01-06T00:50:24.573359+00:00\",\"modified_at\":\"2022-01-06T00:50:24.573359+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"id\":3702932968523926}],\"layout_type\":\"ordered\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:24 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/755-ivq-cdy"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"755-ivq-cdy\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:24 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_returns_OK_response-1641430224 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"755-ivq-cdy\",\"title\":\"Test-Create_a_new_dashboard_returns_OK_response-1641430224 with Profile Metrics Query\",\"url\":\"/dashboard/755-ivq-cdy/test-createanewdashboardreturnsokresponse-1641430224-with-profile-metrics-query\",\"created_at\":\"2022-01-06T00:50:24.573359+00:00\",\"modified_at\":\"2022-01-06T00:50:24.573359+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"id\":3702932968523926}],\"layout_type\":\"ordered\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:24 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/755-ivq-cdy" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"755-ivq-cdy\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:24 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-a-change-widget-using-formulas-and-functions-slo-query.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-a-change-widget-using-formulas-and-functions-slo-query.json index 1f812202c..d20e48ca7 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-a-change-widget-using-formulas-and-functions-slo-query.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-a-change-widget-using-formulas-and-functions-slo-query.json @@ -1 +1,129 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Create_a_new_dashboard_with_a_change_widget_using_formulas_and_functions_slo_query-1688414483\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/slo"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"1973fea2b6975337b3c26626e42c34e4\",\"name\":\"Test-Create_a_new_dashboard_with_a_change_widget_using_formulas_and_functions_slo_query-1688414483\",\"tags\":[],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":95.0,\"target_display\":\"95.\",\"warning\":98.0,\"warning_display\":\"98.\"}],\"type\":\"metric\",\"type_id\":1,\"description\":\"\",\"timeframe\":\"7d\",\"warning_threshold\":98,\"target_threshold\":95,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"created_at\":1688414484,\"modified_at\":1688414484}],\"error\":null}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 03 Jul 2023 20:01:23 GMT"}, {"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_a_change_widget_using_formulas_and_functions_slo_query-1688414483\",\"widgets\":[{\"definition\":{\"requests\":[{\"change_type\":\"absolute\",\"formulas\":[{\"formula\":\"hour_before(query1)\"},{\"formula\":\"query1\"}],\"increase_good\":true,\"order_by\":\"change\",\"order_dir\":\"asc\",\"queries\":[{\"additional_query_filters\":\"*\",\"data_source\":\"slo\",\"group_mode\":\"overall\",\"measure\":\"slo_status\",\"name\":\"query1\",\"slo_id\":\"1973fea2b6975337b3c26626e42c34e4\",\"slo_query_type\":\"metric\"}],\"response_format\":\"scalar\"}],\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"change\"},\"layout\":{\"height\":2,\"width\":4,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"id\":\"9u7-4vb-5ag\",\"title\":\"Test-Create_a_new_dashboard_with_a_change_widget_using_formulas_and_functions_slo_query-1688414483\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/9u7-4vb-5ag/test-createanewdashboardwithachangewidgetusingformulasandfunctionssloquery-16884\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"change_type\":\"absolute\",\"formulas\":[{\"formula\":\"hour_before(query1)\"},{\"formula\":\"query1\"}],\"increase_good\":true,\"order_by\":\"change\",\"order_dir\":\"asc\",\"queries\":[{\"additional_query_filters\":\"*\",\"data_source\":\"slo\",\"group_mode\":\"overall\",\"measure\":\"slo_status\",\"name\":\"query1\",\"slo_id\":\"1973fea2b6975337b3c26626e42c34e4\",\"slo_query_type\":\"metric\"}],\"response_format\":\"scalar\"}],\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"change\"},\"layout\":{\"height\":2,\"width\":4,\"x\":0,\"y\":0},\"id\":6457792410139351}],\"notify_list\":null,\"created_at\":\"2023-07-03T20:01:24.547325+00:00\",\"modified_at\":\"2023-07-03T20:01:24.547325+00:00\",\"restricted_roles\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 03 Jul 2023 20:01:23 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/9u7-4vb-5ag"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"9u7-4vb-5ag\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 03 Jul 2023 20:01:23 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/slo/1973fea2b6975337b3c26626e42c34e4"}, "response": {"body": {"string": "{\"data\":[\"1973fea2b6975337b3c26626e42c34e4\"],\"error\":null}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 03 Jul 2023 20:01:23 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Create_a_new_dashboard_with_a_change_widget_using_formulas_and_functions_slo_query-1688414483\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/slo" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"1973fea2b6975337b3c26626e42c34e4\",\"name\":\"Test-Create_a_new_dashboard_with_a_change_widget_using_formulas_and_functions_slo_query-1688414483\",\"tags\":[],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":95.0,\"target_display\":\"95.\",\"warning\":98.0,\"warning_display\":\"98.\"}],\"type\":\"metric\",\"type_id\":1,\"description\":\"\",\"timeframe\":\"7d\",\"warning_threshold\":98,\"target_threshold\":95,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"created_at\":1688414484,\"modified_at\":1688414484}],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 03 Jul 2023 20:01:23 GMT" + }, + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_a_change_widget_using_formulas_and_functions_slo_query-1688414483\",\"widgets\":[{\"definition\":{\"requests\":[{\"change_type\":\"absolute\",\"formulas\":[{\"formula\":\"hour_before(query1)\"},{\"formula\":\"query1\"}],\"increase_good\":true,\"order_by\":\"change\",\"order_dir\":\"asc\",\"queries\":[{\"additional_query_filters\":\"*\",\"data_source\":\"slo\",\"group_mode\":\"overall\",\"measure\":\"slo_status\",\"name\":\"query1\",\"slo_id\":\"1973fea2b6975337b3c26626e42c34e4\",\"slo_query_type\":\"metric\"}],\"response_format\":\"scalar\"}],\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"change\"},\"layout\":{\"height\":2,\"width\":4,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"id\":\"9u7-4vb-5ag\",\"title\":\"Test-Create_a_new_dashboard_with_a_change_widget_using_formulas_and_functions_slo_query-1688414483\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/9u7-4vb-5ag/test-createanewdashboardwithachangewidgetusingformulasandfunctionssloquery-16884\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"change_type\":\"absolute\",\"formulas\":[{\"formula\":\"hour_before(query1)\"},{\"formula\":\"query1\"}],\"increase_good\":true,\"order_by\":\"change\",\"order_dir\":\"asc\",\"queries\":[{\"additional_query_filters\":\"*\",\"data_source\":\"slo\",\"group_mode\":\"overall\",\"measure\":\"slo_status\",\"name\":\"query1\",\"slo_id\":\"1973fea2b6975337b3c26626e42c34e4\",\"slo_query_type\":\"metric\"}],\"response_format\":\"scalar\"}],\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"change\"},\"layout\":{\"height\":2,\"width\":4,\"x\":0,\"y\":0},\"id\":6457792410139351}],\"notify_list\":null,\"created_at\":\"2023-07-03T20:01:24.547325+00:00\",\"modified_at\":\"2023-07-03T20:01:24.547325+00:00\",\"restricted_roles\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 03 Jul 2023 20:01:23 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/9u7-4vb-5ag" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"9u7-4vb-5ag\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 03 Jul 2023 20:01:23 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/slo/1973fea2b6975337b3c26626e42c34e4" + }, + "response": { + "body": { + "string": "{\"data\":[\"1973fea2b6975337b3c26626e42c34e4\"],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 03 Jul 2023 20:01:23 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-a-formulas-and-functions-change-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-a-formulas-and-functions-change-widget.json index fabec8671..16641e60b 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-a-formulas-and-functions-change-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-a-formulas-and-functions-change-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_a_formulas_and_functions_change_widget-1641430224\",\"widgets\":[{\"definition\":{\"requests\":[{\"change_type\":\"absolute\",\"compare_to\":\"hour_before\",\"formulas\":[{\"formula\":\"hour_before(query1)\"},{\"formula\":\"query1\"}],\"increase_good\":true,\"order_by\":\"change\",\"order_dir\":\"desc\",\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"logs\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query1\",\"search\":{\"query\":\"\"}}],\"response_format\":\"scalar\"}],\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"change\"},\"layout\":{\"height\":4,\"width\":4,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"jfv-7es-bv2\",\"title\":\"Test-Create_a_new_dashboard_with_a_formulas_and_functions_change_widget-1641430224\",\"url\":\"/dashboard/jfv-7es-bv2/test-createanewdashboardwithaformulasandfunctionschangewidget-1641430224\",\"created_at\":\"2022-01-06T00:50:25.077294+00:00\",\"modified_at\":\"2022-01-06T00:50:25.077294+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"title_size\":\"16\",\"title\":\"\",\"title_align\":\"left\",\"time\":{},\"requests\":[{\"formulas\":[{\"formula\":\"hour_before(query1)\"},{\"formula\":\"query1\"}],\"order_by\":\"change\",\"order_dir\":\"desc\",\"compare_to\":\"hour_before\",\"response_format\":\"scalar\",\"increase_good\":true,\"queries\":[{\"search\":{\"query\":\"\"},\"data_source\":\"logs\",\"compute\":{\"aggregation\":\"count\"},\"name\":\"query1\",\"indexes\":[\"*\"],\"group_by\":[]}],\"change_type\":\"absolute\"}],\"type\":\"change\"},\"layout\":{\"y\":0,\"width\":4,\"x\":0,\"height\":4},\"id\":5329680147350539}],\"layout_type\":\"ordered\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:24 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/jfv-7es-bv2"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"jfv-7es-bv2\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:24 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_a_formulas_and_functions_change_widget-1641430224\",\"widgets\":[{\"definition\":{\"requests\":[{\"change_type\":\"absolute\",\"compare_to\":\"hour_before\",\"formulas\":[{\"formula\":\"hour_before(query1)\"},{\"formula\":\"query1\"}],\"increase_good\":true,\"order_by\":\"change\",\"order_dir\":\"desc\",\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"logs\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query1\",\"search\":{\"query\":\"\"}}],\"response_format\":\"scalar\"}],\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"change\"},\"layout\":{\"height\":4,\"width\":4,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"jfv-7es-bv2\",\"title\":\"Test-Create_a_new_dashboard_with_a_formulas_and_functions_change_widget-1641430224\",\"url\":\"/dashboard/jfv-7es-bv2/test-createanewdashboardwithaformulasandfunctionschangewidget-1641430224\",\"created_at\":\"2022-01-06T00:50:25.077294+00:00\",\"modified_at\":\"2022-01-06T00:50:25.077294+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"title_size\":\"16\",\"title\":\"\",\"title_align\":\"left\",\"time\":{},\"requests\":[{\"formulas\":[{\"formula\":\"hour_before(query1)\"},{\"formula\":\"query1\"}],\"order_by\":\"change\",\"order_dir\":\"desc\",\"compare_to\":\"hour_before\",\"response_format\":\"scalar\",\"increase_good\":true,\"queries\":[{\"search\":{\"query\":\"\"},\"data_source\":\"logs\",\"compute\":{\"aggregation\":\"count\"},\"name\":\"query1\",\"indexes\":[\"*\"],\"group_by\":[]}],\"change_type\":\"absolute\"}],\"type\":\"change\"},\"layout\":{\"y\":0,\"width\":4,\"x\":0,\"height\":4},\"id\":5329680147350539}],\"layout_type\":\"ordered\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:24 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/jfv-7es-bv2" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"jfv-7es-bv2\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:24 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-a-formulas-and-functions-treemap-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-a-formulas-and-functions-treemap-widget.json index 93e5fede9..b62c3c87b 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-a-formulas-and-functions-treemap-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-a-formulas-and-functions-treemap-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_a_formulas_and_functions_treemap_widget-1641982291\",\"widgets\":[{\"definition\":{\"requests\":[{\"formulas\":[{\"formula\":\"hour_before(query1)\"},{\"formula\":\"query1\"}],\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"logs\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query1\",\"search\":{\"query\":\"\"}}],\"response_format\":\"scalar\"}],\"title\":\"\",\"type\":\"treemap\"},\"layout\":{\"height\":4,\"width\":4,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"2ar-acj-hxc\",\"title\":\"Test-Create_a_new_dashboard_with_a_formulas_and_functions_treemap_widget-1641982291\",\"url\":\"/dashboard/2ar-acj-hxc/test-createanewdashboardwithaformulasandfunctionstreemapwidget-1641982291\",\"created_at\":\"2022-01-12T10:11:31.601485+00:00\",\"modified_at\":\"2022-01-12T10:11:31.601485+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"formulas\":[{\"formula\":\"hour_before(query1)\"},{\"formula\":\"query1\"}],\"response_format\":\"scalar\",\"queries\":[{\"search\":{\"query\":\"\"},\"data_source\":\"logs\",\"compute\":{\"aggregation\":\"count\"},\"name\":\"query1\",\"indexes\":[\"*\"],\"group_by\":[]}]}],\"type\":\"treemap\",\"title\":\"\"},\"layout\":{\"y\":0,\"width\":4,\"x\":0,\"height\":4},\"id\":2836171994664464}],\"layout_type\":\"ordered\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 12 Jan 2022 10:11:31 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/2ar-acj-hxc"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"2ar-acj-hxc\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 12 Jan 2022 10:11:31 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_a_formulas_and_functions_treemap_widget-1641982291\",\"widgets\":[{\"definition\":{\"requests\":[{\"formulas\":[{\"formula\":\"hour_before(query1)\"},{\"formula\":\"query1\"}],\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"logs\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query1\",\"search\":{\"query\":\"\"}}],\"response_format\":\"scalar\"}],\"title\":\"\",\"type\":\"treemap\"},\"layout\":{\"height\":4,\"width\":4,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"2ar-acj-hxc\",\"title\":\"Test-Create_a_new_dashboard_with_a_formulas_and_functions_treemap_widget-1641982291\",\"url\":\"/dashboard/2ar-acj-hxc/test-createanewdashboardwithaformulasandfunctionstreemapwidget-1641982291\",\"created_at\":\"2022-01-12T10:11:31.601485+00:00\",\"modified_at\":\"2022-01-12T10:11:31.601485+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"formulas\":[{\"formula\":\"hour_before(query1)\"},{\"formula\":\"query1\"}],\"response_format\":\"scalar\",\"queries\":[{\"search\":{\"query\":\"\"},\"data_source\":\"logs\",\"compute\":{\"aggregation\":\"count\"},\"name\":\"query1\",\"indexes\":[\"*\"],\"group_by\":[]}]}],\"type\":\"treemap\",\"title\":\"\"},\"layout\":{\"y\":0,\"width\":4,\"x\":0,\"height\":4},\"id\":2836171994664464}],\"layout_type\":\"ordered\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 12 Jan 2022 10:11:31 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/2ar-acj-hxc" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"2ar-acj-hxc\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 12 Jan 2022 10:11:31 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-a-query-value-widget-using-the-percentile-aggregator.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-a-query-value-widget-using-the-percentile-aggregator.json index 89f979d26..65a853df0 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-a-query-value-widget-using-the-percentile-aggregator.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-a-query-value-widget-using-the-percentile-aggregator.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_a_query_value_widget_using_the_percentile_aggregator-1641430225 with QVW Percentile Aggregator\",\"widgets\":[{\"definition\":{\"autoscale\":true,\"precision\":2,\"requests\":[{\"formulas\":[{\"formula\":\"query1\"}],\"queries\":[{\"aggregator\":\"percentile\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"p90:dist.dd.dogweb.latency{*}\"}],\"response_format\":\"scalar\"}],\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"query_value\"},\"layout\":{\"height\":2,\"width\":2,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"xtt-jph-mde\",\"title\":\"Test-Create_a_new_dashboard_with_a_query_value_widget_using_the_percentile_aggregator-1641430225 with QVW Percentile Aggregator\",\"url\":\"/dashboard/xtt-jph-mde/test-createanewdashboardwithaqueryvaluewidgetusingthepercentileaggregator-164143\",\"created_at\":\"2022-01-06T00:50:25.655596+00:00\",\"modified_at\":\"2022-01-06T00:50:25.655596+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"autoscale\":true,\"title\":\"\",\"title_align\":\"left\",\"precision\":2,\"time\":{},\"title_size\":\"16\",\"requests\":[{\"formulas\":[{\"formula\":\"query1\"}],\"response_format\":\"scalar\",\"queries\":[{\"aggregator\":\"percentile\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"p90:dist.dd.dogweb.latency{*}\"}]}],\"type\":\"query_value\"},\"layout\":{\"y\":0,\"width\":2,\"x\":0,\"height\":2},\"id\":5189476437557683}],\"layout_type\":\"ordered\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:25 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/xtt-jph-mde"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"xtt-jph-mde\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:25 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_a_query_value_widget_using_the_percentile_aggregator-1641430225 with QVW Percentile Aggregator\",\"widgets\":[{\"definition\":{\"autoscale\":true,\"precision\":2,\"requests\":[{\"formulas\":[{\"formula\":\"query1\"}],\"queries\":[{\"aggregator\":\"percentile\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"p90:dist.dd.dogweb.latency{*}\"}],\"response_format\":\"scalar\"}],\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"query_value\"},\"layout\":{\"height\":2,\"width\":2,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"xtt-jph-mde\",\"title\":\"Test-Create_a_new_dashboard_with_a_query_value_widget_using_the_percentile_aggregator-1641430225 with QVW Percentile Aggregator\",\"url\":\"/dashboard/xtt-jph-mde/test-createanewdashboardwithaqueryvaluewidgetusingthepercentileaggregator-164143\",\"created_at\":\"2022-01-06T00:50:25.655596+00:00\",\"modified_at\":\"2022-01-06T00:50:25.655596+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"autoscale\":true,\"title\":\"\",\"title_align\":\"left\",\"precision\":2,\"time\":{},\"title_size\":\"16\",\"requests\":[{\"formulas\":[{\"formula\":\"query1\"}],\"response_format\":\"scalar\",\"queries\":[{\"aggregator\":\"percentile\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"p90:dist.dd.dogweb.latency{*}\"}]}],\"type\":\"query_value\"},\"layout\":{\"y\":0,\"width\":2,\"x\":0,\"height\":2},\"id\":5189476437557683}],\"layout_type\":\"ordered\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:25 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/xtt-jph-mde" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"xtt-jph-mde\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:25 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-a-query-value-widget-using-timeseries-background.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-a-query-value-widget-using-timeseries-background.json index 5d7678b19..840eea36a 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-a-query-value-widget-using-timeseries-background.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-a-query-value-widget-using-timeseries-background.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_a_query_value_widget_using_timeseries_background-1648850756 with QVW Timeseries Background\",\"widgets\":[{\"definition\":{\"autoscale\":true,\"precision\":2,\"requests\":[{\"formulas\":[{\"formula\":\"query1\"}],\"queries\":[{\"aggregator\":\"percentile\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"sum:my.cool.count.metric{*}\"}],\"response_format\":\"scalar\"}],\"time\":{},\"timeseries_background\":{\"type\":\"area\",\"yaxis\":{\"include_zero\":true}},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"query_value\"},\"layout\":{\"height\":2,\"width\":2,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"qpb-ufq-tfj\",\"title\":\"Test-Create_a_new_dashboard_with_a_query_value_widget_using_timeseries_background-1648850756 with QVW Timeseries Background\",\"url\":\"/dashboard/qpb-ufq-tfj/test-createanewdashboardwithaqueryvaluewidgetusingtimeseriesbackground-164885075\",\"created_at\":\"2022-04-01T22:05:56.882433+00:00\",\"modified_at\":\"2022-04-01T22:05:56.882433+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"autoscale\":true,\"title\":\"\",\"title_align\":\"left\",\"precision\":2,\"timeseries_background\":{\"type\":\"area\",\"yaxis\":{\"include_zero\":true}},\"time\":{},\"title_size\":\"16\",\"requests\":[{\"formulas\":[{\"formula\":\"query1\"}],\"response_format\":\"scalar\",\"queries\":[{\"aggregator\":\"percentile\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"sum:my.cool.count.metric{*}\"}]}],\"type\":\"query_value\"},\"layout\":{\"y\":0,\"width\":2,\"x\":0,\"height\":2},\"id\":1355546266470286}],\"layout_type\":\"ordered\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 01 Apr 2022 22:05:56 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/qpb-ufq-tfj"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"qpb-ufq-tfj\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 01 Apr 2022 22:05:56 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_a_query_value_widget_using_timeseries_background-1648850756 with QVW Timeseries Background\",\"widgets\":[{\"definition\":{\"autoscale\":true,\"precision\":2,\"requests\":[{\"formulas\":[{\"formula\":\"query1\"}],\"queries\":[{\"aggregator\":\"percentile\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"sum:my.cool.count.metric{*}\"}],\"response_format\":\"scalar\"}],\"time\":{},\"timeseries_background\":{\"type\":\"area\",\"yaxis\":{\"include_zero\":true}},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"query_value\"},\"layout\":{\"height\":2,\"width\":2,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"qpb-ufq-tfj\",\"title\":\"Test-Create_a_new_dashboard_with_a_query_value_widget_using_timeseries_background-1648850756 with QVW Timeseries Background\",\"url\":\"/dashboard/qpb-ufq-tfj/test-createanewdashboardwithaqueryvaluewidgetusingtimeseriesbackground-164885075\",\"created_at\":\"2022-04-01T22:05:56.882433+00:00\",\"modified_at\":\"2022-04-01T22:05:56.882433+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"autoscale\":true,\"title\":\"\",\"title_align\":\"left\",\"precision\":2,\"timeseries_background\":{\"type\":\"area\",\"yaxis\":{\"include_zero\":true}},\"time\":{},\"title_size\":\"16\",\"requests\":[{\"formulas\":[{\"formula\":\"query1\"}],\"response_format\":\"scalar\",\"queries\":[{\"aggregator\":\"percentile\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"sum:my.cool.count.metric{*}\"}]}],\"type\":\"query_value\"},\"layout\":{\"y\":0,\"width\":2,\"x\":0,\"height\":2},\"id\":1355546266470286}],\"layout_type\":\"ordered\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 01 Apr 2022 22:05:56 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/qpb-ufq-tfj" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"qpb-ufq-tfj\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 01 Apr 2022 22:05:56 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-a-timeseries-widget-and-an-overlay-request.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-a-timeseries-widget-and-an-overlay-request.json index b34125e40..0d3ba22a9 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-a-timeseries-widget-and-an-overlay-request.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-a-timeseries-widget-and-an-overlay-request.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_a_timeseries_widget_and_an_overlay_request-1689353452\",\"widgets\":[{\"definition\":{\"requests\":[{\"display_type\":\"line\",\"on_right_yaxis\":false,\"queries\":[{\"data_source\":\"metrics\",\"name\":\"mymetric\",\"query\":\"avg:system.cpu.user{*}\"}],\"response_format\":\"timeseries\"},{\"display_type\":\"overlay\",\"queries\":[{\"data_source\":\"metrics\",\"name\":\"mymetricoverlay\",\"query\":\"avg:system.cpu.user{*}\"}],\"response_format\":\"timeseries\",\"style\":{\"line_type\":\"solid\",\"line_width\":\"normal\",\"palette\":\"purple\"}}],\"type\":\"timeseries\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"id\":\"56a-eq2-76i\",\"title\":\"Test-Create_a_new_dashboard_with_a_timeseries_widget_and_an_overlay_request-1689353452\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/56a-eq2-76i/test-createanewdashboardwithatimeserieswidgetandanoverlayrequest-1689353452\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"display_type\":\"line\",\"on_right_yaxis\":false,\"queries\":[{\"data_source\":\"metrics\",\"name\":\"mymetric\",\"query\":\"avg:system.cpu.user{*}\"}],\"response_format\":\"timeseries\"},{\"display_type\":\"overlay\",\"queries\":[{\"data_source\":\"metrics\",\"name\":\"mymetricoverlay\",\"query\":\"avg:system.cpu.user{*}\"}],\"response_format\":\"timeseries\",\"style\":{\"line_type\":\"solid\",\"line_width\":\"normal\",\"palette\":\"purple\"}}],\"type\":\"timeseries\"},\"id\":4582756152438811}],\"notify_list\":null,\"created_at\":\"2023-07-14T16:50:52.916992+00:00\",\"modified_at\":\"2023-07-14T16:50:52.916992+00:00\",\"restricted_roles\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 14 Jul 2023 16:50:52 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/56a-eq2-76i"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"56a-eq2-76i\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 14 Jul 2023 16:50:52 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_a_timeseries_widget_and_an_overlay_request-1689353452\",\"widgets\":[{\"definition\":{\"requests\":[{\"display_type\":\"line\",\"on_right_yaxis\":false,\"queries\":[{\"data_source\":\"metrics\",\"name\":\"mymetric\",\"query\":\"avg:system.cpu.user{*}\"}],\"response_format\":\"timeseries\"},{\"display_type\":\"overlay\",\"queries\":[{\"data_source\":\"metrics\",\"name\":\"mymetricoverlay\",\"query\":\"avg:system.cpu.user{*}\"}],\"response_format\":\"timeseries\",\"style\":{\"line_type\":\"solid\",\"line_width\":\"normal\",\"palette\":\"purple\"}}],\"type\":\"timeseries\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"id\":\"56a-eq2-76i\",\"title\":\"Test-Create_a_new_dashboard_with_a_timeseries_widget_and_an_overlay_request-1689353452\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/56a-eq2-76i/test-createanewdashboardwithatimeserieswidgetandanoverlayrequest-1689353452\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"display_type\":\"line\",\"on_right_yaxis\":false,\"queries\":[{\"data_source\":\"metrics\",\"name\":\"mymetric\",\"query\":\"avg:system.cpu.user{*}\"}],\"response_format\":\"timeseries\"},{\"display_type\":\"overlay\",\"queries\":[{\"data_source\":\"metrics\",\"name\":\"mymetricoverlay\",\"query\":\"avg:system.cpu.user{*}\"}],\"response_format\":\"timeseries\",\"style\":{\"line_type\":\"solid\",\"line_width\":\"normal\",\"palette\":\"purple\"}}],\"type\":\"timeseries\"},\"id\":4582756152438811}],\"notify_list\":null,\"created_at\":\"2023-07-14T16:50:52.916992+00:00\",\"modified_at\":\"2023-07-14T16:50:52.916992+00:00\",\"restricted_roles\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 14 Jul 2023 16:50:52 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/56a-eq2-76i" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"56a-eq2-76i\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 14 Jul 2023 16:50:52 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-a-timeseries-widget-using-formulas-and-functions-cloud-cost-query.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-a-timeseries-widget-using-formulas-and-functions-cloud-cost-query.json index c631880ef..72a26211d 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-a-timeseries-widget-using-formulas-and-functions-cloud-cost-query.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-a-timeseries-widget-using-formulas-and-functions-cloud-cost-query.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_a_timeseries_widget_using_formulas_and_functions_cloud_cost_query-1699997959\",\"widgets\":[{\"definition\":{\"requests\":[{\"display_type\":\"bars\",\"formulas\":[{\"formula\":\"query1\"}],\"queries\":[{\"data_source\":\"cloud_cost\",\"name\":\"query1\",\"query\":\"sum:aws.cost.amortized{*} by {aws_product}.rollup(sum, monthly)\"}],\"response_format\":\"timeseries\",\"style\":{\"line_type\":\"solid\",\"line_width\":\"normal\",\"palette\":\"dog_classic\"}}],\"time\":{\"live_span\":\"week_to_date\"},\"title\":\"Example Cloud Cost Query\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"timeseries\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"id\":\"nh3-n9c-wuz\",\"title\":\"Test-Create_a_new_dashboard_with_a_timeseries_widget_using_formulas_and_functions_cloud_cost_query-1699997959\",\"description\":null,\"author_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"author_name\":\"CI Account\",\"layout_type\":\"ordered\",\"url\":\"/dashboard/nh3-n9c-wuz/test-createanewdashboardwithatimeserieswidgetusingformulasandfunctionscloudcostq\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"display_type\":\"bars\",\"formulas\":[{\"formula\":\"query1\"}],\"queries\":[{\"data_source\":\"cloud_cost\",\"name\":\"query1\",\"query\":\"sum:aws.cost.amortized{*} by {aws_product}.rollup(sum, monthly)\"}],\"response_format\":\"timeseries\",\"style\":{\"line_type\":\"solid\",\"line_width\":\"normal\",\"palette\":\"dog_classic\"}}],\"time\":{\"live_span\":\"week_to_date\"},\"title\":\"Example Cloud Cost Query\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"timeseries\"},\"id\":380165468656457}],\"notify_list\":null,\"created_at\":\"2023-11-14T21:39:19.798591+00:00\",\"modified_at\":\"2023-11-14T21:39:19.798591+00:00\",\"restricted_roles\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 14 Nov 2023 21:39:19 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/nh3-n9c-wuz"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"nh3-n9c-wuz\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 14 Nov 2023 21:39:19 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_a_timeseries_widget_using_formulas_and_functions_cloud_cost_query-1699997959\",\"widgets\":[{\"definition\":{\"requests\":[{\"display_type\":\"bars\",\"formulas\":[{\"formula\":\"query1\"}],\"queries\":[{\"data_source\":\"cloud_cost\",\"name\":\"query1\",\"query\":\"sum:aws.cost.amortized{*} by {aws_product}.rollup(sum, monthly)\"}],\"response_format\":\"timeseries\",\"style\":{\"line_type\":\"solid\",\"line_width\":\"normal\",\"palette\":\"dog_classic\"}}],\"time\":{\"live_span\":\"week_to_date\"},\"title\":\"Example Cloud Cost Query\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"timeseries\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"id\":\"nh3-n9c-wuz\",\"title\":\"Test-Create_a_new_dashboard_with_a_timeseries_widget_using_formulas_and_functions_cloud_cost_query-1699997959\",\"description\":null,\"author_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"author_name\":\"CI Account\",\"layout_type\":\"ordered\",\"url\":\"/dashboard/nh3-n9c-wuz/test-createanewdashboardwithatimeserieswidgetusingformulasandfunctionscloudcostq\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"display_type\":\"bars\",\"formulas\":[{\"formula\":\"query1\"}],\"queries\":[{\"data_source\":\"cloud_cost\",\"name\":\"query1\",\"query\":\"sum:aws.cost.amortized{*} by {aws_product}.rollup(sum, monthly)\"}],\"response_format\":\"timeseries\",\"style\":{\"line_type\":\"solid\",\"line_width\":\"normal\",\"palette\":\"dog_classic\"}}],\"time\":{\"live_span\":\"week_to_date\"},\"title\":\"Example Cloud Cost Query\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"timeseries\"},\"id\":380165468656457}],\"notify_list\":null,\"created_at\":\"2023-11-14T21:39:19.798591+00:00\",\"modified_at\":\"2023-11-14T21:39:19.798591+00:00\",\"restricted_roles\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 14 Nov 2023 21:39:19 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/nh3-n9c-wuz" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"nh3-n9c-wuz\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 14 Nov 2023 21:39:19 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-alert-graph-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-alert-graph-widget.json index 7a4bdddb7..9294d265e 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-alert-graph-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-alert-graph-widget.json @@ -1 +1,129 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Create_a_new_dashboard_with_alert_graph_widget-1674067036\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2,\"warning\":1},\"timeout_h\":24},\"priority\":3,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"tags\":[\"test:testcreateanewdashboardwithalertgraphwidget1674067036\",\"env:ci\"],\"type\":\"log alert\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/monitor"}, "response": {"body": {"string": "{\"id\":108260299,\"org_id\":321813,\"type\":\"log alert\",\"name\":\"Test-Create_a_new_dashboard_with_alert_graph_widget-1674067036\",\"message\":\"some message Notify: @hipchat-channel\",\"tags\":[\"test:testcreateanewdashboardwithalertgraphwidget1674067036\",\"env:ci\"],\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2.0,\"warning\":1.0},\"timeout_h\":24,\"silenced\":{}},\"multi\":true,\"created_at\":1674067036000,\"created\":\"2023-01-18T18:37:16.358564+00:00\",\"modified\":\"2023-01-18T18:37:16.358564+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"id\":1445416}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 18 Jan 2023 18:37:16 GMT"}, {"request": {"body": {"string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_alert_graph_widget-1674067036\",\"widgets\":[{\"definition\":{\"alert_id\":\"108260299\",\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"alert_graph\",\"viz_type\":\"timeseries\"},\"layout\":{\"height\":15,\"width\":47,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"tvp-85z-v2d\",\"title\":\"Test-Create_a_new_dashboard_with_alert_graph_widget-1674067036\",\"url\":\"/dashboard/tvp-85z-v2d/test-createanewdashboardwithalertgraphwidget-1674067036\",\"created_at\":\"2023-01-18T18:37:16.495648+00:00\",\"modified_at\":\"2023-01-18T18:37:16.495648+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"title_size\":\"16\",\"viz_type\":\"timeseries\",\"title\":\"\",\"title_align\":\"left\",\"alert_id\":\"108260299\",\"time\":{},\"type\":\"alert_graph\"},\"layout\":{\"y\":0,\"width\":47,\"x\":0,\"height\":15},\"id\":236119153104762}],\"layout_type\":\"free\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 18 Jan 2023 18:37:16 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/tvp-85z-v2d"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"tvp-85z-v2d\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 18 Jan 2023 18:37:16 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/monitor/108260299"}, "response": {"body": {"string": "{\"deleted_monitor_id\":108260299}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 18 Jan 2023 18:37:16 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Create_a_new_dashboard_with_alert_graph_widget-1674067036\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2,\"warning\":1},\"timeout_h\":24},\"priority\":3,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"tags\":[\"test:testcreateanewdashboardwithalertgraphwidget1674067036\",\"env:ci\"],\"type\":\"log alert\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/monitor" + }, + "response": { + "body": { + "string": "{\"id\":108260299,\"org_id\":321813,\"type\":\"log alert\",\"name\":\"Test-Create_a_new_dashboard_with_alert_graph_widget-1674067036\",\"message\":\"some message Notify: @hipchat-channel\",\"tags\":[\"test:testcreateanewdashboardwithalertgraphwidget1674067036\",\"env:ci\"],\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2.0,\"warning\":1.0},\"timeout_h\":24,\"silenced\":{}},\"multi\":true,\"created_at\":1674067036000,\"created\":\"2023-01-18T18:37:16.358564+00:00\",\"modified\":\"2023-01-18T18:37:16.358564+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"id\":1445416}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 18 Jan 2023 18:37:16 GMT" + }, + { + "request": { + "body": { + "string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_alert_graph_widget-1674067036\",\"widgets\":[{\"definition\":{\"alert_id\":\"108260299\",\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"alert_graph\",\"viz_type\":\"timeseries\"},\"layout\":{\"height\":15,\"width\":47,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"tvp-85z-v2d\",\"title\":\"Test-Create_a_new_dashboard_with_alert_graph_widget-1674067036\",\"url\":\"/dashboard/tvp-85z-v2d/test-createanewdashboardwithalertgraphwidget-1674067036\",\"created_at\":\"2023-01-18T18:37:16.495648+00:00\",\"modified_at\":\"2023-01-18T18:37:16.495648+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"title_size\":\"16\",\"viz_type\":\"timeseries\",\"title\":\"\",\"title_align\":\"left\",\"alert_id\":\"108260299\",\"time\":{},\"type\":\"alert_graph\"},\"layout\":{\"y\":0,\"width\":47,\"x\":0,\"height\":15},\"id\":236119153104762}],\"layout_type\":\"free\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 18 Jan 2023 18:37:16 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/tvp-85z-v2d" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"tvp-85z-v2d\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 18 Jan 2023 18:37:16 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/monitor/108260299" + }, + "response": { + "body": { + "string": "{\"deleted_monitor_id\":108260299}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 18 Jan 2023 18:37:16 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-alert-value-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-alert-value-widget.json index 345497630..0412ccd19 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-alert-value-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-alert-value-widget.json @@ -1 +1,129 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Create_a_new_dashboard_with_alert_value_widget-1674067036\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2,\"warning\":1},\"timeout_h\":24},\"priority\":3,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"tags\":[\"test:testcreateanewdashboardwithalertvaluewidget1674067036\",\"env:ci\"],\"type\":\"log alert\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/monitor"}, "response": {"body": {"string": "{\"id\":108260300,\"org_id\":321813,\"type\":\"log alert\",\"name\":\"Test-Create_a_new_dashboard_with_alert_value_widget-1674067036\",\"message\":\"some message Notify: @hipchat-channel\",\"tags\":[\"test:testcreateanewdashboardwithalertvaluewidget1674067036\",\"env:ci\"],\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2.0,\"warning\":1.0},\"timeout_h\":24,\"silenced\":{}},\"multi\":true,\"created_at\":1674067037000,\"created\":\"2023-01-18T18:37:17.013180+00:00\",\"modified\":\"2023-01-18T18:37:17.013180+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"id\":1445416}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 18 Jan 2023 18:37:16 GMT"}, {"request": {"body": {"string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_alert_value_widget-1674067036\",\"widgets\":[{\"definition\":{\"alert_id\":\"108260300\",\"precision\":2,\"text_align\":\"left\",\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"alert_value\",\"unit\":\"auto\"},\"layout\":{\"height\":8,\"width\":15,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"ess-8yc-y8y\",\"title\":\"Test-Create_a_new_dashboard_with_alert_value_widget-1674067036\",\"url\":\"/dashboard/ess-8yc-y8y/test-createanewdashboardwithalertvaluewidget-1674067036\",\"created_at\":\"2023-01-18T18:37:17.145823+00:00\",\"modified_at\":\"2023-01-18T18:37:17.145823+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"title_size\":\"16\",\"title\":\"\",\"title_align\":\"left\",\"text_align\":\"left\",\"precision\":2,\"alert_id\":\"108260300\",\"type\":\"alert_value\",\"unit\":\"auto\"},\"layout\":{\"y\":0,\"width\":15,\"x\":0,\"height\":8},\"id\":3516493079797108}],\"layout_type\":\"free\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 18 Jan 2023 18:37:16 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/ess-8yc-y8y"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"ess-8yc-y8y\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 18 Jan 2023 18:37:16 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/monitor/108260300"}, "response": {"body": {"string": "{\"deleted_monitor_id\":108260300}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 18 Jan 2023 18:37:16 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Create_a_new_dashboard_with_alert_value_widget-1674067036\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2,\"warning\":1},\"timeout_h\":24},\"priority\":3,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"tags\":[\"test:testcreateanewdashboardwithalertvaluewidget1674067036\",\"env:ci\"],\"type\":\"log alert\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/monitor" + }, + "response": { + "body": { + "string": "{\"id\":108260300,\"org_id\":321813,\"type\":\"log alert\",\"name\":\"Test-Create_a_new_dashboard_with_alert_value_widget-1674067036\",\"message\":\"some message Notify: @hipchat-channel\",\"tags\":[\"test:testcreateanewdashboardwithalertvaluewidget1674067036\",\"env:ci\"],\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2.0,\"warning\":1.0},\"timeout_h\":24,\"silenced\":{}},\"multi\":true,\"created_at\":1674067037000,\"created\":\"2023-01-18T18:37:17.013180+00:00\",\"modified\":\"2023-01-18T18:37:17.013180+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"id\":1445416}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 18 Jan 2023 18:37:16 GMT" + }, + { + "request": { + "body": { + "string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_alert_value_widget-1674067036\",\"widgets\":[{\"definition\":{\"alert_id\":\"108260300\",\"precision\":2,\"text_align\":\"left\",\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"alert_value\",\"unit\":\"auto\"},\"layout\":{\"height\":8,\"width\":15,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"ess-8yc-y8y\",\"title\":\"Test-Create_a_new_dashboard_with_alert_value_widget-1674067036\",\"url\":\"/dashboard/ess-8yc-y8y/test-createanewdashboardwithalertvaluewidget-1674067036\",\"created_at\":\"2023-01-18T18:37:17.145823+00:00\",\"modified_at\":\"2023-01-18T18:37:17.145823+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"title_size\":\"16\",\"title\":\"\",\"title_align\":\"left\",\"text_align\":\"left\",\"precision\":2,\"alert_id\":\"108260300\",\"type\":\"alert_value\",\"unit\":\"auto\"},\"layout\":{\"y\":0,\"width\":15,\"x\":0,\"height\":8},\"id\":3516493079797108}],\"layout_type\":\"free\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 18 Jan 2023 18:37:16 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/ess-8yc-y8y" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"ess-8yc-y8y\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 18 Jan 2023 18:37:16 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/monitor/108260300" + }, + "response": { + "body": { + "string": "{\"deleted_monitor_id\":108260300}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 18 Jan 2023 18:37:16 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-an-audit-logs-query.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-an-audit-logs-query.json index 504ac5d30..b70eb9c83 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-an-audit-logs-query.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-an-audit-logs-query.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_an_audit_logs_query-1641430228 with Audit Logs Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"audit\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query1\",\"search\":{\"query\":\"\"}}],\"response_format\":\"timeseries\"}],\"type\":\"timeseries\"},\"layout\":{\"height\":2,\"width\":4,\"x\":2,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"gni-ma8-3tw\",\"title\":\"Test-Create_a_new_dashboard_with_an_audit_logs_query-1641430228 with Audit Logs Query\",\"url\":\"/dashboard/gni-ma8-3tw/test-createanewdashboardwithanauditlogsquery-1641430228-with-audit-logs-query\",\"created_at\":\"2022-01-06T00:50:28.350927+00:00\",\"modified_at\":\"2022-01-06T00:50:28.350927+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"response_format\":\"timeseries\",\"queries\":[{\"search\":{\"query\":\"\"},\"data_source\":\"audit\",\"compute\":{\"aggregation\":\"count\"},\"name\":\"query1\",\"indexes\":[\"*\"],\"group_by\":[]}]}],\"type\":\"timeseries\"},\"layout\":{\"y\":0,\"width\":4,\"x\":2,\"height\":2},\"id\":6324292938180360}],\"layout_type\":\"ordered\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:28 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/gni-ma8-3tw"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"gni-ma8-3tw\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:28 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_an_audit_logs_query-1641430228 with Audit Logs Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"audit\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query1\",\"search\":{\"query\":\"\"}}],\"response_format\":\"timeseries\"}],\"type\":\"timeseries\"},\"layout\":{\"height\":2,\"width\":4,\"x\":2,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"gni-ma8-3tw\",\"title\":\"Test-Create_a_new_dashboard_with_an_audit_logs_query-1641430228 with Audit Logs Query\",\"url\":\"/dashboard/gni-ma8-3tw/test-createanewdashboardwithanauditlogsquery-1641430228-with-audit-logs-query\",\"created_at\":\"2022-01-06T00:50:28.350927+00:00\",\"modified_at\":\"2022-01-06T00:50:28.350927+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"response_format\":\"timeseries\",\"queries\":[{\"search\":{\"query\":\"\"},\"data_source\":\"audit\",\"compute\":{\"aggregation\":\"count\"},\"name\":\"query1\",\"indexes\":[\"*\"],\"group_by\":[]}]}],\"type\":\"timeseries\"},\"layout\":{\"y\":0,\"width\":4,\"x\":2,\"height\":2},\"id\":6324292938180360}],\"layout_type\":\"ordered\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:28 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/gni-ma8-3tw" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"gni-ma8-3tw\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:28 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-apm-dependency-stats-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-apm-dependency-stats-widget.json index ca33fc29c..423e3e928 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-apm-dependency-stats-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-apm-dependency-stats-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_apm_dependency_stats_widget-1641430228\",\"widgets\":[{\"definition\":{\"requests\":[{\"queries\":[{\"data_source\":\"apm_dependency_stats\",\"env\":\"ci\",\"name\":\"query1\",\"operation_name\":\"cassandra.query\",\"primary_tag_name\":\"datacenter\",\"primary_tag_value\":\"edge-eu1.prod.dog\",\"resource_name\":\"DELETE FROM monitor_history.monitor_state_change_history WHERE org_id = ? AND monitor_id IN ? AND group = ?\",\"service\":\"cassandra\",\"stat\":\"avg_duration\"}],\"response_format\":\"scalar\"}],\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"query_table\"},\"layout\":{\"height\":4,\"width\":4,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"z3x-s3a-d2f\",\"title\":\"Test-Create_a_new_dashboard_with_apm_dependency_stats_widget-1641430228\",\"url\":\"/dashboard/z3x-s3a-d2f/test-createanewdashboardwithapmdependencystatswidget-1641430228\",\"created_at\":\"2022-01-06T00:50:28.828138+00:00\",\"modified_at\":\"2022-01-06T00:50:28.828138+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"type\":\"query_table\",\"requests\":[{\"response_format\":\"scalar\",\"queries\":[{\"primary_tag_value\":\"edge-eu1.prod.dog\",\"stat\":\"avg_duration\",\"data_source\":\"apm_dependency_stats\",\"name\":\"query1\",\"service\":\"cassandra\",\"resource_name\":\"DELETE FROM monitor_history.monitor_state_change_history WHERE org_id = ? AND monitor_id IN ? AND group = ?\",\"env\":\"ci\",\"primary_tag_name\":\"datacenter\",\"operation_name\":\"cassandra.query\"}]}],\"title_align\":\"left\",\"title_size\":\"16\",\"title\":\"\"},\"layout\":{\"y\":0,\"width\":4,\"x\":0,\"height\":4},\"id\":2344140518922967}],\"layout_type\":\"ordered\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:28 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/z3x-s3a-d2f"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"z3x-s3a-d2f\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:28 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_apm_dependency_stats_widget-1641430228\",\"widgets\":[{\"definition\":{\"requests\":[{\"queries\":[{\"data_source\":\"apm_dependency_stats\",\"env\":\"ci\",\"name\":\"query1\",\"operation_name\":\"cassandra.query\",\"primary_tag_name\":\"datacenter\",\"primary_tag_value\":\"edge-eu1.prod.dog\",\"resource_name\":\"DELETE FROM monitor_history.monitor_state_change_history WHERE org_id = ? AND monitor_id IN ? AND group = ?\",\"service\":\"cassandra\",\"stat\":\"avg_duration\"}],\"response_format\":\"scalar\"}],\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"query_table\"},\"layout\":{\"height\":4,\"width\":4,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"z3x-s3a-d2f\",\"title\":\"Test-Create_a_new_dashboard_with_apm_dependency_stats_widget-1641430228\",\"url\":\"/dashboard/z3x-s3a-d2f/test-createanewdashboardwithapmdependencystatswidget-1641430228\",\"created_at\":\"2022-01-06T00:50:28.828138+00:00\",\"modified_at\":\"2022-01-06T00:50:28.828138+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"type\":\"query_table\",\"requests\":[{\"response_format\":\"scalar\",\"queries\":[{\"primary_tag_value\":\"edge-eu1.prod.dog\",\"stat\":\"avg_duration\",\"data_source\":\"apm_dependency_stats\",\"name\":\"query1\",\"service\":\"cassandra\",\"resource_name\":\"DELETE FROM monitor_history.monitor_state_change_history WHERE org_id = ? AND monitor_id IN ? AND group = ?\",\"env\":\"ci\",\"primary_tag_name\":\"datacenter\",\"operation_name\":\"cassandra.query\"}]}],\"title_align\":\"left\",\"title_size\":\"16\",\"title\":\"\"},\"layout\":{\"y\":0,\"width\":4,\"x\":0,\"height\":4},\"id\":2344140518922967}],\"layout_type\":\"ordered\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:28 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/z3x-s3a-d2f" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"z3x-s3a-d2f\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:28 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-apm-issue-stream-list-stream-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-apm-issue-stream-list-stream-widget.json index 2fa549a05..5d1958aeb 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-apm-issue-stream-list-stream-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-apm-issue-stream-list-stream-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_apm_issue_stream_list_stream_widget-1663857974 with list_stream widget\",\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"apm_issue_stream\",\"query_string\":\"\"},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"xhp-ymt-7mz\",\"title\":\"Test-Create_a_new_dashboard_with_apm_issue_stream_list_stream_widget-1663857974 with list_stream widget\",\"url\":\"/dashboard/xhp-ymt-7mz/test-createanewdashboardwithapmissuestreamliststreamwidget-1663857974-with-lists\",\"created_at\":\"2022-09-22T14:46:14.861195+00:00\",\"modified_at\":\"2022-09-22T14:46:14.861195+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"query_string\":\"\",\"data_source\":\"apm_issue_stream\"},\"response_format\":\"event_list\",\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}]}],\"type\":\"list_stream\"},\"id\":8154733979358236}],\"layout_type\":\"ordered\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 22 Sep 2022 14:46:14 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/xhp-ymt-7mz"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"xhp-ymt-7mz\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 22 Sep 2022 14:46:14 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_apm_issue_stream_list_stream_widget-1663857974 with list_stream widget\",\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"apm_issue_stream\",\"query_string\":\"\"},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"xhp-ymt-7mz\",\"title\":\"Test-Create_a_new_dashboard_with_apm_issue_stream_list_stream_widget-1663857974 with list_stream widget\",\"url\":\"/dashboard/xhp-ymt-7mz/test-createanewdashboardwithapmissuestreamliststreamwidget-1663857974-with-lists\",\"created_at\":\"2022-09-22T14:46:14.861195+00:00\",\"modified_at\":\"2022-09-22T14:46:14.861195+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"query_string\":\"\",\"data_source\":\"apm_issue_stream\"},\"response_format\":\"event_list\",\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}]}],\"type\":\"list_stream\"},\"id\":8154733979358236}],\"layout_type\":\"ordered\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 22 Sep 2022 14:46:14 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/xhp-ymt-7mz" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"xhp-ymt-7mz\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 22 Sep 2022 14:46:14 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-apm-resource-stats-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-apm-resource-stats-widget.json index 1e3640cb2..e603434f4 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-apm-resource-stats-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-apm-resource-stats-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_apm_resource_stats_widget-1641430229\",\"widgets\":[{\"definition\":{\"requests\":[{\"queries\":[{\"data_source\":\"apm_resource_stats\",\"env\":\"ci\",\"group_by\":[\"resource_name\"],\"name\":\"query1\",\"operation_name\":\"cassandra.query\",\"primary_tag_name\":\"datacenter\",\"primary_tag_value\":\"edge-eu1.prod.dog\",\"service\":\"cassandra\",\"stat\":\"hits\"}],\"response_format\":\"scalar\"}],\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"query_table\"},\"layout\":{\"height\":4,\"width\":4,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"cpv-tgq-6ui\",\"title\":\"Test-Create_a_new_dashboard_with_apm_resource_stats_widget-1641430229\",\"url\":\"/dashboard/cpv-tgq-6ui/test-createanewdashboardwithapmresourcestatswidget-1641430229\",\"created_at\":\"2022-01-06T00:50:29.319306+00:00\",\"modified_at\":\"2022-01-06T00:50:29.319306+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"type\":\"query_table\",\"requests\":[{\"response_format\":\"scalar\",\"queries\":[{\"primary_tag_value\":\"edge-eu1.prod.dog\",\"stat\":\"hits\",\"data_source\":\"apm_resource_stats\",\"name\":\"query1\",\"service\":\"cassandra\",\"group_by\":[\"resource_name\"],\"env\":\"ci\",\"primary_tag_name\":\"datacenter\",\"operation_name\":\"cassandra.query\"}]}],\"title_align\":\"left\",\"title_size\":\"16\",\"title\":\"\"},\"layout\":{\"y\":0,\"width\":4,\"x\":0,\"height\":4},\"id\":8923865513771047}],\"layout_type\":\"ordered\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:29 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/cpv-tgq-6ui"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"cpv-tgq-6ui\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:29 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_apm_resource_stats_widget-1641430229\",\"widgets\":[{\"definition\":{\"requests\":[{\"queries\":[{\"data_source\":\"apm_resource_stats\",\"env\":\"ci\",\"group_by\":[\"resource_name\"],\"name\":\"query1\",\"operation_name\":\"cassandra.query\",\"primary_tag_name\":\"datacenter\",\"primary_tag_value\":\"edge-eu1.prod.dog\",\"service\":\"cassandra\",\"stat\":\"hits\"}],\"response_format\":\"scalar\"}],\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"query_table\"},\"layout\":{\"height\":4,\"width\":4,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"cpv-tgq-6ui\",\"title\":\"Test-Create_a_new_dashboard_with_apm_resource_stats_widget-1641430229\",\"url\":\"/dashboard/cpv-tgq-6ui/test-createanewdashboardwithapmresourcestatswidget-1641430229\",\"created_at\":\"2022-01-06T00:50:29.319306+00:00\",\"modified_at\":\"2022-01-06T00:50:29.319306+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"type\":\"query_table\",\"requests\":[{\"response_format\":\"scalar\",\"queries\":[{\"primary_tag_value\":\"edge-eu1.prod.dog\",\"stat\":\"hits\",\"data_source\":\"apm_resource_stats\",\"name\":\"query1\",\"service\":\"cassandra\",\"group_by\":[\"resource_name\"],\"env\":\"ci\",\"primary_tag_name\":\"datacenter\",\"operation_name\":\"cassandra.query\"}]}],\"title_align\":\"left\",\"title_size\":\"16\",\"title\":\"\"},\"layout\":{\"y\":0,\"width\":4,\"x\":0,\"height\":4},\"id\":8923865513771047}],\"layout_type\":\"ordered\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:29 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/cpv-tgq-6ui" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"cpv-tgq-6ui\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:29 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-check-status-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-check-status-widget.json index ab80e97f1..b68d0c8d2 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-check-status-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-check-status-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_check_status_widget-1641430229\",\"widgets\":[{\"definition\":{\"check\":\"datadog.agent.up\",\"grouping\":\"check\",\"tags\":[\"*\"],\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"check_status\"},\"layout\":{\"height\":8,\"width\":15,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"baz-eax-3ka\",\"title\":\"Test-Create_a_new_dashboard_with_check_status_widget-1641430229\",\"url\":\"/dashboard/baz-eax-3ka/test-createanewdashboardwithcheckstatuswidget-1641430229\",\"created_at\":\"2022-01-06T00:50:29.799432+00:00\",\"modified_at\":\"2022-01-06T00:50:29.799432+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"title_size\":\"16\",\"tags\":[\"*\"],\"title_align\":\"left\",\"type\":\"check_status\",\"check\":\"datadog.agent.up\",\"grouping\":\"check\"},\"layout\":{\"y\":0,\"width\":15,\"x\":0,\"height\":8},\"id\":3518672671182396}],\"layout_type\":\"free\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:29 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/baz-eax-3ka"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"baz-eax-3ka\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:29 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_check_status_widget-1641430229\",\"widgets\":[{\"definition\":{\"check\":\"datadog.agent.up\",\"grouping\":\"check\",\"tags\":[\"*\"],\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"check_status\"},\"layout\":{\"height\":8,\"width\":15,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"baz-eax-3ka\",\"title\":\"Test-Create_a_new_dashboard_with_check_status_widget-1641430229\",\"url\":\"/dashboard/baz-eax-3ka/test-createanewdashboardwithcheckstatuswidget-1641430229\",\"created_at\":\"2022-01-06T00:50:29.799432+00:00\",\"modified_at\":\"2022-01-06T00:50:29.799432+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"title_size\":\"16\",\"tags\":[\"*\"],\"title_align\":\"left\",\"type\":\"check_status\",\"check\":\"datadog.agent.up\",\"grouping\":\"check\"},\"layout\":{\"y\":0,\"width\":15,\"x\":0,\"height\":8},\"id\":3518672671182396}],\"layout_type\":\"free\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:29 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/baz-eax-3ka" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"baz-eax-3ka\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:29 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-ci-test-stream-list-stream-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-ci-test-stream-list-stream-widget.json index 78594223b..5358d6fe3 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-ci-test-stream-list-stream-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-ci-test-stream-list-stream-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_ci_test_stream_list_stream_widget-1677789434 with list_stream widget\",\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"ci_test_stream\",\"query_string\":\"test_level:suite\"},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"id\":\"mdr-2je-u6x\",\"title\":\"Test-Create_a_new_dashboard_with_ci_test_stream_list_stream_widget-1677789434 with list_stream widget\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/mdr-2je-u6x/test-createanewdashboardwithciteststreamliststreamwidget-1677789434-with-liststr\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"ci_test_stream\",\"query_string\":\"test_level:suite\"},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"},\"id\":1680451278463569}],\"notify_list\":null,\"created_at\":\"2023-03-02T20:37:14.537234+00:00\",\"modified_at\":\"2023-03-02T20:37:14.537234+00:00\",\"restricted_roles\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 02 Mar 2023 20:37:14 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/mdr-2je-u6x"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"mdr-2je-u6x\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 02 Mar 2023 20:37:14 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_ci_test_stream_list_stream_widget-1677789434 with list_stream widget\",\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"ci_test_stream\",\"query_string\":\"test_level:suite\"},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"id\":\"mdr-2je-u6x\",\"title\":\"Test-Create_a_new_dashboard_with_ci_test_stream_list_stream_widget-1677789434 with list_stream widget\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/mdr-2je-u6x/test-createanewdashboardwithciteststreamliststreamwidget-1677789434-with-liststr\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"ci_test_stream\",\"query_string\":\"test_level:suite\"},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"},\"id\":1680451278463569}],\"notify_list\":null,\"created_at\":\"2023-03-02T20:37:14.537234+00:00\",\"modified_at\":\"2023-03-02T20:37:14.537234+00:00\",\"restricted_roles\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 02 Mar 2023 20:37:14 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/mdr-2je-u6x" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"mdr-2je-u6x\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 02 Mar 2023 20:37:14 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-distribution-widget-and-apm-stats-data.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-distribution-widget-and-apm-stats-data.json index 1d7a2489f..8bed178fc 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-distribution-widget-and-apm-stats-data.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-distribution-widget-and-apm-stats-data.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_distribution_widget_and_apm_stats_data-1641430230\",\"widgets\":[{\"definition\":{\"requests\":[{\"apm_stats_query\":{\"env\":\"prod\",\"name\":\"cassandra.query\",\"primary_tag\":\"datacenter:dc1\",\"row_type\":\"service\",\"service\":\"cassandra\"}}],\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"distribution\"},\"layout\":{\"height\":4,\"width\":4,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"7yq-u4p-9qh\",\"title\":\"Test-Create_a_new_dashboard_with_distribution_widget_and_apm_stats_data-1641430230\",\"url\":\"/dashboard/7yq-u4p-9qh/test-createanewdashboardwithdistributionwidgetandapmstatsdata-1641430230\",\"created_at\":\"2022-01-06T00:50:30.283828+00:00\",\"modified_at\":\"2022-01-06T00:50:30.283828+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"type\":\"distribution\",\"requests\":[{\"apm_stats_query\":{\"primary_tag\":\"datacenter:dc1\",\"row_type\":\"service\",\"name\":\"cassandra.query\",\"service\":\"cassandra\",\"env\":\"prod\"}}],\"title_align\":\"left\",\"title_size\":\"16\",\"title\":\"\"},\"layout\":{\"y\":0,\"width\":4,\"x\":0,\"height\":4},\"id\":6766921978730305}],\"layout_type\":\"ordered\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:30 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/7yq-u4p-9qh"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"7yq-u4p-9qh\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:30 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_distribution_widget_and_apm_stats_data-1641430230\",\"widgets\":[{\"definition\":{\"requests\":[{\"apm_stats_query\":{\"env\":\"prod\",\"name\":\"cassandra.query\",\"primary_tag\":\"datacenter:dc1\",\"row_type\":\"service\",\"service\":\"cassandra\"}}],\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"distribution\"},\"layout\":{\"height\":4,\"width\":4,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"7yq-u4p-9qh\",\"title\":\"Test-Create_a_new_dashboard_with_distribution_widget_and_apm_stats_data-1641430230\",\"url\":\"/dashboard/7yq-u4p-9qh/test-createanewdashboardwithdistributionwidgetandapmstatsdata-1641430230\",\"created_at\":\"2022-01-06T00:50:30.283828+00:00\",\"modified_at\":\"2022-01-06T00:50:30.283828+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"type\":\"distribution\",\"requests\":[{\"apm_stats_query\":{\"primary_tag\":\"datacenter:dc1\",\"row_type\":\"service\",\"name\":\"cassandra.query\",\"service\":\"cassandra\",\"env\":\"prod\"}}],\"title_align\":\"left\",\"title_size\":\"16\",\"title\":\"\"},\"layout\":{\"y\":0,\"width\":4,\"x\":0,\"height\":4},\"id\":6766921978730305}],\"layout_type\":\"ordered\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:30 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/7yq-u4p-9qh" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"7yq-u4p-9qh\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:30 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-event-stream-list-stream-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-event-stream-list-stream-widget.json index 5729a355d..1fa3d5d1d 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-event-stream-list-stream-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-event-stream-list-stream-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_event_stream_list_stream_widget-1675873086 with list_stream widget\",\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"event_stream\",\"event_size\":\"l\",\"query_string\":\"\"},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"zmh-rud-g4b\",\"title\":\"Test-Create_a_new_dashboard_with_event_stream_list_stream_widget-1675873086 with list_stream widget\",\"url\":\"/dashboard/zmh-rud-g4b/test-createanewdashboardwitheventstreamliststreamwidget-1675873086-with-liststre\",\"created_at\":\"2023-02-08T16:18:06.512655+00:00\",\"modified_at\":\"2023-02-08T16:18:06.512655+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"query_string\":\"\",\"data_source\":\"event_stream\",\"event_size\":\"l\"},\"response_format\":\"event_list\",\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}]}],\"type\":\"list_stream\"},\"id\":3303593204363469}],\"layout_type\":\"ordered\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 08 Feb 2023 16:18:06 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/zmh-rud-g4b"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"zmh-rud-g4b\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 08 Feb 2023 16:18:06 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_event_stream_list_stream_widget-1675873086 with list_stream widget\",\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"event_stream\",\"event_size\":\"l\",\"query_string\":\"\"},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"zmh-rud-g4b\",\"title\":\"Test-Create_a_new_dashboard_with_event_stream_list_stream_widget-1675873086 with list_stream widget\",\"url\":\"/dashboard/zmh-rud-g4b/test-createanewdashboardwitheventstreamliststreamwidget-1675873086-with-liststre\",\"created_at\":\"2023-02-08T16:18:06.512655+00:00\",\"modified_at\":\"2023-02-08T16:18:06.512655+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"query_string\":\"\",\"data_source\":\"event_stream\",\"event_size\":\"l\"},\"response_format\":\"event_list\",\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}]}],\"type\":\"list_stream\"},\"id\":3303593204363469}],\"layout_type\":\"ordered\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 08 Feb 2023 16:18:06 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/zmh-rud-g4b" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"zmh-rud-g4b\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 08 Feb 2023 16:18:06 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-event-stream-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-event-stream-widget.json index 55cffac1b..051364177 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-event-stream-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-event-stream-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_event_stream_widget-1641430230\",\"widgets\":[{\"definition\":{\"event_size\":\"s\",\"query\":\"example-query\",\"tags_execution\":\"and\",\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"event_stream\"},\"layout\":{\"height\":38,\"width\":47,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"2dc-bzm-gzi\",\"title\":\"Test-Create_a_new_dashboard_with_event_stream_widget-1641430230\",\"url\":\"/dashboard/2dc-bzm-gzi/test-createanewdashboardwitheventstreamwidget-1641430230\",\"created_at\":\"2022-01-06T00:50:31.037679+00:00\",\"modified_at\":\"2022-01-06T00:50:31.037679+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"title_size\":\"16\",\"title\":\"\",\"title_align\":\"left\",\"tags_execution\":\"and\",\"query\":\"example-query\",\"type\":\"event_stream\",\"event_size\":\"s\"},\"layout\":{\"y\":0,\"width\":47,\"x\":0,\"height\":38},\"id\":5676594590872385}],\"layout_type\":\"free\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:30 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/2dc-bzm-gzi"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"2dc-bzm-gzi\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:30 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_event_stream_widget-1641430230\",\"widgets\":[{\"definition\":{\"event_size\":\"s\",\"query\":\"example-query\",\"tags_execution\":\"and\",\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"event_stream\"},\"layout\":{\"height\":38,\"width\":47,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"2dc-bzm-gzi\",\"title\":\"Test-Create_a_new_dashboard_with_event_stream_widget-1641430230\",\"url\":\"/dashboard/2dc-bzm-gzi/test-createanewdashboardwitheventstreamwidget-1641430230\",\"created_at\":\"2022-01-06T00:50:31.037679+00:00\",\"modified_at\":\"2022-01-06T00:50:31.037679+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"title_size\":\"16\",\"title\":\"\",\"title_align\":\"left\",\"tags_execution\":\"and\",\"query\":\"example-query\",\"type\":\"event_stream\",\"event_size\":\"s\"},\"layout\":{\"y\":0,\"width\":47,\"x\":0,\"height\":38},\"id\":5676594590872385}],\"layout_type\":\"free\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:30 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/2dc-bzm-gzi" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"2dc-bzm-gzi\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:30 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-event-timeline-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-event-timeline-widget.json index 9bf12ff0e..accdae803 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-event-timeline-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-event-timeline-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":null,\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_event_timeline_widget-1641430231\",\"widgets\":[{\"definition\":{\"query\":\"status:error priority:all\",\"tags_execution\":\"and\",\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"event_timeline\"},\"layout\":{\"height\":9,\"width\":47,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":[],\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"8zb-e23-rdn\",\"title\":\"Test-Create_a_new_dashboard_with_event_timeline_widget-1641430231\",\"url\":\"/dashboard/8zb-e23-rdn/test-createanewdashboardwitheventtimelinewidget-1641430231\",\"created_at\":\"2022-01-06T00:50:31.676223+00:00\",\"modified_at\":\"2022-01-06T00:50:31.676223+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"title_size\":\"16\",\"title\":\"\",\"title_align\":\"left\",\"tags_execution\":\"and\",\"query\":\"status:error priority:all\",\"type\":\"event_timeline\"},\"layout\":{\"y\":0,\"width\":47,\"x\":0,\"height\":9},\"id\":3161433541540683}],\"layout_type\":\"free\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:31 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/8zb-e23-rdn"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"8zb-e23-rdn\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:31 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":null,\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_event_timeline_widget-1641430231\",\"widgets\":[{\"definition\":{\"query\":\"status:error priority:all\",\"tags_execution\":\"and\",\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"event_timeline\"},\"layout\":{\"height\":9,\"width\":47,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":[],\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"8zb-e23-rdn\",\"title\":\"Test-Create_a_new_dashboard_with_event_timeline_widget-1641430231\",\"url\":\"/dashboard/8zb-e23-rdn/test-createanewdashboardwitheventtimelinewidget-1641430231\",\"created_at\":\"2022-01-06T00:50:31.676223+00:00\",\"modified_at\":\"2022-01-06T00:50:31.676223+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"title_size\":\"16\",\"title\":\"\",\"title_align\":\"left\",\"tags_execution\":\"and\",\"query\":\"status:error priority:all\",\"type\":\"event_timeline\"},\"layout\":{\"y\":0,\"width\":47,\"x\":0,\"height\":9},\"id\":3161433541540683}],\"layout_type\":\"free\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:31 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/8zb-e23-rdn" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"8zb-e23-rdn\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:31 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-formula-and-function-heatmap-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-formula-and-function-heatmap-widget.json index 0ae1e1838..fd34e0d1c 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-formula-and-function-heatmap-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-formula-and-function-heatmap-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_formula_and_function_heatmap_widget-1694548300\",\"widgets\":[{\"definition\":{\"requests\":[{\"formulas\":[{\"formula\":\"query1\"}],\"queries\":[{\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*}\"}],\"response_format\":\"timeseries\",\"style\":{\"palette\":\"dog_classic\"}}],\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"heatmap\"},\"layout\":{\"height\":15,\"width\":47,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"id\":\"agm-reh-km8\",\"title\":\"Test-Create_a_new_dashboard_with_formula_and_function_heatmap_widget-1694548300\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"free\",\"url\":\"/dashboard/agm-reh-km8/test-createanewdashboardwithformulaandfunctionheatmapwidget-1694548300\",\"is_read_only\":false,\"template_variables\":[],\"widgets\":[{\"definition\":{\"requests\":[{\"formulas\":[{\"formula\":\"query1\"}],\"queries\":[{\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*}\"}],\"response_format\":\"timeseries\",\"style\":{\"palette\":\"dog_classic\"}}],\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"heatmap\"},\"layout\":{\"height\":15,\"width\":47,\"x\":0,\"y\":0},\"id\":658874190518028}],\"notify_list\":[],\"created_at\":\"2023-09-12T19:51:41.163760+00:00\",\"modified_at\":\"2023-09-12T19:51:41.163760+00:00\",\"restricted_roles\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 12 Sep 2023 19:51:40 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/agm-reh-km8"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"agm-reh-km8\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 12 Sep 2023 19:51:40 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_formula_and_function_heatmap_widget-1694548300\",\"widgets\":[{\"definition\":{\"requests\":[{\"formulas\":[{\"formula\":\"query1\"}],\"queries\":[{\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*}\"}],\"response_format\":\"timeseries\",\"style\":{\"palette\":\"dog_classic\"}}],\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"heatmap\"},\"layout\":{\"height\":15,\"width\":47,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"id\":\"agm-reh-km8\",\"title\":\"Test-Create_a_new_dashboard_with_formula_and_function_heatmap_widget-1694548300\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"free\",\"url\":\"/dashboard/agm-reh-km8/test-createanewdashboardwithformulaandfunctionheatmapwidget-1694548300\",\"is_read_only\":false,\"template_variables\":[],\"widgets\":[{\"definition\":{\"requests\":[{\"formulas\":[{\"formula\":\"query1\"}],\"queries\":[{\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*}\"}],\"response_format\":\"timeseries\",\"style\":{\"palette\":\"dog_classic\"}}],\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"heatmap\"},\"layout\":{\"height\":15,\"width\":47,\"x\":0,\"y\":0},\"id\":658874190518028}],\"notify_list\":[],\"created_at\":\"2023-09-12T19:51:41.163760+00:00\",\"modified_at\":\"2023-09-12T19:51:41.163760+00:00\",\"restricted_roles\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 12 Sep 2023 19:51:40 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/agm-reh-km8" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"agm-reh-km8\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 12 Sep 2023 19:51:40 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-formulas-and-functions-scatterplot-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-formulas-and-functions-scatterplot-widget.json index f0cca8018..20c56d4da 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-formulas-and-functions-scatterplot-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-formulas-and-functions-scatterplot-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_formulas_and_functions_scatterplot_widget-1641430231\",\"widgets\":[{\"definition\":{\"requests\":{\"table\":{\"formulas\":[{\"alias\":\"my-query1\",\"dimension\":\"x\",\"formula\":\"query1\"},{\"alias\":\"my-query2\",\"dimension\":\"y\",\"formula\":\"query2\"}],\"queries\":[{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*} by {service}\"},{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"query2\",\"query\":\"avg:system.mem.used{*} by {service}\"}],\"response_format\":\"scalar\"}},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"scatterplot\"},\"id\":5346764334358972,\"layout\":{\"height\":2,\"width\":4,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"zct-37r-af2\",\"title\":\"Test-Create_a_new_dashboard_with_formulas_and_functions_scatterplot_widget-1641430231\",\"url\":\"/dashboard/zct-37r-af2/test-createanewdashboardwithformulasandfunctionsscatterplotwidget-1641430231\",\"created_at\":\"2022-01-06T00:50:32.173771+00:00\",\"modified_at\":\"2022-01-06T00:50:32.173771+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"type\":\"scatterplot\",\"requests\":{\"table\":{\"formulas\":[{\"alias\":\"my-query1\",\"dimension\":\"x\",\"formula\":\"query1\"},{\"alias\":\"my-query2\",\"dimension\":\"y\",\"formula\":\"query2\"}],\"response_format\":\"scalar\",\"queries\":[{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*} by {service}\"},{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"query2\",\"query\":\"avg:system.mem.used{*} by {service}\"}]}},\"title_align\":\"left\",\"title_size\":\"16\",\"title\":\"\"},\"layout\":{\"y\":0,\"width\":4,\"x\":0,\"height\":2},\"id\":5346764334358972}],\"layout_type\":\"ordered\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:31 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/zct-37r-af2"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"zct-37r-af2\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:31 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_formulas_and_functions_scatterplot_widget-1641430231\",\"widgets\":[{\"definition\":{\"requests\":{\"table\":{\"formulas\":[{\"alias\":\"my-query1\",\"dimension\":\"x\",\"formula\":\"query1\"},{\"alias\":\"my-query2\",\"dimension\":\"y\",\"formula\":\"query2\"}],\"queries\":[{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*} by {service}\"},{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"query2\",\"query\":\"avg:system.mem.used{*} by {service}\"}],\"response_format\":\"scalar\"}},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"scatterplot\"},\"id\":5346764334358972,\"layout\":{\"height\":2,\"width\":4,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"zct-37r-af2\",\"title\":\"Test-Create_a_new_dashboard_with_formulas_and_functions_scatterplot_widget-1641430231\",\"url\":\"/dashboard/zct-37r-af2/test-createanewdashboardwithformulasandfunctionsscatterplotwidget-1641430231\",\"created_at\":\"2022-01-06T00:50:32.173771+00:00\",\"modified_at\":\"2022-01-06T00:50:32.173771+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"type\":\"scatterplot\",\"requests\":{\"table\":{\"formulas\":[{\"alias\":\"my-query1\",\"dimension\":\"x\",\"formula\":\"query1\"},{\"alias\":\"my-query2\",\"dimension\":\"y\",\"formula\":\"query2\"}],\"response_format\":\"scalar\",\"queries\":[{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*} by {service}\"},{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"query2\",\"query\":\"avg:system.mem.used{*} by {service}\"}]}},\"title_align\":\"left\",\"title_size\":\"16\",\"title\":\"\"},\"layout\":{\"y\":0,\"width\":4,\"x\":0,\"height\":2},\"id\":5346764334358972}],\"layout_type\":\"ordered\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:31 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/zct-37r-af2" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"zct-37r-af2\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:31 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-free-text-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-free-text-widget.json index 00d87ec33..a910e9852 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-free-text-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-free-text-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":null,\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_free_text_widget-1641430232\",\"widgets\":[{\"definition\":{\"color\":\"#4d4d4d\",\"font_size\":\"auto\",\"text\":\"Example free text\",\"text_align\":\"left\",\"type\":\"free_text\"},\"layout\":{\"height\":6,\"width\":24,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":[],\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"d55-4cs-38k\",\"title\":\"Test-Create_a_new_dashboard_with_free_text_widget-1641430232\",\"url\":\"/dashboard/d55-4cs-38k/test-createanewdashboardwithfreetextwidget-1641430232\",\"created_at\":\"2022-01-06T00:50:32.631852+00:00\",\"modified_at\":\"2022-01-06T00:50:32.631852+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"color\":\"#4d4d4d\",\"text\":\"Example free text\",\"font_size\":\"auto\",\"text_align\":\"left\",\"type\":\"free_text\"},\"layout\":{\"y\":0,\"width\":24,\"x\":0,\"height\":6},\"id\":5625839222691607}],\"layout_type\":\"free\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:32 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/d55-4cs-38k"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"d55-4cs-38k\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:32 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":null,\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_free_text_widget-1641430232\",\"widgets\":[{\"definition\":{\"color\":\"#4d4d4d\",\"font_size\":\"auto\",\"text\":\"Example free text\",\"text_align\":\"left\",\"type\":\"free_text\"},\"layout\":{\"height\":6,\"width\":24,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":[],\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"d55-4cs-38k\",\"title\":\"Test-Create_a_new_dashboard_with_free_text_widget-1641430232\",\"url\":\"/dashboard/d55-4cs-38k/test-createanewdashboardwithfreetextwidget-1641430232\",\"created_at\":\"2022-01-06T00:50:32.631852+00:00\",\"modified_at\":\"2022-01-06T00:50:32.631852+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"color\":\"#4d4d4d\",\"text\":\"Example free text\",\"font_size\":\"auto\",\"text_align\":\"left\",\"type\":\"free_text\"},\"layout\":{\"y\":0,\"width\":24,\"x\":0,\"height\":6},\"id\":5625839222691607}],\"layout_type\":\"free\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:32 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/d55-4cs-38k" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"d55-4cs-38k\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:32 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-funnel-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-funnel-widget.json index d4b5339fd..c394a85a8 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-funnel-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-funnel-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_funnel_widget-1641430232 with funnel widget\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"data_source\":\"rum\",\"query_string\":\"\",\"steps\":[]},\"request_type\":\"funnel\"}],\"type\":\"funnel\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"2n6-br7-kwr\",\"title\":\"Test-Create_a_new_dashboard_with_funnel_widget-1641430232 with funnel widget\",\"url\":\"/dashboard/2n6-br7-kwr/test-createanewdashboardwithfunnelwidget-1641430232-with-funnel-widget\",\"created_at\":\"2022-01-06T00:50:33.082701+00:00\",\"modified_at\":\"2022-01-06T00:50:33.082701+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"query_string\":\"\",\"data_source\":\"rum\",\"steps\":[]},\"request_type\":\"funnel\"}],\"type\":\"funnel\"},\"id\":5380342825148909}],\"layout_type\":\"ordered\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:32 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/2n6-br7-kwr"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"2n6-br7-kwr\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:32 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_funnel_widget-1641430232 with funnel widget\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"data_source\":\"rum\",\"query_string\":\"\",\"steps\":[]},\"request_type\":\"funnel\"}],\"type\":\"funnel\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"2n6-br7-kwr\",\"title\":\"Test-Create_a_new_dashboard_with_funnel_widget-1641430232 with funnel widget\",\"url\":\"/dashboard/2n6-br7-kwr/test-createanewdashboardwithfunnelwidget-1641430232-with-funnel-widget\",\"created_at\":\"2022-01-06T00:50:33.082701+00:00\",\"modified_at\":\"2022-01-06T00:50:33.082701+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"query_string\":\"\",\"data_source\":\"rum\",\"steps\":[]},\"request_type\":\"funnel\"}],\"type\":\"funnel\"},\"id\":5380342825148909}],\"layout_type\":\"ordered\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:32 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/2n6-br7-kwr" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"2n6-br7-kwr\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:32 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-geomap-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-geomap-widget.json index b1c650d5d..40fafa98d 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-geomap-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-geomap-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":null,\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_geomap_widget-1641430233\",\"widgets\":[{\"definition\":{\"requests\":[{\"formulas\":[{\"formula\":\"query1\",\"limit\":{\"count\":250,\"order\":\"desc\"}}],\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"rum\",\"group_by\":[{\"facet\":\"@geo.country_iso_code\",\"limit\":250,\"sort\":{\"aggregation\":\"count\",\"order\":\"desc\"}}],\"indexes\":[\"*\"],\"name\":\"query1\",\"search\":{\"query\":\"\"}}],\"response_format\":\"scalar\"}],\"style\":{\"palette\":\"hostmap_blues\",\"palette_flip\":false},\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"geomap\",\"view\":{\"focus\":\"WORLD\"}},\"layout\":{\"height\":30,\"width\":47,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":[],\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"cqc-kbv-se3\",\"title\":\"Test-Create_a_new_dashboard_with_geomap_widget-1641430233\",\"url\":\"/dashboard/cqc-kbv-se3/test-createanewdashboardwithgeomapwidget-1641430233\",\"created_at\":\"2022-01-06T00:50:33.554719+00:00\",\"modified_at\":\"2022-01-06T00:50:33.554719+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"style\":{\"palette\":\"hostmap_blues\",\"palette_flip\":false},\"title_size\":\"16\",\"title\":\"\",\"title_align\":\"left\",\"time\":{},\"requests\":[{\"formulas\":[{\"formula\":\"query1\",\"limit\":{\"count\":250,\"order\":\"desc\"}}],\"response_format\":\"scalar\",\"queries\":[{\"search\":{\"query\":\"\"},\"data_source\":\"rum\",\"compute\":{\"aggregation\":\"count\"},\"name\":\"query1\",\"indexes\":[\"*\"],\"group_by\":[{\"facet\":\"@geo.country_iso_code\",\"sort\":{\"aggregation\":\"count\",\"order\":\"desc\"},\"limit\":250}]}]}],\"type\":\"geomap\",\"view\":{\"focus\":\"WORLD\"}},\"layout\":{\"y\":0,\"width\":47,\"x\":0,\"height\":30},\"id\":814328647870268}],\"layout_type\":\"free\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:33 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/cqc-kbv-se3"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"cqc-kbv-se3\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:33 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":null,\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_geomap_widget-1641430233\",\"widgets\":[{\"definition\":{\"requests\":[{\"formulas\":[{\"formula\":\"query1\",\"limit\":{\"count\":250,\"order\":\"desc\"}}],\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"rum\",\"group_by\":[{\"facet\":\"@geo.country_iso_code\",\"limit\":250,\"sort\":{\"aggregation\":\"count\",\"order\":\"desc\"}}],\"indexes\":[\"*\"],\"name\":\"query1\",\"search\":{\"query\":\"\"}}],\"response_format\":\"scalar\"}],\"style\":{\"palette\":\"hostmap_blues\",\"palette_flip\":false},\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"geomap\",\"view\":{\"focus\":\"WORLD\"}},\"layout\":{\"height\":30,\"width\":47,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":[],\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"cqc-kbv-se3\",\"title\":\"Test-Create_a_new_dashboard_with_geomap_widget-1641430233\",\"url\":\"/dashboard/cqc-kbv-se3/test-createanewdashboardwithgeomapwidget-1641430233\",\"created_at\":\"2022-01-06T00:50:33.554719+00:00\",\"modified_at\":\"2022-01-06T00:50:33.554719+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"style\":{\"palette\":\"hostmap_blues\",\"palette_flip\":false},\"title_size\":\"16\",\"title\":\"\",\"title_align\":\"left\",\"time\":{},\"requests\":[{\"formulas\":[{\"formula\":\"query1\",\"limit\":{\"count\":250,\"order\":\"desc\"}}],\"response_format\":\"scalar\",\"queries\":[{\"search\":{\"query\":\"\"},\"data_source\":\"rum\",\"compute\":{\"aggregation\":\"count\"},\"name\":\"query1\",\"indexes\":[\"*\"],\"group_by\":[{\"facet\":\"@geo.country_iso_code\",\"sort\":{\"aggregation\":\"count\",\"order\":\"desc\"},\"limit\":250}]}]}],\"type\":\"geomap\",\"view\":{\"focus\":\"WORLD\"}},\"layout\":{\"y\":0,\"width\":47,\"x\":0,\"height\":30},\"id\":814328647870268}],\"layout_type\":\"free\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:33 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/cqc-kbv-se3" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"cqc-kbv-se3\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:33 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-heatmap-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-heatmap-widget.json index ecc257de5..c7f48336d 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-heatmap-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-heatmap-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":null,\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_heatmap_widget-1641430233\",\"widgets\":[{\"definition\":{\"requests\":[{\"q\":\"avg:system.cpu.user{*} by {service}\",\"style\":{\"palette\":\"dog_classic\"}}],\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"heatmap\"},\"layout\":{\"height\":15,\"width\":47,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":[],\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"itn-x76-j9p\",\"title\":\"Test-Create_a_new_dashboard_with_heatmap_widget-1641430233\",\"url\":\"/dashboard/itn-x76-j9p/test-createanewdashboardwithheatmapwidget-1641430233\",\"created_at\":\"2022-01-06T00:50:34.035679+00:00\",\"modified_at\":\"2022-01-06T00:50:34.035679+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"title_size\":\"16\",\"title\":\"\",\"title_align\":\"left\",\"time\":{},\"requests\":[{\"q\":\"avg:system.cpu.user{*} by {service}\",\"style\":{\"palette\":\"dog_classic\"}}],\"type\":\"heatmap\"},\"layout\":{\"y\":0,\"width\":47,\"x\":0,\"height\":15},\"id\":3967109255591210}],\"layout_type\":\"free\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:33 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/itn-x76-j9p"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"itn-x76-j9p\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:33 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":null,\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_heatmap_widget-1641430233\",\"widgets\":[{\"definition\":{\"requests\":[{\"q\":\"avg:system.cpu.user{*} by {service}\",\"style\":{\"palette\":\"dog_classic\"}}],\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"heatmap\"},\"layout\":{\"height\":15,\"width\":47,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":[],\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"itn-x76-j9p\",\"title\":\"Test-Create_a_new_dashboard_with_heatmap_widget-1641430233\",\"url\":\"/dashboard/itn-x76-j9p/test-createanewdashboardwithheatmapwidget-1641430233\",\"created_at\":\"2022-01-06T00:50:34.035679+00:00\",\"modified_at\":\"2022-01-06T00:50:34.035679+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"title_size\":\"16\",\"title\":\"\",\"title_align\":\"left\",\"time\":{},\"requests\":[{\"q\":\"avg:system.cpu.user{*} by {service}\",\"style\":{\"palette\":\"dog_classic\"}}],\"type\":\"heatmap\"},\"layout\":{\"y\":0,\"width\":47,\"x\":0,\"height\":15},\"id\":3967109255591210}],\"layout_type\":\"free\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:33 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/itn-x76-j9p" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"itn-x76-j9p\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:33 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-hostmap-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-hostmap-widget.json index afcfd2bb4..b7cf17b87 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-hostmap-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-hostmap-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":null,\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_hostmap_widget-1641430234\",\"widgets\":[{\"definition\":{\"no_group_hosts\":true,\"no_metric_hosts\":true,\"node_type\":\"host\",\"requests\":{\"fill\":{\"q\":\"avg:system.cpu.user{*} by {host}\"}},\"style\":{\"palette\":\"green_to_orange\",\"palette_flip\":false},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"hostmap\"},\"layout\":{\"height\":22,\"width\":47,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":[],\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"sjt-c5e-sir\",\"title\":\"Test-Create_a_new_dashboard_with_hostmap_widget-1641430234\",\"url\":\"/dashboard/sjt-c5e-sir/test-createanewdashboardwithhostmapwidget-1641430234\",\"created_at\":\"2022-01-06T00:50:34.551060+00:00\",\"modified_at\":\"2022-01-06T00:50:34.551060+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"style\":{\"palette\":\"green_to_orange\",\"palette_flip\":false},\"title_size\":\"16\",\"title\":\"\",\"title_align\":\"left\",\"node_type\":\"host\",\"no_metric_hosts\":true,\"requests\":{\"fill\":{\"q\":\"avg:system.cpu.user{*} by {host}\"}},\"no_group_hosts\":true,\"type\":\"hostmap\"},\"layout\":{\"y\":0,\"width\":47,\"x\":0,\"height\":22},\"id\":7704723778867726}],\"layout_type\":\"free\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:34 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/sjt-c5e-sir"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"sjt-c5e-sir\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:34 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":null,\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_hostmap_widget-1641430234\",\"widgets\":[{\"definition\":{\"no_group_hosts\":true,\"no_metric_hosts\":true,\"node_type\":\"host\",\"requests\":{\"fill\":{\"q\":\"avg:system.cpu.user{*} by {host}\"}},\"style\":{\"palette\":\"green_to_orange\",\"palette_flip\":false},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"hostmap\"},\"layout\":{\"height\":22,\"width\":47,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":[],\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"sjt-c5e-sir\",\"title\":\"Test-Create_a_new_dashboard_with_hostmap_widget-1641430234\",\"url\":\"/dashboard/sjt-c5e-sir/test-createanewdashboardwithhostmapwidget-1641430234\",\"created_at\":\"2022-01-06T00:50:34.551060+00:00\",\"modified_at\":\"2022-01-06T00:50:34.551060+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"style\":{\"palette\":\"green_to_orange\",\"palette_flip\":false},\"title_size\":\"16\",\"title\":\"\",\"title_align\":\"left\",\"node_type\":\"host\",\"no_metric_hosts\":true,\"requests\":{\"fill\":{\"q\":\"avg:system.cpu.user{*} by {host}\"}},\"no_group_hosts\":true,\"type\":\"hostmap\"},\"layout\":{\"y\":0,\"width\":47,\"x\":0,\"height\":22},\"id\":7704723778867726}],\"layout_type\":\"free\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:34 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/sjt-c5e-sir" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"sjt-c5e-sir\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:34 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-iframe-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-iframe-widget.json index 2576a3cf8..561135606 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-iframe-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-iframe-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_iframe_widget-1641430234\",\"widgets\":[{\"definition\":{\"type\":\"iframe\",\"url\":\"https://docs.datadoghq.com/api/latest/\"},\"layout\":{\"height\":12,\"width\":12,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"udq-5td-jif\",\"title\":\"Test-Create_a_new_dashboard_with_iframe_widget-1641430234\",\"url\":\"/dashboard/udq-5td-jif/test-createanewdashboardwithiframewidget-1641430234\",\"created_at\":\"2022-01-06T00:50:35.006333+00:00\",\"modified_at\":\"2022-01-06T00:50:35.006333+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"url\":\"https://docs.datadoghq.com/api/latest/\",\"type\":\"iframe\"},\"layout\":{\"y\":0,\"width\":12,\"x\":0,\"height\":12},\"id\":4318913911937946}],\"layout_type\":\"free\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:34 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/udq-5td-jif"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"udq-5td-jif\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:34 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_iframe_widget-1641430234\",\"widgets\":[{\"definition\":{\"type\":\"iframe\",\"url\":\"https://docs.datadoghq.com/api/latest/\"},\"layout\":{\"height\":12,\"width\":12,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"udq-5td-jif\",\"title\":\"Test-Create_a_new_dashboard_with_iframe_widget-1641430234\",\"url\":\"/dashboard/udq-5td-jif/test-createanewdashboardwithiframewidget-1641430234\",\"created_at\":\"2022-01-06T00:50:35.006333+00:00\",\"modified_at\":\"2022-01-06T00:50:35.006333+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"url\":\"https://docs.datadoghq.com/api/latest/\",\"type\":\"iframe\"},\"layout\":{\"y\":0,\"width\":12,\"x\":0,\"height\":12},\"id\":4318913911937946}],\"layout_type\":\"free\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:34 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/udq-5td-jif" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"udq-5td-jif\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:34 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-image-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-image-widget.json index ca01f131e..26e5e02cf 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-image-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-image-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_image_widget-1641430235\",\"widgets\":[{\"definition\":{\"sizing\":\"cover\",\"type\":\"image\",\"url\":\"https://example.com/image.png\"},\"layout\":{\"height\":12,\"width\":12,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"6qb-v3p-rrv\",\"title\":\"Test-Create_a_new_dashboard_with_image_widget-1641430235\",\"url\":\"/dashboard/6qb-v3p-rrv/test-createanewdashboardwithimagewidget-1641430235\",\"created_at\":\"2022-01-06T00:50:36.031687+00:00\",\"modified_at\":\"2022-01-06T00:50:36.031687+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"sizing\":\"cover\",\"url\":\"https://example.com/image.png\",\"type\":\"image\"},\"layout\":{\"y\":0,\"width\":12,\"x\":0,\"height\":12},\"id\":4480145637940282}],\"layout_type\":\"free\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:35 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/6qb-v3p-rrv"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"6qb-v3p-rrv\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:35 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_image_widget-1641430235\",\"widgets\":[{\"definition\":{\"sizing\":\"cover\",\"type\":\"image\",\"url\":\"https://example.com/image.png\"},\"layout\":{\"height\":12,\"width\":12,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"6qb-v3p-rrv\",\"title\":\"Test-Create_a_new_dashboard_with_image_widget-1641430235\",\"url\":\"/dashboard/6qb-v3p-rrv/test-createanewdashboardwithimagewidget-1641430235\",\"created_at\":\"2022-01-06T00:50:36.031687+00:00\",\"modified_at\":\"2022-01-06T00:50:36.031687+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"sizing\":\"cover\",\"url\":\"https://example.com/image.png\",\"type\":\"image\"},\"layout\":{\"y\":0,\"width\":12,\"x\":0,\"height\":12},\"id\":4480145637940282}],\"layout_type\":\"free\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:35 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/6qb-v3p-rrv" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"6qb-v3p-rrv\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:35 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-invalid-team-tags-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-invalid-team-tags-returns-Bad-Request-response.json index a59ff8e4a..8cabaa10e 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-invalid-team-tags-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-invalid-team-tags-returns-Bad-Request-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"tags\":[\"tm:foobar\"],\"title\":\"Test-Create_a_new_dashboard_with_invalid_team_tags_returns_Bad_Request_response-1678315499\",\"widgets\":[{\"definition\":{\"requests\":[{\"change_type\":\"absolute\",\"compare_to\":\"hour_before\",\"formulas\":[{\"formula\":\"hour_before(query1)\"},{\"formula\":\"query1\"}],\"increase_good\":true,\"order_by\":\"change\",\"order_dir\":\"desc\",\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"logs\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query1\",\"search\":{\"query\":\"\"}}],\"response_format\":\"scalar\"}],\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"change\"},\"layout\":{\"height\":4,\"width\":4,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"errors\":[\"Invalid tag format. Tag key must be `team`.\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Wed, 08 Mar 2023 22:44:59 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"tags\":[\"tm:foobar\"],\"title\":\"Test-Create_a_new_dashboard_with_invalid_team_tags_returns_Bad_Request_response-1678315499\",\"widgets\":[{\"definition\":{\"requests\":[{\"change_type\":\"absolute\",\"compare_to\":\"hour_before\",\"formulas\":[{\"formula\":\"hour_before(query1)\"},{\"formula\":\"query1\"}],\"increase_good\":true,\"order_by\":\"change\",\"order_dir\":\"desc\",\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"logs\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query1\",\"search\":{\"query\":\"\"}}],\"response_format\":\"scalar\"}],\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"change\"},\"layout\":{\"height\":4,\"width\":4,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Invalid tag format. Tag key must be `team`.\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Wed, 08 Mar 2023 22:44:59 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-list-stream-widget-with-a-valid-sort-parameter-ASC.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-list-stream-widget-with-a-valid-sort-parameter-ASC.json index 28fee312f..bffb7455b 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-list-stream-widget-with-a-valid-sort-parameter-ASC.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-list-stream-widget-with-a-valid-sort-parameter-ASC.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_list_stream_widget_with_a_valid_sort_parameter_ASC-1685553144 with list_stream widget\",\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"event_stream\",\"event_size\":\"l\",\"query_string\":\"\",\"sort\":{\"column\":\"timestamp\",\"order\":\"asc\"}},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"id\":\"td2-he3-3vj\",\"title\":\"Test-Create_a_new_dashboard_with_list_stream_widget_with_a_valid_sort_parameter_ASC-1685553144 with list_stream widget\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/td2-he3-3vj/test-createanewdashboardwithliststreamwidgetwithavalidsortparameterasc-168555314\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"event_stream\",\"event_size\":\"l\",\"query_string\":\"\",\"sort\":{\"column\":\"timestamp\",\"order\":\"asc\"}},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"},\"id\":4579982797049164}],\"notify_list\":null,\"created_at\":\"2023-05-31T17:12:24.700217+00:00\",\"modified_at\":\"2023-05-31T17:12:24.700217+00:00\",\"restricted_roles\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 31 May 2023 17:12:24 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/td2-he3-3vj"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"td2-he3-3vj\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 31 May 2023 17:12:24 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_list_stream_widget_with_a_valid_sort_parameter_ASC-1685553144 with list_stream widget\",\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"event_stream\",\"event_size\":\"l\",\"query_string\":\"\",\"sort\":{\"column\":\"timestamp\",\"order\":\"asc\"}},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"id\":\"td2-he3-3vj\",\"title\":\"Test-Create_a_new_dashboard_with_list_stream_widget_with_a_valid_sort_parameter_ASC-1685553144 with list_stream widget\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/td2-he3-3vj/test-createanewdashboardwithliststreamwidgetwithavalidsortparameterasc-168555314\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"event_stream\",\"event_size\":\"l\",\"query_string\":\"\",\"sort\":{\"column\":\"timestamp\",\"order\":\"asc\"}},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"},\"id\":4579982797049164}],\"notify_list\":null,\"created_at\":\"2023-05-31T17:12:24.700217+00:00\",\"modified_at\":\"2023-05-31T17:12:24.700217+00:00\",\"restricted_roles\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 31 May 2023 17:12:24 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/td2-he3-3vj" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"td2-he3-3vj\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 31 May 2023 17:12:24 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-list-stream-widget-with-a-valid-sort-parameter-DESC.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-list-stream-widget-with-a-valid-sort-parameter-DESC.json index f762f886b..8b8949e3c 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-list-stream-widget-with-a-valid-sort-parameter-DESC.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-list-stream-widget-with-a-valid-sort-parameter-DESC.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_list_stream_widget_with_a_valid_sort_parameter_DESC-1685553144 with list_stream widget\",\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"event_stream\",\"event_size\":\"l\",\"query_string\":\"\",\"sort\":{\"column\":\"timestamp\",\"order\":\"desc\"}},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"id\":\"mwn-7ph-8z8\",\"title\":\"Test-Create_a_new_dashboard_with_list_stream_widget_with_a_valid_sort_parameter_DESC-1685553144 with list_stream widget\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/mwn-7ph-8z8/test-createanewdashboardwithliststreamwidgetwithavalidsortparameterdesc-16855531\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"event_stream\",\"event_size\":\"l\",\"query_string\":\"\",\"sort\":{\"column\":\"timestamp\",\"order\":\"desc\"}},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"},\"id\":8830087860290510}],\"notify_list\":null,\"created_at\":\"2023-05-31T17:12:25.020023+00:00\",\"modified_at\":\"2023-05-31T17:12:25.020023+00:00\",\"restricted_roles\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 31 May 2023 17:12:24 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/mwn-7ph-8z8"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"mwn-7ph-8z8\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 31 May 2023 17:12:24 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_list_stream_widget_with_a_valid_sort_parameter_DESC-1685553144 with list_stream widget\",\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"event_stream\",\"event_size\":\"l\",\"query_string\":\"\",\"sort\":{\"column\":\"timestamp\",\"order\":\"desc\"}},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"id\":\"mwn-7ph-8z8\",\"title\":\"Test-Create_a_new_dashboard_with_list_stream_widget_with_a_valid_sort_parameter_DESC-1685553144 with list_stream widget\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/mwn-7ph-8z8/test-createanewdashboardwithliststreamwidgetwithavalidsortparameterdesc-16855531\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"event_stream\",\"event_size\":\"l\",\"query_string\":\"\",\"sort\":{\"column\":\"timestamp\",\"order\":\"desc\"}},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"},\"id\":8830087860290510}],\"notify_list\":null,\"created_at\":\"2023-05-31T17:12:25.020023+00:00\",\"modified_at\":\"2023-05-31T17:12:25.020023+00:00\",\"restricted_roles\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 31 May 2023 17:12:24 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/mwn-7ph-8z8" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"mwn-7ph-8z8\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 31 May 2023 17:12:24 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-list-stream-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-list-stream-widget.json index 39327fe31..4b7837d04 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-list-stream-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-list-stream-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_list_stream_widget-1650360448 with list_stream widget\",\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"apm_issue_stream\",\"query_string\":\"\"},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"8qi-cen-xbg\",\"title\":\"Test-Create_a_new_dashboard_with_list_stream_widget-1650360448 with list_stream widget\",\"url\":\"/dashboard/8qi-cen-xbg/test-createanewdashboardwithliststreamwidget-1650360448-with-liststream-widget\",\"created_at\":\"2022-04-19T09:27:29.277529+00:00\",\"modified_at\":\"2022-04-19T09:27:29.277529+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"query_string\":\"\",\"data_source\":\"apm_issue_stream\"},\"response_format\":\"event_list\",\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}]}],\"type\":\"list_stream\"},\"id\":8256654551182209}],\"layout_type\":\"ordered\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 19 Apr 2022 09:27:28 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/8qi-cen-xbg"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"8qi-cen-xbg\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 19 Apr 2022 09:27:28 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_list_stream_widget-1650360448 with list_stream widget\",\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"apm_issue_stream\",\"query_string\":\"\"},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"8qi-cen-xbg\",\"title\":\"Test-Create_a_new_dashboard_with_list_stream_widget-1650360448 with list_stream widget\",\"url\":\"/dashboard/8qi-cen-xbg/test-createanewdashboardwithliststreamwidget-1650360448-with-liststream-widget\",\"created_at\":\"2022-04-19T09:27:29.277529+00:00\",\"modified_at\":\"2022-04-19T09:27:29.277529+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"query_string\":\"\",\"data_source\":\"apm_issue_stream\"},\"response_format\":\"event_list\",\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}]}],\"type\":\"list_stream\"},\"id\":8256654551182209}],\"layout_type\":\"ordered\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 19 Apr 2022 09:27:28 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/8qi-cen-xbg" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"8qi-cen-xbg\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 19 Apr 2022 09:27:28 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-log-stream-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-log-stream-widget.json index 704426833..abe723cba 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-log-stream-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-log-stream-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_log_stream_widget-1641430236\",\"widgets\":[{\"definition\":{\"columns\":[\"host\",\"service\"],\"indexes\":[\"main\"],\"message_display\":\"expanded-md\",\"query\":\"\",\"show_date_column\":true,\"show_message_column\":true,\"sort\":{\"column\":\"time\",\"order\":\"desc\"},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"log_stream\"},\"layout\":{\"height\":36,\"width\":47,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"ge2-n5p-cnd\",\"title\":\"Test-Create_a_new_dashboard_with_log_stream_widget-1641430236\",\"url\":\"/dashboard/ge2-n5p-cnd/test-createanewdashboardwithlogstreamwidget-1641430236\",\"created_at\":\"2022-01-06T00:50:36.957558+00:00\",\"modified_at\":\"2022-01-06T00:50:36.957558+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"sort\":{\"column\":\"time\",\"order\":\"desc\"},\"show_message_column\":true,\"title_size\":\"16\",\"title\":\"\",\"title_align\":\"left\",\"message_display\":\"expanded-md\",\"indexes\":[\"main\"],\"show_date_column\":true,\"query\":\"\",\"type\":\"log_stream\",\"columns\":[\"host\",\"service\"]},\"layout\":{\"y\":0,\"width\":47,\"x\":0,\"height\":36},\"id\":853406405411463}],\"layout_type\":\"free\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:36 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/ge2-n5p-cnd"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"ge2-n5p-cnd\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:36 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_log_stream_widget-1641430236\",\"widgets\":[{\"definition\":{\"columns\":[\"host\",\"service\"],\"indexes\":[\"main\"],\"message_display\":\"expanded-md\",\"query\":\"\",\"show_date_column\":true,\"show_message_column\":true,\"sort\":{\"column\":\"time\",\"order\":\"desc\"},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"log_stream\"},\"layout\":{\"height\":36,\"width\":47,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"ge2-n5p-cnd\",\"title\":\"Test-Create_a_new_dashboard_with_log_stream_widget-1641430236\",\"url\":\"/dashboard/ge2-n5p-cnd/test-createanewdashboardwithlogstreamwidget-1641430236\",\"created_at\":\"2022-01-06T00:50:36.957558+00:00\",\"modified_at\":\"2022-01-06T00:50:36.957558+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"sort\":{\"column\":\"time\",\"order\":\"desc\"},\"show_message_column\":true,\"title_size\":\"16\",\"title\":\"\",\"title_align\":\"left\",\"message_display\":\"expanded-md\",\"indexes\":[\"main\"],\"show_date_column\":true,\"query\":\"\",\"type\":\"log_stream\",\"columns\":[\"host\",\"service\"]},\"layout\":{\"y\":0,\"width\":47,\"x\":0,\"height\":36},\"id\":853406405411463}],\"layout_type\":\"free\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:36 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/ge2-n5p-cnd" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"ge2-n5p-cnd\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:36 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-logs-pattern-stream-list-stream-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-logs-pattern-stream-list-stream-widget.json index 026125f2f..142a94ac7 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-logs-pattern-stream-list-stream-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-logs-pattern-stream-list-stream-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_logs_pattern_stream_list_stream_widget-1673628237 with list_stream widget\",\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"logs_pattern_stream\",\"group_by\":[{\"facet\":\"service\"}],\"query_string\":\"\"},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"vqp-zrn-fki\",\"title\":\"Test-Create_a_new_dashboard_with_logs_pattern_stream_list_stream_widget-1673628237 with list_stream widget\",\"url\":\"/dashboard/vqp-zrn-fki/test-createanewdashboardwithlogspatternstreamliststreamwidget-1673628237-with-li\",\"created_at\":\"2023-01-13T16:43:57.974008+00:00\",\"modified_at\":\"2023-01-13T16:43:57.974008+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"query_string\":\"\",\"group_by\":[{\"facet\":\"service\"}],\"data_source\":\"logs_pattern_stream\"},\"response_format\":\"event_list\",\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}]}],\"type\":\"list_stream\"},\"id\":8006246428423069}],\"layout_type\":\"ordered\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 13 Jan 2023 16:43:57 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/vqp-zrn-fki"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"vqp-zrn-fki\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 13 Jan 2023 16:43:57 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_logs_pattern_stream_list_stream_widget-1673628237 with list_stream widget\",\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"logs_pattern_stream\",\"group_by\":[{\"facet\":\"service\"}],\"query_string\":\"\"},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"vqp-zrn-fki\",\"title\":\"Test-Create_a_new_dashboard_with_logs_pattern_stream_list_stream_widget-1673628237 with list_stream widget\",\"url\":\"/dashboard/vqp-zrn-fki/test-createanewdashboardwithlogspatternstreamliststreamwidget-1673628237-with-li\",\"created_at\":\"2023-01-13T16:43:57.974008+00:00\",\"modified_at\":\"2023-01-13T16:43:57.974008+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"query_string\":\"\",\"group_by\":[{\"facet\":\"service\"}],\"data_source\":\"logs_pattern_stream\"},\"response_format\":\"event_list\",\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}]}],\"type\":\"list_stream\"},\"id\":8006246428423069}],\"layout_type\":\"ordered\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 13 Jan 2023 16:43:57 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/vqp-zrn-fki" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"vqp-zrn-fki\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 13 Jan 2023 16:43:57 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-logs-query-table-widget-and-storage-parameter.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-logs-query-table-widget-and-storage-parameter.json index bbeafb988..9925a1736 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-logs-query-table-widget-and-storage-parameter.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-logs-query-table-widget-and-storage-parameter.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_logs_query_table_widget_and_storage_parameter-1663859189 with query table widget and storage parameter\",\"widgets\":[{\"definition\":{\"requests\":[{\"formulas\":[{\"cell_display_mode\":\"bar\",\"conditional_formats\":[],\"formula\":\"query1\",\"limit\":{\"count\":50,\"order\":\"desc\"}}],\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"logs\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query1\",\"search\":{\"query\":\"\"},\"storage\":\"online_archives\"}],\"response_format\":\"scalar\"}],\"type\":\"query_table\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"3my-5nt-jfx\",\"title\":\"Test-Create_a_new_dashboard_with_logs_query_table_widget_and_storage_parameter-1663859189 with query table widget and storage parameter\",\"url\":\"/dashboard/3my-5nt-jfx/test-createanewdashboardwithlogsquerytablewidgetandstorageparameter-1663859189-w\",\"created_at\":\"2022-09-22T15:06:29.565373+00:00\",\"modified_at\":\"2022-09-22T15:06:29.565373+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"formulas\":[{\"formula\":\"query1\",\"cell_display_mode\":\"bar\",\"limit\":{\"count\":50,\"order\":\"desc\"},\"conditional_formats\":[]}],\"response_format\":\"scalar\",\"queries\":[{\"search\":{\"query\":\"\"},\"data_source\":\"logs\",\"compute\":{\"aggregation\":\"count\"},\"name\":\"query1\",\"storage\":\"online_archives\",\"indexes\":[\"*\"],\"group_by\":[]}]}],\"type\":\"query_table\"},\"id\":7645558730591730}],\"layout_type\":\"ordered\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 22 Sep 2022 15:06:29 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/3my-5nt-jfx"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"3my-5nt-jfx\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 22 Sep 2022 15:06:29 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_logs_query_table_widget_and_storage_parameter-1663859189 with query table widget and storage parameter\",\"widgets\":[{\"definition\":{\"requests\":[{\"formulas\":[{\"cell_display_mode\":\"bar\",\"conditional_formats\":[],\"formula\":\"query1\",\"limit\":{\"count\":50,\"order\":\"desc\"}}],\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"logs\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query1\",\"search\":{\"query\":\"\"},\"storage\":\"online_archives\"}],\"response_format\":\"scalar\"}],\"type\":\"query_table\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"3my-5nt-jfx\",\"title\":\"Test-Create_a_new_dashboard_with_logs_query_table_widget_and_storage_parameter-1663859189 with query table widget and storage parameter\",\"url\":\"/dashboard/3my-5nt-jfx/test-createanewdashboardwithlogsquerytablewidgetandstorageparameter-1663859189-w\",\"created_at\":\"2022-09-22T15:06:29.565373+00:00\",\"modified_at\":\"2022-09-22T15:06:29.565373+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"formulas\":[{\"formula\":\"query1\",\"cell_display_mode\":\"bar\",\"limit\":{\"count\":50,\"order\":\"desc\"},\"conditional_formats\":[]}],\"response_format\":\"scalar\",\"queries\":[{\"search\":{\"query\":\"\"},\"data_source\":\"logs\",\"compute\":{\"aggregation\":\"count\"},\"name\":\"query1\",\"storage\":\"online_archives\",\"indexes\":[\"*\"],\"group_by\":[]}]}],\"type\":\"query_table\"},\"id\":7645558730591730}],\"layout_type\":\"ordered\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 22 Sep 2022 15:06:29 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/3my-5nt-jfx" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"3my-5nt-jfx\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 22 Sep 2022 15:06:29 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-logs-stream-list-stream-widget-and-storage-parameter.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-logs-stream-list-stream-widget-and-storage-parameter.json index e29e68749..236ae3c43 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-logs-stream-list-stream-widget-and-storage-parameter.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-logs-stream-list-stream-widget-and-storage-parameter.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_logs_stream_list_stream_widget_and_storage_parameter-1663859214 with list_stream widget\",\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"logs_stream\",\"query_string\":\"\",\"storage\":\"hot\"},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"4w4-hsv-5rr\",\"title\":\"Test-Create_a_new_dashboard_with_logs_stream_list_stream_widget_and_storage_parameter-1663859214 with list_stream widget\",\"url\":\"/dashboard/4w4-hsv-5rr/test-createanewdashboardwithlogsstreamliststreamwidgetandstorageparameter-166385\",\"created_at\":\"2022-09-22T15:06:55.408450+00:00\",\"modified_at\":\"2022-09-22T15:06:55.408450+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"query_string\":\"\",\"data_source\":\"logs_stream\",\"storage\":\"hot\"},\"response_format\":\"event_list\",\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}]}],\"type\":\"list_stream\"},\"id\":4554037011373131}],\"layout_type\":\"ordered\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 22 Sep 2022 15:06:54 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/4w4-hsv-5rr"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"4w4-hsv-5rr\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 22 Sep 2022 15:06:54 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_logs_stream_list_stream_widget_and_storage_parameter-1663859214 with list_stream widget\",\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"logs_stream\",\"query_string\":\"\",\"storage\":\"hot\"},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"4w4-hsv-5rr\",\"title\":\"Test-Create_a_new_dashboard_with_logs_stream_list_stream_widget_and_storage_parameter-1663859214 with list_stream widget\",\"url\":\"/dashboard/4w4-hsv-5rr/test-createanewdashboardwithlogsstreamliststreamwidgetandstorageparameter-166385\",\"created_at\":\"2022-09-22T15:06:55.408450+00:00\",\"modified_at\":\"2022-09-22T15:06:55.408450+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"query_string\":\"\",\"data_source\":\"logs_stream\",\"storage\":\"hot\"},\"response_format\":\"event_list\",\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}]}],\"type\":\"list_stream\"},\"id\":4554037011373131}],\"layout_type\":\"ordered\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 22 Sep 2022 15:06:54 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/4w4-hsv-5rr" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"4w4-hsv-5rr\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 22 Sep 2022 15:06:54 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-logs-transaction-stream-list-stream-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-logs-transaction-stream-list-stream-widget.json index 349858d67..3c90c599e 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-logs-transaction-stream-list-stream-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-logs-transaction-stream-list-stream-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_logs_transaction_stream_list_stream_widget-1673628238 with list_stream widget\",\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"compute\":[{\"aggregation\":\"count\",\"facet\":\"service\"}],\"data_source\":\"logs_transaction_stream\",\"group_by\":[{\"facet\":\"service\"}],\"query_string\":\"\"},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"89c-p48-tve\",\"title\":\"Test-Create_a_new_dashboard_with_logs_transaction_stream_list_stream_widget-1673628238 with list_stream widget\",\"url\":\"/dashboard/89c-p48-tve/test-createanewdashboardwithlogstransactionstreamliststreamwidget-1673628238-wit\",\"created_at\":\"2023-01-13T16:43:58.328143+00:00\",\"modified_at\":\"2023-01-13T16:43:58.328143+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"query_string\":\"\",\"group_by\":[{\"facet\":\"service\"}],\"data_source\":\"logs_transaction_stream\",\"compute\":[{\"facet\":\"service\",\"aggregation\":\"count\"}]},\"response_format\":\"event_list\",\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}]}],\"type\":\"list_stream\"},\"id\":4678220055282526}],\"layout_type\":\"ordered\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 13 Jan 2023 16:43:58 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/89c-p48-tve"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"89c-p48-tve\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 13 Jan 2023 16:43:58 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_logs_transaction_stream_list_stream_widget-1673628238 with list_stream widget\",\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"compute\":[{\"aggregation\":\"count\",\"facet\":\"service\"}],\"data_source\":\"logs_transaction_stream\",\"group_by\":[{\"facet\":\"service\"}],\"query_string\":\"\"},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"89c-p48-tve\",\"title\":\"Test-Create_a_new_dashboard_with_logs_transaction_stream_list_stream_widget-1673628238 with list_stream widget\",\"url\":\"/dashboard/89c-p48-tve/test-createanewdashboardwithlogstransactionstreamliststreamwidget-1673628238-wit\",\"created_at\":\"2023-01-13T16:43:58.328143+00:00\",\"modified_at\":\"2023-01-13T16:43:58.328143+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"query_string\":\"\",\"group_by\":[{\"facet\":\"service\"}],\"data_source\":\"logs_transaction_stream\",\"compute\":[{\"facet\":\"service\",\"aggregation\":\"count\"}]},\"response_format\":\"event_list\",\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}]}],\"type\":\"list_stream\"},\"id\":4678220055282526}],\"layout_type\":\"ordered\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 13 Jan 2023 16:43:58 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/89c-p48-tve" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"89c-p48-tve\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 13 Jan 2023 16:43:58 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-manage-status-widget-and-show-priority-parameter.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-manage-status-widget-and-show-priority-parameter.json index 30029a003..36d428cc3 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-manage-status-widget-and-show-priority-parameter.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-manage-status-widget-and-show-priority-parameter.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_manage_status_widget_and_show_priority_parameter-1660324243\",\"widgets\":[{\"definition\":{\"color_preference\":\"text\",\"count\":50,\"display_format\":\"countsAndList\",\"hide_zero_counts\":true,\"query\":\"\",\"show_last_triggered\":false,\"show_priority\":false,\"sort\":\"priority,asc\",\"start\":0,\"summary_type\":\"monitors\",\"type\":\"manage_status\"},\"layout\":{\"height\":25,\"width\":50,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"a28-2ea-xeq\",\"title\":\"Test-Create_a_new_dashboard_with_manage_status_widget_and_show_priority_parameter-1660324243\",\"url\":\"/dashboard/a28-2ea-xeq/test-createanewdashboardwithmanagestatuswidgetandshowpriorityparameter-166032424\",\"created_at\":\"2022-08-12T17:10:43.357911+00:00\",\"modified_at\":\"2022-08-12T17:10:43.357911+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"count\":50,\"sort\":\"priority,asc\",\"color_preference\":\"text\",\"show_priority\":false,\"hide_zero_counts\":true,\"start\":0,\"summary_type\":\"monitors\",\"show_last_triggered\":false,\"query\":\"\",\"display_format\":\"countsAndList\",\"type\":\"manage_status\"},\"layout\":{\"y\":0,\"width\":50,\"x\":0,\"height\":25},\"id\":559045226435119}],\"layout_type\":\"free\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 12 Aug 2022 17:10:43 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/a28-2ea-xeq"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"a28-2ea-xeq\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 12 Aug 2022 17:10:43 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_manage_status_widget_and_show_priority_parameter-1660324243\",\"widgets\":[{\"definition\":{\"color_preference\":\"text\",\"count\":50,\"display_format\":\"countsAndList\",\"hide_zero_counts\":true,\"query\":\"\",\"show_last_triggered\":false,\"show_priority\":false,\"sort\":\"priority,asc\",\"start\":0,\"summary_type\":\"monitors\",\"type\":\"manage_status\"},\"layout\":{\"height\":25,\"width\":50,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"a28-2ea-xeq\",\"title\":\"Test-Create_a_new_dashboard_with_manage_status_widget_and_show_priority_parameter-1660324243\",\"url\":\"/dashboard/a28-2ea-xeq/test-createanewdashboardwithmanagestatuswidgetandshowpriorityparameter-166032424\",\"created_at\":\"2022-08-12T17:10:43.357911+00:00\",\"modified_at\":\"2022-08-12T17:10:43.357911+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"count\":50,\"sort\":\"priority,asc\",\"color_preference\":\"text\",\"show_priority\":false,\"hide_zero_counts\":true,\"start\":0,\"summary_type\":\"monitors\",\"show_last_triggered\":false,\"query\":\"\",\"display_format\":\"countsAndList\",\"type\":\"manage_status\"},\"layout\":{\"y\":0,\"width\":50,\"x\":0,\"height\":25},\"id\":559045226435119}],\"layout_type\":\"free\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 12 Aug 2022 17:10:43 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/a28-2ea-xeq" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"a28-2ea-xeq\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 12 Aug 2022 17:10:43 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-manage-status-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-manage-status-widget.json index 76ca17b48..c55cbd6c4 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-manage-status-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-manage-status-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_manage_status_widget-1641430237\",\"widgets\":[{\"definition\":{\"color_preference\":\"text\",\"count\":50,\"display_format\":\"countsAndList\",\"hide_zero_counts\":true,\"query\":\"\",\"show_last_triggered\":false,\"sort\":\"status,asc\",\"start\":0,\"summary_type\":\"monitors\",\"type\":\"manage_status\"},\"layout\":{\"height\":25,\"width\":50,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"6zr-swm-ex4\",\"title\":\"Test-Create_a_new_dashboard_with_manage_status_widget-1641430237\",\"url\":\"/dashboard/6zr-swm-ex4/test-createanewdashboardwithmanagestatuswidget-1641430237\",\"created_at\":\"2022-01-06T00:50:37.426709+00:00\",\"modified_at\":\"2022-01-06T00:50:37.426709+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"count\":50,\"sort\":\"status,asc\",\"color_preference\":\"text\",\"hide_zero_counts\":true,\"start\":0,\"summary_type\":\"monitors\",\"show_last_triggered\":false,\"query\":\"\",\"display_format\":\"countsAndList\",\"type\":\"manage_status\"},\"layout\":{\"y\":0,\"width\":50,\"x\":0,\"height\":25},\"id\":1230468048601368}],\"layout_type\":\"free\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:37 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/6zr-swm-ex4"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"6zr-swm-ex4\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:37 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_manage_status_widget-1641430237\",\"widgets\":[{\"definition\":{\"color_preference\":\"text\",\"count\":50,\"display_format\":\"countsAndList\",\"hide_zero_counts\":true,\"query\":\"\",\"show_last_triggered\":false,\"sort\":\"status,asc\",\"start\":0,\"summary_type\":\"monitors\",\"type\":\"manage_status\"},\"layout\":{\"height\":25,\"width\":50,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"6zr-swm-ex4\",\"title\":\"Test-Create_a_new_dashboard_with_manage_status_widget-1641430237\",\"url\":\"/dashboard/6zr-swm-ex4/test-createanewdashboardwithmanagestatuswidget-1641430237\",\"created_at\":\"2022-01-06T00:50:37.426709+00:00\",\"modified_at\":\"2022-01-06T00:50:37.426709+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"count\":50,\"sort\":\"status,asc\",\"color_preference\":\"text\",\"hide_zero_counts\":true,\"start\":0,\"summary_type\":\"monitors\",\"show_last_triggered\":false,\"query\":\"\",\"display_format\":\"countsAndList\",\"type\":\"manage_status\"},\"layout\":{\"y\":0,\"width\":50,\"x\":0,\"height\":25},\"id\":1230468048601368}],\"layout_type\":\"free\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:37 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/6zr-swm-ex4" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"6zr-swm-ex4\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:37 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-note-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-note-widget.json index cc4f30757..4b87e6492 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-note-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-note-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_note_widget-1641430237\",\"widgets\":[{\"definition\":{\"content\":\"# Example Note\",\"type\":\"note\"},\"layout\":{\"height\":24,\"width\":18,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"67s-sdf-cr7\",\"title\":\"Test-Create_a_new_dashboard_with_note_widget-1641430237\",\"url\":\"/dashboard/67s-sdf-cr7/test-createanewdashboardwithnotewidget-1641430237\",\"created_at\":\"2022-01-06T00:50:37.865600+00:00\",\"modified_at\":\"2022-01-06T00:50:37.865600+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"content\":\"# Example Note\",\"type\":\"note\"},\"layout\":{\"y\":0,\"width\":18,\"x\":0,\"height\":24},\"id\":2976451902581497}],\"layout_type\":\"free\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:37 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/67s-sdf-cr7"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"67s-sdf-cr7\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:37 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_note_widget-1641430237\",\"widgets\":[{\"definition\":{\"content\":\"# Example Note\",\"type\":\"note\"},\"layout\":{\"height\":24,\"width\":18,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"67s-sdf-cr7\",\"title\":\"Test-Create_a_new_dashboard_with_note_widget-1641430237\",\"url\":\"/dashboard/67s-sdf-cr7/test-createanewdashboardwithnotewidget-1641430237\",\"created_at\":\"2022-01-06T00:50:37.865600+00:00\",\"modified_at\":\"2022-01-06T00:50:37.865600+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"content\":\"# Example Note\",\"type\":\"note\"},\"layout\":{\"y\":0,\"width\":18,\"x\":0,\"height\":24},\"id\":2976451902581497}],\"layout_type\":\"free\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:37 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/67s-sdf-cr7" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"67s-sdf-cr7\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:37 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-powerpack-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-powerpack-widget.json index f34c2600a..2fb93fd62 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-powerpack-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-powerpack-widget.json @@ -1 +1,129 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"}}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"name\":\"Test-Create_a_new_dashboard_with_powerpack_widget-1698172328\",\"tags\":[\"tag:sample\"],\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}]},\"type\":\"powerpack\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/powerpacks"}, "response": {"body": {"string": "{\"data\":{\"type\":\"powerpack\",\"id\":\"a3e591c8-729b-11ee-bde6-da7ad0900002\",\"attributes\":{\"name\":\"Test-Create_a_new_dashboard_with_powerpack_widget-1698172328\",\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"},\"id\":1041433464205113}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}],\"tags\":[\"tag:sample\"]},\"relationships\":{\"author\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"name\":\"CI Account\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 24 Oct 2023 18:32:08 GMT"}, {"request": {"body": {"string": "{\"description\":\"description\",\"is_read_only\":false,\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_powerpack_widget-1698172328 with powerpack widget\",\"widgets\":[{\"definition\":{\"powerpack_id\":\"a3e591c8-729b-11ee-bde6-da7ad0900002\",\"template_variables\":{\"controlled_by_powerpack\":[{\"name\":\"foo\",\"prefix\":\"bar\",\"values\":[\"baz\",\"qux\",\"quuz\"]}],\"controlled_externally\":[]},\"type\":\"powerpack\"},\"layout\":{\"height\":2,\"is_column_break\":false,\"width\":2,\"x\":1,\"y\":1}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"id\":\"u4a-itq-xia\",\"title\":\"Test-Create_a_new_dashboard_with_powerpack_widget-1698172328 with powerpack widget\",\"description\":\"description\",\"author_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"author_name\":\"CI Account\",\"layout_type\":\"ordered\",\"url\":\"/dashboard/u4a-itq-xia/test-createanewdashboardwithpowerpackwidget-1698172328-with-powerpack-widget\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"powerpack_id\":\"a3e591c8-729b-11ee-bde6-da7ad0900002\",\"template_variables\":{\"controlled_by_powerpack\":[{\"name\":\"foo\",\"prefix\":\"bar\",\"values\":[\"baz\",\"qux\",\"quuz\"]}],\"controlled_externally\":[]},\"type\":\"powerpack\"},\"layout\":{\"height\":2,\"is_column_break\":false,\"width\":2,\"x\":1,\"y\":1},\"id\":1423357855337541}],\"notify_list\":null,\"created_at\":\"2023-10-24T18:32:09.719784+00:00\",\"modified_at\":\"2023-10-24T18:32:09.719784+00:00\",\"restricted_roles\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 24 Oct 2023 18:32:08 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/u4a-itq-xia"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"u4a-itq-xia\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 24 Oct 2023 18:32:08 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/powerpacks/a3e591c8-729b-11ee-bde6-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Tue, 24 Oct 2023 18:32:08 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"}}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"name\":\"Test-Create_a_new_dashboard_with_powerpack_widget-1698172328\",\"tags\":[\"tag:sample\"],\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}]},\"type\":\"powerpack\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/powerpacks" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"powerpack\",\"id\":\"a3e591c8-729b-11ee-bde6-da7ad0900002\",\"attributes\":{\"name\":\"Test-Create_a_new_dashboard_with_powerpack_widget-1698172328\",\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"},\"id\":1041433464205113}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}],\"tags\":[\"tag:sample\"]},\"relationships\":{\"author\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"name\":\"CI Account\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 24 Oct 2023 18:32:08 GMT" + }, + { + "request": { + "body": { + "string": "{\"description\":\"description\",\"is_read_only\":false,\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_powerpack_widget-1698172328 with powerpack widget\",\"widgets\":[{\"definition\":{\"powerpack_id\":\"a3e591c8-729b-11ee-bde6-da7ad0900002\",\"template_variables\":{\"controlled_by_powerpack\":[{\"name\":\"foo\",\"prefix\":\"bar\",\"values\":[\"baz\",\"qux\",\"quuz\"]}],\"controlled_externally\":[]},\"type\":\"powerpack\"},\"layout\":{\"height\":2,\"is_column_break\":false,\"width\":2,\"x\":1,\"y\":1}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"id\":\"u4a-itq-xia\",\"title\":\"Test-Create_a_new_dashboard_with_powerpack_widget-1698172328 with powerpack widget\",\"description\":\"description\",\"author_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"author_name\":\"CI Account\",\"layout_type\":\"ordered\",\"url\":\"/dashboard/u4a-itq-xia/test-createanewdashboardwithpowerpackwidget-1698172328-with-powerpack-widget\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"powerpack_id\":\"a3e591c8-729b-11ee-bde6-da7ad0900002\",\"template_variables\":{\"controlled_by_powerpack\":[{\"name\":\"foo\",\"prefix\":\"bar\",\"values\":[\"baz\",\"qux\",\"quuz\"]}],\"controlled_externally\":[]},\"type\":\"powerpack\"},\"layout\":{\"height\":2,\"is_column_break\":false,\"width\":2,\"x\":1,\"y\":1},\"id\":1423357855337541}],\"notify_list\":null,\"created_at\":\"2023-10-24T18:32:09.719784+00:00\",\"modified_at\":\"2023-10-24T18:32:09.719784+00:00\",\"restricted_roles\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 24 Oct 2023 18:32:08 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/u4a-itq-xia" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"u4a-itq-xia\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 24 Oct 2023 18:32:08 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/powerpacks/a3e591c8-729b-11ee-bde6-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Tue, 24 Oct 2023 18:32:08 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-query-table-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-query-table-widget.json index dff72c787..d8733526c 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-query-table-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-query-table-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_query_table_widget-1641430238\",\"widgets\":[{\"definition\":{\"has_search_bar\":\"auto\",\"requests\":[{\"formulas\":[{\"cell_display_mode\":\"bar\",\"conditional_formats\":[],\"formula\":\"query1\",\"limit\":{\"count\":500,\"order\":\"desc\"}}],\"queries\":[{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*} by {host}\"}],\"response_format\":\"scalar\"}],\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"query_table\"},\"layout\":{\"height\":32,\"width\":54,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"sqa-699-xcc\",\"title\":\"Test-Create_a_new_dashboard_with_query_table_widget-1641430238\",\"url\":\"/dashboard/sqa-699-xcc/test-createanewdashboardwithquerytablewidget-1641430238\",\"created_at\":\"2022-01-06T00:50:38.368385+00:00\",\"modified_at\":\"2022-01-06T00:50:38.368385+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"title_size\":\"16\",\"title\":\"\",\"title_align\":\"left\",\"has_search_bar\":\"auto\",\"time\":{},\"requests\":[{\"formulas\":[{\"formula\":\"query1\",\"cell_display_mode\":\"bar\",\"limit\":{\"count\":500,\"order\":\"desc\"},\"conditional_formats\":[]}],\"response_format\":\"scalar\",\"queries\":[{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*} by {host}\"}]}],\"type\":\"query_table\"},\"layout\":{\"y\":0,\"width\":54,\"x\":0,\"height\":32},\"id\":4876182137167827}],\"layout_type\":\"free\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:38 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/sqa-699-xcc"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"sqa-699-xcc\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:38 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_query_table_widget-1641430238\",\"widgets\":[{\"definition\":{\"has_search_bar\":\"auto\",\"requests\":[{\"formulas\":[{\"cell_display_mode\":\"bar\",\"conditional_formats\":[],\"formula\":\"query1\",\"limit\":{\"count\":500,\"order\":\"desc\"}}],\"queries\":[{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*} by {host}\"}],\"response_format\":\"scalar\"}],\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"query_table\"},\"layout\":{\"height\":32,\"width\":54,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"sqa-699-xcc\",\"title\":\"Test-Create_a_new_dashboard_with_query_table_widget-1641430238\",\"url\":\"/dashboard/sqa-699-xcc/test-createanewdashboardwithquerytablewidget-1641430238\",\"created_at\":\"2022-01-06T00:50:38.368385+00:00\",\"modified_at\":\"2022-01-06T00:50:38.368385+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"title_size\":\"16\",\"title\":\"\",\"title_align\":\"left\",\"has_search_bar\":\"auto\",\"time\":{},\"requests\":[{\"formulas\":[{\"formula\":\"query1\",\"cell_display_mode\":\"bar\",\"limit\":{\"count\":500,\"order\":\"desc\"},\"conditional_formats\":[]}],\"response_format\":\"scalar\",\"queries\":[{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*} by {host}\"}]}],\"type\":\"query_table\"},\"layout\":{\"y\":0,\"width\":54,\"x\":0,\"height\":32},\"id\":4876182137167827}],\"layout_type\":\"free\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:38 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/sqa-699-xcc" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"sqa-699-xcc\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:38 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-query-value-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-query-value-widget.json index e3609efeb..8a863b65f 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-query-value-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-query-value-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_query_value_widget-1641430238\",\"widgets\":[{\"definition\":{\"autoscale\":true,\"precision\":2,\"requests\":[{\"queries\":[{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*}\"}],\"response_format\":\"scalar\"}],\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"query_value\"},\"layout\":{\"height\":15,\"width\":47,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"y4a-dqu-ifi\",\"title\":\"Test-Create_a_new_dashboard_with_query_value_widget-1641430238\",\"url\":\"/dashboard/y4a-dqu-ifi/test-createanewdashboardwithqueryvaluewidget-1641430238\",\"created_at\":\"2022-01-06T00:50:38.839043+00:00\",\"modified_at\":\"2022-01-06T00:50:38.839043+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"autoscale\":true,\"title\":\"\",\"title_align\":\"left\",\"precision\":2,\"time\":{},\"title_size\":\"16\",\"requests\":[{\"response_format\":\"scalar\",\"queries\":[{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*}\"}]}],\"type\":\"query_value\"},\"layout\":{\"y\":0,\"width\":47,\"x\":0,\"height\":15},\"id\":6979331889627275}],\"layout_type\":\"free\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:38 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/y4a-dqu-ifi"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"y4a-dqu-ifi\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:38 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_query_value_widget-1641430238\",\"widgets\":[{\"definition\":{\"autoscale\":true,\"precision\":2,\"requests\":[{\"queries\":[{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*}\"}],\"response_format\":\"scalar\"}],\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"query_value\"},\"layout\":{\"height\":15,\"width\":47,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"y4a-dqu-ifi\",\"title\":\"Test-Create_a_new_dashboard_with_query_value_widget-1641430238\",\"url\":\"/dashboard/y4a-dqu-ifi/test-createanewdashboardwithqueryvaluewidget-1641430238\",\"created_at\":\"2022-01-06T00:50:38.839043+00:00\",\"modified_at\":\"2022-01-06T00:50:38.839043+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"autoscale\":true,\"title\":\"\",\"title_align\":\"left\",\"precision\":2,\"time\":{},\"title_size\":\"16\",\"requests\":[{\"response_format\":\"scalar\",\"queries\":[{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*}\"}]}],\"type\":\"query_value\"},\"layout\":{\"y\":0,\"width\":47,\"x\":0,\"height\":15},\"id\":6979331889627275}],\"layout_type\":\"free\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:38 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/y4a-dqu-ifi" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"y4a-dqu-ifi\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:38 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-rum-issue-stream-list-stream-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-rum-issue-stream-list-stream-widget.json index 78d804140..5bef4f1b7 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-rum-issue-stream-list-stream-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-rum-issue-stream-list-stream-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_rum_issue_stream_list_stream_widget-1649179145 with list_stream widget\",\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"rum_issue_stream\",\"query_string\":\"\"},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"847-9hf-ftb\",\"title\":\"Test-Create_a_new_dashboard_with_rum_issue_stream_list_stream_widget-1649179145 with list_stream widget\",\"url\":\"/dashboard/847-9hf-ftb/test-createanewdashboardwithrumissuestreamliststreamwidget-1649179145-with-lists\",\"created_at\":\"2022-04-05T17:19:05.444942+00:00\",\"modified_at\":\"2022-04-05T17:19:05.444942+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"query_string\":\"\",\"data_source\":\"rum_issue_stream\"},\"response_format\":\"event_list\",\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}]}],\"type\":\"list_stream\"},\"id\":7299581017937461}],\"layout_type\":\"ordered\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 05 Apr 2022 17:19:05 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/847-9hf-ftb"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"847-9hf-ftb\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 05 Apr 2022 17:19:05 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_rum_issue_stream_list_stream_widget-1649179145 with list_stream widget\",\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"rum_issue_stream\",\"query_string\":\"\"},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"847-9hf-ftb\",\"title\":\"Test-Create_a_new_dashboard_with_rum_issue_stream_list_stream_widget-1649179145 with list_stream widget\",\"url\":\"/dashboard/847-9hf-ftb/test-createanewdashboardwithrumissuestreamliststreamwidget-1649179145-with-lists\",\"created_at\":\"2022-04-05T17:19:05.444942+00:00\",\"modified_at\":\"2022-04-05T17:19:05.444942+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"query_string\":\"\",\"data_source\":\"rum_issue_stream\"},\"response_format\":\"event_list\",\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}]}],\"type\":\"list_stream\"},\"id\":7299581017937461}],\"layout_type\":\"ordered\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 05 Apr 2022 17:19:05 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/847-9hf-ftb" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"847-9hf-ftb\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 05 Apr 2022 17:19:05 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-run-workflow-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-run-workflow-widget.json index 1ebf57b9b..d7c8af562 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-run-workflow-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-run-workflow-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_run_workflow_widget-1674727559\",\"widgets\":[{\"definition\":{\"inputs\":[{\"name\":\"environment\",\"value\":\"$env.value\"}],\"time\":{},\"title\":\"Run workflow title\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"run_workflow\",\"workflow_id\":\"2e055f16-8b6a-4cdd-b452-17a34c44b160\"},\"layout\":{\"height\":15,\"width\":47,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"pnw-fkv-n4x\",\"title\":\"Test-Create_a_new_dashboard_with_run_workflow_widget-1674727559\",\"url\":\"/dashboard/pnw-fkv-n4x/test-createanewdashboardwithrunworkflowwidget-1674727559\",\"created_at\":\"2023-01-26T10:06:00.011221+00:00\",\"modified_at\":\"2023-01-26T10:06:00.011221+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"inputs\":[{\"name\":\"environment\",\"value\":\"$env.value\"}],\"title_size\":\"16\",\"title\":\"Run workflow title\",\"title_align\":\"left\",\"workflow_id\":\"2e055f16-8b6a-4cdd-b452-17a34c44b160\",\"time\":{},\"type\":\"run_workflow\"},\"layout\":{\"y\":0,\"width\":47,\"x\":0,\"height\":15},\"id\":737363147915504}],\"layout_type\":\"free\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 26 Jan 2023 10:05:59 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/pnw-fkv-n4x"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"pnw-fkv-n4x\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 26 Jan 2023 10:05:59 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_run_workflow_widget-1674727559\",\"widgets\":[{\"definition\":{\"inputs\":[{\"name\":\"environment\",\"value\":\"$env.value\"}],\"time\":{},\"title\":\"Run workflow title\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"run_workflow\",\"workflow_id\":\"2e055f16-8b6a-4cdd-b452-17a34c44b160\"},\"layout\":{\"height\":15,\"width\":47,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"pnw-fkv-n4x\",\"title\":\"Test-Create_a_new_dashboard_with_run_workflow_widget-1674727559\",\"url\":\"/dashboard/pnw-fkv-n4x/test-createanewdashboardwithrunworkflowwidget-1674727559\",\"created_at\":\"2023-01-26T10:06:00.011221+00:00\",\"modified_at\":\"2023-01-26T10:06:00.011221+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"inputs\":[{\"name\":\"environment\",\"value\":\"$env.value\"}],\"title_size\":\"16\",\"title\":\"Run workflow title\",\"title_align\":\"left\",\"workflow_id\":\"2e055f16-8b6a-4cdd-b452-17a34c44b160\",\"time\":{},\"type\":\"run_workflow\"},\"layout\":{\"y\":0,\"width\":47,\"x\":0,\"height\":15},\"id\":737363147915504}],\"layout_type\":\"free\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 26 Jan 2023 10:05:59 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/pnw-fkv-n4x" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"pnw-fkv-n4x\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 26 Jan 2023 10:05:59 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-scatterplot-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-scatterplot-widget.json index 1a89258de..f27e2d9b1 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-scatterplot-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-scatterplot-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_scatterplot_widget-1641430239\",\"widgets\":[{\"definition\":{\"color_by_groups\":[],\"requests\":{\"table\":{\"formulas\":[{\"alias\":\"\",\"dimension\":\"x\",\"formula\":\"query1\"},{\"alias\":\"\",\"dimension\":\"y\",\"formula\":\"query2\"}],\"queries\":[{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*} by {service}\"},{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"query2\",\"query\":\"avg:system.mem.used{*} by {service}\"}],\"response_format\":\"scalar\"}},\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"scatterplot\",\"xaxis\":{\"include_zero\":true,\"max\":\"auto\",\"min\":\"auto\",\"scale\":\"linear\"},\"yaxis\":{\"include_zero\":true,\"max\":\"auto\",\"min\":\"auto\",\"scale\":\"linear\"}},\"layout\":{\"height\":15,\"width\":47,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"kif-ema-sua\",\"title\":\"Test-Create_a_new_dashboard_with_scatterplot_widget-1641430239\",\"url\":\"/dashboard/kif-ema-sua/test-createanewdashboardwithscatterplotwidget-1641430239\",\"created_at\":\"2022-01-06T00:50:39.358282+00:00\",\"modified_at\":\"2022-01-06T00:50:39.358282+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"title_size\":\"16\",\"yaxis\":{\"include_zero\":true,\"scale\":\"linear\",\"min\":\"auto\",\"max\":\"auto\"},\"title_align\":\"left\",\"color_by_groups\":[],\"xaxis\":{\"include_zero\":true,\"scale\":\"linear\",\"min\":\"auto\",\"max\":\"auto\"},\"time\":{},\"title\":\"\",\"requests\":{\"table\":{\"formulas\":[{\"alias\":\"\",\"dimension\":\"x\",\"formula\":\"query1\"},{\"alias\":\"\",\"dimension\":\"y\",\"formula\":\"query2\"}],\"response_format\":\"scalar\",\"queries\":[{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*} by {service}\"},{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"query2\",\"query\":\"avg:system.mem.used{*} by {service}\"}]}},\"type\":\"scatterplot\"},\"layout\":{\"y\":0,\"width\":47,\"x\":0,\"height\":15},\"id\":1267307721120974}],\"layout_type\":\"free\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:39 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/kif-ema-sua"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"kif-ema-sua\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:39 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_scatterplot_widget-1641430239\",\"widgets\":[{\"definition\":{\"color_by_groups\":[],\"requests\":{\"table\":{\"formulas\":[{\"alias\":\"\",\"dimension\":\"x\",\"formula\":\"query1\"},{\"alias\":\"\",\"dimension\":\"y\",\"formula\":\"query2\"}],\"queries\":[{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*} by {service}\"},{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"query2\",\"query\":\"avg:system.mem.used{*} by {service}\"}],\"response_format\":\"scalar\"}},\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"scatterplot\",\"xaxis\":{\"include_zero\":true,\"max\":\"auto\",\"min\":\"auto\",\"scale\":\"linear\"},\"yaxis\":{\"include_zero\":true,\"max\":\"auto\",\"min\":\"auto\",\"scale\":\"linear\"}},\"layout\":{\"height\":15,\"width\":47,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"kif-ema-sua\",\"title\":\"Test-Create_a_new_dashboard_with_scatterplot_widget-1641430239\",\"url\":\"/dashboard/kif-ema-sua/test-createanewdashboardwithscatterplotwidget-1641430239\",\"created_at\":\"2022-01-06T00:50:39.358282+00:00\",\"modified_at\":\"2022-01-06T00:50:39.358282+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"title_size\":\"16\",\"yaxis\":{\"include_zero\":true,\"scale\":\"linear\",\"min\":\"auto\",\"max\":\"auto\"},\"title_align\":\"left\",\"color_by_groups\":[],\"xaxis\":{\"include_zero\":true,\"scale\":\"linear\",\"min\":\"auto\",\"max\":\"auto\"},\"time\":{},\"title\":\"\",\"requests\":{\"table\":{\"formulas\":[{\"alias\":\"\",\"dimension\":\"x\",\"formula\":\"query1\"},{\"alias\":\"\",\"dimension\":\"y\",\"formula\":\"query2\"}],\"response_format\":\"scalar\",\"queries\":[{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*} by {service}\"},{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"query2\",\"query\":\"avg:system.mem.used{*} by {service}\"}]}},\"type\":\"scatterplot\"},\"layout\":{\"y\":0,\"width\":47,\"x\":0,\"height\":15},\"id\":1267307721120974}],\"layout_type\":\"free\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:39 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/kif-ema-sua" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"kif-ema-sua\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:39 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-servicemap-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-servicemap-widget.json index 6ca927d32..4d8802894 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-servicemap-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-servicemap-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_servicemap_widget-1641430239\",\"widgets\":[{\"definition\":{\"filters\":[\"env:none\",\"environment:*\"],\"service\":\"\",\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"servicemap\"},\"layout\":{\"height\":15,\"width\":47,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"9b3-emh-qe4\",\"title\":\"Test-Create_a_new_dashboard_with_servicemap_widget-1641430239\",\"url\":\"/dashboard/9b3-emh-qe4/test-createanewdashboardwithservicemapwidget-1641430239\",\"created_at\":\"2022-01-06T00:50:39.841716+00:00\",\"modified_at\":\"2022-01-06T00:50:39.841716+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"title_size\":\"16\",\"service\":\"\",\"title\":\"\",\"title_align\":\"left\",\"filters\":[\"env:none\",\"environment:*\"],\"type\":\"servicemap\"},\"layout\":{\"y\":0,\"width\":47,\"x\":0,\"height\":15},\"id\":2823265998914096}],\"layout_type\":\"free\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:39 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/9b3-emh-qe4"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"9b3-emh-qe4\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:39 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_servicemap_widget-1641430239\",\"widgets\":[{\"definition\":{\"filters\":[\"env:none\",\"environment:*\"],\"service\":\"\",\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"servicemap\"},\"layout\":{\"height\":15,\"width\":47,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"9b3-emh-qe4\",\"title\":\"Test-Create_a_new_dashboard_with_servicemap_widget-1641430239\",\"url\":\"/dashboard/9b3-emh-qe4/test-createanewdashboardwithservicemapwidget-1641430239\",\"created_at\":\"2022-01-06T00:50:39.841716+00:00\",\"modified_at\":\"2022-01-06T00:50:39.841716+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"title_size\":\"16\",\"service\":\"\",\"title\":\"\",\"title_align\":\"left\",\"filters\":[\"env:none\",\"environment:*\"],\"type\":\"servicemap\"},\"layout\":{\"y\":0,\"width\":47,\"x\":0,\"height\":15},\"id\":2823265998914096}],\"layout_type\":\"free\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:39 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/9b3-emh-qe4" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"9b3-emh-qe4\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:39 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-slo-list-widget-with-sort.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-slo-list-widget-with-sort.json index a79f1bafd..76db35a5a 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-slo-list-widget-with-sort.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-slo-list-widget-with-sort.json @@ -1 +1,129 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Create_a_new_dashboard_with_slo_list_widget_with_sort-1676400896\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/slo"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"80091437d0165587a0831040981e44f9\",\"name\":\"Test-Create_a_new_dashboard_with_slo_list_widget_with_sort-1676400896\",\"tags\":[],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":95.0,\"target_display\":\"95.\",\"warning\":98.0,\"warning_display\":\"98.\"}],\"type\":\"metric\",\"type_id\":1,\"description\":\"\",\"timeframe\":\"7d\",\"warning_threshold\":98,\"target_threshold\":95,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"created_at\":1676400896,\"modified_at\":1676400896}],\"error\":null}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 14 Feb 2023 18:54:56 GMT"}, {"request": {"body": {"string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_slo_list_widget_with_sort-1676400896\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"limit\":75,\"query_string\":\"env:prod AND service:my-app\",\"sort\":[{\"column\":\"status.sli\",\"order\":\"asc\"}]},\"request_type\":\"slo_list\"}],\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"slo_list\"},\"layout\":{\"height\":21,\"width\":60,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"id\":\"6hq-ih3-tzg\",\"title\":\"Test-Create_a_new_dashboard_with_slo_list_widget_with_sort-1676400896\",\"description\":\"\",\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"free\",\"url\":\"/dashboard/6hq-ih3-tzg/test-createanewdashboardwithslolistwidgetwithsort-1676400896\",\"is_read_only\":false,\"template_variables\":[],\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"limit\":75,\"query_string\":\"env:prod AND service:my-app\",\"sort\":[{\"column\":\"status.sli\",\"order\":\"asc\"}]},\"request_type\":\"slo_list\"}],\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"slo_list\"},\"layout\":{\"height\":21,\"width\":60,\"x\":0,\"y\":0},\"id\":1642439378480719}],\"notify_list\":[],\"created_at\":\"2023-02-14T18:54:57.012649+00:00\",\"modified_at\":\"2023-02-14T18:54:57.012649+00:00\",\"restricted_roles\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 14 Feb 2023 18:54:56 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/6hq-ih3-tzg"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"6hq-ih3-tzg\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 14 Feb 2023 18:54:56 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/slo/80091437d0165587a0831040981e44f9"}, "response": {"body": {"string": "{\"data\":[\"80091437d0165587a0831040981e44f9\"],\"error\":null}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 14 Feb 2023 18:54:56 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Create_a_new_dashboard_with_slo_list_widget_with_sort-1676400896\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/slo" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"80091437d0165587a0831040981e44f9\",\"name\":\"Test-Create_a_new_dashboard_with_slo_list_widget_with_sort-1676400896\",\"tags\":[],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":95.0,\"target_display\":\"95.\",\"warning\":98.0,\"warning_display\":\"98.\"}],\"type\":\"metric\",\"type_id\":1,\"description\":\"\",\"timeframe\":\"7d\",\"warning_threshold\":98,\"target_threshold\":95,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"created_at\":1676400896,\"modified_at\":1676400896}],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 14 Feb 2023 18:54:56 GMT" + }, + { + "request": { + "body": { + "string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_slo_list_widget_with_sort-1676400896\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"limit\":75,\"query_string\":\"env:prod AND service:my-app\",\"sort\":[{\"column\":\"status.sli\",\"order\":\"asc\"}]},\"request_type\":\"slo_list\"}],\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"slo_list\"},\"layout\":{\"height\":21,\"width\":60,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"id\":\"6hq-ih3-tzg\",\"title\":\"Test-Create_a_new_dashboard_with_slo_list_widget_with_sort-1676400896\",\"description\":\"\",\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"free\",\"url\":\"/dashboard/6hq-ih3-tzg/test-createanewdashboardwithslolistwidgetwithsort-1676400896\",\"is_read_only\":false,\"template_variables\":[],\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"limit\":75,\"query_string\":\"env:prod AND service:my-app\",\"sort\":[{\"column\":\"status.sli\",\"order\":\"asc\"}]},\"request_type\":\"slo_list\"}],\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"slo_list\"},\"layout\":{\"height\":21,\"width\":60,\"x\":0,\"y\":0},\"id\":1642439378480719}],\"notify_list\":[],\"created_at\":\"2023-02-14T18:54:57.012649+00:00\",\"modified_at\":\"2023-02-14T18:54:57.012649+00:00\",\"restricted_roles\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 14 Feb 2023 18:54:56 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/6hq-ih3-tzg" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"6hq-ih3-tzg\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 14 Feb 2023 18:54:56 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/slo/80091437d0165587a0831040981e44f9" + }, + "response": { + "body": { + "string": "{\"data\":[\"80091437d0165587a0831040981e44f9\"],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 14 Feb 2023 18:54:56 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-slo-list-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-slo-list-widget.json index 768a83f14..c8d17ea8e 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-slo-list-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-slo-list-widget.json @@ -1 +1,129 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Create_a_new_dashboard_with_slo_list_widget-1663772315\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/slo"}, "response": {"body": {"string": "{\"data\":[{\"description\":\"\",\"monitor_tags\":[],\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"thresholds\":[{\"warning\":98.0,\"warning_display\":\"98.\",\"target\":95.0,\"target_display\":\"95.\",\"timeframe\":\"7d\"}],\"type_id\":1,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"id\":\"7f88381afe5f5c1e987664e7057253fd\",\"name\":\"Test-Create_a_new_dashboard_with_slo_list_widget-1663772315\",\"created_at\":1663772316,\"tags\":[],\"modified_at\":1663772316,\"type\":\"metric\"}],\"error\":null}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 21 Sep 2022 14:58:35 GMT"}, {"request": {"body": {"string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_slo_list_widget-1663772315\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"limit\":75,\"query_string\":\"env:prod AND service:my-app\"},\"request_type\":\"slo_list\"}],\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"slo_list\"},\"layout\":{\"height\":21,\"width\":60,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"xf3-y64-ib5\",\"title\":\"Test-Create_a_new_dashboard_with_slo_list_widget-1663772315\",\"url\":\"/dashboard/xf3-y64-ib5/test-createanewdashboardwithslolistwidget-1663772315\",\"created_at\":\"2022-09-21T14:58:36.648616+00:00\",\"modified_at\":\"2022-09-21T14:58:36.648616+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"type\":\"slo_list\",\"requests\":[{\"query\":{\"query_string\":\"env:prod AND service:my-app\",\"limit\":75},\"request_type\":\"slo_list\"}],\"title_align\":\"left\",\"title_size\":\"16\"},\"layout\":{\"y\":0,\"width\":60,\"x\":0,\"height\":21},\"id\":434825034616209}],\"layout_type\":\"free\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 21 Sep 2022 14:58:35 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/xf3-y64-ib5"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"xf3-y64-ib5\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 21 Sep 2022 14:58:35 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/slo/7f88381afe5f5c1e987664e7057253fd"}, "response": {"body": {"string": "{\"data\":[\"7f88381afe5f5c1e987664e7057253fd\"],\"error\":null}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 21 Sep 2022 14:58:35 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Create_a_new_dashboard_with_slo_list_widget-1663772315\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/slo" + }, + "response": { + "body": { + "string": "{\"data\":[{\"description\":\"\",\"monitor_tags\":[],\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"thresholds\":[{\"warning\":98.0,\"warning_display\":\"98.\",\"target\":95.0,\"target_display\":\"95.\",\"timeframe\":\"7d\"}],\"type_id\":1,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"id\":\"7f88381afe5f5c1e987664e7057253fd\",\"name\":\"Test-Create_a_new_dashboard_with_slo_list_widget-1663772315\",\"created_at\":1663772316,\"tags\":[],\"modified_at\":1663772316,\"type\":\"metric\"}],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 21 Sep 2022 14:58:35 GMT" + }, + { + "request": { + "body": { + "string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_slo_list_widget-1663772315\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"limit\":75,\"query_string\":\"env:prod AND service:my-app\"},\"request_type\":\"slo_list\"}],\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"slo_list\"},\"layout\":{\"height\":21,\"width\":60,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"xf3-y64-ib5\",\"title\":\"Test-Create_a_new_dashboard_with_slo_list_widget-1663772315\",\"url\":\"/dashboard/xf3-y64-ib5/test-createanewdashboardwithslolistwidget-1663772315\",\"created_at\":\"2022-09-21T14:58:36.648616+00:00\",\"modified_at\":\"2022-09-21T14:58:36.648616+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"type\":\"slo_list\",\"requests\":[{\"query\":{\"query_string\":\"env:prod AND service:my-app\",\"limit\":75},\"request_type\":\"slo_list\"}],\"title_align\":\"left\",\"title_size\":\"16\"},\"layout\":{\"y\":0,\"width\":60,\"x\":0,\"height\":21},\"id\":434825034616209}],\"layout_type\":\"free\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 21 Sep 2022 14:58:35 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/xf3-y64-ib5" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"xf3-y64-ib5\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 21 Sep 2022 14:58:35 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/slo/7f88381afe5f5c1e987664e7057253fd" + }, + "response": { + "body": { + "string": "{\"data\":[\"7f88381afe5f5c1e987664e7057253fd\"],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 21 Sep 2022 14:58:35 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-slo-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-slo-widget.json index 3e2509f9a..355a2d801 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-slo-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-slo-widget.json @@ -1 +1,129 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Create_a_new_dashboard_with_slo_widget-1682961456\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/slo"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"91c07f67612e5483b52e566f81ef101c\",\"name\":\"Test-Create_a_new_dashboard_with_slo_widget-1682961456\",\"tags\":[],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":95.0,\"target_display\":\"95.\",\"warning\":98.0,\"warning_display\":\"98.\"}],\"type\":\"metric\",\"type_id\":1,\"description\":\"\",\"timeframe\":\"7d\",\"warning_threshold\":98,\"target_threshold\":95,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"created_at\":1682961456,\"modified_at\":1682961456}],\"error\":null}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 01 May 2023 17:17:36 GMT"}, {"request": {"body": {"string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_slo_widget-1682961456\",\"widgets\":[{\"definition\":{\"additional_query_filters\":\"!host:excluded_host\",\"global_time_target\":\"0\",\"show_error_budget\":true,\"slo_id\":\"91c07f67612e5483b52e566f81ef101c\",\"time_windows\":[\"7d\"],\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"slo\",\"view_mode\":\"overall\",\"view_type\":\"detail\"},\"layout\":{\"height\":21,\"width\":60,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"id\":\"s2k-6ak-vwz\",\"title\":\"Test-Create_a_new_dashboard_with_slo_widget-1682961456\",\"description\":\"\",\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"free\",\"url\":\"/dashboard/s2k-6ak-vwz/test-createanewdashboardwithslowidget-1682961456\",\"is_read_only\":false,\"template_variables\":[],\"widgets\":[{\"definition\":{\"additional_query_filters\":\"!host:excluded_host\",\"global_time_target\":\"0\",\"show_error_budget\":true,\"slo_id\":\"91c07f67612e5483b52e566f81ef101c\",\"time_windows\":[\"7d\"],\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"slo\",\"view_mode\":\"overall\",\"view_type\":\"detail\"},\"layout\":{\"height\":21,\"width\":60,\"x\":0,\"y\":0},\"id\":5115893324048055}],\"notify_list\":[],\"created_at\":\"2023-05-01T17:17:36.970593+00:00\",\"modified_at\":\"2023-05-01T17:17:36.970593+00:00\",\"restricted_roles\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 01 May 2023 17:17:36 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/s2k-6ak-vwz"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"s2k-6ak-vwz\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 01 May 2023 17:17:36 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/slo/91c07f67612e5483b52e566f81ef101c"}, "response": {"body": {"string": "{\"data\":[\"91c07f67612e5483b52e566f81ef101c\"],\"error\":null}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 01 May 2023 17:17:36 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Create_a_new_dashboard_with_slo_widget-1682961456\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/slo" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"91c07f67612e5483b52e566f81ef101c\",\"name\":\"Test-Create_a_new_dashboard_with_slo_widget-1682961456\",\"tags\":[],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":95.0,\"target_display\":\"95.\",\"warning\":98.0,\"warning_display\":\"98.\"}],\"type\":\"metric\",\"type_id\":1,\"description\":\"\",\"timeframe\":\"7d\",\"warning_threshold\":98,\"target_threshold\":95,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"created_at\":1682961456,\"modified_at\":1682961456}],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 01 May 2023 17:17:36 GMT" + }, + { + "request": { + "body": { + "string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_slo_widget-1682961456\",\"widgets\":[{\"definition\":{\"additional_query_filters\":\"!host:excluded_host\",\"global_time_target\":\"0\",\"show_error_budget\":true,\"slo_id\":\"91c07f67612e5483b52e566f81ef101c\",\"time_windows\":[\"7d\"],\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"slo\",\"view_mode\":\"overall\",\"view_type\":\"detail\"},\"layout\":{\"height\":21,\"width\":60,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"id\":\"s2k-6ak-vwz\",\"title\":\"Test-Create_a_new_dashboard_with_slo_widget-1682961456\",\"description\":\"\",\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"free\",\"url\":\"/dashboard/s2k-6ak-vwz/test-createanewdashboardwithslowidget-1682961456\",\"is_read_only\":false,\"template_variables\":[],\"widgets\":[{\"definition\":{\"additional_query_filters\":\"!host:excluded_host\",\"global_time_target\":\"0\",\"show_error_budget\":true,\"slo_id\":\"91c07f67612e5483b52e566f81ef101c\",\"time_windows\":[\"7d\"],\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"slo\",\"view_mode\":\"overall\",\"view_type\":\"detail\"},\"layout\":{\"height\":21,\"width\":60,\"x\":0,\"y\":0},\"id\":5115893324048055}],\"notify_list\":[],\"created_at\":\"2023-05-01T17:17:36.970593+00:00\",\"modified_at\":\"2023-05-01T17:17:36.970593+00:00\",\"restricted_roles\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 01 May 2023 17:17:36 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/s2k-6ak-vwz" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"s2k-6ak-vwz\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 01 May 2023 17:17:36 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/slo/91c07f67612e5483b52e566f81ef101c" + }, + "response": { + "body": { + "string": "{\"data\":[\"91c07f67612e5483b52e566f81ef101c\"],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 01 May 2023 17:17:36 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-split-graph-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-split-graph-widget.json index 8065aad33..8b7abe4c2 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-split-graph-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-split-graph-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"ordered\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_split_graph_widget-1694700280\",\"widgets\":[{\"definition\":{\"has_uniform_y_axes\":true,\"size\":\"md\",\"source_widget_definition\":{\"requests\":[{\"display_type\":\"line\",\"queries\":[{\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*}\"}],\"response_format\":\"timeseries\",\"style\":{\"line_type\":\"solid\",\"line_width\":\"normal\",\"palette\":\"dog_classic\"}}],\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"timeseries\"},\"split_config\":{\"limit\":24,\"sort\":{\"compute\":{\"aggregation\":\"sum\",\"metric\":\"system.cpu.user\"},\"order\":\"desc\"},\"split_dimensions\":[{\"one_graph_per\":\"service\"}],\"static_splits\":[[{\"tag_key\":\"service\",\"tag_values\":[\"cassandra\"]},{\"tag_key\":\"datacenter\",\"tag_values\":[]}],[{\"tag_key\":\"demo\",\"tag_values\":[\"env\"]}]]},\"title\":\"\",\"type\":\"split_group\"},\"layout\":{\"height\":8,\"width\":12,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"id\":\"cjw-gqa-mgu\",\"title\":\"Test-Create_a_new_dashboard_with_split_graph_widget-1694700280\",\"description\":\"\",\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/cjw-gqa-mgu/test-createanewdashboardwithsplitgraphwidget-1694700280\",\"is_read_only\":false,\"template_variables\":[],\"widgets\":[{\"definition\":{\"has_uniform_y_axes\":true,\"size\":\"md\",\"source_widget_definition\":{\"requests\":[{\"display_type\":\"line\",\"queries\":[{\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*}\"}],\"response_format\":\"timeseries\",\"style\":{\"line_type\":\"solid\",\"line_width\":\"normal\",\"palette\":\"dog_classic\"}}],\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"timeseries\"},\"split_config\":{\"limit\":24,\"sort\":{\"compute\":{\"aggregation\":\"sum\",\"metric\":\"system.cpu.user\"},\"order\":\"desc\"},\"split_dimensions\":[{\"one_graph_per\":\"service\"}],\"static_splits\":[[{\"tag_key\":\"service\",\"tag_values\":[\"cassandra\"]},{\"tag_key\":\"datacenter\",\"tag_values\":[]}],[{\"tag_key\":\"demo\",\"tag_values\":[\"env\"]}]]},\"title\":\"\",\"type\":\"split_group\"},\"layout\":{\"height\":8,\"width\":12,\"x\":0,\"y\":0},\"id\":130983163053076}],\"notify_list\":[],\"created_at\":\"2023-09-14T14:04:40.913735+00:00\",\"modified_at\":\"2023-09-14T14:04:40.913735+00:00\",\"restricted_roles\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 14 Sep 2023 14:04:40 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/cjw-gqa-mgu"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"cjw-gqa-mgu\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 14 Sep 2023 14:04:40 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"ordered\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_split_graph_widget-1694700280\",\"widgets\":[{\"definition\":{\"has_uniform_y_axes\":true,\"size\":\"md\",\"source_widget_definition\":{\"requests\":[{\"display_type\":\"line\",\"queries\":[{\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*}\"}],\"response_format\":\"timeseries\",\"style\":{\"line_type\":\"solid\",\"line_width\":\"normal\",\"palette\":\"dog_classic\"}}],\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"timeseries\"},\"split_config\":{\"limit\":24,\"sort\":{\"compute\":{\"aggregation\":\"sum\",\"metric\":\"system.cpu.user\"},\"order\":\"desc\"},\"split_dimensions\":[{\"one_graph_per\":\"service\"}],\"static_splits\":[[{\"tag_key\":\"service\",\"tag_values\":[\"cassandra\"]},{\"tag_key\":\"datacenter\",\"tag_values\":[]}],[{\"tag_key\":\"demo\",\"tag_values\":[\"env\"]}]]},\"title\":\"\",\"type\":\"split_group\"},\"layout\":{\"height\":8,\"width\":12,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"id\":\"cjw-gqa-mgu\",\"title\":\"Test-Create_a_new_dashboard_with_split_graph_widget-1694700280\",\"description\":\"\",\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/cjw-gqa-mgu/test-createanewdashboardwithsplitgraphwidget-1694700280\",\"is_read_only\":false,\"template_variables\":[],\"widgets\":[{\"definition\":{\"has_uniform_y_axes\":true,\"size\":\"md\",\"source_widget_definition\":{\"requests\":[{\"display_type\":\"line\",\"queries\":[{\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*}\"}],\"response_format\":\"timeseries\",\"style\":{\"line_type\":\"solid\",\"line_width\":\"normal\",\"palette\":\"dog_classic\"}}],\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"timeseries\"},\"split_config\":{\"limit\":24,\"sort\":{\"compute\":{\"aggregation\":\"sum\",\"metric\":\"system.cpu.user\"},\"order\":\"desc\"},\"split_dimensions\":[{\"one_graph_per\":\"service\"}],\"static_splits\":[[{\"tag_key\":\"service\",\"tag_values\":[\"cassandra\"]},{\"tag_key\":\"datacenter\",\"tag_values\":[]}],[{\"tag_key\":\"demo\",\"tag_values\":[\"env\"]}]]},\"title\":\"\",\"type\":\"split_group\"},\"layout\":{\"height\":8,\"width\":12,\"x\":0,\"y\":0},\"id\":130983163053076}],\"notify_list\":[],\"created_at\":\"2023-09-14T14:04:40.913735+00:00\",\"modified_at\":\"2023-09-14T14:04:40.913735+00:00\",\"restricted_roles\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 14 Sep 2023 14:04:40 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/cjw-gqa-mgu" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"cjw-gqa-mgu\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 14 Sep 2023 14:04:40 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-sunburst-widget-and-metrics-data.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-sunburst-widget-and-metrics-data.json index f609a91e3..64203ea18 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-sunburst-widget-and-metrics-data.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-sunburst-widget-and-metrics-data.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_sunburst_widget_and_metrics_data-1693352020\",\"widgets\":[{\"definition\":{\"requests\":[{\"formulas\":[{\"formula\":\"query1\"}],\"queries\":[{\"aggregator\":\"sum\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"sum:system.mem.used{*} by {service}\"}],\"response_format\":\"scalar\",\"style\":{\"palette\":\"dog_classic\"}}],\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"sunburst\"},\"layout\":{\"height\":4,\"width\":4,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"id\":\"p9p-tab-wa7\",\"title\":\"Test-Create_a_new_dashboard_with_sunburst_widget_and_metrics_data-1693352020\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/p9p-tab-wa7/test-createanewdashboardwithsunburstwidgetandmetricsdata-1693352020\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"formulas\":[{\"formula\":\"query1\"}],\"queries\":[{\"aggregator\":\"sum\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"sum:system.mem.used{*} by {service}\"}],\"response_format\":\"scalar\",\"style\":{\"palette\":\"dog_classic\"}}],\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"sunburst\"},\"layout\":{\"height\":4,\"width\":4,\"x\":0,\"y\":0},\"id\":4956604535424180}],\"notify_list\":null,\"created_at\":\"2023-08-29T23:33:41.087237+00:00\",\"modified_at\":\"2023-08-29T23:33:41.087237+00:00\",\"restricted_roles\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 29 Aug 2023 23:33:40 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/p9p-tab-wa7"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"p9p-tab-wa7\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 29 Aug 2023 23:33:40 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_sunburst_widget_and_metrics_data-1693352020\",\"widgets\":[{\"definition\":{\"requests\":[{\"formulas\":[{\"formula\":\"query1\"}],\"queries\":[{\"aggregator\":\"sum\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"sum:system.mem.used{*} by {service}\"}],\"response_format\":\"scalar\",\"style\":{\"palette\":\"dog_classic\"}}],\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"sunburst\"},\"layout\":{\"height\":4,\"width\":4,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"id\":\"p9p-tab-wa7\",\"title\":\"Test-Create_a_new_dashboard_with_sunburst_widget_and_metrics_data-1693352020\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/p9p-tab-wa7/test-createanewdashboardwithsunburstwidgetandmetricsdata-1693352020\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"formulas\":[{\"formula\":\"query1\"}],\"queries\":[{\"aggregator\":\"sum\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"sum:system.mem.used{*} by {service}\"}],\"response_format\":\"scalar\",\"style\":{\"palette\":\"dog_classic\"}}],\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"sunburst\"},\"layout\":{\"height\":4,\"width\":4,\"x\":0,\"y\":0},\"id\":4956604535424180}],\"notify_list\":null,\"created_at\":\"2023-08-29T23:33:41.087237+00:00\",\"modified_at\":\"2023-08-29T23:33:41.087237+00:00\",\"restricted_roles\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 29 Aug 2023 23:33:40 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/p9p-tab-wa7" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"p9p-tab-wa7\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 29 Aug 2023 23:33:40 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-team-tags-returns-OK-response.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-team-tags-returns-OK-response.json index 0850f110c..7f83fc7c5 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-team-tags-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-team-tags-returns-OK-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"tags\":[\"team:foobar\"],\"title\":\"Test-Create_a_new_dashboard_with_team_tags_returns_OK_response-1678308832\",\"widgets\":[{\"definition\":{\"requests\":[{\"change_type\":\"absolute\",\"compare_to\":\"hour_before\",\"formulas\":[{\"formula\":\"hour_before(query1)\"},{\"formula\":\"query1\"}],\"increase_good\":true,\"order_by\":\"change\",\"order_dir\":\"desc\",\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"logs\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query1\",\"search\":{\"query\":\"\"}}],\"response_format\":\"scalar\"}],\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"change\"},\"layout\":{\"height\":4,\"width\":4,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"id\":\"cvx-m2c-ntf\",\"title\":\"Test-Create_a_new_dashboard_with_team_tags_returns_OK_response-1678308832\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/cvx-m2c-ntf/test-createanewdashboardwithteamtagsreturnsokresponse-1678308832\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"change_type\":\"absolute\",\"compare_to\":\"hour_before\",\"formulas\":[{\"formula\":\"hour_before(query1)\"},{\"formula\":\"query1\"}],\"increase_good\":true,\"order_by\":\"change\",\"order_dir\":\"desc\",\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"logs\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query1\",\"search\":{\"query\":\"\"}}],\"response_format\":\"scalar\"}],\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"change\"},\"layout\":{\"height\":4,\"width\":4,\"x\":0,\"y\":0},\"id\":3494387223047491}],\"notify_list\":null,\"created_at\":\"2023-03-08T20:53:52.690739+00:00\",\"modified_at\":\"2023-03-08T20:53:52.690739+00:00\",\"tags\":[\"team:foobar\"],\"restricted_roles\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 08 Mar 2023 20:53:52 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/cvx-m2c-ntf"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"cvx-m2c-ntf\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 08 Mar 2023 20:53:52 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"tags\":[\"team:foobar\"],\"title\":\"Test-Create_a_new_dashboard_with_team_tags_returns_OK_response-1678308832\",\"widgets\":[{\"definition\":{\"requests\":[{\"change_type\":\"absolute\",\"compare_to\":\"hour_before\",\"formulas\":[{\"formula\":\"hour_before(query1)\"},{\"formula\":\"query1\"}],\"increase_good\":true,\"order_by\":\"change\",\"order_dir\":\"desc\",\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"logs\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query1\",\"search\":{\"query\":\"\"}}],\"response_format\":\"scalar\"}],\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"change\"},\"layout\":{\"height\":4,\"width\":4,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"id\":\"cvx-m2c-ntf\",\"title\":\"Test-Create_a_new_dashboard_with_team_tags_returns_OK_response-1678308832\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/cvx-m2c-ntf/test-createanewdashboardwithteamtagsreturnsokresponse-1678308832\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"change_type\":\"absolute\",\"compare_to\":\"hour_before\",\"formulas\":[{\"formula\":\"hour_before(query1)\"},{\"formula\":\"query1\"}],\"increase_good\":true,\"order_by\":\"change\",\"order_dir\":\"desc\",\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"logs\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query1\",\"search\":{\"query\":\"\"}}],\"response_format\":\"scalar\"}],\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"change\"},\"layout\":{\"height\":4,\"width\":4,\"x\":0,\"y\":0},\"id\":3494387223047491}],\"notify_list\":null,\"created_at\":\"2023-03-08T20:53:52.690739+00:00\",\"modified_at\":\"2023-03-08T20:53:52.690739+00:00\",\"tags\":[\"team:foobar\"],\"restricted_roles\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 08 Mar 2023 20:53:52 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/cvx-m2c-ntf" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"cvx-m2c-ntf\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 08 Mar 2023 20:53:52 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-template-variable-defaults-and-default-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-template-variable-defaults-and-default-returns-Bad-Request-response.json index ae2d49ae8..abb052670 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-template-variable-defaults-and-default-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-template-variable-defaults-and-default-returns-Bad-Request-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":null,\"is_read_only\":false,\"layout_type\":\"ordered\",\"notify_list\":[],\"reflow_type\":\"auto\",\"restricted_roles\":[],\"template_variables\":[{\"available_values\":[\"my-host\",\"host1\",\"host2\"],\"default\":\"my-host\",\"defaults\":[\"my-host\"],\"name\":\"host1\",\"prefix\":\"host\"}],\"title\":\"\",\"widgets\":[{\"definition\":{\"requests\":{\"fill\":{\"q\":\"avg:system.cpu.user{*}\"}},\"type\":\"hostmap\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"errors\":[\"'template_variables' is invalid\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Mon, 12 Sep 2022 20:05:48 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":null,\"is_read_only\":false,\"layout_type\":\"ordered\",\"notify_list\":[],\"reflow_type\":\"auto\",\"restricted_roles\":[],\"template_variables\":[{\"available_values\":[\"my-host\",\"host1\",\"host2\"],\"default\":\"my-host\",\"defaults\":[\"my-host\"],\"name\":\"host1\",\"prefix\":\"host\"}],\"title\":\"\",\"widgets\":[{\"definition\":{\"requests\":{\"fill\":{\"q\":\"avg:system.cpu.user{*}\"}},\"type\":\"hostmap\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"errors\":[\"'template_variables' is invalid\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Mon, 12 Sep 2022 20:05:48 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-template-variable-defaults-returns-OK-response.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-template-variable-defaults-returns-OK-response.json index e349a843c..c8ff2dfdc 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-template-variable-defaults-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-template-variable-defaults-returns-OK-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":null,\"is_read_only\":false,\"layout_type\":\"ordered\",\"notify_list\":[],\"reflow_type\":\"auto\",\"restricted_roles\":[],\"template_variables\":[{\"available_values\":[\"my-host\",\"host1\",\"host2\"],\"defaults\":[\"my-host\"],\"name\":\"host1\",\"prefix\":\"host\"}],\"title\":\"\",\"widgets\":[{\"definition\":{\"requests\":{\"fill\":{\"q\":\"avg:system.cpu.user{*}\"}},\"type\":\"hostmap\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"id\":\"h5n-j24-t82\",\"title\":\"\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/h5n-j24-t82/\",\"is_read_only\":false,\"template_variables\":[{\"available_values\":[\"my-host\",\"host1\",\"host2\"],\"defaults\":[\"my-host\"],\"name\":\"host1\",\"prefix\":\"host\"}],\"widgets\":[{\"definition\":{\"requests\":{\"fill\":{\"q\":\"avg:system.cpu.user{*}\"}},\"type\":\"hostmap\"},\"id\":355816329429238}],\"notify_list\":[],\"created_at\":\"2023-02-16T21:39:58.588908+00:00\",\"modified_at\":\"2023-02-16T21:39:58.588908+00:00\",\"reflow_type\":\"auto\",\"restricted_roles\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 16 Feb 2023 21:39:58 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/h5n-j24-t82"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"h5n-j24-t82\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 16 Feb 2023 21:39:58 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":null,\"is_read_only\":false,\"layout_type\":\"ordered\",\"notify_list\":[],\"reflow_type\":\"auto\",\"restricted_roles\":[],\"template_variables\":[{\"available_values\":[\"my-host\",\"host1\",\"host2\"],\"defaults\":[\"my-host\"],\"name\":\"host1\",\"prefix\":\"host\"}],\"title\":\"\",\"widgets\":[{\"definition\":{\"requests\":{\"fill\":{\"q\":\"avg:system.cpu.user{*}\"}},\"type\":\"hostmap\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"id\":\"h5n-j24-t82\",\"title\":\"\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/h5n-j24-t82/\",\"is_read_only\":false,\"template_variables\":[{\"available_values\":[\"my-host\",\"host1\",\"host2\"],\"defaults\":[\"my-host\"],\"name\":\"host1\",\"prefix\":\"host\"}],\"widgets\":[{\"definition\":{\"requests\":{\"fill\":{\"q\":\"avg:system.cpu.user{*}\"}},\"type\":\"hostmap\"},\"id\":355816329429238}],\"notify_list\":[],\"created_at\":\"2023-02-16T21:39:58.588908+00:00\",\"modified_at\":\"2023-02-16T21:39:58.588908+00:00\",\"reflow_type\":\"auto\",\"restricted_roles\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 16 Feb 2023 21:39:58 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/h5n-j24-t82" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"h5n-j24-t82\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 16 Feb 2023 21:39:58 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-template-variable-defaults-whose-value-has-no-length-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-template-variable-defaults-whose-value-has-no-length-returns-Bad-Request-response.json index 9d8824026..e1dd7ea06 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-template-variable-defaults-whose-value-has-no-length-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-template-variable-defaults-whose-value-has-no-length-returns-Bad-Request-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":null,\"is_read_only\":false,\"layout_type\":\"ordered\",\"notify_list\":[],\"reflow_type\":\"auto\",\"restricted_roles\":[],\"template_variables\":[{\"available_values\":[\"my-host\",\"host1\",\"host2\"],\"defaults\":[\"\"],\"name\":\"host1\",\"prefix\":\"host\"}],\"title\":\"\",\"widgets\":[{\"definition\":{\"requests\":{\"fill\":{\"q\":\"avg:system.cpu.user{*}\"}},\"type\":\"hostmap\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"errors\":[\"Minimum length of parameter 'defaults' should be 1\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Mon, 12 Sep 2022 20:05:50 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":null,\"is_read_only\":false,\"layout_type\":\"ordered\",\"notify_list\":[],\"reflow_type\":\"auto\",\"restricted_roles\":[],\"template_variables\":[{\"available_values\":[\"my-host\",\"host1\",\"host2\"],\"defaults\":[\"\"],\"name\":\"host1\",\"prefix\":\"host\"}],\"title\":\"\",\"widgets\":[{\"definition\":{\"requests\":{\"fill\":{\"q\":\"avg:system.cpu.user{*}\"}},\"type\":\"hostmap\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Minimum length of parameter 'defaults' should be 1\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Mon, 12 Sep 2022 20:05:50 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-template-variable-presets-using-values-and-value-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-template-variable-presets-using-values-and-value-returns-Bad-Request-response.json index 11daca995..6b7484e2a 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-template-variable-presets-using-values-and-value-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-template-variable-presets-using-values-and-value-returns-Bad-Request-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":null,\"is_read_only\":false,\"layout_type\":\"ordered\",\"notify_list\":[],\"reflow_type\":\"auto\",\"restricted_roles\":[],\"template_variable_presets\":[{\"name\":\"my saved view\",\"template_variables\":[{\"name\":\"datacenter\",\"value\":\"*\",\"values\":[\"*\"]}]}],\"template_variables\":[{\"available_values\":[\"my-host\",\"host1\",\"host2\"],\"defaults\":[\"my-host\"],\"name\":\"host1\",\"prefix\":\"host\"}],\"title\":\"\",\"widgets\":[{\"definition\":{\"requests\":{\"fill\":{\"q\":\"avg:system.cpu.user{*}\"}},\"type\":\"hostmap\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"errors\":[\"'template_variables' value '{u'values': [u'*'], u'name': u'datacenter', u'value': u'*'}' is invalid\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Wed, 14 Sep 2022 15:56:53 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":null,\"is_read_only\":false,\"layout_type\":\"ordered\",\"notify_list\":[],\"reflow_type\":\"auto\",\"restricted_roles\":[],\"template_variable_presets\":[{\"name\":\"my saved view\",\"template_variables\":[{\"name\":\"datacenter\",\"value\":\"*\",\"values\":[\"*\"]}]}],\"template_variables\":[{\"available_values\":[\"my-host\",\"host1\",\"host2\"],\"defaults\":[\"my-host\"],\"name\":\"host1\",\"prefix\":\"host\"}],\"title\":\"\",\"widgets\":[{\"definition\":{\"requests\":{\"fill\":{\"q\":\"avg:system.cpu.user{*}\"}},\"type\":\"hostmap\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"errors\":[\"'template_variables' value '{u'values': [u'*'], u'name': u'datacenter', u'value': u'*'}' is invalid\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Wed, 14 Sep 2022 15:56:53 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-template-variable-presets-using-values-returns-OK-response.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-template-variable-presets-using-values-returns-OK-response.json index 28b539bd1..7f0373f19 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-template-variable-presets-using-values-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-template-variable-presets-using-values-returns-OK-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":null,\"is_read_only\":false,\"layout_type\":\"ordered\",\"notify_list\":[],\"reflow_type\":\"auto\",\"restricted_roles\":[],\"template_variable_presets\":[{\"name\":\"my saved view\",\"template_variables\":[{\"name\":\"datacenter\",\"values\":[\"*\",\"my-host\"]}]}],\"template_variables\":[{\"available_values\":[\"my-host\",\"host1\",\"host2\"],\"defaults\":[\"my-host\"],\"name\":\"host1\",\"prefix\":\"host\"}],\"title\":\"\",\"widgets\":[{\"definition\":{\"requests\":{\"fill\":{\"q\":\"avg:system.cpu.user{*}\"}},\"type\":\"hostmap\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"id\":\"y9d-w7h-s59\",\"title\":\"\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/y9d-w7h-s59/\",\"is_read_only\":false,\"template_variables\":[{\"available_values\":[\"my-host\",\"host1\",\"host2\"],\"defaults\":[\"my-host\"],\"name\":\"host1\",\"prefix\":\"host\"}],\"widgets\":[{\"definition\":{\"requests\":{\"fill\":{\"q\":\"avg:system.cpu.user{*}\"}},\"type\":\"hostmap\"},\"id\":3953978643250660}],\"notify_list\":[],\"created_at\":\"2023-02-16T21:40:06.587858+00:00\",\"modified_at\":\"2023-02-16T21:40:06.587858+00:00\",\"template_variable_presets\":[{\"name\":\"my saved view\",\"template_variables\":[{\"name\":\"datacenter\",\"values\":[\"*\",\"my-host\"]}]}],\"reflow_type\":\"auto\",\"restricted_roles\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 16 Feb 2023 21:40:06 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/y9d-w7h-s59"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"y9d-w7h-s59\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 16 Feb 2023 21:40:06 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":null,\"is_read_only\":false,\"layout_type\":\"ordered\",\"notify_list\":[],\"reflow_type\":\"auto\",\"restricted_roles\":[],\"template_variable_presets\":[{\"name\":\"my saved view\",\"template_variables\":[{\"name\":\"datacenter\",\"values\":[\"*\",\"my-host\"]}]}],\"template_variables\":[{\"available_values\":[\"my-host\",\"host1\",\"host2\"],\"defaults\":[\"my-host\"],\"name\":\"host1\",\"prefix\":\"host\"}],\"title\":\"\",\"widgets\":[{\"definition\":{\"requests\":{\"fill\":{\"q\":\"avg:system.cpu.user{*}\"}},\"type\":\"hostmap\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"id\":\"y9d-w7h-s59\",\"title\":\"\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/y9d-w7h-s59/\",\"is_read_only\":false,\"template_variables\":[{\"available_values\":[\"my-host\",\"host1\",\"host2\"],\"defaults\":[\"my-host\"],\"name\":\"host1\",\"prefix\":\"host\"}],\"widgets\":[{\"definition\":{\"requests\":{\"fill\":{\"q\":\"avg:system.cpu.user{*}\"}},\"type\":\"hostmap\"},\"id\":3953978643250660}],\"notify_list\":[],\"created_at\":\"2023-02-16T21:40:06.587858+00:00\",\"modified_at\":\"2023-02-16T21:40:06.587858+00:00\",\"template_variable_presets\":[{\"name\":\"my saved view\",\"template_variables\":[{\"name\":\"datacenter\",\"values\":[\"*\",\"my-host\"]}]}],\"reflow_type\":\"auto\",\"restricted_roles\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 16 Feb 2023 21:40:06 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/y9d-w7h-s59" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"y9d-w7h-s59\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 16 Feb 2023 21:40:06 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-template-variable-presets-using-values-with-no-length-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-template-variable-presets-using-values-with-no-length-returns-Bad-Request-response.json index bd99358cd..6afd474d0 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-template-variable-presets-using-values-with-no-length-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-template-variable-presets-using-values-with-no-length-returns-Bad-Request-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":null,\"is_read_only\":false,\"layout_type\":\"ordered\",\"notify_list\":[],\"reflow_type\":\"auto\",\"restricted_roles\":[],\"template_variable_presets\":[{\"name\":\"my saved view\",\"template_variables\":[{\"name\":\"datacenter\",\"values\":[]}]}],\"template_variables\":[{\"available_values\":[\"my-host\",\"host1\",\"host2\"],\"defaults\":[\"my-host\"],\"name\":\"host1\",\"prefix\":\"host\"}],\"title\":\"\",\"widgets\":[{\"definition\":{\"requests\":{\"fill\":{\"q\":\"avg:system.cpu.user{*}\"}},\"type\":\"hostmap\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"errors\":[\"Minimum number of elements in parameter 'values' should be 1\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Wed, 14 Sep 2022 16:53:46 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":null,\"is_read_only\":false,\"layout_type\":\"ordered\",\"notify_list\":[],\"reflow_type\":\"auto\",\"restricted_roles\":[],\"template_variable_presets\":[{\"name\":\"my saved view\",\"template_variables\":[{\"name\":\"datacenter\",\"values\":[]}]}],\"template_variables\":[{\"available_values\":[\"my-host\",\"host1\",\"host2\"],\"defaults\":[\"my-host\"],\"name\":\"host1\",\"prefix\":\"host\"}],\"title\":\"\",\"widgets\":[{\"definition\":{\"requests\":{\"fill\":{\"q\":\"avg:system.cpu.user{*}\"}},\"type\":\"hostmap\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Minimum number of elements in parameter 'values' should be 1\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Wed, 14 Sep 2022 16:53:46 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-timeseries-widget-and-formula-style-attributes.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-timeseries-widget-and-formula-style-attributes.json index 38b325764..a4f4b1a27 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-timeseries-widget-and-formula-style-attributes.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-timeseries-widget-and-formula-style-attributes.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"reflow_type\":\"auto\",\"title\":\"Test-Create_a_new_dashboard_with_timeseries_widget_and_formula_style_attributes-1670951590 with formula style\",\"widgets\":[{\"definition\":{\"legend_columns\":[\"avg\",\"min\",\"max\",\"value\",\"sum\"],\"legend_layout\":\"auto\",\"requests\":[{\"display_type\":\"line\",\"formulas\":[{\"formula\":\"query1\",\"style\":{\"palette\":\"classic\",\"palette_index\":4}}],\"queries\":[{\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*}\"}],\"response_format\":\"timeseries\",\"style\":{\"line_type\":\"solid\",\"line_width\":\"normal\",\"palette\":\"dog_classic\"}}],\"show_legend\":true,\"time\":{},\"title\":\"styled timeseries\",\"type\":\"timeseries\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"k2c-ici-a4c\",\"title\":\"Test-Create_a_new_dashboard_with_timeseries_widget_and_formula_style_attributes-1670951590 with formula style\",\"url\":\"/dashboard/k2c-ici-a4c/test-createanewdashboardwithtimeserieswidgetandformulastyleattributes-1670951590\",\"created_at\":\"2022-12-13T17:13:10.630153+00:00\",\"modified_at\":\"2022-12-13T17:13:10.630153+00:00\",\"reflow_type\":\"auto\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"legend_columns\":[\"avg\",\"min\",\"max\",\"value\",\"sum\"],\"title\":\"styled timeseries\",\"legend_layout\":\"auto\",\"show_legend\":true,\"time\":{},\"requests\":[{\"formulas\":[{\"formula\":\"query1\",\"style\":{\"palette_index\":4,\"palette\":\"classic\"}}],\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\",\"response_format\":\"timeseries\",\"queries\":[{\"query\":\"avg:system.cpu.user{*}\",\"data_source\":\"metrics\",\"name\":\"query1\"}]}],\"type\":\"timeseries\"},\"id\":5980026334932933}],\"layout_type\":\"ordered\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 13 Dec 2022 17:13:10 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/k2c-ici-a4c"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"k2c-ici-a4c\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 13 Dec 2022 17:13:10 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"reflow_type\":\"auto\",\"title\":\"Test-Create_a_new_dashboard_with_timeseries_widget_and_formula_style_attributes-1670951590 with formula style\",\"widgets\":[{\"definition\":{\"legend_columns\":[\"avg\",\"min\",\"max\",\"value\",\"sum\"],\"legend_layout\":\"auto\",\"requests\":[{\"display_type\":\"line\",\"formulas\":[{\"formula\":\"query1\",\"style\":{\"palette\":\"classic\",\"palette_index\":4}}],\"queries\":[{\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*}\"}],\"response_format\":\"timeseries\",\"style\":{\"line_type\":\"solid\",\"line_width\":\"normal\",\"palette\":\"dog_classic\"}}],\"show_legend\":true,\"time\":{},\"title\":\"styled timeseries\",\"type\":\"timeseries\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"k2c-ici-a4c\",\"title\":\"Test-Create_a_new_dashboard_with_timeseries_widget_and_formula_style_attributes-1670951590 with formula style\",\"url\":\"/dashboard/k2c-ici-a4c/test-createanewdashboardwithtimeserieswidgetandformulastyleattributes-1670951590\",\"created_at\":\"2022-12-13T17:13:10.630153+00:00\",\"modified_at\":\"2022-12-13T17:13:10.630153+00:00\",\"reflow_type\":\"auto\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"legend_columns\":[\"avg\",\"min\",\"max\",\"value\",\"sum\"],\"title\":\"styled timeseries\",\"legend_layout\":\"auto\",\"show_legend\":true,\"time\":{},\"requests\":[{\"formulas\":[{\"formula\":\"query1\",\"style\":{\"palette_index\":4,\"palette\":\"classic\"}}],\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\",\"response_format\":\"timeseries\",\"queries\":[{\"query\":\"avg:system.cpu.user{*}\",\"data_source\":\"metrics\",\"name\":\"query1\"}]}],\"type\":\"timeseries\"},\"id\":5980026334932933}],\"layout_type\":\"ordered\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 13 Dec 2022 17:13:10 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/k2c-ici-a4c" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"k2c-ici-a4c\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 13 Dec 2022 17:13:10 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-timeseries-widget-containing-style-attributes.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-timeseries-widget-containing-style-attributes.json index bf91d9a79..8b7a2c3e2 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-timeseries-widget-containing-style-attributes.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-timeseries-widget-containing-style-attributes.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_timeseries_widget_containing_style_attributes-1641430241 with timeseries widget\",\"widgets\":[{\"definition\":{\"requests\":[{\"display_type\":\"bars\",\"on_right_yaxis\":false,\"q\":\"sum:trace.test.errors{env:prod,service:datadog-api-spec} by {resource_name}.as_count()\",\"style\":{\"line_type\":\"solid\",\"line_width\":\"normal\",\"palette\":\"warm\"}}],\"type\":\"timeseries\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"asn-82x-2q5\",\"title\":\"Test-Create_a_new_dashboard_with_timeseries_widget_containing_style_attributes-1641430241 with timeseries widget\",\"url\":\"/dashboard/asn-82x-2q5/test-createanewdashboardwithtimeserieswidgetcontainingstyleattributes-1641430241\",\"created_at\":\"2022-01-06T00:50:41.722113+00:00\",\"modified_at\":\"2022-01-06T00:50:41.722113+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"q\":\"sum:trace.test.errors{env:prod,service:datadog-api-spec} by {resource_name}.as_count()\",\"on_right_yaxis\":false,\"style\":{\"line_width\":\"normal\",\"palette\":\"warm\",\"line_type\":\"solid\"},\"display_type\":\"bars\"}],\"type\":\"timeseries\"},\"id\":8478940066341905}],\"layout_type\":\"ordered\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:41 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/asn-82x-2q5"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"asn-82x-2q5\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:41 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_timeseries_widget_containing_style_attributes-1641430241 with timeseries widget\",\"widgets\":[{\"definition\":{\"requests\":[{\"display_type\":\"bars\",\"on_right_yaxis\":false,\"q\":\"sum:trace.test.errors{env:prod,service:datadog-api-spec} by {resource_name}.as_count()\",\"style\":{\"line_type\":\"solid\",\"line_width\":\"normal\",\"palette\":\"warm\"}}],\"type\":\"timeseries\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"asn-82x-2q5\",\"title\":\"Test-Create_a_new_dashboard_with_timeseries_widget_containing_style_attributes-1641430241 with timeseries widget\",\"url\":\"/dashboard/asn-82x-2q5/test-createanewdashboardwithtimeserieswidgetcontainingstyleattributes-1641430241\",\"created_at\":\"2022-01-06T00:50:41.722113+00:00\",\"modified_at\":\"2022-01-06T00:50:41.722113+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"q\":\"sum:trace.test.errors{env:prod,service:datadog-api-spec} by {resource_name}.as_count()\",\"on_right_yaxis\":false,\"style\":{\"line_width\":\"normal\",\"palette\":\"warm\",\"line_type\":\"solid\"},\"display_type\":\"bars\"}],\"type\":\"timeseries\"},\"id\":8478940066341905}],\"layout_type\":\"ordered\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:41 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/asn-82x-2q5" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"asn-82x-2q5\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:41 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-toplist-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-toplist-widget.json index b76d4d25a..8b8f56547 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-toplist-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-toplist-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_toplist_widget-1698307798\",\"widgets\":[{\"definition\":{\"requests\":[{\"formulas\":[{\"formula\":\"query1\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"queries\":[{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*} by {service}\"}],\"response_format\":\"scalar\"}],\"style\":{\"display\":{\"legend\":\"inline\",\"type\":\"stacked\"},\"scaling\":\"relative\"},\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"toplist\"},\"layout\":{\"height\":15,\"width\":47,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"id\":\"bw8-fjj-cai\",\"title\":\"Test-Create_a_new_dashboard_with_toplist_widget-1698307798\",\"description\":\"\",\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"free\",\"url\":\"/dashboard/bw8-fjj-cai/test-createanewdashboardwithtoplistwidget-1698307798\",\"is_read_only\":false,\"template_variables\":[],\"widgets\":[{\"definition\":{\"requests\":[{\"formulas\":[{\"formula\":\"query1\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"queries\":[{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*} by {service}\"}],\"response_format\":\"scalar\"}],\"style\":{\"display\":{\"legend\":\"inline\",\"type\":\"stacked\"},\"scaling\":\"relative\"},\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"toplist\"},\"layout\":{\"height\":15,\"width\":47,\"x\":0,\"y\":0},\"id\":7690286767696538}],\"notify_list\":[],\"created_at\":\"2023-10-26T08:09:59.495981+00:00\",\"modified_at\":\"2023-10-26T08:09:59.495981+00:00\",\"restricted_roles\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 26 Oct 2023 08:09:58 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/bw8-fjj-cai"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"bw8-fjj-cai\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 26 Oct 2023 08:09:58 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_toplist_widget-1698307798\",\"widgets\":[{\"definition\":{\"requests\":[{\"formulas\":[{\"formula\":\"query1\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"queries\":[{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*} by {service}\"}],\"response_format\":\"scalar\"}],\"style\":{\"display\":{\"legend\":\"inline\",\"type\":\"stacked\"},\"scaling\":\"relative\"},\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"toplist\"},\"layout\":{\"height\":15,\"width\":47,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"id\":\"bw8-fjj-cai\",\"title\":\"Test-Create_a_new_dashboard_with_toplist_widget-1698307798\",\"description\":\"\",\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"free\",\"url\":\"/dashboard/bw8-fjj-cai/test-createanewdashboardwithtoplistwidget-1698307798\",\"is_read_only\":false,\"template_variables\":[],\"widgets\":[{\"definition\":{\"requests\":[{\"formulas\":[{\"formula\":\"query1\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"queries\":[{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*} by {service}\"}],\"response_format\":\"scalar\"}],\"style\":{\"display\":{\"legend\":\"inline\",\"type\":\"stacked\"},\"scaling\":\"relative\"},\"time\":{},\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"toplist\"},\"layout\":{\"height\":15,\"width\":47,\"x\":0,\"y\":0},\"id\":7690286767696538}],\"notify_list\":[],\"created_at\":\"2023-10-26T08:09:59.495981+00:00\",\"modified_at\":\"2023-10-26T08:09:59.495981+00:00\",\"restricted_roles\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 26 Oct 2023 08:09:58 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/bw8-fjj-cai" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"bw8-fjj-cai\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 26 Oct 2023 08:09:58 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-topology-map-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-topology-map-widget.json index 971d11ed7..bf193847b 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-topology-map-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-topology-map-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_topology_map_widget-1662995765\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"data_source\":\"service_map\",\"filters\":[\"env:none\",\"environment:*\"],\"service\":\"\"},\"request_type\":\"topology\"}],\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"topology_map\"},\"layout\":{\"height\":15,\"width\":47,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"8mx-5gx-wjm\",\"title\":\"Test-Create_a_new_dashboard_with_topology_map_widget-1662995765\",\"url\":\"/dashboard/8mx-5gx-wjm/test-createanewdashboardwithtopologymapwidget-1662995765\",\"created_at\":\"2022-09-12T15:16:06.040625+00:00\",\"modified_at\":\"2022-09-12T15:16:06.040625+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"type\":\"topology_map\",\"requests\":[{\"query\":{\"data_source\":\"service_map\",\"service\":\"\",\"filters\":[\"env:none\",\"environment:*\"]},\"request_type\":\"topology\"}],\"title_align\":\"left\",\"title_size\":\"16\",\"title\":\"\"},\"layout\":{\"y\":0,\"width\":47,\"x\":0,\"height\":15},\"id\":1383483616434400}],\"layout_type\":\"free\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 12 Sep 2022 15:16:05 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/8mx-5gx-wjm"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"8mx-5gx-wjm\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 12 Sep 2022 15:16:05 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_topology_map_widget-1662995765\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"data_source\":\"service_map\",\"filters\":[\"env:none\",\"environment:*\"],\"service\":\"\"},\"request_type\":\"topology\"}],\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"topology_map\"},\"layout\":{\"height\":15,\"width\":47,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"8mx-5gx-wjm\",\"title\":\"Test-Create_a_new_dashboard_with_topology_map_widget-1662995765\",\"url\":\"/dashboard/8mx-5gx-wjm/test-createanewdashboardwithtopologymapwidget-1662995765\",\"created_at\":\"2022-09-12T15:16:06.040625+00:00\",\"modified_at\":\"2022-09-12T15:16:06.040625+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"type\":\"topology_map\",\"requests\":[{\"query\":{\"data_source\":\"service_map\",\"service\":\"\",\"filters\":[\"env:none\",\"environment:*\"]},\"request_type\":\"topology\"}],\"title_align\":\"left\",\"title_size\":\"16\",\"title\":\"\"},\"layout\":{\"y\":0,\"width\":47,\"x\":0,\"height\":15},\"id\":1383483616434400}],\"layout_type\":\"free\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 12 Sep 2022 15:16:05 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/8mx-5gx-wjm" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"8mx-5gx-wjm\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 12 Sep 2022 15:16:05 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-trace-service-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-trace-service-widget.json index dda0f7ce0..ce7c4831f 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-trace-service-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-trace-service-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_trace_service_widget-1641430242\",\"widgets\":[{\"definition\":{\"display_format\":\"two_column\",\"env\":\"none\",\"service\":\"\",\"show_breakdown\":true,\"show_distribution\":true,\"show_errors\":true,\"show_hits\":true,\"show_latency\":true,\"show_resource_list\":false,\"size_format\":\"medium\",\"span_name\":\"\",\"time\":{},\"title\":\"Service Summary\",\"type\":\"trace_service\"},\"layout\":{\"height\":72,\"width\":72,\"x\":0,\"y\":0}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"y2w-4ed-wj5\",\"title\":\"Test-Create_a_new_dashboard_with_trace_service_widget-1641430242\",\"url\":\"/dashboard/y2w-4ed-wj5/test-createanewdashboardwithtraceservicewidget-1641430242\",\"created_at\":\"2022-01-06T00:50:42.720557+00:00\",\"modified_at\":\"2022-01-06T00:50:42.720557+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"span_name\":\"\",\"type\":\"trace_service\",\"service\":\"\",\"title\":\"Service Summary\",\"size_format\":\"medium\",\"show_hits\":true,\"show_errors\":true,\"show_breakdown\":true,\"env\":\"none\",\"time\":{},\"show_distribution\":true,\"display_format\":\"two_column\",\"show_latency\":true,\"show_resource_list\":false},\"layout\":{\"y\":0,\"width\":72,\"x\":0,\"height\":72},\"id\":8414814446486210}],\"layout_type\":\"free\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:42 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/y2w-4ed-wj5"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"y2w-4ed-wj5\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:42 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":\"\",\"is_read_only\":false,\"layout_type\":\"free\",\"notify_list\":[],\"template_variables\":[],\"title\":\"Test-Create_a_new_dashboard_with_trace_service_widget-1641430242\",\"widgets\":[{\"definition\":{\"display_format\":\"two_column\",\"env\":\"none\",\"service\":\"\",\"show_breakdown\":true,\"show_distribution\":true,\"show_errors\":true,\"show_hits\":true,\"show_latency\":true,\"show_resource_list\":false,\"size_format\":\"medium\",\"span_name\":\"\",\"time\":{},\"title\":\"Service Summary\",\"type\":\"trace_service\"},\"layout\":{\"height\":72,\"width\":72,\"x\":0,\"y\":0}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":[],\"description\":\"\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":[],\"is_read_only\":false,\"id\":\"y2w-4ed-wj5\",\"title\":\"Test-Create_a_new_dashboard_with_trace_service_widget-1641430242\",\"url\":\"/dashboard/y2w-4ed-wj5/test-createanewdashboardwithtraceservicewidget-1641430242\",\"created_at\":\"2022-01-06T00:50:42.720557+00:00\",\"modified_at\":\"2022-01-06T00:50:42.720557+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"span_name\":\"\",\"type\":\"trace_service\",\"service\":\"\",\"title\":\"Service Summary\",\"size_format\":\"medium\",\"show_hits\":true,\"show_errors\":true,\"show_breakdown\":true,\"env\":\"none\",\"time\":{},\"show_distribution\":true,\"display_format\":\"two_column\",\"show_latency\":true,\"show_resource_list\":false},\"layout\":{\"y\":0,\"width\":72,\"x\":0,\"height\":72},\"id\":8414814446486210}],\"layout_type\":\"free\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:42 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/y2w-4ed-wj5" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"y2w-4ed-wj5\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:42 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-trace-stream-widget.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-trace-stream-widget.json index 96571c06c..dcf0756e5 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-trace-stream-widget.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-trace-stream-widget.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_trace_stream_widget-1649669586 with list_stream widget\",\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"},{\"field\":\"service\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"trace_stream\",\"query_string\":\"\"},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"hq5-hih-hbv\",\"title\":\"Test-Create_a_new_dashboard_with_trace_stream_widget-1649669586 with list_stream widget\",\"url\":\"/dashboard/hq5-hih-hbv/test-createanewdashboardwithtracestreamwidget-1649669586-with-liststream-widget\",\"created_at\":\"2022-04-11T09:33:06.331374+00:00\",\"modified_at\":\"2022-04-11T09:33:06.331374+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"query_string\":\"\",\"data_source\":\"trace_stream\"},\"response_format\":\"event_list\",\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"},{\"field\":\"service\",\"width\":\"auto\"}]}],\"type\":\"list_stream\"},\"id\":6190567117163115}],\"layout_type\":\"ordered\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 11 Apr 2022 09:33:06 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/hq5-hih-hbv"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"hq5-hih-hbv\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 11 Apr 2022 09:33:06 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_trace_stream_widget-1649669586 with list_stream widget\",\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"},{\"field\":\"service\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"trace_stream\",\"query_string\":\"\"},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"hq5-hih-hbv\",\"title\":\"Test-Create_a_new_dashboard_with_trace_stream_widget-1649669586 with list_stream widget\",\"url\":\"/dashboard/hq5-hih-hbv/test-createanewdashboardwithtracestreamwidget-1649669586-with-liststream-widget\",\"created_at\":\"2022-04-11T09:33:06.331374+00:00\",\"modified_at\":\"2022-04-11T09:33:06.331374+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"query_string\":\"\",\"data_source\":\"trace_stream\"},\"response_format\":\"event_list\",\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"},{\"field\":\"service\",\"width\":\"auto\"}]}],\"type\":\"list_stream\"},\"id\":6190567117163115}],\"layout_type\":\"ordered\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 11 Apr 2022 09:33:06 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/hq5-hih-hbv" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"hq5-hih-hbv\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 11 Apr 2022 09:33:06 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-timeseries-widget-with-ci-pipelines-data-source.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-timeseries-widget-with-ci-pipelines-data-source.json index 752231f88..c051c3fdd 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-timeseries-widget-with-ci-pipelines-data-source.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-timeseries-widget-with-ci-pipelines-data-source.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"reflow_type\":\"auto\",\"title\":\"Test-Create_a_new_timeseries_widget_with_ci_pipelines_data_source-1677771676 with ci_pipelines datasource\",\"widgets\":[{\"definition\":{\"legend_columns\":[\"avg\",\"min\",\"max\",\"value\",\"sum\"],\"legend_layout\":\"auto\",\"requests\":[{\"display_type\":\"line\",\"formulas\":[{\"formula\":\"query1\"}],\"queries\":[{\"compute\":{\"aggregation\":\"count\",\"metric\":\"@ci.queue_time\"},\"data_source\":\"ci_pipelines\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query1\",\"search\":{\"query\":\"ci_level:job\"}}],\"response_format\":\"timeseries\",\"style\":{\"line_type\":\"solid\",\"line_width\":\"normal\",\"palette\":\"dog_classic\"}}],\"show_legend\":true,\"time\":{},\"title\":\"\",\"type\":\"timeseries\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"id\":\"iu9-viw-buz\",\"title\":\"Test-Create_a_new_timeseries_widget_with_ci_pipelines_data_source-1677771676 with ci_pipelines datasource\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/iu9-viw-buz/test-createanewtimeserieswidgetwithcipipelinesdatasource-1677771676-with-cipipel\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"legend_columns\":[\"avg\",\"min\",\"max\",\"value\",\"sum\"],\"legend_layout\":\"auto\",\"requests\":[{\"display_type\":\"line\",\"formulas\":[{\"formula\":\"query1\"}],\"queries\":[{\"compute\":{\"aggregation\":\"count\",\"metric\":\"@ci.queue_time\"},\"data_source\":\"ci_pipelines\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query1\",\"search\":{\"query\":\"ci_level:job\"}}],\"response_format\":\"timeseries\",\"style\":{\"line_type\":\"solid\",\"line_width\":\"normal\",\"palette\":\"dog_classic\"}}],\"show_legend\":true,\"time\":{},\"title\":\"\",\"type\":\"timeseries\"},\"id\":2105687409669278}],\"notify_list\":null,\"created_at\":\"2023-03-02T15:41:16.697612+00:00\",\"modified_at\":\"2023-03-02T15:41:16.697612+00:00\",\"reflow_type\":\"auto\",\"restricted_roles\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 02 Mar 2023 15:41:16 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/iu9-viw-buz"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"iu9-viw-buz\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 02 Mar 2023 15:41:16 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"reflow_type\":\"auto\",\"title\":\"Test-Create_a_new_timeseries_widget_with_ci_pipelines_data_source-1677771676 with ci_pipelines datasource\",\"widgets\":[{\"definition\":{\"legend_columns\":[\"avg\",\"min\",\"max\",\"value\",\"sum\"],\"legend_layout\":\"auto\",\"requests\":[{\"display_type\":\"line\",\"formulas\":[{\"formula\":\"query1\"}],\"queries\":[{\"compute\":{\"aggregation\":\"count\",\"metric\":\"@ci.queue_time\"},\"data_source\":\"ci_pipelines\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query1\",\"search\":{\"query\":\"ci_level:job\"}}],\"response_format\":\"timeseries\",\"style\":{\"line_type\":\"solid\",\"line_width\":\"normal\",\"palette\":\"dog_classic\"}}],\"show_legend\":true,\"time\":{},\"title\":\"\",\"type\":\"timeseries\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"id\":\"iu9-viw-buz\",\"title\":\"Test-Create_a_new_timeseries_widget_with_ci_pipelines_data_source-1677771676 with ci_pipelines datasource\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/iu9-viw-buz/test-createanewtimeserieswidgetwithcipipelinesdatasource-1677771676-with-cipipel\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"legend_columns\":[\"avg\",\"min\",\"max\",\"value\",\"sum\"],\"legend_layout\":\"auto\",\"requests\":[{\"display_type\":\"line\",\"formulas\":[{\"formula\":\"query1\"}],\"queries\":[{\"compute\":{\"aggregation\":\"count\",\"metric\":\"@ci.queue_time\"},\"data_source\":\"ci_pipelines\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query1\",\"search\":{\"query\":\"ci_level:job\"}}],\"response_format\":\"timeseries\",\"style\":{\"line_type\":\"solid\",\"line_width\":\"normal\",\"palette\":\"dog_classic\"}}],\"show_legend\":true,\"time\":{},\"title\":\"\",\"type\":\"timeseries\"},\"id\":2105687409669278}],\"notify_list\":null,\"created_at\":\"2023-03-02T15:41:16.697612+00:00\",\"modified_at\":\"2023-03-02T15:41:16.697612+00:00\",\"reflow_type\":\"auto\",\"restricted_roles\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 02 Mar 2023 15:41:16 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/iu9-viw-buz" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"iu9-viw-buz\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 02 Mar 2023 15:41:16 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-timeseries-widget-with-ci-tests-data-source.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-timeseries-widget-with-ci-tests-data-source.json index 765b218b6..8698bfbc3 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-timeseries-widget-with-ci-tests-data-source.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-timeseries-widget-with-ci-tests-data-source.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"reflow_type\":\"auto\",\"title\":\"Test-Create_a_new_timeseries_widget_with_ci_tests_data_source-1661196676 with ci_tests datasource\",\"widgets\":[{\"definition\":{\"legend_columns\":[\"avg\",\"min\",\"max\",\"value\",\"sum\"],\"legend_layout\":\"auto\",\"requests\":[{\"display_type\":\"line\",\"formulas\":[{\"formula\":\"query1\"}],\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"ci_tests\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query1\",\"search\":{\"query\":\"test_level:test\"}}],\"response_format\":\"timeseries\",\"style\":{\"line_type\":\"solid\",\"line_width\":\"normal\",\"palette\":\"dog_classic\"}}],\"show_legend\":true,\"time\":{},\"title\":\"\",\"type\":\"timeseries\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"ykp-mnk-euu\",\"title\":\"Test-Create_a_new_timeseries_widget_with_ci_tests_data_source-1661196676 with ci_tests datasource\",\"url\":\"/dashboard/ykp-mnk-euu/test-createanewtimeserieswidgetwithcitestsdatasource-1661196676-with-citests-dat\",\"created_at\":\"2022-08-22T19:31:16.421905+00:00\",\"modified_at\":\"2022-08-22T19:31:16.421905+00:00\",\"reflow_type\":\"auto\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"legend_columns\":[\"avg\",\"min\",\"max\",\"value\",\"sum\"],\"title\":\"\",\"legend_layout\":\"auto\",\"show_legend\":true,\"time\":{},\"requests\":[{\"formulas\":[{\"formula\":\"query1\"}],\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\",\"response_format\":\"timeseries\",\"queries\":[{\"search\":{\"query\":\"test_level:test\"},\"data_source\":\"ci_tests\",\"compute\":{\"aggregation\":\"count\"},\"name\":\"query1\",\"indexes\":[\"*\"],\"group_by\":[]}]}],\"type\":\"timeseries\"},\"id\":5710436152334347}],\"layout_type\":\"ordered\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 22 Aug 2022 19:31:16 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/ykp-mnk-euu"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"ykp-mnk-euu\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 22 Aug 2022 19:31:16 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"reflow_type\":\"auto\",\"title\":\"Test-Create_a_new_timeseries_widget_with_ci_tests_data_source-1661196676 with ci_tests datasource\",\"widgets\":[{\"definition\":{\"legend_columns\":[\"avg\",\"min\",\"max\",\"value\",\"sum\"],\"legend_layout\":\"auto\",\"requests\":[{\"display_type\":\"line\",\"formulas\":[{\"formula\":\"query1\"}],\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"ci_tests\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query1\",\"search\":{\"query\":\"test_level:test\"}}],\"response_format\":\"timeseries\",\"style\":{\"line_type\":\"solid\",\"line_width\":\"normal\",\"palette\":\"dog_classic\"}}],\"show_legend\":true,\"time\":{},\"title\":\"\",\"type\":\"timeseries\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"ykp-mnk-euu\",\"title\":\"Test-Create_a_new_timeseries_widget_with_ci_tests_data_source-1661196676 with ci_tests datasource\",\"url\":\"/dashboard/ykp-mnk-euu/test-createanewtimeserieswidgetwithcitestsdatasource-1661196676-with-citests-dat\",\"created_at\":\"2022-08-22T19:31:16.421905+00:00\",\"modified_at\":\"2022-08-22T19:31:16.421905+00:00\",\"reflow_type\":\"auto\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"legend_columns\":[\"avg\",\"min\",\"max\",\"value\",\"sum\"],\"title\":\"\",\"legend_layout\":\"auto\",\"show_legend\":true,\"time\":{},\"requests\":[{\"formulas\":[{\"formula\":\"query1\"}],\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\",\"response_format\":\"timeseries\",\"queries\":[{\"search\":{\"query\":\"test_level:test\"},\"data_source\":\"ci_tests\",\"compute\":{\"aggregation\":\"count\"},\"name\":\"query1\",\"indexes\":[\"*\"],\"group_by\":[]}]}],\"type\":\"timeseries\"},\"id\":5710436152334347}],\"layout_type\":\"ordered\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 22 Aug 2022 19:31:16 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/ykp-mnk-euu" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"ykp-mnk-euu\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 22 Aug 2022 19:31:16 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-shared-dashboard-returns-Dashboard-Not-Found-response.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-shared-dashboard-returns-Dashboard-Not-Found-response.json index 7206d9770..f198a0330 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-shared-dashboard-returns-Dashboard-Not-Found-response.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-shared-dashboard-returns-Dashboard-Not-Found-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"dashboard_id\":\"abc-123-def\",\"dashboard_type\":\"custom_timeboard\",\"global_time\":{\"live_span\":\"1h\"},\"share_type\":\"open\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard/public"}, "response": {"body": {"string": "{\"errors\":[\"custom_timeboard abc-123-def not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Fri, 31 Mar 2023 21:01:49 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"dashboard_id\":\"abc-123-def\",\"dashboard_type\":\"custom_timeboard\",\"global_time\":{\"live_span\":\"1h\"},\"share_type\":\"open\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard/public" + }, + "response": { + "body": { + "string": "{\"errors\":[\"custom_timeboard abc-123-def not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Fri, 31 Mar 2023 21:01:49 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-shared-dashboard-returns-OK-response.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-shared-dashboard-returns-OK-response.json index bde8b5267..e31b7a2ea 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Create-a-shared-dashboard-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-shared-dashboard-returns-OK-response.json @@ -1 +1,129 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_shared_dashboard_returns_OK_response-1680296510 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"id\":\"ku9-p3f-2qu\",\"title\":\"Test-Create_a_shared_dashboard_returns_OK_response-1680296510 with Profile Metrics Query\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/ku9-p3f-2qu/test-createashareddashboardreturnsokresponse-1680296510-with-profile-metrics-que\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"},\"id\":1709388709940781}],\"notify_list\":null,\"created_at\":\"2023-03-31T21:01:50.263804+00:00\",\"modified_at\":\"2023-03-31T21:01:50.263804+00:00\",\"restricted_roles\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 31 Mar 2023 21:01:50 GMT"}, {"request": {"body": {"string": "{\"dashboard_id\":\"ku9-p3f-2qu\",\"dashboard_type\":\"custom_timeboard\",\"global_time\":{\"live_span\":\"1h\"},\"share_type\":\"open\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard/public"}, "response": {"body": {"string": "{\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"dashboard_id\":\"ku9-p3f-2qu\",\"dashboard_type\":\"custom_timeboard\",\"global_time_selectable_enabled\":false,\"global_time\":{\"live_span\":\"1h\"},\"selectable_template_vars\":null,\"token\":\"fasjyydbcgwwc2uc-078f138782b770a6d7512a925664fca3\",\"public_url\":\"https://p.datadoghq.com/sb/fasjyydbcgwwc2uc-078f138782b770a6d7512a925664fca3\",\"created\":\"2023-03-31T21:01:50.643308+00:00\",\"share_type\":\"open\",\"share_list\":null}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 31 Mar 2023 21:01:50 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/public/fasjyydbcgwwc2uc-078f138782b770a6d7512a925664fca3"}, "response": {"body": {"string": "{\"deleted_public_dashboard_token\":\"fasjyydbcgwwc2uc-078f138782b770a6d7512a925664fca3\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 31 Mar 2023 21:01:50 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/ku9-p3f-2qu"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"ku9-p3f-2qu\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 31 Mar 2023 21:01:50 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_shared_dashboard_returns_OK_response-1680296510 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"id\":\"ku9-p3f-2qu\",\"title\":\"Test-Create_a_shared_dashboard_returns_OK_response-1680296510 with Profile Metrics Query\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/ku9-p3f-2qu/test-createashareddashboardreturnsokresponse-1680296510-with-profile-metrics-que\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"},\"id\":1709388709940781}],\"notify_list\":null,\"created_at\":\"2023-03-31T21:01:50.263804+00:00\",\"modified_at\":\"2023-03-31T21:01:50.263804+00:00\",\"restricted_roles\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 31 Mar 2023 21:01:50 GMT" + }, + { + "request": { + "body": { + "string": "{\"dashboard_id\":\"ku9-p3f-2qu\",\"dashboard_type\":\"custom_timeboard\",\"global_time\":{\"live_span\":\"1h\"},\"share_type\":\"open\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard/public" + }, + "response": { + "body": { + "string": "{\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"dashboard_id\":\"ku9-p3f-2qu\",\"dashboard_type\":\"custom_timeboard\",\"global_time_selectable_enabled\":false,\"global_time\":{\"live_span\":\"1h\"},\"selectable_template_vars\":null,\"token\":\"fasjyydbcgwwc2uc-078f138782b770a6d7512a925664fca3\",\"public_url\":\"https://p.datadoghq.com/sb/fasjyydbcgwwc2uc-078f138782b770a6d7512a925664fca3\",\"created\":\"2023-03-31T21:01:50.643308+00:00\",\"share_type\":\"open\",\"share_list\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 31 Mar 2023 21:01:50 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/public/fasjyydbcgwwc2uc-078f138782b770a6d7512a925664fca3" + }, + "response": { + "body": { + "string": "{\"deleted_public_dashboard_token\":\"fasjyydbcgwwc2uc-078f138782b770a6d7512a925664fca3\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 31 Mar 2023 21:01:50 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/ku9-p3f-2qu" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"ku9-p3f-2qu\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 31 Mar 2023 21:01:50 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Delete-a-dashboard-returns-OK-response.json b/tests/scenarios/cassettes/v1/dashboards/Delete-a-dashboard-returns-OK-response.json index caa3bbf90..a3cd1d507 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Delete-a-dashboard-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/dashboards/Delete-a-dashboard-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Delete_a_dashboard_returns_OK_response-1645779299 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"sbs-4fb-9dc\",\"title\":\"Test-Delete_a_dashboard_returns_OK_response-1645779299 with Profile Metrics Query\",\"url\":\"/dashboard/sbs-4fb-9dc/test-deleteadashboardreturnsokresponse-1645779299-with-profile-metrics-query\",\"created_at\":\"2022-02-25T08:55:00.681383+00:00\",\"modified_at\":\"2022-02-25T08:55:00.681383+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"id\":7246585146253581}],\"layout_type\":\"ordered\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 25 Feb 2022 08:54:59 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/sbs-4fb-9dc"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"sbs-4fb-9dc\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 25 Feb 2022 08:54:59 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/sbs-4fb-9dc"}, "response": {"body": {"string": "{\"errors\": [\"Dashboard with ID sbs-4fb-9dc not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Fri, 25 Feb 2022 08:54:59 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Delete_a_dashboard_returns_OK_response-1645779299 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"sbs-4fb-9dc\",\"title\":\"Test-Delete_a_dashboard_returns_OK_response-1645779299 with Profile Metrics Query\",\"url\":\"/dashboard/sbs-4fb-9dc/test-deleteadashboardreturnsokresponse-1645779299-with-profile-metrics-query\",\"created_at\":\"2022-02-25T08:55:00.681383+00:00\",\"modified_at\":\"2022-02-25T08:55:00.681383+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"id\":7246585146253581}],\"layout_type\":\"ordered\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 25 Feb 2022 08:54:59 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/sbs-4fb-9dc" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"sbs-4fb-9dc\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 25 Feb 2022 08:54:59 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/sbs-4fb-9dc" + }, + "response": { + "body": { + "string": "{\"errors\": [\"Dashboard with ID sbs-4fb-9dc not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Fri, 25 Feb 2022 08:54:59 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Delete-dashboards-returns-No-Content-response.json b/tests/scenarios/cassettes/v1/dashboards/Delete-dashboards-returns-No-Content-response.json index aba409366..627cbacab 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Delete-dashboards-returns-No-Content-response.json +++ b/tests/scenarios/cassettes/v1/dashboards/Delete-dashboards-returns-No-Content-response.json @@ -1 +1,97 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Delete_dashboards_returns_No_Content_response-1652348989 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"u68-sze-n8e\",\"title\":\"Test-Delete_dashboards_returns_No_Content_response-1652348989 with Profile Metrics Query\",\"url\":\"/dashboard/u68-sze-n8e/test-deletedashboardsreturnsnocontentresponse-1652348989-with-profile-metrics-qu\",\"created_at\":\"2022-05-12T09:49:50.272678+00:00\",\"modified_at\":\"2022-05-12T09:49:50.272678+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"id\":6438161043980974}],\"layout_type\":\"ordered\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:49:49 GMT"}, {"request": {"body": {"string": "{\"data\":[{\"id\":\"u68-sze-n8e\",\"type\":\"dashboard\"}]}", "encoding": null}, "headers": {"Accept": ["*/*"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:49:49 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/u68-sze-n8e"}, "response": {"body": {"string": "{\"errors\": [\"Dashboard with ID u68-sze-n8e not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 12 May 2022 09:49:49 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Delete_dashboards_returns_No_Content_response-1652348989 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"u68-sze-n8e\",\"title\":\"Test-Delete_dashboards_returns_No_Content_response-1652348989 with Profile Metrics Query\",\"url\":\"/dashboard/u68-sze-n8e/test-deletedashboardsreturnsnocontentresponse-1652348989-with-profile-metrics-qu\",\"created_at\":\"2022-05-12T09:49:50.272678+00:00\",\"modified_at\":\"2022-05-12T09:49:50.272678+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"id\":6438161043980974}],\"layout_type\":\"ordered\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:49:49 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":[{\"id\":\"u68-sze-n8e\",\"type\":\"dashboard\"}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "*/*" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:49:49 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/u68-sze-n8e" + }, + "response": { + "body": { + "string": "{\"errors\": [\"Dashboard with ID u68-sze-n8e not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 12 May 2022 09:49:49 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Get-a-dashboard-returns-OK-response.json b/tests/scenarios/cassettes/v1/dashboards/Get-a-dashboard-returns-OK-response.json index 874804eba..bd304655b 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Get-a-dashboard-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/dashboards/Get-a-dashboard-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Get_a_dashboard_returns_OK_response-1645779308 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"u9q-fdh-vhp\",\"title\":\"Test-Get_a_dashboard_returns_OK_response-1645779308 with Profile Metrics Query\",\"url\":\"/dashboard/u9q-fdh-vhp/test-getadashboardreturnsokresponse-1645779308-with-profile-metrics-query\",\"created_at\":\"2022-02-25T08:55:09.197511+00:00\",\"modified_at\":\"2022-02-25T08:55:09.197511+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"id\":4650197596442225}],\"layout_type\":\"ordered\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 25 Feb 2022 08:55:08 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/dashboard/u9q-fdh-vhp"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"u9q-fdh-vhp\",\"title\":\"Test-Get_a_dashboard_returns_OK_response-1645779308 with Profile Metrics Query\",\"url\":\"/dashboard/u9q-fdh-vhp/test-getadashboardreturnsokresponse-1645779308-with-profile-metrics-query\",\"created_at\":\"2022-02-25T08:55:09.197511+00:00\",\"modified_at\":\"2022-02-25T08:55:09.197511+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"id\":4650197596442225}],\"layout_type\":\"ordered\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 25 Feb 2022 08:55:08 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/u9q-fdh-vhp"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"u9q-fdh-vhp\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 25 Feb 2022 08:55:08 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Get_a_dashboard_returns_OK_response-1645779308 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"u9q-fdh-vhp\",\"title\":\"Test-Get_a_dashboard_returns_OK_response-1645779308 with Profile Metrics Query\",\"url\":\"/dashboard/u9q-fdh-vhp/test-getadashboardreturnsokresponse-1645779308-with-profile-metrics-query\",\"created_at\":\"2022-02-25T08:55:09.197511+00:00\",\"modified_at\":\"2022-02-25T08:55:09.197511+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"id\":4650197596442225}],\"layout_type\":\"ordered\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 25 Feb 2022 08:55:08 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/dashboard/u9q-fdh-vhp" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"u9q-fdh-vhp\",\"title\":\"Test-Get_a_dashboard_returns_OK_response-1645779308 with Profile Metrics Query\",\"url\":\"/dashboard/u9q-fdh-vhp/test-getadashboardreturnsokresponse-1645779308-with-profile-metrics-query\",\"created_at\":\"2022-02-25T08:55:09.197511+00:00\",\"modified_at\":\"2022-02-25T08:55:09.197511+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"id\":4650197596442225}],\"layout_type\":\"ordered\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 25 Feb 2022 08:55:08 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/u9q-fdh-vhp" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"u9q-fdh-vhp\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 25 Feb 2022 08:55:08 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Get-a-dashboard-returns-author-name-.json b/tests/scenarios/cassettes/v1/dashboards/Get-a-dashboard-returns-author-name-.json index a643476a6..690ea0282 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Get-a-dashboard-returns-author-name-.json +++ b/tests/scenarios/cassettes/v1/dashboards/Get-a-dashboard-returns-author-name-.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Get_a_dashboard_returns_author_name_-1641832482 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":\"Frog Account\",\"template_variables\":null,\"is_read_only\":false,\"id\":\"mv9-uwu-9q8\",\"title\":\"Test-Get_a_dashboard_returns_author_name_-1641832482 with Profile Metrics Query\",\"url\":\"/dashboard/mv9-uwu-9q8/test-getadashboardreturnsauthorname-1641832482-with-profile-metrics-query\",\"created_at\":\"2022-01-10T16:34:43.398343+00:00\",\"modified_at\":\"2022-01-10T16:34:43.398343+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"id\":6229693273676339}],\"layout_type\":\"ordered\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 10 Jan 2022 16:34:42 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/dashboard/mv9-uwu-9q8"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":\"Frog Account\",\"template_variables\":null,\"is_read_only\":false,\"id\":\"mv9-uwu-9q8\",\"title\":\"Test-Get_a_dashboard_returns_author_name_-1641832482 with Profile Metrics Query\",\"url\":\"/dashboard/mv9-uwu-9q8/test-getadashboardreturnsauthorname-1641832482-with-profile-metrics-query\",\"created_at\":\"2022-01-10T16:34:43.398343+00:00\",\"modified_at\":\"2022-01-10T16:34:43.398343+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"id\":6229693273676339}],\"layout_type\":\"ordered\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 10 Jan 2022 16:34:42 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/mv9-uwu-9q8"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"mv9-uwu-9q8\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 10 Jan 2022 16:34:42 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Get_a_dashboard_returns_author_name_-1641832482 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":\"Frog Account\",\"template_variables\":null,\"is_read_only\":false,\"id\":\"mv9-uwu-9q8\",\"title\":\"Test-Get_a_dashboard_returns_author_name_-1641832482 with Profile Metrics Query\",\"url\":\"/dashboard/mv9-uwu-9q8/test-getadashboardreturnsauthorname-1641832482-with-profile-metrics-query\",\"created_at\":\"2022-01-10T16:34:43.398343+00:00\",\"modified_at\":\"2022-01-10T16:34:43.398343+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"id\":6229693273676339}],\"layout_type\":\"ordered\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 10 Jan 2022 16:34:42 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/dashboard/mv9-uwu-9q8" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":\"Frog Account\",\"template_variables\":null,\"is_read_only\":false,\"id\":\"mv9-uwu-9q8\",\"title\":\"Test-Get_a_dashboard_returns_author_name_-1641832482 with Profile Metrics Query\",\"url\":\"/dashboard/mv9-uwu-9q8/test-getadashboardreturnsauthorname-1641832482-with-profile-metrics-query\",\"created_at\":\"2022-01-10T16:34:43.398343+00:00\",\"modified_at\":\"2022-01-10T16:34:43.398343+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"id\":6229693273676339}],\"layout_type\":\"ordered\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 10 Jan 2022 16:34:42 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/mv9-uwu-9q8" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"mv9-uwu-9q8\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 10 Jan 2022 16:34:42 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Get-a-shared-dashboard-returns-OK-response.json b/tests/scenarios/cassettes/v1/dashboards/Get-a-shared-dashboard-returns-OK-response.json index 1a380529b..d5a97a180 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Get-a-shared-dashboard-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/dashboards/Get-a-shared-dashboard-returns-OK-response.json @@ -1 +1,157 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Get_a_shared_dashboard_returns_OK_response-1680884023 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"id\":\"zrc-p5j-6r5\",\"title\":\"Test-Get_a_shared_dashboard_returns_OK_response-1680884023 with Profile Metrics Query\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/zrc-p5j-6r5/test-getashareddashboardreturnsokresponse-1680884023-with-profile-metrics-query\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"},\"id\":1984776941235348}],\"notify_list\":null,\"created_at\":\"2023-04-07T16:13:43.596459+00:00\",\"modified_at\":\"2023-04-07T16:13:43.596459+00:00\",\"restricted_roles\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 07 Apr 2023 16:13:43 GMT"}, {"request": {"body": {"string": "{\"dashboard_id\":\"zrc-p5j-6r5\",\"dashboard_type\":\"custom_timeboard\",\"global_time\":{\"live_span\":\"1h\"},\"share_list\":[\"testgetashareddashboardreturnsokresponse1680884023@datadoghq.com\"],\"share_type\":\"invite\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard/public"}, "response": {"body": {"string": "{\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"dashboard_id\":\"zrc-p5j-6r5\",\"dashboard_type\":\"custom_timeboard\",\"global_time_selectable_enabled\":false,\"global_time\":{\"live_span\":\"1h\"},\"selectable_template_vars\":null,\"token\":\"fasjyydbcgwwc2uc-c4a0580ce838fc0e47144fc8808f5467\",\"public_url\":\"https://p.datadoghq.com/sb/fasjyydbcgwwc2uc-c4a0580ce838fc0e47144fc8808f5467\",\"created\":\"2023-04-07T16:13:44.162867+00:00\",\"share_type\":\"invite\",\"share_list\":[\"testgetashareddashboardreturnsokresponse1680884023@datadoghq.com\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 07 Apr 2023 16:13:43 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/dashboard/public/fasjyydbcgwwc2uc-c4a0580ce838fc0e47144fc8808f5467"}, "response": {"body": {"string": "{\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"dashboard_id\":\"zrc-p5j-6r5\",\"dashboard_type\":\"custom_timeboard\",\"global_time_selectable_enabled\":false,\"global_time\":{\"live_span\":\"1h\"},\"selectable_template_vars\":null,\"token\":\"fasjyydbcgwwc2uc-c4a0580ce838fc0e47144fc8808f5467\",\"public_url\":\"https://p.datadoghq.com/sb/fasjyydbcgwwc2uc-c4a0580ce838fc0e47144fc8808f5467\",\"created\":\"2023-04-07T16:13:44.162867+00:00\",\"share_type\":\"invite\",\"share_list\":[\"testgetashareddashboardreturnsokresponse1680884023@datadoghq.com\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 07 Apr 2023 16:13:43 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/public/fasjyydbcgwwc2uc-c4a0580ce838fc0e47144fc8808f5467"}, "response": {"body": {"string": "{\"deleted_public_dashboard_token\":\"fasjyydbcgwwc2uc-c4a0580ce838fc0e47144fc8808f5467\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 07 Apr 2023 16:13:43 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/zrc-p5j-6r5"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"zrc-p5j-6r5\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 07 Apr 2023 16:13:43 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Get_a_shared_dashboard_returns_OK_response-1680884023 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"id\":\"zrc-p5j-6r5\",\"title\":\"Test-Get_a_shared_dashboard_returns_OK_response-1680884023 with Profile Metrics Query\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/zrc-p5j-6r5/test-getashareddashboardreturnsokresponse-1680884023-with-profile-metrics-query\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"},\"id\":1984776941235348}],\"notify_list\":null,\"created_at\":\"2023-04-07T16:13:43.596459+00:00\",\"modified_at\":\"2023-04-07T16:13:43.596459+00:00\",\"restricted_roles\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 07 Apr 2023 16:13:43 GMT" + }, + { + "request": { + "body": { + "string": "{\"dashboard_id\":\"zrc-p5j-6r5\",\"dashboard_type\":\"custom_timeboard\",\"global_time\":{\"live_span\":\"1h\"},\"share_list\":[\"testgetashareddashboardreturnsokresponse1680884023@datadoghq.com\"],\"share_type\":\"invite\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard/public" + }, + "response": { + "body": { + "string": "{\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"dashboard_id\":\"zrc-p5j-6r5\",\"dashboard_type\":\"custom_timeboard\",\"global_time_selectable_enabled\":false,\"global_time\":{\"live_span\":\"1h\"},\"selectable_template_vars\":null,\"token\":\"fasjyydbcgwwc2uc-c4a0580ce838fc0e47144fc8808f5467\",\"public_url\":\"https://p.datadoghq.com/sb/fasjyydbcgwwc2uc-c4a0580ce838fc0e47144fc8808f5467\",\"created\":\"2023-04-07T16:13:44.162867+00:00\",\"share_type\":\"invite\",\"share_list\":[\"testgetashareddashboardreturnsokresponse1680884023@datadoghq.com\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 07 Apr 2023 16:13:43 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/dashboard/public/fasjyydbcgwwc2uc-c4a0580ce838fc0e47144fc8808f5467" + }, + "response": { + "body": { + "string": "{\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"dashboard_id\":\"zrc-p5j-6r5\",\"dashboard_type\":\"custom_timeboard\",\"global_time_selectable_enabled\":false,\"global_time\":{\"live_span\":\"1h\"},\"selectable_template_vars\":null,\"token\":\"fasjyydbcgwwc2uc-c4a0580ce838fc0e47144fc8808f5467\",\"public_url\":\"https://p.datadoghq.com/sb/fasjyydbcgwwc2uc-c4a0580ce838fc0e47144fc8808f5467\",\"created\":\"2023-04-07T16:13:44.162867+00:00\",\"share_type\":\"invite\",\"share_list\":[\"testgetashareddashboardreturnsokresponse1680884023@datadoghq.com\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 07 Apr 2023 16:13:43 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/public/fasjyydbcgwwc2uc-c4a0580ce838fc0e47144fc8808f5467" + }, + "response": { + "body": { + "string": "{\"deleted_public_dashboard_token\":\"fasjyydbcgwwc2uc-c4a0580ce838fc0e47144fc8808f5467\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 07 Apr 2023 16:13:43 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/zrc-p5j-6r5" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"zrc-p5j-6r5\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 07 Apr 2023 16:13:43 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Get-all-dashboards-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v1/dashboards/Get-all-dashboards-returns-OK-response-with-pagination.json index 344a29079..8e3d565ef 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Get-all-dashboards-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v1/dashboards/Get-all-dashboards-returns-OK-response-with-pagination.json @@ -1 +1,61 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/dashboard?count=2"}, "response": {"body": {"string": "{\"dashboards\":[{\"id\":\"5vp-fxm-s4j\",\"title\":\"PCF Testing\",\"description\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/5vp-fxm-s4j/pcf-testing\",\"is_read_only\":false,\"created_at\":\"2022-06-08T10:40:29.941695+00:00\",\"modified_at\":\"2023-07-27T12:26:28.359080+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"deleted_at\":null},{\"id\":\"ubf-m9i-gms\",\"title\":\"OpenStack Controller Overview\",\"description\":\"## OpenStack Controller - Overview\\n\\nPreset dashboard for the OpenStack Controller integration. Used for OpenStack deployments v13 and higher. \\n\\n[See integration docs for more details](https://docs.datadoghq.com/integrations/openstack_controller/)\",\"layout_type\":\"ordered\",\"url\":\"/dashboard/ubf-m9i-gms/openstack-controller-overview\",\"is_read_only\":false,\"created_at\":\"2023-04-28T19:16:35.964720+00:00\",\"modified_at\":\"2023-08-07T13:53:31.924789+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"deleted_at\":null}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 04 Sep 2023 12:26:51 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/dashboard?count=2&start=2"}, "response": {"body": {"string": "{\"dashboards\":[{\"id\":\"ja7-nhx-7zs\",\"title\":\"OpenStack Controller Overview [Default Microversion]\",\"description\":\"## OpenStack Controller - Overview\\n\\nPreset dashboard for the OpenStack Controller integration. Used for OpenStack deployments v13 and higher. \\n\\n[See integration docs for more details](https://docs.datadoghq.com/integrations/openstack_controller/)\",\"layout_type\":\"ordered\",\"url\":\"/dashboard/ja7-nhx-7zs/openstack-controller-overview-default-microversion\",\"is_read_only\":false,\"created_at\":\"2023-08-29T19:56:15.999851+00:00\",\"modified_at\":\"2023-08-29T20:12:33.385536+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"deleted_at\":null}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 04 Sep 2023 12:26:51 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/dashboard?count=2" + }, + "response": { + "body": { + "string": "{\"dashboards\":[{\"id\":\"5vp-fxm-s4j\",\"title\":\"PCF Testing\",\"description\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/5vp-fxm-s4j/pcf-testing\",\"is_read_only\":false,\"created_at\":\"2022-06-08T10:40:29.941695+00:00\",\"modified_at\":\"2023-07-27T12:26:28.359080+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"deleted_at\":null},{\"id\":\"ubf-m9i-gms\",\"title\":\"OpenStack Controller Overview\",\"description\":\"## OpenStack Controller - Overview\\n\\nPreset dashboard for the OpenStack Controller integration. Used for OpenStack deployments v13 and higher. \\n\\n[See integration docs for more details](https://docs.datadoghq.com/integrations/openstack_controller/)\",\"layout_type\":\"ordered\",\"url\":\"/dashboard/ubf-m9i-gms/openstack-controller-overview\",\"is_read_only\":false,\"created_at\":\"2023-04-28T19:16:35.964720+00:00\",\"modified_at\":\"2023-08-07T13:53:31.924789+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"deleted_at\":null}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 04 Sep 2023 12:26:51 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/dashboard?count=2&start=2" + }, + "response": { + "body": { + "string": "{\"dashboards\":[{\"id\":\"ja7-nhx-7zs\",\"title\":\"OpenStack Controller Overview [Default Microversion]\",\"description\":\"## OpenStack Controller - Overview\\n\\nPreset dashboard for the OpenStack Controller integration. Used for OpenStack deployments v13 and higher. \\n\\n[See integration docs for more details](https://docs.datadoghq.com/integrations/openstack_controller/)\",\"layout_type\":\"ordered\",\"url\":\"/dashboard/ja7-nhx-7zs/openstack-controller-overview-default-microversion\",\"is_read_only\":false,\"created_at\":\"2023-08-29T19:56:15.999851+00:00\",\"modified_at\":\"2023-08-29T20:12:33.385536+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"deleted_at\":null}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 04 Sep 2023 12:26:51 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Get-all-dashboards-returns-OK-response.json b/tests/scenarios/cassettes/v1/dashboards/Get-all-dashboards-returns-OK-response.json index eceb558b7..8fee92b19 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Get-all-dashboards-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/dashboards/Get-all-dashboards-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Get_all_dashboards_returns_OK_response-1676584070 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"id\":\"npw-6di-usv\",\"title\":\"Test-Get_all_dashboards_returns_OK_response-1676584070 with Profile Metrics Query\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/npw-6di-usv/test-getalldashboardsreturnsokresponse-1676584070-with-profile-metrics-query\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"},\"id\":687274237501398}],\"notify_list\":null,\"created_at\":\"2023-02-16T21:47:50.216943+00:00\",\"modified_at\":\"2023-02-16T21:47:50.216943+00:00\",\"restricted_roles\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 16 Feb 2023 21:47:50 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/dashboard?filter%5Bshared%5D=false"}, "response": {"body": {"string": "{\"dashboards\":[{\"id\":\"npw-6di-usv\",\"title\":\"Test-Get_all_dashboards_returns_OK_response-1676584070 with Profile Metrics Query\",\"description\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/npw-6di-usv/test-getalldashboardsreturnsokresponse-1676584070-with-profile-metrics-query\",\"is_read_only\":false,\"created_at\":\"2023-02-16T21:47:50.216943+00:00\",\"modified_at\":\"2023-02-16T21:47:50.216943+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"deleted_at\":null}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 16 Feb 2023 21:47:50 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/npw-6di-usv"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"npw-6di-usv\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 16 Feb 2023 21:47:50 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Get_all_dashboards_returns_OK_response-1676584070 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"id\":\"npw-6di-usv\",\"title\":\"Test-Get_all_dashboards_returns_OK_response-1676584070 with Profile Metrics Query\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/npw-6di-usv/test-getalldashboardsreturnsokresponse-1676584070-with-profile-metrics-query\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"},\"id\":687274237501398}],\"notify_list\":null,\"created_at\":\"2023-02-16T21:47:50.216943+00:00\",\"modified_at\":\"2023-02-16T21:47:50.216943+00:00\",\"restricted_roles\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 16 Feb 2023 21:47:50 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/dashboard?filter%5Bshared%5D=false" + }, + "response": { + "body": { + "string": "{\"dashboards\":[{\"id\":\"npw-6di-usv\",\"title\":\"Test-Get_all_dashboards_returns_OK_response-1676584070 with Profile Metrics Query\",\"description\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/npw-6di-usv/test-getalldashboardsreturnsokresponse-1676584070-with-profile-metrics-query\",\"is_read_only\":false,\"created_at\":\"2023-02-16T21:47:50.216943+00:00\",\"modified_at\":\"2023-02-16T21:47:50.216943+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"deleted_at\":null}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 16 Feb 2023 21:47:50 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/npw-6di-usv" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"npw-6di-usv\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 16 Feb 2023 21:47:50 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Get-all-invitations-for-a-shared-dashboard-returns-OK-response.json b/tests/scenarios/cassettes/v1/dashboards/Get-all-invitations-for-a-shared-dashboard-returns-OK-response.json index 0e574409b..bc970b7cb 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Get-all-invitations-for-a-shared-dashboard-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/dashboards/Get-all-invitations-for-a-shared-dashboard-returns-OK-response.json @@ -1 +1,157 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Get_all_invitations_for_a_shared_dashboard_returns_OK_response-1680884025 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"id\":\"ggv-zp5-2r8\",\"title\":\"Test-Get_all_invitations_for_a_shared_dashboard_returns_OK_response-1680884025 with Profile Metrics Query\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/ggv-zp5-2r8/test-getallinvitationsforashareddashboardreturnsokresponse-1680884025-with-profi\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"},\"id\":6124782451549434}],\"notify_list\":null,\"created_at\":\"2023-04-07T16:13:45.869264+00:00\",\"modified_at\":\"2023-04-07T16:13:45.869264+00:00\",\"restricted_roles\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 07 Apr 2023 16:13:45 GMT"}, {"request": {"body": {"string": "{\"dashboard_id\":\"ggv-zp5-2r8\",\"dashboard_type\":\"custom_timeboard\",\"global_time\":{\"live_span\":\"1h\"},\"share_list\":[\"testgetallinvitationsforashareddashboardreturnsokresponse1680884025@datadoghq.com\"],\"share_type\":\"invite\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard/public"}, "response": {"body": {"string": "{\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"dashboard_id\":\"ggv-zp5-2r8\",\"dashboard_type\":\"custom_timeboard\",\"global_time_selectable_enabled\":false,\"global_time\":{\"live_span\":\"1h\"},\"selectable_template_vars\":null,\"token\":\"fasjyydbcgwwc2uc-c1e0c122d13080aabd50aa3bbadfe6be\",\"public_url\":\"https://p.datadoghq.com/sb/fasjyydbcgwwc2uc-c1e0c122d13080aabd50aa3bbadfe6be\",\"created\":\"2023-04-07T16:13:46.433503+00:00\",\"share_type\":\"invite\",\"share_list\":[\"testgetallinvitationsforashareddashboardreturnsokresponse1680884025@datadoghq.com\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 07 Apr 2023 16:13:45 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/dashboard/public/fasjyydbcgwwc2uc-c1e0c122d13080aabd50aa3bbadfe6be/invitation"}, "response": {"body": {"string": "{\"data\":[],\"meta\":{\"page\":{\"total_count\":0}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 07 Apr 2023 16:13:45 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/public/fasjyydbcgwwc2uc-c1e0c122d13080aabd50aa3bbadfe6be"}, "response": {"body": {"string": "{\"deleted_public_dashboard_token\":\"fasjyydbcgwwc2uc-c1e0c122d13080aabd50aa3bbadfe6be\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 07 Apr 2023 16:13:45 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/ggv-zp5-2r8"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"ggv-zp5-2r8\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 07 Apr 2023 16:13:45 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Get_all_invitations_for_a_shared_dashboard_returns_OK_response-1680884025 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"id\":\"ggv-zp5-2r8\",\"title\":\"Test-Get_all_invitations_for_a_shared_dashboard_returns_OK_response-1680884025 with Profile Metrics Query\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/ggv-zp5-2r8/test-getallinvitationsforashareddashboardreturnsokresponse-1680884025-with-profi\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"},\"id\":6124782451549434}],\"notify_list\":null,\"created_at\":\"2023-04-07T16:13:45.869264+00:00\",\"modified_at\":\"2023-04-07T16:13:45.869264+00:00\",\"restricted_roles\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 07 Apr 2023 16:13:45 GMT" + }, + { + "request": { + "body": { + "string": "{\"dashboard_id\":\"ggv-zp5-2r8\",\"dashboard_type\":\"custom_timeboard\",\"global_time\":{\"live_span\":\"1h\"},\"share_list\":[\"testgetallinvitationsforashareddashboardreturnsokresponse1680884025@datadoghq.com\"],\"share_type\":\"invite\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard/public" + }, + "response": { + "body": { + "string": "{\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"dashboard_id\":\"ggv-zp5-2r8\",\"dashboard_type\":\"custom_timeboard\",\"global_time_selectable_enabled\":false,\"global_time\":{\"live_span\":\"1h\"},\"selectable_template_vars\":null,\"token\":\"fasjyydbcgwwc2uc-c1e0c122d13080aabd50aa3bbadfe6be\",\"public_url\":\"https://p.datadoghq.com/sb/fasjyydbcgwwc2uc-c1e0c122d13080aabd50aa3bbadfe6be\",\"created\":\"2023-04-07T16:13:46.433503+00:00\",\"share_type\":\"invite\",\"share_list\":[\"testgetallinvitationsforashareddashboardreturnsokresponse1680884025@datadoghq.com\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 07 Apr 2023 16:13:45 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/dashboard/public/fasjyydbcgwwc2uc-c1e0c122d13080aabd50aa3bbadfe6be/invitation" + }, + "response": { + "body": { + "string": "{\"data\":[],\"meta\":{\"page\":{\"total_count\":0}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 07 Apr 2023 16:13:45 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/public/fasjyydbcgwwc2uc-c1e0c122d13080aabd50aa3bbadfe6be" + }, + "response": { + "body": { + "string": "{\"deleted_public_dashboard_token\":\"fasjyydbcgwwc2uc-c1e0c122d13080aabd50aa3bbadfe6be\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 07 Apr 2023 16:13:45 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/ggv-zp5-2r8" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"ggv-zp5-2r8\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 07 Apr 2023 16:13:45 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Get-deleted-dashboards-returns-OK-response.json b/tests/scenarios/cassettes/v1/dashboards/Get-deleted-dashboards-returns-OK-response.json index 21840330d..4b1a0e670 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Get-deleted-dashboards-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/dashboards/Get-deleted-dashboards-returns-OK-response.json @@ -1 +1,123 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Get_deleted_dashboards_returns_OK_response-1642441413 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"ssn-gb2-k7k\",\"title\":\"Test-Get_deleted_dashboards_returns_OK_response-1642441413 with Profile Metrics Query\",\"url\":\"/dashboard/ssn-gb2-k7k/test-getdeleteddashboardsreturnsokresponse-1642441413-with-profile-metrics-query\",\"created_at\":\"2022-01-17T17:43:33.361797+00:00\",\"modified_at\":\"2022-01-17T17:43:33.361797+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"id\":748946470803570}],\"layout_type\":\"ordered\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 17 Jan 2022 17:43:33 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/ssn-gb2-k7k"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"ssn-gb2-k7k\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 17 Jan 2022 17:43:33 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/dashboard?filter%5Bdeleted%5D=true"}, "response": {"body": {"string": "{\"dashboards\":[{\"created_at\":\"2022-01-17T17:43:33.361797+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"is_read_only\":false,\"description\":null,\"title\":\"Test-Get_deleted_dashboards_returns_OK_response-1642441413 with Profile Metrics Query\",\"url\":\"/dashboard/ssn-gb2-k7k/test-getdeleteddashboardsreturnsokresponse-1642441413-with-profile-metrics-query\",\"layout_type\":\"ordered\",\"deleted_at\":\"2022-01-17T17:43:33.502200+00:00\",\"modified_at\":\"2022-01-17T17:43:33.361797+00:00\",\"id\":\"ssn-gb2-k7k\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 17 Jan 2022 17:43:33 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/ssn-gb2-k7k"}, "response": {"body": {"string": "{\"errors\": [\"Dashboard with ID ssn-gb2-k7k not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Mon, 17 Jan 2022 17:43:33 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Get_deleted_dashboards_returns_OK_response-1642441413 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"ssn-gb2-k7k\",\"title\":\"Test-Get_deleted_dashboards_returns_OK_response-1642441413 with Profile Metrics Query\",\"url\":\"/dashboard/ssn-gb2-k7k/test-getdeleteddashboardsreturnsokresponse-1642441413-with-profile-metrics-query\",\"created_at\":\"2022-01-17T17:43:33.361797+00:00\",\"modified_at\":\"2022-01-17T17:43:33.361797+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"id\":748946470803570}],\"layout_type\":\"ordered\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 17 Jan 2022 17:43:33 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/ssn-gb2-k7k" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"ssn-gb2-k7k\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 17 Jan 2022 17:43:33 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/dashboard?filter%5Bdeleted%5D=true" + }, + "response": { + "body": { + "string": "{\"dashboards\":[{\"created_at\":\"2022-01-17T17:43:33.361797+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"is_read_only\":false,\"description\":null,\"title\":\"Test-Get_deleted_dashboards_returns_OK_response-1642441413 with Profile Metrics Query\",\"url\":\"/dashboard/ssn-gb2-k7k/test-getdeleteddashboardsreturnsokresponse-1642441413-with-profile-metrics-query\",\"layout_type\":\"ordered\",\"deleted_at\":\"2022-01-17T17:43:33.502200+00:00\",\"modified_at\":\"2022-01-17T17:43:33.361797+00:00\",\"id\":\"ssn-gb2-k7k\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 17 Jan 2022 17:43:33 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/ssn-gb2-k7k" + }, + "response": { + "body": { + "string": "{\"errors\": [\"Dashboard with ID ssn-gb2-k7k not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Mon, 17 Jan 2022 17:43:33 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Restore-deleted-dashboards-returns-No-Content-response.json b/tests/scenarios/cassettes/v1/dashboards/Restore-deleted-dashboards-returns-No-Content-response.json index b40a5157a..e1ac7be02 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Restore-deleted-dashboards-returns-No-Content-response.json +++ b/tests/scenarios/cassettes/v1/dashboards/Restore-deleted-dashboards-returns-No-Content-response.json @@ -1 +1,125 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Restore_deleted_dashboards_returns_No_Content_response-1652348991 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"9tx-gsv-z5x\",\"title\":\"Test-Restore_deleted_dashboards_returns_No_Content_response-1652348991 with Profile Metrics Query\",\"url\":\"/dashboard/9tx-gsv-z5x/test-restoredeleteddashboardsreturnsnocontentresponse-1652348991-with-profile-me\",\"created_at\":\"2022-05-12T09:49:51.831214+00:00\",\"modified_at\":\"2022-05-12T09:49:51.831214+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"id\":4207265436765014}],\"layout_type\":\"ordered\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:49:51 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/9tx-gsv-z5x"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"9tx-gsv-z5x\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:49:51 GMT"}, {"request": {"body": {"string": "{\"data\":[{\"id\":\"9tx-gsv-z5x\",\"type\":\"dashboard\"}]}", "encoding": null}, "headers": {"Accept": ["*/*"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:49:51 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/9tx-gsv-z5x"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"9tx-gsv-z5x\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:49:51 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Restore_deleted_dashboards_returns_No_Content_response-1652348991 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"9tx-gsv-z5x\",\"title\":\"Test-Restore_deleted_dashboards_returns_No_Content_response-1652348991 with Profile Metrics Query\",\"url\":\"/dashboard/9tx-gsv-z5x/test-restoredeleteddashboardsreturnsnocontentresponse-1652348991-with-profile-me\",\"created_at\":\"2022-05-12T09:49:51.831214+00:00\",\"modified_at\":\"2022-05-12T09:49:51.831214+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"id\":4207265436765014}],\"layout_type\":\"ordered\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:49:51 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/9tx-gsv-z5x" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"9tx-gsv-z5x\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:49:51 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":[{\"id\":\"9tx-gsv-z5x\",\"type\":\"dashboard\"}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "*/*" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:49:51 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/9tx-gsv-z5x" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"9tx-gsv-z5x\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:49:51 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Send-shared-dashboard-invitation-email-returns-OK-response.json b/tests/scenarios/cassettes/v1/dashboards/Send-shared-dashboard-invitation-email-returns-OK-response.json index 42affbc85..c2050bc96 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Send-shared-dashboard-invitation-email-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/dashboards/Send-shared-dashboard-invitation-email-returns-OK-response.json @@ -1 +1,197 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Send_shared_dashboard_invitation_email_returns_OK_response-1680883811 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"id\":\"raa-btt-uqs\",\"title\":\"Test-Send_shared_dashboard_invitation_email_returns_OK_response-1680883811 with Profile Metrics Query\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/raa-btt-uqs/test-sendshareddashboardinvitationemailreturnsokresponse-1680883811-with-profile\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"},\"id\":2455557193881497}],\"notify_list\":null,\"created_at\":\"2023-04-07T16:10:12.130578+00:00\",\"modified_at\":\"2023-04-07T16:10:12.130578+00:00\",\"restricted_roles\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 07 Apr 2023 16:10:11 GMT"}, {"request": {"body": {"string": "{\"dashboard_id\":\"raa-btt-uqs\",\"dashboard_type\":\"custom_timeboard\",\"global_time\":{\"live_span\":\"1h\"},\"share_list\":[\"testsendshareddashboardinvitationemailreturnsokresponse1680883811@datadoghq.com\"],\"share_type\":\"invite\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard/public"}, "response": {"body": {"string": "{\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"dashboard_id\":\"raa-btt-uqs\",\"dashboard_type\":\"custom_timeboard\",\"global_time_selectable_enabled\":false,\"global_time\":{\"live_span\":\"1h\"},\"selectable_template_vars\":null,\"token\":\"fasjyydbcgwwc2uc-0aaf9e22dcfc91f4bf3857f95fbdd16e\",\"public_url\":\"https://p.datadoghq.com/sb/fasjyydbcgwwc2uc-0aaf9e22dcfc91f4bf3857f95fbdd16e\",\"created\":\"2023-04-07T16:10:12.476162+00:00\",\"share_type\":\"invite\",\"share_list\":[\"testsendshareddashboardinvitationemailreturnsokresponse1680883811@datadoghq.com\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 07 Apr 2023 16:10:11 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"testsendshareddashboardinvitationemailreturnsokresponse1680883811@datadoghq.com\"},\"type\":\"public_dashboard_invitation\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard/public/fasjyydbcgwwc2uc-0aaf9e22dcfc91f4bf3857f95fbdd16e/invitation"}, "response": {"body": {"string": "{\"data\":{\"type\":\"public_dashboard_invitation\",\"attributes\":{\"email\":\"testsendshareddashboardinvitationemailreturnsokresponse1680883811@datadoghq.com\",\"share_token\":\"fasjyydbcgwwc2uc-0aaf9e22dcfc91f4bf3857f95fbdd16e\",\"created_at\":\"2023-04-07T16:10:12.708843+00:00\",\"invitation_expiry\":\"2023-04-07T17:10:12.707450+00:00\",\"has_session\":false,\"session_expiry\":null}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Fri, 07 Apr 2023 16:10:11 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"testsendshareddashboardinvitationemailreturnsokresponse1680883811@datadoghq.com\"},\"type\":\"public_dashboard_invitation\"}}", "encoding": null}, "headers": {"Accept": ["*/*"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/public/fasjyydbcgwwc2uc-0aaf9e22dcfc91f4bf3857f95fbdd16e/invitation"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Fri, 07 Apr 2023 16:10:11 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/public/fasjyydbcgwwc2uc-0aaf9e22dcfc91f4bf3857f95fbdd16e"}, "response": {"body": {"string": "{\"deleted_public_dashboard_token\":\"fasjyydbcgwwc2uc-0aaf9e22dcfc91f4bf3857f95fbdd16e\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 07 Apr 2023 16:10:11 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/raa-btt-uqs"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"raa-btt-uqs\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 07 Apr 2023 16:10:11 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Send_shared_dashboard_invitation_email_returns_OK_response-1680883811 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"id\":\"raa-btt-uqs\",\"title\":\"Test-Send_shared_dashboard_invitation_email_returns_OK_response-1680883811 with Profile Metrics Query\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/raa-btt-uqs/test-sendshareddashboardinvitationemailreturnsokresponse-1680883811-with-profile\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"},\"id\":2455557193881497}],\"notify_list\":null,\"created_at\":\"2023-04-07T16:10:12.130578+00:00\",\"modified_at\":\"2023-04-07T16:10:12.130578+00:00\",\"restricted_roles\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 07 Apr 2023 16:10:11 GMT" + }, + { + "request": { + "body": { + "string": "{\"dashboard_id\":\"raa-btt-uqs\",\"dashboard_type\":\"custom_timeboard\",\"global_time\":{\"live_span\":\"1h\"},\"share_list\":[\"testsendshareddashboardinvitationemailreturnsokresponse1680883811@datadoghq.com\"],\"share_type\":\"invite\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard/public" + }, + "response": { + "body": { + "string": "{\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"dashboard_id\":\"raa-btt-uqs\",\"dashboard_type\":\"custom_timeboard\",\"global_time_selectable_enabled\":false,\"global_time\":{\"live_span\":\"1h\"},\"selectable_template_vars\":null,\"token\":\"fasjyydbcgwwc2uc-0aaf9e22dcfc91f4bf3857f95fbdd16e\",\"public_url\":\"https://p.datadoghq.com/sb/fasjyydbcgwwc2uc-0aaf9e22dcfc91f4bf3857f95fbdd16e\",\"created\":\"2023-04-07T16:10:12.476162+00:00\",\"share_type\":\"invite\",\"share_list\":[\"testsendshareddashboardinvitationemailreturnsokresponse1680883811@datadoghq.com\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 07 Apr 2023 16:10:11 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"email\":\"testsendshareddashboardinvitationemailreturnsokresponse1680883811@datadoghq.com\"},\"type\":\"public_dashboard_invitation\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard/public/fasjyydbcgwwc2uc-0aaf9e22dcfc91f4bf3857f95fbdd16e/invitation" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"public_dashboard_invitation\",\"attributes\":{\"email\":\"testsendshareddashboardinvitationemailreturnsokresponse1680883811@datadoghq.com\",\"share_token\":\"fasjyydbcgwwc2uc-0aaf9e22dcfc91f4bf3857f95fbdd16e\",\"created_at\":\"2023-04-07T16:10:12.708843+00:00\",\"invitation_expiry\":\"2023-04-07T17:10:12.707450+00:00\",\"has_session\":false,\"session_expiry\":null}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Fri, 07 Apr 2023 16:10:11 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"email\":\"testsendshareddashboardinvitationemailreturnsokresponse1680883811@datadoghq.com\"},\"type\":\"public_dashboard_invitation\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "*/*" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/public/fasjyydbcgwwc2uc-0aaf9e22dcfc91f4bf3857f95fbdd16e/invitation" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Fri, 07 Apr 2023 16:10:11 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/public/fasjyydbcgwwc2uc-0aaf9e22dcfc91f4bf3857f95fbdd16e" + }, + "response": { + "body": { + "string": "{\"deleted_public_dashboard_token\":\"fasjyydbcgwwc2uc-0aaf9e22dcfc91f4bf3857f95fbdd16e\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 07 Apr 2023 16:10:11 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/raa-btt-uqs" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"raa-btt-uqs\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 07 Apr 2023 16:10:11 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Update-a-dashboard-returns-OK-response.json b/tests/scenarios/cassettes/v1/dashboards/Update-a-dashboard-returns-OK-response.json index 44f82250e..6e4106d70 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Update-a-dashboard-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/dashboards/Update-a-dashboard-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Update_a_dashboard_returns_OK_response-1650360449 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"f9b-648-ep9\",\"title\":\"Test-Update_a_dashboard_returns_OK_response-1650360449 with Profile Metrics Query\",\"url\":\"/dashboard/f9b-648-ep9/test-updateadashboardreturnsokresponse-1650360449-with-profile-metrics-query\",\"created_at\":\"2022-04-19T09:27:29.963904+00:00\",\"modified_at\":\"2022-04-19T09:27:29.963904+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"id\":130613274141546}],\"layout_type\":\"ordered\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 19 Apr 2022 09:27:29 GMT"}, {"request": {"body": {"string": "{\"description\":\"Updated description\",\"layout_type\":\"ordered\",\"title\":\"Test-Update_a_dashboard_returns_OK_response-1650360449 with list_stream widget\",\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"apm_issue_stream\",\"query_string\":\"\"},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "put", "uri": "https://api.datadoghq.com/api/v1/dashboard/f9b-648-ep9"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":\"Updated description\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"f9b-648-ep9\",\"title\":\"Test-Update_a_dashboard_returns_OK_response-1650360449 with list_stream widget\",\"url\":\"/dashboard/f9b-648-ep9/test-updateadashboardreturnsokresponse-1650360449-with-liststream-widget\",\"created_at\":\"2022-04-19T09:27:29.963904+00:00\",\"modified_at\":\"2022-04-19T09:27:30.331830+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"query_string\":\"\",\"data_source\":\"apm_issue_stream\"},\"response_format\":\"event_list\",\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}]}],\"type\":\"list_stream\"},\"id\":7235388013669172}],\"layout_type\":\"ordered\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 19 Apr 2022 09:27:29 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/f9b-648-ep9"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"f9b-648-ep9\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 19 Apr 2022 09:27:29 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Update_a_dashboard_returns_OK_response-1650360449 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"f9b-648-ep9\",\"title\":\"Test-Update_a_dashboard_returns_OK_response-1650360449 with Profile Metrics Query\",\"url\":\"/dashboard/f9b-648-ep9/test-updateadashboardreturnsokresponse-1650360449-with-profile-metrics-query\",\"created_at\":\"2022-04-19T09:27:29.963904+00:00\",\"modified_at\":\"2022-04-19T09:27:29.963904+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"id\":130613274141546}],\"layout_type\":\"ordered\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 19 Apr 2022 09:27:29 GMT" + }, + { + "request": { + "body": { + "string": "{\"description\":\"Updated description\",\"layout_type\":\"ordered\",\"title\":\"Test-Update_a_dashboard_returns_OK_response-1650360449 with list_stream widget\",\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"apm_issue_stream\",\"query_string\":\"\"},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v1/dashboard/f9b-648-ep9" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":\"Updated description\",\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"f9b-648-ep9\",\"title\":\"Test-Update_a_dashboard_returns_OK_response-1650360449 with list_stream widget\",\"url\":\"/dashboard/f9b-648-ep9/test-updateadashboardreturnsokresponse-1650360449-with-liststream-widget\",\"created_at\":\"2022-04-19T09:27:29.963904+00:00\",\"modified_at\":\"2022-04-19T09:27:30.331830+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"query\":{\"query_string\":\"\",\"data_source\":\"apm_issue_stream\"},\"response_format\":\"event_list\",\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}]}],\"type\":\"list_stream\"},\"id\":7235388013669172}],\"layout_type\":\"ordered\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 19 Apr 2022 09:27:29 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/f9b-648-ep9" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"f9b-648-ep9\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 19 Apr 2022 09:27:29 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Update-a-dashboard-with-tags-returns-OK-response.json b/tests/scenarios/cassettes/v1/dashboards/Update-a-dashboard-with-tags-returns-OK-response.json index 7c93d5a1e..094539910 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Update-a-dashboard-with-tags-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/dashboards/Update-a-dashboard-with-tags-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Update_a_dashboard_with_tags_returns_OK_response-1678490615 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"id\":\"ad2-8ch-y8s\",\"title\":\"Test-Update_a_dashboard_with_tags_returns_OK_response-1678490615 with Profile Metrics Query\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/ad2-8ch-y8s/test-updateadashboardwithtagsreturnsokresponse-1678490615-with-profile-metrics-q\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"},\"id\":6897153580739865}],\"notify_list\":null,\"created_at\":\"2023-03-10T23:23:35.908079+00:00\",\"modified_at\":\"2023-03-10T23:23:35.908079+00:00\",\"tags\":[],\"restricted_roles\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 10 Mar 2023 23:23:35 GMT"}, {"request": {"body": {"string": "{\"description\":\"Updated description\",\"layout_type\":\"ordered\",\"tags\":[\"team:foo\",\"team:bar\"],\"title\":\"Test-Update_a_dashboard_with_tags_returns_OK_response-1678490615 with list_stream widget\",\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"apm_issue_stream\",\"query_string\":\"\"},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "put", "uri": "https://api.datadoghq.com/api/v1/dashboard/ad2-8ch-y8s"}, "response": {"body": {"string": "{\"id\":\"ad2-8ch-y8s\",\"title\":\"Test-Update_a_dashboard_with_tags_returns_OK_response-1678490615 with list_stream widget\",\"description\":\"Updated description\",\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/ad2-8ch-y8s/test-updateadashboardwithtagsreturnsokresponse-1678490615-with-liststream-widget\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"apm_issue_stream\",\"query_string\":\"\"},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"},\"id\":4545330920817753}],\"notify_list\":null,\"created_at\":\"2023-03-10T23:23:35.908079+00:00\",\"modified_at\":\"2023-03-10T23:23:36.124521+00:00\",\"tags\":[\"team:foo\",\"team:bar\"],\"restricted_roles\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 10 Mar 2023 23:23:35 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/ad2-8ch-y8s"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"ad2-8ch-y8s\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 10 Mar 2023 23:23:35 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Update_a_dashboard_with_tags_returns_OK_response-1678490615 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"id\":\"ad2-8ch-y8s\",\"title\":\"Test-Update_a_dashboard_with_tags_returns_OK_response-1678490615 with Profile Metrics Query\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/ad2-8ch-y8s/test-updateadashboardwithtagsreturnsokresponse-1678490615-with-profile-metrics-q\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"},\"id\":6897153580739865}],\"notify_list\":null,\"created_at\":\"2023-03-10T23:23:35.908079+00:00\",\"modified_at\":\"2023-03-10T23:23:35.908079+00:00\",\"tags\":[],\"restricted_roles\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 10 Mar 2023 23:23:35 GMT" + }, + { + "request": { + "body": { + "string": "{\"description\":\"Updated description\",\"layout_type\":\"ordered\",\"tags\":[\"team:foo\",\"team:bar\"],\"title\":\"Test-Update_a_dashboard_with_tags_returns_OK_response-1678490615 with list_stream widget\",\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"apm_issue_stream\",\"query_string\":\"\"},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v1/dashboard/ad2-8ch-y8s" + }, + "response": { + "body": { + "string": "{\"id\":\"ad2-8ch-y8s\",\"title\":\"Test-Update_a_dashboard_with_tags_returns_OK_response-1678490615 with list_stream widget\",\"description\":\"Updated description\",\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/ad2-8ch-y8s/test-updateadashboardwithtagsreturnsokresponse-1678490615-with-liststream-widget\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"columns\":[{\"field\":\"timestamp\",\"width\":\"auto\"}],\"query\":{\"data_source\":\"apm_issue_stream\",\"query_string\":\"\"},\"response_format\":\"event_list\"}],\"type\":\"list_stream\"},\"id\":4545330920817753}],\"notify_list\":null,\"created_at\":\"2023-03-10T23:23:35.908079+00:00\",\"modified_at\":\"2023-03-10T23:23:36.124521+00:00\",\"tags\":[\"team:foo\",\"team:bar\"],\"restricted_roles\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 10 Mar 2023 23:23:35 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/ad2-8ch-y8s" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"ad2-8ch-y8s\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 10 Mar 2023 23:23:35 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Update-a-shared-dashboard-returns-OK-response.json b/tests/scenarios/cassettes/v1/dashboards/Update-a-shared-dashboard-returns-OK-response.json index 6601e66dc..691a4ee05 100644 --- a/tests/scenarios/cassettes/v1/dashboards/Update-a-shared-dashboard-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/dashboards/Update-a-shared-dashboard-returns-OK-response.json @@ -1 +1,163 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Update_a_shared_dashboard_returns_OK_response-1681332944 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"id\":\"n4p-ymg-wjf\",\"title\":\"Test-Update_a_shared_dashboard_returns_OK_response-1681332944 with Profile Metrics Query\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/n4p-ymg-wjf/test-updateashareddashboardreturnsokresponse-1681332944-with-profile-metrics-que\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"},\"id\":8334852074489292}],\"notify_list\":null,\"created_at\":\"2023-04-12T20:55:45.157005+00:00\",\"modified_at\":\"2023-04-12T20:55:45.157005+00:00\",\"restricted_roles\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 12 Apr 2023 20:55:44 GMT"}, {"request": {"body": {"string": "{\"dashboard_id\":\"n4p-ymg-wjf\",\"dashboard_type\":\"custom_timeboard\",\"global_time\":{\"live_span\":\"1h\"},\"share_list\":[\"testupdateashareddashboardreturnsokresponse1681332944@datadoghq.com\"],\"share_type\":\"invite\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard/public"}, "response": {"body": {"string": "{\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"dashboard_id\":\"n4p-ymg-wjf\",\"dashboard_type\":\"custom_timeboard\",\"global_time_selectable_enabled\":false,\"global_time\":{\"live_span\":\"1h\"},\"selectable_template_vars\":null,\"token\":\"fasjyydbcgwwc2uc-02029ebbe19451affffb0342605f03e7\",\"public_url\":\"https://p.datadoghq.com/sb/fasjyydbcgwwc2uc-02029ebbe19451affffb0342605f03e7\",\"created\":\"2023-04-12T20:55:45.513088+00:00\",\"share_type\":\"invite\",\"share_list\":[\"testupdateashareddashboardreturnsokresponse1681332944@datadoghq.com\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 12 Apr 2023 20:55:44 GMT"}, {"request": {"body": {"string": "{\"global_time\":{\"live_span\":\"15m\"},\"share_list\":[],\"share_type\":\"open\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "put", "uri": "https://api.datadoghq.com/api/v1/dashboard/public/fasjyydbcgwwc2uc-02029ebbe19451affffb0342605f03e7"}, "response": {"body": {"string": "{\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"dashboard_id\":\"n4p-ymg-wjf\",\"dashboard_type\":\"custom_timeboard\",\"global_time_selectable_enabled\":false,\"global_time\":{\"live_span\":\"15m\"},\"selectable_template_vars\":null,\"token\":\"fasjyydbcgwwc2uc-02029ebbe19451affffb0342605f03e7\",\"public_url\":\"https://p.datadoghq.com/sb/fasjyydbcgwwc2uc-02029ebbe19451affffb0342605f03e7\",\"created\":\"2023-04-12T20:55:45.513088+00:00\",\"share_type\":\"open\",\"share_list\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 12 Apr 2023 20:55:44 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/public/fasjyydbcgwwc2uc-02029ebbe19451affffb0342605f03e7"}, "response": {"body": {"string": "{\"deleted_public_dashboard_token\":\"fasjyydbcgwwc2uc-02029ebbe19451affffb0342605f03e7\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 12 Apr 2023 20:55:44 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/n4p-ymg-wjf"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"n4p-ymg-wjf\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 12 Apr 2023 20:55:44 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Update_a_shared_dashboard_returns_OK_response-1681332944 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"id\":\"n4p-ymg-wjf\",\"title\":\"Test-Update_a_shared_dashboard_returns_OK_response-1681332944 with Profile Metrics Query\",\"description\":null,\"author_handle\":\"frog@datadoghq.com\",\"author_name\":null,\"layout_type\":\"ordered\",\"url\":\"/dashboard/n4p-ymg-wjf/test-updateashareddashboardreturnsokresponse-1681332944-with-profile-metrics-que\",\"is_read_only\":false,\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"},\"id\":8334852074489292}],\"notify_list\":null,\"created_at\":\"2023-04-12T20:55:45.157005+00:00\",\"modified_at\":\"2023-04-12T20:55:45.157005+00:00\",\"restricted_roles\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 12 Apr 2023 20:55:44 GMT" + }, + { + "request": { + "body": { + "string": "{\"dashboard_id\":\"n4p-ymg-wjf\",\"dashboard_type\":\"custom_timeboard\",\"global_time\":{\"live_span\":\"1h\"},\"share_list\":[\"testupdateashareddashboardreturnsokresponse1681332944@datadoghq.com\"],\"share_type\":\"invite\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard/public" + }, + "response": { + "body": { + "string": "{\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"dashboard_id\":\"n4p-ymg-wjf\",\"dashboard_type\":\"custom_timeboard\",\"global_time_selectable_enabled\":false,\"global_time\":{\"live_span\":\"1h\"},\"selectable_template_vars\":null,\"token\":\"fasjyydbcgwwc2uc-02029ebbe19451affffb0342605f03e7\",\"public_url\":\"https://p.datadoghq.com/sb/fasjyydbcgwwc2uc-02029ebbe19451affffb0342605f03e7\",\"created\":\"2023-04-12T20:55:45.513088+00:00\",\"share_type\":\"invite\",\"share_list\":[\"testupdateashareddashboardreturnsokresponse1681332944@datadoghq.com\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 12 Apr 2023 20:55:44 GMT" + }, + { + "request": { + "body": { + "string": "{\"global_time\":{\"live_span\":\"15m\"},\"share_list\":[],\"share_type\":\"open\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v1/dashboard/public/fasjyydbcgwwc2uc-02029ebbe19451affffb0342605f03e7" + }, + "response": { + "body": { + "string": "{\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"dashboard_id\":\"n4p-ymg-wjf\",\"dashboard_type\":\"custom_timeboard\",\"global_time_selectable_enabled\":false,\"global_time\":{\"live_span\":\"15m\"},\"selectable_template_vars\":null,\"token\":\"fasjyydbcgwwc2uc-02029ebbe19451affffb0342605f03e7\",\"public_url\":\"https://p.datadoghq.com/sb/fasjyydbcgwwc2uc-02029ebbe19451affffb0342605f03e7\",\"created\":\"2023-04-12T20:55:45.513088+00:00\",\"share_type\":\"open\",\"share_list\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 12 Apr 2023 20:55:44 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/public/fasjyydbcgwwc2uc-02029ebbe19451affffb0342605f03e7" + }, + "response": { + "body": { + "string": "{\"deleted_public_dashboard_token\":\"fasjyydbcgwwc2uc-02029ebbe19451affffb0342605f03e7\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 12 Apr 2023 20:55:44 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/n4p-ymg-wjf" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"n4p-ymg-wjf\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 12 Apr 2023 20:55:44 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/downtimes/Cancel-a-downtime-returns-Downtime-not-found-response.json b/tests/scenarios/cassettes/v1/downtimes/Cancel-a-downtime-returns-Downtime-not-found-response.json index da980e44d..7ebc5aa40 100644 --- a/tests/scenarios/cassettes/v1/downtimes/Cancel-a-downtime-returns-Downtime-not-found-response.json +++ b/tests/scenarios/cassettes/v1/downtimes/Cancel-a-downtime-returns-Downtime-not-found-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/downtime/0"}, "response": {"body": {"string": "{\"errors\": [\"Downtime 0 not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 12 May 2022 09:49:53 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/downtime/0" + }, + "response": { + "body": { + "string": "{\"errors\": [\"Downtime 0 not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 12 May 2022 09:49:53 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/downtimes/Cancel-a-downtime-returns-OK-response.json b/tests/scenarios/cassettes/v1/downtimes/Cancel-a-downtime-returns-OK-response.json index 9e85a8df7..017cad57d 100644 --- a/tests/scenarios/cassettes/v1/downtimes/Cancel-a-downtime-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/downtimes/Cancel-a-downtime-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"end\":1684769356,\"message\":\"Test-Cancel_a_downtime_returns_OK_response-1684765756\",\"recurrence\":{\"period\":1,\"type\":\"weeks\",\"until_date\":1686580156,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"]},\"scope\":[\"test:testcanceladowntimereturnsokresponse1684765756\"],\"start\":1684765756,\"timezone\":\"Etc/UTC\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/downtime"}, "response": {"body": {"string": "{\"id\":2941964683,\"monitor_id\":null,\"org_id\":321813,\"start\":1684765756,\"end\":1684769356,\"canceled\":null,\"created\":1684765756,\"modified\":1684765756,\"message\":\"Test-Cancel_a_downtime_returns_OK_response-1684765756\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1686580156},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"08391596-f8ad-11ed-a637-da7ad0900002\",\"scope\":[\"test:testcanceladowntimereturnsokresponse1684765756\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 22 May 2023 14:29:16 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/downtime/2941964683"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 22 May 2023 14:29:16 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/downtime/2941964683"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 22 May 2023 14:29:16 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"end\":1684769356,\"message\":\"Test-Cancel_a_downtime_returns_OK_response-1684765756\",\"recurrence\":{\"period\":1,\"type\":\"weeks\",\"until_date\":1686580156,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"]},\"scope\":[\"test:testcanceladowntimereturnsokresponse1684765756\"],\"start\":1684765756,\"timezone\":\"Etc/UTC\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/downtime" + }, + "response": { + "body": { + "string": "{\"id\":2941964683,\"monitor_id\":null,\"org_id\":321813,\"start\":1684765756,\"end\":1684769356,\"canceled\":null,\"created\":1684765756,\"modified\":1684765756,\"message\":\"Test-Cancel_a_downtime_returns_OK_response-1684765756\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1686580156},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"08391596-f8ad-11ed-a637-da7ad0900002\",\"scope\":[\"test:testcanceladowntimereturnsokresponse1684765756\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 22 May 2023 14:29:16 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/downtime/2941964683" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 22 May 2023 14:29:16 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/downtime/2941964683" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 22 May 2023 14:29:16 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/downtimes/Cancel-downtimes-by-scope-returns-Downtimes-not-found-response.json b/tests/scenarios/cassettes/v1/downtimes/Cancel-downtimes-by-scope-returns-Downtimes-not-found-response.json index 14541841d..1ac5e9c2f 100644 --- a/tests/scenarios/cassettes/v1/downtimes/Cancel-downtimes-by-scope-returns-Downtimes-not-found-response.json +++ b/tests/scenarios/cassettes/v1/downtimes/Cancel-downtimes-by-scope-returns-Downtimes-not-found-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"scope\":\"test:testcanceldowntimesbyscopereturnsdowntimesnotfoundresponse1641430245_invalid\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/downtime/cancel/by_scope"}, "response": {"body": {"string": "{\"errors\":[\"No downtimes found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:45 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"scope\":\"test:testcanceldowntimesbyscopereturnsdowntimesnotfoundresponse1641430245_invalid\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/downtime/cancel/by_scope" + }, + "response": { + "body": { + "string": "{\"errors\":[\"No downtimes found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:45 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/downtimes/Cancel-downtimes-by-scope-returns-OK-response.json b/tests/scenarios/cassettes/v1/downtimes/Cancel-downtimes-by-scope-returns-OK-response.json index 2bad7c46e..e70167235 100644 --- a/tests/scenarios/cassettes/v1/downtimes/Cancel-downtimes-by-scope-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/downtimes/Cancel-downtimes-by-scope-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"end\":1684769382,\"message\":\"Test-Cancel_downtimes_by_scope_returns_OK_response-1684765782\",\"recurrence\":{\"period\":1,\"type\":\"weeks\",\"until_date\":1686580182,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"]},\"scope\":[\"test:testcanceldowntimesbyscopereturnsokresponse1684765782\"],\"start\":1684765782,\"timezone\":\"Etc/UTC\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/downtime"}, "response": {"body": {"string": "{\"id\":2941965647,\"monitor_id\":null,\"org_id\":321813,\"start\":1684765782,\"end\":1684769382,\"canceled\":null,\"created\":1684765783,\"modified\":1684765783,\"message\":\"Test-Cancel_downtimes_by_scope_returns_OK_response-1684765782\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1686580182},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"17fac312-f8ad-11ed-9ae8-da7ad0900002\",\"scope\":[\"test:testcanceldowntimesbyscopereturnsokresponse1684765782\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 22 May 2023 14:29:42 GMT"}, {"request": {"body": {"string": "{\"scope\":\"test:testcanceldowntimesbyscopereturnsokresponse1684765782\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/downtime/cancel/by_scope"}, "response": {"body": {"string": "{\"cancelled_ids\":[2941965647]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 22 May 2023 14:29:42 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/downtime/2941965647"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 22 May 2023 14:29:42 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"end\":1684769382,\"message\":\"Test-Cancel_downtimes_by_scope_returns_OK_response-1684765782\",\"recurrence\":{\"period\":1,\"type\":\"weeks\",\"until_date\":1686580182,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"]},\"scope\":[\"test:testcanceldowntimesbyscopereturnsokresponse1684765782\"],\"start\":1684765782,\"timezone\":\"Etc/UTC\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/downtime" + }, + "response": { + "body": { + "string": "{\"id\":2941965647,\"monitor_id\":null,\"org_id\":321813,\"start\":1684765782,\"end\":1684769382,\"canceled\":null,\"created\":1684765783,\"modified\":1684765783,\"message\":\"Test-Cancel_downtimes_by_scope_returns_OK_response-1684765782\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1686580182},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"17fac312-f8ad-11ed-9ae8-da7ad0900002\",\"scope\":[\"test:testcanceldowntimesbyscopereturnsokresponse1684765782\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 22 May 2023 14:29:42 GMT" + }, + { + "request": { + "body": { + "string": "{\"scope\":\"test:testcanceldowntimesbyscopereturnsokresponse1684765782\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/downtime/cancel/by_scope" + }, + "response": { + "body": { + "string": "{\"cancelled_ids\":[2941965647]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 22 May 2023 14:29:42 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/downtime/2941965647" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 22 May 2023 14:29:42 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/downtimes/Get-a-downtime-returns-Downtime-not-found-response.json b/tests/scenarios/cassettes/v1/downtimes/Get-a-downtime-returns-Downtime-not-found-response.json index f05c40e3a..4ca71b445 100644 --- a/tests/scenarios/cassettes/v1/downtimes/Get-a-downtime-returns-Downtime-not-found-response.json +++ b/tests/scenarios/cassettes/v1/downtimes/Get-a-downtime-returns-Downtime-not-found-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/downtime/0"}, "response": {"body": {"string": "{\"errors\":[\"Downtime not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:46 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/downtime/0" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Downtime not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:46 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/downtimes/Get-a-downtime-returns-OK-response.json b/tests/scenarios/cassettes/v1/downtimes/Get-a-downtime-returns-OK-response.json index 7dad998c8..3c0101163 100644 --- a/tests/scenarios/cassettes/v1/downtimes/Get-a-downtime-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/downtimes/Get-a-downtime-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"end\":1684769410,\"message\":\"Test-Get_a_downtime_returns_OK_response-1684765810\",\"recurrence\":{\"period\":1,\"type\":\"weeks\",\"until_date\":1686580210,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"]},\"scope\":[\"test:testgetadowntimereturnsokresponse1684765810\"],\"start\":1684765810,\"timezone\":\"Etc/UTC\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/downtime"}, "response": {"body": {"string": "{\"id\":2941966869,\"monitor_id\":null,\"org_id\":321813,\"start\":1684765810,\"end\":1684769410,\"canceled\":null,\"created\":1684765810,\"modified\":1684765810,\"message\":\"Test-Get_a_downtime_returns_OK_response-1684765810\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1686580210},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"286629f8-f8ad-11ed-9901-da7ad0900002\",\"scope\":[\"test:testgetadowntimereturnsokresponse1684765810\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 22 May 2023 14:30:10 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/downtime/2941966869"}, "response": {"body": {"string": "{\"id\":2941966869,\"monitor_id\":null,\"org_id\":321813,\"start\":1684765810,\"end\":1684769410,\"canceled\":null,\"created\":1684765810,\"modified\":1684765810,\"message\":\"Test-Get_a_downtime_returns_OK_response-1684765810\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1686580210},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"286629f8-f8ad-11ed-9901-da7ad0900002\",\"scope\":[\"test:testgetadowntimereturnsokresponse1684765810\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 22 May 2023 14:30:10 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/downtime/2941966869"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 22 May 2023 14:30:10 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"end\":1684769410,\"message\":\"Test-Get_a_downtime_returns_OK_response-1684765810\",\"recurrence\":{\"period\":1,\"type\":\"weeks\",\"until_date\":1686580210,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"]},\"scope\":[\"test:testgetadowntimereturnsokresponse1684765810\"],\"start\":1684765810,\"timezone\":\"Etc/UTC\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/downtime" + }, + "response": { + "body": { + "string": "{\"id\":2941966869,\"monitor_id\":null,\"org_id\":321813,\"start\":1684765810,\"end\":1684769410,\"canceled\":null,\"created\":1684765810,\"modified\":1684765810,\"message\":\"Test-Get_a_downtime_returns_OK_response-1684765810\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1686580210},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"286629f8-f8ad-11ed-9901-da7ad0900002\",\"scope\":[\"test:testgetadowntimereturnsokresponse1684765810\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 22 May 2023 14:30:10 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/downtime/2941966869" + }, + "response": { + "body": { + "string": "{\"id\":2941966869,\"monitor_id\":null,\"org_id\":321813,\"start\":1684765810,\"end\":1684769410,\"canceled\":null,\"created\":1684765810,\"modified\":1684765810,\"message\":\"Test-Get_a_downtime_returns_OK_response-1684765810\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1686580210},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"286629f8-f8ad-11ed-9901-da7ad0900002\",\"scope\":[\"test:testgetadowntimereturnsokresponse1684765810\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 22 May 2023 14:30:10 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/downtime/2941966869" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 22 May 2023 14:30:10 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/downtimes/Get-all-downtimes-returns-OK-response.json b/tests/scenarios/cassettes/v1/downtimes/Get-all-downtimes-returns-OK-response.json index 2c4568807..22c0df43e 100644 --- a/tests/scenarios/cassettes/v1/downtimes/Get-all-downtimes-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/downtimes/Get-all-downtimes-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/downtime?with_creator=true"}, "response": {"body": {"string": "[{\"id\":1529094018,\"monitor_id\":null,\"org_id\":321813,\"start\":1635430672,\"end\":null,\"canceled\":null,\"created\":1635430672,\"modified\":1635430672,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1d9e7eee-b23a-11ed-a0dc-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635430672\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1529121935,\"monitor_id\":null,\"org_id\":321813,\"start\":1635431628,\"end\":null,\"canceled\":null,\"created\":1635431628,\"modified\":1635431628,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1d9ec3cc-b23a-11ed-a0ea-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635431628\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1529146913,\"monitor_id\":null,\"org_id\":321813,\"start\":1635432530,\"end\":null,\"canceled\":null,\"created\":1635432530,\"modified\":1635432530,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1da042ec-b23a-11ed-a16b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635432530\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1529163389,\"monitor_id\":null,\"org_id\":321813,\"start\":1635432982,\"end\":null,\"canceled\":null,\"created\":1635432982,\"modified\":1635432982,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1da0495e-b23a-11ed-a16c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635432982\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1529202437,\"monitor_id\":null,\"org_id\":321813,\"start\":1635434214,\"end\":null,\"canceled\":null,\"created\":1635434214,\"modified\":1635434214,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1da06d30-b23a-11ed-a178-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635434214\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1529294591,\"monitor_id\":null,\"org_id\":321813,\"start\":1635437311,\"end\":null,\"canceled\":null,\"created\":1635437311,\"modified\":1635437311,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1da0eabc-b23a-11ed-a193-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635437311\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1530384499,\"monitor_id\":null,\"org_id\":321813,\"start\":1635477074,\"end\":null,\"canceled\":null,\"created\":1635477074,\"modified\":1635477074,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1da8e726-b23a-11ed-a3ab-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635477074\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1530800029,\"monitor_id\":null,\"org_id\":321813,\"start\":1635494828,\"end\":null,\"canceled\":null,\"created\":1635494828,\"modified\":1635494828,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1db7e4f6-b23a-11ed-a86e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635494828\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1530853487,\"monitor_id\":null,\"org_id\":321813,\"start\":1635496863,\"end\":null,\"canceled\":null,\"created\":1635496863,\"modified\":1635496863,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1db8d8ac-b23a-11ed-a879-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635496863\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1531712870,\"monitor_id\":null,\"org_id\":321813,\"start\":1635528083,\"end\":null,\"canceled\":null,\"created\":1635528083,\"modified\":1635528083,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1dc7e13a-b23a-11ed-ad75-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635528083\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1532588027,\"monitor_id\":null,\"org_id\":321813,\"start\":1635563467,\"end\":null,\"canceled\":null,\"created\":1635563467,\"modified\":1635563467,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1dcb33f8-b23a-11ed-ae77-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635563467\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1533480021,\"monitor_id\":null,\"org_id\":321813,\"start\":1635609970,\"end\":null,\"canceled\":null,\"created\":1635609970,\"modified\":1635609970,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1dcd0b9c-b23a-11ed-af06-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635609970\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1534139165,\"monitor_id\":null,\"org_id\":321813,\"start\":1635649871,\"end\":null,\"canceled\":null,\"created\":1635649871,\"modified\":1635649871,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1dce8d64-b23a-11ed-af88-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635649871\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1535667724,\"monitor_id\":null,\"org_id\":321813,\"start\":1635736119,\"end\":null,\"canceled\":null,\"created\":1635736119,\"modified\":1635736119,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1dd35b50-b23a-11ed-b0e9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635736119\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1537814729,\"monitor_id\":null,\"org_id\":321813,\"start\":1635822615,\"end\":null,\"canceled\":null,\"created\":1635822615,\"modified\":1635822615,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1de58d3e-b23a-11ed-b608-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635822615\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1538329871,\"monitor_id\":null,\"org_id\":321813,\"start\":1635844828,\"end\":null,\"canceled\":null,\"created\":1635844828,\"modified\":1635844828,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1de8bb30-b23a-11ed-b6d9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635844828\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1538351222,\"monitor_id\":null,\"org_id\":321813,\"start\":1635845693,\"end\":null,\"canceled\":null,\"created\":1635845693,\"modified\":1635845693,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1de8f14a-b23a-11ed-b6e7-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635845693\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1538371693,\"monitor_id\":null,\"org_id\":321813,\"start\":1635846494,\"end\":null,\"canceled\":null,\"created\":1635846494,\"modified\":1635846494,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1de919c2-b23a-11ed-b6f4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635846494\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1538380758,\"monitor_id\":null,\"org_id\":321813,\"start\":1635846905,\"end\":null,\"canceled\":null,\"created\":1635846905,\"modified\":1635846905,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1de92250-b23a-11ed-b6f8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635846905\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1538460083,\"monitor_id\":null,\"org_id\":321813,\"start\":1635849912,\"end\":null,\"canceled\":null,\"created\":1635849912,\"modified\":1635849912,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1de9870e-b23a-11ed-b70e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635849912\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1538479979,\"monitor_id\":null,\"org_id\":321813,\"start\":1635850647,\"end\":null,\"canceled\":null,\"created\":1635850647,\"modified\":1635850647,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1de99172-b23a-11ed-b713-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635850647\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1538496375,\"monitor_id\":null,\"org_id\":321813,\"start\":1635851235,\"end\":null,\"canceled\":null,\"created\":1635851235,\"modified\":1635851235,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1de9e398-b23a-11ed-b72e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635851234\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1538507650,\"monitor_id\":null,\"org_id\":321813,\"start\":1635851716,\"end\":null,\"canceled\":null,\"created\":1635851716,\"modified\":1635851716,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1de9e5be-b23a-11ed-b72f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635851716\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1538792096,\"monitor_id\":null,\"org_id\":321813,\"start\":1635862344,\"end\":null,\"canceled\":null,\"created\":1635862344,\"modified\":1635862344,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1deb279e-b23a-11ed-b784-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635862344\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1538849921,\"monitor_id\":null,\"org_id\":321813,\"start\":1635864374,\"end\":null,\"canceled\":null,\"created\":1635864374,\"modified\":1635864374,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1deb73a2-b23a-11ed-b797-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635864374\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1538908288,\"monitor_id\":null,\"org_id\":321813,\"start\":1635866208,\"end\":null,\"canceled\":null,\"created\":1635866208,\"modified\":1635866208,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1debd126-b23a-11ed-b7b0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635866208\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1539261412,\"monitor_id\":null,\"org_id\":321813,\"start\":1635877715,\"end\":null,\"canceled\":null,\"created\":1635877715,\"modified\":1635877715,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1deefd9c-b23a-11ed-b8b8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635877715\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1540108757,\"monitor_id\":null,\"org_id\":321813,\"start\":1635908885,\"end\":null,\"canceled\":null,\"created\":1635908885,\"modified\":1635908885,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1df2a096-b23a-11ed-b9b4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635908885\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1540572672,\"monitor_id\":null,\"org_id\":321813,\"start\":1635929887,\"end\":null,\"canceled\":null,\"created\":1635929887,\"modified\":1635929887,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1df51538-b23a-11ed-ba64-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635929887\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1540701346,\"monitor_id\":null,\"org_id\":321813,\"start\":1635935292,\"end\":null,\"canceled\":null,\"created\":1635935292,\"modified\":1635935292,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1df5e13e-b23a-11ed-baa2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635935292\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1540717743,\"monitor_id\":null,\"org_id\":321813,\"start\":1635935891,\"end\":null,\"canceled\":null,\"created\":1635935891,\"modified\":1635935891,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1df5f5ac-b23a-11ed-baa8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635935891\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1540730013,\"monitor_id\":null,\"org_id\":321813,\"start\":1635936393,\"end\":null,\"canceled\":null,\"created\":1635936393,\"modified\":1635936393,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1df61a5a-b23a-11ed-baaf-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635936393\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1540757858,\"monitor_id\":null,\"org_id\":321813,\"start\":1635937485,\"end\":null,\"canceled\":null,\"created\":1635937485,\"modified\":1635937485,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1df64746-b23a-11ed-babd-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635937484\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1540791105,\"monitor_id\":null,\"org_id\":321813,\"start\":1635938835,\"end\":null,\"canceled\":null,\"created\":1635938835,\"modified\":1635938835,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1df69dd6-b23a-11ed-bace-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635938834\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1540892330,\"monitor_id\":null,\"org_id\":321813,\"start\":1635942733,\"end\":null,\"canceled\":null,\"created\":1635942733,\"modified\":1635942733,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1df72288-b23a-11ed-bae5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635942733\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1540951301,\"monitor_id\":null,\"org_id\":321813,\"start\":1635944939,\"end\":null,\"canceled\":null,\"created\":1635944939,\"modified\":1635944939,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1df74ac4-b23a-11ed-baf4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635944939\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1540976547,\"monitor_id\":null,\"org_id\":321813,\"start\":1635945803,\"end\":null,\"canceled\":null,\"created\":1635945803,\"modified\":1635945803,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1df79e66-b23a-11ed-bb09-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635945803\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1541099168,\"monitor_id\":null,\"org_id\":321813,\"start\":1635950072,\"end\":null,\"canceled\":null,\"created\":1635950072,\"modified\":1635950072,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1df85b58-b23a-11ed-bb32-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635950072\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1541123431,\"monitor_id\":null,\"org_id\":321813,\"start\":1635950917,\"end\":null,\"canceled\":null,\"created\":1635950917,\"modified\":1635950917,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1df86774-b23a-11ed-bb37-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635950916\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1541166920,\"monitor_id\":null,\"org_id\":321813,\"start\":1635952148,\"end\":null,\"canceled\":null,\"created\":1635952148,\"modified\":1635952148,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1df89e56-b23a-11ed-bb3d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635952148\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1541168955,\"monitor_id\":null,\"org_id\":321813,\"start\":1635952225,\"end\":null,\"canceled\":null,\"created\":1635952225,\"modified\":1635952225,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1df8a5ea-b23a-11ed-bb3e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635952225\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1541447539,\"monitor_id\":null,\"org_id\":321813,\"start\":1635961142,\"end\":null,\"canceled\":null,\"created\":1635961142,\"modified\":1635961142,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1dfb6406-b23a-11ed-bc18-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635961142\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1542414385,\"monitor_id\":null,\"org_id\":321813,\"start\":1635995531,\"end\":null,\"canceled\":null,\"created\":1635995531,\"modified\":1635995531,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e0138ae-b23a-11ed-bda2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635995531\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1542865854,\"monitor_id\":null,\"org_id\":321813,\"start\":1636016271,\"end\":null,\"canceled\":null,\"created\":1636016271,\"modified\":1636016271,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e04f28c-b23a-11ed-be82-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636016271\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1542975384,\"monitor_id\":null,\"org_id\":321813,\"start\":1636021061,\"end\":null,\"canceled\":null,\"created\":1636021061,\"modified\":1636021061,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e058ab2-b23a-11ed-beb0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636021061\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543014508,\"monitor_id\":null,\"org_id\":321813,\"start\":1636022565,\"end\":null,\"canceled\":null,\"created\":1636022565,\"modified\":1636022565,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e059c32-b23a-11ed-beb5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636022565\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543037329,\"monitor_id\":null,\"org_id\":321813,\"start\":1636023533,\"end\":null,\"canceled\":null,\"created\":1636023533,\"modified\":1636023533,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e05cf5e-b23a-11ed-bec4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636023533\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543197308,\"monitor_id\":null,\"org_id\":321813,\"start\":1636029863,\"end\":null,\"canceled\":null,\"created\":1636029863,\"modified\":1636029863,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e06d994-b23a-11ed-bf0d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636029863\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543198026,\"monitor_id\":null,\"org_id\":321813,\"start\":1636029889,\"end\":null,\"canceled\":null,\"created\":1636029889,\"modified\":1636029889,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e06dbe2-b23a-11ed-bf0e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636029889\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543220645,\"monitor_id\":null,\"org_id\":321813,\"start\":1636030846,\"end\":null,\"canceled\":null,\"created\":1636030846,\"modified\":1636030846,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e06f122-b23a-11ed-bf15-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636030845\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543236690,\"monitor_id\":null,\"org_id\":321813,\"start\":1636031392,\"end\":null,\"canceled\":null,\"created\":1636031392,\"modified\":1636031392,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e0704dc-b23a-11ed-bf1c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636031391\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543268079,\"monitor_id\":null,\"org_id\":321813,\"start\":1636032593,\"end\":null,\"canceled\":null,\"created\":1636032593,\"modified\":1636032593,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e071a3a-b23a-11ed-bf24-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636032593\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543295301,\"monitor_id\":null,\"org_id\":321813,\"start\":1636033603,\"end\":null,\"canceled\":null,\"created\":1636033603,\"modified\":1636033603,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e074244-b23a-11ed-bf2e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636033603\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543306677,\"monitor_id\":null,\"org_id\":321813,\"start\":1636033942,\"end\":null,\"canceled\":null,\"created\":1636033942,\"modified\":1636033942,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e074f46-b23a-11ed-bf31-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636033942\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543316846,\"monitor_id\":null,\"org_id\":321813,\"start\":1636034371,\"end\":null,\"canceled\":null,\"created\":1636034371,\"modified\":1636034371,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e07613e-b23a-11ed-bf35-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636034371\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543334710,\"monitor_id\":null,\"org_id\":321813,\"start\":1636034965,\"end\":null,\"canceled\":null,\"created\":1636034965,\"modified\":1636034965,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e077200-b23a-11ed-bf3b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636034965\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543360999,\"monitor_id\":null,\"org_id\":321813,\"start\":1636035958,\"end\":null,\"canceled\":null,\"created\":1636035958,\"modified\":1636035958,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e079050-b23a-11ed-bf45-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636035957\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543366772,\"monitor_id\":null,\"org_id\":321813,\"start\":1636036106,\"end\":null,\"canceled\":null,\"created\":1636036106,\"modified\":1636036106,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e07964a-b23a-11ed-bf46-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636036106\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543370103,\"monitor_id\":null,\"org_id\":321813,\"start\":1636036246,\"end\":null,\"canceled\":null,\"created\":1636036246,\"modified\":1636036246,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e07a072-b23a-11ed-bf49-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636036246\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543384605,\"monitor_id\":null,\"org_id\":321813,\"start\":1636036728,\"end\":null,\"canceled\":null,\"created\":1636036728,\"modified\":1636036728,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e07a950-b23a-11ed-bf4d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636036728\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543386109,\"monitor_id\":null,\"org_id\":321813,\"start\":1636036795,\"end\":null,\"canceled\":null,\"created\":1636036795,\"modified\":1636036795,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e07ab30-b23a-11ed-bf4e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636036794\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543528599,\"monitor_id\":null,\"org_id\":321813,\"start\":1636041454,\"end\":null,\"canceled\":null,\"created\":1636041454,\"modified\":1636041454,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e092a78-b23a-11ed-bfa2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636041453\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543563646,\"monitor_id\":null,\"org_id\":321813,\"start\":1636042490,\"end\":null,\"canceled\":null,\"created\":1636042490,\"modified\":1636042490,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e0961be-b23a-11ed-bfaf-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636042490\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543588609,\"monitor_id\":null,\"org_id\":321813,\"start\":1636043282,\"end\":null,\"canceled\":null,\"created\":1636043282,\"modified\":1636043282,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e097636-b23a-11ed-bfb5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636043282\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543590218,\"monitor_id\":null,\"org_id\":321813,\"start\":1636043353,\"end\":null,\"canceled\":null,\"created\":1636043353,\"modified\":1636043353,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e097848-b23a-11ed-bfb6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636043353\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543592624,\"monitor_id\":null,\"org_id\":321813,\"start\":1636043431,\"end\":null,\"canceled\":null,\"created\":1636043431,\"modified\":1636043431,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e097af0-b23a-11ed-bfb7-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636043430\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543614250,\"monitor_id\":null,\"org_id\":321813,\"start\":1636044143,\"end\":null,\"canceled\":null,\"created\":1636044143,\"modified\":1636044143,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e09ff0c-b23a-11ed-bfdc-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636044143\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543718086,\"monitor_id\":null,\"org_id\":321813,\"start\":1636047506,\"end\":null,\"canceled\":null,\"created\":1636047506,\"modified\":1636047506,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e0b7cf6-b23a-11ed-b872-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636047506\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543954331,\"monitor_id\":null,\"org_id\":321813,\"start\":1636055691,\"end\":null,\"canceled\":null,\"created\":1636055691,\"modified\":1636055691,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e0cb544-b23a-11ed-b8ba-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636055691\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543978955,\"monitor_id\":null,\"org_id\":321813,\"start\":1636056444,\"end\":null,\"canceled\":null,\"created\":1636056444,\"modified\":1636056444,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e0cc66a-b23a-11ed-b8bf-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636056444\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1544323766,\"monitor_id\":null,\"org_id\":321813,\"start\":1636068854,\"end\":null,\"canceled\":null,\"created\":1636068854,\"modified\":1636068854,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e0e8cb6-b23a-11ed-b949-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636068853\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1544637035,\"monitor_id\":null,\"org_id\":321813,\"start\":1636081707,\"end\":null,\"canceled\":null,\"created\":1636081707,\"modified\":1636081707,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e10b676-b23a-11ed-b9ec-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636081707\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1545074705,\"monitor_id\":null,\"org_id\":321813,\"start\":1636102507,\"end\":null,\"canceled\":null,\"created\":1636102508,\"modified\":1636102508,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e141d8e-b23a-11ed-ba85-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636102507\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1545506366,\"monitor_id\":null,\"org_id\":321813,\"start\":1636119861,\"end\":null,\"canceled\":null,\"created\":1636119861,\"modified\":1636119861,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e16098c-b23a-11ed-baec-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636119860\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1545513768,\"monitor_id\":null,\"org_id\":321813,\"start\":1636120143,\"end\":null,\"canceled\":null,\"created\":1636120143,\"modified\":1636120143,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e161274-b23a-11ed-baee-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636120143\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1545544977,\"monitor_id\":null,\"org_id\":321813,\"start\":1636121275,\"end\":null,\"canceled\":null,\"created\":1636121275,\"modified\":1636121275,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e163b96-b23a-11ed-baf6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636121275\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1545556983,\"monitor_id\":null,\"org_id\":321813,\"start\":1636121760,\"end\":null,\"canceled\":null,\"created\":1636121760,\"modified\":1636121760,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e1655cc-b23a-11ed-baf9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636121760\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1545653998,\"monitor_id\":null,\"org_id\":321813,\"start\":1636125192,\"end\":null,\"canceled\":null,\"created\":1636125192,\"modified\":1636125192,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e16a266-b23a-11ed-bb13-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636125191\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1545686746,\"monitor_id\":null,\"org_id\":321813,\"start\":1636126319,\"end\":null,\"canceled\":null,\"created\":1636126319,\"modified\":1636126319,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e174216-b23a-11ed-bb3d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636126319\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1546768479,\"monitor_id\":null,\"org_id\":321813,\"start\":1636168340,\"end\":null,\"canceled\":null,\"created\":1636168340,\"modified\":1636168340,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e1d61d2-b23a-11ed-bcfa-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636168340\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1548254480,\"monitor_id\":null,\"org_id\":321813,\"start\":1636254661,\"end\":null,\"canceled\":null,\"created\":1636254661,\"modified\":1636254661,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e210602-b23a-11ed-bde4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636254661\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1549706527,\"monitor_id\":null,\"org_id\":321813,\"start\":1636341037,\"end\":null,\"canceled\":null,\"created\":1636341037,\"modified\":1636341037,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e2508f6-b23a-11ed-bee2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636341037\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1550303673,\"monitor_id\":null,\"org_id\":321813,\"start\":1636369554,\"end\":null,\"canceled\":null,\"created\":1636369554,\"modified\":1636369554,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e297198-b23a-11ed-847a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636369554\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1550303957,\"monitor_id\":null,\"org_id\":321813,\"start\":1636369563,\"end\":null,\"canceled\":null,\"created\":1636369563,\"modified\":1636369563,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e297418-b23a-11ed-847b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636369563\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1550353324,\"monitor_id\":null,\"org_id\":321813,\"start\":1636371813,\"end\":null,\"canceled\":null,\"created\":1636371813,\"modified\":1636371813,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e2988ea-b23a-11ed-8483-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636371813\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1550578765,\"monitor_id\":null,\"org_id\":321813,\"start\":1636381158,\"end\":null,\"canceled\":null,\"created\":1636381158,\"modified\":1636381158,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e2ae226-b23a-11ed-84dd-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636381158\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1550617965,\"monitor_id\":null,\"org_id\":321813,\"start\":1636382669,\"end\":null,\"canceled\":null,\"created\":1636382669,\"modified\":1636382669,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e2b3b90-b23a-11ed-84ff-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636382669\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1550785063,\"monitor_id\":null,\"org_id\":321813,\"start\":1636388323,\"end\":null,\"canceled\":null,\"created\":1636388323,\"modified\":1636388323,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e2c17ae-b23a-11ed-8542-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636388321\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1551242813,\"monitor_id\":null,\"org_id\":321813,\"start\":1636404048,\"end\":null,\"canceled\":null,\"created\":1636404048,\"modified\":1636404048,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e2df4a2-b23a-11ed-85b8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636404048\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1551385999,\"monitor_id\":null,\"org_id\":321813,\"start\":1636409106,\"end\":null,\"canceled\":null,\"created\":1636409106,\"modified\":1636409106,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e2eabf4-b23a-11ed-85eb-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636409106\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1551512055,\"monitor_id\":null,\"org_id\":321813,\"start\":1636413624,\"end\":null,\"canceled\":null,\"created\":1636413624,\"modified\":1636413624,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e2f22b4-b23a-11ed-8610-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636413624\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1551873185,\"monitor_id\":null,\"org_id\":321813,\"start\":1636427372,\"end\":null,\"canceled\":null,\"created\":1636427372,\"modified\":1636427372,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e33ca8a-b23a-11ed-878a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636427372\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1552307336,\"monitor_id\":null,\"org_id\":321813,\"start\":1636446453,\"end\":null,\"canceled\":null,\"created\":1636446453,\"modified\":1636446453,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e3a8474-b23a-11ed-897e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636446453\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1552364901,\"monitor_id\":null,\"org_id\":321813,\"start\":1636448748,\"end\":null,\"canceled\":null,\"created\":1636448748,\"modified\":1636448748,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e3ace3e-b23a-11ed-898e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636448748\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1552382015,\"monitor_id\":null,\"org_id\":321813,\"start\":1636449492,\"end\":null,\"canceled\":null,\"created\":1636449492,\"modified\":1636449492,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e3afc56-b23a-11ed-899b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636449492\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1552410601,\"monitor_id\":null,\"org_id\":321813,\"start\":1636450646,\"end\":null,\"canceled\":null,\"created\":1636450646,\"modified\":1636450646,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e3b07fa-b23a-11ed-89a0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636450646\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1552414865,\"monitor_id\":null,\"org_id\":321813,\"start\":1636450833,\"end\":null,\"canceled\":null,\"created\":1636450833,\"modified\":1636450833,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e3b09f8-b23a-11ed-89a1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636450833\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1552525745,\"monitor_id\":null,\"org_id\":321813,\"start\":1636455108,\"end\":null,\"canceled\":null,\"created\":1636455108,\"modified\":1636455108,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e3e3e5c-b23a-11ed-8a92-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636455108\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1552777641,\"monitor_id\":null,\"org_id\":321813,\"start\":1636465328,\"end\":null,\"canceled\":null,\"created\":1636465328,\"modified\":1636465328,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e408b26-b23a-11ed-8b43-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636465328\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1552961636,\"monitor_id\":null,\"org_id\":321813,\"start\":1636471797,\"end\":null,\"canceled\":null,\"created\":1636471797,\"modified\":1636471797,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e416e9c-b23a-11ed-8b84-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636471796\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1553004070,\"monitor_id\":null,\"org_id\":321813,\"start\":1636473336,\"end\":null,\"canceled\":null,\"created\":1636473336,\"modified\":1636473336,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e41af38-b23a-11ed-8b97-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636473336\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1554186612,\"monitor_id\":null,\"org_id\":321813,\"start\":1636513793,\"end\":null,\"canceled\":null,\"created\":1636513793,\"modified\":1636513793,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e49a56c-b23a-11ed-8d7f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636513793\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1554857461,\"monitor_id\":null,\"org_id\":321813,\"start\":1636539562,\"end\":null,\"canceled\":null,\"created\":1636539562,\"modified\":1636539562,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e4d480c-b23a-11ed-8e87-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636539562\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1554940740,\"monitor_id\":null,\"org_id\":321813,\"start\":1636542691,\"end\":null,\"canceled\":null,\"created\":1636542691,\"modified\":1636542691,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e4dda6a-b23a-11ed-8ebc-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636542691\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1555319238,\"monitor_id\":null,\"org_id\":321813,\"start\":1636556504,\"end\":null,\"canceled\":null,\"created\":1636556504,\"modified\":1636556504,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e4fdde2-b23a-11ed-8f4b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636556504\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1555332502,\"monitor_id\":null,\"org_id\":321813,\"start\":1636556894,\"end\":null,\"canceled\":null,\"created\":1636556894,\"modified\":1636556894,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e4ffb10-b23a-11ed-8f55-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636556894\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1556584204,\"monitor_id\":null,\"org_id\":321813,\"start\":1636600248,\"end\":null,\"canceled\":null,\"created\":1636600248,\"modified\":1636600248,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e58a328-b23a-11ed-91d5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636600248\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1557086035,\"monitor_id\":null,\"org_id\":321813,\"start\":1636621227,\"end\":null,\"canceled\":null,\"created\":1636621227,\"modified\":1636621227,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e5cedd4-b23a-11ed-9303-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636621227\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1557107796,\"monitor_id\":null,\"org_id\":321813,\"start\":1636622137,\"end\":null,\"canceled\":null,\"created\":1636622137,\"modified\":1636622137,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e5d03dc-b23a-11ed-9309-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636622137\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1557134293,\"monitor_id\":null,\"org_id\":321813,\"start\":1636623133,\"end\":null,\"canceled\":null,\"created\":1636623133,\"modified\":1636623133,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e5d0dc8-b23a-11ed-930d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636623133\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1557150751,\"monitor_id\":null,\"org_id\":321813,\"start\":1636623839,\"end\":null,\"canceled\":null,\"created\":1636623839,\"modified\":1636623839,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e5d1e9e-b23a-11ed-9313-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636623839\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1557303882,\"monitor_id\":null,\"org_id\":321813,\"start\":1636629970,\"end\":null,\"canceled\":null,\"created\":1636629970,\"modified\":1636629970,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e5dbade-b23a-11ed-933e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636629970\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1557337181,\"monitor_id\":null,\"org_id\":321813,\"start\":1636631354,\"end\":null,\"canceled\":null,\"created\":1636631354,\"modified\":1636631354,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e5dd97e-b23a-11ed-9348-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636631354\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1557349692,\"monitor_id\":null,\"org_id\":321813,\"start\":1636631913,\"end\":null,\"canceled\":null,\"created\":1636631913,\"modified\":1636631913,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e5deb08-b23a-11ed-934c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636631913\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1557506569,\"monitor_id\":null,\"org_id\":321813,\"start\":1636638473,\"end\":null,\"canceled\":null,\"created\":1636638473,\"modified\":1636638473,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e5ec992-b23a-11ed-9384-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636638473\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1557529070,\"monitor_id\":null,\"org_id\":321813,\"start\":1636639274,\"end\":null,\"canceled\":null,\"created\":1636639274,\"modified\":1636639274,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e5eea76-b23a-11ed-938b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636639273\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1557532673,\"monitor_id\":null,\"org_id\":321813,\"start\":1636639401,\"end\":null,\"canceled\":null,\"created\":1636639401,\"modified\":1636639401,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e5eec88-b23a-11ed-938c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636639401\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1557539506,\"monitor_id\":null,\"org_id\":321813,\"start\":1636639696,\"end\":null,\"canceled\":null,\"created\":1636639696,\"modified\":1636639696,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e5f0380-b23a-11ed-938f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636639696\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1557563406,\"monitor_id\":null,\"org_id\":321813,\"start\":1636640636,\"end\":null,\"canceled\":null,\"created\":1636640636,\"modified\":1636640636,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e5f2040-b23a-11ed-939a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636640636\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1557614661,\"monitor_id\":null,\"org_id\":321813,\"start\":1636642577,\"end\":null,\"canceled\":null,\"created\":1636642577,\"modified\":1636642577,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e5f4354-b23a-11ed-93a5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636642576\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1557643177,\"monitor_id\":null,\"org_id\":321813,\"start\":1636643711,\"end\":null,\"canceled\":null,\"created\":1636643711,\"modified\":1636643711,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e5f865c-b23a-11ed-93b8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636643711\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1557648230,\"monitor_id\":null,\"org_id\":321813,\"start\":1636643874,\"end\":null,\"canceled\":null,\"created\":1636643874,\"modified\":1636643874,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e5f8b34-b23a-11ed-93ba-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636643874\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1558226796,\"monitor_id\":null,\"org_id\":321813,\"start\":1636664851,\"end\":null,\"canceled\":null,\"created\":1636664851,\"modified\":1636664851,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e6488be-b23a-11ed-94dc-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636664850\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1558760915,\"monitor_id\":null,\"org_id\":321813,\"start\":1636686417,\"end\":null,\"canceled\":null,\"created\":1636686417,\"modified\":1636686417,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e6bc0f2-b23a-11ed-95dc-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636686416\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1559415436,\"monitor_id\":null,\"org_id\":321813,\"start\":1636715477,\"end\":null,\"canceled\":null,\"created\":1636715477,\"modified\":1636715477,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e714b94-b23a-11ed-9720-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636715477\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1559462609,\"monitor_id\":null,\"org_id\":321813,\"start\":1636717420,\"end\":null,\"canceled\":null,\"created\":1636717420,\"modified\":1636717420,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e71b912-b23a-11ed-973c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636717420\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1559670848,\"monitor_id\":null,\"org_id\":321813,\"start\":1636726076,\"end\":null,\"canceled\":null,\"created\":1636726076,\"modified\":1636726076,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e731d34-b23a-11ed-97a0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636726075\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1559671165,\"monitor_id\":null,\"org_id\":321813,\"start\":1636726087,\"end\":null,\"canceled\":null,\"created\":1636726087,\"modified\":1636726087,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e731faa-b23a-11ed-97a1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636726086\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1559720274,\"monitor_id\":null,\"org_id\":321813,\"start\":1636728009,\"end\":null,\"canceled\":null,\"created\":1636728009,\"modified\":1636728009,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e740410-b23a-11ed-97cd-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636728009\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1559727267,\"monitor_id\":null,\"org_id\":321813,\"start\":1636728288,\"end\":null,\"canceled\":null,\"created\":1636728288,\"modified\":1636728288,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e740afa-b23a-11ed-97ce-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636728288\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1559764457,\"monitor_id\":null,\"org_id\":321813,\"start\":1636729554,\"end\":null,\"canceled\":null,\"created\":1636729554,\"modified\":1636729554,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e7487a0-b23a-11ed-97e9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636729554\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1559774273,\"monitor_id\":null,\"org_id\":321813,\"start\":1636729903,\"end\":null,\"canceled\":null,\"created\":1636729903,\"modified\":1636729903,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e749254-b23a-11ed-97ed-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636729903\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1559786345,\"monitor_id\":null,\"org_id\":321813,\"start\":1636730358,\"end\":null,\"canceled\":null,\"created\":1636730358,\"modified\":1636730358,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e74a334-b23a-11ed-97f1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636730358\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1559924835,\"monitor_id\":null,\"org_id\":321813,\"start\":1636735261,\"end\":null,\"canceled\":null,\"created\":1636735261,\"modified\":1636735261,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e7606f2-b23a-11ed-9851-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636735261\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1559952598,\"monitor_id\":null,\"org_id\":321813,\"start\":1636736236,\"end\":null,\"canceled\":null,\"created\":1636736236,\"modified\":1636736236,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e763384-b23a-11ed-985f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636736236\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1559959372,\"monitor_id\":null,\"org_id\":321813,\"start\":1636736493,\"end\":null,\"canceled\":null,\"created\":1636736493,\"modified\":1636736493,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e7639d8-b23a-11ed-9862-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636736493\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1559984096,\"monitor_id\":null,\"org_id\":321813,\"start\":1636737317,\"end\":null,\"canceled\":null,\"created\":1636737317,\"modified\":1636737317,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e765184-b23a-11ed-9868-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636737317\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1560047092,\"monitor_id\":null,\"org_id\":321813,\"start\":1636739618,\"end\":null,\"canceled\":null,\"created\":1636739618,\"modified\":1636739618,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e769cf2-b23a-11ed-987c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636739618\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1560896094,\"monitor_id\":null,\"org_id\":321813,\"start\":1636773339,\"end\":null,\"canceled\":null,\"created\":1636773339,\"modified\":1636773339,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e7c0642-b23a-11ed-99e4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636773339\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1562320015,\"monitor_id\":null,\"org_id\":321813,\"start\":1636859642,\"end\":null,\"canceled\":null,\"created\":1636859642,\"modified\":1636859642,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e7fb5a8-b23a-11ed-9adf-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636859642\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1563729162,\"monitor_id\":null,\"org_id\":321813,\"start\":1636945706,\"end\":null,\"canceled\":null,\"created\":1636945706,\"modified\":1636945706,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e85012a-b23a-11ed-9c47-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636945706\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1564229999,\"monitor_id\":null,\"org_id\":321813,\"start\":1636969914,\"end\":null,\"canceled\":null,\"created\":1636969914,\"modified\":1636969914,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e88db42-b23a-11ed-9d3a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636969914\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1564235471,\"monitor_id\":null,\"org_id\":321813,\"start\":1636970196,\"end\":null,\"canceled\":null,\"created\":1636970196,\"modified\":1636970196,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e88e5ec-b23a-11ed-9d3c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636970196\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1564319029,\"monitor_id\":null,\"org_id\":321813,\"start\":1636973554,\"end\":null,\"canceled\":null,\"created\":1636973554,\"modified\":1636973554,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e89cc0a-b23a-11ed-9d54-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636973554\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1564606484,\"monitor_id\":null,\"org_id\":321813,\"start\":1636985187,\"end\":null,\"canceled\":null,\"created\":1636985187,\"modified\":1636985187,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e8ae7d4-b23a-11ed-9d97-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636985187\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1564993818,\"monitor_id\":null,\"org_id\":321813,\"start\":1636999245,\"end\":null,\"canceled\":null,\"created\":1636999245,\"modified\":1636999245,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e8ef9aa-b23a-11ed-9e82-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636999245\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1565026130,\"monitor_id\":null,\"org_id\":321813,\"start\":1637000309,\"end\":null,\"canceled\":null,\"created\":1637000309,\"modified\":1637000309,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e8f5d0a-b23a-11ed-9e98-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637000309\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1565064977,\"monitor_id\":null,\"org_id\":321813,\"start\":1637001623,\"end\":null,\"canceled\":null,\"created\":1637001623,\"modified\":1637001623,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e8f7d8a-b23a-11ed-9e9f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637001623\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1565912978,\"monitor_id\":null,\"org_id\":321813,\"start\":1637032060,\"end\":null,\"canceled\":null,\"created\":1637032060,\"modified\":1637032060,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e97913c-b23a-11ed-a0a2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637032060\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1566475235,\"monitor_id\":null,\"org_id\":321813,\"start\":1637055423,\"end\":null,\"canceled\":null,\"created\":1637055423,\"modified\":1637055423,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e9eecde-b23a-11ed-a276-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637055422\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1566483584,\"monitor_id\":null,\"org_id\":321813,\"start\":1637055781,\"end\":null,\"canceled\":null,\"created\":1637055781,\"modified\":1637055781,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e9ef51c-b23a-11ed-a279-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637055781\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1566851694,\"monitor_id\":null,\"org_id\":321813,\"start\":1637069901,\"end\":null,\"canceled\":null,\"created\":1637069901,\"modified\":1637069901,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ea16d06-b23a-11ed-a309-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637069901\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1566900886,\"monitor_id\":null,\"org_id\":321813,\"start\":1637071571,\"end\":null,\"canceled\":null,\"created\":1637071571,\"modified\":1637071571,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ea1df66-b23a-11ed-a321-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637071571\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1566980541,\"monitor_id\":null,\"org_id\":321813,\"start\":1637074225,\"end\":null,\"canceled\":null,\"created\":1637074225,\"modified\":1637074225,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ea215b2-b23a-11ed-a331-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637074225\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1567454334,\"monitor_id\":null,\"org_id\":321813,\"start\":1637089336,\"end\":null,\"canceled\":null,\"created\":1637089336,\"modified\":1637089336,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ea6277e-b23a-11ed-a420-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637089336\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1568272984,\"monitor_id\":null,\"org_id\":321813,\"start\":1637118504,\"end\":null,\"canceled\":null,\"created\":1637118504,\"modified\":1637118504,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1eac032e-b23a-11ed-a57b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637118503\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1569311302,\"monitor_id\":null,\"org_id\":321813,\"start\":1637160870,\"end\":null,\"canceled\":null,\"created\":1637160870,\"modified\":1637160870,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1eb8037c-b23a-11ed-a83b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637160870\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1569938866,\"monitor_id\":null,\"org_id\":321813,\"start\":1637183353,\"end\":null,\"canceled\":null,\"created\":1637183353,\"modified\":1637183353,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ebcc754-b23a-11ed-a938-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637183353\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1570506999,\"monitor_id\":null,\"org_id\":321813,\"start\":1637205028,\"end\":null,\"canceled\":null,\"created\":1637205028,\"modified\":1637205028,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ec1396a-b23a-11ed-aa51-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637205028\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1571062567,\"monitor_id\":null,\"org_id\":321813,\"start\":1637228323,\"end\":null,\"canceled\":null,\"created\":1637228323,\"modified\":1637228323,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ec48192-b23a-11ed-ab44-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637228323\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1571173585,\"monitor_id\":null,\"org_id\":321813,\"start\":1637231013,\"end\":null,\"canceled\":null,\"created\":1637231013,\"modified\":1637231013,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ec4b784-b23a-11ed-ab54-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637231013\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1571270620,\"monitor_id\":null,\"org_id\":321813,\"start\":1637234854,\"end\":null,\"canceled\":null,\"created\":1637234854,\"modified\":1637234854,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ec50d38-b23a-11ed-ab6a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637234854\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1571669479,\"monitor_id\":null,\"org_id\":321813,\"start\":1637250297,\"end\":null,\"canceled\":null,\"created\":1637250297,\"modified\":1637250299,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1379828,\"updater_id\":1379828,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"monitor:tag\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ec7229e-b23a-11ed-abfe-da7ad0900002\",\"scope\":[\"foo:baz\"],\"creator\":{\"id\":1379828,\"email\":\"hippolyte.henry@datadoghq.com\",\"handle\":\"hippolyte.henry@datadoghq.com\",\"name\":\"Hippolyte Henry\"}},{\"id\":1571817917,\"monitor_id\":null,\"org_id\":321813,\"start\":1637255504,\"end\":null,\"canceled\":null,\"created\":1637255504,\"modified\":1637255504,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ec88e18-b23a-11ed-ac5c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637255504\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1571831335,\"monitor_id\":null,\"org_id\":321813,\"start\":1637255943,\"end\":null,\"canceled\":null,\"created\":1637255943,\"modified\":1637255943,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ec8a560-b23a-11ed-ac62-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637255943\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1571837557,\"monitor_id\":null,\"org_id\":321813,\"start\":1637256160,\"end\":null,\"canceled\":null,\"created\":1637256160,\"modified\":1637256160,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ec8b0fa-b23a-11ed-ac65-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637256160\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1571909354,\"monitor_id\":null,\"org_id\":321813,\"start\":1637258859,\"end\":null,\"canceled\":null,\"created\":1637258859,\"modified\":1637258859,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ec9c7e2-b23a-11ed-ac99-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637258859\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1571914418,\"monitor_id\":null,\"org_id\":321813,\"start\":1637259065,\"end\":null,\"canceled\":null,\"created\":1637259065,\"modified\":1637259065,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ec9d020-b23a-11ed-ac9a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637259065\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1572154342,\"monitor_id\":null,\"org_id\":321813,\"start\":1637267828,\"end\":null,\"canceled\":null,\"created\":1637267828,\"modified\":1637267828,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ecc0d4a-b23a-11ed-ad19-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637267828\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1572186666,\"monitor_id\":null,\"org_id\":321813,\"start\":1637269062,\"end\":null,\"canceled\":null,\"created\":1637269062,\"modified\":1637269062,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ecc6ed4-b23a-11ed-ad30-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637269062\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1572767984,\"monitor_id\":null,\"org_id\":321813,\"start\":1637291438,\"end\":null,\"canceled\":null,\"created\":1637291438,\"modified\":1637291438,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ed08334-b23a-11ed-ae38-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637291438\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1573180543,\"monitor_id\":null,\"org_id\":321813,\"start\":1637309866,\"end\":null,\"canceled\":null,\"created\":1637309866,\"modified\":1637309866,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ed3113a-b23a-11ed-aede-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637309865\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1573261418,\"monitor_id\":null,\"org_id\":321813,\"start\":1637313501,\"end\":null,\"canceled\":null,\"created\":1637313501,\"modified\":1637313501,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ed38598-b23a-11ed-aefb-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637313501\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1574927736,\"monitor_id\":null,\"org_id\":321813,\"start\":1637377839,\"end\":null,\"canceled\":null,\"created\":1637377839,\"modified\":1637377839,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"242b7afa-b23a-11ed-b21e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637377839\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1576489994,\"monitor_id\":null,\"org_id\":321813,\"start\":1637464341,\"end\":null,\"canceled\":null,\"created\":1637464341,\"modified\":1637464341,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"242f1cbe-b23a-11ed-b36b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637464341\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1577970828,\"monitor_id\":null,\"org_id\":321813,\"start\":1637550665,\"end\":null,\"canceled\":null,\"created\":1637550665,\"modified\":1637550665,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2435845a-b23a-11ed-b5d0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637550665\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1578310448,\"monitor_id\":null,\"org_id\":321813,\"start\":1637568050,\"end\":null,\"canceled\":null,\"created\":1637568050,\"modified\":1637568050,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24379380-b23a-11ed-b686-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637568050\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1578541387,\"monitor_id\":null,\"org_id\":321813,\"start\":1637578427,\"end\":null,\"canceled\":null,\"created\":1637578427,\"modified\":1637578427,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2439206a-b23a-11ed-b70c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637578427\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1578869288,\"monitor_id\":null,\"org_id\":321813,\"start\":1637590495,\"end\":null,\"canceled\":null,\"created\":1637590495,\"modified\":1637590495,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"243ab790-b23a-11ed-b790-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637590495\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1580044259,\"monitor_id\":null,\"org_id\":321813,\"start\":1637637079,\"end\":null,\"canceled\":null,\"created\":1637637079,\"modified\":1637637079,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"244c2034-b23a-11ed-bdcd-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637637079\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1580564506,\"monitor_id\":null,\"org_id\":321813,\"start\":1637660954,\"end\":null,\"canceled\":null,\"created\":1637660954,\"modified\":1637660954,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"244ef5c0-b23a-11ed-bec0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637660954\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1580650044,\"monitor_id\":null,\"org_id\":321813,\"start\":1637664725,\"end\":null,\"canceled\":null,\"created\":1637664725,\"modified\":1637664725,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"244f4052-b23a-11ed-beda-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637664725\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1581163930,\"monitor_id\":null,\"org_id\":321813,\"start\":1637683881,\"end\":null,\"canceled\":null,\"created\":1637683881,\"modified\":1637683881,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24518e66-b23a-11ed-bfa1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637683881\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1581269152,\"monitor_id\":null,\"org_id\":321813,\"start\":1637687792,\"end\":null,\"canceled\":null,\"created\":1637687792,\"modified\":1637687792,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2452065c-b23a-11ed-bfc4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637687791\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1581397542,\"monitor_id\":null,\"org_id\":321813,\"start\":1637692814,\"end\":null,\"canceled\":null,\"created\":1637692814,\"modified\":1637692814,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2452b390-b23a-11ed-bc45-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637692814\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1581533230,\"monitor_id\":null,\"org_id\":321813,\"start\":1637698344,\"end\":null,\"canceled\":null,\"created\":1637698344,\"modified\":1637698344,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24537a50-b23a-11ed-bc85-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637698344\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1582134179,\"monitor_id\":null,\"org_id\":321813,\"start\":1637723332,\"end\":null,\"canceled\":null,\"created\":1637723332,\"modified\":1637723332,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2455df8e-b23a-11ed-bd4b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637723332\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1582572113,\"monitor_id\":null,\"org_id\":321813,\"start\":1637743540,\"end\":null,\"canceled\":null,\"created\":1637743540,\"modified\":1637743540,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2462b362-b23a-11ed-be67-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637743540\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1583112663,\"monitor_id\":null,\"org_id\":321813,\"start\":1637765237,\"end\":null,\"canceled\":null,\"created\":1637765237,\"modified\":1637765237,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"246e4b6e-b23a-11ed-bf4f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637765236\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1583263181,\"monitor_id\":null,\"org_id\":321813,\"start\":1637771029,\"end\":null,\"canceled\":null,\"created\":1637771029,\"modified\":1637771029,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2470a350-b23a-11ed-bf8a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637771029\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1583524636,\"monitor_id\":null,\"org_id\":321813,\"start\":1637781836,\"end\":null,\"canceled\":null,\"created\":1637781836,\"modified\":1637781836,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2474d5ce-b23a-11ed-82f0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637781836\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1584164394,\"monitor_id\":null,\"org_id\":321813,\"start\":1637810000,\"end\":null,\"canceled\":null,\"created\":1637810000,\"modified\":1637810000,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"247a8348-b23a-11ed-83ad-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637810000\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1584607380,\"monitor_id\":null,\"org_id\":321813,\"start\":1637830893,\"end\":null,\"canceled\":null,\"created\":1637830893,\"modified\":1637830893,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"247e2552-b23a-11ed-8432-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637830893\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1584625872,\"monitor_id\":null,\"org_id\":321813,\"start\":1637831713,\"end\":null,\"canceled\":null,\"created\":1637831713,\"modified\":1637831713,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"247e53ce-b23a-11ed-8438-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637831713\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1584669836,\"monitor_id\":null,\"org_id\":321813,\"start\":1637833600,\"end\":null,\"canceled\":null,\"created\":1637833600,\"modified\":1637833600,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"247fcbe6-b23a-11ed-8466-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637833600\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1584678497,\"monitor_id\":null,\"org_id\":321813,\"start\":1637834002,\"end\":null,\"canceled\":null,\"created\":1637834002,\"modified\":1637834002,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"247fd46a-b23a-11ed-8467-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637834002\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1584696612,\"monitor_id\":null,\"org_id\":321813,\"start\":1637834839,\"end\":null,\"canceled\":null,\"created\":1637834839,\"modified\":1637834839,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24800e30-b23a-11ed-846f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637834839\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1584712523,\"monitor_id\":null,\"org_id\":321813,\"start\":1637835503,\"end\":null,\"canceled\":null,\"created\":1637835503,\"modified\":1637835503,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2480910c-b23a-11ed-8480-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637835503\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1584908512,\"monitor_id\":null,\"org_id\":321813,\"start\":1637842300,\"end\":null,\"canceled\":null,\"created\":1637842300,\"modified\":1637842300,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2481eaac-b23a-11ed-84ae-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637842300\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1584967851,\"monitor_id\":null,\"org_id\":321813,\"start\":1637844860,\"end\":null,\"canceled\":null,\"created\":1637844860,\"modified\":1637844860,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2482bf68-b23a-11ed-84ca-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637844860\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1585035076,\"monitor_id\":null,\"org_id\":321813,\"start\":1637847821,\"end\":null,\"canceled\":null,\"created\":1637847821,\"modified\":1637847821,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2483d93e-b23a-11ed-84ed-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637847821\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1585047389,\"monitor_id\":null,\"org_id\":321813,\"start\":1637848341,\"end\":null,\"canceled\":null,\"created\":1637848341,\"modified\":1637848341,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"248419d0-b23a-11ed-84f8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637848340\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1585076871,\"monitor_id\":null,\"org_id\":321813,\"start\":1637849642,\"end\":null,\"canceled\":null,\"created\":1637849642,\"modified\":1637849642,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2484508a-b23a-11ed-84fe-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637849642\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1585097875,\"monitor_id\":null,\"org_id\":321813,\"start\":1637850553,\"end\":null,\"canceled\":null,\"created\":1637850553,\"modified\":1637850553,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2484d7ee-b23a-11ed-8511-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637850552\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1585123121,\"monitor_id\":null,\"org_id\":321813,\"start\":1637851750,\"end\":null,\"canceled\":null,\"created\":1637851750,\"modified\":1637851750,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"248530e0-b23a-11ed-851f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637851750\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1586000944,\"monitor_id\":null,\"org_id\":321813,\"start\":1637896328,\"end\":null,\"canceled\":null,\"created\":1637896328,\"modified\":1637896328,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"248a886a-b23a-11ed-85f1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637896328\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1586374430,\"monitor_id\":null,\"org_id\":321813,\"start\":1637915810,\"end\":null,\"canceled\":null,\"created\":1637915810,\"modified\":1637915810,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"248db2e2-b23a-11ed-8663-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637915810\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1586523233,\"monitor_id\":null,\"org_id\":321813,\"start\":1637922820,\"end\":null,\"canceled\":null,\"created\":1637922820,\"modified\":1637922820,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"248ee266-b23a-11ed-868c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637922820\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1586754645,\"monitor_id\":null,\"org_id\":321813,\"start\":1637931544,\"end\":null,\"canceled\":null,\"created\":1637931544,\"modified\":1637931544,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2490a2cc-b23a-11ed-86d7-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637931544\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1586802398,\"monitor_id\":null,\"org_id\":321813,\"start\":1637933692,\"end\":null,\"canceled\":null,\"created\":1637933692,\"modified\":1637933692,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24915ed8-b23a-11ed-86f4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637933692\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1587037076,\"monitor_id\":null,\"org_id\":321813,\"start\":1637944507,\"end\":null,\"canceled\":null,\"created\":1637944507,\"modified\":1637944507,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"249396f8-b23a-11ed-8757-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637944507\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1587142767,\"monitor_id\":null,\"org_id\":321813,\"start\":1637949602,\"end\":null,\"canceled\":null,\"created\":1637949602,\"modified\":1637949602,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24945b7e-b23a-11ed-8777-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637949602\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1587752268,\"monitor_id\":null,\"org_id\":321813,\"start\":1637982779,\"end\":null,\"canceled\":null,\"created\":1637982779,\"modified\":1637982779,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24972804-b23a-11ed-87ec-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637982778\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1589252913,\"monitor_id\":null,\"org_id\":321813,\"start\":1638069403,\"end\":null,\"canceled\":null,\"created\":1638069403,\"modified\":1638069403,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"249c4532-b23a-11ed-88d2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638069403\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1590554584,\"monitor_id\":null,\"org_id\":321813,\"start\":1638144981,\"end\":null,\"canceled\":null,\"created\":1638144981,\"modified\":1638144981,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24aa5eec-b23a-11ed-898e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638144980\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1590750873,\"monitor_id\":null,\"org_id\":321813,\"start\":1638155522,\"end\":null,\"canceled\":null,\"created\":1638155522,\"modified\":1638155522,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24ab5f4a-b23a-11ed-89b8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638155522\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1591099102,\"monitor_id\":null,\"org_id\":321813,\"start\":1638172780,\"end\":null,\"canceled\":null,\"created\":1638172780,\"modified\":1638172780,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24ae4926-b23a-11ed-8a2c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638172780\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1591338008,\"monitor_id\":null,\"org_id\":321813,\"start\":1638183038,\"end\":null,\"canceled\":null,\"created\":1638183038,\"modified\":1638183038,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24b0482a-b23a-11ed-8a7b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638183038\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1591622560,\"monitor_id\":null,\"org_id\":321813,\"start\":1638193303,\"end\":null,\"canceled\":null,\"created\":1638193303,\"modified\":1638193303,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24b21ad8-b23a-11ed-8ac3-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638193303\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1591766182,\"monitor_id\":null,\"org_id\":321813,\"start\":1638198767,\"end\":null,\"canceled\":null,\"created\":1638198767,\"modified\":1638198767,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24b482a0-b23a-11ed-8b25-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638198767\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1591992163,\"monitor_id\":null,\"org_id\":321813,\"start\":1638207220,\"end\":null,\"canceled\":null,\"created\":1638207220,\"modified\":1638207220,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24b675ce-b23a-11ed-8b70-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638207220\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1592443041,\"monitor_id\":null,\"org_id\":321813,\"start\":1638224647,\"end\":null,\"canceled\":null,\"created\":1638224647,\"modified\":1638224647,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24bb56ac-b23a-11ed-8c34-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638224647\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1592459794,\"monitor_id\":null,\"org_id\":321813,\"start\":1638225205,\"end\":null,\"canceled\":null,\"created\":1638225205,\"modified\":1638225205,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24bb64da-b23a-11ed-8c37-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638225204\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1592474329,\"monitor_id\":null,\"org_id\":321813,\"start\":1638225787,\"end\":null,\"canceled\":null,\"created\":1638225787,\"modified\":1638225787,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24bb7718-b23a-11ed-8c3b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638225787\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1592536909,\"monitor_id\":null,\"org_id\":321813,\"start\":1638228199,\"end\":null,\"canceled\":null,\"created\":1638228199,\"modified\":1638228199,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24bbbb74-b23a-11ed-8c49-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638228199\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1592873593,\"monitor_id\":null,\"org_id\":321813,\"start\":1638241807,\"end\":null,\"canceled\":null,\"created\":1638241807,\"modified\":1638241807,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24bec710-b23a-11ed-8cd1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638241807\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1593492007,\"monitor_id\":null,\"org_id\":321813,\"start\":1638268377,\"end\":null,\"canceled\":null,\"created\":1638268377,\"modified\":1638268377,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24c5c52e-b23a-11ed-8e03-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638268377\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1593521140,\"monitor_id\":null,\"org_id\":321813,\"start\":1638269641,\"end\":null,\"canceled\":null,\"created\":1638269641,\"modified\":1638269641,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24c5e9aa-b23a-11ed-8e0b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638269641\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1593544154,\"monitor_id\":null,\"org_id\":321813,\"start\":1638270563,\"end\":null,\"canceled\":null,\"created\":1638270563,\"modified\":1638270563,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24c601e2-b23a-11ed-8e0e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638270563\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1593807371,\"monitor_id\":null,\"org_id\":321813,\"start\":1638279673,\"end\":null,\"canceled\":null,\"created\":1638279673,\"modified\":1638279673,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24c89b6e-b23a-11ed-8e79-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638279673\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1593818495,\"monitor_id\":null,\"org_id\":321813,\"start\":1638280178,\"end\":null,\"canceled\":null,\"created\":1638280178,\"modified\":1638280178,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24c90b80-b23a-11ed-8e85-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638280178\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1593880271,\"monitor_id\":null,\"org_id\":321813,\"start\":1638282631,\"end\":null,\"canceled\":null,\"created\":1638282631,\"modified\":1638282631,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24c98ede-b23a-11ed-8e9c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638282630\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1593936726,\"monitor_id\":null,\"org_id\":321813,\"start\":1638284588,\"end\":null,\"canceled\":null,\"created\":1638284588,\"modified\":1638284588,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24c9eed8-b23a-11ed-8ead-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638284587\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1594095175,\"monitor_id\":null,\"org_id\":321813,\"start\":1638290554,\"end\":null,\"canceled\":null,\"created\":1638290554,\"modified\":1638290554,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24cbba7e-b23a-11ed-8ef5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638290553\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1594629959,\"monitor_id\":null,\"org_id\":321813,\"start\":1638310632,\"end\":null,\"canceled\":null,\"created\":1638310632,\"modified\":1638310632,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24d22760-b23a-11ed-9016-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638310632\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1594843926,\"monitor_id\":null,\"org_id\":321813,\"start\":1638318723,\"end\":null,\"canceled\":null,\"created\":1638318723,\"modified\":1638318723,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24d3b878-b23a-11ed-9062-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638318723\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1595093335,\"monitor_id\":null,\"org_id\":321813,\"start\":1638328385,\"end\":null,\"canceled\":null,\"created\":1638328385,\"modified\":1638328385,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24d50a66-b23a-11ed-909b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638328384\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1595670399,\"monitor_id\":null,\"org_id\":321813,\"start\":1638353391,\"end\":null,\"canceled\":null,\"created\":1638353391,\"modified\":1638353391,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24da6c68-b23a-11ed-9162-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638353391\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1595829752,\"monitor_id\":null,\"org_id\":321813,\"start\":1638360115,\"end\":null,\"canceled\":null,\"created\":1638360115,\"modified\":1638360115,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24db91c4-b23a-11ed-9191-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638360115\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1596237831,\"monitor_id\":null,\"org_id\":321813,\"start\":1638374462,\"end\":null,\"canceled\":null,\"created\":1638374462,\"modified\":1638374462,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24e2b5e4-b23a-11ed-92e2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638374462\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1596411827,\"monitor_id\":null,\"org_id\":321813,\"start\":1638380946,\"end\":null,\"canceled\":null,\"created\":1638380946,\"modified\":1638380946,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24e5d06c-b23a-11ed-9385-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638380946\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1596696599,\"monitor_id\":null,\"org_id\":321813,\"start\":1638391588,\"end\":null,\"canceled\":null,\"created\":1638391588,\"modified\":1638391588,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24ea50b0-b23a-11ed-9460-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638391588\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1597310543,\"monitor_id\":null,\"org_id\":321813,\"start\":1638414653,\"end\":null,\"canceled\":null,\"created\":1638414653,\"modified\":1638414653,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24f06f40-b23a-11ed-95a0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638414653\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1597832219,\"monitor_id\":null,\"org_id\":321813,\"start\":1638436663,\"end\":null,\"canceled\":null,\"created\":1638436663,\"modified\":1638436663,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24f53160-b23a-11ed-96a8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638436663\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1597850977,\"monitor_id\":null,\"org_id\":321813,\"start\":1638437325,\"end\":null,\"canceled\":null,\"created\":1638437325,\"modified\":1638437325,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24f53ade-b23a-11ed-96ab-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638437325\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1598301428,\"monitor_id\":null,\"org_id\":321813,\"start\":1638453944,\"end\":null,\"canceled\":null,\"created\":1638453944,\"modified\":1638453944,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24f8c316-b23a-11ed-974c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638453944\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1598374055,\"monitor_id\":null,\"org_id\":321813,\"start\":1638456761,\"end\":null,\"canceled\":null,\"created\":1638456761,\"modified\":1638456761,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24f98f6c-b23a-11ed-976f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638456761\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1598639974,\"monitor_id\":null,\"org_id\":321813,\"start\":1638466692,\"end\":null,\"canceled\":null,\"created\":1638466692,\"modified\":1638466692,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24fc952c-b23a-11ed-9819-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638466692\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1598771026,\"monitor_id\":null,\"org_id\":321813,\"start\":1638471457,\"end\":null,\"canceled\":null,\"created\":1638471457,\"modified\":1638471457,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24fe018c-b23a-11ed-9852-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638471456\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1599554155,\"monitor_id\":null,\"org_id\":321813,\"start\":1638501009,\"end\":null,\"canceled\":null,\"created\":1638501009,\"modified\":1638501009,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2504631a-b23a-11ed-99b2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638501009\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1600143925,\"monitor_id\":null,\"org_id\":321813,\"start\":1638526899,\"end\":null,\"canceled\":null,\"created\":1638526899,\"modified\":1638526899,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25098908-b23a-11ed-9ad0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638526899\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1600271521,\"monitor_id\":null,\"org_id\":321813,\"start\":1638532347,\"end\":null,\"canceled\":null,\"created\":1638532347,\"modified\":1638532347,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2509eb1e-b23a-11ed-9ae5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638532347\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1600281709,\"monitor_id\":null,\"org_id\":321813,\"start\":1638532840,\"end\":null,\"canceled\":null,\"created\":1638532840,\"modified\":1638532840,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2509f3c0-b23a-11ed-9ae7-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638532840\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1600902250,\"monitor_id\":null,\"org_id\":321813,\"start\":1638555718,\"end\":null,\"canceled\":null,\"created\":1638555718,\"modified\":1638555718,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"250f25c0-b23a-11ed-9c03-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638555718\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1600905230,\"monitor_id\":null,\"org_id\":321813,\"start\":1638555816,\"end\":null,\"canceled\":null,\"created\":1638555816,\"modified\":1638555816,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"250f29ee-b23a-11ed-9c04-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638555816\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1600926224,\"monitor_id\":null,\"org_id\":321813,\"start\":1638556552,\"end\":null,\"canceled\":null,\"created\":1638556552,\"modified\":1638556552,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"250f3c68-b23a-11ed-9c08-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638556552\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1600927193,\"monitor_id\":null,\"org_id\":321813,\"start\":1638556601,\"end\":null,\"canceled\":null,\"created\":1638556601,\"modified\":1638556601,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"250f479e-b23a-11ed-9c0a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638556600\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1600938433,\"monitor_id\":null,\"org_id\":321813,\"start\":1638556986,\"end\":null,\"canceled\":null,\"created\":1638556986,\"modified\":1638556986,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"250f56da-b23a-11ed-9c0e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638556986\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1600948452,\"monitor_id\":null,\"org_id\":321813,\"start\":1638557410,\"end\":null,\"canceled\":null,\"created\":1638557410,\"modified\":1638557410,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"250f75ac-b23a-11ed-9c12-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638557410\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1600994635,\"monitor_id\":null,\"org_id\":321813,\"start\":1638559145,\"end\":null,\"canceled\":null,\"created\":1638559145,\"modified\":1638559145,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"250fd678-b23a-11ed-9c1d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638559145\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1601680069,\"monitor_id\":null,\"org_id\":321813,\"start\":1638587266,\"end\":null,\"canceled\":null,\"created\":1638587266,\"modified\":1638587266,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2512c0c2-b23a-11ed-9ccb-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638587266\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1603240248,\"monitor_id\":null,\"org_id\":321813,\"start\":1638673984,\"end\":null,\"canceled\":null,\"created\":1638673984,\"modified\":1638673984,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"251867f2-b23a-11ed-9e2e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638673984\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1604792041,\"monitor_id\":null,\"org_id\":321813,\"start\":1638760257,\"end\":null,\"canceled\":null,\"created\":1638760257,\"modified\":1638760257,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"251e8a2e-b23a-11ed-9f99-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638760257\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1607009711,\"monitor_id\":null,\"org_id\":321813,\"start\":1638846605,\"end\":null,\"canceled\":null,\"created\":1638846605,\"modified\":1638846605,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"252f7a14-b23a-11ed-a368-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638846604\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1608019752,\"monitor_id\":null,\"org_id\":321813,\"start\":1638887255,\"end\":null,\"canceled\":null,\"created\":1638887255,\"modified\":1638887255,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"253cd89e-b23a-11ed-a632-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638887255\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1608061115,\"monitor_id\":null,\"org_id\":321813,\"start\":1638888300,\"end\":null,\"canceled\":null,\"created\":1638888300,\"modified\":1638888300,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"253d4c8e-b23a-11ed-a64e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638888299\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1608076740,\"monitor_id\":null,\"org_id\":321813,\"start\":1638888763,\"end\":null,\"canceled\":null,\"created\":1638888763,\"modified\":1638888763,\"message\":\"java-cancelDowntimesByScopeTest-local-1638888763-3\",\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"253d7bfa-b23a-11ed-a655-da7ad0900002\",\"scope\":[\"env:stage\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1608076762,\"monitor_id\":null,\"org_id\":321813,\"start\":1638888764,\"end\":null,\"canceled\":null,\"created\":1638888764,\"modified\":1638888764,\"message\":\"java-cancelDowntimesByScopeTest-local-1638888763-3\",\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"253d7eca-b23a-11ed-a656-da7ad0900002\",\"scope\":[\"env:stage\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1608077285,\"monitor_id\":null,\"org_id\":321813,\"start\":1638888789,\"end\":null,\"canceled\":null,\"created\":1638888789,\"modified\":1638888789,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"253d84ba-b23a-11ed-a657-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638888789\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1608135434,\"monitor_id\":null,\"org_id\":321813,\"start\":1638890121,\"end\":null,\"canceled\":null,\"created\":1638890121,\"modified\":1638890121,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"253dd726-b23a-11ed-a668-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638890120\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1608149153,\"monitor_id\":null,\"org_id\":321813,\"start\":1638890565,\"end\":null,\"canceled\":null,\"created\":1638890565,\"modified\":1638890565,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"253deb58-b23a-11ed-a66b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638890565\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1609043089,\"monitor_id\":null,\"org_id\":321813,\"start\":1638933140,\"end\":null,\"canceled\":null,\"created\":1638933140,\"modified\":1638933140,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"254e4732-b23a-11ed-aa68-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638933140\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1611377681,\"monitor_id\":null,\"org_id\":321813,\"start\":1639019360,\"end\":null,\"canceled\":null,\"created\":1639019360,\"modified\":1639019360,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"256286c0-b23a-11ed-af36-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639019360\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1611858967,\"monitor_id\":null,\"org_id\":321813,\"start\":1639039090,\"end\":null,\"canceled\":null,\"created\":1639039090,\"modified\":1639039090,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2565f65c-b23a-11ed-b000-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639039090\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1612013252,\"monitor_id\":null,\"org_id\":321813,\"start\":1639045076,\"end\":null,\"canceled\":null,\"created\":1639045076,\"modified\":1639045076,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25670826-b23a-11ed-b041-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639045076\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1612040533,\"monitor_id\":null,\"org_id\":321813,\"start\":1639046120,\"end\":null,\"canceled\":null,\"created\":1639046120,\"modified\":1639046120,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25679584-b23a-11ed-b061-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639046120\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1612042473,\"monitor_id\":null,\"org_id\":321813,\"start\":1639046199,\"end\":null,\"canceled\":null,\"created\":1639046199,\"modified\":1639046199,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2567a0ec-b23a-11ed-b063-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639046198\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1612387908,\"monitor_id\":null,\"org_id\":321813,\"start\":1639059519,\"end\":null,\"canceled\":null,\"created\":1639059519,\"modified\":1639059519,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"256c3968-b23a-11ed-b12b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639059519\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1612718228,\"monitor_id\":null,\"org_id\":321813,\"start\":1639070105,\"end\":null,\"canceled\":null,\"created\":1639070105,\"modified\":1639070105,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"256f7c68-b23a-11ed-b20f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639070105\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1613697170,\"monitor_id\":null,\"org_id\":321813,\"start\":1639105733,\"end\":null,\"canceled\":null,\"created\":1639105733,\"modified\":1639105733,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2578c58e-b23a-11ed-b46b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639105732\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614261294,\"monitor_id\":null,\"org_id\":321813,\"start\":1639129392,\"end\":null,\"canceled\":null,\"created\":1639129392,\"modified\":1639129392,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257c3ad4-b23a-11ed-b55a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639129392\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614265735,\"monitor_id\":null,\"org_id\":321813,\"start\":1639129606,\"end\":null,\"canceled\":null,\"created\":1639129606,\"modified\":1639129606,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257c4c5e-b23a-11ed-b560-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639129606\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614312588,\"monitor_id\":null,\"org_id\":321813,\"start\":1639131518,\"end\":null,\"canceled\":null,\"created\":1639131518,\"modified\":1639131518,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257c6d42-b23a-11ed-b569-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639131518\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614314241,\"monitor_id\":null,\"org_id\":321813,\"start\":1639131573,\"end\":null,\"canceled\":null,\"created\":1639131573,\"modified\":1639131573,\"message\":\"java-cancelDowntimesByScopeTest-local-1639131573-3\",\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257c75ee-b23a-11ed-b56a-da7ad0900002\",\"scope\":[\"env:stage\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614314306,\"monitor_id\":null,\"org_id\":321813,\"start\":1639131575,\"end\":null,\"canceled\":null,\"created\":1639131575,\"modified\":1639131575,\"message\":\"java-cancelDowntimesByScopeTest-local-1639131575-3\",\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257c7878-b23a-11ed-b56b-da7ad0900002\",\"scope\":[\"env:stage\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614362536,\"monitor_id\":null,\"org_id\":321813,\"start\":1639133522,\"end\":null,\"canceled\":null,\"created\":1639133522,\"modified\":1639133522,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257cc9ae-b23a-11ed-b57e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639133521\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614473226,\"monitor_id\":null,\"org_id\":321813,\"start\":1639138145,\"end\":null,\"canceled\":null,\"created\":1639138145,\"modified\":1639138145,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257db3c8-b23a-11ed-b5ba-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639138145\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614595356,\"monitor_id\":null,\"org_id\":321813,\"start\":1639143225,\"end\":null,\"canceled\":null,\"created\":1639143225,\"modified\":1639143225,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257e1be2-b23a-11ed-b5d1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639143225\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614614143,\"monitor_id\":null,\"org_id\":321813,\"start\":1639144017,\"end\":null,\"canceled\":null,\"created\":1639144017,\"modified\":1639144017,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257e3b9a-b23a-11ed-b5d9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639144017\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614639003,\"monitor_id\":null,\"org_id\":321813,\"start\":1639144849,\"end\":null,\"canceled\":null,\"created\":1639144849,\"modified\":1639144849,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257e51ca-b23a-11ed-b5e1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639144848\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614655057,\"monitor_id\":null,\"org_id\":321813,\"start\":1639145477,\"end\":null,\"canceled\":null,\"created\":1639145477,\"modified\":1639145477,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257e6912-b23a-11ed-b5e2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639145477\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614657426,\"monitor_id\":null,\"org_id\":321813,\"start\":1639145572,\"end\":null,\"canceled\":null,\"created\":1639145572,\"modified\":1639145572,\"message\":\"java-cancelDowntimesByScopeTest-local-1639145572-3\",\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257e72cc-b23a-11ed-b5e4-da7ad0900002\",\"scope\":[\"env:stage\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614657459,\"monitor_id\":null,\"org_id\":321813,\"start\":1639145574,\"end\":null,\"canceled\":null,\"created\":1639145574,\"modified\":1639145574,\"message\":\"java-cancelDowntimesByScopeTest-local-1639145574-3\",\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257e7722-b23a-11ed-b5e5-da7ad0900002\",\"scope\":[\"env:stage\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614695601,\"monitor_id\":null,\"org_id\":321813,\"start\":1639146967,\"end\":null,\"canceled\":null,\"created\":1639146967,\"modified\":1639146967,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257ee342-b23a-11ed-b603-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639146967\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614823304,\"monitor_id\":null,\"org_id\":321813,\"start\":1639150802,\"end\":null,\"canceled\":null,\"created\":1639150802,\"modified\":1639150802,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257f5f98-b23a-11ed-b621-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639150802\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614903496,\"monitor_id\":null,\"org_id\":321813,\"start\":1639153012,\"end\":null,\"canceled\":null,\"created\":1639153012,\"modified\":1639153012,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257fa9bc-b23a-11ed-b633-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639153012\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614948050,\"monitor_id\":null,\"org_id\":321813,\"start\":1639154514,\"end\":null,\"canceled\":null,\"created\":1639154514,\"modified\":1639154514,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257fc046-b23a-11ed-b63b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639154514\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614963817,\"monitor_id\":null,\"org_id\":321813,\"start\":1639155120,\"end\":null,\"canceled\":null,\"created\":1639155120,\"modified\":1639155120,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257fc7e4-b23a-11ed-b63e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639155120\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614969241,\"monitor_id\":null,\"org_id\":321813,\"start\":1639155342,\"end\":null,\"canceled\":null,\"created\":1639155342,\"modified\":1639155342,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257ff084-b23a-11ed-b64a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639155342\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614992116,\"monitor_id\":null,\"org_id\":321813,\"start\":1639156110,\"end\":null,\"canceled\":null,\"created\":1639156110,\"modified\":1639156110,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25801096-b23a-11ed-b64f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639156110\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1615000084,\"monitor_id\":null,\"org_id\":321813,\"start\":1639156370,\"end\":null,\"canceled\":null,\"created\":1639156370,\"modified\":1639156370,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"258020d6-b23a-11ed-b651-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639156370\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1615105566,\"monitor_id\":null,\"org_id\":321813,\"start\":1639160379,\"end\":null,\"canceled\":null,\"created\":1639160379,\"modified\":1639160379,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2580cf5e-b23a-11ed-b680-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639160379\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1615113697,\"monitor_id\":null,\"org_id\":321813,\"start\":1639160690,\"end\":null,\"canceled\":null,\"created\":1639160690,\"modified\":1639160690,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2580d990-b23a-11ed-b684-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639160690\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1615202151,\"monitor_id\":null,\"org_id\":321813,\"start\":1639164074,\"end\":null,\"canceled\":null,\"created\":1639164074,\"modified\":1639164074,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"258171d4-b23a-11ed-b6ac-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639164074\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1615472151,\"monitor_id\":null,\"org_id\":321813,\"start\":1639173820,\"end\":null,\"canceled\":null,\"created\":1639173820,\"modified\":1639173820,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25831732-b23a-11ed-b711-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639173820\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1615481540,\"monitor_id\":null,\"org_id\":321813,\"start\":1639174155,\"end\":null,\"canceled\":null,\"created\":1639174155,\"modified\":1639174155,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25837be6-b23a-11ed-b719-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639174155\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1615502160,\"monitor_id\":null,\"org_id\":321813,\"start\":1639174815,\"end\":null,\"canceled\":null,\"created\":1639174815,\"modified\":1639174815,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2583b868-b23a-11ed-b72c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639174815\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1615546278,\"monitor_id\":null,\"org_id\":321813,\"start\":1639176409,\"end\":null,\"canceled\":null,\"created\":1639176409,\"modified\":1639176409,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25840034-b23a-11ed-b73c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639176409\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1615931969,\"monitor_id\":null,\"org_id\":321813,\"start\":1639192157,\"end\":null,\"canceled\":null,\"created\":1639192157,\"modified\":1639192157,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25853364-b23a-11ed-b796-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639192157\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1616665820,\"monitor_id\":null,\"org_id\":321813,\"start\":1639230299,\"end\":null,\"canceled\":null,\"created\":1639230300,\"modified\":1639230300,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"258718fa-b23a-11ed-b827-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639230299\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1617504631,\"monitor_id\":null,\"org_id\":321813,\"start\":1639278552,\"end\":null,\"canceled\":null,\"created\":1639278552,\"modified\":1639278552,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2589071e-b23a-11ed-b8b5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639278552\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1619067521,\"monitor_id\":null,\"org_id\":321813,\"start\":1639365074,\"end\":null,\"canceled\":null,\"created\":1639365074,\"modified\":1639365074,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"258e5c64-b23a-11ed-ba12-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639365073\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1619461149,\"monitor_id\":null,\"org_id\":321813,\"start\":1639382356,\"end\":null,\"canceled\":null,\"created\":1639382356,\"modified\":1639382356,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2591598c-b23a-11ed-badc-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639382356\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1619484810,\"monitor_id\":null,\"org_id\":321813,\"start\":1639383448,\"end\":null,\"canceled\":null,\"created\":1639383448,\"modified\":1639383448,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2591a68a-b23a-11ed-baf6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639383448\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1619581092,\"monitor_id\":null,\"org_id\":321813,\"start\":1639387725,\"end\":null,\"canceled\":null,\"created\":1639387725,\"modified\":1639387725,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25922e2a-b23a-11ed-bb14-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639387725\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1619610004,\"monitor_id\":null,\"org_id\":321813,\"start\":1639389029,\"end\":null,\"canceled\":null,\"created\":1639389029,\"modified\":1639389029,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25924504-b23a-11ed-bb1b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639389029\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1620370388,\"monitor_id\":null,\"org_id\":321813,\"start\":1639415685,\"end\":null,\"canceled\":null,\"created\":1639415685,\"modified\":1639415685,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25996672-b23a-11ed-bd3c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639415684\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1620770255,\"monitor_id\":null,\"org_id\":321813,\"start\":1639429639,\"end\":null,\"canceled\":null,\"created\":1639429639,\"modified\":1639429639,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"259cc204-b23a-11ed-be30-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639429639\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1620809177,\"monitor_id\":null,\"org_id\":321813,\"start\":1639431034,\"end\":null,\"canceled\":null,\"created\":1639431034,\"modified\":1639431034,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"259cea2c-b23a-11ed-be3a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639431034\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1621365885,\"monitor_id\":null,\"org_id\":321813,\"start\":1639451240,\"end\":null,\"canceled\":null,\"created\":1639451240,\"modified\":1639451240,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25a6df14-b23a-11ed-b036-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639451240\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1621692149,\"monitor_id\":null,\"org_id\":321813,\"start\":1639464373,\"end\":null,\"canceled\":null,\"created\":1639464373,\"modified\":1639464373,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25a8e570-b23a-11ed-b0ce-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639464373\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1622000734,\"monitor_id\":null,\"org_id\":321813,\"start\":1639477211,\"end\":null,\"canceled\":null,\"created\":1639477211,\"modified\":1639477211,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ab7998-b23a-11ed-b171-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639477211\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1622153650,\"monitor_id\":null,\"org_id\":321813,\"start\":1639482482,\"end\":null,\"canceled\":null,\"created\":1639482482,\"modified\":1639482482,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ac08c2-b23a-11ed-b197-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639482482\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1622168948,\"monitor_id\":null,\"org_id\":321813,\"start\":1639483142,\"end\":null,\"canceled\":null,\"created\":1639483142,\"modified\":1639483142,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ac1812-b23a-11ed-b19b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639483142\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1622328315,\"monitor_id\":null,\"org_id\":321813,\"start\":1639489128,\"end\":null,\"canceled\":null,\"created\":1639489128,\"modified\":1639489128,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ac94fe-b23a-11ed-b1bd-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639489128\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1622361804,\"monitor_id\":null,\"org_id\":321813,\"start\":1639490281,\"end\":null,\"canceled\":null,\"created\":1639490281,\"modified\":1639490281,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25acd158-b23a-11ed-b1cf-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639490281\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1622417624,\"monitor_id\":null,\"org_id\":321813,\"start\":1639492221,\"end\":null,\"canceled\":null,\"created\":1639492221,\"modified\":1639492221,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ad34a4-b23a-11ed-b1f1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639492221\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1622582580,\"monitor_id\":null,\"org_id\":321813,\"start\":1639498216,\"end\":null,\"canceled\":null,\"created\":1639498216,\"modified\":1639498216,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ae28e6-b23a-11ed-b23c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639498215\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1622728228,\"monitor_id\":null,\"org_id\":321813,\"start\":1639502139,\"end\":null,\"canceled\":null,\"created\":1639502139,\"modified\":1639502139,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25aeda02-b23a-11ed-b271-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639502139\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1622734618,\"monitor_id\":null,\"org_id\":321813,\"start\":1639502370,\"end\":null,\"canceled\":null,\"created\":1639502370,\"modified\":1639502370,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25aee1b4-b23a-11ed-b274-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639502369\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1622740019,\"monitor_id\":null,\"org_id\":321813,\"start\":1639502568,\"end\":null,\"canceled\":null,\"created\":1639502568,\"modified\":1639502568,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25aeece0-b23a-11ed-b277-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639502568\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1622766192,\"monitor_id\":null,\"org_id\":321813,\"start\":1639503555,\"end\":null,\"canceled\":null,\"created\":1639503555,\"modified\":1639503555,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25aefe9c-b23a-11ed-b27b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639503555\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1623750058,\"monitor_id\":null,\"org_id\":321813,\"start\":1639537832,\"end\":null,\"canceled\":null,\"created\":1639537832,\"modified\":1639537832,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25b51840-b23a-11ed-b400-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639537832\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1624387376,\"monitor_id\":null,\"org_id\":321813,\"start\":1639564927,\"end\":null,\"canceled\":null,\"created\":1639564927,\"modified\":1639564927,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ba2038-b23a-11ed-b56c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639564927\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1624392318,\"monitor_id\":null,\"org_id\":321813,\"start\":1639565108,\"end\":null,\"canceled\":null,\"created\":1639565108,\"modified\":1639565108,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ba2fb0-b23a-11ed-b56f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639565108\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1624800914,\"monitor_id\":null,\"org_id\":321813,\"start\":1639580899,\"end\":null,\"canceled\":null,\"created\":1639580899,\"modified\":1639580899,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25bdf870-b23a-11ed-b691-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639580899\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1624813214,\"monitor_id\":null,\"org_id\":321813,\"start\":1639581359,\"end\":null,\"canceled\":null,\"created\":1639581359,\"modified\":1639581359,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25be11b6-b23a-11ed-b69b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639581359\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1624940552,\"monitor_id\":null,\"org_id\":321813,\"start\":1639585461,\"end\":null,\"canceled\":null,\"created\":1639585461,\"modified\":1639585461,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25bf6160-b23a-11ed-b6e0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639585460\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1625123813,\"monitor_id\":null,\"org_id\":321813,\"start\":1639590434,\"end\":null,\"canceled\":null,\"created\":1639590434,\"modified\":1639590434,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25c0bc22-b23a-11ed-b73b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639590434\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1625156436,\"monitor_id\":null,\"org_id\":321813,\"start\":1639591611,\"end\":null,\"canceled\":null,\"created\":1639591611,\"modified\":1639591611,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25c10240-b23a-11ed-b74d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639591611\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1625367284,\"monitor_id\":null,\"org_id\":321813,\"start\":1639598890,\"end\":null,\"canceled\":null,\"created\":1639598890,\"modified\":1639598890,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25c21f22-b23a-11ed-b792-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639598890\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1626081135,\"monitor_id\":null,\"org_id\":321813,\"start\":1639624064,\"end\":null,\"canceled\":null,\"created\":1639624064,\"modified\":1639624064,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25c6ffb0-b23a-11ed-b8d9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639624064\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1626652078,\"monitor_id\":null,\"org_id\":321813,\"start\":1639647512,\"end\":null,\"canceled\":null,\"created\":1639647512,\"modified\":1639647512,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25cda586-b23a-11ed-bab8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639647512\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1626665572,\"monitor_id\":null,\"org_id\":321813,\"start\":1639648165,\"end\":null,\"canceled\":null,\"created\":1639648165,\"modified\":1639648165,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25cdaafe-b23a-11ed-baba-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639648165\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1626770282,\"monitor_id\":null,\"org_id\":321813,\"start\":1639652200,\"end\":null,\"canceled\":null,\"created\":1639652200,\"modified\":1639652200,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ce8870-b23a-11ed-bb03-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639652200\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1627086846,\"monitor_id\":null,\"org_id\":321813,\"start\":1639664080,\"end\":null,\"canceled\":null,\"created\":1639664080,\"modified\":1639664080,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25d090de-b23a-11ed-bb98-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639664080\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1627105697,\"monitor_id\":null,\"org_id\":321813,\"start\":1639664780,\"end\":null,\"canceled\":null,\"created\":1639664780,\"modified\":1639664780,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25d09c1e-b23a-11ed-bb9c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639664780\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1627121580,\"monitor_id\":null,\"org_id\":321813,\"start\":1639665315,\"end\":null,\"canceled\":null,\"created\":1639665315,\"modified\":1639665315,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25d0ad62-b23a-11ed-bba1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639665314\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1627198809,\"monitor_id\":null,\"org_id\":321813,\"start\":1639668046,\"end\":null,\"canceled\":null,\"created\":1639668046,\"modified\":1639668046,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25d0fe3e-b23a-11ed-bbb9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639668046\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1627228324,\"monitor_id\":null,\"org_id\":321813,\"start\":1639669044,\"end\":null,\"canceled\":null,\"created\":1639669044,\"modified\":1639669044,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25d11e82-b23a-11ed-bbc0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639669043\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1627253307,\"monitor_id\":null,\"org_id\":321813,\"start\":1639669946,\"end\":null,\"canceled\":null,\"created\":1639669946,\"modified\":1639669946,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25d13ac0-b23a-11ed-bbc9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639669946\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1627255866,\"monitor_id\":null,\"org_id\":321813,\"start\":1639670056,\"end\":null,\"canceled\":null,\"created\":1639670056,\"modified\":1639670056,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25d13d4a-b23a-11ed-bbca-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639670056\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1627287838,\"monitor_id\":null,\"org_id\":321813,\"start\":1639671056,\"end\":null,\"canceled\":null,\"created\":1639671056,\"modified\":1639671056,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25d175e4-b23a-11ed-bbde-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639671056\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1627290441,\"monitor_id\":null,\"org_id\":321813,\"start\":1639671124,\"end\":null,\"canceled\":null,\"created\":1639671124,\"modified\":1639671124,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25d17882-b23a-11ed-bbdf-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639671124\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1627310036,\"monitor_id\":null,\"org_id\":321813,\"start\":1639671786,\"end\":null,\"canceled\":null,\"created\":1639671786,\"modified\":1639671786,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25d18d86-b23a-11ed-bbe6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639671786\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1627388723,\"monitor_id\":null,\"org_id\":321813,\"start\":1639673905,\"end\":null,\"canceled\":null,\"created\":1639673905,\"modified\":1639673905,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25d23722-b23a-11ed-bc12-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639673905\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1627401710,\"monitor_id\":null,\"org_id\":321813,\"start\":1639674334,\"end\":null,\"canceled\":null,\"created\":1639674334,\"modified\":1639674334,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25d242d0-b23a-11ed-bc16-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639674334\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1628514017,\"monitor_id\":null,\"org_id\":321813,\"start\":1639710445,\"end\":null,\"canceled\":null,\"created\":1639710445,\"modified\":1639710445,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25e7c65a-b23a-11ed-bcd0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639710444\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1628625988,\"monitor_id\":null,\"org_id\":321813,\"start\":1639715081,\"end\":null,\"canceled\":null,\"created\":1639715081,\"modified\":1639715081,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25e8ec88-b23a-11ed-bd1e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639715081\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1628749988,\"monitor_id\":null,\"org_id\":321813,\"start\":1639720581,\"end\":null,\"canceled\":null,\"created\":1639720581,\"modified\":1639720581,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25e99926-b23a-11ed-bd4f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639720581\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1629192171,\"monitor_id\":null,\"org_id\":321813,\"start\":1639739751,\"end\":null,\"canceled\":null,\"created\":1639739751,\"modified\":1639739751,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ec7b8c-b23a-11ed-be3a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639739751\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1629222341,\"monitor_id\":null,\"org_id\":321813,\"start\":1639740961,\"end\":null,\"canceled\":null,\"created\":1639740961,\"modified\":1639740961,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ec9c5c-b23a-11ed-be41-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639740961\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1629282598,\"monitor_id\":null,\"org_id\":321813,\"start\":1639743536,\"end\":null,\"canceled\":null,\"created\":1639743536,\"modified\":1639743536,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ecb9bc-b23a-11ed-be4c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639743536\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1629283229,\"monitor_id\":null,\"org_id\":321813,\"start\":1639743564,\"end\":null,\"canceled\":null,\"created\":1639743564,\"modified\":1639743564,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ecbc3c-b23a-11ed-be4d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639743564\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1629388680,\"monitor_id\":null,\"org_id\":321813,\"start\":1639747790,\"end\":null,\"canceled\":null,\"created\":1639747790,\"modified\":1639747790,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ecffee-b23a-11ed-be5e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639747790\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1629391375,\"monitor_id\":null,\"org_id\":321813,\"start\":1639747869,\"end\":null,\"canceled\":null,\"created\":1639747869,\"modified\":1639747869,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ed02b4-b23a-11ed-be5f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639747869\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1629409601,\"monitor_id\":null,\"org_id\":321813,\"start\":1639748641,\"end\":null,\"canceled\":null,\"created\":1639748641,\"modified\":1639748641,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ed23c0-b23a-11ed-be6a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639748641\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1629775609,\"monitor_id\":null,\"org_id\":321813,\"start\":1639761380,\"end\":null,\"canceled\":null,\"created\":1639761380,\"modified\":1639761380,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25eee93a-b23a-11ed-bee8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639761379\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1629837263,\"monitor_id\":null,\"org_id\":321813,\"start\":1639763231,\"end\":null,\"canceled\":null,\"created\":1639763231,\"modified\":1639763231,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ef0898-b23a-11ed-bef3-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639763231\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1629839973,\"monitor_id\":null,\"org_id\":321813,\"start\":1639763342,\"end\":null,\"canceled\":null,\"created\":1639763342,\"modified\":1639763342,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ef26f2-b23a-11ed-beff-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639763341\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1629970583,\"monitor_id\":null,\"org_id\":321813,\"start\":1639767403,\"end\":null,\"canceled\":null,\"created\":1639767403,\"modified\":1639767403,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25f034ac-b23a-11ed-bf57-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639767403\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1630232797,\"monitor_id\":null,\"org_id\":321813,\"start\":1639776767,\"end\":null,\"canceled\":null,\"created\":1639776767,\"modified\":1639776767,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25f1a3b4-b23a-11ed-bfc0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639776767\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1630337986,\"monitor_id\":null,\"org_id\":321813,\"start\":1639780936,\"end\":null,\"canceled\":null,\"created\":1639780936,\"modified\":1639780936,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25f20354-b23a-11ed-bfdc-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639780936\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1630723839,\"monitor_id\":null,\"org_id\":321813,\"start\":1639796887,\"end\":null,\"canceled\":null,\"created\":1639796887,\"modified\":1639796887,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25fe2fb2-b23a-11ed-835d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639796887\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1631531963,\"monitor_id\":null,\"org_id\":321813,\"start\":1639839063,\"end\":null,\"canceled\":null,\"created\":1639839063,\"modified\":1639839063,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ff865a-b23a-11ed-83be-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639839063\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1631761044,\"monitor_id\":null,\"org_id\":321813,\"start\":1639850744,\"end\":null,\"canceled\":null,\"created\":1639850744,\"modified\":1639850744,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ffd63c-b23a-11ed-83d5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639850744\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1631862384,\"monitor_id\":null,\"org_id\":321813,\"start\":1639857365,\"end\":null,\"canceled\":null,\"created\":1639857365,\"modified\":1639857365,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ffece4-b23a-11ed-83dc-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639857365\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1631956671,\"monitor_id\":null,\"org_id\":321813,\"start\":1639862926,\"end\":null,\"canceled\":null,\"created\":1639862926,\"modified\":1639862926,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"26000b34-b23a-11ed-83e6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639862925\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1632321068,\"monitor_id\":null,\"org_id\":321813,\"start\":1639883716,\"end\":null,\"canceled\":null,\"created\":1639883716,\"modified\":1639883716,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"260065ca-b23a-11ed-8402-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639883716\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1632817060,\"monitor_id\":null,\"org_id\":321813,\"start\":1639911417,\"end\":null,\"canceled\":null,\"created\":1639911417,\"modified\":1639911417,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"26017334-b23a-11ed-844c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639911417\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1632850532,\"monitor_id\":null,\"org_id\":321813,\"start\":1639913273,\"end\":null,\"canceled\":null,\"created\":1639913273,\"modified\":1639913273,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"260178ca-b23a-11ed-844e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639913272\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1632864126,\"monitor_id\":null,\"org_id\":321813,\"start\":1639914080,\"end\":null,\"canceled\":null,\"created\":1639914080,\"modified\":1639914080,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"26019300-b23a-11ed-8458-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639914080\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1632931360,\"monitor_id\":null,\"org_id\":321813,\"start\":1639917988,\"end\":null,\"canceled\":null,\"created\":1639917988,\"modified\":1639917988,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2601b312-b23a-11ed-8464-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639917988\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1633851553,\"monitor_id\":null,\"org_id\":321813,\"start\":1639969879,\"end\":null,\"canceled\":null,\"created\":1639969879,\"modified\":1639969879,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2603cc88-b23a-11ed-8502-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639969879\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1634214343,\"monitor_id\":null,\"org_id\":321813,\"start\":1639988072,\"end\":null,\"canceled\":null,\"created\":1639988072,\"modified\":1639988072,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2606053e-b23a-11ed-85b4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639988072\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1634289989,\"monitor_id\":null,\"org_id\":321813,\"start\":1639991598,\"end\":null,\"canceled\":null,\"created\":1639991598,\"modified\":1639991598,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2606352c-b23a-11ed-85c0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639991598\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1634318571,\"monitor_id\":null,\"org_id\":321813,\"start\":1639992864,\"end\":null,\"canceled\":null,\"created\":1639992864,\"modified\":1639992864,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"260681c6-b23a-11ed-85d4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639992863\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1634401227,\"monitor_id\":null,\"org_id\":321813,\"start\":1639996655,\"end\":null,\"canceled\":null,\"created\":1639996655,\"modified\":1639996655,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2606ceec-b23a-11ed-85e9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639996655\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1635947048,\"monitor_id\":null,\"org_id\":321813,\"start\":1640056444,\"end\":null,\"canceled\":null,\"created\":1640056444,\"modified\":1640056444,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"260e8ad8-b23a-11ed-881f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640056444\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1636482234,\"monitor_id\":null,\"org_id\":321813,\"start\":1640079823,\"end\":null,\"canceled\":null,\"created\":1640079823,\"modified\":1640079823,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2613c836-b23a-11ed-897d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640079823\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1636522835,\"monitor_id\":null,\"org_id\":321813,\"start\":1640081693,\"end\":null,\"canceled\":null,\"created\":1640081693,\"modified\":1640081693,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2613edac-b23a-11ed-8987-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640081693\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1636533109,\"monitor_id\":null,\"org_id\":321813,\"start\":1640082069,\"end\":null,\"canceled\":null,\"created\":1640082069,\"modified\":1640082069,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2613fbee-b23a-11ed-898a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640082068\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1636580714,\"monitor_id\":null,\"org_id\":321813,\"start\":1640084275,\"end\":null,\"canceled\":null,\"created\":1640084275,\"modified\":1640084275,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"261437b2-b23a-11ed-899c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640084275\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1637328889,\"monitor_id\":null,\"org_id\":321813,\"start\":1640112151,\"end\":null,\"canceled\":null,\"created\":1640112151,\"modified\":1640112151,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2617b914-b23a-11ed-8a91-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640112151\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1638100453,\"monitor_id\":null,\"org_id\":321813,\"start\":1640142489,\"end\":null,\"canceled\":null,\"created\":1640142489,\"modified\":1640142489,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"261b7ed2-b23a-11ed-8bac-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640142489\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1640240196,\"monitor_id\":null,\"org_id\":321813,\"start\":1640229118,\"end\":null,\"canceled\":null,\"created\":1640229118,\"modified\":1640229118,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"262bf8a2-b23a-11ed-9046-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640229118\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1642201887,\"monitor_id\":null,\"org_id\":321813,\"start\":1640315567,\"end\":null,\"canceled\":null,\"created\":1640315567,\"modified\":1640315567,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"26364aa0-b23a-11ed-9330-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640315567\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1643888459,\"monitor_id\":null,\"org_id\":321813,\"start\":1640401930,\"end\":null,\"canceled\":null,\"created\":1640401930,\"modified\":1640401930,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"263ca18e-b23a-11ed-94fe-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640401930\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1645349861,\"monitor_id\":null,\"org_id\":321813,\"start\":1640488518,\"end\":null,\"canceled\":null,\"created\":1640488518,\"modified\":1640488518,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"263f263e-b23a-11ed-95a2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640488518\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1646825150,\"monitor_id\":null,\"org_id\":321813,\"start\":1640575292,\"end\":null,\"canceled\":null,\"created\":1640575292,\"modified\":1640575292,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2641f71a-b23a-11ed-9656-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640575292\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1648518816,\"monitor_id\":null,\"org_id\":321813,\"start\":1640661085,\"end\":null,\"canceled\":null,\"created\":1640661085,\"modified\":1640661085,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"264cfac0-b23a-11ed-9996-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640661085\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1650234564,\"monitor_id\":null,\"org_id\":321813,\"start\":1640747637,\"end\":null,\"canceled\":null,\"created\":1640747637,\"modified\":1640747637,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"265459be-b23a-11ed-9bad-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640747636\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1651944158,\"monitor_id\":null,\"org_id\":321813,\"start\":1640833679,\"end\":null,\"canceled\":null,\"created\":1640833679,\"modified\":1640833679,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"265ce94e-b23a-11ed-9e57-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640833678\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1653645261,\"monitor_id\":null,\"org_id\":321813,\"start\":1640920246,\"end\":null,\"canceled\":null,\"created\":1640920246,\"modified\":1640920246,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2664206a-b23a-11ed-a0c9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640920246\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1655241332,\"monitor_id\":null,\"org_id\":321813,\"start\":1641007167,\"end\":null,\"canceled\":null,\"created\":1641007167,\"modified\":1641007167,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"266a0908-b23a-11ed-a291-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1641007167\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1656671629,\"monitor_id\":null,\"org_id\":321813,\"start\":1641093291,\"end\":null,\"canceled\":null,\"created\":1641093291,\"modified\":1641093291,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"266da130-b23a-11ed-a3b8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1641093291\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1658141310,\"monitor_id\":null,\"org_id\":321813,\"start\":1641179565,\"end\":null,\"canceled\":null,\"created\":1641179565,\"modified\":1641179565,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2673e2de-b23a-11ed-a5d3-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1641179565\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1660007013,\"monitor_id\":null,\"org_id\":321813,\"start\":1641265850,\"end\":null,\"canceled\":null,\"created\":1641265850,\"modified\":1641265850,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2680b1b2-b23a-11ed-a9c0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1641265850\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1662092297,\"monitor_id\":null,\"org_id\":321813,\"start\":1641352066,\"end\":null,\"canceled\":null,\"created\":1641352066,\"modified\":1641352066,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"268e3986-b23a-11ed-ad4c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1641352065\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1664277957,\"monitor_id\":null,\"org_id\":321813,\"start\":1641438613,\"end\":null,\"canceled\":null,\"created\":1641438613,\"modified\":1641438613,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"269af50e-b23a-11ed-b119-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1641438613\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1666505884,\"monitor_id\":null,\"org_id\":321813,\"start\":1641525266,\"end\":null,\"canceled\":null,\"created\":1641525266,\"modified\":1641525266,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"26a7c7f2-b23a-11ed-b4f7-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1641525266\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1668649522,\"monitor_id\":null,\"org_id\":321813,\"start\":1641611520,\"end\":null,\"canceled\":null,\"created\":1641611520,\"modified\":1641611520,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"26b41fb6-b23a-11ed-b8f8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1641611520\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1670195513,\"monitor_id\":null,\"org_id\":321813,\"start\":1641697752,\"end\":null,\"canceled\":null,\"created\":1641697752,\"modified\":1641697752,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"26b94432-b23a-11ed-ba89-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1641697752\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1671741450,\"monitor_id\":null,\"org_id\":321813,\"start\":1641784138,\"end\":null,\"canceled\":null,\"created\":1641784138,\"modified\":1641784138,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"26bef3aa-b23a-11ed-bc4f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1641784138\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1673924915,\"monitor_id\":null,\"org_id\":321813,\"start\":1641870544,\"end\":null,\"canceled\":null,\"created\":1641870544,\"modified\":1641870544,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"26cc3b32-b23a-11ed-a3cb-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1641870544\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1676224729,\"monitor_id\":null,\"org_id\":321813,\"start\":1641956959,\"end\":null,\"canceled\":null,\"created\":1641956959,\"modified\":1641956959,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"26dcfb34-b23a-11ed-a877-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1641956959\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1677666738,\"monitor_id\":null,\"org_id\":321813,\"start\":1642012121,\"end\":null,\"canceled\":null,\"created\":1642012121,\"modified\":1642012121,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"26eacd68-b23a-11ed-ac25-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1642012121\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1678587077,\"monitor_id\":null,\"org_id\":321813,\"start\":1642043401,\"end\":null,\"canceled\":null,\"created\":1642043401,\"modified\":1642043401,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"26f0ab34-b23a-11ed-add8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1642043401\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1680949487,\"monitor_id\":null,\"org_id\":321813,\"start\":1642129689,\"end\":null,\"canceled\":null,\"created\":1642129689,\"modified\":1642129689,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"26fe3fba-b23a-11ed-b1b9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1642129688\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1683185163,\"monitor_id\":null,\"org_id\":321813,\"start\":1642216747,\"end\":null,\"canceled\":null,\"created\":1642216747,\"modified\":1642216747,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"270df7d4-b23a-11ed-b5f1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1642216747\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1684768252,\"monitor_id\":null,\"org_id\":321813,\"start\":1642302665,\"end\":null,\"canceled\":null,\"created\":1642302665,\"modified\":1642302665,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"27124d20-b23a-11ed-b747-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1642302665\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1686328689,\"monitor_id\":null,\"org_id\":321813,\"start\":1642389268,\"end\":null,\"canceled\":null,\"created\":1642389268,\"modified\":1642389268,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2717ff2c-b23a-11ed-b907-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1642389268\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1688275916,\"monitor_id\":null,\"org_id\":321813,\"start\":1642475273,\"end\":null,\"canceled\":null,\"created\":1642475273,\"modified\":1642475273,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2728d6ee-b23a-11ed-bdd5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1642475272\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1689016370,\"monitor_id\":null,\"org_id\":321813,\"start\":1642507886,\"end\":null,\"canceled\":null,\"created\":1642507886,\"modified\":1642507886,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"272d67ae-b23a-11ed-bf09-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1642507886\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1690565091,\"monitor_id\":null,\"org_id\":321813,\"start\":1642561743,\"end\":null,\"canceled\":null,\"created\":1642561743,\"modified\":1642561743,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"273864ec-b23a-11ed-89b5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1642561742\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1692909274,\"monitor_id\":null,\"org_id\":321813,\"start\":1642648071,\"end\":null,\"canceled\":null,\"created\":1642648071,\"modified\":1642648071,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2748b338-b23a-11ed-8edf-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1642648071\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1695251632,\"monitor_id\":null,\"org_id\":321813,\"start\":1642734932,\"end\":null,\"canceled\":null,\"created\":1642734932,\"modified\":1642734932,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"27994cd0-b23a-11ed-a94c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1642734932\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1697478492,\"monitor_id\":null,\"org_id\":321813,\"start\":1642820863,\"end\":null,\"canceled\":null,\"created\":1642820863,\"modified\":1642820863,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"27a3fe96-b23a-11ed-ac45-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1642820863\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1699116451,\"monitor_id\":null,\"org_id\":321813,\"start\":1642907357,\"end\":null,\"canceled\":null,\"created\":1642907357,\"modified\":1642907357,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"27a74ab0-b23a-11ed-ad44-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1642907357\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1700744995,\"monitor_id\":null,\"org_id\":321813,\"start\":1642993788,\"end\":null,\"canceled\":null,\"created\":1642993788,\"modified\":1642993788,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"27aaebfc-b23a-11ed-ae68-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1642993788\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1703016436,\"monitor_id\":null,\"org_id\":321813,\"start\":1643080145,\"end\":null,\"canceled\":null,\"created\":1643080145,\"modified\":1643080145,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"27b54886-b23a-11ed-b1ab-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1643080145\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1705444324,\"monitor_id\":null,\"org_id\":321813,\"start\":1643166892,\"end\":null,\"canceled\":null,\"created\":1643166892,\"modified\":1643166892,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"27c1ad56-b23a-11ed-b5d5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1643166892\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1707839104,\"monitor_id\":null,\"org_id\":321813,\"start\":1643252880,\"end\":null,\"canceled\":null,\"created\":1643252880,\"modified\":1643252880,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"27ce63e8-b23a-11ed-b97b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1643252879\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1710342923,\"monitor_id\":null,\"org_id\":321813,\"start\":1643339520,\"end\":null,\"canceled\":null,\"created\":1643339520,\"modified\":1643339520,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"27e0100c-b23a-11ed-bead-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1643339520\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1712645429,\"monitor_id\":null,\"org_id\":321813,\"start\":1643425630,\"end\":null,\"canceled\":null,\"created\":1643425630,\"modified\":1643425630,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"27ee2c00-b23a-11ed-8a20-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1643425630\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1714333265,\"monitor_id\":null,\"org_id\":321813,\"start\":1643512440,\"end\":null,\"canceled\":null,\"created\":1643512440,\"modified\":1643512440,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"27f58266-b23a-11ed-8c2a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1643512440\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1715997189,\"monitor_id\":null,\"org_id\":321813,\"start\":1643598527,\"end\":null,\"canceled\":null,\"created\":1643598527,\"modified\":1643598527,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"27fd48ac-b23a-11ed-8e83-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1643598527\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1716549277,\"monitor_id\":null,\"org_id\":321813,\"start\":1643621871,\"end\":null,\"canceled\":null,\"created\":1643621871,\"modified\":1643621871,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"28003b0c-b23a-11ed-8f61-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1643621871\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1717011251,\"monitor_id\":null,\"org_id\":321813,\"start\":1643639864,\"end\":null,\"canceled\":null,\"created\":1643639864,\"modified\":1643639864,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"28031264-b23a-11ed-9037-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1643639864\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1718301512,\"monitor_id\":null,\"org_id\":321813,\"start\":1643685322,\"end\":null,\"canceled\":null,\"created\":1643685322,\"modified\":1643685322,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"281063ba-b23a-11ed-93d1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1643685322\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1720691685,\"monitor_id\":null,\"org_id\":321813,\"start\":1643771604,\"end\":null,\"canceled\":null,\"created\":1643771604,\"modified\":1643771604,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2820dbf0-b23a-11ed-98db-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1643771603\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1723064406,\"monitor_id\":null,\"org_id\":321813,\"start\":1643857635,\"end\":null,\"canceled\":null,\"created\":1643857635,\"modified\":1643857635,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2833ceea-b23a-11ed-9eb2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1643857635\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1725487374,\"monitor_id\":null,\"org_id\":321813,\"start\":1643944563,\"end\":null,\"canceled\":null,\"created\":1643944563,\"modified\":1643944563,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"28447fd8-b23a-11ed-a437-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1643944563\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1726548530,\"monitor_id\":null,\"org_id\":321813,\"start\":1643986937,\"end\":null,\"canceled\":null,\"created\":1643986937,\"modified\":1643986937,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"284ae3a0-b23a-11ed-a65f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1643986937\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1727745044,\"monitor_id\":null,\"org_id\":321813,\"start\":1644030627,\"end\":null,\"canceled\":null,\"created\":1644030627,\"modified\":1644030627,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2850502e-b23a-11ed-a81a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1644030627\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1729521637,\"monitor_id\":null,\"org_id\":321813,\"start\":1644117362,\"end\":null,\"canceled\":null,\"created\":1644117362,\"modified\":1644117362,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"28556b68-b23a-11ed-a9b8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1644117362\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1731306399,\"monitor_id\":null,\"org_id\":321813,\"start\":1644203372,\"end\":null,\"canceled\":null,\"created\":1644203372,\"modified\":1644203372,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"285b54f6-b23a-11ed-ab93-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1644203372\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1733766531,\"monitor_id\":null,\"org_id\":321813,\"start\":1644290006,\"end\":null,\"canceled\":null,\"created\":1644290006,\"modified\":1644290006,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"286e38aa-b23a-11ed-b181-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1644290006\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1736378285,\"monitor_id\":null,\"org_id\":321813,\"start\":1644376521,\"end\":null,\"canceled\":null,\"created\":1644376521,\"modified\":1644376521,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"28802e48-b23a-11ed-b6cf-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1644376521\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1738838057,\"monitor_id\":null,\"org_id\":321813,\"start\":1644462477,\"end\":null,\"canceled\":null,\"created\":1644462477,\"modified\":1644462477,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2893a630-b23a-11ed-bc47-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1644462477\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1741269413,\"monitor_id\":null,\"org_id\":321813,\"start\":1644549455,\"end\":null,\"canceled\":null,\"created\":1644549455,\"modified\":1644549455,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"28a4a340-b23a-11ed-9fc0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1644549455\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1743536969,\"monitor_id\":null,\"org_id\":321813,\"start\":1644635922,\"end\":null,\"canceled\":null,\"created\":1644635922,\"modified\":1644635922,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"28b6d2ea-b23a-11ed-a60a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1644635922\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1745112857,\"monitor_id\":null,\"org_id\":321813,\"start\":1644721692,\"end\":null,\"canceled\":null,\"created\":1644721692,\"modified\":1644721692,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"28bcf08a-b23a-11ed-a813-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1644721692\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1746738563,\"monitor_id\":null,\"org_id\":321813,\"start\":1644808881,\"end\":null,\"canceled\":null,\"created\":1644808881,\"modified\":1644808881,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"28c33e7c-b23a-11ed-a9ec-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1644808880\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1749056659,\"monitor_id\":null,\"org_id\":321813,\"start\":1644894575,\"end\":null,\"canceled\":null,\"created\":1644894575,\"modified\":1644894575,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"28d5ec20-b23a-11ed-af25-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1644894575\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1751502909,\"monitor_id\":null,\"org_id\":321813,\"start\":1644981427,\"end\":null,\"canceled\":null,\"created\":1644981427,\"modified\":1644981427,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"28ecd6d8-b23a-11ed-b58d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1644981426\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1753923935,\"monitor_id\":null,\"org_id\":321813,\"start\":1645067951,\"end\":null,\"canceled\":null,\"created\":1645067951,\"modified\":1645067951,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"29004740-b23a-11ed-bad6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1645067951\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1756296396,\"monitor_id\":null,\"org_id\":321813,\"start\":1645154069,\"end\":null,\"canceled\":null,\"created\":1645154069,\"modified\":1645154069,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2914d052-b23a-11ed-9fd3-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1645154069\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1758537216,\"monitor_id\":null,\"org_id\":321813,\"start\":1645240135,\"end\":null,\"canceled\":null,\"created\":1645240135,\"modified\":1645240135,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"29278d1e-b23a-11ed-a6c1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1645240135\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1760164024,\"monitor_id\":null,\"org_id\":321813,\"start\":1645326472,\"end\":null,\"canceled\":null,\"created\":1645326472,\"modified\":1645326472,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"292fecf2-b23a-11ed-aa04-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1645326472\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1761781571,\"monitor_id\":null,\"org_id\":321813,\"start\":1645412860,\"end\":null,\"canceled\":null,\"created\":1645412860,\"modified\":1645412860,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"293c86ec-b23a-11ed-ae1f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1645412860\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1763791717,\"monitor_id\":null,\"org_id\":321813,\"start\":1645499242,\"end\":null,\"canceled\":null,\"created\":1645499242,\"modified\":1645499242,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"295eafec-b23a-11ed-b3e1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1645499241\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1766071128,\"monitor_id\":null,\"org_id\":321813,\"start\":1645585999,\"end\":null,\"canceled\":null,\"created\":1645585999,\"modified\":1645585999,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2977e750-b23a-11ed-b98d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1645585999\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1768417284,\"monitor_id\":null,\"org_id\":321813,\"start\":1645672633,\"end\":null,\"canceled\":null,\"created\":1645672633,\"modified\":1645672633,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"29892646-b23a-11ed-bdcc-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1645672633\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1770826743,\"monitor_id\":null,\"org_id\":321813,\"start\":1645758830,\"end\":null,\"canceled\":null,\"created\":1645758830,\"modified\":1645758830,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"299a9070-b23a-11ed-8ede-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1645758830\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1773084467,\"monitor_id\":null,\"org_id\":321813,\"start\":1645845241,\"end\":null,\"canceled\":null,\"created\":1645845241,\"modified\":1645845241,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"29b17dee-b23a-11ed-95be-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1645845241\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1774663724,\"monitor_id\":null,\"org_id\":321813,\"start\":1645932075,\"end\":null,\"canceled\":null,\"created\":1645932075,\"modified\":1645932075,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"29b6e040-b23a-11ed-975a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1645932074\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1776192639,\"monitor_id\":null,\"org_id\":321813,\"start\":1646017628,\"end\":null,\"canceled\":null,\"created\":1646017628,\"modified\":1646017628,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"29be3fd4-b23a-11ed-998a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1646017627\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1778389013,\"monitor_id\":null,\"org_id\":321813,\"start\":1646104673,\"end\":null,\"canceled\":null,\"created\":1646104673,\"modified\":1646104673,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"29cea3f6-b23a-11ed-9e5f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1646104673\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1780658435,\"monitor_id\":null,\"org_id\":321813,\"start\":1646190522,\"end\":null,\"canceled\":null,\"created\":1646190522,\"modified\":1646190522,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"29dc643c-b23a-11ed-a25e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1646190522\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1782994705,\"monitor_id\":null,\"org_id\":321813,\"start\":1646277088,\"end\":null,\"canceled\":null,\"created\":1646277088,\"modified\":1646277088,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"29f1fff4-b23a-11ed-a939-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1646277087\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1785296242,\"monitor_id\":null,\"org_id\":321813,\"start\":1646363375,\"end\":null,\"canceled\":null,\"created\":1646363375,\"modified\":1646363375,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2a022668-b23a-11ed-ae37-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1646363375\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1787522336,\"monitor_id\":null,\"org_id\":321813,\"start\":1646449788,\"end\":null,\"canceled\":null,\"created\":1646449788,\"modified\":1646449788,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2a10db68-b23a-11ed-b2bb-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1646449788\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1789147103,\"monitor_id\":null,\"org_id\":321813,\"start\":1646536084,\"end\":null,\"canceled\":null,\"created\":1646536084,\"modified\":1646536084,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2a177c3e-b23a-11ed-b4c6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1646536084\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1790773223,\"monitor_id\":null,\"org_id\":321813,\"start\":1646622875,\"end\":null,\"canceled\":null,\"created\":1646622875,\"modified\":1646622875,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2a1e5766-b23a-11ed-b6ee-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1646622874\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1793050032,\"monitor_id\":null,\"org_id\":321813,\"start\":1646709390,\"end\":null,\"canceled\":null,\"created\":1646709390,\"modified\":1646709390,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2a319af6-b23a-11ed-bce9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1646709390\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1794190145,\"monitor_id\":null,\"org_id\":321813,\"start\":1646753030,\"end\":null,\"canceled\":null,\"created\":1646753030,\"modified\":1646753030,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2a3aa1e6-b23a-11ed-bfc4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1646753030\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1795396373,\"monitor_id\":null,\"org_id\":321813,\"start\":1646795633,\"end\":null,\"canceled\":null,\"created\":1646795633,\"modified\":1646795633,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2a45c72e-b23a-11ed-b7b9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1646795632\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1797781020,\"monitor_id\":null,\"org_id\":321813,\"start\":1646881843,\"end\":null,\"canceled\":null,\"created\":1646881843,\"modified\":1646881843,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2a55b580-b23a-11ed-bd1b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1646881843\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1798442580,\"monitor_id\":null,\"org_id\":321813,\"start\":1646908081,\"end\":null,\"canceled\":null,\"created\":1646908081,\"modified\":1646908081,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2a5d4d86-b23a-11ed-bfaf-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1646908081\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1800175469,\"monitor_id\":null,\"org_id\":321813,\"start\":1646968550,\"end\":null,\"canceled\":null,\"created\":1646968550,\"modified\":1646968550,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2a7bb88e-b23a-11ed-a6e3-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1646968550\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1802387879,\"monitor_id\":null,\"org_id\":321813,\"start\":1647054678,\"end\":null,\"canceled\":null,\"created\":1647054678,\"modified\":1647054678,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2a91f162-b23a-11ed-ae3f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1647054678\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1804017517,\"monitor_id\":null,\"org_id\":321813,\"start\":1647140998,\"end\":null,\"canceled\":null,\"created\":1647140998,\"modified\":1647140998,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2a97c0f6-b23a-11ed-b039-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1647140998\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1805657409,\"monitor_id\":null,\"org_id\":321813,\"start\":1647227677,\"end\":null,\"canceled\":null,\"created\":1647227677,\"modified\":1647227677,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2a9d7cbc-b23a-11ed-b24e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1647227677\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1807970043,\"monitor_id\":null,\"org_id\":321813,\"start\":1647314104,\"end\":null,\"canceled\":null,\"created\":1647314104,\"modified\":1647314104,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2ab2af88-b23a-11ed-b9c1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1647314104\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1810345454,\"monitor_id\":null,\"org_id\":321813,\"start\":1647400236,\"end\":null,\"canceled\":null,\"created\":1647400236,\"modified\":1647400236,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2ac73d0e-b23a-11ed-b1bb-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1647400236\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1811718568,\"monitor_id\":null,\"org_id\":321813,\"start\":1647451031,\"end\":null,\"canceled\":null,\"created\":1647451031,\"modified\":1647451031,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2adb8a2a-b23a-11ed-b8f7-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1647451031\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":1811806028,\"monitor_id\":null,\"org_id\":321813,\"start\":1647453902,\"end\":null,\"canceled\":null,\"created\":1647453902,\"modified\":1647453902,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2adc1fa8-b23a-11ed-b927-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1647453901\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":1811903156,\"monitor_id\":null,\"org_id\":321813,\"start\":1647457119,\"end\":null,\"canceled\":null,\"created\":1647457119,\"modified\":1647457119,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2adcc67e-b23a-11ed-b967-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1647457119\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":1812761787,\"monitor_id\":null,\"org_id\":321813,\"start\":1647486857,\"end\":null,\"canceled\":null,\"created\":1647486857,\"modified\":1647486857,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2ae25634-b23a-11ed-bb79-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1647486857\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1815255560,\"monitor_id\":null,\"org_id\":321813,\"start\":1647573353,\"end\":null,\"canceled\":null,\"created\":1647573353,\"modified\":1647573353,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2af7cf1e-b23a-11ed-a2d9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1647573353\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1817847031,\"monitor_id\":null,\"org_id\":321813,\"start\":1647659700,\"end\":null,\"canceled\":null,\"created\":1647659700,\"modified\":1647659700,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2b0a5dc8-b23a-11ed-a9c1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1647659700\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1819547361,\"monitor_id\":null,\"org_id\":321813,\"start\":1647746077,\"end\":null,\"canceled\":null,\"created\":1647746077,\"modified\":1647746077,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2b142efc-b23a-11ed-ad67-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1647746077\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1821225168,\"monitor_id\":null,\"org_id\":321813,\"start\":1647832868,\"end\":null,\"canceled\":null,\"created\":1647832868,\"modified\":1647832868,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2b1dd7c2-b23a-11ed-b137-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1647832868\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1823541491,\"monitor_id\":null,\"org_id\":321813,\"start\":1647918899,\"end\":null,\"canceled\":null,\"created\":1647918899,\"modified\":1647918899,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2b2edce8-b23a-11ed-b73c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1647918899\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1826018056,\"monitor_id\":null,\"org_id\":321813,\"start\":1648005425,\"end\":null,\"canceled\":null,\"created\":1648005425,\"modified\":1648005425,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2b54064e-b23a-11ed-9ab6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1648005425\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1828488795,\"monitor_id\":null,\"org_id\":321813,\"start\":1648092065,\"end\":null,\"canceled\":null,\"created\":1648092065,\"modified\":1648092065,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2b6d0d9c-b23a-11ed-a3f3-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1648092065\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1830950805,\"monitor_id\":null,\"org_id\":321813,\"start\":1648177836,\"end\":null,\"canceled\":null,\"created\":1648177836,\"modified\":1648177836,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2b8792d4-b23a-11ed-acfc-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1648177836\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1833326968,\"monitor_id\":null,\"org_id\":321813,\"start\":1648264326,\"end\":null,\"canceled\":null,\"created\":1648264326,\"modified\":1648264326,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2b99071c-b23a-11ed-b360-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1648264326\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1835027464,\"monitor_id\":null,\"org_id\":321813,\"start\":1648351630,\"end\":null,\"canceled\":null,\"created\":1648351630,\"modified\":1648351630,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2b9db050-b23a-11ed-b529-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1648351630\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1836725870,\"monitor_id\":null,\"org_id\":321813,\"start\":1648438576,\"end\":null,\"canceled\":null,\"created\":1648438576,\"modified\":1648438576,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2ba267da-b23a-11ed-b6e9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1648438576\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1839144600,\"monitor_id\":null,\"org_id\":321813,\"start\":1648523975,\"end\":null,\"canceled\":null,\"created\":1648523975,\"modified\":1648523975,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2bbaec56-b23a-11ed-badf-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1648523975\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1841904928,\"monitor_id\":null,\"org_id\":321813,\"start\":1648610323,\"end\":null,\"canceled\":null,\"created\":1648610323,\"modified\":1648610323,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2bdae48e-b23a-11ed-883f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1648610323\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1844782983,\"monitor_id\":null,\"org_id\":321813,\"start\":1648696593,\"end\":null,\"canceled\":null,\"created\":1648696593,\"modified\":1648696593,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2becfda4-b23a-11ed-8efd-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1648696593\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1847404717,\"monitor_id\":null,\"org_id\":321813,\"start\":1648784218,\"end\":null,\"canceled\":null,\"created\":1648784218,\"modified\":1648784218,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2c074efc-b23a-11ed-990d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1648784218\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1849816602,\"monitor_id\":null,\"org_id\":321813,\"start\":1648869851,\"end\":null,\"canceled\":null,\"created\":1648869851,\"modified\":1648869851,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2c1f4908-b23a-11ed-a243-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1648869851\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1851645100,\"monitor_id\":null,\"org_id\":321813,\"start\":1648955757,\"end\":null,\"canceled\":null,\"created\":1648955757,\"modified\":1648955757,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2c23d02c-b23a-11ed-a406-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1648955757\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1853502539,\"monitor_id\":null,\"org_id\":321813,\"start\":1649042537,\"end\":null,\"canceled\":null,\"created\":1649042537,\"modified\":1649042537,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2c294fb6-b23a-11ed-a610-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649042537\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1856000213,\"monitor_id\":null,\"org_id\":321813,\"start\":1649129055,\"end\":null,\"canceled\":null,\"created\":1649129055,\"modified\":1649129055,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2c41a304-b23a-11ed-af07-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649129055\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1858572715,\"monitor_id\":null,\"org_id\":321813,\"start\":1649215547,\"end\":null,\"canceled\":null,\"created\":1649215547,\"modified\":1649215547,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2c5f728a-b23a-11ed-b9d2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649215547\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1861169007,\"monitor_id\":null,\"org_id\":321813,\"start\":1649302917,\"end\":null,\"canceled\":null,\"created\":1649302917,\"modified\":1649302917,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2c825cbe-b23a-11ed-9814-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649302917\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1863692277,\"monitor_id\":null,\"org_id\":321813,\"start\":1649388097,\"end\":null,\"canceled\":null,\"created\":1649388097,\"modified\":1649388097,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2c9342f4-b23a-11ed-9e7a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649388097\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1866148286,\"monitor_id\":null,\"org_id\":321813,\"start\":1649474015,\"end\":null,\"canceled\":null,\"created\":1649474015,\"modified\":1649474015,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2c9f5ed6-b23a-11ed-a33a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649474015\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1867958278,\"monitor_id\":null,\"org_id\":321813,\"start\":1649561140,\"end\":null,\"canceled\":null,\"created\":1649561140,\"modified\":1649561140,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2ca3a608-b23a-11ed-a4c2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649561140\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1869810857,\"monitor_id\":null,\"org_id\":321813,\"start\":1649647541,\"end\":null,\"canceled\":null,\"created\":1649647541,\"modified\":1649647541,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2caae512-b23a-11ed-a759-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649647541\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1872399707,\"monitor_id\":null,\"org_id\":321813,\"start\":1649734394,\"end\":null,\"canceled\":null,\"created\":1649734394,\"modified\":1649734394,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2ccad05c-b23a-11ed-b300-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649734394\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1873057087,\"monitor_id\":null,\"org_id\":321813,\"start\":1649757287,\"end\":null,\"canceled\":null,\"created\":1649757287,\"modified\":1649757287,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2cd40582-b23a-11ed-b68d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649757287\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1873627858,\"monitor_id\":null,\"org_id\":321813,\"start\":1649774235,\"end\":null,\"canceled\":null,\"created\":1649774235,\"modified\":1649774235,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2cdae28a-b23a-11ed-b92f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649774235\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1875165373,\"monitor_id\":null,\"org_id\":321813,\"start\":1649820147,\"end\":null,\"canceled\":null,\"created\":1649820147,\"modified\":1649820147,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2cf47fba-b23a-11ed-a032-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649820147\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1876852632,\"monitor_id\":null,\"org_id\":321813,\"start\":1649874368,\"end\":null,\"canceled\":null,\"created\":1649874368,\"modified\":1649874368,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d026a62-b23a-11ed-a526-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649874368\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1877911839,\"monitor_id\":null,\"org_id\":321813,\"start\":1649907229,\"end\":null,\"canceled\":null,\"created\":1649907229,\"modified\":1649907229,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d0806e8-b23a-11ed-a72c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649907229\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1878944141,\"monitor_id\":null,\"org_id\":321813,\"start\":1649943428,\"end\":null,\"canceled\":null,\"created\":1649943428,\"modified\":1649943428,\"message\":\"tf-TestAccDatadogDowntime_DiffStart-local-1649943427\",\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d0fd01c-b23a-11ed-aa19-da7ad0900002\",\"scope\":[\"somescope\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1878953883,\"monitor_id\":null,\"org_id\":321813,\"start\":1649943744,\"end\":null,\"canceled\":null,\"created\":1649943744,\"modified\":1649943744,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d0ff538-b23a-11ed-aa25-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649943743\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1878953886,\"monitor_id\":null,\"org_id\":321813,\"start\":1649943744,\"end\":null,\"canceled\":null,\"created\":1649943744,\"modified\":1649943744,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d0ffc2c-b23a-11ed-aa26-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649943743\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1878953952,\"monitor_id\":null,\"org_id\":321813,\"start\":1649943746,\"end\":null,\"canceled\":null,\"created\":1649943746,\"modified\":1649943746,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d100014-b23a-11ed-aa28-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649943746\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1879387022,\"monitor_id\":null,\"org_id\":321813,\"start\":1649956645,\"end\":null,\"canceled\":null,\"created\":1649956645,\"modified\":1649956645,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d12adf0-b23a-11ed-ab15-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649956645\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1880547169,\"monitor_id\":null,\"org_id\":321813,\"start\":1649993712,\"end\":null,\"canceled\":null,\"created\":1649993712,\"modified\":1649993712,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d1916b8-b23a-11ed-ad80-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649993711\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1882920998,\"monitor_id\":null,\"org_id\":321813,\"start\":1650079507,\"end\":null,\"canceled\":null,\"created\":1650079507,\"modified\":1650079507,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d2273d4-b23a-11ed-b0dd-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650079507\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1884841351,\"monitor_id\":null,\"org_id\":321813,\"start\":1650165507,\"end\":null,\"canceled\":null,\"created\":1650165507,\"modified\":1650165507,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d2ceaf8-b23a-11ed-b2e5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650165507\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1886732782,\"monitor_id\":null,\"org_id\":321813,\"start\":1650253028,\"end\":null,\"canceled\":null,\"created\":1650253028,\"modified\":1650253028,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d3512f0-b23a-11ed-b4c3-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650253028\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1888164232,\"monitor_id\":null,\"org_id\":321813,\"start\":1650306909,\"end\":null,\"canceled\":null,\"created\":1650306909,\"modified\":1650306909,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d447dc6-b23a-11ed-b89c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650306909\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1888194637,\"monitor_id\":null,\"org_id\":321813,\"start\":1650307986,\"end\":null,\"canceled\":null,\"created\":1650307986,\"modified\":1650307986,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d44d7b2-b23a-11ed-b8b7-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650307986\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1889160023,\"monitor_id\":null,\"org_id\":321813,\"start\":1650339374,\"end\":null,\"canceled\":null,\"created\":1650339375,\"modified\":1650339375,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d527c14-b23a-11ed-ba1d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650339374\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1890441165,\"monitor_id\":null,\"org_id\":321813,\"start\":1650382329,\"end\":null,\"canceled\":null,\"created\":1650382329,\"modified\":1650382329,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d6bbf26-b23a-11ed-bf5c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650382329\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1890673629,\"monitor_id\":null,\"org_id\":321813,\"start\":1650388715,\"end\":null,\"canceled\":null,\"created\":1650388715,\"modified\":1650388715,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d708c40-b23a-11ed-aa37-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650388714\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1890840822,\"monitor_id\":null,\"org_id\":321813,\"start\":1650393407,\"end\":null,\"canceled\":null,\"created\":1650393407,\"modified\":1650393407,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d7b5580-b23a-11ed-adb9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650393407\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":1891905689,\"monitor_id\":null,\"org_id\":321813,\"start\":1650426526,\"end\":null,\"canceled\":null,\"created\":1650426526,\"modified\":1650426526,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d853a1e-b23a-11ed-b0f0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650426525\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1894556061,\"monitor_id\":null,\"org_id\":321813,\"start\":1650512147,\"end\":null,\"canceled\":null,\"created\":1650512147,\"modified\":1650512147,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2db54b82-b23a-11ed-86e9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650512147\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1897275489,\"monitor_id\":null,\"org_id\":321813,\"start\":1650599140,\"end\":null,\"canceled\":null,\"created\":1650599140,\"modified\":1650599140,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2dcfe154-b23a-11ed-9003-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650599140\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1899755254,\"monitor_id\":null,\"org_id\":321813,\"start\":1650684524,\"end\":null,\"canceled\":null,\"created\":1650684524,\"modified\":1650684524,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2ddfa5f8-b23a-11ed-958f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650684524\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1901561064,\"monitor_id\":null,\"org_id\":321813,\"start\":1650770749,\"end\":null,\"canceled\":null,\"created\":1650770750,\"modified\":1650770750,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2de56a1a-b23a-11ed-97a9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650770749\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1903377730,\"monitor_id\":null,\"org_id\":321813,\"start\":1650857221,\"end\":null,\"canceled\":null,\"created\":1650857221,\"modified\":1650857221,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2deccd32-b23a-11ed-9a5d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650857221\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1905926570,\"monitor_id\":null,\"org_id\":321813,\"start\":1650944020,\"end\":null,\"canceled\":null,\"created\":1650944020,\"modified\":1650944020,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2e078adc-b23a-11ed-a3d2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650944020\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1908631871,\"monitor_id\":null,\"org_id\":321813,\"start\":1651031119,\"end\":null,\"canceled\":null,\"created\":1651031119,\"modified\":1651031119,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2e335658-b23a-11ed-b395-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1651031119\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1911348786,\"monitor_id\":null,\"org_id\":321813,\"start\":1651118158,\"end\":null,\"canceled\":null,\"created\":1651118158,\"modified\":1651118158,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2e5b18b4-b23a-11ed-9c82-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1651118158\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1914020798,\"monitor_id\":null,\"org_id\":321813,\"start\":1651203865,\"end\":null,\"canceled\":null,\"created\":1651203866,\"modified\":1651203866,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2e7eedca-b23a-11ed-a960-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1651203865\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1916537527,\"monitor_id\":null,\"org_id\":321813,\"start\":1651289341,\"end\":null,\"canceled\":null,\"created\":1651289341,\"modified\":1651289341,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2e8e3866-b23a-11ed-ae8c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1651289341\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1918496216,\"monitor_id\":null,\"org_id\":321813,\"start\":1651376282,\"end\":null,\"canceled\":null,\"created\":1651376282,\"modified\":1651376282,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2e939e82-b23a-11ed-b05e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1651376282\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1920583932,\"monitor_id\":null,\"org_id\":321813,\"start\":1651463712,\"end\":null,\"canceled\":null,\"created\":1651463712,\"modified\":1651463712,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2e99f37c-b23a-11ed-b27a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1651463712\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1923248573,\"monitor_id\":null,\"org_id\":321813,\"start\":1651549366,\"end\":null,\"canceled\":null,\"created\":1651549366,\"modified\":1651549366,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2eacf954-b23a-11ed-b93d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1651549366\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1925932099,\"monitor_id\":null,\"org_id\":321813,\"start\":1651635993,\"end\":null,\"canceled\":null,\"created\":1651635993,\"modified\":1651635993,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2eeb5ae6-b23a-11ed-ba74-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1651635993\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1928451926,\"monitor_id\":null,\"org_id\":321813,\"start\":1651721713,\"end\":null,\"canceled\":null,\"created\":1651721713,\"modified\":1651721713,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2f17e048-b23a-11ed-adb6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1651721713\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1930803301,\"monitor_id\":null,\"org_id\":321813,\"start\":1651807515,\"end\":null,\"canceled\":null,\"created\":1651807515,\"modified\":1651807515,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2f61e03a-b23a-11ed-a4ce-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1651807514\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1933032032,\"monitor_id\":null,\"org_id\":321813,\"start\":1651894175,\"end\":null,\"canceled\":null,\"created\":1651894176,\"modified\":1651894176,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2f71e8a4-b23a-11ed-aa51-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1651894175\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1934702265,\"monitor_id\":null,\"org_id\":321813,\"start\":1651980865,\"end\":null,\"canceled\":null,\"created\":1651980865,\"modified\":1651980865,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2f764e94-b23a-11ed-abe6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1651980865\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1936346370,\"monitor_id\":null,\"org_id\":321813,\"start\":1652067190,\"end\":null,\"canceled\":null,\"created\":1652067190,\"modified\":1652067190,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2f7c62fc-b23a-11ed-ae0d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1652067190\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1938625794,\"monitor_id\":null,\"org_id\":321813,\"start\":1652153029,\"end\":null,\"canceled\":null,\"created\":1652153029,\"modified\":1652153029,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2f97e7d4-b23a-11ed-b803-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1652153029\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1941102520,\"monitor_id\":null,\"org_id\":321813,\"start\":1652239954,\"end\":null,\"canceled\":null,\"created\":1652239954,\"modified\":1652239954,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2fce30a0-b23a-11ed-95c5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1652239954\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1943556517,\"monitor_id\":null,\"org_id\":321813,\"start\":1652326042,\"end\":null,\"canceled\":null,\"created\":1652326042,\"modified\":1652326042,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2fe486c0-b23a-11ed-9d98-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1652326042\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1946061531,\"monitor_id\":null,\"org_id\":321813,\"start\":1652413936,\"end\":null,\"canceled\":null,\"created\":1652413936,\"modified\":1652413936,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2ffdc2ac-b23a-11ed-a692-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1652413936\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1948398117,\"monitor_id\":null,\"org_id\":321813,\"start\":1652500712,\"end\":null,\"canceled\":null,\"created\":1652500712,\"modified\":1652500712,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"300adbfe-b23a-11ed-aaf0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1652500712\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1950048204,\"monitor_id\":null,\"org_id\":321813,\"start\":1652585208,\"end\":null,\"canceled\":null,\"created\":1652585208,\"modified\":1652585208,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"300f9090-b23a-11ed-ac68-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1652585208\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1951739249,\"monitor_id\":null,\"org_id\":321813,\"start\":1652671421,\"end\":null,\"canceled\":null,\"created\":1652671421,\"modified\":1652671421,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30157c6c-b23a-11ed-ae89-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1652671420\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1954128026,\"monitor_id\":null,\"org_id\":321813,\"start\":1652758527,\"end\":null,\"canceled\":null,\"created\":1652758527,\"modified\":1652758527,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"302ff4ca-b23a-11ed-b719-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1652758527\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1956618919,\"monitor_id\":null,\"org_id\":321813,\"start\":1652844725,\"end\":null,\"canceled\":null,\"created\":1652844725,\"modified\":1652844725,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"305521fa-b23a-11ed-8b20-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1652844724\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1959130623,\"monitor_id\":null,\"org_id\":321813,\"start\":1652932019,\"end\":null,\"canceled\":null,\"created\":1652932019,\"modified\":1652932019,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30719ea2-b23a-11ed-92c9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1652932019\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1961599126,\"monitor_id\":null,\"org_id\":321813,\"start\":1653018103,\"end\":null,\"canceled\":null,\"created\":1653018103,\"modified\":1653018103,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3087734e-b23a-11ed-991f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1653018103\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1964066213,\"monitor_id\":null,\"org_id\":321813,\"start\":1653103350,\"end\":null,\"canceled\":null,\"created\":1653103350,\"modified\":1653103350,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30be748e-b23a-11ed-abeb-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1653103349\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1965809561,\"monitor_id\":null,\"org_id\":321813,\"start\":1653177887,\"end\":null,\"canceled\":null,\"created\":1653177887,\"modified\":1653177887,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30c32326-b23a-11ed-ad9a-da7ad0900002\",\"scope\":[\"host:Test-Go-TestHostsMuteErrors-1653177887\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1965809564,\"monitor_id\":null,\"org_id\":321813,\"start\":1653177887,\"end\":null,\"canceled\":null,\"created\":1653177887,\"modified\":1653177887,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30c32862-b23a-11ed-ad9b-da7ad0900002\",\"scope\":[\"host:Test-Go-TestHostsMuteErrors-1653177887\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1965848046,\"monitor_id\":null,\"org_id\":321813,\"start\":1653179647,\"end\":null,\"canceled\":null,\"created\":1653179647,\"modified\":1653179647,\"message\":\"tf-TestAccDatadogDowntime_DiffStart-local-1653179644\",\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30c356a2-b23a-11ed-adac-da7ad0900002\",\"scope\":[\"somescope\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1966046698,\"monitor_id\":null,\"org_id\":321813,\"start\":1653190004,\"end\":null,\"canceled\":null,\"created\":1653190004,\"modified\":1653190004,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30c43388-b23a-11ed-ae04-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1653190004\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1967961798,\"monitor_id\":null,\"org_id\":321813,\"start\":1653276835,\"end\":null,\"canceled\":null,\"created\":1653276835,\"modified\":1653276835,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30caf204-b23a-11ed-b05b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1653276834\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1970330006,\"monitor_id\":null,\"org_id\":321813,\"start\":1653363786,\"end\":null,\"canceled\":null,\"created\":1653363786,\"modified\":1653363786,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30dedc1a-b23a-11ed-b727-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1653363786\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1972834786,\"monitor_id\":null,\"org_id\":321813,\"start\":1653450075,\"end\":null,\"canceled\":null,\"created\":1653450075,\"modified\":1653450075,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"311c180a-b23a-11ed-9771-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1653450075\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1975356907,\"monitor_id\":null,\"org_id\":321813,\"start\":1653536216,\"end\":null,\"canceled\":null,\"created\":1653536216,\"modified\":1653536216,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"315569e8-b23a-11ed-a67b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1653536216\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1977773761,\"monitor_id\":null,\"org_id\":321813,\"start\":1653622489,\"end\":null,\"canceled\":null,\"created\":1653622489,\"modified\":1653622489,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"316c2f16-b23a-11ed-ad2f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1653622489\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1980010861,\"monitor_id\":null,\"org_id\":321813,\"start\":1653708972,\"end\":null,\"canceled\":null,\"created\":1653708972,\"modified\":1653708972,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3181e3d8-b23a-11ed-b3a7-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1653708972\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1981706299,\"monitor_id\":null,\"org_id\":321813,\"start\":1653795235,\"end\":null,\"canceled\":null,\"created\":1653795235,\"modified\":1653795235,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"318b8122-b23a-11ed-b6d6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1653795235\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1983400557,\"monitor_id\":null,\"org_id\":321813,\"start\":1653882321,\"end\":null,\"canceled\":null,\"created\":1653882321,\"modified\":1653882321,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"319436b4-b23a-11ed-b997-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1653882321\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1985427216,\"monitor_id\":null,\"org_id\":321813,\"start\":1653968019,\"end\":null,\"canceled\":null,\"created\":1653968019,\"modified\":1653968019,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"31a9b142-b23a-11ed-b90d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1653968019\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1987876700,\"monitor_id\":null,\"org_id\":321813,\"start\":1654055613,\"end\":null,\"canceled\":null,\"created\":1654055613,\"modified\":1654055613,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"31c18308-b23a-11ed-bd47-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1654055612\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1990388312,\"monitor_id\":null,\"org_id\":321813,\"start\":1654141799,\"end\":null,\"canceled\":null,\"created\":1654141799,\"modified\":1654141799,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"31d5a2f2-b23a-11ed-9176-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1654141799\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1992880517,\"monitor_id\":null,\"org_id\":321813,\"start\":1654226878,\"end\":null,\"canceled\":null,\"created\":1654226878,\"modified\":1654226878,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"32044c42-b23a-11ed-a1d2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1654226878\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1995175305,\"monitor_id\":null,\"org_id\":321813,\"start\":1654313642,\"end\":null,\"canceled\":null,\"created\":1654313642,\"modified\":1654313642,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"32199930-b23a-11ed-a93d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1654313642\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1996852382,\"monitor_id\":null,\"org_id\":321813,\"start\":1654399406,\"end\":null,\"canceled\":null,\"created\":1654399406,\"modified\":1654399406,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"321e705e-b23a-11ed-aae5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1654399406\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1998552066,\"monitor_id\":null,\"org_id\":321813,\"start\":1654486786,\"end\":null,\"canceled\":null,\"created\":1654486786,\"modified\":1654486786,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3223face-b23a-11ed-acc4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1654486786\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2000940330,\"monitor_id\":null,\"org_id\":321813,\"start\":1654572773,\"end\":null,\"canceled\":null,\"created\":1654572773,\"modified\":1654572773,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3237955c-b23a-11ed-b30b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1654572773\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2003530666,\"monitor_id\":null,\"org_id\":321813,\"start\":1654659885,\"end\":null,\"canceled\":null,\"created\":1654659885,\"modified\":1654659885,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3290260e-b23a-11ed-bb4a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1654659885\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2006085000,\"monitor_id\":null,\"org_id\":321813,\"start\":1654746282,\"end\":null,\"canceled\":null,\"created\":1654746282,\"modified\":1654746282,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"33110a4e-b23a-11ed-b379-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1654746282\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2008561555,\"monitor_id\":null,\"org_id\":321813,\"start\":1654831920,\"end\":null,\"canceled\":null,\"created\":1654831920,\"modified\":1654831920,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"33519762-b23a-11ed-bb45-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1654831920\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2010956552,\"monitor_id\":null,\"org_id\":321813,\"start\":1654918830,\"end\":null,\"canceled\":null,\"created\":1654918830,\"modified\":1654918830,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"33c25c72-b23a-11ed-ac93-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1654918830\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2012669779,\"monitor_id\":null,\"org_id\":321813,\"start\":1655005529,\"end\":null,\"canceled\":null,\"created\":1655005529,\"modified\":1655005529,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"33cb6718-b23a-11ed-ae39-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655005529\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2014370670,\"monitor_id\":null,\"org_id\":321813,\"start\":1655091412,\"end\":null,\"canceled\":null,\"created\":1655091412,\"modified\":1655091412,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"33dc959c-b23a-11ed-b11a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655091411\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2016851947,\"monitor_id\":null,\"org_id\":321813,\"start\":1655179062,\"end\":null,\"canceled\":null,\"created\":1655179062,\"modified\":1655179062,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3435aae2-b23a-11ed-bf9c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655179062\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2019442476,\"monitor_id\":null,\"org_id\":321813,\"start\":1655265024,\"end\":null,\"canceled\":null,\"created\":1655265024,\"modified\":1655265024,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"348a09ac-b23a-11ed-b460-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655265024\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2022007927,\"monitor_id\":null,\"org_id\":321813,\"start\":1655351140,\"end\":null,\"canceled\":null,\"created\":1655351140,\"modified\":1655351140,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"34cfbf9c-b23a-11ed-8b14-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655351140\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2024518312,\"monitor_id\":null,\"org_id\":321813,\"start\":1655437386,\"end\":null,\"canceled\":null,\"created\":1655437386,\"modified\":1655437386,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"34f7f1ce-b23a-11ed-910e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655437386\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2026846369,\"monitor_id\":null,\"org_id\":321813,\"start\":1655523096,\"end\":null,\"canceled\":null,\"created\":1655523096,\"modified\":1655523096,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"351c9aec-b23a-11ed-9678-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655523096\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2028607521,\"monitor_id\":null,\"org_id\":321813,\"start\":1655610345,\"end\":null,\"canceled\":null,\"created\":1655610345,\"modified\":1655610345,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3525e9c6-b23a-11ed-97ff-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655610344\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2030369415,\"monitor_id\":null,\"org_id\":321813,\"start\":1655696430,\"end\":null,\"canceled\":null,\"created\":1655696430,\"modified\":1655696430,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"353135d8-b23a-11ed-9a02-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655696430\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2032609325,\"monitor_id\":null,\"org_id\":321813,\"start\":1655783534,\"end\":null,\"canceled\":null,\"created\":1655783534,\"modified\":1655783534,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3555ae5e-b23a-11ed-a073-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655783534\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2033422930,\"monitor_id\":null,\"org_id\":321813,\"start\":1655813940,\"end\":null,\"canceled\":null,\"created\":1655813940,\"modified\":1655813940,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3567f956-b23a-11ed-a39d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655813939\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2033525207,\"monitor_id\":null,\"org_id\":321813,\"start\":1655817083,\"end\":null,\"canceled\":null,\"created\":1655817083,\"modified\":1655817083,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3568bb66-b23a-11ed-a3be-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655817083\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2035099862,\"monitor_id\":null,\"org_id\":321813,\"start\":1655869855,\"end\":null,\"canceled\":null,\"created\":1655869855,\"modified\":1655869855,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"357f33fa-b23a-11ed-a793-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655869855\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2035717606,\"monitor_id\":null,\"org_id\":321813,\"start\":1655893119,\"end\":null,\"canceled\":null,\"created\":1655893119,\"modified\":1655893119,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"358994da-b23a-11ed-a972-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655893119\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2036107945,\"monitor_id\":null,\"org_id\":321813,\"start\":1655905625,\"end\":null,\"canceled\":null,\"created\":1655905625,\"modified\":1655905625,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"358e65f0-b23a-11ed-aa3f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655905625\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2037613610,\"monitor_id\":null,\"org_id\":321813,\"start\":1655955340,\"end\":null,\"canceled\":null,\"created\":1655955340,\"modified\":1655955340,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"35af98ba-b23a-11ed-b09c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655955339\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2040183241,\"monitor_id\":null,\"org_id\":321813,\"start\":1656042299,\"end\":null,\"canceled\":null,\"created\":1656042299,\"modified\":1656042299,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"35f5402c-b23a-11ed-bd67-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1656042299\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2042531074,\"monitor_id\":null,\"org_id\":321813,\"start\":1656128094,\"end\":null,\"canceled\":null,\"created\":1656128094,\"modified\":1656128094,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"36214cb2-b23a-11ed-bf4c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1656128094\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2044271223,\"monitor_id\":null,\"org_id\":321813,\"start\":1656215137,\"end\":null,\"canceled\":null,\"created\":1656215137,\"modified\":1656215137,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"362e6e10-b23a-11ed-b77f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1656215137\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2046002092,\"monitor_id\":null,\"org_id\":321813,\"start\":1656301418,\"end\":null,\"canceled\":null,\"created\":1656301418,\"modified\":1656301418,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3649b53a-b23a-11ed-babf-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1656301418\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2048492487,\"monitor_id\":null,\"org_id\":321813,\"start\":1656388167,\"end\":null,\"canceled\":null,\"created\":1656388167,\"modified\":1656388167,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"36847602-b23a-11ed-932b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1656388166\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2051041841,\"monitor_id\":null,\"org_id\":321813,\"start\":1656474047,\"end\":null,\"canceled\":null,\"created\":1656474047,\"modified\":1656474047,\"message\":\"java-cancelDowntimesByScopeTest-local-1656474047-3\",\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"36d42b02-b23a-11ed-a0bf-da7ad0900002\",\"scope\":[\"env:stage\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2051041857,\"monitor_id\":null,\"org_id\":321813,\"start\":1656474048,\"end\":null,\"canceled\":null,\"created\":1656474048,\"modified\":1656474048,\"message\":\"java-cancelDowntimesByScopeTest-local-1656474047-3\",\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"36d42e4a-b23a-11ed-a0c0-da7ad0900002\",\"scope\":[\"env:stage\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2051042331,\"monitor_id\":null,\"org_id\":321813,\"start\":1656474062,\"end\":null,\"canceled\":null,\"created\":1656474062,\"modified\":1656474062,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"36d430ca-b23a-11ed-a0c1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1656474062\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2053609024,\"monitor_id\":null,\"org_id\":321813,\"start\":1656561024,\"end\":null,\"canceled\":null,\"created\":1656561024,\"modified\":1656561024,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"37159f1a-b23a-11ed-aac5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1656561023\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2056141373,\"monitor_id\":null,\"org_id\":321813,\"start\":1656647304,\"end\":null,\"canceled\":null,\"created\":1656647304,\"modified\":1656647304,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"37609fd8-b23a-11ed-ba31-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1656647303\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2058136091,\"monitor_id\":null,\"org_id\":321813,\"start\":1656720395,\"end\":null,\"canceled\":null,\"created\":1656720395,\"modified\":1656720395,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"37792ddc-b23a-11ed-bebc-da7ad0900002\",\"scope\":[\"host:Test-Go-TestHostsMuteErrors-1656720395\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2058449850,\"monitor_id\":null,\"org_id\":321813,\"start\":1656733648,\"end\":null,\"canceled\":null,\"created\":1656733648,\"modified\":1656733648,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"377a8dda-b23a-11ed-befe-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1656733648\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2060162875,\"monitor_id\":null,\"org_id\":321813,\"start\":1656819921,\"end\":null,\"canceled\":null,\"created\":1656819921,\"modified\":1656819921,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3789577a-b23a-11ed-a373-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1656819920\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2061908156,\"monitor_id\":null,\"org_id\":321813,\"start\":1656906587,\"end\":null,\"canceled\":null,\"created\":1656906587,\"modified\":1656906587,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3794b16a-b23a-11ed-a58a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1656906587\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2062205101,\"monitor_id\":null,\"org_id\":321813,\"start\":1656919616,\"end\":null,\"canceled\":null,\"created\":1656919616,\"modified\":1656919616,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"379bc3ec-b23a-11ed-a6d3-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1656919616\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2063965397,\"monitor_id\":null,\"org_id\":321813,\"start\":1656992412,\"end\":null,\"canceled\":null,\"created\":1656992412,\"modified\":1656992412,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"37be1cf8-b23a-11ed-abbc-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1656992412\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2066405139,\"monitor_id\":null,\"org_id\":321813,\"start\":1657078916,\"end\":null,\"canceled\":null,\"created\":1657078916,\"modified\":1657078916,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"37e3f554-b23a-11ed-b306-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1657078916\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2069019270,\"monitor_id\":null,\"org_id\":321813,\"start\":1657166232,\"end\":null,\"canceled\":null,\"created\":1657166232,\"modified\":1657166232,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"38345df0-b23a-11ed-861e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1657166232\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2070082830,\"monitor_id\":null,\"org_id\":321813,\"start\":1657203632,\"end\":null,\"canceled\":null,\"created\":1657203632,\"modified\":1657203632,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"38442f46-b23a-11ed-89e1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1657203632\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2070223920,\"monitor_id\":null,\"org_id\":321813,\"start\":1657207853,\"end\":null,\"canceled\":null,\"created\":1657207853,\"modified\":1657207853,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"38461a36-b23a-11ed-8a4d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1657207853\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2071586909,\"monitor_id\":null,\"org_id\":321813,\"start\":1657251392,\"end\":null,\"canceled\":null,\"created\":1657251392,\"modified\":1657251392,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"38aee066-b23a-11ed-a656-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1657251392\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2074010742,\"monitor_id\":null,\"org_id\":321813,\"start\":1657337345,\"end\":null,\"canceled\":null,\"created\":1657337345,\"modified\":1657337345,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"38c59658-b23a-11ed-ac10-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1657337345\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2075848375,\"monitor_id\":null,\"org_id\":321813,\"start\":1657424190,\"end\":null,\"canceled\":null,\"created\":1657424190,\"modified\":1657424190,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"38cd8bec-b23a-11ed-ae0f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1657424190\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2077644444,\"monitor_id\":null,\"org_id\":321813,\"start\":1657510562,\"end\":null,\"canceled\":null,\"created\":1657510562,\"modified\":1657510562,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"38d72d3c-b23a-11ed-b090-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1657510561\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2080110938,\"monitor_id\":null,\"org_id\":321813,\"start\":1657597739,\"end\":null,\"canceled\":null,\"created\":1657597739,\"modified\":1657597739,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"38f7c920-b23a-11ed-b877-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1657597739\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2082694266,\"monitor_id\":null,\"org_id\":321813,\"start\":1657684013,\"end\":null,\"canceled\":null,\"created\":1657684013,\"modified\":1657684013,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3928f0a4-b23a-11ed-a3fe-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1657684013\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2085275388,\"monitor_id\":null,\"org_id\":321813,\"start\":1657770108,\"end\":null,\"canceled\":null,\"created\":1657770108,\"modified\":1657770108,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3965bd22-b23a-11ed-b0b0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1657770108\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2087886766,\"monitor_id\":null,\"org_id\":321813,\"start\":1657857344,\"end\":null,\"canceled\":null,\"created\":1657857344,\"modified\":1657857344,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3987b0b2-b23a-11ed-b97d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1657857344\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2090307199,\"monitor_id\":null,\"org_id\":321813,\"start\":1657942946,\"end\":null,\"canceled\":null,\"created\":1657942946,\"modified\":1657942946,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"39aba36e-b23a-11ed-9e9c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1657942946\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2092070892,\"monitor_id\":null,\"org_id\":321813,\"start\":1658029015,\"end\":null,\"canceled\":null,\"created\":1658029015,\"modified\":1658029015,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"39c02aa0-b23a-11ed-a43f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1658029015\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2093891415,\"monitor_id\":null,\"org_id\":321813,\"start\":1658115646,\"end\":null,\"canceled\":null,\"created\":1658115646,\"modified\":1658115646,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"39d6044c-b23a-11ed-aa06-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1658115646\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2096477439,\"monitor_id\":null,\"org_id\":321813,\"start\":1658202682,\"end\":null,\"canceled\":null,\"created\":1658202682,\"modified\":1658202682,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3a006a2a-b23a-11ed-b49a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1658202682\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2098089652,\"monitor_id\":null,\"org_id\":321813,\"start\":1658254921,\"end\":null,\"canceled\":null,\"created\":1658254921,\"modified\":1658254921,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3a186c7e-b23a-11ed-badc-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1658254921\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2099162945,\"monitor_id\":null,\"org_id\":321813,\"start\":1658288209,\"end\":null,\"canceled\":null,\"created\":1658288209,\"modified\":1658288209,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3a220f86-b23a-11ed-bd41-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1658288209\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2101960140,\"monitor_id\":null,\"org_id\":321813,\"start\":1658375293,\"end\":null,\"canceled\":null,\"created\":1658375293,\"modified\":1658375293,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3a7e764a-b23a-11ed-bb11-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1658375293\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2104652729,\"monitor_id\":null,\"org_id\":321813,\"start\":1658461872,\"end\":null,\"canceled\":null,\"created\":1658461872,\"modified\":1658461872,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3a9e300c-b23a-11ed-b199-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1658461872\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2107140574,\"monitor_id\":null,\"org_id\":321813,\"start\":1658547329,\"end\":null,\"canceled\":null,\"created\":1658547329,\"modified\":1658547329,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3abf3ebe-b23a-11ed-b9db-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1658547329\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2109012258,\"monitor_id\":null,\"org_id\":321813,\"start\":1658633864,\"end\":null,\"canceled\":null,\"created\":1658633864,\"modified\":1658633864,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3ac6a320-b23a-11ed-bb88-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1658633864\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2110877434,\"monitor_id\":null,\"org_id\":321813,\"start\":1658720370,\"end\":null,\"canceled\":null,\"created\":1658720370,\"modified\":1658720370,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3ad030b6-b23a-11ed-bddb-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1658720370\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2113486899,\"monitor_id\":null,\"org_id\":321813,\"start\":1658808223,\"end\":null,\"canceled\":null,\"created\":1658808223,\"modified\":1658808223,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3af38444-b23a-11ed-8db7-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1658808223\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2116172500,\"monitor_id\":null,\"org_id\":321813,\"start\":1658893432,\"end\":null,\"canceled\":null,\"created\":1658893432,\"modified\":1658893432,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3b17e5f0-b23a-11ed-96b6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1658893432\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2118885477,\"monitor_id\":null,\"org_id\":321813,\"start\":1658979408,\"end\":null,\"canceled\":null,\"created\":1658979408,\"modified\":1658979408,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3b55d57c-b23a-11ed-a6d2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1658979408\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2121736852,\"monitor_id\":null,\"org_id\":321813,\"start\":1659066831,\"end\":null,\"canceled\":null,\"created\":1659066831,\"modified\":1659066831,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3b75a460-b23a-11ed-ada6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1659066831\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2124236402,\"monitor_id\":null,\"org_id\":321813,\"start\":1659153315,\"end\":null,\"canceled\":null,\"created\":1659153315,\"modified\":1659153315,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3b90f36e-b23a-11ed-b374-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1659153314\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2126109655,\"monitor_id\":null,\"org_id\":321813,\"start\":1659238726,\"end\":null,\"canceled\":null,\"created\":1659238726,\"modified\":1659238726,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3b9aa35a-b23a-11ed-b598-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1659238726\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2128035455,\"monitor_id\":null,\"org_id\":321813,\"start\":1659325960,\"end\":null,\"canceled\":null,\"created\":1659325960,\"modified\":1659325960,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3bb336f4-b23a-11ed-ba43-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1659325960\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2130662436,\"monitor_id\":null,\"org_id\":321813,\"start\":1659412389,\"end\":null,\"canceled\":null,\"created\":1659412389,\"modified\":1659412389,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3bcea5c4-b23a-11ed-b2e1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1659412389\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2133443831,\"monitor_id\":null,\"org_id\":321813,\"start\":1659498805,\"end\":null,\"canceled\":null,\"created\":1659498805,\"modified\":1659498805,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3bf835f6-b23a-11ed-bc1e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1659498805\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2136180597,\"monitor_id\":null,\"org_id\":321813,\"start\":1659584912,\"end\":null,\"canceled\":null,\"created\":1659584912,\"modified\":1659584912,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3c1987ba-b23a-11ed-a861-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1659584912\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2138896167,\"monitor_id\":null,\"org_id\":321813,\"start\":1659670639,\"end\":null,\"canceled\":null,\"created\":1659670639,\"modified\":1659670639,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3c3878aa-b23a-11ed-ae86-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1659670639\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2141426593,\"monitor_id\":null,\"org_id\":321813,\"start\":1659757100,\"end\":null,\"canceled\":null,\"created\":1659757100,\"modified\":1659757100,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3c593c48-b23a-11ed-b631-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1659757099\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2143288576,\"monitor_id\":null,\"org_id\":321813,\"start\":1659843138,\"end\":null,\"canceled\":null,\"created\":1659843138,\"modified\":1659843138,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3c7b781c-b23a-11ed-bf06-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1659843138\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2145162240,\"monitor_id\":null,\"org_id\":321813,\"start\":1659929812,\"end\":null,\"canceled\":null,\"created\":1659929812,\"modified\":1659929812,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3c9cc396-b23a-11ed-a00f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1659929812\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2147940741,\"monitor_id\":null,\"org_id\":321813,\"start\":1660017026,\"end\":null,\"canceled\":null,\"created\":1660017026,\"modified\":1660017026,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3cf813fe-b23a-11ed-b11b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1660017026\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2150566252,\"monitor_id\":null,\"org_id\":321813,\"start\":1660102520,\"end\":null,\"canceled\":null,\"created\":1660102520,\"modified\":1660102520,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3d3606e6-b23a-11ed-bd5b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1660102520\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2153326613,\"monitor_id\":null,\"org_id\":321813,\"start\":1660189316,\"end\":null,\"canceled\":null,\"created\":1660189316,\"modified\":1660189316,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3d5e6ac8-b23a-11ed-b4bf-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1660189316\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2156099522,\"monitor_id\":null,\"org_id\":321813,\"start\":1660275418,\"end\":null,\"canceled\":null,\"created\":1660275418,\"modified\":1660275418,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3d8aee9a-b23a-11ed-bf87-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1660275418\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2158676446,\"monitor_id\":null,\"org_id\":321813,\"start\":1660361545,\"end\":null,\"canceled\":null,\"created\":1660361545,\"modified\":1660361545,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3db858e4-b23a-11ed-9faa-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1660361545\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2160604530,\"monitor_id\":null,\"org_id\":321813,\"start\":1660448577,\"end\":null,\"canceled\":null,\"created\":1660448577,\"modified\":1660448577,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3ddc396c-b23a-11ed-a993-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1660448577\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2162627761,\"monitor_id\":null,\"org_id\":321813,\"start\":1660535294,\"end\":null,\"canceled\":null,\"created\":1660535294,\"modified\":1660535294,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3dfdbe66-b23a-11ed-b30e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1660535294\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2165244957,\"monitor_id\":null,\"org_id\":321813,\"start\":1660621593,\"end\":null,\"canceled\":null,\"created\":1660621593,\"modified\":1660621593,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3e2da78e-b23a-11ed-bffc-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1660621593\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2168028076,\"monitor_id\":null,\"org_id\":321813,\"start\":1660708824,\"end\":null,\"canceled\":null,\"created\":1660708824,\"modified\":1660708824,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3e6e3a2e-b23a-11ed-a52e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1660708824\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2170765298,\"monitor_id\":null,\"org_id\":321813,\"start\":1660794675,\"end\":null,\"canceled\":null,\"created\":1660794675,\"modified\":1660794675,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3e919ed8-b23a-11ed-ae5d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1660794675\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2173527812,\"monitor_id\":null,\"org_id\":321813,\"start\":1660880541,\"end\":null,\"canceled\":null,\"created\":1660880541,\"modified\":1660880541,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3ead0c4a-b23a-11ed-b564-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1660880541\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2176186201,\"monitor_id\":null,\"org_id\":321813,\"start\":1660966602,\"end\":null,\"canceled\":null,\"created\":1660966602,\"modified\":1660966602,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3ec737c8-b23a-11ed-bc40-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1660966602\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2178207968,\"monitor_id\":null,\"org_id\":321813,\"start\":1661052986,\"end\":null,\"canceled\":null,\"created\":1661052986,\"modified\":1661052986,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3ed176c0-b23a-11ed-bf0c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1661052986\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2180269880,\"monitor_id\":null,\"org_id\":321813,\"start\":1661140146,\"end\":null,\"canceled\":null,\"created\":1661140146,\"modified\":1661140146,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3edc7e9e-b23a-11ed-98c5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1661140146\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2183023483,\"monitor_id\":null,\"org_id\":321813,\"start\":1661226790,\"end\":null,\"canceled\":null,\"created\":1661226790,\"modified\":1661226790,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3f0156e2-b23a-11ed-a2c6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1661226790\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2185819277,\"monitor_id\":null,\"org_id\":321813,\"start\":1661313248,\"end\":null,\"canceled\":null,\"created\":1661313248,\"modified\":1661313248,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3f2bbb44-b23a-11ed-ae1b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1661313248\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2188684748,\"monitor_id\":null,\"org_id\":321813,\"start\":1661400349,\"end\":null,\"canceled\":null,\"created\":1661400349,\"modified\":1661400349,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3f59f23e-b23a-11ed-bac0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1661400348\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2191502979,\"monitor_id\":null,\"org_id\":321813,\"start\":1661486309,\"end\":null,\"canceled\":null,\"created\":1661486309,\"modified\":1661486309,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3f7d1250-b23a-11ed-965b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1661486308\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2194167640,\"monitor_id\":null,\"org_id\":321813,\"start\":1661572254,\"end\":null,\"canceled\":null,\"created\":1661572254,\"modified\":1661572254,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3f9970c6-b23a-11ed-9df7-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1661572254\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2196171659,\"monitor_id\":null,\"org_id\":321813,\"start\":1661658484,\"end\":null,\"canceled\":null,\"created\":1661658484,\"modified\":1661658484,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3fa7c00e-b23a-11ed-a22d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1661658484\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2198223965,\"monitor_id\":null,\"org_id\":321813,\"start\":1661745690,\"end\":null,\"canceled\":null,\"created\":1661745690,\"modified\":1661745690,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3fb4e464-b23a-11ed-a5d8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1661745690\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2199337762,\"monitor_id\":null,\"org_id\":321813,\"start\":1661781638,\"end\":null,\"canceled\":null,\"created\":1661781638,\"modified\":1661781638,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3fc09318-b23a-11ed-a92f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1661781638\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2199467687,\"monitor_id\":null,\"org_id\":321813,\"start\":1661785310,\"end\":null,\"canceled\":null,\"created\":1661785310,\"modified\":1661785310,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3fc2b738-b23a-11ed-a9c9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1661785310\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2199549508,\"monitor_id\":null,\"org_id\":321813,\"start\":1661787495,\"end\":null,\"canceled\":null,\"created\":1661787495,\"modified\":1661787495,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3fc39a04-b23a-11ed-aa01-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1661787495\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2201116986,\"monitor_id\":null,\"org_id\":321813,\"start\":1661832395,\"end\":null,\"canceled\":null,\"created\":1661832395,\"modified\":1661832395,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3fd1b04e-b23a-11ed-adcd-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1661832395\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2204178688,\"monitor_id\":null,\"org_id\":321813,\"start\":1661919561,\"end\":null,\"canceled\":null,\"created\":1661919561,\"modified\":1661919561,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3ff41008-b23a-11ed-b724-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1661919561\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2207109916,\"monitor_id\":null,\"org_id\":321813,\"start\":1662004914,\"end\":null,\"canceled\":null,\"created\":1662004914,\"modified\":1662004914,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"401d69f8-b23a-11ed-99c8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1662004914\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2210125430,\"monitor_id\":null,\"org_id\":321813,\"start\":1662090878,\"end\":null,\"canceled\":null,\"created\":1662090878,\"modified\":1662090878,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"403c0d90-b23a-11ed-a228-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1662090877\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2213013771,\"monitor_id\":null,\"org_id\":321813,\"start\":1662177610,\"end\":null,\"canceled\":null,\"created\":1662177610,\"modified\":1662177610,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"40582958-b23a-11ed-a9c6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1662177610\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2215236973,\"monitor_id\":null,\"org_id\":321813,\"start\":1662264281,\"end\":null,\"canceled\":null,\"created\":1662264281,\"modified\":1662264281,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4060e9f8-b23a-11ed-ac27-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1662264280\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2217499184,\"monitor_id\":null,\"org_id\":321813,\"start\":1662351158,\"end\":null,\"canceled\":null,\"created\":1662351158,\"modified\":1662351158,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4071e668-b23a-11ed-b0ee-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1662351158\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2220145928,\"monitor_id\":null,\"org_id\":321813,\"start\":1662437613,\"end\":null,\"canceled\":null,\"created\":1662437613,\"modified\":1662437613,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"40889be2-b23a-11ed-b759-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1662437613\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2223283337,\"monitor_id\":null,\"org_id\":321813,\"start\":1662523858,\"end\":null,\"canceled\":null,\"created\":1662523858,\"modified\":1662523858,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"40aba7cc-b23a-11ed-bfa7-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1662523858\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2226554828,\"monitor_id\":null,\"org_id\":321813,\"start\":1662609824,\"end\":null,\"canceled\":null,\"created\":1662609824,\"modified\":1662609824,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"40cff8e8-b23a-11ed-a69e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1662609823\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2229730654,\"monitor_id\":null,\"org_id\":321813,\"start\":1662695502,\"end\":null,\"canceled\":null,\"created\":1662695502,\"modified\":1662695502,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"40eea95a-b23a-11ed-adb2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1662695502\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2232819205,\"monitor_id\":null,\"org_id\":321813,\"start\":1662782906,\"end\":null,\"canceled\":null,\"created\":1662782906,\"modified\":1662782906,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"410e0bd8-b23a-11ed-b576-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1662782906\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2235144457,\"monitor_id\":null,\"org_id\":321813,\"start\":1662868256,\"end\":null,\"canceled\":null,\"created\":1662868256,\"modified\":1662868256,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"411e38b4-b23a-11ed-b806-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1662868256\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2237546356,\"monitor_id\":null,\"org_id\":321813,\"start\":1662955934,\"end\":null,\"canceled\":null,\"created\":1662955934,\"modified\":1662955934,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4132443a-b23a-11ed-bc3e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1662955934\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2240629571,\"monitor_id\":null,\"org_id\":321813,\"start\":1663041486,\"end\":null,\"canceled\":null,\"created\":1663041486,\"modified\":1663041486,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"415ba9a6-b23a-11ed-b884-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1663041485\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2243954759,\"monitor_id\":null,\"org_id\":321813,\"start\":1663128391,\"end\":null,\"canceled\":null,\"created\":1663128391,\"modified\":1663128391,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"418d0b5e-b23a-11ed-a34c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1663128391\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2245036721,\"monitor_id\":null,\"org_id\":321813,\"start\":1663158458,\"end\":null,\"canceled\":null,\"created\":1663158458,\"modified\":1663158458,\"message\":\"tf-TestAccDatadogDowntime_DiffStart-local-1663158457\",\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"41a4a2dc-b23a-11ed-a80b-da7ad0900002\",\"scope\":[\"somescope\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2247205460,\"monitor_id\":null,\"org_id\":321813,\"start\":1663214945,\"end\":null,\"canceled\":null,\"created\":1663214945,\"modified\":1663214945,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"41c2850e-b23a-11ed-ae1d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1663214945\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2250485716,\"monitor_id\":null,\"org_id\":321813,\"start\":1663300931,\"end\":null,\"canceled\":null,\"created\":1663300931,\"modified\":1663300931,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"41f65636-b23a-11ed-b8a9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1663300931\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2253604073,\"monitor_id\":null,\"org_id\":321813,\"start\":1663386537,\"end\":null,\"canceled\":null,\"created\":1663386537,\"modified\":1663386537,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"42215584-b23a-11ed-8d2c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1663386537\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2256088642,\"monitor_id\":null,\"org_id\":321813,\"start\":1663473474,\"end\":null,\"canceled\":null,\"created\":1663473474,\"modified\":1663473474,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4243ffe4-b23a-11ed-91a7-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1663473474\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2258619478,\"monitor_id\":null,\"org_id\":321813,\"start\":1663560715,\"end\":null,\"canceled\":null,\"created\":1663560715,\"modified\":1663560715,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"426807ae-b23a-11ed-985e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1663560715\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2261718241,\"monitor_id\":null,\"org_id\":321813,\"start\":1663646132,\"end\":null,\"canceled\":null,\"created\":1663646132,\"modified\":1663646132,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"42bb4388-b23a-11ed-ae3b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1663646132\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2265503552,\"monitor_id\":null,\"org_id\":321813,\"start\":1663732909,\"end\":null,\"canceled\":null,\"created\":1663732910,\"modified\":1663732910,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"42f245cc-b23a-11ed-bbd2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1663732909\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2277650400,\"monitor_id\":null,\"org_id\":321813,\"start\":1663818984,\"end\":null,\"canceled\":null,\"created\":1663818984,\"modified\":1663818984,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"431c37f6-b23a-11ed-ba09-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1663818983\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2281083611,\"monitor_id\":null,\"org_id\":321813,\"start\":1663906071,\"end\":null,\"canceled\":null,\"created\":1663906071,\"modified\":1663906071,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"43523e32-b23a-11ed-a811-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1663906071\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2284237993,\"monitor_id\":null,\"org_id\":321813,\"start\":1663993085,\"end\":null,\"canceled\":null,\"created\":1663993085,\"modified\":1663993085,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"43840a0c-b23a-11ed-b37a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1663993085\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2286679181,\"monitor_id\":null,\"org_id\":321813,\"start\":1664078470,\"end\":null,\"canceled\":null,\"created\":1664078470,\"modified\":1664078470,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"43a306aa-b23a-11ed-baa6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1664078470\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2289159543,\"monitor_id\":null,\"org_id\":321813,\"start\":1664165346,\"end\":null,\"canceled\":null,\"created\":1664165346,\"modified\":1664165346,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"43c43a82-b23a-11ed-aefb-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1664165346\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2292423458,\"monitor_id\":null,\"org_id\":321813,\"start\":1664252509,\"end\":null,\"canceled\":null,\"created\":1664252509,\"modified\":1664252509,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"43f1c86c-b23a-11ed-ba48-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1664252509\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2295733460,\"monitor_id\":null,\"org_id\":321813,\"start\":1664338000,\"end\":null,\"canceled\":null,\"created\":1664338000,\"modified\":1664338000,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"441e45fe-b23a-11ed-ad21-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1664337999\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2299164287,\"monitor_id\":null,\"org_id\":321813,\"start\":1664425715,\"end\":null,\"canceled\":null,\"created\":1664425715,\"modified\":1664425715,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"44640da0-b23a-11ed-be32-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1664425715\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2301993647,\"monitor_id\":null,\"org_id\":321813,\"start\":1664496737,\"end\":null,\"canceled\":null,\"created\":1664496737,\"modified\":1664496737,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"449f45fa-b23a-11ed-be70-da7ad0900002\",\"scope\":[\"host:Test-Go-TestHostsMuteErrors-1664496737\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2301993650,\"monitor_id\":null,\"org_id\":321813,\"start\":1664496737,\"end\":null,\"canceled\":null,\"created\":1664496737,\"modified\":1664496737,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"449f4ac8-b23a-11ed-be71-da7ad0900002\",\"scope\":[\"host:Test-Go-TestHostsMuteErrors-1664496737\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2302503942,\"monitor_id\":null,\"org_id\":321813,\"start\":1664510639,\"end\":null,\"canceled\":null,\"created\":1664510639,\"modified\":1664510639,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"44a527ae-b23a-11ed-bffe-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1664510638\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2303614396,\"monitor_id\":null,\"org_id\":321813,\"start\":1664542729,\"end\":null,\"canceled\":null,\"created\":1664542729,\"modified\":1664542729,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"44b3f2ac-b23a-11ed-a380-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1664542729\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2305816069,\"monitor_id\":null,\"org_id\":321813,\"start\":1664598900,\"end\":null,\"canceled\":null,\"created\":1664598900,\"modified\":1664598900,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"44d74748-b23a-11ed-acea-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1664598899\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2308263058,\"monitor_id\":null,\"org_id\":321813,\"start\":1664683580,\"end\":null,\"canceled\":null,\"created\":1664683580,\"modified\":1664683580,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"44f9280e-b23a-11ed-b5ae-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1664683580\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2310724773,\"monitor_id\":null,\"org_id\":321813,\"start\":1664768547,\"end\":null,\"canceled\":null,\"created\":1664768547,\"modified\":1664768547,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4527d244-b23a-11ed-9938-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1664768547\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2311751018,\"monitor_id\":null,\"org_id\":321813,\"start\":1664798717,\"end\":null,\"canceled\":null,\"created\":1664798717,\"modified\":1664798717,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"453eeef2-b23a-11ed-9e5e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1664798717\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2311853437,\"monitor_id\":null,\"org_id\":321813,\"start\":1664801314,\"end\":null,\"canceled\":null,\"created\":1664801314,\"modified\":1664801314,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"45420ac4-b23a-11ed-9ecf-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1664801313\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2314053141,\"monitor_id\":null,\"org_id\":321813,\"start\":1664855215,\"end\":null,\"canceled\":null,\"created\":1664855215,\"modified\":1664855215,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"456a525e-b23a-11ed-a875-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1664855215\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2317462447,\"monitor_id\":null,\"org_id\":321813,\"start\":1664941149,\"end\":null,\"canceled\":null,\"created\":1664941149,\"modified\":1664941149,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"45a4f616-b23a-11ed-b63c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1664941149\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2320920699,\"monitor_id\":null,\"org_id\":321813,\"start\":1665028211,\"end\":null,\"canceled\":null,\"created\":1665028211,\"modified\":1665028211,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"45db20d8-b23a-11ed-a5a1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1665028211\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2324463653,\"monitor_id\":null,\"org_id\":321813,\"start\":1665114659,\"end\":null,\"canceled\":null,\"created\":1665114659,\"modified\":1665114659,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4612a79c-b23a-11ed-b2fa-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1665114659\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2327861896,\"monitor_id\":null,\"org_id\":321813,\"start\":1665200731,\"end\":null,\"canceled\":null,\"created\":1665200731,\"modified\":1665200731,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"464786e2-b23a-11ed-beca-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1665200731\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2330490748,\"monitor_id\":null,\"org_id\":321813,\"start\":1665288449,\"end\":null,\"canceled\":null,\"created\":1665288449,\"modified\":1665288449,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"46964fca-b23a-11ed-afc6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1665288449\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2333064683,\"monitor_id\":null,\"org_id\":321813,\"start\":1665374034,\"end\":null,\"canceled\":null,\"created\":1665374034,\"modified\":1665374034,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"46cbbde0-b23a-11ed-b727-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1665374034\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2336305403,\"monitor_id\":null,\"org_id\":321813,\"start\":1665460375,\"end\":null,\"canceled\":null,\"created\":1665460375,\"modified\":1665460375,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"472de5f6-b23a-11ed-a149-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1665460375\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2339858010,\"monitor_id\":null,\"org_id\":321813,\"start\":1665547646,\"end\":null,\"canceled\":null,\"created\":1665547646,\"modified\":1665547646,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"47cb0818-b23a-11ed-b168-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1665547646\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2343370119,\"monitor_id\":null,\"org_id\":321813,\"start\":1665633476,\"end\":null,\"canceled\":null,\"created\":1665633476,\"modified\":1665633476,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"486bfcdc-b23a-11ed-92d8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1665633476\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2347009518,\"monitor_id\":null,\"org_id\":321813,\"start\":1665720804,\"end\":null,\"canceled\":null,\"created\":1665720804,\"modified\":1665720804,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"48ea0474-b23a-11ed-a459-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1665720804\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2350435984,\"monitor_id\":null,\"org_id\":321813,\"start\":1665806934,\"end\":null,\"canceled\":null,\"created\":1665806934,\"modified\":1665806934,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"49706f00-b23a-11ed-b2f1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1665806934\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2353123675,\"monitor_id\":null,\"org_id\":321813,\"start\":1665892719,\"end\":null,\"canceled\":null,\"created\":1665892719,\"modified\":1665892719,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"49b6358a-b23a-11ed-ba64-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1665892719\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2355874041,\"monitor_id\":null,\"org_id\":321813,\"start\":1665980424,\"end\":null,\"canceled\":null,\"created\":1665980424,\"modified\":1665980424,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"49fd2878-b23a-11ed-a500-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1665980423\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2359464876,\"monitor_id\":null,\"org_id\":321813,\"start\":1666066360,\"end\":null,\"canceled\":null,\"created\":1666066360,\"modified\":1666066360,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4a8339ae-b23a-11ed-b38f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1666066360\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2363166481,\"monitor_id\":null,\"org_id\":321813,\"start\":1666151799,\"end\":null,\"canceled\":null,\"created\":1666151799,\"modified\":1666151799,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4b0d051c-b23a-11ed-9a2d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1666151799\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2366832505,\"monitor_id\":null,\"org_id\":321813,\"start\":1666237831,\"end\":null,\"canceled\":null,\"created\":1666237831,\"modified\":1666237831,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4b897d54-b23a-11ed-a8bf-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1666237831\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2370651012,\"monitor_id\":null,\"org_id\":321813,\"start\":1666324226,\"end\":null,\"canceled\":null,\"created\":1666324226,\"modified\":1666324226,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4c0003fc-b23a-11ed-b6a8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1666324226\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2373891845,\"monitor_id\":null,\"org_id\":321813,\"start\":1666410633,\"end\":null,\"canceled\":null,\"created\":1666410633,\"modified\":1666410633,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4c968458-b23a-11ed-b1a7-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1666410633\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2375820314,\"monitor_id\":null,\"org_id\":321813,\"start\":1666497723,\"end\":null,\"canceled\":null,\"created\":1666497723,\"modified\":1666497723,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4ccfac7e-b23a-11ed-b94b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1666497723\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2377807884,\"monitor_id\":null,\"org_id\":321813,\"start\":1666585186,\"end\":null,\"canceled\":null,\"created\":1666585186,\"modified\":1666585186,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4d0596ae-b23a-11ed-95c9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1666585186\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2380634964,\"monitor_id\":null,\"org_id\":321813,\"start\":1666671429,\"end\":null,\"canceled\":null,\"created\":1666671429,\"modified\":1666671429,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4d6c0e3e-b23a-11ed-a488-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1666671429\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2383551848,\"monitor_id\":null,\"org_id\":321813,\"start\":1666756451,\"end\":null,\"canceled\":null,\"created\":1666756451,\"modified\":1666756451,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4de0811a-b23a-11ed-b509-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1666756451\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2386485139,\"monitor_id\":null,\"org_id\":321813,\"start\":1666842706,\"end\":null,\"canceled\":null,\"created\":1666842706,\"modified\":1666842706,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4e6c0f46-b23a-11ed-afa9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1666842706\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2389361533,\"monitor_id\":null,\"org_id\":321813,\"start\":1666928402,\"end\":null,\"canceled\":null,\"created\":1666928402,\"modified\":1666928402,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4eee5a5a-b23a-11ed-9a31-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1666928402\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2391663198,\"monitor_id\":null,\"org_id\":321813,\"start\":1666998730,\"end\":null,\"canceled\":null,\"created\":1666998730,\"modified\":1666998730,\"message\":\"Example-Cancel_a_downtime_returns_OK_response_1666998730\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1668813130},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4f526a36-b23a-11ed-a8aa-da7ad0900002\",\"scope\":[\"test:examplecanceladowntimereturnsokresponse1666998730\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2392184244,\"monitor_id\":null,\"org_id\":321813,\"start\":1667015400,\"end\":null,\"canceled\":null,\"created\":1667015400,\"modified\":1667015400,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4f5d8f7e-b23a-11ed-aa60-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1667015400\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2394213744,\"monitor_id\":null,\"org_id\":321813,\"start\":1667101533,\"end\":null,\"canceled\":null,\"created\":1667101533,\"modified\":1667101533,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4f99564e-b23a-11ed-b522-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1667101533\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2396247420,\"monitor_id\":null,\"org_id\":321813,\"start\":1667188255,\"end\":null,\"canceled\":null,\"created\":1667188255,\"modified\":1667188255,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4fcc2d30-b23a-11ed-be26-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1667188255\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2399087501,\"monitor_id\":null,\"org_id\":321813,\"start\":1667274852,\"end\":null,\"canceled\":null,\"created\":1667274852,\"modified\":1667274852,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"503ad3a2-b23a-11ed-8bd8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1667274852\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2401845581,\"monitor_id\":null,\"org_id\":321813,\"start\":1667360911,\"end\":null,\"canceled\":null,\"created\":1667360911,\"modified\":1667360911,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"50a80530-b23a-11ed-9c19-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1667360911\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2404743169,\"monitor_id\":null,\"org_id\":321813,\"start\":1667447257,\"end\":null,\"canceled\":null,\"created\":1667447257,\"modified\":1667447257,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5125180e-b23a-11ed-b28a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1667447257\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2407616643,\"monitor_id\":null,\"org_id\":321813,\"start\":1667533120,\"end\":null,\"canceled\":null,\"created\":1667533120,\"modified\":1667533120,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"519bdc78-b23a-11ed-beb6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1667533119\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2410256321,\"monitor_id\":null,\"org_id\":321813,\"start\":1667619810,\"end\":null,\"canceled\":null,\"created\":1667619810,\"modified\":1667619810,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"51dc2a6c-b23a-11ed-b1d4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1667619809\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2412137040,\"monitor_id\":null,\"org_id\":321813,\"start\":1667705648,\"end\":null,\"canceled\":null,\"created\":1667705648,\"modified\":1667705648,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"51fd2730-b23a-11ed-b805-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1667705648\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2414032041,\"monitor_id\":null,\"org_id\":321813,\"start\":1667792099,\"end\":null,\"canceled\":null,\"created\":1667792099,\"modified\":1667792099,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5223efb4-b23a-11ed-bf9a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1667792099\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2416850995,\"monitor_id\":null,\"org_id\":321813,\"start\":1667878541,\"end\":null,\"canceled\":null,\"created\":1667878541,\"modified\":1667878541,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"526975e8-b23a-11ed-9134-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1667878541\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2419746011,\"monitor_id\":null,\"org_id\":321813,\"start\":1667965599,\"end\":null,\"canceled\":null,\"created\":1667965599,\"modified\":1667965599,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"52bd636a-b23a-11ed-a012-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1667965599\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2422684390,\"monitor_id\":null,\"org_id\":321813,\"start\":1668051921,\"end\":null,\"canceled\":null,\"created\":1668051921,\"modified\":1668051921,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5314f814-b23a-11ed-b1eb-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1668051921\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2425602831,\"monitor_id\":null,\"org_id\":321813,\"start\":1668138530,\"end\":null,\"canceled\":null,\"created\":1668138530,\"modified\":1668138530,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"536f3a04-b23a-11ed-8675-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1668138530\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2428165936,\"monitor_id\":null,\"org_id\":321813,\"start\":1668224948,\"end\":null,\"canceled\":null,\"created\":1668224948,\"modified\":1668224948,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"53a8cc92-b23a-11ed-9489-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1668224947\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2430079787,\"monitor_id\":null,\"org_id\":321813,\"start\":1668311134,\"end\":null,\"canceled\":null,\"created\":1668311134,\"modified\":1668311134,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"53cb6810-b23a-11ed-9d35-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1668311133\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2432023952,\"monitor_id\":null,\"org_id\":321813,\"start\":1668398012,\"end\":null,\"canceled\":null,\"created\":1668398012,\"modified\":1668398012,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"53f8ffbe-b23a-11ed-a71c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1668398012\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2434867196,\"monitor_id\":null,\"org_id\":321813,\"start\":1668483680,\"end\":null,\"canceled\":null,\"created\":1668483680,\"modified\":1668483680,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5456ab0a-b23a-11ed-b7ca-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1668483680\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2437934009,\"monitor_id\":null,\"org_id\":321813,\"start\":1668569448,\"end\":null,\"canceled\":null,\"created\":1668569448,\"modified\":1668569448,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"54d1b908-b23a-11ed-bc98-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1668569448\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2440980215,\"monitor_id\":null,\"org_id\":321813,\"start\":1668656285,\"end\":null,\"canceled\":null,\"created\":1668656285,\"modified\":1668656285,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"553618e4-b23a-11ed-9d51-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1668656284\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2443990260,\"monitor_id\":null,\"org_id\":321813,\"start\":1668742655,\"end\":null,\"canceled\":null,\"created\":1668742655,\"modified\":1668742655,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"55859d2e-b23a-11ed-ae50-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1668742655\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2446775868,\"monitor_id\":null,\"org_id\":321813,\"start\":1668829056,\"end\":null,\"canceled\":null,\"created\":1668829056,\"modified\":1668829056,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"55c76b82-b23a-11ed-bc45-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1668829056\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2448754897,\"monitor_id\":null,\"org_id\":321813,\"start\":1668915702,\"end\":null,\"canceled\":null,\"created\":1668915702,\"modified\":1668915702,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"55e8ef64-b23a-11ed-8743-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1668915702\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2450712748,\"monitor_id\":null,\"org_id\":321813,\"start\":1669001414,\"end\":null,\"canceled\":null,\"created\":1669001414,\"modified\":1669001414,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5610f342-b23a-11ed-8f6c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1669001414\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2453550027,\"monitor_id\":null,\"org_id\":321813,\"start\":1669088360,\"end\":null,\"canceled\":null,\"created\":1669088360,\"modified\":1669088360,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"564af178-b23a-11ed-9cfb-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1669088360\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2456372360,\"monitor_id\":null,\"org_id\":321813,\"start\":1669174451,\"end\":null,\"canceled\":null,\"created\":1669174451,\"modified\":1669174451,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"569e5368-b23a-11ed-af05-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1669174451\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2459015896,\"monitor_id\":null,\"org_id\":321813,\"start\":1669259755,\"end\":null,\"canceled\":null,\"created\":1669259755,\"modified\":1669259755,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"56fcdfa0-b23a-11ed-bea9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1669259755\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2461421566,\"monitor_id\":null,\"org_id\":321813,\"start\":1669347462,\"end\":null,\"canceled\":null,\"created\":1669347462,\"modified\":1669347462,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5739ab24-b23a-11ed-a9c6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1669347462\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2463652138,\"monitor_id\":null,\"org_id\":321813,\"start\":1669432382,\"end\":null,\"canceled\":null,\"created\":1669432382,\"modified\":1669432382,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"576ec908-b23a-11ed-b42e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1669432382\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2465532171,\"monitor_id\":null,\"org_id\":321813,\"start\":1669519459,\"end\":null,\"canceled\":null,\"created\":1669519459,\"modified\":1669519459,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"57900abe-b23a-11ed-ba7c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1669519459\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2467453245,\"monitor_id\":null,\"org_id\":321813,\"start\":1669606066,\"end\":null,\"canceled\":null,\"created\":1669606066,\"modified\":1669606066,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"57b463fa-b23a-11ed-9e48-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1669606066\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2470167503,\"monitor_id\":null,\"org_id\":321813,\"start\":1669692510,\"end\":null,\"canceled\":null,\"created\":1669692510,\"modified\":1669692510,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"57f2c2ee-b23a-11ed-ac35-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1669692510\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2473090961,\"monitor_id\":null,\"org_id\":321813,\"start\":1669778936,\"end\":null,\"canceled\":null,\"created\":1669778936,\"modified\":1669778936,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"583a4c36-b23a-11ed-bb1d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1669778936\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2476000033,\"monitor_id\":null,\"org_id\":321813,\"start\":1669865073,\"end\":null,\"canceled\":null,\"created\":1669865073,\"modified\":1669865073,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"588a6586-b23a-11ed-99a2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1669865073\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2479105710,\"monitor_id\":null,\"org_id\":321813,\"start\":1669951601,\"end\":null,\"canceled\":null,\"created\":1669951601,\"modified\":1669951601,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"58dec252-b23a-11ed-a8b2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1669951601\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2481860968,\"monitor_id\":null,\"org_id\":321813,\"start\":1670036988,\"end\":null,\"canceled\":null,\"created\":1670036988,\"modified\":1670036988,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"59287096-b23a-11ed-b680-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1670036988\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2483920956,\"monitor_id\":null,\"org_id\":321813,\"start\":1670123328,\"end\":null,\"canceled\":null,\"created\":1670123328,\"modified\":1670123328,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5953a9c8-b23a-11ed-bff4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1670123328\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2485945042,\"monitor_id\":null,\"org_id\":321813,\"start\":1670209634,\"end\":null,\"canceled\":null,\"created\":1670209634,\"modified\":1670209634,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"59891b62-b23a-11ed-b63e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1670209634\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2488855057,\"monitor_id\":null,\"org_id\":321813,\"start\":1670297020,\"end\":null,\"canceled\":null,\"created\":1670297020,\"modified\":1670297020,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"59e4bdb4-b23a-11ed-a0d2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1670297020\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2491781849,\"monitor_id\":null,\"org_id\":321813,\"start\":1670382737,\"end\":null,\"canceled\":null,\"created\":1670382737,\"modified\":1670382737,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5a480112-b23a-11ed-b58b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1670382737\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2494648826,\"monitor_id\":null,\"org_id\":321813,\"start\":1670469092,\"end\":null,\"canceled\":null,\"created\":1670469092,\"modified\":1670469092,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5aaf27ac-b23a-11ed-9c39-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1670469092\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2497564303,\"monitor_id\":null,\"org_id\":321813,\"start\":1670556287,\"end\":null,\"canceled\":null,\"created\":1670556287,\"modified\":1670556287,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5b029568-b23a-11ed-aef6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1670556287\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2500332362,\"monitor_id\":null,\"org_id\":321813,\"start\":1670642536,\"end\":null,\"canceled\":null,\"created\":1670642536,\"modified\":1670642536,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5b4f83c8-b23a-11ed-bd36-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1670642535\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2502312199,\"monitor_id\":null,\"org_id\":321813,\"start\":1670729290,\"end\":null,\"canceled\":null,\"created\":1670729290,\"modified\":1670729290,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5b8533d8-b23a-11ed-be50-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1670729289\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2504226029,\"monitor_id\":null,\"org_id\":321813,\"start\":1670814711,\"end\":null,\"canceled\":null,\"created\":1670814711,\"modified\":1670814711,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5bcc4a52-b23a-11ed-8bad-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1670814711\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2507088594,\"monitor_id\":null,\"org_id\":321813,\"start\":1670902159,\"end\":null,\"canceled\":null,\"created\":1670902159,\"modified\":1670902159,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5c27848a-b23a-11ed-9bba-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1670902159\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2510122339,\"monitor_id\":null,\"org_id\":321813,\"start\":1670988375,\"end\":null,\"canceled\":null,\"created\":1670988375,\"modified\":1670988375,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5c984bb6-b23a-11ed-b178-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1670988375\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2513143092,\"monitor_id\":null,\"org_id\":321813,\"start\":1671073824,\"end\":null,\"canceled\":null,\"created\":1671073824,\"modified\":1671073824,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5cfff540-b23a-11ed-8ac4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1671073824\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2516092056,\"monitor_id\":null,\"org_id\":321813,\"start\":1671160088,\"end\":null,\"canceled\":null,\"created\":1671160088,\"modified\":1671160088,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5d6becb4-b23a-11ed-9b32-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1671160088\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2518847271,\"monitor_id\":null,\"org_id\":321813,\"start\":1671246425,\"end\":null,\"canceled\":null,\"created\":1671246425,\"modified\":1671246425,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5dbba6dc-b23a-11ed-a824-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1671246425\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2520885813,\"monitor_id\":null,\"org_id\":321813,\"start\":1671332896,\"end\":null,\"canceled\":null,\"created\":1671332896,\"modified\":1671332896,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5de39b24-b23a-11ed-aed5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1671332896\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2522901816,\"monitor_id\":null,\"org_id\":321813,\"start\":1671419306,\"end\":null,\"canceled\":null,\"created\":1671419306,\"modified\":1671419306,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5e0caa5a-b23a-11ed-b5ed-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1671419306\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2525599143,\"monitor_id\":null,\"org_id\":321813,\"start\":1671505743,\"end\":null,\"canceled\":null,\"created\":1671505743,\"modified\":1671505743,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5e635aee-b23a-11ed-afce-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1671505743\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2528402773,\"monitor_id\":null,\"org_id\":321813,\"start\":1671592750,\"end\":null,\"canceled\":null,\"created\":1671592750,\"modified\":1671592750,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5ec6c55c-b23a-11ed-bf28-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1671592750\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2531139209,\"monitor_id\":null,\"org_id\":321813,\"start\":1671679401,\"end\":null,\"canceled\":null,\"created\":1671679401,\"modified\":1671679401,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5f16a48c-b23a-11ed-bec5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1671679401\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2533715069,\"monitor_id\":null,\"org_id\":321813,\"start\":1671765903,\"end\":null,\"canceled\":null,\"created\":1671765903,\"modified\":1671765903,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5f783094-b23a-11ed-9ecf-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1671765903\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2536026538,\"monitor_id\":null,\"org_id\":321813,\"start\":1671851289,\"end\":null,\"canceled\":null,\"created\":1671851289,\"modified\":1671851289,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5fbec716-b23a-11ed-ab40-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1671851289\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2537944423,\"monitor_id\":null,\"org_id\":321813,\"start\":1671938544,\"end\":null,\"canceled\":null,\"created\":1671938544,\"modified\":1671938544,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5fe86c10-b23a-11ed-b296-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1671938544\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2539834901,\"monitor_id\":null,\"org_id\":321813,\"start\":1672025026,\"end\":null,\"canceled\":null,\"created\":1672025026,\"modified\":1672025026,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6015f644-b23a-11ed-b970-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1672025026\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2541931987,\"monitor_id\":null,\"org_id\":321813,\"start\":1672110543,\"end\":null,\"canceled\":null,\"created\":1672110543,\"modified\":1672110543,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6049d2b6-b23a-11ed-b68a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1672110543\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2544196687,\"monitor_id\":null,\"org_id\":321813,\"start\":1672196848,\"end\":null,\"canceled\":null,\"created\":1672196848,\"modified\":1672196848,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6085d306-b23a-11ed-befb-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1672196848\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2546563378,\"monitor_id\":null,\"org_id\":321813,\"start\":1672284134,\"end\":null,\"canceled\":null,\"created\":1672284134,\"modified\":1672284134,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"60cd9b96-b23a-11ed-9c0d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1672284134\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2548844907,\"monitor_id\":null,\"org_id\":321813,\"start\":1672370478,\"end\":null,\"canceled\":null,\"created\":1672370478,\"modified\":1672370478,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6106731c-b23a-11ed-a61c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1672370478\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2550894571,\"monitor_id\":null,\"org_id\":321813,\"start\":1672450879,\"end\":null,\"canceled\":null,\"created\":1672450880,\"modified\":1672450880,\"message\":\"Test-Python-Schedule_a_downtime_returns_OK_response-1672450879\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1674265279},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"61402620-b23a-11ed-af5c-da7ad0900002\",\"scope\":[\"test:testpythonscheduleadowntimereturnsokresponse1672450879\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2551049490,\"monitor_id\":null,\"org_id\":321813,\"start\":1672457080,\"end\":null,\"canceled\":null,\"created\":1672457080,\"modified\":1672457080,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"61433072-b23a-11ed-afd9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1672457079\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2552957917,\"monitor_id\":null,\"org_id\":321813,\"start\":1672543636,\"end\":null,\"canceled\":null,\"created\":1672543636,\"modified\":1672543636,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"616ef554-b23a-11ed-b5df-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1672543636\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2554846933,\"monitor_id\":null,\"org_id\":321813,\"start\":1672628828,\"end\":null,\"canceled\":null,\"created\":1672628828,\"modified\":1672628828,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6198f25a-b23a-11ed-bbb1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1672628828\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2557042043,\"monitor_id\":null,\"org_id\":321813,\"start\":1672715466,\"end\":null,\"canceled\":null,\"created\":1672715466,\"modified\":1672715466,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"61cedc44-b23a-11ed-a8d1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1672715466\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2559718474,\"monitor_id\":null,\"org_id\":321813,\"start\":1672802648,\"end\":null,\"canceled\":null,\"created\":1672802648,\"modified\":1672802648,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"621bd1a2-b23a-11ed-b595-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1672802648\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2562469384,\"monitor_id\":null,\"org_id\":321813,\"start\":1672888040,\"end\":null,\"canceled\":null,\"created\":1672888040,\"modified\":1672888040,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6276b748-b23a-11ed-a4a1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1672888040\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2565260369,\"monitor_id\":null,\"org_id\":321813,\"start\":1672975635,\"end\":null,\"canceled\":null,\"created\":1672975635,\"modified\":1672975635,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"62ebeb80-b23a-11ed-b3a5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1672975635\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2567876166,\"monitor_id\":null,\"org_id\":321813,\"start\":1673061908,\"end\":null,\"canceled\":null,\"created\":1673061908,\"modified\":1673061908,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"634648d2-b23a-11ed-b99b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1673061908\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2569874434,\"monitor_id\":null,\"org_id\":321813,\"start\":1673148340,\"end\":null,\"canceled\":null,\"created\":1673148340,\"modified\":1673148340,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6379147e-b23a-11ed-9d18-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1673148340\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2571846356,\"monitor_id\":null,\"org_id\":321813,\"start\":1673233671,\"end\":null,\"canceled\":null,\"created\":1673233671,\"modified\":1673233671,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"63ace5ce-b23a-11ed-a483-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1673233670\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2574631850,\"monitor_id\":null,\"org_id\":321813,\"start\":1673320808,\"end\":null,\"canceled\":null,\"created\":1673320808,\"modified\":1673320808,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"64138df6-b23a-11ed-b607-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1673320808\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2577551876,\"monitor_id\":null,\"org_id\":321813,\"start\":1673406486,\"end\":null,\"canceled\":null,\"created\":1673406486,\"modified\":1673406486,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6481c406-b23a-11ed-9b2f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1673406486\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2580588818,\"monitor_id\":null,\"org_id\":321813,\"start\":1673493909,\"end\":null,\"canceled\":null,\"created\":1673493909,\"modified\":1673493909,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"65125b7e-b23a-11ed-ade3-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1673493909\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2583632569,\"monitor_id\":null,\"org_id\":321813,\"start\":1673579292,\"end\":null,\"canceled\":null,\"created\":1673579292,\"modified\":1673579292,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"657f385c-b23a-11ed-be68-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1673579292\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2586588083,\"monitor_id\":null,\"org_id\":321813,\"start\":1673666478,\"end\":null,\"canceled\":null,\"created\":1673666478,\"modified\":1673666478,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"661bc88e-b23a-11ed-b68f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1673666478\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2588714306,\"monitor_id\":null,\"org_id\":321813,\"start\":1673752026,\"end\":null,\"canceled\":null,\"created\":1673752026,\"modified\":1673752026,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6655622e-b23a-11ed-bdda-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1673752026\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2590863616,\"monitor_id\":null,\"org_id\":321813,\"start\":1673838421,\"end\":null,\"canceled\":null,\"created\":1673838421,\"modified\":1673838421,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"668f095c-b23a-11ed-ad7a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1673838420\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2593482058,\"monitor_id\":null,\"org_id\":321813,\"start\":1673924797,\"end\":null,\"canceled\":null,\"created\":1673924797,\"modified\":1673924797,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"66eadd04-b23a-11ed-ba3e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1673924797\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2596552193,\"monitor_id\":null,\"org_id\":321813,\"start\":1674011390,\"end\":null,\"canceled\":null,\"created\":1674011390,\"modified\":1674011390,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6765c4f6-b23a-11ed-94f0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1674011389\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2599777565,\"monitor_id\":null,\"org_id\":321813,\"start\":1674097737,\"end\":null,\"canceled\":null,\"created\":1674097737,\"modified\":1674097737,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"67dabfd6-b23a-11ed-a4ba-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1674097737\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2600758418,\"monitor_id\":null,\"org_id\":321813,\"start\":1674126729,\"end\":null,\"canceled\":null,\"created\":1674126731,\"modified\":1674126731,\"message\":\"Test-Typescript-Cancel_a_downtime_returns_OK_response-1674126729\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1675941129},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"67fcfeb6-b23a-11ed-a8e2-da7ad0900002\",\"scope\":[\"test:testtypescriptcanceladowntimereturnsokresponse1674126729\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2603031576,\"monitor_id\":null,\"org_id\":321813,\"start\":1674185040,\"end\":null,\"canceled\":null,\"created\":1674185040,\"modified\":1674185040,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"685bb08c-b23a-11ed-b59c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1674185040\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2606086439,\"monitor_id\":null,\"org_id\":321813,\"start\":1674271210,\"end\":null,\"canceled\":null,\"created\":1674271210,\"modified\":1674271210,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"68bf1636-b23a-11ed-bfb9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1674271210\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2608313999,\"monitor_id\":null,\"org_id\":321813,\"start\":1674356985,\"end\":null,\"canceled\":null,\"created\":1674356985,\"modified\":1674356985,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"68f8a1b2-b23a-11ed-a034-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1674356985\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2610560603,\"monitor_id\":null,\"org_id\":321813,\"start\":1674444122,\"end\":null,\"canceled\":null,\"created\":1674444122,\"modified\":1674444122,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6938ae7e-b23a-11ed-a931-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1674444122\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2613613034,\"monitor_id\":null,\"org_id\":321813,\"start\":1674530851,\"end\":null,\"canceled\":null,\"created\":1674530851,\"modified\":1674530851,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"69ba5b5e-b23a-11ed-bd81-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1674530851\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2616779806,\"monitor_id\":null,\"org_id\":321813,\"start\":1674617139,\"end\":null,\"canceled\":null,\"created\":1674617139,\"modified\":1674617139,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6a542eaa-b23a-11ed-8cc6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1674617138\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2619964524,\"monitor_id\":null,\"org_id\":321813,\"start\":1674702441,\"end\":null,\"canceled\":null,\"created\":1674702441,\"modified\":1674702441,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6b7f5246-b23a-11ed-bc5e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1674702441\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2623114089,\"monitor_id\":null,\"org_id\":321813,\"start\":1674789736,\"end\":null,\"canceled\":null,\"created\":1674789736,\"modified\":1674789736,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6c272660-b23a-11ed-b0ce-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1674789736\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2626156777,\"monitor_id\":null,\"org_id\":321813,\"start\":1674875289,\"end\":null,\"canceled\":null,\"created\":1674875289,\"modified\":1674875289,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6ca4f798-b23a-11ed-a1f2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1674875289\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2628406510,\"monitor_id\":null,\"org_id\":321813,\"start\":1674961773,\"end\":null,\"canceled\":null,\"created\":1674961773,\"modified\":1674961773,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6ce8a560-b23a-11ed-afa4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1674961772\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2630635049,\"monitor_id\":null,\"org_id\":321813,\"start\":1675049129,\"end\":null,\"canceled\":null,\"created\":1675049129,\"modified\":1675049129,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6d237ed8-b23a-11ed-b9fa-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1675049129\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2633681612,\"monitor_id\":null,\"org_id\":321813,\"start\":1675134518,\"end\":null,\"canceled\":null,\"created\":1675134518,\"modified\":1675134518,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6db67ea4-b23a-11ed-9aae-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1675134518\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2637043417,\"monitor_id\":null,\"org_id\":321813,\"start\":1675222344,\"end\":null,\"canceled\":null,\"created\":1675222344,\"modified\":1675222344,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6e4270f8-b23a-11ed-b3de-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1675222344\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2640471834,\"monitor_id\":null,\"org_id\":321813,\"start\":1675308429,\"end\":null,\"canceled\":null,\"created\":1675308429,\"modified\":1675308429,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6eef73f2-b23a-11ed-a097-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1675308429\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2643895350,\"monitor_id\":null,\"org_id\":321813,\"start\":1675394935,\"end\":null,\"canceled\":null,\"created\":1675394935,\"modified\":1675394935,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6f525fc6-b23a-11ed-b5fd-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1675394935\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2647042185,\"monitor_id\":null,\"org_id\":321813,\"start\":1675481082,\"end\":null,\"canceled\":null,\"created\":1675481082,\"modified\":1675481082,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6faf60f4-b23a-11ed-929a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1675481081\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2649308596,\"monitor_id\":null,\"org_id\":321813,\"start\":1675567859,\"end\":null,\"canceled\":null,\"created\":1675567859,\"modified\":1675567859,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6fe1332c-b23a-11ed-9de4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1675567859\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2651511859,\"monitor_id\":null,\"org_id\":321813,\"start\":1675653560,\"end\":null,\"canceled\":null,\"created\":1675653560,\"modified\":1675653560,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"700f6c60-b23a-11ed-a6a6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1675653560\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2654605183,\"monitor_id\":null,\"org_id\":321813,\"start\":1675739218,\"end\":null,\"canceled\":null,\"created\":1675739218,\"modified\":1675739218,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"7086b9d2-b23a-11ed-bb6d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1675739218\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2657838252,\"monitor_id\":null,\"org_id\":321813,\"start\":1675825978,\"end\":null,\"canceled\":null,\"created\":1675825978,\"modified\":1675825978,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"7ce7b618-a75e-11ed-b822-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1675825977\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2661127229,\"monitor_id\":null,\"org_id\":321813,\"start\":1675912277,\"end\":null,\"canceled\":null,\"created\":1675912277,\"modified\":1675912277,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6b77c570-a827-11ed-a960-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1675912277\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2664387719,\"monitor_id\":null,\"org_id\":321813,\"start\":1675998991,\"end\":null,\"canceled\":null,\"created\":1675998991,\"modified\":1675998991,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"51182ee8-a8f1-11ed-a6d8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1675998991\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2667462242,\"monitor_id\":null,\"org_id\":321813,\"start\":1676084840,\"end\":null,\"canceled\":null,\"created\":1676084840,\"modified\":1676084840,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"32c98266-a9b9-11ed-937e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1676084840\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2669738508,\"monitor_id\":null,\"org_id\":321813,\"start\":1676171532,\"end\":null,\"canceled\":null,\"created\":1676171532,\"modified\":1676171532,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"0b4383fc-aa83-11ed-a5f1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1676171532\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2671961482,\"monitor_id\":null,\"org_id\":321813,\"start\":1676258048,\"end\":null,\"canceled\":null,\"created\":1676258048,\"modified\":1676258048,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"7b1bc4e0-ab4c-11ed-babc-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1676258048\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2675049958,\"monitor_id\":null,\"org_id\":321813,\"start\":1676345094,\"end\":null,\"canceled\":null,\"created\":1676345094,\"modified\":1676345094,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2681f32a-ac17-11ed-ad86-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1676345094\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2678184740,\"monitor_id\":null,\"org_id\":321813,\"start\":1676431536,\"end\":null,\"canceled\":null,\"created\":1676431536,\"modified\":1676431536,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"69f94076-ace0-11ed-997b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1676431536\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2686826575,\"monitor_id\":null,\"org_id\":321813,\"start\":1676690805,\"end\":null,\"canceled\":null,\"created\":1676690805,\"modified\":1676690805,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"121f709c-af3c-11ed-8e55-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1676690805\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2690694581,\"monitor_id\":null,\"org_id\":321813,\"start\":1676863797,\"end\":null,\"canceled\":null,\"created\":1676863797,\"modified\":1676863797,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"d93b9db6-b0ce-11ed-952d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1676863797\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2693119909,\"monitor_id\":null,\"org_id\":321813,\"start\":1676949968,\"end\":null,\"canceled\":null,\"created\":1676949968,\"modified\":1676949968,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"7b82a592-b197-11ed-a6d6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1676949968\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2695915919,\"monitor_id\":null,\"org_id\":321813,\"start\":1677035416,\"end\":null,\"canceled\":null,\"created\":1677035416,\"modified\":1677035416,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6e2217da-b25e-11ed-ae42-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1677035416\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2698832031,\"monitor_id\":null,\"org_id\":321813,\"start\":1677122753,\"end\":null,\"canceled\":null,\"created\":1677122753,\"modified\":1677122753,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"c6fed67e-b329-11ed-b36d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1677122753\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2701668737,\"monitor_id\":null,\"org_id\":321813,\"start\":1677208162,\"end\":null,\"canceled\":null,\"created\":1677208162,\"modified\":1677208162,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"a2b09bf0-b3f0-11ed-93c1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1677208162\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2704456221,\"monitor_id\":null,\"org_id\":321813,\"start\":1677294747,\"end\":null,\"canceled\":null,\"created\":1677294747,\"modified\":1677294747,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3b977090-b4ba-11ed-ba51-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1677294747\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2706388177,\"monitor_id\":null,\"org_id\":321813,\"start\":1677381498,\"end\":null,\"canceled\":null,\"created\":1677381498,\"modified\":1677381498,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3755f946-b584-11ed-af53-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1677381498\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2708284382,\"monitor_id\":null,\"org_id\":321813,\"start\":1677467616,\"end\":null,\"canceled\":null,\"created\":1677467616,\"modified\":1677467616,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"b9c6cf40-b64c-11ed-8cf7-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1677467616\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2711154521,\"monitor_id\":null,\"org_id\":321813,\"start\":1677554700,\"end\":null,\"canceled\":null,\"created\":1677554700,\"modified\":1677554700,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"7bc9dd06-b717-11ed-b2fa-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1677554700\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2714153386,\"monitor_id\":null,\"org_id\":321813,\"start\":1677641816,\"end\":null,\"canceled\":null,\"created\":1677641816,\"modified\":1677641816,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"509f1cc4-b7e2-11ed-820f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1677641815\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2717090681,\"monitor_id\":null,\"org_id\":321813,\"start\":1677728071,\"end\":null,\"canceled\":null,\"created\":1677728071,\"modified\":1677728071,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24dd3476-b8ab-11ed-a470-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1677728071\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2720110441,\"monitor_id\":null,\"org_id\":321813,\"start\":1677817030,\"end\":null,\"canceled\":null,\"created\":1677817030,\"modified\":1677817030,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4438f6aa-b97a-11ed-b783-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1677817029\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2721264920,\"monitor_id\":null,\"org_id\":321813,\"start\":1677856379,\"end\":null,\"canceled\":null,\"created\":1677856379,\"modified\":1677856379,\"message\":\"Test-Cancel_a_downtime_returns_OK_response-1677856379\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1679670779},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"e28aa10e-b9d5-11ed-b17f-da7ad0900002\",\"scope\":[\"test:testcanceladowntimereturnsokresponse1677856379\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2721264932,\"monitor_id\":null,\"org_id\":321813,\"start\":1677856380,\"end\":null,\"canceled\":null,\"created\":1677856380,\"modified\":1677856380,\"message\":\"Test-Cancel_downtimes_by_scope_returns_OK_response-1677856380\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1679670780},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"e30f994a-b9d5-11ed-8eda-da7ad0900002\",\"scope\":[\"test:testcanceldowntimesbyscopereturnsokresponse1677856380\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2721264942,\"monitor_id\":null,\"org_id\":321813,\"start\":1677856381,\"end\":null,\"canceled\":null,\"created\":1677856381,\"modified\":1677856381,\"message\":\"Test-Get_a_downtime_returns_OK_response-1677856381\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1679670781},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"e394449c-b9d5-11ed-b3b6-da7ad0900002\",\"scope\":[\"test:testgetadowntimereturnsokresponse1677856381\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2721265067,\"monitor_id\":null,\"org_id\":321813,\"start\":1677856382,\"end\":null,\"canceled\":null,\"created\":1677856382,\"modified\":1677856382,\"message\":\"Test-Schedule_a_downtime_returns_OK_response-1677856382\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1679670782},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"e45aa52e-b9d5-11ed-a784-da7ad0900002\",\"scope\":[\"test:testscheduleadowntimereturnsokresponse1677856382\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2721265130,\"monitor_id\":null,\"org_id\":321813,\"start\":1677856385,\"end\":null,\"canceled\":null,\"created\":1677856385,\"modified\":1677856385,\"message\":\"Test-Update_a_downtime_returns_OK_response-1677856385\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1679670785},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"e6276450-b9d5-11ed-8ac6-da7ad0900002\",\"scope\":[\"test:testupdateadowntimereturnsokresponse1677856385\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2721265226,\"monitor_id\":null,\"org_id\":321813,\"start\":1677856391,\"end\":null,\"canceled\":null,\"created\":1677856391,\"modified\":1677856391,\"message\":\"Test-TestScopedDowntime-1677856391\",\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"e991eb38-b9d5-11ed-93e6-da7ad0900002\",\"scope\":[\"test:client-TestScopedDowntime-1677856391554437000\",\"test:go-TestScopedDowntime-1677856391554437000\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2721273075,\"monitor_id\":null,\"org_id\":321813,\"start\":1677856631,\"end\":null,\"canceled\":null,\"created\":1677856631,\"modified\":1677856631,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"78454db6-b9d6-11ed-93a4-da7ad0900002\",\"scope\":[\"host:Test-TestHostsMuteErrors-1677856630\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2722701604,\"monitor_id\":null,\"org_id\":321813,\"start\":1677899298,\"end\":null,\"canceled\":null,\"created\":1677899298,\"modified\":1677899298,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"cfd485d4-ba39-11ed-9104-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1677899297\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2724671796,\"monitor_id\":null,\"org_id\":321813,\"start\":1677986443,\"end\":null,\"canceled\":null,\"created\":1677986443,\"modified\":1677986443,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"b6679c64-bb04-11ed-934b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1677986443\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2726606375,\"monitor_id\":null,\"org_id\":321813,\"start\":1678073416,\"end\":null,\"canceled\":null,\"created\":1678073416,\"modified\":1678073416,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3691e474-bbcf-11ed-89d5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1678073416\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2729396507,\"monitor_id\":null,\"org_id\":321813,\"start\":1678159094,\"end\":null,\"canceled\":null,\"created\":1678159094,\"modified\":1678159094,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"b2b48eae-bc96-11ed-997c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1678159094\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2732366148,\"monitor_id\":null,\"org_id\":321813,\"start\":1678246145,\"end\":null,\"canceled\":null,\"created\":1678246145,\"modified\":1678246145,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6118481c-bd61-11ed-bd6f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1678246145\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2734798898,\"monitor_id\":null,\"org_id\":321813,\"start\":1678332523,\"end\":null,\"canceled\":null,\"created\":1678332523,\"modified\":1678332523,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"7e47effe-be2a-11ed-80cd-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1678332523\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2736093674,\"monitor_id\":105701177,\"org_id\":321813,\"start\":1678373827,\"end\":1688373727,\"canceled\":null,\"created\":1678373795,\"modified\":1678458742,\"message\":\"This one\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"days\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"America/New_York\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"968d8bd6-be8a-11ed-992b-da7ad0900002\",\"scope\":[\"animal:foo3\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2737791387,\"monitor_id\":null,\"org_id\":321813,\"start\":1678419048,\"end\":null,\"canceled\":null,\"created\":1678419048,\"modified\":1678419048,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"f3398a24-bef3-11ed-9652-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1678419048\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2740561826,\"monitor_id\":null,\"org_id\":321813,\"start\":1678504255,\"end\":null,\"canceled\":null,\"created\":1678504255,\"modified\":1678504255,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"56595758-bfba-11ed-b4fa-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1678504255\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2742533345,\"monitor_id\":null,\"org_id\":321813,\"start\":1678591465,\"end\":null,\"canceled\":null,\"created\":1678591465,\"modified\":1678591465,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"637b2daa-c085-11ed-afde-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1678591464\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2744464259,\"monitor_id\":null,\"org_id\":321813,\"start\":1678677871,\"end\":null,\"canceled\":null,\"created\":1678677871,\"modified\":1678677871,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"91f6362e-c14e-11ed-adfd-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1678677871\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2747305970,\"monitor_id\":null,\"org_id\":321813,\"start\":1678763407,\"end\":null,\"canceled\":null,\"created\":1678763407,\"modified\":1678763407,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"b93dc18a-c215-11ed-8912-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1678763407\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2750352650,\"monitor_id\":null,\"org_id\":321813,\"start\":1678850827,\"end\":null,\"canceled\":null,\"created\":1678850827,\"modified\":1678850827,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4362d4ce-c2e1-11ed-b32f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1678850827\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2753392718,\"monitor_id\":null,\"org_id\":321813,\"start\":1678937089,\"end\":null,\"canceled\":null,\"created\":1678937089,\"modified\":1678937089,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1b6f6aa8-c3aa-11ed-a17c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1678937088\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2756384366,\"monitor_id\":null,\"org_id\":321813,\"start\":1679023438,\"end\":null,\"canceled\":null,\"created\":1679023438,\"modified\":1679023438,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"27abcec8-c473-11ed-abd1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1679023438\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2759184839,\"monitor_id\":null,\"org_id\":321813,\"start\":1679110073,\"end\":null,\"canceled\":null,\"created\":1679110073,\"modified\":1679110073,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"de7c4cc6-c53c-11ed-a206-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1679110073\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2761121698,\"monitor_id\":null,\"org_id\":321813,\"start\":1679195444,\"end\":null,\"canceled\":null,\"created\":1679195444,\"modified\":1679195444,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"a37c72b4-c603-11ed-b124-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1679195444\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2763030552,\"monitor_id\":null,\"org_id\":321813,\"start\":1679281598,\"end\":null,\"canceled\":null,\"created\":1679281598,\"modified\":1679281598,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3ae13306-c6cc-11ed-bd74-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1679281597\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2765932390,\"monitor_id\":null,\"org_id\":321813,\"start\":1679369074,\"end\":null,\"canceled\":null,\"created\":1679369074,\"modified\":1679369074,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"e6c71cd2-c797-11ed-aad1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1679369074\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2768950414,\"monitor_id\":null,\"org_id\":321813,\"start\":1679454428,\"end\":null,\"canceled\":null,\"created\":1679454428,\"modified\":1679454428,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"a1decf80-c85e-11ed-a0e3-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1679454428\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2769430775,\"monitor_id\":null,\"org_id\":321813,\"start\":1679470403,\"end\":1679474003,\"canceled\":1679470404,\"created\":1679470404,\"modified\":1679470404,\"message\":\"Example-Schedule_a_downtime_once_a_year_1679470403\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"years\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"d40dc73e-c883-11ed-8997-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769430920,\"monitor_id\":null,\"org_id\":321813,\"start\":1679470410,\"end\":1679474010,\"canceled\":1679470411,\"created\":1679470410,\"modified\":1679470411,\"message\":\"Example-Schedule_a_downtime_until_date_1679470410\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681284810},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"d7e8320e-c883-11ed-9b3d-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769430970,\"monitor_id\":null,\"org_id\":321813,\"start\":1679470412,\"end\":1679474012,\"canceled\":1679470412,\"created\":1679470412,\"modified\":1679470412,\"message\":\"Example-Schedule_a_downtime_with_until_occurrences_1679470412\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":3,\"until_date\":null},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"d8fb8330-c883-11ed-a9ac-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769570391,\"monitor_id\":null,\"org_id\":321813,\"start\":1679475239,\"end\":null,\"canceled\":1679475241,\"created\":1679475240,\"modified\":1679475241,\"message\":\"Example-Get_a_downtime_returns_OK_response_1679475239\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681289639},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"168d9c5a-c88f-11ed-b22a-da7ad0900002\",\"scope\":[\"test:examplegetadowntimereturnsokresponse1679475239\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769570429,\"monitor_id\":null,\"org_id\":321813,\"start\":1679475242,\"end\":null,\"canceled\":1679475243,\"created\":1679475243,\"modified\":1679475243,\"message\":\"Example-Schedule_a_downtime_returns_OK_response_1679475242\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681289642},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"18479b86-c88f-11ed-ac93-da7ad0900002\",\"scope\":[\"test:examplescheduleadowntimereturnsokresponse1679475242\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769570422,\"monitor_id\":null,\"org_id\":321813,\"start\":1679475242,\"end\":null,\"canceled\":1679475243,\"created\":1679475242,\"modified\":1679475243,\"message\":\"Example-Update_a_downtime_returns_OK_response_1679475242-updated\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681289642},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"17e4619c-c88f-11ed-be88-da7ad0900002\",\"scope\":[\"test:exampleupdateadowntimereturnsokresponse1679475242\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769570484,\"monitor_id\":null,\"org_id\":321813,\"start\":1679475245,\"end\":null,\"canceled\":1679475246,\"created\":1679475245,\"modified\":1679475246,\"message\":\"Example-Cancel_a_downtime_returns_OK_response_1679475245\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681289645},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"19f10346-c88f-11ed-b49e-da7ad0900002\",\"scope\":[\"test:examplecanceladowntimereturnsokresponse1679475245\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769570699,\"monitor_id\":null,\"org_id\":321813,\"start\":1679475248,\"end\":null,\"canceled\":1679475250,\"created\":1679475249,\"modified\":1679475250,\"message\":\"Example-Cancel_downtimes_by_scope_returns_OK_response_1679475248\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681289648},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1bd88e18-c88f-11ed-8c3e-da7ad0900002\",\"scope\":[\"test:examplecanceldowntimesbyscopereturnsokresponse1679475248\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769580952,\"monitor_id\":114364578,\"org_id\":321813,\"start\":1679475612,\"end\":null,\"canceled\":1679475614,\"created\":1679475613,\"modified\":1679475614,\"message\":\"Example-Schedule_a_monitor_downtime_returns_OK_response_1679475612\",\"active\":false,\"disabled\":true,\"recurrence\":null,\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"f5481bd2-c88f-11ed-8423-da7ad0900002\",\"scope\":[\"test:examplescheduleamonitordowntimereturnsokresponse1679475612\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769833430,\"monitor_id\":null,\"org_id\":321813,\"start\":1679483686,\"end\":null,\"canceled\":1679483690,\"created\":1679483688,\"modified\":1679483690,\"message\":\"Test-Typescript-Cancel_a_downtime_returns_OK_response-1679483686\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681298086},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"c25d9ef0-c8a2-11ed-b67f-da7ad0900002\",\"scope\":[\"test:testtypescriptcanceladowntimereturnsokresponse1679483686\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769833558,\"monitor_id\":null,\"org_id\":321813,\"start\":1679483692,\"end\":null,\"canceled\":1679483696,\"created\":1679483695,\"modified\":1679483696,\"message\":\"Test-Typescript-Cancel_downtimes_by_scope_returns_OK_response-1679483692\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681298092},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"c60c4fc4-c8a2-11ed-9eab-da7ad0900002\",\"scope\":[\"test:testtypescriptcanceldowntimesbyscopereturnsokresponse1679483692\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769833691,\"monitor_id\":null,\"org_id\":321813,\"start\":1679483698,\"end\":null,\"canceled\":1679483701,\"created\":1679483700,\"modified\":1679483701,\"message\":\"Test-Typescript-Get_a_downtime_returns_OK_response-1679483698\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681298098},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"c9815726-c8a2-11ed-b302-da7ad0900002\",\"scope\":[\"test:testtypescriptgetadowntimereturnsokresponse1679483698\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769833809,\"monitor_id\":null,\"org_id\":321813,\"start\":1679483701,\"end\":1679487301,\"canceled\":1679483704,\"created\":1679483704,\"modified\":1679483704,\"message\":\"Test-Typescript-Schedule_a_downtime_once_a_year-1679483701\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"years\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"cb81e00e-c8a2-11ed-8147-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769833984,\"monitor_id\":null,\"org_id\":321813,\"start\":1679483707,\"end\":null,\"canceled\":1679483710,\"created\":1679483709,\"modified\":1679483710,\"message\":\"Test-Typescript-Schedule_a_downtime_returns_OK_response-1679483707\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681298107},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"cedc3290-c8a2-11ed-879b-da7ad0900002\",\"scope\":[\"test:testtypescriptscheduleadowntimereturnsokresponse1679483707\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769834091,\"monitor_id\":null,\"org_id\":321813,\"start\":1679483710,\"end\":1679487310,\"canceled\":1679483714,\"created\":1679483713,\"modified\":1679483714,\"message\":\"Test-Typescript-Schedule_a_downtime_until_date-1679483710\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681298110},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"d12d815c-c8a2-11ed-9eef-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769834394,\"monitor_id\":null,\"org_id\":321813,\"start\":1679483721,\"end\":1679487321,\"canceled\":1679483724,\"created\":1679483724,\"modified\":1679483724,\"message\":\"Test-Typescript-Schedule_a_downtime_with_until_occurrences-1679483721\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":3,\"until_date\":null},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"d759916a-c8a2-11ed-8ddc-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769834572,\"monitor_id\":114371609,\"org_id\":321813,\"start\":1679483724,\"end\":null,\"canceled\":1679483728,\"created\":1679483727,\"modified\":1679483728,\"message\":\"Test-Typescript-Schedule_a_monitor_downtime_returns_OK_response-1679483724\",\"active\":false,\"disabled\":true,\"recurrence\":null,\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"d96d9366-c8a2-11ed-ba18-da7ad0900002\",\"scope\":[\"test:testtypescriptscheduleamonitordowntimereturnsokresponse1679483724\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769834782,\"monitor_id\":null,\"org_id\":321813,\"start\":1679483728,\"end\":null,\"canceled\":1679483732,\"created\":1679483731,\"modified\":1679483732,\"message\":\"Test-Typescript-Update_a_downtime_returns_OK_response-1679483728-updated\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681298128},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"db90fb7e-c8a2-11ed-a509-da7ad0900002\",\"scope\":[\"test:testtypescriptupdateadowntimereturnsokresponse1679483728\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769867564,\"monitor_id\":null,\"org_id\":321813,\"start\":1679484803,\"end\":1679488403,\"canceled\":1679484804,\"created\":1679484804,\"modified\":1679484804,\"message\":\"Example-Schedule_a_downtime_once_a_year_1679484803\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"years\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5b3442a8-c8a5-11ed-bcee-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769867674,\"monitor_id\":null,\"org_id\":321813,\"start\":1679484809,\"end\":1679488409,\"canceled\":1679484810,\"created\":1679484810,\"modified\":1679484810,\"message\":\"Example-Schedule_a_downtime_until_date_1679484809\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681299209},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5ea676c2-c8a5-11ed-9a59-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769867692,\"monitor_id\":null,\"org_id\":321813,\"start\":1679484810,\"end\":1679488410,\"canceled\":1679484811,\"created\":1679484811,\"modified\":1679484811,\"message\":\"Example-Schedule_a_downtime_with_until_occurrences_1679484810\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":3,\"until_date\":null},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5f4e81be-c8a5-11ed-8fd3-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769961924,\"monitor_id\":null,\"org_id\":321813,\"start\":1679487556,\"end\":null,\"canceled\":1679487558,\"created\":1679487556,\"modified\":1679487558,\"message\":\"tf-TestAccDatadogDowntime_DiffStart-local-1679487555\",\"active\":false,\"disabled\":true,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":2320499,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"c3be0754-c8ab-11ed-a3e1-da7ad0900002\",\"scope\":[\"new:somescope\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2770030155,\"monitor_id\":null,\"org_id\":321813,\"start\":1679489639,\"end\":null,\"canceled\":1679489641,\"created\":1679489640,\"modified\":1679489641,\"message\":\"Example-Get_a_downtime_returns_OK_response_1679489639\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681304039},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"9d9da26e-c8b0-11ed-a360-da7ad0900002\",\"scope\":[\"test:examplegetadowntimereturnsokresponse1679489639\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770030204,\"monitor_id\":null,\"org_id\":321813,\"start\":1679489641,\"end\":null,\"canceled\":1679489642,\"created\":1679489642,\"modified\":1679489642,\"message\":\"Example-Update_a_downtime_returns_OK_response_1679489641-updated\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681304041},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"9eadbe1e-c8b0-11ed-bb15-da7ad0900002\",\"scope\":[\"test:exampleupdateadowntimereturnsokresponse1679489641\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770030219,\"monitor_id\":null,\"org_id\":321813,\"start\":1679489643,\"end\":null,\"canceled\":1679489643,\"created\":1679489643,\"modified\":1679489643,\"message\":\"Example-Schedule_a_downtime_returns_OK_response_1679489643\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681304043},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"9f82b998-c8b0-11ed-9e59-da7ad0900002\",\"scope\":[\"test:examplescheduleadowntimereturnsokresponse1679489643\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770030355,\"monitor_id\":null,\"org_id\":321813,\"start\":1679489645,\"end\":null,\"canceled\":1679489646,\"created\":1679489645,\"modified\":1679489646,\"message\":\"Example-Cancel_a_downtime_returns_OK_response_1679489645\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681304045},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"a0dca952-c8b0-11ed-bb5c-da7ad0900002\",\"scope\":[\"test:examplecanceladowntimereturnsokresponse1679489645\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770030525,\"monitor_id\":null,\"org_id\":321813,\"start\":1679489648,\"end\":null,\"canceled\":1679489650,\"created\":1679489649,\"modified\":1679489650,\"message\":\"Example-Cancel_downtimes_by_scope_returns_OK_response_1679489648\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681304048},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"a2ea6284-c8b0-11ed-b322-da7ad0900002\",\"scope\":[\"test:examplecanceldowntimesbyscopereturnsokresponse1679489648\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770041810,\"monitor_id\":114376213,\"org_id\":321813,\"start\":1679490012,\"end\":null,\"canceled\":1679490014,\"created\":1679490013,\"modified\":1679490014,\"message\":\"Example-Schedule_a_monitor_downtime_returns_OK_response_1679490012\",\"active\":false,\"disabled\":true,\"recurrence\":null,\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"7c4c7b70-c8b1-11ed-9833-da7ad0900002\",\"scope\":[\"test:examplescheduleamonitordowntimereturnsokresponse1679490012\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2767070611,\"monitor_id\":110212070,\"org_id\":321813,\"start\":1679492045,\"end\":1679492075,\"canceled\":null,\"created\":1679405692,\"modified\":1679492092,\"message\":\"This one\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"days\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"America/New_York\",\"parent_id\":2764091228,\"child_id\":2770113401,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"ended\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"28ae1830-c7ed-11ed-a6b4-da7ad0900002\",\"scope\":[\"animal:foo4\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769936028,\"monitor_id\":null,\"org_id\":321813,\"start\":1679497621,\"end\":1679501221,\"canceled\":1679486825,\"created\":1679486823,\"modified\":1679486825,\"message\":\"tf-TestAccDatadogDowntime_BasicWithMonitorTags-local-1679486821\",\"active\":false,\"disabled\":true,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":2320499,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"app:webserver\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"0ed848a0-c8aa-11ed-9eef-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2769936339,\"monitor_id\":114374093,\"org_id\":321813,\"start\":1679497624,\"end\":1679501224,\"canceled\":1679486829,\"created\":1679486826,\"modified\":1679486829,\"message\":\"tf-TestAccDatadogDowntime_BasicWithMonitor-local-1679486824\",\"active\":false,\"disabled\":true,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":2320499,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"10a0259a-c8aa-11ed-8de9-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2767447260,\"monitor_id\":null,\"org_id\":321813,\"start\":1679497983,\"end\":1679501583,\"canceled\":null,\"created\":1679415232,\"modified\":1679501633,\"message\":\"Test-Schedule_a_downtime_until_date-1677856383\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1679670783},\"timezone\":\"Etc/UTC\",\"parent_id\":2764446794,\"child_id\":2770482668,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":0,\"status\":\"ended\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5ef05974-c803-11ed-a19b-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2767447261,\"monitor_id\":null,\"org_id\":321813,\"start\":1679497990,\"end\":1679501590,\"canceled\":null,\"created\":1679415232,\"modified\":1679501633,\"message\":\"Test-TestDowntimeLifecycle-1677856390\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1679670790},\"timezone\":\"Etc/UTC\",\"parent_id\":2764446795,\"child_id\":2770482670,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":0,\"status\":\"ended\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5ef0691e-c803-11ed-a19c-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2767447262,\"monitor_id\":null,\"org_id\":321813,\"start\":1679497991,\"end\":1679501591,\"canceled\":null,\"created\":1679415232,\"modified\":1679501633,\"message\":\"Test-TestDowntimeRecurrence_until_date-1677856392; until date\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1679670791},\"timezone\":\"Etc/UTC\",\"parent_id\":2764446796,\"child_id\":2770482669,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":0,\"status\":\"ended\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5ef0715c-c803-11ed-a19d-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770385514,\"monitor_id\":null,\"org_id\":321813,\"start\":1679499203,\"end\":1679502803,\"canceled\":1679499204,\"created\":1679499204,\"modified\":1679499204,\"message\":\"Example-Schedule_a_downtime_once_a_year_1679499203\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"years\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"e234f808-c8c6-11ed-87e1-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770385766,\"monitor_id\":null,\"org_id\":321813,\"start\":1679499210,\"end\":1679502810,\"canceled\":1679499211,\"created\":1679499210,\"modified\":1679499211,\"message\":\"Example-Schedule_a_downtime_until_date_1679499210\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681313610},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"e5f7ca38-c8c6-11ed-abd5-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770385809,\"monitor_id\":null,\"org_id\":321813,\"start\":1679499211,\"end\":1679502811,\"canceled\":1679499212,\"created\":1679499211,\"modified\":1679499212,\"message\":\"Example-Schedule_a_downtime_with_until_occurrences_1679499211\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":3,\"until_date\":null},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"e6a0de20-c8c6-11ed-ac07-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770578108,\"monitor_id\":null,\"org_id\":321813,\"start\":1679504039,\"end\":null,\"canceled\":1679504041,\"created\":1679504040,\"modified\":1679504041,\"message\":\"Example-Get_a_downtime_returns_OK_response_1679504039\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681318439},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24b27b96-c8d2-11ed-8949-da7ad0900002\",\"scope\":[\"test:examplegetadowntimereturnsokresponse1679504039\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770578168,\"monitor_id\":null,\"org_id\":321813,\"start\":1679504041,\"end\":null,\"canceled\":1679504042,\"created\":1679504042,\"modified\":1679504042,\"message\":\"Example-Update_a_downtime_returns_OK_response_1679504041-updated\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681318441},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25c2bf50-c8d2-11ed-be23-da7ad0900002\",\"scope\":[\"test:exampleupdateadowntimereturnsokresponse1679504041\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770578292,\"monitor_id\":null,\"org_id\":321813,\"start\":1679504043,\"end\":null,\"canceled\":1679504044,\"created\":1679504043,\"modified\":1679504044,\"message\":\"Example-Schedule_a_downtime_returns_OK_response_1679504043\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681318443},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"26d6b284-c8d2-11ed-abf2-da7ad0900002\",\"scope\":[\"test:examplescheduleadowntimereturnsokresponse1679504043\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770578325,\"monitor_id\":null,\"org_id\":321813,\"start\":1679504045,\"end\":null,\"canceled\":1679504046,\"created\":1679504045,\"modified\":1679504046,\"message\":\"Example-Cancel_a_downtime_returns_OK_response_1679504045\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681318445},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"27ea7e4e-c8d2-11ed-865b-da7ad0900002\",\"scope\":[\"test:examplecanceladowntimereturnsokresponse1679504045\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770578384,\"monitor_id\":null,\"org_id\":321813,\"start\":1679504048,\"end\":null,\"canceled\":1679504050,\"created\":1679504049,\"modified\":1679504050,\"message\":\"Example-Cancel_downtimes_by_scope_returns_OK_response_1679504048\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681318448},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"29ffe11a-c8d2-11ed-b57c-da7ad0900002\",\"scope\":[\"test:examplecanceldowntimesbyscopereturnsokresponse1679504048\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770593586,\"monitor_id\":114400169,\"org_id\":321813,\"start\":1679504412,\"end\":null,\"canceled\":1679504414,\"created\":1679504413,\"modified\":1679504414,\"message\":\"Example-Schedule_a_monitor_downtime_returns_OK_response_1679504412\",\"active\":false,\"disabled\":true,\"recurrence\":null,\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"035d396c-c8d3-11ed-9a03-da7ad0900002\",\"scope\":[\"test:examplescheduleamonitordowntimereturnsokresponse1679504412\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2768714875,\"monitor_id\":null,\"org_id\":321813,\"start\":1679529850,\"end\":1679533450,\"canceled\":null,\"created\":1679447092,\"modified\":1679447092,\"message\":\"Test-Go-TestDowntimeRecurrence_until_date-1677715451; until date\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1679529850},\"timezone\":\"Etc/UTC\",\"parent_id\":2765676300,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":0,\"status\":\"scheduled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"8d176d20-c84d-11ed-8a63-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2770113401,\"monitor_id\":110212070,\"org_id\":321813,\"start\":1679578445,\"end\":1679578475,\"canceled\":null,\"created\":1679492092,\"modified\":1679492092,\"message\":\"This one\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"days\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"America/New_York\",\"parent_id\":2767070611,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"scheduled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"53803b1e-c8b6-11ed-9b7d-da7ad0900002\",\"scope\":[\"animal:foo4\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770482668,\"monitor_id\":null,\"org_id\":321813,\"start\":1679584383,\"end\":1679587983,\"canceled\":null,\"created\":1679501633,\"modified\":1679501633,\"message\":\"Test-Schedule_a_downtime_until_date-1677856383\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1679670783},\"timezone\":\"Etc/UTC\",\"parent_id\":2767447260,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":0,\"status\":\"scheduled\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"89f5598e-c8cc-11ed-9df0-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770482670,\"monitor_id\":null,\"org_id\":321813,\"start\":1679584390,\"end\":1679587990,\"canceled\":null,\"created\":1679501633,\"modified\":1679501633,\"message\":\"Test-TestDowntimeLifecycle-1677856390\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1679670790},\"timezone\":\"Etc/UTC\",\"parent_id\":2767447261,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":0,\"status\":\"scheduled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"89f5679e-c8cc-11ed-9df2-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770482669,\"monitor_id\":null,\"org_id\":321813,\"start\":1679584391,\"end\":1679587991,\"canceled\":null,\"created\":1679501633,\"modified\":1679501633,\"message\":\"Test-TestDowntimeRecurrence_until_date-1677856392; until date\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1679670791},\"timezone\":\"Etc/UTC\",\"parent_id\":2767447262,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":0,\"status\":\"scheduled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"89f56528-c8cc-11ed-9df1-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2565005611,\"monitor_id\":null,\"org_id\":321813,\"start\":1704499563,\"end\":1704503163,\"canceled\":null,\"created\":1672967185,\"modified\":1672967185,\"message\":\"Test-Go-Schedule_a_downtime_once_a_year-1672963563\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"years\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"Etc/UTC\",\"parent_id\":2564876174,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":0,\"status\":\"scheduled\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"62e3a8da-b23a-11ed-b25e-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2721390105,\"monitor_id\":null,\"org_id\":321813,\"start\":1709478781,\"end\":1709482381,\"canceled\":null,\"created\":1677860032,\"modified\":1677860032,\"message\":\"Test-Schedule_a_downtime_once_a_year-1677856381\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"years\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"Etc/UTC\",\"parent_id\":2721264952,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":0,\"status\":\"scheduled\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"639c9ac4-b9de-11ed-ba84-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2721390104,\"monitor_id\":null,\"org_id\":321813,\"start\":1709478791,\"end\":1709482391,\"canceled\":null,\"created\":1677860032,\"modified\":1677860032,\"message\":\"Test-TestDowntimeRecurrence_once_a_year-1677856394; once a year\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"years\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"Etc/UTC\",\"parent_id\":2721265651,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":0,\"status\":\"scheduled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"639c81ba-b9de-11ed-ba83-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":1878944397,\"monitor_id\":null,\"org_id\":321813,\"start\":1735646400,\"end\":1735732799,\"canceled\":null,\"created\":1649943433,\"modified\":1649943433,\"message\":\"tf-TestAccDatadogDowntime_RRule-local-1649943431\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"rrule\",\"rrule\":\"FREQ=MONTHLY;BYSETPOS=3;BYDAY=WE;INTERVAL=1\"},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"scheduled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d0fd2d8-b23a-11ed-aa1a-da7ad0900002\",\"scope\":[\"RRuleRecurrence\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1965848156,\"monitor_id\":null,\"org_id\":321813,\"start\":1735646400,\"end\":1735732799,\"canceled\":null,\"created\":1653179652,\"modified\":1653179652,\"message\":\"tf-TestAccDatadogDowntime_RRule-local-1653179650\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"rrule\",\"rrule\":\"FREQ=MONTHLY;BYSETPOS=3;BYDAY=WE;INTERVAL=1\"},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"scheduled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30c35d3c-b23a-11ed-adaf-da7ad0900002\",\"scope\":[\"RRuleRecurrence\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1965848173,\"monitor_id\":null,\"org_id\":321813,\"start\":1735646400,\"end\":1735732799,\"canceled\":null,\"created\":1653179653,\"modified\":1653179653,\"message\":\"tf-TestAccDatadogDowntime_WeekDayRecurring-local-1653179650\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Sat\",\"Sun\"],\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"scheduled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30c3630e-b23a-11ed-adb0-da7ad0900002\",\"scope\":[\"WeekDaysRecurrence\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2597640957,\"monitor_id\":null,\"org_id\":321813,\"start\":1735646400,\"end\":1735732799,\"canceled\":null,\"created\":1674043991,\"modified\":1674043991,\"message\":\"tf-TestAccDatadogDowntime_WeekDayRecurring-local-1674043990\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Sat\",\"Sun\"],\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"scheduled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"67891b7c-b23a-11ed-9ab5-da7ad0900002\",\"scope\":[\"WeekDaysRecurrence\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2769962029,\"monitor_id\":null,\"org_id\":321813,\"start\":1735646400,\"end\":1735732799,\"canceled\":1679487563,\"created\":1679487561,\"modified\":1679487563,\"message\":\"tf-TestAccDatadogDowntime_RRule-local-1679487559\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"rrule\",\"rrule\":\"FREQ=MONTHLY;BYSETPOS=3;BYDAY=WE;INTERVAL=1\"},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":2320499,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"c6ba1a2e-c8ab-11ed-905f-da7ad0900002\",\"scope\":[\"scope:RRuleRecurrence\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2769962078,\"monitor_id\":null,\"org_id\":321813,\"start\":1735646400,\"end\":1735732799,\"canceled\":1679487566,\"created\":1679487565,\"modified\":1679487566,\"message\":\"tf-TestAccDatadogDowntime_WeekDayRecurring-local-1679487563\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Sat\",\"Sun\"],\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":2320499,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"c8d8bec8-c8ab-11ed-bfdf-da7ad0900002\",\"scope\":[\"scope:WeekDaysRecurrence\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1965848064,\"monitor_id\":null,\"org_id\":321813,\"start\":1735707600,\"end\":1735765200,\"canceled\":null,\"created\":1653179649,\"modified\":1653179649,\"message\":\"tf-TestAccDatadogDowntime_TrimWhitespace-local-1653179647\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"days\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"scheduled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30c358aa-b23a-11ed-adad-da7ad0900002\",\"scope\":[\"host:Whitespace\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1965848072,\"monitor_id\":null,\"org_id\":321813,\"start\":1735707600,\"end\":1735765200,\"canceled\":null,\"created\":1653179650,\"modified\":1653179650,\"message\":\"tf-TestAccDatadogDowntime_Updated-local-1653179648\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"days\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":0,\"status\":\"scheduled\",\"monitor_tags\":[\"app:webserver\",\"service\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30c35b34-b23a-11ed-adae-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1965848231,\"monitor_id\":null,\"org_id\":321813,\"start\":1735707600,\"end\":1735765200,\"canceled\":null,\"created\":1653179657,\"modified\":1653179657,\"message\":\"tf-TestAccDatadogDowntime_BasicNoRecurrence-local-1653179655\",\"active\":false,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"scheduled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30c36516-b23a-11ed-adb1-da7ad0900002\",\"scope\":[\"host:NoRecurrence\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1965848233,\"monitor_id\":null,\"org_id\":321813,\"start\":1735707600,\"end\":1735765200,\"canceled\":null,\"created\":1653179658,\"modified\":1653179658,\"message\":\"tf-TestAccDatadogDowntime_BasicMultiScope-local-1653179656\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"days\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"scheduled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30c367fa-b23a-11ed-adb2-da7ad0900002\",\"scope\":[\"host:A\",\"host:B\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2245041146,\"monitor_id\":null,\"org_id\":321813,\"start\":1735707600,\"end\":1735765200,\"canceled\":null,\"created\":1663158585,\"modified\":1663158585,\"message\":\"tf-TestAccDatadogDowntime_BasicUntilOccurrencesRecurrence-local-1663158584\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"days\",\"period\":1,\"week_days\":null,\"until_occurrences\":5,\"until_date\":null},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"scheduled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"41a4b5d8-b23a-11ed-a80f-da7ad0900002\",\"scope\":[\"host:UntilOccurrencesRecurrence\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2769935690,\"monitor_id\":null,\"org_id\":321813,\"start\":1735707600,\"end\":1735765200,\"canceled\":1679486814,\"created\":1679486812,\"modified\":1679486814,\"message\":\"tf-TestAccDatadogDowntime_BasicUntilOccurrencesRecurrence-local-1679486810\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"days\",\"period\":1,\"week_days\":null,\"until_occurrences\":5,\"until_date\":null},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":2320499,\"downtime_type\":1,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"0827bb80-c8aa-11ed-879e-da7ad0900002\",\"scope\":[\"host:UntilOccurrencesRecurrence\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2769935803,\"monitor_id\":null,\"org_id\":321813,\"start\":1735707600,\"end\":1735765200,\"canceled\":1679486817,\"created\":1679486815,\"modified\":1679486817,\"message\":\"tf-TestAccDatadogDowntime_BasicUntilDateRecurrence-local-1679486814\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"days\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":1736226000},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":2320499,\"downtime_type\":1,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"0a36e702-c8aa-11ed-a28e-da7ad0900002\",\"scope\":[\"host:UntilDateRecurrence\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2769935899,\"monitor_id\":null,\"org_id\":321813,\"start\":1735707600,\"end\":1735765200,\"canceled\":1679486820,\"created\":1679486819,\"modified\":1679486820,\"message\":\"tf-TestAccDatadogDowntime_BasicNoRecurrence-local-1679486817\",\"active\":false,\"disabled\":true,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":2320499,\"downtime_type\":1,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"0c38769c-c8aa-11ed-8dcb-da7ad0900002\",\"scope\":[\"host:NoRecurrence\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2769936000,\"monitor_id\":null,\"org_id\":321813,\"start\":1735707600,\"end\":1735765200,\"canceled\":1679486824,\"created\":1679486822,\"modified\":1679486824,\"message\":\"tf-TestAccDatadogDowntime_BasicMultiScope-local-1679486820\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"days\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":2320499,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"0e3193f2-c8aa-11ed-aa3d-da7ad0900002\",\"scope\":[\"host:A\",\"host:B\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2769936356,\"monitor_id\":null,\"org_id\":321813,\"start\":1735707600,\"end\":1735765200,\"canceled\":1679486829,\"created\":1679486827,\"modified\":1679486829,\"message\":\"tf-TestAccDatadogDowntime_Basic-local-1679486826\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"days\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":2320499,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"app:webserver\",\"service\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"11381580-c8aa-11ed-a88a-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2769961950,\"monitor_id\":null,\"org_id\":321813,\"start\":1735707600,\"end\":1735765200,\"canceled\":1679487559,\"created\":1679487558,\"modified\":1679487559,\"message\":\"tf-TestAccDatadogDowntime_TrimWhitespace-local-1679487556\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"days\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":2320499,\"downtime_type\":1,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"c495fdb2-c8ab-11ed-87ac-da7ad0900002\",\"scope\":[\"host:Whitespace\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2769962082,\"monitor_id\":null,\"org_id\":321813,\"start\":1735707600,\"end\":1735765200,\"canceled\":1679487567,\"created\":1679487565,\"modified\":1679487567,\"message\":\"Example Datadog downtime message.\",\"active\":false,\"disabled\":true,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":2320499,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"foo:bar\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"c9303e00-c8ab-11ed-8a05-da7ad0900002\",\"scope\":[\"host:X\",\"host:Y\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2769962022,\"monitor_id\":null,\"org_id\":321813,\"start\":1735707600,\"end\":1735765200,\"canceled\":1679487563,\"created\":1679487560,\"modified\":1679487563,\"message\":\"tf-TestAccDatadogDowntime_Updated-local-1679487558\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"days\",\"period\":3,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":2320499,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"c5e6c1ba-c8ab-11ed-8d95-da7ad0900002\",\"scope\":[\"scope:Updated\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1965848033,\"monitor_id\":null,\"org_id\":321813,\"start\":4097124660,\"end\":4097160000,\"canceled\":null,\"created\":1653179646,\"modified\":1653179646,\"message\":\"tf-TestAccDatadogDowntimeDates-local-1653179644\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"days\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":0,\"status\":\"scheduled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30c353aa-b23a-11ed-adab-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2054437499,\"monitor_id\":null,\"org_id\":321813,\"start\":4097124660,\"end\":4097160000,\"canceled\":null,\"created\":1656591274,\"modified\":1656591274,\"message\":\"tf-TestAccDatadogDowntimeDates-local-1656591273\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"days\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":0,\"status\":\"scheduled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3727526e-b23a-11ed-aedf-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2769961903,\"monitor_id\":null,\"org_id\":321813,\"start\":4097124660,\"end\":4097160000,\"canceled\":1679487556,\"created\":1679487554,\"modified\":1679487556,\"message\":\"tf-TestAccDatadogDowntimeDates-local-1679487552\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"days\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":2320499,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"c280e320-c8ab-11ed-bde0-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}}]\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 22 Mar 2023 17:28:50 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/downtime?with_creator=true" + }, + "response": { + "body": { + "string": "[{\"id\":1529094018,\"monitor_id\":null,\"org_id\":321813,\"start\":1635430672,\"end\":null,\"canceled\":null,\"created\":1635430672,\"modified\":1635430672,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1d9e7eee-b23a-11ed-a0dc-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635430672\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1529121935,\"monitor_id\":null,\"org_id\":321813,\"start\":1635431628,\"end\":null,\"canceled\":null,\"created\":1635431628,\"modified\":1635431628,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1d9ec3cc-b23a-11ed-a0ea-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635431628\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1529146913,\"monitor_id\":null,\"org_id\":321813,\"start\":1635432530,\"end\":null,\"canceled\":null,\"created\":1635432530,\"modified\":1635432530,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1da042ec-b23a-11ed-a16b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635432530\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1529163389,\"monitor_id\":null,\"org_id\":321813,\"start\":1635432982,\"end\":null,\"canceled\":null,\"created\":1635432982,\"modified\":1635432982,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1da0495e-b23a-11ed-a16c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635432982\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1529202437,\"monitor_id\":null,\"org_id\":321813,\"start\":1635434214,\"end\":null,\"canceled\":null,\"created\":1635434214,\"modified\":1635434214,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1da06d30-b23a-11ed-a178-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635434214\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1529294591,\"monitor_id\":null,\"org_id\":321813,\"start\":1635437311,\"end\":null,\"canceled\":null,\"created\":1635437311,\"modified\":1635437311,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1da0eabc-b23a-11ed-a193-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635437311\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1530384499,\"monitor_id\":null,\"org_id\":321813,\"start\":1635477074,\"end\":null,\"canceled\":null,\"created\":1635477074,\"modified\":1635477074,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1da8e726-b23a-11ed-a3ab-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635477074\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1530800029,\"monitor_id\":null,\"org_id\":321813,\"start\":1635494828,\"end\":null,\"canceled\":null,\"created\":1635494828,\"modified\":1635494828,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1db7e4f6-b23a-11ed-a86e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635494828\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1530853487,\"monitor_id\":null,\"org_id\":321813,\"start\":1635496863,\"end\":null,\"canceled\":null,\"created\":1635496863,\"modified\":1635496863,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1db8d8ac-b23a-11ed-a879-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635496863\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1531712870,\"monitor_id\":null,\"org_id\":321813,\"start\":1635528083,\"end\":null,\"canceled\":null,\"created\":1635528083,\"modified\":1635528083,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1dc7e13a-b23a-11ed-ad75-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635528083\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1532588027,\"monitor_id\":null,\"org_id\":321813,\"start\":1635563467,\"end\":null,\"canceled\":null,\"created\":1635563467,\"modified\":1635563467,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1dcb33f8-b23a-11ed-ae77-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635563467\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1533480021,\"monitor_id\":null,\"org_id\":321813,\"start\":1635609970,\"end\":null,\"canceled\":null,\"created\":1635609970,\"modified\":1635609970,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1dcd0b9c-b23a-11ed-af06-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635609970\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1534139165,\"monitor_id\":null,\"org_id\":321813,\"start\":1635649871,\"end\":null,\"canceled\":null,\"created\":1635649871,\"modified\":1635649871,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1dce8d64-b23a-11ed-af88-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635649871\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1535667724,\"monitor_id\":null,\"org_id\":321813,\"start\":1635736119,\"end\":null,\"canceled\":null,\"created\":1635736119,\"modified\":1635736119,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1dd35b50-b23a-11ed-b0e9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635736119\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1537814729,\"monitor_id\":null,\"org_id\":321813,\"start\":1635822615,\"end\":null,\"canceled\":null,\"created\":1635822615,\"modified\":1635822615,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1de58d3e-b23a-11ed-b608-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635822615\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1538329871,\"monitor_id\":null,\"org_id\":321813,\"start\":1635844828,\"end\":null,\"canceled\":null,\"created\":1635844828,\"modified\":1635844828,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1de8bb30-b23a-11ed-b6d9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635844828\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1538351222,\"monitor_id\":null,\"org_id\":321813,\"start\":1635845693,\"end\":null,\"canceled\":null,\"created\":1635845693,\"modified\":1635845693,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1de8f14a-b23a-11ed-b6e7-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635845693\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1538371693,\"monitor_id\":null,\"org_id\":321813,\"start\":1635846494,\"end\":null,\"canceled\":null,\"created\":1635846494,\"modified\":1635846494,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1de919c2-b23a-11ed-b6f4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635846494\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1538380758,\"monitor_id\":null,\"org_id\":321813,\"start\":1635846905,\"end\":null,\"canceled\":null,\"created\":1635846905,\"modified\":1635846905,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1de92250-b23a-11ed-b6f8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635846905\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1538460083,\"monitor_id\":null,\"org_id\":321813,\"start\":1635849912,\"end\":null,\"canceled\":null,\"created\":1635849912,\"modified\":1635849912,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1de9870e-b23a-11ed-b70e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635849912\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1538479979,\"monitor_id\":null,\"org_id\":321813,\"start\":1635850647,\"end\":null,\"canceled\":null,\"created\":1635850647,\"modified\":1635850647,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1de99172-b23a-11ed-b713-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635850647\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1538496375,\"monitor_id\":null,\"org_id\":321813,\"start\":1635851235,\"end\":null,\"canceled\":null,\"created\":1635851235,\"modified\":1635851235,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1de9e398-b23a-11ed-b72e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635851234\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1538507650,\"monitor_id\":null,\"org_id\":321813,\"start\":1635851716,\"end\":null,\"canceled\":null,\"created\":1635851716,\"modified\":1635851716,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1de9e5be-b23a-11ed-b72f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635851716\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1538792096,\"monitor_id\":null,\"org_id\":321813,\"start\":1635862344,\"end\":null,\"canceled\":null,\"created\":1635862344,\"modified\":1635862344,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1deb279e-b23a-11ed-b784-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635862344\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1538849921,\"monitor_id\":null,\"org_id\":321813,\"start\":1635864374,\"end\":null,\"canceled\":null,\"created\":1635864374,\"modified\":1635864374,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1deb73a2-b23a-11ed-b797-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635864374\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1538908288,\"monitor_id\":null,\"org_id\":321813,\"start\":1635866208,\"end\":null,\"canceled\":null,\"created\":1635866208,\"modified\":1635866208,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1debd126-b23a-11ed-b7b0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635866208\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1539261412,\"monitor_id\":null,\"org_id\":321813,\"start\":1635877715,\"end\":null,\"canceled\":null,\"created\":1635877715,\"modified\":1635877715,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1deefd9c-b23a-11ed-b8b8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635877715\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1540108757,\"monitor_id\":null,\"org_id\":321813,\"start\":1635908885,\"end\":null,\"canceled\":null,\"created\":1635908885,\"modified\":1635908885,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1df2a096-b23a-11ed-b9b4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635908885\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1540572672,\"monitor_id\":null,\"org_id\":321813,\"start\":1635929887,\"end\":null,\"canceled\":null,\"created\":1635929887,\"modified\":1635929887,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1df51538-b23a-11ed-ba64-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635929887\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1540701346,\"monitor_id\":null,\"org_id\":321813,\"start\":1635935292,\"end\":null,\"canceled\":null,\"created\":1635935292,\"modified\":1635935292,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1df5e13e-b23a-11ed-baa2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635935292\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1540717743,\"monitor_id\":null,\"org_id\":321813,\"start\":1635935891,\"end\":null,\"canceled\":null,\"created\":1635935891,\"modified\":1635935891,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1df5f5ac-b23a-11ed-baa8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635935891\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1540730013,\"monitor_id\":null,\"org_id\":321813,\"start\":1635936393,\"end\":null,\"canceled\":null,\"created\":1635936393,\"modified\":1635936393,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1df61a5a-b23a-11ed-baaf-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635936393\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1540757858,\"monitor_id\":null,\"org_id\":321813,\"start\":1635937485,\"end\":null,\"canceled\":null,\"created\":1635937485,\"modified\":1635937485,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1df64746-b23a-11ed-babd-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635937484\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1540791105,\"monitor_id\":null,\"org_id\":321813,\"start\":1635938835,\"end\":null,\"canceled\":null,\"created\":1635938835,\"modified\":1635938835,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1df69dd6-b23a-11ed-bace-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635938834\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1540892330,\"monitor_id\":null,\"org_id\":321813,\"start\":1635942733,\"end\":null,\"canceled\":null,\"created\":1635942733,\"modified\":1635942733,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1df72288-b23a-11ed-bae5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635942733\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1540951301,\"monitor_id\":null,\"org_id\":321813,\"start\":1635944939,\"end\":null,\"canceled\":null,\"created\":1635944939,\"modified\":1635944939,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1df74ac4-b23a-11ed-baf4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635944939\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1540976547,\"monitor_id\":null,\"org_id\":321813,\"start\":1635945803,\"end\":null,\"canceled\":null,\"created\":1635945803,\"modified\":1635945803,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1df79e66-b23a-11ed-bb09-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635945803\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1541099168,\"monitor_id\":null,\"org_id\":321813,\"start\":1635950072,\"end\":null,\"canceled\":null,\"created\":1635950072,\"modified\":1635950072,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1df85b58-b23a-11ed-bb32-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635950072\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1541123431,\"monitor_id\":null,\"org_id\":321813,\"start\":1635950917,\"end\":null,\"canceled\":null,\"created\":1635950917,\"modified\":1635950917,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1df86774-b23a-11ed-bb37-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635950916\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1541166920,\"monitor_id\":null,\"org_id\":321813,\"start\":1635952148,\"end\":null,\"canceled\":null,\"created\":1635952148,\"modified\":1635952148,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1df89e56-b23a-11ed-bb3d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635952148\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1541168955,\"monitor_id\":null,\"org_id\":321813,\"start\":1635952225,\"end\":null,\"canceled\":null,\"created\":1635952225,\"modified\":1635952225,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1df8a5ea-b23a-11ed-bb3e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635952225\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1541447539,\"monitor_id\":null,\"org_id\":321813,\"start\":1635961142,\"end\":null,\"canceled\":null,\"created\":1635961142,\"modified\":1635961142,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1dfb6406-b23a-11ed-bc18-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635961142\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1542414385,\"monitor_id\":null,\"org_id\":321813,\"start\":1635995531,\"end\":null,\"canceled\":null,\"created\":1635995531,\"modified\":1635995531,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e0138ae-b23a-11ed-bda2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1635995531\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1542865854,\"monitor_id\":null,\"org_id\":321813,\"start\":1636016271,\"end\":null,\"canceled\":null,\"created\":1636016271,\"modified\":1636016271,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e04f28c-b23a-11ed-be82-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636016271\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1542975384,\"monitor_id\":null,\"org_id\":321813,\"start\":1636021061,\"end\":null,\"canceled\":null,\"created\":1636021061,\"modified\":1636021061,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e058ab2-b23a-11ed-beb0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636021061\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543014508,\"monitor_id\":null,\"org_id\":321813,\"start\":1636022565,\"end\":null,\"canceled\":null,\"created\":1636022565,\"modified\":1636022565,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e059c32-b23a-11ed-beb5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636022565\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543037329,\"monitor_id\":null,\"org_id\":321813,\"start\":1636023533,\"end\":null,\"canceled\":null,\"created\":1636023533,\"modified\":1636023533,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e05cf5e-b23a-11ed-bec4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636023533\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543197308,\"monitor_id\":null,\"org_id\":321813,\"start\":1636029863,\"end\":null,\"canceled\":null,\"created\":1636029863,\"modified\":1636029863,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e06d994-b23a-11ed-bf0d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636029863\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543198026,\"monitor_id\":null,\"org_id\":321813,\"start\":1636029889,\"end\":null,\"canceled\":null,\"created\":1636029889,\"modified\":1636029889,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e06dbe2-b23a-11ed-bf0e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636029889\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543220645,\"monitor_id\":null,\"org_id\":321813,\"start\":1636030846,\"end\":null,\"canceled\":null,\"created\":1636030846,\"modified\":1636030846,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e06f122-b23a-11ed-bf15-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636030845\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543236690,\"monitor_id\":null,\"org_id\":321813,\"start\":1636031392,\"end\":null,\"canceled\":null,\"created\":1636031392,\"modified\":1636031392,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e0704dc-b23a-11ed-bf1c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636031391\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543268079,\"monitor_id\":null,\"org_id\":321813,\"start\":1636032593,\"end\":null,\"canceled\":null,\"created\":1636032593,\"modified\":1636032593,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e071a3a-b23a-11ed-bf24-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636032593\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543295301,\"monitor_id\":null,\"org_id\":321813,\"start\":1636033603,\"end\":null,\"canceled\":null,\"created\":1636033603,\"modified\":1636033603,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e074244-b23a-11ed-bf2e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636033603\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543306677,\"monitor_id\":null,\"org_id\":321813,\"start\":1636033942,\"end\":null,\"canceled\":null,\"created\":1636033942,\"modified\":1636033942,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e074f46-b23a-11ed-bf31-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636033942\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543316846,\"monitor_id\":null,\"org_id\":321813,\"start\":1636034371,\"end\":null,\"canceled\":null,\"created\":1636034371,\"modified\":1636034371,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e07613e-b23a-11ed-bf35-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636034371\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543334710,\"monitor_id\":null,\"org_id\":321813,\"start\":1636034965,\"end\":null,\"canceled\":null,\"created\":1636034965,\"modified\":1636034965,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e077200-b23a-11ed-bf3b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636034965\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543360999,\"monitor_id\":null,\"org_id\":321813,\"start\":1636035958,\"end\":null,\"canceled\":null,\"created\":1636035958,\"modified\":1636035958,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e079050-b23a-11ed-bf45-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636035957\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543366772,\"monitor_id\":null,\"org_id\":321813,\"start\":1636036106,\"end\":null,\"canceled\":null,\"created\":1636036106,\"modified\":1636036106,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e07964a-b23a-11ed-bf46-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636036106\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543370103,\"monitor_id\":null,\"org_id\":321813,\"start\":1636036246,\"end\":null,\"canceled\":null,\"created\":1636036246,\"modified\":1636036246,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e07a072-b23a-11ed-bf49-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636036246\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543384605,\"monitor_id\":null,\"org_id\":321813,\"start\":1636036728,\"end\":null,\"canceled\":null,\"created\":1636036728,\"modified\":1636036728,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e07a950-b23a-11ed-bf4d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636036728\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543386109,\"monitor_id\":null,\"org_id\":321813,\"start\":1636036795,\"end\":null,\"canceled\":null,\"created\":1636036795,\"modified\":1636036795,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e07ab30-b23a-11ed-bf4e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636036794\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543528599,\"monitor_id\":null,\"org_id\":321813,\"start\":1636041454,\"end\":null,\"canceled\":null,\"created\":1636041454,\"modified\":1636041454,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e092a78-b23a-11ed-bfa2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636041453\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543563646,\"monitor_id\":null,\"org_id\":321813,\"start\":1636042490,\"end\":null,\"canceled\":null,\"created\":1636042490,\"modified\":1636042490,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e0961be-b23a-11ed-bfaf-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636042490\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543588609,\"monitor_id\":null,\"org_id\":321813,\"start\":1636043282,\"end\":null,\"canceled\":null,\"created\":1636043282,\"modified\":1636043282,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e097636-b23a-11ed-bfb5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636043282\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543590218,\"monitor_id\":null,\"org_id\":321813,\"start\":1636043353,\"end\":null,\"canceled\":null,\"created\":1636043353,\"modified\":1636043353,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e097848-b23a-11ed-bfb6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636043353\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543592624,\"monitor_id\":null,\"org_id\":321813,\"start\":1636043431,\"end\":null,\"canceled\":null,\"created\":1636043431,\"modified\":1636043431,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e097af0-b23a-11ed-bfb7-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636043430\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543614250,\"monitor_id\":null,\"org_id\":321813,\"start\":1636044143,\"end\":null,\"canceled\":null,\"created\":1636044143,\"modified\":1636044143,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e09ff0c-b23a-11ed-bfdc-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636044143\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543718086,\"monitor_id\":null,\"org_id\":321813,\"start\":1636047506,\"end\":null,\"canceled\":null,\"created\":1636047506,\"modified\":1636047506,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e0b7cf6-b23a-11ed-b872-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636047506\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543954331,\"monitor_id\":null,\"org_id\":321813,\"start\":1636055691,\"end\":null,\"canceled\":null,\"created\":1636055691,\"modified\":1636055691,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e0cb544-b23a-11ed-b8ba-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636055691\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1543978955,\"monitor_id\":null,\"org_id\":321813,\"start\":1636056444,\"end\":null,\"canceled\":null,\"created\":1636056444,\"modified\":1636056444,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e0cc66a-b23a-11ed-b8bf-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636056444\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1544323766,\"monitor_id\":null,\"org_id\":321813,\"start\":1636068854,\"end\":null,\"canceled\":null,\"created\":1636068854,\"modified\":1636068854,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e0e8cb6-b23a-11ed-b949-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636068853\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1544637035,\"monitor_id\":null,\"org_id\":321813,\"start\":1636081707,\"end\":null,\"canceled\":null,\"created\":1636081707,\"modified\":1636081707,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e10b676-b23a-11ed-b9ec-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636081707\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1545074705,\"monitor_id\":null,\"org_id\":321813,\"start\":1636102507,\"end\":null,\"canceled\":null,\"created\":1636102508,\"modified\":1636102508,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e141d8e-b23a-11ed-ba85-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636102507\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1545506366,\"monitor_id\":null,\"org_id\":321813,\"start\":1636119861,\"end\":null,\"canceled\":null,\"created\":1636119861,\"modified\":1636119861,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e16098c-b23a-11ed-baec-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636119860\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1545513768,\"monitor_id\":null,\"org_id\":321813,\"start\":1636120143,\"end\":null,\"canceled\":null,\"created\":1636120143,\"modified\":1636120143,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e161274-b23a-11ed-baee-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636120143\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1545544977,\"monitor_id\":null,\"org_id\":321813,\"start\":1636121275,\"end\":null,\"canceled\":null,\"created\":1636121275,\"modified\":1636121275,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e163b96-b23a-11ed-baf6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636121275\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1545556983,\"monitor_id\":null,\"org_id\":321813,\"start\":1636121760,\"end\":null,\"canceled\":null,\"created\":1636121760,\"modified\":1636121760,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e1655cc-b23a-11ed-baf9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636121760\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1545653998,\"monitor_id\":null,\"org_id\":321813,\"start\":1636125192,\"end\":null,\"canceled\":null,\"created\":1636125192,\"modified\":1636125192,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e16a266-b23a-11ed-bb13-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636125191\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1545686746,\"monitor_id\":null,\"org_id\":321813,\"start\":1636126319,\"end\":null,\"canceled\":null,\"created\":1636126319,\"modified\":1636126319,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e174216-b23a-11ed-bb3d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636126319\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1546768479,\"monitor_id\":null,\"org_id\":321813,\"start\":1636168340,\"end\":null,\"canceled\":null,\"created\":1636168340,\"modified\":1636168340,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e1d61d2-b23a-11ed-bcfa-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636168340\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1548254480,\"monitor_id\":null,\"org_id\":321813,\"start\":1636254661,\"end\":null,\"canceled\":null,\"created\":1636254661,\"modified\":1636254661,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e210602-b23a-11ed-bde4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636254661\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1549706527,\"monitor_id\":null,\"org_id\":321813,\"start\":1636341037,\"end\":null,\"canceled\":null,\"created\":1636341037,\"modified\":1636341037,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e2508f6-b23a-11ed-bee2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636341037\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1550303673,\"monitor_id\":null,\"org_id\":321813,\"start\":1636369554,\"end\":null,\"canceled\":null,\"created\":1636369554,\"modified\":1636369554,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e297198-b23a-11ed-847a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636369554\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1550303957,\"monitor_id\":null,\"org_id\":321813,\"start\":1636369563,\"end\":null,\"canceled\":null,\"created\":1636369563,\"modified\":1636369563,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e297418-b23a-11ed-847b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636369563\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1550353324,\"monitor_id\":null,\"org_id\":321813,\"start\":1636371813,\"end\":null,\"canceled\":null,\"created\":1636371813,\"modified\":1636371813,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e2988ea-b23a-11ed-8483-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636371813\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1550578765,\"monitor_id\":null,\"org_id\":321813,\"start\":1636381158,\"end\":null,\"canceled\":null,\"created\":1636381158,\"modified\":1636381158,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e2ae226-b23a-11ed-84dd-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636381158\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1550617965,\"monitor_id\":null,\"org_id\":321813,\"start\":1636382669,\"end\":null,\"canceled\":null,\"created\":1636382669,\"modified\":1636382669,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e2b3b90-b23a-11ed-84ff-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636382669\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1550785063,\"monitor_id\":null,\"org_id\":321813,\"start\":1636388323,\"end\":null,\"canceled\":null,\"created\":1636388323,\"modified\":1636388323,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e2c17ae-b23a-11ed-8542-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636388321\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1551242813,\"monitor_id\":null,\"org_id\":321813,\"start\":1636404048,\"end\":null,\"canceled\":null,\"created\":1636404048,\"modified\":1636404048,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e2df4a2-b23a-11ed-85b8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636404048\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1551385999,\"monitor_id\":null,\"org_id\":321813,\"start\":1636409106,\"end\":null,\"canceled\":null,\"created\":1636409106,\"modified\":1636409106,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e2eabf4-b23a-11ed-85eb-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636409106\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1551512055,\"monitor_id\":null,\"org_id\":321813,\"start\":1636413624,\"end\":null,\"canceled\":null,\"created\":1636413624,\"modified\":1636413624,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e2f22b4-b23a-11ed-8610-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636413624\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1551873185,\"monitor_id\":null,\"org_id\":321813,\"start\":1636427372,\"end\":null,\"canceled\":null,\"created\":1636427372,\"modified\":1636427372,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e33ca8a-b23a-11ed-878a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636427372\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1552307336,\"monitor_id\":null,\"org_id\":321813,\"start\":1636446453,\"end\":null,\"canceled\":null,\"created\":1636446453,\"modified\":1636446453,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e3a8474-b23a-11ed-897e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636446453\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1552364901,\"monitor_id\":null,\"org_id\":321813,\"start\":1636448748,\"end\":null,\"canceled\":null,\"created\":1636448748,\"modified\":1636448748,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e3ace3e-b23a-11ed-898e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636448748\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1552382015,\"monitor_id\":null,\"org_id\":321813,\"start\":1636449492,\"end\":null,\"canceled\":null,\"created\":1636449492,\"modified\":1636449492,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e3afc56-b23a-11ed-899b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636449492\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1552410601,\"monitor_id\":null,\"org_id\":321813,\"start\":1636450646,\"end\":null,\"canceled\":null,\"created\":1636450646,\"modified\":1636450646,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e3b07fa-b23a-11ed-89a0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636450646\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1552414865,\"monitor_id\":null,\"org_id\":321813,\"start\":1636450833,\"end\":null,\"canceled\":null,\"created\":1636450833,\"modified\":1636450833,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e3b09f8-b23a-11ed-89a1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636450833\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1552525745,\"monitor_id\":null,\"org_id\":321813,\"start\":1636455108,\"end\":null,\"canceled\":null,\"created\":1636455108,\"modified\":1636455108,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e3e3e5c-b23a-11ed-8a92-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636455108\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1552777641,\"monitor_id\":null,\"org_id\":321813,\"start\":1636465328,\"end\":null,\"canceled\":null,\"created\":1636465328,\"modified\":1636465328,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e408b26-b23a-11ed-8b43-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636465328\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1552961636,\"monitor_id\":null,\"org_id\":321813,\"start\":1636471797,\"end\":null,\"canceled\":null,\"created\":1636471797,\"modified\":1636471797,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e416e9c-b23a-11ed-8b84-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636471796\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1553004070,\"monitor_id\":null,\"org_id\":321813,\"start\":1636473336,\"end\":null,\"canceled\":null,\"created\":1636473336,\"modified\":1636473336,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e41af38-b23a-11ed-8b97-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636473336\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1554186612,\"monitor_id\":null,\"org_id\":321813,\"start\":1636513793,\"end\":null,\"canceled\":null,\"created\":1636513793,\"modified\":1636513793,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e49a56c-b23a-11ed-8d7f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636513793\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1554857461,\"monitor_id\":null,\"org_id\":321813,\"start\":1636539562,\"end\":null,\"canceled\":null,\"created\":1636539562,\"modified\":1636539562,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e4d480c-b23a-11ed-8e87-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636539562\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1554940740,\"monitor_id\":null,\"org_id\":321813,\"start\":1636542691,\"end\":null,\"canceled\":null,\"created\":1636542691,\"modified\":1636542691,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e4dda6a-b23a-11ed-8ebc-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636542691\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1555319238,\"monitor_id\":null,\"org_id\":321813,\"start\":1636556504,\"end\":null,\"canceled\":null,\"created\":1636556504,\"modified\":1636556504,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e4fdde2-b23a-11ed-8f4b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636556504\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1555332502,\"monitor_id\":null,\"org_id\":321813,\"start\":1636556894,\"end\":null,\"canceled\":null,\"created\":1636556894,\"modified\":1636556894,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e4ffb10-b23a-11ed-8f55-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636556894\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1556584204,\"monitor_id\":null,\"org_id\":321813,\"start\":1636600248,\"end\":null,\"canceled\":null,\"created\":1636600248,\"modified\":1636600248,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e58a328-b23a-11ed-91d5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636600248\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1557086035,\"monitor_id\":null,\"org_id\":321813,\"start\":1636621227,\"end\":null,\"canceled\":null,\"created\":1636621227,\"modified\":1636621227,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e5cedd4-b23a-11ed-9303-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636621227\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1557107796,\"monitor_id\":null,\"org_id\":321813,\"start\":1636622137,\"end\":null,\"canceled\":null,\"created\":1636622137,\"modified\":1636622137,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e5d03dc-b23a-11ed-9309-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636622137\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1557134293,\"monitor_id\":null,\"org_id\":321813,\"start\":1636623133,\"end\":null,\"canceled\":null,\"created\":1636623133,\"modified\":1636623133,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e5d0dc8-b23a-11ed-930d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636623133\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1557150751,\"monitor_id\":null,\"org_id\":321813,\"start\":1636623839,\"end\":null,\"canceled\":null,\"created\":1636623839,\"modified\":1636623839,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e5d1e9e-b23a-11ed-9313-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636623839\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1557303882,\"monitor_id\":null,\"org_id\":321813,\"start\":1636629970,\"end\":null,\"canceled\":null,\"created\":1636629970,\"modified\":1636629970,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e5dbade-b23a-11ed-933e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636629970\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1557337181,\"monitor_id\":null,\"org_id\":321813,\"start\":1636631354,\"end\":null,\"canceled\":null,\"created\":1636631354,\"modified\":1636631354,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e5dd97e-b23a-11ed-9348-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636631354\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1557349692,\"monitor_id\":null,\"org_id\":321813,\"start\":1636631913,\"end\":null,\"canceled\":null,\"created\":1636631913,\"modified\":1636631913,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e5deb08-b23a-11ed-934c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636631913\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1557506569,\"monitor_id\":null,\"org_id\":321813,\"start\":1636638473,\"end\":null,\"canceled\":null,\"created\":1636638473,\"modified\":1636638473,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e5ec992-b23a-11ed-9384-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636638473\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1557529070,\"monitor_id\":null,\"org_id\":321813,\"start\":1636639274,\"end\":null,\"canceled\":null,\"created\":1636639274,\"modified\":1636639274,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e5eea76-b23a-11ed-938b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636639273\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1557532673,\"monitor_id\":null,\"org_id\":321813,\"start\":1636639401,\"end\":null,\"canceled\":null,\"created\":1636639401,\"modified\":1636639401,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e5eec88-b23a-11ed-938c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636639401\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1557539506,\"monitor_id\":null,\"org_id\":321813,\"start\":1636639696,\"end\":null,\"canceled\":null,\"created\":1636639696,\"modified\":1636639696,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e5f0380-b23a-11ed-938f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636639696\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1557563406,\"monitor_id\":null,\"org_id\":321813,\"start\":1636640636,\"end\":null,\"canceled\":null,\"created\":1636640636,\"modified\":1636640636,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e5f2040-b23a-11ed-939a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636640636\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1557614661,\"monitor_id\":null,\"org_id\":321813,\"start\":1636642577,\"end\":null,\"canceled\":null,\"created\":1636642577,\"modified\":1636642577,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e5f4354-b23a-11ed-93a5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636642576\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1557643177,\"monitor_id\":null,\"org_id\":321813,\"start\":1636643711,\"end\":null,\"canceled\":null,\"created\":1636643711,\"modified\":1636643711,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e5f865c-b23a-11ed-93b8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636643711\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1557648230,\"monitor_id\":null,\"org_id\":321813,\"start\":1636643874,\"end\":null,\"canceled\":null,\"created\":1636643874,\"modified\":1636643874,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e5f8b34-b23a-11ed-93ba-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636643874\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1558226796,\"monitor_id\":null,\"org_id\":321813,\"start\":1636664851,\"end\":null,\"canceled\":null,\"created\":1636664851,\"modified\":1636664851,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e6488be-b23a-11ed-94dc-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636664850\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1558760915,\"monitor_id\":null,\"org_id\":321813,\"start\":1636686417,\"end\":null,\"canceled\":null,\"created\":1636686417,\"modified\":1636686417,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e6bc0f2-b23a-11ed-95dc-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636686416\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1559415436,\"monitor_id\":null,\"org_id\":321813,\"start\":1636715477,\"end\":null,\"canceled\":null,\"created\":1636715477,\"modified\":1636715477,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e714b94-b23a-11ed-9720-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636715477\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1559462609,\"monitor_id\":null,\"org_id\":321813,\"start\":1636717420,\"end\":null,\"canceled\":null,\"created\":1636717420,\"modified\":1636717420,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e71b912-b23a-11ed-973c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636717420\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1559670848,\"monitor_id\":null,\"org_id\":321813,\"start\":1636726076,\"end\":null,\"canceled\":null,\"created\":1636726076,\"modified\":1636726076,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e731d34-b23a-11ed-97a0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636726075\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1559671165,\"monitor_id\":null,\"org_id\":321813,\"start\":1636726087,\"end\":null,\"canceled\":null,\"created\":1636726087,\"modified\":1636726087,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e731faa-b23a-11ed-97a1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636726086\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1559720274,\"monitor_id\":null,\"org_id\":321813,\"start\":1636728009,\"end\":null,\"canceled\":null,\"created\":1636728009,\"modified\":1636728009,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e740410-b23a-11ed-97cd-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636728009\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1559727267,\"monitor_id\":null,\"org_id\":321813,\"start\":1636728288,\"end\":null,\"canceled\":null,\"created\":1636728288,\"modified\":1636728288,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e740afa-b23a-11ed-97ce-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636728288\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1559764457,\"monitor_id\":null,\"org_id\":321813,\"start\":1636729554,\"end\":null,\"canceled\":null,\"created\":1636729554,\"modified\":1636729554,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e7487a0-b23a-11ed-97e9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636729554\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1559774273,\"monitor_id\":null,\"org_id\":321813,\"start\":1636729903,\"end\":null,\"canceled\":null,\"created\":1636729903,\"modified\":1636729903,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e749254-b23a-11ed-97ed-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636729903\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1559786345,\"monitor_id\":null,\"org_id\":321813,\"start\":1636730358,\"end\":null,\"canceled\":null,\"created\":1636730358,\"modified\":1636730358,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e74a334-b23a-11ed-97f1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636730358\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1559924835,\"monitor_id\":null,\"org_id\":321813,\"start\":1636735261,\"end\":null,\"canceled\":null,\"created\":1636735261,\"modified\":1636735261,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e7606f2-b23a-11ed-9851-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636735261\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1559952598,\"monitor_id\":null,\"org_id\":321813,\"start\":1636736236,\"end\":null,\"canceled\":null,\"created\":1636736236,\"modified\":1636736236,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e763384-b23a-11ed-985f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636736236\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1559959372,\"monitor_id\":null,\"org_id\":321813,\"start\":1636736493,\"end\":null,\"canceled\":null,\"created\":1636736493,\"modified\":1636736493,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e7639d8-b23a-11ed-9862-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636736493\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1559984096,\"monitor_id\":null,\"org_id\":321813,\"start\":1636737317,\"end\":null,\"canceled\":null,\"created\":1636737317,\"modified\":1636737317,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e765184-b23a-11ed-9868-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636737317\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1560047092,\"monitor_id\":null,\"org_id\":321813,\"start\":1636739618,\"end\":null,\"canceled\":null,\"created\":1636739618,\"modified\":1636739618,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e769cf2-b23a-11ed-987c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636739618\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1560896094,\"monitor_id\":null,\"org_id\":321813,\"start\":1636773339,\"end\":null,\"canceled\":null,\"created\":1636773339,\"modified\":1636773339,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e7c0642-b23a-11ed-99e4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636773339\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1562320015,\"monitor_id\":null,\"org_id\":321813,\"start\":1636859642,\"end\":null,\"canceled\":null,\"created\":1636859642,\"modified\":1636859642,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e7fb5a8-b23a-11ed-9adf-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636859642\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1563729162,\"monitor_id\":null,\"org_id\":321813,\"start\":1636945706,\"end\":null,\"canceled\":null,\"created\":1636945706,\"modified\":1636945706,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e85012a-b23a-11ed-9c47-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636945706\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1564229999,\"monitor_id\":null,\"org_id\":321813,\"start\":1636969914,\"end\":null,\"canceled\":null,\"created\":1636969914,\"modified\":1636969914,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e88db42-b23a-11ed-9d3a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636969914\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1564235471,\"monitor_id\":null,\"org_id\":321813,\"start\":1636970196,\"end\":null,\"canceled\":null,\"created\":1636970196,\"modified\":1636970196,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e88e5ec-b23a-11ed-9d3c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636970196\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1564319029,\"monitor_id\":null,\"org_id\":321813,\"start\":1636973554,\"end\":null,\"canceled\":null,\"created\":1636973554,\"modified\":1636973554,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e89cc0a-b23a-11ed-9d54-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636973554\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1564606484,\"monitor_id\":null,\"org_id\":321813,\"start\":1636985187,\"end\":null,\"canceled\":null,\"created\":1636985187,\"modified\":1636985187,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e8ae7d4-b23a-11ed-9d97-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636985187\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1564993818,\"monitor_id\":null,\"org_id\":321813,\"start\":1636999245,\"end\":null,\"canceled\":null,\"created\":1636999245,\"modified\":1636999245,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e8ef9aa-b23a-11ed-9e82-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1636999245\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1565026130,\"monitor_id\":null,\"org_id\":321813,\"start\":1637000309,\"end\":null,\"canceled\":null,\"created\":1637000309,\"modified\":1637000309,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e8f5d0a-b23a-11ed-9e98-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637000309\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1565064977,\"monitor_id\":null,\"org_id\":321813,\"start\":1637001623,\"end\":null,\"canceled\":null,\"created\":1637001623,\"modified\":1637001623,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e8f7d8a-b23a-11ed-9e9f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637001623\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1565912978,\"monitor_id\":null,\"org_id\":321813,\"start\":1637032060,\"end\":null,\"canceled\":null,\"created\":1637032060,\"modified\":1637032060,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e97913c-b23a-11ed-a0a2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637032060\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1566475235,\"monitor_id\":null,\"org_id\":321813,\"start\":1637055423,\"end\":null,\"canceled\":null,\"created\":1637055423,\"modified\":1637055423,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e9eecde-b23a-11ed-a276-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637055422\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1566483584,\"monitor_id\":null,\"org_id\":321813,\"start\":1637055781,\"end\":null,\"canceled\":null,\"created\":1637055781,\"modified\":1637055781,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1e9ef51c-b23a-11ed-a279-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637055781\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1566851694,\"monitor_id\":null,\"org_id\":321813,\"start\":1637069901,\"end\":null,\"canceled\":null,\"created\":1637069901,\"modified\":1637069901,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ea16d06-b23a-11ed-a309-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637069901\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1566900886,\"monitor_id\":null,\"org_id\":321813,\"start\":1637071571,\"end\":null,\"canceled\":null,\"created\":1637071571,\"modified\":1637071571,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ea1df66-b23a-11ed-a321-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637071571\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1566980541,\"monitor_id\":null,\"org_id\":321813,\"start\":1637074225,\"end\":null,\"canceled\":null,\"created\":1637074225,\"modified\":1637074225,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ea215b2-b23a-11ed-a331-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637074225\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1567454334,\"monitor_id\":null,\"org_id\":321813,\"start\":1637089336,\"end\":null,\"canceled\":null,\"created\":1637089336,\"modified\":1637089336,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ea6277e-b23a-11ed-a420-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637089336\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1568272984,\"monitor_id\":null,\"org_id\":321813,\"start\":1637118504,\"end\":null,\"canceled\":null,\"created\":1637118504,\"modified\":1637118504,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1eac032e-b23a-11ed-a57b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637118503\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1569311302,\"monitor_id\":null,\"org_id\":321813,\"start\":1637160870,\"end\":null,\"canceled\":null,\"created\":1637160870,\"modified\":1637160870,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1eb8037c-b23a-11ed-a83b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637160870\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1569938866,\"monitor_id\":null,\"org_id\":321813,\"start\":1637183353,\"end\":null,\"canceled\":null,\"created\":1637183353,\"modified\":1637183353,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ebcc754-b23a-11ed-a938-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637183353\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1570506999,\"monitor_id\":null,\"org_id\":321813,\"start\":1637205028,\"end\":null,\"canceled\":null,\"created\":1637205028,\"modified\":1637205028,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ec1396a-b23a-11ed-aa51-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637205028\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1571062567,\"monitor_id\":null,\"org_id\":321813,\"start\":1637228323,\"end\":null,\"canceled\":null,\"created\":1637228323,\"modified\":1637228323,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ec48192-b23a-11ed-ab44-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637228323\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1571173585,\"monitor_id\":null,\"org_id\":321813,\"start\":1637231013,\"end\":null,\"canceled\":null,\"created\":1637231013,\"modified\":1637231013,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ec4b784-b23a-11ed-ab54-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637231013\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1571270620,\"monitor_id\":null,\"org_id\":321813,\"start\":1637234854,\"end\":null,\"canceled\":null,\"created\":1637234854,\"modified\":1637234854,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ec50d38-b23a-11ed-ab6a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637234854\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1571669479,\"monitor_id\":null,\"org_id\":321813,\"start\":1637250297,\"end\":null,\"canceled\":null,\"created\":1637250297,\"modified\":1637250299,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1379828,\"updater_id\":1379828,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"monitor:tag\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ec7229e-b23a-11ed-abfe-da7ad0900002\",\"scope\":[\"foo:baz\"],\"creator\":{\"id\":1379828,\"email\":\"hippolyte.henry@datadoghq.com\",\"handle\":\"hippolyte.henry@datadoghq.com\",\"name\":\"Hippolyte Henry\"}},{\"id\":1571817917,\"monitor_id\":null,\"org_id\":321813,\"start\":1637255504,\"end\":null,\"canceled\":null,\"created\":1637255504,\"modified\":1637255504,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ec88e18-b23a-11ed-ac5c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637255504\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1571831335,\"monitor_id\":null,\"org_id\":321813,\"start\":1637255943,\"end\":null,\"canceled\":null,\"created\":1637255943,\"modified\":1637255943,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ec8a560-b23a-11ed-ac62-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637255943\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1571837557,\"monitor_id\":null,\"org_id\":321813,\"start\":1637256160,\"end\":null,\"canceled\":null,\"created\":1637256160,\"modified\":1637256160,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ec8b0fa-b23a-11ed-ac65-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637256160\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1571909354,\"monitor_id\":null,\"org_id\":321813,\"start\":1637258859,\"end\":null,\"canceled\":null,\"created\":1637258859,\"modified\":1637258859,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ec9c7e2-b23a-11ed-ac99-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637258859\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1571914418,\"monitor_id\":null,\"org_id\":321813,\"start\":1637259065,\"end\":null,\"canceled\":null,\"created\":1637259065,\"modified\":1637259065,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ec9d020-b23a-11ed-ac9a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637259065\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1572154342,\"monitor_id\":null,\"org_id\":321813,\"start\":1637267828,\"end\":null,\"canceled\":null,\"created\":1637267828,\"modified\":1637267828,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ecc0d4a-b23a-11ed-ad19-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637267828\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1572186666,\"monitor_id\":null,\"org_id\":321813,\"start\":1637269062,\"end\":null,\"canceled\":null,\"created\":1637269062,\"modified\":1637269062,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ecc6ed4-b23a-11ed-ad30-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637269062\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1572767984,\"monitor_id\":null,\"org_id\":321813,\"start\":1637291438,\"end\":null,\"canceled\":null,\"created\":1637291438,\"modified\":1637291438,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ed08334-b23a-11ed-ae38-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637291438\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1573180543,\"monitor_id\":null,\"org_id\":321813,\"start\":1637309866,\"end\":null,\"canceled\":null,\"created\":1637309866,\"modified\":1637309866,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ed3113a-b23a-11ed-aede-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637309865\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1573261418,\"monitor_id\":null,\"org_id\":321813,\"start\":1637313501,\"end\":null,\"canceled\":null,\"created\":1637313501,\"modified\":1637313501,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1ed38598-b23a-11ed-aefb-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637313501\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1574927736,\"monitor_id\":null,\"org_id\":321813,\"start\":1637377839,\"end\":null,\"canceled\":null,\"created\":1637377839,\"modified\":1637377839,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"242b7afa-b23a-11ed-b21e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637377839\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1576489994,\"monitor_id\":null,\"org_id\":321813,\"start\":1637464341,\"end\":null,\"canceled\":null,\"created\":1637464341,\"modified\":1637464341,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"242f1cbe-b23a-11ed-b36b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637464341\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1577970828,\"monitor_id\":null,\"org_id\":321813,\"start\":1637550665,\"end\":null,\"canceled\":null,\"created\":1637550665,\"modified\":1637550665,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2435845a-b23a-11ed-b5d0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637550665\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1578310448,\"monitor_id\":null,\"org_id\":321813,\"start\":1637568050,\"end\":null,\"canceled\":null,\"created\":1637568050,\"modified\":1637568050,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24379380-b23a-11ed-b686-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637568050\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1578541387,\"monitor_id\":null,\"org_id\":321813,\"start\":1637578427,\"end\":null,\"canceled\":null,\"created\":1637578427,\"modified\":1637578427,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2439206a-b23a-11ed-b70c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637578427\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1578869288,\"monitor_id\":null,\"org_id\":321813,\"start\":1637590495,\"end\":null,\"canceled\":null,\"created\":1637590495,\"modified\":1637590495,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"243ab790-b23a-11ed-b790-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637590495\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1580044259,\"monitor_id\":null,\"org_id\":321813,\"start\":1637637079,\"end\":null,\"canceled\":null,\"created\":1637637079,\"modified\":1637637079,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"244c2034-b23a-11ed-bdcd-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637637079\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1580564506,\"monitor_id\":null,\"org_id\":321813,\"start\":1637660954,\"end\":null,\"canceled\":null,\"created\":1637660954,\"modified\":1637660954,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"244ef5c0-b23a-11ed-bec0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637660954\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1580650044,\"monitor_id\":null,\"org_id\":321813,\"start\":1637664725,\"end\":null,\"canceled\":null,\"created\":1637664725,\"modified\":1637664725,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"244f4052-b23a-11ed-beda-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637664725\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1581163930,\"monitor_id\":null,\"org_id\":321813,\"start\":1637683881,\"end\":null,\"canceled\":null,\"created\":1637683881,\"modified\":1637683881,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24518e66-b23a-11ed-bfa1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637683881\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1581269152,\"monitor_id\":null,\"org_id\":321813,\"start\":1637687792,\"end\":null,\"canceled\":null,\"created\":1637687792,\"modified\":1637687792,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2452065c-b23a-11ed-bfc4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637687791\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1581397542,\"monitor_id\":null,\"org_id\":321813,\"start\":1637692814,\"end\":null,\"canceled\":null,\"created\":1637692814,\"modified\":1637692814,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2452b390-b23a-11ed-bc45-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637692814\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1581533230,\"monitor_id\":null,\"org_id\":321813,\"start\":1637698344,\"end\":null,\"canceled\":null,\"created\":1637698344,\"modified\":1637698344,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24537a50-b23a-11ed-bc85-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637698344\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1582134179,\"monitor_id\":null,\"org_id\":321813,\"start\":1637723332,\"end\":null,\"canceled\":null,\"created\":1637723332,\"modified\":1637723332,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2455df8e-b23a-11ed-bd4b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637723332\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1582572113,\"monitor_id\":null,\"org_id\":321813,\"start\":1637743540,\"end\":null,\"canceled\":null,\"created\":1637743540,\"modified\":1637743540,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2462b362-b23a-11ed-be67-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637743540\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1583112663,\"monitor_id\":null,\"org_id\":321813,\"start\":1637765237,\"end\":null,\"canceled\":null,\"created\":1637765237,\"modified\":1637765237,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"246e4b6e-b23a-11ed-bf4f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637765236\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1583263181,\"monitor_id\":null,\"org_id\":321813,\"start\":1637771029,\"end\":null,\"canceled\":null,\"created\":1637771029,\"modified\":1637771029,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2470a350-b23a-11ed-bf8a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637771029\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1583524636,\"monitor_id\":null,\"org_id\":321813,\"start\":1637781836,\"end\":null,\"canceled\":null,\"created\":1637781836,\"modified\":1637781836,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2474d5ce-b23a-11ed-82f0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637781836\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1584164394,\"monitor_id\":null,\"org_id\":321813,\"start\":1637810000,\"end\":null,\"canceled\":null,\"created\":1637810000,\"modified\":1637810000,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"247a8348-b23a-11ed-83ad-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637810000\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1584607380,\"monitor_id\":null,\"org_id\":321813,\"start\":1637830893,\"end\":null,\"canceled\":null,\"created\":1637830893,\"modified\":1637830893,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"247e2552-b23a-11ed-8432-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637830893\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1584625872,\"monitor_id\":null,\"org_id\":321813,\"start\":1637831713,\"end\":null,\"canceled\":null,\"created\":1637831713,\"modified\":1637831713,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"247e53ce-b23a-11ed-8438-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637831713\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1584669836,\"monitor_id\":null,\"org_id\":321813,\"start\":1637833600,\"end\":null,\"canceled\":null,\"created\":1637833600,\"modified\":1637833600,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"247fcbe6-b23a-11ed-8466-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637833600\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1584678497,\"monitor_id\":null,\"org_id\":321813,\"start\":1637834002,\"end\":null,\"canceled\":null,\"created\":1637834002,\"modified\":1637834002,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"247fd46a-b23a-11ed-8467-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637834002\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1584696612,\"monitor_id\":null,\"org_id\":321813,\"start\":1637834839,\"end\":null,\"canceled\":null,\"created\":1637834839,\"modified\":1637834839,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24800e30-b23a-11ed-846f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637834839\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1584712523,\"monitor_id\":null,\"org_id\":321813,\"start\":1637835503,\"end\":null,\"canceled\":null,\"created\":1637835503,\"modified\":1637835503,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2480910c-b23a-11ed-8480-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637835503\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1584908512,\"monitor_id\":null,\"org_id\":321813,\"start\":1637842300,\"end\":null,\"canceled\":null,\"created\":1637842300,\"modified\":1637842300,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2481eaac-b23a-11ed-84ae-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637842300\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1584967851,\"monitor_id\":null,\"org_id\":321813,\"start\":1637844860,\"end\":null,\"canceled\":null,\"created\":1637844860,\"modified\":1637844860,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2482bf68-b23a-11ed-84ca-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637844860\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1585035076,\"monitor_id\":null,\"org_id\":321813,\"start\":1637847821,\"end\":null,\"canceled\":null,\"created\":1637847821,\"modified\":1637847821,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2483d93e-b23a-11ed-84ed-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637847821\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1585047389,\"monitor_id\":null,\"org_id\":321813,\"start\":1637848341,\"end\":null,\"canceled\":null,\"created\":1637848341,\"modified\":1637848341,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"248419d0-b23a-11ed-84f8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637848340\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1585076871,\"monitor_id\":null,\"org_id\":321813,\"start\":1637849642,\"end\":null,\"canceled\":null,\"created\":1637849642,\"modified\":1637849642,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2484508a-b23a-11ed-84fe-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637849642\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1585097875,\"monitor_id\":null,\"org_id\":321813,\"start\":1637850553,\"end\":null,\"canceled\":null,\"created\":1637850553,\"modified\":1637850553,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2484d7ee-b23a-11ed-8511-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637850552\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1585123121,\"monitor_id\":null,\"org_id\":321813,\"start\":1637851750,\"end\":null,\"canceled\":null,\"created\":1637851750,\"modified\":1637851750,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"248530e0-b23a-11ed-851f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637851750\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1586000944,\"monitor_id\":null,\"org_id\":321813,\"start\":1637896328,\"end\":null,\"canceled\":null,\"created\":1637896328,\"modified\":1637896328,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"248a886a-b23a-11ed-85f1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637896328\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1586374430,\"monitor_id\":null,\"org_id\":321813,\"start\":1637915810,\"end\":null,\"canceled\":null,\"created\":1637915810,\"modified\":1637915810,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"248db2e2-b23a-11ed-8663-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637915810\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1586523233,\"monitor_id\":null,\"org_id\":321813,\"start\":1637922820,\"end\":null,\"canceled\":null,\"created\":1637922820,\"modified\":1637922820,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"248ee266-b23a-11ed-868c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637922820\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1586754645,\"monitor_id\":null,\"org_id\":321813,\"start\":1637931544,\"end\":null,\"canceled\":null,\"created\":1637931544,\"modified\":1637931544,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2490a2cc-b23a-11ed-86d7-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637931544\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1586802398,\"monitor_id\":null,\"org_id\":321813,\"start\":1637933692,\"end\":null,\"canceled\":null,\"created\":1637933692,\"modified\":1637933692,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24915ed8-b23a-11ed-86f4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637933692\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1587037076,\"monitor_id\":null,\"org_id\":321813,\"start\":1637944507,\"end\":null,\"canceled\":null,\"created\":1637944507,\"modified\":1637944507,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"249396f8-b23a-11ed-8757-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637944507\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1587142767,\"monitor_id\":null,\"org_id\":321813,\"start\":1637949602,\"end\":null,\"canceled\":null,\"created\":1637949602,\"modified\":1637949602,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24945b7e-b23a-11ed-8777-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637949602\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1587752268,\"monitor_id\":null,\"org_id\":321813,\"start\":1637982779,\"end\":null,\"canceled\":null,\"created\":1637982779,\"modified\":1637982779,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24972804-b23a-11ed-87ec-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1637982778\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1589252913,\"monitor_id\":null,\"org_id\":321813,\"start\":1638069403,\"end\":null,\"canceled\":null,\"created\":1638069403,\"modified\":1638069403,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"249c4532-b23a-11ed-88d2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638069403\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1590554584,\"monitor_id\":null,\"org_id\":321813,\"start\":1638144981,\"end\":null,\"canceled\":null,\"created\":1638144981,\"modified\":1638144981,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24aa5eec-b23a-11ed-898e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638144980\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1590750873,\"monitor_id\":null,\"org_id\":321813,\"start\":1638155522,\"end\":null,\"canceled\":null,\"created\":1638155522,\"modified\":1638155522,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24ab5f4a-b23a-11ed-89b8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638155522\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1591099102,\"monitor_id\":null,\"org_id\":321813,\"start\":1638172780,\"end\":null,\"canceled\":null,\"created\":1638172780,\"modified\":1638172780,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24ae4926-b23a-11ed-8a2c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638172780\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1591338008,\"monitor_id\":null,\"org_id\":321813,\"start\":1638183038,\"end\":null,\"canceled\":null,\"created\":1638183038,\"modified\":1638183038,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24b0482a-b23a-11ed-8a7b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638183038\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1591622560,\"monitor_id\":null,\"org_id\":321813,\"start\":1638193303,\"end\":null,\"canceled\":null,\"created\":1638193303,\"modified\":1638193303,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24b21ad8-b23a-11ed-8ac3-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638193303\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1591766182,\"monitor_id\":null,\"org_id\":321813,\"start\":1638198767,\"end\":null,\"canceled\":null,\"created\":1638198767,\"modified\":1638198767,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24b482a0-b23a-11ed-8b25-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638198767\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1591992163,\"monitor_id\":null,\"org_id\":321813,\"start\":1638207220,\"end\":null,\"canceled\":null,\"created\":1638207220,\"modified\":1638207220,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24b675ce-b23a-11ed-8b70-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638207220\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1592443041,\"monitor_id\":null,\"org_id\":321813,\"start\":1638224647,\"end\":null,\"canceled\":null,\"created\":1638224647,\"modified\":1638224647,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24bb56ac-b23a-11ed-8c34-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638224647\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1592459794,\"monitor_id\":null,\"org_id\":321813,\"start\":1638225205,\"end\":null,\"canceled\":null,\"created\":1638225205,\"modified\":1638225205,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24bb64da-b23a-11ed-8c37-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638225204\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1592474329,\"monitor_id\":null,\"org_id\":321813,\"start\":1638225787,\"end\":null,\"canceled\":null,\"created\":1638225787,\"modified\":1638225787,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24bb7718-b23a-11ed-8c3b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638225787\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1592536909,\"monitor_id\":null,\"org_id\":321813,\"start\":1638228199,\"end\":null,\"canceled\":null,\"created\":1638228199,\"modified\":1638228199,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24bbbb74-b23a-11ed-8c49-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638228199\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1592873593,\"monitor_id\":null,\"org_id\":321813,\"start\":1638241807,\"end\":null,\"canceled\":null,\"created\":1638241807,\"modified\":1638241807,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24bec710-b23a-11ed-8cd1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638241807\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1593492007,\"monitor_id\":null,\"org_id\":321813,\"start\":1638268377,\"end\":null,\"canceled\":null,\"created\":1638268377,\"modified\":1638268377,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24c5c52e-b23a-11ed-8e03-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638268377\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1593521140,\"monitor_id\":null,\"org_id\":321813,\"start\":1638269641,\"end\":null,\"canceled\":null,\"created\":1638269641,\"modified\":1638269641,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24c5e9aa-b23a-11ed-8e0b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638269641\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1593544154,\"monitor_id\":null,\"org_id\":321813,\"start\":1638270563,\"end\":null,\"canceled\":null,\"created\":1638270563,\"modified\":1638270563,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24c601e2-b23a-11ed-8e0e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638270563\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1593807371,\"monitor_id\":null,\"org_id\":321813,\"start\":1638279673,\"end\":null,\"canceled\":null,\"created\":1638279673,\"modified\":1638279673,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24c89b6e-b23a-11ed-8e79-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638279673\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1593818495,\"monitor_id\":null,\"org_id\":321813,\"start\":1638280178,\"end\":null,\"canceled\":null,\"created\":1638280178,\"modified\":1638280178,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24c90b80-b23a-11ed-8e85-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638280178\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1593880271,\"monitor_id\":null,\"org_id\":321813,\"start\":1638282631,\"end\":null,\"canceled\":null,\"created\":1638282631,\"modified\":1638282631,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24c98ede-b23a-11ed-8e9c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638282630\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1593936726,\"monitor_id\":null,\"org_id\":321813,\"start\":1638284588,\"end\":null,\"canceled\":null,\"created\":1638284588,\"modified\":1638284588,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24c9eed8-b23a-11ed-8ead-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638284587\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1594095175,\"monitor_id\":null,\"org_id\":321813,\"start\":1638290554,\"end\":null,\"canceled\":null,\"created\":1638290554,\"modified\":1638290554,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24cbba7e-b23a-11ed-8ef5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638290553\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1594629959,\"monitor_id\":null,\"org_id\":321813,\"start\":1638310632,\"end\":null,\"canceled\":null,\"created\":1638310632,\"modified\":1638310632,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24d22760-b23a-11ed-9016-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638310632\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1594843926,\"monitor_id\":null,\"org_id\":321813,\"start\":1638318723,\"end\":null,\"canceled\":null,\"created\":1638318723,\"modified\":1638318723,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24d3b878-b23a-11ed-9062-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638318723\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1595093335,\"monitor_id\":null,\"org_id\":321813,\"start\":1638328385,\"end\":null,\"canceled\":null,\"created\":1638328385,\"modified\":1638328385,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24d50a66-b23a-11ed-909b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638328384\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1595670399,\"monitor_id\":null,\"org_id\":321813,\"start\":1638353391,\"end\":null,\"canceled\":null,\"created\":1638353391,\"modified\":1638353391,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24da6c68-b23a-11ed-9162-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638353391\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1595829752,\"monitor_id\":null,\"org_id\":321813,\"start\":1638360115,\"end\":null,\"canceled\":null,\"created\":1638360115,\"modified\":1638360115,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24db91c4-b23a-11ed-9191-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638360115\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1596237831,\"monitor_id\":null,\"org_id\":321813,\"start\":1638374462,\"end\":null,\"canceled\":null,\"created\":1638374462,\"modified\":1638374462,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24e2b5e4-b23a-11ed-92e2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638374462\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1596411827,\"monitor_id\":null,\"org_id\":321813,\"start\":1638380946,\"end\":null,\"canceled\":null,\"created\":1638380946,\"modified\":1638380946,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24e5d06c-b23a-11ed-9385-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638380946\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1596696599,\"monitor_id\":null,\"org_id\":321813,\"start\":1638391588,\"end\":null,\"canceled\":null,\"created\":1638391588,\"modified\":1638391588,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24ea50b0-b23a-11ed-9460-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638391588\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1597310543,\"monitor_id\":null,\"org_id\":321813,\"start\":1638414653,\"end\":null,\"canceled\":null,\"created\":1638414653,\"modified\":1638414653,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24f06f40-b23a-11ed-95a0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638414653\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1597832219,\"monitor_id\":null,\"org_id\":321813,\"start\":1638436663,\"end\":null,\"canceled\":null,\"created\":1638436663,\"modified\":1638436663,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24f53160-b23a-11ed-96a8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638436663\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1597850977,\"monitor_id\":null,\"org_id\":321813,\"start\":1638437325,\"end\":null,\"canceled\":null,\"created\":1638437325,\"modified\":1638437325,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24f53ade-b23a-11ed-96ab-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638437325\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1598301428,\"monitor_id\":null,\"org_id\":321813,\"start\":1638453944,\"end\":null,\"canceled\":null,\"created\":1638453944,\"modified\":1638453944,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24f8c316-b23a-11ed-974c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638453944\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1598374055,\"monitor_id\":null,\"org_id\":321813,\"start\":1638456761,\"end\":null,\"canceled\":null,\"created\":1638456761,\"modified\":1638456761,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24f98f6c-b23a-11ed-976f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638456761\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1598639974,\"monitor_id\":null,\"org_id\":321813,\"start\":1638466692,\"end\":null,\"canceled\":null,\"created\":1638466692,\"modified\":1638466692,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24fc952c-b23a-11ed-9819-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638466692\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1598771026,\"monitor_id\":null,\"org_id\":321813,\"start\":1638471457,\"end\":null,\"canceled\":null,\"created\":1638471457,\"modified\":1638471457,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24fe018c-b23a-11ed-9852-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638471456\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1599554155,\"monitor_id\":null,\"org_id\":321813,\"start\":1638501009,\"end\":null,\"canceled\":null,\"created\":1638501009,\"modified\":1638501009,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2504631a-b23a-11ed-99b2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638501009\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1600143925,\"monitor_id\":null,\"org_id\":321813,\"start\":1638526899,\"end\":null,\"canceled\":null,\"created\":1638526899,\"modified\":1638526899,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25098908-b23a-11ed-9ad0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638526899\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1600271521,\"monitor_id\":null,\"org_id\":321813,\"start\":1638532347,\"end\":null,\"canceled\":null,\"created\":1638532347,\"modified\":1638532347,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2509eb1e-b23a-11ed-9ae5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638532347\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1600281709,\"monitor_id\":null,\"org_id\":321813,\"start\":1638532840,\"end\":null,\"canceled\":null,\"created\":1638532840,\"modified\":1638532840,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2509f3c0-b23a-11ed-9ae7-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638532840\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1600902250,\"monitor_id\":null,\"org_id\":321813,\"start\":1638555718,\"end\":null,\"canceled\":null,\"created\":1638555718,\"modified\":1638555718,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"250f25c0-b23a-11ed-9c03-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638555718\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1600905230,\"monitor_id\":null,\"org_id\":321813,\"start\":1638555816,\"end\":null,\"canceled\":null,\"created\":1638555816,\"modified\":1638555816,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"250f29ee-b23a-11ed-9c04-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638555816\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1600926224,\"monitor_id\":null,\"org_id\":321813,\"start\":1638556552,\"end\":null,\"canceled\":null,\"created\":1638556552,\"modified\":1638556552,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"250f3c68-b23a-11ed-9c08-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638556552\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1600927193,\"monitor_id\":null,\"org_id\":321813,\"start\":1638556601,\"end\":null,\"canceled\":null,\"created\":1638556601,\"modified\":1638556601,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"250f479e-b23a-11ed-9c0a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638556600\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1600938433,\"monitor_id\":null,\"org_id\":321813,\"start\":1638556986,\"end\":null,\"canceled\":null,\"created\":1638556986,\"modified\":1638556986,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"250f56da-b23a-11ed-9c0e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638556986\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1600948452,\"monitor_id\":null,\"org_id\":321813,\"start\":1638557410,\"end\":null,\"canceled\":null,\"created\":1638557410,\"modified\":1638557410,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"250f75ac-b23a-11ed-9c12-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638557410\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1600994635,\"monitor_id\":null,\"org_id\":321813,\"start\":1638559145,\"end\":null,\"canceled\":null,\"created\":1638559145,\"modified\":1638559145,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"250fd678-b23a-11ed-9c1d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638559145\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1601680069,\"monitor_id\":null,\"org_id\":321813,\"start\":1638587266,\"end\":null,\"canceled\":null,\"created\":1638587266,\"modified\":1638587266,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2512c0c2-b23a-11ed-9ccb-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638587266\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1603240248,\"monitor_id\":null,\"org_id\":321813,\"start\":1638673984,\"end\":null,\"canceled\":null,\"created\":1638673984,\"modified\":1638673984,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"251867f2-b23a-11ed-9e2e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638673984\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1604792041,\"monitor_id\":null,\"org_id\":321813,\"start\":1638760257,\"end\":null,\"canceled\":null,\"created\":1638760257,\"modified\":1638760257,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"251e8a2e-b23a-11ed-9f99-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638760257\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1607009711,\"monitor_id\":null,\"org_id\":321813,\"start\":1638846605,\"end\":null,\"canceled\":null,\"created\":1638846605,\"modified\":1638846605,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"252f7a14-b23a-11ed-a368-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638846604\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1608019752,\"monitor_id\":null,\"org_id\":321813,\"start\":1638887255,\"end\":null,\"canceled\":null,\"created\":1638887255,\"modified\":1638887255,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"253cd89e-b23a-11ed-a632-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638887255\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1608061115,\"monitor_id\":null,\"org_id\":321813,\"start\":1638888300,\"end\":null,\"canceled\":null,\"created\":1638888300,\"modified\":1638888300,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"253d4c8e-b23a-11ed-a64e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638888299\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1608076740,\"monitor_id\":null,\"org_id\":321813,\"start\":1638888763,\"end\":null,\"canceled\":null,\"created\":1638888763,\"modified\":1638888763,\"message\":\"java-cancelDowntimesByScopeTest-local-1638888763-3\",\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"253d7bfa-b23a-11ed-a655-da7ad0900002\",\"scope\":[\"env:stage\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1608076762,\"monitor_id\":null,\"org_id\":321813,\"start\":1638888764,\"end\":null,\"canceled\":null,\"created\":1638888764,\"modified\":1638888764,\"message\":\"java-cancelDowntimesByScopeTest-local-1638888763-3\",\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"253d7eca-b23a-11ed-a656-da7ad0900002\",\"scope\":[\"env:stage\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1608077285,\"monitor_id\":null,\"org_id\":321813,\"start\":1638888789,\"end\":null,\"canceled\":null,\"created\":1638888789,\"modified\":1638888789,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"253d84ba-b23a-11ed-a657-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638888789\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1608135434,\"monitor_id\":null,\"org_id\":321813,\"start\":1638890121,\"end\":null,\"canceled\":null,\"created\":1638890121,\"modified\":1638890121,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"253dd726-b23a-11ed-a668-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638890120\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1608149153,\"monitor_id\":null,\"org_id\":321813,\"start\":1638890565,\"end\":null,\"canceled\":null,\"created\":1638890565,\"modified\":1638890565,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"253deb58-b23a-11ed-a66b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638890565\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1609043089,\"monitor_id\":null,\"org_id\":321813,\"start\":1638933140,\"end\":null,\"canceled\":null,\"created\":1638933140,\"modified\":1638933140,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"254e4732-b23a-11ed-aa68-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1638933140\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1611377681,\"monitor_id\":null,\"org_id\":321813,\"start\":1639019360,\"end\":null,\"canceled\":null,\"created\":1639019360,\"modified\":1639019360,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"256286c0-b23a-11ed-af36-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639019360\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1611858967,\"monitor_id\":null,\"org_id\":321813,\"start\":1639039090,\"end\":null,\"canceled\":null,\"created\":1639039090,\"modified\":1639039090,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2565f65c-b23a-11ed-b000-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639039090\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1612013252,\"monitor_id\":null,\"org_id\":321813,\"start\":1639045076,\"end\":null,\"canceled\":null,\"created\":1639045076,\"modified\":1639045076,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25670826-b23a-11ed-b041-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639045076\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1612040533,\"monitor_id\":null,\"org_id\":321813,\"start\":1639046120,\"end\":null,\"canceled\":null,\"created\":1639046120,\"modified\":1639046120,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25679584-b23a-11ed-b061-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639046120\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1612042473,\"monitor_id\":null,\"org_id\":321813,\"start\":1639046199,\"end\":null,\"canceled\":null,\"created\":1639046199,\"modified\":1639046199,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2567a0ec-b23a-11ed-b063-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639046198\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1612387908,\"monitor_id\":null,\"org_id\":321813,\"start\":1639059519,\"end\":null,\"canceled\":null,\"created\":1639059519,\"modified\":1639059519,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"256c3968-b23a-11ed-b12b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639059519\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1612718228,\"monitor_id\":null,\"org_id\":321813,\"start\":1639070105,\"end\":null,\"canceled\":null,\"created\":1639070105,\"modified\":1639070105,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"256f7c68-b23a-11ed-b20f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639070105\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1613697170,\"monitor_id\":null,\"org_id\":321813,\"start\":1639105733,\"end\":null,\"canceled\":null,\"created\":1639105733,\"modified\":1639105733,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2578c58e-b23a-11ed-b46b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639105732\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614261294,\"monitor_id\":null,\"org_id\":321813,\"start\":1639129392,\"end\":null,\"canceled\":null,\"created\":1639129392,\"modified\":1639129392,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257c3ad4-b23a-11ed-b55a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639129392\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614265735,\"monitor_id\":null,\"org_id\":321813,\"start\":1639129606,\"end\":null,\"canceled\":null,\"created\":1639129606,\"modified\":1639129606,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257c4c5e-b23a-11ed-b560-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639129606\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614312588,\"monitor_id\":null,\"org_id\":321813,\"start\":1639131518,\"end\":null,\"canceled\":null,\"created\":1639131518,\"modified\":1639131518,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257c6d42-b23a-11ed-b569-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639131518\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614314241,\"monitor_id\":null,\"org_id\":321813,\"start\":1639131573,\"end\":null,\"canceled\":null,\"created\":1639131573,\"modified\":1639131573,\"message\":\"java-cancelDowntimesByScopeTest-local-1639131573-3\",\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257c75ee-b23a-11ed-b56a-da7ad0900002\",\"scope\":[\"env:stage\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614314306,\"monitor_id\":null,\"org_id\":321813,\"start\":1639131575,\"end\":null,\"canceled\":null,\"created\":1639131575,\"modified\":1639131575,\"message\":\"java-cancelDowntimesByScopeTest-local-1639131575-3\",\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257c7878-b23a-11ed-b56b-da7ad0900002\",\"scope\":[\"env:stage\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614362536,\"monitor_id\":null,\"org_id\":321813,\"start\":1639133522,\"end\":null,\"canceled\":null,\"created\":1639133522,\"modified\":1639133522,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257cc9ae-b23a-11ed-b57e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639133521\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614473226,\"monitor_id\":null,\"org_id\":321813,\"start\":1639138145,\"end\":null,\"canceled\":null,\"created\":1639138145,\"modified\":1639138145,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257db3c8-b23a-11ed-b5ba-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639138145\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614595356,\"monitor_id\":null,\"org_id\":321813,\"start\":1639143225,\"end\":null,\"canceled\":null,\"created\":1639143225,\"modified\":1639143225,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257e1be2-b23a-11ed-b5d1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639143225\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614614143,\"monitor_id\":null,\"org_id\":321813,\"start\":1639144017,\"end\":null,\"canceled\":null,\"created\":1639144017,\"modified\":1639144017,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257e3b9a-b23a-11ed-b5d9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639144017\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614639003,\"monitor_id\":null,\"org_id\":321813,\"start\":1639144849,\"end\":null,\"canceled\":null,\"created\":1639144849,\"modified\":1639144849,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257e51ca-b23a-11ed-b5e1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639144848\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614655057,\"monitor_id\":null,\"org_id\":321813,\"start\":1639145477,\"end\":null,\"canceled\":null,\"created\":1639145477,\"modified\":1639145477,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257e6912-b23a-11ed-b5e2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639145477\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614657426,\"monitor_id\":null,\"org_id\":321813,\"start\":1639145572,\"end\":null,\"canceled\":null,\"created\":1639145572,\"modified\":1639145572,\"message\":\"java-cancelDowntimesByScopeTest-local-1639145572-3\",\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257e72cc-b23a-11ed-b5e4-da7ad0900002\",\"scope\":[\"env:stage\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614657459,\"monitor_id\":null,\"org_id\":321813,\"start\":1639145574,\"end\":null,\"canceled\":null,\"created\":1639145574,\"modified\":1639145574,\"message\":\"java-cancelDowntimesByScopeTest-local-1639145574-3\",\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257e7722-b23a-11ed-b5e5-da7ad0900002\",\"scope\":[\"env:stage\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614695601,\"monitor_id\":null,\"org_id\":321813,\"start\":1639146967,\"end\":null,\"canceled\":null,\"created\":1639146967,\"modified\":1639146967,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257ee342-b23a-11ed-b603-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639146967\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614823304,\"monitor_id\":null,\"org_id\":321813,\"start\":1639150802,\"end\":null,\"canceled\":null,\"created\":1639150802,\"modified\":1639150802,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257f5f98-b23a-11ed-b621-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639150802\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614903496,\"monitor_id\":null,\"org_id\":321813,\"start\":1639153012,\"end\":null,\"canceled\":null,\"created\":1639153012,\"modified\":1639153012,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257fa9bc-b23a-11ed-b633-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639153012\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614948050,\"monitor_id\":null,\"org_id\":321813,\"start\":1639154514,\"end\":null,\"canceled\":null,\"created\":1639154514,\"modified\":1639154514,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257fc046-b23a-11ed-b63b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639154514\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614963817,\"monitor_id\":null,\"org_id\":321813,\"start\":1639155120,\"end\":null,\"canceled\":null,\"created\":1639155120,\"modified\":1639155120,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257fc7e4-b23a-11ed-b63e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639155120\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614969241,\"monitor_id\":null,\"org_id\":321813,\"start\":1639155342,\"end\":null,\"canceled\":null,\"created\":1639155342,\"modified\":1639155342,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"257ff084-b23a-11ed-b64a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639155342\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1614992116,\"monitor_id\":null,\"org_id\":321813,\"start\":1639156110,\"end\":null,\"canceled\":null,\"created\":1639156110,\"modified\":1639156110,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25801096-b23a-11ed-b64f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639156110\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1615000084,\"monitor_id\":null,\"org_id\":321813,\"start\":1639156370,\"end\":null,\"canceled\":null,\"created\":1639156370,\"modified\":1639156370,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"258020d6-b23a-11ed-b651-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639156370\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1615105566,\"monitor_id\":null,\"org_id\":321813,\"start\":1639160379,\"end\":null,\"canceled\":null,\"created\":1639160379,\"modified\":1639160379,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2580cf5e-b23a-11ed-b680-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639160379\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1615113697,\"monitor_id\":null,\"org_id\":321813,\"start\":1639160690,\"end\":null,\"canceled\":null,\"created\":1639160690,\"modified\":1639160690,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2580d990-b23a-11ed-b684-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639160690\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1615202151,\"monitor_id\":null,\"org_id\":321813,\"start\":1639164074,\"end\":null,\"canceled\":null,\"created\":1639164074,\"modified\":1639164074,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"258171d4-b23a-11ed-b6ac-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639164074\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1615472151,\"monitor_id\":null,\"org_id\":321813,\"start\":1639173820,\"end\":null,\"canceled\":null,\"created\":1639173820,\"modified\":1639173820,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25831732-b23a-11ed-b711-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639173820\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1615481540,\"monitor_id\":null,\"org_id\":321813,\"start\":1639174155,\"end\":null,\"canceled\":null,\"created\":1639174155,\"modified\":1639174155,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25837be6-b23a-11ed-b719-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639174155\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1615502160,\"monitor_id\":null,\"org_id\":321813,\"start\":1639174815,\"end\":null,\"canceled\":null,\"created\":1639174815,\"modified\":1639174815,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2583b868-b23a-11ed-b72c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639174815\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1615546278,\"monitor_id\":null,\"org_id\":321813,\"start\":1639176409,\"end\":null,\"canceled\":null,\"created\":1639176409,\"modified\":1639176409,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25840034-b23a-11ed-b73c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639176409\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1615931969,\"monitor_id\":null,\"org_id\":321813,\"start\":1639192157,\"end\":null,\"canceled\":null,\"created\":1639192157,\"modified\":1639192157,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25853364-b23a-11ed-b796-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639192157\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1616665820,\"monitor_id\":null,\"org_id\":321813,\"start\":1639230299,\"end\":null,\"canceled\":null,\"created\":1639230300,\"modified\":1639230300,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"258718fa-b23a-11ed-b827-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639230299\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1617504631,\"monitor_id\":null,\"org_id\":321813,\"start\":1639278552,\"end\":null,\"canceled\":null,\"created\":1639278552,\"modified\":1639278552,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2589071e-b23a-11ed-b8b5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639278552\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1619067521,\"monitor_id\":null,\"org_id\":321813,\"start\":1639365074,\"end\":null,\"canceled\":null,\"created\":1639365074,\"modified\":1639365074,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"258e5c64-b23a-11ed-ba12-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639365073\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1619461149,\"monitor_id\":null,\"org_id\":321813,\"start\":1639382356,\"end\":null,\"canceled\":null,\"created\":1639382356,\"modified\":1639382356,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2591598c-b23a-11ed-badc-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639382356\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1619484810,\"monitor_id\":null,\"org_id\":321813,\"start\":1639383448,\"end\":null,\"canceled\":null,\"created\":1639383448,\"modified\":1639383448,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2591a68a-b23a-11ed-baf6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639383448\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1619581092,\"monitor_id\":null,\"org_id\":321813,\"start\":1639387725,\"end\":null,\"canceled\":null,\"created\":1639387725,\"modified\":1639387725,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25922e2a-b23a-11ed-bb14-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639387725\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1619610004,\"monitor_id\":null,\"org_id\":321813,\"start\":1639389029,\"end\":null,\"canceled\":null,\"created\":1639389029,\"modified\":1639389029,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25924504-b23a-11ed-bb1b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639389029\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1620370388,\"monitor_id\":null,\"org_id\":321813,\"start\":1639415685,\"end\":null,\"canceled\":null,\"created\":1639415685,\"modified\":1639415685,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25996672-b23a-11ed-bd3c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639415684\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1620770255,\"monitor_id\":null,\"org_id\":321813,\"start\":1639429639,\"end\":null,\"canceled\":null,\"created\":1639429639,\"modified\":1639429639,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"259cc204-b23a-11ed-be30-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639429639\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1620809177,\"monitor_id\":null,\"org_id\":321813,\"start\":1639431034,\"end\":null,\"canceled\":null,\"created\":1639431034,\"modified\":1639431034,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"259cea2c-b23a-11ed-be3a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639431034\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1621365885,\"monitor_id\":null,\"org_id\":321813,\"start\":1639451240,\"end\":null,\"canceled\":null,\"created\":1639451240,\"modified\":1639451240,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25a6df14-b23a-11ed-b036-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639451240\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1621692149,\"monitor_id\":null,\"org_id\":321813,\"start\":1639464373,\"end\":null,\"canceled\":null,\"created\":1639464373,\"modified\":1639464373,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25a8e570-b23a-11ed-b0ce-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639464373\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1622000734,\"monitor_id\":null,\"org_id\":321813,\"start\":1639477211,\"end\":null,\"canceled\":null,\"created\":1639477211,\"modified\":1639477211,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ab7998-b23a-11ed-b171-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639477211\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1622153650,\"monitor_id\":null,\"org_id\":321813,\"start\":1639482482,\"end\":null,\"canceled\":null,\"created\":1639482482,\"modified\":1639482482,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ac08c2-b23a-11ed-b197-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639482482\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1622168948,\"monitor_id\":null,\"org_id\":321813,\"start\":1639483142,\"end\":null,\"canceled\":null,\"created\":1639483142,\"modified\":1639483142,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ac1812-b23a-11ed-b19b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639483142\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1622328315,\"monitor_id\":null,\"org_id\":321813,\"start\":1639489128,\"end\":null,\"canceled\":null,\"created\":1639489128,\"modified\":1639489128,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ac94fe-b23a-11ed-b1bd-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639489128\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1622361804,\"monitor_id\":null,\"org_id\":321813,\"start\":1639490281,\"end\":null,\"canceled\":null,\"created\":1639490281,\"modified\":1639490281,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25acd158-b23a-11ed-b1cf-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639490281\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1622417624,\"monitor_id\":null,\"org_id\":321813,\"start\":1639492221,\"end\":null,\"canceled\":null,\"created\":1639492221,\"modified\":1639492221,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ad34a4-b23a-11ed-b1f1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639492221\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1622582580,\"monitor_id\":null,\"org_id\":321813,\"start\":1639498216,\"end\":null,\"canceled\":null,\"created\":1639498216,\"modified\":1639498216,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ae28e6-b23a-11ed-b23c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639498215\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1622728228,\"monitor_id\":null,\"org_id\":321813,\"start\":1639502139,\"end\":null,\"canceled\":null,\"created\":1639502139,\"modified\":1639502139,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25aeda02-b23a-11ed-b271-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639502139\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1622734618,\"monitor_id\":null,\"org_id\":321813,\"start\":1639502370,\"end\":null,\"canceled\":null,\"created\":1639502370,\"modified\":1639502370,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25aee1b4-b23a-11ed-b274-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639502369\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1622740019,\"monitor_id\":null,\"org_id\":321813,\"start\":1639502568,\"end\":null,\"canceled\":null,\"created\":1639502568,\"modified\":1639502568,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25aeece0-b23a-11ed-b277-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639502568\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1622766192,\"monitor_id\":null,\"org_id\":321813,\"start\":1639503555,\"end\":null,\"canceled\":null,\"created\":1639503555,\"modified\":1639503555,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25aefe9c-b23a-11ed-b27b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639503555\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1623750058,\"monitor_id\":null,\"org_id\":321813,\"start\":1639537832,\"end\":null,\"canceled\":null,\"created\":1639537832,\"modified\":1639537832,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25b51840-b23a-11ed-b400-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639537832\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1624387376,\"monitor_id\":null,\"org_id\":321813,\"start\":1639564927,\"end\":null,\"canceled\":null,\"created\":1639564927,\"modified\":1639564927,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ba2038-b23a-11ed-b56c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639564927\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1624392318,\"monitor_id\":null,\"org_id\":321813,\"start\":1639565108,\"end\":null,\"canceled\":null,\"created\":1639565108,\"modified\":1639565108,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ba2fb0-b23a-11ed-b56f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639565108\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1624800914,\"monitor_id\":null,\"org_id\":321813,\"start\":1639580899,\"end\":null,\"canceled\":null,\"created\":1639580899,\"modified\":1639580899,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25bdf870-b23a-11ed-b691-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639580899\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1624813214,\"monitor_id\":null,\"org_id\":321813,\"start\":1639581359,\"end\":null,\"canceled\":null,\"created\":1639581359,\"modified\":1639581359,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25be11b6-b23a-11ed-b69b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639581359\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1624940552,\"monitor_id\":null,\"org_id\":321813,\"start\":1639585461,\"end\":null,\"canceled\":null,\"created\":1639585461,\"modified\":1639585461,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25bf6160-b23a-11ed-b6e0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639585460\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1625123813,\"monitor_id\":null,\"org_id\":321813,\"start\":1639590434,\"end\":null,\"canceled\":null,\"created\":1639590434,\"modified\":1639590434,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25c0bc22-b23a-11ed-b73b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639590434\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1625156436,\"monitor_id\":null,\"org_id\":321813,\"start\":1639591611,\"end\":null,\"canceled\":null,\"created\":1639591611,\"modified\":1639591611,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25c10240-b23a-11ed-b74d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639591611\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1625367284,\"monitor_id\":null,\"org_id\":321813,\"start\":1639598890,\"end\":null,\"canceled\":null,\"created\":1639598890,\"modified\":1639598890,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25c21f22-b23a-11ed-b792-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639598890\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1626081135,\"monitor_id\":null,\"org_id\":321813,\"start\":1639624064,\"end\":null,\"canceled\":null,\"created\":1639624064,\"modified\":1639624064,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25c6ffb0-b23a-11ed-b8d9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639624064\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1626652078,\"monitor_id\":null,\"org_id\":321813,\"start\":1639647512,\"end\":null,\"canceled\":null,\"created\":1639647512,\"modified\":1639647512,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25cda586-b23a-11ed-bab8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639647512\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1626665572,\"monitor_id\":null,\"org_id\":321813,\"start\":1639648165,\"end\":null,\"canceled\":null,\"created\":1639648165,\"modified\":1639648165,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25cdaafe-b23a-11ed-baba-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639648165\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1626770282,\"monitor_id\":null,\"org_id\":321813,\"start\":1639652200,\"end\":null,\"canceled\":null,\"created\":1639652200,\"modified\":1639652200,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ce8870-b23a-11ed-bb03-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639652200\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1627086846,\"monitor_id\":null,\"org_id\":321813,\"start\":1639664080,\"end\":null,\"canceled\":null,\"created\":1639664080,\"modified\":1639664080,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25d090de-b23a-11ed-bb98-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639664080\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1627105697,\"monitor_id\":null,\"org_id\":321813,\"start\":1639664780,\"end\":null,\"canceled\":null,\"created\":1639664780,\"modified\":1639664780,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25d09c1e-b23a-11ed-bb9c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639664780\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1627121580,\"monitor_id\":null,\"org_id\":321813,\"start\":1639665315,\"end\":null,\"canceled\":null,\"created\":1639665315,\"modified\":1639665315,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25d0ad62-b23a-11ed-bba1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639665314\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1627198809,\"monitor_id\":null,\"org_id\":321813,\"start\":1639668046,\"end\":null,\"canceled\":null,\"created\":1639668046,\"modified\":1639668046,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25d0fe3e-b23a-11ed-bbb9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639668046\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1627228324,\"monitor_id\":null,\"org_id\":321813,\"start\":1639669044,\"end\":null,\"canceled\":null,\"created\":1639669044,\"modified\":1639669044,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25d11e82-b23a-11ed-bbc0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639669043\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1627253307,\"monitor_id\":null,\"org_id\":321813,\"start\":1639669946,\"end\":null,\"canceled\":null,\"created\":1639669946,\"modified\":1639669946,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25d13ac0-b23a-11ed-bbc9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639669946\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1627255866,\"monitor_id\":null,\"org_id\":321813,\"start\":1639670056,\"end\":null,\"canceled\":null,\"created\":1639670056,\"modified\":1639670056,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25d13d4a-b23a-11ed-bbca-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639670056\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1627287838,\"monitor_id\":null,\"org_id\":321813,\"start\":1639671056,\"end\":null,\"canceled\":null,\"created\":1639671056,\"modified\":1639671056,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25d175e4-b23a-11ed-bbde-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639671056\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1627290441,\"monitor_id\":null,\"org_id\":321813,\"start\":1639671124,\"end\":null,\"canceled\":null,\"created\":1639671124,\"modified\":1639671124,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25d17882-b23a-11ed-bbdf-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639671124\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1627310036,\"monitor_id\":null,\"org_id\":321813,\"start\":1639671786,\"end\":null,\"canceled\":null,\"created\":1639671786,\"modified\":1639671786,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25d18d86-b23a-11ed-bbe6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639671786\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1627388723,\"monitor_id\":null,\"org_id\":321813,\"start\":1639673905,\"end\":null,\"canceled\":null,\"created\":1639673905,\"modified\":1639673905,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25d23722-b23a-11ed-bc12-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639673905\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1627401710,\"monitor_id\":null,\"org_id\":321813,\"start\":1639674334,\"end\":null,\"canceled\":null,\"created\":1639674334,\"modified\":1639674334,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25d242d0-b23a-11ed-bc16-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639674334\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1628514017,\"monitor_id\":null,\"org_id\":321813,\"start\":1639710445,\"end\":null,\"canceled\":null,\"created\":1639710445,\"modified\":1639710445,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25e7c65a-b23a-11ed-bcd0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639710444\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1628625988,\"monitor_id\":null,\"org_id\":321813,\"start\":1639715081,\"end\":null,\"canceled\":null,\"created\":1639715081,\"modified\":1639715081,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25e8ec88-b23a-11ed-bd1e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639715081\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1628749988,\"monitor_id\":null,\"org_id\":321813,\"start\":1639720581,\"end\":null,\"canceled\":null,\"created\":1639720581,\"modified\":1639720581,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25e99926-b23a-11ed-bd4f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639720581\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1629192171,\"monitor_id\":null,\"org_id\":321813,\"start\":1639739751,\"end\":null,\"canceled\":null,\"created\":1639739751,\"modified\":1639739751,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ec7b8c-b23a-11ed-be3a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639739751\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1629222341,\"monitor_id\":null,\"org_id\":321813,\"start\":1639740961,\"end\":null,\"canceled\":null,\"created\":1639740961,\"modified\":1639740961,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ec9c5c-b23a-11ed-be41-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639740961\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1629282598,\"monitor_id\":null,\"org_id\":321813,\"start\":1639743536,\"end\":null,\"canceled\":null,\"created\":1639743536,\"modified\":1639743536,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ecb9bc-b23a-11ed-be4c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639743536\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1629283229,\"monitor_id\":null,\"org_id\":321813,\"start\":1639743564,\"end\":null,\"canceled\":null,\"created\":1639743564,\"modified\":1639743564,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ecbc3c-b23a-11ed-be4d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639743564\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1629388680,\"monitor_id\":null,\"org_id\":321813,\"start\":1639747790,\"end\":null,\"canceled\":null,\"created\":1639747790,\"modified\":1639747790,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ecffee-b23a-11ed-be5e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639747790\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1629391375,\"monitor_id\":null,\"org_id\":321813,\"start\":1639747869,\"end\":null,\"canceled\":null,\"created\":1639747869,\"modified\":1639747869,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ed02b4-b23a-11ed-be5f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639747869\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1629409601,\"monitor_id\":null,\"org_id\":321813,\"start\":1639748641,\"end\":null,\"canceled\":null,\"created\":1639748641,\"modified\":1639748641,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ed23c0-b23a-11ed-be6a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639748641\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1629775609,\"monitor_id\":null,\"org_id\":321813,\"start\":1639761380,\"end\":null,\"canceled\":null,\"created\":1639761380,\"modified\":1639761380,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25eee93a-b23a-11ed-bee8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639761379\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1629837263,\"monitor_id\":null,\"org_id\":321813,\"start\":1639763231,\"end\":null,\"canceled\":null,\"created\":1639763231,\"modified\":1639763231,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ef0898-b23a-11ed-bef3-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639763231\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1629839973,\"monitor_id\":null,\"org_id\":321813,\"start\":1639763342,\"end\":null,\"canceled\":null,\"created\":1639763342,\"modified\":1639763342,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ef26f2-b23a-11ed-beff-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639763341\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1629970583,\"monitor_id\":null,\"org_id\":321813,\"start\":1639767403,\"end\":null,\"canceled\":null,\"created\":1639767403,\"modified\":1639767403,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25f034ac-b23a-11ed-bf57-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639767403\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1630232797,\"monitor_id\":null,\"org_id\":321813,\"start\":1639776767,\"end\":null,\"canceled\":null,\"created\":1639776767,\"modified\":1639776767,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25f1a3b4-b23a-11ed-bfc0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639776767\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1630337986,\"monitor_id\":null,\"org_id\":321813,\"start\":1639780936,\"end\":null,\"canceled\":null,\"created\":1639780936,\"modified\":1639780936,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25f20354-b23a-11ed-bfdc-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639780936\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1630723839,\"monitor_id\":null,\"org_id\":321813,\"start\":1639796887,\"end\":null,\"canceled\":null,\"created\":1639796887,\"modified\":1639796887,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25fe2fb2-b23a-11ed-835d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639796887\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1631531963,\"monitor_id\":null,\"org_id\":321813,\"start\":1639839063,\"end\":null,\"canceled\":null,\"created\":1639839063,\"modified\":1639839063,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ff865a-b23a-11ed-83be-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639839063\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1631761044,\"monitor_id\":null,\"org_id\":321813,\"start\":1639850744,\"end\":null,\"canceled\":null,\"created\":1639850744,\"modified\":1639850744,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ffd63c-b23a-11ed-83d5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639850744\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1631862384,\"monitor_id\":null,\"org_id\":321813,\"start\":1639857365,\"end\":null,\"canceled\":null,\"created\":1639857365,\"modified\":1639857365,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25ffece4-b23a-11ed-83dc-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639857365\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1631956671,\"monitor_id\":null,\"org_id\":321813,\"start\":1639862926,\"end\":null,\"canceled\":null,\"created\":1639862926,\"modified\":1639862926,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"26000b34-b23a-11ed-83e6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639862925\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1632321068,\"monitor_id\":null,\"org_id\":321813,\"start\":1639883716,\"end\":null,\"canceled\":null,\"created\":1639883716,\"modified\":1639883716,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"260065ca-b23a-11ed-8402-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639883716\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1632817060,\"monitor_id\":null,\"org_id\":321813,\"start\":1639911417,\"end\":null,\"canceled\":null,\"created\":1639911417,\"modified\":1639911417,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"26017334-b23a-11ed-844c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639911417\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1632850532,\"monitor_id\":null,\"org_id\":321813,\"start\":1639913273,\"end\":null,\"canceled\":null,\"created\":1639913273,\"modified\":1639913273,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"260178ca-b23a-11ed-844e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639913272\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1632864126,\"monitor_id\":null,\"org_id\":321813,\"start\":1639914080,\"end\":null,\"canceled\":null,\"created\":1639914080,\"modified\":1639914080,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"26019300-b23a-11ed-8458-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639914080\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1632931360,\"monitor_id\":null,\"org_id\":321813,\"start\":1639917988,\"end\":null,\"canceled\":null,\"created\":1639917988,\"modified\":1639917988,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2601b312-b23a-11ed-8464-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639917988\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1633851553,\"monitor_id\":null,\"org_id\":321813,\"start\":1639969879,\"end\":null,\"canceled\":null,\"created\":1639969879,\"modified\":1639969879,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2603cc88-b23a-11ed-8502-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639969879\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1634214343,\"monitor_id\":null,\"org_id\":321813,\"start\":1639988072,\"end\":null,\"canceled\":null,\"created\":1639988072,\"modified\":1639988072,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2606053e-b23a-11ed-85b4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639988072\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1634289989,\"monitor_id\":null,\"org_id\":321813,\"start\":1639991598,\"end\":null,\"canceled\":null,\"created\":1639991598,\"modified\":1639991598,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2606352c-b23a-11ed-85c0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639991598\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1634318571,\"monitor_id\":null,\"org_id\":321813,\"start\":1639992864,\"end\":null,\"canceled\":null,\"created\":1639992864,\"modified\":1639992864,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"260681c6-b23a-11ed-85d4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639992863\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1634401227,\"monitor_id\":null,\"org_id\":321813,\"start\":1639996655,\"end\":null,\"canceled\":null,\"created\":1639996655,\"modified\":1639996655,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2606ceec-b23a-11ed-85e9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1639996655\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1635947048,\"monitor_id\":null,\"org_id\":321813,\"start\":1640056444,\"end\":null,\"canceled\":null,\"created\":1640056444,\"modified\":1640056444,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"260e8ad8-b23a-11ed-881f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640056444\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1636482234,\"monitor_id\":null,\"org_id\":321813,\"start\":1640079823,\"end\":null,\"canceled\":null,\"created\":1640079823,\"modified\":1640079823,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2613c836-b23a-11ed-897d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640079823\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1636522835,\"monitor_id\":null,\"org_id\":321813,\"start\":1640081693,\"end\":null,\"canceled\":null,\"created\":1640081693,\"modified\":1640081693,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2613edac-b23a-11ed-8987-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640081693\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1636533109,\"monitor_id\":null,\"org_id\":321813,\"start\":1640082069,\"end\":null,\"canceled\":null,\"created\":1640082069,\"modified\":1640082069,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2613fbee-b23a-11ed-898a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640082068\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1636580714,\"monitor_id\":null,\"org_id\":321813,\"start\":1640084275,\"end\":null,\"canceled\":null,\"created\":1640084275,\"modified\":1640084275,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"261437b2-b23a-11ed-899c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640084275\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1637328889,\"monitor_id\":null,\"org_id\":321813,\"start\":1640112151,\"end\":null,\"canceled\":null,\"created\":1640112151,\"modified\":1640112151,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2617b914-b23a-11ed-8a91-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640112151\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1638100453,\"monitor_id\":null,\"org_id\":321813,\"start\":1640142489,\"end\":null,\"canceled\":null,\"created\":1640142489,\"modified\":1640142489,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"261b7ed2-b23a-11ed-8bac-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640142489\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1640240196,\"monitor_id\":null,\"org_id\":321813,\"start\":1640229118,\"end\":null,\"canceled\":null,\"created\":1640229118,\"modified\":1640229118,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"262bf8a2-b23a-11ed-9046-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640229118\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1642201887,\"monitor_id\":null,\"org_id\":321813,\"start\":1640315567,\"end\":null,\"canceled\":null,\"created\":1640315567,\"modified\":1640315567,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"26364aa0-b23a-11ed-9330-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640315567\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1643888459,\"monitor_id\":null,\"org_id\":321813,\"start\":1640401930,\"end\":null,\"canceled\":null,\"created\":1640401930,\"modified\":1640401930,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"263ca18e-b23a-11ed-94fe-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640401930\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1645349861,\"monitor_id\":null,\"org_id\":321813,\"start\":1640488518,\"end\":null,\"canceled\":null,\"created\":1640488518,\"modified\":1640488518,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"263f263e-b23a-11ed-95a2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640488518\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1646825150,\"monitor_id\":null,\"org_id\":321813,\"start\":1640575292,\"end\":null,\"canceled\":null,\"created\":1640575292,\"modified\":1640575292,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2641f71a-b23a-11ed-9656-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640575292\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1648518816,\"monitor_id\":null,\"org_id\":321813,\"start\":1640661085,\"end\":null,\"canceled\":null,\"created\":1640661085,\"modified\":1640661085,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"264cfac0-b23a-11ed-9996-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640661085\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1650234564,\"monitor_id\":null,\"org_id\":321813,\"start\":1640747637,\"end\":null,\"canceled\":null,\"created\":1640747637,\"modified\":1640747637,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"265459be-b23a-11ed-9bad-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640747636\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1651944158,\"monitor_id\":null,\"org_id\":321813,\"start\":1640833679,\"end\":null,\"canceled\":null,\"created\":1640833679,\"modified\":1640833679,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"265ce94e-b23a-11ed-9e57-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640833678\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1653645261,\"monitor_id\":null,\"org_id\":321813,\"start\":1640920246,\"end\":null,\"canceled\":null,\"created\":1640920246,\"modified\":1640920246,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2664206a-b23a-11ed-a0c9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1640920246\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1655241332,\"monitor_id\":null,\"org_id\":321813,\"start\":1641007167,\"end\":null,\"canceled\":null,\"created\":1641007167,\"modified\":1641007167,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"266a0908-b23a-11ed-a291-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1641007167\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1656671629,\"monitor_id\":null,\"org_id\":321813,\"start\":1641093291,\"end\":null,\"canceled\":null,\"created\":1641093291,\"modified\":1641093291,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"266da130-b23a-11ed-a3b8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1641093291\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1658141310,\"monitor_id\":null,\"org_id\":321813,\"start\":1641179565,\"end\":null,\"canceled\":null,\"created\":1641179565,\"modified\":1641179565,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2673e2de-b23a-11ed-a5d3-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1641179565\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1660007013,\"monitor_id\":null,\"org_id\":321813,\"start\":1641265850,\"end\":null,\"canceled\":null,\"created\":1641265850,\"modified\":1641265850,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2680b1b2-b23a-11ed-a9c0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1641265850\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1662092297,\"monitor_id\":null,\"org_id\":321813,\"start\":1641352066,\"end\":null,\"canceled\":null,\"created\":1641352066,\"modified\":1641352066,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"268e3986-b23a-11ed-ad4c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1641352065\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1664277957,\"monitor_id\":null,\"org_id\":321813,\"start\":1641438613,\"end\":null,\"canceled\":null,\"created\":1641438613,\"modified\":1641438613,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"269af50e-b23a-11ed-b119-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1641438613\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1666505884,\"monitor_id\":null,\"org_id\":321813,\"start\":1641525266,\"end\":null,\"canceled\":null,\"created\":1641525266,\"modified\":1641525266,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"26a7c7f2-b23a-11ed-b4f7-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1641525266\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1668649522,\"monitor_id\":null,\"org_id\":321813,\"start\":1641611520,\"end\":null,\"canceled\":null,\"created\":1641611520,\"modified\":1641611520,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"26b41fb6-b23a-11ed-b8f8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1641611520\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1670195513,\"monitor_id\":null,\"org_id\":321813,\"start\":1641697752,\"end\":null,\"canceled\":null,\"created\":1641697752,\"modified\":1641697752,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"26b94432-b23a-11ed-ba89-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1641697752\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1671741450,\"monitor_id\":null,\"org_id\":321813,\"start\":1641784138,\"end\":null,\"canceled\":null,\"created\":1641784138,\"modified\":1641784138,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"26bef3aa-b23a-11ed-bc4f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1641784138\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1673924915,\"monitor_id\":null,\"org_id\":321813,\"start\":1641870544,\"end\":null,\"canceled\":null,\"created\":1641870544,\"modified\":1641870544,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"26cc3b32-b23a-11ed-a3cb-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1641870544\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1676224729,\"monitor_id\":null,\"org_id\":321813,\"start\":1641956959,\"end\":null,\"canceled\":null,\"created\":1641956959,\"modified\":1641956959,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"26dcfb34-b23a-11ed-a877-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1641956959\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1677666738,\"monitor_id\":null,\"org_id\":321813,\"start\":1642012121,\"end\":null,\"canceled\":null,\"created\":1642012121,\"modified\":1642012121,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"26eacd68-b23a-11ed-ac25-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1642012121\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1678587077,\"monitor_id\":null,\"org_id\":321813,\"start\":1642043401,\"end\":null,\"canceled\":null,\"created\":1642043401,\"modified\":1642043401,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"26f0ab34-b23a-11ed-add8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1642043401\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1680949487,\"monitor_id\":null,\"org_id\":321813,\"start\":1642129689,\"end\":null,\"canceled\":null,\"created\":1642129689,\"modified\":1642129689,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"26fe3fba-b23a-11ed-b1b9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1642129688\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1683185163,\"monitor_id\":null,\"org_id\":321813,\"start\":1642216747,\"end\":null,\"canceled\":null,\"created\":1642216747,\"modified\":1642216747,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"270df7d4-b23a-11ed-b5f1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1642216747\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1684768252,\"monitor_id\":null,\"org_id\":321813,\"start\":1642302665,\"end\":null,\"canceled\":null,\"created\":1642302665,\"modified\":1642302665,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"27124d20-b23a-11ed-b747-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1642302665\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1686328689,\"monitor_id\":null,\"org_id\":321813,\"start\":1642389268,\"end\":null,\"canceled\":null,\"created\":1642389268,\"modified\":1642389268,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2717ff2c-b23a-11ed-b907-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1642389268\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1688275916,\"monitor_id\":null,\"org_id\":321813,\"start\":1642475273,\"end\":null,\"canceled\":null,\"created\":1642475273,\"modified\":1642475273,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2728d6ee-b23a-11ed-bdd5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1642475272\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1689016370,\"monitor_id\":null,\"org_id\":321813,\"start\":1642507886,\"end\":null,\"canceled\":null,\"created\":1642507886,\"modified\":1642507886,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"272d67ae-b23a-11ed-bf09-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1642507886\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1690565091,\"monitor_id\":null,\"org_id\":321813,\"start\":1642561743,\"end\":null,\"canceled\":null,\"created\":1642561743,\"modified\":1642561743,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"273864ec-b23a-11ed-89b5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1642561742\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1692909274,\"monitor_id\":null,\"org_id\":321813,\"start\":1642648071,\"end\":null,\"canceled\":null,\"created\":1642648071,\"modified\":1642648071,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2748b338-b23a-11ed-8edf-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1642648071\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1695251632,\"monitor_id\":null,\"org_id\":321813,\"start\":1642734932,\"end\":null,\"canceled\":null,\"created\":1642734932,\"modified\":1642734932,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"27994cd0-b23a-11ed-a94c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1642734932\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1697478492,\"monitor_id\":null,\"org_id\":321813,\"start\":1642820863,\"end\":null,\"canceled\":null,\"created\":1642820863,\"modified\":1642820863,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"27a3fe96-b23a-11ed-ac45-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1642820863\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1699116451,\"monitor_id\":null,\"org_id\":321813,\"start\":1642907357,\"end\":null,\"canceled\":null,\"created\":1642907357,\"modified\":1642907357,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"27a74ab0-b23a-11ed-ad44-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1642907357\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1700744995,\"monitor_id\":null,\"org_id\":321813,\"start\":1642993788,\"end\":null,\"canceled\":null,\"created\":1642993788,\"modified\":1642993788,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"27aaebfc-b23a-11ed-ae68-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1642993788\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1703016436,\"monitor_id\":null,\"org_id\":321813,\"start\":1643080145,\"end\":null,\"canceled\":null,\"created\":1643080145,\"modified\":1643080145,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"27b54886-b23a-11ed-b1ab-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1643080145\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1705444324,\"monitor_id\":null,\"org_id\":321813,\"start\":1643166892,\"end\":null,\"canceled\":null,\"created\":1643166892,\"modified\":1643166892,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"27c1ad56-b23a-11ed-b5d5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1643166892\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1707839104,\"monitor_id\":null,\"org_id\":321813,\"start\":1643252880,\"end\":null,\"canceled\":null,\"created\":1643252880,\"modified\":1643252880,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"27ce63e8-b23a-11ed-b97b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1643252879\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1710342923,\"monitor_id\":null,\"org_id\":321813,\"start\":1643339520,\"end\":null,\"canceled\":null,\"created\":1643339520,\"modified\":1643339520,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"27e0100c-b23a-11ed-bead-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1643339520\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1712645429,\"monitor_id\":null,\"org_id\":321813,\"start\":1643425630,\"end\":null,\"canceled\":null,\"created\":1643425630,\"modified\":1643425630,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"27ee2c00-b23a-11ed-8a20-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1643425630\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1714333265,\"monitor_id\":null,\"org_id\":321813,\"start\":1643512440,\"end\":null,\"canceled\":null,\"created\":1643512440,\"modified\":1643512440,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"27f58266-b23a-11ed-8c2a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1643512440\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1715997189,\"monitor_id\":null,\"org_id\":321813,\"start\":1643598527,\"end\":null,\"canceled\":null,\"created\":1643598527,\"modified\":1643598527,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"27fd48ac-b23a-11ed-8e83-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1643598527\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1716549277,\"monitor_id\":null,\"org_id\":321813,\"start\":1643621871,\"end\":null,\"canceled\":null,\"created\":1643621871,\"modified\":1643621871,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"28003b0c-b23a-11ed-8f61-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1643621871\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1717011251,\"monitor_id\":null,\"org_id\":321813,\"start\":1643639864,\"end\":null,\"canceled\":null,\"created\":1643639864,\"modified\":1643639864,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"28031264-b23a-11ed-9037-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1643639864\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1718301512,\"monitor_id\":null,\"org_id\":321813,\"start\":1643685322,\"end\":null,\"canceled\":null,\"created\":1643685322,\"modified\":1643685322,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"281063ba-b23a-11ed-93d1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1643685322\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1720691685,\"monitor_id\":null,\"org_id\":321813,\"start\":1643771604,\"end\":null,\"canceled\":null,\"created\":1643771604,\"modified\":1643771604,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2820dbf0-b23a-11ed-98db-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1643771603\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1723064406,\"monitor_id\":null,\"org_id\":321813,\"start\":1643857635,\"end\":null,\"canceled\":null,\"created\":1643857635,\"modified\":1643857635,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2833ceea-b23a-11ed-9eb2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1643857635\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1725487374,\"monitor_id\":null,\"org_id\":321813,\"start\":1643944563,\"end\":null,\"canceled\":null,\"created\":1643944563,\"modified\":1643944563,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"28447fd8-b23a-11ed-a437-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1643944563\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1726548530,\"monitor_id\":null,\"org_id\":321813,\"start\":1643986937,\"end\":null,\"canceled\":null,\"created\":1643986937,\"modified\":1643986937,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"284ae3a0-b23a-11ed-a65f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1643986937\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1727745044,\"monitor_id\":null,\"org_id\":321813,\"start\":1644030627,\"end\":null,\"canceled\":null,\"created\":1644030627,\"modified\":1644030627,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2850502e-b23a-11ed-a81a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1644030627\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1729521637,\"monitor_id\":null,\"org_id\":321813,\"start\":1644117362,\"end\":null,\"canceled\":null,\"created\":1644117362,\"modified\":1644117362,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"28556b68-b23a-11ed-a9b8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1644117362\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1731306399,\"monitor_id\":null,\"org_id\":321813,\"start\":1644203372,\"end\":null,\"canceled\":null,\"created\":1644203372,\"modified\":1644203372,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"285b54f6-b23a-11ed-ab93-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1644203372\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1733766531,\"monitor_id\":null,\"org_id\":321813,\"start\":1644290006,\"end\":null,\"canceled\":null,\"created\":1644290006,\"modified\":1644290006,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"286e38aa-b23a-11ed-b181-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1644290006\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1736378285,\"monitor_id\":null,\"org_id\":321813,\"start\":1644376521,\"end\":null,\"canceled\":null,\"created\":1644376521,\"modified\":1644376521,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"28802e48-b23a-11ed-b6cf-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1644376521\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1738838057,\"monitor_id\":null,\"org_id\":321813,\"start\":1644462477,\"end\":null,\"canceled\":null,\"created\":1644462477,\"modified\":1644462477,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2893a630-b23a-11ed-bc47-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1644462477\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1741269413,\"monitor_id\":null,\"org_id\":321813,\"start\":1644549455,\"end\":null,\"canceled\":null,\"created\":1644549455,\"modified\":1644549455,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"28a4a340-b23a-11ed-9fc0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1644549455\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1743536969,\"monitor_id\":null,\"org_id\":321813,\"start\":1644635922,\"end\":null,\"canceled\":null,\"created\":1644635922,\"modified\":1644635922,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"28b6d2ea-b23a-11ed-a60a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1644635922\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1745112857,\"monitor_id\":null,\"org_id\":321813,\"start\":1644721692,\"end\":null,\"canceled\":null,\"created\":1644721692,\"modified\":1644721692,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"28bcf08a-b23a-11ed-a813-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1644721692\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1746738563,\"monitor_id\":null,\"org_id\":321813,\"start\":1644808881,\"end\":null,\"canceled\":null,\"created\":1644808881,\"modified\":1644808881,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"28c33e7c-b23a-11ed-a9ec-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1644808880\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1749056659,\"monitor_id\":null,\"org_id\":321813,\"start\":1644894575,\"end\":null,\"canceled\":null,\"created\":1644894575,\"modified\":1644894575,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"28d5ec20-b23a-11ed-af25-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1644894575\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1751502909,\"monitor_id\":null,\"org_id\":321813,\"start\":1644981427,\"end\":null,\"canceled\":null,\"created\":1644981427,\"modified\":1644981427,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"28ecd6d8-b23a-11ed-b58d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1644981426\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1753923935,\"monitor_id\":null,\"org_id\":321813,\"start\":1645067951,\"end\":null,\"canceled\":null,\"created\":1645067951,\"modified\":1645067951,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"29004740-b23a-11ed-bad6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1645067951\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1756296396,\"monitor_id\":null,\"org_id\":321813,\"start\":1645154069,\"end\":null,\"canceled\":null,\"created\":1645154069,\"modified\":1645154069,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2914d052-b23a-11ed-9fd3-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1645154069\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1758537216,\"monitor_id\":null,\"org_id\":321813,\"start\":1645240135,\"end\":null,\"canceled\":null,\"created\":1645240135,\"modified\":1645240135,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"29278d1e-b23a-11ed-a6c1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1645240135\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1760164024,\"monitor_id\":null,\"org_id\":321813,\"start\":1645326472,\"end\":null,\"canceled\":null,\"created\":1645326472,\"modified\":1645326472,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"292fecf2-b23a-11ed-aa04-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1645326472\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1761781571,\"monitor_id\":null,\"org_id\":321813,\"start\":1645412860,\"end\":null,\"canceled\":null,\"created\":1645412860,\"modified\":1645412860,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"293c86ec-b23a-11ed-ae1f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1645412860\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1763791717,\"monitor_id\":null,\"org_id\":321813,\"start\":1645499242,\"end\":null,\"canceled\":null,\"created\":1645499242,\"modified\":1645499242,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"295eafec-b23a-11ed-b3e1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1645499241\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1766071128,\"monitor_id\":null,\"org_id\":321813,\"start\":1645585999,\"end\":null,\"canceled\":null,\"created\":1645585999,\"modified\":1645585999,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2977e750-b23a-11ed-b98d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1645585999\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1768417284,\"monitor_id\":null,\"org_id\":321813,\"start\":1645672633,\"end\":null,\"canceled\":null,\"created\":1645672633,\"modified\":1645672633,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"29892646-b23a-11ed-bdcc-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1645672633\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1770826743,\"monitor_id\":null,\"org_id\":321813,\"start\":1645758830,\"end\":null,\"canceled\":null,\"created\":1645758830,\"modified\":1645758830,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"299a9070-b23a-11ed-8ede-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1645758830\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1773084467,\"monitor_id\":null,\"org_id\":321813,\"start\":1645845241,\"end\":null,\"canceled\":null,\"created\":1645845241,\"modified\":1645845241,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"29b17dee-b23a-11ed-95be-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1645845241\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1774663724,\"monitor_id\":null,\"org_id\":321813,\"start\":1645932075,\"end\":null,\"canceled\":null,\"created\":1645932075,\"modified\":1645932075,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"29b6e040-b23a-11ed-975a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1645932074\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1776192639,\"monitor_id\":null,\"org_id\":321813,\"start\":1646017628,\"end\":null,\"canceled\":null,\"created\":1646017628,\"modified\":1646017628,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"29be3fd4-b23a-11ed-998a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1646017627\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1778389013,\"monitor_id\":null,\"org_id\":321813,\"start\":1646104673,\"end\":null,\"canceled\":null,\"created\":1646104673,\"modified\":1646104673,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"29cea3f6-b23a-11ed-9e5f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1646104673\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1780658435,\"monitor_id\":null,\"org_id\":321813,\"start\":1646190522,\"end\":null,\"canceled\":null,\"created\":1646190522,\"modified\":1646190522,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"29dc643c-b23a-11ed-a25e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1646190522\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1782994705,\"monitor_id\":null,\"org_id\":321813,\"start\":1646277088,\"end\":null,\"canceled\":null,\"created\":1646277088,\"modified\":1646277088,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"29f1fff4-b23a-11ed-a939-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1646277087\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1785296242,\"monitor_id\":null,\"org_id\":321813,\"start\":1646363375,\"end\":null,\"canceled\":null,\"created\":1646363375,\"modified\":1646363375,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2a022668-b23a-11ed-ae37-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1646363375\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1787522336,\"monitor_id\":null,\"org_id\":321813,\"start\":1646449788,\"end\":null,\"canceled\":null,\"created\":1646449788,\"modified\":1646449788,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2a10db68-b23a-11ed-b2bb-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1646449788\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1789147103,\"monitor_id\":null,\"org_id\":321813,\"start\":1646536084,\"end\":null,\"canceled\":null,\"created\":1646536084,\"modified\":1646536084,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2a177c3e-b23a-11ed-b4c6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1646536084\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1790773223,\"monitor_id\":null,\"org_id\":321813,\"start\":1646622875,\"end\":null,\"canceled\":null,\"created\":1646622875,\"modified\":1646622875,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2a1e5766-b23a-11ed-b6ee-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1646622874\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1793050032,\"monitor_id\":null,\"org_id\":321813,\"start\":1646709390,\"end\":null,\"canceled\":null,\"created\":1646709390,\"modified\":1646709390,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2a319af6-b23a-11ed-bce9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1646709390\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1794190145,\"monitor_id\":null,\"org_id\":321813,\"start\":1646753030,\"end\":null,\"canceled\":null,\"created\":1646753030,\"modified\":1646753030,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2a3aa1e6-b23a-11ed-bfc4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1646753030\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1795396373,\"monitor_id\":null,\"org_id\":321813,\"start\":1646795633,\"end\":null,\"canceled\":null,\"created\":1646795633,\"modified\":1646795633,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2a45c72e-b23a-11ed-b7b9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1646795632\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1797781020,\"monitor_id\":null,\"org_id\":321813,\"start\":1646881843,\"end\":null,\"canceled\":null,\"created\":1646881843,\"modified\":1646881843,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2a55b580-b23a-11ed-bd1b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1646881843\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1798442580,\"monitor_id\":null,\"org_id\":321813,\"start\":1646908081,\"end\":null,\"canceled\":null,\"created\":1646908081,\"modified\":1646908081,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2a5d4d86-b23a-11ed-bfaf-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1646908081\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1800175469,\"monitor_id\":null,\"org_id\":321813,\"start\":1646968550,\"end\":null,\"canceled\":null,\"created\":1646968550,\"modified\":1646968550,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2a7bb88e-b23a-11ed-a6e3-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1646968550\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1802387879,\"monitor_id\":null,\"org_id\":321813,\"start\":1647054678,\"end\":null,\"canceled\":null,\"created\":1647054678,\"modified\":1647054678,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2a91f162-b23a-11ed-ae3f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1647054678\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1804017517,\"monitor_id\":null,\"org_id\":321813,\"start\":1647140998,\"end\":null,\"canceled\":null,\"created\":1647140998,\"modified\":1647140998,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2a97c0f6-b23a-11ed-b039-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1647140998\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1805657409,\"monitor_id\":null,\"org_id\":321813,\"start\":1647227677,\"end\":null,\"canceled\":null,\"created\":1647227677,\"modified\":1647227677,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2a9d7cbc-b23a-11ed-b24e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1647227677\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1807970043,\"monitor_id\":null,\"org_id\":321813,\"start\":1647314104,\"end\":null,\"canceled\":null,\"created\":1647314104,\"modified\":1647314104,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2ab2af88-b23a-11ed-b9c1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1647314104\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1810345454,\"monitor_id\":null,\"org_id\":321813,\"start\":1647400236,\"end\":null,\"canceled\":null,\"created\":1647400236,\"modified\":1647400236,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2ac73d0e-b23a-11ed-b1bb-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1647400236\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1811718568,\"monitor_id\":null,\"org_id\":321813,\"start\":1647451031,\"end\":null,\"canceled\":null,\"created\":1647451031,\"modified\":1647451031,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2adb8a2a-b23a-11ed-b8f7-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1647451031\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":1811806028,\"monitor_id\":null,\"org_id\":321813,\"start\":1647453902,\"end\":null,\"canceled\":null,\"created\":1647453902,\"modified\":1647453902,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2adc1fa8-b23a-11ed-b927-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1647453901\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":1811903156,\"monitor_id\":null,\"org_id\":321813,\"start\":1647457119,\"end\":null,\"canceled\":null,\"created\":1647457119,\"modified\":1647457119,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2adcc67e-b23a-11ed-b967-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1647457119\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":1812761787,\"monitor_id\":null,\"org_id\":321813,\"start\":1647486857,\"end\":null,\"canceled\":null,\"created\":1647486857,\"modified\":1647486857,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2ae25634-b23a-11ed-bb79-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1647486857\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1815255560,\"monitor_id\":null,\"org_id\":321813,\"start\":1647573353,\"end\":null,\"canceled\":null,\"created\":1647573353,\"modified\":1647573353,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2af7cf1e-b23a-11ed-a2d9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1647573353\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1817847031,\"monitor_id\":null,\"org_id\":321813,\"start\":1647659700,\"end\":null,\"canceled\":null,\"created\":1647659700,\"modified\":1647659700,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2b0a5dc8-b23a-11ed-a9c1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1647659700\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1819547361,\"monitor_id\":null,\"org_id\":321813,\"start\":1647746077,\"end\":null,\"canceled\":null,\"created\":1647746077,\"modified\":1647746077,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2b142efc-b23a-11ed-ad67-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1647746077\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1821225168,\"monitor_id\":null,\"org_id\":321813,\"start\":1647832868,\"end\":null,\"canceled\":null,\"created\":1647832868,\"modified\":1647832868,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2b1dd7c2-b23a-11ed-b137-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1647832868\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1823541491,\"monitor_id\":null,\"org_id\":321813,\"start\":1647918899,\"end\":null,\"canceled\":null,\"created\":1647918899,\"modified\":1647918899,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2b2edce8-b23a-11ed-b73c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1647918899\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1826018056,\"monitor_id\":null,\"org_id\":321813,\"start\":1648005425,\"end\":null,\"canceled\":null,\"created\":1648005425,\"modified\":1648005425,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2b54064e-b23a-11ed-9ab6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1648005425\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1828488795,\"monitor_id\":null,\"org_id\":321813,\"start\":1648092065,\"end\":null,\"canceled\":null,\"created\":1648092065,\"modified\":1648092065,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2b6d0d9c-b23a-11ed-a3f3-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1648092065\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1830950805,\"monitor_id\":null,\"org_id\":321813,\"start\":1648177836,\"end\":null,\"canceled\":null,\"created\":1648177836,\"modified\":1648177836,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2b8792d4-b23a-11ed-acfc-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1648177836\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1833326968,\"monitor_id\":null,\"org_id\":321813,\"start\":1648264326,\"end\":null,\"canceled\":null,\"created\":1648264326,\"modified\":1648264326,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2b99071c-b23a-11ed-b360-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1648264326\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1835027464,\"monitor_id\":null,\"org_id\":321813,\"start\":1648351630,\"end\":null,\"canceled\":null,\"created\":1648351630,\"modified\":1648351630,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2b9db050-b23a-11ed-b529-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1648351630\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1836725870,\"monitor_id\":null,\"org_id\":321813,\"start\":1648438576,\"end\":null,\"canceled\":null,\"created\":1648438576,\"modified\":1648438576,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2ba267da-b23a-11ed-b6e9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1648438576\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1839144600,\"monitor_id\":null,\"org_id\":321813,\"start\":1648523975,\"end\":null,\"canceled\":null,\"created\":1648523975,\"modified\":1648523975,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2bbaec56-b23a-11ed-badf-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1648523975\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1841904928,\"monitor_id\":null,\"org_id\":321813,\"start\":1648610323,\"end\":null,\"canceled\":null,\"created\":1648610323,\"modified\":1648610323,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2bdae48e-b23a-11ed-883f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1648610323\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1844782983,\"monitor_id\":null,\"org_id\":321813,\"start\":1648696593,\"end\":null,\"canceled\":null,\"created\":1648696593,\"modified\":1648696593,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2becfda4-b23a-11ed-8efd-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1648696593\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1847404717,\"monitor_id\":null,\"org_id\":321813,\"start\":1648784218,\"end\":null,\"canceled\":null,\"created\":1648784218,\"modified\":1648784218,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2c074efc-b23a-11ed-990d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1648784218\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1849816602,\"monitor_id\":null,\"org_id\":321813,\"start\":1648869851,\"end\":null,\"canceled\":null,\"created\":1648869851,\"modified\":1648869851,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2c1f4908-b23a-11ed-a243-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1648869851\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1851645100,\"monitor_id\":null,\"org_id\":321813,\"start\":1648955757,\"end\":null,\"canceled\":null,\"created\":1648955757,\"modified\":1648955757,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2c23d02c-b23a-11ed-a406-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1648955757\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1853502539,\"monitor_id\":null,\"org_id\":321813,\"start\":1649042537,\"end\":null,\"canceled\":null,\"created\":1649042537,\"modified\":1649042537,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2c294fb6-b23a-11ed-a610-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649042537\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1856000213,\"monitor_id\":null,\"org_id\":321813,\"start\":1649129055,\"end\":null,\"canceled\":null,\"created\":1649129055,\"modified\":1649129055,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2c41a304-b23a-11ed-af07-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649129055\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1858572715,\"monitor_id\":null,\"org_id\":321813,\"start\":1649215547,\"end\":null,\"canceled\":null,\"created\":1649215547,\"modified\":1649215547,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2c5f728a-b23a-11ed-b9d2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649215547\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1861169007,\"monitor_id\":null,\"org_id\":321813,\"start\":1649302917,\"end\":null,\"canceled\":null,\"created\":1649302917,\"modified\":1649302917,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2c825cbe-b23a-11ed-9814-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649302917\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1863692277,\"monitor_id\":null,\"org_id\":321813,\"start\":1649388097,\"end\":null,\"canceled\":null,\"created\":1649388097,\"modified\":1649388097,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2c9342f4-b23a-11ed-9e7a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649388097\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1866148286,\"monitor_id\":null,\"org_id\":321813,\"start\":1649474015,\"end\":null,\"canceled\":null,\"created\":1649474015,\"modified\":1649474015,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2c9f5ed6-b23a-11ed-a33a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649474015\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1867958278,\"monitor_id\":null,\"org_id\":321813,\"start\":1649561140,\"end\":null,\"canceled\":null,\"created\":1649561140,\"modified\":1649561140,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2ca3a608-b23a-11ed-a4c2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649561140\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1869810857,\"monitor_id\":null,\"org_id\":321813,\"start\":1649647541,\"end\":null,\"canceled\":null,\"created\":1649647541,\"modified\":1649647541,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2caae512-b23a-11ed-a759-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649647541\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1872399707,\"monitor_id\":null,\"org_id\":321813,\"start\":1649734394,\"end\":null,\"canceled\":null,\"created\":1649734394,\"modified\":1649734394,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2ccad05c-b23a-11ed-b300-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649734394\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1873057087,\"monitor_id\":null,\"org_id\":321813,\"start\":1649757287,\"end\":null,\"canceled\":null,\"created\":1649757287,\"modified\":1649757287,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2cd40582-b23a-11ed-b68d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649757287\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1873627858,\"monitor_id\":null,\"org_id\":321813,\"start\":1649774235,\"end\":null,\"canceled\":null,\"created\":1649774235,\"modified\":1649774235,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2cdae28a-b23a-11ed-b92f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649774235\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1875165373,\"monitor_id\":null,\"org_id\":321813,\"start\":1649820147,\"end\":null,\"canceled\":null,\"created\":1649820147,\"modified\":1649820147,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2cf47fba-b23a-11ed-a032-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649820147\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1876852632,\"monitor_id\":null,\"org_id\":321813,\"start\":1649874368,\"end\":null,\"canceled\":null,\"created\":1649874368,\"modified\":1649874368,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d026a62-b23a-11ed-a526-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649874368\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1877911839,\"monitor_id\":null,\"org_id\":321813,\"start\":1649907229,\"end\":null,\"canceled\":null,\"created\":1649907229,\"modified\":1649907229,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d0806e8-b23a-11ed-a72c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649907229\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1878944141,\"monitor_id\":null,\"org_id\":321813,\"start\":1649943428,\"end\":null,\"canceled\":null,\"created\":1649943428,\"modified\":1649943428,\"message\":\"tf-TestAccDatadogDowntime_DiffStart-local-1649943427\",\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d0fd01c-b23a-11ed-aa19-da7ad0900002\",\"scope\":[\"somescope\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1878953883,\"monitor_id\":null,\"org_id\":321813,\"start\":1649943744,\"end\":null,\"canceled\":null,\"created\":1649943744,\"modified\":1649943744,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d0ff538-b23a-11ed-aa25-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649943743\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1878953886,\"monitor_id\":null,\"org_id\":321813,\"start\":1649943744,\"end\":null,\"canceled\":null,\"created\":1649943744,\"modified\":1649943744,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d0ffc2c-b23a-11ed-aa26-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649943743\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1878953952,\"monitor_id\":null,\"org_id\":321813,\"start\":1649943746,\"end\":null,\"canceled\":null,\"created\":1649943746,\"modified\":1649943746,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d100014-b23a-11ed-aa28-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649943746\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1879387022,\"monitor_id\":null,\"org_id\":321813,\"start\":1649956645,\"end\":null,\"canceled\":null,\"created\":1649956645,\"modified\":1649956645,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d12adf0-b23a-11ed-ab15-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649956645\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1880547169,\"monitor_id\":null,\"org_id\":321813,\"start\":1649993712,\"end\":null,\"canceled\":null,\"created\":1649993712,\"modified\":1649993712,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d1916b8-b23a-11ed-ad80-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1649993711\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1882920998,\"monitor_id\":null,\"org_id\":321813,\"start\":1650079507,\"end\":null,\"canceled\":null,\"created\":1650079507,\"modified\":1650079507,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d2273d4-b23a-11ed-b0dd-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650079507\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1884841351,\"monitor_id\":null,\"org_id\":321813,\"start\":1650165507,\"end\":null,\"canceled\":null,\"created\":1650165507,\"modified\":1650165507,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d2ceaf8-b23a-11ed-b2e5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650165507\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1886732782,\"monitor_id\":null,\"org_id\":321813,\"start\":1650253028,\"end\":null,\"canceled\":null,\"created\":1650253028,\"modified\":1650253028,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d3512f0-b23a-11ed-b4c3-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650253028\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1888164232,\"monitor_id\":null,\"org_id\":321813,\"start\":1650306909,\"end\":null,\"canceled\":null,\"created\":1650306909,\"modified\":1650306909,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d447dc6-b23a-11ed-b89c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650306909\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1888194637,\"monitor_id\":null,\"org_id\":321813,\"start\":1650307986,\"end\":null,\"canceled\":null,\"created\":1650307986,\"modified\":1650307986,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d44d7b2-b23a-11ed-b8b7-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650307986\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1889160023,\"monitor_id\":null,\"org_id\":321813,\"start\":1650339374,\"end\":null,\"canceled\":null,\"created\":1650339375,\"modified\":1650339375,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d527c14-b23a-11ed-ba1d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650339374\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1890441165,\"monitor_id\":null,\"org_id\":321813,\"start\":1650382329,\"end\":null,\"canceled\":null,\"created\":1650382329,\"modified\":1650382329,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d6bbf26-b23a-11ed-bf5c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650382329\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1890673629,\"monitor_id\":null,\"org_id\":321813,\"start\":1650388715,\"end\":null,\"canceled\":null,\"created\":1650388715,\"modified\":1650388715,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d708c40-b23a-11ed-aa37-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650388714\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1890840822,\"monitor_id\":null,\"org_id\":321813,\"start\":1650393407,\"end\":null,\"canceled\":null,\"created\":1650393407,\"modified\":1650393407,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d7b5580-b23a-11ed-adb9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650393407\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":1891905689,\"monitor_id\":null,\"org_id\":321813,\"start\":1650426526,\"end\":null,\"canceled\":null,\"created\":1650426526,\"modified\":1650426526,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d853a1e-b23a-11ed-b0f0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650426525\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1894556061,\"monitor_id\":null,\"org_id\":321813,\"start\":1650512147,\"end\":null,\"canceled\":null,\"created\":1650512147,\"modified\":1650512147,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2db54b82-b23a-11ed-86e9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650512147\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1897275489,\"monitor_id\":null,\"org_id\":321813,\"start\":1650599140,\"end\":null,\"canceled\":null,\"created\":1650599140,\"modified\":1650599140,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2dcfe154-b23a-11ed-9003-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650599140\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1899755254,\"monitor_id\":null,\"org_id\":321813,\"start\":1650684524,\"end\":null,\"canceled\":null,\"created\":1650684524,\"modified\":1650684524,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2ddfa5f8-b23a-11ed-958f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650684524\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1901561064,\"monitor_id\":null,\"org_id\":321813,\"start\":1650770749,\"end\":null,\"canceled\":null,\"created\":1650770750,\"modified\":1650770750,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2de56a1a-b23a-11ed-97a9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650770749\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1903377730,\"monitor_id\":null,\"org_id\":321813,\"start\":1650857221,\"end\":null,\"canceled\":null,\"created\":1650857221,\"modified\":1650857221,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2deccd32-b23a-11ed-9a5d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650857221\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1905926570,\"monitor_id\":null,\"org_id\":321813,\"start\":1650944020,\"end\":null,\"canceled\":null,\"created\":1650944020,\"modified\":1650944020,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2e078adc-b23a-11ed-a3d2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1650944020\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1908631871,\"monitor_id\":null,\"org_id\":321813,\"start\":1651031119,\"end\":null,\"canceled\":null,\"created\":1651031119,\"modified\":1651031119,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2e335658-b23a-11ed-b395-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1651031119\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1911348786,\"monitor_id\":null,\"org_id\":321813,\"start\":1651118158,\"end\":null,\"canceled\":null,\"created\":1651118158,\"modified\":1651118158,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2e5b18b4-b23a-11ed-9c82-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1651118158\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1914020798,\"monitor_id\":null,\"org_id\":321813,\"start\":1651203865,\"end\":null,\"canceled\":null,\"created\":1651203866,\"modified\":1651203866,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2e7eedca-b23a-11ed-a960-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1651203865\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1916537527,\"monitor_id\":null,\"org_id\":321813,\"start\":1651289341,\"end\":null,\"canceled\":null,\"created\":1651289341,\"modified\":1651289341,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2e8e3866-b23a-11ed-ae8c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1651289341\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1918496216,\"monitor_id\":null,\"org_id\":321813,\"start\":1651376282,\"end\":null,\"canceled\":null,\"created\":1651376282,\"modified\":1651376282,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2e939e82-b23a-11ed-b05e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1651376282\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1920583932,\"monitor_id\":null,\"org_id\":321813,\"start\":1651463712,\"end\":null,\"canceled\":null,\"created\":1651463712,\"modified\":1651463712,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2e99f37c-b23a-11ed-b27a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1651463712\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1923248573,\"monitor_id\":null,\"org_id\":321813,\"start\":1651549366,\"end\":null,\"canceled\":null,\"created\":1651549366,\"modified\":1651549366,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2eacf954-b23a-11ed-b93d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1651549366\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1925932099,\"monitor_id\":null,\"org_id\":321813,\"start\":1651635993,\"end\":null,\"canceled\":null,\"created\":1651635993,\"modified\":1651635993,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2eeb5ae6-b23a-11ed-ba74-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1651635993\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1928451926,\"monitor_id\":null,\"org_id\":321813,\"start\":1651721713,\"end\":null,\"canceled\":null,\"created\":1651721713,\"modified\":1651721713,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2f17e048-b23a-11ed-adb6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1651721713\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1930803301,\"monitor_id\":null,\"org_id\":321813,\"start\":1651807515,\"end\":null,\"canceled\":null,\"created\":1651807515,\"modified\":1651807515,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2f61e03a-b23a-11ed-a4ce-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1651807514\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1933032032,\"monitor_id\":null,\"org_id\":321813,\"start\":1651894175,\"end\":null,\"canceled\":null,\"created\":1651894176,\"modified\":1651894176,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2f71e8a4-b23a-11ed-aa51-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1651894175\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1934702265,\"monitor_id\":null,\"org_id\":321813,\"start\":1651980865,\"end\":null,\"canceled\":null,\"created\":1651980865,\"modified\":1651980865,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2f764e94-b23a-11ed-abe6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1651980865\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1936346370,\"monitor_id\":null,\"org_id\":321813,\"start\":1652067190,\"end\":null,\"canceled\":null,\"created\":1652067190,\"modified\":1652067190,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2f7c62fc-b23a-11ed-ae0d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1652067190\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1938625794,\"monitor_id\":null,\"org_id\":321813,\"start\":1652153029,\"end\":null,\"canceled\":null,\"created\":1652153029,\"modified\":1652153029,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2f97e7d4-b23a-11ed-b803-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1652153029\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1941102520,\"monitor_id\":null,\"org_id\":321813,\"start\":1652239954,\"end\":null,\"canceled\":null,\"created\":1652239954,\"modified\":1652239954,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2fce30a0-b23a-11ed-95c5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1652239954\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1943556517,\"monitor_id\":null,\"org_id\":321813,\"start\":1652326042,\"end\":null,\"canceled\":null,\"created\":1652326042,\"modified\":1652326042,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2fe486c0-b23a-11ed-9d98-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1652326042\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1946061531,\"monitor_id\":null,\"org_id\":321813,\"start\":1652413936,\"end\":null,\"canceled\":null,\"created\":1652413936,\"modified\":1652413936,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2ffdc2ac-b23a-11ed-a692-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1652413936\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1948398117,\"monitor_id\":null,\"org_id\":321813,\"start\":1652500712,\"end\":null,\"canceled\":null,\"created\":1652500712,\"modified\":1652500712,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"300adbfe-b23a-11ed-aaf0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1652500712\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1950048204,\"monitor_id\":null,\"org_id\":321813,\"start\":1652585208,\"end\":null,\"canceled\":null,\"created\":1652585208,\"modified\":1652585208,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"300f9090-b23a-11ed-ac68-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1652585208\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1951739249,\"monitor_id\":null,\"org_id\":321813,\"start\":1652671421,\"end\":null,\"canceled\":null,\"created\":1652671421,\"modified\":1652671421,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30157c6c-b23a-11ed-ae89-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1652671420\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1954128026,\"monitor_id\":null,\"org_id\":321813,\"start\":1652758527,\"end\":null,\"canceled\":null,\"created\":1652758527,\"modified\":1652758527,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"302ff4ca-b23a-11ed-b719-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1652758527\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1956618919,\"monitor_id\":null,\"org_id\":321813,\"start\":1652844725,\"end\":null,\"canceled\":null,\"created\":1652844725,\"modified\":1652844725,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"305521fa-b23a-11ed-8b20-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1652844724\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1959130623,\"monitor_id\":null,\"org_id\":321813,\"start\":1652932019,\"end\":null,\"canceled\":null,\"created\":1652932019,\"modified\":1652932019,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30719ea2-b23a-11ed-92c9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1652932019\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1961599126,\"monitor_id\":null,\"org_id\":321813,\"start\":1653018103,\"end\":null,\"canceled\":null,\"created\":1653018103,\"modified\":1653018103,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3087734e-b23a-11ed-991f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1653018103\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1964066213,\"monitor_id\":null,\"org_id\":321813,\"start\":1653103350,\"end\":null,\"canceled\":null,\"created\":1653103350,\"modified\":1653103350,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30be748e-b23a-11ed-abeb-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1653103349\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1965809561,\"monitor_id\":null,\"org_id\":321813,\"start\":1653177887,\"end\":null,\"canceled\":null,\"created\":1653177887,\"modified\":1653177887,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30c32326-b23a-11ed-ad9a-da7ad0900002\",\"scope\":[\"host:Test-Go-TestHostsMuteErrors-1653177887\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1965809564,\"monitor_id\":null,\"org_id\":321813,\"start\":1653177887,\"end\":null,\"canceled\":null,\"created\":1653177887,\"modified\":1653177887,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30c32862-b23a-11ed-ad9b-da7ad0900002\",\"scope\":[\"host:Test-Go-TestHostsMuteErrors-1653177887\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1965848046,\"monitor_id\":null,\"org_id\":321813,\"start\":1653179647,\"end\":null,\"canceled\":null,\"created\":1653179647,\"modified\":1653179647,\"message\":\"tf-TestAccDatadogDowntime_DiffStart-local-1653179644\",\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30c356a2-b23a-11ed-adac-da7ad0900002\",\"scope\":[\"somescope\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1966046698,\"monitor_id\":null,\"org_id\":321813,\"start\":1653190004,\"end\":null,\"canceled\":null,\"created\":1653190004,\"modified\":1653190004,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30c43388-b23a-11ed-ae04-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1653190004\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1967961798,\"monitor_id\":null,\"org_id\":321813,\"start\":1653276835,\"end\":null,\"canceled\":null,\"created\":1653276835,\"modified\":1653276835,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30caf204-b23a-11ed-b05b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1653276834\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1970330006,\"monitor_id\":null,\"org_id\":321813,\"start\":1653363786,\"end\":null,\"canceled\":null,\"created\":1653363786,\"modified\":1653363786,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30dedc1a-b23a-11ed-b727-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1653363786\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1972834786,\"monitor_id\":null,\"org_id\":321813,\"start\":1653450075,\"end\":null,\"canceled\":null,\"created\":1653450075,\"modified\":1653450075,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"311c180a-b23a-11ed-9771-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1653450075\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1975356907,\"monitor_id\":null,\"org_id\":321813,\"start\":1653536216,\"end\":null,\"canceled\":null,\"created\":1653536216,\"modified\":1653536216,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"315569e8-b23a-11ed-a67b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1653536216\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1977773761,\"monitor_id\":null,\"org_id\":321813,\"start\":1653622489,\"end\":null,\"canceled\":null,\"created\":1653622489,\"modified\":1653622489,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"316c2f16-b23a-11ed-ad2f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1653622489\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1980010861,\"monitor_id\":null,\"org_id\":321813,\"start\":1653708972,\"end\":null,\"canceled\":null,\"created\":1653708972,\"modified\":1653708972,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3181e3d8-b23a-11ed-b3a7-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1653708972\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1981706299,\"monitor_id\":null,\"org_id\":321813,\"start\":1653795235,\"end\":null,\"canceled\":null,\"created\":1653795235,\"modified\":1653795235,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"318b8122-b23a-11ed-b6d6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1653795235\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1983400557,\"monitor_id\":null,\"org_id\":321813,\"start\":1653882321,\"end\":null,\"canceled\":null,\"created\":1653882321,\"modified\":1653882321,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"319436b4-b23a-11ed-b997-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1653882321\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1985427216,\"monitor_id\":null,\"org_id\":321813,\"start\":1653968019,\"end\":null,\"canceled\":null,\"created\":1653968019,\"modified\":1653968019,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"31a9b142-b23a-11ed-b90d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1653968019\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1987876700,\"monitor_id\":null,\"org_id\":321813,\"start\":1654055613,\"end\":null,\"canceled\":null,\"created\":1654055613,\"modified\":1654055613,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"31c18308-b23a-11ed-bd47-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1654055612\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1990388312,\"monitor_id\":null,\"org_id\":321813,\"start\":1654141799,\"end\":null,\"canceled\":null,\"created\":1654141799,\"modified\":1654141799,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"31d5a2f2-b23a-11ed-9176-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1654141799\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1992880517,\"monitor_id\":null,\"org_id\":321813,\"start\":1654226878,\"end\":null,\"canceled\":null,\"created\":1654226878,\"modified\":1654226878,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"32044c42-b23a-11ed-a1d2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1654226878\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1995175305,\"monitor_id\":null,\"org_id\":321813,\"start\":1654313642,\"end\":null,\"canceled\":null,\"created\":1654313642,\"modified\":1654313642,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"32199930-b23a-11ed-a93d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1654313642\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1996852382,\"monitor_id\":null,\"org_id\":321813,\"start\":1654399406,\"end\":null,\"canceled\":null,\"created\":1654399406,\"modified\":1654399406,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"321e705e-b23a-11ed-aae5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1654399406\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1998552066,\"monitor_id\":null,\"org_id\":321813,\"start\":1654486786,\"end\":null,\"canceled\":null,\"created\":1654486786,\"modified\":1654486786,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3223face-b23a-11ed-acc4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1654486786\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2000940330,\"monitor_id\":null,\"org_id\":321813,\"start\":1654572773,\"end\":null,\"canceled\":null,\"created\":1654572773,\"modified\":1654572773,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3237955c-b23a-11ed-b30b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1654572773\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2003530666,\"monitor_id\":null,\"org_id\":321813,\"start\":1654659885,\"end\":null,\"canceled\":null,\"created\":1654659885,\"modified\":1654659885,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3290260e-b23a-11ed-bb4a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1654659885\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2006085000,\"monitor_id\":null,\"org_id\":321813,\"start\":1654746282,\"end\":null,\"canceled\":null,\"created\":1654746282,\"modified\":1654746282,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"33110a4e-b23a-11ed-b379-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1654746282\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2008561555,\"monitor_id\":null,\"org_id\":321813,\"start\":1654831920,\"end\":null,\"canceled\":null,\"created\":1654831920,\"modified\":1654831920,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"33519762-b23a-11ed-bb45-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1654831920\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2010956552,\"monitor_id\":null,\"org_id\":321813,\"start\":1654918830,\"end\":null,\"canceled\":null,\"created\":1654918830,\"modified\":1654918830,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"33c25c72-b23a-11ed-ac93-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1654918830\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2012669779,\"monitor_id\":null,\"org_id\":321813,\"start\":1655005529,\"end\":null,\"canceled\":null,\"created\":1655005529,\"modified\":1655005529,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"33cb6718-b23a-11ed-ae39-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655005529\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2014370670,\"monitor_id\":null,\"org_id\":321813,\"start\":1655091412,\"end\":null,\"canceled\":null,\"created\":1655091412,\"modified\":1655091412,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"33dc959c-b23a-11ed-b11a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655091411\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2016851947,\"monitor_id\":null,\"org_id\":321813,\"start\":1655179062,\"end\":null,\"canceled\":null,\"created\":1655179062,\"modified\":1655179062,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3435aae2-b23a-11ed-bf9c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655179062\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2019442476,\"monitor_id\":null,\"org_id\":321813,\"start\":1655265024,\"end\":null,\"canceled\":null,\"created\":1655265024,\"modified\":1655265024,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"348a09ac-b23a-11ed-b460-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655265024\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2022007927,\"monitor_id\":null,\"org_id\":321813,\"start\":1655351140,\"end\":null,\"canceled\":null,\"created\":1655351140,\"modified\":1655351140,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"34cfbf9c-b23a-11ed-8b14-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655351140\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2024518312,\"monitor_id\":null,\"org_id\":321813,\"start\":1655437386,\"end\":null,\"canceled\":null,\"created\":1655437386,\"modified\":1655437386,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"34f7f1ce-b23a-11ed-910e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655437386\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2026846369,\"monitor_id\":null,\"org_id\":321813,\"start\":1655523096,\"end\":null,\"canceled\":null,\"created\":1655523096,\"modified\":1655523096,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"351c9aec-b23a-11ed-9678-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655523096\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2028607521,\"monitor_id\":null,\"org_id\":321813,\"start\":1655610345,\"end\":null,\"canceled\":null,\"created\":1655610345,\"modified\":1655610345,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3525e9c6-b23a-11ed-97ff-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655610344\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2030369415,\"monitor_id\":null,\"org_id\":321813,\"start\":1655696430,\"end\":null,\"canceled\":null,\"created\":1655696430,\"modified\":1655696430,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"353135d8-b23a-11ed-9a02-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655696430\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2032609325,\"monitor_id\":null,\"org_id\":321813,\"start\":1655783534,\"end\":null,\"canceled\":null,\"created\":1655783534,\"modified\":1655783534,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3555ae5e-b23a-11ed-a073-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655783534\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2033422930,\"monitor_id\":null,\"org_id\":321813,\"start\":1655813940,\"end\":null,\"canceled\":null,\"created\":1655813940,\"modified\":1655813940,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3567f956-b23a-11ed-a39d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655813939\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2033525207,\"monitor_id\":null,\"org_id\":321813,\"start\":1655817083,\"end\":null,\"canceled\":null,\"created\":1655817083,\"modified\":1655817083,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3568bb66-b23a-11ed-a3be-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655817083\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2035099862,\"monitor_id\":null,\"org_id\":321813,\"start\":1655869855,\"end\":null,\"canceled\":null,\"created\":1655869855,\"modified\":1655869855,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"357f33fa-b23a-11ed-a793-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655869855\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2035717606,\"monitor_id\":null,\"org_id\":321813,\"start\":1655893119,\"end\":null,\"canceled\":null,\"created\":1655893119,\"modified\":1655893119,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"358994da-b23a-11ed-a972-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655893119\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2036107945,\"monitor_id\":null,\"org_id\":321813,\"start\":1655905625,\"end\":null,\"canceled\":null,\"created\":1655905625,\"modified\":1655905625,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"358e65f0-b23a-11ed-aa3f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655905625\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2037613610,\"monitor_id\":null,\"org_id\":321813,\"start\":1655955340,\"end\":null,\"canceled\":null,\"created\":1655955340,\"modified\":1655955340,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"35af98ba-b23a-11ed-b09c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1655955339\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2040183241,\"monitor_id\":null,\"org_id\":321813,\"start\":1656042299,\"end\":null,\"canceled\":null,\"created\":1656042299,\"modified\":1656042299,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"35f5402c-b23a-11ed-bd67-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1656042299\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2042531074,\"monitor_id\":null,\"org_id\":321813,\"start\":1656128094,\"end\":null,\"canceled\":null,\"created\":1656128094,\"modified\":1656128094,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"36214cb2-b23a-11ed-bf4c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1656128094\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2044271223,\"monitor_id\":null,\"org_id\":321813,\"start\":1656215137,\"end\":null,\"canceled\":null,\"created\":1656215137,\"modified\":1656215137,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"362e6e10-b23a-11ed-b77f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1656215137\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2046002092,\"monitor_id\":null,\"org_id\":321813,\"start\":1656301418,\"end\":null,\"canceled\":null,\"created\":1656301418,\"modified\":1656301418,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3649b53a-b23a-11ed-babf-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1656301418\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2048492487,\"monitor_id\":null,\"org_id\":321813,\"start\":1656388167,\"end\":null,\"canceled\":null,\"created\":1656388167,\"modified\":1656388167,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"36847602-b23a-11ed-932b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1656388166\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2051041841,\"monitor_id\":null,\"org_id\":321813,\"start\":1656474047,\"end\":null,\"canceled\":null,\"created\":1656474047,\"modified\":1656474047,\"message\":\"java-cancelDowntimesByScopeTest-local-1656474047-3\",\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"36d42b02-b23a-11ed-a0bf-da7ad0900002\",\"scope\":[\"env:stage\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2051041857,\"monitor_id\":null,\"org_id\":321813,\"start\":1656474048,\"end\":null,\"canceled\":null,\"created\":1656474048,\"modified\":1656474048,\"message\":\"java-cancelDowntimesByScopeTest-local-1656474047-3\",\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"36d42e4a-b23a-11ed-a0c0-da7ad0900002\",\"scope\":[\"env:stage\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2051042331,\"monitor_id\":null,\"org_id\":321813,\"start\":1656474062,\"end\":null,\"canceled\":null,\"created\":1656474062,\"modified\":1656474062,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"36d430ca-b23a-11ed-a0c1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1656474062\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2053609024,\"monitor_id\":null,\"org_id\":321813,\"start\":1656561024,\"end\":null,\"canceled\":null,\"created\":1656561024,\"modified\":1656561024,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"37159f1a-b23a-11ed-aac5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1656561023\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2056141373,\"monitor_id\":null,\"org_id\":321813,\"start\":1656647304,\"end\":null,\"canceled\":null,\"created\":1656647304,\"modified\":1656647304,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"37609fd8-b23a-11ed-ba31-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1656647303\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2058136091,\"monitor_id\":null,\"org_id\":321813,\"start\":1656720395,\"end\":null,\"canceled\":null,\"created\":1656720395,\"modified\":1656720395,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"37792ddc-b23a-11ed-bebc-da7ad0900002\",\"scope\":[\"host:Test-Go-TestHostsMuteErrors-1656720395\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2058449850,\"monitor_id\":null,\"org_id\":321813,\"start\":1656733648,\"end\":null,\"canceled\":null,\"created\":1656733648,\"modified\":1656733648,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"377a8dda-b23a-11ed-befe-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1656733648\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2060162875,\"monitor_id\":null,\"org_id\":321813,\"start\":1656819921,\"end\":null,\"canceled\":null,\"created\":1656819921,\"modified\":1656819921,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3789577a-b23a-11ed-a373-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1656819920\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2061908156,\"monitor_id\":null,\"org_id\":321813,\"start\":1656906587,\"end\":null,\"canceled\":null,\"created\":1656906587,\"modified\":1656906587,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3794b16a-b23a-11ed-a58a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1656906587\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2062205101,\"monitor_id\":null,\"org_id\":321813,\"start\":1656919616,\"end\":null,\"canceled\":null,\"created\":1656919616,\"modified\":1656919616,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"379bc3ec-b23a-11ed-a6d3-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1656919616\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2063965397,\"monitor_id\":null,\"org_id\":321813,\"start\":1656992412,\"end\":null,\"canceled\":null,\"created\":1656992412,\"modified\":1656992412,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"37be1cf8-b23a-11ed-abbc-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1656992412\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2066405139,\"monitor_id\":null,\"org_id\":321813,\"start\":1657078916,\"end\":null,\"canceled\":null,\"created\":1657078916,\"modified\":1657078916,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"37e3f554-b23a-11ed-b306-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1657078916\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2069019270,\"monitor_id\":null,\"org_id\":321813,\"start\":1657166232,\"end\":null,\"canceled\":null,\"created\":1657166232,\"modified\":1657166232,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"38345df0-b23a-11ed-861e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1657166232\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2070082830,\"monitor_id\":null,\"org_id\":321813,\"start\":1657203632,\"end\":null,\"canceled\":null,\"created\":1657203632,\"modified\":1657203632,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"38442f46-b23a-11ed-89e1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1657203632\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2070223920,\"monitor_id\":null,\"org_id\":321813,\"start\":1657207853,\"end\":null,\"canceled\":null,\"created\":1657207853,\"modified\":1657207853,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"38461a36-b23a-11ed-8a4d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1657207853\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2071586909,\"monitor_id\":null,\"org_id\":321813,\"start\":1657251392,\"end\":null,\"canceled\":null,\"created\":1657251392,\"modified\":1657251392,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"38aee066-b23a-11ed-a656-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1657251392\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2074010742,\"monitor_id\":null,\"org_id\":321813,\"start\":1657337345,\"end\":null,\"canceled\":null,\"created\":1657337345,\"modified\":1657337345,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"38c59658-b23a-11ed-ac10-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1657337345\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2075848375,\"monitor_id\":null,\"org_id\":321813,\"start\":1657424190,\"end\":null,\"canceled\":null,\"created\":1657424190,\"modified\":1657424190,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"38cd8bec-b23a-11ed-ae0f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1657424190\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2077644444,\"monitor_id\":null,\"org_id\":321813,\"start\":1657510562,\"end\":null,\"canceled\":null,\"created\":1657510562,\"modified\":1657510562,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"38d72d3c-b23a-11ed-b090-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1657510561\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2080110938,\"monitor_id\":null,\"org_id\":321813,\"start\":1657597739,\"end\":null,\"canceled\":null,\"created\":1657597739,\"modified\":1657597739,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"38f7c920-b23a-11ed-b877-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1657597739\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2082694266,\"monitor_id\":null,\"org_id\":321813,\"start\":1657684013,\"end\":null,\"canceled\":null,\"created\":1657684013,\"modified\":1657684013,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3928f0a4-b23a-11ed-a3fe-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1657684013\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2085275388,\"monitor_id\":null,\"org_id\":321813,\"start\":1657770108,\"end\":null,\"canceled\":null,\"created\":1657770108,\"modified\":1657770108,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3965bd22-b23a-11ed-b0b0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1657770108\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2087886766,\"monitor_id\":null,\"org_id\":321813,\"start\":1657857344,\"end\":null,\"canceled\":null,\"created\":1657857344,\"modified\":1657857344,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3987b0b2-b23a-11ed-b97d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1657857344\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2090307199,\"monitor_id\":null,\"org_id\":321813,\"start\":1657942946,\"end\":null,\"canceled\":null,\"created\":1657942946,\"modified\":1657942946,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"39aba36e-b23a-11ed-9e9c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1657942946\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2092070892,\"monitor_id\":null,\"org_id\":321813,\"start\":1658029015,\"end\":null,\"canceled\":null,\"created\":1658029015,\"modified\":1658029015,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"39c02aa0-b23a-11ed-a43f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1658029015\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2093891415,\"monitor_id\":null,\"org_id\":321813,\"start\":1658115646,\"end\":null,\"canceled\":null,\"created\":1658115646,\"modified\":1658115646,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"39d6044c-b23a-11ed-aa06-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1658115646\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2096477439,\"monitor_id\":null,\"org_id\":321813,\"start\":1658202682,\"end\":null,\"canceled\":null,\"created\":1658202682,\"modified\":1658202682,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3a006a2a-b23a-11ed-b49a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1658202682\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2098089652,\"monitor_id\":null,\"org_id\":321813,\"start\":1658254921,\"end\":null,\"canceled\":null,\"created\":1658254921,\"modified\":1658254921,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3a186c7e-b23a-11ed-badc-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1658254921\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2099162945,\"monitor_id\":null,\"org_id\":321813,\"start\":1658288209,\"end\":null,\"canceled\":null,\"created\":1658288209,\"modified\":1658288209,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3a220f86-b23a-11ed-bd41-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1658288209\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2101960140,\"monitor_id\":null,\"org_id\":321813,\"start\":1658375293,\"end\":null,\"canceled\":null,\"created\":1658375293,\"modified\":1658375293,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3a7e764a-b23a-11ed-bb11-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1658375293\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2104652729,\"monitor_id\":null,\"org_id\":321813,\"start\":1658461872,\"end\":null,\"canceled\":null,\"created\":1658461872,\"modified\":1658461872,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3a9e300c-b23a-11ed-b199-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1658461872\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2107140574,\"monitor_id\":null,\"org_id\":321813,\"start\":1658547329,\"end\":null,\"canceled\":null,\"created\":1658547329,\"modified\":1658547329,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3abf3ebe-b23a-11ed-b9db-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1658547329\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2109012258,\"monitor_id\":null,\"org_id\":321813,\"start\":1658633864,\"end\":null,\"canceled\":null,\"created\":1658633864,\"modified\":1658633864,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3ac6a320-b23a-11ed-bb88-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1658633864\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2110877434,\"monitor_id\":null,\"org_id\":321813,\"start\":1658720370,\"end\":null,\"canceled\":null,\"created\":1658720370,\"modified\":1658720370,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3ad030b6-b23a-11ed-bddb-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1658720370\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2113486899,\"monitor_id\":null,\"org_id\":321813,\"start\":1658808223,\"end\":null,\"canceled\":null,\"created\":1658808223,\"modified\":1658808223,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3af38444-b23a-11ed-8db7-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1658808223\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2116172500,\"monitor_id\":null,\"org_id\":321813,\"start\":1658893432,\"end\":null,\"canceled\":null,\"created\":1658893432,\"modified\":1658893432,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3b17e5f0-b23a-11ed-96b6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1658893432\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2118885477,\"monitor_id\":null,\"org_id\":321813,\"start\":1658979408,\"end\":null,\"canceled\":null,\"created\":1658979408,\"modified\":1658979408,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3b55d57c-b23a-11ed-a6d2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1658979408\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2121736852,\"monitor_id\":null,\"org_id\":321813,\"start\":1659066831,\"end\":null,\"canceled\":null,\"created\":1659066831,\"modified\":1659066831,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3b75a460-b23a-11ed-ada6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1659066831\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2124236402,\"monitor_id\":null,\"org_id\":321813,\"start\":1659153315,\"end\":null,\"canceled\":null,\"created\":1659153315,\"modified\":1659153315,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3b90f36e-b23a-11ed-b374-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1659153314\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2126109655,\"monitor_id\":null,\"org_id\":321813,\"start\":1659238726,\"end\":null,\"canceled\":null,\"created\":1659238726,\"modified\":1659238726,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3b9aa35a-b23a-11ed-b598-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1659238726\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2128035455,\"monitor_id\":null,\"org_id\":321813,\"start\":1659325960,\"end\":null,\"canceled\":null,\"created\":1659325960,\"modified\":1659325960,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3bb336f4-b23a-11ed-ba43-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1659325960\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2130662436,\"monitor_id\":null,\"org_id\":321813,\"start\":1659412389,\"end\":null,\"canceled\":null,\"created\":1659412389,\"modified\":1659412389,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3bcea5c4-b23a-11ed-b2e1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1659412389\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2133443831,\"monitor_id\":null,\"org_id\":321813,\"start\":1659498805,\"end\":null,\"canceled\":null,\"created\":1659498805,\"modified\":1659498805,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3bf835f6-b23a-11ed-bc1e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1659498805\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2136180597,\"monitor_id\":null,\"org_id\":321813,\"start\":1659584912,\"end\":null,\"canceled\":null,\"created\":1659584912,\"modified\":1659584912,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3c1987ba-b23a-11ed-a861-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1659584912\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2138896167,\"monitor_id\":null,\"org_id\":321813,\"start\":1659670639,\"end\":null,\"canceled\":null,\"created\":1659670639,\"modified\":1659670639,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3c3878aa-b23a-11ed-ae86-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1659670639\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2141426593,\"monitor_id\":null,\"org_id\":321813,\"start\":1659757100,\"end\":null,\"canceled\":null,\"created\":1659757100,\"modified\":1659757100,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3c593c48-b23a-11ed-b631-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1659757099\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2143288576,\"monitor_id\":null,\"org_id\":321813,\"start\":1659843138,\"end\":null,\"canceled\":null,\"created\":1659843138,\"modified\":1659843138,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3c7b781c-b23a-11ed-bf06-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1659843138\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2145162240,\"monitor_id\":null,\"org_id\":321813,\"start\":1659929812,\"end\":null,\"canceled\":null,\"created\":1659929812,\"modified\":1659929812,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3c9cc396-b23a-11ed-a00f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1659929812\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2147940741,\"monitor_id\":null,\"org_id\":321813,\"start\":1660017026,\"end\":null,\"canceled\":null,\"created\":1660017026,\"modified\":1660017026,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3cf813fe-b23a-11ed-b11b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1660017026\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2150566252,\"monitor_id\":null,\"org_id\":321813,\"start\":1660102520,\"end\":null,\"canceled\":null,\"created\":1660102520,\"modified\":1660102520,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3d3606e6-b23a-11ed-bd5b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1660102520\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2153326613,\"monitor_id\":null,\"org_id\":321813,\"start\":1660189316,\"end\":null,\"canceled\":null,\"created\":1660189316,\"modified\":1660189316,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3d5e6ac8-b23a-11ed-b4bf-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1660189316\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2156099522,\"monitor_id\":null,\"org_id\":321813,\"start\":1660275418,\"end\":null,\"canceled\":null,\"created\":1660275418,\"modified\":1660275418,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3d8aee9a-b23a-11ed-bf87-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1660275418\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2158676446,\"monitor_id\":null,\"org_id\":321813,\"start\":1660361545,\"end\":null,\"canceled\":null,\"created\":1660361545,\"modified\":1660361545,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3db858e4-b23a-11ed-9faa-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1660361545\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2160604530,\"monitor_id\":null,\"org_id\":321813,\"start\":1660448577,\"end\":null,\"canceled\":null,\"created\":1660448577,\"modified\":1660448577,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3ddc396c-b23a-11ed-a993-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1660448577\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2162627761,\"monitor_id\":null,\"org_id\":321813,\"start\":1660535294,\"end\":null,\"canceled\":null,\"created\":1660535294,\"modified\":1660535294,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3dfdbe66-b23a-11ed-b30e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1660535294\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2165244957,\"monitor_id\":null,\"org_id\":321813,\"start\":1660621593,\"end\":null,\"canceled\":null,\"created\":1660621593,\"modified\":1660621593,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3e2da78e-b23a-11ed-bffc-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1660621593\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2168028076,\"monitor_id\":null,\"org_id\":321813,\"start\":1660708824,\"end\":null,\"canceled\":null,\"created\":1660708824,\"modified\":1660708824,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3e6e3a2e-b23a-11ed-a52e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1660708824\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2170765298,\"monitor_id\":null,\"org_id\":321813,\"start\":1660794675,\"end\":null,\"canceled\":null,\"created\":1660794675,\"modified\":1660794675,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3e919ed8-b23a-11ed-ae5d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1660794675\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2173527812,\"monitor_id\":null,\"org_id\":321813,\"start\":1660880541,\"end\":null,\"canceled\":null,\"created\":1660880541,\"modified\":1660880541,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3ead0c4a-b23a-11ed-b564-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1660880541\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2176186201,\"monitor_id\":null,\"org_id\":321813,\"start\":1660966602,\"end\":null,\"canceled\":null,\"created\":1660966602,\"modified\":1660966602,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3ec737c8-b23a-11ed-bc40-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1660966602\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2178207968,\"monitor_id\":null,\"org_id\":321813,\"start\":1661052986,\"end\":null,\"canceled\":null,\"created\":1661052986,\"modified\":1661052986,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3ed176c0-b23a-11ed-bf0c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1661052986\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2180269880,\"monitor_id\":null,\"org_id\":321813,\"start\":1661140146,\"end\":null,\"canceled\":null,\"created\":1661140146,\"modified\":1661140146,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3edc7e9e-b23a-11ed-98c5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1661140146\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2183023483,\"monitor_id\":null,\"org_id\":321813,\"start\":1661226790,\"end\":null,\"canceled\":null,\"created\":1661226790,\"modified\":1661226790,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3f0156e2-b23a-11ed-a2c6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1661226790\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2185819277,\"monitor_id\":null,\"org_id\":321813,\"start\":1661313248,\"end\":null,\"canceled\":null,\"created\":1661313248,\"modified\":1661313248,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3f2bbb44-b23a-11ed-ae1b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1661313248\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2188684748,\"monitor_id\":null,\"org_id\":321813,\"start\":1661400349,\"end\":null,\"canceled\":null,\"created\":1661400349,\"modified\":1661400349,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3f59f23e-b23a-11ed-bac0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1661400348\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2191502979,\"monitor_id\":null,\"org_id\":321813,\"start\":1661486309,\"end\":null,\"canceled\":null,\"created\":1661486309,\"modified\":1661486309,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3f7d1250-b23a-11ed-965b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1661486308\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2194167640,\"monitor_id\":null,\"org_id\":321813,\"start\":1661572254,\"end\":null,\"canceled\":null,\"created\":1661572254,\"modified\":1661572254,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3f9970c6-b23a-11ed-9df7-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1661572254\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2196171659,\"monitor_id\":null,\"org_id\":321813,\"start\":1661658484,\"end\":null,\"canceled\":null,\"created\":1661658484,\"modified\":1661658484,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3fa7c00e-b23a-11ed-a22d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1661658484\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2198223965,\"monitor_id\":null,\"org_id\":321813,\"start\":1661745690,\"end\":null,\"canceled\":null,\"created\":1661745690,\"modified\":1661745690,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3fb4e464-b23a-11ed-a5d8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1661745690\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2199337762,\"monitor_id\":null,\"org_id\":321813,\"start\":1661781638,\"end\":null,\"canceled\":null,\"created\":1661781638,\"modified\":1661781638,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3fc09318-b23a-11ed-a92f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1661781638\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2199467687,\"monitor_id\":null,\"org_id\":321813,\"start\":1661785310,\"end\":null,\"canceled\":null,\"created\":1661785310,\"modified\":1661785310,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3fc2b738-b23a-11ed-a9c9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1661785310\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2199549508,\"monitor_id\":null,\"org_id\":321813,\"start\":1661787495,\"end\":null,\"canceled\":null,\"created\":1661787495,\"modified\":1661787495,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3fc39a04-b23a-11ed-aa01-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1661787495\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2201116986,\"monitor_id\":null,\"org_id\":321813,\"start\":1661832395,\"end\":null,\"canceled\":null,\"created\":1661832395,\"modified\":1661832395,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3fd1b04e-b23a-11ed-adcd-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1661832395\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2204178688,\"monitor_id\":null,\"org_id\":321813,\"start\":1661919561,\"end\":null,\"canceled\":null,\"created\":1661919561,\"modified\":1661919561,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3ff41008-b23a-11ed-b724-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1661919561\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2207109916,\"monitor_id\":null,\"org_id\":321813,\"start\":1662004914,\"end\":null,\"canceled\":null,\"created\":1662004914,\"modified\":1662004914,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"401d69f8-b23a-11ed-99c8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1662004914\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2210125430,\"monitor_id\":null,\"org_id\":321813,\"start\":1662090878,\"end\":null,\"canceled\":null,\"created\":1662090878,\"modified\":1662090878,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"403c0d90-b23a-11ed-a228-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1662090877\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2213013771,\"monitor_id\":null,\"org_id\":321813,\"start\":1662177610,\"end\":null,\"canceled\":null,\"created\":1662177610,\"modified\":1662177610,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"40582958-b23a-11ed-a9c6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1662177610\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2215236973,\"monitor_id\":null,\"org_id\":321813,\"start\":1662264281,\"end\":null,\"canceled\":null,\"created\":1662264281,\"modified\":1662264281,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4060e9f8-b23a-11ed-ac27-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1662264280\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2217499184,\"monitor_id\":null,\"org_id\":321813,\"start\":1662351158,\"end\":null,\"canceled\":null,\"created\":1662351158,\"modified\":1662351158,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4071e668-b23a-11ed-b0ee-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1662351158\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2220145928,\"monitor_id\":null,\"org_id\":321813,\"start\":1662437613,\"end\":null,\"canceled\":null,\"created\":1662437613,\"modified\":1662437613,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"40889be2-b23a-11ed-b759-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1662437613\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2223283337,\"monitor_id\":null,\"org_id\":321813,\"start\":1662523858,\"end\":null,\"canceled\":null,\"created\":1662523858,\"modified\":1662523858,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"40aba7cc-b23a-11ed-bfa7-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1662523858\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2226554828,\"monitor_id\":null,\"org_id\":321813,\"start\":1662609824,\"end\":null,\"canceled\":null,\"created\":1662609824,\"modified\":1662609824,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"40cff8e8-b23a-11ed-a69e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1662609823\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2229730654,\"monitor_id\":null,\"org_id\":321813,\"start\":1662695502,\"end\":null,\"canceled\":null,\"created\":1662695502,\"modified\":1662695502,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"40eea95a-b23a-11ed-adb2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1662695502\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2232819205,\"monitor_id\":null,\"org_id\":321813,\"start\":1662782906,\"end\":null,\"canceled\":null,\"created\":1662782906,\"modified\":1662782906,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"410e0bd8-b23a-11ed-b576-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1662782906\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2235144457,\"monitor_id\":null,\"org_id\":321813,\"start\":1662868256,\"end\":null,\"canceled\":null,\"created\":1662868256,\"modified\":1662868256,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"411e38b4-b23a-11ed-b806-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1662868256\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2237546356,\"monitor_id\":null,\"org_id\":321813,\"start\":1662955934,\"end\":null,\"canceled\":null,\"created\":1662955934,\"modified\":1662955934,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4132443a-b23a-11ed-bc3e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1662955934\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2240629571,\"monitor_id\":null,\"org_id\":321813,\"start\":1663041486,\"end\":null,\"canceled\":null,\"created\":1663041486,\"modified\":1663041486,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"415ba9a6-b23a-11ed-b884-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1663041485\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2243954759,\"monitor_id\":null,\"org_id\":321813,\"start\":1663128391,\"end\":null,\"canceled\":null,\"created\":1663128391,\"modified\":1663128391,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"418d0b5e-b23a-11ed-a34c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1663128391\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2245036721,\"monitor_id\":null,\"org_id\":321813,\"start\":1663158458,\"end\":null,\"canceled\":null,\"created\":1663158458,\"modified\":1663158458,\"message\":\"tf-TestAccDatadogDowntime_DiffStart-local-1663158457\",\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"41a4a2dc-b23a-11ed-a80b-da7ad0900002\",\"scope\":[\"somescope\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2247205460,\"monitor_id\":null,\"org_id\":321813,\"start\":1663214945,\"end\":null,\"canceled\":null,\"created\":1663214945,\"modified\":1663214945,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"41c2850e-b23a-11ed-ae1d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1663214945\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2250485716,\"monitor_id\":null,\"org_id\":321813,\"start\":1663300931,\"end\":null,\"canceled\":null,\"created\":1663300931,\"modified\":1663300931,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"41f65636-b23a-11ed-b8a9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1663300931\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2253604073,\"monitor_id\":null,\"org_id\":321813,\"start\":1663386537,\"end\":null,\"canceled\":null,\"created\":1663386537,\"modified\":1663386537,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"42215584-b23a-11ed-8d2c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1663386537\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2256088642,\"monitor_id\":null,\"org_id\":321813,\"start\":1663473474,\"end\":null,\"canceled\":null,\"created\":1663473474,\"modified\":1663473474,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4243ffe4-b23a-11ed-91a7-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1663473474\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2258619478,\"monitor_id\":null,\"org_id\":321813,\"start\":1663560715,\"end\":null,\"canceled\":null,\"created\":1663560715,\"modified\":1663560715,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"426807ae-b23a-11ed-985e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1663560715\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2261718241,\"monitor_id\":null,\"org_id\":321813,\"start\":1663646132,\"end\":null,\"canceled\":null,\"created\":1663646132,\"modified\":1663646132,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"42bb4388-b23a-11ed-ae3b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1663646132\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2265503552,\"monitor_id\":null,\"org_id\":321813,\"start\":1663732909,\"end\":null,\"canceled\":null,\"created\":1663732910,\"modified\":1663732910,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"42f245cc-b23a-11ed-bbd2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1663732909\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2277650400,\"monitor_id\":null,\"org_id\":321813,\"start\":1663818984,\"end\":null,\"canceled\":null,\"created\":1663818984,\"modified\":1663818984,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"431c37f6-b23a-11ed-ba09-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1663818983\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2281083611,\"monitor_id\":null,\"org_id\":321813,\"start\":1663906071,\"end\":null,\"canceled\":null,\"created\":1663906071,\"modified\":1663906071,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"43523e32-b23a-11ed-a811-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1663906071\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2284237993,\"monitor_id\":null,\"org_id\":321813,\"start\":1663993085,\"end\":null,\"canceled\":null,\"created\":1663993085,\"modified\":1663993085,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"43840a0c-b23a-11ed-b37a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1663993085\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2286679181,\"monitor_id\":null,\"org_id\":321813,\"start\":1664078470,\"end\":null,\"canceled\":null,\"created\":1664078470,\"modified\":1664078470,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"43a306aa-b23a-11ed-baa6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1664078470\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2289159543,\"monitor_id\":null,\"org_id\":321813,\"start\":1664165346,\"end\":null,\"canceled\":null,\"created\":1664165346,\"modified\":1664165346,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"43c43a82-b23a-11ed-aefb-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1664165346\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2292423458,\"monitor_id\":null,\"org_id\":321813,\"start\":1664252509,\"end\":null,\"canceled\":null,\"created\":1664252509,\"modified\":1664252509,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"43f1c86c-b23a-11ed-ba48-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1664252509\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2295733460,\"monitor_id\":null,\"org_id\":321813,\"start\":1664338000,\"end\":null,\"canceled\":null,\"created\":1664338000,\"modified\":1664338000,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"441e45fe-b23a-11ed-ad21-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1664337999\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2299164287,\"monitor_id\":null,\"org_id\":321813,\"start\":1664425715,\"end\":null,\"canceled\":null,\"created\":1664425715,\"modified\":1664425715,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"44640da0-b23a-11ed-be32-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1664425715\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2301993647,\"monitor_id\":null,\"org_id\":321813,\"start\":1664496737,\"end\":null,\"canceled\":null,\"created\":1664496737,\"modified\":1664496737,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"449f45fa-b23a-11ed-be70-da7ad0900002\",\"scope\":[\"host:Test-Go-TestHostsMuteErrors-1664496737\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2301993650,\"monitor_id\":null,\"org_id\":321813,\"start\":1664496737,\"end\":null,\"canceled\":null,\"created\":1664496737,\"modified\":1664496737,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"449f4ac8-b23a-11ed-be71-da7ad0900002\",\"scope\":[\"host:Test-Go-TestHostsMuteErrors-1664496737\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2302503942,\"monitor_id\":null,\"org_id\":321813,\"start\":1664510639,\"end\":null,\"canceled\":null,\"created\":1664510639,\"modified\":1664510639,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"44a527ae-b23a-11ed-bffe-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1664510638\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2303614396,\"monitor_id\":null,\"org_id\":321813,\"start\":1664542729,\"end\":null,\"canceled\":null,\"created\":1664542729,\"modified\":1664542729,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"44b3f2ac-b23a-11ed-a380-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1664542729\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2305816069,\"monitor_id\":null,\"org_id\":321813,\"start\":1664598900,\"end\":null,\"canceled\":null,\"created\":1664598900,\"modified\":1664598900,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"44d74748-b23a-11ed-acea-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1664598899\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2308263058,\"monitor_id\":null,\"org_id\":321813,\"start\":1664683580,\"end\":null,\"canceled\":null,\"created\":1664683580,\"modified\":1664683580,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"44f9280e-b23a-11ed-b5ae-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1664683580\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2310724773,\"monitor_id\":null,\"org_id\":321813,\"start\":1664768547,\"end\":null,\"canceled\":null,\"created\":1664768547,\"modified\":1664768547,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4527d244-b23a-11ed-9938-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1664768547\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2311751018,\"monitor_id\":null,\"org_id\":321813,\"start\":1664798717,\"end\":null,\"canceled\":null,\"created\":1664798717,\"modified\":1664798717,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"453eeef2-b23a-11ed-9e5e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1664798717\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2311853437,\"monitor_id\":null,\"org_id\":321813,\"start\":1664801314,\"end\":null,\"canceled\":null,\"created\":1664801314,\"modified\":1664801314,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"45420ac4-b23a-11ed-9ecf-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1664801313\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2314053141,\"monitor_id\":null,\"org_id\":321813,\"start\":1664855215,\"end\":null,\"canceled\":null,\"created\":1664855215,\"modified\":1664855215,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"456a525e-b23a-11ed-a875-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1664855215\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2317462447,\"monitor_id\":null,\"org_id\":321813,\"start\":1664941149,\"end\":null,\"canceled\":null,\"created\":1664941149,\"modified\":1664941149,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"45a4f616-b23a-11ed-b63c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1664941149\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2320920699,\"monitor_id\":null,\"org_id\":321813,\"start\":1665028211,\"end\":null,\"canceled\":null,\"created\":1665028211,\"modified\":1665028211,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"45db20d8-b23a-11ed-a5a1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1665028211\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2324463653,\"monitor_id\":null,\"org_id\":321813,\"start\":1665114659,\"end\":null,\"canceled\":null,\"created\":1665114659,\"modified\":1665114659,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4612a79c-b23a-11ed-b2fa-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1665114659\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2327861896,\"monitor_id\":null,\"org_id\":321813,\"start\":1665200731,\"end\":null,\"canceled\":null,\"created\":1665200731,\"modified\":1665200731,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"464786e2-b23a-11ed-beca-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1665200731\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2330490748,\"monitor_id\":null,\"org_id\":321813,\"start\":1665288449,\"end\":null,\"canceled\":null,\"created\":1665288449,\"modified\":1665288449,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"46964fca-b23a-11ed-afc6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1665288449\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2333064683,\"monitor_id\":null,\"org_id\":321813,\"start\":1665374034,\"end\":null,\"canceled\":null,\"created\":1665374034,\"modified\":1665374034,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"46cbbde0-b23a-11ed-b727-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1665374034\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2336305403,\"monitor_id\":null,\"org_id\":321813,\"start\":1665460375,\"end\":null,\"canceled\":null,\"created\":1665460375,\"modified\":1665460375,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"472de5f6-b23a-11ed-a149-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1665460375\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2339858010,\"monitor_id\":null,\"org_id\":321813,\"start\":1665547646,\"end\":null,\"canceled\":null,\"created\":1665547646,\"modified\":1665547646,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"47cb0818-b23a-11ed-b168-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1665547646\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2343370119,\"monitor_id\":null,\"org_id\":321813,\"start\":1665633476,\"end\":null,\"canceled\":null,\"created\":1665633476,\"modified\":1665633476,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"486bfcdc-b23a-11ed-92d8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1665633476\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2347009518,\"monitor_id\":null,\"org_id\":321813,\"start\":1665720804,\"end\":null,\"canceled\":null,\"created\":1665720804,\"modified\":1665720804,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"48ea0474-b23a-11ed-a459-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1665720804\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2350435984,\"monitor_id\":null,\"org_id\":321813,\"start\":1665806934,\"end\":null,\"canceled\":null,\"created\":1665806934,\"modified\":1665806934,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"49706f00-b23a-11ed-b2f1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1665806934\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2353123675,\"monitor_id\":null,\"org_id\":321813,\"start\":1665892719,\"end\":null,\"canceled\":null,\"created\":1665892719,\"modified\":1665892719,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"49b6358a-b23a-11ed-ba64-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1665892719\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2355874041,\"monitor_id\":null,\"org_id\":321813,\"start\":1665980424,\"end\":null,\"canceled\":null,\"created\":1665980424,\"modified\":1665980424,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"49fd2878-b23a-11ed-a500-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1665980423\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2359464876,\"monitor_id\":null,\"org_id\":321813,\"start\":1666066360,\"end\":null,\"canceled\":null,\"created\":1666066360,\"modified\":1666066360,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4a8339ae-b23a-11ed-b38f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1666066360\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2363166481,\"monitor_id\":null,\"org_id\":321813,\"start\":1666151799,\"end\":null,\"canceled\":null,\"created\":1666151799,\"modified\":1666151799,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4b0d051c-b23a-11ed-9a2d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1666151799\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2366832505,\"monitor_id\":null,\"org_id\":321813,\"start\":1666237831,\"end\":null,\"canceled\":null,\"created\":1666237831,\"modified\":1666237831,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4b897d54-b23a-11ed-a8bf-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1666237831\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2370651012,\"monitor_id\":null,\"org_id\":321813,\"start\":1666324226,\"end\":null,\"canceled\":null,\"created\":1666324226,\"modified\":1666324226,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4c0003fc-b23a-11ed-b6a8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1666324226\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2373891845,\"monitor_id\":null,\"org_id\":321813,\"start\":1666410633,\"end\":null,\"canceled\":null,\"created\":1666410633,\"modified\":1666410633,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4c968458-b23a-11ed-b1a7-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1666410633\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2375820314,\"monitor_id\":null,\"org_id\":321813,\"start\":1666497723,\"end\":null,\"canceled\":null,\"created\":1666497723,\"modified\":1666497723,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4ccfac7e-b23a-11ed-b94b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1666497723\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2377807884,\"monitor_id\":null,\"org_id\":321813,\"start\":1666585186,\"end\":null,\"canceled\":null,\"created\":1666585186,\"modified\":1666585186,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4d0596ae-b23a-11ed-95c9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1666585186\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2380634964,\"monitor_id\":null,\"org_id\":321813,\"start\":1666671429,\"end\":null,\"canceled\":null,\"created\":1666671429,\"modified\":1666671429,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4d6c0e3e-b23a-11ed-a488-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1666671429\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2383551848,\"monitor_id\":null,\"org_id\":321813,\"start\":1666756451,\"end\":null,\"canceled\":null,\"created\":1666756451,\"modified\":1666756451,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4de0811a-b23a-11ed-b509-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1666756451\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2386485139,\"monitor_id\":null,\"org_id\":321813,\"start\":1666842706,\"end\":null,\"canceled\":null,\"created\":1666842706,\"modified\":1666842706,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4e6c0f46-b23a-11ed-afa9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1666842706\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2389361533,\"monitor_id\":null,\"org_id\":321813,\"start\":1666928402,\"end\":null,\"canceled\":null,\"created\":1666928402,\"modified\":1666928402,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4eee5a5a-b23a-11ed-9a31-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1666928402\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2391663198,\"monitor_id\":null,\"org_id\":321813,\"start\":1666998730,\"end\":null,\"canceled\":null,\"created\":1666998730,\"modified\":1666998730,\"message\":\"Example-Cancel_a_downtime_returns_OK_response_1666998730\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1668813130},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4f526a36-b23a-11ed-a8aa-da7ad0900002\",\"scope\":[\"test:examplecanceladowntimereturnsokresponse1666998730\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2392184244,\"monitor_id\":null,\"org_id\":321813,\"start\":1667015400,\"end\":null,\"canceled\":null,\"created\":1667015400,\"modified\":1667015400,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4f5d8f7e-b23a-11ed-aa60-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1667015400\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2394213744,\"monitor_id\":null,\"org_id\":321813,\"start\":1667101533,\"end\":null,\"canceled\":null,\"created\":1667101533,\"modified\":1667101533,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4f99564e-b23a-11ed-b522-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1667101533\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2396247420,\"monitor_id\":null,\"org_id\":321813,\"start\":1667188255,\"end\":null,\"canceled\":null,\"created\":1667188255,\"modified\":1667188255,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4fcc2d30-b23a-11ed-be26-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1667188255\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2399087501,\"monitor_id\":null,\"org_id\":321813,\"start\":1667274852,\"end\":null,\"canceled\":null,\"created\":1667274852,\"modified\":1667274852,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"503ad3a2-b23a-11ed-8bd8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1667274852\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2401845581,\"monitor_id\":null,\"org_id\":321813,\"start\":1667360911,\"end\":null,\"canceled\":null,\"created\":1667360911,\"modified\":1667360911,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"50a80530-b23a-11ed-9c19-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1667360911\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2404743169,\"monitor_id\":null,\"org_id\":321813,\"start\":1667447257,\"end\":null,\"canceled\":null,\"created\":1667447257,\"modified\":1667447257,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5125180e-b23a-11ed-b28a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1667447257\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2407616643,\"monitor_id\":null,\"org_id\":321813,\"start\":1667533120,\"end\":null,\"canceled\":null,\"created\":1667533120,\"modified\":1667533120,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"519bdc78-b23a-11ed-beb6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1667533119\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2410256321,\"monitor_id\":null,\"org_id\":321813,\"start\":1667619810,\"end\":null,\"canceled\":null,\"created\":1667619810,\"modified\":1667619810,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"51dc2a6c-b23a-11ed-b1d4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1667619809\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2412137040,\"monitor_id\":null,\"org_id\":321813,\"start\":1667705648,\"end\":null,\"canceled\":null,\"created\":1667705648,\"modified\":1667705648,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"51fd2730-b23a-11ed-b805-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1667705648\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2414032041,\"monitor_id\":null,\"org_id\":321813,\"start\":1667792099,\"end\":null,\"canceled\":null,\"created\":1667792099,\"modified\":1667792099,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5223efb4-b23a-11ed-bf9a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1667792099\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2416850995,\"monitor_id\":null,\"org_id\":321813,\"start\":1667878541,\"end\":null,\"canceled\":null,\"created\":1667878541,\"modified\":1667878541,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"526975e8-b23a-11ed-9134-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1667878541\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2419746011,\"monitor_id\":null,\"org_id\":321813,\"start\":1667965599,\"end\":null,\"canceled\":null,\"created\":1667965599,\"modified\":1667965599,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"52bd636a-b23a-11ed-a012-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1667965599\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2422684390,\"monitor_id\":null,\"org_id\":321813,\"start\":1668051921,\"end\":null,\"canceled\":null,\"created\":1668051921,\"modified\":1668051921,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5314f814-b23a-11ed-b1eb-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1668051921\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2425602831,\"monitor_id\":null,\"org_id\":321813,\"start\":1668138530,\"end\":null,\"canceled\":null,\"created\":1668138530,\"modified\":1668138530,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"536f3a04-b23a-11ed-8675-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1668138530\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2428165936,\"monitor_id\":null,\"org_id\":321813,\"start\":1668224948,\"end\":null,\"canceled\":null,\"created\":1668224948,\"modified\":1668224948,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"53a8cc92-b23a-11ed-9489-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1668224947\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2430079787,\"monitor_id\":null,\"org_id\":321813,\"start\":1668311134,\"end\":null,\"canceled\":null,\"created\":1668311134,\"modified\":1668311134,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"53cb6810-b23a-11ed-9d35-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1668311133\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2432023952,\"monitor_id\":null,\"org_id\":321813,\"start\":1668398012,\"end\":null,\"canceled\":null,\"created\":1668398012,\"modified\":1668398012,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"53f8ffbe-b23a-11ed-a71c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1668398012\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2434867196,\"monitor_id\":null,\"org_id\":321813,\"start\":1668483680,\"end\":null,\"canceled\":null,\"created\":1668483680,\"modified\":1668483680,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5456ab0a-b23a-11ed-b7ca-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1668483680\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2437934009,\"monitor_id\":null,\"org_id\":321813,\"start\":1668569448,\"end\":null,\"canceled\":null,\"created\":1668569448,\"modified\":1668569448,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"54d1b908-b23a-11ed-bc98-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1668569448\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2440980215,\"monitor_id\":null,\"org_id\":321813,\"start\":1668656285,\"end\":null,\"canceled\":null,\"created\":1668656285,\"modified\":1668656285,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"553618e4-b23a-11ed-9d51-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1668656284\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2443990260,\"monitor_id\":null,\"org_id\":321813,\"start\":1668742655,\"end\":null,\"canceled\":null,\"created\":1668742655,\"modified\":1668742655,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"55859d2e-b23a-11ed-ae50-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1668742655\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2446775868,\"monitor_id\":null,\"org_id\":321813,\"start\":1668829056,\"end\":null,\"canceled\":null,\"created\":1668829056,\"modified\":1668829056,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"55c76b82-b23a-11ed-bc45-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1668829056\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2448754897,\"monitor_id\":null,\"org_id\":321813,\"start\":1668915702,\"end\":null,\"canceled\":null,\"created\":1668915702,\"modified\":1668915702,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"55e8ef64-b23a-11ed-8743-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1668915702\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2450712748,\"monitor_id\":null,\"org_id\":321813,\"start\":1669001414,\"end\":null,\"canceled\":null,\"created\":1669001414,\"modified\":1669001414,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5610f342-b23a-11ed-8f6c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1669001414\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2453550027,\"monitor_id\":null,\"org_id\":321813,\"start\":1669088360,\"end\":null,\"canceled\":null,\"created\":1669088360,\"modified\":1669088360,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"564af178-b23a-11ed-9cfb-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1669088360\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2456372360,\"monitor_id\":null,\"org_id\":321813,\"start\":1669174451,\"end\":null,\"canceled\":null,\"created\":1669174451,\"modified\":1669174451,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"569e5368-b23a-11ed-af05-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1669174451\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2459015896,\"monitor_id\":null,\"org_id\":321813,\"start\":1669259755,\"end\":null,\"canceled\":null,\"created\":1669259755,\"modified\":1669259755,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"56fcdfa0-b23a-11ed-bea9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1669259755\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2461421566,\"monitor_id\":null,\"org_id\":321813,\"start\":1669347462,\"end\":null,\"canceled\":null,\"created\":1669347462,\"modified\":1669347462,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5739ab24-b23a-11ed-a9c6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1669347462\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2463652138,\"monitor_id\":null,\"org_id\":321813,\"start\":1669432382,\"end\":null,\"canceled\":null,\"created\":1669432382,\"modified\":1669432382,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"576ec908-b23a-11ed-b42e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1669432382\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2465532171,\"monitor_id\":null,\"org_id\":321813,\"start\":1669519459,\"end\":null,\"canceled\":null,\"created\":1669519459,\"modified\":1669519459,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"57900abe-b23a-11ed-ba7c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1669519459\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2467453245,\"monitor_id\":null,\"org_id\":321813,\"start\":1669606066,\"end\":null,\"canceled\":null,\"created\":1669606066,\"modified\":1669606066,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"57b463fa-b23a-11ed-9e48-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1669606066\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2470167503,\"monitor_id\":null,\"org_id\":321813,\"start\":1669692510,\"end\":null,\"canceled\":null,\"created\":1669692510,\"modified\":1669692510,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"57f2c2ee-b23a-11ed-ac35-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1669692510\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2473090961,\"monitor_id\":null,\"org_id\":321813,\"start\":1669778936,\"end\":null,\"canceled\":null,\"created\":1669778936,\"modified\":1669778936,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"583a4c36-b23a-11ed-bb1d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1669778936\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2476000033,\"monitor_id\":null,\"org_id\":321813,\"start\":1669865073,\"end\":null,\"canceled\":null,\"created\":1669865073,\"modified\":1669865073,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"588a6586-b23a-11ed-99a2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1669865073\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2479105710,\"monitor_id\":null,\"org_id\":321813,\"start\":1669951601,\"end\":null,\"canceled\":null,\"created\":1669951601,\"modified\":1669951601,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"58dec252-b23a-11ed-a8b2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1669951601\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2481860968,\"monitor_id\":null,\"org_id\":321813,\"start\":1670036988,\"end\":null,\"canceled\":null,\"created\":1670036988,\"modified\":1670036988,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"59287096-b23a-11ed-b680-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1670036988\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2483920956,\"monitor_id\":null,\"org_id\":321813,\"start\":1670123328,\"end\":null,\"canceled\":null,\"created\":1670123328,\"modified\":1670123328,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5953a9c8-b23a-11ed-bff4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1670123328\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2485945042,\"monitor_id\":null,\"org_id\":321813,\"start\":1670209634,\"end\":null,\"canceled\":null,\"created\":1670209634,\"modified\":1670209634,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"59891b62-b23a-11ed-b63e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1670209634\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2488855057,\"monitor_id\":null,\"org_id\":321813,\"start\":1670297020,\"end\":null,\"canceled\":null,\"created\":1670297020,\"modified\":1670297020,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"59e4bdb4-b23a-11ed-a0d2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1670297020\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2491781849,\"monitor_id\":null,\"org_id\":321813,\"start\":1670382737,\"end\":null,\"canceled\":null,\"created\":1670382737,\"modified\":1670382737,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5a480112-b23a-11ed-b58b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1670382737\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2494648826,\"monitor_id\":null,\"org_id\":321813,\"start\":1670469092,\"end\":null,\"canceled\":null,\"created\":1670469092,\"modified\":1670469092,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5aaf27ac-b23a-11ed-9c39-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1670469092\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2497564303,\"monitor_id\":null,\"org_id\":321813,\"start\":1670556287,\"end\":null,\"canceled\":null,\"created\":1670556287,\"modified\":1670556287,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5b029568-b23a-11ed-aef6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1670556287\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2500332362,\"monitor_id\":null,\"org_id\":321813,\"start\":1670642536,\"end\":null,\"canceled\":null,\"created\":1670642536,\"modified\":1670642536,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5b4f83c8-b23a-11ed-bd36-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1670642535\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2502312199,\"monitor_id\":null,\"org_id\":321813,\"start\":1670729290,\"end\":null,\"canceled\":null,\"created\":1670729290,\"modified\":1670729290,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5b8533d8-b23a-11ed-be50-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1670729289\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2504226029,\"monitor_id\":null,\"org_id\":321813,\"start\":1670814711,\"end\":null,\"canceled\":null,\"created\":1670814711,\"modified\":1670814711,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5bcc4a52-b23a-11ed-8bad-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1670814711\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2507088594,\"monitor_id\":null,\"org_id\":321813,\"start\":1670902159,\"end\":null,\"canceled\":null,\"created\":1670902159,\"modified\":1670902159,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5c27848a-b23a-11ed-9bba-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1670902159\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2510122339,\"monitor_id\":null,\"org_id\":321813,\"start\":1670988375,\"end\":null,\"canceled\":null,\"created\":1670988375,\"modified\":1670988375,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5c984bb6-b23a-11ed-b178-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1670988375\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2513143092,\"monitor_id\":null,\"org_id\":321813,\"start\":1671073824,\"end\":null,\"canceled\":null,\"created\":1671073824,\"modified\":1671073824,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5cfff540-b23a-11ed-8ac4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1671073824\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2516092056,\"monitor_id\":null,\"org_id\":321813,\"start\":1671160088,\"end\":null,\"canceled\":null,\"created\":1671160088,\"modified\":1671160088,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5d6becb4-b23a-11ed-9b32-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1671160088\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2518847271,\"monitor_id\":null,\"org_id\":321813,\"start\":1671246425,\"end\":null,\"canceled\":null,\"created\":1671246425,\"modified\":1671246425,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5dbba6dc-b23a-11ed-a824-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1671246425\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2520885813,\"monitor_id\":null,\"org_id\":321813,\"start\":1671332896,\"end\":null,\"canceled\":null,\"created\":1671332896,\"modified\":1671332896,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5de39b24-b23a-11ed-aed5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1671332896\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2522901816,\"monitor_id\":null,\"org_id\":321813,\"start\":1671419306,\"end\":null,\"canceled\":null,\"created\":1671419306,\"modified\":1671419306,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5e0caa5a-b23a-11ed-b5ed-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1671419306\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2525599143,\"monitor_id\":null,\"org_id\":321813,\"start\":1671505743,\"end\":null,\"canceled\":null,\"created\":1671505743,\"modified\":1671505743,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5e635aee-b23a-11ed-afce-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1671505743\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2528402773,\"monitor_id\":null,\"org_id\":321813,\"start\":1671592750,\"end\":null,\"canceled\":null,\"created\":1671592750,\"modified\":1671592750,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5ec6c55c-b23a-11ed-bf28-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1671592750\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2531139209,\"monitor_id\":null,\"org_id\":321813,\"start\":1671679401,\"end\":null,\"canceled\":null,\"created\":1671679401,\"modified\":1671679401,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5f16a48c-b23a-11ed-bec5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1671679401\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2533715069,\"monitor_id\":null,\"org_id\":321813,\"start\":1671765903,\"end\":null,\"canceled\":null,\"created\":1671765903,\"modified\":1671765903,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5f783094-b23a-11ed-9ecf-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1671765903\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2536026538,\"monitor_id\":null,\"org_id\":321813,\"start\":1671851289,\"end\":null,\"canceled\":null,\"created\":1671851289,\"modified\":1671851289,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5fbec716-b23a-11ed-ab40-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1671851289\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2537944423,\"monitor_id\":null,\"org_id\":321813,\"start\":1671938544,\"end\":null,\"canceled\":null,\"created\":1671938544,\"modified\":1671938544,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5fe86c10-b23a-11ed-b296-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1671938544\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2539834901,\"monitor_id\":null,\"org_id\":321813,\"start\":1672025026,\"end\":null,\"canceled\":null,\"created\":1672025026,\"modified\":1672025026,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6015f644-b23a-11ed-b970-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1672025026\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2541931987,\"monitor_id\":null,\"org_id\":321813,\"start\":1672110543,\"end\":null,\"canceled\":null,\"created\":1672110543,\"modified\":1672110543,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6049d2b6-b23a-11ed-b68a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1672110543\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2544196687,\"monitor_id\":null,\"org_id\":321813,\"start\":1672196848,\"end\":null,\"canceled\":null,\"created\":1672196848,\"modified\":1672196848,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6085d306-b23a-11ed-befb-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1672196848\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2546563378,\"monitor_id\":null,\"org_id\":321813,\"start\":1672284134,\"end\":null,\"canceled\":null,\"created\":1672284134,\"modified\":1672284134,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"60cd9b96-b23a-11ed-9c0d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1672284134\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2548844907,\"monitor_id\":null,\"org_id\":321813,\"start\":1672370478,\"end\":null,\"canceled\":null,\"created\":1672370478,\"modified\":1672370478,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6106731c-b23a-11ed-a61c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1672370478\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2550894571,\"monitor_id\":null,\"org_id\":321813,\"start\":1672450879,\"end\":null,\"canceled\":null,\"created\":1672450880,\"modified\":1672450880,\"message\":\"Test-Python-Schedule_a_downtime_returns_OK_response-1672450879\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1674265279},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"61402620-b23a-11ed-af5c-da7ad0900002\",\"scope\":[\"test:testpythonscheduleadowntimereturnsokresponse1672450879\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2551049490,\"monitor_id\":null,\"org_id\":321813,\"start\":1672457080,\"end\":null,\"canceled\":null,\"created\":1672457080,\"modified\":1672457080,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"61433072-b23a-11ed-afd9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1672457079\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2552957917,\"monitor_id\":null,\"org_id\":321813,\"start\":1672543636,\"end\":null,\"canceled\":null,\"created\":1672543636,\"modified\":1672543636,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"616ef554-b23a-11ed-b5df-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1672543636\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2554846933,\"monitor_id\":null,\"org_id\":321813,\"start\":1672628828,\"end\":null,\"canceled\":null,\"created\":1672628828,\"modified\":1672628828,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6198f25a-b23a-11ed-bbb1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1672628828\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2557042043,\"monitor_id\":null,\"org_id\":321813,\"start\":1672715466,\"end\":null,\"canceled\":null,\"created\":1672715466,\"modified\":1672715466,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"61cedc44-b23a-11ed-a8d1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1672715466\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2559718474,\"monitor_id\":null,\"org_id\":321813,\"start\":1672802648,\"end\":null,\"canceled\":null,\"created\":1672802648,\"modified\":1672802648,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"621bd1a2-b23a-11ed-b595-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1672802648\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2562469384,\"monitor_id\":null,\"org_id\":321813,\"start\":1672888040,\"end\":null,\"canceled\":null,\"created\":1672888040,\"modified\":1672888040,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6276b748-b23a-11ed-a4a1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1672888040\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2565260369,\"monitor_id\":null,\"org_id\":321813,\"start\":1672975635,\"end\":null,\"canceled\":null,\"created\":1672975635,\"modified\":1672975635,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"62ebeb80-b23a-11ed-b3a5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1672975635\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2567876166,\"monitor_id\":null,\"org_id\":321813,\"start\":1673061908,\"end\":null,\"canceled\":null,\"created\":1673061908,\"modified\":1673061908,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"634648d2-b23a-11ed-b99b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1673061908\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2569874434,\"monitor_id\":null,\"org_id\":321813,\"start\":1673148340,\"end\":null,\"canceled\":null,\"created\":1673148340,\"modified\":1673148340,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6379147e-b23a-11ed-9d18-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1673148340\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2571846356,\"monitor_id\":null,\"org_id\":321813,\"start\":1673233671,\"end\":null,\"canceled\":null,\"created\":1673233671,\"modified\":1673233671,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"63ace5ce-b23a-11ed-a483-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1673233670\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2574631850,\"monitor_id\":null,\"org_id\":321813,\"start\":1673320808,\"end\":null,\"canceled\":null,\"created\":1673320808,\"modified\":1673320808,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"64138df6-b23a-11ed-b607-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1673320808\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2577551876,\"monitor_id\":null,\"org_id\":321813,\"start\":1673406486,\"end\":null,\"canceled\":null,\"created\":1673406486,\"modified\":1673406486,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6481c406-b23a-11ed-9b2f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1673406486\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2580588818,\"monitor_id\":null,\"org_id\":321813,\"start\":1673493909,\"end\":null,\"canceled\":null,\"created\":1673493909,\"modified\":1673493909,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"65125b7e-b23a-11ed-ade3-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1673493909\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2583632569,\"monitor_id\":null,\"org_id\":321813,\"start\":1673579292,\"end\":null,\"canceled\":null,\"created\":1673579292,\"modified\":1673579292,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"657f385c-b23a-11ed-be68-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1673579292\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2586588083,\"monitor_id\":null,\"org_id\":321813,\"start\":1673666478,\"end\":null,\"canceled\":null,\"created\":1673666478,\"modified\":1673666478,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"661bc88e-b23a-11ed-b68f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1673666478\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2588714306,\"monitor_id\":null,\"org_id\":321813,\"start\":1673752026,\"end\":null,\"canceled\":null,\"created\":1673752026,\"modified\":1673752026,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6655622e-b23a-11ed-bdda-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1673752026\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2590863616,\"monitor_id\":null,\"org_id\":321813,\"start\":1673838421,\"end\":null,\"canceled\":null,\"created\":1673838421,\"modified\":1673838421,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"668f095c-b23a-11ed-ad7a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1673838420\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2593482058,\"monitor_id\":null,\"org_id\":321813,\"start\":1673924797,\"end\":null,\"canceled\":null,\"created\":1673924797,\"modified\":1673924797,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"66eadd04-b23a-11ed-ba3e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1673924797\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2596552193,\"monitor_id\":null,\"org_id\":321813,\"start\":1674011390,\"end\":null,\"canceled\":null,\"created\":1674011390,\"modified\":1674011390,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6765c4f6-b23a-11ed-94f0-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1674011389\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2599777565,\"monitor_id\":null,\"org_id\":321813,\"start\":1674097737,\"end\":null,\"canceled\":null,\"created\":1674097737,\"modified\":1674097737,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"67dabfd6-b23a-11ed-a4ba-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1674097737\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2600758418,\"monitor_id\":null,\"org_id\":321813,\"start\":1674126729,\"end\":null,\"canceled\":null,\"created\":1674126731,\"modified\":1674126731,\"message\":\"Test-Typescript-Cancel_a_downtime_returns_OK_response-1674126729\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1675941129},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"67fcfeb6-b23a-11ed-a8e2-da7ad0900002\",\"scope\":[\"test:testtypescriptcanceladowntimereturnsokresponse1674126729\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2603031576,\"monitor_id\":null,\"org_id\":321813,\"start\":1674185040,\"end\":null,\"canceled\":null,\"created\":1674185040,\"modified\":1674185040,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"685bb08c-b23a-11ed-b59c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1674185040\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2606086439,\"monitor_id\":null,\"org_id\":321813,\"start\":1674271210,\"end\":null,\"canceled\":null,\"created\":1674271210,\"modified\":1674271210,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"68bf1636-b23a-11ed-bfb9-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1674271210\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2608313999,\"monitor_id\":null,\"org_id\":321813,\"start\":1674356985,\"end\":null,\"canceled\":null,\"created\":1674356985,\"modified\":1674356985,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"68f8a1b2-b23a-11ed-a034-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1674356985\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2610560603,\"monitor_id\":null,\"org_id\":321813,\"start\":1674444122,\"end\":null,\"canceled\":null,\"created\":1674444122,\"modified\":1674444122,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6938ae7e-b23a-11ed-a931-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1674444122\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2613613034,\"monitor_id\":null,\"org_id\":321813,\"start\":1674530851,\"end\":null,\"canceled\":null,\"created\":1674530851,\"modified\":1674530851,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"69ba5b5e-b23a-11ed-bd81-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1674530851\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2616779806,\"monitor_id\":null,\"org_id\":321813,\"start\":1674617139,\"end\":null,\"canceled\":null,\"created\":1674617139,\"modified\":1674617139,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6a542eaa-b23a-11ed-8cc6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1674617138\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2619964524,\"monitor_id\":null,\"org_id\":321813,\"start\":1674702441,\"end\":null,\"canceled\":null,\"created\":1674702441,\"modified\":1674702441,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6b7f5246-b23a-11ed-bc5e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1674702441\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2623114089,\"monitor_id\":null,\"org_id\":321813,\"start\":1674789736,\"end\":null,\"canceled\":null,\"created\":1674789736,\"modified\":1674789736,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6c272660-b23a-11ed-b0ce-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1674789736\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2626156777,\"monitor_id\":null,\"org_id\":321813,\"start\":1674875289,\"end\":null,\"canceled\":null,\"created\":1674875289,\"modified\":1674875289,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6ca4f798-b23a-11ed-a1f2-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1674875289\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2628406510,\"monitor_id\":null,\"org_id\":321813,\"start\":1674961773,\"end\":null,\"canceled\":null,\"created\":1674961773,\"modified\":1674961773,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6ce8a560-b23a-11ed-afa4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1674961772\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2630635049,\"monitor_id\":null,\"org_id\":321813,\"start\":1675049129,\"end\":null,\"canceled\":null,\"created\":1675049129,\"modified\":1675049129,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6d237ed8-b23a-11ed-b9fa-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1675049129\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2633681612,\"monitor_id\":null,\"org_id\":321813,\"start\":1675134518,\"end\":null,\"canceled\":null,\"created\":1675134518,\"modified\":1675134518,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6db67ea4-b23a-11ed-9aae-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1675134518\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2637043417,\"monitor_id\":null,\"org_id\":321813,\"start\":1675222344,\"end\":null,\"canceled\":null,\"created\":1675222344,\"modified\":1675222344,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6e4270f8-b23a-11ed-b3de-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1675222344\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2640471834,\"monitor_id\":null,\"org_id\":321813,\"start\":1675308429,\"end\":null,\"canceled\":null,\"created\":1675308429,\"modified\":1675308429,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6eef73f2-b23a-11ed-a097-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1675308429\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2643895350,\"monitor_id\":null,\"org_id\":321813,\"start\":1675394935,\"end\":null,\"canceled\":null,\"created\":1675394935,\"modified\":1675394935,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6f525fc6-b23a-11ed-b5fd-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1675394935\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2647042185,\"monitor_id\":null,\"org_id\":321813,\"start\":1675481082,\"end\":null,\"canceled\":null,\"created\":1675481082,\"modified\":1675481082,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6faf60f4-b23a-11ed-929a-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1675481081\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2649308596,\"monitor_id\":null,\"org_id\":321813,\"start\":1675567859,\"end\":null,\"canceled\":null,\"created\":1675567859,\"modified\":1675567859,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6fe1332c-b23a-11ed-9de4-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1675567859\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2651511859,\"monitor_id\":null,\"org_id\":321813,\"start\":1675653560,\"end\":null,\"canceled\":null,\"created\":1675653560,\"modified\":1675653560,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"700f6c60-b23a-11ed-a6a6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1675653560\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2654605183,\"monitor_id\":null,\"org_id\":321813,\"start\":1675739218,\"end\":null,\"canceled\":null,\"created\":1675739218,\"modified\":1675739218,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"7086b9d2-b23a-11ed-bb6d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1675739218\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2657838252,\"monitor_id\":null,\"org_id\":321813,\"start\":1675825978,\"end\":null,\"canceled\":null,\"created\":1675825978,\"modified\":1675825978,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"7ce7b618-a75e-11ed-b822-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1675825977\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2661127229,\"monitor_id\":null,\"org_id\":321813,\"start\":1675912277,\"end\":null,\"canceled\":null,\"created\":1675912277,\"modified\":1675912277,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6b77c570-a827-11ed-a960-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1675912277\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2664387719,\"monitor_id\":null,\"org_id\":321813,\"start\":1675998991,\"end\":null,\"canceled\":null,\"created\":1675998991,\"modified\":1675998991,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"51182ee8-a8f1-11ed-a6d8-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1675998991\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2667462242,\"monitor_id\":null,\"org_id\":321813,\"start\":1676084840,\"end\":null,\"canceled\":null,\"created\":1676084840,\"modified\":1676084840,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"32c98266-a9b9-11ed-937e-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1676084840\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2669738508,\"monitor_id\":null,\"org_id\":321813,\"start\":1676171532,\"end\":null,\"canceled\":null,\"created\":1676171532,\"modified\":1676171532,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"0b4383fc-aa83-11ed-a5f1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1676171532\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2671961482,\"monitor_id\":null,\"org_id\":321813,\"start\":1676258048,\"end\":null,\"canceled\":null,\"created\":1676258048,\"modified\":1676258048,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"7b1bc4e0-ab4c-11ed-babc-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1676258048\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2675049958,\"monitor_id\":null,\"org_id\":321813,\"start\":1676345094,\"end\":null,\"canceled\":null,\"created\":1676345094,\"modified\":1676345094,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2681f32a-ac17-11ed-ad86-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1676345094\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2678184740,\"monitor_id\":null,\"org_id\":321813,\"start\":1676431536,\"end\":null,\"canceled\":null,\"created\":1676431536,\"modified\":1676431536,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"69f94076-ace0-11ed-997b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1676431536\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2686826575,\"monitor_id\":null,\"org_id\":321813,\"start\":1676690805,\"end\":null,\"canceled\":null,\"created\":1676690805,\"modified\":1676690805,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"121f709c-af3c-11ed-8e55-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1676690805\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2690694581,\"monitor_id\":null,\"org_id\":321813,\"start\":1676863797,\"end\":null,\"canceled\":null,\"created\":1676863797,\"modified\":1676863797,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"d93b9db6-b0ce-11ed-952d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1676863797\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2693119909,\"monitor_id\":null,\"org_id\":321813,\"start\":1676949968,\"end\":null,\"canceled\":null,\"created\":1676949968,\"modified\":1676949968,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"7b82a592-b197-11ed-a6d6-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1676949968\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2695915919,\"monitor_id\":null,\"org_id\":321813,\"start\":1677035416,\"end\":null,\"canceled\":null,\"created\":1677035416,\"modified\":1677035416,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6e2217da-b25e-11ed-ae42-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1677035416\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2698832031,\"monitor_id\":null,\"org_id\":321813,\"start\":1677122753,\"end\":null,\"canceled\":null,\"created\":1677122753,\"modified\":1677122753,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"c6fed67e-b329-11ed-b36d-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1677122753\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2701668737,\"monitor_id\":null,\"org_id\":321813,\"start\":1677208162,\"end\":null,\"canceled\":null,\"created\":1677208162,\"modified\":1677208162,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"a2b09bf0-b3f0-11ed-93c1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1677208162\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2704456221,\"monitor_id\":null,\"org_id\":321813,\"start\":1677294747,\"end\":null,\"canceled\":null,\"created\":1677294747,\"modified\":1677294747,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3b977090-b4ba-11ed-ba51-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1677294747\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2706388177,\"monitor_id\":null,\"org_id\":321813,\"start\":1677381498,\"end\":null,\"canceled\":null,\"created\":1677381498,\"modified\":1677381498,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3755f946-b584-11ed-af53-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1677381498\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2708284382,\"monitor_id\":null,\"org_id\":321813,\"start\":1677467616,\"end\":null,\"canceled\":null,\"created\":1677467616,\"modified\":1677467616,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"b9c6cf40-b64c-11ed-8cf7-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1677467616\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2711154521,\"monitor_id\":null,\"org_id\":321813,\"start\":1677554700,\"end\":null,\"canceled\":null,\"created\":1677554700,\"modified\":1677554700,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"7bc9dd06-b717-11ed-b2fa-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1677554700\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2714153386,\"monitor_id\":null,\"org_id\":321813,\"start\":1677641816,\"end\":null,\"canceled\":null,\"created\":1677641816,\"modified\":1677641816,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"509f1cc4-b7e2-11ed-820f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1677641815\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2717090681,\"monitor_id\":null,\"org_id\":321813,\"start\":1677728071,\"end\":null,\"canceled\":null,\"created\":1677728071,\"modified\":1677728071,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24dd3476-b8ab-11ed-a470-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1677728071\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2720110441,\"monitor_id\":null,\"org_id\":321813,\"start\":1677817030,\"end\":null,\"canceled\":null,\"created\":1677817030,\"modified\":1677817030,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4438f6aa-b97a-11ed-b783-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1677817029\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2721264920,\"monitor_id\":null,\"org_id\":321813,\"start\":1677856379,\"end\":null,\"canceled\":null,\"created\":1677856379,\"modified\":1677856379,\"message\":\"Test-Cancel_a_downtime_returns_OK_response-1677856379\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1679670779},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"e28aa10e-b9d5-11ed-b17f-da7ad0900002\",\"scope\":[\"test:testcanceladowntimereturnsokresponse1677856379\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2721264932,\"monitor_id\":null,\"org_id\":321813,\"start\":1677856380,\"end\":null,\"canceled\":null,\"created\":1677856380,\"modified\":1677856380,\"message\":\"Test-Cancel_downtimes_by_scope_returns_OK_response-1677856380\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1679670780},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"e30f994a-b9d5-11ed-8eda-da7ad0900002\",\"scope\":[\"test:testcanceldowntimesbyscopereturnsokresponse1677856380\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2721264942,\"monitor_id\":null,\"org_id\":321813,\"start\":1677856381,\"end\":null,\"canceled\":null,\"created\":1677856381,\"modified\":1677856381,\"message\":\"Test-Get_a_downtime_returns_OK_response-1677856381\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1679670781},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"e394449c-b9d5-11ed-b3b6-da7ad0900002\",\"scope\":[\"test:testgetadowntimereturnsokresponse1677856381\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2721265067,\"monitor_id\":null,\"org_id\":321813,\"start\":1677856382,\"end\":null,\"canceled\":null,\"created\":1677856382,\"modified\":1677856382,\"message\":\"Test-Schedule_a_downtime_returns_OK_response-1677856382\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1679670782},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"e45aa52e-b9d5-11ed-a784-da7ad0900002\",\"scope\":[\"test:testscheduleadowntimereturnsokresponse1677856382\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2721265130,\"monitor_id\":null,\"org_id\":321813,\"start\":1677856385,\"end\":null,\"canceled\":null,\"created\":1677856385,\"modified\":1677856385,\"message\":\"Test-Update_a_downtime_returns_OK_response-1677856385\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1679670785},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"e6276450-b9d5-11ed-8ac6-da7ad0900002\",\"scope\":[\"test:testupdateadowntimereturnsokresponse1677856385\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2721265226,\"monitor_id\":null,\"org_id\":321813,\"start\":1677856391,\"end\":null,\"canceled\":null,\"created\":1677856391,\"modified\":1677856391,\"message\":\"Test-TestScopedDowntime-1677856391\",\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"e991eb38-b9d5-11ed-93e6-da7ad0900002\",\"scope\":[\"test:client-TestScopedDowntime-1677856391554437000\",\"test:go-TestScopedDowntime-1677856391554437000\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2721273075,\"monitor_id\":null,\"org_id\":321813,\"start\":1677856631,\"end\":null,\"canceled\":null,\"created\":1677856631,\"modified\":1677856631,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"78454db6-b9d6-11ed-93a4-da7ad0900002\",\"scope\":[\"host:Test-TestHostsMuteErrors-1677856630\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2722701604,\"monitor_id\":null,\"org_id\":321813,\"start\":1677899298,\"end\":null,\"canceled\":null,\"created\":1677899298,\"modified\":1677899298,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"cfd485d4-ba39-11ed-9104-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1677899297\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2724671796,\"monitor_id\":null,\"org_id\":321813,\"start\":1677986443,\"end\":null,\"canceled\":null,\"created\":1677986443,\"modified\":1677986443,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"b6679c64-bb04-11ed-934b-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1677986443\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2726606375,\"monitor_id\":null,\"org_id\":321813,\"start\":1678073416,\"end\":null,\"canceled\":null,\"created\":1678073416,\"modified\":1678073416,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3691e474-bbcf-11ed-89d5-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1678073416\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2729396507,\"monitor_id\":null,\"org_id\":321813,\"start\":1678159094,\"end\":null,\"canceled\":null,\"created\":1678159094,\"modified\":1678159094,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"b2b48eae-bc96-11ed-997c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1678159094\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2732366148,\"monitor_id\":null,\"org_id\":321813,\"start\":1678246145,\"end\":null,\"canceled\":null,\"created\":1678246145,\"modified\":1678246145,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"6118481c-bd61-11ed-bd6f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1678246145\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2734798898,\"monitor_id\":null,\"org_id\":321813,\"start\":1678332523,\"end\":null,\"canceled\":null,\"created\":1678332523,\"modified\":1678332523,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"7e47effe-be2a-11ed-80cd-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1678332523\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2736093674,\"monitor_id\":105701177,\"org_id\":321813,\"start\":1678373827,\"end\":1688373727,\"canceled\":null,\"created\":1678373795,\"modified\":1678458742,\"message\":\"This one\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"days\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"America/New_York\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"968d8bd6-be8a-11ed-992b-da7ad0900002\",\"scope\":[\"animal:foo3\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2737791387,\"monitor_id\":null,\"org_id\":321813,\"start\":1678419048,\"end\":null,\"canceled\":null,\"created\":1678419048,\"modified\":1678419048,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"f3398a24-bef3-11ed-9652-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1678419048\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2740561826,\"monitor_id\":null,\"org_id\":321813,\"start\":1678504255,\"end\":null,\"canceled\":null,\"created\":1678504255,\"modified\":1678504255,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"56595758-bfba-11ed-b4fa-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1678504255\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2742533345,\"monitor_id\":null,\"org_id\":321813,\"start\":1678591465,\"end\":null,\"canceled\":null,\"created\":1678591465,\"modified\":1678591465,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"637b2daa-c085-11ed-afde-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1678591464\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2744464259,\"monitor_id\":null,\"org_id\":321813,\"start\":1678677871,\"end\":null,\"canceled\":null,\"created\":1678677871,\"modified\":1678677871,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"91f6362e-c14e-11ed-adfd-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1678677871\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2747305970,\"monitor_id\":null,\"org_id\":321813,\"start\":1678763407,\"end\":null,\"canceled\":null,\"created\":1678763407,\"modified\":1678763407,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"b93dc18a-c215-11ed-8912-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1678763407\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2750352650,\"monitor_id\":null,\"org_id\":321813,\"start\":1678850827,\"end\":null,\"canceled\":null,\"created\":1678850827,\"modified\":1678850827,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"4362d4ce-c2e1-11ed-b32f-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1678850827\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2753392718,\"monitor_id\":null,\"org_id\":321813,\"start\":1678937089,\"end\":null,\"canceled\":null,\"created\":1678937089,\"modified\":1678937089,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1b6f6aa8-c3aa-11ed-a17c-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1678937088\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2756384366,\"monitor_id\":null,\"org_id\":321813,\"start\":1679023438,\"end\":null,\"canceled\":null,\"created\":1679023438,\"modified\":1679023438,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"27abcec8-c473-11ed-abd1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1679023438\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2759184839,\"monitor_id\":null,\"org_id\":321813,\"start\":1679110073,\"end\":null,\"canceled\":null,\"created\":1679110073,\"modified\":1679110073,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"de7c4cc6-c53c-11ed-a206-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1679110073\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2761121698,\"monitor_id\":null,\"org_id\":321813,\"start\":1679195444,\"end\":null,\"canceled\":null,\"created\":1679195444,\"modified\":1679195444,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"a37c72b4-c603-11ed-b124-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1679195444\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2763030552,\"monitor_id\":null,\"org_id\":321813,\"start\":1679281598,\"end\":null,\"canceled\":null,\"created\":1679281598,\"modified\":1679281598,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3ae13306-c6cc-11ed-bd74-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1679281597\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2765932390,\"monitor_id\":null,\"org_id\":321813,\"start\":1679369074,\"end\":null,\"canceled\":null,\"created\":1679369074,\"modified\":1679369074,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"e6c71cd2-c797-11ed-aad1-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1679369074\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2768950414,\"monitor_id\":null,\"org_id\":321813,\"start\":1679454428,\"end\":null,\"canceled\":null,\"created\":1679454428,\"modified\":1679454428,\"message\":null,\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"a1decf80-c85e-11ed-a0e3-da7ad0900002\",\"scope\":[\"host:java-hostsMuteErrorsTest-local-1679454428\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2769430775,\"monitor_id\":null,\"org_id\":321813,\"start\":1679470403,\"end\":1679474003,\"canceled\":1679470404,\"created\":1679470404,\"modified\":1679470404,\"message\":\"Example-Schedule_a_downtime_once_a_year_1679470403\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"years\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"d40dc73e-c883-11ed-8997-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769430920,\"monitor_id\":null,\"org_id\":321813,\"start\":1679470410,\"end\":1679474010,\"canceled\":1679470411,\"created\":1679470410,\"modified\":1679470411,\"message\":\"Example-Schedule_a_downtime_until_date_1679470410\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681284810},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"d7e8320e-c883-11ed-9b3d-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769430970,\"monitor_id\":null,\"org_id\":321813,\"start\":1679470412,\"end\":1679474012,\"canceled\":1679470412,\"created\":1679470412,\"modified\":1679470412,\"message\":\"Example-Schedule_a_downtime_with_until_occurrences_1679470412\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":3,\"until_date\":null},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"d8fb8330-c883-11ed-a9ac-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769570391,\"monitor_id\":null,\"org_id\":321813,\"start\":1679475239,\"end\":null,\"canceled\":1679475241,\"created\":1679475240,\"modified\":1679475241,\"message\":\"Example-Get_a_downtime_returns_OK_response_1679475239\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681289639},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"168d9c5a-c88f-11ed-b22a-da7ad0900002\",\"scope\":[\"test:examplegetadowntimereturnsokresponse1679475239\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769570429,\"monitor_id\":null,\"org_id\":321813,\"start\":1679475242,\"end\":null,\"canceled\":1679475243,\"created\":1679475243,\"modified\":1679475243,\"message\":\"Example-Schedule_a_downtime_returns_OK_response_1679475242\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681289642},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"18479b86-c88f-11ed-ac93-da7ad0900002\",\"scope\":[\"test:examplescheduleadowntimereturnsokresponse1679475242\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769570422,\"monitor_id\":null,\"org_id\":321813,\"start\":1679475242,\"end\":null,\"canceled\":1679475243,\"created\":1679475242,\"modified\":1679475243,\"message\":\"Example-Update_a_downtime_returns_OK_response_1679475242-updated\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681289642},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"17e4619c-c88f-11ed-be88-da7ad0900002\",\"scope\":[\"test:exampleupdateadowntimereturnsokresponse1679475242\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769570484,\"monitor_id\":null,\"org_id\":321813,\"start\":1679475245,\"end\":null,\"canceled\":1679475246,\"created\":1679475245,\"modified\":1679475246,\"message\":\"Example-Cancel_a_downtime_returns_OK_response_1679475245\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681289645},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"19f10346-c88f-11ed-b49e-da7ad0900002\",\"scope\":[\"test:examplecanceladowntimereturnsokresponse1679475245\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769570699,\"monitor_id\":null,\"org_id\":321813,\"start\":1679475248,\"end\":null,\"canceled\":1679475250,\"created\":1679475249,\"modified\":1679475250,\"message\":\"Example-Cancel_downtimes_by_scope_returns_OK_response_1679475248\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681289648},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"1bd88e18-c88f-11ed-8c3e-da7ad0900002\",\"scope\":[\"test:examplecanceldowntimesbyscopereturnsokresponse1679475248\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769580952,\"monitor_id\":114364578,\"org_id\":321813,\"start\":1679475612,\"end\":null,\"canceled\":1679475614,\"created\":1679475613,\"modified\":1679475614,\"message\":\"Example-Schedule_a_monitor_downtime_returns_OK_response_1679475612\",\"active\":false,\"disabled\":true,\"recurrence\":null,\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"f5481bd2-c88f-11ed-8423-da7ad0900002\",\"scope\":[\"test:examplescheduleamonitordowntimereturnsokresponse1679475612\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769833430,\"monitor_id\":null,\"org_id\":321813,\"start\":1679483686,\"end\":null,\"canceled\":1679483690,\"created\":1679483688,\"modified\":1679483690,\"message\":\"Test-Typescript-Cancel_a_downtime_returns_OK_response-1679483686\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681298086},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"c25d9ef0-c8a2-11ed-b67f-da7ad0900002\",\"scope\":[\"test:testtypescriptcanceladowntimereturnsokresponse1679483686\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769833558,\"monitor_id\":null,\"org_id\":321813,\"start\":1679483692,\"end\":null,\"canceled\":1679483696,\"created\":1679483695,\"modified\":1679483696,\"message\":\"Test-Typescript-Cancel_downtimes_by_scope_returns_OK_response-1679483692\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681298092},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"c60c4fc4-c8a2-11ed-9eab-da7ad0900002\",\"scope\":[\"test:testtypescriptcanceldowntimesbyscopereturnsokresponse1679483692\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769833691,\"monitor_id\":null,\"org_id\":321813,\"start\":1679483698,\"end\":null,\"canceled\":1679483701,\"created\":1679483700,\"modified\":1679483701,\"message\":\"Test-Typescript-Get_a_downtime_returns_OK_response-1679483698\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681298098},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"c9815726-c8a2-11ed-b302-da7ad0900002\",\"scope\":[\"test:testtypescriptgetadowntimereturnsokresponse1679483698\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769833809,\"monitor_id\":null,\"org_id\":321813,\"start\":1679483701,\"end\":1679487301,\"canceled\":1679483704,\"created\":1679483704,\"modified\":1679483704,\"message\":\"Test-Typescript-Schedule_a_downtime_once_a_year-1679483701\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"years\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"cb81e00e-c8a2-11ed-8147-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769833984,\"monitor_id\":null,\"org_id\":321813,\"start\":1679483707,\"end\":null,\"canceled\":1679483710,\"created\":1679483709,\"modified\":1679483710,\"message\":\"Test-Typescript-Schedule_a_downtime_returns_OK_response-1679483707\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681298107},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"cedc3290-c8a2-11ed-879b-da7ad0900002\",\"scope\":[\"test:testtypescriptscheduleadowntimereturnsokresponse1679483707\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769834091,\"monitor_id\":null,\"org_id\":321813,\"start\":1679483710,\"end\":1679487310,\"canceled\":1679483714,\"created\":1679483713,\"modified\":1679483714,\"message\":\"Test-Typescript-Schedule_a_downtime_until_date-1679483710\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681298110},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"d12d815c-c8a2-11ed-9eef-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769834394,\"monitor_id\":null,\"org_id\":321813,\"start\":1679483721,\"end\":1679487321,\"canceled\":1679483724,\"created\":1679483724,\"modified\":1679483724,\"message\":\"Test-Typescript-Schedule_a_downtime_with_until_occurrences-1679483721\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":3,\"until_date\":null},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"d759916a-c8a2-11ed-8ddc-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769834572,\"monitor_id\":114371609,\"org_id\":321813,\"start\":1679483724,\"end\":null,\"canceled\":1679483728,\"created\":1679483727,\"modified\":1679483728,\"message\":\"Test-Typescript-Schedule_a_monitor_downtime_returns_OK_response-1679483724\",\"active\":false,\"disabled\":true,\"recurrence\":null,\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"d96d9366-c8a2-11ed-ba18-da7ad0900002\",\"scope\":[\"test:testtypescriptscheduleamonitordowntimereturnsokresponse1679483724\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769834782,\"monitor_id\":null,\"org_id\":321813,\"start\":1679483728,\"end\":null,\"canceled\":1679483732,\"created\":1679483731,\"modified\":1679483732,\"message\":\"Test-Typescript-Update_a_downtime_returns_OK_response-1679483728-updated\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681298128},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"db90fb7e-c8a2-11ed-a509-da7ad0900002\",\"scope\":[\"test:testtypescriptupdateadowntimereturnsokresponse1679483728\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769867564,\"monitor_id\":null,\"org_id\":321813,\"start\":1679484803,\"end\":1679488403,\"canceled\":1679484804,\"created\":1679484804,\"modified\":1679484804,\"message\":\"Example-Schedule_a_downtime_once_a_year_1679484803\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"years\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5b3442a8-c8a5-11ed-bcee-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769867674,\"monitor_id\":null,\"org_id\":321813,\"start\":1679484809,\"end\":1679488409,\"canceled\":1679484810,\"created\":1679484810,\"modified\":1679484810,\"message\":\"Example-Schedule_a_downtime_until_date_1679484809\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681299209},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5ea676c2-c8a5-11ed-9a59-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769867692,\"monitor_id\":null,\"org_id\":321813,\"start\":1679484810,\"end\":1679488410,\"canceled\":1679484811,\"created\":1679484811,\"modified\":1679484811,\"message\":\"Example-Schedule_a_downtime_with_until_occurrences_1679484810\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":3,\"until_date\":null},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5f4e81be-c8a5-11ed-8fd3-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769961924,\"monitor_id\":null,\"org_id\":321813,\"start\":1679487556,\"end\":null,\"canceled\":1679487558,\"created\":1679487556,\"modified\":1679487558,\"message\":\"tf-TestAccDatadogDowntime_DiffStart-local-1679487555\",\"active\":false,\"disabled\":true,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":2320499,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"c3be0754-c8ab-11ed-a3e1-da7ad0900002\",\"scope\":[\"new:somescope\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2770030155,\"monitor_id\":null,\"org_id\":321813,\"start\":1679489639,\"end\":null,\"canceled\":1679489641,\"created\":1679489640,\"modified\":1679489641,\"message\":\"Example-Get_a_downtime_returns_OK_response_1679489639\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681304039},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"9d9da26e-c8b0-11ed-a360-da7ad0900002\",\"scope\":[\"test:examplegetadowntimereturnsokresponse1679489639\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770030204,\"monitor_id\":null,\"org_id\":321813,\"start\":1679489641,\"end\":null,\"canceled\":1679489642,\"created\":1679489642,\"modified\":1679489642,\"message\":\"Example-Update_a_downtime_returns_OK_response_1679489641-updated\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681304041},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"9eadbe1e-c8b0-11ed-bb15-da7ad0900002\",\"scope\":[\"test:exampleupdateadowntimereturnsokresponse1679489641\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770030219,\"monitor_id\":null,\"org_id\":321813,\"start\":1679489643,\"end\":null,\"canceled\":1679489643,\"created\":1679489643,\"modified\":1679489643,\"message\":\"Example-Schedule_a_downtime_returns_OK_response_1679489643\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681304043},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"9f82b998-c8b0-11ed-9e59-da7ad0900002\",\"scope\":[\"test:examplescheduleadowntimereturnsokresponse1679489643\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770030355,\"monitor_id\":null,\"org_id\":321813,\"start\":1679489645,\"end\":null,\"canceled\":1679489646,\"created\":1679489645,\"modified\":1679489646,\"message\":\"Example-Cancel_a_downtime_returns_OK_response_1679489645\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681304045},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"a0dca952-c8b0-11ed-bb5c-da7ad0900002\",\"scope\":[\"test:examplecanceladowntimereturnsokresponse1679489645\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770030525,\"monitor_id\":null,\"org_id\":321813,\"start\":1679489648,\"end\":null,\"canceled\":1679489650,\"created\":1679489649,\"modified\":1679489650,\"message\":\"Example-Cancel_downtimes_by_scope_returns_OK_response_1679489648\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681304048},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"a2ea6284-c8b0-11ed-b322-da7ad0900002\",\"scope\":[\"test:examplecanceldowntimesbyscopereturnsokresponse1679489648\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770041810,\"monitor_id\":114376213,\"org_id\":321813,\"start\":1679490012,\"end\":null,\"canceled\":1679490014,\"created\":1679490013,\"modified\":1679490014,\"message\":\"Example-Schedule_a_monitor_downtime_returns_OK_response_1679490012\",\"active\":false,\"disabled\":true,\"recurrence\":null,\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"7c4c7b70-c8b1-11ed-9833-da7ad0900002\",\"scope\":[\"test:examplescheduleamonitordowntimereturnsokresponse1679490012\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2767070611,\"monitor_id\":110212070,\"org_id\":321813,\"start\":1679492045,\"end\":1679492075,\"canceled\":null,\"created\":1679405692,\"modified\":1679492092,\"message\":\"This one\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"days\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"America/New_York\",\"parent_id\":2764091228,\"child_id\":2770113401,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"ended\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"28ae1830-c7ed-11ed-a6b4-da7ad0900002\",\"scope\":[\"animal:foo4\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2769936028,\"monitor_id\":null,\"org_id\":321813,\"start\":1679497621,\"end\":1679501221,\"canceled\":1679486825,\"created\":1679486823,\"modified\":1679486825,\"message\":\"tf-TestAccDatadogDowntime_BasicWithMonitorTags-local-1679486821\",\"active\":false,\"disabled\":true,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":2320499,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"app:webserver\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"0ed848a0-c8aa-11ed-9eef-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2769936339,\"monitor_id\":114374093,\"org_id\":321813,\"start\":1679497624,\"end\":1679501224,\"canceled\":1679486829,\"created\":1679486826,\"modified\":1679486829,\"message\":\"tf-TestAccDatadogDowntime_BasicWithMonitor-local-1679486824\",\"active\":false,\"disabled\":true,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":2320499,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"10a0259a-c8aa-11ed-8de9-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2767447260,\"monitor_id\":null,\"org_id\":321813,\"start\":1679497983,\"end\":1679501583,\"canceled\":null,\"created\":1679415232,\"modified\":1679501633,\"message\":\"Test-Schedule_a_downtime_until_date-1677856383\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1679670783},\"timezone\":\"Etc/UTC\",\"parent_id\":2764446794,\"child_id\":2770482668,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":0,\"status\":\"ended\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5ef05974-c803-11ed-a19b-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2767447261,\"monitor_id\":null,\"org_id\":321813,\"start\":1679497990,\"end\":1679501590,\"canceled\":null,\"created\":1679415232,\"modified\":1679501633,\"message\":\"Test-TestDowntimeLifecycle-1677856390\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1679670790},\"timezone\":\"Etc/UTC\",\"parent_id\":2764446795,\"child_id\":2770482670,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":0,\"status\":\"ended\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5ef0691e-c803-11ed-a19c-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2767447262,\"monitor_id\":null,\"org_id\":321813,\"start\":1679497991,\"end\":1679501591,\"canceled\":null,\"created\":1679415232,\"modified\":1679501633,\"message\":\"Test-TestDowntimeRecurrence_until_date-1677856392; until date\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1679670791},\"timezone\":\"Etc/UTC\",\"parent_id\":2764446796,\"child_id\":2770482669,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":0,\"status\":\"ended\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"5ef0715c-c803-11ed-a19d-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770385514,\"monitor_id\":null,\"org_id\":321813,\"start\":1679499203,\"end\":1679502803,\"canceled\":1679499204,\"created\":1679499204,\"modified\":1679499204,\"message\":\"Example-Schedule_a_downtime_once_a_year_1679499203\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"years\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"e234f808-c8c6-11ed-87e1-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770385766,\"monitor_id\":null,\"org_id\":321813,\"start\":1679499210,\"end\":1679502810,\"canceled\":1679499211,\"created\":1679499210,\"modified\":1679499211,\"message\":\"Example-Schedule_a_downtime_until_date_1679499210\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681313610},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"e5f7ca38-c8c6-11ed-abd5-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770385809,\"monitor_id\":null,\"org_id\":321813,\"start\":1679499211,\"end\":1679502811,\"canceled\":1679499212,\"created\":1679499211,\"modified\":1679499212,\"message\":\"Example-Schedule_a_downtime_with_until_occurrences_1679499211\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":3,\"until_date\":null},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"e6a0de20-c8c6-11ed-ac07-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770578108,\"monitor_id\":null,\"org_id\":321813,\"start\":1679504039,\"end\":null,\"canceled\":1679504041,\"created\":1679504040,\"modified\":1679504041,\"message\":\"Example-Get_a_downtime_returns_OK_response_1679504039\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681318439},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"24b27b96-c8d2-11ed-8949-da7ad0900002\",\"scope\":[\"test:examplegetadowntimereturnsokresponse1679504039\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770578168,\"monitor_id\":null,\"org_id\":321813,\"start\":1679504041,\"end\":null,\"canceled\":1679504042,\"created\":1679504042,\"modified\":1679504042,\"message\":\"Example-Update_a_downtime_returns_OK_response_1679504041-updated\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681318441},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25c2bf50-c8d2-11ed-be23-da7ad0900002\",\"scope\":[\"test:exampleupdateadowntimereturnsokresponse1679504041\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770578292,\"monitor_id\":null,\"org_id\":321813,\"start\":1679504043,\"end\":null,\"canceled\":1679504044,\"created\":1679504043,\"modified\":1679504044,\"message\":\"Example-Schedule_a_downtime_returns_OK_response_1679504043\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681318443},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"26d6b284-c8d2-11ed-abf2-da7ad0900002\",\"scope\":[\"test:examplescheduleadowntimereturnsokresponse1679504043\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770578325,\"monitor_id\":null,\"org_id\":321813,\"start\":1679504045,\"end\":null,\"canceled\":1679504046,\"created\":1679504045,\"modified\":1679504046,\"message\":\"Example-Cancel_a_downtime_returns_OK_response_1679504045\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681318445},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"27ea7e4e-c8d2-11ed-865b-da7ad0900002\",\"scope\":[\"test:examplecanceladowntimereturnsokresponse1679504045\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770578384,\"monitor_id\":null,\"org_id\":321813,\"start\":1679504048,\"end\":null,\"canceled\":1679504050,\"created\":1679504049,\"modified\":1679504050,\"message\":\"Example-Cancel_downtimes_by_scope_returns_OK_response_1679504048\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1681318448},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"29ffe11a-c8d2-11ed-b57c-da7ad0900002\",\"scope\":[\"test:examplecanceldowntimesbyscopereturnsokresponse1679504048\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770593586,\"monitor_id\":114400169,\"org_id\":321813,\"start\":1679504412,\"end\":null,\"canceled\":1679504414,\"created\":1679504413,\"modified\":1679504414,\"message\":\"Example-Schedule_a_monitor_downtime_returns_OK_response_1679504412\",\"active\":false,\"disabled\":true,\"recurrence\":null,\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"035d396c-c8d3-11ed-9a03-da7ad0900002\",\"scope\":[\"test:examplescheduleamonitordowntimereturnsokresponse1679504412\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2768714875,\"monitor_id\":null,\"org_id\":321813,\"start\":1679529850,\"end\":1679533450,\"canceled\":null,\"created\":1679447092,\"modified\":1679447092,\"message\":\"Test-Go-TestDowntimeRecurrence_until_date-1677715451; until date\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1679529850},\"timezone\":\"Etc/UTC\",\"parent_id\":2765676300,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":0,\"status\":\"scheduled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"8d176d20-c84d-11ed-8a63-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2770113401,\"monitor_id\":110212070,\"org_id\":321813,\"start\":1679578445,\"end\":1679578475,\"canceled\":null,\"created\":1679492092,\"modified\":1679492092,\"message\":\"This one\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"days\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"America/New_York\",\"parent_id\":2767070611,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"scheduled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"53803b1e-c8b6-11ed-9b7d-da7ad0900002\",\"scope\":[\"animal:foo4\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770482668,\"monitor_id\":null,\"org_id\":321813,\"start\":1679584383,\"end\":1679587983,\"canceled\":null,\"created\":1679501633,\"modified\":1679501633,\"message\":\"Test-Schedule_a_downtime_until_date-1677856383\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1679670783},\"timezone\":\"Etc/UTC\",\"parent_id\":2767447260,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":0,\"status\":\"scheduled\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"89f5598e-c8cc-11ed-9df0-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770482670,\"monitor_id\":null,\"org_id\":321813,\"start\":1679584390,\"end\":1679587990,\"canceled\":null,\"created\":1679501633,\"modified\":1679501633,\"message\":\"Test-TestDowntimeLifecycle-1677856390\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1679670790},\"timezone\":\"Etc/UTC\",\"parent_id\":2767447261,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":0,\"status\":\"scheduled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"89f5679e-c8cc-11ed-9df2-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2770482669,\"monitor_id\":null,\"org_id\":321813,\"start\":1679584391,\"end\":1679587991,\"canceled\":null,\"created\":1679501633,\"modified\":1679501633,\"message\":\"Test-TestDowntimeRecurrence_until_date-1677856392; until date\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1679670791},\"timezone\":\"Etc/UTC\",\"parent_id\":2767447262,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":0,\"status\":\"scheduled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"89f56528-c8cc-11ed-9df1-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2565005611,\"monitor_id\":null,\"org_id\":321813,\"start\":1704499563,\"end\":1704503163,\"canceled\":null,\"created\":1672967185,\"modified\":1672967185,\"message\":\"Test-Go-Schedule_a_downtime_once_a_year-1672963563\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"years\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"Etc/UTC\",\"parent_id\":2564876174,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":0,\"status\":\"scheduled\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"62e3a8da-b23a-11ed-b25e-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2721390105,\"monitor_id\":null,\"org_id\":321813,\"start\":1709478781,\"end\":1709482381,\"canceled\":null,\"created\":1677860032,\"modified\":1677860032,\"message\":\"Test-Schedule_a_downtime_once_a_year-1677856381\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"years\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"Etc/UTC\",\"parent_id\":2721264952,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":0,\"status\":\"scheduled\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"639c9ac4-b9de-11ed-ba84-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":2721390104,\"monitor_id\":null,\"org_id\":321813,\"start\":1709478791,\"end\":1709482391,\"canceled\":null,\"created\":1677860032,\"modified\":1677860032,\"message\":\"Test-TestDowntimeRecurrence_once_a_year-1677856394; once a year\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"years\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"Etc/UTC\",\"parent_id\":2721265651,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":0,\"status\":\"scheduled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"639c81ba-b9de-11ed-ba83-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":1445416,\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":null}},{\"id\":1878944397,\"monitor_id\":null,\"org_id\":321813,\"start\":1735646400,\"end\":1735732799,\"canceled\":null,\"created\":1649943433,\"modified\":1649943433,\"message\":\"tf-TestAccDatadogDowntime_RRule-local-1649943431\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"rrule\",\"rrule\":\"FREQ=MONTHLY;BYSETPOS=3;BYDAY=WE;INTERVAL=1\"},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"scheduled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"2d0fd2d8-b23a-11ed-aa1a-da7ad0900002\",\"scope\":[\"RRuleRecurrence\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1965848156,\"monitor_id\":null,\"org_id\":321813,\"start\":1735646400,\"end\":1735732799,\"canceled\":null,\"created\":1653179652,\"modified\":1653179652,\"message\":\"tf-TestAccDatadogDowntime_RRule-local-1653179650\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"rrule\",\"rrule\":\"FREQ=MONTHLY;BYSETPOS=3;BYDAY=WE;INTERVAL=1\"},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"scheduled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30c35d3c-b23a-11ed-adaf-da7ad0900002\",\"scope\":[\"RRuleRecurrence\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1965848173,\"monitor_id\":null,\"org_id\":321813,\"start\":1735646400,\"end\":1735732799,\"canceled\":null,\"created\":1653179653,\"modified\":1653179653,\"message\":\"tf-TestAccDatadogDowntime_WeekDayRecurring-local-1653179650\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Sat\",\"Sun\"],\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"scheduled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30c3630e-b23a-11ed-adb0-da7ad0900002\",\"scope\":[\"WeekDaysRecurrence\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2597640957,\"monitor_id\":null,\"org_id\":321813,\"start\":1735646400,\"end\":1735732799,\"canceled\":null,\"created\":1674043991,\"modified\":1674043991,\"message\":\"tf-TestAccDatadogDowntime_WeekDayRecurring-local-1674043990\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Sat\",\"Sun\"],\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"scheduled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"67891b7c-b23a-11ed-9ab5-da7ad0900002\",\"scope\":[\"WeekDaysRecurrence\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2769962029,\"monitor_id\":null,\"org_id\":321813,\"start\":1735646400,\"end\":1735732799,\"canceled\":1679487563,\"created\":1679487561,\"modified\":1679487563,\"message\":\"tf-TestAccDatadogDowntime_RRule-local-1679487559\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"rrule\",\"rrule\":\"FREQ=MONTHLY;BYSETPOS=3;BYDAY=WE;INTERVAL=1\"},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":2320499,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"c6ba1a2e-c8ab-11ed-905f-da7ad0900002\",\"scope\":[\"scope:RRuleRecurrence\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2769962078,\"monitor_id\":null,\"org_id\":321813,\"start\":1735646400,\"end\":1735732799,\"canceled\":1679487566,\"created\":1679487565,\"modified\":1679487566,\"message\":\"tf-TestAccDatadogDowntime_WeekDayRecurring-local-1679487563\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Sat\",\"Sun\"],\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":2320499,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"c8d8bec8-c8ab-11ed-bfdf-da7ad0900002\",\"scope\":[\"scope:WeekDaysRecurrence\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1965848064,\"monitor_id\":null,\"org_id\":321813,\"start\":1735707600,\"end\":1735765200,\"canceled\":null,\"created\":1653179649,\"modified\":1653179649,\"message\":\"tf-TestAccDatadogDowntime_TrimWhitespace-local-1653179647\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"days\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"scheduled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30c358aa-b23a-11ed-adad-da7ad0900002\",\"scope\":[\"host:Whitespace\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1965848072,\"monitor_id\":null,\"org_id\":321813,\"start\":1735707600,\"end\":1735765200,\"canceled\":null,\"created\":1653179650,\"modified\":1653179650,\"message\":\"tf-TestAccDatadogDowntime_Updated-local-1653179648\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"days\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":0,\"status\":\"scheduled\",\"monitor_tags\":[\"app:webserver\",\"service\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30c35b34-b23a-11ed-adae-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1965848231,\"monitor_id\":null,\"org_id\":321813,\"start\":1735707600,\"end\":1735765200,\"canceled\":null,\"created\":1653179657,\"modified\":1653179657,\"message\":\"tf-TestAccDatadogDowntime_BasicNoRecurrence-local-1653179655\",\"active\":false,\"disabled\":false,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"scheduled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30c36516-b23a-11ed-adb1-da7ad0900002\",\"scope\":[\"host:NoRecurrence\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1965848233,\"monitor_id\":null,\"org_id\":321813,\"start\":1735707600,\"end\":1735765200,\"canceled\":null,\"created\":1653179658,\"modified\":1653179658,\"message\":\"tf-TestAccDatadogDowntime_BasicMultiScope-local-1653179656\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"days\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":2,\"status\":\"scheduled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30c367fa-b23a-11ed-adb2-da7ad0900002\",\"scope\":[\"host:A\",\"host:B\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2245041146,\"monitor_id\":null,\"org_id\":321813,\"start\":1735707600,\"end\":1735765200,\"canceled\":null,\"created\":1663158585,\"modified\":1663158585,\"message\":\"tf-TestAccDatadogDowntime_BasicUntilOccurrencesRecurrence-local-1663158584\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"days\",\"period\":1,\"week_days\":null,\"until_occurrences\":5,\"until_date\":null},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":1,\"status\":\"scheduled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"41a4b5d8-b23a-11ed-a80f-da7ad0900002\",\"scope\":[\"host:UntilOccurrencesRecurrence\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2769935690,\"monitor_id\":null,\"org_id\":321813,\"start\":1735707600,\"end\":1735765200,\"canceled\":1679486814,\"created\":1679486812,\"modified\":1679486814,\"message\":\"tf-TestAccDatadogDowntime_BasicUntilOccurrencesRecurrence-local-1679486810\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"days\",\"period\":1,\"week_days\":null,\"until_occurrences\":5,\"until_date\":null},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":2320499,\"downtime_type\":1,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"0827bb80-c8aa-11ed-879e-da7ad0900002\",\"scope\":[\"host:UntilOccurrencesRecurrence\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2769935803,\"monitor_id\":null,\"org_id\":321813,\"start\":1735707600,\"end\":1735765200,\"canceled\":1679486817,\"created\":1679486815,\"modified\":1679486817,\"message\":\"tf-TestAccDatadogDowntime_BasicUntilDateRecurrence-local-1679486814\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"days\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":1736226000},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":2320499,\"downtime_type\":1,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"0a36e702-c8aa-11ed-a28e-da7ad0900002\",\"scope\":[\"host:UntilDateRecurrence\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2769935899,\"monitor_id\":null,\"org_id\":321813,\"start\":1735707600,\"end\":1735765200,\"canceled\":1679486820,\"created\":1679486819,\"modified\":1679486820,\"message\":\"tf-TestAccDatadogDowntime_BasicNoRecurrence-local-1679486817\",\"active\":false,\"disabled\":true,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":2320499,\"downtime_type\":1,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"0c38769c-c8aa-11ed-8dcb-da7ad0900002\",\"scope\":[\"host:NoRecurrence\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2769936000,\"monitor_id\":null,\"org_id\":321813,\"start\":1735707600,\"end\":1735765200,\"canceled\":1679486824,\"created\":1679486822,\"modified\":1679486824,\"message\":\"tf-TestAccDatadogDowntime_BasicMultiScope-local-1679486820\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"days\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":2320499,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"0e3193f2-c8aa-11ed-aa3d-da7ad0900002\",\"scope\":[\"host:A\",\"host:B\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2769936356,\"monitor_id\":null,\"org_id\":321813,\"start\":1735707600,\"end\":1735765200,\"canceled\":1679486829,\"created\":1679486827,\"modified\":1679486829,\"message\":\"tf-TestAccDatadogDowntime_Basic-local-1679486826\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"days\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":2320499,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"app:webserver\",\"service\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"11381580-c8aa-11ed-a88a-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2769961950,\"monitor_id\":null,\"org_id\":321813,\"start\":1735707600,\"end\":1735765200,\"canceled\":1679487559,\"created\":1679487558,\"modified\":1679487559,\"message\":\"tf-TestAccDatadogDowntime_TrimWhitespace-local-1679487556\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"days\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":2320499,\"downtime_type\":1,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"c495fdb2-c8ab-11ed-87ac-da7ad0900002\",\"scope\":[\"host:Whitespace\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2769962082,\"monitor_id\":null,\"org_id\":321813,\"start\":1735707600,\"end\":1735765200,\"canceled\":1679487567,\"created\":1679487565,\"modified\":1679487567,\"message\":\"Example Datadog downtime message.\",\"active\":false,\"disabled\":true,\"recurrence\":null,\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":2320499,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"foo:bar\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"c9303e00-c8ab-11ed-8a05-da7ad0900002\",\"scope\":[\"host:X\",\"host:Y\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2769962022,\"monitor_id\":null,\"org_id\":321813,\"start\":1735707600,\"end\":1735765200,\"canceled\":1679487563,\"created\":1679487560,\"modified\":1679487563,\"message\":\"tf-TestAccDatadogDowntime_Updated-local-1679487558\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"days\",\"period\":3,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":2320499,\"downtime_type\":2,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"c5e6c1ba-c8ab-11ed-8d95-da7ad0900002\",\"scope\":[\"scope:Updated\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":1965848033,\"monitor_id\":null,\"org_id\":321813,\"start\":4097124660,\"end\":4097160000,\"canceled\":null,\"created\":1653179646,\"modified\":1653179646,\"message\":\"tf-TestAccDatadogDowntimeDates-local-1653179644\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"days\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":0,\"status\":\"scheduled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"30c353aa-b23a-11ed-adab-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2054437499,\"monitor_id\":null,\"org_id\":321813,\"start\":4097124660,\"end\":4097160000,\"canceled\":null,\"created\":1656591274,\"modified\":1656591274,\"message\":\"tf-TestAccDatadogDowntimeDates-local-1656591273\",\"active\":false,\"disabled\":false,\"recurrence\":{\"type\":\"days\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":null,\"downtime_type\":0,\"status\":\"scheduled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"3727526e-b23a-11ed-aedf-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}},{\"id\":2769961903,\"monitor_id\":null,\"org_id\":321813,\"start\":4097124660,\"end\":4097160000,\"canceled\":1679487556,\"created\":1679487554,\"modified\":1679487556,\"message\":\"tf-TestAccDatadogDowntimeDates-local-1679487552\",\"active\":false,\"disabled\":true,\"recurrence\":{\"type\":\"days\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":2320499,\"updater_id\":2320499,\"downtime_type\":0,\"status\":\"canceled\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"c280e320-c8ab-11ed-bde0-da7ad0900002\",\"scope\":[\"*\"],\"creator\":{\"id\":2320499,\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"}}]\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 22 Mar 2023 17:28:50 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-once-a-year.json b/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-once-a-year.json index ce2611943..784779724 100644 --- a/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-once-a-year.json +++ b/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-once-a-year.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"end\":1683227857,\"message\":\"Test-Schedule_a_downtime_once_a_year-1683224257\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_states\":[\"alert\",\"warn\"],\"notify_end_types\":[\"expired\"],\"recurrence\":{\"period\":1,\"type\":\"years\"},\"scope\":[\"*\"],\"start\":1683224257,\"timezone\":\"Etc/UTC\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/downtime"}, "response": {"body": {"string": "{\"id\":2890657808,\"monitor_id\":null,\"org_id\":321813,\"start\":1683224257,\"end\":1683227857,\"canceled\":null,\"created\":1683224258,\"modified\":1683224258,\"message\":\"Test-Schedule_a_downtime_once_a_year-1683224257\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"years\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":0,\"status\":\"active\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"warn\"],\"uuid\":\"f3d207ba-eaa7-11ed-8667-da7ad0900002\",\"scope\":[\"*\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 04 May 2023 18:17:37 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/downtime/2890657808"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 04 May 2023 18:17:37 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"end\":1683227857,\"message\":\"Test-Schedule_a_downtime_once_a_year-1683224257\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_states\":[\"alert\",\"warn\"],\"notify_end_types\":[\"expired\"],\"recurrence\":{\"period\":1,\"type\":\"years\"},\"scope\":[\"*\"],\"start\":1683224257,\"timezone\":\"Etc/UTC\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/downtime" + }, + "response": { + "body": { + "string": "{\"id\":2890657808,\"monitor_id\":null,\"org_id\":321813,\"start\":1683224257,\"end\":1683227857,\"canceled\":null,\"created\":1683224258,\"modified\":1683224258,\"message\":\"Test-Schedule_a_downtime_once_a_year-1683224257\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"years\",\"period\":1,\"week_days\":null,\"until_occurrences\":null,\"until_date\":null},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":0,\"status\":\"active\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"warn\"],\"uuid\":\"f3d207ba-eaa7-11ed-8667-da7ad0900002\",\"scope\":[\"*\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 04 May 2023 18:17:37 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/downtime/2890657808" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 04 May 2023 18:17:37 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-returns-Bad-Request-response.json index 167388f4c..da71de672 100644 --- a/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-returns-Bad-Request-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"monitor_tags\":[\"tag0\",\"tag1\",\"tag2\",\"tag3\",\"tag4\",\"tag5\",\"tag6\",\"tag7\",\"tag8\",\"tag9\",\"tag10\",\"tag11\",\"tag12\",\"tag13\",\"tag14\",\"tag15\",\"tag16\",\"tag17\",\"tag18\",\"tag19\",\"tag20\",\"tag21\",\"tag22\",\"tag23\",\"tag24\",\"tag25\",\"tag26\",\"tag27\",\"tag28\",\"tag29\",\"tag30\",\"tag31\",\"tag32\",\"tag33\",\"tag34\",\"tag35\",\"tag36\",\"tag37\",\"tag38\",\"tag39\",\"tag40\",\"tag41\",\"tag42\",\"tag43\",\"tag44\",\"tag45\",\"tag46\",\"tag47\",\"tag48\",\"tag49\"]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/downtime"}, "response": {"body": {"string": "{\"errors\":[\"Invalid scope parameter\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:47 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"monitor_tags\":[\"tag0\",\"tag1\",\"tag2\",\"tag3\",\"tag4\",\"tag5\",\"tag6\",\"tag7\",\"tag8\",\"tag9\",\"tag10\",\"tag11\",\"tag12\",\"tag13\",\"tag14\",\"tag15\",\"tag16\",\"tag17\",\"tag18\",\"tag19\",\"tag20\",\"tag21\",\"tag22\",\"tag23\",\"tag24\",\"tag25\",\"tag26\",\"tag27\",\"tag28\",\"tag29\",\"tag30\",\"tag31\",\"tag32\",\"tag33\",\"tag34\",\"tag35\",\"tag36\",\"tag37\",\"tag38\",\"tag39\",\"tag40\",\"tag41\",\"tag42\",\"tag43\",\"tag44\",\"tag45\",\"tag46\",\"tag47\",\"tag48\",\"tag49\"]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/downtime" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Invalid scope parameter\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:47 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-returns-OK-response.json b/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-returns-OK-response.json index e4b52e5f1..34dde6fdb 100644 --- a/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-returns-OK-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"end\":1684769697,\"message\":\"Test-Schedule_a_downtime_returns_OK_response-1684766097\",\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"notify_end_types\":[\"canceled\",\"expired\"],\"recurrence\":{\"period\":1,\"type\":\"weeks\",\"until_date\":1686580497,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"]},\"scope\":[\"test:testscheduleadowntimereturnsokresponse1684766097\"],\"start\":1684766097,\"timezone\":\"Etc/UTC\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/downtime"}, "response": {"body": {"string": "{\"id\":2941976753,\"monitor_id\":null,\"org_id\":321813,\"start\":1684766097,\"end\":1684769697,\"canceled\":null,\"created\":1684766098,\"modified\":1684766098,\"message\":\"Test-Schedule_a_downtime_returns_OK_response-1684766097\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1686580497},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"canceled\",\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"d3b49b1e-f8ad-11ed-a3ce-da7ad0900002\",\"scope\":[\"test:testscheduleadowntimereturnsokresponse1684766097\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 22 May 2023 14:34:57 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/downtime/2941976753"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 22 May 2023 14:34:57 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"end\":1684769697,\"message\":\"Test-Schedule_a_downtime_returns_OK_response-1684766097\",\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"notify_end_types\":[\"canceled\",\"expired\"],\"recurrence\":{\"period\":1,\"type\":\"weeks\",\"until_date\":1686580497,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"]},\"scope\":[\"test:testscheduleadowntimereturnsokresponse1684766097\"],\"start\":1684766097,\"timezone\":\"Etc/UTC\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/downtime" + }, + "response": { + "body": { + "string": "{\"id\":2941976753,\"monitor_id\":null,\"org_id\":321813,\"start\":1684766097,\"end\":1684769697,\"canceled\":null,\"created\":1684766098,\"modified\":1684766098,\"message\":\"Test-Schedule_a_downtime_returns_OK_response-1684766097\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1686580497},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"canceled\",\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"d3b49b1e-f8ad-11ed-a3ce-da7ad0900002\",\"scope\":[\"test:testscheduleadowntimereturnsokresponse1684766097\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 22 May 2023 14:34:57 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/downtime/2941976753" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 22 May 2023 14:34:57 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-until-date.json b/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-until-date.json index e3cdd0ecb..aeb229e95 100644 --- a/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-until-date.json +++ b/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-until-date.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"end\":1683227859,\"message\":\"Test-Schedule_a_downtime_until_date-1683224259\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_states\":[\"alert\"],\"notify_end_types\":[\"canceled\"],\"recurrence\":{\"period\":1,\"type\":\"weeks\",\"until_date\":1685038659,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"]},\"scope\":[\"*\"],\"start\":1683224259,\"timezone\":\"Etc/UTC\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/downtime"}, "response": {"body": {"string": "{\"id\":2890657859,\"monitor_id\":null,\"org_id\":321813,\"start\":1683224259,\"end\":1683227859,\"canceled\":null,\"created\":1683224259,\"modified\":1683224259,\"message\":\"Test-Schedule_a_downtime_until_date-1683224259\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1685038659},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":0,\"status\":\"active\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"canceled\"],\"notify_end_states\":[\"alert\"],\"uuid\":\"f441cca8-eaa7-11ed-8c83-da7ad0900002\",\"scope\":[\"*\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 04 May 2023 18:17:39 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/downtime/2890657859"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 04 May 2023 18:17:39 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"end\":1683227859,\"message\":\"Test-Schedule_a_downtime_until_date-1683224259\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_states\":[\"alert\"],\"notify_end_types\":[\"canceled\"],\"recurrence\":{\"period\":1,\"type\":\"weeks\",\"until_date\":1685038659,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"]},\"scope\":[\"*\"],\"start\":1683224259,\"timezone\":\"Etc/UTC\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/downtime" + }, + "response": { + "body": { + "string": "{\"id\":2890657859,\"monitor_id\":null,\"org_id\":321813,\"start\":1683224259,\"end\":1683227859,\"canceled\":null,\"created\":1683224259,\"modified\":1683224259,\"message\":\"Test-Schedule_a_downtime_until_date-1683224259\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1685038659},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":0,\"status\":\"active\",\"monitor_tags\":[\"tag0\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"canceled\"],\"notify_end_states\":[\"alert\"],\"uuid\":\"f441cca8-eaa7-11ed-8c83-da7ad0900002\",\"scope\":[\"*\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 04 May 2023 18:17:39 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/downtime/2890657859" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 04 May 2023 18:17:39 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-with-invalid-type-hours.json b/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-with-invalid-type-hours.json index a5abce789..ffea2106b 100644 --- a/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-with-invalid-type-hours.json +++ b/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-with-invalid-type-hours.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"end\":1657667266,\"message\":\"Test-Schedule_a_downtime_with_invalid_type_hours-1657663666\",\"monitor_tags\":[\"tag0\"],\"recurrence\":{\"period\":1,\"type\":\"hours\"},\"scope\":[\"*\"],\"start\":1657663666,\"timezone\":\"Etc/UTC\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/downtime"}, "response": {"body": {"string": "{\"errors\": [\"Invalid recurrence type\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Tue, 12 Jul 2022 22:07:46 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"end\":1657667266,\"message\":\"Test-Schedule_a_downtime_with_invalid_type_hours-1657663666\",\"monitor_tags\":[\"tag0\"],\"recurrence\":{\"period\":1,\"type\":\"hours\"},\"scope\":[\"*\"],\"start\":1657663666,\"timezone\":\"Etc/UTC\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/downtime" + }, + "response": { + "body": { + "string": "{\"errors\": [\"Invalid recurrence type\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Tue, 12 Jul 2022 22:07:46 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-with-invalid-weekdays.json b/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-with-invalid-weekdays.json index 6d29668e5..18b54e6de 100644 --- a/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-with-invalid-weekdays.json +++ b/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-with-invalid-weekdays.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"end\":1657667266,\"message\":\"Test-Schedule_a_downtime_with_invalid_weekdays-1657663666\",\"monitor_tags\":[\"tag0\"],\"recurrence\":{\"period\":1,\"type\":\"weeks\",\"week_days\":[\"mon\",\"tue\"]},\"scope\":[\"*\"],\"start\":1657663666,\"timezone\":\"Etc/UTC\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/downtime"}, "response": {"body": {"string": "{\"errors\": [\"Invalid set of days in week_days. Be sure that the first letter is capitalized.\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Tue, 12 Jul 2022 22:07:46 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"end\":1657667266,\"message\":\"Test-Schedule_a_downtime_with_invalid_weekdays-1657663666\",\"monitor_tags\":[\"tag0\"],\"recurrence\":{\"period\":1,\"type\":\"weeks\",\"week_days\":[\"mon\",\"tue\"]},\"scope\":[\"*\"],\"start\":1657663666,\"timezone\":\"Etc/UTC\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/downtime" + }, + "response": { + "body": { + "string": "{\"errors\": [\"Invalid set of days in week_days. Be sure that the first letter is capitalized.\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Tue, 12 Jul 2022 22:07:46 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-with-mutually-exclusive-until-occurrences-and-until-date-properties.json b/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-with-mutually-exclusive-until-occurrences-and-until-date-properties.json index 009ed26ee..2b3a0961a 100644 --- a/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-with-mutually-exclusive-until-occurrences-and-until-date-properties.json +++ b/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-with-mutually-exclusive-until-occurrences-and-until-date-properties.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"end\":1657667266,\"message\":\"Test-Schedule_a_downtime_with_mutually_exclusive_until_occurrences_and_until_date_properties-1657663666\",\"monitor_tags\":[\"tag0\"],\"recurrence\":{\"period\":1,\"type\":\"weeks\",\"until_date\":1659478066,\"until_occurrences\":3,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"]},\"scope\":[\"*\"],\"start\":1657663666,\"timezone\":\"Etc/UTC\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/downtime"}, "response": {"body": {"string": "{\"errors\": [\"You must provide only provide one of (until_occurrences, until_date)\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Tue, 12 Jul 2022 22:07:46 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"end\":1657667266,\"message\":\"Test-Schedule_a_downtime_with_mutually_exclusive_until_occurrences_and_until_date_properties-1657663666\",\"monitor_tags\":[\"tag0\"],\"recurrence\":{\"period\":1,\"type\":\"weeks\",\"until_date\":1659478066,\"until_occurrences\":3,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"]},\"scope\":[\"*\"],\"start\":1657663666,\"timezone\":\"Etc/UTC\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/downtime" + }, + "response": { + "body": { + "string": "{\"errors\": [\"You must provide only provide one of (until_occurrences, until_date)\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Tue, 12 Jul 2022 22:07:46 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-with-until-occurrences.json b/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-with-until-occurrences.json index 543c266a2..9637fda2d 100644 --- a/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-with-until-occurrences.json +++ b/tests/scenarios/cassettes/v1/downtimes/Schedule-a-downtime-with-until-occurrences.json @@ -1 +1,63 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"end\":1657667267,\"message\":\"Test-Schedule_a_downtime_with_until_occurrences-1657663667\",\"monitor_tags\":[\"tag0\"],\"recurrence\":{\"period\":1,\"type\":\"weeks\",\"until_occurrences\":3,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"]},\"scope\":[\"*\"],\"start\":1657663667,\"timezone\":\"Etc/UTC\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/downtime"}, "response": {"body": {"string": "{\"recurrence\":{\"until_date\":null,\"until_occurrences\":3,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"type\":\"weeks\",\"period\":1},\"end\":1657667267,\"monitor_tags\":[\"tag0\"],\"child_id\":null,\"canceled\":null,\"monitor_id\":null,\"mute_first_recovery_notification\":false,\"created\":1657663667,\"org_id\":321813,\"modified\":1657663667,\"disabled\":false,\"start\":1657663667,\"creator_id\":1445416,\"parent_id\":null,\"timezone\":\"Etc/UTC\",\"active\":true,\"scope\":[\"*\"],\"message\":\"Test-Schedule_a_downtime_with_until_occurrences-1657663667\",\"downtime_type\":0,\"id\":2082107712,\"updater_id\":null}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 12 Jul 2022 22:07:47 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/downtime/2082107712"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Tue, 12 Jul 2022 22:07:47 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"end\":1657667267,\"message\":\"Test-Schedule_a_downtime_with_until_occurrences-1657663667\",\"monitor_tags\":[\"tag0\"],\"recurrence\":{\"period\":1,\"type\":\"weeks\",\"until_occurrences\":3,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"]},\"scope\":[\"*\"],\"start\":1657663667,\"timezone\":\"Etc/UTC\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/downtime" + }, + "response": { + "body": { + "string": "{\"recurrence\":{\"until_date\":null,\"until_occurrences\":3,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"type\":\"weeks\",\"period\":1},\"end\":1657667267,\"monitor_tags\":[\"tag0\"],\"child_id\":null,\"canceled\":null,\"monitor_id\":null,\"mute_first_recovery_notification\":false,\"created\":1657663667,\"org_id\":321813,\"modified\":1657663667,\"disabled\":false,\"start\":1657663667,\"creator_id\":1445416,\"parent_id\":null,\"timezone\":\"Etc/UTC\",\"active\":true,\"scope\":[\"*\"],\"message\":\"Test-Schedule_a_downtime_with_until_occurrences-1657663667\",\"downtime_type\":0,\"id\":2082107712,\"updater_id\":null}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 12 Jul 2022 22:07:47 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/downtime/2082107712" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Tue, 12 Jul 2022 22:07:47 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/downtimes/Schedule-a-monitor-downtime-returns-OK-response.json b/tests/scenarios/cassettes/v1/downtimes/Schedule-a-monitor-downtime-returns-OK-response.json index e13aa3d54..08b4b1681 100644 --- a/tests/scenarios/cassettes/v1/downtimes/Schedule-a-monitor-downtime-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/downtimes/Schedule-a-monitor-downtime-returns-OK-response.json @@ -1 +1,129 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Schedule_a_monitor_downtime_returns_OK_response-1674067037\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2,\"warning\":1},\"timeout_h\":24},\"priority\":3,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"tags\":[\"test:testscheduleamonitordowntimereturnsokresponse1674067037\",\"env:ci\"],\"type\":\"log alert\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/monitor"}, "response": {"body": {"string": "{\"id\":108260301,\"org_id\":321813,\"type\":\"log alert\",\"name\":\"Test-Schedule_a_monitor_downtime_returns_OK_response-1674067037\",\"message\":\"some message Notify: @hipchat-channel\",\"tags\":[\"test:testscheduleamonitordowntimereturnsokresponse1674067037\",\"env:ci\"],\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2.0,\"warning\":1.0},\"timeout_h\":24,\"silenced\":{}},\"multi\":true,\"created_at\":1674067037000,\"created\":\"2023-01-18T18:37:17.701290+00:00\",\"modified\":\"2023-01-18T18:37:17.701290+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"id\":1445416}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 18 Jan 2023 18:37:17 GMT"}, {"request": {"body": {"string": "{\"message\":\"Test-Schedule_a_monitor_downtime_returns_OK_response-1674067037\",\"monitor_id\":108260301,\"scope\":[\"test:testscheduleamonitordowntimereturnsokresponse1674067037\"],\"start\":1674067037,\"timezone\":\"Etc/UTC\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/downtime"}, "response": {"body": {"string": "{\"id\":2598558218,\"monitor_id\":108260301,\"org_id\":321813,\"start\":1674067037,\"end\":null,\"canceled\":null,\"created\":1674067037,\"modified\":1674067037,\"message\":\"Test-Schedule_a_monitor_downtime_returns_OK_response-1674067037\",\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":2,\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"scope\":[\"test:testscheduleamonitordowntimereturnsokresponse1674067037\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 18 Jan 2023 18:37:17 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/downtime/2598558218"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 18 Jan 2023 18:37:17 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/monitor/108260301"}, "response": {"body": {"string": "{\"deleted_monitor_id\":108260301}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 18 Jan 2023 18:37:17 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Schedule_a_monitor_downtime_returns_OK_response-1674067037\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2,\"warning\":1},\"timeout_h\":24},\"priority\":3,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"tags\":[\"test:testscheduleamonitordowntimereturnsokresponse1674067037\",\"env:ci\"],\"type\":\"log alert\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/monitor" + }, + "response": { + "body": { + "string": "{\"id\":108260301,\"org_id\":321813,\"type\":\"log alert\",\"name\":\"Test-Schedule_a_monitor_downtime_returns_OK_response-1674067037\",\"message\":\"some message Notify: @hipchat-channel\",\"tags\":[\"test:testscheduleamonitordowntimereturnsokresponse1674067037\",\"env:ci\"],\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2.0,\"warning\":1.0},\"timeout_h\":24,\"silenced\":{}},\"multi\":true,\"created_at\":1674067037000,\"created\":\"2023-01-18T18:37:17.701290+00:00\",\"modified\":\"2023-01-18T18:37:17.701290+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"id\":1445416}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 18 Jan 2023 18:37:17 GMT" + }, + { + "request": { + "body": { + "string": "{\"message\":\"Test-Schedule_a_monitor_downtime_returns_OK_response-1674067037\",\"monitor_id\":108260301,\"scope\":[\"test:testscheduleamonitordowntimereturnsokresponse1674067037\"],\"start\":1674067037,\"timezone\":\"Etc/UTC\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/downtime" + }, + "response": { + "body": { + "string": "{\"id\":2598558218,\"monitor_id\":108260301,\"org_id\":321813,\"start\":1674067037,\"end\":null,\"canceled\":null,\"created\":1674067037,\"modified\":1674067037,\"message\":\"Test-Schedule_a_monitor_downtime_returns_OK_response-1674067037\",\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":2,\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"scope\":[\"test:testscheduleamonitordowntimereturnsokresponse1674067037\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 18 Jan 2023 18:37:17 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/downtime/2598558218" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 18 Jan 2023 18:37:17 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/monitor/108260301" + }, + "response": { + "body": { + "string": "{\"deleted_monitor_id\":108260301}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 18 Jan 2023 18:37:17 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/downtimes/Update-a-downtime-returns-OK-response.json b/tests/scenarios/cassettes/v1/downtimes/Update-a-downtime-returns-OK-response.json index ee7225e6a..63cbb1551 100644 --- a/tests/scenarios/cassettes/v1/downtimes/Update-a-downtime-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/downtimes/Update-a-downtime-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"end\":1684769834,\"message\":\"Test-Update_a_downtime_returns_OK_response-1684766234\",\"recurrence\":{\"period\":1,\"type\":\"weeks\",\"until_date\":1686580634,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"]},\"scope\":[\"test:testupdateadowntimereturnsokresponse1684766234\"],\"start\":1684766234,\"timezone\":\"Etc/UTC\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/downtime"}, "response": {"body": {"string": "{\"id\":2941982639,\"monitor_id\":null,\"org_id\":321813,\"start\":1684766234,\"end\":1684769834,\"canceled\":null,\"created\":1684766235,\"modified\":1684766235,\"message\":\"Test-Update_a_downtime_returns_OK_response-1684766234\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1686580634},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25399c6e-f8ae-11ed-b261-da7ad0900002\",\"scope\":[\"test:testupdateadowntimereturnsokresponse1684766234\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 22 May 2023 14:37:14 GMT"}, {"request": {"body": {"string": "{\"message\":\"Test-Update_a_downtime_returns_OK_response-1684766234-updated\",\"mute_first_recovery_notification\":true,\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"notify_end_types\":[\"canceled\",\"expired\"]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "put", "uri": "https://api.datadoghq.com/api/v1/downtime/2941982639"}, "response": {"body": {"string": "{\"id\":2941982639,\"monitor_id\":null,\"org_id\":321813,\"start\":1684766234,\"end\":1684769834,\"canceled\":null,\"created\":1684766235,\"modified\":1684766235,\"message\":\"Test-Update_a_downtime_returns_OK_response-1684766234-updated\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1686580634},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"canceled\",\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":null,\"scope\":[\"test:testupdateadowntimereturnsokresponse1684766234\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 22 May 2023 14:37:14 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/downtime/2941982639"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 22 May 2023 14:37:14 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"end\":1684769834,\"message\":\"Test-Update_a_downtime_returns_OK_response-1684766234\",\"recurrence\":{\"period\":1,\"type\":\"weeks\",\"until_date\":1686580634,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"]},\"scope\":[\"test:testupdateadowntimereturnsokresponse1684766234\"],\"start\":1684766234,\"timezone\":\"Etc/UTC\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/downtime" + }, + "response": { + "body": { + "string": "{\"id\":2941982639,\"monitor_id\":null,\"org_id\":321813,\"start\":1684766234,\"end\":1684769834,\"canceled\":null,\"created\":1684766235,\"modified\":1684766235,\"message\":\"Test-Update_a_downtime_returns_OK_response-1684766234\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1686580634},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":null,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":\"25399c6e-f8ae-11ed-b261-da7ad0900002\",\"scope\":[\"test:testupdateadowntimereturnsokresponse1684766234\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 22 May 2023 14:37:14 GMT" + }, + { + "request": { + "body": { + "string": "{\"message\":\"Test-Update_a_downtime_returns_OK_response-1684766234-updated\",\"mute_first_recovery_notification\":true,\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"notify_end_types\":[\"canceled\",\"expired\"]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v1/downtime/2941982639" + }, + "response": { + "body": { + "string": "{\"id\":2941982639,\"monitor_id\":null,\"org_id\":321813,\"start\":1684766234,\"end\":1684769834,\"canceled\":null,\"created\":1684766235,\"modified\":1684766235,\"message\":\"Test-Update_a_downtime_returns_OK_response-1684766234-updated\",\"active\":true,\"disabled\":false,\"recurrence\":{\"type\":\"weeks\",\"period\":1,\"week_days\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"],\"until_occurrences\":null,\"until_date\":1686580634},\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":1445416,\"updater_id\":1445416,\"downtime_type\":2,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"canceled\",\"expired\"],\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"uuid\":null,\"scope\":[\"test:testupdateadowntimereturnsokresponse1684766234\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 22 May 2023 14:37:14 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/downtime/2941982639" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 22 May 2023 14:37:14 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/events/Post-an-event-in-the-past-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/events/Post-an-event-in-the-past-returns-Bad-Request-response.json index 92e48bfe8..3f84dd15e 100644 --- a/tests/scenarios/cassettes/v1/events/Post-an-event-in-the-past-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/events/Post-an-event-in-the-past-returns-Bad-Request-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"date_happened\":1,\"tags\":[\"test:TestPostaneventinthepastreturnsBadRequestresponse1641430251\"],\"text\":\"A text message.\",\"title\":\"Test-Post_an_event_in_the_past_returns_Bad_Request_response-1641430251\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/events"}, "response": {"body": {"string": "{\"errors\":[\"Event too far in the past\"]}", "encoding": null}, "headers": {"Content-Type": ["text/plain; charset=utf-8"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:51 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"date_happened\":1,\"tags\":[\"test:TestPostaneventinthepastreturnsBadRequestresponse1641430251\"],\"text\":\"A text message.\",\"title\":\"Test-Post_an_event_in_the_past_returns_Bad_Request_response-1641430251\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/events" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Event too far in the past\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/plain; charset=utf-8" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:51 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/events/Post-an-event-returns-OK-response.json b/tests/scenarios/cassettes/v1/events/Post-an-event-returns-OK-response.json index 6d2e7312f..d8d034683 100644 --- a/tests/scenarios/cassettes/v1/events/Post-an-event-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/events/Post-an-event-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"tags\":[\"test:TestPostaneventreturnsOKresponse1641430251\"],\"text\":\"A text message.\",\"title\":\"Test-Post_an_event_returns_OK_response-1641430251\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/events"}, "response": {"body": {"string": "{\"status\":\"ok\",\"event\":{\"id\":6327818702635911000,\"id_str\":\"6327818702635911562\",\"title\":\"Test-Post_an_event_returns_OK_response-1641430251\",\"text\":\"A text message.\",\"date_happened\":1641430251,\"handle\":null,\"priority\":null,\"related_event_id\":null,\"tags\":[\"test:TestPostaneventreturnsOKresponse1641430251\"],\"url\":\"https://app.datadoghq.com/event/event?id=6327818702635911562\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 202, "message": "Accepted"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:51 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"tags\":[\"test:TestPostaneventreturnsOKresponse1641430251\"],\"text\":\"A text message.\",\"title\":\"Test-Post_an_event_returns_OK_response-1641430251\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/events" + }, + "response": { + "body": { + "string": "{\"status\":\"ok\",\"event\":{\"id\":6327818702635911000,\"id_str\":\"6327818702635911562\",\"title\":\"Test-Post_an_event_returns_OK_response-1641430251\",\"text\":\"A text message.\",\"date_happened\":1641430251,\"handle\":null,\"priority\":null,\"related_event_id\":null,\"tags\":[\"test:TestPostaneventreturnsOKresponse1641430251\"],\"url\":\"https://app.datadoghq.com/event/event?id=6327818702635911562\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 202, + "message": "Accepted" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:51 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/events/Post-an-event-with-a-long-title-returns-OK-response.json b/tests/scenarios/cassettes/v1/events/Post-an-event-with-a-long-title-returns-OK-response.json index 5a004ad1f..9f871ead5 100644 --- a/tests/scenarios/cassettes/v1/events/Post-an-event-with-a-long-title-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/events/Post-an-event-with-a-long-title-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"tags\":[\"test:TestPostaneventwithalongtitlereturnsOKresponse1641430251\"],\"text\":\"A text message.\",\"title\":\"Test-Post_an_event_with_a_long_title_returns_OK_response-1641430251 very very very looooooooong looooooooooooong loooooooooooooooooooooong looooooooooooooooooooooooooong title with 100+ characters\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/events"}, "response": {"body": {"string": "{\"status\":\"ok\",\"event\":{\"id\":6327818704671040000,\"id_str\":\"6327818704671039975\",\"title\":\"Test-Post_an_event_with_a_long_title_returns_OK_response-1641430251 very very very looooooooong looooooooooooong loooooooooooooooooooooong looooooooooooooooooooooooooong title with 100+ characters\",\"text\":\"A text message.\",\"date_happened\":1641430252,\"handle\":null,\"priority\":null,\"related_event_id\":null,\"tags\":[\"test:TestPostaneventwithalongtitlereturnsOKresponse1641430251\"],\"url\":\"https://app.datadoghq.com/event/event?id=6327818704671039975\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 202, "message": "Accepted"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:51 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"tags\":[\"test:TestPostaneventwithalongtitlereturnsOKresponse1641430251\"],\"text\":\"A text message.\",\"title\":\"Test-Post_an_event_with_a_long_title_returns_OK_response-1641430251 very very very looooooooong looooooooooooong loooooooooooooooooooooong looooooooooooooooooooooooooong title with 100+ characters\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/events" + }, + "response": { + "body": { + "string": "{\"status\":\"ok\",\"event\":{\"id\":6327818704671040000,\"id_str\":\"6327818704671039975\",\"title\":\"Test-Post_an_event_with_a_long_title_returns_OK_response-1641430251 very very very looooooooong looooooooooooong loooooooooooooooooooooong looooooooooooooooooooooooooong title with 100+ characters\",\"text\":\"A text message.\",\"date_happened\":1641430252,\"handle\":null,\"priority\":null,\"related_event_id\":null,\"tags\":[\"test:TestPostaneventwithalongtitlereturnsOKresponse1641430251\"],\"url\":\"https://app.datadoghq.com/event/event?id=6327818704671039975\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 202, + "message": "Accepted" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:51 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/gcp_integration/Create-a-GCP-integration-returns-OK-response.frozen b/tests/scenarios/cassettes/v1/gcp_integration/Create-a-GCP-integration-returns-OK-response.frozen index 3677f3cb1..3898833e1 100644 --- a/tests/scenarios/cassettes/v1/gcp_integration/Create-a-GCP-integration-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v1/gcp_integration/Create-a-GCP-integration-returns-OK-response.frozen @@ -1 +1 @@ -2023-12-20T13:18:07.717Z \ No newline at end of file +2024-01-31T21:16:03.254Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/gcp_integration/Create-a-GCP-integration-returns-OK-response.json b/tests/scenarios/cassettes/v1/gcp_integration/Create-a-GCP-integration-returns-OK-response.json index 0b9d4f6b1..92c189982 100644 --- a/tests/scenarios/cassettes/v1/gcp_integration/Create-a-GCP-integration-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/gcp_integration/Create-a-GCP-integration-returns-OK-response.json @@ -1 +1,73 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"client_email\":\"e5bbc86fb86ab202@example.com\",\"client_id\":\"170307828717030782870\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL\",\"host_filters\":\"key:value,filter:example\",\"is_cspm_enabled\":true,\"is_security_command_center_enabled\":true,\"private_key\":\"private_key\",\"private_key_id\":\"123456789abcdefghi123456789abcdefghijklm\",\"project_id\":\"datadog-apitest\",\"resource_collection_enabled\":true,\"token_uri\":\"https://accounts.google.com/o/oauth2/token\",\"type\":\"service_account\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/integration/gcp"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 20 Dec 2023 13:18:07 GMT"}, {"request": {"body": {"string": "{\"client_email\":\"e5bbc86fb86ab202@example.com\",\"client_id\":\"170307828717030782870\",\"project_id\":\"datadog-apitest\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/integration/gcp"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 20 Dec 2023 13:18:07 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"client_email\":\"3af93b0f1c973838@example.com\",\"client_id\":\"170673576317067357630\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL\",\"cloud_run_revision_filters\":[\"dr:dre\"],\"host_filters\":\"key:value,filter:example\",\"is_cspm_enabled\":true,\"is_security_command_center_enabled\":true,\"private_key\":\"private_key\",\"private_key_id\":\"123456789abcdefghi123456789abcdefghijklm\",\"project_id\":\"datadog-apitest\",\"resource_collection_enabled\":true,\"token_uri\":\"https://accounts.google.com/o/oauth2/token\",\"type\":\"service_account\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/integration/gcp" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 31 Jan 2024 21:16:03 GMT" + }, + { + "request": { + "body": { + "string": "{\"client_email\":\"3af93b0f1c973838@example.com\",\"client_id\":\"170673576317067357630\",\"project_id\":\"datadog-apitest\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/integration/gcp" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 31 Jan 2024 21:16:03 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/gcp_integration/Delete-a-GCP-integration-returns-OK-response.json b/tests/scenarios/cassettes/v1/gcp_integration/Delete-a-GCP-integration-returns-OK-response.json index e6902e2bb..0de14ecff 100644 --- a/tests/scenarios/cassettes/v1/gcp_integration/Delete-a-GCP-integration-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/gcp_integration/Delete-a-GCP-integration-returns-OK-response.json @@ -1 +1,107 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"client_email\":\"40c7bfeef7b52e04@example.com\",\"client_id\":\"170307841817030784180\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL\",\"host_filters\":\"key:value,filter:example\",\"is_cspm_enabled\":true,\"is_security_command_center_enabled\":true,\"private_key\":\"private_key\",\"private_key_id\":\"123456789abcdefghi123456789abcdefghijklm\",\"project_id\":\"datadog-apitest\",\"resource_collection_enabled\":true,\"token_uri\":\"https://accounts.google.com/o/oauth2/token\",\"type\":\"service_account\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/integration/gcp"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 20 Dec 2023 13:20:18 GMT"}, {"request": {"body": {"string": "{\"client_email\":\"40c7bfeef7b52e04@example.com\",\"client_id\":\"170307841817030784180\",\"project_id\":\"datadog-apitest\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/integration/gcp"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 20 Dec 2023 13:20:18 GMT"}, {"request": {"body": {"string": "{\"client_email\":\"40c7bfeef7b52e04@example.com\",\"client_id\":\"170307841817030784180\",\"project_id\":\"datadog-apitest\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/integration/gcp"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 20 Dec 2023 13:20:18 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"client_email\":\"40c7bfeef7b52e04@example.com\",\"client_id\":\"170307841817030784180\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL\",\"host_filters\":\"key:value,filter:example\",\"is_cspm_enabled\":true,\"is_security_command_center_enabled\":true,\"private_key\":\"private_key\",\"private_key_id\":\"123456789abcdefghi123456789abcdefghijklm\",\"project_id\":\"datadog-apitest\",\"resource_collection_enabled\":true,\"token_uri\":\"https://accounts.google.com/o/oauth2/token\",\"type\":\"service_account\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/integration/gcp" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 20 Dec 2023 13:20:18 GMT" + }, + { + "request": { + "body": { + "string": "{\"client_email\":\"40c7bfeef7b52e04@example.com\",\"client_id\":\"170307841817030784180\",\"project_id\":\"datadog-apitest\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/integration/gcp" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 20 Dec 2023 13:20:18 GMT" + }, + { + "request": { + "body": { + "string": "{\"client_email\":\"40c7bfeef7b52e04@example.com\",\"client_id\":\"170307841817030784180\",\"project_id\":\"datadog-apitest\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/integration/gcp" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 20 Dec 2023 13:20:18 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/gcp_integration/List-all-GCP-integrations-returns-OK-response.json b/tests/scenarios/cassettes/v1/gcp_integration/List-all-GCP-integrations-returns-OK-response.json index 1cd79189d..f53bec8bf 100644 --- a/tests/scenarios/cassettes/v1/gcp_integration/List-all-GCP-integrations-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/gcp_integration/List-all-GCP-integrations-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/integration/gcp"}, "response": {"body": {"string": "[{\"project_id\":\"\",\"client_email\":\"00981e1c3e8e97a1@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"02c9828017e15aa5@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"097c90af04124b05@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"0f08d4423223120b@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"1085f36962d101c9@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"10e47d352952f506@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"11f4e1b9c5ec0832@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"14a023b819befe53@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"1662faf86d58e1b7@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"18bae0a9a8846c9e@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"1c5b52e7576334d2@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"1e4805f564fa2ac9@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"1fad1b27edb5bcf2@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"208ee5ed66d71133@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"219d10ddeed283a3@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"23a5556b778915be@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"24e9015e320313f8@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"277a44a2d4070df0@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"28dcbaecc6090d7e@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"2b826cc0d80181ba@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"2e67a657a5e9e7c0@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"2e9d423e7aa1f482@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"2fa0809e16b17119@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"3084fcf0ee31eb0c@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"363b41762d905e45@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"3731304188d2cf16@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"3da4c7006b369ab8@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"3ecc38b6941b8636@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"4480243013d4e5f2@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"46fe7f297cbf4352@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"4d16a20f9531ae34@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"4f72cf81bddbbdce@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"4f9c2129311f67c8@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"4fd2c5373c504d3d@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"54e6214d4e37c221@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"558219f266cb5661@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"567f48bf35496e63@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"59fd6255ff318598@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"5f67543f83a9f8fe@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"5fcbbd9fd2b05a98@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"6287c3a6f90577f5@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"6310e1f5179a6f81@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"7468db1f938c7a5b@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"792047232a0ee446@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"79fd7f289d3e203c@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"7e829bef04cabf05@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"7f0d1446a2b36412@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"800d8f61bc1b1f11@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"80c76870b798470e@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"856a341306f76135@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"85eec49aa13601a0@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"86fffdf0a2f9c120@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"8b77145ab254af0e@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"900221429a54e8c9@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"9090d908de5494b0@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"9152c07ea52b6ebf@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"92357e402dc93e16@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"936c176ea8d149f5@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"96942532bb1c698b@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"977541a023419b38@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"9822a7b951c1749b@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"99d25eaedaa0b964@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"9af8703db57f8adc@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"9b15d9c0b38905fc@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"9c20e39790e74a9a@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"a2920570daa112f1@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"a75bd581627e2019@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"a8045bf0668414a0@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"a8c4c1d81bd7f901@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"a8cd678d02a877ef@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"a951ac716618bc39@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"aaf327e22d3addd3@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"ac1de3dc0c8bd5db@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"ad33d7633503bf99@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"ad427d0e856cbbd6@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"b10d6276ad2a39ce@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"b15d65667f94645a@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"b1faa95226c9e32f@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"b402406faf436ec7@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"b425753d70134965@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"b5c318c34c295312@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"b79dded205ad0ca0@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"b9e7fdcb3de4199e@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"c5758874111f033d@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"c5bb8a766c0da9b1@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"c65984c4759a8081@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"c765735adb6c4448@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"cb871a85cdddf23d@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"cc34eb2339b0758e@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"cea03370bad43fa8@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"d2aee02f16a95eb6@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"d497d8ae666e8c67@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"d5545b6ffc57e4c1@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"d6fe27adfb2c76ef@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"daeaffdee8f68e43@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"dc167bde560cc8ec@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"dc51b5741de8e6ea@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"df3af5ae9cb794e2@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"e307c0141d0b0056@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"e518c87ea9f81132@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"e541c487131dcfac@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"e86657afbbcc662e@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"eab76a9567596ffc@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"edbc8f8058581958@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"ededfe06c277b8b4@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"f4a3cca553ea085e@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"f938e794b0925958@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"fb67d7b98cd68c2d@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"fbde34a142d42679@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"service-account@iam-service-google.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"tf-TestAccDatadogIntegrationGCP-local-1699099608\",\"client_email\":\"tf-TestAccDatadogIntegrationGCP-local-1699099608@awesome-project-id.iam.gserviceaccount.com\",\"host_filters\":\"foo:bar,buzz:lightyear\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"tf-TestAccDatadogIntegrationGCP-local-1699101380\",\"client_email\":\"tf-TestAccDatadogIntegrationGCP-local-1699101380@awesome-project-id.iam.gserviceaccount.com\",\"host_filters\":\"foo:bar,buzz:lightyear\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"tf-TestAccDatadogIntegrationGCP-local-1699101466\",\"client_email\":\"tf-TestAccDatadogIntegrationGCP-local-1699101466@awesome-project-id.iam.gserviceaccount.com\",\"host_filters\":\"foo:bar,buzz:lightyear\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"tf-TestAccDatadogIntegrationGCP-local-1699143227\",\"client_email\":\"tf-TestAccDatadogIntegrationGCP-local-1699143227@awesome-project-id.iam.gserviceaccount.com\",\"host_filters\":\"foo:bar,buzz:lightyear\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"tf-TestAccDatadogIntegrationGCP-local-1699144985\",\"client_email\":\"tf-TestAccDatadogIntegrationGCP-local-1699144985@awesome-project-id.iam.gserviceaccount.com\",\"host_filters\":\"foo:bar,buzz:lightyear\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"tf-TestAccDatadogIntegrationGCP-local-1699145097\",\"client_email\":\"tf-TestAccDatadogIntegrationGCP-local-1699145097@awesome-project-id.iam.gserviceaccount.com\",\"host_filters\":\"foo:bar,buzz:lightyear\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"tf-TestAccDatadogIntegrationGCP-local-1699186355\",\"client_email\":\"tf-TestAccDatadogIntegrationGCP-local-1699186355@awesome-project-id.iam.gserviceaccount.com\",\"host_filters\":\"foo:bar,buzz:lightyear\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"tf-TestAccDatadogIntegrationGCP-local-1699187247\",\"client_email\":\"tf-TestAccDatadogIntegrationGCP-local-1699187247@awesome-project-id.iam.gserviceaccount.com\",\"host_filters\":\"foo:bar,buzz:lightyear\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"tf-TestAccDatadogIntegrationGCP-local-1699187275\",\"client_email\":\"tf-TestAccDatadogIntegrationGCP-local-1699187275@awesome-project-id.iam.gserviceaccount.com\",\"host_filters\":\"foo:bar,buzz:lightyear\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]}]\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 20 Dec 2023 13:44:06 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/integration/gcp" + }, + "response": { + "body": { + "string": "[{\"project_id\":\"\",\"client_email\":\"00981e1c3e8e97a1@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"02c9828017e15aa5@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"097c90af04124b05@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"0f08d4423223120b@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"1085f36962d101c9@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"10e47d352952f506@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"11f4e1b9c5ec0832@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"14a023b819befe53@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"1662faf86d58e1b7@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"18bae0a9a8846c9e@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"1c5b52e7576334d2@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"1e4805f564fa2ac9@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"1fad1b27edb5bcf2@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"208ee5ed66d71133@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"219d10ddeed283a3@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"23a5556b778915be@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"24e9015e320313f8@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"277a44a2d4070df0@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"28dcbaecc6090d7e@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"2b826cc0d80181ba@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"2e67a657a5e9e7c0@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"2e9d423e7aa1f482@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"2fa0809e16b17119@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"3084fcf0ee31eb0c@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"363b41762d905e45@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"3731304188d2cf16@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"3da4c7006b369ab8@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"3ecc38b6941b8636@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"4480243013d4e5f2@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"46fe7f297cbf4352@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"4d16a20f9531ae34@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"4f72cf81bddbbdce@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"4f9c2129311f67c8@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"4fd2c5373c504d3d@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"54e6214d4e37c221@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"558219f266cb5661@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"567f48bf35496e63@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"59fd6255ff318598@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"5f67543f83a9f8fe@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"5fcbbd9fd2b05a98@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"6287c3a6f90577f5@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"6310e1f5179a6f81@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"7468db1f938c7a5b@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"792047232a0ee446@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"79fd7f289d3e203c@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"7e829bef04cabf05@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"7f0d1446a2b36412@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"800d8f61bc1b1f11@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"80c76870b798470e@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"856a341306f76135@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"85eec49aa13601a0@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"86fffdf0a2f9c120@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"8b77145ab254af0e@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"900221429a54e8c9@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"9090d908de5494b0@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"9152c07ea52b6ebf@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"92357e402dc93e16@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"936c176ea8d149f5@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"96942532bb1c698b@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"977541a023419b38@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"9822a7b951c1749b@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"99d25eaedaa0b964@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"9af8703db57f8adc@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"9b15d9c0b38905fc@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"9c20e39790e74a9a@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"a2920570daa112f1@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"a75bd581627e2019@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"a8045bf0668414a0@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"a8c4c1d81bd7f901@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"a8cd678d02a877ef@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"a951ac716618bc39@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"aaf327e22d3addd3@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"ac1de3dc0c8bd5db@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"ad33d7633503bf99@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"ad427d0e856cbbd6@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"b10d6276ad2a39ce@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"b15d65667f94645a@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"b1faa95226c9e32f@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"b402406faf436ec7@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"b425753d70134965@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"b5c318c34c295312@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"b79dded205ad0ca0@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"b9e7fdcb3de4199e@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"c5758874111f033d@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"c5bb8a766c0da9b1@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"c65984c4759a8081@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"c765735adb6c4448@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"cb871a85cdddf23d@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"cc34eb2339b0758e@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"cea03370bad43fa8@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"d2aee02f16a95eb6@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"d497d8ae666e8c67@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"d5545b6ffc57e4c1@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"d6fe27adfb2c76ef@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"daeaffdee8f68e43@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"dc167bde560cc8ec@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"dc51b5741de8e6ea@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"df3af5ae9cb794e2@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"e307c0141d0b0056@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"e518c87ea9f81132@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"e541c487131dcfac@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"e86657afbbcc662e@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"eab76a9567596ffc@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"edbc8f8058581958@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"ededfe06c277b8b4@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"f4a3cca553ea085e@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"f938e794b0925958@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"fb67d7b98cd68c2d@example.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"fbde34a142d42679@test-project.iam.gserviceaccount.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"\",\"client_email\":\"service-account@iam-service-google.com\",\"host_filters\":\"\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"tf-TestAccDatadogIntegrationGCP-local-1699099608\",\"client_email\":\"tf-TestAccDatadogIntegrationGCP-local-1699099608@awesome-project-id.iam.gserviceaccount.com\",\"host_filters\":\"foo:bar,buzz:lightyear\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"tf-TestAccDatadogIntegrationGCP-local-1699101380\",\"client_email\":\"tf-TestAccDatadogIntegrationGCP-local-1699101380@awesome-project-id.iam.gserviceaccount.com\",\"host_filters\":\"foo:bar,buzz:lightyear\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"tf-TestAccDatadogIntegrationGCP-local-1699101466\",\"client_email\":\"tf-TestAccDatadogIntegrationGCP-local-1699101466@awesome-project-id.iam.gserviceaccount.com\",\"host_filters\":\"foo:bar,buzz:lightyear\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"tf-TestAccDatadogIntegrationGCP-local-1699143227\",\"client_email\":\"tf-TestAccDatadogIntegrationGCP-local-1699143227@awesome-project-id.iam.gserviceaccount.com\",\"host_filters\":\"foo:bar,buzz:lightyear\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"tf-TestAccDatadogIntegrationGCP-local-1699144985\",\"client_email\":\"tf-TestAccDatadogIntegrationGCP-local-1699144985@awesome-project-id.iam.gserviceaccount.com\",\"host_filters\":\"foo:bar,buzz:lightyear\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"tf-TestAccDatadogIntegrationGCP-local-1699145097\",\"client_email\":\"tf-TestAccDatadogIntegrationGCP-local-1699145097@awesome-project-id.iam.gserviceaccount.com\",\"host_filters\":\"foo:bar,buzz:lightyear\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"tf-TestAccDatadogIntegrationGCP-local-1699186355\",\"client_email\":\"tf-TestAccDatadogIntegrationGCP-local-1699186355@awesome-project-id.iam.gserviceaccount.com\",\"host_filters\":\"foo:bar,buzz:lightyear\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"tf-TestAccDatadogIntegrationGCP-local-1699187247\",\"client_email\":\"tf-TestAccDatadogIntegrationGCP-local-1699187247@awesome-project-id.iam.gserviceaccount.com\",\"host_filters\":\"foo:bar,buzz:lightyear\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]},{\"project_id\":\"tf-TestAccDatadogIntegrationGCP-local-1699187275\",\"client_email\":\"tf-TestAccDatadogIntegrationGCP-local-1699187275@awesome-project-id.iam.gserviceaccount.com\",\"host_filters\":\"foo:bar,buzz:lightyear\",\"automute\":false,\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"errors\":[]}]\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 20 Dec 2023 13:44:06 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/gcp_integration/Update-a-GCP-integration-cloud-run-revision-filters-returns-OK-response.frozen b/tests/scenarios/cassettes/v1/gcp_integration/Update-a-GCP-integration-cloud-run-revision-filters-returns-OK-response.frozen new file mode 100644 index 000000000..6f951f6ba --- /dev/null +++ b/tests/scenarios/cassettes/v1/gcp_integration/Update-a-GCP-integration-cloud-run-revision-filters-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-01-31T21:16:03.829Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/gcp_integration/Update-a-GCP-integration-cloud-run-revision-filters-returns-OK-response.json b/tests/scenarios/cassettes/v1/gcp_integration/Update-a-GCP-integration-cloud-run-revision-filters-returns-OK-response.json new file mode 100644 index 000000000..fe46c9245 --- /dev/null +++ b/tests/scenarios/cassettes/v1/gcp_integration/Update-a-GCP-integration-cloud-run-revision-filters-returns-OK-response.json @@ -0,0 +1,107 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"client_email\":\"edcdf6542ac6e6b6@example.com\",\"client_id\":\"170673576317067357630\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL\",\"host_filters\":\"key:value,filter:example\",\"is_cspm_enabled\":true,\"is_security_command_center_enabled\":true,\"private_key\":\"private_key\",\"private_key_id\":\"123456789abcdefghi123456789abcdefghijklm\",\"project_id\":\"datadog-apitest\",\"resource_collection_enabled\":true,\"token_uri\":\"https://accounts.google.com/o/oauth2/token\",\"type\":\"service_account\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/integration/gcp" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 31 Jan 2024 21:16:03 GMT" + }, + { + "request": { + "body": { + "string": "{\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"client_email\":\"edcdf6542ac6e6b6@example.com\",\"client_id\":\"170673576317067357630\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL\",\"cloud_run_revision_filters\":[\"merp:derp\"],\"host_filters\":\"key:value,filter:example\",\"is_cspm_enabled\":true,\"is_security_command_center_enabled\":true,\"private_key\":\"private_key\",\"private_key_id\":\"123456789abcdefghi123456789abcdefghijklm\",\"project_id\":\"datadog-apitest\",\"resource_collection_enabled\":true,\"token_uri\":\"https://accounts.google.com/o/oauth2/token\",\"type\":\"service_account\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v1/integration/gcp" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 31 Jan 2024 21:16:03 GMT" + }, + { + "request": { + "body": { + "string": "{\"client_email\":\"edcdf6542ac6e6b6@example.com\",\"client_id\":\"170673576317067357630\",\"project_id\":\"datadog-apitest\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/integration/gcp" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 31 Jan 2024 21:16:03 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/gcp_integration/Update-a-GCP-integration-returns-OK-response.json b/tests/scenarios/cassettes/v1/gcp_integration/Update-a-GCP-integration-returns-OK-response.json index 664b8df6c..522fe7225 100644 --- a/tests/scenarios/cassettes/v1/gcp_integration/Update-a-GCP-integration-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/gcp_integration/Update-a-GCP-integration-returns-OK-response.json @@ -1 +1,107 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"client_email\":\"5cf439fad579761d@example.com\",\"client_id\":\"170307982017030798200\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL\",\"host_filters\":\"key:value,filter:example\",\"is_cspm_enabled\":true,\"is_security_command_center_enabled\":true,\"private_key\":\"private_key\",\"private_key_id\":\"123456789abcdefghi123456789abcdefghijklm\",\"project_id\":\"datadog-apitest\",\"resource_collection_enabled\":true,\"token_uri\":\"https://accounts.google.com/o/oauth2/token\",\"type\":\"service_account\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/integration/gcp"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 20 Dec 2023 13:43:40 GMT"}, {"request": {"body": {"string": "{\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"client_email\":\"5cf439fad579761d@example.com\",\"client_id\":\"170307982017030798200\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL\",\"host_filters\":\"key:value,filter:example\",\"is_cspm_enabled\":true,\"is_security_command_center_enabled\":true,\"private_key\":\"private_key\",\"private_key_id\":\"123456789abcdefghi123456789abcdefghijklm\",\"project_id\":\"datadog-apitest\",\"resource_collection_enabled\":true,\"token_uri\":\"https://accounts.google.com/o/oauth2/token\",\"type\":\"service_account\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "put", "uri": "https://api.datadoghq.com/api/v1/integration/gcp"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 20 Dec 2023 13:43:40 GMT"}, {"request": {"body": {"string": "{\"client_email\":\"5cf439fad579761d@example.com\",\"client_id\":\"170307982017030798200\",\"project_id\":\"datadog-apitest\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/integration/gcp"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 20 Dec 2023 13:43:40 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"client_email\":\"5cf439fad579761d@example.com\",\"client_id\":\"170307982017030798200\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL\",\"host_filters\":\"key:value,filter:example\",\"is_cspm_enabled\":true,\"is_security_command_center_enabled\":true,\"private_key\":\"private_key\",\"private_key_id\":\"123456789abcdefghi123456789abcdefghijklm\",\"project_id\":\"datadog-apitest\",\"resource_collection_enabled\":true,\"token_uri\":\"https://accounts.google.com/o/oauth2/token\",\"type\":\"service_account\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/integration/gcp" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 20 Dec 2023 13:43:40 GMT" + }, + { + "request": { + "body": { + "string": "{\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"client_email\":\"5cf439fad579761d@example.com\",\"client_id\":\"170307982017030798200\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL\",\"host_filters\":\"key:value,filter:example\",\"is_cspm_enabled\":true,\"is_security_command_center_enabled\":true,\"private_key\":\"private_key\",\"private_key_id\":\"123456789abcdefghi123456789abcdefghijklm\",\"project_id\":\"datadog-apitest\",\"resource_collection_enabled\":true,\"token_uri\":\"https://accounts.google.com/o/oauth2/token\",\"type\":\"service_account\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v1/integration/gcp" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 20 Dec 2023 13:43:40 GMT" + }, + { + "request": { + "body": { + "string": "{\"client_email\":\"5cf439fad579761d@example.com\",\"client_id\":\"170307982017030798200\",\"project_id\":\"datadog-apitest\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/integration/gcp" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 20 Dec 2023 13:43:40 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/hosts/Get-all-hosts-with-metadata-deserializes-successfully.json b/tests/scenarios/cassettes/v1/hosts/Get-all-hosts-with-metadata-deserializes-successfully.json index 21f1042bc..8ebe5eebf 100644 --- a/tests/scenarios/cassettes/v1/hosts/Get-all-hosts-with-metadata-deserializes-successfully.json +++ b/tests/scenarios/cassettes/v1/hosts/Get-all-hosts-with-metadata-deserializes-successfully.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/hosts?include_hosts_metadata=true"}, "response": {"body": {"string": "{\"exact_total_matching\":true,\"total_returned\":1,\"host_list\":[{\"last_reported_time\":1640288946,\"name\":\"vagrant\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"ntp\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"host:vagrant\"]},\"up\":true,\"metrics\":{\"load\":0.031666666,\"iowait\":0.0434962,\"cpu\":0.6632819},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"vagrant\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"pythonV\":\"3.8.11\",\"macV\":[\"\",\"\",\"\"],\"cpuCores\":1,\"agent_flavor\":\"agent\",\"platform\":\"linux\",\"timezones\":[\"UTC\"],\"winV\":[null,null,null],\"machine\":\"amd64\",\"install_method\":{\"tool\":\"install_script\",\"installer_version\":\"install_script-1.7.1\",\"tool_version\":\"install_script\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"8192 KB\\\",\\\"cpu_cores\\\":\\\"1\\\",\\\"cpu_logical_processors\\\":\\\"1\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2711.998\\\",\\\"model\\\":\\\"142\\\",\\\"model_name\\\":\\\"Intel(R) Core(TM) i7-8559U CPU @ 2.70GHz\\\",\\\"stepping\\\":\\\"10\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"3966892\\\",\\\"mounted_on\\\":\\\"/dev\\\",\\\"name\\\":\\\"udev\\\"},{\\\"kb_size\\\":\\\"797396\\\",\\\"mounted_on\\\":\\\"/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"64800356\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"/dev/mapper/vagrant--vg-root\\\"},{\\\"kb_size\\\":\\\"3986968\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"5120\\\",\\\"mounted_on\\\":\\\"/run/lock\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"3986968\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"488245288\\\",\\\"mounted_on\\\":\\\"/vagrant\\\",\\\"name\\\":\\\"/vagrant\\\"},{\\\"kb_size\\\":\\\"797392\\\",\\\"mounted_on\\\":\\\"/run/user/1000\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"1003516kB\\\",\\\"total\\\":\\\"7973940kB\\\"},\\\"network\\\":{\\\"interfaces\\\":[{\\\"ipv4\\\":\\\"10.0.2.15\\\",\\\"ipv4-network\\\":\\\"10.0.2.0/24\\\",\\\"ipv6\\\":\\\"fe80::a00:27ff:fec2:be11\\\",\\\"ipv6-network\\\":\\\"fe80::/64\\\",\\\"macaddress\\\":\\\"08:00:27:c2:be:11\\\",\\\"name\\\":\\\"eth0\\\"},{\\\"ipv4\\\":\\\"192.168.122.1\\\",\\\"ipv4-network\\\":\\\"192.168.122.0/24\\\",\\\"macaddress\\\":\\\"52:54:00:6f:1c:bf\\\",\\\"name\\\":\\\"virbr0\\\"}],\\\"ipaddress\\\":\\\"10.0.2.15\\\",\\\"ipaddressv6\\\":\\\"fe80::a00:27ff:fec2:be11\\\",\\\"macaddress\\\":\\\"08:00:27:c2:be:11\\\"},\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"vagrant\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-29-generic\\\",\\\"kernel_version\\\":\\\"#31-Ubuntu SMP Tue Jul 17 15:39:52 UTC 2018\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.15rc1\\\"}}\",\"network\":null,\"logs_agent\":{\"transport\":\"\"},\"host_id\":1036078308,\"agent_version\":\"7.32.3\",\"processor\":\"Intel(R) Core(TM) i7-8559U CPU @ 2.70GHz\",\"socket-fqdn\":\"vagrant.vm.\",\"agent_checks\":[[\"ntp\",\"ntp\",\"ntp:d884b5186b651429\",\"OK\",\"\",\"\"]]},\"host_name\":\"vagrant\",\"id\":1036078308,\"aliases\":[\"vagrant\"]}],\"total_matching\":1}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 11 Jan 2022 13:57:49 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/hosts?include_hosts_metadata=true" + }, + "response": { + "body": { + "string": "{\"exact_total_matching\":true,\"total_returned\":1,\"host_list\":[{\"last_reported_time\":1640288946,\"name\":\"vagrant\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"ntp\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"host:vagrant\"]},\"up\":true,\"metrics\":{\"load\":0.031666666,\"iowait\":0.0434962,\"cpu\":0.6632819},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"vagrant\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"pythonV\":\"3.8.11\",\"macV\":[\"\",\"\",\"\"],\"cpuCores\":1,\"agent_flavor\":\"agent\",\"platform\":\"linux\",\"timezones\":[\"UTC\"],\"winV\":[null,null,null],\"machine\":\"amd64\",\"install_method\":{\"tool\":\"install_script\",\"installer_version\":\"install_script-1.7.1\",\"tool_version\":\"install_script\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"8192 KB\\\",\\\"cpu_cores\\\":\\\"1\\\",\\\"cpu_logical_processors\\\":\\\"1\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2711.998\\\",\\\"model\\\":\\\"142\\\",\\\"model_name\\\":\\\"Intel(R) Core(TM) i7-8559U CPU @ 2.70GHz\\\",\\\"stepping\\\":\\\"10\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"3966892\\\",\\\"mounted_on\\\":\\\"/dev\\\",\\\"name\\\":\\\"udev\\\"},{\\\"kb_size\\\":\\\"797396\\\",\\\"mounted_on\\\":\\\"/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"64800356\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"/dev/mapper/vagrant--vg-root\\\"},{\\\"kb_size\\\":\\\"3986968\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"5120\\\",\\\"mounted_on\\\":\\\"/run/lock\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"3986968\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"488245288\\\",\\\"mounted_on\\\":\\\"/vagrant\\\",\\\"name\\\":\\\"/vagrant\\\"},{\\\"kb_size\\\":\\\"797392\\\",\\\"mounted_on\\\":\\\"/run/user/1000\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"1003516kB\\\",\\\"total\\\":\\\"7973940kB\\\"},\\\"network\\\":{\\\"interfaces\\\":[{\\\"ipv4\\\":\\\"10.0.2.15\\\",\\\"ipv4-network\\\":\\\"10.0.2.0/24\\\",\\\"ipv6\\\":\\\"fe80::a00:27ff:fec2:be11\\\",\\\"ipv6-network\\\":\\\"fe80::/64\\\",\\\"macaddress\\\":\\\"08:00:27:c2:be:11\\\",\\\"name\\\":\\\"eth0\\\"},{\\\"ipv4\\\":\\\"192.168.122.1\\\",\\\"ipv4-network\\\":\\\"192.168.122.0/24\\\",\\\"macaddress\\\":\\\"52:54:00:6f:1c:bf\\\",\\\"name\\\":\\\"virbr0\\\"}],\\\"ipaddress\\\":\\\"10.0.2.15\\\",\\\"ipaddressv6\\\":\\\"fe80::a00:27ff:fec2:be11\\\",\\\"macaddress\\\":\\\"08:00:27:c2:be:11\\\"},\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"vagrant\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-29-generic\\\",\\\"kernel_version\\\":\\\"#31-Ubuntu SMP Tue Jul 17 15:39:52 UTC 2018\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.15rc1\\\"}}\",\"network\":null,\"logs_agent\":{\"transport\":\"\"},\"host_id\":1036078308,\"agent_version\":\"7.32.3\",\"processor\":\"Intel(R) Core(TM) i7-8559U CPU @ 2.70GHz\",\"socket-fqdn\":\"vagrant.vm.\",\"agent_checks\":[[\"ntp\",\"ntp\",\"ntp:d884b5186b651429\",\"OK\",\"\",\"\"]]},\"host_name\":\"vagrant\",\"id\":1036078308,\"aliases\":[\"vagrant\"]}],\"total_matching\":1}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 11 Jan 2022 13:57:49 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/hosts/Get-all-hosts-with-metadata-for-your-organization-returns-OK-response.json b/tests/scenarios/cassettes/v1/hosts/Get-all-hosts-with-metadata-for-your-organization-returns-OK-response.json index a0edf623b..a785294b2 100644 --- a/tests/scenarios/cassettes/v1/hosts/Get-all-hosts-with-metadata-for-your-organization-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/hosts/Get-all-hosts-with-metadata-for-your-organization-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/hosts?include_hosts_metadata=true"}, "response": {"body": {"string": "{\"exact_total_matching\":true,\"total_returned\":41,\"host_list\":[{\"last_reported_time\":1641906477,\"name\":\"control-0\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"cloudfoundry\",\"agent\",\"ntp\"],\"tags_by_source\":{\"Datadog\":[\"bosh_address:10.0.40.4\",\"bosh_az:us-central1-a\",\"bosh_deployment:cf-58f7c74c619c33d63485\",\"bosh_id:1984d49c-04b6-470c-a770-218e716c027e\",\"bosh_index:0\",\"bosh_ip:10.0.40.4\",\"bosh_job:control\",\"bosh_name:control\",\"cf-58f7c74c619c33d63485\",\"cf-58f7c74c619c33d63485-control\",\"cloudfoundry\",\"control\",\"created_at:2021-12-16t02:44:39z\",\"deployment:cf-58f7c74c619c33d63485\",\"director:p-bosh\",\"id:1984d49c-04b6-470c-a770-218e716c027e\",\"index:0\",\"index:1984d49c-04b6-470c-a770-218e716c027e\",\"instance-id:1676922833778186514\",\"instance-type:custom-4-16384\",\"instance_group:control\",\"internal-hostname:vm-52009774-7863-4c6a-5a13-51cfdd1609cf.c.datadog-integrations-lab.internal\",\"ip:10.0.40.4\",\"job:control\",\"name:control/1984d49c-04b6-470c-a770-218e716c027e\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-cf-58f7c74c619c33d63485\",\"p-bosh-cf-58f7c74c619c33d63485-control\",\"pcf-vms\",\"project:datadog-integrations-lab\",\"user_data:_server_:_name_:_vm-52009774-7863-4c6a-5a13-51cfdd1609cf_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-a\",\"host:control-0\"]},\"up\":true,\"metrics\":{\"load\":0.32003334,\"iowait\":0.079276726,\"cpu\":29.41709},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"e4a8a521-2d74-4c03-9980-bca34bdee413\",\"nixV\":[\"ubuntu\",\"16.04\",\"\"],\"cpuCores\":1,\"agent_checks\":[[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:abc4dd01ed069179\",\"OK\",\"\",\"\"],[\"network\",\"network\",\"network:4568a8c8c4d5d3d5\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:cc_uploader:3d0678a999833fc0\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-syslog-binding-cache:537aa574e5e28491\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:log-cache-gateway:13c09b3739262153\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:reverse_log_proxy_gateway:e3885cefc03bf408\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bbs:64dbd323e48fcaf4\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:uaa:5aa254682e603228\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:auctioneer:87697cbe3dbdfd44\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:ccng_monit_http_healthcheck:d88a3600db2ba759\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-healthcheck:43786f001c4a3099\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:cloud_controller_ng:24632bd497253aa9\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:statsd_injector:7379fca29fe3a4ff\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:route_registrar:c92935beabfd476c\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-udp-forwarder:830b62ee1bfd88a3\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-agent:87c0340b0df2f04\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:monit:ba1b4f0db0e68cdb\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:cloud_controller_clock:c8672a23d35e7cd4\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:log-cache-cf-auth-proxy:7943ecf77b9a79e\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-resolvconf:557485c838539c37\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-syslog-agent:6308a74718cdb30\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:system-metrics-agent:f96e75f57c4f9874\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:file_server:deedc3d04c4cb5bd\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggregator_agent:e70c7141fe641fd4\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:service-discovery-controller:e543394ee449c99c\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:tps_watcher:4fc274ad3daedfe2\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:cc_deployment_updater:480dc6fd3a2bc04b\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:cloud_controller_worker_local_1:8aabe8cbcba89058\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns:bb15cf7e4add3789\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metric_registrar_log_worker:92eda95c3f060e8d\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:reverse_log_proxy:868098ec0db42a59\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-agent:9348d9bcc210f773\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:locket:3b88945d4fb7dd5b\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-system-metric-scraper:2ed7e2886f6053c0\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:cloud_controller_worker_1:3084bb618408430f\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:policy-server-internal:f4fbef8344963995\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metric_registrar_orchestrator:b2723a5cf003fb60\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:cloud_controller_worker_local_2:1308451a6cd30c7e\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:routing-api:d5400ef919ea406\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:policy-server:39205d55df6fd807\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:ssh_proxy:96d831050c719d90\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:sshd:342db389f880a7cf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:nginx_cc:c851861b3b7dac00\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggregator_trafficcontroller:f293fcdbeb39ae4\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:log-cache-nozzle:8417a7dfc876e5c9\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-system-metrics-forwarder:dec520770c84eb74\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-discovery-registrar:2499640bb2b8b315\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:log-cache:d1c6af5f1bd3f240\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:leadership-election:ef70b8234e7c6fb8\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:prom_scraper:728ea58b02a2d668\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-forwarder-agent:dfd03904f3c38951\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metric_registrar_endpoint_worker:9199a3a6ad069794\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:silk-controller:44ee7f9fe3bf2d15\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:credhub:6566835bbed7c86e\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:doppler:4f1a37333ded2c21\",\"OK\",\"\",\"\"],[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"],[\"disk\",\"disk\",\"disk:17d8571dea6d7adf\",\"OK\",\"\",\"\"]],\"platform\":\"linux\",\"network\":{\"network-id\":\"projects/116803814856/networks/datadog-integrations-lab-us-central1\",\"public-ipv4\":\"34.121.144.12\"},\"agent_flavor\":\"agent\",\"macV\":[\"\",\"\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"pythonV\":\"3.8.11\",\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"5120\\\",\\\"mounted_on\\\":\\\"/run/lock\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2886304\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"/dev/sda1\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/var/vcap/data\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"1024\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/sys/run\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":{\\\"interfaces\\\":[{\\\"ipv4\\\":\\\"10.0.40.4\\\",\\\"ipv4-network\\\":\\\"10.0.40.4/32\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:04\\\",\\\"name\\\":\\\"eth0\\\"}],\\\"ipaddress\\\":\\\"10.0.40.4\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:04\\\"},\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"e4a8a521-2d74-4c03-9980-bca34bdee413\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"3.8.11\\\"}}\",\"host_id\":1588212437,\"agent_version\":\"7.32.4\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"localhost\",\"logs_agent\":{\"transport\":\"\"}},\"host_name\":\"control-0\",\"id\":1588212437,\"aliases\":[\"vm-52009774-7863-4c6a-5a13-51cfdd1609cf.datadog-integrations-lab\",\"vm-52009774-7863-4c6a-5a13-51cfdd1609cf.c.datadog-integrations-lab.internal\",\"control-0\",\"1984d49c-04b6-470c-a770-218e716c027e\"]},{\"last_reported_time\":1641908074,\"name\":\"3be59ad0-f9bc-4c6c-60ec-2e44\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"ntp\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:14aa46da-2357-40d9-988d-2c6f3660680d\",\"application_name:hello-datadog-cf-ruby-test\",\"cf_instance_ip:10.0.40.5\",\"instance_index:0\",\"space_name:system\",\"uri:hello-datadog-cf-ruby-test.apps.integrations-lab.devenv.dog\",\"host:3be59ad0-f9bc-4c6c-60ec-2e44\"]},\"up\":true,\"metrics\":{\"load\":0.26465,\"iowait\":0.11494715,\"cpu\":14.255855},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"3be59ad0-f9bc-4c6c-60ec-2e44\",\"macV\":[\"\",\"\",\"\"],\"cpuCores\":1,\"pythonV\":\"n/a\",\"logs_agent\":{\"transport\":\"\"},\"agent_checks\":[[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:b4579e02d1981c12\",\"OK\",\"\",\"\"],[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"],[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"]],\"platform\":\"linux\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"agent_flavor\":\"iot_agent\",\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1048576\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"3be59ad0-f9bc-4c6c-60ec-2e44\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"host_id\":6306937692,\"fbsdV\":[\"\",\"\",\"\"],\"agent_version\":\"7.32.2\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"3be59ad0-f9bc-4c6c-60ec-2e44\",\"network\":null},\"host_name\":\"3be59ad0-f9bc-4c6c-60ec-2e44\",\"id\":6306937692,\"aliases\":[\"3be59ad0-f9bc-4c6c-60ec-2e44\"]},{\"last_reported_time\":1641908071,\"name\":\"compute-0\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"network\",\"cloudfoundry\",\"ntp\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"bosh_address:10.0.40.5\",\"bosh_az:us-central1-a\",\"bosh_deployment:cf-58f7c74c619c33d63485\",\"bosh_id:0b7e0c80-c2a0-449c-9bf0-d8b886607fc3\",\"bosh_index:0\",\"bosh_ip:10.0.40.5\",\"bosh_job:compute\",\"bosh_name:compute\",\"cf-58f7c74c619c33d63485\",\"cf-58f7c74c619c33d63485-compute\",\"cloudfoundry\",\"compute\",\"created_at:2021-12-16t02:57:44z\",\"deployment:cf-58f7c74c619c33d63485\",\"director:p-bosh\",\"id:0b7e0c80-c2a0-449c-9bf0-d8b886607fc3\",\"index:0\",\"index:0b7e0c80-c2a0-449c-9bf0-d8b886607fc3\",\"instance-id:6741335140059256318\",\"instance-type:custom-4-16384\",\"instance_group:compute\",\"internal-hostname:vm-aef6415e-c7dd-489c-6ba8-be35dbec92df.c.datadog-integrations-lab.internal\",\"ip:10.0.40.5\",\"job:compute\",\"name:compute/0b7e0c80-c2a0-449c-9bf0-d8b886607fc3\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-cf-58f7c74c619c33d63485\",\"p-bosh-cf-58f7c74c619c33d63485-compute\",\"pcf-vms\",\"project:datadog-integrations-lab\",\"user_data:_server_:_name_:_vm-aef6415e-c7dd-489c-6ba8-be35dbec92df_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-a\",\"host:compute-0\"]},\"up\":true,\"metrics\":{\"load\":0.28273648,\"iowait\":0.09214352,\"cpu\":14.062636},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"db5182f4-724a-4fcc-b552-ca274d09c566\",\"nixV\":[\"ubuntu\",\"16.04\",\"\"],\"pythonV\":\"3.8.11\",\"platform\":\"linux\",\"agent_checks\":[[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:abc4dd01ed069179\",\"OK\",\"\",\"\"],[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:route_emitter:28b85ccdd7bcca89\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:monit:ba1b4f0db0e68cdb\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:silk-daemon:42bd0967a0a2a419\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-adapter:2aad5dbd684d67e1\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-discovery-registrar:2499640bb2b8b315\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggregator_agent:e70c7141fe641fd4\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:prom_scraper:728ea58b02a2d668\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:sshd:342db389f880a7cf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:garden:5103b5aa45b0a808\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-agent:87c0340b0df2f04\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:netmon:5a4d96913933a354\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-agent:9348d9bcc210f773\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-resolvconf:557485c838539c37\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:rep:72fcf04e2248dc5e\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:system-metrics-agent:f96e75f57c4f9874\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:nfsv3driver:d35677bcfeaf03b7\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-healthcheck:43786f001c4a3099\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-forwarder-agent:dfd03904f3c38951\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:smbdriver:db0efad94879b577\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns:bb15cf7e4add3789\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:vxlan-policy-agent:9a79744e56be760b\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-syslog-agent:6308a74718cdb30\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:iptables-logger:53134b433f0040ba\",\"OK\",\"\",\"\"],[\"network\",\"network\",\"network:4568a8c8c4d5d3d5\",\"OK\",\"\",\"\"],[\"disk\",\"disk\",\"disk:17d8571dea6d7adf\",\"OK\",\"\",\"\"]],\"cpuCores\":1,\"macV\":[\"\",\"\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"5120\\\",\\\"mounted_on\\\":\\\"/run/lock\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2886304\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"/dev/sda1\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/var/vcap/data\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"1024\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/sys/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"100178588\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/grootfs/store/unprivileged\\\",\\\"name\\\":\\\"/dev/loop0\\\"},{\\\"kb_size\\\":\\\"100178588\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/grootfs/store/privileged\\\",\\\"name\\\":\\\"/dev/loop1\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/rep/shared/garden/instance_identity\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":{\\\"interfaces\\\":[{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:09\\\",\\\"name\\\":\\\"s-010255178009\\\"},{\\\"ipv4\\\":\\\"10.0.40.5\\\",\\\"ipv4-network\\\":\\\"10.0.40.5/32\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:05\\\",\\\"name\\\":\\\"eth0\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:0a\\\",\\\"name\\\":\\\"s-010255178010\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:0b\\\",\\\"name\\\":\\\"s-010255178011\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:0d\\\",\\\"name\\\":\\\"s-010255178013\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:0e\\\",\\\"name\\\":\\\"s-010255178014\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:0f\\\",\\\"name\\\":\\\"s-010255178015\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:10\\\",\\\"name\\\":\\\"s-010255178016\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:11\\\",\\\"name\\\":\\\"s-010255178017\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:12\\\",\\\"name\\\":\\\"s-010255178018\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:13\\\",\\\"name\\\":\\\"s-010255178019\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:14\\\",\\\"name\\\":\\\"s-010255178020\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:15\\\",\\\"name\\\":\\\"s-010255178021\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:16\\\",\\\"name\\\":\\\"s-010255178022\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:17\\\",\\\"name\\\":\\\"s-010255178023\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:18\\\",\\\"name\\\":\\\"s-010255178024\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:19\\\",\\\"name\\\":\\\"s-010255178025\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:1a\\\",\\\"name\\\":\\\"s-010255178026\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:1b\\\",\\\"name\\\":\\\"s-010255178027\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:1d\\\",\\\"name\\\":\\\"s-010255178029\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:1e\\\",\\\"name\\\":\\\"s-010255178030\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:20\\\",\\\"name\\\":\\\"s-010255178032\\\"},{\\\"ipv4\\\":\\\"10.255.178.0\\\",\\\"ipv4-network\\\":\\\"10.255.0.0/16\\\",\\\"macaddress\\\":\\\"ee:ee:0a:ff:b2:00\\\",\\\"name\\\":\\\"silk-vtep\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:04\\\",\\\"name\\\":\\\"s-010255178004\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:05\\\",\\\"name\\\":\\\"s-010255178005\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:06\\\",\\\"name\\\":\\\"s-010255178006\\\"}],\\\"ipaddress\\\":\\\"169.254.0.1\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:09\\\"},\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"db5182f4-724a-4fcc-b552-ca274d09c566\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"3.8.11\\\"}}\",\"network\":{\"network-id\":\"projects/116803814856/networks/datadog-integrations-lab-us-central1\",\"public-ipv4\":\"34.134.81.43\"},\"agent_flavor\":\"agent\",\"host_id\":1885388434,\"agent_version\":\"7.32.4\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"localhost\",\"logs_agent\":{\"transport\":\"\"}},\"host_name\":\"compute-0\",\"id\":1885388434,\"aliases\":[\"vm-aef6415e-c7dd-489c-6ba8-be35dbec92df.datadog-integrations-lab\",\"vm-aef6415e-c7dd-489c-6ba8-be35dbec92df.c.datadog-integrations-lab.internal\",\"compute-0\",\"0b7e0c80-c2a0-449c-9bf0-d8b886607fc3\"]},{\"last_reported_time\":1641906445,\"name\":\"00d23ea2-2de3-4017-68cd-9244\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"ntp\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:14aa46da-2357-40d9-988d-2c6f3660680d\",\"application_name:hello-datadog-cf-ruby-test\",\"cf_instance_ip:10.0.40.5\",\"instance_index:1\",\"space_name:system\",\"uri:hello-datadog-cf-ruby-test.apps.integrations-lab.devenv.dog\",\"host:00d23ea2-2de3-4017-68cd-9244\"]},\"up\":true,\"metrics\":{\"load\":0.22518334,\"iowait\":0.12053162,\"cpu\":13.935913},\"sources\":[\"agent\"],\"meta\":{\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"agent_checks\":[[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:b4579e02d1981c12\",\"OK\",\"\",\"\"],[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"],[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"]],\"logs_agent\":{\"transport\":\"\"},\"cpuCores\":1,\"macV\":[\"\",\"\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"agent_version\":\"7.32.2\",\"machine\":\"amd64\",\"platform\":\"linux\",\"agent_flavor\":\"iot_agent\",\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1048576\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"00d23ea2-2de3-4017-68cd-9244\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"host_id\":6306937090,\"fbsdV\":[\"\",\"\",\"\"],\"pythonV\":\"n/a\",\"socket-hostname\":\"00d23ea2-2de3-4017-68cd-9244\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"00d23ea2-2de3-4017-68cd-9244\",\"network\":null},\"host_name\":\"00d23ea2-2de3-4017-68cd-9244\",\"id\":6306937090,\"aliases\":[\"00d23ea2-2de3-4017-68cd-9244\"]},{\"last_reported_time\":1641906487,\"name\":\"pks-db-0\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"cloudfoundry\",\"agent\",\"ntp\"],\"tags_by_source\":{\"Datadog\":[\"bosh_address:10.0.40.20\",\"bosh_az:us-central1-a\",\"bosh_deployment:pivotal-container-service-2db99f13c503d2c4afac\",\"bosh_id:bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"bosh_index:0\",\"bosh_ip:10.0.40.20\",\"bosh_job:pks-db\",\"bosh_name:pks-db\",\"cloudfoundry\",\"created_at:2021-02-04t11:51:58z\",\"deployment:pivotal-container-service-2db99f13c503d2c4afac\",\"director:p-bosh\",\"id:bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"index:0\",\"index:bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"instance-id:3455194630398042407\",\"instance-type:custom-2-8192\",\"instance_group:pks-db\",\"internal-hostname:vm-5b9ee0e7-a9ec-424a-5233-b4497c6a8873.c.datadog-integrations-lab.internal\",\"ip:10.0.40.20\",\"job:pks-db\",\"name:pks-db/bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-pivotal-container-service-2db99f13c503d2c4afac\",\"p-bosh-pivotal-container-service-2db99f13c503d2c4afac-pks-db\",\"pcf-vms\",\"pivotal-container-service-2db99f13c503d2c4afac\",\"pivotal-container-service-2db99f13c503d2c4afac-pks-db\",\"pks-db\",\"project:datadog-integrations-lab\",\"user_data:_server_:_name_:_vm-5b9ee0e7-a9ec-424a-5233-b4497c6a8873_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-a\",\"host:pks-db-0\"]},\"up\":true,\"metrics\":{\"load\":0.1393,\"iowait\":0.2804128,\"cpu\":13.608116},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"0739b63a-96d0-4afa-b8a6-a6e1e05c65e2\",\"nixV\":[\"ubuntu\",\"16.04\",\"\"],\"cpuCores\":1,\"pythonV\":\"3.8.11\",\"agent_checks\":[[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"],[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:abc4dd01ed069179\",\"OK\",\"\",\"\"],[\"disk\",\"disk\",\"disk:17d8571dea6d7adf\",\"OK\",\"\",\"\"],[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-agent:9348d9bcc210f773\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:system-metrics-agent:f96e75f57c4f9874\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:proxy:463c705e43d0fe75\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:galera-agent:7d61834d95e8a9f\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:cluster-health-logger:510a88480112002f\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:gra-log-purger:8327c97cdd4831de\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-healthcheck:43786f001c4a3099\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns:bb15cf7e4add3789\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:sshd:342db389f880a7cf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-resolvconf:557485c838539c37\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:galera-init:a00f33c5b6290c8f\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:monit:ba1b4f0db0e68cdb\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"network\",\"network\",\"network:4568a8c8c4d5d3d5\",\"OK\",\"\",\"\"]],\"agent_flavor\":\"agent\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"1\\\",\\\"cpu_logical_processors\\\":\\\"2\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2200.000\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"4069080\\\",\\\"mounted_on\\\":\\\"/dev\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"4084040\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"4084040\\\",\\\"mounted_on\\\":\\\"/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"5120\\\",\\\"mounted_on\\\":\\\"/run/lock\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"4084040\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2886304\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"/dev/sda1\\\"},{\\\"kb_size\\\":\\\"58028260\\\",\\\"mounted_on\\\":\\\"/var/vcap/data\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"1024\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/sys/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"10188088\\\",\\\"mounted_on\\\":\\\"/var/vcap/store\\\",\\\"name\\\":\\\"/dev/sdb1\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"8168080kB\\\",\\\"total\\\":\\\"8168084kB\\\"},\\\"network\\\":{\\\"interfaces\\\":[{\\\"ipv4\\\":\\\"10.0.40.20\\\",\\\"ipv4-network\\\":\\\"10.0.40.20/32\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:14\\\",\\\"name\\\":\\\"eth0\\\"}],\\\"ipaddress\\\":\\\"10.0.40.20\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:14\\\"},\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"0739b63a-96d0-4afa-b8a6-a6e1e05c65e2\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"3.8.11\\\"}}\",\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"network\":{\"network-id\":\"projects/116803814856/networks/datadog-integrations-lab-us-central1\",\"public-ipv4\":\"104.155.174.157\"},\"fbsdV\":[\"\",\"\",\"\"],\"platform\":\"linux\",\"host_id\":4154624049,\"logs_agent\":{\"transport\":\"\"},\"macV\":[\"\",\"\",\"\"],\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"localhost\",\"agent_version\":\"7.32.2\"},\"host_name\":\"pks-db-0\",\"id\":4154624049,\"aliases\":[\"vm-5b9ee0e7-a9ec-424a-5233-b4497c6a8873.datadog-integrations-lab\",\"vm-5b9ee0e7-a9ec-424a-5233-b4497c6a8873.c.datadog-integrations-lab.internal\",\"pks-db-0\",\"bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\"]},{\"last_reported_time\":1641907073,\"name\":\"9905e5cf-024c-4eb5-7246-39c0\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"agent\",\"ntp\"],\"tags_by_source\":{\"Datadog\":[\"application_id:14aa46da-2357-40d9-988d-2c6f3660680d\",\"application_name:hello-datadog-cf-ruby-test\",\"cf_instance_ip:10.0.40.5\",\"instance_index:2\",\"space_name:system\",\"uri:hello-datadog-cf-ruby-test.apps.integrations-lab.devenv.dog\",\"host:9905e5cf-024c-4eb5-7246-39c0\"]},\"up\":true,\"metrics\":{\"load\":0.20908333,\"iowait\":0.15201081,\"cpu\":13.586387},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"9905e5cf-024c-4eb5-7246-39c0\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"network\":null,\"cpuCores\":1,\"macV\":[\"\",\"\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"agent_version\":\"7.32.2\",\"machine\":\"amd64\",\"platform\":\"linux\",\"socket-fqdn\":\"9905e5cf-024c-4eb5-7246-39c0\",\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1048576\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"9905e5cf-024c-4eb5-7246-39c0\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"logs_agent\":{\"transport\":\"\"},\"host_id\":6306938945,\"pythonV\":\"n/a\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"agent_flavor\":\"iot_agent\",\"agent_checks\":[[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:b4579e02d1981c12\",\"OK\",\"\",\"\"],[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"],[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"],[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"]]},\"host_name\":\"9905e5cf-024c-4eb5-7246-39c0\",\"id\":6306938945,\"aliases\":[\"9905e5cf-024c-4eb5-7246-39c0\"]},{\"last_reported_time\":1641907128,\"name\":\"55472e59-1622-4edb-5612-8a22\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"agent\",\"ntp\"],\"tags_by_source\":{\"Datadog\":[\"application_id:c7186718-9fb1-4a0a-9818-e2b29781ed60\",\"application_name:test-stdout\",\"cf_instance_ip:10.0.40.5\",\"instance_index:0\",\"space_name:system\",\"test_apm_billing\",\"uri:test-stdout.apps.integrations-lab.devenv.dog\",\"host:55472e59-1622-4edb-5612-8a22\"]},\"up\":true,\"metrics\":{\"load\":0.25035,\"iowait\":0.0972689,\"cpu\":13.13656},\"sources\":[\"agent\"],\"meta\":{\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"macV\":[\"\",\"\",\"\"],\"logs_agent\":{\"transport\":\"HTTP\"},\"cpuCores\":1,\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"agent_version\":\"7.27.0\",\"machine\":\"amd64\",\"platform\":\"linux\",\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.14.12\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"55472e59-1622-4edb-5612-8a22\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"network\":null,\"agent_flavor\":\"iot_agent\",\"host_id\":6306942373,\"pythonV\":\"n/a\",\"socket-hostname\":\"55472e59-1622-4edb-5612-8a22\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"55472e59-1622-4edb-5612-8a22\",\"agent_checks\":[[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:b4579e02d1981c12\",\"OK\",\"\",\"\"],[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"],[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"],[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"]]},\"host_name\":\"55472e59-1622-4edb-5612-8a22\",\"id\":6306942373,\"aliases\":[\"55472e59-1622-4edb-5612-8a22\"]},{\"last_reported_time\":1641908079,\"name\":\"master-0\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"cloudfoundry\",\"etcd\",\"kube_scheduler\",\"ntp\",\"agent\",\"kube_apiserver\",\"kube_controller_manager\"],\"tags_by_source\":{\"Datadog\":[\"bosh_address:4626db8f-c3cb-4bbe-bd00-3465525631b8.master.services.service-instance-f6138a1a-496f-4e66-8424-2de713841a51.bosh\",\"bosh_az:us-central1-a\",\"bosh_deployment:service-instance_f6138a1a-496f-4e66-8424-2de713841a51\",\"bosh_id:4626db8f-c3cb-4bbe-bd00-3465525631b8\",\"bosh_index:0\",\"bosh_ip:10.0.40.130\",\"bosh_job:master\",\"bosh_name:master\",\"cloudfoundry\",\"created_at:2021-02-08t11:45:31z\",\"deployment:service-instance_f6138a1a-496f-4e66-8424-2de713841a51\",\"director:p-bosh\",\"id:4626db8f-c3cb-4bbe-bd00-3465525631b8\",\"index:0\",\"index:4626db8f-c3cb-4bbe-bd00-3465525631b8\",\"instance-id:7548018590529395371\",\"instance-type:custom-2-4096\",\"instance_group:master\",\"internal-hostname:vm-5e19d58a-a4b6-45f1-7041-c82bba0635f6.c.datadog-integrations-lab.internal\",\"ip:10.0.40.130\",\"job:master\",\"master\",\"name:master/4626db8f-c3cb-4bbe-bd00-3465525631b8\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-service-instance-f6138a1a-496f-4e66-8424-2de713841a51\",\"pcf-vms\",\"project:datadog-integrations-lab\",\"service-instance-f6138a1a-496f-4e66-8424-2de713841a51\",\"service-instance-f6138a1a-496f-4e66-8424-2de713841a51-master\",\"user_data:_server_:_name_:_vm-5e19d58a-a4b6-45f1-7041-c82bba0635f6_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-a\",\"host:master-0\"]},\"up\":true,\"metrics\":{\"load\":0.14919999,\"iowait\":0.24663304,\"cpu\":13.076977},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"a388684f-2f94-4cda-9a28-8852a35d3a20\",\"macV\":[\"\",\"\",\"\"],\"pythonV\":\"3.8.11\",\"cpuCores\":1,\"agent_flavor\":\"agent\",\"nixV\":[\"ubuntu\",\"16.04\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"1\\\",\\\"cpu_logical_processors\\\":\\\"2\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2200.000\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"2004700\\\",\\\"mounted_on\\\":\\\"/dev\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"2019660\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2019660\\\",\\\"mounted_on\\\":\\\"/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"5120\\\",\\\"mounted_on\\\":\\\"/run/lock\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2019660\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2886304\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"/dev/sda1\\\"},{\\\"kb_size\\\":\\\"29064176\\\",\\\"mounted_on\\\":\\\"/var/vcap/data\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"1024\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/sys/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"10188088\\\",\\\"mounted_on\\\":\\\"/var/vcap/store\\\",\\\"name\\\":\\\"/dev/sdb1\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"4039320kB\\\",\\\"total\\\":\\\"4039324kB\\\"},\\\"network\\\":{\\\"interfaces\\\":[{\\\"ipv4\\\":\\\"10.0.40.130\\\",\\\"ipv4-network\\\":\\\"10.0.40.130/32\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:82\\\",\\\"name\\\":\\\"eth0\\\"},{\\\"ipv4\\\":\\\"10.200.95.0\\\",\\\"ipv4-network\\\":\\\"10.200.95.0/32\\\",\\\"macaddress\\\":\\\"5a:74:a8:9d:52:cf\\\",\\\"name\\\":\\\"flannel.1\\\"}],\\\"ipaddress\\\":\\\"10.0.40.130\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:82\\\"},\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"a388684f-2f94-4cda-9a28-8852a35d3a20\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"3.8.11\\\"}}\",\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"platform\":\"linux\",\"network\":{\"network-id\":\"projects/116803814856/networks/datadog-integrations-lab-us-central1\",\"public-ipv4\":\"35.184.114.75\"},\"host_id\":3735337047,\"logs_agent\":{\"transport\":\"\"},\"agent_checks\":[[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"],[\"etcd\",\"etcd\",\"etcd:8817cef03662b9a7\",\"OK\",\"\",\"\"],[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"],[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:sshd:342db389f880a7cf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:kube-controller-manager:2f59ca6cec654503\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:kube-scheduler:62183cf888b1af0e\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:system-metrics-agent:f96e75f57c4f9874\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:kube-apiserver:68590183bc555d88\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:etcd:82804e4f8ddf95cb\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-agent:9348d9bcc210f773\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:flanneld:a7df16b1b11344ab\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:blackbox:a853635f1d25c9f2\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns:bb15cf7e4add3789\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:monit:ba1b4f0db0e68cdb\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-resolvconf:557485c838539c37\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-healthcheck:43786f001c4a3099\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:abc4dd01ed069179\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"kube_scheduler\",\"kube_scheduler\",\"kube_scheduler:fcf7e29c2a938f61\",\"OK\",\"\",\"\"],[\"kube_controller_manager\",\"kube_controller_manager\",\"kube_controller_manager:4e92a44f44f751da\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"disk\",\"disk\",\"disk:17d8571dea6d7adf\",\"OK\",\"\",\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"kube_apiserver_metrics\",\"kube_apiserver_metrics\",\"kube_apiserver_metrics:6a8a51818374f367\",\"OK\",\"\",\"\"],[\"network\",\"network\",\"network:4568a8c8c4d5d3d5\",\"OK\",\"\",\"\"]],\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"localhost\",\"agent_version\":\"7.32.2\"},\"host_name\":\"master-0\",\"id\":3735337047,\"aliases\":[\"vm-5e19d58a-a4b6-45f1-7041-c82bba0635f6.datadog-integrations-lab\",\"vm-5e19d58a-a4b6-45f1-7041-c82bba0635f6.c.datadog-integrations-lab.internal\",\"master-0\",\"4626db8f-c3cb-4bbe-bd00-3465525631b8\"]},{\"last_reported_time\":1641908079,\"name\":\"compute-1\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"network\",\"cloudfoundry\",\"ntp\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"bosh_address:10.0.40.11\",\"bosh_az:us-central1-b\",\"bosh_deployment:cf-58f7c74c619c33d63485\",\"bosh_id:e7910b19-d01d-411b-9e4a-8e4dcdd74bfd\",\"bosh_index:1\",\"bosh_ip:10.0.40.11\",\"bosh_job:compute\",\"bosh_name:compute\",\"cf-58f7c74c619c33d63485\",\"cf-58f7c74c619c33d63485-compute\",\"cloudfoundry\",\"compute\",\"created_at:2021-12-16t03:04:03z\",\"deployment:cf-58f7c74c619c33d63485\",\"director:p-bosh\",\"id:e7910b19-d01d-411b-9e4a-8e4dcdd74bfd\",\"index:1\",\"index:e7910b19-d01d-411b-9e4a-8e4dcdd74bfd\",\"instance-id:2118155544334635619\",\"instance-type:custom-4-16384\",\"instance_group:compute\",\"internal-hostname:vm-c63c98cd-c697-45db-5fa0-1141302eb447.c.datadog-integrations-lab.internal\",\"ip:10.0.40.11\",\"job:compute\",\"name:compute/e7910b19-d01d-411b-9e4a-8e4dcdd74bfd\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-cf-58f7c74c619c33d63485\",\"p-bosh-cf-58f7c74c619c33d63485-compute\",\"pcf-vms\",\"project:datadog-integrations-lab\",\"user_data:_server_:_name_:_vm-c63c98cd-c697-45db-5fa0-1141302eb447_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-b\",\"host:compute-1\"]},\"up\":true,\"metrics\":{\"load\":0.055883333,\"iowait\":0.06967267,\"cpu\":5.8552155},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"0d658567-f4ca-4b9e-b350-dbf55d0fa228\",\"nixV\":[\"ubuntu\",\"16.04\",\"\"],\"cpuCores\":1,\"agent_checks\":[[\"disk\",\"disk\",\"disk:17d8571dea6d7adf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:prom_scraper:728ea58b02a2d668\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:rep:72fcf04e2248dc5e\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:sshd:342db389f880a7cf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-agent:87c0340b0df2f04\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-discovery-registrar:2499640bb2b8b315\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-healthcheck:43786f001c4a3099\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-forwarder-agent:dfd03904f3c38951\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:nfsv3driver:d35677bcfeaf03b7\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:silk-daemon:42bd0967a0a2a419\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:netmon:5a4d96913933a354\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-syslog-agent:6308a74718cdb30\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-resolvconf:557485c838539c37\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:vxlan-policy-agent:9a79744e56be760b\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:smbdriver:db0efad94879b577\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:monit:ba1b4f0db0e68cdb\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:system-metrics-agent:f96e75f57c4f9874\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-adapter:2aad5dbd684d67e1\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:route_emitter:28b85ccdd7bcca89\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggregator_agent:e70c7141fe641fd4\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-agent:9348d9bcc210f773\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:garden:5103b5aa45b0a808\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns:bb15cf7e4add3789\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:iptables-logger:53134b433f0040ba\",\"OK\",\"\",\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"],[\"network\",\"network\",\"network:4568a8c8c4d5d3d5\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:abc4dd01ed069179\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"],[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"]],\"platform\":\"linux\",\"logs_agent\":{\"transport\":\"\"},\"agent_flavor\":\"agent\",\"macV\":[\"\",\"\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"46080 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2299.998\\\",\\\"model\\\":\\\"63\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.30GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"5120\\\",\\\"mounted_on\\\":\\\"/run/lock\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2886304\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"/dev/sda1\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/var/vcap/data\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"1024\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/sys/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"100178588\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/grootfs/store/unprivileged\\\",\\\"name\\\":\\\"/dev/loop0\\\"},{\\\"kb_size\\\":\\\"100178588\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/grootfs/store/privileged\\\",\\\"name\\\":\\\"/dev/loop1\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/rep/shared/garden/instance_identity\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":{\\\"interfaces\\\":[{\\\"ipv4\\\":\\\"10.255.84.0\\\",\\\"ipv4-network\\\":\\\"10.255.0.0/16\\\",\\\"macaddress\\\":\\\"ee:ee:0a:ff:54:00\\\",\\\"name\\\":\\\"silk-vtep\\\"},{\\\"ipv4\\\":\\\"10.0.40.11\\\",\\\"ipv4-network\\\":\\\"10.0.40.11/32\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:0b\\\",\\\"name\\\":\\\"eth0\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:54:04\\\",\\\"name\\\":\\\"s-010255084004\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:54:05\\\",\\\"name\\\":\\\"s-010255084005\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:54:06\\\",\\\"name\\\":\\\"s-010255084006\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:54:07\\\",\\\"name\\\":\\\"s-010255084007\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:54:08\\\",\\\"name\\\":\\\"s-010255084008\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:54:0a\\\",\\\"name\\\":\\\"s-010255084010\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:54:0b\\\",\\\"name\\\":\\\"s-010255084011\\\"}],\\\"ipaddress\\\":\\\"10.255.84.0\\\",\\\"macaddress\\\":\\\"ee:ee:0a:ff:54:00\\\"},\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"0d658567-f4ca-4b9e-b350-dbf55d0fa228\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"3.8.11\\\"}}\",\"network\":{\"network-id\":\"projects/116803814856/networks/datadog-integrations-lab-us-central1\",\"public-ipv4\":\"35.225.89.123\"},\"host_id\":1885402268,\"pythonV\":\"3.8.11\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.30GHz\",\"socket-fqdn\":\"localhost\",\"agent_version\":\"7.32.4\"},\"host_name\":\"compute-1\",\"id\":1885402268,\"aliases\":[\"vm-c63c98cd-c697-45db-5fa0-1141302eb447.datadog-integrations-lab\",\"vm-c63c98cd-c697-45db-5fa0-1141302eb447.c.datadog-integrations-lab.internal\",\"e7910b19-d01d-411b-9e4a-8e4dcdd74bfd\",\"compute-1\"]},{\"last_reported_time\":1641907704,\"name\":\"database-0\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"cloudfoundry\",\"ntp\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"bosh_address:10.0.40.2\",\"bosh_az:us-central1-a\",\"bosh_deployment:cf-58f7c74c619c33d63485\",\"bosh_id:13661a2d-4556-41a1-9b18-b2d6f6f59e40\",\"bosh_index:0\",\"bosh_ip:10.0.40.2\",\"bosh_job:database\",\"bosh_name:database\",\"cf-58f7c74c619c33d63485\",\"cf-58f7c74c619c33d63485-database\",\"cloudfoundry\",\"created_at:2021-12-16t02:35:05z\",\"database\",\"deployment:cf-58f7c74c619c33d63485\",\"director:p-bosh\",\"id:13661a2d-4556-41a1-9b18-b2d6f6f59e40\",\"index:0\",\"index:13661a2d-4556-41a1-9b18-b2d6f6f59e40\",\"instance-id:737885842904128301\",\"instance-type:custom-2-8192\",\"instance_group:database\",\"internal-hostname:vm-4741858b-f6a5-4146-5a1f-3b8a9146b47e.c.datadog-integrations-lab.internal\",\"ip:10.0.40.2\",\"job:database\",\"name:database/13661a2d-4556-41a1-9b18-b2d6f6f59e40\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-cf-58f7c74c619c33d63485\",\"p-bosh-cf-58f7c74c619c33d63485-database\",\"pcf-vms\",\"project:datadog-integrations-lab\",\"user_data:_server_:_name_:_vm-4741858b-f6a5-4146-5a1f-3b8a9146b47e_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-a\",\"host:database-0\"]},\"up\":true,\"metrics\":{\"load\":0.048833333,\"iowait\":0.15970942,\"cpu\":3.2675683},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"11c941b7-d46d-4e77-bfc4-7e13e707a9cf\",\"nixV\":[\"ubuntu\",\"16.04\",\"\"],\"cpuCores\":1,\"macV\":[\"\",\"\",\"\"],\"logs_agent\":{\"transport\":\"\"},\"agent_flavor\":\"agent\",\"platform\":\"linux\",\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"agent_version\":\"7.32.4\",\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"1\\\",\\\"cpu_logical_processors\\\":\\\"2\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"4069080\\\",\\\"mounted_on\\\":\\\"/dev\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"4084040\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"4084040\\\",\\\"mounted_on\\\":\\\"/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"5120\\\",\\\"mounted_on\\\":\\\"/run/lock\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"4084040\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2886304\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"/dev/sda1\\\"},{\\\"kb_size\\\":\\\"58028260\\\",\\\"mounted_on\\\":\\\"/var/vcap/data\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"1024\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/sys/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"103079200\\\",\\\"mounted_on\\\":\\\"/var/vcap/store\\\",\\\"name\\\":\\\"/dev/sdb1\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"8168080kB\\\",\\\"total\\\":\\\"8168084kB\\\"},\\\"network\\\":{\\\"interfaces\\\":[{\\\"ipv4\\\":\\\"10.0.40.2\\\",\\\"ipv4-network\\\":\\\"10.0.40.2/32\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:02\\\",\\\"name\\\":\\\"eth0\\\"}],\\\"ipaddress\\\":\\\"10.0.40.2\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:02\\\"},\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"11c941b7-d46d-4e77-bfc4-7e13e707a9cf\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"3.8.11\\\"}}\",\"network\":{\"network-id\":\"projects/116803814856/networks/datadog-integrations-lab-us-central1\",\"public-ipv4\":\"34.70.177.99\"},\"host_id\":1588196000,\"pythonV\":\"3.8.11\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"localhost\",\"agent_checks\":[[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"],[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"disk\",\"disk\",\"disk:17d8571dea6d7adf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:proxy:463c705e43d0fe75\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-syslog-agent:6308a74718cdb30\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-agent:87c0340b0df2f04\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-agent:9348d9bcc210f773\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggregator_agent:e70c7141fe641fd4\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:mysql-metrics:ec498f37251e0309\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-resolvconf:557485c838539c37\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:nats:460b88e3034138c1\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns:bb15cf7e4add3789\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-discovery-registrar:2499640bb2b8b315\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:cluster-health-logger:510a88480112002f\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-healthcheck:43786f001c4a3099\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:sshd:342db389f880a7cf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:monit:ba1b4f0db0e68cdb\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:mysql-diag-agent:b530874fb34025b1\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:system-metrics-agent:f96e75f57c4f9874\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-forwarder-agent:dfd03904f3c38951\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:nats-tls:9a1f3bfcae8fb7d\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:gra-log-purger:8327c97cdd4831de\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:route_registrar:c92935beabfd476c\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:galera-init:a00f33c5b6290c8f\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:galera-agent:7d61834d95e8a9f\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:prom_scraper:728ea58b02a2d668\",\"OK\",\"\",\"\"],[\"network\",\"network\",\"network:4568a8c8c4d5d3d5\",\"OK\",\"\",\"\"],[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:abc4dd01ed069179\",\"OK\",\"\",\"\"]]},\"host_name\":\"database-0\",\"id\":1588196000,\"aliases\":[\"vm-4741858b-f6a5-4146-5a1f-3b8a9146b47e.datadog-integrations-lab\",\"vm-4741858b-f6a5-4146-5a1f-3b8a9146b47e.c.datadog-integrations-lab.internal\",\"database-0\",\"13661a2d-4556-41a1-9b18-b2d6f6f59e40\"]},{\"last_reported_time\":1641906712,\"name\":\"pivotal-container-service-0\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"cloudfoundry\",\"ntp\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"bosh_address:10.0.40.21\",\"bosh_az:us-central1-a\",\"bosh_deployment:pivotal-container-service-2db99f13c503d2c4afac\",\"bosh_id:0dd74035-0251-4aa6-8546-4d42e738f904\",\"bosh_index:0\",\"bosh_ip:10.0.40.21\",\"bosh_job:pivotal-container-service\",\"bosh_name:pivotal-container-service\",\"cloudfoundry\",\"created_at:2021-02-04t13:58:20z\",\"deployment:pivotal-container-service-2db99f13c503d2c4afac\",\"director:p-bosh\",\"id:0dd74035-0251-4aa6-8546-4d42e738f904\",\"index:0\",\"index:0dd74035-0251-4aa6-8546-4d42e738f904\",\"instance-id:1407569049339446148\",\"instance-type:custom-2-8192\",\"instance_group:pivotal-container-service\",\"internal-hostname:vm-094c6015-d72a-485d-6cad-1ba6dfaa2884.c.datadog-integrations-lab.internal\",\"ip:10.0.40.21\",\"job:pivotal-container-service\",\"name:pivotal-container-service/0dd74035-0251-4aa6-8546-4d42e738f904\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-pivotal-container-service-2db99f13c503d2c4afac\",\"p-bosh-pivotal-container-service-2db99f13c503d2c4afac-pivotal\",\"pcf-vms\",\"pivotal-container-service\",\"pivotal-container-service-2db99f13c503d2c4afac\",\"pivotal-container-service-2db99f13c503d2c4afac-pivotal-contai\",\"project:datadog-integrations-lab\",\"user_data:_server_:_name_:_vm-094c6015-d72a-485d-6cad-1ba6dfaa2884_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-a\",\"host:pivotal-container-service-0\"]},\"up\":true,\"metrics\":{\"load\":0.031466667,\"iowait\":0.10300331,\"cpu\":2.9478202},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"8ddc0c80-afff-4424-bb70-64984a5590af\",\"macV\":[\"\",\"\",\"\"],\"cpuCores\":1,\"nixV\":[\"ubuntu\",\"16.04\",\"\"],\"agent_checks\":[[\"disk\",\"disk\",\"disk:17d8571dea6d7adf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:telemetry-server:a92123b45f99574e\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:uaa:5aa254682e603228\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-resolvconf:557485c838539c37\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-healthcheck:43786f001c4a3099\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:system-metrics-agent:f96e75f57c4f9874\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-agent:9348d9bcc210f773\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:sshd:342db389f880a7cf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns:bb15cf7e4add3789\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:monit:ba1b4f0db0e68cdb\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:broker:31b416ab3601f73e\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:pks-api:de142d1421dafe94\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:vrli-fluentd:73f5d0ab0d7a262f\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:abc4dd01ed069179\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"],[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"network\",\"network\",\"network:4568a8c8c4d5d3d5\",\"OK\",\"\",\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"]],\"agent_flavor\":\"agent\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"agent_version\":\"7.32.2\",\"machine\":\"amd64\",\"platform\":\"linux\",\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"1\\\",\\\"cpu_logical_processors\\\":\\\"2\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2200.000\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"4069080\\\",\\\"mounted_on\\\":\\\"/dev\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"4084040\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"4084040\\\",\\\"mounted_on\\\":\\\"/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"5120\\\",\\\"mounted_on\\\":\\\"/run/lock\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"4084040\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2886304\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"/dev/sda1\\\"},{\\\"kb_size\\\":\\\"58028260\\\",\\\"mounted_on\\\":\\\"/var/vcap/data\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"1024\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/sys/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"10188088\\\",\\\"mounted_on\\\":\\\"/var/vcap/store\\\",\\\"name\\\":\\\"/dev/sdb1\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"8168080kB\\\",\\\"total\\\":\\\"8168084kB\\\"},\\\"network\\\":{\\\"interfaces\\\":[{\\\"ipv4\\\":\\\"10.0.40.21\\\",\\\"ipv4-network\\\":\\\"10.0.40.21/32\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:15\\\",\\\"name\\\":\\\"eth0\\\"}],\\\"ipaddress\\\":\\\"10.0.40.21\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:15\\\"},\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"8ddc0c80-afff-4424-bb70-64984a5590af\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"3.8.11\\\"}}\",\"logs_agent\":{\"transport\":\"\"},\"host_id\":3735172582,\"pythonV\":\"3.8.11\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"localhost\",\"network\":{\"network-id\":\"projects/116803814856/networks/datadog-integrations-lab-us-central1\",\"public-ipv4\":\"35.232.17.52\"}},\"host_name\":\"pivotal-container-service-0\",\"id\":3735172582,\"aliases\":[\"vm-094c6015-d72a-485d-6cad-1ba6dfaa2884.datadog-integrations-lab\",\"vm-094c6015-d72a-485d-6cad-1ba6dfaa2884.c.datadog-integrations-lab.internal\",\"pivotal-container-service-0\",\"0dd74035-0251-4aa6-8546-4d42e738f904\"]},{\"last_reported_time\":1641907470,\"name\":\"backup-restore-0\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"cloudfoundry\",\"agent\",\"ntp\"],\"tags_by_source\":{\"Datadog\":[\"backup-restore\",\"bosh_address:10.0.40.6\",\"bosh_az:us-central1-a\",\"bosh_deployment:cf-58f7c74c619c33d63485\",\"bosh_id:382f3056-20a5-460a-9044-45390453d4b8\",\"bosh_index:0\",\"bosh_ip:10.0.40.6\",\"bosh_job:backup_restore\",\"bosh_name:backup_restore\",\"cf-58f7c74c619c33d63485\",\"cf-58f7c74c619c33d63485-backup-restore\",\"cloudfoundry\",\"created_at:2021-12-16t03:08:03z\",\"deployment:cf-58f7c74c619c33d63485\",\"director:p-bosh\",\"id:382f3056-20a5-460a-9044-45390453d4b8\",\"index:0\",\"index:382f3056-20a5-460a-9044-45390453d4b8\",\"instance-id:5684640517998449555\",\"instance-type:custom-1-1024\",\"instance_group:backup_restore\",\"internal-hostname:vm-256fbd16-5ef5-4c12-674a-79dbb208c829.c.datadog-integrations-lab.internal\",\"ip:10.0.40.6\",\"job:backup_restore\",\"name:backup_restore/382f3056-20a5-460a-9044-45390453d4b8\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-cf-58f7c74c619c33d63485\",\"p-bosh-cf-58f7c74c619c33d63485-backup-restore\",\"pcf-vms\",\"project:datadog-integrations-lab\",\"user_data:_server_:_name_:_vm-256fbd16-5ef5-4c12-674a-79dbb208c829_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-a\",\"host:backup-restore-0\"]},\"up\":true,\"metrics\":{\"load\":0.0032666666,\"iowait\":0.28001064,\"cpu\":2.5573363},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"61334b56-01c8-4b54-991b-8e43fa80b4f8\",\"macV\":[\"\",\"\",\"\"],\"logs_agent\":{\"transport\":\"\"},\"network\":{\"network-id\":\"projects/116803814856/networks/datadog-integrations-lab-us-central1\",\"public-ipv4\":\"34.68.184.121\"},\"cpuCores\":1,\"platform\":\"linux\",\"timezones\":[\"UTC\"],\"nixV\":[\"ubuntu\",\"16.04\",\"\"],\"agent_version\":\"7.32.4\",\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"1\\\",\\\"cpu_logical_processors\\\":\\\"1\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"489480\\\",\\\"mounted_on\\\":\\\"/dev\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"504440\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"504440\\\",\\\"mounted_on\\\":\\\"/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"5120\\\",\\\"mounted_on\\\":\\\"/run/lock\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"504440\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2886304\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"/dev/sda1\\\"},{\\\"kb_size\\\":\\\"7276144\\\",\\\"mounted_on\\\":\\\"/var/vcap/data\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"1024\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/sys/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"206291640\\\",\\\"mounted_on\\\":\\\"/var/vcap/store\\\",\\\"name\\\":\\\"/dev/sdb1\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"1008876kB\\\",\\\"total\\\":\\\"1008880kB\\\"},\\\"network\\\":{\\\"interfaces\\\":[{\\\"ipv4\\\":\\\"10.0.40.6\\\",\\\"ipv4-network\\\":\\\"10.0.40.6/32\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:06\\\",\\\"name\\\":\\\"eth0\\\"}],\\\"ipaddress\\\":\\\"10.0.40.6\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:06\\\"},\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"61334b56-01c8-4b54-991b-8e43fa80b4f8\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"3.8.11\\\"}}\",\"agent_flavor\":\"agent\",\"host_id\":1885408165,\"pythonV\":\"3.8.11\",\"winV\":[\"\",\"\",\"\"],\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"localhost\",\"agent_checks\":[[\"disk\",\"disk\",\"disk:17d8571dea6d7adf\",\"OK\",\"\",\"\"],[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"],[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:abc4dd01ed069179\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-forwarder-agent:dfd03904f3c38951\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-syslog-agent:6308a74718cdb30\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-resolvconf:557485c838539c37\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:sshd:342db389f880a7cf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-healthcheck:43786f001c4a3099\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns:bb15cf7e4add3789\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:system-metrics-agent:f96e75f57c4f9874\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:prom_scraper:728ea58b02a2d668\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-discovery-registrar:2499640bb2b8b315\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggregator_agent:e70c7141fe641fd4\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-agent:9348d9bcc210f773\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-agent:87c0340b0df2f04\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:monit:ba1b4f0db0e68cdb\",\"OK\",\"\",\"\"],[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"network\",\"network\",\"network:4568a8c8c4d5d3d5\",\"OK\",\"\",\"\"]]},\"host_name\":\"backup-restore-0\",\"id\":1885408165,\"aliases\":[\"vm-256fbd16-5ef5-4c12-674a-79dbb208c829.datadog-integrations-lab\",\"vm-256fbd16-5ef5-4c12-674a-79dbb208c829.c.datadog-integrations-lab.internal\",\"backup-restore-0\",\"382f3056-20a5-460a-9044-45390453d4b8\"]},{\"last_reported_time\":1641906718,\"name\":\"blobstore-0\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"cloudfoundry\",\"ntp\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"blobstore\",\"bosh_address:10.0.40.3\",\"bosh_az:us-central1-a\",\"bosh_deployment:cf-58f7c74c619c33d63485\",\"bosh_id:10cc8fea-3e39-4537-91a1-4b0d6abb626a\",\"bosh_index:0\",\"bosh_ip:10.0.40.3\",\"bosh_job:blobstore\",\"bosh_name:blobstore\",\"cf-58f7c74c619c33d63485\",\"cf-58f7c74c619c33d63485-blobstore\",\"cloudfoundry\",\"created_at:2021-12-16t02:39:36z\",\"deployment:cf-58f7c74c619c33d63485\",\"director:p-bosh\",\"id:10cc8fea-3e39-4537-91a1-4b0d6abb626a\",\"index:0\",\"index:10cc8fea-3e39-4537-91a1-4b0d6abb626a\",\"instance-id:5283912973995677757\",\"instance-type:custom-2-4096\",\"instance_group:blobstore\",\"internal-hostname:vm-1f66600c-00ff-4849-41cf-ea7f834080f7.c.datadog-integrations-lab.internal\",\"ip:10.0.40.3\",\"job:blobstore\",\"name:blobstore/10cc8fea-3e39-4537-91a1-4b0d6abb626a\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-cf-58f7c74c619c33d63485\",\"p-bosh-cf-58f7c74c619c33d63485-blobstore\",\"pcf-vms\",\"project:datadog-integrations-lab\",\"user_data:_server_:_name_:_vm-1f66600c-00ff-4849-41cf-ea7f834080f7_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-a\",\"host:blobstore-0\"]},\"up\":true,\"metrics\":{\"load\":0.0737,\"iowait\":0.115527004,\"cpu\":2.5147898},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"8e08fd47-ec68-414e-860d-1aca02cf68fd\",\"macV\":[\"\",\"\",\"\"],\"cpuCores\":1,\"logs_agent\":{\"transport\":\"\"},\"platform\":\"linux\",\"agent_checks\":[[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:abc4dd01ed069179\",\"OK\",\"\",\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-forwarder-agent:dfd03904f3c38951\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-discovery-registrar:2499640bb2b8b315\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-healthcheck:43786f001c4a3099\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:route_registrar:c92935beabfd476c\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:monit:ba1b4f0db0e68cdb\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:blobstore_nginx:5016f2ab5273512a\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:blobstore_url_signer:26fe8c418da745dc\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:prom_scraper:728ea58b02a2d668\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-syslog-agent:6308a74718cdb30\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:system-metrics-agent:f96e75f57c4f9874\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-agent:87c0340b0df2f04\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:sshd:342db389f880a7cf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-resolvconf:557485c838539c37\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggregator_agent:e70c7141fe641fd4\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns:bb15cf7e4add3789\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-agent:9348d9bcc210f773\",\"OK\",\"\",\"\"],[\"network\",\"network\",\"network:4568a8c8c4d5d3d5\",\"OK\",\"\",\"\"],[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"disk\",\"disk\",\"disk:17d8571dea6d7adf\",\"OK\",\"\",\"\"]],\"agent_flavor\":\"agent\",\"nixV\":[\"ubuntu\",\"16.04\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"pythonV\":\"3.8.11\",\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"1\\\",\\\"cpu_logical_processors\\\":\\\"2\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"2004696\\\",\\\"mounted_on\\\":\\\"/dev\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"2019656\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2019656\\\",\\\"mounted_on\\\":\\\"/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"5120\\\",\\\"mounted_on\\\":\\\"/run/lock\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2019656\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2886304\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"/dev/sda1\\\"},{\\\"kb_size\\\":\\\"4293664\\\",\\\"mounted_on\\\":\\\"/var/vcap/data\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"1024\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/sys/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"103079200\\\",\\\"mounted_on\\\":\\\"/var/vcap/store\\\",\\\"name\\\":\\\"/dev/sdb1\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"4039312kB\\\",\\\"total\\\":\\\"4039316kB\\\"},\\\"network\\\":{\\\"interfaces\\\":[{\\\"ipv4\\\":\\\"10.0.40.3\\\",\\\"ipv4-network\\\":\\\"10.0.40.3/32\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:03\\\",\\\"name\\\":\\\"eth0\\\"}],\\\"ipaddress\\\":\\\"10.0.40.3\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:03\\\"},\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"8e08fd47-ec68-414e-860d-1aca02cf68fd\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"3.8.11\\\"}}\",\"host_id\":1588200517,\"agent_version\":\"7.32.4\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"localhost\",\"network\":{\"network-id\":\"projects/116803814856/networks/datadog-integrations-lab-us-central1\",\"public-ipv4\":\"35.225.64.86\"}},\"host_name\":\"blobstore-0\",\"id\":1588200517,\"aliases\":[\"vm-1f66600c-00ff-4849-41cf-ea7f834080f7.datadog-integrations-lab\",\"vm-1f66600c-00ff-4849-41cf-ea7f834080f7.c.datadog-integrations-lab.internal\",\"blobstore-0\",\"10cc8fea-3e39-4537-91a1-4b0d6abb626a\"]},{\"last_reported_time\":1641908072,\"name\":\"mysql-monitor-0\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"cloudfoundry\",\"ntp\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"bosh_address:10.0.40.8\",\"bosh_az:us-central1-a\",\"bosh_deployment:cf-58f7c74c619c33d63485\",\"bosh_id:d584a232-8129-40f9-b50a-0aecb3ee5600\",\"bosh_index:0\",\"bosh_ip:10.0.40.8\",\"bosh_job:mysql_monitor\",\"bosh_name:mysql_monitor\",\"cf-58f7c74c619c33d63485\",\"cf-58f7c74c619c33d63485-mysql-monitor\",\"cloudfoundry\",\"created_at:2021-12-16t03:14:34z\",\"deployment:cf-58f7c74c619c33d63485\",\"director:p-bosh\",\"id:d584a232-8129-40f9-b50a-0aecb3ee5600\",\"index:0\",\"index:d584a232-8129-40f9-b50a-0aecb3ee5600\",\"instance-id:982254273567330795\",\"instance-type:custom-1-1024\",\"instance_group:mysql_monitor\",\"internal-hostname:vm-339a8035-cd97-417e-72de-f28ef188bfcf.c.datadog-integrations-lab.internal\",\"ip:10.0.40.8\",\"job:mysql_monitor\",\"mysql-monitor\",\"name:mysql_monitor/d584a232-8129-40f9-b50a-0aecb3ee5600\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-cf-58f7c74c619c33d63485\",\"p-bosh-cf-58f7c74c619c33d63485-mysql-monitor\",\"pcf-vms\",\"project:datadog-integrations-lab\",\"user_data:_server_:_name_:_vm-339a8035-cd97-417e-72de-f28ef188bfcf_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-a\",\"host:mysql-monitor-0\"]},\"up\":true,\"metrics\":{\"load\":0,\"iowait\":0.3918568,\"cpu\":2.2060554},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"9a206887-e2ba-4ae4-8170-0d7adc9f9d73\",\"nixV\":[\"ubuntu\",\"16.04\",\"\"],\"cpuCores\":1,\"agent_checks\":[[\"process\",\"process\",\"process:prom_scraper:728ea58b02a2d668\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggregator_agent:e70c7141fe641fd4\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:system-metrics-agent:f96e75f57c4f9874\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-agent:9348d9bcc210f773\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:replication-canary:40f25da0d1ff8818\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-syslog-agent:6308a74718cdb30\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-healthcheck:43786f001c4a3099\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-agent:87c0340b0df2f04\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-forwarder-agent:dfd03904f3c38951\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns:bb15cf7e4add3789\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-resolvconf:557485c838539c37\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:monit:ba1b4f0db0e68cdb\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-discovery-registrar:2499640bb2b8b315\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:sshd:342db389f880a7cf\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"network\",\"network\",\"network:4568a8c8c4d5d3d5\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"],[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"],[\"disk\",\"disk\",\"disk:17d8571dea6d7adf\",\"OK\",\"\",\"\"],[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:abc4dd01ed069179\",\"OK\",\"\",\"\"]],\"logs_agent\":{\"transport\":\"\"},\"agent_flavor\":\"agent\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"platform\":\"linux\",\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"1\\\",\\\"cpu_logical_processors\\\":\\\"1\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"489480\\\",\\\"mounted_on\\\":\\\"/dev\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"504440\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"504440\\\",\\\"mounted_on\\\":\\\"/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"5120\\\",\\\"mounted_on\\\":\\\"/run/lock\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"504440\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2886304\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"/dev/sda1\\\"},{\\\"kb_size\\\":\\\"7276144\\\",\\\"mounted_on\\\":\\\"/var/vcap/data\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"1024\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/sys/run\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"1008876kB\\\",\\\"total\\\":\\\"1008880kB\\\"},\\\"network\\\":{\\\"interfaces\\\":[{\\\"ipv4\\\":\\\"10.0.40.8\\\",\\\"ipv4-network\\\":\\\"10.0.40.8/32\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:08\\\",\\\"name\\\":\\\"eth0\\\"}],\\\"ipaddress\\\":\\\"10.0.40.8\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:08\\\"},\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"9a206887-e2ba-4ae4-8170-0d7adc9f9d73\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"3.8.11\\\"}}\",\"network\":{\"network-id\":\"projects/116803814856/networks/datadog-integrations-lab-us-central1\",\"public-ipv4\":\"34.122.249.40\"},\"host_id\":1885420676,\"pythonV\":\"3.8.11\",\"macV\":[\"\",\"\",\"\"],\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"localhost\",\"agent_version\":\"7.32.4\"},\"host_name\":\"mysql-monitor-0\",\"id\":1885420676,\"aliases\":[\"vm-339a8035-cd97-417e-72de-f28ef188bfcf.datadog-integrations-lab\",\"vm-339a8035-cd97-417e-72de-f28ef188bfcf.c.datadog-integrations-lab.internal\",\"mysql-monitor-0\",\"d584a232-8129-40f9-b50a-0aecb3ee5600\"]},{\"last_reported_time\":1641907263,\"name\":\"router-0\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"cloudfoundry\",\"agent\",\"ntp\"],\"tags_by_source\":{\"Datadog\":[\"bosh_address:10.0.40.7\",\"bosh_az:us-central1-a\",\"bosh_deployment:cf-58f7c74c619c33d63485\",\"bosh_id:48777395-f525-4d18-806f-87208386460c\",\"bosh_index:0\",\"bosh_ip:10.0.40.7\",\"bosh_job:router\",\"bosh_name:router\",\"cf-58f7c74c619c33d63485\",\"cf-58f7c74c619c33d63485-router\",\"cloudfoundry\",\"created_at:2021-12-16t03:11:35z\",\"deployment:cf-58f7c74c619c33d63485\",\"director:p-bosh\",\"id:48777395-f525-4d18-806f-87208386460c\",\"index:0\",\"index:48777395-f525-4d18-806f-87208386460c\",\"instance-id:1202390331242778786\",\"instance-type:custom-2-2048\",\"instance_group:router\",\"internal-hostname:vm-b838faf6-4e30-49cc-4978-1602d8e701e9.c.datadog-integrations-lab.internal\",\"ip:10.0.40.7\",\"job:router\",\"name:router/48777395-f525-4d18-806f-87208386460c\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-cf-58f7c74c619c33d63485\",\"p-bosh-cf-58f7c74c619c33d63485-router\",\"pcf-vms\",\"project:datadog-integrations-lab\",\"router\",\"user_data:_server_:_name_:_vm-b838faf6-4e30-49cc-4978-1602d8e701e9_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-a\",\"host:router-0\"]},\"up\":true,\"metrics\":{\"load\":0.038933333,\"iowait\":0.097419195,\"cpu\":1.8743246},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"a2ba9e90-ee22-48b4-9fa7-b6934c207d4d\",\"macV\":[\"\",\"\",\"\"],\"pythonV\":\"3.8.11\",\"agent_checks\":[[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"],[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:abc4dd01ed069179\",\"OK\",\"\",\"\"],[\"disk\",\"disk\",\"disk:17d8571dea6d7adf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-agent:87c0340b0df2f04\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:sshd:342db389f880a7cf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-forwarder-agent:dfd03904f3c38951\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:monit:ba1b4f0db0e68cdb\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-syslog-agent:6308a74718cdb30\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggregator_agent:e70c7141fe641fd4\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-resolvconf:557485c838539c37\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-healthcheck:43786f001c4a3099\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-agent:9348d9bcc210f773\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:gorouter:84800af52712818\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-discovery-registrar:2499640bb2b8b315\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:system-metrics-agent:f96e75f57c4f9874\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-udp-forwarder:830b62ee1bfd88a3\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:prom_scraper:728ea58b02a2d668\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns:bb15cf7e4add3789\",\"OK\",\"\",\"\"],[\"network\",\"network\",\"network:4568a8c8c4d5d3d5\",\"OK\",\"\",\"\"],[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"]],\"cpuCores\":1,\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"nixV\":[\"ubuntu\",\"16.04\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"agent_version\":\"7.32.4\",\"machine\":\"amd64\",\"platform\":\"linux\",\"socket-fqdn\":\"localhost\",\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"1\\\",\\\"cpu_logical_processors\\\":\\\"2\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1005484\\\",\\\"mounted_on\\\":\\\"/dev\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"1020444\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"1020444\\\",\\\"mounted_on\\\":\\\"/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"5120\\\",\\\"mounted_on\\\":\\\"/run/lock\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"1020444\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2886304\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"/dev/sda1\\\"},{\\\"kb_size\\\":\\\"6260040\\\",\\\"mounted_on\\\":\\\"/var/vcap/data\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"1024\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/sys/run\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"2040888kB\\\",\\\"total\\\":\\\"2040892kB\\\"},\\\"network\\\":{\\\"interfaces\\\":[{\\\"ipv4\\\":\\\"10.0.40.7\\\",\\\"ipv4-network\\\":\\\"10.0.40.7/32\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:07\\\",\\\"name\\\":\\\"eth0\\\"}],\\\"ipaddress\\\":\\\"10.0.40.7\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:07\\\"},\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"a2ba9e90-ee22-48b4-9fa7-b6934c207d4d\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"3.8.11\\\"}}\",\"host_id\":1885414402,\"logs_agent\":{\"transport\":\"\"},\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"agent_flavor\":\"agent\",\"network\":{\"network-id\":\"projects/116803814856/networks/datadog-integrations-lab-us-central1\",\"public-ipv4\":\"104.154.225.52\"}},\"host_name\":\"router-0\",\"id\":1885414402,\"aliases\":[\"vm-b838faf6-4e30-49cc-4978-1602d8e701e9.datadog-integrations-lab\",\"vm-b838faf6-4e30-49cc-4978-1602d8e701e9.c.datadog-integrations-lab.internal\",\"router-0\",\"48777395-f525-4d18-806f-87208386460c\"]},{\"last_reported_time\":1641907937,\"name\":\"datadog-firehose-nozzle-0\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"cloudfoundry\",\"ntp\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"bosh_address:10.0.40.10\",\"bosh_az:us-central1-a\",\"bosh_deployment:datadog-a7a9321940224f86c5e0\",\"bosh_id:7c485e5a-eee9-4586-a444-dd5acdbd408a\",\"bosh_index:0\",\"bosh_ip:10.0.40.10\",\"bosh_job:datadog-firehose-nozzle\",\"bosh_name:datadog-firehose-nozzle\",\"cloudfoundry\",\"created_at:2021-12-23t10:00:41z\",\"datadog-a7a9321940224f86c5e0\",\"datadog-a7a9321940224f86c5e0-datadog-firehose-nozzle\",\"datadog-firehose-nozzle\",\"deployment:datadog-a7a9321940224f86c5e0\",\"director:p-bosh\",\"id:7c485e5a-eee9-4586-a444-dd5acdbd408a\",\"index:0\",\"index:7c485e5a-eee9-4586-a444-dd5acdbd408a\",\"instance-id:654236089190053469\",\"instance-type:custom-1-1024\",\"instance_group:datadog-firehose-nozzle\",\"internal-hostname:vm-7af2f1a7-1902-4091-4681-f8e88ba52c66.c.datadog-integrations-lab.internal\",\"ip:10.0.40.10\",\"job:datadog-firehose-nozzle\",\"name:datadog-firehose-nozzle/7c485e5a-eee9-4586-a444-dd5acdbd408a\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-datadog-a7a9321940224f86c5e0\",\"p-bosh-datadog-a7a9321940224f86c5e0-datadog-firehose-nozzle\",\"pcf-vms\",\"project:datadog-integrations-lab\",\"user_data:_server_:_name_:_vm-7af2f1a7-1902-4091-4681-f8e88ba52c66_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-a\",\"host:datadog-firehose-nozzle-0\"]},\"up\":true,\"metrics\":{\"load\":0.0004,\"iowait\":0.27631813,\"cpu\":1.1650944},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"9aa34e82-00de-4aad-8f89-6fca4950693a\",\"nixV\":[\"ubuntu\",\"16.04\",\"\"],\"cpuCores\":1,\"agent_checks\":[[\"process\",\"process\",\"process:bosh-dns-resolvconf:557485c838539c37\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:system-metrics-agent:f96e75f57c4f9874\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-agent:9348d9bcc210f773\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:sshd:342db389f880a7cf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-healthcheck:43786f001c4a3099\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns:bb15cf7e4add3789\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:monit:ba1b4f0db0e68cdb\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:datadog-firehose-nozzle:577206d379c137c8\",\"WARNING\",[\"No matching process 'datadog-firehose-nozzle' was found\"],\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:abc4dd01ed069179\",\"OK\",\"\",\"\"],[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"],[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"],[\"network\",\"network\",\"network:4568a8c8c4d5d3d5\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"disk\",\"disk\",\"disk:17d8571dea6d7adf\",\"OK\",\"\",\"\"],[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"]],\"platform\":\"linux\",\"network\":{\"network-id\":\"projects/116803814856/networks/datadog-integrations-lab-us-central1\",\"public-ipv4\":\"34.132.186.250\"},\"agent_flavor\":\"agent\",\"macV\":[\"\",\"\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"pythonV\":\"3.8.11\",\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"1\\\",\\\"cpu_logical_processors\\\":\\\"1\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"489480\\\",\\\"mounted_on\\\":\\\"/dev\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"504440\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"504440\\\",\\\"mounted_on\\\":\\\"/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"5120\\\",\\\"mounted_on\\\":\\\"/run/lock\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"504440\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2886304\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"/dev/sda1\\\"},{\\\"kb_size\\\":\\\"7276144\\\",\\\"mounted_on\\\":\\\"/var/vcap/data\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"1024\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/sys/run\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"1008876kB\\\",\\\"total\\\":\\\"1008880kB\\\"},\\\"network\\\":{\\\"interfaces\\\":[{\\\"ipv4\\\":\\\"10.0.40.10\\\",\\\"ipv4-network\\\":\\\"10.0.40.10/32\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:0a\\\",\\\"name\\\":\\\"eth0\\\"}],\\\"ipaddress\\\":\\\"10.0.40.10\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:0a\\\"},\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"9aa34e82-00de-4aad-8f89-6fca4950693a\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"3.8.11\\\"}}\",\"host_id\":1558906327,\"logs_agent\":{\"transport\":\"\"},\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"localhost\",\"agent_version\":\"7.32.4\"},\"host_name\":\"datadog-firehose-nozzle-0\",\"id\":1558906327,\"aliases\":[\"vm-7af2f1a7-1902-4091-4681-f8e88ba52c66.datadog-integrations-lab\",\"vm-7af2f1a7-1902-4091-4681-f8e88ba52c66.c.datadog-integrations-lab.internal\",\"datadog-firehose-nozzle-0\",\"7c485e5a-eee9-4586-a444-dd5acdbd408a\"]},{\"last_reported_time\":1641906463,\"name\":\"datadog-cluster-agent-0\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"cloudfoundry\",\"agent\",\"ntp\"],\"tags_by_source\":{\"Datadog\":[\"bosh_address:10.0.40.13\",\"bosh_az:us-central1-a\",\"bosh_deployment:datadog-a7a9321940224f86c5e0\",\"bosh_id:013b46b2-12f1-4d1d-b3a3-57d79f220197\",\"bosh_index:0\",\"bosh_ip:10.0.40.13\",\"bosh_job:datadog-cluster-agent\",\"bosh_name:datadog-cluster-agent\",\"cloudfoundry\",\"created_at:2021-12-23t10:00:41z\",\"datadog-a7a9321940224f86c5e0\",\"datadog-a7a9321940224f86c5e0-datadog-cluster-agent\",\"datadog-cluster-agent\",\"deployment:datadog-a7a9321940224f86c5e0\",\"director:p-bosh\",\"id:013b46b2-12f1-4d1d-b3a3-57d79f220197\",\"index:0\",\"index:013b46b2-12f1-4d1d-b3a3-57d79f220197\",\"instance-id:4147831164283516509\",\"instance-type:custom-1-1024\",\"instance_group:datadog-cluster-agent\",\"internal-hostname:vm-6eb749d6-425d-4e9a-5ea7-980fc8c0a9ee.c.datadog-integrations-lab.internal\",\"ip:10.0.40.13\",\"job:datadog-cluster-agent\",\"name:datadog-cluster-agent/013b46b2-12f1-4d1d-b3a3-57d79f220197\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-datadog-a7a9321940224f86c5e0\",\"p-bosh-datadog-a7a9321940224f86c5e0-datadog-cluster-agent\",\"pcf-vms\",\"project:datadog-integrations-lab\",\"user_data:_server_:_name_:_vm-6eb749d6-425d-4e9a-5ea7-980fc8c0a9ee_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-a\",\"host:datadog-cluster-agent-0\"]},\"up\":true,\"metrics\":{\"load\":0,\"iowait\":0.20022501,\"cpu\":0.6767538},\"sources\":[\"agent\"],\"meta\":{\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"macV\":[\"\",\"\",\"\"],\"pythonV\":\"3.8.11\",\"network\":{\"network-id\":\"projects/116803814856/networks/datadog-integrations-lab-us-central1\",\"public-ipv4\":\"35.223.48.16\"},\"cpuCores\":1,\"nixV\":[\"ubuntu\",\"16.04\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"platform\":\"linux\",\"socket-hostname\":\"4a05e6f2-e3f4-44d7-ae87-21181a367e30\",\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"1\\\",\\\"cpu_logical_processors\\\":\\\"1\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"489480\\\",\\\"mounted_on\\\":\\\"/dev\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"504440\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"504440\\\",\\\"mounted_on\\\":\\\"/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"5120\\\",\\\"mounted_on\\\":\\\"/run/lock\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"504440\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2886304\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"/dev/sda1\\\"},{\\\"kb_size\\\":\\\"7276144\\\",\\\"mounted_on\\\":\\\"/var/vcap/data\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"1024\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/sys/run\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"1008876kB\\\",\\\"total\\\":\\\"1008880kB\\\"},\\\"network\\\":{\\\"interfaces\\\":[{\\\"ipv4\\\":\\\"10.0.40.13\\\",\\\"ipv4-network\\\":\\\"10.0.40.13/32\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:0d\\\",\\\"name\\\":\\\"eth0\\\"}],\\\"ipaddress\\\":\\\"10.0.40.13\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:0d\\\"},\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"4a05e6f2-e3f4-44d7-ae87-21181a367e30\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"3.8.11\\\"}}\",\"agent_flavor\":\"agent\",\"host_id\":2525100650,\"agent_version\":\"7.32.4\",\"agent_checks\":[[\"disk\",\"disk\",\"disk:17d8571dea6d7adf\",\"OK\",\"\",\"\"],[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:system-metrics-agent:f96e75f57c4f9874\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-agent:9348d9bcc210f773\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:sshd:342db389f880a7cf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-healthcheck:43786f001c4a3099\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns:bb15cf7e4add3789\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:monit:ba1b4f0db0e68cdb\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:datadog-cluster-agent:df40e8bdc7dc8a06\",\"WARNING\",[\"No matching process 'datadog-cluster-agent' was found\"],\"\"],[\"process\",\"process\",\"process:bosh-dns-resolvconf:557485c838539c37\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:abc4dd01ed069179\",\"OK\",\"\",\"\"],[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"],[\"network\",\"network\",\"network:4568a8c8c4d5d3d5\",\"OK\",\"\",\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"]],\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"localhost\",\"logs_agent\":{\"transport\":\"\"}},\"host_name\":\"datadog-cluster-agent-0\",\"id\":2525100650,\"aliases\":[\"vm-6eb749d6-425d-4e9a-5ea7-980fc8c0a9ee.datadog-integrations-lab\",\"vm-6eb749d6-425d-4e9a-5ea7-980fc8c0a9ee.c.datadog-integrations-lab.internal\",\"datadog-cluster-agent-0\",\"013b46b2-12f1-4d1d-b3a3-57d79f220197\"]},{\"last_reported_time\":1641906719,\"name\":\"1bbe3f6f-138a-4df9-7106-d28b\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"trace\",\"page\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:9f43dcdd-9322-4555-ba67-02a9439fd925\",\"application_name:hello-datadog-cf-ruby-blue\",\"cf_instance_ip:10.0.40.5\",\"env:integrations-lab\",\"instance_index:1\",\"space_name:system\",\"uri:hello-datadog-cf-ruby-blue.apps.integrations-lab.devenv.dog\",\"host:1bbe3f6f-138a-4df9-7106-d28b\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"1bbe3f6f-138a-4df9-7106-d28b\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"cpuCores\":1,\"macV\":[\"\",\"\",\"\"],\"network\":null,\"agent_flavor\":\"iot_agent\",\"platform\":\"linux\",\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.15.13\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"1bbe3f6f-138a-4df9-7106-d28b\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"logs_agent\":{\"transport\":\"TCP\"},\"host_id\":6306940257,\"pythonV\":\"n/a\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"1bbe3f6f-138a-4df9-7106-d28b\",\"agent_version\":\"7.31.0\"},\"host_name\":\"1bbe3f6f-138a-4df9-7106-d28b\",\"id\":6306940257,\"aliases\":[\"1bbe3f6f-138a-4df9-7106-d28b\"]},{\"last_reported_time\":1641906332,\"name\":\"45d792c2-1da6-4719-7a44-aa3d\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:e6186b8d-1fa5-4907-89e3-bb035298cdc9\",\"application_name:hello-datadog-cf-ruby-pink\",\"cf_instance_ip:10.0.40.5\",\"instance_index:1\",\"space_name:system\",\"uri:hello-datadog-cf-ruby-pink.apps.integrations-lab.devenv.dog\",\"host:45d792c2-1da6-4719-7a44-aa3d\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"45d792c2-1da6-4719-7a44-aa3d\",\"macV\":[\"\",\"\",\"\"],\"logs_agent\":{\"transport\":\"\"},\"network\":null,\"cpuCores\":1,\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1048576\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"45d792c2-1da6-4719-7a44-aa3d\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"platform\":\"linux\",\"fbsdV\":[\"\",\"\",\"\"],\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"agent_flavor\":\"dogstatsd\",\"host_id\":6306939018,\"pythonV\":\"n/a\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"45d792c2-1da6-4719-7a44-aa3d\",\"agent_version\":\"7.32.2\"},\"host_name\":\"45d792c2-1da6-4719-7a44-aa3d\",\"id\":6306939018,\"aliases\":[\"45d792c2-1da6-4719-7a44-aa3d\"]},{\"last_reported_time\":1641905937,\"name\":\"1dd5e5e9-e3e4-4baa-5205-26c5\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"page\",\"trace\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:dc22d0b9-d6a2-4389-84a6-76029121ebe4\",\"application_name:autodiscovery-http\",\"cf_instance_ip:10.0.40.11\",\"env:integrations-lab\",\"instance_index:2\",\"space_name:system\",\"uri:autodiscovery-http.apps.integrations-lab.devenv.dog\",\"host:1dd5e5e9-e3e4-4baa-5205-26c5\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"1dd5e5e9-e3e4-4baa-5205-26c5\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"pythonV\":\"n/a\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"logs_agent\":{\"transport\":\"HTTP\"},\"cpuCores\":1,\"macV\":[\"\",\"\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"platform\":\"linux\",\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"46080 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2299.998\\\",\\\"model\\\":\\\"63\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.30GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.15.13\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"1dd5e5e9-e3e4-4baa-5205-26c5\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"agent_flavor\":\"iot_agent\",\"host_id\":6306993744,\"agent_version\":\"7.30.0\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.30GHz\",\"socket-fqdn\":\"1dd5e5e9-e3e4-4baa-5205-26c5\",\"network\":null},\"host_name\":\"1dd5e5e9-e3e4-4baa-5205-26c5\",\"id\":6306993744,\"aliases\":[\"1dd5e5e9-e3e4-4baa-5205-26c5\"]},{\"last_reported_time\":1641907582,\"name\":\"e4327c72-e8ff-4fcf-472d-fc37\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"trace\",\"page\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:a7bebd67-1991-4e9e-8d44-399acf2f13e8\",\"application_name:logs-backend-demo\",\"cf_instance_ip:10.0.40.5\",\"env:integrations-lab\",\"instance_index:1\",\"space_name:system\",\"uri:logs-backend-demo.apps.integrations-lab.devenv.dog\",\"host:e4327c72-e8ff-4fcf-472d-fc37\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"e4327c72-e8ff-4fcf-472d-fc37\",\"macV\":[\"\",\"\",\"\"],\"cpuCores\":1,\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"logs_agent\":{\"transport\":\"HTTP\"},\"agent_flavor\":\"iot_agent\",\"platform\":\"linux\",\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.15.13\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"e4327c72-e8ff-4fcf-472d-fc37\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"network\":null,\"host_id\":6306942664,\"pythonV\":\"n/a\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"e4327c72-e8ff-4fcf-472d-fc37\",\"agent_version\":\"7.31.0\"},\"host_name\":\"e4327c72-e8ff-4fcf-472d-fc37\",\"id\":6306942664,\"aliases\":[\"e4327c72-e8ff-4fcf-472d-fc37\"]},{\"last_reported_time\":1641906718,\"name\":\"c463a2a9-9604-45a5-52bc-362d\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:06ed9382-26b8-42f3-9790-b0bf9f7c7fd9\",\"application_name:test-apm-service-4\",\"cf_instance_ip:10.0.40.11\",\"container_id:c463a2a9-9604-45a5-52bc-362d\",\"env:non-prod\",\"instance_index:0\",\"space_name:system\",\"test-apm-env\",\"uri:test-apm-service-4.apps.integrations-lab.devenv.dog\",\"host:c463a2a9-9604-45a5-52bc-362d\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"c463a2a9-9604-45a5-52bc-362d\",\"macV\":[\"\",\"\",\"\"],\"pythonV\":\"n/a\",\"network\":null,\"cpuCores\":1,\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"platform\":\"linux\",\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"46080 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2299.998\\\",\\\"model\\\":\\\"63\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.30GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.14.12\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"c463a2a9-9604-45a5-52bc-362d\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"agent_flavor\":\"iot_agent\",\"host_id\":6306991190,\"logs_agent\":{\"transport\":\"HTTP\"},\"processor\":\"Intel(R) Xeon(R) CPU @ 2.30GHz\",\"socket-fqdn\":\"c463a2a9-9604-45a5-52bc-362d\",\"agent_version\":\"7.27.0\"},\"host_name\":\"c463a2a9-9604-45a5-52bc-362d\",\"id\":6306991190,\"aliases\":[\"c463a2a9-9604-45a5-52bc-362d\"]},{\"last_reported_time\":1641908071,\"name\":\"7a9c4beb-2317-4849-78c1-0404\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:4bdf4890-1237-4f3f-a564-5bdda65e80c9\",\"application_name:test-apm-service-3\",\"cf_instance_ip:10.0.40.11\",\"container_id:7a9c4beb-2317-4849-78c1-0404\",\"env:non-prod\",\"instance_index:1\",\"space_name:system\",\"test-apm-env\",\"uri:test-apm-service-3.apps.integrations-lab.devenv.dog\",\"host:7a9c4beb-2317-4849-78c1-0404\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"7a9c4beb-2317-4849-78c1-0404\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"cpuCores\":1,\"agent_flavor\":\"iot_agent\",\"macV\":[\"\",\"\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"agent_version\":\"7.27.0\",\"machine\":\"amd64\",\"platform\":\"linux\",\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"46080 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2299.998\\\",\\\"model\\\":\\\"63\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.30GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.14.12\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"7a9c4beb-2317-4849-78c1-0404\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"network\":null,\"host_id\":6306991358,\"pythonV\":\"n/a\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.30GHz\",\"socket-fqdn\":\"7a9c4beb-2317-4849-78c1-0404\",\"logs_agent\":{\"transport\":\"HTTP\"}},\"host_name\":\"7a9c4beb-2317-4849-78c1-0404\",\"id\":6306991358,\"aliases\":[\"7a9c4beb-2317-4849-78c1-0404\"]},{\"last_reported_time\":1641908083,\"name\":\"c3cdc63f-2739-4bdd-7564-ed2e\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:4bdf4890-1237-4f3f-a564-5bdda65e80c9\",\"application_name:test-apm-service-3\",\"cf_instance_ip:10.0.40.5\",\"container_id:c3cdc63f-2739-4bdd-7564-ed2e\",\"env:non-prod\",\"instance_index:0\",\"space_name:system\",\"test-apm-env\",\"uri:test-apm-service-3.apps.integrations-lab.devenv.dog\",\"host:c3cdc63f-2739-4bdd-7564-ed2e\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"c3cdc63f-2739-4bdd-7564-ed2e\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"logs_agent\":{\"transport\":\"HTTP\"},\"network\":null,\"cpuCores\":1,\"platform\":\"linux\",\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"agent_flavor\":\"iot_agent\",\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.14.12\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"c3cdc63f-2739-4bdd-7564-ed2e\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"host_id\":6306990856,\"fbsdV\":[\"\",\"\",\"\"],\"pythonV\":\"n/a\",\"macV\":[\"\",\"\",\"\"],\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"c3cdc63f-2739-4bdd-7564-ed2e\",\"agent_version\":\"7.27.0\"},\"host_name\":\"c3cdc63f-2739-4bdd-7564-ed2e\",\"id\":6306990856,\"aliases\":[\"c3cdc63f-2739-4bdd-7564-ed2e\"]},{\"last_reported_time\":1641907938,\"name\":\"c1afee2e-adae-4c51-46d4-9051\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"trace\",\"page\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:a7bebd67-1991-4e9e-8d44-399acf2f13e8\",\"application_name:logs-backend-demo\",\"cf_instance_ip:10.0.40.5\",\"env:integrations-lab\",\"instance_index:0\",\"space_name:system\",\"uri:logs-backend-demo.apps.integrations-lab.devenv.dog\",\"host:c1afee2e-adae-4c51-46d4-9051\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"c1afee2e-adae-4c51-46d4-9051\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"macV\":[\"\",\"\",\"\"],\"logs_agent\":{\"transport\":\"HTTP\"},\"agent_flavor\":\"iot_agent\",\"platform\":\"linux\",\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"agent_version\":\"7.31.0\",\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.15.13\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"c1afee2e-adae-4c51-46d4-9051\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"network\":null,\"host_id\":6306937347,\"pythonV\":\"n/a\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"c1afee2e-adae-4c51-46d4-9051\",\"cpuCores\":1},\"host_name\":\"c1afee2e-adae-4c51-46d4-9051\",\"id\":6306937347,\"aliases\":[\"c1afee2e-adae-4c51-46d4-9051\"]},{\"last_reported_time\":1641906340,\"name\":\"31794400-62ca-44e2-7ab2-0397\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:ead4c7fd-f21c-48b8-9f23-421f15a57cfc\",\"application_name:hello-datadog-cf-ruby-yellow\",\"cf_instance_ip:10.0.40.5\",\"instance_index:0\",\"space_name:system\",\"uri:hello-datadog-cf-ruby-yellow.apps.integrations-lab.devenv.dog\",\"host:31794400-62ca-44e2-7ab2-0397\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"31794400-62ca-44e2-7ab2-0397\",\"macV\":[\"\",\"\",\"\"],\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"platform\":\"linux\",\"logs_agent\":{\"transport\":\"\"},\"cpuCores\":1,\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"network\":null,\"socket-fqdn\":\"31794400-62ca-44e2-7ab2-0397\",\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1048576\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"31794400-62ca-44e2-7ab2-0397\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"host_id\":6306942613,\"pythonV\":\"n/a\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"agent_flavor\":\"dogstatsd\",\"agent_version\":\"7.32.2\"},\"host_name\":\"31794400-62ca-44e2-7ab2-0397\",\"id\":6306942613,\"aliases\":[\"31794400-62ca-44e2-7ab2-0397\"]},{\"last_reported_time\":1641908082,\"name\":\"133dc113-0354-4a60-67d8-5cf6\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"page\",\"trace\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:41256269-671b-4d79-91d5-3bf848376425\",\"application_name:test-space-org-cc\",\"cf_instance_ip:10.0.40.11\",\"env:integrations-lab\",\"instance_index:2\",\"space_name:datadog-application-monitoring-space\",\"uri:test-space-org-cc.apps.integrations-lab.devenv.dog\",\"host:133dc113-0354-4a60-67d8-5cf6\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"133dc113-0354-4a60-67d8-5cf6\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"pythonV\":\"n/a\",\"macV\":[\"\",\"\",\"\"],\"network\":null,\"agent_flavor\":\"iot_agent\",\"platform\":\"linux\",\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"cpuCores\":1,\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"46080 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2299.998\\\",\\\"model\\\":\\\"63\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.30GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.15.13\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"133dc113-0354-4a60-67d8-5cf6\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"host_id\":6307044606,\"logs_agent\":{\"transport\":\"HTTP\"},\"processor\":\"Intel(R) Xeon(R) CPU @ 2.30GHz\",\"socket-fqdn\":\"133dc113-0354-4a60-67d8-5cf6\",\"agent_version\":\"7.30.0\"},\"host_name\":\"133dc113-0354-4a60-67d8-5cf6\",\"id\":6307044606,\"aliases\":[\"133dc113-0354-4a60-67d8-5cf6\"]},{\"last_reported_time\":1641906449,\"name\":\"91afb75a-2d81-423f-4179-621f\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:e6186b8d-1fa5-4907-89e3-bb035298cdc9\",\"application_name:hello-datadog-cf-ruby-pink\",\"cf_instance_ip:10.0.40.5\",\"instance_index:0\",\"space_name:system\",\"uri:hello-datadog-cf-ruby-pink.apps.integrations-lab.devenv.dog\",\"host:91afb75a-2d81-423f-4179-621f\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"91afb75a-2d81-423f-4179-621f\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"platform\":\"linux\",\"logs_agent\":{\"transport\":\"\"},\"cpuCores\":1,\"macV\":[\"\",\"\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1048576\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"91afb75a-2d81-423f-4179-621f\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"network\":null,\"agent_flavor\":\"dogstatsd\",\"host_id\":6306936543,\"pythonV\":\"n/a\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"91afb75a-2d81-423f-4179-621f\",\"agent_version\":\"7.32.2\"},\"host_name\":\"91afb75a-2d81-423f-4179-621f\",\"id\":6306936543,\"aliases\":[\"91afb75a-2d81-423f-4179-621f\"]},{\"last_reported_time\":1641906715,\"name\":\"50ecdfa4-428d-4b38-742a-7113\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"trace\",\"page\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:dc22d0b9-d6a2-4389-84a6-76029121ebe4\",\"application_name:autodiscovery-http\",\"cf_instance_ip:10.0.40.5\",\"env:integrations-lab\",\"instance_index:1\",\"space_name:system\",\"uri:autodiscovery-http.apps.integrations-lab.devenv.dog\",\"host:50ecdfa4-428d-4b38-742a-7113\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"50ecdfa4-428d-4b38-742a-7113\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"logs_agent\":{\"transport\":\"HTTP\"},\"agent_flavor\":\"iot_agent\",\"cpuCores\":1,\"platform\":\"linux\",\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.15.13\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"50ecdfa4-428d-4b38-742a-7113\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"network\":null,\"host_id\":6306937330,\"pythonV\":\"n/a\",\"macV\":[\"\",\"\",\"\"],\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"50ecdfa4-428d-4b38-742a-7113\",\"agent_version\":\"7.30.0\"},\"host_name\":\"50ecdfa4-428d-4b38-742a-7113\",\"id\":6306937330,\"aliases\":[\"50ecdfa4-428d-4b38-742a-7113\"]},{\"last_reported_time\":1641907935,\"name\":\"4c7b0ee1-4725-4e74-5298-c33f\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:ead4c7fd-f21c-48b8-9f23-421f15a57cfc\",\"application_name:hello-datadog-cf-ruby-yellow\",\"cf_instance_ip:10.0.40.5\",\"instance_index:1\",\"space_name:system\",\"uri:hello-datadog-cf-ruby-yellow.apps.integrations-lab.devenv.dog\",\"host:4c7b0ee1-4725-4e74-5298-c33f\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"4c7b0ee1-4725-4e74-5298-c33f\",\"macV\":[\"\",\"\",\"\"],\"pythonV\":\"n/a\",\"network\":null,\"cpuCores\":1,\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1048576\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"4c7b0ee1-4725-4e74-5298-c33f\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"platform\":\"linux\",\"agent_flavor\":\"dogstatsd\",\"host_id\":6306937106,\"logs_agent\":{\"transport\":\"\"},\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"4c7b0ee1-4725-4e74-5298-c33f\",\"agent_version\":\"7.32.2\"},\"host_name\":\"4c7b0ee1-4725-4e74-5298-c33f\",\"id\":6306937106,\"aliases\":[\"4c7b0ee1-4725-4e74-5298-c33f\"]},{\"last_reported_time\":1641906010,\"name\":\"990fc01b-7e33-4935-75ee-6980\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"page\",\"trace\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:9f43dcdd-9322-4555-ba67-02a9439fd925\",\"application_name:hello-datadog-cf-ruby-blue\",\"cf_instance_ip:10.0.40.11\",\"env:integrations-lab\",\"instance_index:2\",\"space_name:system\",\"uri:hello-datadog-cf-ruby-blue.apps.integrations-lab.devenv.dog\",\"host:990fc01b-7e33-4935-75ee-6980\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"990fc01b-7e33-4935-75ee-6980\",\"macV\":[\"\",\"\",\"\"],\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"logs_agent\":{\"transport\":\"HTTP\"},\"cpuCores\":1,\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"platform\":\"linux\",\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"46080 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2299.998\\\",\\\"model\\\":\\\"63\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.30GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.15.13\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"990fc01b-7e33-4935-75ee-6980\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"network\":null,\"agent_flavor\":\"iot_agent\",\"host_id\":6306978800,\"pythonV\":\"n/a\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.30GHz\",\"socket-fqdn\":\"990fc01b-7e33-4935-75ee-6980\",\"agent_version\":\"7.31.0\"},\"host_name\":\"990fc01b-7e33-4935-75ee-6980\",\"id\":6306978800,\"aliases\":[\"990fc01b-7e33-4935-75ee-6980\"]},{\"last_reported_time\":1641906333,\"name\":\"403b7153-e5e1-420a-5a20-d803\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"page\",\"trace\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:41256269-671b-4d79-91d5-3bf848376425\",\"application_name:test-space-org-cc\",\"cf_instance_ip:10.0.40.5\",\"env:integrations-lab\",\"instance_index:0\",\"space_name:datadog-application-monitoring-space\",\"uri:test-space-org-cc.apps.integrations-lab.devenv.dog\",\"host:403b7153-e5e1-420a-5a20-d803\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"403b7153-e5e1-420a-5a20-d803\",\"macV\":[\"\",\"\",\"\"],\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"logs_agent\":{\"transport\":\"HTTP\"},\"cpuCores\":1,\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"platform\":\"linux\",\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.15.13\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"403b7153-e5e1-420a-5a20-d803\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"network\":null,\"agent_flavor\":\"iot_agent\",\"host_id\":6306938360,\"pythonV\":\"n/a\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"403b7153-e5e1-420a-5a20-d803\",\"agent_version\":\"7.30.0\"},\"host_name\":\"403b7153-e5e1-420a-5a20-d803\",\"id\":6306938360,\"aliases\":[\"403b7153-e5e1-420a-5a20-d803\"]},{\"last_reported_time\":1641906872,\"name\":\"3259ef0c-3cb7-4769-4735-dbee\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:1f283863-86b2-47ba-8700-c4d71c6edea9\",\"application_name:test-apm-service-5\",\"cf_instance_ip:10.0.40.11\",\"container_id:3259ef0c-3cb7-4769-4735-dbee\",\"env:non-prod-auto-81\",\"instance_index:1\",\"space_name:system\",\"test-apm-env\",\"uri:test-apm-service-5.apps.integrations-lab.devenv.dog\",\"host:3259ef0c-3cb7-4769-4735-dbee\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"3259ef0c-3cb7-4769-4735-dbee\",\"macV\":[\"\",\"\",\"\"],\"logs_agent\":{\"transport\":\"HTTP\"},\"network\":null,\"cpuCores\":1,\"platform\":\"linux\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"46080 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2299.998\\\",\\\"model\\\":\\\"63\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.30GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.14.12\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"3259ef0c-3cb7-4769-4735-dbee\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"agent_flavor\":\"iot_agent\",\"host_id\":6306991191,\"pythonV\":\"n/a\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.30GHz\",\"socket-fqdn\":\"3259ef0c-3cb7-4769-4735-dbee\",\"agent_version\":\"7.27.0\"},\"host_name\":\"3259ef0c-3cb7-4769-4735-dbee\",\"id\":6306991191,\"aliases\":[\"3259ef0c-3cb7-4769-4735-dbee\"]},{\"last_reported_time\":1641906600,\"name\":\"f549fedb-85e4-4106-5d1e-3bfa\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:9d519c2b-261e-4553-9db3-c79c8a9857f5\",\"application_name:test_log_redirect\",\"cf_instance_ip:10.0.40.5\",\"instance_index:0\",\"space_name:system\",\"test-log-redirection-socket-closed\",\"uri:testlogredirect.apps.integrations-lab.devenv.dog\",\"host:f549fedb-85e4-4106-5d1e-3bfa\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"f549fedb-85e4-4106-5d1e-3bfa\",\"macV\":[\"\",\"\",\"\"],\"cpuCores\":1,\"pythonV\":\"n/a\",\"platform\":\"linux\",\"logs_agent\":{\"transport\":\"HTTP\"},\"agent_flavor\":\"iot_agent\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.14.12\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"f549fedb-85e4-4106-5d1e-3bfa\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"host_id\":6306938941,\"agent_version\":\"7.27.0\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"f549fedb-85e4-4106-5d1e-3bfa\",\"network\":null},\"host_name\":\"f549fedb-85e4-4106-5d1e-3bfa\",\"id\":6306938941,\"aliases\":[\"f549fedb-85e4-4106-5d1e-3bfa\"]},{\"last_reported_time\":1641906447,\"name\":\"ace8a960-ae96-48af-5a55-cb0d\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"trace\",\"page\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:9f43dcdd-9322-4555-ba67-02a9439fd925\",\"application_name:hello-datadog-cf-ruby-blue\",\"cf_instance_ip:10.0.40.5\",\"env:integrations-lab\",\"instance_index:0\",\"space_name:system\",\"uri:hello-datadog-cf-ruby-blue.apps.integrations-lab.devenv.dog\",\"host:ace8a960-ae96-48af-5a55-cb0d\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"ace8a960-ae96-48af-5a55-cb0d\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"platform\":\"linux\",\"logs_agent\":{\"transport\":\"HTTP\"},\"cpuCores\":1,\"macV\":[\"\",\"\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.15.13\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"ace8a960-ae96-48af-5a55-cb0d\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"network\":null,\"agent_flavor\":\"iot_agent\",\"host_id\":6306942281,\"pythonV\":\"n/a\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"ace8a960-ae96-48af-5a55-cb0d\",\"agent_version\":\"7.31.0\"},\"host_name\":\"ace8a960-ae96-48af-5a55-cb0d\",\"id\":6306942281,\"aliases\":[\"ace8a960-ae96-48af-5a55-cb0d\"]},{\"last_reported_time\":1641906713,\"name\":\"d34b4ecc-86eb-4b16-7f9c-9a2c\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:06ed9382-26b8-42f3-9790-b0bf9f7c7fd9\",\"application_name:test-apm-service-4\",\"cf_instance_ip:10.0.40.5\",\"container_id:d34b4ecc-86eb-4b16-7f9c-9a2c\",\"env:non-prod\",\"instance_index:1\",\"space_name:system\",\"test-apm-env\",\"uri:test-apm-service-4.apps.integrations-lab.devenv.dog\",\"host:d34b4ecc-86eb-4b16-7f9c-9a2c\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"d34b4ecc-86eb-4b16-7f9c-9a2c\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"logs_agent\":{\"transport\":\"HTTP\"},\"network\":null,\"cpuCores\":1,\"platform\":\"linux\",\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.14.12\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"d34b4ecc-86eb-4b16-7f9c-9a2c\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"agent_flavor\":\"iot_agent\",\"host_id\":6306937036,\"pythonV\":\"n/a\",\"macV\":[\"\",\"\",\"\"],\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"d34b4ecc-86eb-4b16-7f9c-9a2c\",\"agent_version\":\"7.27.0\"},\"host_name\":\"d34b4ecc-86eb-4b16-7f9c-9a2c\",\"id\":6306937036,\"aliases\":[\"d34b4ecc-86eb-4b16-7f9c-9a2c\"]},{\"last_reported_time\":1641907512,\"name\":\"07cac129-6989-463b-48f8-2fea\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:1f283863-86b2-47ba-8700-c4d71c6edea9\",\"application_name:test-apm-service-5\",\"cf_instance_ip:10.0.40.5\",\"container_id:07cac129-6989-463b-48f8-2fea\",\"env:non-prod-auto-81\",\"instance_index:0\",\"space_name:system\",\"test-apm-env\",\"uri:test-apm-service-5.apps.integrations-lab.devenv.dog\",\"host:07cac129-6989-463b-48f8-2fea\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"07cac129-6989-463b-48f8-2fea\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"pythonV\":\"n/a\",\"platform\":\"linux\",\"logs_agent\":{\"transport\":\"HTTP\"},\"agent_flavor\":\"iot_agent\",\"macV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.14.12\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"07cac129-6989-463b-48f8-2fea\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"socket-fqdn\":\"07cac129-6989-463b-48f8-2fea\",\"host_id\":6306937802,\"agent_version\":\"7.27.0\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"network\":null,\"cpuCores\":1},\"host_name\":\"07cac129-6989-463b-48f8-2fea\",\"id\":6306937802,\"aliases\":[\"07cac129-6989-463b-48f8-2fea\"]},{\"last_reported_time\":1641907773,\"name\":\"b6b09ba1-8412-458e-6288-304f\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"page\",\"trace\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:dc22d0b9-d6a2-4389-84a6-76029121ebe4\",\"application_name:autodiscovery-http\",\"cf_instance_ip:10.0.40.5\",\"env:integrations-lab\",\"instance_index:0\",\"space_name:system\",\"uri:autodiscovery-http.apps.integrations-lab.devenv.dog\",\"host:b6b09ba1-8412-458e-6288-304f\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"b6b09ba1-8412-458e-6288-304f\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"cpuCores\":1,\"macV\":[\"\",\"\",\"\"],\"logs_agent\":{\"transport\":\"HTTP\"},\"agent_flavor\":\"iot_agent\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"platform\":\"linux\",\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.15.13\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"b6b09ba1-8412-458e-6288-304f\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"network\":null,\"host_id\":6306937316,\"pythonV\":\"n/a\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"b6b09ba1-8412-458e-6288-304f\",\"agent_version\":\"7.30.0\"},\"host_name\":\"b6b09ba1-8412-458e-6288-304f\",\"id\":6306937316,\"aliases\":[\"b6b09ba1-8412-458e-6288-304f\"]},{\"last_reported_time\":1641906717,\"name\":\"9299f226-6c03-45b6-5d43-5d8a\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:8957b9a0-4132-4754-acc5-e3b959b5c77a\",\"application_name:test-apm-service\",\"cf_instance_ip:10.0.40.11\",\"container_id:9299f226-6c03-45b6-5d43-5d8a\",\"env:non-prod\",\"instance_index:0\",\"space_name:system\",\"test-apm-env\",\"uri:test-apm-service.apps.integrations-lab.devenv.dog\",\"host:9299f226-6c03-45b6-5d43-5d8a\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"9299f226-6c03-45b6-5d43-5d8a\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"cpuCores\":1,\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"logs_agent\":{\"transport\":\"HTTP\"},\"agent_flavor\":\"iot_agent\",\"macV\":[\"\",\"\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"processor\":\"Intel(R) Xeon(R) CPU @ 2.30GHz\",\"machine\":\"amd64\",\"platform\":\"linux\",\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"46080 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2299.998\\\",\\\"model\\\":\\\"63\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.30GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.14.12\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"9299f226-6c03-45b6-5d43-5d8a\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"host_id\":6307039546,\"pythonV\":\"n/a\",\"socket-fqdn\":\"9299f226-6c03-45b6-5d43-5d8a\",\"network\":null,\"agent_version\":\"7.27.0\"},\"host_name\":\"9299f226-6c03-45b6-5d43-5d8a\",\"id\":6307039546,\"aliases\":[\"9299f226-6c03-45b6-5d43-5d8a\"]},{\"last_reported_time\":1641907935,\"name\":\"4f1da5be-4454-4238-6d5f-8fd4\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"page\",\"trace\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:41256269-671b-4d79-91d5-3bf848376425\",\"application_name:test-space-org-cc\",\"cf_instance_ip:10.0.40.5\",\"env:integrations-lab\",\"instance_index:1\",\"space_name:datadog-application-monitoring-space\",\"uri:test-space-org-cc.apps.integrations-lab.devenv.dog\",\"host:4f1da5be-4454-4238-6d5f-8fd4\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"4f1da5be-4454-4238-6d5f-8fd4\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"cpuCores\":1,\"macV\":[\"\",\"\",\"\"],\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"logs_agent\":{\"transport\":\"HTTP\"},\"agent_flavor\":\"iot_agent\",\"platform\":\"linux\",\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"network\":null,\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.15.13\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"4f1da5be-4454-4238-6d5f-8fd4\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"host_id\":6306942318,\"pythonV\":\"n/a\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"4f1da5be-4454-4238-6d5f-8fd4\",\"agent_version\":\"7.30.0\"},\"host_name\":\"4f1da5be-4454-4238-6d5f-8fd4\",\"id\":6306942318,\"aliases\":[\"4f1da5be-4454-4238-6d5f-8fd4\"]},{\"last_reported_time\":1641906715,\"name\":\"a2af6476-390b-4f1f-6b18-a9bf\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:0ba38e35-614c-4576-862a-92a1b60c53db\",\"application_name:test-apm-service-2\",\"cf_instance_ip:10.0.40.5\",\"container_id:a2af6476-390b-4f1f-6b18-a9bf\",\"env:non-prod\",\"instance_index:0\",\"space_name:system\",\"test-apm-env\",\"uri:test-apm-service-2.apps.integrations-lab.devenv.dog\",\"host:a2af6476-390b-4f1f-6b18-a9bf\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"a2af6476-390b-4f1f-6b18-a9bf\",\"macV\":[\"\",\"\",\"\"],\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"cpuCores\":1,\"agent_flavor\":\"iot_agent\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"agent_version\":\"7.27.0\",\"machine\":\"amd64\",\"platform\":\"linux\",\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.14.12\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"a2af6476-390b-4f1f-6b18-a9bf\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"logs_agent\":{\"transport\":\"HTTP\"},\"host_id\":6306937724,\"pythonV\":\"n/a\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"a2af6476-390b-4f1f-6b18-a9bf\",\"network\":null},\"host_name\":\"a2af6476-390b-4f1f-6b18-a9bf\",\"id\":6306937724,\"aliases\":[\"a2af6476-390b-4f1f-6b18-a9bf\"]}],\"total_matching\":41}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 11 Jan 2022 13:45:52 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/hosts?include_hosts_metadata=true" + }, + "response": { + "body": { + "string": "{\"exact_total_matching\":true,\"total_returned\":41,\"host_list\":[{\"last_reported_time\":1641906477,\"name\":\"control-0\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"cloudfoundry\",\"agent\",\"ntp\"],\"tags_by_source\":{\"Datadog\":[\"bosh_address:10.0.40.4\",\"bosh_az:us-central1-a\",\"bosh_deployment:cf-58f7c74c619c33d63485\",\"bosh_id:1984d49c-04b6-470c-a770-218e716c027e\",\"bosh_index:0\",\"bosh_ip:10.0.40.4\",\"bosh_job:control\",\"bosh_name:control\",\"cf-58f7c74c619c33d63485\",\"cf-58f7c74c619c33d63485-control\",\"cloudfoundry\",\"control\",\"created_at:2021-12-16t02:44:39z\",\"deployment:cf-58f7c74c619c33d63485\",\"director:p-bosh\",\"id:1984d49c-04b6-470c-a770-218e716c027e\",\"index:0\",\"index:1984d49c-04b6-470c-a770-218e716c027e\",\"instance-id:1676922833778186514\",\"instance-type:custom-4-16384\",\"instance_group:control\",\"internal-hostname:vm-52009774-7863-4c6a-5a13-51cfdd1609cf.c.datadog-integrations-lab.internal\",\"ip:10.0.40.4\",\"job:control\",\"name:control/1984d49c-04b6-470c-a770-218e716c027e\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-cf-58f7c74c619c33d63485\",\"p-bosh-cf-58f7c74c619c33d63485-control\",\"pcf-vms\",\"project:datadog-integrations-lab\",\"user_data:_server_:_name_:_vm-52009774-7863-4c6a-5a13-51cfdd1609cf_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-a\",\"host:control-0\"]},\"up\":true,\"metrics\":{\"load\":0.32003334,\"iowait\":0.079276726,\"cpu\":29.41709},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"e4a8a521-2d74-4c03-9980-bca34bdee413\",\"nixV\":[\"ubuntu\",\"16.04\",\"\"],\"cpuCores\":1,\"agent_checks\":[[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:abc4dd01ed069179\",\"OK\",\"\",\"\"],[\"network\",\"network\",\"network:4568a8c8c4d5d3d5\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:cc_uploader:3d0678a999833fc0\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-syslog-binding-cache:537aa574e5e28491\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:log-cache-gateway:13c09b3739262153\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:reverse_log_proxy_gateway:e3885cefc03bf408\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bbs:64dbd323e48fcaf4\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:uaa:5aa254682e603228\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:auctioneer:87697cbe3dbdfd44\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:ccng_monit_http_healthcheck:d88a3600db2ba759\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-healthcheck:43786f001c4a3099\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:cloud_controller_ng:24632bd497253aa9\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:statsd_injector:7379fca29fe3a4ff\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:route_registrar:c92935beabfd476c\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-udp-forwarder:830b62ee1bfd88a3\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-agent:87c0340b0df2f04\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:monit:ba1b4f0db0e68cdb\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:cloud_controller_clock:c8672a23d35e7cd4\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:log-cache-cf-auth-proxy:7943ecf77b9a79e\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-resolvconf:557485c838539c37\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-syslog-agent:6308a74718cdb30\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:system-metrics-agent:f96e75f57c4f9874\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:file_server:deedc3d04c4cb5bd\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggregator_agent:e70c7141fe641fd4\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:service-discovery-controller:e543394ee449c99c\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:tps_watcher:4fc274ad3daedfe2\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:cc_deployment_updater:480dc6fd3a2bc04b\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:cloud_controller_worker_local_1:8aabe8cbcba89058\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns:bb15cf7e4add3789\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metric_registrar_log_worker:92eda95c3f060e8d\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:reverse_log_proxy:868098ec0db42a59\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-agent:9348d9bcc210f773\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:locket:3b88945d4fb7dd5b\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-system-metric-scraper:2ed7e2886f6053c0\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:cloud_controller_worker_1:3084bb618408430f\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:policy-server-internal:f4fbef8344963995\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metric_registrar_orchestrator:b2723a5cf003fb60\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:cloud_controller_worker_local_2:1308451a6cd30c7e\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:routing-api:d5400ef919ea406\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:policy-server:39205d55df6fd807\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:ssh_proxy:96d831050c719d90\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:sshd:342db389f880a7cf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:nginx_cc:c851861b3b7dac00\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggregator_trafficcontroller:f293fcdbeb39ae4\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:log-cache-nozzle:8417a7dfc876e5c9\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-system-metrics-forwarder:dec520770c84eb74\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-discovery-registrar:2499640bb2b8b315\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:log-cache:d1c6af5f1bd3f240\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:leadership-election:ef70b8234e7c6fb8\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:prom_scraper:728ea58b02a2d668\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-forwarder-agent:dfd03904f3c38951\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metric_registrar_endpoint_worker:9199a3a6ad069794\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:silk-controller:44ee7f9fe3bf2d15\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:credhub:6566835bbed7c86e\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:doppler:4f1a37333ded2c21\",\"OK\",\"\",\"\"],[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"],[\"disk\",\"disk\",\"disk:17d8571dea6d7adf\",\"OK\",\"\",\"\"]],\"platform\":\"linux\",\"network\":{\"network-id\":\"projects/116803814856/networks/datadog-integrations-lab-us-central1\",\"public-ipv4\":\"34.121.144.12\"},\"agent_flavor\":\"agent\",\"macV\":[\"\",\"\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"pythonV\":\"3.8.11\",\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"5120\\\",\\\"mounted_on\\\":\\\"/run/lock\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2886304\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"/dev/sda1\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/var/vcap/data\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"1024\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/sys/run\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":{\\\"interfaces\\\":[{\\\"ipv4\\\":\\\"10.0.40.4\\\",\\\"ipv4-network\\\":\\\"10.0.40.4/32\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:04\\\",\\\"name\\\":\\\"eth0\\\"}],\\\"ipaddress\\\":\\\"10.0.40.4\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:04\\\"},\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"e4a8a521-2d74-4c03-9980-bca34bdee413\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"3.8.11\\\"}}\",\"host_id\":1588212437,\"agent_version\":\"7.32.4\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"localhost\",\"logs_agent\":{\"transport\":\"\"}},\"host_name\":\"control-0\",\"id\":1588212437,\"aliases\":[\"vm-52009774-7863-4c6a-5a13-51cfdd1609cf.datadog-integrations-lab\",\"vm-52009774-7863-4c6a-5a13-51cfdd1609cf.c.datadog-integrations-lab.internal\",\"control-0\",\"1984d49c-04b6-470c-a770-218e716c027e\"]},{\"last_reported_time\":1641908074,\"name\":\"3be59ad0-f9bc-4c6c-60ec-2e44\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"ntp\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:14aa46da-2357-40d9-988d-2c6f3660680d\",\"application_name:hello-datadog-cf-ruby-test\",\"cf_instance_ip:10.0.40.5\",\"instance_index:0\",\"space_name:system\",\"uri:hello-datadog-cf-ruby-test.apps.integrations-lab.devenv.dog\",\"host:3be59ad0-f9bc-4c6c-60ec-2e44\"]},\"up\":true,\"metrics\":{\"load\":0.26465,\"iowait\":0.11494715,\"cpu\":14.255855},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"3be59ad0-f9bc-4c6c-60ec-2e44\",\"macV\":[\"\",\"\",\"\"],\"cpuCores\":1,\"pythonV\":\"n/a\",\"logs_agent\":{\"transport\":\"\"},\"agent_checks\":[[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:b4579e02d1981c12\",\"OK\",\"\",\"\"],[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"],[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"]],\"platform\":\"linux\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"agent_flavor\":\"iot_agent\",\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1048576\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"3be59ad0-f9bc-4c6c-60ec-2e44\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"host_id\":6306937692,\"fbsdV\":[\"\",\"\",\"\"],\"agent_version\":\"7.32.2\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"3be59ad0-f9bc-4c6c-60ec-2e44\",\"network\":null},\"host_name\":\"3be59ad0-f9bc-4c6c-60ec-2e44\",\"id\":6306937692,\"aliases\":[\"3be59ad0-f9bc-4c6c-60ec-2e44\"]},{\"last_reported_time\":1641908071,\"name\":\"compute-0\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"network\",\"cloudfoundry\",\"ntp\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"bosh_address:10.0.40.5\",\"bosh_az:us-central1-a\",\"bosh_deployment:cf-58f7c74c619c33d63485\",\"bosh_id:0b7e0c80-c2a0-449c-9bf0-d8b886607fc3\",\"bosh_index:0\",\"bosh_ip:10.0.40.5\",\"bosh_job:compute\",\"bosh_name:compute\",\"cf-58f7c74c619c33d63485\",\"cf-58f7c74c619c33d63485-compute\",\"cloudfoundry\",\"compute\",\"created_at:2021-12-16t02:57:44z\",\"deployment:cf-58f7c74c619c33d63485\",\"director:p-bosh\",\"id:0b7e0c80-c2a0-449c-9bf0-d8b886607fc3\",\"index:0\",\"index:0b7e0c80-c2a0-449c-9bf0-d8b886607fc3\",\"instance-id:6741335140059256318\",\"instance-type:custom-4-16384\",\"instance_group:compute\",\"internal-hostname:vm-aef6415e-c7dd-489c-6ba8-be35dbec92df.c.datadog-integrations-lab.internal\",\"ip:10.0.40.5\",\"job:compute\",\"name:compute/0b7e0c80-c2a0-449c-9bf0-d8b886607fc3\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-cf-58f7c74c619c33d63485\",\"p-bosh-cf-58f7c74c619c33d63485-compute\",\"pcf-vms\",\"project:datadog-integrations-lab\",\"user_data:_server_:_name_:_vm-aef6415e-c7dd-489c-6ba8-be35dbec92df_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-a\",\"host:compute-0\"]},\"up\":true,\"metrics\":{\"load\":0.28273648,\"iowait\":0.09214352,\"cpu\":14.062636},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"db5182f4-724a-4fcc-b552-ca274d09c566\",\"nixV\":[\"ubuntu\",\"16.04\",\"\"],\"pythonV\":\"3.8.11\",\"platform\":\"linux\",\"agent_checks\":[[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:abc4dd01ed069179\",\"OK\",\"\",\"\"],[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:route_emitter:28b85ccdd7bcca89\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:monit:ba1b4f0db0e68cdb\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:silk-daemon:42bd0967a0a2a419\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-adapter:2aad5dbd684d67e1\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-discovery-registrar:2499640bb2b8b315\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggregator_agent:e70c7141fe641fd4\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:prom_scraper:728ea58b02a2d668\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:sshd:342db389f880a7cf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:garden:5103b5aa45b0a808\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-agent:87c0340b0df2f04\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:netmon:5a4d96913933a354\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-agent:9348d9bcc210f773\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-resolvconf:557485c838539c37\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:rep:72fcf04e2248dc5e\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:system-metrics-agent:f96e75f57c4f9874\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:nfsv3driver:d35677bcfeaf03b7\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-healthcheck:43786f001c4a3099\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-forwarder-agent:dfd03904f3c38951\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:smbdriver:db0efad94879b577\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns:bb15cf7e4add3789\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:vxlan-policy-agent:9a79744e56be760b\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-syslog-agent:6308a74718cdb30\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:iptables-logger:53134b433f0040ba\",\"OK\",\"\",\"\"],[\"network\",\"network\",\"network:4568a8c8c4d5d3d5\",\"OK\",\"\",\"\"],[\"disk\",\"disk\",\"disk:17d8571dea6d7adf\",\"OK\",\"\",\"\"]],\"cpuCores\":1,\"macV\":[\"\",\"\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"5120\\\",\\\"mounted_on\\\":\\\"/run/lock\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2886304\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"/dev/sda1\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/var/vcap/data\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"1024\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/sys/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"100178588\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/grootfs/store/unprivileged\\\",\\\"name\\\":\\\"/dev/loop0\\\"},{\\\"kb_size\\\":\\\"100178588\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/grootfs/store/privileged\\\",\\\"name\\\":\\\"/dev/loop1\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/rep/shared/garden/instance_identity\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":{\\\"interfaces\\\":[{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:09\\\",\\\"name\\\":\\\"s-010255178009\\\"},{\\\"ipv4\\\":\\\"10.0.40.5\\\",\\\"ipv4-network\\\":\\\"10.0.40.5/32\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:05\\\",\\\"name\\\":\\\"eth0\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:0a\\\",\\\"name\\\":\\\"s-010255178010\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:0b\\\",\\\"name\\\":\\\"s-010255178011\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:0d\\\",\\\"name\\\":\\\"s-010255178013\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:0e\\\",\\\"name\\\":\\\"s-010255178014\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:0f\\\",\\\"name\\\":\\\"s-010255178015\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:10\\\",\\\"name\\\":\\\"s-010255178016\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:11\\\",\\\"name\\\":\\\"s-010255178017\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:12\\\",\\\"name\\\":\\\"s-010255178018\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:13\\\",\\\"name\\\":\\\"s-010255178019\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:14\\\",\\\"name\\\":\\\"s-010255178020\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:15\\\",\\\"name\\\":\\\"s-010255178021\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:16\\\",\\\"name\\\":\\\"s-010255178022\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:17\\\",\\\"name\\\":\\\"s-010255178023\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:18\\\",\\\"name\\\":\\\"s-010255178024\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:19\\\",\\\"name\\\":\\\"s-010255178025\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:1a\\\",\\\"name\\\":\\\"s-010255178026\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:1b\\\",\\\"name\\\":\\\"s-010255178027\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:1d\\\",\\\"name\\\":\\\"s-010255178029\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:1e\\\",\\\"name\\\":\\\"s-010255178030\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:20\\\",\\\"name\\\":\\\"s-010255178032\\\"},{\\\"ipv4\\\":\\\"10.255.178.0\\\",\\\"ipv4-network\\\":\\\"10.255.0.0/16\\\",\\\"macaddress\\\":\\\"ee:ee:0a:ff:b2:00\\\",\\\"name\\\":\\\"silk-vtep\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:04\\\",\\\"name\\\":\\\"s-010255178004\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:05\\\",\\\"name\\\":\\\"s-010255178005\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:06\\\",\\\"name\\\":\\\"s-010255178006\\\"}],\\\"ipaddress\\\":\\\"169.254.0.1\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:b2:09\\\"},\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"db5182f4-724a-4fcc-b552-ca274d09c566\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"3.8.11\\\"}}\",\"network\":{\"network-id\":\"projects/116803814856/networks/datadog-integrations-lab-us-central1\",\"public-ipv4\":\"34.134.81.43\"},\"agent_flavor\":\"agent\",\"host_id\":1885388434,\"agent_version\":\"7.32.4\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"localhost\",\"logs_agent\":{\"transport\":\"\"}},\"host_name\":\"compute-0\",\"id\":1885388434,\"aliases\":[\"vm-aef6415e-c7dd-489c-6ba8-be35dbec92df.datadog-integrations-lab\",\"vm-aef6415e-c7dd-489c-6ba8-be35dbec92df.c.datadog-integrations-lab.internal\",\"compute-0\",\"0b7e0c80-c2a0-449c-9bf0-d8b886607fc3\"]},{\"last_reported_time\":1641906445,\"name\":\"00d23ea2-2de3-4017-68cd-9244\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"ntp\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:14aa46da-2357-40d9-988d-2c6f3660680d\",\"application_name:hello-datadog-cf-ruby-test\",\"cf_instance_ip:10.0.40.5\",\"instance_index:1\",\"space_name:system\",\"uri:hello-datadog-cf-ruby-test.apps.integrations-lab.devenv.dog\",\"host:00d23ea2-2de3-4017-68cd-9244\"]},\"up\":true,\"metrics\":{\"load\":0.22518334,\"iowait\":0.12053162,\"cpu\":13.935913},\"sources\":[\"agent\"],\"meta\":{\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"agent_checks\":[[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:b4579e02d1981c12\",\"OK\",\"\",\"\"],[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"],[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"]],\"logs_agent\":{\"transport\":\"\"},\"cpuCores\":1,\"macV\":[\"\",\"\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"agent_version\":\"7.32.2\",\"machine\":\"amd64\",\"platform\":\"linux\",\"agent_flavor\":\"iot_agent\",\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1048576\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"00d23ea2-2de3-4017-68cd-9244\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"host_id\":6306937090,\"fbsdV\":[\"\",\"\",\"\"],\"pythonV\":\"n/a\",\"socket-hostname\":\"00d23ea2-2de3-4017-68cd-9244\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"00d23ea2-2de3-4017-68cd-9244\",\"network\":null},\"host_name\":\"00d23ea2-2de3-4017-68cd-9244\",\"id\":6306937090,\"aliases\":[\"00d23ea2-2de3-4017-68cd-9244\"]},{\"last_reported_time\":1641906487,\"name\":\"pks-db-0\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"cloudfoundry\",\"agent\",\"ntp\"],\"tags_by_source\":{\"Datadog\":[\"bosh_address:10.0.40.20\",\"bosh_az:us-central1-a\",\"bosh_deployment:pivotal-container-service-2db99f13c503d2c4afac\",\"bosh_id:bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"bosh_index:0\",\"bosh_ip:10.0.40.20\",\"bosh_job:pks-db\",\"bosh_name:pks-db\",\"cloudfoundry\",\"created_at:2021-02-04t11:51:58z\",\"deployment:pivotal-container-service-2db99f13c503d2c4afac\",\"director:p-bosh\",\"id:bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"index:0\",\"index:bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"instance-id:3455194630398042407\",\"instance-type:custom-2-8192\",\"instance_group:pks-db\",\"internal-hostname:vm-5b9ee0e7-a9ec-424a-5233-b4497c6a8873.c.datadog-integrations-lab.internal\",\"ip:10.0.40.20\",\"job:pks-db\",\"name:pks-db/bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-pivotal-container-service-2db99f13c503d2c4afac\",\"p-bosh-pivotal-container-service-2db99f13c503d2c4afac-pks-db\",\"pcf-vms\",\"pivotal-container-service-2db99f13c503d2c4afac\",\"pivotal-container-service-2db99f13c503d2c4afac-pks-db\",\"pks-db\",\"project:datadog-integrations-lab\",\"user_data:_server_:_name_:_vm-5b9ee0e7-a9ec-424a-5233-b4497c6a8873_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-a\",\"host:pks-db-0\"]},\"up\":true,\"metrics\":{\"load\":0.1393,\"iowait\":0.2804128,\"cpu\":13.608116},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"0739b63a-96d0-4afa-b8a6-a6e1e05c65e2\",\"nixV\":[\"ubuntu\",\"16.04\",\"\"],\"cpuCores\":1,\"pythonV\":\"3.8.11\",\"agent_checks\":[[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"],[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:abc4dd01ed069179\",\"OK\",\"\",\"\"],[\"disk\",\"disk\",\"disk:17d8571dea6d7adf\",\"OK\",\"\",\"\"],[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-agent:9348d9bcc210f773\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:system-metrics-agent:f96e75f57c4f9874\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:proxy:463c705e43d0fe75\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:galera-agent:7d61834d95e8a9f\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:cluster-health-logger:510a88480112002f\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:gra-log-purger:8327c97cdd4831de\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-healthcheck:43786f001c4a3099\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns:bb15cf7e4add3789\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:sshd:342db389f880a7cf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-resolvconf:557485c838539c37\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:galera-init:a00f33c5b6290c8f\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:monit:ba1b4f0db0e68cdb\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"network\",\"network\",\"network:4568a8c8c4d5d3d5\",\"OK\",\"\",\"\"]],\"agent_flavor\":\"agent\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"1\\\",\\\"cpu_logical_processors\\\":\\\"2\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2200.000\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"4069080\\\",\\\"mounted_on\\\":\\\"/dev\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"4084040\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"4084040\\\",\\\"mounted_on\\\":\\\"/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"5120\\\",\\\"mounted_on\\\":\\\"/run/lock\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"4084040\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2886304\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"/dev/sda1\\\"},{\\\"kb_size\\\":\\\"58028260\\\",\\\"mounted_on\\\":\\\"/var/vcap/data\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"1024\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/sys/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"10188088\\\",\\\"mounted_on\\\":\\\"/var/vcap/store\\\",\\\"name\\\":\\\"/dev/sdb1\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"8168080kB\\\",\\\"total\\\":\\\"8168084kB\\\"},\\\"network\\\":{\\\"interfaces\\\":[{\\\"ipv4\\\":\\\"10.0.40.20\\\",\\\"ipv4-network\\\":\\\"10.0.40.20/32\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:14\\\",\\\"name\\\":\\\"eth0\\\"}],\\\"ipaddress\\\":\\\"10.0.40.20\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:14\\\"},\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"0739b63a-96d0-4afa-b8a6-a6e1e05c65e2\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"3.8.11\\\"}}\",\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"network\":{\"network-id\":\"projects/116803814856/networks/datadog-integrations-lab-us-central1\",\"public-ipv4\":\"104.155.174.157\"},\"fbsdV\":[\"\",\"\",\"\"],\"platform\":\"linux\",\"host_id\":4154624049,\"logs_agent\":{\"transport\":\"\"},\"macV\":[\"\",\"\",\"\"],\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"localhost\",\"agent_version\":\"7.32.2\"},\"host_name\":\"pks-db-0\",\"id\":4154624049,\"aliases\":[\"vm-5b9ee0e7-a9ec-424a-5233-b4497c6a8873.datadog-integrations-lab\",\"vm-5b9ee0e7-a9ec-424a-5233-b4497c6a8873.c.datadog-integrations-lab.internal\",\"pks-db-0\",\"bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\"]},{\"last_reported_time\":1641907073,\"name\":\"9905e5cf-024c-4eb5-7246-39c0\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"agent\",\"ntp\"],\"tags_by_source\":{\"Datadog\":[\"application_id:14aa46da-2357-40d9-988d-2c6f3660680d\",\"application_name:hello-datadog-cf-ruby-test\",\"cf_instance_ip:10.0.40.5\",\"instance_index:2\",\"space_name:system\",\"uri:hello-datadog-cf-ruby-test.apps.integrations-lab.devenv.dog\",\"host:9905e5cf-024c-4eb5-7246-39c0\"]},\"up\":true,\"metrics\":{\"load\":0.20908333,\"iowait\":0.15201081,\"cpu\":13.586387},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"9905e5cf-024c-4eb5-7246-39c0\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"network\":null,\"cpuCores\":1,\"macV\":[\"\",\"\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"agent_version\":\"7.32.2\",\"machine\":\"amd64\",\"platform\":\"linux\",\"socket-fqdn\":\"9905e5cf-024c-4eb5-7246-39c0\",\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1048576\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"9905e5cf-024c-4eb5-7246-39c0\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"logs_agent\":{\"transport\":\"\"},\"host_id\":6306938945,\"pythonV\":\"n/a\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"agent_flavor\":\"iot_agent\",\"agent_checks\":[[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:b4579e02d1981c12\",\"OK\",\"\",\"\"],[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"],[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"],[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"]]},\"host_name\":\"9905e5cf-024c-4eb5-7246-39c0\",\"id\":6306938945,\"aliases\":[\"9905e5cf-024c-4eb5-7246-39c0\"]},{\"last_reported_time\":1641907128,\"name\":\"55472e59-1622-4edb-5612-8a22\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"agent\",\"ntp\"],\"tags_by_source\":{\"Datadog\":[\"application_id:c7186718-9fb1-4a0a-9818-e2b29781ed60\",\"application_name:test-stdout\",\"cf_instance_ip:10.0.40.5\",\"instance_index:0\",\"space_name:system\",\"test_apm_billing\",\"uri:test-stdout.apps.integrations-lab.devenv.dog\",\"host:55472e59-1622-4edb-5612-8a22\"]},\"up\":true,\"metrics\":{\"load\":0.25035,\"iowait\":0.0972689,\"cpu\":13.13656},\"sources\":[\"agent\"],\"meta\":{\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"macV\":[\"\",\"\",\"\"],\"logs_agent\":{\"transport\":\"HTTP\"},\"cpuCores\":1,\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"agent_version\":\"7.27.0\",\"machine\":\"amd64\",\"platform\":\"linux\",\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.14.12\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"55472e59-1622-4edb-5612-8a22\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"network\":null,\"agent_flavor\":\"iot_agent\",\"host_id\":6306942373,\"pythonV\":\"n/a\",\"socket-hostname\":\"55472e59-1622-4edb-5612-8a22\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"55472e59-1622-4edb-5612-8a22\",\"agent_checks\":[[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:b4579e02d1981c12\",\"OK\",\"\",\"\"],[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"],[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"],[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"]]},\"host_name\":\"55472e59-1622-4edb-5612-8a22\",\"id\":6306942373,\"aliases\":[\"55472e59-1622-4edb-5612-8a22\"]},{\"last_reported_time\":1641908079,\"name\":\"master-0\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"cloudfoundry\",\"etcd\",\"kube_scheduler\",\"ntp\",\"agent\",\"kube_apiserver\",\"kube_controller_manager\"],\"tags_by_source\":{\"Datadog\":[\"bosh_address:4626db8f-c3cb-4bbe-bd00-3465525631b8.master.services.service-instance-f6138a1a-496f-4e66-8424-2de713841a51.bosh\",\"bosh_az:us-central1-a\",\"bosh_deployment:service-instance_f6138a1a-496f-4e66-8424-2de713841a51\",\"bosh_id:4626db8f-c3cb-4bbe-bd00-3465525631b8\",\"bosh_index:0\",\"bosh_ip:10.0.40.130\",\"bosh_job:master\",\"bosh_name:master\",\"cloudfoundry\",\"created_at:2021-02-08t11:45:31z\",\"deployment:service-instance_f6138a1a-496f-4e66-8424-2de713841a51\",\"director:p-bosh\",\"id:4626db8f-c3cb-4bbe-bd00-3465525631b8\",\"index:0\",\"index:4626db8f-c3cb-4bbe-bd00-3465525631b8\",\"instance-id:7548018590529395371\",\"instance-type:custom-2-4096\",\"instance_group:master\",\"internal-hostname:vm-5e19d58a-a4b6-45f1-7041-c82bba0635f6.c.datadog-integrations-lab.internal\",\"ip:10.0.40.130\",\"job:master\",\"master\",\"name:master/4626db8f-c3cb-4bbe-bd00-3465525631b8\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-service-instance-f6138a1a-496f-4e66-8424-2de713841a51\",\"pcf-vms\",\"project:datadog-integrations-lab\",\"service-instance-f6138a1a-496f-4e66-8424-2de713841a51\",\"service-instance-f6138a1a-496f-4e66-8424-2de713841a51-master\",\"user_data:_server_:_name_:_vm-5e19d58a-a4b6-45f1-7041-c82bba0635f6_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-a\",\"host:master-0\"]},\"up\":true,\"metrics\":{\"load\":0.14919999,\"iowait\":0.24663304,\"cpu\":13.076977},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"a388684f-2f94-4cda-9a28-8852a35d3a20\",\"macV\":[\"\",\"\",\"\"],\"pythonV\":\"3.8.11\",\"cpuCores\":1,\"agent_flavor\":\"agent\",\"nixV\":[\"ubuntu\",\"16.04\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"1\\\",\\\"cpu_logical_processors\\\":\\\"2\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2200.000\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"2004700\\\",\\\"mounted_on\\\":\\\"/dev\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"2019660\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2019660\\\",\\\"mounted_on\\\":\\\"/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"5120\\\",\\\"mounted_on\\\":\\\"/run/lock\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2019660\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2886304\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"/dev/sda1\\\"},{\\\"kb_size\\\":\\\"29064176\\\",\\\"mounted_on\\\":\\\"/var/vcap/data\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"1024\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/sys/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"10188088\\\",\\\"mounted_on\\\":\\\"/var/vcap/store\\\",\\\"name\\\":\\\"/dev/sdb1\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"4039320kB\\\",\\\"total\\\":\\\"4039324kB\\\"},\\\"network\\\":{\\\"interfaces\\\":[{\\\"ipv4\\\":\\\"10.0.40.130\\\",\\\"ipv4-network\\\":\\\"10.0.40.130/32\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:82\\\",\\\"name\\\":\\\"eth0\\\"},{\\\"ipv4\\\":\\\"10.200.95.0\\\",\\\"ipv4-network\\\":\\\"10.200.95.0/32\\\",\\\"macaddress\\\":\\\"5a:74:a8:9d:52:cf\\\",\\\"name\\\":\\\"flannel.1\\\"}],\\\"ipaddress\\\":\\\"10.0.40.130\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:82\\\"},\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"a388684f-2f94-4cda-9a28-8852a35d3a20\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"3.8.11\\\"}}\",\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"platform\":\"linux\",\"network\":{\"network-id\":\"projects/116803814856/networks/datadog-integrations-lab-us-central1\",\"public-ipv4\":\"35.184.114.75\"},\"host_id\":3735337047,\"logs_agent\":{\"transport\":\"\"},\"agent_checks\":[[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"],[\"etcd\",\"etcd\",\"etcd:8817cef03662b9a7\",\"OK\",\"\",\"\"],[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"],[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:sshd:342db389f880a7cf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:kube-controller-manager:2f59ca6cec654503\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:kube-scheduler:62183cf888b1af0e\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:system-metrics-agent:f96e75f57c4f9874\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:kube-apiserver:68590183bc555d88\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:etcd:82804e4f8ddf95cb\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-agent:9348d9bcc210f773\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:flanneld:a7df16b1b11344ab\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:blackbox:a853635f1d25c9f2\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns:bb15cf7e4add3789\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:monit:ba1b4f0db0e68cdb\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-resolvconf:557485c838539c37\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-healthcheck:43786f001c4a3099\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:abc4dd01ed069179\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"kube_scheduler\",\"kube_scheduler\",\"kube_scheduler:fcf7e29c2a938f61\",\"OK\",\"\",\"\"],[\"kube_controller_manager\",\"kube_controller_manager\",\"kube_controller_manager:4e92a44f44f751da\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"disk\",\"disk\",\"disk:17d8571dea6d7adf\",\"OK\",\"\",\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"kube_apiserver_metrics\",\"kube_apiserver_metrics\",\"kube_apiserver_metrics:6a8a51818374f367\",\"OK\",\"\",\"\"],[\"network\",\"network\",\"network:4568a8c8c4d5d3d5\",\"OK\",\"\",\"\"]],\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"localhost\",\"agent_version\":\"7.32.2\"},\"host_name\":\"master-0\",\"id\":3735337047,\"aliases\":[\"vm-5e19d58a-a4b6-45f1-7041-c82bba0635f6.datadog-integrations-lab\",\"vm-5e19d58a-a4b6-45f1-7041-c82bba0635f6.c.datadog-integrations-lab.internal\",\"master-0\",\"4626db8f-c3cb-4bbe-bd00-3465525631b8\"]},{\"last_reported_time\":1641908079,\"name\":\"compute-1\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"network\",\"cloudfoundry\",\"ntp\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"bosh_address:10.0.40.11\",\"bosh_az:us-central1-b\",\"bosh_deployment:cf-58f7c74c619c33d63485\",\"bosh_id:e7910b19-d01d-411b-9e4a-8e4dcdd74bfd\",\"bosh_index:1\",\"bosh_ip:10.0.40.11\",\"bosh_job:compute\",\"bosh_name:compute\",\"cf-58f7c74c619c33d63485\",\"cf-58f7c74c619c33d63485-compute\",\"cloudfoundry\",\"compute\",\"created_at:2021-12-16t03:04:03z\",\"deployment:cf-58f7c74c619c33d63485\",\"director:p-bosh\",\"id:e7910b19-d01d-411b-9e4a-8e4dcdd74bfd\",\"index:1\",\"index:e7910b19-d01d-411b-9e4a-8e4dcdd74bfd\",\"instance-id:2118155544334635619\",\"instance-type:custom-4-16384\",\"instance_group:compute\",\"internal-hostname:vm-c63c98cd-c697-45db-5fa0-1141302eb447.c.datadog-integrations-lab.internal\",\"ip:10.0.40.11\",\"job:compute\",\"name:compute/e7910b19-d01d-411b-9e4a-8e4dcdd74bfd\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-cf-58f7c74c619c33d63485\",\"p-bosh-cf-58f7c74c619c33d63485-compute\",\"pcf-vms\",\"project:datadog-integrations-lab\",\"user_data:_server_:_name_:_vm-c63c98cd-c697-45db-5fa0-1141302eb447_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-b\",\"host:compute-1\"]},\"up\":true,\"metrics\":{\"load\":0.055883333,\"iowait\":0.06967267,\"cpu\":5.8552155},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"0d658567-f4ca-4b9e-b350-dbf55d0fa228\",\"nixV\":[\"ubuntu\",\"16.04\",\"\"],\"cpuCores\":1,\"agent_checks\":[[\"disk\",\"disk\",\"disk:17d8571dea6d7adf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:prom_scraper:728ea58b02a2d668\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:rep:72fcf04e2248dc5e\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:sshd:342db389f880a7cf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-agent:87c0340b0df2f04\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-discovery-registrar:2499640bb2b8b315\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-healthcheck:43786f001c4a3099\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-forwarder-agent:dfd03904f3c38951\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:nfsv3driver:d35677bcfeaf03b7\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:silk-daemon:42bd0967a0a2a419\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:netmon:5a4d96913933a354\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-syslog-agent:6308a74718cdb30\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-resolvconf:557485c838539c37\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:vxlan-policy-agent:9a79744e56be760b\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:smbdriver:db0efad94879b577\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:monit:ba1b4f0db0e68cdb\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:system-metrics-agent:f96e75f57c4f9874\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-adapter:2aad5dbd684d67e1\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:route_emitter:28b85ccdd7bcca89\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggregator_agent:e70c7141fe641fd4\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-agent:9348d9bcc210f773\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:garden:5103b5aa45b0a808\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns:bb15cf7e4add3789\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:iptables-logger:53134b433f0040ba\",\"OK\",\"\",\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"],[\"network\",\"network\",\"network:4568a8c8c4d5d3d5\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:abc4dd01ed069179\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"],[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"]],\"platform\":\"linux\",\"logs_agent\":{\"transport\":\"\"},\"agent_flavor\":\"agent\",\"macV\":[\"\",\"\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"46080 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2299.998\\\",\\\"model\\\":\\\"63\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.30GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"5120\\\",\\\"mounted_on\\\":\\\"/run/lock\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2886304\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"/dev/sda1\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/var/vcap/data\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"1024\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/sys/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"100178588\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/grootfs/store/unprivileged\\\",\\\"name\\\":\\\"/dev/loop0\\\"},{\\\"kb_size\\\":\\\"100178588\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/grootfs/store/privileged\\\",\\\"name\\\":\\\"/dev/loop1\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/rep/shared/garden/instance_identity\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":{\\\"interfaces\\\":[{\\\"ipv4\\\":\\\"10.255.84.0\\\",\\\"ipv4-network\\\":\\\"10.255.0.0/16\\\",\\\"macaddress\\\":\\\"ee:ee:0a:ff:54:00\\\",\\\"name\\\":\\\"silk-vtep\\\"},{\\\"ipv4\\\":\\\"10.0.40.11\\\",\\\"ipv4-network\\\":\\\"10.0.40.11/32\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:0b\\\",\\\"name\\\":\\\"eth0\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:54:04\\\",\\\"name\\\":\\\"s-010255084004\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:54:05\\\",\\\"name\\\":\\\"s-010255084005\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:54:06\\\",\\\"name\\\":\\\"s-010255084006\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:54:07\\\",\\\"name\\\":\\\"s-010255084007\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:54:08\\\",\\\"name\\\":\\\"s-010255084008\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:54:0a\\\",\\\"name\\\":\\\"s-010255084010\\\"},{\\\"ipv4\\\":\\\"169.254.0.1\\\",\\\"ipv4-network\\\":\\\"169.254.0.1/32\\\",\\\"macaddress\\\":\\\"aa:aa:0a:ff:54:0b\\\",\\\"name\\\":\\\"s-010255084011\\\"}],\\\"ipaddress\\\":\\\"10.255.84.0\\\",\\\"macaddress\\\":\\\"ee:ee:0a:ff:54:00\\\"},\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"0d658567-f4ca-4b9e-b350-dbf55d0fa228\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"3.8.11\\\"}}\",\"network\":{\"network-id\":\"projects/116803814856/networks/datadog-integrations-lab-us-central1\",\"public-ipv4\":\"35.225.89.123\"},\"host_id\":1885402268,\"pythonV\":\"3.8.11\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.30GHz\",\"socket-fqdn\":\"localhost\",\"agent_version\":\"7.32.4\"},\"host_name\":\"compute-1\",\"id\":1885402268,\"aliases\":[\"vm-c63c98cd-c697-45db-5fa0-1141302eb447.datadog-integrations-lab\",\"vm-c63c98cd-c697-45db-5fa0-1141302eb447.c.datadog-integrations-lab.internal\",\"e7910b19-d01d-411b-9e4a-8e4dcdd74bfd\",\"compute-1\"]},{\"last_reported_time\":1641907704,\"name\":\"database-0\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"cloudfoundry\",\"ntp\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"bosh_address:10.0.40.2\",\"bosh_az:us-central1-a\",\"bosh_deployment:cf-58f7c74c619c33d63485\",\"bosh_id:13661a2d-4556-41a1-9b18-b2d6f6f59e40\",\"bosh_index:0\",\"bosh_ip:10.0.40.2\",\"bosh_job:database\",\"bosh_name:database\",\"cf-58f7c74c619c33d63485\",\"cf-58f7c74c619c33d63485-database\",\"cloudfoundry\",\"created_at:2021-12-16t02:35:05z\",\"database\",\"deployment:cf-58f7c74c619c33d63485\",\"director:p-bosh\",\"id:13661a2d-4556-41a1-9b18-b2d6f6f59e40\",\"index:0\",\"index:13661a2d-4556-41a1-9b18-b2d6f6f59e40\",\"instance-id:737885842904128301\",\"instance-type:custom-2-8192\",\"instance_group:database\",\"internal-hostname:vm-4741858b-f6a5-4146-5a1f-3b8a9146b47e.c.datadog-integrations-lab.internal\",\"ip:10.0.40.2\",\"job:database\",\"name:database/13661a2d-4556-41a1-9b18-b2d6f6f59e40\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-cf-58f7c74c619c33d63485\",\"p-bosh-cf-58f7c74c619c33d63485-database\",\"pcf-vms\",\"project:datadog-integrations-lab\",\"user_data:_server_:_name_:_vm-4741858b-f6a5-4146-5a1f-3b8a9146b47e_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-a\",\"host:database-0\"]},\"up\":true,\"metrics\":{\"load\":0.048833333,\"iowait\":0.15970942,\"cpu\":3.2675683},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"11c941b7-d46d-4e77-bfc4-7e13e707a9cf\",\"nixV\":[\"ubuntu\",\"16.04\",\"\"],\"cpuCores\":1,\"macV\":[\"\",\"\",\"\"],\"logs_agent\":{\"transport\":\"\"},\"agent_flavor\":\"agent\",\"platform\":\"linux\",\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"agent_version\":\"7.32.4\",\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"1\\\",\\\"cpu_logical_processors\\\":\\\"2\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"4069080\\\",\\\"mounted_on\\\":\\\"/dev\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"4084040\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"4084040\\\",\\\"mounted_on\\\":\\\"/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"5120\\\",\\\"mounted_on\\\":\\\"/run/lock\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"4084040\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2886304\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"/dev/sda1\\\"},{\\\"kb_size\\\":\\\"58028260\\\",\\\"mounted_on\\\":\\\"/var/vcap/data\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"1024\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/sys/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"103079200\\\",\\\"mounted_on\\\":\\\"/var/vcap/store\\\",\\\"name\\\":\\\"/dev/sdb1\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"8168080kB\\\",\\\"total\\\":\\\"8168084kB\\\"},\\\"network\\\":{\\\"interfaces\\\":[{\\\"ipv4\\\":\\\"10.0.40.2\\\",\\\"ipv4-network\\\":\\\"10.0.40.2/32\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:02\\\",\\\"name\\\":\\\"eth0\\\"}],\\\"ipaddress\\\":\\\"10.0.40.2\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:02\\\"},\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"11c941b7-d46d-4e77-bfc4-7e13e707a9cf\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"3.8.11\\\"}}\",\"network\":{\"network-id\":\"projects/116803814856/networks/datadog-integrations-lab-us-central1\",\"public-ipv4\":\"34.70.177.99\"},\"host_id\":1588196000,\"pythonV\":\"3.8.11\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"localhost\",\"agent_checks\":[[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"],[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"disk\",\"disk\",\"disk:17d8571dea6d7adf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:proxy:463c705e43d0fe75\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-syslog-agent:6308a74718cdb30\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-agent:87c0340b0df2f04\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-agent:9348d9bcc210f773\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggregator_agent:e70c7141fe641fd4\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:mysql-metrics:ec498f37251e0309\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-resolvconf:557485c838539c37\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:nats:460b88e3034138c1\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns:bb15cf7e4add3789\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-discovery-registrar:2499640bb2b8b315\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:cluster-health-logger:510a88480112002f\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-healthcheck:43786f001c4a3099\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:sshd:342db389f880a7cf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:monit:ba1b4f0db0e68cdb\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:mysql-diag-agent:b530874fb34025b1\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:system-metrics-agent:f96e75f57c4f9874\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-forwarder-agent:dfd03904f3c38951\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:nats-tls:9a1f3bfcae8fb7d\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:gra-log-purger:8327c97cdd4831de\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:route_registrar:c92935beabfd476c\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:galera-init:a00f33c5b6290c8f\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:galera-agent:7d61834d95e8a9f\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:prom_scraper:728ea58b02a2d668\",\"OK\",\"\",\"\"],[\"network\",\"network\",\"network:4568a8c8c4d5d3d5\",\"OK\",\"\",\"\"],[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:abc4dd01ed069179\",\"OK\",\"\",\"\"]]},\"host_name\":\"database-0\",\"id\":1588196000,\"aliases\":[\"vm-4741858b-f6a5-4146-5a1f-3b8a9146b47e.datadog-integrations-lab\",\"vm-4741858b-f6a5-4146-5a1f-3b8a9146b47e.c.datadog-integrations-lab.internal\",\"database-0\",\"13661a2d-4556-41a1-9b18-b2d6f6f59e40\"]},{\"last_reported_time\":1641906712,\"name\":\"pivotal-container-service-0\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"cloudfoundry\",\"ntp\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"bosh_address:10.0.40.21\",\"bosh_az:us-central1-a\",\"bosh_deployment:pivotal-container-service-2db99f13c503d2c4afac\",\"bosh_id:0dd74035-0251-4aa6-8546-4d42e738f904\",\"bosh_index:0\",\"bosh_ip:10.0.40.21\",\"bosh_job:pivotal-container-service\",\"bosh_name:pivotal-container-service\",\"cloudfoundry\",\"created_at:2021-02-04t13:58:20z\",\"deployment:pivotal-container-service-2db99f13c503d2c4afac\",\"director:p-bosh\",\"id:0dd74035-0251-4aa6-8546-4d42e738f904\",\"index:0\",\"index:0dd74035-0251-4aa6-8546-4d42e738f904\",\"instance-id:1407569049339446148\",\"instance-type:custom-2-8192\",\"instance_group:pivotal-container-service\",\"internal-hostname:vm-094c6015-d72a-485d-6cad-1ba6dfaa2884.c.datadog-integrations-lab.internal\",\"ip:10.0.40.21\",\"job:pivotal-container-service\",\"name:pivotal-container-service/0dd74035-0251-4aa6-8546-4d42e738f904\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-pivotal-container-service-2db99f13c503d2c4afac\",\"p-bosh-pivotal-container-service-2db99f13c503d2c4afac-pivotal\",\"pcf-vms\",\"pivotal-container-service\",\"pivotal-container-service-2db99f13c503d2c4afac\",\"pivotal-container-service-2db99f13c503d2c4afac-pivotal-contai\",\"project:datadog-integrations-lab\",\"user_data:_server_:_name_:_vm-094c6015-d72a-485d-6cad-1ba6dfaa2884_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-a\",\"host:pivotal-container-service-0\"]},\"up\":true,\"metrics\":{\"load\":0.031466667,\"iowait\":0.10300331,\"cpu\":2.9478202},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"8ddc0c80-afff-4424-bb70-64984a5590af\",\"macV\":[\"\",\"\",\"\"],\"cpuCores\":1,\"nixV\":[\"ubuntu\",\"16.04\",\"\"],\"agent_checks\":[[\"disk\",\"disk\",\"disk:17d8571dea6d7adf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:telemetry-server:a92123b45f99574e\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:uaa:5aa254682e603228\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-resolvconf:557485c838539c37\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-healthcheck:43786f001c4a3099\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:system-metrics-agent:f96e75f57c4f9874\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-agent:9348d9bcc210f773\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:sshd:342db389f880a7cf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns:bb15cf7e4add3789\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:monit:ba1b4f0db0e68cdb\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:broker:31b416ab3601f73e\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:pks-api:de142d1421dafe94\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:vrli-fluentd:73f5d0ab0d7a262f\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:abc4dd01ed069179\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"],[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"network\",\"network\",\"network:4568a8c8c4d5d3d5\",\"OK\",\"\",\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"]],\"agent_flavor\":\"agent\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"agent_version\":\"7.32.2\",\"machine\":\"amd64\",\"platform\":\"linux\",\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"1\\\",\\\"cpu_logical_processors\\\":\\\"2\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2200.000\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"4069080\\\",\\\"mounted_on\\\":\\\"/dev\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"4084040\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"4084040\\\",\\\"mounted_on\\\":\\\"/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"5120\\\",\\\"mounted_on\\\":\\\"/run/lock\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"4084040\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2886304\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"/dev/sda1\\\"},{\\\"kb_size\\\":\\\"58028260\\\",\\\"mounted_on\\\":\\\"/var/vcap/data\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"1024\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/sys/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"10188088\\\",\\\"mounted_on\\\":\\\"/var/vcap/store\\\",\\\"name\\\":\\\"/dev/sdb1\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"8168080kB\\\",\\\"total\\\":\\\"8168084kB\\\"},\\\"network\\\":{\\\"interfaces\\\":[{\\\"ipv4\\\":\\\"10.0.40.21\\\",\\\"ipv4-network\\\":\\\"10.0.40.21/32\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:15\\\",\\\"name\\\":\\\"eth0\\\"}],\\\"ipaddress\\\":\\\"10.0.40.21\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:15\\\"},\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"8ddc0c80-afff-4424-bb70-64984a5590af\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"3.8.11\\\"}}\",\"logs_agent\":{\"transport\":\"\"},\"host_id\":3735172582,\"pythonV\":\"3.8.11\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"localhost\",\"network\":{\"network-id\":\"projects/116803814856/networks/datadog-integrations-lab-us-central1\",\"public-ipv4\":\"35.232.17.52\"}},\"host_name\":\"pivotal-container-service-0\",\"id\":3735172582,\"aliases\":[\"vm-094c6015-d72a-485d-6cad-1ba6dfaa2884.datadog-integrations-lab\",\"vm-094c6015-d72a-485d-6cad-1ba6dfaa2884.c.datadog-integrations-lab.internal\",\"pivotal-container-service-0\",\"0dd74035-0251-4aa6-8546-4d42e738f904\"]},{\"last_reported_time\":1641907470,\"name\":\"backup-restore-0\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"cloudfoundry\",\"agent\",\"ntp\"],\"tags_by_source\":{\"Datadog\":[\"backup-restore\",\"bosh_address:10.0.40.6\",\"bosh_az:us-central1-a\",\"bosh_deployment:cf-58f7c74c619c33d63485\",\"bosh_id:382f3056-20a5-460a-9044-45390453d4b8\",\"bosh_index:0\",\"bosh_ip:10.0.40.6\",\"bosh_job:backup_restore\",\"bosh_name:backup_restore\",\"cf-58f7c74c619c33d63485\",\"cf-58f7c74c619c33d63485-backup-restore\",\"cloudfoundry\",\"created_at:2021-12-16t03:08:03z\",\"deployment:cf-58f7c74c619c33d63485\",\"director:p-bosh\",\"id:382f3056-20a5-460a-9044-45390453d4b8\",\"index:0\",\"index:382f3056-20a5-460a-9044-45390453d4b8\",\"instance-id:5684640517998449555\",\"instance-type:custom-1-1024\",\"instance_group:backup_restore\",\"internal-hostname:vm-256fbd16-5ef5-4c12-674a-79dbb208c829.c.datadog-integrations-lab.internal\",\"ip:10.0.40.6\",\"job:backup_restore\",\"name:backup_restore/382f3056-20a5-460a-9044-45390453d4b8\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-cf-58f7c74c619c33d63485\",\"p-bosh-cf-58f7c74c619c33d63485-backup-restore\",\"pcf-vms\",\"project:datadog-integrations-lab\",\"user_data:_server_:_name_:_vm-256fbd16-5ef5-4c12-674a-79dbb208c829_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-a\",\"host:backup-restore-0\"]},\"up\":true,\"metrics\":{\"load\":0.0032666666,\"iowait\":0.28001064,\"cpu\":2.5573363},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"61334b56-01c8-4b54-991b-8e43fa80b4f8\",\"macV\":[\"\",\"\",\"\"],\"logs_agent\":{\"transport\":\"\"},\"network\":{\"network-id\":\"projects/116803814856/networks/datadog-integrations-lab-us-central1\",\"public-ipv4\":\"34.68.184.121\"},\"cpuCores\":1,\"platform\":\"linux\",\"timezones\":[\"UTC\"],\"nixV\":[\"ubuntu\",\"16.04\",\"\"],\"agent_version\":\"7.32.4\",\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"1\\\",\\\"cpu_logical_processors\\\":\\\"1\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"489480\\\",\\\"mounted_on\\\":\\\"/dev\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"504440\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"504440\\\",\\\"mounted_on\\\":\\\"/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"5120\\\",\\\"mounted_on\\\":\\\"/run/lock\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"504440\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2886304\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"/dev/sda1\\\"},{\\\"kb_size\\\":\\\"7276144\\\",\\\"mounted_on\\\":\\\"/var/vcap/data\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"1024\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/sys/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"206291640\\\",\\\"mounted_on\\\":\\\"/var/vcap/store\\\",\\\"name\\\":\\\"/dev/sdb1\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"1008876kB\\\",\\\"total\\\":\\\"1008880kB\\\"},\\\"network\\\":{\\\"interfaces\\\":[{\\\"ipv4\\\":\\\"10.0.40.6\\\",\\\"ipv4-network\\\":\\\"10.0.40.6/32\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:06\\\",\\\"name\\\":\\\"eth0\\\"}],\\\"ipaddress\\\":\\\"10.0.40.6\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:06\\\"},\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"61334b56-01c8-4b54-991b-8e43fa80b4f8\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"3.8.11\\\"}}\",\"agent_flavor\":\"agent\",\"host_id\":1885408165,\"pythonV\":\"3.8.11\",\"winV\":[\"\",\"\",\"\"],\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"localhost\",\"agent_checks\":[[\"disk\",\"disk\",\"disk:17d8571dea6d7adf\",\"OK\",\"\",\"\"],[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"],[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:abc4dd01ed069179\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-forwarder-agent:dfd03904f3c38951\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-syslog-agent:6308a74718cdb30\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-resolvconf:557485c838539c37\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:sshd:342db389f880a7cf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-healthcheck:43786f001c4a3099\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns:bb15cf7e4add3789\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:system-metrics-agent:f96e75f57c4f9874\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:prom_scraper:728ea58b02a2d668\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-discovery-registrar:2499640bb2b8b315\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggregator_agent:e70c7141fe641fd4\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-agent:9348d9bcc210f773\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-agent:87c0340b0df2f04\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:monit:ba1b4f0db0e68cdb\",\"OK\",\"\",\"\"],[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"network\",\"network\",\"network:4568a8c8c4d5d3d5\",\"OK\",\"\",\"\"]]},\"host_name\":\"backup-restore-0\",\"id\":1885408165,\"aliases\":[\"vm-256fbd16-5ef5-4c12-674a-79dbb208c829.datadog-integrations-lab\",\"vm-256fbd16-5ef5-4c12-674a-79dbb208c829.c.datadog-integrations-lab.internal\",\"backup-restore-0\",\"382f3056-20a5-460a-9044-45390453d4b8\"]},{\"last_reported_time\":1641906718,\"name\":\"blobstore-0\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"cloudfoundry\",\"ntp\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"blobstore\",\"bosh_address:10.0.40.3\",\"bosh_az:us-central1-a\",\"bosh_deployment:cf-58f7c74c619c33d63485\",\"bosh_id:10cc8fea-3e39-4537-91a1-4b0d6abb626a\",\"bosh_index:0\",\"bosh_ip:10.0.40.3\",\"bosh_job:blobstore\",\"bosh_name:blobstore\",\"cf-58f7c74c619c33d63485\",\"cf-58f7c74c619c33d63485-blobstore\",\"cloudfoundry\",\"created_at:2021-12-16t02:39:36z\",\"deployment:cf-58f7c74c619c33d63485\",\"director:p-bosh\",\"id:10cc8fea-3e39-4537-91a1-4b0d6abb626a\",\"index:0\",\"index:10cc8fea-3e39-4537-91a1-4b0d6abb626a\",\"instance-id:5283912973995677757\",\"instance-type:custom-2-4096\",\"instance_group:blobstore\",\"internal-hostname:vm-1f66600c-00ff-4849-41cf-ea7f834080f7.c.datadog-integrations-lab.internal\",\"ip:10.0.40.3\",\"job:blobstore\",\"name:blobstore/10cc8fea-3e39-4537-91a1-4b0d6abb626a\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-cf-58f7c74c619c33d63485\",\"p-bosh-cf-58f7c74c619c33d63485-blobstore\",\"pcf-vms\",\"project:datadog-integrations-lab\",\"user_data:_server_:_name_:_vm-1f66600c-00ff-4849-41cf-ea7f834080f7_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-a\",\"host:blobstore-0\"]},\"up\":true,\"metrics\":{\"load\":0.0737,\"iowait\":0.115527004,\"cpu\":2.5147898},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"8e08fd47-ec68-414e-860d-1aca02cf68fd\",\"macV\":[\"\",\"\",\"\"],\"cpuCores\":1,\"logs_agent\":{\"transport\":\"\"},\"platform\":\"linux\",\"agent_checks\":[[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:abc4dd01ed069179\",\"OK\",\"\",\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-forwarder-agent:dfd03904f3c38951\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-discovery-registrar:2499640bb2b8b315\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-healthcheck:43786f001c4a3099\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:route_registrar:c92935beabfd476c\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:monit:ba1b4f0db0e68cdb\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:blobstore_nginx:5016f2ab5273512a\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:blobstore_url_signer:26fe8c418da745dc\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:prom_scraper:728ea58b02a2d668\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-syslog-agent:6308a74718cdb30\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:system-metrics-agent:f96e75f57c4f9874\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-agent:87c0340b0df2f04\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:sshd:342db389f880a7cf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-resolvconf:557485c838539c37\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggregator_agent:e70c7141fe641fd4\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns:bb15cf7e4add3789\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-agent:9348d9bcc210f773\",\"OK\",\"\",\"\"],[\"network\",\"network\",\"network:4568a8c8c4d5d3d5\",\"OK\",\"\",\"\"],[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"disk\",\"disk\",\"disk:17d8571dea6d7adf\",\"OK\",\"\",\"\"]],\"agent_flavor\":\"agent\",\"nixV\":[\"ubuntu\",\"16.04\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"pythonV\":\"3.8.11\",\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"1\\\",\\\"cpu_logical_processors\\\":\\\"2\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"2004696\\\",\\\"mounted_on\\\":\\\"/dev\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"2019656\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2019656\\\",\\\"mounted_on\\\":\\\"/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"5120\\\",\\\"mounted_on\\\":\\\"/run/lock\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2019656\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2886304\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"/dev/sda1\\\"},{\\\"kb_size\\\":\\\"4293664\\\",\\\"mounted_on\\\":\\\"/var/vcap/data\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"1024\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/sys/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"103079200\\\",\\\"mounted_on\\\":\\\"/var/vcap/store\\\",\\\"name\\\":\\\"/dev/sdb1\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"4039312kB\\\",\\\"total\\\":\\\"4039316kB\\\"},\\\"network\\\":{\\\"interfaces\\\":[{\\\"ipv4\\\":\\\"10.0.40.3\\\",\\\"ipv4-network\\\":\\\"10.0.40.3/32\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:03\\\",\\\"name\\\":\\\"eth0\\\"}],\\\"ipaddress\\\":\\\"10.0.40.3\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:03\\\"},\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"8e08fd47-ec68-414e-860d-1aca02cf68fd\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"3.8.11\\\"}}\",\"host_id\":1588200517,\"agent_version\":\"7.32.4\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"localhost\",\"network\":{\"network-id\":\"projects/116803814856/networks/datadog-integrations-lab-us-central1\",\"public-ipv4\":\"35.225.64.86\"}},\"host_name\":\"blobstore-0\",\"id\":1588200517,\"aliases\":[\"vm-1f66600c-00ff-4849-41cf-ea7f834080f7.datadog-integrations-lab\",\"vm-1f66600c-00ff-4849-41cf-ea7f834080f7.c.datadog-integrations-lab.internal\",\"blobstore-0\",\"10cc8fea-3e39-4537-91a1-4b0d6abb626a\"]},{\"last_reported_time\":1641908072,\"name\":\"mysql-monitor-0\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"cloudfoundry\",\"ntp\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"bosh_address:10.0.40.8\",\"bosh_az:us-central1-a\",\"bosh_deployment:cf-58f7c74c619c33d63485\",\"bosh_id:d584a232-8129-40f9-b50a-0aecb3ee5600\",\"bosh_index:0\",\"bosh_ip:10.0.40.8\",\"bosh_job:mysql_monitor\",\"bosh_name:mysql_monitor\",\"cf-58f7c74c619c33d63485\",\"cf-58f7c74c619c33d63485-mysql-monitor\",\"cloudfoundry\",\"created_at:2021-12-16t03:14:34z\",\"deployment:cf-58f7c74c619c33d63485\",\"director:p-bosh\",\"id:d584a232-8129-40f9-b50a-0aecb3ee5600\",\"index:0\",\"index:d584a232-8129-40f9-b50a-0aecb3ee5600\",\"instance-id:982254273567330795\",\"instance-type:custom-1-1024\",\"instance_group:mysql_monitor\",\"internal-hostname:vm-339a8035-cd97-417e-72de-f28ef188bfcf.c.datadog-integrations-lab.internal\",\"ip:10.0.40.8\",\"job:mysql_monitor\",\"mysql-monitor\",\"name:mysql_monitor/d584a232-8129-40f9-b50a-0aecb3ee5600\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-cf-58f7c74c619c33d63485\",\"p-bosh-cf-58f7c74c619c33d63485-mysql-monitor\",\"pcf-vms\",\"project:datadog-integrations-lab\",\"user_data:_server_:_name_:_vm-339a8035-cd97-417e-72de-f28ef188bfcf_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-a\",\"host:mysql-monitor-0\"]},\"up\":true,\"metrics\":{\"load\":0,\"iowait\":0.3918568,\"cpu\":2.2060554},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"9a206887-e2ba-4ae4-8170-0d7adc9f9d73\",\"nixV\":[\"ubuntu\",\"16.04\",\"\"],\"cpuCores\":1,\"agent_checks\":[[\"process\",\"process\",\"process:prom_scraper:728ea58b02a2d668\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggregator_agent:e70c7141fe641fd4\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:system-metrics-agent:f96e75f57c4f9874\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-agent:9348d9bcc210f773\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:replication-canary:40f25da0d1ff8818\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-syslog-agent:6308a74718cdb30\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-healthcheck:43786f001c4a3099\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-agent:87c0340b0df2f04\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-forwarder-agent:dfd03904f3c38951\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns:bb15cf7e4add3789\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-resolvconf:557485c838539c37\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:monit:ba1b4f0db0e68cdb\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-discovery-registrar:2499640bb2b8b315\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:sshd:342db389f880a7cf\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"network\",\"network\",\"network:4568a8c8c4d5d3d5\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"],[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"],[\"disk\",\"disk\",\"disk:17d8571dea6d7adf\",\"OK\",\"\",\"\"],[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:abc4dd01ed069179\",\"OK\",\"\",\"\"]],\"logs_agent\":{\"transport\":\"\"},\"agent_flavor\":\"agent\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"platform\":\"linux\",\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"1\\\",\\\"cpu_logical_processors\\\":\\\"1\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"489480\\\",\\\"mounted_on\\\":\\\"/dev\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"504440\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"504440\\\",\\\"mounted_on\\\":\\\"/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"5120\\\",\\\"mounted_on\\\":\\\"/run/lock\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"504440\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2886304\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"/dev/sda1\\\"},{\\\"kb_size\\\":\\\"7276144\\\",\\\"mounted_on\\\":\\\"/var/vcap/data\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"1024\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/sys/run\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"1008876kB\\\",\\\"total\\\":\\\"1008880kB\\\"},\\\"network\\\":{\\\"interfaces\\\":[{\\\"ipv4\\\":\\\"10.0.40.8\\\",\\\"ipv4-network\\\":\\\"10.0.40.8/32\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:08\\\",\\\"name\\\":\\\"eth0\\\"}],\\\"ipaddress\\\":\\\"10.0.40.8\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:08\\\"},\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"9a206887-e2ba-4ae4-8170-0d7adc9f9d73\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"3.8.11\\\"}}\",\"network\":{\"network-id\":\"projects/116803814856/networks/datadog-integrations-lab-us-central1\",\"public-ipv4\":\"34.122.249.40\"},\"host_id\":1885420676,\"pythonV\":\"3.8.11\",\"macV\":[\"\",\"\",\"\"],\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"localhost\",\"agent_version\":\"7.32.4\"},\"host_name\":\"mysql-monitor-0\",\"id\":1885420676,\"aliases\":[\"vm-339a8035-cd97-417e-72de-f28ef188bfcf.datadog-integrations-lab\",\"vm-339a8035-cd97-417e-72de-f28ef188bfcf.c.datadog-integrations-lab.internal\",\"mysql-monitor-0\",\"d584a232-8129-40f9-b50a-0aecb3ee5600\"]},{\"last_reported_time\":1641907263,\"name\":\"router-0\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"cloudfoundry\",\"agent\",\"ntp\"],\"tags_by_source\":{\"Datadog\":[\"bosh_address:10.0.40.7\",\"bosh_az:us-central1-a\",\"bosh_deployment:cf-58f7c74c619c33d63485\",\"bosh_id:48777395-f525-4d18-806f-87208386460c\",\"bosh_index:0\",\"bosh_ip:10.0.40.7\",\"bosh_job:router\",\"bosh_name:router\",\"cf-58f7c74c619c33d63485\",\"cf-58f7c74c619c33d63485-router\",\"cloudfoundry\",\"created_at:2021-12-16t03:11:35z\",\"deployment:cf-58f7c74c619c33d63485\",\"director:p-bosh\",\"id:48777395-f525-4d18-806f-87208386460c\",\"index:0\",\"index:48777395-f525-4d18-806f-87208386460c\",\"instance-id:1202390331242778786\",\"instance-type:custom-2-2048\",\"instance_group:router\",\"internal-hostname:vm-b838faf6-4e30-49cc-4978-1602d8e701e9.c.datadog-integrations-lab.internal\",\"ip:10.0.40.7\",\"job:router\",\"name:router/48777395-f525-4d18-806f-87208386460c\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-cf-58f7c74c619c33d63485\",\"p-bosh-cf-58f7c74c619c33d63485-router\",\"pcf-vms\",\"project:datadog-integrations-lab\",\"router\",\"user_data:_server_:_name_:_vm-b838faf6-4e30-49cc-4978-1602d8e701e9_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-a\",\"host:router-0\"]},\"up\":true,\"metrics\":{\"load\":0.038933333,\"iowait\":0.097419195,\"cpu\":1.8743246},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"a2ba9e90-ee22-48b4-9fa7-b6934c207d4d\",\"macV\":[\"\",\"\",\"\"],\"pythonV\":\"3.8.11\",\"agent_checks\":[[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"],[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:abc4dd01ed069179\",\"OK\",\"\",\"\"],[\"disk\",\"disk\",\"disk:17d8571dea6d7adf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-agent:87c0340b0df2f04\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:sshd:342db389f880a7cf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-forwarder-agent:dfd03904f3c38951\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:monit:ba1b4f0db0e68cdb\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-syslog-agent:6308a74718cdb30\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggregator_agent:e70c7141fe641fd4\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-resolvconf:557485c838539c37\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-healthcheck:43786f001c4a3099\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-agent:9348d9bcc210f773\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:gorouter:84800af52712818\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:metrics-discovery-registrar:2499640bb2b8b315\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:system-metrics-agent:f96e75f57c4f9874\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:loggr-udp-forwarder:830b62ee1bfd88a3\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:prom_scraper:728ea58b02a2d668\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns:bb15cf7e4add3789\",\"OK\",\"\",\"\"],[\"network\",\"network\",\"network:4568a8c8c4d5d3d5\",\"OK\",\"\",\"\"],[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"]],\"cpuCores\":1,\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"nixV\":[\"ubuntu\",\"16.04\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"agent_version\":\"7.32.4\",\"machine\":\"amd64\",\"platform\":\"linux\",\"socket-fqdn\":\"localhost\",\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"1\\\",\\\"cpu_logical_processors\\\":\\\"2\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1005484\\\",\\\"mounted_on\\\":\\\"/dev\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"1020444\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"1020444\\\",\\\"mounted_on\\\":\\\"/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"5120\\\",\\\"mounted_on\\\":\\\"/run/lock\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"1020444\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2886304\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"/dev/sda1\\\"},{\\\"kb_size\\\":\\\"6260040\\\",\\\"mounted_on\\\":\\\"/var/vcap/data\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"1024\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/sys/run\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"2040888kB\\\",\\\"total\\\":\\\"2040892kB\\\"},\\\"network\\\":{\\\"interfaces\\\":[{\\\"ipv4\\\":\\\"10.0.40.7\\\",\\\"ipv4-network\\\":\\\"10.0.40.7/32\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:07\\\",\\\"name\\\":\\\"eth0\\\"}],\\\"ipaddress\\\":\\\"10.0.40.7\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:07\\\"},\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"a2ba9e90-ee22-48b4-9fa7-b6934c207d4d\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"3.8.11\\\"}}\",\"host_id\":1885414402,\"logs_agent\":{\"transport\":\"\"},\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"agent_flavor\":\"agent\",\"network\":{\"network-id\":\"projects/116803814856/networks/datadog-integrations-lab-us-central1\",\"public-ipv4\":\"104.154.225.52\"}},\"host_name\":\"router-0\",\"id\":1885414402,\"aliases\":[\"vm-b838faf6-4e30-49cc-4978-1602d8e701e9.datadog-integrations-lab\",\"vm-b838faf6-4e30-49cc-4978-1602d8e701e9.c.datadog-integrations-lab.internal\",\"router-0\",\"48777395-f525-4d18-806f-87208386460c\"]},{\"last_reported_time\":1641907937,\"name\":\"datadog-firehose-nozzle-0\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"cloudfoundry\",\"ntp\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"bosh_address:10.0.40.10\",\"bosh_az:us-central1-a\",\"bosh_deployment:datadog-a7a9321940224f86c5e0\",\"bosh_id:7c485e5a-eee9-4586-a444-dd5acdbd408a\",\"bosh_index:0\",\"bosh_ip:10.0.40.10\",\"bosh_job:datadog-firehose-nozzle\",\"bosh_name:datadog-firehose-nozzle\",\"cloudfoundry\",\"created_at:2021-12-23t10:00:41z\",\"datadog-a7a9321940224f86c5e0\",\"datadog-a7a9321940224f86c5e0-datadog-firehose-nozzle\",\"datadog-firehose-nozzle\",\"deployment:datadog-a7a9321940224f86c5e0\",\"director:p-bosh\",\"id:7c485e5a-eee9-4586-a444-dd5acdbd408a\",\"index:0\",\"index:7c485e5a-eee9-4586-a444-dd5acdbd408a\",\"instance-id:654236089190053469\",\"instance-type:custom-1-1024\",\"instance_group:datadog-firehose-nozzle\",\"internal-hostname:vm-7af2f1a7-1902-4091-4681-f8e88ba52c66.c.datadog-integrations-lab.internal\",\"ip:10.0.40.10\",\"job:datadog-firehose-nozzle\",\"name:datadog-firehose-nozzle/7c485e5a-eee9-4586-a444-dd5acdbd408a\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-datadog-a7a9321940224f86c5e0\",\"p-bosh-datadog-a7a9321940224f86c5e0-datadog-firehose-nozzle\",\"pcf-vms\",\"project:datadog-integrations-lab\",\"user_data:_server_:_name_:_vm-7af2f1a7-1902-4091-4681-f8e88ba52c66_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-a\",\"host:datadog-firehose-nozzle-0\"]},\"up\":true,\"metrics\":{\"load\":0.0004,\"iowait\":0.27631813,\"cpu\":1.1650944},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"9aa34e82-00de-4aad-8f89-6fca4950693a\",\"nixV\":[\"ubuntu\",\"16.04\",\"\"],\"cpuCores\":1,\"agent_checks\":[[\"process\",\"process\",\"process:bosh-dns-resolvconf:557485c838539c37\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:system-metrics-agent:f96e75f57c4f9874\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-agent:9348d9bcc210f773\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:sshd:342db389f880a7cf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-healthcheck:43786f001c4a3099\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns:bb15cf7e4add3789\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:monit:ba1b4f0db0e68cdb\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:datadog-firehose-nozzle:577206d379c137c8\",\"WARNING\",[\"No matching process 'datadog-firehose-nozzle' was found\"],\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:abc4dd01ed069179\",\"OK\",\"\",\"\"],[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"],[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"],[\"network\",\"network\",\"network:4568a8c8c4d5d3d5\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"disk\",\"disk\",\"disk:17d8571dea6d7adf\",\"OK\",\"\",\"\"],[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"]],\"platform\":\"linux\",\"network\":{\"network-id\":\"projects/116803814856/networks/datadog-integrations-lab-us-central1\",\"public-ipv4\":\"34.132.186.250\"},\"agent_flavor\":\"agent\",\"macV\":[\"\",\"\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"pythonV\":\"3.8.11\",\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"1\\\",\\\"cpu_logical_processors\\\":\\\"1\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"489480\\\",\\\"mounted_on\\\":\\\"/dev\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"504440\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"504440\\\",\\\"mounted_on\\\":\\\"/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"5120\\\",\\\"mounted_on\\\":\\\"/run/lock\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"504440\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2886304\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"/dev/sda1\\\"},{\\\"kb_size\\\":\\\"7276144\\\",\\\"mounted_on\\\":\\\"/var/vcap/data\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"1024\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/sys/run\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"1008876kB\\\",\\\"total\\\":\\\"1008880kB\\\"},\\\"network\\\":{\\\"interfaces\\\":[{\\\"ipv4\\\":\\\"10.0.40.10\\\",\\\"ipv4-network\\\":\\\"10.0.40.10/32\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:0a\\\",\\\"name\\\":\\\"eth0\\\"}],\\\"ipaddress\\\":\\\"10.0.40.10\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:0a\\\"},\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"9aa34e82-00de-4aad-8f89-6fca4950693a\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"3.8.11\\\"}}\",\"host_id\":1558906327,\"logs_agent\":{\"transport\":\"\"},\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"localhost\",\"agent_version\":\"7.32.4\"},\"host_name\":\"datadog-firehose-nozzle-0\",\"id\":1558906327,\"aliases\":[\"vm-7af2f1a7-1902-4091-4681-f8e88ba52c66.datadog-integrations-lab\",\"vm-7af2f1a7-1902-4091-4681-f8e88ba52c66.c.datadog-integrations-lab.internal\",\"datadog-firehose-nozzle-0\",\"7c485e5a-eee9-4586-a444-dd5acdbd408a\"]},{\"last_reported_time\":1641906463,\"name\":\"datadog-cluster-agent-0\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"cloudfoundry\",\"agent\",\"ntp\"],\"tags_by_source\":{\"Datadog\":[\"bosh_address:10.0.40.13\",\"bosh_az:us-central1-a\",\"bosh_deployment:datadog-a7a9321940224f86c5e0\",\"bosh_id:013b46b2-12f1-4d1d-b3a3-57d79f220197\",\"bosh_index:0\",\"bosh_ip:10.0.40.13\",\"bosh_job:datadog-cluster-agent\",\"bosh_name:datadog-cluster-agent\",\"cloudfoundry\",\"created_at:2021-12-23t10:00:41z\",\"datadog-a7a9321940224f86c5e0\",\"datadog-a7a9321940224f86c5e0-datadog-cluster-agent\",\"datadog-cluster-agent\",\"deployment:datadog-a7a9321940224f86c5e0\",\"director:p-bosh\",\"id:013b46b2-12f1-4d1d-b3a3-57d79f220197\",\"index:0\",\"index:013b46b2-12f1-4d1d-b3a3-57d79f220197\",\"instance-id:4147831164283516509\",\"instance-type:custom-1-1024\",\"instance_group:datadog-cluster-agent\",\"internal-hostname:vm-6eb749d6-425d-4e9a-5ea7-980fc8c0a9ee.c.datadog-integrations-lab.internal\",\"ip:10.0.40.13\",\"job:datadog-cluster-agent\",\"name:datadog-cluster-agent/013b46b2-12f1-4d1d-b3a3-57d79f220197\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-datadog-a7a9321940224f86c5e0\",\"p-bosh-datadog-a7a9321940224f86c5e0-datadog-cluster-agent\",\"pcf-vms\",\"project:datadog-integrations-lab\",\"user_data:_server_:_name_:_vm-6eb749d6-425d-4e9a-5ea7-980fc8c0a9ee_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-a\",\"host:datadog-cluster-agent-0\"]},\"up\":true,\"metrics\":{\"load\":0,\"iowait\":0.20022501,\"cpu\":0.6767538},\"sources\":[\"agent\"],\"meta\":{\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"macV\":[\"\",\"\",\"\"],\"pythonV\":\"3.8.11\",\"network\":{\"network-id\":\"projects/116803814856/networks/datadog-integrations-lab-us-central1\",\"public-ipv4\":\"35.223.48.16\"},\"cpuCores\":1,\"nixV\":[\"ubuntu\",\"16.04\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"platform\":\"linux\",\"socket-hostname\":\"4a05e6f2-e3f4-44d7-ae87-21181a367e30\",\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"1\\\",\\\"cpu_logical_processors\\\":\\\"1\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"489480\\\",\\\"mounted_on\\\":\\\"/dev\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"504440\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"504440\\\",\\\"mounted_on\\\":\\\"/run\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"5120\\\",\\\"mounted_on\\\":\\\"/run/lock\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"504440\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2886304\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"/dev/sda1\\\"},{\\\"kb_size\\\":\\\"7276144\\\",\\\"mounted_on\\\":\\\"/var/vcap/data\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"1024\\\",\\\"mounted_on\\\":\\\"/var/vcap/data/sys/run\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"1008876kB\\\",\\\"total\\\":\\\"1008880kB\\\"},\\\"network\\\":{\\\"interfaces\\\":[{\\\"ipv4\\\":\\\"10.0.40.13\\\",\\\"ipv4-network\\\":\\\"10.0.40.13/32\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:0d\\\",\\\"name\\\":\\\"eth0\\\"}],\\\"ipaddress\\\":\\\"10.0.40.13\\\",\\\"macaddress\\\":\\\"42:01:0a:00:28:0d\\\"},\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"4a05e6f2-e3f4-44d7-ae87-21181a367e30\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"3.8.11\\\"}}\",\"agent_flavor\":\"agent\",\"host_id\":2525100650,\"agent_version\":\"7.32.4\",\"agent_checks\":[[\"disk\",\"disk\",\"disk:17d8571dea6d7adf\",\"OK\",\"\",\"\"],[\"load\",\"load\",\"load\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:system-metrics-agent:f96e75f57c4f9874\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-agent:9348d9bcc210f773\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:sshd:342db389f880a7cf\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns-healthcheck:43786f001c4a3099\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:bosh-dns:bb15cf7e4add3789\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:monit:ba1b4f0db0e68cdb\",\"OK\",\"\",\"\"],[\"process\",\"process\",\"process:datadog-cluster-agent:df40e8bdc7dc8a06\",\"WARNING\",[\"No matching process 'datadog-cluster-agent' was found\"],\"\"],[\"process\",\"process\",\"process:bosh-dns-resolvconf:557485c838539c37\",\"OK\",\"\",\"\"],[\"io\",\"io\",\"io\",\"OK\",\"\",\"\"],[\"uptime\",\"uptime\",\"uptime\",\"OK\",\"\",\"\"],[\"memory\",\"memory\",\"memory\",\"OK\",\"\",\"\"],[\"ntp\",\"ntp\",\"ntp:abc4dd01ed069179\",\"OK\",\"\",\"\"],[\"file_handle\",\"file_handle\",\"file_handle\",\"OK\",\"\",\"\"],[\"network\",\"network\",\"network:4568a8c8c4d5d3d5\",\"OK\",\"\",\"\"],[\"cpu\",\"cpu\",\"cpu\",\"OK\",\"\",\"\"]],\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"localhost\",\"logs_agent\":{\"transport\":\"\"}},\"host_name\":\"datadog-cluster-agent-0\",\"id\":2525100650,\"aliases\":[\"vm-6eb749d6-425d-4e9a-5ea7-980fc8c0a9ee.datadog-integrations-lab\",\"vm-6eb749d6-425d-4e9a-5ea7-980fc8c0a9ee.c.datadog-integrations-lab.internal\",\"datadog-cluster-agent-0\",\"013b46b2-12f1-4d1d-b3a3-57d79f220197\"]},{\"last_reported_time\":1641906719,\"name\":\"1bbe3f6f-138a-4df9-7106-d28b\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"trace\",\"page\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:9f43dcdd-9322-4555-ba67-02a9439fd925\",\"application_name:hello-datadog-cf-ruby-blue\",\"cf_instance_ip:10.0.40.5\",\"env:integrations-lab\",\"instance_index:1\",\"space_name:system\",\"uri:hello-datadog-cf-ruby-blue.apps.integrations-lab.devenv.dog\",\"host:1bbe3f6f-138a-4df9-7106-d28b\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"1bbe3f6f-138a-4df9-7106-d28b\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"cpuCores\":1,\"macV\":[\"\",\"\",\"\"],\"network\":null,\"agent_flavor\":\"iot_agent\",\"platform\":\"linux\",\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.15.13\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"1bbe3f6f-138a-4df9-7106-d28b\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"logs_agent\":{\"transport\":\"TCP\"},\"host_id\":6306940257,\"pythonV\":\"n/a\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"1bbe3f6f-138a-4df9-7106-d28b\",\"agent_version\":\"7.31.0\"},\"host_name\":\"1bbe3f6f-138a-4df9-7106-d28b\",\"id\":6306940257,\"aliases\":[\"1bbe3f6f-138a-4df9-7106-d28b\"]},{\"last_reported_time\":1641906332,\"name\":\"45d792c2-1da6-4719-7a44-aa3d\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:e6186b8d-1fa5-4907-89e3-bb035298cdc9\",\"application_name:hello-datadog-cf-ruby-pink\",\"cf_instance_ip:10.0.40.5\",\"instance_index:1\",\"space_name:system\",\"uri:hello-datadog-cf-ruby-pink.apps.integrations-lab.devenv.dog\",\"host:45d792c2-1da6-4719-7a44-aa3d\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"45d792c2-1da6-4719-7a44-aa3d\",\"macV\":[\"\",\"\",\"\"],\"logs_agent\":{\"transport\":\"\"},\"network\":null,\"cpuCores\":1,\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1048576\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"45d792c2-1da6-4719-7a44-aa3d\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"platform\":\"linux\",\"fbsdV\":[\"\",\"\",\"\"],\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"agent_flavor\":\"dogstatsd\",\"host_id\":6306939018,\"pythonV\":\"n/a\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"45d792c2-1da6-4719-7a44-aa3d\",\"agent_version\":\"7.32.2\"},\"host_name\":\"45d792c2-1da6-4719-7a44-aa3d\",\"id\":6306939018,\"aliases\":[\"45d792c2-1da6-4719-7a44-aa3d\"]},{\"last_reported_time\":1641905937,\"name\":\"1dd5e5e9-e3e4-4baa-5205-26c5\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"page\",\"trace\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:dc22d0b9-d6a2-4389-84a6-76029121ebe4\",\"application_name:autodiscovery-http\",\"cf_instance_ip:10.0.40.11\",\"env:integrations-lab\",\"instance_index:2\",\"space_name:system\",\"uri:autodiscovery-http.apps.integrations-lab.devenv.dog\",\"host:1dd5e5e9-e3e4-4baa-5205-26c5\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"1dd5e5e9-e3e4-4baa-5205-26c5\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"pythonV\":\"n/a\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"logs_agent\":{\"transport\":\"HTTP\"},\"cpuCores\":1,\"macV\":[\"\",\"\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"platform\":\"linux\",\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"46080 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2299.998\\\",\\\"model\\\":\\\"63\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.30GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.15.13\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"1dd5e5e9-e3e4-4baa-5205-26c5\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"agent_flavor\":\"iot_agent\",\"host_id\":6306993744,\"agent_version\":\"7.30.0\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.30GHz\",\"socket-fqdn\":\"1dd5e5e9-e3e4-4baa-5205-26c5\",\"network\":null},\"host_name\":\"1dd5e5e9-e3e4-4baa-5205-26c5\",\"id\":6306993744,\"aliases\":[\"1dd5e5e9-e3e4-4baa-5205-26c5\"]},{\"last_reported_time\":1641907582,\"name\":\"e4327c72-e8ff-4fcf-472d-fc37\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"trace\",\"page\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:a7bebd67-1991-4e9e-8d44-399acf2f13e8\",\"application_name:logs-backend-demo\",\"cf_instance_ip:10.0.40.5\",\"env:integrations-lab\",\"instance_index:1\",\"space_name:system\",\"uri:logs-backend-demo.apps.integrations-lab.devenv.dog\",\"host:e4327c72-e8ff-4fcf-472d-fc37\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"e4327c72-e8ff-4fcf-472d-fc37\",\"macV\":[\"\",\"\",\"\"],\"cpuCores\":1,\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"logs_agent\":{\"transport\":\"HTTP\"},\"agent_flavor\":\"iot_agent\",\"platform\":\"linux\",\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.15.13\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"e4327c72-e8ff-4fcf-472d-fc37\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"network\":null,\"host_id\":6306942664,\"pythonV\":\"n/a\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"e4327c72-e8ff-4fcf-472d-fc37\",\"agent_version\":\"7.31.0\"},\"host_name\":\"e4327c72-e8ff-4fcf-472d-fc37\",\"id\":6306942664,\"aliases\":[\"e4327c72-e8ff-4fcf-472d-fc37\"]},{\"last_reported_time\":1641906718,\"name\":\"c463a2a9-9604-45a5-52bc-362d\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:06ed9382-26b8-42f3-9790-b0bf9f7c7fd9\",\"application_name:test-apm-service-4\",\"cf_instance_ip:10.0.40.11\",\"container_id:c463a2a9-9604-45a5-52bc-362d\",\"env:non-prod\",\"instance_index:0\",\"space_name:system\",\"test-apm-env\",\"uri:test-apm-service-4.apps.integrations-lab.devenv.dog\",\"host:c463a2a9-9604-45a5-52bc-362d\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"c463a2a9-9604-45a5-52bc-362d\",\"macV\":[\"\",\"\",\"\"],\"pythonV\":\"n/a\",\"network\":null,\"cpuCores\":1,\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"platform\":\"linux\",\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"46080 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2299.998\\\",\\\"model\\\":\\\"63\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.30GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.14.12\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"c463a2a9-9604-45a5-52bc-362d\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"agent_flavor\":\"iot_agent\",\"host_id\":6306991190,\"logs_agent\":{\"transport\":\"HTTP\"},\"processor\":\"Intel(R) Xeon(R) CPU @ 2.30GHz\",\"socket-fqdn\":\"c463a2a9-9604-45a5-52bc-362d\",\"agent_version\":\"7.27.0\"},\"host_name\":\"c463a2a9-9604-45a5-52bc-362d\",\"id\":6306991190,\"aliases\":[\"c463a2a9-9604-45a5-52bc-362d\"]},{\"last_reported_time\":1641908071,\"name\":\"7a9c4beb-2317-4849-78c1-0404\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:4bdf4890-1237-4f3f-a564-5bdda65e80c9\",\"application_name:test-apm-service-3\",\"cf_instance_ip:10.0.40.11\",\"container_id:7a9c4beb-2317-4849-78c1-0404\",\"env:non-prod\",\"instance_index:1\",\"space_name:system\",\"test-apm-env\",\"uri:test-apm-service-3.apps.integrations-lab.devenv.dog\",\"host:7a9c4beb-2317-4849-78c1-0404\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"7a9c4beb-2317-4849-78c1-0404\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"cpuCores\":1,\"agent_flavor\":\"iot_agent\",\"macV\":[\"\",\"\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"agent_version\":\"7.27.0\",\"machine\":\"amd64\",\"platform\":\"linux\",\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"46080 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2299.998\\\",\\\"model\\\":\\\"63\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.30GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.14.12\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"7a9c4beb-2317-4849-78c1-0404\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"network\":null,\"host_id\":6306991358,\"pythonV\":\"n/a\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.30GHz\",\"socket-fqdn\":\"7a9c4beb-2317-4849-78c1-0404\",\"logs_agent\":{\"transport\":\"HTTP\"}},\"host_name\":\"7a9c4beb-2317-4849-78c1-0404\",\"id\":6306991358,\"aliases\":[\"7a9c4beb-2317-4849-78c1-0404\"]},{\"last_reported_time\":1641908083,\"name\":\"c3cdc63f-2739-4bdd-7564-ed2e\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:4bdf4890-1237-4f3f-a564-5bdda65e80c9\",\"application_name:test-apm-service-3\",\"cf_instance_ip:10.0.40.5\",\"container_id:c3cdc63f-2739-4bdd-7564-ed2e\",\"env:non-prod\",\"instance_index:0\",\"space_name:system\",\"test-apm-env\",\"uri:test-apm-service-3.apps.integrations-lab.devenv.dog\",\"host:c3cdc63f-2739-4bdd-7564-ed2e\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"c3cdc63f-2739-4bdd-7564-ed2e\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"logs_agent\":{\"transport\":\"HTTP\"},\"network\":null,\"cpuCores\":1,\"platform\":\"linux\",\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"agent_flavor\":\"iot_agent\",\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.14.12\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"c3cdc63f-2739-4bdd-7564-ed2e\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"host_id\":6306990856,\"fbsdV\":[\"\",\"\",\"\"],\"pythonV\":\"n/a\",\"macV\":[\"\",\"\",\"\"],\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"c3cdc63f-2739-4bdd-7564-ed2e\",\"agent_version\":\"7.27.0\"},\"host_name\":\"c3cdc63f-2739-4bdd-7564-ed2e\",\"id\":6306990856,\"aliases\":[\"c3cdc63f-2739-4bdd-7564-ed2e\"]},{\"last_reported_time\":1641907938,\"name\":\"c1afee2e-adae-4c51-46d4-9051\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"trace\",\"page\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:a7bebd67-1991-4e9e-8d44-399acf2f13e8\",\"application_name:logs-backend-demo\",\"cf_instance_ip:10.0.40.5\",\"env:integrations-lab\",\"instance_index:0\",\"space_name:system\",\"uri:logs-backend-demo.apps.integrations-lab.devenv.dog\",\"host:c1afee2e-adae-4c51-46d4-9051\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"c1afee2e-adae-4c51-46d4-9051\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"macV\":[\"\",\"\",\"\"],\"logs_agent\":{\"transport\":\"HTTP\"},\"agent_flavor\":\"iot_agent\",\"platform\":\"linux\",\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"agent_version\":\"7.31.0\",\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.15.13\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"c1afee2e-adae-4c51-46d4-9051\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"network\":null,\"host_id\":6306937347,\"pythonV\":\"n/a\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"c1afee2e-adae-4c51-46d4-9051\",\"cpuCores\":1},\"host_name\":\"c1afee2e-adae-4c51-46d4-9051\",\"id\":6306937347,\"aliases\":[\"c1afee2e-adae-4c51-46d4-9051\"]},{\"last_reported_time\":1641906340,\"name\":\"31794400-62ca-44e2-7ab2-0397\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:ead4c7fd-f21c-48b8-9f23-421f15a57cfc\",\"application_name:hello-datadog-cf-ruby-yellow\",\"cf_instance_ip:10.0.40.5\",\"instance_index:0\",\"space_name:system\",\"uri:hello-datadog-cf-ruby-yellow.apps.integrations-lab.devenv.dog\",\"host:31794400-62ca-44e2-7ab2-0397\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"31794400-62ca-44e2-7ab2-0397\",\"macV\":[\"\",\"\",\"\"],\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"platform\":\"linux\",\"logs_agent\":{\"transport\":\"\"},\"cpuCores\":1,\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"network\":null,\"socket-fqdn\":\"31794400-62ca-44e2-7ab2-0397\",\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1048576\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"31794400-62ca-44e2-7ab2-0397\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"host_id\":6306942613,\"pythonV\":\"n/a\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"agent_flavor\":\"dogstatsd\",\"agent_version\":\"7.32.2\"},\"host_name\":\"31794400-62ca-44e2-7ab2-0397\",\"id\":6306942613,\"aliases\":[\"31794400-62ca-44e2-7ab2-0397\"]},{\"last_reported_time\":1641908082,\"name\":\"133dc113-0354-4a60-67d8-5cf6\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"page\",\"trace\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:41256269-671b-4d79-91d5-3bf848376425\",\"application_name:test-space-org-cc\",\"cf_instance_ip:10.0.40.11\",\"env:integrations-lab\",\"instance_index:2\",\"space_name:datadog-application-monitoring-space\",\"uri:test-space-org-cc.apps.integrations-lab.devenv.dog\",\"host:133dc113-0354-4a60-67d8-5cf6\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"133dc113-0354-4a60-67d8-5cf6\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"pythonV\":\"n/a\",\"macV\":[\"\",\"\",\"\"],\"network\":null,\"agent_flavor\":\"iot_agent\",\"platform\":\"linux\",\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"cpuCores\":1,\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"46080 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2299.998\\\",\\\"model\\\":\\\"63\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.30GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.15.13\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"133dc113-0354-4a60-67d8-5cf6\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"host_id\":6307044606,\"logs_agent\":{\"transport\":\"HTTP\"},\"processor\":\"Intel(R) Xeon(R) CPU @ 2.30GHz\",\"socket-fqdn\":\"133dc113-0354-4a60-67d8-5cf6\",\"agent_version\":\"7.30.0\"},\"host_name\":\"133dc113-0354-4a60-67d8-5cf6\",\"id\":6307044606,\"aliases\":[\"133dc113-0354-4a60-67d8-5cf6\"]},{\"last_reported_time\":1641906449,\"name\":\"91afb75a-2d81-423f-4179-621f\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:e6186b8d-1fa5-4907-89e3-bb035298cdc9\",\"application_name:hello-datadog-cf-ruby-pink\",\"cf_instance_ip:10.0.40.5\",\"instance_index:0\",\"space_name:system\",\"uri:hello-datadog-cf-ruby-pink.apps.integrations-lab.devenv.dog\",\"host:91afb75a-2d81-423f-4179-621f\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"91afb75a-2d81-423f-4179-621f\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"platform\":\"linux\",\"logs_agent\":{\"transport\":\"\"},\"cpuCores\":1,\"macV\":[\"\",\"\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1048576\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"91afb75a-2d81-423f-4179-621f\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"network\":null,\"agent_flavor\":\"dogstatsd\",\"host_id\":6306936543,\"pythonV\":\"n/a\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"91afb75a-2d81-423f-4179-621f\",\"agent_version\":\"7.32.2\"},\"host_name\":\"91afb75a-2d81-423f-4179-621f\",\"id\":6306936543,\"aliases\":[\"91afb75a-2d81-423f-4179-621f\"]},{\"last_reported_time\":1641906715,\"name\":\"50ecdfa4-428d-4b38-742a-7113\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"trace\",\"page\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:dc22d0b9-d6a2-4389-84a6-76029121ebe4\",\"application_name:autodiscovery-http\",\"cf_instance_ip:10.0.40.5\",\"env:integrations-lab\",\"instance_index:1\",\"space_name:system\",\"uri:autodiscovery-http.apps.integrations-lab.devenv.dog\",\"host:50ecdfa4-428d-4b38-742a-7113\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"50ecdfa4-428d-4b38-742a-7113\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"logs_agent\":{\"transport\":\"HTTP\"},\"agent_flavor\":\"iot_agent\",\"cpuCores\":1,\"platform\":\"linux\",\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.15.13\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"50ecdfa4-428d-4b38-742a-7113\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"network\":null,\"host_id\":6306937330,\"pythonV\":\"n/a\",\"macV\":[\"\",\"\",\"\"],\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"50ecdfa4-428d-4b38-742a-7113\",\"agent_version\":\"7.30.0\"},\"host_name\":\"50ecdfa4-428d-4b38-742a-7113\",\"id\":6306937330,\"aliases\":[\"50ecdfa4-428d-4b38-742a-7113\"]},{\"last_reported_time\":1641907935,\"name\":\"4c7b0ee1-4725-4e74-5298-c33f\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:ead4c7fd-f21c-48b8-9f23-421f15a57cfc\",\"application_name:hello-datadog-cf-ruby-yellow\",\"cf_instance_ip:10.0.40.5\",\"instance_index:1\",\"space_name:system\",\"uri:hello-datadog-cf-ruby-yellow.apps.integrations-lab.devenv.dog\",\"host:4c7b0ee1-4725-4e74-5298-c33f\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"4c7b0ee1-4725-4e74-5298-c33f\",\"macV\":[\"\",\"\",\"\"],\"pythonV\":\"n/a\",\"network\":null,\"cpuCores\":1,\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1048576\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.16.7\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"4c7b0ee1-4725-4e74-5298-c33f\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"platform\":\"linux\",\"agent_flavor\":\"dogstatsd\",\"host_id\":6306937106,\"logs_agent\":{\"transport\":\"\"},\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"4c7b0ee1-4725-4e74-5298-c33f\",\"agent_version\":\"7.32.2\"},\"host_name\":\"4c7b0ee1-4725-4e74-5298-c33f\",\"id\":6306937106,\"aliases\":[\"4c7b0ee1-4725-4e74-5298-c33f\"]},{\"last_reported_time\":1641906010,\"name\":\"990fc01b-7e33-4935-75ee-6980\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"page\",\"trace\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:9f43dcdd-9322-4555-ba67-02a9439fd925\",\"application_name:hello-datadog-cf-ruby-blue\",\"cf_instance_ip:10.0.40.11\",\"env:integrations-lab\",\"instance_index:2\",\"space_name:system\",\"uri:hello-datadog-cf-ruby-blue.apps.integrations-lab.devenv.dog\",\"host:990fc01b-7e33-4935-75ee-6980\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"990fc01b-7e33-4935-75ee-6980\",\"macV\":[\"\",\"\",\"\"],\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"logs_agent\":{\"transport\":\"HTTP\"},\"cpuCores\":1,\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"platform\":\"linux\",\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"46080 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2299.998\\\",\\\"model\\\":\\\"63\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.30GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.15.13\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"990fc01b-7e33-4935-75ee-6980\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"network\":null,\"agent_flavor\":\"iot_agent\",\"host_id\":6306978800,\"pythonV\":\"n/a\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.30GHz\",\"socket-fqdn\":\"990fc01b-7e33-4935-75ee-6980\",\"agent_version\":\"7.31.0\"},\"host_name\":\"990fc01b-7e33-4935-75ee-6980\",\"id\":6306978800,\"aliases\":[\"990fc01b-7e33-4935-75ee-6980\"]},{\"last_reported_time\":1641906333,\"name\":\"403b7153-e5e1-420a-5a20-d803\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"page\",\"trace\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:41256269-671b-4d79-91d5-3bf848376425\",\"application_name:test-space-org-cc\",\"cf_instance_ip:10.0.40.5\",\"env:integrations-lab\",\"instance_index:0\",\"space_name:datadog-application-monitoring-space\",\"uri:test-space-org-cc.apps.integrations-lab.devenv.dog\",\"host:403b7153-e5e1-420a-5a20-d803\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"403b7153-e5e1-420a-5a20-d803\",\"macV\":[\"\",\"\",\"\"],\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"logs_agent\":{\"transport\":\"HTTP\"},\"cpuCores\":1,\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"platform\":\"linux\",\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.15.13\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"403b7153-e5e1-420a-5a20-d803\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"network\":null,\"agent_flavor\":\"iot_agent\",\"host_id\":6306938360,\"pythonV\":\"n/a\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"403b7153-e5e1-420a-5a20-d803\",\"agent_version\":\"7.30.0\"},\"host_name\":\"403b7153-e5e1-420a-5a20-d803\",\"id\":6306938360,\"aliases\":[\"403b7153-e5e1-420a-5a20-d803\"]},{\"last_reported_time\":1641906872,\"name\":\"3259ef0c-3cb7-4769-4735-dbee\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:1f283863-86b2-47ba-8700-c4d71c6edea9\",\"application_name:test-apm-service-5\",\"cf_instance_ip:10.0.40.11\",\"container_id:3259ef0c-3cb7-4769-4735-dbee\",\"env:non-prod-auto-81\",\"instance_index:1\",\"space_name:system\",\"test-apm-env\",\"uri:test-apm-service-5.apps.integrations-lab.devenv.dog\",\"host:3259ef0c-3cb7-4769-4735-dbee\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"3259ef0c-3cb7-4769-4735-dbee\",\"macV\":[\"\",\"\",\"\"],\"logs_agent\":{\"transport\":\"HTTP\"},\"network\":null,\"cpuCores\":1,\"platform\":\"linux\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"46080 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2299.998\\\",\\\"model\\\":\\\"63\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.30GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.14.12\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"3259ef0c-3cb7-4769-4735-dbee\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"agent_flavor\":\"iot_agent\",\"host_id\":6306991191,\"pythonV\":\"n/a\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.30GHz\",\"socket-fqdn\":\"3259ef0c-3cb7-4769-4735-dbee\",\"agent_version\":\"7.27.0\"},\"host_name\":\"3259ef0c-3cb7-4769-4735-dbee\",\"id\":6306991191,\"aliases\":[\"3259ef0c-3cb7-4769-4735-dbee\"]},{\"last_reported_time\":1641906600,\"name\":\"f549fedb-85e4-4106-5d1e-3bfa\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:9d519c2b-261e-4553-9db3-c79c8a9857f5\",\"application_name:test_log_redirect\",\"cf_instance_ip:10.0.40.5\",\"instance_index:0\",\"space_name:system\",\"test-log-redirection-socket-closed\",\"uri:testlogredirect.apps.integrations-lab.devenv.dog\",\"host:f549fedb-85e4-4106-5d1e-3bfa\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"f549fedb-85e4-4106-5d1e-3bfa\",\"macV\":[\"\",\"\",\"\"],\"cpuCores\":1,\"pythonV\":\"n/a\",\"platform\":\"linux\",\"logs_agent\":{\"transport\":\"HTTP\"},\"agent_flavor\":\"iot_agent\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.14.12\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"f549fedb-85e4-4106-5d1e-3bfa\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"host_id\":6306938941,\"agent_version\":\"7.27.0\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"f549fedb-85e4-4106-5d1e-3bfa\",\"network\":null},\"host_name\":\"f549fedb-85e4-4106-5d1e-3bfa\",\"id\":6306938941,\"aliases\":[\"f549fedb-85e4-4106-5d1e-3bfa\"]},{\"last_reported_time\":1641906447,\"name\":\"ace8a960-ae96-48af-5a55-cb0d\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"trace\",\"page\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:9f43dcdd-9322-4555-ba67-02a9439fd925\",\"application_name:hello-datadog-cf-ruby-blue\",\"cf_instance_ip:10.0.40.5\",\"env:integrations-lab\",\"instance_index:0\",\"space_name:system\",\"uri:hello-datadog-cf-ruby-blue.apps.integrations-lab.devenv.dog\",\"host:ace8a960-ae96-48af-5a55-cb0d\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"ace8a960-ae96-48af-5a55-cb0d\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"platform\":\"linux\",\"logs_agent\":{\"transport\":\"HTTP\"},\"cpuCores\":1,\"macV\":[\"\",\"\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.15.13\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"ace8a960-ae96-48af-5a55-cb0d\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"network\":null,\"agent_flavor\":\"iot_agent\",\"host_id\":6306942281,\"pythonV\":\"n/a\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"ace8a960-ae96-48af-5a55-cb0d\",\"agent_version\":\"7.31.0\"},\"host_name\":\"ace8a960-ae96-48af-5a55-cb0d\",\"id\":6306942281,\"aliases\":[\"ace8a960-ae96-48af-5a55-cb0d\"]},{\"last_reported_time\":1641906713,\"name\":\"d34b4ecc-86eb-4b16-7f9c-9a2c\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:06ed9382-26b8-42f3-9790-b0bf9f7c7fd9\",\"application_name:test-apm-service-4\",\"cf_instance_ip:10.0.40.5\",\"container_id:d34b4ecc-86eb-4b16-7f9c-9a2c\",\"env:non-prod\",\"instance_index:1\",\"space_name:system\",\"test-apm-env\",\"uri:test-apm-service-4.apps.integrations-lab.devenv.dog\",\"host:d34b4ecc-86eb-4b16-7f9c-9a2c\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"d34b4ecc-86eb-4b16-7f9c-9a2c\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"logs_agent\":{\"transport\":\"HTTP\"},\"network\":null,\"cpuCores\":1,\"platform\":\"linux\",\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.14.12\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"d34b4ecc-86eb-4b16-7f9c-9a2c\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"agent_flavor\":\"iot_agent\",\"host_id\":6306937036,\"pythonV\":\"n/a\",\"macV\":[\"\",\"\",\"\"],\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"d34b4ecc-86eb-4b16-7f9c-9a2c\",\"agent_version\":\"7.27.0\"},\"host_name\":\"d34b4ecc-86eb-4b16-7f9c-9a2c\",\"id\":6306937036,\"aliases\":[\"d34b4ecc-86eb-4b16-7f9c-9a2c\"]},{\"last_reported_time\":1641907512,\"name\":\"07cac129-6989-463b-48f8-2fea\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:1f283863-86b2-47ba-8700-c4d71c6edea9\",\"application_name:test-apm-service-5\",\"cf_instance_ip:10.0.40.5\",\"container_id:07cac129-6989-463b-48f8-2fea\",\"env:non-prod-auto-81\",\"instance_index:0\",\"space_name:system\",\"test-apm-env\",\"uri:test-apm-service-5.apps.integrations-lab.devenv.dog\",\"host:07cac129-6989-463b-48f8-2fea\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"07cac129-6989-463b-48f8-2fea\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"pythonV\":\"n/a\",\"platform\":\"linux\",\"logs_agent\":{\"transport\":\"HTTP\"},\"agent_flavor\":\"iot_agent\",\"macV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.14.12\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"07cac129-6989-463b-48f8-2fea\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"fbsdV\":[\"\",\"\",\"\"],\"socket-fqdn\":\"07cac129-6989-463b-48f8-2fea\",\"host_id\":6306937802,\"agent_version\":\"7.27.0\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"network\":null,\"cpuCores\":1},\"host_name\":\"07cac129-6989-463b-48f8-2fea\",\"id\":6306937802,\"aliases\":[\"07cac129-6989-463b-48f8-2fea\"]},{\"last_reported_time\":1641907773,\"name\":\"b6b09ba1-8412-458e-6288-304f\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"page\",\"trace\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:dc22d0b9-d6a2-4389-84a6-76029121ebe4\",\"application_name:autodiscovery-http\",\"cf_instance_ip:10.0.40.5\",\"env:integrations-lab\",\"instance_index:0\",\"space_name:system\",\"uri:autodiscovery-http.apps.integrations-lab.devenv.dog\",\"host:b6b09ba1-8412-458e-6288-304f\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"b6b09ba1-8412-458e-6288-304f\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"cpuCores\":1,\"macV\":[\"\",\"\",\"\"],\"logs_agent\":{\"transport\":\"HTTP\"},\"agent_flavor\":\"iot_agent\",\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"platform\":\"linux\",\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.15.13\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"b6b09ba1-8412-458e-6288-304f\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"network\":null,\"host_id\":6306937316,\"pythonV\":\"n/a\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"b6b09ba1-8412-458e-6288-304f\",\"agent_version\":\"7.30.0\"},\"host_name\":\"b6b09ba1-8412-458e-6288-304f\",\"id\":6306937316,\"aliases\":[\"b6b09ba1-8412-458e-6288-304f\"]},{\"last_reported_time\":1641906717,\"name\":\"9299f226-6c03-45b6-5d43-5d8a\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:8957b9a0-4132-4754-acc5-e3b959b5c77a\",\"application_name:test-apm-service\",\"cf_instance_ip:10.0.40.11\",\"container_id:9299f226-6c03-45b6-5d43-5d8a\",\"env:non-prod\",\"instance_index:0\",\"space_name:system\",\"test-apm-env\",\"uri:test-apm-service.apps.integrations-lab.devenv.dog\",\"host:9299f226-6c03-45b6-5d43-5d8a\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"9299f226-6c03-45b6-5d43-5d8a\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"cpuCores\":1,\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"logs_agent\":{\"transport\":\"HTTP\"},\"agent_flavor\":\"iot_agent\",\"macV\":[\"\",\"\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"processor\":\"Intel(R) Xeon(R) CPU @ 2.30GHz\",\"machine\":\"amd64\",\"platform\":\"linux\",\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"46080 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2299.998\\\",\\\"model\\\":\\\"63\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.30GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.14.12\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"9299f226-6c03-45b6-5d43-5d8a\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"host_id\":6307039546,\"pythonV\":\"n/a\",\"socket-fqdn\":\"9299f226-6c03-45b6-5d43-5d8a\",\"network\":null,\"agent_version\":\"7.27.0\"},\"host_name\":\"9299f226-6c03-45b6-5d43-5d8a\",\"id\":6307039546,\"aliases\":[\"9299f226-6c03-45b6-5d43-5d8a\"]},{\"last_reported_time\":1641907935,\"name\":\"4f1da5be-4454-4238-6d5f-8fd4\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"page\",\"trace\",\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:41256269-671b-4d79-91d5-3bf848376425\",\"application_name:test-space-org-cc\",\"cf_instance_ip:10.0.40.5\",\"env:integrations-lab\",\"instance_index:1\",\"space_name:datadog-application-monitoring-space\",\"uri:test-space-org-cc.apps.integrations-lab.devenv.dog\",\"host:4f1da5be-4454-4238-6d5f-8fd4\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"4f1da5be-4454-4238-6d5f-8fd4\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"cpuCores\":1,\"macV\":[\"\",\"\",\"\"],\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"logs_agent\":{\"transport\":\"HTTP\"},\"agent_flavor\":\"iot_agent\",\"platform\":\"linux\",\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"machine\":\"amd64\",\"network\":null,\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.15.13\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"4f1da5be-4454-4238-6d5f-8fd4\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"host_id\":6306942318,\"pythonV\":\"n/a\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"4f1da5be-4454-4238-6d5f-8fd4\",\"agent_version\":\"7.30.0\"},\"host_name\":\"4f1da5be-4454-4238-6d5f-8fd4\",\"id\":6306942318,\"aliases\":[\"4f1da5be-4454-4238-6d5f-8fd4\"]},{\"last_reported_time\":1641906715,\"name\":\"a2af6476-390b-4f1f-6b18-a9bf\",\"is_muted\":false,\"mute_timeout\":null,\"apps\":[\"agent\"],\"tags_by_source\":{\"Datadog\":[\"application_id:0ba38e35-614c-4576-862a-92a1b60c53db\",\"application_name:test-apm-service-2\",\"cf_instance_ip:10.0.40.5\",\"container_id:a2af6476-390b-4f1f-6b18-a9bf\",\"env:non-prod\",\"instance_index:0\",\"space_name:system\",\"test-apm-env\",\"uri:test-apm-service-2.apps.integrations-lab.devenv.dog\",\"host:a2af6476-390b-4f1f-6b18-a9bf\"]},\"up\":true,\"metrics\":{\"load\":null,\"iowait\":null,\"cpu\":null},\"sources\":[\"agent\"],\"meta\":{\"socket-hostname\":\"a2af6476-390b-4f1f-6b18-a9bf\",\"macV\":[\"\",\"\",\"\"],\"install_method\":{\"tool\":null,\"installer_version\":null,\"tool_version\":\"undefined\"},\"cpuCores\":1,\"agent_flavor\":\"iot_agent\",\"nixV\":[\"ubuntu\",\"18.04\",\"\"],\"timezones\":[\"UTC\"],\"winV\":[\"\",\"\",\"\"],\"agent_version\":\"7.27.0\",\"machine\":\"amd64\",\"platform\":\"linux\",\"fbsdV\":[\"\",\"\",\"\"],\"gohai\":\"{\\\"cpu\\\":{\\\"cache_size\\\":\\\"56320 KB\\\",\\\"cpu_cores\\\":\\\"2\\\",\\\"cpu_logical_processors\\\":\\\"4\\\",\\\"family\\\":\\\"6\\\",\\\"mhz\\\":\\\"2199.998\\\",\\\"model\\\":\\\"79\\\",\\\"model_name\\\":\\\"Intel(R) Xeon(R) CPU @ 2.20GHz\\\",\\\"stepping\\\":\\\"0\\\",\\\"vendor_id\\\":\\\"GenuineIntel\\\"},\\\"filesystem\\\":[{\\\"kb_size\\\":\\\"1024000\\\",\\\"mounted_on\\\":\\\"/\\\",\\\"name\\\":\\\"overlay\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/dev/shm\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"115956164\\\",\\\"mounted_on\\\":\\\"/tmp/garden-init\\\",\\\"name\\\":\\\"/dev/sda3\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/fs/cgroup\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"2796\\\",\\\"mounted_on\\\":\\\"/etc/cf-instance-credentials\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8197672\\\",\\\"mounted_on\\\":\\\"/dev/tty\\\",\\\"name\\\":\\\"devtmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/proc/scsi\\\",\\\"name\\\":\\\"tmpfs\\\"},{\\\"kb_size\\\":\\\"8212632\\\",\\\"mounted_on\\\":\\\"/sys/firmware\\\",\\\"name\\\":\\\"tmpfs\\\"}],\\\"memory\\\":{\\\"swap_total\\\":\\\"16425264kB\\\",\\\"total\\\":\\\"16425268kB\\\"},\\\"network\\\":null,\\\"platform\\\":{\\\"GOOARCH\\\":\\\"amd64\\\",\\\"GOOS\\\":\\\"linux\\\",\\\"goV\\\":\\\"1.14.12\\\",\\\"hardware_platform\\\":\\\"x86_64\\\",\\\"hostname\\\":\\\"a2af6476-390b-4f1f-6b18-a9bf\\\",\\\"kernel_name\\\":\\\"Linux\\\",\\\"kernel_release\\\":\\\"4.15.0-132-generic\\\",\\\"kernel_version\\\":\\\"#136~16.04.1-Ubuntu SMP Tue Jan 12 18:22:20 UTC 2021\\\",\\\"machine\\\":\\\"x86_64\\\",\\\"os\\\":\\\"GNU/Linux\\\",\\\"processor\\\":\\\"x86_64\\\",\\\"pythonV\\\":\\\"2.7.17\\\"}}\",\"logs_agent\":{\"transport\":\"HTTP\"},\"host_id\":6306937724,\"pythonV\":\"n/a\",\"processor\":\"Intel(R) Xeon(R) CPU @ 2.20GHz\",\"socket-fqdn\":\"a2af6476-390b-4f1f-6b18-a9bf\",\"network\":null},\"host_name\":\"a2af6476-390b-4f1f-6b18-a9bf\",\"id\":6306937724,\"aliases\":[\"a2af6476-390b-4f1f-6b18-a9bf\"]}],\"total_matching\":41}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 11 Jan 2022 13:45:52 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/ip_ranges/List-IP-Ranges-returns-OK-response.json b/tests/scenarios/cassettes/v1/ip_ranges/List-IP-Ranges-returns-OK-response.json index cb16bca25..f922edf03 100644 --- a/tests/scenarios/cassettes/v1/ip_ranges/List-IP-Ranges-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/ip_ranges/List-IP-Ranges-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://ip-ranges.datadoghq.com/"}, "response": {"body": {"string": "{\n \"version\": 47,\n \"modified\": \"2022-01-25-20-00-00\",\n \"agents\": {\n \"prefixes_ipv4\": [\n \"3.233.144.0/20\"\n ],\n \"prefixes_ipv6\": [\n \"2600:1f18:24e6:b900::/56\"\n ]\n },\n \"api\": {\n \"prefixes_ipv4\": [\n \"3.233.144.0/20\"\n ],\n \"prefixes_ipv6\": [\n \"2600:1f18:24e6:b900::/56\"\n ]\n },\n \"apm\": {\n \"prefixes_ipv4\": [\n \"3.233.144.0/20\"\n ],\n \"prefixes_ipv6\": [\n \"2600:1f18:24e6:b900::/56\"\n ]\n },\n \"global\": {\n \"prefixes_ipv4\": [\n \"3.233.144.0/20\"\n ],\n \"prefixes_ipv6\": [\n \"2600:1f18:24e6:b900::/56\"\n ]\n },\n \"logs\": {\n \"prefixes_ipv4\": [\n \"3.233.144.0/20\"\n ],\n \"prefixes_ipv6\": [\n \"2600:1f18:24e6:b900::/56\"\n ]\n },\n \"orchestrator\": {\n \"prefixes_ipv4\": [\n \"3.233.144.0/20\"\n ],\n \"prefixes_ipv6\": [\n \"2600:1f18:24e6:b900::/56\"\n ]\n },\n \"process\": {\n \"prefixes_ipv4\": [\n \"3.233.144.0/20\"\n ],\n \"prefixes_ipv6\": [\n \"2600:1f18:24e6:b900::/56\"\n ]\n },\n \"synthetics\": {\n \"prefixes_ipv4\": [\n \"13.114.211.96/32\",\n \"13.115.46.213/32\",\n \"13.126.169.175/32\",\n \"13.209.118.42/32\",\n \"13.209.230.111/32\",\n \"13.234.54.8/32\",\n \"13.236.246.161/32\",\n \"13.238.14.57/32\",\n \"13.48.150.244/32\",\n \"13.48.239.118/32\",\n \"13.48.254.37/32\",\n \"13.54.169.48/32\",\n \"15.188.202.64/32\",\n \"15.188.240.172/32\",\n \"15.188.243.248/32\",\n \"18.130.113.168/32\",\n \"18.139.52.173/32\",\n \"18.195.155.52/32\",\n \"18.200.120.237/32\",\n \"18.229.28.50/32\",\n \"18.229.36.120/32\",\n \"20.62.248.141/32\",\n \"20.83.144.189/32\",\n \"3.1.219.207/32\",\n \"3.1.36.99/32\",\n \"3.120.223.25/32\",\n \"3.121.24.234/32\",\n \"3.18.172.189/32\",\n \"3.18.188.104/32\",\n \"3.18.197.0/32\",\n \"3.36.177.119/32\",\n \"3.96.7.126/32\",\n \"34.208.32.189/32\",\n \"35.154.93.182/32\",\n \"35.176.195.46/32\",\n \"35.177.43.250/32\",\n \"40.76.107.170/32\",\n \"52.192.175.207/32\",\n \"52.35.61.232/32\",\n \"52.60.189.53/32\",\n \"52.67.95.251/32\",\n \"52.89.221.151/32\",\n \"52.9.13.199/32\",\n \"52.9.139.134/32\",\n \"54.177.155.33/32\",\n \"63.34.100.178/32\",\n \"63.35.33.198/32\",\n \"99.79.87.237/32\"\n ],\n \"prefixes_ipv6\": [],\n \"prefixes_ipv4_by_location\": {\n \"aws:ap-northeast-1\": [\n \"13.114.211.96/32\",\n \"52.192.175.207/32\",\n \"13.115.46.213/32\"\n ],\n \"aws:ap-northeast-2\": [\n \"13.209.118.42/32\",\n \"3.36.177.119/32\",\n \"13.209.230.111/32\"\n ],\n \"aws:ap-south-1\": [\n \"35.154.93.182/32\",\n \"13.126.169.175/32\",\n \"13.234.54.8/32\"\n ],\n \"aws:ap-southeast-1\": [\n \"3.1.36.99/32\",\n \"18.139.52.173/32\",\n \"3.1.219.207/32\"\n ],\n \"aws:ap-southeast-2\": [\n \"13.236.246.161/32\",\n \"13.54.169.48/32\",\n \"13.238.14.57/32\"\n ],\n \"aws:ca-central-1\": [\n \"3.96.7.126/32\",\n \"52.60.189.53/32\",\n \"99.79.87.237/32\"\n ],\n \"aws:eu-central-1\": [\n \"3.120.223.25/32\",\n \"18.195.155.52/32\",\n \"3.121.24.234/32\"\n ],\n \"aws:eu-north-1\": [\n \"13.48.150.244/32\",\n \"13.48.254.37/32\",\n \"13.48.239.118/32\"\n ],\n \"aws:eu-west-1\": [\n \"63.35.33.198/32\",\n \"18.200.120.237/32\",\n \"63.34.100.178/32\"\n ],\n \"aws:eu-west-2\": [\n \"18.130.113.168/32\",\n \"35.177.43.250/32\",\n \"35.176.195.46/32\"\n ],\n \"aws:eu-west-3\": [\n \"15.188.243.248/32\",\n \"15.188.202.64/32\",\n \"15.188.240.172/32\"\n ],\n \"aws:sa-east-1\": [\n \"18.229.36.120/32\",\n \"52.67.95.251/32\",\n \"18.229.28.50/32\"\n ],\n \"aws:us-east-2\": [\n \"3.18.188.104/32\",\n \"3.18.197.0/32\",\n \"3.18.172.189/32\"\n ],\n \"aws:us-west-1\": [\n \"54.177.155.33/32\",\n \"52.9.13.199/32\",\n \"52.9.139.134/32\"\n ],\n \"aws:us-west-2\": [\n \"52.35.61.232/32\",\n \"34.208.32.189/32\",\n \"52.89.221.151/32\"\n ],\n \"azure:eastus\": [\n \"40.76.107.170/32\",\n \"20.62.248.141/32\",\n \"20.83.144.189/32\"\n ]\n },\n \"prefixes_ipv6_by_location\": {}\n },\n \"webhooks\": {\n \"prefixes_ipv4\": [\n \"23.20.198.65/32\",\n \"23.23.216.60/32\",\n \"3.220.254.141/32\",\n \"3.229.86.174/32\",\n \"3.85.68.181/32\",\n \"34.192.254.186/32\",\n \"34.203.1.9/32\",\n \"34.204.102.208/32\",\n \"34.204.83.4/32\",\n \"35.172.176.208/32\",\n \"44.192.28.0/25\",\n \"52.1.61.69/32\",\n \"52.20.96.17/32\",\n \"52.71.149.79/32\",\n \"52.73.176.69/32\",\n \"54.157.132.187/32\",\n \"54.157.36.5/32\",\n \"54.164.178.25/32\",\n \"54.92.248.81/32\"\n ],\n \"prefixes_ipv6\": []\n }\n}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 09 Mar 2022 10:24:17 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://ip-ranges.datadoghq.com/" + }, + "response": { + "body": { + "string": "{\n \"version\": 47,\n \"modified\": \"2022-01-25-20-00-00\",\n \"agents\": {\n \"prefixes_ipv4\": [\n \"3.233.144.0/20\"\n ],\n \"prefixes_ipv6\": [\n \"2600:1f18:24e6:b900::/56\"\n ]\n },\n \"api\": {\n \"prefixes_ipv4\": [\n \"3.233.144.0/20\"\n ],\n \"prefixes_ipv6\": [\n \"2600:1f18:24e6:b900::/56\"\n ]\n },\n \"apm\": {\n \"prefixes_ipv4\": [\n \"3.233.144.0/20\"\n ],\n \"prefixes_ipv6\": [\n \"2600:1f18:24e6:b900::/56\"\n ]\n },\n \"global\": {\n \"prefixes_ipv4\": [\n \"3.233.144.0/20\"\n ],\n \"prefixes_ipv6\": [\n \"2600:1f18:24e6:b900::/56\"\n ]\n },\n \"logs\": {\n \"prefixes_ipv4\": [\n \"3.233.144.0/20\"\n ],\n \"prefixes_ipv6\": [\n \"2600:1f18:24e6:b900::/56\"\n ]\n },\n \"orchestrator\": {\n \"prefixes_ipv4\": [\n \"3.233.144.0/20\"\n ],\n \"prefixes_ipv6\": [\n \"2600:1f18:24e6:b900::/56\"\n ]\n },\n \"process\": {\n \"prefixes_ipv4\": [\n \"3.233.144.0/20\"\n ],\n \"prefixes_ipv6\": [\n \"2600:1f18:24e6:b900::/56\"\n ]\n },\n \"synthetics\": {\n \"prefixes_ipv4\": [\n \"13.114.211.96/32\",\n \"13.115.46.213/32\",\n \"13.126.169.175/32\",\n \"13.209.118.42/32\",\n \"13.209.230.111/32\",\n \"13.234.54.8/32\",\n \"13.236.246.161/32\",\n \"13.238.14.57/32\",\n \"13.48.150.244/32\",\n \"13.48.239.118/32\",\n \"13.48.254.37/32\",\n \"13.54.169.48/32\",\n \"15.188.202.64/32\",\n \"15.188.240.172/32\",\n \"15.188.243.248/32\",\n \"18.130.113.168/32\",\n \"18.139.52.173/32\",\n \"18.195.155.52/32\",\n \"18.200.120.237/32\",\n \"18.229.28.50/32\",\n \"18.229.36.120/32\",\n \"20.62.248.141/32\",\n \"20.83.144.189/32\",\n \"3.1.219.207/32\",\n \"3.1.36.99/32\",\n \"3.120.223.25/32\",\n \"3.121.24.234/32\",\n \"3.18.172.189/32\",\n \"3.18.188.104/32\",\n \"3.18.197.0/32\",\n \"3.36.177.119/32\",\n \"3.96.7.126/32\",\n \"34.208.32.189/32\",\n \"35.154.93.182/32\",\n \"35.176.195.46/32\",\n \"35.177.43.250/32\",\n \"40.76.107.170/32\",\n \"52.192.175.207/32\",\n \"52.35.61.232/32\",\n \"52.60.189.53/32\",\n \"52.67.95.251/32\",\n \"52.89.221.151/32\",\n \"52.9.13.199/32\",\n \"52.9.139.134/32\",\n \"54.177.155.33/32\",\n \"63.34.100.178/32\",\n \"63.35.33.198/32\",\n \"99.79.87.237/32\"\n ],\n \"prefixes_ipv6\": [],\n \"prefixes_ipv4_by_location\": {\n \"aws:ap-northeast-1\": [\n \"13.114.211.96/32\",\n \"52.192.175.207/32\",\n \"13.115.46.213/32\"\n ],\n \"aws:ap-northeast-2\": [\n \"13.209.118.42/32\",\n \"3.36.177.119/32\",\n \"13.209.230.111/32\"\n ],\n \"aws:ap-south-1\": [\n \"35.154.93.182/32\",\n \"13.126.169.175/32\",\n \"13.234.54.8/32\"\n ],\n \"aws:ap-southeast-1\": [\n \"3.1.36.99/32\",\n \"18.139.52.173/32\",\n \"3.1.219.207/32\"\n ],\n \"aws:ap-southeast-2\": [\n \"13.236.246.161/32\",\n \"13.54.169.48/32\",\n \"13.238.14.57/32\"\n ],\n \"aws:ca-central-1\": [\n \"3.96.7.126/32\",\n \"52.60.189.53/32\",\n \"99.79.87.237/32\"\n ],\n \"aws:eu-central-1\": [\n \"3.120.223.25/32\",\n \"18.195.155.52/32\",\n \"3.121.24.234/32\"\n ],\n \"aws:eu-north-1\": [\n \"13.48.150.244/32\",\n \"13.48.254.37/32\",\n \"13.48.239.118/32\"\n ],\n \"aws:eu-west-1\": [\n \"63.35.33.198/32\",\n \"18.200.120.237/32\",\n \"63.34.100.178/32\"\n ],\n \"aws:eu-west-2\": [\n \"18.130.113.168/32\",\n \"35.177.43.250/32\",\n \"35.176.195.46/32\"\n ],\n \"aws:eu-west-3\": [\n \"15.188.243.248/32\",\n \"15.188.202.64/32\",\n \"15.188.240.172/32\"\n ],\n \"aws:sa-east-1\": [\n \"18.229.36.120/32\",\n \"52.67.95.251/32\",\n \"18.229.28.50/32\"\n ],\n \"aws:us-east-2\": [\n \"3.18.188.104/32\",\n \"3.18.197.0/32\",\n \"3.18.172.189/32\"\n ],\n \"aws:us-west-1\": [\n \"54.177.155.33/32\",\n \"52.9.13.199/32\",\n \"52.9.139.134/32\"\n ],\n \"aws:us-west-2\": [\n \"52.35.61.232/32\",\n \"34.208.32.189/32\",\n \"52.89.221.151/32\"\n ],\n \"azure:eastus\": [\n \"40.76.107.170/32\",\n \"20.62.248.141/32\",\n \"20.83.144.189/32\"\n ]\n },\n \"prefixes_ipv6_by_location\": {}\n },\n \"webhooks\": {\n \"prefixes_ipv4\": [\n \"23.20.198.65/32\",\n \"23.23.216.60/32\",\n \"3.220.254.141/32\",\n \"3.229.86.174/32\",\n \"3.85.68.181/32\",\n \"34.192.254.186/32\",\n \"34.203.1.9/32\",\n \"34.204.102.208/32\",\n \"34.204.83.4/32\",\n \"35.172.176.208/32\",\n \"44.192.28.0/25\",\n \"52.1.61.69/32\",\n \"52.20.96.17/32\",\n \"52.71.149.79/32\",\n \"52.73.176.69/32\",\n \"54.157.132.187/32\",\n \"54.157.36.5/32\",\n \"54.164.178.25/32\",\n \"54.92.248.81/32\"\n ],\n \"prefixes_ipv6\": []\n }\n}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 09 Mar 2022 10:24:17 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/logs/Search-test-logs-returns-OK-response.json b/tests/scenarios/cassettes/v1/logs/Search-test-logs-returns-OK-response.json index 6f097ac76..256ee545a 100644 --- a/tests/scenarios/cassettes/v1/logs/Search-test-logs-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/logs/Search-test-logs-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"index\":\"main\",\"query\":\"host:Test*\",\"sort\":\"asc\",\"time\":{\"from\":\"2022-04-12T13:46:01.054Z\",\"timezone\":\"Europe/Paris\",\"to\":\"2022-04-12T14:46:01.054Z\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/logs-queries/list"}, "response": {"body": {"string": "{\"status\":\"done\",\"nextLogId\":\"AQAAAYAeNzBYpo9uwQAAAABBWUFlTnphX0FBQ3ZDWWkzMEhwV3lnQUE\",\"logs\":[{\"content\":{\"attributes\":{\"timestamp\":1649772129000,\"hostname\":\"Test-Go-TestLogsList-1649773129\"},\"host\":\"Test-Go-TestLogsList-1649773129\",\"tags\":[\"source:go-client-test-test-go-testlogslist-1649773129\",\"source:go-client-test-test-go-testlogslist-1649773129\",\"test\",\"go\",\"list\"],\"message\":\"test-log-list-1 Test-Go-TestLogsList-1649773129\",\"timestamp\":\"2022-04-12T14:02:09.000Z\"},\"id\":\"AQAAAYAeFOro88x3gAAAAABBWUFlSkRBTUFBQTYxd2RPZWdXdkVRQUE\"},{\"content\":{\"attributes\":{\"timestamp\":1649772161000,\"hostname\":\"Test-Go-TestLogsListGet-1649773161\"},\"host\":\"Test-Go-TestLogsListGet-1649773161\",\"tags\":[\"source:go-client-test-test-go-testlogslistget-1649773161\",\"test\",\"go\",\"list\",\"source:go-client-test-test-go-testlogslistget-1649773161\"],\"message\":\"test-log-list-1 Test-Go-TestLogsListGet-1649773161\",\"timestamp\":\"2022-04-12T14:02:41.000Z\"},\"id\":\"AQAAAYAeFWfoHAiocAAAAABBWUFlSkt1ZEFBQXVPblNhLTVqU2xnQUE\"},{\"content\":{\"attributes\":{\"timestamp\":1649773128000,\"hostname\":\"Test-Go-TestLogsList-1649773129\"},\"host\":\"Test-Go-TestLogsList-1649773129\",\"tags\":[\"source:go-client-test-test-go-testlogslist-1649773129\",\"source:go-client-test-test-go-testlogslist-1649773129\",\"test\",\"go\",\"list\"],\"message\":\"test-log-list-2 Test-Go-TestLogsList-1649773129\",\"timestamp\":\"2022-04-12T14:18:48.000Z\"},\"id\":\"AQAAAYAeJClARmc41AAAAABBWUFlSkRCY0FBQnhWWklPUUhyckd3QUE\"},{\"content\":{\"attributes\":{\"timestamp\":1649773160000,\"hostname\":\"Test-Go-TestLogsListGet-1649773161\"},\"host\":\"Test-Go-TestLogsListGet-1649773161\",\"tags\":[\"source:go-client-test-test-go-testlogslistget-1649773161\",\"test\",\"go\",\"list\",\"source:go-client-test-test-go-testlogslistget-1649773161\"],\"message\":\"test-log-list-2 Test-Go-TestLogsListGet-1649773161\",\"timestamp\":\"2022-04-12T14:19:20.000Z\"},\"id\":\"AQAAAYAeJKZAhvnyzgAAAABBWUFlSkt2b0FBQVI1Q0EtS2JyRnJRQUE\"},{\"content\":{\"attributes\":{\"timestamp\":1649773195000,\"hostname\":\"Test-Go-TestLogsList-1649774195\"},\"host\":\"Test-Go-TestLogsList-1649774195\",\"tags\":[\"source:go-client-test-test-go-testlogslist-1649774195\",\"test\",\"go\",\"list\",\"source:go-client-test-test-go-testlogslist-1649774195\"],\"message\":\"test-log-list-1 Test-Go-TestLogsList-1649774195\",\"timestamp\":\"2022-04-12T14:19:55.000Z\"},\"id\":\"AQAAAYAeJS745UJvLwAAAABBWUFlTkhOWUFBQmtWQk8zVXkwTDN3QUE\"},{\"content\":{\"attributes\":{\"timestamp\":1649773317000,\"hostname\":\"Test-Go-TestLogsList-1649773318\"},\"host\":\"Test-Go-TestLogsList-1649773318\",\"tags\":[\"source:go-client-test-1649773318743602624\",\"test\",\"go\",\"list\",\"source:go-client-test-1649773318743602624\"],\"message\":\"test-log-list-1649773318743602624\",\"timestamp\":\"2022-04-12T14:21:57.000Z\"},\"id\":\"AQAAAYAeJwuIithnHAAAAABBWUFlSnhMcUFBQnkzcFE3ZlVPOGVRQUE\"},{\"content\":{\"attributes\":{\"timestamp\":1649773318000,\"hostname\":\"Test-Go-TestLogsList-1649773318\"},\"host\":\"Test-Go-TestLogsList-1649773318\",\"tags\":[\"source:go-client-test-1649773318743602624\",\"test\",\"go\",\"list\",\"source:go-client-test-1649773318743602624\"],\"message\":\"second-test-log-list-1649773318743602624\",\"timestamp\":\"2022-04-12T14:21:58.000Z\"},\"id\":\"AQAAAYAeJw9w5m-WVwAAAABBWUFlSnhOMkFBQU1DVVRPSzJMVDlBQUE\"},{\"content\":{\"attributes\":{\"timestamp\":1649773376000,\"hostname\":\"Test-Go-TestLogsList-1649774376\"},\"host\":\"Test-Go-TestLogsList-1649774376\",\"tags\":[\"source:go-client-test-test-go-testlogslist-1649774376\",\"test\",\"go\",\"source:go-client-test-test-go-testlogslist-1649774376\",\"list\"],\"message\":\"test-log-list-1 Test-Go-TestLogsList-1649774376\",\"timestamp\":\"2022-04-12T14:22:56.000Z\"},\"id\":\"AQAAAYAeJ_IAoerAgAAAAABBWUFlTnpZWUFBQ29QaE5GdHgxcjJnQUE\"},{\"content\":{\"attributes\":{\"timestamp\":1649773408000,\"hostname\":\"Test-Go-TestLogsListGet-1649774408\"},\"host\":\"Test-Go-TestLogsListGet-1649774408\",\"tags\":[\"source:go-client-test-test-go-testlogslistget-1649774408\",\"test\",\"go\",\"list\",\"source:go-client-test-test-go-testlogslistget-1649774408\"],\"message\":\"test-log-list-1 Test-Go-TestLogsListGet-1649774408\",\"timestamp\":\"2022-04-12T14:23:28.000Z\"},\"id\":\"AQAAAYAeKG8Ao6McCAAAAABBWUFlTjdLZEFBRHFMTW9ZX2RTdzdnQUE\"},{\"content\":{\"attributes\":{\"timestamp\":1649774194000,\"hostname\":\"Test-Go-TestLogsList-1649774195\"},\"host\":\"Test-Go-TestLogsList-1649774195\",\"tags\":[\"source:go-client-test-test-go-testlogslist-1649774195\",\"test\",\"go\",\"list\",\"source:go-client-test-test-go-testlogslist-1649774195\"],\"message\":\"test-log-list-2 Test-Go-TestLogsList-1649774195\",\"timestamp\":\"2022-04-12T14:36:34.000Z\"},\"id\":\"AQAAAYAeNG1Q5fBvLwAAAABBWUFlTkhQakFBQmtWQk8zVXkwTXNnQUE\"}],\"requestId\":\"pddv1ChZ0T0JqMzFnX1FQaWdGd21BTU1hckl3IiwKHC8XTMg_fLTUGsRepyDllkNF3vCLTnkHA-t3jZYSDMSnnSl0VC9gKVQz5Q\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 12 Apr 2022 14:46:01 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"index\":\"main\",\"query\":\"host:Test*\",\"sort\":\"asc\",\"time\":{\"from\":\"2022-04-12T13:46:01.054Z\",\"timezone\":\"Europe/Paris\",\"to\":\"2022-04-12T14:46:01.054Z\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/logs-queries/list" + }, + "response": { + "body": { + "string": "{\"status\":\"done\",\"nextLogId\":\"AQAAAYAeNzBYpo9uwQAAAABBWUFlTnphX0FBQ3ZDWWkzMEhwV3lnQUE\",\"logs\":[{\"content\":{\"attributes\":{\"timestamp\":1649772129000,\"hostname\":\"Test-Go-TestLogsList-1649773129\"},\"host\":\"Test-Go-TestLogsList-1649773129\",\"tags\":[\"source:go-client-test-test-go-testlogslist-1649773129\",\"source:go-client-test-test-go-testlogslist-1649773129\",\"test\",\"go\",\"list\"],\"message\":\"test-log-list-1 Test-Go-TestLogsList-1649773129\",\"timestamp\":\"2022-04-12T14:02:09.000Z\"},\"id\":\"AQAAAYAeFOro88x3gAAAAABBWUFlSkRBTUFBQTYxd2RPZWdXdkVRQUE\"},{\"content\":{\"attributes\":{\"timestamp\":1649772161000,\"hostname\":\"Test-Go-TestLogsListGet-1649773161\"},\"host\":\"Test-Go-TestLogsListGet-1649773161\",\"tags\":[\"source:go-client-test-test-go-testlogslistget-1649773161\",\"test\",\"go\",\"list\",\"source:go-client-test-test-go-testlogslistget-1649773161\"],\"message\":\"test-log-list-1 Test-Go-TestLogsListGet-1649773161\",\"timestamp\":\"2022-04-12T14:02:41.000Z\"},\"id\":\"AQAAAYAeFWfoHAiocAAAAABBWUFlSkt1ZEFBQXVPblNhLTVqU2xnQUE\"},{\"content\":{\"attributes\":{\"timestamp\":1649773128000,\"hostname\":\"Test-Go-TestLogsList-1649773129\"},\"host\":\"Test-Go-TestLogsList-1649773129\",\"tags\":[\"source:go-client-test-test-go-testlogslist-1649773129\",\"source:go-client-test-test-go-testlogslist-1649773129\",\"test\",\"go\",\"list\"],\"message\":\"test-log-list-2 Test-Go-TestLogsList-1649773129\",\"timestamp\":\"2022-04-12T14:18:48.000Z\"},\"id\":\"AQAAAYAeJClARmc41AAAAABBWUFlSkRCY0FBQnhWWklPUUhyckd3QUE\"},{\"content\":{\"attributes\":{\"timestamp\":1649773160000,\"hostname\":\"Test-Go-TestLogsListGet-1649773161\"},\"host\":\"Test-Go-TestLogsListGet-1649773161\",\"tags\":[\"source:go-client-test-test-go-testlogslistget-1649773161\",\"test\",\"go\",\"list\",\"source:go-client-test-test-go-testlogslistget-1649773161\"],\"message\":\"test-log-list-2 Test-Go-TestLogsListGet-1649773161\",\"timestamp\":\"2022-04-12T14:19:20.000Z\"},\"id\":\"AQAAAYAeJKZAhvnyzgAAAABBWUFlSkt2b0FBQVI1Q0EtS2JyRnJRQUE\"},{\"content\":{\"attributes\":{\"timestamp\":1649773195000,\"hostname\":\"Test-Go-TestLogsList-1649774195\"},\"host\":\"Test-Go-TestLogsList-1649774195\",\"tags\":[\"source:go-client-test-test-go-testlogslist-1649774195\",\"test\",\"go\",\"list\",\"source:go-client-test-test-go-testlogslist-1649774195\"],\"message\":\"test-log-list-1 Test-Go-TestLogsList-1649774195\",\"timestamp\":\"2022-04-12T14:19:55.000Z\"},\"id\":\"AQAAAYAeJS745UJvLwAAAABBWUFlTkhOWUFBQmtWQk8zVXkwTDN3QUE\"},{\"content\":{\"attributes\":{\"timestamp\":1649773317000,\"hostname\":\"Test-Go-TestLogsList-1649773318\"},\"host\":\"Test-Go-TestLogsList-1649773318\",\"tags\":[\"source:go-client-test-1649773318743602624\",\"test\",\"go\",\"list\",\"source:go-client-test-1649773318743602624\"],\"message\":\"test-log-list-1649773318743602624\",\"timestamp\":\"2022-04-12T14:21:57.000Z\"},\"id\":\"AQAAAYAeJwuIithnHAAAAABBWUFlSnhMcUFBQnkzcFE3ZlVPOGVRQUE\"},{\"content\":{\"attributes\":{\"timestamp\":1649773318000,\"hostname\":\"Test-Go-TestLogsList-1649773318\"},\"host\":\"Test-Go-TestLogsList-1649773318\",\"tags\":[\"source:go-client-test-1649773318743602624\",\"test\",\"go\",\"list\",\"source:go-client-test-1649773318743602624\"],\"message\":\"second-test-log-list-1649773318743602624\",\"timestamp\":\"2022-04-12T14:21:58.000Z\"},\"id\":\"AQAAAYAeJw9w5m-WVwAAAABBWUFlSnhOMkFBQU1DVVRPSzJMVDlBQUE\"},{\"content\":{\"attributes\":{\"timestamp\":1649773376000,\"hostname\":\"Test-Go-TestLogsList-1649774376\"},\"host\":\"Test-Go-TestLogsList-1649774376\",\"tags\":[\"source:go-client-test-test-go-testlogslist-1649774376\",\"test\",\"go\",\"source:go-client-test-test-go-testlogslist-1649774376\",\"list\"],\"message\":\"test-log-list-1 Test-Go-TestLogsList-1649774376\",\"timestamp\":\"2022-04-12T14:22:56.000Z\"},\"id\":\"AQAAAYAeJ_IAoerAgAAAAABBWUFlTnpZWUFBQ29QaE5GdHgxcjJnQUE\"},{\"content\":{\"attributes\":{\"timestamp\":1649773408000,\"hostname\":\"Test-Go-TestLogsListGet-1649774408\"},\"host\":\"Test-Go-TestLogsListGet-1649774408\",\"tags\":[\"source:go-client-test-test-go-testlogslistget-1649774408\",\"test\",\"go\",\"list\",\"source:go-client-test-test-go-testlogslistget-1649774408\"],\"message\":\"test-log-list-1 Test-Go-TestLogsListGet-1649774408\",\"timestamp\":\"2022-04-12T14:23:28.000Z\"},\"id\":\"AQAAAYAeKG8Ao6McCAAAAABBWUFlTjdLZEFBRHFMTW9ZX2RTdzdnQUE\"},{\"content\":{\"attributes\":{\"timestamp\":1649774194000,\"hostname\":\"Test-Go-TestLogsList-1649774195\"},\"host\":\"Test-Go-TestLogsList-1649774195\",\"tags\":[\"source:go-client-test-test-go-testlogslist-1649774195\",\"test\",\"go\",\"list\",\"source:go-client-test-test-go-testlogslist-1649774195\"],\"message\":\"test-log-list-2 Test-Go-TestLogsList-1649774195\",\"timestamp\":\"2022-04-12T14:36:34.000Z\"},\"id\":\"AQAAAYAeNG1Q5fBvLwAAAABBWUFlTkhQakFBQmtWQk8zVXkwTXNnQUE\"}],\"requestId\":\"pddv1ChZ0T0JqMzFnX1FQaWdGd21BTU1hckl3IiwKHC8XTMg_fLTUGsRepyDllkNF3vCLTnkHA-t3jZYSDMSnnSl0VC9gKVQz5Q\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 12 Apr 2022 14:46:01 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/logs/Send-logs-returns-Response-from-server-always-200-empty-JSON-response.json b/tests/scenarios/cassettes/v1/logs/Send-logs-returns-Response-from-server-always-200-empty-JSON-response.json index 563b92bde..0d12abdba 100644 --- a/tests/scenarios/cassettes/v1/logs/Send-logs-returns-Response-from-server-always-200-empty-JSON-response.json +++ b/tests/scenarios/cassettes/v1/logs/Send-logs-returns-Response-from-server-always-200-empty-JSON-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "[{\"ddtags\":\"host:TestSendlogsreturnsResponsefromserveralways200emptyJSONresponse1649774806\",\"message\":\"Test-Send_logs_returns_Response_from_server_always_200_empty_JSON_response-1649774806\"}]", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://http-intake.logs.datadoghq.com/v1/input"}, "response": {"body": {"string": "{}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 12 Apr 2022 14:46:46 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "[{\"ddtags\":\"host:TestSendlogsreturnsResponsefromserveralways200emptyJSONresponse1649774806\",\"message\":\"Test-Send_logs_returns_Response_from_server_always_200_empty_JSON_response-1649774806\"}]", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://http-intake.logs.datadoghq.com/v1/input" + }, + "response": { + "body": { + "string": "{}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 12 Apr 2022 14:46:46 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/metrics/Query-timeseries-points-returns-OK-response.json b/tests/scenarios/cassettes/v1/metrics/Query-timeseries-points-returns-OK-response.json index 8f8da2c0b..d0fb2db96 100644 --- a/tests/scenarios/cassettes/v1/metrics/Query-timeseries-points-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/metrics/Query-timeseries-points-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/query?from=1641343852&to=1641430252&query=system.cpu.idle%7B%2A%7D"}, "response": {"body": {"string": "{\"status\":\"ok\",\"resp_version\":1,\"series\":[{\"end\":1641430499000,\"attributes\":{},\"metric\":\"system.cpu.idle\",\"interval\":300,\"tag_set\":[],\"start\":1641344100000,\"length\":288,\"query_index\":0,\"aggr\":null,\"scope\":\"*\",\"pointlist\":[[1641344100000,91.4583840476142],[1641344400000,91.5041914039484],[1641344700000,91.5031727472941],[1641345000000,91.39889285551104],[1641345300000,91.47619551653302],[1641345600000,91.64146314991845],[1641345900000,91.64735362264845],[1641346200000,91.55526781082153],[1641346500000,91.6371850013733],[1641346800000,91.68250057962206],[1641347100000,91.60082637998792],[1641347400000,91.4950697009124],[1641347700000,91.64827139017969],[1641348000000,91.64833300908407],[1641348300000,91.60905449845818],[1641348600000,91.56596363323361],[1641348900000,91.63685929510328],[1641349200000,91.64933202519764],[1641349500000,91.6107414714451],[1641349800000,91.40454476409488],[1641350100000,91.59469479454889],[1641350400000,91.67022712495591],[1641350700000,91.604996670617],[1641351000000,91.47990549405417],[1641351300000,91.69391924540201],[1641351600000,91.62421916590796],[1641351900000,91.5023226434174],[1641352200000,91.5819918030467],[1641352500000,91.32184710237715],[1641352800000,91.61898436016507],[1641353100000,91.45793066131935],[1641353400000,91.47088284438915],[1641353700000,91.54457744855559],[1641354000000,91.45134286960187],[1641354300000,91.29632735651964],[1641354600000,91.58744257537413],[1641354900000,91.57655964692434],[1641355200000,91.57526417838203],[1641355500000,91.49192513889737],[1641355800000,91.70287729774773],[1641356100000,91.6411153263516],[1641356400000,91.62927407977962],[1641356700000,91.46810295846727],[1641357000000,91.60543678071764],[1641357300000,91.82811136352284],[1641357600000,91.64562135802375],[1641357900000,91.62629457967859],[1641358200000,91.83713339699639],[1641358500000,91.8269237306383],[1641358800000,91.51536819372285],[1641359100000,91.8249406920539],[1641359400000,91.78771849738227],[1641359700000,91.76375472212636],[1641360000000,91.63237387869093],[1641360300000,91.88244188096789],[1641360600000,91.79242520862155],[1641360900000,91.93073253525036],[1641361200000,91.67918115191989],[1641361500000,91.79578322938035],[1641361800000,91.83651844130623],[1641362100000,91.71130581961738],[1641362400000,91.75250519381629],[1641362700000,91.8158536169264],[1641363000000,91.81006436612871],[1641363300000,91.59950379265679],[1641363600000,91.83079908688863],[1641363900000,91.87493492762248],[1641364200000,91.82101196712918],[1641364500000,91.64744385660694],[1641364800000,91.83770509295994],[1641365100000,91.9685140838198],[1641365400000,91.7531249417199],[1641365700000,91.67300949949126],[1641366000000,91.79345592127906],[1641366300000,91.73485231929355],[1641366600000,91.55070868598091],[1641366900000,91.55139268650098],[1641367200000,91.78447139528063],[1641367500000,91.80046057171292],[1641367800000,91.5173837767707],[1641368100000,91.61783748732672],[1641368400000,91.54000244565661],[1641368700000,91.63637002838982],[1641369000000,91.41091106732686],[1641369300000,91.66854822702248],[1641369600000,91.61027587254843],[1641369900000,91.8198676082675],[1641370200000,91.48600738578372],[1641370500000,91.65683332901428],[1641370800000,91.58071227555864],[1641371100000,91.75540946981761],[1641371400000,91.40112875302633],[1641371700000,91.64639356815616],[1641372000000,91.61510000814938],[1641372300000,91.72173411051432],[1641372600000,91.62555447684394],[1641372900000,91.79817406958041],[1641373200000,91.74562991725074],[1641373500000,91.86465620458796],[1641373800000,91.24777637248238],[1641374100000,91.28208885478476],[1641374400000,91.72878638108571],[1641374700000,91.80307694541084],[1641375000000,91.70750335057576],[1641375300000,91.61170747426635],[1641375600000,91.72786082956526],[1641375900000,91.69985788228125],[1641376200000,91.70830994711982],[1641376500000,91.42228098445469],[1641376800000,91.53042177624172],[1641377100000,91.45339036920217],[1641377400000,91.4914351346433],[1641377700000,91.49156963800391],[1641378000000,91.1925335463199],[1641378300000,91.5098435515512],[1641378600000,91.44923543930054],[1641378900000,91.38144797153687],[1641379200000,91.37314377970702],[1641379500000,91.07517932380378],[1641379800000,91.38893212153259],[1641380100000,91.48836210038927],[1641380400000,91.35306127866109],[1641380700000,91.41644689771864],[1641381000000,90.70442303137646],[1641381300000,90.5452809771209],[1641381600000,90.44131157826112],[1641381900000,90.40943036905179],[1641382200000,90.44440485959252],[1641382500000,90.56780553381476],[1641382800000,90.48764892874493],[1641383100000,90.43074540868402],[1641383400000,90.5824447657499],[1641383700000,90.75651845816108],[1641384000000,91.19129668341742],[1641384300000,91.30137800504376],[1641384600000,91.46162503560384],[1641384900000,91.52540822558933],[1641385200000,91.52876079347399],[1641385500000,91.37858486175537],[1641385800000,91.46291462315453],[1641386100000,91.6234224548553],[1641386400000,91.51284049881829],[1641386700000,91.34657513300577],[1641387000000,91.42922646506538],[1641387300000,91.48473983208338],[1641387600000,91.28626111762391],[1641387900000,91.35474940248662],[1641388200000,91.17215468039116],[1641388500000,91.25213211476803],[1641388800000,91.25759713401398],[1641389100000,91.35257386300299],[1641389400000,91.02812589252933],[1641389700000,91.41853598842408],[1641390000000,91.45897751119402],[1641390300000,91.62772102196124],[1641390600000,92.20752756860522],[1641390900000,92.29176454703901],[1641391200000,92.58568714596228],[1641391500000,92.64857687950135],[1641391800000,91.60252126235535],[1641392100000,92.07325382232666],[1641392400000,92.56517137951322],[1641392700000,92.6158628010883],[1641393000000,92.5046836535136],[1641393300000,92.47737197875976],[1641393600000,92.51129247097487],[1641393900000,92.55673711564806],[1641394200000,92.4507606877221],[1641394500000,92.44528956943088],[1641394800000,92.44404655328675],[1641395100000,92.43119719315644],[1641395400000,92.30592030169917],[1641395700000,92.04047742731431],[1641396000000,92.18200544774885],[1641396300000,92.25607670054717],[1641396600000,91.95815483729045],[1641396900000,92.20461293226163],[1641397200000,92.25607823764577],[1641397500000,92.19817066192627],[1641397800000,91.98498399678398],[1641398100000,91.95959983739783],[1641398400000,91.947825273554],[1641398700000,92.10948289702921],[1641399000000,92.04185757076038],[1641399300000,91.99625027673484],[1641399600000,92.1873156643478],[1641399900000,92.06891627592199],[1641400200000,92.17572241951437],[1641400500000,91.928531702827],[1641400800000,91.89875818420859],[1641401100000,92.02493725944967],[1641401400000,92.05820066304435],[1641401700000,91.9271954985226],[1641402000000,92.21116073879264],[1641402300000,92.11612153333776],[1641402600000,92.07739142810597],[1641402900000,91.63052563695513],[1641403200000,91.95567397510304],[1641403500000,91.87723540137796],[1641403800000,91.80574440114638],[1641404100000,91.37614344428567],[1641404400000,91.52692311755298],[1641404700000,91.58393126442319],[1641405000000,91.55885541791747],[1641405300000,91.63297178605023],[1641405600000,91.85666959425983],[1641405900000,91.84757611330818],[1641406200000,91.82785610872156],[1641406500000,91.6926298085381],[1641406800000,91.80897698682897],[1641407100000,91.81487545406117],[1641407400000,91.71996014258441],[1641407700000,91.63284342387725],[1641408000000,91.92274656856762],[1641408300000,91.913872831008],[1641408600000,91.91599021799423],[1641408900000,91.81734533029444],[1641409200000,91.90980803545783],[1641409500000,91.9293529959286],[1641409800000,91.99156124171088],[1641410100000,91.71573756855621],[1641410400000,91.9281431422514],[1641410700000,92.04222091787001],[1641411000000,91.9644570237786],[1641411300000,91.7861502198612],[1641411600000,91.96730526194852],[1641411900000,92.00860683216769],[1641412200000,92.20460202708047],[1641412500000,91.79860701841467],[1641412800000,91.95550877066219],[1641413100000,92.0970712886137],[1641413400000,92.0148691962747],[1641413700000,91.72668684900334],[1641414000000,91.96204021958744],[1641414300000,91.96983540058136],[1641414600000,92.03032063309257],[1641414900000,92.10227399152868],[1641415200000,91.90314974264409],[1641415500000,92.18463599261115],[1641415800000,92.18319775508],[1641416100000,92.2249844382791],[1641416400000,91.9113616438473],[1641416700000,92.12212062162511],[1641417000000,92.08930573378794],[1641417300000,92.14093544342938],[1641417600000,91.99144462136661],[1641417900000,92.34971699434168],[1641418200000,92.21405573202524],[1641418500000,92.2182962810292],[1641418800000,92.11484740481657],[1641419100000,92.27965920392205],[1641419400000,92.27074483983657],[1641419700000,92.33734947125588],[1641420000000,91.9694701419157],[1641420300000,92.29670916164622],[1641420600000,92.16346239202163],[1641420900000,92.12477345747106],[1641421200000,91.96223023980856],[1641421500000,92.33720078748816],[1641421800000,92.25890328898232],[1641422100000,92.5078399251904],[1641422400000,92.05760524399888],[1641422700000,92.10845380421927],[1641423000000,91.96173074691606],[1641423300000,92.17273982459977],[1641423600000,92.17949648885165],[1641423900000,92.03903611595109],[1641424200000,92.1200080647188],[1641424500000,92.17361622978659],[1641424800000,92.22343405555276],[1641425100000,92.09595156837912],[1641425400000,92.2483305426205],[1641425700000,92.29114520129035],[1641426000000,92.26668053795309],[1641426300000,92.0330425022605],[1641426600000,92.2522668726304],[1641426900000,92.32077056660371],[1641427200000,92.19796084796681],[1641427500000,91.91657638831957],[1641427800000,92.21110992656696],[1641428100000,92.22914677788229],[1641428400000,92.17648312624763],[1641428700000,91.87432740983509],[1641429000000,92.17954061592326],[1641429300000,92.28655851347156],[1641429600000,92.26399639354032],[1641429900000,92.05671568477855],[1641430200000,92.57754687873684]],\"expression\":\"system.cpu.idle{*}\",\"unit\":[{\"family\":\"percentage\",\"scale_factor\":1,\"name\":\"percent\",\"short_name\":\"%\",\"plural\":\"percent\",\"id\":17},null],\"display_name\":\"system.cpu.idle\"}],\"to_date\":1641430252000,\"query\":\"system.cpu.idle{*}\",\"message\":\"\",\"res_type\":\"time_series\",\"times\":[],\"from_date\":1641343852000,\"group_by\":[],\"values\":[]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:52 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/query?from=1641343852&to=1641430252&query=system.cpu.idle%7B%2A%7D" + }, + "response": { + "body": { + "string": "{\"status\":\"ok\",\"resp_version\":1,\"series\":[{\"end\":1641430499000,\"attributes\":{},\"metric\":\"system.cpu.idle\",\"interval\":300,\"tag_set\":[],\"start\":1641344100000,\"length\":288,\"query_index\":0,\"aggr\":null,\"scope\":\"*\",\"pointlist\":[[1641344100000,91.4583840476142],[1641344400000,91.5041914039484],[1641344700000,91.5031727472941],[1641345000000,91.39889285551104],[1641345300000,91.47619551653302],[1641345600000,91.64146314991845],[1641345900000,91.64735362264845],[1641346200000,91.55526781082153],[1641346500000,91.6371850013733],[1641346800000,91.68250057962206],[1641347100000,91.60082637998792],[1641347400000,91.4950697009124],[1641347700000,91.64827139017969],[1641348000000,91.64833300908407],[1641348300000,91.60905449845818],[1641348600000,91.56596363323361],[1641348900000,91.63685929510328],[1641349200000,91.64933202519764],[1641349500000,91.6107414714451],[1641349800000,91.40454476409488],[1641350100000,91.59469479454889],[1641350400000,91.67022712495591],[1641350700000,91.604996670617],[1641351000000,91.47990549405417],[1641351300000,91.69391924540201],[1641351600000,91.62421916590796],[1641351900000,91.5023226434174],[1641352200000,91.5819918030467],[1641352500000,91.32184710237715],[1641352800000,91.61898436016507],[1641353100000,91.45793066131935],[1641353400000,91.47088284438915],[1641353700000,91.54457744855559],[1641354000000,91.45134286960187],[1641354300000,91.29632735651964],[1641354600000,91.58744257537413],[1641354900000,91.57655964692434],[1641355200000,91.57526417838203],[1641355500000,91.49192513889737],[1641355800000,91.70287729774773],[1641356100000,91.6411153263516],[1641356400000,91.62927407977962],[1641356700000,91.46810295846727],[1641357000000,91.60543678071764],[1641357300000,91.82811136352284],[1641357600000,91.64562135802375],[1641357900000,91.62629457967859],[1641358200000,91.83713339699639],[1641358500000,91.8269237306383],[1641358800000,91.51536819372285],[1641359100000,91.8249406920539],[1641359400000,91.78771849738227],[1641359700000,91.76375472212636],[1641360000000,91.63237387869093],[1641360300000,91.88244188096789],[1641360600000,91.79242520862155],[1641360900000,91.93073253525036],[1641361200000,91.67918115191989],[1641361500000,91.79578322938035],[1641361800000,91.83651844130623],[1641362100000,91.71130581961738],[1641362400000,91.75250519381629],[1641362700000,91.8158536169264],[1641363000000,91.81006436612871],[1641363300000,91.59950379265679],[1641363600000,91.83079908688863],[1641363900000,91.87493492762248],[1641364200000,91.82101196712918],[1641364500000,91.64744385660694],[1641364800000,91.83770509295994],[1641365100000,91.9685140838198],[1641365400000,91.7531249417199],[1641365700000,91.67300949949126],[1641366000000,91.79345592127906],[1641366300000,91.73485231929355],[1641366600000,91.55070868598091],[1641366900000,91.55139268650098],[1641367200000,91.78447139528063],[1641367500000,91.80046057171292],[1641367800000,91.5173837767707],[1641368100000,91.61783748732672],[1641368400000,91.54000244565661],[1641368700000,91.63637002838982],[1641369000000,91.41091106732686],[1641369300000,91.66854822702248],[1641369600000,91.61027587254843],[1641369900000,91.8198676082675],[1641370200000,91.48600738578372],[1641370500000,91.65683332901428],[1641370800000,91.58071227555864],[1641371100000,91.75540946981761],[1641371400000,91.40112875302633],[1641371700000,91.64639356815616],[1641372000000,91.61510000814938],[1641372300000,91.72173411051432],[1641372600000,91.62555447684394],[1641372900000,91.79817406958041],[1641373200000,91.74562991725074],[1641373500000,91.86465620458796],[1641373800000,91.24777637248238],[1641374100000,91.28208885478476],[1641374400000,91.72878638108571],[1641374700000,91.80307694541084],[1641375000000,91.70750335057576],[1641375300000,91.61170747426635],[1641375600000,91.72786082956526],[1641375900000,91.69985788228125],[1641376200000,91.70830994711982],[1641376500000,91.42228098445469],[1641376800000,91.53042177624172],[1641377100000,91.45339036920217],[1641377400000,91.4914351346433],[1641377700000,91.49156963800391],[1641378000000,91.1925335463199],[1641378300000,91.5098435515512],[1641378600000,91.44923543930054],[1641378900000,91.38144797153687],[1641379200000,91.37314377970702],[1641379500000,91.07517932380378],[1641379800000,91.38893212153259],[1641380100000,91.48836210038927],[1641380400000,91.35306127866109],[1641380700000,91.41644689771864],[1641381000000,90.70442303137646],[1641381300000,90.5452809771209],[1641381600000,90.44131157826112],[1641381900000,90.40943036905179],[1641382200000,90.44440485959252],[1641382500000,90.56780553381476],[1641382800000,90.48764892874493],[1641383100000,90.43074540868402],[1641383400000,90.5824447657499],[1641383700000,90.75651845816108],[1641384000000,91.19129668341742],[1641384300000,91.30137800504376],[1641384600000,91.46162503560384],[1641384900000,91.52540822558933],[1641385200000,91.52876079347399],[1641385500000,91.37858486175537],[1641385800000,91.46291462315453],[1641386100000,91.6234224548553],[1641386400000,91.51284049881829],[1641386700000,91.34657513300577],[1641387000000,91.42922646506538],[1641387300000,91.48473983208338],[1641387600000,91.28626111762391],[1641387900000,91.35474940248662],[1641388200000,91.17215468039116],[1641388500000,91.25213211476803],[1641388800000,91.25759713401398],[1641389100000,91.35257386300299],[1641389400000,91.02812589252933],[1641389700000,91.41853598842408],[1641390000000,91.45897751119402],[1641390300000,91.62772102196124],[1641390600000,92.20752756860522],[1641390900000,92.29176454703901],[1641391200000,92.58568714596228],[1641391500000,92.64857687950135],[1641391800000,91.60252126235535],[1641392100000,92.07325382232666],[1641392400000,92.56517137951322],[1641392700000,92.6158628010883],[1641393000000,92.5046836535136],[1641393300000,92.47737197875976],[1641393600000,92.51129247097487],[1641393900000,92.55673711564806],[1641394200000,92.4507606877221],[1641394500000,92.44528956943088],[1641394800000,92.44404655328675],[1641395100000,92.43119719315644],[1641395400000,92.30592030169917],[1641395700000,92.04047742731431],[1641396000000,92.18200544774885],[1641396300000,92.25607670054717],[1641396600000,91.95815483729045],[1641396900000,92.20461293226163],[1641397200000,92.25607823764577],[1641397500000,92.19817066192627],[1641397800000,91.98498399678398],[1641398100000,91.95959983739783],[1641398400000,91.947825273554],[1641398700000,92.10948289702921],[1641399000000,92.04185757076038],[1641399300000,91.99625027673484],[1641399600000,92.1873156643478],[1641399900000,92.06891627592199],[1641400200000,92.17572241951437],[1641400500000,91.928531702827],[1641400800000,91.89875818420859],[1641401100000,92.02493725944967],[1641401400000,92.05820066304435],[1641401700000,91.9271954985226],[1641402000000,92.21116073879264],[1641402300000,92.11612153333776],[1641402600000,92.07739142810597],[1641402900000,91.63052563695513],[1641403200000,91.95567397510304],[1641403500000,91.87723540137796],[1641403800000,91.80574440114638],[1641404100000,91.37614344428567],[1641404400000,91.52692311755298],[1641404700000,91.58393126442319],[1641405000000,91.55885541791747],[1641405300000,91.63297178605023],[1641405600000,91.85666959425983],[1641405900000,91.84757611330818],[1641406200000,91.82785610872156],[1641406500000,91.6926298085381],[1641406800000,91.80897698682897],[1641407100000,91.81487545406117],[1641407400000,91.71996014258441],[1641407700000,91.63284342387725],[1641408000000,91.92274656856762],[1641408300000,91.913872831008],[1641408600000,91.91599021799423],[1641408900000,91.81734533029444],[1641409200000,91.90980803545783],[1641409500000,91.9293529959286],[1641409800000,91.99156124171088],[1641410100000,91.71573756855621],[1641410400000,91.9281431422514],[1641410700000,92.04222091787001],[1641411000000,91.9644570237786],[1641411300000,91.7861502198612],[1641411600000,91.96730526194852],[1641411900000,92.00860683216769],[1641412200000,92.20460202708047],[1641412500000,91.79860701841467],[1641412800000,91.95550877066219],[1641413100000,92.0970712886137],[1641413400000,92.0148691962747],[1641413700000,91.72668684900334],[1641414000000,91.96204021958744],[1641414300000,91.96983540058136],[1641414600000,92.03032063309257],[1641414900000,92.10227399152868],[1641415200000,91.90314974264409],[1641415500000,92.18463599261115],[1641415800000,92.18319775508],[1641416100000,92.2249844382791],[1641416400000,91.9113616438473],[1641416700000,92.12212062162511],[1641417000000,92.08930573378794],[1641417300000,92.14093544342938],[1641417600000,91.99144462136661],[1641417900000,92.34971699434168],[1641418200000,92.21405573202524],[1641418500000,92.2182962810292],[1641418800000,92.11484740481657],[1641419100000,92.27965920392205],[1641419400000,92.27074483983657],[1641419700000,92.33734947125588],[1641420000000,91.9694701419157],[1641420300000,92.29670916164622],[1641420600000,92.16346239202163],[1641420900000,92.12477345747106],[1641421200000,91.96223023980856],[1641421500000,92.33720078748816],[1641421800000,92.25890328898232],[1641422100000,92.5078399251904],[1641422400000,92.05760524399888],[1641422700000,92.10845380421927],[1641423000000,91.96173074691606],[1641423300000,92.17273982459977],[1641423600000,92.17949648885165],[1641423900000,92.03903611595109],[1641424200000,92.1200080647188],[1641424500000,92.17361622978659],[1641424800000,92.22343405555276],[1641425100000,92.09595156837912],[1641425400000,92.2483305426205],[1641425700000,92.29114520129035],[1641426000000,92.26668053795309],[1641426300000,92.0330425022605],[1641426600000,92.2522668726304],[1641426900000,92.32077056660371],[1641427200000,92.19796084796681],[1641427500000,91.91657638831957],[1641427800000,92.21110992656696],[1641428100000,92.22914677788229],[1641428400000,92.17648312624763],[1641428700000,91.87432740983509],[1641429000000,92.17954061592326],[1641429300000,92.28655851347156],[1641429600000,92.26399639354032],[1641429900000,92.05671568477855],[1641430200000,92.57754687873684]],\"expression\":\"system.cpu.idle{*}\",\"unit\":[{\"family\":\"percentage\",\"scale_factor\":1,\"name\":\"percent\",\"short_name\":\"%\",\"plural\":\"percent\",\"id\":17},null],\"display_name\":\"system.cpu.idle\"}],\"to_date\":1641430252000,\"query\":\"system.cpu.idle{*}\",\"message\":\"\",\"res_type\":\"time_series\",\"times\":[],\"from_date\":1641343852000,\"group_by\":[],\"values\":[]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:52 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/metrics/Submit-metrics-returns-Payload-accepted-response.json b/tests/scenarios/cassettes/v1/metrics/Submit-metrics-returns-Payload-accepted-response.json index 6aaaff67f..a541b749a 100644 --- a/tests/scenarios/cassettes/v1/metrics/Submit-metrics-returns-Payload-accepted-response.json +++ b/tests/scenarios/cassettes/v1/metrics/Submit-metrics-returns-Payload-accepted-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"series\":[{\"metric\":\"system.load.1\",\"points\":[[1652349005,1.1]],\"tags\":[\"test:TestSubmitmetricsreturnsPayloadacceptedresponse1652349005\"],\"type\":\"gauge\"}]}", "encoding": null}, "headers": {"Accept": ["text/json, application/json"], "Content-Type": ["text/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/series"}, "response": {"body": {"string": "{\"status\": \"ok\"}", "encoding": null}, "headers": {"Content-Type": ["text/json"]}, "status": {"code": 202, "message": "Accepted"}}, "recorded_at": "Thu, 12 May 2022 09:50:05 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"series\":[{\"metric\":\"system.load.1\",\"points\":[[1652349005,1.1]],\"tags\":[\"test:TestSubmitmetricsreturnsPayloadacceptedresponse1652349005\"],\"type\":\"gauge\"}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "text/json, application/json" + ], + "Content-Type": [ + "text/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/series" + }, + "response": { + "body": { + "string": "{\"status\": \"ok\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/json" + ] + }, + "status": { + "code": 202, + "message": "Accepted" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:05 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/monitors/Check-if-a-monitor-can-be-deleted-returns-OK-response.json b/tests/scenarios/cassettes/v1/monitors/Check-if-a-monitor-can-be-deleted-returns-OK-response.json index cf685ccd3..15a2825af 100644 --- a/tests/scenarios/cassettes/v1/monitors/Check-if-a-monitor-can-be-deleted-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/monitors/Check-if-a-monitor-can-be-deleted-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Check_if_a_monitor_can_be_deleted_returns_OK_response-1674067038\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2,\"warning\":1},\"timeout_h\":24},\"priority\":3,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"tags\":[\"test:testcheckifamonitorcanbedeletedreturnsokresponse1674067038\",\"env:ci\"],\"type\":\"log alert\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/monitor"}, "response": {"body": {"string": "{\"id\":108260302,\"org_id\":321813,\"type\":\"log alert\",\"name\":\"Test-Check_if_a_monitor_can_be_deleted_returns_OK_response-1674067038\",\"message\":\"some message Notify: @hipchat-channel\",\"tags\":[\"test:testcheckifamonitorcanbedeletedreturnsokresponse1674067038\",\"env:ci\"],\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2.0,\"warning\":1.0},\"timeout_h\":24,\"silenced\":{}},\"multi\":true,\"created_at\":1674067038000,\"created\":\"2023-01-18T18:37:18.431658+00:00\",\"modified\":\"2023-01-18T18:37:18.431658+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"id\":1445416}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 18 Jan 2023 18:37:18 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/monitor/can_delete?monitor_ids=108260302"}, "response": {"body": {"string": "{\"data\":{\"ok\":[108260302]},\"errors\":null}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 18 Jan 2023 18:37:18 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/monitor/108260302"}, "response": {"body": {"string": "{\"deleted_monitor_id\":108260302}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 18 Jan 2023 18:37:18 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Check_if_a_monitor_can_be_deleted_returns_OK_response-1674067038\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2,\"warning\":1},\"timeout_h\":24},\"priority\":3,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"tags\":[\"test:testcheckifamonitorcanbedeletedreturnsokresponse1674067038\",\"env:ci\"],\"type\":\"log alert\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/monitor" + }, + "response": { + "body": { + "string": "{\"id\":108260302,\"org_id\":321813,\"type\":\"log alert\",\"name\":\"Test-Check_if_a_monitor_can_be_deleted_returns_OK_response-1674067038\",\"message\":\"some message Notify: @hipchat-channel\",\"tags\":[\"test:testcheckifamonitorcanbedeletedreturnsokresponse1674067038\",\"env:ci\"],\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2.0,\"warning\":1.0},\"timeout_h\":24,\"silenced\":{}},\"multi\":true,\"created_at\":1674067038000,\"created\":\"2023-01-18T18:37:18.431658+00:00\",\"modified\":\"2023-01-18T18:37:18.431658+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"id\":1445416}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 18 Jan 2023 18:37:18 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/monitor/can_delete?monitor_ids=108260302" + }, + "response": { + "body": { + "string": "{\"data\":{\"ok\":[108260302]},\"errors\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 18 Jan 2023 18:37:18 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/monitor/108260302" + }, + "response": { + "body": { + "string": "{\"deleted_monitor_id\":108260302}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 18 Jan 2023 18:37:18 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/monitors/Create-a-RUM-formula-and-functions-monitor-returns-OK-response.json b/tests/scenarios/cassettes/v1/monitors/Create-a-RUM-formula-and-functions-monitor-returns-OK-response.json index 0cbb2faeb..f2b694fee 100644 --- a/tests/scenarios/cassettes/v1/monitors/Create-a-RUM-formula-and-functions-monitor-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/monitors/Create-a-RUM-formula-and-functions-monitor-returns-OK-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Create_a_RUM_formula_and_functions_monitor_returns_OK_response-1643835850\",\"options\":{\"thresholds\":{\"critical\":0.8},\"variables\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"rum\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query2\",\"search\":{\"query\":\"\"}},{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"rum\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query1\",\"search\":{\"query\":\"status:error\"}}]},\"priority\":3,\"query\":\"formula(\\\"query2 / query1 * 100\\\").last(\\\"15m\\\") >= 0.8\",\"tags\":[\"test:testcreatearumformulaandfunctionsmonitorreturnsokresponse1643835850\",\"env:ci\"],\"type\":\"rum alert\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/monitor"}, "response": {"body": {"string": "{\"restricted_roles\":null,\"tags\":[\"test:testcreatearumformulaandfunctionsmonitorreturnsokresponse1643835850\",\"env:ci\"],\"deleted\":null,\"query\":\"formula(\\\"query2 / query1 * 100\\\").last(\\\"15m\\\") >= 0.8\",\"message\":\"some message Notify: @hipchat-channel\",\"id\":62683819,\"multi\":false,\"name\":\"Test-Create_a_RUM_formula_and_functions_monitor_returns_OK_response-1643835850\",\"created\":\"2022-02-02T21:04:10.947341+00:00\",\"created_at\":1643835850000,\"creator\":{\"id\":1445416,\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"org_id\":321813,\"modified\":\"2022-02-02T21:04:10.947341+00:00\",\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"type\":\"rum alert\",\"options\":{\"notify_audit\":false,\"locked\":false,\"silenced\":{},\"include_tags\":true,\"thresholds\":{\"critical\":0.8},\"new_host_delay\":300,\"notify_no_data\":false,\"groupby_simple_monitor\":false,\"variables\":[{\"search\":{\"query\":\"\"},\"data_source\":\"rum\",\"compute\":{\"aggregation\":\"count\"},\"name\":\"query2\",\"indexes\":[\"*\"],\"group_by\":[]},{\"search\":{\"query\":\"status:error\"},\"data_source\":\"rum\",\"compute\":{\"aggregation\":\"count\"},\"name\":\"query1\",\"indexes\":[\"*\"],\"group_by\":[]}]}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 02 Feb 2022 21:04:10 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/monitor/62683819"}, "response": {"body": {"string": "{\"deleted_monitor_id\":62683819}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 02 Feb 2022 21:04:10 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Create_a_RUM_formula_and_functions_monitor_returns_OK_response-1643835850\",\"options\":{\"thresholds\":{\"critical\":0.8},\"variables\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"rum\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query2\",\"search\":{\"query\":\"\"}},{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"rum\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query1\",\"search\":{\"query\":\"status:error\"}}]},\"priority\":3,\"query\":\"formula(\\\"query2 / query1 * 100\\\").last(\\\"15m\\\") >= 0.8\",\"tags\":[\"test:testcreatearumformulaandfunctionsmonitorreturnsokresponse1643835850\",\"env:ci\"],\"type\":\"rum alert\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/monitor" + }, + "response": { + "body": { + "string": "{\"restricted_roles\":null,\"tags\":[\"test:testcreatearumformulaandfunctionsmonitorreturnsokresponse1643835850\",\"env:ci\"],\"deleted\":null,\"query\":\"formula(\\\"query2 / query1 * 100\\\").last(\\\"15m\\\") >= 0.8\",\"message\":\"some message Notify: @hipchat-channel\",\"id\":62683819,\"multi\":false,\"name\":\"Test-Create_a_RUM_formula_and_functions_monitor_returns_OK_response-1643835850\",\"created\":\"2022-02-02T21:04:10.947341+00:00\",\"created_at\":1643835850000,\"creator\":{\"id\":1445416,\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"org_id\":321813,\"modified\":\"2022-02-02T21:04:10.947341+00:00\",\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"type\":\"rum alert\",\"options\":{\"notify_audit\":false,\"locked\":false,\"silenced\":{},\"include_tags\":true,\"thresholds\":{\"critical\":0.8},\"new_host_delay\":300,\"notify_no_data\":false,\"groupby_simple_monitor\":false,\"variables\":[{\"search\":{\"query\":\"\"},\"data_source\":\"rum\",\"compute\":{\"aggregation\":\"count\"},\"name\":\"query2\",\"indexes\":[\"*\"],\"group_by\":[]},{\"search\":{\"query\":\"status:error\"},\"data_source\":\"rum\",\"compute\":{\"aggregation\":\"count\"},\"name\":\"query1\",\"indexes\":[\"*\"],\"group_by\":[]}]}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 02 Feb 2022 21:04:10 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/monitor/62683819" + }, + "response": { + "body": { + "string": "{\"deleted_monitor_id\":62683819}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 02 Feb 2022 21:04:10 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/monitors/Create-a-ci-pipelines-formula-and-functions-monitor-returns-OK-response.json b/tests/scenarios/cassettes/v1/monitors/Create-a-ci-pipelines-formula-and-functions-monitor-returns-OK-response.json index 04c334446..e1c31f3c5 100644 --- a/tests/scenarios/cassettes/v1/monitors/Create-a-ci-pipelines-formula-and-functions-monitor-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/monitors/Create-a-ci-pipelines-formula-and-functions-monitor-returns-OK-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Create_a_ci_pipelines_formula_and_functions_monitor_returns_OK_response-1647960862\",\"options\":{\"thresholds\":{\"critical\":0.8},\"variables\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"ci_pipelines\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query1\",\"search\":{\"query\":\"@ci.status:error\"}},{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"ci_pipelines\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query2\",\"search\":{\"query\":\"\"}}]},\"priority\":3,\"query\":\"formula(\\\"query1 / query2 * 100\\\").last(\\\"15m\\\") >= 0.8\",\"tags\":[\"test:testcreateacipipelinesformulaandfunctionsmonitorreturnsokresponse1647960862\",\"env:ci\"],\"type\":\"ci-pipelines alert\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/monitor"}, "response": {"body": {"string": "{\"restricted_roles\":null,\"tags\":[\"test:testcreateacipipelinesformulaandfunctionsmonitorreturnsokresponse1647960862\",\"env:ci\"],\"deleted\":null,\"query\":\"formula(\\\"query1 / query2 * 100\\\").last(\\\"15m\\\") >= 0.8\",\"message\":\"some message Notify: @hipchat-channel\",\"id\":66627974,\"multi\":false,\"name\":\"Test-Create_a_ci_pipelines_formula_and_functions_monitor_returns_OK_response-1647960862\",\"created\":\"2022-03-22T14:54:23.352659+00:00\",\"created_at\":1647960863000,\"creator\":{\"id\":1445416,\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"org_id\":321813,\"modified\":\"2022-03-22T14:54:23.352659+00:00\",\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"type\":\"ci-pipelines alert\",\"options\":{\"notify_audit\":false,\"silenced\":{},\"include_tags\":true,\"thresholds\":{\"critical\":0.8},\"new_host_delay\":300,\"notify_no_data\":false,\"groupby_simple_monitor\":false,\"variables\":[{\"search\":{\"query\":\"@ci.status:error\"},\"data_source\":\"ci_pipelines\",\"compute\":{\"aggregation\":\"count\"},\"name\":\"query1\",\"indexes\":[\"*\"],\"group_by\":[]},{\"search\":{\"query\":\"\"},\"data_source\":\"ci_pipelines\",\"compute\":{\"aggregation\":\"count\"},\"name\":\"query2\",\"indexes\":[\"*\"],\"group_by\":[]}]}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 22 Mar 2022 14:54:22 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/monitor/66627974"}, "response": {"body": {"string": "{\"deleted_monitor_id\":66627974}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 22 Mar 2022 14:54:22 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Create_a_ci_pipelines_formula_and_functions_monitor_returns_OK_response-1647960862\",\"options\":{\"thresholds\":{\"critical\":0.8},\"variables\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"ci_pipelines\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query1\",\"search\":{\"query\":\"@ci.status:error\"}},{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"ci_pipelines\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query2\",\"search\":{\"query\":\"\"}}]},\"priority\":3,\"query\":\"formula(\\\"query1 / query2 * 100\\\").last(\\\"15m\\\") >= 0.8\",\"tags\":[\"test:testcreateacipipelinesformulaandfunctionsmonitorreturnsokresponse1647960862\",\"env:ci\"],\"type\":\"ci-pipelines alert\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/monitor" + }, + "response": { + "body": { + "string": "{\"restricted_roles\":null,\"tags\":[\"test:testcreateacipipelinesformulaandfunctionsmonitorreturnsokresponse1647960862\",\"env:ci\"],\"deleted\":null,\"query\":\"formula(\\\"query1 / query2 * 100\\\").last(\\\"15m\\\") >= 0.8\",\"message\":\"some message Notify: @hipchat-channel\",\"id\":66627974,\"multi\":false,\"name\":\"Test-Create_a_ci_pipelines_formula_and_functions_monitor_returns_OK_response-1647960862\",\"created\":\"2022-03-22T14:54:23.352659+00:00\",\"created_at\":1647960863000,\"creator\":{\"id\":1445416,\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"org_id\":321813,\"modified\":\"2022-03-22T14:54:23.352659+00:00\",\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"type\":\"ci-pipelines alert\",\"options\":{\"notify_audit\":false,\"silenced\":{},\"include_tags\":true,\"thresholds\":{\"critical\":0.8},\"new_host_delay\":300,\"notify_no_data\":false,\"groupby_simple_monitor\":false,\"variables\":[{\"search\":{\"query\":\"@ci.status:error\"},\"data_source\":\"ci_pipelines\",\"compute\":{\"aggregation\":\"count\"},\"name\":\"query1\",\"indexes\":[\"*\"],\"group_by\":[]},{\"search\":{\"query\":\"\"},\"data_source\":\"ci_pipelines\",\"compute\":{\"aggregation\":\"count\"},\"name\":\"query2\",\"indexes\":[\"*\"],\"group_by\":[]}]}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 22 Mar 2022 14:54:22 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/monitor/66627974" + }, + "response": { + "body": { + "string": "{\"deleted_monitor_id\":66627974}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 22 Mar 2022 14:54:22 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/monitors/Create-a-ci-pipelines-monitor-returns-OK-response.json b/tests/scenarios/cassettes/v1/monitors/Create-a-ci-pipelines-monitor-returns-OK-response.json index 52a195e07..ef283d068 100644 --- a/tests/scenarios/cassettes/v1/monitors/Create-a-ci-pipelines-monitor-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/monitors/Create-a-ci-pipelines-monitor-returns-OK-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Create_a_ci_pipelines_monitor_returns_OK_response-1641430253\",\"options\":{\"thresholds\":{\"critical\":1}},\"priority\":3,\"query\":\"ci-pipelines(\\\"ci_level:pipeline @git.branch:staging* @ci.status:error\\\").rollup(\\\"count\\\").by(\\\"@git.branch,@ci.pipeline.name\\\").last(\\\"5m\\\") >= 1\",\"tags\":[\"test:testcreateacipipelinesmonitorreturnsokresponse1641430253\",\"env:ci\"],\"type\":\"ci-pipelines alert\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/monitor"}, "response": {"body": {"string": "{\"restricted_roles\":null,\"tags\":[\"test:testcreateacipipelinesmonitorreturnsokresponse1641430253\",\"env:ci\"],\"deleted\":null,\"query\":\"ci-pipelines(\\\"ci_level:pipeline @git.branch:staging* @ci.status:error\\\").rollup(\\\"count\\\").by(\\\"@git.branch,@ci.pipeline.name\\\").last(\\\"5m\\\") >= 1\",\"message\":\"some message Notify: @hipchat-channel\",\"id\":59800609,\"multi\":true,\"name\":\"Test-Create_a_ci_pipelines_monitor_returns_OK_response-1641430253\",\"created\":\"2022-01-06T00:50:54.050585+00:00\",\"created_at\":1641430254000,\"creator\":{\"id\":1445416,\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"org_id\":321813,\"modified\":\"2022-01-06T00:50:54.050585+00:00\",\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"type\":\"ci-pipelines alert\",\"options\":{\"notify_audit\":false,\"locked\":false,\"silenced\":{},\"include_tags\":true,\"thresholds\":{\"critical\":1},\"new_host_delay\":300,\"notify_no_data\":false,\"groupby_simple_monitor\":false}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:53 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/monitor/59800609"}, "response": {"body": {"string": "{\"deleted_monitor_id\":59800609}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:53 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Create_a_ci_pipelines_monitor_returns_OK_response-1641430253\",\"options\":{\"thresholds\":{\"critical\":1}},\"priority\":3,\"query\":\"ci-pipelines(\\\"ci_level:pipeline @git.branch:staging* @ci.status:error\\\").rollup(\\\"count\\\").by(\\\"@git.branch,@ci.pipeline.name\\\").last(\\\"5m\\\") >= 1\",\"tags\":[\"test:testcreateacipipelinesmonitorreturnsokresponse1641430253\",\"env:ci\"],\"type\":\"ci-pipelines alert\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/monitor" + }, + "response": { + "body": { + "string": "{\"restricted_roles\":null,\"tags\":[\"test:testcreateacipipelinesmonitorreturnsokresponse1641430253\",\"env:ci\"],\"deleted\":null,\"query\":\"ci-pipelines(\\\"ci_level:pipeline @git.branch:staging* @ci.status:error\\\").rollup(\\\"count\\\").by(\\\"@git.branch,@ci.pipeline.name\\\").last(\\\"5m\\\") >= 1\",\"message\":\"some message Notify: @hipchat-channel\",\"id\":59800609,\"multi\":true,\"name\":\"Test-Create_a_ci_pipelines_monitor_returns_OK_response-1641430253\",\"created\":\"2022-01-06T00:50:54.050585+00:00\",\"created_at\":1641430254000,\"creator\":{\"id\":1445416,\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"org_id\":321813,\"modified\":\"2022-01-06T00:50:54.050585+00:00\",\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"type\":\"ci-pipelines alert\",\"options\":{\"notify_audit\":false,\"locked\":false,\"silenced\":{},\"include_tags\":true,\"thresholds\":{\"critical\":1},\"new_host_delay\":300,\"notify_no_data\":false,\"groupby_simple_monitor\":false}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:53 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/monitor/59800609" + }, + "response": { + "body": { + "string": "{\"deleted_monitor_id\":59800609}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:53 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/monitors/Create-a-ci-tests-formula-and-functions-monitor-returns-OK-response.json b/tests/scenarios/cassettes/v1/monitors/Create-a-ci-tests-formula-and-functions-monitor-returns-OK-response.json index 5cff30284..7bfa45384 100644 --- a/tests/scenarios/cassettes/v1/monitors/Create-a-ci-tests-formula-and-functions-monitor-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/monitors/Create-a-ci-tests-formula-and-functions-monitor-returns-OK-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Create_a_ci_tests_formula_and_functions_monitor_returns_OK_response-1652438435\",\"options\":{\"thresholds\":{\"critical\":0.8},\"variables\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"ci_tests\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query1\",\"search\":{\"query\":\"@test.status:fail\"}},{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"ci_tests\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query2\",\"search\":{\"query\":\"\"}}]},\"priority\":3,\"query\":\"formula(\\\"query1 / query2 * 100\\\").last(\\\"15m\\\") >= 0.8\",\"tags\":[\"test:testcreateacitestsformulaandfunctionsmonitorreturnsokresponse1652438435\",\"env:ci\"],\"type\":\"ci-tests alert\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/monitor"}, "response": {"body": {"string": "{\"restricted_roles\":null,\"tags\":[\"test:testcreateacitestsformulaandfunctionsmonitorreturnsokresponse1652438435\",\"env:ci\"],\"deleted\":null,\"query\":\"formula(\\\"query1 / query2 * 100\\\").last(\\\"15m\\\") >= 0.8\",\"message\":\"some message Notify: @hipchat-channel\",\"id\":71427772,\"multi\":false,\"name\":\"Test-Create_a_ci_tests_formula_and_functions_monitor_returns_OK_response-1652438435\",\"created\":\"2022-05-13T10:40:35.341131+00:00\",\"created_at\":1652438435000,\"creator\":{\"id\":1445416,\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"org_id\":321813,\"modified\":\"2022-05-13T10:40:35.341131+00:00\",\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"type\":\"ci-tests alert\",\"options\":{\"notify_audit\":false,\"silenced\":{},\"include_tags\":true,\"thresholds\":{\"critical\":0.8},\"new_host_delay\":300,\"notify_no_data\":false,\"groupby_simple_monitor\":false,\"variables\":[{\"search\":{\"query\":\"@test.status:fail\"},\"data_source\":\"ci_tests\",\"compute\":{\"aggregation\":\"count\"},\"name\":\"query1\",\"indexes\":[\"*\"],\"group_by\":[]},{\"search\":{\"query\":\"\"},\"data_source\":\"ci_tests\",\"compute\":{\"aggregation\":\"count\"},\"name\":\"query2\",\"indexes\":[\"*\"],\"group_by\":[]}]}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 13 May 2022 10:40:35 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/monitor/71427772"}, "response": {"body": {"string": "{\"deleted_monitor_id\":71427772}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 13 May 2022 10:40:35 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Create_a_ci_tests_formula_and_functions_monitor_returns_OK_response-1652438435\",\"options\":{\"thresholds\":{\"critical\":0.8},\"variables\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"ci_tests\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query1\",\"search\":{\"query\":\"@test.status:fail\"}},{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"ci_tests\",\"group_by\":[],\"indexes\":[\"*\"],\"name\":\"query2\",\"search\":{\"query\":\"\"}}]},\"priority\":3,\"query\":\"formula(\\\"query1 / query2 * 100\\\").last(\\\"15m\\\") >= 0.8\",\"tags\":[\"test:testcreateacitestsformulaandfunctionsmonitorreturnsokresponse1652438435\",\"env:ci\"],\"type\":\"ci-tests alert\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/monitor" + }, + "response": { + "body": { + "string": "{\"restricted_roles\":null,\"tags\":[\"test:testcreateacitestsformulaandfunctionsmonitorreturnsokresponse1652438435\",\"env:ci\"],\"deleted\":null,\"query\":\"formula(\\\"query1 / query2 * 100\\\").last(\\\"15m\\\") >= 0.8\",\"message\":\"some message Notify: @hipchat-channel\",\"id\":71427772,\"multi\":false,\"name\":\"Test-Create_a_ci_tests_formula_and_functions_monitor_returns_OK_response-1652438435\",\"created\":\"2022-05-13T10:40:35.341131+00:00\",\"created_at\":1652438435000,\"creator\":{\"id\":1445416,\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"org_id\":321813,\"modified\":\"2022-05-13T10:40:35.341131+00:00\",\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"type\":\"ci-tests alert\",\"options\":{\"notify_audit\":false,\"silenced\":{},\"include_tags\":true,\"thresholds\":{\"critical\":0.8},\"new_host_delay\":300,\"notify_no_data\":false,\"groupby_simple_monitor\":false,\"variables\":[{\"search\":{\"query\":\"@test.status:fail\"},\"data_source\":\"ci_tests\",\"compute\":{\"aggregation\":\"count\"},\"name\":\"query1\",\"indexes\":[\"*\"],\"group_by\":[]},{\"search\":{\"query\":\"\"},\"data_source\":\"ci_tests\",\"compute\":{\"aggregation\":\"count\"},\"name\":\"query2\",\"indexes\":[\"*\"],\"group_by\":[]}]}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 13 May 2022 10:40:35 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/monitor/71427772" + }, + "response": { + "body": { + "string": "{\"deleted_monitor_id\":71427772}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 13 May 2022 10:40:35 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/monitors/Create-a-ci-tests-monitor-returns-OK-response.json b/tests/scenarios/cassettes/v1/monitors/Create-a-ci-tests-monitor-returns-OK-response.json index 270fa0ac5..c41bc83c2 100644 --- a/tests/scenarios/cassettes/v1/monitors/Create-a-ci-tests-monitor-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/monitors/Create-a-ci-tests-monitor-returns-OK-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Create_a_ci_tests_monitor_returns_OK_response-1652800228\",\"options\":{\"thresholds\":{\"critical\":1}},\"priority\":3,\"query\":\"ci-tests(\\\"type:test @git.branch:staging* @test.status:fail\\\").rollup(\\\"count\\\").by(\\\"@test.name\\\").last(\\\"5m\\\") >= 1\",\"tags\":[\"test:testcreateacitestsmonitorreturnsokresponse1652800228\",\"env:ci\"],\"type\":\"ci-tests alert\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/monitor"}, "response": {"body": {"string": "{\"restricted_roles\":null,\"tags\":[\"test:testcreateacitestsmonitorreturnsokresponse1652800228\",\"env:ci\"],\"deleted\":null,\"query\":\"ci-tests(\\\"type:test @git.branch:staging* @test.status:fail\\\").rollup(\\\"count\\\").by(\\\"@test.name\\\").last(\\\"5m\\\") >= 1\",\"message\":\"some message Notify: @hipchat-channel\",\"id\":71774917,\"multi\":true,\"name\":\"Test-Create_a_ci_tests_monitor_returns_OK_response-1652800228\",\"created\":\"2022-05-17T15:10:29.357369+00:00\",\"created_at\":1652800229000,\"creator\":{\"id\":1445416,\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"org_id\":321813,\"modified\":\"2022-05-17T15:10:29.357369+00:00\",\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"type\":\"ci-tests alert\",\"options\":{\"notify_audit\":false,\"silenced\":{},\"include_tags\":true,\"thresholds\":{\"critical\":1.0},\"new_host_delay\":300,\"notify_no_data\":false,\"groupby_simple_monitor\":false}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 17 May 2022 15:10:28 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/monitor/71774917"}, "response": {"body": {"string": "{\"deleted_monitor_id\":71774917}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 17 May 2022 15:10:28 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Create_a_ci_tests_monitor_returns_OK_response-1652800228\",\"options\":{\"thresholds\":{\"critical\":1}},\"priority\":3,\"query\":\"ci-tests(\\\"type:test @git.branch:staging* @test.status:fail\\\").rollup(\\\"count\\\").by(\\\"@test.name\\\").last(\\\"5m\\\") >= 1\",\"tags\":[\"test:testcreateacitestsmonitorreturnsokresponse1652800228\",\"env:ci\"],\"type\":\"ci-tests alert\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/monitor" + }, + "response": { + "body": { + "string": "{\"restricted_roles\":null,\"tags\":[\"test:testcreateacitestsmonitorreturnsokresponse1652800228\",\"env:ci\"],\"deleted\":null,\"query\":\"ci-tests(\\\"type:test @git.branch:staging* @test.status:fail\\\").rollup(\\\"count\\\").by(\\\"@test.name\\\").last(\\\"5m\\\") >= 1\",\"message\":\"some message Notify: @hipchat-channel\",\"id\":71774917,\"multi\":true,\"name\":\"Test-Create_a_ci_tests_monitor_returns_OK_response-1652800228\",\"created\":\"2022-05-17T15:10:29.357369+00:00\",\"created_at\":1652800229000,\"creator\":{\"id\":1445416,\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"org_id\":321813,\"modified\":\"2022-05-17T15:10:29.357369+00:00\",\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"type\":\"ci-tests alert\",\"options\":{\"notify_audit\":false,\"silenced\":{},\"include_tags\":true,\"thresholds\":{\"critical\":1.0},\"new_host_delay\":300,\"notify_no_data\":false,\"groupby_simple_monitor\":false}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 17 May 2022 15:10:28 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/monitor/71774917" + }, + "response": { + "body": { + "string": "{\"deleted_monitor_id\":71774917}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 17 May 2022 15:10:28 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/monitors/Create-a-metric-monitor-returns-OK-response.json b/tests/scenarios/cassettes/v1/monitors/Create-a-metric-monitor-returns-OK-response.json index f95d52eaf..12c30523d 100644 --- a/tests/scenarios/cassettes/v1/monitors/Create-a-metric-monitor-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/monitors/Create-a-metric-monitor-returns-OK-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Create_a_metric_monitor_returns_OK_response-1673258836\",\"options\":{\"scheduling_options\":{\"evaluation_window\":{\"day_starts\":\"04:00\",\"month_starts\":1}},\"thresholds\":{\"critical\":0.5}},\"query\":\"avg(current_1mo):avg:system.load.5{*} > 0.5\",\"type\":\"metric alert\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/monitor"}, "response": {"body": {"string": "{\"id\":107235710,\"org_id\":321813,\"type\":\"query alert\",\"name\":\"Test-Create_a_metric_monitor_returns_OK_response-1673258836\",\"message\":\"some message Notify: @hipchat-channel\",\"tags\":[],\"query\":\"avg(current_1mo):avg:system.load.5{*} > 0.5\",\"options\":{\"scheduling_options\":{\"evaluation_window\":{\"day_starts\":\"04:00\",\"month_starts\":1}},\"thresholds\":{\"critical\":0.5},\"notify_no_data\":false,\"notify_audit\":false,\"new_host_delay\":300,\"include_tags\":true,\"silenced\":{}},\"multi\":false,\"created_at\":1673258836000,\"created\":\"2023-01-09T10:07:16.513455+00:00\",\"modified\":\"2023-01-09T10:07:16.513455+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":null,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"id\":1445416}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 09 Jan 2023 10:07:16 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/monitor/107235710"}, "response": {"body": {"string": "{\"deleted_monitor_id\":107235710}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 09 Jan 2023 10:07:16 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Create_a_metric_monitor_returns_OK_response-1673258836\",\"options\":{\"scheduling_options\":{\"evaluation_window\":{\"day_starts\":\"04:00\",\"month_starts\":1}},\"thresholds\":{\"critical\":0.5}},\"query\":\"avg(current_1mo):avg:system.load.5{*} > 0.5\",\"type\":\"metric alert\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/monitor" + }, + "response": { + "body": { + "string": "{\"id\":107235710,\"org_id\":321813,\"type\":\"query alert\",\"name\":\"Test-Create_a_metric_monitor_returns_OK_response-1673258836\",\"message\":\"some message Notify: @hipchat-channel\",\"tags\":[],\"query\":\"avg(current_1mo):avg:system.load.5{*} > 0.5\",\"options\":{\"scheduling_options\":{\"evaluation_window\":{\"day_starts\":\"04:00\",\"month_starts\":1}},\"thresholds\":{\"critical\":0.5},\"notify_no_data\":false,\"notify_audit\":false,\"new_host_delay\":300,\"include_tags\":true,\"silenced\":{}},\"multi\":false,\"created_at\":1673258836000,\"created\":\"2023-01-09T10:07:16.513455+00:00\",\"modified\":\"2023-01-09T10:07:16.513455+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":null,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"id\":1445416}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 09 Jan 2023 10:07:16 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/monitor/107235710" + }, + "response": { + "body": { + "string": "{\"deleted_monitor_id\":107235710}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 09 Jan 2023 10:07:16 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/monitors/Create-a-metric-monitor-with-a-custom-schedule-returns-OK-response.json b/tests/scenarios/cassettes/v1/monitors/Create-a-metric-monitor-with-a-custom-schedule-returns-OK-response.json index e75eae6a1..dcc41891b 100644 --- a/tests/scenarios/cassettes/v1/monitors/Create-a-metric-monitor-with-a-custom-schedule-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/monitors/Create-a-metric-monitor-with-a-custom-schedule-returns-OK-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Create_a_metric_monitor_with_a_custom_schedule_returns_OK_response-1699552730\",\"options\":{\"include_tags\":false,\"notify_audit\":false,\"scheduling_options\":{\"custom_schedule\":{\"recurrences\":[{\"rrule\":\"FREQ=DAILY;INTERVAL=1\",\"start\":\"2024-10-26T09:13:00\",\"timezone\":\"America/Los_Angeles\"}]},\"evaluation_window\":{\"day_starts\":\"04:00\",\"month_starts\":1}},\"thresholds\":{\"critical\":0.5}},\"query\":\"avg(current_1mo):avg:system.load.5{*} > 0.5\",\"tags\":[],\"type\":\"query alert\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/monitor"}, "response": {"body": {"string": "{\"id\":134549556,\"org_id\":321813,\"type\":\"query alert\",\"name\":\"Test-Create_a_metric_monitor_with_a_custom_schedule_returns_OK_response-1699552730\",\"message\":\"some message Notify: @hipchat-channel\",\"tags\":[],\"query\":\"avg(current_1mo):avg:system.load.5{*} > 0.5\",\"options\":{\"include_tags\":false,\"notify_audit\":false,\"scheduling_options\":{\"custom_schedule\":{\"recurrences\":[{\"rrule\":\"FREQ=DAILY;INTERVAL=1\",\"start\":\"2024-10-26T09:13:00\",\"timezone\":\"America/Los_Angeles\"}]},\"evaluation_window\":{\"day_starts\":\"04:00\",\"month_starts\":1}},\"thresholds\":{\"critical\":0.5},\"new_host_delay\":300,\"silenced\":{}},\"multi\":false,\"created_at\":1699552731000,\"created\":\"2023-11-09T17:58:51.118858+00:00\",\"modified\":\"2023-11-09T17:58:51.118858+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":null,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"creator\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"id\":2320499}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 09 Nov 2023 17:58:50 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/monitor/134549556"}, "response": {"body": {"string": "{\"deleted_monitor_id\":134549556}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 09 Nov 2023 17:58:50 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Create_a_metric_monitor_with_a_custom_schedule_returns_OK_response-1699552730\",\"options\":{\"include_tags\":false,\"notify_audit\":false,\"scheduling_options\":{\"custom_schedule\":{\"recurrences\":[{\"rrule\":\"FREQ=DAILY;INTERVAL=1\",\"start\":\"2024-10-26T09:13:00\",\"timezone\":\"America/Los_Angeles\"}]},\"evaluation_window\":{\"day_starts\":\"04:00\",\"month_starts\":1}},\"thresholds\":{\"critical\":0.5}},\"query\":\"avg(current_1mo):avg:system.load.5{*} > 0.5\",\"tags\":[],\"type\":\"query alert\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/monitor" + }, + "response": { + "body": { + "string": "{\"id\":134549556,\"org_id\":321813,\"type\":\"query alert\",\"name\":\"Test-Create_a_metric_monitor_with_a_custom_schedule_returns_OK_response-1699552730\",\"message\":\"some message Notify: @hipchat-channel\",\"tags\":[],\"query\":\"avg(current_1mo):avg:system.load.5{*} > 0.5\",\"options\":{\"include_tags\":false,\"notify_audit\":false,\"scheduling_options\":{\"custom_schedule\":{\"recurrences\":[{\"rrule\":\"FREQ=DAILY;INTERVAL=1\",\"start\":\"2024-10-26T09:13:00\",\"timezone\":\"America/Los_Angeles\"}]},\"evaluation_window\":{\"day_starts\":\"04:00\",\"month_starts\":1}},\"thresholds\":{\"critical\":0.5},\"new_host_delay\":300,\"silenced\":{}},\"multi\":false,\"created_at\":1699552731000,\"created\":\"2023-11-09T17:58:51.118858+00:00\",\"modified\":\"2023-11-09T17:58:51.118858+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":null,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"creator\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"id\":2320499}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 09 Nov 2023 17:58:50 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/monitor/134549556" + }, + "response": { + "body": { + "string": "{\"deleted_monitor_id\":134549556}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 09 Nov 2023 17:58:50 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/monitors/Create-a-monitor-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/monitors/Create-a-monitor-returns-Bad-Request-response.json index 437be8a36..985e1276a 100644 --- a/tests/scenarios/cassettes/v1/monitors/Create-a-monitor-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/monitors/Create-a-monitor-returns-Bad-Request-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"query\":\"query\",\"type\":\"log alert\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/monitor"}, "response": {"body": {"string": "{\"errors\":[\"The value provided for parameter 'query' is invalid: invalid operator specified: \"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:54 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"query\":\"query\",\"type\":\"log alert\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/monitor" + }, + "response": { + "body": { + "string": "{\"errors\":[\"The value provided for parameter 'query' is invalid: invalid operator specified: \"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:54 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/monitors/Create-a-monitor-returns-OK-response.json b/tests/scenarios/cassettes/v1/monitors/Create-a-monitor-returns-OK-response.json index ad7ce9c07..283480003 100644 --- a/tests/scenarios/cassettes/v1/monitors/Create-a-monitor-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/monitors/Create-a-monitor-returns-OK-response.json @@ -1 +1,125 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_a_monitor_returns_OK_response-1652348780\"},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles"}, "response": {"body": {"string": "{\"data\":{\"type\":\"roles\",\"id\":\"61162af2-d1d8-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Create_a_monitor_returns_OK_response-1652348780\",\"created_at\":\"2022-05-12T09:46:21.361812+00:00\",\"modified_at\":\"2022-05-12T09:46:21.408035+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:46:20 GMT"}, {"request": {"body": {"string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Create_a_monitor_returns_OK_response-1652348780\",\"priority\":3,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"restricted_roles\":[\"61162af2-d1d8-11ec-ad3d-da7ad0900002\"],\"tags\":[\"test:testcreateamonitorreturnsokresponse1652348780\",\"env:ci\"],\"type\":\"log alert\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/monitor"}, "response": {"body": {"string": "{\"restricted_roles\":[\"61162af2-d1d8-11ec-ad3d-da7ad0900002\"],\"tags\":[\"test:testcreateamonitorreturnsokresponse1652348780\",\"env:ci\"],\"deleted\":null,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"message\":\"some message Notify: @hipchat-channel\",\"id\":71310040,\"multi\":true,\"name\":\"Test-Create_a_monitor_returns_OK_response-1652348780\",\"created\":\"2022-05-12T09:46:21.924878+00:00\",\"created_at\":1652348781000,\"creator\":{\"id\":1445416,\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"org_id\":321813,\"modified\":\"2022-05-12T09:46:21.924878+00:00\",\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"type\":\"log alert\",\"options\":{\"notify_audit\":false,\"silenced\":{},\"include_tags\":true,\"new_host_delay\":300,\"notify_no_data\":false,\"groupby_simple_monitor\":false}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:46:20 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/monitor/71310040"}, "response": {"body": {"string": "{\"deleted_monitor_id\":71310040}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:46:20 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/61162af2-d1d8-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:46:20 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_a_monitor_returns_OK_response-1652348780\"},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"roles\",\"id\":\"61162af2-d1d8-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Create_a_monitor_returns_OK_response-1652348780\",\"created_at\":\"2022-05-12T09:46:21.361812+00:00\",\"modified_at\":\"2022-05-12T09:46:21.408035+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:46:20 GMT" + }, + { + "request": { + "body": { + "string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Create_a_monitor_returns_OK_response-1652348780\",\"priority\":3,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"restricted_roles\":[\"61162af2-d1d8-11ec-ad3d-da7ad0900002\"],\"tags\":[\"test:testcreateamonitorreturnsokresponse1652348780\",\"env:ci\"],\"type\":\"log alert\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/monitor" + }, + "response": { + "body": { + "string": "{\"restricted_roles\":[\"61162af2-d1d8-11ec-ad3d-da7ad0900002\"],\"tags\":[\"test:testcreateamonitorreturnsokresponse1652348780\",\"env:ci\"],\"deleted\":null,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"message\":\"some message Notify: @hipchat-channel\",\"id\":71310040,\"multi\":true,\"name\":\"Test-Create_a_monitor_returns_OK_response-1652348780\",\"created\":\"2022-05-12T09:46:21.924878+00:00\",\"created_at\":1652348781000,\"creator\":{\"id\":1445416,\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"org_id\":321813,\"modified\":\"2022-05-12T09:46:21.924878+00:00\",\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"type\":\"log alert\",\"options\":{\"notify_audit\":false,\"silenced\":{},\"include_tags\":true,\"new_host_delay\":300,\"notify_no_data\":false,\"groupby_simple_monitor\":false}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:46:20 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/monitor/71310040" + }, + "response": { + "body": { + "string": "{\"deleted_monitor_id\":71310040}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:46:20 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/61162af2-d1d8-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:46:20 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/monitors/Create-an-Error-Tracking-monitor-returns-OK-response.json b/tests/scenarios/cassettes/v1/monitors/Create-an-Error-Tracking-monitor-returns-OK-response.json index d0c2cdb0d..24391de97 100644 --- a/tests/scenarios/cassettes/v1/monitors/Create-an-Error-Tracking-monitor-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/monitors/Create-an-Error-Tracking-monitor-returns-OK-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"message\":\"some message\",\"name\":\"Test-Create_an_Error_Tracking_monitor_returns_OK_response-1647547501\",\"options\":{\"thresholds\":{\"critical\":1}},\"priority\":3,\"query\":\"error-tracking-rum(\\\"service:foo AND @error.source:source\\\").rollup(\\\"count\\\").by(\\\"@issue.id\\\").last(\\\"1h\\\") >= 1\",\"tags\":[\"test:testcreateanerrortrackingmonitorreturnsokresponse1647547501\",\"env:ci\"],\"type\":\"error-tracking alert\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/monitor"}, "response": {"body": {"string": "{\"restricted_roles\":null,\"tags\":[\"test:testcreateanerrortrackingmonitorreturnsokresponse1647547501\",\"env:ci\"],\"deleted\":null,\"query\":\"error-tracking-rum(\\\"service:foo AND @error.source:source\\\").rollup(\\\"count\\\").by(\\\"@issue.id\\\").last(\\\"1h\\\") >= 1\",\"message\":\"some message\",\"id\":66239295,\"multi\":true,\"name\":\"Test-Create_an_Error_Tracking_monitor_returns_OK_response-1647547501\",\"created\":\"2022-03-17T20:05:01.603951+00:00\",\"created_at\":1647547501000,\"creator\":{\"id\":1445416,\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"org_id\":321813,\"modified\":\"2022-03-17T20:05:01.603951+00:00\",\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"type\":\"error-tracking alert\",\"options\":{\"notify_audit\":false,\"silenced\":{},\"include_tags\":true,\"thresholds\":{\"critical\":1.0},\"new_host_delay\":300,\"notify_no_data\":false,\"groupby_simple_monitor\":false}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 17 Mar 2022 20:05:01 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/monitor/66239295"}, "response": {"body": {"string": "{\"deleted_monitor_id\":66239295}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 17 Mar 2022 20:05:01 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"message\":\"some message\",\"name\":\"Test-Create_an_Error_Tracking_monitor_returns_OK_response-1647547501\",\"options\":{\"thresholds\":{\"critical\":1}},\"priority\":3,\"query\":\"error-tracking-rum(\\\"service:foo AND @error.source:source\\\").rollup(\\\"count\\\").by(\\\"@issue.id\\\").last(\\\"1h\\\") >= 1\",\"tags\":[\"test:testcreateanerrortrackingmonitorreturnsokresponse1647547501\",\"env:ci\"],\"type\":\"error-tracking alert\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/monitor" + }, + "response": { + "body": { + "string": "{\"restricted_roles\":null,\"tags\":[\"test:testcreateanerrortrackingmonitorreturnsokresponse1647547501\",\"env:ci\"],\"deleted\":null,\"query\":\"error-tracking-rum(\\\"service:foo AND @error.source:source\\\").rollup(\\\"count\\\").by(\\\"@issue.id\\\").last(\\\"1h\\\") >= 1\",\"message\":\"some message\",\"id\":66239295,\"multi\":true,\"name\":\"Test-Create_an_Error_Tracking_monitor_returns_OK_response-1647547501\",\"created\":\"2022-03-17T20:05:01.603951+00:00\",\"created_at\":1647547501000,\"creator\":{\"id\":1445416,\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"org_id\":321813,\"modified\":\"2022-03-17T20:05:01.603951+00:00\",\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"type\":\"error-tracking alert\",\"options\":{\"notify_audit\":false,\"silenced\":{},\"include_tags\":true,\"thresholds\":{\"critical\":1.0},\"new_host_delay\":300,\"notify_no_data\":false,\"groupby_simple_monitor\":false}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 17 Mar 2022 20:05:01 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/monitor/66239295" + }, + "response": { + "body": { + "string": "{\"deleted_monitor_id\":66239295}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 17 Mar 2022 20:05:01 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/monitors/Delete-a-monitor-returns-Item-not-found-error-response.json b/tests/scenarios/cassettes/v1/monitors/Delete-a-monitor-returns-Item-not-found-error-response.json index 03975a324..c194498a4 100644 --- a/tests/scenarios/cassettes/v1/monitors/Delete-a-monitor-returns-Item-not-found-error-response.json +++ b/tests/scenarios/cassettes/v1/monitors/Delete-a-monitor-returns-Item-not-found-error-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/monitor/0"}, "response": {"body": {"string": "{\"errors\":[\"Monitor not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:55 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/monitor/0" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Monitor not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:55 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/monitors/Delete-a-monitor-returns-OK-response.json b/tests/scenarios/cassettes/v1/monitors/Delete-a-monitor-returns-OK-response.json index 082110bf9..317dc7c80 100644 --- a/tests/scenarios/cassettes/v1/monitors/Delete-a-monitor-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/monitors/Delete-a-monitor-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Delete_a_monitor_returns_OK_response-1674067038\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2,\"warning\":1},\"timeout_h\":24},\"priority\":3,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"tags\":[\"test:testdeleteamonitorreturnsokresponse1674067038\",\"env:ci\"],\"type\":\"log alert\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/monitor"}, "response": {"body": {"string": "{\"id\":108260303,\"org_id\":321813,\"type\":\"log alert\",\"name\":\"Test-Delete_a_monitor_returns_OK_response-1674067038\",\"message\":\"some message Notify: @hipchat-channel\",\"tags\":[\"test:testdeleteamonitorreturnsokresponse1674067038\",\"env:ci\"],\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2.0,\"warning\":1.0},\"timeout_h\":24,\"silenced\":{}},\"multi\":true,\"created_at\":1674067039000,\"created\":\"2023-01-18T18:37:19.000343+00:00\",\"modified\":\"2023-01-18T18:37:19.000343+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"id\":1445416}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 18 Jan 2023 18:37:18 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/monitor/108260303"}, "response": {"body": {"string": "{\"deleted_monitor_id\":108260303}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 18 Jan 2023 18:37:18 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/monitor/108260303"}, "response": {"body": {"string": "{\"errors\":[\"Monitor not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Wed, 18 Jan 2023 18:37:18 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Delete_a_monitor_returns_OK_response-1674067038\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2,\"warning\":1},\"timeout_h\":24},\"priority\":3,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"tags\":[\"test:testdeleteamonitorreturnsokresponse1674067038\",\"env:ci\"],\"type\":\"log alert\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/monitor" + }, + "response": { + "body": { + "string": "{\"id\":108260303,\"org_id\":321813,\"type\":\"log alert\",\"name\":\"Test-Delete_a_monitor_returns_OK_response-1674067038\",\"message\":\"some message Notify: @hipchat-channel\",\"tags\":[\"test:testdeleteamonitorreturnsokresponse1674067038\",\"env:ci\"],\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2.0,\"warning\":1.0},\"timeout_h\":24,\"silenced\":{}},\"multi\":true,\"created_at\":1674067039000,\"created\":\"2023-01-18T18:37:19.000343+00:00\",\"modified\":\"2023-01-18T18:37:19.000343+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"id\":1445416}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 18 Jan 2023 18:37:18 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/monitor/108260303" + }, + "response": { + "body": { + "string": "{\"deleted_monitor_id\":108260303}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 18 Jan 2023 18:37:18 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/monitor/108260303" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Monitor not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Wed, 18 Jan 2023 18:37:18 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/monitors/Edit-a-monitor-returns-Monitor-Not-Found-error-response.json b/tests/scenarios/cassettes/v1/monitors/Edit-a-monitor-returns-Monitor-Not-Found-error-response.json index 2cb187118..855c643e8 100644 --- a/tests/scenarios/cassettes/v1/monitors/Edit-a-monitor-returns-Monitor-Not-Found-error-response.json +++ b/tests/scenarios/cassettes/v1/monitors/Edit-a-monitor-returns-Monitor-Not-Found-error-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"updated\",\"options\":{\"evaluation_delay\":null,\"new_group_delay\":600,\"new_host_delay\":null,\"renotify_interval\":null,\"thresholds\":{\"critical\":2,\"warning\":null},\"timeout_h\":null}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "put", "uri": "https://api.datadoghq.com/api/v1/monitor/0"}, "response": {"body": {"string": "{\"errors\":[\"Monitor not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:56 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"updated\",\"options\":{\"evaluation_delay\":null,\"new_group_delay\":600,\"new_host_delay\":null,\"renotify_interval\":null,\"thresholds\":{\"critical\":2,\"warning\":null},\"timeout_h\":null}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v1/monitor/0" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Monitor not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:56 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/monitors/Edit-a-monitor-returns-OK-response.json b/tests/scenarios/cassettes/v1/monitors/Edit-a-monitor-returns-OK-response.json index 8b9f3e169..01dc14ada 100644 --- a/tests/scenarios/cassettes/v1/monitors/Edit-a-monitor-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/monitors/Edit-a-monitor-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Edit_a_monitor_returns_OK_response-1674067039\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2,\"warning\":1},\"timeout_h\":24},\"priority\":3,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"tags\":[\"test:testeditamonitorreturnsokresponse1674067039\",\"env:ci\"],\"type\":\"log alert\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/monitor"}, "response": {"body": {"string": "{\"id\":108260304,\"org_id\":321813,\"type\":\"log alert\",\"name\":\"Test-Edit_a_monitor_returns_OK_response-1674067039\",\"message\":\"some message Notify: @hipchat-channel\",\"tags\":[\"test:testeditamonitorreturnsokresponse1674067039\",\"env:ci\"],\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2.0,\"warning\":1.0},\"timeout_h\":24,\"silenced\":{}},\"multi\":true,\"created_at\":1674067039000,\"created\":\"2023-01-18T18:37:19.356677+00:00\",\"modified\":\"2023-01-18T18:37:19.356677+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"id\":1445416}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 18 Jan 2023 18:37:19 GMT"}, {"request": {"body": {"string": "{\"name\":\"Test-Edit_a_monitor_returns_OK_response-1674067039-updated\",\"options\":{\"evaluation_delay\":null,\"new_group_delay\":600,\"new_host_delay\":null,\"renotify_interval\":null,\"thresholds\":{\"critical\":2,\"warning\":null},\"timeout_h\":null}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "put", "uri": "https://api.datadoghq.com/api/v1/monitor/108260304"}, "response": {"body": {"string": "{\"id\":108260304,\"org_id\":321813,\"type\":\"log alert\",\"name\":\"Test-Edit_a_monitor_returns_OK_response-1674067039-updated\",\"message\":\"some message Notify: @hipchat-channel\",\"tags\":[\"test:testeditamonitorreturnsokresponse1674067039\",\"env:ci\"],\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"options\":{\"evaluation_delay\":null,\"new_group_delay\":600,\"new_host_delay\":null,\"renotify_interval\":null,\"thresholds\":{\"critical\":2.0},\"timeout_h\":null,\"notify_no_data\":false,\"notify_audit\":false,\"include_tags\":true,\"groupby_simple_monitor\":false,\"silenced\":{}},\"multi\":true,\"created_at\":1674067039000,\"created\":\"2023-01-18T18:37:19.356677+00:00\",\"modified\":\"2023-01-18T18:37:19.511143+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 18 Jan 2023 18:37:19 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/monitor/108260304"}, "response": {"body": {"string": "{\"deleted_monitor_id\":108260304}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 18 Jan 2023 18:37:19 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Edit_a_monitor_returns_OK_response-1674067039\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2,\"warning\":1},\"timeout_h\":24},\"priority\":3,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"tags\":[\"test:testeditamonitorreturnsokresponse1674067039\",\"env:ci\"],\"type\":\"log alert\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/monitor" + }, + "response": { + "body": { + "string": "{\"id\":108260304,\"org_id\":321813,\"type\":\"log alert\",\"name\":\"Test-Edit_a_monitor_returns_OK_response-1674067039\",\"message\":\"some message Notify: @hipchat-channel\",\"tags\":[\"test:testeditamonitorreturnsokresponse1674067039\",\"env:ci\"],\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2.0,\"warning\":1.0},\"timeout_h\":24,\"silenced\":{}},\"multi\":true,\"created_at\":1674067039000,\"created\":\"2023-01-18T18:37:19.356677+00:00\",\"modified\":\"2023-01-18T18:37:19.356677+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"id\":1445416}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 18 Jan 2023 18:37:19 GMT" + }, + { + "request": { + "body": { + "string": "{\"name\":\"Test-Edit_a_monitor_returns_OK_response-1674067039-updated\",\"options\":{\"evaluation_delay\":null,\"new_group_delay\":600,\"new_host_delay\":null,\"renotify_interval\":null,\"thresholds\":{\"critical\":2,\"warning\":null},\"timeout_h\":null}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v1/monitor/108260304" + }, + "response": { + "body": { + "string": "{\"id\":108260304,\"org_id\":321813,\"type\":\"log alert\",\"name\":\"Test-Edit_a_monitor_returns_OK_response-1674067039-updated\",\"message\":\"some message Notify: @hipchat-channel\",\"tags\":[\"test:testeditamonitorreturnsokresponse1674067039\",\"env:ci\"],\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"options\":{\"evaluation_delay\":null,\"new_group_delay\":600,\"new_host_delay\":null,\"renotify_interval\":null,\"thresholds\":{\"critical\":2.0},\"timeout_h\":null,\"notify_no_data\":false,\"notify_audit\":false,\"include_tags\":true,\"groupby_simple_monitor\":false,\"silenced\":{}},\"multi\":true,\"created_at\":1674067039000,\"created\":\"2023-01-18T18:37:19.356677+00:00\",\"modified\":\"2023-01-18T18:37:19.511143+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 18 Jan 2023 18:37:19 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/monitor/108260304" + }, + "response": { + "body": { + "string": "{\"deleted_monitor_id\":108260304}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 18 Jan 2023 18:37:19 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/monitors/Get-a-monitor-s-details-returns-Monitor-Not-Found-error-response.json b/tests/scenarios/cassettes/v1/monitors/Get-a-monitor-s-details-returns-Monitor-Not-Found-error-response.json index 416bff135..7c51c23ca 100644 --- a/tests/scenarios/cassettes/v1/monitors/Get-a-monitor-s-details-returns-Monitor-Not-Found-error-response.json +++ b/tests/scenarios/cassettes/v1/monitors/Get-a-monitor-s-details-returns-Monitor-Not-Found-error-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/monitor/12345"}, "response": {"body": {"string": "{\"errors\":[\"Monitor not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:57 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/monitor/12345" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Monitor not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:57 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/monitors/Get-a-monitor-s-details-returns-OK-response.json b/tests/scenarios/cassettes/v1/monitors/Get-a-monitor-s-details-returns-OK-response.json index 51eab265e..998d9edeb 100644 --- a/tests/scenarios/cassettes/v1/monitors/Get-a-monitor-s-details-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/monitors/Get-a-monitor-s-details-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Get_a_monitor_s_details_returns_OK_response-1684774946\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2,\"warning\":1},\"timeout_h\":24},\"priority\":3,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"tags\":[\"test:testgetamonitorsdetailsreturnsokresponse1684774946\",\"env:ci\"],\"type\":\"log alert\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/monitor"}, "response": {"body": {"string": "{\"id\":119735290,\"org_id\":321813,\"type\":\"log alert\",\"name\":\"Test-Get_a_monitor_s_details_returns_OK_response-1684774946\",\"message\":\"some message Notify: @hipchat-channel\",\"tags\":[\"test:testgetamonitorsdetailsreturnsokresponse1684774946\",\"env:ci\"],\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2.0,\"warning\":1.0},\"timeout_h\":24,\"silenced\":{}},\"multi\":true,\"created_at\":1684774946000,\"created\":\"2023-05-22T17:02:26.996650+00:00\",\"modified\":\"2023-05-22T17:02:26.996650+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"id\":1445416}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 22 May 2023 17:02:26 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/monitor/119735290?with_downtimes=true"}, "response": {"body": {"string": "{\"id\":119735290,\"org_id\":321813,\"type\":\"log alert\",\"name\":\"Test-Get_a_monitor_s_details_returns_OK_response-1684774946\",\"message\":\"some message Notify: @hipchat-channel\",\"tags\":[\"test:testgetamonitorsdetailsreturnsokresponse1684774946\",\"env:ci\"],\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2.0,\"warning\":1.0},\"timeout_h\":24,\"silenced\":{}},\"multi\":true,\"created_at\":1684774946000,\"created\":\"2023-05-22T17:02:26.996650+00:00\",\"modified\":\"2023-05-22T17:02:26.996650+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"id\":1445416},\"matching_downtimes\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 22 May 2023 17:02:26 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/monitor/119735290"}, "response": {"body": {"string": "{\"deleted_monitor_id\":119735290}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 22 May 2023 17:02:26 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Get_a_monitor_s_details_returns_OK_response-1684774946\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2,\"warning\":1},\"timeout_h\":24},\"priority\":3,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"tags\":[\"test:testgetamonitorsdetailsreturnsokresponse1684774946\",\"env:ci\"],\"type\":\"log alert\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/monitor" + }, + "response": { + "body": { + "string": "{\"id\":119735290,\"org_id\":321813,\"type\":\"log alert\",\"name\":\"Test-Get_a_monitor_s_details_returns_OK_response-1684774946\",\"message\":\"some message Notify: @hipchat-channel\",\"tags\":[\"test:testgetamonitorsdetailsreturnsokresponse1684774946\",\"env:ci\"],\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2.0,\"warning\":1.0},\"timeout_h\":24,\"silenced\":{}},\"multi\":true,\"created_at\":1684774946000,\"created\":\"2023-05-22T17:02:26.996650+00:00\",\"modified\":\"2023-05-22T17:02:26.996650+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"id\":1445416}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 22 May 2023 17:02:26 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/monitor/119735290?with_downtimes=true" + }, + "response": { + "body": { + "string": "{\"id\":119735290,\"org_id\":321813,\"type\":\"log alert\",\"name\":\"Test-Get_a_monitor_s_details_returns_OK_response-1684774946\",\"message\":\"some message Notify: @hipchat-channel\",\"tags\":[\"test:testgetamonitorsdetailsreturnsokresponse1684774946\",\"env:ci\"],\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2.0,\"warning\":1.0},\"timeout_h\":24,\"silenced\":{}},\"multi\":true,\"created_at\":1684774946000,\"created\":\"2023-05-22T17:02:26.996650+00:00\",\"modified\":\"2023-05-22T17:02:26.996650+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"id\":1445416},\"matching_downtimes\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 22 May 2023 17:02:26 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/monitor/119735290" + }, + "response": { + "body": { + "string": "{\"deleted_monitor_id\":119735290}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 22 May 2023 17:02:26 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/monitors/Get-a-monitor-s-details-with-downtime-returns-OK-response.json b/tests/scenarios/cassettes/v1/monitors/Get-a-monitor-s-details-with-downtime-returns-OK-response.json index 8ff701d7d..9e7654964 100644 --- a/tests/scenarios/cassettes/v1/monitors/Get-a-monitor-s-details-with-downtime-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/monitors/Get-a-monitor-s-details-with-downtime-returns-OK-response.json @@ -1 +1,157 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Get_a_monitor_s_details_with_downtime_returns_OK_response-1684790119\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2,\"warning\":1},\"timeout_h\":24},\"priority\":3,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"tags\":[\"test:testgetamonitorsdetailswithdowntimereturnsokresponse1684790119\",\"env:ci\"],\"type\":\"log alert\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/monitor"}, "response": {"body": {"string": "{\"id\":119766008,\"org_id\":717122,\"type\":\"log alert\",\"name\":\"Test-Get_a_monitor_s_details_with_downtime_returns_OK_response-1684790119\",\"message\":\"some message Notify: @hipchat-channel\",\"tags\":[\"test:testgetamonitorsdetailswithdowntimereturnsokresponse1684790119\",\"env:ci\"],\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2.0,\"warning\":1.0},\"timeout_h\":24,\"silenced\":{}},\"multi\":true,\"created_at\":1684790119000,\"created\":\"2023-05-22T21:15:19.942502+00:00\",\"modified\":\"2023-05-22T21:15:19.942502+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"creator\":{\"name\":\"Kevin Zou\",\"handle\":\"kevin.zou@datadoghq.com\",\"email\":\"kevin.zou@datadoghq.com\",\"id\":4351227}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 22 May 2023 21:15:19 GMT"}, {"request": {"body": {"string": "{\"end\":1685394919,\"message\":\"Test-Get_a_monitor_s_details_with_downtime_returns_OK_response-1684790119\",\"monitor_id\":119766008,\"mute_first_recovery_notification\":true,\"notify_end_states\":[\"alert\"],\"notify_end_types\":[\"canceled\"],\"scope\":[\"*\"],\"start\":1684790119,\"timezone\":\"Etc/UTC\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/downtime"}, "response": {"body": {"string": "{\"id\":2942947856,\"monitor_id\":119766008,\"org_id\":717122,\"start\":1684790119,\"end\":1685394919,\"canceled\":null,\"created\":1684790120,\"modified\":1684790120,\"message\":\"Test-Get_a_monitor_s_details_with_downtime_returns_OK_response-1684790119\",\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":4351227,\"updater_id\":null,\"downtime_type\":0,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"canceled\"],\"notify_end_states\":[\"alert\"],\"uuid\":\"c1ddf27c-f8e5-11ed-8c5a-da7ad0900002\",\"scope\":[\"*\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 22 May 2023 21:15:19 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/monitor/119766008?with_downtimes=true"}, "response": {"body": {"string": "{\"id\":119766008,\"org_id\":717122,\"type\":\"log alert\",\"name\":\"Test-Get_a_monitor_s_details_with_downtime_returns_OK_response-1684790119\",\"message\":\"some message Notify: @hipchat-channel\",\"tags\":[\"test:testgetamonitorsdetailswithdowntimereturnsokresponse1684790119\",\"env:ci\"],\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2.0,\"warning\":1.0},\"timeout_h\":24,\"silenced\":{\"*\":1685394919}},\"multi\":true,\"created_at\":1684790119000,\"created\":\"2023-05-22T21:15:19.942502+00:00\",\"modified\":\"2023-05-22T21:15:19.942502+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":3,\"overall_state_modified\":\"2023-05-22T21:15:22+00:00\",\"overall_state\":\"No Data\",\"creator\":{\"name\":\"Kevin Zou\",\"handle\":\"kevin.zou@datadoghq.com\",\"email\":\"kevin.zou@datadoghq.com\",\"id\":4351227},\"matching_downtimes\":[{\"id\":2942947856,\"active\":true,\"monitor_id\":119766008,\"start\":1684790119,\"end\":1685394919,\"scope\":[\"*\"],\"groups\":[\"total\"]}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 22 May 2023 21:15:19 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/downtime/2942947856"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 22 May 2023 21:15:19 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/monitor/119766008"}, "response": {"body": {"string": "{\"deleted_monitor_id\":119766008}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 22 May 2023 21:15:19 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Get_a_monitor_s_details_with_downtime_returns_OK_response-1684790119\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2,\"warning\":1},\"timeout_h\":24},\"priority\":3,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"tags\":[\"test:testgetamonitorsdetailswithdowntimereturnsokresponse1684790119\",\"env:ci\"],\"type\":\"log alert\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/monitor" + }, + "response": { + "body": { + "string": "{\"id\":119766008,\"org_id\":717122,\"type\":\"log alert\",\"name\":\"Test-Get_a_monitor_s_details_with_downtime_returns_OK_response-1684790119\",\"message\":\"some message Notify: @hipchat-channel\",\"tags\":[\"test:testgetamonitorsdetailswithdowntimereturnsokresponse1684790119\",\"env:ci\"],\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2.0,\"warning\":1.0},\"timeout_h\":24,\"silenced\":{}},\"multi\":true,\"created_at\":1684790119000,\"created\":\"2023-05-22T21:15:19.942502+00:00\",\"modified\":\"2023-05-22T21:15:19.942502+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"creator\":{\"name\":\"Kevin Zou\",\"handle\":\"kevin.zou@datadoghq.com\",\"email\":\"kevin.zou@datadoghq.com\",\"id\":4351227}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 22 May 2023 21:15:19 GMT" + }, + { + "request": { + "body": { + "string": "{\"end\":1685394919,\"message\":\"Test-Get_a_monitor_s_details_with_downtime_returns_OK_response-1684790119\",\"monitor_id\":119766008,\"mute_first_recovery_notification\":true,\"notify_end_states\":[\"alert\"],\"notify_end_types\":[\"canceled\"],\"scope\":[\"*\"],\"start\":1684790119,\"timezone\":\"Etc/UTC\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/downtime" + }, + "response": { + "body": { + "string": "{\"id\":2942947856,\"monitor_id\":119766008,\"org_id\":717122,\"start\":1684790119,\"end\":1685394919,\"canceled\":null,\"created\":1684790120,\"modified\":1684790120,\"message\":\"Test-Get_a_monitor_s_details_with_downtime_returns_OK_response-1684790119\",\"active\":true,\"disabled\":false,\"recurrence\":null,\"timezone\":\"Etc/UTC\",\"parent_id\":null,\"child_id\":null,\"creator_id\":4351227,\"updater_id\":null,\"downtime_type\":0,\"status\":\"active\",\"monitor_tags\":[\"*\"],\"mute_first_recovery_notification\":true,\"notify_end_types\":[\"canceled\"],\"notify_end_states\":[\"alert\"],\"uuid\":\"c1ddf27c-f8e5-11ed-8c5a-da7ad0900002\",\"scope\":[\"*\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 22 May 2023 21:15:19 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/monitor/119766008?with_downtimes=true" + }, + "response": { + "body": { + "string": "{\"id\":119766008,\"org_id\":717122,\"type\":\"log alert\",\"name\":\"Test-Get_a_monitor_s_details_with_downtime_returns_OK_response-1684790119\",\"message\":\"some message Notify: @hipchat-channel\",\"tags\":[\"test:testgetamonitorsdetailswithdowntimereturnsokresponse1684790119\",\"env:ci\"],\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2.0,\"warning\":1.0},\"timeout_h\":24,\"silenced\":{\"*\":1685394919}},\"multi\":true,\"created_at\":1684790119000,\"created\":\"2023-05-22T21:15:19.942502+00:00\",\"modified\":\"2023-05-22T21:15:19.942502+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":3,\"overall_state_modified\":\"2023-05-22T21:15:22+00:00\",\"overall_state\":\"No Data\",\"creator\":{\"name\":\"Kevin Zou\",\"handle\":\"kevin.zou@datadoghq.com\",\"email\":\"kevin.zou@datadoghq.com\",\"id\":4351227},\"matching_downtimes\":[{\"id\":2942947856,\"active\":true,\"monitor_id\":119766008,\"start\":1684790119,\"end\":1685394919,\"scope\":[\"*\"],\"groups\":[\"total\"]}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 22 May 2023 21:15:19 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/downtime/2942947856" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 22 May 2023 21:15:19 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/monitor/119766008" + }, + "response": { + "body": { + "string": "{\"deleted_monitor_id\":119766008}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 22 May 2023 21:15:19 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/monitors/Get-a-synthetics-monitor-s-details.json b/tests/scenarios/cassettes/v1/monitors/Get-a-synthetics-monitor-s-details.json index 434ad21c3..dabe8482d 100644 --- a/tests/scenarios/cassettes/v1/monitors/Get-a-synthetics-monitor-s-details.json +++ b/tests/scenarios/cassettes/v1/monitors/Get-a-synthetics-monitor-s-details.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"timingsScope\":\"withoutDNS\",\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"},{\"operator\":\"validatesXPath\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"basicAuth\":{\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"clientSecret\":\"client-secret\",\"resource\":\"resource\",\"scope\":\"yoyo\",\"tokenApiAuthentication\":\"header\",\"type\":\"oauth-client\"},\"certificate\":{\"cert\":{\"content\":\"cert-content\",\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"content\":\"key-content\",\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testgetasyntheticsmonitorsdetails1694443753\"},\"method\":\"GET\",\"persistCookies\":true,\"proxy\":{\"headers\":{},\"url\":\"https://datadoghq.com\"},\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"name\":\"Test-Get_a_synthetics_monitor_s_details-1694443753\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"httpVersion\":\"http2\",\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Get_a_synthetics_monitor_s_details-1694443753\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"subtype\":\"http\",\"tags\":[\"testing:api\"],\"type\":\"api\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api"}, "response": {"body": {"string": "{\"public_id\":\"iqq-3xd-e25\",\"name\":\"Test-Get_a_synthetics_monitor_s_details-1694443753\",\"status\":\"live\",\"type\":\"api\",\"tags\":[\"testing:api\"],\"created_at\":\"2023-09-11T14:49:13.337325+00:00\",\"modified_at\":\"2023-09-11T14:49:13.337325+00:00\",\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"timingsScope\":\"withoutDNS\",\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"},{\"operator\":\"validatesXPath\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"basicAuth\":{\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"clientSecret\":\"client-secret\",\"resource\":\"resource\",\"scope\":\"yoyo\",\"tokenApiAuthentication\":\"header\",\"type\":\"oauth-client\"},\"certificate\":{\"cert\":{\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testgetasyntheticsmonitorsdetails1694443753\"},\"method\":\"GET\",\"persistCookies\":true,\"proxy\":{\"headers\":{},\"url\":\"https://datadoghq.com\"},\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"httpVersion\":\"http2\",\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Get_a_synthetics_monitor_s_details-1694443753\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"locations\":[\"aws:us-east-2\"],\"subtype\":\"http\",\"created_by\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":131183716,\"org_id\":321813,\"modified_by\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 11 Sep 2023 14:49:13 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/monitor/131183716"}, "response": {"body": {"string": "{\"id\":131183716,\"org_id\":321813,\"type\":\"synthetics alert\",\"name\":\"Test-Get_a_synthetics_monitor_s_details-1694443753\",\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"tags\":[\"testing:api\",\"probe_dc:aws:us-east-2\",\"check_type:api\",\"check_status:live\",\"ci_execution_rule:blocking\"],\"query\":\"no_query\",\"options\":{\"on_missing_data\":\"show_no_data\",\"notify_audit\":false,\"new_host_delay\":300,\"include_tags\":true,\"synthetics_check_id\":\"iqq-3xd-e25\",\"silenced\":{}},\"multi\":false,\"created_at\":1694443753000,\"created\":\"2023-09-11T14:49:13.292416+00:00\",\"modified\":\"2023-09-11T14:49:13.292416+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":5,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"id\":1445416}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 11 Sep 2023 14:49:13 GMT"}, {"request": {"body": {"string": "{\"public_ids\":[\"iqq-3xd-e25\"]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete"}, "response": {"body": {"string": "{\"deleted_tests\":[{\"public_id\":\"iqq-3xd-e25\",\"deleted_at\":\"2023-09-11T14:49:13.722110+00:00\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 11 Sep 2023 14:49:13 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"timingsScope\":\"withoutDNS\",\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"},{\"operator\":\"validatesXPath\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"basicAuth\":{\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"clientSecret\":\"client-secret\",\"resource\":\"resource\",\"scope\":\"yoyo\",\"tokenApiAuthentication\":\"header\",\"type\":\"oauth-client\"},\"certificate\":{\"cert\":{\"content\":\"cert-content\",\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"content\":\"key-content\",\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testgetasyntheticsmonitorsdetails1694443753\"},\"method\":\"GET\",\"persistCookies\":true,\"proxy\":{\"headers\":{},\"url\":\"https://datadoghq.com\"},\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"name\":\"Test-Get_a_synthetics_monitor_s_details-1694443753\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"httpVersion\":\"http2\",\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Get_a_synthetics_monitor_s_details-1694443753\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"subtype\":\"http\",\"tags\":[\"testing:api\"],\"type\":\"api\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api" + }, + "response": { + "body": { + "string": "{\"public_id\":\"iqq-3xd-e25\",\"name\":\"Test-Get_a_synthetics_monitor_s_details-1694443753\",\"status\":\"live\",\"type\":\"api\",\"tags\":[\"testing:api\"],\"created_at\":\"2023-09-11T14:49:13.337325+00:00\",\"modified_at\":\"2023-09-11T14:49:13.337325+00:00\",\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"timingsScope\":\"withoutDNS\",\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"},{\"operator\":\"validatesXPath\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"basicAuth\":{\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"clientSecret\":\"client-secret\",\"resource\":\"resource\",\"scope\":\"yoyo\",\"tokenApiAuthentication\":\"header\",\"type\":\"oauth-client\"},\"certificate\":{\"cert\":{\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testgetasyntheticsmonitorsdetails1694443753\"},\"method\":\"GET\",\"persistCookies\":true,\"proxy\":{\"headers\":{},\"url\":\"https://datadoghq.com\"},\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"httpVersion\":\"http2\",\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Get_a_synthetics_monitor_s_details-1694443753\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"locations\":[\"aws:us-east-2\"],\"subtype\":\"http\",\"created_by\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":131183716,\"org_id\":321813,\"modified_by\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 11 Sep 2023 14:49:13 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/monitor/131183716" + }, + "response": { + "body": { + "string": "{\"id\":131183716,\"org_id\":321813,\"type\":\"synthetics alert\",\"name\":\"Test-Get_a_synthetics_monitor_s_details-1694443753\",\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"tags\":[\"testing:api\",\"probe_dc:aws:us-east-2\",\"check_type:api\",\"check_status:live\",\"ci_execution_rule:blocking\"],\"query\":\"no_query\",\"options\":{\"on_missing_data\":\"show_no_data\",\"notify_audit\":false,\"new_host_delay\":300,\"include_tags\":true,\"synthetics_check_id\":\"iqq-3xd-e25\",\"silenced\":{}},\"multi\":false,\"created_at\":1694443753000,\"created\":\"2023-09-11T14:49:13.292416+00:00\",\"modified\":\"2023-09-11T14:49:13.292416+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":5,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"id\":1445416}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 11 Sep 2023 14:49:13 GMT" + }, + { + "request": { + "body": { + "string": "{\"public_ids\":[\"iqq-3xd-e25\"]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete" + }, + "response": { + "body": { + "string": "{\"deleted_tests\":[{\"public_id\":\"iqq-3xd-e25\",\"deleted_at\":\"2023-09-11T14:49:13.722110+00:00\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 11 Sep 2023 14:49:13 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/monitors/Get-all-monitor-details-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/monitors/Get-all-monitor-details-returns-Bad-Request-response.json index 8ac22675b..cfd0062d6 100644 --- a/tests/scenarios/cassettes/v1/monitors/Get-all-monitor-details-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/monitors/Get-all-monitor-details-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/monitor?group_states=notagroupstate"}, "response": {"body": {"string": "{\"errors\":[\"Invalid group_state filters.\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:59 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/monitor?group_states=notagroupstate" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Invalid group_state filters.\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:59 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/monitors/Get-all-monitor-details-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v1/monitors/Get-all-monitor-details-returns-OK-response-with-pagination.json index 7160dfdab..f846ad061 100644 --- a/tests/scenarios/cassettes/v1/monitors/Get-all-monitor-details-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v1/monitors/Get-all-monitor-details-returns-OK-response-with-pagination.json @@ -1 +1,61 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/monitor?page_size=2&page=0"}, "response": {"body": {"string": "[{\"id\":34822915,\"org_id\":321813,\"type\":\"query alert\",\"name\":\"SLO Monitor: aws_alb_latency_p95 for splunk\",\"message\":\"Latency SLO violation for splunk load balancer(s)\",\"tags\":[\"environment:test\",\"generator:slops\",\"release:e6a2686\",\"sli:latency\",\"slotype:alb\",\"systemid:splunk\",\"team:developer_insights\"],\"query\":\"avg(last_1m):avg:aws.applicationelb.target_response_time.p95{systemid:splunk,aws_account_type:production} by {region} > 0.2\",\"options\":{\"notify_audit\":false,\"locked\":false,\"include_tags\":true,\"thresholds\":{\"critical\":0.2},\"new_host_delay\":300,\"require_full_window\":true,\"notify_no_data\":false,\"silenced\":{}},\"multi\":true,\"created_at\":1620047024000,\"created\":\"2021-05-03T13:03:44.905085+00:00\",\"modified\":\"2021-05-03T13:03:44.905085+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":null,\"overall_state_modified\":\"2021-05-03T13:06:23+00:00\",\"overall_state\":\"No Data\",\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"id\":1445416},\"matching_downtimes\":[]},{\"id\":34822916,\"org_id\":321813,\"type\":\"query alert\",\"name\":\"SLO Monitor: aws_classic_elb_latency_p99 for splunk\",\"message\":\"Latency SLO violation for splunk load balancer(s)\",\"tags\":[\"environment:test\",\"generator:slops\",\"release:e6a2686\",\"sli:latency\",\"slotype:elb\",\"systemid:splunk\",\"team:developer_insights\"],\"query\":\"avg(last_1m):avg:aws.elb.latency.p99{systemid:splunk,aws_account_type:production} by {region} > 0.2\",\"options\":{\"notify_audit\":false,\"locked\":false,\"include_tags\":true,\"thresholds\":{\"critical\":0.2},\"new_host_delay\":300,\"require_full_window\":true,\"notify_no_data\":false,\"silenced\":{}},\"multi\":true,\"created_at\":1620047024000,\"created\":\"2021-05-03T13:03:44.909928+00:00\",\"modified\":\"2021-05-03T13:03:44.909928+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":null,\"overall_state_modified\":\"2021-05-03T13:06:18+00:00\",\"overall_state\":\"No Data\",\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"id\":1445416},\"matching_downtimes\":[]}]\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 28 Aug 2023 07:51:42 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/monitor?page_size=2&page=1"}, "response": {"body": {"string": "[{\"id\":34822917,\"org_id\":321813,\"type\":\"query alert\",\"name\":\"SLO Monitor: aws_alb_latency_p50 for splunk\",\"message\":\"Latency SLO violation for splunk load balancer(s)\",\"tags\":[\"environment:test\",\"generator:slops\",\"release:e6a2686\",\"sli:latency\",\"slotype:alb\",\"systemid:splunk\",\"team:developer_insights\"],\"query\":\"avg(last_1m):avg:aws.applicationelb.target_response_time.p50{systemid:splunk,aws_account_type:production} by {region} > 0.2\",\"options\":{\"notify_audit\":false,\"locked\":false,\"include_tags\":true,\"thresholds\":{\"critical\":0.2},\"new_host_delay\":300,\"require_full_window\":true,\"notify_no_data\":false,\"silenced\":{}},\"multi\":true,\"created_at\":1620047024000,\"created\":\"2021-05-03T13:03:44.920644+00:00\",\"modified\":\"2021-05-03T13:03:44.920644+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":null,\"overall_state_modified\":\"2021-05-03T13:06:37+00:00\",\"overall_state\":\"No Data\",\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"id\":1445416},\"matching_downtimes\":[]}]\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 28 Aug 2023 07:51:42 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/monitor?page_size=2&page=0" + }, + "response": { + "body": { + "string": "[{\"id\":34822915,\"org_id\":321813,\"type\":\"query alert\",\"name\":\"SLO Monitor: aws_alb_latency_p95 for splunk\",\"message\":\"Latency SLO violation for splunk load balancer(s)\",\"tags\":[\"environment:test\",\"generator:slops\",\"release:e6a2686\",\"sli:latency\",\"slotype:alb\",\"systemid:splunk\",\"team:developer_insights\"],\"query\":\"avg(last_1m):avg:aws.applicationelb.target_response_time.p95{systemid:splunk,aws_account_type:production} by {region} > 0.2\",\"options\":{\"notify_audit\":false,\"locked\":false,\"include_tags\":true,\"thresholds\":{\"critical\":0.2},\"new_host_delay\":300,\"require_full_window\":true,\"notify_no_data\":false,\"silenced\":{}},\"multi\":true,\"created_at\":1620047024000,\"created\":\"2021-05-03T13:03:44.905085+00:00\",\"modified\":\"2021-05-03T13:03:44.905085+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":null,\"overall_state_modified\":\"2021-05-03T13:06:23+00:00\",\"overall_state\":\"No Data\",\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"id\":1445416},\"matching_downtimes\":[]},{\"id\":34822916,\"org_id\":321813,\"type\":\"query alert\",\"name\":\"SLO Monitor: aws_classic_elb_latency_p99 for splunk\",\"message\":\"Latency SLO violation for splunk load balancer(s)\",\"tags\":[\"environment:test\",\"generator:slops\",\"release:e6a2686\",\"sli:latency\",\"slotype:elb\",\"systemid:splunk\",\"team:developer_insights\"],\"query\":\"avg(last_1m):avg:aws.elb.latency.p99{systemid:splunk,aws_account_type:production} by {region} > 0.2\",\"options\":{\"notify_audit\":false,\"locked\":false,\"include_tags\":true,\"thresholds\":{\"critical\":0.2},\"new_host_delay\":300,\"require_full_window\":true,\"notify_no_data\":false,\"silenced\":{}},\"multi\":true,\"created_at\":1620047024000,\"created\":\"2021-05-03T13:03:44.909928+00:00\",\"modified\":\"2021-05-03T13:03:44.909928+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":null,\"overall_state_modified\":\"2021-05-03T13:06:18+00:00\",\"overall_state\":\"No Data\",\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"id\":1445416},\"matching_downtimes\":[]}]\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 28 Aug 2023 07:51:42 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/monitor?page_size=2&page=1" + }, + "response": { + "body": { + "string": "[{\"id\":34822917,\"org_id\":321813,\"type\":\"query alert\",\"name\":\"SLO Monitor: aws_alb_latency_p50 for splunk\",\"message\":\"Latency SLO violation for splunk load balancer(s)\",\"tags\":[\"environment:test\",\"generator:slops\",\"release:e6a2686\",\"sli:latency\",\"slotype:alb\",\"systemid:splunk\",\"team:developer_insights\"],\"query\":\"avg(last_1m):avg:aws.applicationelb.target_response_time.p50{systemid:splunk,aws_account_type:production} by {region} > 0.2\",\"options\":{\"notify_audit\":false,\"locked\":false,\"include_tags\":true,\"thresholds\":{\"critical\":0.2},\"new_host_delay\":300,\"require_full_window\":true,\"notify_no_data\":false,\"silenced\":{}},\"multi\":true,\"created_at\":1620047024000,\"created\":\"2021-05-03T13:03:44.920644+00:00\",\"modified\":\"2021-05-03T13:03:44.920644+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":null,\"overall_state_modified\":\"2021-05-03T13:06:37+00:00\",\"overall_state\":\"No Data\",\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"id\":1445416},\"matching_downtimes\":[]}]\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 28 Aug 2023 07:51:42 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/monitors/Monitors-group-search-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/monitors/Monitors-group-search-returns-Bad-Request-response.json index e51c3284f..d56bf3710 100644 --- a/tests/scenarios/cassettes/v1/monitors/Monitors-group-search-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/monitors/Monitors-group-search-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/monitor/groups/search?query=status%3Anotastatus"}, "response": {"body": {"string": "{\"errors\":[\"Query parsing error: 'notastatus' is not a valid monitor status\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Thu, 06 Jan 2022 00:50:59 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/monitor/groups/search?query=status%3Anotastatus" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Query parsing error: 'notastatus' is not a valid monitor status\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:50:59 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/monitors/Monitors-group-search-returns-OK-response.json b/tests/scenarios/cassettes/v1/monitors/Monitors-group-search-returns-OK-response.json index 5c73c4f6a..f758b8e6c 100644 --- a/tests/scenarios/cassettes/v1/monitors/Monitors-group-search-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/monitors/Monitors-group-search-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/monitor/groups/search"}, "response": {"body": {"string": "{\"counts\":{\"status\":[{\"count\":196,\"name\":\"Alert\"},{\"count\":123,\"name\":\"OK\"}],\"muted\":[{\"count\":319,\"name\":false}],\"tag\":[{\"count\":195,\"name\":\"check_status:live\"},{\"count\":192,\"name\":\"probe_dc:aws:us-east-2\"},{\"count\":192,\"name\":\"testing:api\"},{\"count\":114,\"name\":\"check_type:api\"},{\"count\":27,\"name\":\"check_type:api-udp\"},{\"count\":27,\"name\":\"check_type:api-websocket\"},{\"count\":24,\"name\":\"check_type:api-multi\"},{\"count\":22,\"name\":\"env:ci\"},{\"count\":3,\"name\":\"check_type:api-icmp\"},{\"count\":3,\"name\":\"client:go\"},{\"count\":3,\"name\":\"probe_dc:aws:ap-northeast-1\"},{\"count\":3,\"name\":\"test\"},{\"count\":1,\"name\":\"log\"},{\"count\":1,\"name\":\"terraform\"},{\"count\":1,\"name\":\"test:examplecheckifamonitorcanbedeletedreturnsokresponse1637578686\"},{\"count\":1,\"name\":\"test:examplecheckifamonitorcanbedeletedreturnsokresponse1637578811\"},{\"count\":1,\"name\":\"test:examplecheckifamonitorcanbedeletedreturnsokresponse1637578841\"},{\"count\":1,\"name\":\"test:examplegetamonitorsdetailsreturnsokresponse1640441498\"},{\"count\":1,\"name\":\"test:examplescheduleamonitordowntimereturnsokresponse1640441496\"},{\"count\":1,\"name\":\"test:testcreateanewdashboardwithalertvaluewidget1641382634\"},{\"count\":1,\"name\":\"test:testgocheckifamonitorcanbedeletedreturnsokresponse1639045979\"},{\"count\":1,\"name\":\"test:testgoeditamonitorreturnsokresponse1639046265\"},{\"count\":1,\"name\":\"test:testgogetamonitorsdetailsreturnsokresponse1639046265\"},{\"count\":1,\"name\":\"test:testgoscheduleamonitordowntimereturnsokresponse1639045977\"},{\"count\":1,\"name\":\"test:testpythoncheckifamonitorcanbedeletedreturnsokresponse1638987034\"},{\"count\":1,\"name\":\"test:testpythoncheckifamonitorcanbedeletedreturnsokresponse1639137875\"},{\"count\":1,\"name\":\"test:testpythondeleteamonitorreturnsokresponse1638987038\"},{\"count\":1,\"name\":\"test:testpythoneditamonitorreturnsokresponse1638926914\"},{\"count\":1,\"name\":\"test:testpythoneditamonitorreturnsokresponse1638987036\"},{\"count\":1,\"name\":\"test:testpythongetamonitorsdetailsreturnsokresponse1638987027\"},{\"count\":1,\"name\":\"test:testpythonscheduleamonitordowntimereturnsokresponse1638987043\"},{\"count\":1,\"name\":\"test:testscheduleamonitordowntimereturnsokresponse1640112907\"},{\"count\":1,\"name\":\"test:testtypescripteditamonitorreturnsokresponse1639138007\"},{\"count\":1,\"name\":\"test:testtypescriptgetamonitorsdetailsreturnsokresponse1639138007\"},{\"count\":1,\"name\":\"test:testtypescriptscheduleamonitordowntimereturnsokresponse1640111492\"},{\"count\":1,\"name\":\"test:testtypescriptscheduleamonitordowntimereturnsokresponse1640112725\"}],\"type\":[{\"count\":195,\"name\":\"synthetics\"},{\"count\":54,\"name\":\"custom\"},{\"count\":39,\"name\":\"metric\"},{\"count\":31,\"name\":\"log\"}]},\"groups\":[{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Create_an_API_test_returns_OK_Returns_the_created_test_details_response_1641339729\",\"team_tags\":[],\"last_triggered_ts\":1641339795,\"group\":\"total\",\"downtimes\":[],\"monitor_id\":59586255,\"priority\":5,\"muted\":false,\"group_tags\":[\"total\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Create_an_API_test_returns_OK_Returns_the_created_test_details_response_1641339729\",\"team_tags\":[],\"last_triggered_ts\":1641339795,\"group\":\"aws:us-east-2\",\"downtimes\":[],\"monitor_id\":59586255,\"priority\":5,\"muted\":false,\"group_tags\":[\"aws:us-east-2\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Create_an_API_test_returns_OK_Returns_the_created_test_details_response_1641339729\",\"team_tags\":[],\"last_triggered_ts\":1641339795,\"group\":\"@SYNTHETICS_OVERALL@\",\"downtimes\":[],\"monitor_id\":59586255,\"priority\":5,\"muted\":false,\"group_tags\":[\"@SYNTHETICS_OVERALL@\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Trigger_Synthetics_tests_returns_OK_response_1641339731\",\"team_tags\":[],\"last_triggered_ts\":1641339824,\"group\":\"aws:us-east-2\",\"downtimes\":[],\"monitor_id\":59586284,\"priority\":5,\"muted\":false,\"group_tags\":[\"aws:us-east-2\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Trigger_Synthetics_tests_returns_OK_response_1641339731\",\"team_tags\":[],\"last_triggered_ts\":1641339824,\"group\":\"total\",\"downtimes\":[],\"monitor_id\":59586284,\"priority\":5,\"muted\":false,\"group_tags\":[\"total\"]},{\"status\":\"OK\",\"last_nodata_ts\":0,\"env_tags\":[\"ci\"],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"test:testpythoneditamonitorreturnsokresponse1638926914\",\"env:ci\"],\"monitor_name\":\"Test-Python-Edit_a_monitor_returns_OK_response-1638926914\",\"team_tags\":[],\"last_triggered_ts\":0,\"group\":\"total\",\"downtimes\":[],\"monitor_id\":56889922,\"priority\":3,\"muted\":false,\"group_tags\":[\"total\"]},{\"status\":\"OK\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[],\"monitor_name\":\"[Synthetic Private Locations] {{location_id.name}} is underprovisioned\",\"team_tags\":[],\"last_triggered_ts\":0,\"group\":\"location_id:pl:gcp-integrations-lab-527d63de5764c9fdad65fd1a5ac64a8e\",\"downtimes\":[],\"monitor_id\":52529358,\"priority\":null,\"muted\":false,\"group_tags\":[\"location_id:pl:gcp-integrations-lab-527d63de5764c9fdad65fd1a5ac64a8e\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Trigger_Synthetics_tests_returns_OK_response_1641339731\",\"team_tags\":[],\"last_triggered_ts\":1641339824,\"group\":\"@SYNTHETICS_OVERALL@\",\"downtimes\":[],\"monitor_id\":59586284,\"priority\":5,\"muted\":false,\"group_tags\":[\"@SYNTHETICS_OVERALL@\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Create_an_API_test_returns_OK_Returns_the_created_test_details_response_1641411729\",\"team_tags\":[],\"last_triggered_ts\":1641411818,\"group\":\"aws:us-east-2\",\"downtimes\":[],\"monitor_id\":59701958,\"priority\":5,\"muted\":false,\"group_tags\":[\"aws:us-east-2\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Create_an_API_test_returns_OK_Returns_the_created_test_details_response_1641411729\",\"team_tags\":[],\"last_triggered_ts\":1641411818,\"group\":\"total\",\"downtimes\":[],\"monitor_id\":59701958,\"priority\":5,\"muted\":false,\"group_tags\":[\"total\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Create_an_API_test_returns_OK_Returns_the_created_test_details_response_1641411729\",\"team_tags\":[],\"last_triggered_ts\":1641411818,\"group\":\"@SYNTHETICS_OVERALL@\",\"downtimes\":[],\"monitor_id\":59701958,\"priority\":5,\"muted\":false,\"group_tags\":[\"@SYNTHETICS_OVERALL@\"]},{\"status\":\"OK\",\"last_nodata_ts\":0,\"env_tags\":[\"ci\"],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"test:testtypescripteditamonitorreturnsokresponse1639138007\",\"env:ci\"],\"monitor_name\":\"Test-Typescript-Edit_a_monitor_returns_OK_response-1639138007\",\"team_tags\":[],\"last_triggered_ts\":0,\"group\":\"total\",\"downtimes\":[],\"monitor_id\":57134512,\"priority\":3,\"muted\":false,\"group_tags\":[\"total\"]},{\"status\":\"OK\",\"last_nodata_ts\":0,\"env_tags\":[\"ci\"],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"test:testpythonscheduleamonitordowntimereturnsokresponse1638987043\",\"env:ci\"],\"monitor_name\":\"Test-Python-Schedule_a_monitor_downtime_returns_OK_response-1638987043\",\"team_tags\":[],\"last_triggered_ts\":0,\"group\":\"total\",\"downtimes\":[],\"monitor_id\":56957481,\"priority\":3,\"muted\":false,\"group_tags\":[\"total\"]},{\"status\":\"OK\",\"last_nodata_ts\":0,\"env_tags\":[\"ci\"],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"env:ci\",\"test:examplecheckifamonitorcanbedeletedreturnsokresponse1637578811\"],\"monitor_name\":\"Example-Check_if_a_monitor_can_be_deleted_returns_OK_response_1637578811\",\"team_tags\":[],\"last_triggered_ts\":0,\"group\":\"total\",\"downtimes\":[],\"monitor_id\":55356159,\"priority\":3,\"muted\":false,\"group_tags\":[\"total\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Get_a_synthetics_monitor_s_details_1641339731\",\"team_tags\":[],\"last_triggered_ts\":1641339820,\"group\":\"aws:us-east-2\",\"downtimes\":[],\"monitor_id\":59586280,\"priority\":5,\"muted\":false,\"group_tags\":[\"aws:us-east-2\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Get_a_synthetics_monitor_s_details_1641339731\",\"team_tags\":[],\"last_triggered_ts\":1641339820,\"group\":\"@SYNTHETICS_OVERALL@\",\"downtimes\":[],\"monitor_id\":59586280,\"priority\":5,\"muted\":false,\"group_tags\":[\"@SYNTHETICS_OVERALL@\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Get_a_synthetics_monitor_s_details_1641339731\",\"team_tags\":[],\"last_triggered_ts\":1641339820,\"group\":\"total\",\"downtimes\":[],\"monitor_id\":59586280,\"priority\":5,\"muted\":false,\"group_tags\":[\"total\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Get_a_synthetics_monitor_s_details_1641426133\",\"team_tags\":[],\"last_triggered_ts\":1641426225,\"group\":\"total\",\"downtimes\":[],\"monitor_id\":59771265,\"priority\":5,\"muted\":false,\"group_tags\":[\"total\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Get_a_synthetics_monitor_s_details_1641426133\",\"team_tags\":[],\"last_triggered_ts\":1641426225,\"group\":\"@SYNTHETICS_OVERALL@\",\"downtimes\":[],\"monitor_id\":59771265,\"priority\":5,\"muted\":false,\"group_tags\":[\"@SYNTHETICS_OVERALL@\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Get_a_synthetics_monitor_s_details_1641426133\",\"team_tags\":[],\"last_triggered_ts\":1641426225,\"group\":\"aws:us-east-2\",\"downtimes\":[],\"monitor_id\":59771265,\"priority\":5,\"muted\":false,\"group_tags\":[\"aws:us-east-2\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api-websocket\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Create_an_API_test_with_WEBSOCKET_subtype_returns_OK_Returns_the_created_test_details_response_1641310927\",\"team_tags\":[],\"last_triggered_ts\":1641311003,\"group\":\"@SYNTHETICS_OVERALL@\",\"downtimes\":[],\"monitor_id\":59417123,\"priority\":5,\"muted\":false,\"group_tags\":[\"@SYNTHETICS_OVERALL@\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api-websocket\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Create_an_API_test_with_WEBSOCKET_subtype_returns_OK_Returns_the_created_test_details_response_1641310927\",\"team_tags\":[],\"last_triggered_ts\":1641311003,\"group\":\"total\",\"downtimes\":[],\"monitor_id\":59417123,\"priority\":5,\"muted\":false,\"group_tags\":[\"total\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api-websocket\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Create_an_API_test_with_WEBSOCKET_subtype_returns_OK_Returns_the_created_test_details_response_1641310927\",\"team_tags\":[],\"last_triggered_ts\":1641311003,\"group\":\"aws:us-east-2\",\"downtimes\":[],\"monitor_id\":59417123,\"priority\":5,\"muted\":false,\"group_tags\":[\"aws:us-east-2\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Test-Edit_an_API_test_returns_OK_response-1641382542\",\"team_tags\":[],\"last_triggered_ts\":1641382576,\"group\":\"total\",\"downtimes\":[],\"monitor_id\":59653156,\"priority\":5,\"muted\":false,\"group_tags\":[\"total\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Test-Edit_an_API_test_returns_OK_response-1641382542\",\"team_tags\":[],\"last_triggered_ts\":1641382576,\"group\":\"@SYNTHETICS_OVERALL@\",\"downtimes\":[],\"monitor_id\":59653156,\"priority\":5,\"muted\":false,\"group_tags\":[\"@SYNTHETICS_OVERALL@\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Test-Edit_an_API_test_returns_OK_response-1641382542\",\"team_tags\":[],\"last_triggered_ts\":1641382576,\"group\":\"aws:us-east-2\",\"downtimes\":[],\"monitor_id\":59653156,\"priority\":5,\"muted\":false,\"group_tags\":[\"aws:us-east-2\"]},{\"status\":\"OK\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[],\"monitor_name\":\"tf-TestAccDatadogMonitorJSONBasic-83207-1638923106\",\"team_tags\":[],\"last_triggered_ts\":0,\"group\":\"host:compute-0\",\"downtimes\":[],\"monitor_id\":56886190,\"priority\":null,\"muted\":false,\"group_tags\":[\"host:compute-0\"]},{\"status\":\"OK\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[],\"monitor_name\":\"tf-TestAccDatadogMonitorJSONBasic-83207-1638923106\",\"team_tags\":[],\"last_triggered_ts\":0,\"group\":\"host:master-0\",\"downtimes\":[],\"monitor_id\":56886190,\"priority\":null,\"muted\":false,\"group_tags\":[\"host:master-0\"]},{\"status\":\"OK\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[],\"monitor_name\":\"tf-TestAccDatadogMonitorJSONBasic-83207-1638923106\",\"team_tags\":[],\"last_triggered_ts\":0,\"group\":\"host:backup-restore-0\",\"downtimes\":[],\"monitor_id\":56886190,\"priority\":null,\"muted\":false,\"group_tags\":[\"host:backup-restore-0\"]},{\"status\":\"OK\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[],\"monitor_name\":\"tf-TestAccDatadogMonitorJSONBasic-83207-1638923106\",\"team_tags\":[],\"last_triggered_ts\":0,\"group\":\"host:pks-db-0\",\"downtimes\":[],\"monitor_id\":56886190,\"priority\":null,\"muted\":false,\"group_tags\":[\"host:pks-db-0\"]}],\"metadata\":{\"total_count\":319,\"page_count\":11,\"page\":0,\"per_page\":30}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:51:00 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/monitor/groups/search" + }, + "response": { + "body": { + "string": "{\"counts\":{\"status\":[{\"count\":196,\"name\":\"Alert\"},{\"count\":123,\"name\":\"OK\"}],\"muted\":[{\"count\":319,\"name\":false}],\"tag\":[{\"count\":195,\"name\":\"check_status:live\"},{\"count\":192,\"name\":\"probe_dc:aws:us-east-2\"},{\"count\":192,\"name\":\"testing:api\"},{\"count\":114,\"name\":\"check_type:api\"},{\"count\":27,\"name\":\"check_type:api-udp\"},{\"count\":27,\"name\":\"check_type:api-websocket\"},{\"count\":24,\"name\":\"check_type:api-multi\"},{\"count\":22,\"name\":\"env:ci\"},{\"count\":3,\"name\":\"check_type:api-icmp\"},{\"count\":3,\"name\":\"client:go\"},{\"count\":3,\"name\":\"probe_dc:aws:ap-northeast-1\"},{\"count\":3,\"name\":\"test\"},{\"count\":1,\"name\":\"log\"},{\"count\":1,\"name\":\"terraform\"},{\"count\":1,\"name\":\"test:examplecheckifamonitorcanbedeletedreturnsokresponse1637578686\"},{\"count\":1,\"name\":\"test:examplecheckifamonitorcanbedeletedreturnsokresponse1637578811\"},{\"count\":1,\"name\":\"test:examplecheckifamonitorcanbedeletedreturnsokresponse1637578841\"},{\"count\":1,\"name\":\"test:examplegetamonitorsdetailsreturnsokresponse1640441498\"},{\"count\":1,\"name\":\"test:examplescheduleamonitordowntimereturnsokresponse1640441496\"},{\"count\":1,\"name\":\"test:testcreateanewdashboardwithalertvaluewidget1641382634\"},{\"count\":1,\"name\":\"test:testgocheckifamonitorcanbedeletedreturnsokresponse1639045979\"},{\"count\":1,\"name\":\"test:testgoeditamonitorreturnsokresponse1639046265\"},{\"count\":1,\"name\":\"test:testgogetamonitorsdetailsreturnsokresponse1639046265\"},{\"count\":1,\"name\":\"test:testgoscheduleamonitordowntimereturnsokresponse1639045977\"},{\"count\":1,\"name\":\"test:testpythoncheckifamonitorcanbedeletedreturnsokresponse1638987034\"},{\"count\":1,\"name\":\"test:testpythoncheckifamonitorcanbedeletedreturnsokresponse1639137875\"},{\"count\":1,\"name\":\"test:testpythondeleteamonitorreturnsokresponse1638987038\"},{\"count\":1,\"name\":\"test:testpythoneditamonitorreturnsokresponse1638926914\"},{\"count\":1,\"name\":\"test:testpythoneditamonitorreturnsokresponse1638987036\"},{\"count\":1,\"name\":\"test:testpythongetamonitorsdetailsreturnsokresponse1638987027\"},{\"count\":1,\"name\":\"test:testpythonscheduleamonitordowntimereturnsokresponse1638987043\"},{\"count\":1,\"name\":\"test:testscheduleamonitordowntimereturnsokresponse1640112907\"},{\"count\":1,\"name\":\"test:testtypescripteditamonitorreturnsokresponse1639138007\"},{\"count\":1,\"name\":\"test:testtypescriptgetamonitorsdetailsreturnsokresponse1639138007\"},{\"count\":1,\"name\":\"test:testtypescriptscheduleamonitordowntimereturnsokresponse1640111492\"},{\"count\":1,\"name\":\"test:testtypescriptscheduleamonitordowntimereturnsokresponse1640112725\"}],\"type\":[{\"count\":195,\"name\":\"synthetics\"},{\"count\":54,\"name\":\"custom\"},{\"count\":39,\"name\":\"metric\"},{\"count\":31,\"name\":\"log\"}]},\"groups\":[{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Create_an_API_test_returns_OK_Returns_the_created_test_details_response_1641339729\",\"team_tags\":[],\"last_triggered_ts\":1641339795,\"group\":\"total\",\"downtimes\":[],\"monitor_id\":59586255,\"priority\":5,\"muted\":false,\"group_tags\":[\"total\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Create_an_API_test_returns_OK_Returns_the_created_test_details_response_1641339729\",\"team_tags\":[],\"last_triggered_ts\":1641339795,\"group\":\"aws:us-east-2\",\"downtimes\":[],\"monitor_id\":59586255,\"priority\":5,\"muted\":false,\"group_tags\":[\"aws:us-east-2\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Create_an_API_test_returns_OK_Returns_the_created_test_details_response_1641339729\",\"team_tags\":[],\"last_triggered_ts\":1641339795,\"group\":\"@SYNTHETICS_OVERALL@\",\"downtimes\":[],\"monitor_id\":59586255,\"priority\":5,\"muted\":false,\"group_tags\":[\"@SYNTHETICS_OVERALL@\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Trigger_Synthetics_tests_returns_OK_response_1641339731\",\"team_tags\":[],\"last_triggered_ts\":1641339824,\"group\":\"aws:us-east-2\",\"downtimes\":[],\"monitor_id\":59586284,\"priority\":5,\"muted\":false,\"group_tags\":[\"aws:us-east-2\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Trigger_Synthetics_tests_returns_OK_response_1641339731\",\"team_tags\":[],\"last_triggered_ts\":1641339824,\"group\":\"total\",\"downtimes\":[],\"monitor_id\":59586284,\"priority\":5,\"muted\":false,\"group_tags\":[\"total\"]},{\"status\":\"OK\",\"last_nodata_ts\":0,\"env_tags\":[\"ci\"],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"test:testpythoneditamonitorreturnsokresponse1638926914\",\"env:ci\"],\"monitor_name\":\"Test-Python-Edit_a_monitor_returns_OK_response-1638926914\",\"team_tags\":[],\"last_triggered_ts\":0,\"group\":\"total\",\"downtimes\":[],\"monitor_id\":56889922,\"priority\":3,\"muted\":false,\"group_tags\":[\"total\"]},{\"status\":\"OK\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[],\"monitor_name\":\"[Synthetic Private Locations] {{location_id.name}} is underprovisioned\",\"team_tags\":[],\"last_triggered_ts\":0,\"group\":\"location_id:pl:gcp-integrations-lab-527d63de5764c9fdad65fd1a5ac64a8e\",\"downtimes\":[],\"monitor_id\":52529358,\"priority\":null,\"muted\":false,\"group_tags\":[\"location_id:pl:gcp-integrations-lab-527d63de5764c9fdad65fd1a5ac64a8e\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Trigger_Synthetics_tests_returns_OK_response_1641339731\",\"team_tags\":[],\"last_triggered_ts\":1641339824,\"group\":\"@SYNTHETICS_OVERALL@\",\"downtimes\":[],\"monitor_id\":59586284,\"priority\":5,\"muted\":false,\"group_tags\":[\"@SYNTHETICS_OVERALL@\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Create_an_API_test_returns_OK_Returns_the_created_test_details_response_1641411729\",\"team_tags\":[],\"last_triggered_ts\":1641411818,\"group\":\"aws:us-east-2\",\"downtimes\":[],\"monitor_id\":59701958,\"priority\":5,\"muted\":false,\"group_tags\":[\"aws:us-east-2\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Create_an_API_test_returns_OK_Returns_the_created_test_details_response_1641411729\",\"team_tags\":[],\"last_triggered_ts\":1641411818,\"group\":\"total\",\"downtimes\":[],\"monitor_id\":59701958,\"priority\":5,\"muted\":false,\"group_tags\":[\"total\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Create_an_API_test_returns_OK_Returns_the_created_test_details_response_1641411729\",\"team_tags\":[],\"last_triggered_ts\":1641411818,\"group\":\"@SYNTHETICS_OVERALL@\",\"downtimes\":[],\"monitor_id\":59701958,\"priority\":5,\"muted\":false,\"group_tags\":[\"@SYNTHETICS_OVERALL@\"]},{\"status\":\"OK\",\"last_nodata_ts\":0,\"env_tags\":[\"ci\"],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"test:testtypescripteditamonitorreturnsokresponse1639138007\",\"env:ci\"],\"monitor_name\":\"Test-Typescript-Edit_a_monitor_returns_OK_response-1639138007\",\"team_tags\":[],\"last_triggered_ts\":0,\"group\":\"total\",\"downtimes\":[],\"monitor_id\":57134512,\"priority\":3,\"muted\":false,\"group_tags\":[\"total\"]},{\"status\":\"OK\",\"last_nodata_ts\":0,\"env_tags\":[\"ci\"],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"test:testpythonscheduleamonitordowntimereturnsokresponse1638987043\",\"env:ci\"],\"monitor_name\":\"Test-Python-Schedule_a_monitor_downtime_returns_OK_response-1638987043\",\"team_tags\":[],\"last_triggered_ts\":0,\"group\":\"total\",\"downtimes\":[],\"monitor_id\":56957481,\"priority\":3,\"muted\":false,\"group_tags\":[\"total\"]},{\"status\":\"OK\",\"last_nodata_ts\":0,\"env_tags\":[\"ci\"],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"env:ci\",\"test:examplecheckifamonitorcanbedeletedreturnsokresponse1637578811\"],\"monitor_name\":\"Example-Check_if_a_monitor_can_be_deleted_returns_OK_response_1637578811\",\"team_tags\":[],\"last_triggered_ts\":0,\"group\":\"total\",\"downtimes\":[],\"monitor_id\":55356159,\"priority\":3,\"muted\":false,\"group_tags\":[\"total\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Get_a_synthetics_monitor_s_details_1641339731\",\"team_tags\":[],\"last_triggered_ts\":1641339820,\"group\":\"aws:us-east-2\",\"downtimes\":[],\"monitor_id\":59586280,\"priority\":5,\"muted\":false,\"group_tags\":[\"aws:us-east-2\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Get_a_synthetics_monitor_s_details_1641339731\",\"team_tags\":[],\"last_triggered_ts\":1641339820,\"group\":\"@SYNTHETICS_OVERALL@\",\"downtimes\":[],\"monitor_id\":59586280,\"priority\":5,\"muted\":false,\"group_tags\":[\"@SYNTHETICS_OVERALL@\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Get_a_synthetics_monitor_s_details_1641339731\",\"team_tags\":[],\"last_triggered_ts\":1641339820,\"group\":\"total\",\"downtimes\":[],\"monitor_id\":59586280,\"priority\":5,\"muted\":false,\"group_tags\":[\"total\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Get_a_synthetics_monitor_s_details_1641426133\",\"team_tags\":[],\"last_triggered_ts\":1641426225,\"group\":\"total\",\"downtimes\":[],\"monitor_id\":59771265,\"priority\":5,\"muted\":false,\"group_tags\":[\"total\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Get_a_synthetics_monitor_s_details_1641426133\",\"team_tags\":[],\"last_triggered_ts\":1641426225,\"group\":\"@SYNTHETICS_OVERALL@\",\"downtimes\":[],\"monitor_id\":59771265,\"priority\":5,\"muted\":false,\"group_tags\":[\"@SYNTHETICS_OVERALL@\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Get_a_synthetics_monitor_s_details_1641426133\",\"team_tags\":[],\"last_triggered_ts\":1641426225,\"group\":\"aws:us-east-2\",\"downtimes\":[],\"monitor_id\":59771265,\"priority\":5,\"muted\":false,\"group_tags\":[\"aws:us-east-2\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api-websocket\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Create_an_API_test_with_WEBSOCKET_subtype_returns_OK_Returns_the_created_test_details_response_1641310927\",\"team_tags\":[],\"last_triggered_ts\":1641311003,\"group\":\"@SYNTHETICS_OVERALL@\",\"downtimes\":[],\"monitor_id\":59417123,\"priority\":5,\"muted\":false,\"group_tags\":[\"@SYNTHETICS_OVERALL@\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api-websocket\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Create_an_API_test_with_WEBSOCKET_subtype_returns_OK_Returns_the_created_test_details_response_1641310927\",\"team_tags\":[],\"last_triggered_ts\":1641311003,\"group\":\"total\",\"downtimes\":[],\"monitor_id\":59417123,\"priority\":5,\"muted\":false,\"group_tags\":[\"total\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api-websocket\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Example-Create_an_API_test_with_WEBSOCKET_subtype_returns_OK_Returns_the_created_test_details_response_1641310927\",\"team_tags\":[],\"last_triggered_ts\":1641311003,\"group\":\"aws:us-east-2\",\"downtimes\":[],\"monitor_id\":59417123,\"priority\":5,\"muted\":false,\"group_tags\":[\"aws:us-east-2\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Test-Edit_an_API_test_returns_OK_response-1641382542\",\"team_tags\":[],\"last_triggered_ts\":1641382576,\"group\":\"total\",\"downtimes\":[],\"monitor_id\":59653156,\"priority\":5,\"muted\":false,\"group_tags\":[\"total\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Test-Edit_an_API_test_returns_OK_response-1641382542\",\"team_tags\":[],\"last_triggered_ts\":1641382576,\"group\":\"@SYNTHETICS_OVERALL@\",\"downtimes\":[],\"monitor_id\":59653156,\"priority\":5,\"muted\":false,\"group_tags\":[\"@SYNTHETICS_OVERALL@\"]},{\"status\":\"Alert\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"monitor_name\":\"Test-Edit_an_API_test_returns_OK_response-1641382542\",\"team_tags\":[],\"last_triggered_ts\":1641382576,\"group\":\"aws:us-east-2\",\"downtimes\":[],\"monitor_id\":59653156,\"priority\":5,\"muted\":false,\"group_tags\":[\"aws:us-east-2\"]},{\"status\":\"OK\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[],\"monitor_name\":\"tf-TestAccDatadogMonitorJSONBasic-83207-1638923106\",\"team_tags\":[],\"last_triggered_ts\":0,\"group\":\"host:compute-0\",\"downtimes\":[],\"monitor_id\":56886190,\"priority\":null,\"muted\":false,\"group_tags\":[\"host:compute-0\"]},{\"status\":\"OK\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[],\"monitor_name\":\"tf-TestAccDatadogMonitorJSONBasic-83207-1638923106\",\"team_tags\":[],\"last_triggered_ts\":0,\"group\":\"host:master-0\",\"downtimes\":[],\"monitor_id\":56886190,\"priority\":null,\"muted\":false,\"group_tags\":[\"host:master-0\"]},{\"status\":\"OK\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[],\"monitor_name\":\"tf-TestAccDatadogMonitorJSONBasic-83207-1638923106\",\"team_tags\":[],\"last_triggered_ts\":0,\"group\":\"host:backup-restore-0\",\"downtimes\":[],\"monitor_id\":56886190,\"priority\":null,\"muted\":false,\"group_tags\":[\"host:backup-restore-0\"]},{\"status\":\"OK\",\"last_nodata_ts\":0,\"env_tags\":[],\"muted_remaining\":null,\"muted_until_ts\":null,\"all_tags\":[],\"monitor_name\":\"tf-TestAccDatadogMonitorJSONBasic-83207-1638923106\",\"team_tags\":[],\"last_triggered_ts\":0,\"group\":\"host:pks-db-0\",\"downtimes\":[],\"monitor_id\":56886190,\"priority\":null,\"muted\":false,\"group_tags\":[\"host:pks-db-0\"]}],\"metadata\":{\"total_count\":319,\"page_count\":11,\"page\":0,\"per_page\":30}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:51:00 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/monitors/Monitors-search-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/monitors/Monitors-search-returns-Bad-Request-response.json index ab2670063..d31971eb0 100644 --- a/tests/scenarios/cassettes/v1/monitors/Monitors-search-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/monitors/Monitors-search-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/monitor/search?query=status%3Anotastatus"}, "response": {"body": {"string": "{\"errors\":[\"Query parsing error: 'notastatus' is not a valid monitor status\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Thu, 06 Jan 2022 00:51:00 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/monitor/search?query=status%3Anotastatus" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Query parsing error: 'notastatus' is not a valid monitor status\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:51:00 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/monitors/Monitors-search-returns-OK-response.json b/tests/scenarios/cassettes/v1/monitors/Monitors-search-returns-OK-response.json index 7e6215caa..62330eb5b 100644 --- a/tests/scenarios/cassettes/v1/monitors/Monitors-search-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/monitors/Monitors-search-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/monitor/search"}, "response": {"body": {"string": "{\"counts\":{\"status\":[{\"count\":96,\"name\":\"No Data\"},{\"count\":65,\"name\":\"Alert\"},{\"count\":38,\"name\":\"OK\"}],\"muted\":[{\"count\":182,\"name\":false},{\"count\":17,\"name\":true}],\"tag\":[{\"count\":88,\"name\":\"probe_dc:aws:us-east-2\"},{\"count\":77,\"name\":\"check_status:live\"},{\"count\":73,\"name\":\"testing:api\"},{\"count\":50,\"name\":\"check_type:api\"},{\"count\":46,\"name\":\"env:ci\"},{\"count\":17,\"name\":\"check_status:paused\"},{\"count\":13,\"name\":\"check_type:browser\"},{\"count\":13,\"name\":\"testing:browser\"},{\"count\":11,\"name\":\"foo:bar\"},{\"count\":9,\"name\":\"check_type:api-multi\"},{\"count\":9,\"name\":\"check_type:api-udp\"},{\"count\":9,\"name\":\"check_type:api-websocket\"},{\"count\":6,\"name\":\"app:webserver\"},{\"count\":6,\"name\":\"baz\"},{\"count\":6,\"name\":\"frontend\"},{\"count\":6,\"name\":\"probe_dc:aws:eu-central-1\"},{\"count\":4,\"name\":\"environment:test\"},{\"count\":4,\"name\":\"generator:slops\"},{\"count\":4,\"name\":\"release:e6a2686\"},{\"count\":4,\"name\":\"sli:latency\"},{\"count\":4,\"name\":\"systemid:splunk\"},{\"count\":4,\"name\":\"team:developer_insights\"},{\"count\":3,\"name\":\"client:go\"},{\"count\":3,\"name\":\"env:test\"},{\"count\":3,\"name\":\"foo\"},{\"count\":3,\"name\":\"slotype:alb\"},{\"count\":3,\"name\":\"test\"},{\"count\":3,\"name\":\"test:examplecreateacipipelinesmonitorreturnsokresponse\"},{\"count\":2,\"name\":\"bar:baz\"},{\"count\":2,\"name\":\"check_type:api-tcp\"},{\"count\":2,\"name\":\"testing:api-tcp\"},{\"count\":1,\"name\":\"check_type:api-dns\"},{\"count\":1,\"name\":\"check_type:api-ssl\"},{\"count\":1,\"name\":\"log\"},{\"count\":1,\"name\":\"multistep\"},{\"count\":1,\"name\":\"slotype:elb\"},{\"count\":1,\"name\":\"terraform\"},{\"count\":1,\"name\":\"test:examplecheckifamonitorcanbedeletedreturnsokresponse1637578686\"},{\"count\":1,\"name\":\"test:examplecheckifamonitorcanbedeletedreturnsokresponse1637578811\"},{\"count\":1,\"name\":\"test:examplecheckifamonitorcanbedeletedreturnsokresponse1637578841\"},{\"count\":1,\"name\":\"test:examplecreateamonitorreturnsokresponse\"},{\"count\":1,\"name\":\"test:examplegetamonitorsdetailsreturnsokresponse1640441498\"},{\"count\":1,\"name\":\"test:examplescheduleamonitordowntimereturnsokresponse1640441496\"},{\"count\":1,\"name\":\"test:testcreateacipipelinesmonitorreturnsokresponse1640105320\"},{\"count\":1,\"name\":\"test:testcreateacipipelinesmonitorreturnsokresponse1640114122\"},{\"count\":1,\"name\":\"test:testcreateacipipelinesmonitorreturnsokresponse1640114223\"},{\"count\":1,\"name\":\"test:testcreateacipipelinesmonitorreturnsokresponse1640114238\"},{\"count\":1,\"name\":\"test:testcreateacipipelinesmonitorreturnsokresponse1640114278\"},{\"count\":1,\"name\":\"test:testcreateacipipelinesmonitorreturnsokresponse1640114289\"},{\"count\":1,\"name\":\"test:testcreateacipipelinesmonitorreturnsokresponse1640114357\"},{\"count\":1,\"name\":\"test:testcreateacipipelinesmonitorreturnsokresponse1640114432\"},{\"count\":1,\"name\":\"test:testcreateacipipelinesmonitorreturnsokresponse1640114509\"},{\"count\":1,\"name\":\"test:testcreateacipipelinesmonitorreturnsokresponse1640114535\"},{\"count\":1,\"name\":\"test:testcreateacipipelinesmonitorreturnsokresponse1640114567\"},{\"count\":1,\"name\":\"test:testcreateacipipelinesmonitorreturnsokresponse1640115169\"},{\"count\":1,\"name\":\"test:testcreateamonitorreturnsokresponse1639067826\"},{\"count\":1,\"name\":\"test:testcreateamonitorreturnsokresponse1639072243\"},{\"count\":1,\"name\":\"test:testcreateamonitorreturnsokresponse1640112911\"},{\"count\":1,\"name\":\"test:testcreateanewdashboardwithalertvaluewidget1641382634\"},{\"count\":1,\"name\":\"test:testgocheckifamonitorcanbedeletedreturnsokresponse1639045979\"},{\"count\":1,\"name\":\"test:testgocreateamonitorreturnsokresponse1639045979\"},{\"count\":1,\"name\":\"test:testgoeditamonitorreturnsokresponse1639046265\"},{\"count\":1,\"name\":\"test:testgogetamonitorsdetailsreturnsokresponse1639046265\"},{\"count\":1,\"name\":\"test:testgoscheduleamonitordowntimereturnsokresponse1639045977\"},{\"count\":1,\"name\":\"test:testpythoncheckifamonitorcanbedeletedreturnsokresponse1638987034\"},{\"count\":1,\"name\":\"test:testpythoncheckifamonitorcanbedeletedreturnsokresponse1639137875\"},{\"count\":1,\"name\":\"test:testpythoncreateamonitorreturnsokresponse1639137882\"},{\"count\":1,\"name\":\"test:testpythondeleteamonitorreturnsokresponse1638987038\"},{\"count\":1,\"name\":\"test:testpythoneditamonitorreturnsokresponse1638926914\"},{\"count\":1,\"name\":\"test:testpythoneditamonitorreturnsokresponse1638987036\"},{\"count\":1,\"name\":\"test:testpythongetamonitorsdetailsreturnsokresponse1638987027\"},{\"count\":1,\"name\":\"test:testpythonscheduleamonitordowntimereturnsokresponse1638987043\"},{\"count\":1,\"name\":\"test:testscheduleamonitordowntimereturnsokresponse1640112907\"},{\"count\":1,\"name\":\"test:testtypescriptcreateamonitorreturnsokresponse1638875400\"},{\"count\":1,\"name\":\"test:testtypescriptcreateamonitorreturnsokresponse1640111495\"},{\"count\":1,\"name\":\"test:testtypescriptcreateamonitorreturnsokresponse1640112727\"},{\"count\":1,\"name\":\"test:testtypescripteditamonitorreturnsokresponse1639138007\"},{\"count\":1,\"name\":\"test:testtypescriptgetamonitorsdetailsreturnsokresponse1639138007\"},{\"count\":1,\"name\":\"test:testtypescriptscheduleamonitordowntimereturnsokresponse1640111492\"},{\"count\":1,\"name\":\"test:testtypescriptscheduleamonitordowntimereturnsokresponse1640112725\"}],\"type\":[{\"count\":94,\"name\":\"synthetics\"},{\"count\":40,\"name\":\"log\"},{\"count\":28,\"name\":\"metric\"},{\"count\":16,\"name\":\"integration\"},{\"count\":15,\"name\":\"ci-pipelines\"},{\"count\":4,\"name\":\"custom\"},{\"count\":1,\"name\":\"anomaly\"},{\"count\":1,\"name\":\"composite\"}]},\"monitors\":[{\"status\":\"No Data\",\"scopes\":[],\"classification\":\"synthetics\",\"creator\":{\"handle\":\"slavek.kabrda@datadoghq.com\",\"id\":1379826,\"name\":\"Slavek Kabrda\"},\"metrics\":[],\"notifications\":[{\"handle\":\"pagerduty\",\"name\":\"Pagerduty\"}],\"muted_until_ts\":null,\"query\":\"no_query\",\"id\":25641098,\"last_triggered_ts\":null,\"name\":\"[Synthetics] tf-TestAccDatadogSyntheticsSSLTest_Updated-31891-1605197692-updated\",\"tags\":[\"foo:bar\",\"env:test\",\"check_type:api-ssl\",\"check_status:live\",\"probe_dc:aws:eu-central-1\",\"foo\"],\"org_id\":321813,\"priority\":null,\"overall_state_modified\":null,\"restricted_roles\":[],\"type\":\"synthetics alert\"},{\"status\":\"No Data\",\"scopes\":[\"host:host0\"],\"classification\":\"metric\",\"creator\":{\"handle\":\"nicholas.muesch@datadoghq.com\",\"id\":1379811,\"name\":\"Nicholas Muesch\"},\"metrics\":[\"system.net.bytes_rcvd\"],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"avg(last_5m):sum:system.net.bytes_rcvd{host:host0} > 100\",\"id\":20332095,\"last_triggered_ts\":null,\"name\":\"java-listMonitorsTest-20205-1595411987-2\",\"tags\":[],\"org_id\":321813,\"priority\":null,\"overall_state_modified\":null,\"restricted_roles\":[],\"type\":\"metric alert\"},{\"status\":\"No Data\",\"scopes\":[],\"classification\":\"synthetics\",\"creator\":{\"handle\":\"nicholas.muesch@datadoghq.com\",\"id\":1379811,\"name\":\"Nicholas Muesch\"},\"metrics\":[],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"no_query\",\"id\":20314950,\"last_triggered_ts\":null,\"name\":\"[Synthetics] java-testSyntheticsMultipleTestsOperations-20175-1595364791-api\",\"tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"org_id\":321813,\"priority\":null,\"overall_state_modified\":null,\"restricted_roles\":[],\"type\":\"synthetics alert\"},{\"status\":\"Alert\",\"scopes\":[],\"classification\":\"synthetics\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"no_query\",\"id\":59701958,\"last_triggered_ts\":1641411818,\"name\":\"Example-Create_an_API_test_returns_OK_Returns_the_created_test_details_response_1641411729\",\"tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"org_id\":321813,\"priority\":5,\"overall_state_modified\":1641411819,\"restricted_roles\":[],\"type\":\"synthetics alert\"},{\"status\":\"Alert\",\"scopes\":[],\"classification\":\"synthetics\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"no_query\",\"id\":59586255,\"last_triggered_ts\":1641339795,\"name\":\"Example-Create_an_API_test_returns_OK_Returns_the_created_test_details_response_1641339729\",\"tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"org_id\":321813,\"priority\":5,\"overall_state_modified\":1641383895,\"restricted_roles\":[],\"type\":\"synthetics alert\"},{\"status\":\"OK\",\"scopes\":[],\"classification\":\"log\",\"creator\":{\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"id\":2320499,\"name\":\"CI Account\"},\"metrics\":[],\"notifications\":[{\"handle\":\"hipchat-channel\",\"name\":\"hipchat-channel\"}],\"muted_until_ts\":null,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"id\":56889922,\"last_triggered_ts\":null,\"name\":\"Test-Python-Edit_a_monitor_returns_OK_response-1638926914\",\"tags\":[\"test:testpythoneditamonitorreturnsokresponse1638926914\",\"env:ci\"],\"org_id\":321813,\"priority\":3,\"overall_state_modified\":1638927063,\"restricted_roles\":[],\"type\":\"log alert\"},{\"status\":\"OK\",\"scopes\":[\"*\"],\"classification\":\"metric\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[\"synthetics.pl.worker.remaining_slots\"],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"avg(last_30m):avg:synthetics.pl.worker.remaining_slots{*} by {location_id} < 1.5\",\"id\":52529358,\"last_triggered_ts\":null,\"name\":\"[Synthetic Private Locations] {{location_id.name}} is underprovisioned\",\"tags\":[],\"org_id\":321813,\"priority\":null,\"overall_state_modified\":1635848008,\"restricted_roles\":[],\"type\":\"metric alert\"},{\"status\":\"No Data\",\"scopes\":[\"host:foo\",\"environment:foo\"],\"classification\":\"integration\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[\"aws.ec2.cpu\"],\"notifications\":[{\"handle\":\"hipchat-channel\",\"name\":\"hipchat-channel\"}],\"muted_until_ts\":null,\"query\":\"avg(last_1h):avg:aws.ec2.cpu{environment:foo,host:foo} by {host} > 4\",\"id\":35679537,\"last_triggered_ts\":null,\"name\":\"Name for monitor foo\",\"tags\":[\"foo:bar\",\"baz\"],\"org_id\":321813,\"priority\":null,\"overall_state_modified\":1621426290,\"restricted_roles\":[],\"type\":\"query alert\"},{\"status\":\"No Data\",\"scopes\":[],\"classification\":\"synthetics\",\"creator\":{\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"id\":2320499,\"name\":\"CI Account\"},\"metrics\":[],\"notifications\":[{\"handle\":\"datadog.user\",\"name\":\"datadog.user\"}],\"muted_until_ts\":null,\"query\":\"no_query\",\"id\":59417761,\"last_triggered_ts\":null,\"name\":\"[Synthetics] tf-TestAccDatadogSyntheticsDNSTest_Basic-85865-1641311522\",\"tags\":[\"check_status:paused\",\"check_type:api-dns\",\"foo:bar\",\"baz\",\"probe_dc:aws:eu-central-1\"],\"org_id\":321813,\"priority\":null,\"overall_state_modified\":1641311582,\"restricted_roles\":[],\"type\":\"synthetics alert\"},{\"status\":\"No Data\",\"scopes\":[\"host:host0\"],\"classification\":\"metric\",\"creator\":{\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"id\":2320499,\"name\":\"CI Account\"},\"metrics\":[\"system.net.bytes_rcvd\"],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"avg(last_5m):sum:system.net.bytes_rcvd{host:host0} > 100\",\"id\":35686767,\"last_triggered_ts\":null,\"name\":\"`avg(last_5m):sum:system.net.bytes_rcvd{host:host0} > 100`\",\"tags\":[],\"org_id\":321813,\"priority\":null,\"overall_state_modified\":1621436815,\"restricted_roles\":[],\"type\":\"query alert\"},{\"status\":\"No Data\",\"scopes\":[],\"classification\":\"ci-pipelines\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[],\"notifications\":[{\"handle\":\"hipchat-channel\",\"name\":\"hipchat-channel\"}],\"muted_until_ts\":null,\"query\":\"ci-pipelines(\\\"ci_level:pipeline @git.branch:staging* @ci.status:error\\\").rollup(\\\"count\\\").by(\\\"@git.branch,@ci.pipeline.name\\\").last(\\\"5m\\\") >= 1\",\"id\":59136642,\"last_triggered_ts\":null,\"name\":\"Example-Create_a_ci_pipelines_monitor_returns_OK_response\",\"tags\":[\"env:ci\",\"test:examplecreateacipipelinesmonitorreturnsokresponse\"],\"org_id\":321813,\"priority\":3,\"overall_state_modified\":1641203402,\"restricted_roles\":[],\"type\":\"ci-pipelines alert\"},{\"status\":\"No Data\",\"scopes\":[],\"classification\":\"log\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[],\"notifications\":[{\"handle\":\"hipchat-channel\",\"name\":\"hipchat-channel\"}],\"muted_until_ts\":null,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"id\":57056222,\"last_triggered_ts\":null,\"name\":\"Test-Create_a_monitor_returns_OK_response-1639067826\",\"tags\":[\"env:ci\",\"test:testcreateamonitorreturnsokresponse1639067826\"],\"org_id\":321813,\"priority\":3,\"overall_state_modified\":1639067987,\"restricted_roles\":[],\"type\":\"log alert\"},{\"status\":\"Alert\",\"scopes\":[],\"classification\":\"synthetics\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"no_query\",\"id\":59586284,\"last_triggered_ts\":1641339824,\"name\":\"Example-Trigger_Synthetics_tests_returns_OK_response_1641339731\",\"tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"org_id\":321813,\"priority\":5,\"overall_state_modified\":1641383924,\"restricted_roles\":[],\"type\":\"synthetics alert\"},{\"status\":\"No Data\",\"scopes\":[],\"classification\":\"synthetics\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"no_query\",\"id\":59702023,\"last_triggered_ts\":null,\"name\":\"[Synthetics] Example-Create_a_browser_test_returns_OK_Returns_the_created_test_details_response_1641411734\",\"tags\":[\"check_status:paused\",\"probe_dc:aws:us-east-2\",\"testing:browser\",\"check_type:browser\"],\"org_id\":321813,\"priority\":null,\"overall_state_modified\":1641411825,\"restricted_roles\":[],\"type\":\"synthetics alert\"},{\"status\":\"OK\",\"scopes\":[],\"classification\":\"log\",\"creator\":{\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"id\":2320499,\"name\":\"CI Account\"},\"metrics\":[],\"notifications\":[{\"handle\":\"hipchat-channel\",\"name\":\"hipchat-channel\"}],\"muted_until_ts\":null,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"id\":56957481,\"last_triggered_ts\":null,\"name\":\"Test-Python-Schedule_a_monitor_downtime_returns_OK_response-1638987043\",\"tags\":[\"test:testpythonscheduleamonitordowntimereturnsokresponse1638987043\",\"env:ci\"],\"org_id\":321813,\"priority\":3,\"overall_state_modified\":1638987188,\"restricted_roles\":[],\"type\":\"log alert\"},{\"status\":\"OK\",\"scopes\":[],\"classification\":\"log\",\"creator\":{\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"id\":2320499,\"name\":\"CI Account\"},\"metrics\":[],\"notifications\":[{\"handle\":\"hipchat-channel\",\"name\":\"hipchat-channel\"}],\"muted_until_ts\":null,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"id\":57134512,\"last_triggered_ts\":null,\"name\":\"Test-Typescript-Edit_a_monitor_returns_OK_response-1639138007\",\"tags\":[\"test:testtypescripteditamonitorreturnsokresponse1639138007\",\"env:ci\"],\"org_id\":321813,\"priority\":3,\"overall_state_modified\":1639138183,\"restricted_roles\":[],\"type\":\"log alert\"},{\"status\":\"OK\",\"scopes\":[],\"classification\":\"log\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[],\"notifications\":[{\"handle\":\"hipchat-channel\",\"name\":\"hipchat-channel\"}],\"muted_until_ts\":null,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"id\":55356159,\"last_triggered_ts\":null,\"name\":\"Example-Check_if_a_monitor_can_be_deleted_returns_OK_response_1637578811\",\"tags\":[\"env:ci\",\"test:examplecheckifamonitorcanbedeletedreturnsokresponse1637578811\"],\"org_id\":321813,\"priority\":3,\"overall_state_modified\":1637579006,\"restricted_roles\":[],\"type\":\"log alert\"},{\"status\":\"No Data\",\"scopes\":[],\"classification\":\"ci-pipelines\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[],\"notifications\":[{\"handle\":\"hipchat-channel\",\"name\":\"hipchat-channel\"}],\"muted_until_ts\":null,\"query\":\"ci-pipelines(\\\"ci_level:pipeline @git.branch:staging* @ci.status:error\\\").rollup(\\\"count\\\").by(\\\"@git.branch,@ci.pipeline.name\\\").last(\\\"5m\\\") >= 1\",\"id\":58631108,\"last_triggered_ts\":null,\"name\":\"Test-Create_a_ci_pipelines_monitor_returns_OK_response-1640114238\",\"tags\":[\"test:testcreateacipipelinesmonitorreturnsokresponse1640114238\",\"env:ci\"],\"org_id\":321813,\"priority\":3,\"overall_state_modified\":1640114311,\"restricted_roles\":[],\"type\":\"ci-pipelines alert\"},{\"status\":\"Alert\",\"scopes\":[],\"classification\":\"synthetics\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"no_query\",\"id\":59586280,\"last_triggered_ts\":1641339820,\"name\":\"Example-Get_a_synthetics_monitor_s_details_1641339731\",\"tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"org_id\":321813,\"priority\":5,\"overall_state_modified\":1641383921,\"restricted_roles\":[],\"type\":\"synthetics alert\"},{\"status\":\"Alert\",\"scopes\":[],\"classification\":\"synthetics\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"no_query\",\"id\":59771265,\"last_triggered_ts\":1641426225,\"name\":\"Example-Get_a_synthetics_monitor_s_details_1641426133\",\"tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"org_id\":321813,\"priority\":5,\"overall_state_modified\":1641426226,\"restricted_roles\":[],\"type\":\"synthetics alert\"},{\"status\":\"No Data\",\"scopes\":[],\"classification\":\"synthetics\",\"creator\":{\"handle\":\"nicholas.muesch@datadoghq.com\",\"id\":1379811,\"name\":\"Nicholas Muesch\"},\"metrics\":[],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"no_query\",\"id\":25721938,\"last_triggered_ts\":null,\"name\":\"[Synthetics] java-testSyntheticsMultipleTestsOperations-32166-1605317563-browser\",\"tags\":[\"check_status:paused\",\"probe_dc:aws:us-east-2\",\"testing:browser\",\"check_type:browser\"],\"org_id\":321813,\"priority\":null,\"overall_state_modified\":null,\"restricted_roles\":[],\"type\":\"synthetics alert\"},{\"status\":\"Alert\",\"scopes\":[],\"classification\":\"synthetics\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"no_query\",\"id\":59640593,\"last_triggered_ts\":1641368633,\"name\":\"Test-TestSyntheticsAPITestLifecycle-1623076664\",\"tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"org_id\":321813,\"priority\":5,\"overall_state_modified\":1641383933,\"restricted_roles\":[],\"type\":\"synthetics alert\"},{\"status\":\"Alert\",\"scopes\":[],\"classification\":\"synthetics\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"no_query\",\"id\":59417123,\"last_triggered_ts\":1641311003,\"name\":\"Example-Create_an_API_test_with_WEBSOCKET_subtype_returns_OK_Returns_the_created_test_details_response_1641310927\",\"tags\":[\"testing:api\",\"check_type:api-websocket\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"org_id\":321813,\"priority\":5,\"overall_state_modified\":1641383903,\"restricted_roles\":[],\"type\":\"synthetics alert\"},{\"status\":\"Alert\",\"scopes\":[],\"classification\":\"synthetics\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"no_query\",\"id\":59653156,\"last_triggered_ts\":1641382576,\"name\":\"Test-Edit_an_API_test_returns_OK_response-1641382542\",\"tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"org_id\":321813,\"priority\":5,\"overall_state_modified\":1641383896,\"restricted_roles\":[],\"type\":\"synthetics alert\"},{\"status\":\"OK\",\"scopes\":[\"*\"],\"classification\":\"custom\",\"creator\":{\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"id\":2320499,\"name\":\"CI Account\"},\"metrics\":[\"ntp.in_sync\"],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"\\\"ntp.in_sync\\\".over(\\\"*\\\").last(2).count_by_status()\",\"id\":56886190,\"last_triggered_ts\":null,\"name\":\"tf-TestAccDatadogMonitorJSONBasic-83207-1638923106\",\"tags\":[],\"org_id\":321813,\"priority\":null,\"overall_state_modified\":1641318730,\"restricted_roles\":[],\"type\":\"service check\"},{\"status\":\"OK\",\"scopes\":[],\"classification\":\"log\",\"creator\":{\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"id\":2320499,\"name\":\"CI Account\"},\"metrics\":[],\"notifications\":[{\"handle\":\"hipchat-channel\",\"name\":\"hipchat-channel\"}],\"muted_until_ts\":null,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"id\":57134518,\"last_triggered_ts\":null,\"name\":\"Test-Typescript-Get_a_monitor_s_details_returns_OK_response-1639138007\",\"tags\":[\"env:ci\",\"test:testtypescriptgetamonitorsdetailsreturnsokresponse1639138007\"],\"org_id\":321813,\"priority\":3,\"overall_state_modified\":1639138176,\"restricted_roles\":[],\"type\":\"log alert\"},{\"status\":\"No Data\",\"scopes\":[\"host:host0\"],\"classification\":\"metric\",\"creator\":{\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"id\":2320499,\"name\":\"CI Account\"},\"metrics\":[\"system.net.bytes_rcvd\"],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"avg(last_5m):sum:system.net.bytes_rcvd{host:host0} > 100\",\"id\":35325185,\"last_triggered_ts\":null,\"name\":\"java-monitorGetErrorsTest-local-1620843966\",\"tags\":[\"frontend\",\"app:webserver\"],\"org_id\":321813,\"priority\":null,\"overall_state_modified\":1620844096,\"restricted_roles\":[],\"type\":\"metric alert\"},{\"status\":\"No Data\",\"scopes\":[\"host:host0\"],\"classification\":\"metric\",\"creator\":{\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"id\":2320499,\"name\":\"CI Account\"},\"metrics\":[\"system.net.bytes_rcvd\"],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"avg(last_5m):sum:system.net.bytes_rcvd{host:host0} > 100\",\"id\":35676553,\"last_triggered_ts\":null,\"name\":\"java-historyGetSLOErrorsTest-64695-1621420747\",\"tags\":[],\"org_id\":321813,\"priority\":null,\"overall_state_modified\":1621420773,\"restricted_roles\":[],\"type\":\"metric alert\"},{\"status\":\"No Data\",\"scopes\":[],\"classification\":\"synthetics\",\"creator\":{\"handle\":\"nicholas.muesch@datadoghq.com\",\"id\":1379811,\"name\":\"Nicholas Muesch\"},\"metrics\":[],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"no_query\",\"id\":25720412,\"last_triggered_ts\":null,\"name\":\"[Synthetics] go-TestMonitorSyntheticsGet-32164-1605312658\",\"tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"org_id\":321813,\"priority\":null,\"overall_state_modified\":null,\"restricted_roles\":[],\"type\":\"synthetics alert\"},{\"status\":\"No Data\",\"scopes\":[],\"classification\":\"synthetics\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"no_query\",\"id\":59653374,\"last_triggered_ts\":null,\"name\":\"[Synthetics] Example-Create_a_browser_test_returns_OK_Returns_the_created_test_details_response_1641382929\",\"tags\":[\"check_status:paused\",\"probe_dc:aws:us-east-2\",\"testing:browser\",\"check_type:browser\"],\"org_id\":321813,\"priority\":null,\"overall_state_modified\":1641383035,\"restricted_roles\":[],\"type\":\"synthetics alert\"}],\"metadata\":{\"total_count\":199,\"page_count\":7,\"page\":0,\"per_page\":30}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:51:00 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/monitor/search" + }, + "response": { + "body": { + "string": "{\"counts\":{\"status\":[{\"count\":96,\"name\":\"No Data\"},{\"count\":65,\"name\":\"Alert\"},{\"count\":38,\"name\":\"OK\"}],\"muted\":[{\"count\":182,\"name\":false},{\"count\":17,\"name\":true}],\"tag\":[{\"count\":88,\"name\":\"probe_dc:aws:us-east-2\"},{\"count\":77,\"name\":\"check_status:live\"},{\"count\":73,\"name\":\"testing:api\"},{\"count\":50,\"name\":\"check_type:api\"},{\"count\":46,\"name\":\"env:ci\"},{\"count\":17,\"name\":\"check_status:paused\"},{\"count\":13,\"name\":\"check_type:browser\"},{\"count\":13,\"name\":\"testing:browser\"},{\"count\":11,\"name\":\"foo:bar\"},{\"count\":9,\"name\":\"check_type:api-multi\"},{\"count\":9,\"name\":\"check_type:api-udp\"},{\"count\":9,\"name\":\"check_type:api-websocket\"},{\"count\":6,\"name\":\"app:webserver\"},{\"count\":6,\"name\":\"baz\"},{\"count\":6,\"name\":\"frontend\"},{\"count\":6,\"name\":\"probe_dc:aws:eu-central-1\"},{\"count\":4,\"name\":\"environment:test\"},{\"count\":4,\"name\":\"generator:slops\"},{\"count\":4,\"name\":\"release:e6a2686\"},{\"count\":4,\"name\":\"sli:latency\"},{\"count\":4,\"name\":\"systemid:splunk\"},{\"count\":4,\"name\":\"team:developer_insights\"},{\"count\":3,\"name\":\"client:go\"},{\"count\":3,\"name\":\"env:test\"},{\"count\":3,\"name\":\"foo\"},{\"count\":3,\"name\":\"slotype:alb\"},{\"count\":3,\"name\":\"test\"},{\"count\":3,\"name\":\"test:examplecreateacipipelinesmonitorreturnsokresponse\"},{\"count\":2,\"name\":\"bar:baz\"},{\"count\":2,\"name\":\"check_type:api-tcp\"},{\"count\":2,\"name\":\"testing:api-tcp\"},{\"count\":1,\"name\":\"check_type:api-dns\"},{\"count\":1,\"name\":\"check_type:api-ssl\"},{\"count\":1,\"name\":\"log\"},{\"count\":1,\"name\":\"multistep\"},{\"count\":1,\"name\":\"slotype:elb\"},{\"count\":1,\"name\":\"terraform\"},{\"count\":1,\"name\":\"test:examplecheckifamonitorcanbedeletedreturnsokresponse1637578686\"},{\"count\":1,\"name\":\"test:examplecheckifamonitorcanbedeletedreturnsokresponse1637578811\"},{\"count\":1,\"name\":\"test:examplecheckifamonitorcanbedeletedreturnsokresponse1637578841\"},{\"count\":1,\"name\":\"test:examplecreateamonitorreturnsokresponse\"},{\"count\":1,\"name\":\"test:examplegetamonitorsdetailsreturnsokresponse1640441498\"},{\"count\":1,\"name\":\"test:examplescheduleamonitordowntimereturnsokresponse1640441496\"},{\"count\":1,\"name\":\"test:testcreateacipipelinesmonitorreturnsokresponse1640105320\"},{\"count\":1,\"name\":\"test:testcreateacipipelinesmonitorreturnsokresponse1640114122\"},{\"count\":1,\"name\":\"test:testcreateacipipelinesmonitorreturnsokresponse1640114223\"},{\"count\":1,\"name\":\"test:testcreateacipipelinesmonitorreturnsokresponse1640114238\"},{\"count\":1,\"name\":\"test:testcreateacipipelinesmonitorreturnsokresponse1640114278\"},{\"count\":1,\"name\":\"test:testcreateacipipelinesmonitorreturnsokresponse1640114289\"},{\"count\":1,\"name\":\"test:testcreateacipipelinesmonitorreturnsokresponse1640114357\"},{\"count\":1,\"name\":\"test:testcreateacipipelinesmonitorreturnsokresponse1640114432\"},{\"count\":1,\"name\":\"test:testcreateacipipelinesmonitorreturnsokresponse1640114509\"},{\"count\":1,\"name\":\"test:testcreateacipipelinesmonitorreturnsokresponse1640114535\"},{\"count\":1,\"name\":\"test:testcreateacipipelinesmonitorreturnsokresponse1640114567\"},{\"count\":1,\"name\":\"test:testcreateacipipelinesmonitorreturnsokresponse1640115169\"},{\"count\":1,\"name\":\"test:testcreateamonitorreturnsokresponse1639067826\"},{\"count\":1,\"name\":\"test:testcreateamonitorreturnsokresponse1639072243\"},{\"count\":1,\"name\":\"test:testcreateamonitorreturnsokresponse1640112911\"},{\"count\":1,\"name\":\"test:testcreateanewdashboardwithalertvaluewidget1641382634\"},{\"count\":1,\"name\":\"test:testgocheckifamonitorcanbedeletedreturnsokresponse1639045979\"},{\"count\":1,\"name\":\"test:testgocreateamonitorreturnsokresponse1639045979\"},{\"count\":1,\"name\":\"test:testgoeditamonitorreturnsokresponse1639046265\"},{\"count\":1,\"name\":\"test:testgogetamonitorsdetailsreturnsokresponse1639046265\"},{\"count\":1,\"name\":\"test:testgoscheduleamonitordowntimereturnsokresponse1639045977\"},{\"count\":1,\"name\":\"test:testpythoncheckifamonitorcanbedeletedreturnsokresponse1638987034\"},{\"count\":1,\"name\":\"test:testpythoncheckifamonitorcanbedeletedreturnsokresponse1639137875\"},{\"count\":1,\"name\":\"test:testpythoncreateamonitorreturnsokresponse1639137882\"},{\"count\":1,\"name\":\"test:testpythondeleteamonitorreturnsokresponse1638987038\"},{\"count\":1,\"name\":\"test:testpythoneditamonitorreturnsokresponse1638926914\"},{\"count\":1,\"name\":\"test:testpythoneditamonitorreturnsokresponse1638987036\"},{\"count\":1,\"name\":\"test:testpythongetamonitorsdetailsreturnsokresponse1638987027\"},{\"count\":1,\"name\":\"test:testpythonscheduleamonitordowntimereturnsokresponse1638987043\"},{\"count\":1,\"name\":\"test:testscheduleamonitordowntimereturnsokresponse1640112907\"},{\"count\":1,\"name\":\"test:testtypescriptcreateamonitorreturnsokresponse1638875400\"},{\"count\":1,\"name\":\"test:testtypescriptcreateamonitorreturnsokresponse1640111495\"},{\"count\":1,\"name\":\"test:testtypescriptcreateamonitorreturnsokresponse1640112727\"},{\"count\":1,\"name\":\"test:testtypescripteditamonitorreturnsokresponse1639138007\"},{\"count\":1,\"name\":\"test:testtypescriptgetamonitorsdetailsreturnsokresponse1639138007\"},{\"count\":1,\"name\":\"test:testtypescriptscheduleamonitordowntimereturnsokresponse1640111492\"},{\"count\":1,\"name\":\"test:testtypescriptscheduleamonitordowntimereturnsokresponse1640112725\"}],\"type\":[{\"count\":94,\"name\":\"synthetics\"},{\"count\":40,\"name\":\"log\"},{\"count\":28,\"name\":\"metric\"},{\"count\":16,\"name\":\"integration\"},{\"count\":15,\"name\":\"ci-pipelines\"},{\"count\":4,\"name\":\"custom\"},{\"count\":1,\"name\":\"anomaly\"},{\"count\":1,\"name\":\"composite\"}]},\"monitors\":[{\"status\":\"No Data\",\"scopes\":[],\"classification\":\"synthetics\",\"creator\":{\"handle\":\"slavek.kabrda@datadoghq.com\",\"id\":1379826,\"name\":\"Slavek Kabrda\"},\"metrics\":[],\"notifications\":[{\"handle\":\"pagerduty\",\"name\":\"Pagerduty\"}],\"muted_until_ts\":null,\"query\":\"no_query\",\"id\":25641098,\"last_triggered_ts\":null,\"name\":\"[Synthetics] tf-TestAccDatadogSyntheticsSSLTest_Updated-31891-1605197692-updated\",\"tags\":[\"foo:bar\",\"env:test\",\"check_type:api-ssl\",\"check_status:live\",\"probe_dc:aws:eu-central-1\",\"foo\"],\"org_id\":321813,\"priority\":null,\"overall_state_modified\":null,\"restricted_roles\":[],\"type\":\"synthetics alert\"},{\"status\":\"No Data\",\"scopes\":[\"host:host0\"],\"classification\":\"metric\",\"creator\":{\"handle\":\"nicholas.muesch@datadoghq.com\",\"id\":1379811,\"name\":\"Nicholas Muesch\"},\"metrics\":[\"system.net.bytes_rcvd\"],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"avg(last_5m):sum:system.net.bytes_rcvd{host:host0} > 100\",\"id\":20332095,\"last_triggered_ts\":null,\"name\":\"java-listMonitorsTest-20205-1595411987-2\",\"tags\":[],\"org_id\":321813,\"priority\":null,\"overall_state_modified\":null,\"restricted_roles\":[],\"type\":\"metric alert\"},{\"status\":\"No Data\",\"scopes\":[],\"classification\":\"synthetics\",\"creator\":{\"handle\":\"nicholas.muesch@datadoghq.com\",\"id\":1379811,\"name\":\"Nicholas Muesch\"},\"metrics\":[],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"no_query\",\"id\":20314950,\"last_triggered_ts\":null,\"name\":\"[Synthetics] java-testSyntheticsMultipleTestsOperations-20175-1595364791-api\",\"tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"org_id\":321813,\"priority\":null,\"overall_state_modified\":null,\"restricted_roles\":[],\"type\":\"synthetics alert\"},{\"status\":\"Alert\",\"scopes\":[],\"classification\":\"synthetics\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"no_query\",\"id\":59701958,\"last_triggered_ts\":1641411818,\"name\":\"Example-Create_an_API_test_returns_OK_Returns_the_created_test_details_response_1641411729\",\"tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"org_id\":321813,\"priority\":5,\"overall_state_modified\":1641411819,\"restricted_roles\":[],\"type\":\"synthetics alert\"},{\"status\":\"Alert\",\"scopes\":[],\"classification\":\"synthetics\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"no_query\",\"id\":59586255,\"last_triggered_ts\":1641339795,\"name\":\"Example-Create_an_API_test_returns_OK_Returns_the_created_test_details_response_1641339729\",\"tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"org_id\":321813,\"priority\":5,\"overall_state_modified\":1641383895,\"restricted_roles\":[],\"type\":\"synthetics alert\"},{\"status\":\"OK\",\"scopes\":[],\"classification\":\"log\",\"creator\":{\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"id\":2320499,\"name\":\"CI Account\"},\"metrics\":[],\"notifications\":[{\"handle\":\"hipchat-channel\",\"name\":\"hipchat-channel\"}],\"muted_until_ts\":null,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"id\":56889922,\"last_triggered_ts\":null,\"name\":\"Test-Python-Edit_a_monitor_returns_OK_response-1638926914\",\"tags\":[\"test:testpythoneditamonitorreturnsokresponse1638926914\",\"env:ci\"],\"org_id\":321813,\"priority\":3,\"overall_state_modified\":1638927063,\"restricted_roles\":[],\"type\":\"log alert\"},{\"status\":\"OK\",\"scopes\":[\"*\"],\"classification\":\"metric\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[\"synthetics.pl.worker.remaining_slots\"],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"avg(last_30m):avg:synthetics.pl.worker.remaining_slots{*} by {location_id} < 1.5\",\"id\":52529358,\"last_triggered_ts\":null,\"name\":\"[Synthetic Private Locations] {{location_id.name}} is underprovisioned\",\"tags\":[],\"org_id\":321813,\"priority\":null,\"overall_state_modified\":1635848008,\"restricted_roles\":[],\"type\":\"metric alert\"},{\"status\":\"No Data\",\"scopes\":[\"host:foo\",\"environment:foo\"],\"classification\":\"integration\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[\"aws.ec2.cpu\"],\"notifications\":[{\"handle\":\"hipchat-channel\",\"name\":\"hipchat-channel\"}],\"muted_until_ts\":null,\"query\":\"avg(last_1h):avg:aws.ec2.cpu{environment:foo,host:foo} by {host} > 4\",\"id\":35679537,\"last_triggered_ts\":null,\"name\":\"Name for monitor foo\",\"tags\":[\"foo:bar\",\"baz\"],\"org_id\":321813,\"priority\":null,\"overall_state_modified\":1621426290,\"restricted_roles\":[],\"type\":\"query alert\"},{\"status\":\"No Data\",\"scopes\":[],\"classification\":\"synthetics\",\"creator\":{\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"id\":2320499,\"name\":\"CI Account\"},\"metrics\":[],\"notifications\":[{\"handle\":\"datadog.user\",\"name\":\"datadog.user\"}],\"muted_until_ts\":null,\"query\":\"no_query\",\"id\":59417761,\"last_triggered_ts\":null,\"name\":\"[Synthetics] tf-TestAccDatadogSyntheticsDNSTest_Basic-85865-1641311522\",\"tags\":[\"check_status:paused\",\"check_type:api-dns\",\"foo:bar\",\"baz\",\"probe_dc:aws:eu-central-1\"],\"org_id\":321813,\"priority\":null,\"overall_state_modified\":1641311582,\"restricted_roles\":[],\"type\":\"synthetics alert\"},{\"status\":\"No Data\",\"scopes\":[\"host:host0\"],\"classification\":\"metric\",\"creator\":{\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"id\":2320499,\"name\":\"CI Account\"},\"metrics\":[\"system.net.bytes_rcvd\"],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"avg(last_5m):sum:system.net.bytes_rcvd{host:host0} > 100\",\"id\":35686767,\"last_triggered_ts\":null,\"name\":\"`avg(last_5m):sum:system.net.bytes_rcvd{host:host0} > 100`\",\"tags\":[],\"org_id\":321813,\"priority\":null,\"overall_state_modified\":1621436815,\"restricted_roles\":[],\"type\":\"query alert\"},{\"status\":\"No Data\",\"scopes\":[],\"classification\":\"ci-pipelines\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[],\"notifications\":[{\"handle\":\"hipchat-channel\",\"name\":\"hipchat-channel\"}],\"muted_until_ts\":null,\"query\":\"ci-pipelines(\\\"ci_level:pipeline @git.branch:staging* @ci.status:error\\\").rollup(\\\"count\\\").by(\\\"@git.branch,@ci.pipeline.name\\\").last(\\\"5m\\\") >= 1\",\"id\":59136642,\"last_triggered_ts\":null,\"name\":\"Example-Create_a_ci_pipelines_monitor_returns_OK_response\",\"tags\":[\"env:ci\",\"test:examplecreateacipipelinesmonitorreturnsokresponse\"],\"org_id\":321813,\"priority\":3,\"overall_state_modified\":1641203402,\"restricted_roles\":[],\"type\":\"ci-pipelines alert\"},{\"status\":\"No Data\",\"scopes\":[],\"classification\":\"log\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[],\"notifications\":[{\"handle\":\"hipchat-channel\",\"name\":\"hipchat-channel\"}],\"muted_until_ts\":null,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"id\":57056222,\"last_triggered_ts\":null,\"name\":\"Test-Create_a_monitor_returns_OK_response-1639067826\",\"tags\":[\"env:ci\",\"test:testcreateamonitorreturnsokresponse1639067826\"],\"org_id\":321813,\"priority\":3,\"overall_state_modified\":1639067987,\"restricted_roles\":[],\"type\":\"log alert\"},{\"status\":\"Alert\",\"scopes\":[],\"classification\":\"synthetics\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"no_query\",\"id\":59586284,\"last_triggered_ts\":1641339824,\"name\":\"Example-Trigger_Synthetics_tests_returns_OK_response_1641339731\",\"tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"org_id\":321813,\"priority\":5,\"overall_state_modified\":1641383924,\"restricted_roles\":[],\"type\":\"synthetics alert\"},{\"status\":\"No Data\",\"scopes\":[],\"classification\":\"synthetics\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"no_query\",\"id\":59702023,\"last_triggered_ts\":null,\"name\":\"[Synthetics] Example-Create_a_browser_test_returns_OK_Returns_the_created_test_details_response_1641411734\",\"tags\":[\"check_status:paused\",\"probe_dc:aws:us-east-2\",\"testing:browser\",\"check_type:browser\"],\"org_id\":321813,\"priority\":null,\"overall_state_modified\":1641411825,\"restricted_roles\":[],\"type\":\"synthetics alert\"},{\"status\":\"OK\",\"scopes\":[],\"classification\":\"log\",\"creator\":{\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"id\":2320499,\"name\":\"CI Account\"},\"metrics\":[],\"notifications\":[{\"handle\":\"hipchat-channel\",\"name\":\"hipchat-channel\"}],\"muted_until_ts\":null,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"id\":56957481,\"last_triggered_ts\":null,\"name\":\"Test-Python-Schedule_a_monitor_downtime_returns_OK_response-1638987043\",\"tags\":[\"test:testpythonscheduleamonitordowntimereturnsokresponse1638987043\",\"env:ci\"],\"org_id\":321813,\"priority\":3,\"overall_state_modified\":1638987188,\"restricted_roles\":[],\"type\":\"log alert\"},{\"status\":\"OK\",\"scopes\":[],\"classification\":\"log\",\"creator\":{\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"id\":2320499,\"name\":\"CI Account\"},\"metrics\":[],\"notifications\":[{\"handle\":\"hipchat-channel\",\"name\":\"hipchat-channel\"}],\"muted_until_ts\":null,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"id\":57134512,\"last_triggered_ts\":null,\"name\":\"Test-Typescript-Edit_a_monitor_returns_OK_response-1639138007\",\"tags\":[\"test:testtypescripteditamonitorreturnsokresponse1639138007\",\"env:ci\"],\"org_id\":321813,\"priority\":3,\"overall_state_modified\":1639138183,\"restricted_roles\":[],\"type\":\"log alert\"},{\"status\":\"OK\",\"scopes\":[],\"classification\":\"log\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[],\"notifications\":[{\"handle\":\"hipchat-channel\",\"name\":\"hipchat-channel\"}],\"muted_until_ts\":null,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"id\":55356159,\"last_triggered_ts\":null,\"name\":\"Example-Check_if_a_monitor_can_be_deleted_returns_OK_response_1637578811\",\"tags\":[\"env:ci\",\"test:examplecheckifamonitorcanbedeletedreturnsokresponse1637578811\"],\"org_id\":321813,\"priority\":3,\"overall_state_modified\":1637579006,\"restricted_roles\":[],\"type\":\"log alert\"},{\"status\":\"No Data\",\"scopes\":[],\"classification\":\"ci-pipelines\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[],\"notifications\":[{\"handle\":\"hipchat-channel\",\"name\":\"hipchat-channel\"}],\"muted_until_ts\":null,\"query\":\"ci-pipelines(\\\"ci_level:pipeline @git.branch:staging* @ci.status:error\\\").rollup(\\\"count\\\").by(\\\"@git.branch,@ci.pipeline.name\\\").last(\\\"5m\\\") >= 1\",\"id\":58631108,\"last_triggered_ts\":null,\"name\":\"Test-Create_a_ci_pipelines_monitor_returns_OK_response-1640114238\",\"tags\":[\"test:testcreateacipipelinesmonitorreturnsokresponse1640114238\",\"env:ci\"],\"org_id\":321813,\"priority\":3,\"overall_state_modified\":1640114311,\"restricted_roles\":[],\"type\":\"ci-pipelines alert\"},{\"status\":\"Alert\",\"scopes\":[],\"classification\":\"synthetics\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"no_query\",\"id\":59586280,\"last_triggered_ts\":1641339820,\"name\":\"Example-Get_a_synthetics_monitor_s_details_1641339731\",\"tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"org_id\":321813,\"priority\":5,\"overall_state_modified\":1641383921,\"restricted_roles\":[],\"type\":\"synthetics alert\"},{\"status\":\"Alert\",\"scopes\":[],\"classification\":\"synthetics\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"no_query\",\"id\":59771265,\"last_triggered_ts\":1641426225,\"name\":\"Example-Get_a_synthetics_monitor_s_details_1641426133\",\"tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"org_id\":321813,\"priority\":5,\"overall_state_modified\":1641426226,\"restricted_roles\":[],\"type\":\"synthetics alert\"},{\"status\":\"No Data\",\"scopes\":[],\"classification\":\"synthetics\",\"creator\":{\"handle\":\"nicholas.muesch@datadoghq.com\",\"id\":1379811,\"name\":\"Nicholas Muesch\"},\"metrics\":[],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"no_query\",\"id\":25721938,\"last_triggered_ts\":null,\"name\":\"[Synthetics] java-testSyntheticsMultipleTestsOperations-32166-1605317563-browser\",\"tags\":[\"check_status:paused\",\"probe_dc:aws:us-east-2\",\"testing:browser\",\"check_type:browser\"],\"org_id\":321813,\"priority\":null,\"overall_state_modified\":null,\"restricted_roles\":[],\"type\":\"synthetics alert\"},{\"status\":\"Alert\",\"scopes\":[],\"classification\":\"synthetics\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"no_query\",\"id\":59640593,\"last_triggered_ts\":1641368633,\"name\":\"Test-TestSyntheticsAPITestLifecycle-1623076664\",\"tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"org_id\":321813,\"priority\":5,\"overall_state_modified\":1641383933,\"restricted_roles\":[],\"type\":\"synthetics alert\"},{\"status\":\"Alert\",\"scopes\":[],\"classification\":\"synthetics\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"no_query\",\"id\":59417123,\"last_triggered_ts\":1641311003,\"name\":\"Example-Create_an_API_test_with_WEBSOCKET_subtype_returns_OK_Returns_the_created_test_details_response_1641310927\",\"tags\":[\"testing:api\",\"check_type:api-websocket\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"org_id\":321813,\"priority\":5,\"overall_state_modified\":1641383903,\"restricted_roles\":[],\"type\":\"synthetics alert\"},{\"status\":\"Alert\",\"scopes\":[],\"classification\":\"synthetics\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"no_query\",\"id\":59653156,\"last_triggered_ts\":1641382576,\"name\":\"Test-Edit_an_API_test_returns_OK_response-1641382542\",\"tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"org_id\":321813,\"priority\":5,\"overall_state_modified\":1641383896,\"restricted_roles\":[],\"type\":\"synthetics alert\"},{\"status\":\"OK\",\"scopes\":[\"*\"],\"classification\":\"custom\",\"creator\":{\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"id\":2320499,\"name\":\"CI Account\"},\"metrics\":[\"ntp.in_sync\"],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"\\\"ntp.in_sync\\\".over(\\\"*\\\").last(2).count_by_status()\",\"id\":56886190,\"last_triggered_ts\":null,\"name\":\"tf-TestAccDatadogMonitorJSONBasic-83207-1638923106\",\"tags\":[],\"org_id\":321813,\"priority\":null,\"overall_state_modified\":1641318730,\"restricted_roles\":[],\"type\":\"service check\"},{\"status\":\"OK\",\"scopes\":[],\"classification\":\"log\",\"creator\":{\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"id\":2320499,\"name\":\"CI Account\"},\"metrics\":[],\"notifications\":[{\"handle\":\"hipchat-channel\",\"name\":\"hipchat-channel\"}],\"muted_until_ts\":null,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"id\":57134518,\"last_triggered_ts\":null,\"name\":\"Test-Typescript-Get_a_monitor_s_details_returns_OK_response-1639138007\",\"tags\":[\"env:ci\",\"test:testtypescriptgetamonitorsdetailsreturnsokresponse1639138007\"],\"org_id\":321813,\"priority\":3,\"overall_state_modified\":1639138176,\"restricted_roles\":[],\"type\":\"log alert\"},{\"status\":\"No Data\",\"scopes\":[\"host:host0\"],\"classification\":\"metric\",\"creator\":{\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"id\":2320499,\"name\":\"CI Account\"},\"metrics\":[\"system.net.bytes_rcvd\"],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"avg(last_5m):sum:system.net.bytes_rcvd{host:host0} > 100\",\"id\":35325185,\"last_triggered_ts\":null,\"name\":\"java-monitorGetErrorsTest-local-1620843966\",\"tags\":[\"frontend\",\"app:webserver\"],\"org_id\":321813,\"priority\":null,\"overall_state_modified\":1620844096,\"restricted_roles\":[],\"type\":\"metric alert\"},{\"status\":\"No Data\",\"scopes\":[\"host:host0\"],\"classification\":\"metric\",\"creator\":{\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"id\":2320499,\"name\":\"CI Account\"},\"metrics\":[\"system.net.bytes_rcvd\"],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"avg(last_5m):sum:system.net.bytes_rcvd{host:host0} > 100\",\"id\":35676553,\"last_triggered_ts\":null,\"name\":\"java-historyGetSLOErrorsTest-64695-1621420747\",\"tags\":[],\"org_id\":321813,\"priority\":null,\"overall_state_modified\":1621420773,\"restricted_roles\":[],\"type\":\"metric alert\"},{\"status\":\"No Data\",\"scopes\":[],\"classification\":\"synthetics\",\"creator\":{\"handle\":\"nicholas.muesch@datadoghq.com\",\"id\":1379811,\"name\":\"Nicholas Muesch\"},\"metrics\":[],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"no_query\",\"id\":25720412,\"last_triggered_ts\":null,\"name\":\"[Synthetics] go-TestMonitorSyntheticsGet-32164-1605312658\",\"tags\":[\"testing:api\",\"check_type:api\",\"probe_dc:aws:us-east-2\",\"check_status:live\"],\"org_id\":321813,\"priority\":null,\"overall_state_modified\":null,\"restricted_roles\":[],\"type\":\"synthetics alert\"},{\"status\":\"No Data\",\"scopes\":[],\"classification\":\"synthetics\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":\"frog@datadoghq.com\",\"id\":{\"handle\":\"frog@datadoghq.com\",\"id\":1445416,\"name\":null}},\"metrics\":[],\"notifications\":[],\"muted_until_ts\":null,\"query\":\"no_query\",\"id\":59653374,\"last_triggered_ts\":null,\"name\":\"[Synthetics] Example-Create_a_browser_test_returns_OK_Returns_the_created_test_details_response_1641382929\",\"tags\":[\"check_status:paused\",\"probe_dc:aws:us-east-2\",\"testing:browser\",\"check_type:browser\"],\"org_id\":321813,\"priority\":null,\"overall_state_modified\":1641383035,\"restricted_roles\":[],\"type\":\"synthetics alert\"}],\"metadata\":{\"total_count\":199,\"page_count\":7,\"page\":0,\"per_page\":30}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:51:00 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/monitors/Validate-a-monitor-returns-Invalid-JSON-response.json b/tests/scenarios/cassettes/v1/monitors/Validate-a-monitor-returns-Invalid-JSON-response.json index 5cb23a5a5..607fca78a 100644 --- a/tests/scenarios/cassettes/v1/monitors/Validate-a-monitor-returns-Invalid-JSON-response.json +++ b/tests/scenarios/cassettes/v1/monitors/Validate-a-monitor-returns-Invalid-JSON-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"query\":\"query\",\"type\":\"log alert\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/monitor/validate"}, "response": {"body": {"string": "{\"errors\":[\"The value provided for parameter 'query' is invalid: invalid operator specified: \"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Thu, 06 Jan 2022 00:51:01 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"query\":\"query\",\"type\":\"log alert\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/monitor/validate" + }, + "response": { + "body": { + "string": "{\"errors\":[\"The value provided for parameter 'query' is invalid: invalid operator specified: \"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:51:01 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/monitors/Validate-a-monitor-returns-OK-response.json b/tests/scenarios/cassettes/v1/monitors/Validate-a-monitor-returns-OK-response.json index 61885755a..7b21e5d72 100644 --- a/tests/scenarios/cassettes/v1/monitors/Validate-a-monitor-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/monitors/Validate-a-monitor-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Validate_a_monitor_returns_OK_response-1674066659\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2,\"warning\":1},\"timeout_h\":24},\"priority\":3,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"tags\":[\"test:testvalidateamonitorreturnsokresponse1674066659\",\"env:ci\"],\"type\":\"log alert\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/monitor/validate"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 18 Jan 2023 18:30:59 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Validate_a_monitor_returns_OK_response-1674066659\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2,\"warning\":1},\"timeout_h\":24},\"priority\":3,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"tags\":[\"test:testvalidateamonitorreturnsokresponse1674066659\",\"env:ci\"],\"type\":\"log alert\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/monitor/validate" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 18 Jan 2023 18:30:59 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/monitors/Validate-a-multi-alert-monitor-returns-OK-response.json b/tests/scenarios/cassettes/v1/monitors/Validate-a-multi-alert-monitor-returns-OK-response.json index 9afa8b2c3..e41bf8825 100644 --- a/tests/scenarios/cassettes/v1/monitors/Validate-a-multi-alert-monitor-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/monitors/Validate-a-multi-alert-monitor-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Validate_a_multi_alert_monitor_returns_OK_response-1664556093\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"group_retention_duration\":\"2d\",\"groupby_simple_monitor\":false,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notify_audit\":false,\"notify_by\":[\"status\"],\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2,\"warning\":1},\"timeout_h\":24},\"priority\":3,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source,status\\\").last(\\\"5m\\\") > 2\",\"tags\":[\"test:testvalidateamultialertmonitorreturnsokresponse1664556093\",\"env:ci\"],\"type\":\"log alert\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/monitor/validate"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 30 Sep 2022 16:41:33 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Validate_a_multi_alert_monitor_returns_OK_response-1664556093\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"group_retention_duration\":\"2d\",\"groupby_simple_monitor\":false,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notify_audit\":false,\"notify_by\":[\"status\"],\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2,\"warning\":1},\"timeout_h\":24},\"priority\":3,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source,status\\\").last(\\\"5m\\\") > 2\",\"tags\":[\"test:testvalidateamultialertmonitorreturnsokresponse1664556093\",\"env:ci\"],\"type\":\"log alert\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/monitor/validate" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 30 Sep 2022 16:41:33 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/monitors/Validate-an-existing-monitor-returns-Invalid-JSON-response.json b/tests/scenarios/cassettes/v1/monitors/Validate-an-existing-monitor-returns-Invalid-JSON-response.json index aaed4a51f..134f33571 100644 --- a/tests/scenarios/cassettes/v1/monitors/Validate-an-existing-monitor-returns-Invalid-JSON-response.json +++ b/tests/scenarios/cassettes/v1/monitors/Validate-an-existing-monitor-returns-Invalid-JSON-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Validate_an_existing_monitor_returns_Invalid_JSON_response-1674067040\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2,\"warning\":1},\"timeout_h\":24},\"priority\":3,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"tags\":[\"test:testvalidateanexistingmonitorreturnsinvalidjsonresponse1674067040\",\"env:ci\"],\"type\":\"log alert\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/monitor"}, "response": {"body": {"string": "{\"id\":108260306,\"org_id\":321813,\"type\":\"log alert\",\"name\":\"Test-Validate_an_existing_monitor_returns_Invalid_JSON_response-1674067040\",\"message\":\"some message Notify: @hipchat-channel\",\"tags\":[\"test:testvalidateanexistingmonitorreturnsinvalidjsonresponse1674067040\",\"env:ci\"],\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2.0,\"warning\":1.0},\"timeout_h\":24,\"silenced\":{}},\"multi\":true,\"created_at\":1674067040000,\"created\":\"2023-01-18T18:37:20.200427+00:00\",\"modified\":\"2023-01-18T18:37:20.200427+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"id\":1445416}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 18 Jan 2023 18:37:20 GMT"}, {"request": {"body": {"string": "{\"query\":\"query\",\"type\":\"log alert\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/monitor/108260306/validate"}, "response": {"body": {"string": "{\"errors\":[\"The value provided for parameter 'query' is invalid: invalid operator specified: \"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Wed, 18 Jan 2023 18:37:20 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/monitor/108260306"}, "response": {"body": {"string": "{\"deleted_monitor_id\":108260306}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 18 Jan 2023 18:37:20 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Validate_an_existing_monitor_returns_Invalid_JSON_response-1674067040\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2,\"warning\":1},\"timeout_h\":24},\"priority\":3,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"tags\":[\"test:testvalidateanexistingmonitorreturnsinvalidjsonresponse1674067040\",\"env:ci\"],\"type\":\"log alert\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/monitor" + }, + "response": { + "body": { + "string": "{\"id\":108260306,\"org_id\":321813,\"type\":\"log alert\",\"name\":\"Test-Validate_an_existing_monitor_returns_Invalid_JSON_response-1674067040\",\"message\":\"some message Notify: @hipchat-channel\",\"tags\":[\"test:testvalidateanexistingmonitorreturnsinvalidjsonresponse1674067040\",\"env:ci\"],\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2.0,\"warning\":1.0},\"timeout_h\":24,\"silenced\":{}},\"multi\":true,\"created_at\":1674067040000,\"created\":\"2023-01-18T18:37:20.200427+00:00\",\"modified\":\"2023-01-18T18:37:20.200427+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"id\":1445416}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 18 Jan 2023 18:37:20 GMT" + }, + { + "request": { + "body": { + "string": "{\"query\":\"query\",\"type\":\"log alert\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/monitor/108260306/validate" + }, + "response": { + "body": { + "string": "{\"errors\":[\"The value provided for parameter 'query' is invalid: invalid operator specified: \"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Wed, 18 Jan 2023 18:37:20 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/monitor/108260306" + }, + "response": { + "body": { + "string": "{\"deleted_monitor_id\":108260306}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 18 Jan 2023 18:37:20 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/monitors/Validate-an-existing-monitor-returns-OK-response.json b/tests/scenarios/cassettes/v1/monitors/Validate-an-existing-monitor-returns-OK-response.json index 199ed4c10..b6d0228b7 100644 --- a/tests/scenarios/cassettes/v1/monitors/Validate-an-existing-monitor-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/monitors/Validate-an-existing-monitor-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Validate_an_existing_monitor_returns_OK_response-1674067040\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2,\"warning\":1},\"timeout_h\":24},\"priority\":3,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"tags\":[\"test:testvalidateanexistingmonitorreturnsokresponse1674067040\",\"env:ci\"],\"type\":\"log alert\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/monitor"}, "response": {"body": {"string": "{\"id\":108260307,\"org_id\":321813,\"type\":\"log alert\",\"name\":\"Test-Validate_an_existing_monitor_returns_OK_response-1674067040\",\"message\":\"some message Notify: @hipchat-channel\",\"tags\":[\"test:testvalidateanexistingmonitorreturnsokresponse1674067040\",\"env:ci\"],\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2.0,\"warning\":1.0},\"timeout_h\":24,\"silenced\":{}},\"multi\":true,\"created_at\":1674067040000,\"created\":\"2023-01-18T18:37:20.717952+00:00\",\"modified\":\"2023-01-18T18:37:20.717952+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"id\":1445416}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 18 Jan 2023 18:37:20 GMT"}, {"request": {"body": {"string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Validate_an_existing_monitor_returns_OK_response-1674067040\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2,\"warning\":1},\"timeout_h\":24},\"priority\":3,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"tags\":[\"test:testvalidateanexistingmonitorreturnsokresponse1674067040\",\"env:ci\"],\"type\":\"log alert\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/monitor/108260307/validate"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 18 Jan 2023 18:37:20 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/monitor/108260307"}, "response": {"body": {"string": "{\"deleted_monitor_id\":108260307}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 18 Jan 2023 18:37:20 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Validate_an_existing_monitor_returns_OK_response-1674067040\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2,\"warning\":1},\"timeout_h\":24},\"priority\":3,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"tags\":[\"test:testvalidateanexistingmonitorreturnsokresponse1674067040\",\"env:ci\"],\"type\":\"log alert\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/monitor" + }, + "response": { + "body": { + "string": "{\"id\":108260307,\"org_id\":321813,\"type\":\"log alert\",\"name\":\"Test-Validate_an_existing_monitor_returns_OK_response-1674067040\",\"message\":\"some message Notify: @hipchat-channel\",\"tags\":[\"test:testvalidateanexistingmonitorreturnsokresponse1674067040\",\"env:ci\"],\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2.0,\"warning\":1.0},\"timeout_h\":24,\"silenced\":{}},\"multi\":true,\"created_at\":1674067040000,\"created\":\"2023-01-18T18:37:20.717952+00:00\",\"modified\":\"2023-01-18T18:37:20.717952+00:00\",\"deleted\":null,\"restricted_roles\":null,\"priority\":3,\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"id\":1445416}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 18 Jan 2023 18:37:20 GMT" + }, + { + "request": { + "body": { + "string": "{\"message\":\"some message Notify: @hipchat-channel\",\"name\":\"Test-Validate_an_existing_monitor_returns_OK_response-1674067040\",\"options\":{\"enable_logs_sample\":true,\"escalation_message\":\"the situation has escalated\",\"evaluation_delay\":700,\"groupby_simple_monitor\":true,\"include_tags\":true,\"locked\":false,\"new_host_delay\":600,\"no_data_timeframe\":null,\"notification_preset_name\":\"hide_handles\",\"notify_audit\":false,\"notify_no_data\":false,\"on_missing_data\":\"show_and_notify_no_data\",\"renotify_interval\":60,\"require_full_window\":true,\"thresholds\":{\"critical\":2,\"warning\":1},\"timeout_h\":24},\"priority\":3,\"query\":\"logs(\\\"service:foo AND type:error\\\").index(\\\"main\\\").rollup(\\\"count\\\").by(\\\"source\\\").last(\\\"5m\\\") > 2\",\"tags\":[\"test:testvalidateanexistingmonitorreturnsokresponse1674067040\",\"env:ci\"],\"type\":\"log alert\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/monitor/108260307/validate" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 18 Jan 2023 18:37:20 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/monitor/108260307" + }, + "response": { + "body": { + "string": "{\"deleted_monitor_id\":108260307}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 18 Jan 2023 18:37:20 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/notebooks/Create-a-notebook-returns-OK-response.json b/tests/scenarios/cassettes/v1/notebooks/Create-a-notebook-returns-OK-response.json index a8cd06299..d38719215 100644 --- a/tests/scenarios/cassettes/v1/notebooks/Create-a-notebook-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/notebooks/Create-a-notebook-returns-OK-response.json @@ -1 +1,63 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\"},{\"attributes\":{\"definition\":{\"requests\":[{\"display_type\":\"line\",\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_type\":\"solid\",\"line_width\":\"normal\",\"palette\":\"dog_classic\"}}],\"show_legend\":true,\"type\":\"timeseries\",\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\"}],\"name\":\"Test-Create_a_notebook_returns_OK_response-1652349005\",\"status\":\"published\",\"time\":{\"live_span\":\"1h\"}},\"type\":\"notebooks\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/notebooks"}, "response": {"body": {"string": "{\"data\":{\"type\":\"notebooks\",\"id\":2466031,\"attributes\":{\"name\":\"Test-Create_a_notebook_returns_OK_response-1652349005\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"1eb30d08\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"k0c63hgi\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_favorite\":false,\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":[],\"status\":\"published\",\"modified\":\"2022-05-12T09:50:06.026505+00:00\",\"created\":\"2022-05-12T09:50:06.026505+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:05 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/notebooks/2466031"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:50:05 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\"},{\"attributes\":{\"definition\":{\"requests\":[{\"display_type\":\"line\",\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_type\":\"solid\",\"line_width\":\"normal\",\"palette\":\"dog_classic\"}}],\"show_legend\":true,\"type\":\"timeseries\",\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\"}],\"name\":\"Test-Create_a_notebook_returns_OK_response-1652349005\",\"status\":\"published\",\"time\":{\"live_span\":\"1h\"}},\"type\":\"notebooks\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/notebooks" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"notebooks\",\"id\":2466031,\"attributes\":{\"name\":\"Test-Create_a_notebook_returns_OK_response-1652349005\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"1eb30d08\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"k0c63hgi\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_favorite\":false,\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":[],\"status\":\"published\",\"modified\":\"2022-05-12T09:50:06.026505+00:00\",\"created\":\"2022-05-12T09:50:06.026505+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:05 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/notebooks/2466031" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:05 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/notebooks/Delete-a-notebook-returns-Not-Found-response.json b/tests/scenarios/cassettes/v1/notebooks/Delete-a-notebook-returns-Not-Found-response.json index f2589eb4b..536c47b17 100644 --- a/tests/scenarios/cassettes/v1/notebooks/Delete-a-notebook-returns-Not-Found-response.json +++ b/tests/scenarios/cassettes/v1/notebooks/Delete-a-notebook-returns-Not-Found-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/notebooks/123456"}, "response": {"body": {"string": "{\"errors\": [\"Notebook not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 12 May 2022 09:50:06 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/notebooks/123456" + }, + "response": { + "body": { + "string": "{\"errors\": [\"Notebook not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:06 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/notebooks/Delete-a-notebook-returns-OK-response.json b/tests/scenarios/cassettes/v1/notebooks/Delete-a-notebook-returns-OK-response.json index f3770d039..67ee73c9e 100644 --- a/tests/scenarios/cassettes/v1/notebooks/Delete-a-notebook-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/notebooks/Delete-a-notebook-returns-OK-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Delete_a_notebook_returns_OK_response-1652349007 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\"}],\"name\":\"Test-Delete_a_notebook_returns_OK_response-1652349007\",\"time\":{\"live_span\":\"1h\"}},\"type\":\"notebooks\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/notebooks"}, "response": {"body": {"string": "{\"data\":{\"type\":\"notebooks\",\"id\":2466032,\"attributes\":{\"name\":\"Test-Delete_a_notebook_returns_OK_response-1652349007\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Delete_a_notebook_returns_OK_response-1652349007 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"t6d9lkvx\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_favorite\":false,\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":[],\"status\":\"published\",\"modified\":\"2022-05-12T09:50:07.586654+00:00\",\"created\":\"2022-05-12T09:50:07.586654+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:07 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/notebooks/2466032"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:50:07 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/notebooks/2466032"}, "response": {"body": {"string": "{\"errors\": [\"Notebook not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 12 May 2022 09:50:07 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Delete_a_notebook_returns_OK_response-1652349007 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\"}],\"name\":\"Test-Delete_a_notebook_returns_OK_response-1652349007\",\"time\":{\"live_span\":\"1h\"}},\"type\":\"notebooks\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/notebooks" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"notebooks\",\"id\":2466032,\"attributes\":{\"name\":\"Test-Delete_a_notebook_returns_OK_response-1652349007\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Delete_a_notebook_returns_OK_response-1652349007 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"t6d9lkvx\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_favorite\":false,\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":[],\"status\":\"published\",\"modified\":\"2022-05-12T09:50:07.586654+00:00\",\"created\":\"2022-05-12T09:50:07.586654+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:07 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/notebooks/2466032" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:07 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/notebooks/2466032" + }, + "response": { + "body": { + "string": "{\"errors\": [\"Notebook not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:07 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/notebooks/Get-a-notebook-returns-OK-response.json b/tests/scenarios/cassettes/v1/notebooks/Get-a-notebook-returns-OK-response.json index b78c384b3..ff4086211 100644 --- a/tests/scenarios/cassettes/v1/notebooks/Get-a-notebook-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/notebooks/Get-a-notebook-returns-OK-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Get_a_notebook_returns_OK_response-1652349008 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\"}],\"name\":\"Test-Get_a_notebook_returns_OK_response-1652349008\",\"time\":{\"live_span\":\"1h\"}},\"type\":\"notebooks\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/notebooks"}, "response": {"body": {"string": "{\"data\":{\"type\":\"notebooks\",\"id\":2466033,\"attributes\":{\"name\":\"Test-Get_a_notebook_returns_OK_response-1652349008\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Get_a_notebook_returns_OK_response-1652349008 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"hzy6fag9\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_favorite\":false,\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":[],\"status\":\"published\",\"modified\":\"2022-05-12T09:50:08.997931+00:00\",\"created\":\"2022-05-12T09:50:08.997931+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:08 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/notebooks/2466033"}, "response": {"body": {"string": "{\"data\":{\"type\":\"notebooks\",\"id\":2466033,\"attributes\":{\"name\":\"Test-Get_a_notebook_returns_OK_response-1652349008\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Get_a_notebook_returns_OK_response-1652349008 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"hzy6fag9\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_favorite\":false,\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":[],\"status\":\"published\",\"modified\":\"2022-05-12T09:50:08.997931+00:00\",\"created\":\"2022-05-12T09:50:08.997931+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:08 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/notebooks/2466033"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:50:08 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Get_a_notebook_returns_OK_response-1652349008 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\"}],\"name\":\"Test-Get_a_notebook_returns_OK_response-1652349008\",\"time\":{\"live_span\":\"1h\"}},\"type\":\"notebooks\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/notebooks" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"notebooks\",\"id\":2466033,\"attributes\":{\"name\":\"Test-Get_a_notebook_returns_OK_response-1652349008\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Get_a_notebook_returns_OK_response-1652349008 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"hzy6fag9\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_favorite\":false,\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":[],\"status\":\"published\",\"modified\":\"2022-05-12T09:50:08.997931+00:00\",\"created\":\"2022-05-12T09:50:08.997931+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:08 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/notebooks/2466033" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"notebooks\",\"id\":2466033,\"attributes\":{\"name\":\"Test-Get_a_notebook_returns_OK_response-1652349008\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Get_a_notebook_returns_OK_response-1652349008 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"hzy6fag9\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_favorite\":false,\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":[],\"status\":\"published\",\"modified\":\"2022-05-12T09:50:08.997931+00:00\",\"created\":\"2022-05-12T09:50:08.997931+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:08 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/notebooks/2466033" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:08 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/notebooks/Get-all-notebooks-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v1/notebooks/Get-all-notebooks-returns-OK-response-with-pagination.json index e8307b8e1..6beec817d 100644 --- a/tests/scenarios/cassettes/v1/notebooks/Get-all-notebooks-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v1/notebooks/Get-all-notebooks-returns-OK-response-with-pagination.json @@ -1 +1,61 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/notebooks?count=2"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"notebooks\",\"id\":4758632,\"attributes\":{\"name\":\"PCF Container Usage Attribution\",\"cells\":[{\"type\":\"notebook_cells\",\"id\":\"jod8dstf\",\"attributes\":{\"split_by\":{\"tags\":[],\"keys\":[]},\"definition\":{\"title\":\"Count of containers\",\"type\":\"query_table\",\"requests\":[{\"response_format\":\"scalar\",\"formulas\":[{\"alias\":\"containers\",\"formula\":\"query1\",\"limit\":{\"count\":10000,\"order\":\"desc\"}}],\"queries\":[{\"name\":\"query1\",\"data_source\":\"metrics\",\"query\":\"avg:cloudfoundry.nozzle.app.instances{$container_deployement_guid,$troux_uuid} by {app_name,bosh_id}\",\"aggregator\":\"avg\"}]}]},\"graph_size\":\"m\",\"time\":null}},{\"type\":\"notebook_cells\",\"id\":\"0t3xetbt\",\"attributes\":{\"definition\":{\"type\":\"markdown\",\"text\":\"This displays the count of containers per `troux_uuid` (`bosh_id`) and `container_deployment_guid` (`app_name`)\"}}},{\"type\":\"notebook_cells\",\"id\":\"7lxv9snf\",\"attributes\":{\"definition\":{\"title\":\"Percentage breakdown of containers on VMs\",\"requests\":[{\"response_format\":\"scalar\",\"formulas\":[{\"formula\":\"query1\",\"limit\":{\"order\":\"desc\"}}],\"queries\":[{\"query\":\"avg:cloudfoundry.nozzle.app.instances{$troux_uuid,$container_deployement_guid} by {app_name,bosh_id}.rollup(avg, 3600)\",\"data_source\":\"metrics\",\"name\":\"query1\",\"aggregator\":\"sum\"}],\"style\":{\"palette\":\"datadog16\"}}],\"type\":\"sunburst\",\"legend\":{\"type\":\"automatic\"}},\"time\":null}},{\"type\":\"notebook_cells\",\"id\":\"uhwq9m18\",\"attributes\":{\"definition\":{\"type\":\"markdown\",\"text\":\"This displays the count of containers per\\u00a0`troux_uuid` (`bosh_id`)\\u00a0and\\u00a0`container_deployment_guid` (`app_name`) as percentages of total containers\\n\"}}},{\"type\":\"notebook_cells\",\"id\":\"fcid5x88\",\"attributes\":{\"split_by\":{\"tags\":[],\"keys\":[]},\"definition\":{\"title\":\"Number of VMs per container_deployment_guid\",\"type\":\"query_value\",\"requests\":[{\"response_format\":\"scalar\",\"queries\":[{\"name\":\"query1\",\"data_source\":\"metrics\",\"query\":\"avg:cloudfoundry.nozzle.app.instances{$troux_uuid,$container_deployement_guid}\",\"aggregator\":\"avg\"}],\"formulas\":[{\"formula\":\"count_nonzero(query1)\",\"alias\":\"VMs\"}]}],\"autoscale\":true,\"precision\":2},\"graph_size\":\"xs\",\"time\":null}},{\"type\":\"notebook_cells\",\"id\":\"7qmg68gc\",\"attributes\":{\"definition\":{\"type\":\"markdown\",\"text\":\"When filtering by the template variable `container_deployment_guid`, this value represents the number of VMs (or `troux_uuid`s) that `container_deployment_guid` runs on \"}}},{\"type\":\"notebook_cells\",\"id\":\"h75xo4j5\",\"attributes\":{\"split_by\":{\"tags\":[],\"keys\":[]},\"definition\":{\"type\":\"query_table\",\"requests\":[{\"queries\":[{\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{$troux_uuid,$container_deployement_guid} by {bosh_id,application_name}.rollup(avg, 3600)\",\"aggregator\":\"avg\"}],\"formulas\":[{\"conditional_formats\":[],\"cell_display_mode\":\"bar\",\"formula\":\"query1\",\"limit\":{\"count\":500,\"order\":\"desc\"}}],\"response_format\":\"scalar\"}],\"has_search_bar\":\"auto\"},\"time\":null}}],\"time\":{\"live_span\":\"2d\"},\"metadata\":{\"take_snapshots\":false,\"is_template\":false,\"is_favorite\":false,\"type\":null},\"template_variables\":[{\"name\":\"container_deployement_guid\",\"prefix\":\"app_name\",\"available_values\":[],\"default\":\"*\"},{\"name\":\"troux_uuid\",\"prefix\":\"bosh_id\",\"available_values\":[],\"default\":\"*\"}],\"status\":\"published\",\"modified\":\"2023-02-27T17:53:59.623647+00:00\",\"created\":\"2023-02-15T18:12:35.189588+00:00\",\"author\":{\"name\":\"Sarah Witt\",\"handle\":\"sarah.witt@datadoghq.com\",\"email\":\"sarah.witt@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/7f710a0bcefa8df8d47bfcba79f69a40?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":4823614,\"attributes\":{\"name\":\"Sarah Feb 22 2023 11:04\",\"cells\":[{\"type\":\"notebook_cells\",\"id\":\"dnulkt1p\",\"attributes\":{\"split_by\":{\"tags\":[],\"keys\":[]},\"definition\":{\"show_legend\":true,\"type\":\"timeseries\",\"requests\":[{\"response_format\":\"timeseries\",\"queries\":[{\"name\":\"query1\",\"data_source\":\"metrics\",\"query\":\"avg:system.cpu.user{*}\"}],\"style\":{\"palette\":\"dog_classic\",\"line_type\":\"solid\",\"line_width\":\"normal\"},\"display_type\":\"line\"}]},\"time\":null}}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"take_snapshots\":false,\"is_template\":false,\"is_favorite\":false,\"type\":null},\"template_variables\":[],\"status\":\"published\",\"modified\":\"2023-02-22T16:04:51.449049+00:00\",\"created\":\"2023-02-22T16:04:51.449049+00:00\",\"author\":{\"name\":\"Sarah Witt\",\"handle\":\"sarah.witt@datadoghq.com\",\"email\":\"sarah.witt@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/7f710a0bcefa8df8d47bfcba79f69a40?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}}],\"meta\":{\"page\":{\"total_count\":158,\"total_filtered_count\":2}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 31 Aug 2023 09:47:14 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/notebooks?count=2&start=2"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"notebooks\",\"id\":4745953,\"attributes\":{\"name\":\"PCF Container Usage Attribution\",\"cells\":[{\"type\":\"notebook_cells\",\"id\":\"bqyp7v5p\",\"attributes\":{\"definition\":{\"title\":\"Count of containers\",\"type\":\"query_table\",\"requests\":[{\"response_format\":\"scalar\",\"formulas\":[{\"alias\":\"containers\",\"formula\":\"query1\",\"limit\":{\"count\":500,\"order\":\"desc\"}}],\"queries\":[{\"name\":\"query1\",\"data_source\":\"metrics\",\"query\":\"avg:cloudfoundry.nozzle.app.instances{$troux_uuid,$container_deployment_guid} by {app_name,bosh_id}.rollup(avg, 3600)\",\"aggregator\":\"sum\"}]}]},\"time\":null,\"split_by\":{\"keys\":[],\"tags\":[]},\"graph_size\":\"m\"}},{\"type\":\"notebook_cells\",\"id\":\"svgafvhk\",\"attributes\":{\"definition\":{\"type\":\"markdown\",\"text\":\"This displays the count of containers per `troux_uuid` (`bosh_id`) and `container_deployment_guid` (`app_name`)\"}}},{\"type\":\"notebook_cells\",\"id\":\"vq0zsiia\",\"attributes\":{\"definition\":{\"title\":\"Percentage breakdown of containers on VMs\",\"requests\":[{\"response_format\":\"scalar\",\"formulas\":[{\"formula\":\"query1\",\"limit\":{\"order\":\"desc\"}}],\"queries\":[{\"query\":\"avg:cloudfoundry.nozzle.app.instances{$troux_uuid,$container_deployment_guid} by {app_name,bosh_id}.rollup(avg, 3600)\",\"data_source\":\"metrics\",\"name\":\"query1\",\"aggregator\":\"sum\"}],\"style\":{\"palette\":\"datadog16\"}}],\"type\":\"sunburst\",\"legend\":{\"type\":\"automatic\"}},\"time\":null}},{\"type\":\"notebook_cells\",\"id\":\"oldqd75v\",\"attributes\":{\"definition\":{\"type\":\"markdown\",\"text\":\"This displays the count of containers per\\u00a0`troux_uuid` (`bosh_id`)\\u00a0and\\u00a0`container_deployment_guid` (`app_name`) as percentages of total containers\\n\"}}},{\"type\":\"notebook_cells\",\"id\":\"m2dcz3jo\",\"attributes\":{\"definition\":{\"title\":\"Number of VMs per container_deployment_guid\",\"type\":\"query_value\",\"requests\":[{\"response_format\":\"scalar\",\"queries\":[{\"name\":\"query1\",\"data_source\":\"metrics\",\"query\":\"avg:cloudfoundry.nozzle.app.instances{$troux_uuid,$container_deployment_guid}\",\"aggregator\":\"avg\"}],\"formulas\":[{\"formula\":\"count_nonzero(query1)\",\"alias\":\"VMs\"}]}],\"autoscale\":true,\"precision\":2},\"time\":null,\"split_by\":{\"keys\":[],\"tags\":[]},\"graph_size\":\"xs\"}},{\"type\":\"notebook_cells\",\"id\":\"39crgjxd\",\"attributes\":{\"definition\":{\"type\":\"markdown\",\"text\":\"When filtering by the template variable `container_deployment_guid`, this value represents the number of VMs (or `troux_uuid`s) that `container_deployment_guid` runs on \"}}}],\"time\":{\"live_span\":\"2d\"},\"metadata\":{\"take_snapshots\":false,\"is_template\":false,\"is_favorite\":false,\"type\":null},\"template_variables\":[{\"name\":\"container_deployment_guid\",\"prefix\":\"app_name\",\"available_values\":[],\"default\":\"*\"},{\"name\":\"troux_uuid\",\"prefix\":\"bosh_id\",\"available_values\":[],\"default\":\"*\"}],\"status\":\"published\",\"modified\":\"2023-02-16T17:32:46.774359+00:00\",\"created\":\"2023-02-14T20:04:16.789408+00:00\",\"author\":{\"name\":\"Sarah Witt\",\"handle\":\"sarah.witt@datadoghq.com\",\"email\":\"sarah.witt@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/7f710a0bcefa8df8d47bfcba79f69a40?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}}],\"meta\":{\"page\":{\"total_count\":158,\"total_filtered_count\":2}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 31 Aug 2023 09:47:14 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/notebooks?count=2" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"notebooks\",\"id\":4758632,\"attributes\":{\"name\":\"PCF Container Usage Attribution\",\"cells\":[{\"type\":\"notebook_cells\",\"id\":\"jod8dstf\",\"attributes\":{\"split_by\":{\"tags\":[],\"keys\":[]},\"definition\":{\"title\":\"Count of containers\",\"type\":\"query_table\",\"requests\":[{\"response_format\":\"scalar\",\"formulas\":[{\"alias\":\"containers\",\"formula\":\"query1\",\"limit\":{\"count\":10000,\"order\":\"desc\"}}],\"queries\":[{\"name\":\"query1\",\"data_source\":\"metrics\",\"query\":\"avg:cloudfoundry.nozzle.app.instances{$container_deployement_guid,$troux_uuid} by {app_name,bosh_id}\",\"aggregator\":\"avg\"}]}]},\"graph_size\":\"m\",\"time\":null}},{\"type\":\"notebook_cells\",\"id\":\"0t3xetbt\",\"attributes\":{\"definition\":{\"type\":\"markdown\",\"text\":\"This displays the count of containers per `troux_uuid` (`bosh_id`) and `container_deployment_guid` (`app_name`)\"}}},{\"type\":\"notebook_cells\",\"id\":\"7lxv9snf\",\"attributes\":{\"definition\":{\"title\":\"Percentage breakdown of containers on VMs\",\"requests\":[{\"response_format\":\"scalar\",\"formulas\":[{\"formula\":\"query1\",\"limit\":{\"order\":\"desc\"}}],\"queries\":[{\"query\":\"avg:cloudfoundry.nozzle.app.instances{$troux_uuid,$container_deployement_guid} by {app_name,bosh_id}.rollup(avg, 3600)\",\"data_source\":\"metrics\",\"name\":\"query1\",\"aggregator\":\"sum\"}],\"style\":{\"palette\":\"datadog16\"}}],\"type\":\"sunburst\",\"legend\":{\"type\":\"automatic\"}},\"time\":null}},{\"type\":\"notebook_cells\",\"id\":\"uhwq9m18\",\"attributes\":{\"definition\":{\"type\":\"markdown\",\"text\":\"This displays the count of containers per\\u00a0`troux_uuid` (`bosh_id`)\\u00a0and\\u00a0`container_deployment_guid` (`app_name`) as percentages of total containers\\n\"}}},{\"type\":\"notebook_cells\",\"id\":\"fcid5x88\",\"attributes\":{\"split_by\":{\"tags\":[],\"keys\":[]},\"definition\":{\"title\":\"Number of VMs per container_deployment_guid\",\"type\":\"query_value\",\"requests\":[{\"response_format\":\"scalar\",\"queries\":[{\"name\":\"query1\",\"data_source\":\"metrics\",\"query\":\"avg:cloudfoundry.nozzle.app.instances{$troux_uuid,$container_deployement_guid}\",\"aggregator\":\"avg\"}],\"formulas\":[{\"formula\":\"count_nonzero(query1)\",\"alias\":\"VMs\"}]}],\"autoscale\":true,\"precision\":2},\"graph_size\":\"xs\",\"time\":null}},{\"type\":\"notebook_cells\",\"id\":\"7qmg68gc\",\"attributes\":{\"definition\":{\"type\":\"markdown\",\"text\":\"When filtering by the template variable `container_deployment_guid`, this value represents the number of VMs (or `troux_uuid`s) that `container_deployment_guid` runs on \"}}},{\"type\":\"notebook_cells\",\"id\":\"h75xo4j5\",\"attributes\":{\"split_by\":{\"tags\":[],\"keys\":[]},\"definition\":{\"type\":\"query_table\",\"requests\":[{\"queries\":[{\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{$troux_uuid,$container_deployement_guid} by {bosh_id,application_name}.rollup(avg, 3600)\",\"aggregator\":\"avg\"}],\"formulas\":[{\"conditional_formats\":[],\"cell_display_mode\":\"bar\",\"formula\":\"query1\",\"limit\":{\"count\":500,\"order\":\"desc\"}}],\"response_format\":\"scalar\"}],\"has_search_bar\":\"auto\"},\"time\":null}}],\"time\":{\"live_span\":\"2d\"},\"metadata\":{\"take_snapshots\":false,\"is_template\":false,\"is_favorite\":false,\"type\":null},\"template_variables\":[{\"name\":\"container_deployement_guid\",\"prefix\":\"app_name\",\"available_values\":[],\"default\":\"*\"},{\"name\":\"troux_uuid\",\"prefix\":\"bosh_id\",\"available_values\":[],\"default\":\"*\"}],\"status\":\"published\",\"modified\":\"2023-02-27T17:53:59.623647+00:00\",\"created\":\"2023-02-15T18:12:35.189588+00:00\",\"author\":{\"name\":\"Sarah Witt\",\"handle\":\"sarah.witt@datadoghq.com\",\"email\":\"sarah.witt@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/7f710a0bcefa8df8d47bfcba79f69a40?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":4823614,\"attributes\":{\"name\":\"Sarah Feb 22 2023 11:04\",\"cells\":[{\"type\":\"notebook_cells\",\"id\":\"dnulkt1p\",\"attributes\":{\"split_by\":{\"tags\":[],\"keys\":[]},\"definition\":{\"show_legend\":true,\"type\":\"timeseries\",\"requests\":[{\"response_format\":\"timeseries\",\"queries\":[{\"name\":\"query1\",\"data_source\":\"metrics\",\"query\":\"avg:system.cpu.user{*}\"}],\"style\":{\"palette\":\"dog_classic\",\"line_type\":\"solid\",\"line_width\":\"normal\"},\"display_type\":\"line\"}]},\"time\":null}}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"take_snapshots\":false,\"is_template\":false,\"is_favorite\":false,\"type\":null},\"template_variables\":[],\"status\":\"published\",\"modified\":\"2023-02-22T16:04:51.449049+00:00\",\"created\":\"2023-02-22T16:04:51.449049+00:00\",\"author\":{\"name\":\"Sarah Witt\",\"handle\":\"sarah.witt@datadoghq.com\",\"email\":\"sarah.witt@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/7f710a0bcefa8df8d47bfcba79f69a40?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}}],\"meta\":{\"page\":{\"total_count\":158,\"total_filtered_count\":2}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 31 Aug 2023 09:47:14 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/notebooks?count=2&start=2" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"notebooks\",\"id\":4745953,\"attributes\":{\"name\":\"PCF Container Usage Attribution\",\"cells\":[{\"type\":\"notebook_cells\",\"id\":\"bqyp7v5p\",\"attributes\":{\"definition\":{\"title\":\"Count of containers\",\"type\":\"query_table\",\"requests\":[{\"response_format\":\"scalar\",\"formulas\":[{\"alias\":\"containers\",\"formula\":\"query1\",\"limit\":{\"count\":500,\"order\":\"desc\"}}],\"queries\":[{\"name\":\"query1\",\"data_source\":\"metrics\",\"query\":\"avg:cloudfoundry.nozzle.app.instances{$troux_uuid,$container_deployment_guid} by {app_name,bosh_id}.rollup(avg, 3600)\",\"aggregator\":\"sum\"}]}]},\"time\":null,\"split_by\":{\"keys\":[],\"tags\":[]},\"graph_size\":\"m\"}},{\"type\":\"notebook_cells\",\"id\":\"svgafvhk\",\"attributes\":{\"definition\":{\"type\":\"markdown\",\"text\":\"This displays the count of containers per `troux_uuid` (`bosh_id`) and `container_deployment_guid` (`app_name`)\"}}},{\"type\":\"notebook_cells\",\"id\":\"vq0zsiia\",\"attributes\":{\"definition\":{\"title\":\"Percentage breakdown of containers on VMs\",\"requests\":[{\"response_format\":\"scalar\",\"formulas\":[{\"formula\":\"query1\",\"limit\":{\"order\":\"desc\"}}],\"queries\":[{\"query\":\"avg:cloudfoundry.nozzle.app.instances{$troux_uuid,$container_deployment_guid} by {app_name,bosh_id}.rollup(avg, 3600)\",\"data_source\":\"metrics\",\"name\":\"query1\",\"aggregator\":\"sum\"}],\"style\":{\"palette\":\"datadog16\"}}],\"type\":\"sunburst\",\"legend\":{\"type\":\"automatic\"}},\"time\":null}},{\"type\":\"notebook_cells\",\"id\":\"oldqd75v\",\"attributes\":{\"definition\":{\"type\":\"markdown\",\"text\":\"This displays the count of containers per\\u00a0`troux_uuid` (`bosh_id`)\\u00a0and\\u00a0`container_deployment_guid` (`app_name`) as percentages of total containers\\n\"}}},{\"type\":\"notebook_cells\",\"id\":\"m2dcz3jo\",\"attributes\":{\"definition\":{\"title\":\"Number of VMs per container_deployment_guid\",\"type\":\"query_value\",\"requests\":[{\"response_format\":\"scalar\",\"queries\":[{\"name\":\"query1\",\"data_source\":\"metrics\",\"query\":\"avg:cloudfoundry.nozzle.app.instances{$troux_uuid,$container_deployment_guid}\",\"aggregator\":\"avg\"}],\"formulas\":[{\"formula\":\"count_nonzero(query1)\",\"alias\":\"VMs\"}]}],\"autoscale\":true,\"precision\":2},\"time\":null,\"split_by\":{\"keys\":[],\"tags\":[]},\"graph_size\":\"xs\"}},{\"type\":\"notebook_cells\",\"id\":\"39crgjxd\",\"attributes\":{\"definition\":{\"type\":\"markdown\",\"text\":\"When filtering by the template variable `container_deployment_guid`, this value represents the number of VMs (or `troux_uuid`s) that `container_deployment_guid` runs on \"}}}],\"time\":{\"live_span\":\"2d\"},\"metadata\":{\"take_snapshots\":false,\"is_template\":false,\"is_favorite\":false,\"type\":null},\"template_variables\":[{\"name\":\"container_deployment_guid\",\"prefix\":\"app_name\",\"available_values\":[],\"default\":\"*\"},{\"name\":\"troux_uuid\",\"prefix\":\"bosh_id\",\"available_values\":[],\"default\":\"*\"}],\"status\":\"published\",\"modified\":\"2023-02-16T17:32:46.774359+00:00\",\"created\":\"2023-02-14T20:04:16.789408+00:00\",\"author\":{\"name\":\"Sarah Witt\",\"handle\":\"sarah.witt@datadoghq.com\",\"email\":\"sarah.witt@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/7f710a0bcefa8df8d47bfcba79f69a40?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}}],\"meta\":{\"page\":{\"total_count\":158,\"total_filtered_count\":2}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 31 Aug 2023 09:47:14 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/notebooks/Get-all-notebooks-returns-OK-response.json b/tests/scenarios/cassettes/v1/notebooks/Get-all-notebooks-returns-OK-response.json index 2bc873e34..2820fae4a 100644 --- a/tests/scenarios/cassettes/v1/notebooks/Get-all-notebooks-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/notebooks/Get-all-notebooks-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/notebooks"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"total_filtered_count\":50,\"total_count\":465}},\"data\":[{\"type\":\"notebooks\",\"id\":1529861,\"attributes\":{\"name\":\"Example Notebook\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"zct6hr09\"},{\"attributes\":{\"definition\":{\"show_legend\":true,\"type\":\"timeseries\",\"requests\":[{\"formulas\":[{\"formula\":\"query1\"}],\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"bars\",\"response_format\":\"timeseries\",\"queries\":[{\"query\":\"avg:trace.cucumber.test.errors{*}.as_count()\",\"data_source\":\"metrics\",\"name\":\"query1\"}]}],\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"8afnyf7d\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":\"investigation\",\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2022-01-05T07:32:54.047760+00:00\",\"created\":\"2021-11-05T18:10:43.257960+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1721318,\"attributes\":{\"name\":\"Test-Create_a_notebook_returns_OK_response-1640112913\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"ssrxoyo8\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"ht2o911k\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-12-21T18:55:13.305467+00:00\",\"created\":\"2021-12-21T18:55:13.305467+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1721294,\"attributes\":{\"name\":\"Test-Typescript-Create_a_notebook_returns_OK_response-1640112735\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"f8lj84u0\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"6s6dslvh\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-12-21T18:52:15.181874+00:00\",\"created\":\"2021-12-21T18:52:15.181874+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1717873,\"attributes\":{\"name\":\"Test-Typescript-Get_a_notebook_returns_OK_response-1640081721\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Typescript-Get_a_notebook_returns_OK_response-1640081721 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"601ph050\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-12-21T10:15:21.688698+00:00\",\"created\":\"2021-12-21T10:15:21.688698+00:00\",\"author\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1717870,\"attributes\":{\"name\":\"Test-Go-Update_a_notebook_returns_OK_response-1640081635-updated\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"vjydpvyz\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"ho2ivxv5\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-12-21T10:13:56.435016+00:00\",\"created\":\"2021-12-21T10:13:55.278107+00:00\",\"author\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1660165,\"attributes\":{\"name\":\"Test-Python-Update_a_notebook_returns_OK_response-1638987033\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Python-Update_a_notebook_returns_OK_response-1638987033 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"7i7fz8oc\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-12-08T18:10:34.034069+00:00\",\"created\":\"2021-12-08T18:10:34.034069+00:00\",\"author\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1660164,\"attributes\":{\"name\":\"Test-Python-Delete_a_notebook_returns_OK_response-1638987029\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Python-Delete_a_notebook_returns_OK_response-1638987029 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"hovq46bn\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-12-08T18:10:29.987110+00:00\",\"created\":\"2021-12-08T18:10:29.987110+00:00\",\"author\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1660163,\"attributes\":{\"name\":\"Test-Python-Create_a_notebook_returns_OK_response-1638987028\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"sawtra8c\"},{\"attributes\":{\"definition\":{\"show_legend\":true,\"type\":\"timeseries\",\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"dkgafplg\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-12-08T18:10:28.682328+00:00\",\"created\":\"2021-12-08T18:10:28.682328+00:00\",\"author\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1660160,\"attributes\":{\"name\":\"Test-Python-Get_a_notebook_returns_OK_response-1638987026\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Python-Get_a_notebook_returns_OK_response-1638987026 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"sccraa38\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-12-08T18:10:26.143019+00:00\",\"created\":\"2021-12-08T18:10:26.143019+00:00\",\"author\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1600250,\"attributes\":{\"name\":\"Test-Typescript-Update_a_notebook_returns_OK_response-1637674398-updated\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"aq3anjcd\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"ao2ygn9x\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-23T13:33:19.334585+00:00\",\"created\":\"2021-11-23T13:33:18.812190+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1600249,\"attributes\":{\"name\":\"Test-Typescript-Get_a_notebook_returns_OK_response-1637674397\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Typescript-Get_a_notebook_returns_OK_response-1637674397 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"ti8ab3m4\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-23T13:33:17.638758+00:00\",\"created\":\"2021-11-23T13:33:17.638758+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1574187,\"attributes\":{\"name\":\"Test-Update_a_notebook_returns_OK_response-1637141144-updated\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"ci6mikrb\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"rmkegmjz\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-17T09:25:47.020254+00:00\",\"created\":\"2021-11-17T09:25:46.597716+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1574186,\"attributes\":{\"name\":\"Test-Get_a_notebook_returns_OK_response-1637141142\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Get_a_notebook_returns_OK_response-1637141142 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"aub7w0cd\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-17T09:25:45.101074+00:00\",\"created\":\"2021-11-17T09:25:45.101074+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1574184,\"attributes\":{\"name\":\"Test-Create_a_notebook_returns_OK_response-1637141140\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"jc56b7v8\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"l6ihwsra\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-17T09:25:43.344897+00:00\",\"created\":\"2021-11-17T09:25:43.344897+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1574162,\"attributes\":{\"name\":\"Test-Update_a_notebook_returns_OK_response-1620731122-updated\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"36qwo0wh\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"w6zcrkko\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-17T09:20:53.326430+00:00\",\"created\":\"2021-11-17T09:20:52.910209+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1574161,\"attributes\":{\"name\":\"Test-Get_a_notebook_returns_OK_response-1620726175\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Get_a_notebook_returns_OK_response-1620726175 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"ilm74x9l\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-17T09:20:51.992959+00:00\",\"created\":\"2021-11-17T09:20:51.992959+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1570535,\"attributes\":{\"name\":\"Test-Update_a_notebook_returns_OK_response-1637078414-updated\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"8ka89nl6\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"mc08fjru\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-16T16:00:15.696963+00:00\",\"created\":\"2021-11-16T16:00:15.257941+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1570534,\"attributes\":{\"name\":\"Test-Get_a_notebook_returns_OK_response-1637078413\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Get_a_notebook_returns_OK_response-1637078413 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"eq2bd466\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-16T16:00:13.605803+00:00\",\"created\":\"2021-11-16T16:00:13.605803+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1570532,\"attributes\":{\"name\":\"Test-Create_a_notebook_returns_OK_response-1637078411\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"3gyz0zdc\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"3tfpg3l8\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-16T16:00:11.681983+00:00\",\"created\":\"2021-11-16T16:00:11.681983+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1570471,\"attributes\":{\"name\":\"Test-Update_a_notebook_returns_OK_response-1637077898-updated\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"29p7kj9c\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"1z0mvh1v\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-16T15:51:39.708117+00:00\",\"created\":\"2021-11-16T15:51:39.299674+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1570470,\"attributes\":{\"name\":\"Test-Get_a_notebook_returns_OK_response-1637077897\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Get_a_notebook_returns_OK_response-1637077897 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"4kg8btjd\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-16T15:51:37.765488+00:00\",\"created\":\"2021-11-16T15:51:37.765488+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1570468,\"attributes\":{\"name\":\"Test-Create_a_notebook_returns_OK_response-1637077895\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"v37ns0tl\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"0lw3tmkw\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-16T15:51:35.908376+00:00\",\"created\":\"2021-11-16T15:51:35.908376+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1569695,\"attributes\":{\"name\":\"Test-Update_a_notebook_returns_OK_response-1637070460-updated\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"2de8iz16\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"u1e1o76n\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-16T13:47:43.446141+00:00\",\"created\":\"2021-11-16T13:47:43.038481+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1569694,\"attributes\":{\"name\":\"Test-Get_a_notebook_returns_OK_response-1637070459\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Get_a_notebook_returns_OK_response-1637070459 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"sl6lb02h\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-16T13:47:41.775053+00:00\",\"created\":\"2021-11-16T13:47:41.775053+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1569692,\"attributes\":{\"name\":\"Test-Create_a_notebook_returns_OK_response-1637070457\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"3ama8gjf\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"6lf5x85x\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-16T13:47:39.930386+00:00\",\"created\":\"2021-11-16T13:47:39.930386+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1569591,\"attributes\":{\"name\":\"Test-Update_a_notebook_returns_OK_response-1637063291-updated\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"piecd7x6\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"8dgl8kh9\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-16T13:23:41.944589+00:00\",\"created\":\"2021-11-16T13:23:41.494508+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1569590,\"attributes\":{\"name\":\"Test-Get_a_notebook_returns_OK_response-1637063290\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Get_a_notebook_returns_OK_response-1637063290 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"yqsx4b0w\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-16T13:23:40.575604+00:00\",\"created\":\"2021-11-16T13:23:40.575604+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1569288,\"attributes\":{\"name\":\"Test-Create_a_notebook_returns_OK_response-1637063289\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"zwe4jdl3\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"ez5uyknb\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-16T11:48:12.010803+00:00\",\"created\":\"2021-11-16T11:48:12.010803+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1418594,\"attributes\":{\"name\":\"Test-Go-Update_a_notebook_returns_OK_response-1634040178\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Go-Update_a_notebook_returns_OK_response-1634040178 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"6xayew1l\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T12:02:58.725181+00:00\",\"created\":\"2021-10-12T12:02:58.725181+00:00\",\"author\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1418592,\"attributes\":{\"name\":\"Test-Go-Get_a_notebook_returns_OK_response-1634040178\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Go-Get_a_notebook_returns_OK_response-1634040178 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"6yvq7ri3\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T12:02:58.470375+00:00\",\"created\":\"2021-10-12T12:02:58.470375+00:00\",\"author\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1418591,\"attributes\":{\"name\":\"Test-Go-Delete_a_notebook_returns_OK_response-1634040178\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Go-Delete_a_notebook_returns_OK_response-1634040178 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"vbdf1bqq\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T12:02:58.357131+00:00\",\"created\":\"2021-10-12T12:02:58.357131+00:00\",\"author\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1418589,\"attributes\":{\"name\":\"Test-Go-Create_a_notebook_returns_OK_response-1634040177\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"h39tcfex\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"o86tlsk2\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T12:02:58.118960+00:00\",\"created\":\"2021-10-12T12:02:58.118960+00:00\",\"author\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417726,\"attributes\":{\"name\":\"Test-Go-Get_a_notebook_returns_OK_response-1634031528\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Go-Get_a_notebook_returns_OK_response-1634031528 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"4t0fln2y\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:38:49.341316+00:00\",\"created\":\"2021-10-12T09:38:49.341316+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417686,\"attributes\":{\"name\":\"Test-Go-Get_a_notebook_returns_OK_response-1634031244\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Go-Get_a_notebook_returns_OK_response-1634031244 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"80mbfpqo\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:34:05.404374+00:00\",\"created\":\"2021-10-12T09:34:05.404374+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417682,\"attributes\":{\"name\":\"Test-Get_a_notebook_returns_OK_response-1634031040\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Get_a_notebook_returns_OK_response-1634031040 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"ypci83fo\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:30:41.261694+00:00\",\"created\":\"2021-10-12T09:30:41.261694+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417680,\"attributes\":{\"name\":\"Test-Get_a_notebook_returns_OK_response-1634030875\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Get_a_notebook_returns_OK_response-1634030875 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"ebhtk48j\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:27:56.164598+00:00\",\"created\":\"2021-10-12T09:27:56.164598+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417658,\"attributes\":{\"name\":\"Test-Get_a_notebook_returns_OK_response-1634030685\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Get_a_notebook_returns_OK_response-1634030685 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"p3qij47b\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:24:45.871488+00:00\",\"created\":\"2021-10-12T09:24:45.871488+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417657,\"attributes\":{\"name\":\"Test-Update_a_notebook_returns_OK_response-1634030660\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Update_a_notebook_returns_OK_response-1634030660 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"b4ahc8jj\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:24:20.560706+00:00\",\"created\":\"2021-10-12T09:24:20.560706+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417656,\"attributes\":{\"name\":\"Test-Get_a_notebook_returns_OK_response-1634030659\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Get_a_notebook_returns_OK_response-1634030659 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"rt3nwhxw\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:24:20.010537+00:00\",\"created\":\"2021-10-12T09:24:20.010537+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417655,\"attributes\":{\"name\":\"Test-Delete_a_notebook_returns_OK_response-1634030659\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Delete_a_notebook_returns_OK_response-1634030659 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"egelq2we\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:24:19.830533+00:00\",\"created\":\"2021-10-12T09:24:19.830533+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417654,\"attributes\":{\"name\":\"Test-Create_a_notebook_returns_OK_response-1634030658\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"ohd6d678\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"7skxov27\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:24:19.391987+00:00\",\"created\":\"2021-10-12T09:24:19.391987+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417653,\"attributes\":{\"name\":\"Test-Go-Update_a_notebook_returns_OK_response-1634030642\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Go-Update_a_notebook_returns_OK_response-1634030642 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"8s5ulvhq\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:24:02.654610+00:00\",\"created\":\"2021-10-12T09:24:02.654610+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417652,\"attributes\":{\"name\":\"Test-Go-Get_a_notebook_returns_OK_response-1634030641\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Go-Get_a_notebook_returns_OK_response-1634030641 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"vi55dq1j\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:24:02.145423+00:00\",\"created\":\"2021-10-12T09:24:02.145423+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417651,\"attributes\":{\"name\":\"Test-Go-Delete_a_notebook_returns_OK_response-1634030641\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Go-Delete_a_notebook_returns_OK_response-1634030641 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"pxnwygyc\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:24:01.807898+00:00\",\"created\":\"2021-10-12T09:24:01.807898+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417650,\"attributes\":{\"name\":\"Test-Go-Create_a_notebook_returns_OK_response-1634030640\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"a736lr9n\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"0xihqmlh\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:24:01.072040+00:00\",\"created\":\"2021-10-12T09:24:01.072040+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417506,\"attributes\":{\"name\":\"Test-Go-Update_a_notebook_returns_OK_response-1634029580\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Go-Update_a_notebook_returns_OK_response-1634029580 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"otl9pb05\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:06:20.634221+00:00\",\"created\":\"2021-10-12T09:06:20.634221+00:00\",\"author\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417505,\"attributes\":{\"name\":\"Test-Go-Get_a_notebook_returns_OK_response-1634029580\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Go-Get_a_notebook_returns_OK_response-1634029580 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"oxi4qcrq\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:06:20.320499+00:00\",\"created\":\"2021-10-12T09:06:20.320499+00:00\",\"author\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417504,\"attributes\":{\"name\":\"Test-Go-Delete_a_notebook_returns_OK_response-1634029580\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Go-Delete_a_notebook_returns_OK_response-1634029580 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"7q3cyslm\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:06:20.171326+00:00\",\"created\":\"2021-10-12T09:06:20.171326+00:00\",\"author\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417503,\"attributes\":{\"name\":\"Test-Go-Create_a_notebook_returns_OK_response-1634029579\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"jpagyh9r\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"3kjc6flm\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:06:19.932821+00:00\",\"created\":\"2021-10-12T09:06:19.932821+00:00\",\"author\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417072,\"attributes\":{\"name\":\"Test-Go-Update_a_notebook_returns_OK_response-1634026036\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Go-Update_a_notebook_returns_OK_response-1634026036 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"d0hr7ys1\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T08:07:16.752590+00:00\",\"created\":\"2021-10-12T08:07:16.752590+00:00\",\"author\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:51:03 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/notebooks" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"total_filtered_count\":50,\"total_count\":465}},\"data\":[{\"type\":\"notebooks\",\"id\":1529861,\"attributes\":{\"name\":\"Example Notebook\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"zct6hr09\"},{\"attributes\":{\"definition\":{\"show_legend\":true,\"type\":\"timeseries\",\"requests\":[{\"formulas\":[{\"formula\":\"query1\"}],\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"bars\",\"response_format\":\"timeseries\",\"queries\":[{\"query\":\"avg:trace.cucumber.test.errors{*}.as_count()\",\"data_source\":\"metrics\",\"name\":\"query1\"}]}],\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"8afnyf7d\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":\"investigation\",\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2022-01-05T07:32:54.047760+00:00\",\"created\":\"2021-11-05T18:10:43.257960+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1721318,\"attributes\":{\"name\":\"Test-Create_a_notebook_returns_OK_response-1640112913\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"ssrxoyo8\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"ht2o911k\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-12-21T18:55:13.305467+00:00\",\"created\":\"2021-12-21T18:55:13.305467+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1721294,\"attributes\":{\"name\":\"Test-Typescript-Create_a_notebook_returns_OK_response-1640112735\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"f8lj84u0\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"6s6dslvh\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-12-21T18:52:15.181874+00:00\",\"created\":\"2021-12-21T18:52:15.181874+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1717873,\"attributes\":{\"name\":\"Test-Typescript-Get_a_notebook_returns_OK_response-1640081721\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Typescript-Get_a_notebook_returns_OK_response-1640081721 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"601ph050\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-12-21T10:15:21.688698+00:00\",\"created\":\"2021-12-21T10:15:21.688698+00:00\",\"author\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1717870,\"attributes\":{\"name\":\"Test-Go-Update_a_notebook_returns_OK_response-1640081635-updated\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"vjydpvyz\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"ho2ivxv5\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-12-21T10:13:56.435016+00:00\",\"created\":\"2021-12-21T10:13:55.278107+00:00\",\"author\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1660165,\"attributes\":{\"name\":\"Test-Python-Update_a_notebook_returns_OK_response-1638987033\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Python-Update_a_notebook_returns_OK_response-1638987033 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"7i7fz8oc\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-12-08T18:10:34.034069+00:00\",\"created\":\"2021-12-08T18:10:34.034069+00:00\",\"author\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1660164,\"attributes\":{\"name\":\"Test-Python-Delete_a_notebook_returns_OK_response-1638987029\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Python-Delete_a_notebook_returns_OK_response-1638987029 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"hovq46bn\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-12-08T18:10:29.987110+00:00\",\"created\":\"2021-12-08T18:10:29.987110+00:00\",\"author\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1660163,\"attributes\":{\"name\":\"Test-Python-Create_a_notebook_returns_OK_response-1638987028\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"sawtra8c\"},{\"attributes\":{\"definition\":{\"show_legend\":true,\"type\":\"timeseries\",\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"dkgafplg\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-12-08T18:10:28.682328+00:00\",\"created\":\"2021-12-08T18:10:28.682328+00:00\",\"author\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1660160,\"attributes\":{\"name\":\"Test-Python-Get_a_notebook_returns_OK_response-1638987026\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Python-Get_a_notebook_returns_OK_response-1638987026 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"sccraa38\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-12-08T18:10:26.143019+00:00\",\"created\":\"2021-12-08T18:10:26.143019+00:00\",\"author\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1600250,\"attributes\":{\"name\":\"Test-Typescript-Update_a_notebook_returns_OK_response-1637674398-updated\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"aq3anjcd\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"ao2ygn9x\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-23T13:33:19.334585+00:00\",\"created\":\"2021-11-23T13:33:18.812190+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1600249,\"attributes\":{\"name\":\"Test-Typescript-Get_a_notebook_returns_OK_response-1637674397\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Typescript-Get_a_notebook_returns_OK_response-1637674397 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"ti8ab3m4\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-23T13:33:17.638758+00:00\",\"created\":\"2021-11-23T13:33:17.638758+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1574187,\"attributes\":{\"name\":\"Test-Update_a_notebook_returns_OK_response-1637141144-updated\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"ci6mikrb\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"rmkegmjz\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-17T09:25:47.020254+00:00\",\"created\":\"2021-11-17T09:25:46.597716+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1574186,\"attributes\":{\"name\":\"Test-Get_a_notebook_returns_OK_response-1637141142\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Get_a_notebook_returns_OK_response-1637141142 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"aub7w0cd\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-17T09:25:45.101074+00:00\",\"created\":\"2021-11-17T09:25:45.101074+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1574184,\"attributes\":{\"name\":\"Test-Create_a_notebook_returns_OK_response-1637141140\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"jc56b7v8\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"l6ihwsra\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-17T09:25:43.344897+00:00\",\"created\":\"2021-11-17T09:25:43.344897+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1574162,\"attributes\":{\"name\":\"Test-Update_a_notebook_returns_OK_response-1620731122-updated\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"36qwo0wh\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"w6zcrkko\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-17T09:20:53.326430+00:00\",\"created\":\"2021-11-17T09:20:52.910209+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1574161,\"attributes\":{\"name\":\"Test-Get_a_notebook_returns_OK_response-1620726175\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Get_a_notebook_returns_OK_response-1620726175 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"ilm74x9l\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-17T09:20:51.992959+00:00\",\"created\":\"2021-11-17T09:20:51.992959+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1570535,\"attributes\":{\"name\":\"Test-Update_a_notebook_returns_OK_response-1637078414-updated\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"8ka89nl6\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"mc08fjru\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-16T16:00:15.696963+00:00\",\"created\":\"2021-11-16T16:00:15.257941+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1570534,\"attributes\":{\"name\":\"Test-Get_a_notebook_returns_OK_response-1637078413\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Get_a_notebook_returns_OK_response-1637078413 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"eq2bd466\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-16T16:00:13.605803+00:00\",\"created\":\"2021-11-16T16:00:13.605803+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1570532,\"attributes\":{\"name\":\"Test-Create_a_notebook_returns_OK_response-1637078411\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"3gyz0zdc\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"3tfpg3l8\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-16T16:00:11.681983+00:00\",\"created\":\"2021-11-16T16:00:11.681983+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1570471,\"attributes\":{\"name\":\"Test-Update_a_notebook_returns_OK_response-1637077898-updated\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"29p7kj9c\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"1z0mvh1v\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-16T15:51:39.708117+00:00\",\"created\":\"2021-11-16T15:51:39.299674+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1570470,\"attributes\":{\"name\":\"Test-Get_a_notebook_returns_OK_response-1637077897\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Get_a_notebook_returns_OK_response-1637077897 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"4kg8btjd\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-16T15:51:37.765488+00:00\",\"created\":\"2021-11-16T15:51:37.765488+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1570468,\"attributes\":{\"name\":\"Test-Create_a_notebook_returns_OK_response-1637077895\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"v37ns0tl\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"0lw3tmkw\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-16T15:51:35.908376+00:00\",\"created\":\"2021-11-16T15:51:35.908376+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1569695,\"attributes\":{\"name\":\"Test-Update_a_notebook_returns_OK_response-1637070460-updated\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"2de8iz16\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"u1e1o76n\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-16T13:47:43.446141+00:00\",\"created\":\"2021-11-16T13:47:43.038481+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1569694,\"attributes\":{\"name\":\"Test-Get_a_notebook_returns_OK_response-1637070459\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Get_a_notebook_returns_OK_response-1637070459 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"sl6lb02h\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-16T13:47:41.775053+00:00\",\"created\":\"2021-11-16T13:47:41.775053+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1569692,\"attributes\":{\"name\":\"Test-Create_a_notebook_returns_OK_response-1637070457\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"3ama8gjf\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"6lf5x85x\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-16T13:47:39.930386+00:00\",\"created\":\"2021-11-16T13:47:39.930386+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1569591,\"attributes\":{\"name\":\"Test-Update_a_notebook_returns_OK_response-1637063291-updated\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"piecd7x6\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"8dgl8kh9\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-16T13:23:41.944589+00:00\",\"created\":\"2021-11-16T13:23:41.494508+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1569590,\"attributes\":{\"name\":\"Test-Get_a_notebook_returns_OK_response-1637063290\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Get_a_notebook_returns_OK_response-1637063290 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"yqsx4b0w\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-16T13:23:40.575604+00:00\",\"created\":\"2021-11-16T13:23:40.575604+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1569288,\"attributes\":{\"name\":\"Test-Create_a_notebook_returns_OK_response-1637063289\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"zwe4jdl3\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"ez5uyknb\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-11-16T11:48:12.010803+00:00\",\"created\":\"2021-11-16T11:48:12.010803+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1418594,\"attributes\":{\"name\":\"Test-Go-Update_a_notebook_returns_OK_response-1634040178\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Go-Update_a_notebook_returns_OK_response-1634040178 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"6xayew1l\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T12:02:58.725181+00:00\",\"created\":\"2021-10-12T12:02:58.725181+00:00\",\"author\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1418592,\"attributes\":{\"name\":\"Test-Go-Get_a_notebook_returns_OK_response-1634040178\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Go-Get_a_notebook_returns_OK_response-1634040178 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"6yvq7ri3\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T12:02:58.470375+00:00\",\"created\":\"2021-10-12T12:02:58.470375+00:00\",\"author\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1418591,\"attributes\":{\"name\":\"Test-Go-Delete_a_notebook_returns_OK_response-1634040178\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Go-Delete_a_notebook_returns_OK_response-1634040178 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"vbdf1bqq\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T12:02:58.357131+00:00\",\"created\":\"2021-10-12T12:02:58.357131+00:00\",\"author\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1418589,\"attributes\":{\"name\":\"Test-Go-Create_a_notebook_returns_OK_response-1634040177\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"h39tcfex\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"o86tlsk2\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T12:02:58.118960+00:00\",\"created\":\"2021-10-12T12:02:58.118960+00:00\",\"author\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417726,\"attributes\":{\"name\":\"Test-Go-Get_a_notebook_returns_OK_response-1634031528\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Go-Get_a_notebook_returns_OK_response-1634031528 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"4t0fln2y\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:38:49.341316+00:00\",\"created\":\"2021-10-12T09:38:49.341316+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417686,\"attributes\":{\"name\":\"Test-Go-Get_a_notebook_returns_OK_response-1634031244\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Go-Get_a_notebook_returns_OK_response-1634031244 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"80mbfpqo\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:34:05.404374+00:00\",\"created\":\"2021-10-12T09:34:05.404374+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417682,\"attributes\":{\"name\":\"Test-Get_a_notebook_returns_OK_response-1634031040\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Get_a_notebook_returns_OK_response-1634031040 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"ypci83fo\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:30:41.261694+00:00\",\"created\":\"2021-10-12T09:30:41.261694+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417680,\"attributes\":{\"name\":\"Test-Get_a_notebook_returns_OK_response-1634030875\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Get_a_notebook_returns_OK_response-1634030875 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"ebhtk48j\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:27:56.164598+00:00\",\"created\":\"2021-10-12T09:27:56.164598+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417658,\"attributes\":{\"name\":\"Test-Get_a_notebook_returns_OK_response-1634030685\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Get_a_notebook_returns_OK_response-1634030685 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"p3qij47b\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:24:45.871488+00:00\",\"created\":\"2021-10-12T09:24:45.871488+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417657,\"attributes\":{\"name\":\"Test-Update_a_notebook_returns_OK_response-1634030660\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Update_a_notebook_returns_OK_response-1634030660 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"b4ahc8jj\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:24:20.560706+00:00\",\"created\":\"2021-10-12T09:24:20.560706+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417656,\"attributes\":{\"name\":\"Test-Get_a_notebook_returns_OK_response-1634030659\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Get_a_notebook_returns_OK_response-1634030659 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"rt3nwhxw\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:24:20.010537+00:00\",\"created\":\"2021-10-12T09:24:20.010537+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417655,\"attributes\":{\"name\":\"Test-Delete_a_notebook_returns_OK_response-1634030659\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Delete_a_notebook_returns_OK_response-1634030659 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"egelq2we\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:24:19.830533+00:00\",\"created\":\"2021-10-12T09:24:19.830533+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417654,\"attributes\":{\"name\":\"Test-Create_a_notebook_returns_OK_response-1634030658\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"ohd6d678\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"7skxov27\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:24:19.391987+00:00\",\"created\":\"2021-10-12T09:24:19.391987+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417653,\"attributes\":{\"name\":\"Test-Go-Update_a_notebook_returns_OK_response-1634030642\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Go-Update_a_notebook_returns_OK_response-1634030642 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"8s5ulvhq\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:24:02.654610+00:00\",\"created\":\"2021-10-12T09:24:02.654610+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417652,\"attributes\":{\"name\":\"Test-Go-Get_a_notebook_returns_OK_response-1634030641\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Go-Get_a_notebook_returns_OK_response-1634030641 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"vi55dq1j\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:24:02.145423+00:00\",\"created\":\"2021-10-12T09:24:02.145423+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417651,\"attributes\":{\"name\":\"Test-Go-Delete_a_notebook_returns_OK_response-1634030641\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Go-Delete_a_notebook_returns_OK_response-1634030641 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"pxnwygyc\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:24:01.807898+00:00\",\"created\":\"2021-10-12T09:24:01.807898+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417650,\"attributes\":{\"name\":\"Test-Go-Create_a_notebook_returns_OK_response-1634030640\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"a736lr9n\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"0xihqmlh\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:24:01.072040+00:00\",\"created\":\"2021-10-12T09:24:01.072040+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417506,\"attributes\":{\"name\":\"Test-Go-Update_a_notebook_returns_OK_response-1634029580\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Go-Update_a_notebook_returns_OK_response-1634029580 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"otl9pb05\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:06:20.634221+00:00\",\"created\":\"2021-10-12T09:06:20.634221+00:00\",\"author\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417505,\"attributes\":{\"name\":\"Test-Go-Get_a_notebook_returns_OK_response-1634029580\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Go-Get_a_notebook_returns_OK_response-1634029580 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"oxi4qcrq\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:06:20.320499+00:00\",\"created\":\"2021-10-12T09:06:20.320499+00:00\",\"author\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417504,\"attributes\":{\"name\":\"Test-Go-Delete_a_notebook_returns_OK_response-1634029580\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Go-Delete_a_notebook_returns_OK_response-1634029580 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"7q3cyslm\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:06:20.171326+00:00\",\"created\":\"2021-10-12T09:06:20.171326+00:00\",\"author\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417503,\"attributes\":{\"name\":\"Test-Go-Create_a_notebook_returns_OK_response-1634029579\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"jpagyh9r\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"3kjc6flm\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T09:06:19.932821+00:00\",\"created\":\"2021-10-12T09:06:19.932821+00:00\",\"author\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}},{\"type\":\"notebooks\",\"id\":1417072,\"attributes\":{\"name\":\"Test-Go-Update_a_notebook_returns_OK_response-1634026036\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Go-Update_a_notebook_returns_OK_response-1634026036 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"d0hr7ys1\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":null,\"status\":\"published\",\"modified\":\"2021-10-12T08:07:16.752590+00:00\",\"created\":\"2021-10-12T08:07:16.752590+00:00\",\"author\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:51:03 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/notebooks/Update-a-notebook-returns-OK-response.json b/tests/scenarios/cassettes/v1/notebooks/Update-a-notebook-returns-OK-response.json index 7bb6e29c6..9e1e0dd0e 100644 --- a/tests/scenarios/cassettes/v1/notebooks/Update-a-notebook-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/notebooks/Update-a-notebook-returns-OK-response.json @@ -1 +1,97 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Update_a_notebook_returns_OK_response-1652349010 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\"}],\"name\":\"Test-Update_a_notebook_returns_OK_response-1652349010\",\"time\":{\"live_span\":\"1h\"}},\"type\":\"notebooks\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/notebooks"}, "response": {"body": {"string": "{\"data\":{\"type\":\"notebooks\",\"id\":2466034,\"attributes\":{\"name\":\"Test-Update_a_notebook_returns_OK_response-1652349010\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Update_a_notebook_returns_OK_response-1652349010 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"ous795rr\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_favorite\":false,\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":[],\"status\":\"published\",\"modified\":\"2022-05-12T09:50:10.418530+00:00\",\"created\":\"2022-05-12T09:50:10.418530+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:10 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\"},{\"attributes\":{\"definition\":{\"requests\":[{\"display_type\":\"line\",\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_type\":\"solid\",\"line_width\":\"normal\",\"palette\":\"dog_classic\"}}],\"show_legend\":true,\"type\":\"timeseries\",\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\"}],\"name\":\"Test-Update_a_notebook_returns_OK_response-1652349010-updated\",\"status\":\"published\",\"time\":{\"live_span\":\"1h\"}},\"type\":\"notebooks\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "put", "uri": "https://api.datadoghq.com/api/v1/notebooks/2466034"}, "response": {"body": {"string": "{\"data\":{\"type\":\"notebooks\",\"id\":2466034,\"attributes\":{\"name\":\"Test-Update_a_notebook_returns_OK_response-1652349010-updated\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"7th9aiq2\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"dvsx205s\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_favorite\":false,\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":[],\"status\":\"published\",\"modified\":\"2022-05-12T09:50:10.903600+00:00\",\"created\":\"2022-05-12T09:50:10.418530+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:10 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/notebooks/2466034"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:50:10 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Update_a_notebook_returns_OK_response-1652349010 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\"}],\"name\":\"Test-Update_a_notebook_returns_OK_response-1652349010\",\"time\":{\"live_span\":\"1h\"}},\"type\":\"notebooks\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/notebooks" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"notebooks\",\"id\":2466034,\"attributes\":{\"name\":\"Test-Update_a_notebook_returns_OK_response-1652349010\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"# Test-Update_a_notebook_returns_OK_response-1652349010 notebook text\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"ous795rr\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_favorite\":false,\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":[],\"status\":\"published\",\"modified\":\"2022-05-12T09:50:10.418530+00:00\",\"created\":\"2022-05-12T09:50:10.418530+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:10 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\"},{\"attributes\":{\"definition\":{\"requests\":[{\"display_type\":\"line\",\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_type\":\"solid\",\"line_width\":\"normal\",\"palette\":\"dog_classic\"}}],\"show_legend\":true,\"type\":\"timeseries\",\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\"}],\"name\":\"Test-Update_a_notebook_returns_OK_response-1652349010-updated\",\"status\":\"published\",\"time\":{\"live_span\":\"1h\"}},\"type\":\"notebooks\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v1/notebooks/2466034" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"notebooks\",\"id\":2466034,\"attributes\":{\"name\":\"Test-Update_a_notebook_returns_OK_response-1652349010-updated\",\"cells\":[{\"attributes\":{\"definition\":{\"text\":\"## Some test markdown\\n\\n```js\\nvar x, y;\\nx = 5;\\ny = 6;\\n```\",\"type\":\"markdown\"}},\"type\":\"notebook_cells\",\"id\":\"7th9aiq2\"},{\"attributes\":{\"definition\":{\"requests\":[{\"q\":\"avg:system.load.1{*}\",\"style\":{\"line_width\":\"normal\",\"palette\":\"dog_classic\",\"line_type\":\"solid\"},\"display_type\":\"line\"}],\"type\":\"timeseries\",\"show_legend\":true,\"yaxis\":{\"scale\":\"linear\"}},\"graph_size\":\"m\",\"split_by\":{\"keys\":[],\"tags\":[]},\"time\":null},\"type\":\"notebook_cells\",\"id\":\"dvsx205s\"}],\"time\":{\"live_span\":\"1h\"},\"metadata\":{\"is_favorite\":false,\"is_template\":false,\"type\":null,\"take_snapshots\":false},\"template_variables\":[],\"status\":\"published\",\"modified\":\"2022-05-12T09:50:10.903600+00:00\",\"created\":\"2022-05-12T09:50:10.418530+00:00\",\"author\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"disabled\":false,\"status\":\"Active\"}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:10 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/notebooks/2466034" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:10 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/security_monitoring/Add-a-security-signal-to-an-incident-returns-OK-response.json b/tests/scenarios/cassettes/v1/security_monitoring/Add-a-security-signal-to-an-incident-returns-OK-response.json index 54f3c58f0..8996c562c 100644 --- a/tests/scenarios/cassettes/v1/security_monitoring/Add-a-security-signal-to-an-incident-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/security_monitoring/Add-a-security-signal-to-an-incident-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"incident_id\":2609}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v1/security_analytics/signals/AQAAAYDiB_Ol8PbzFAAAAABBWURpQl9PbEFBQU0yeXhGTG9ZV2JnQUE/add_to_incident"}, "response": {"body": {"string": "{\"status\":\"done\",\"elapsed\":4,\"hitCount\":1,\"type\":\"status\",\"requestId\":\"pddv1ChZVSG9rS0xiLVROR0UzaExkSVRnaTZBIisKG6tMRhR9fRc0eaDfripyLqgONwbpcw5WGKATXBIMaeO6PoTCinH6lG0J\"}", "encoding": null}, "headers": {"Content-Type": ["application/json;charset=utf-8"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 20 May 2022 15:17:51 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"incident_id\":2609}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v1/security_analytics/signals/AQAAAYDiB_Ol8PbzFAAAAABBWURpQl9PbEFBQU0yeXhGTG9ZV2JnQUE/add_to_incident" + }, + "response": { + "body": { + "string": "{\"status\":\"done\",\"elapsed\":4,\"hitCount\":1,\"type\":\"status\",\"requestId\":\"pddv1ChZVSG9rS0xiLVROR0UzaExkSVRnaTZBIisKG6tMRhR9fRc0eaDfripyLqgONwbpcw5WGKATXBIMaeO6PoTCinH6lG0J\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json;charset=utf-8" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 20 May 2022 15:17:51 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/security_monitoring/Change-the-triage-state-of-a-security-signal-returns-OK-response.json b/tests/scenarios/cassettes/v1/security_monitoring/Change-the-triage-state-of-a-security-signal-returns-OK-response.json index 8beb5d616..a6426ef60 100644 --- a/tests/scenarios/cassettes/v1/security_monitoring/Change-the-triage-state-of-a-security-signal-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/security_monitoring/Change-the-triage-state-of-a-security-signal-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"archiveReason\":\"none\",\"state\":\"open\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v1/security_analytics/signals/AQAAAYDiB_Ol8PbzFAAAAABBWURpQl9PbEFBQU0yeXhGTG9ZV2JnQUE/state"}, "response": {"body": {"string": "{\"status\":\"done\",\"elapsed\":6,\"hitCount\":1,\"type\":\"status\",\"requestId\":\"pddv1ChZsZTVoQTlZUlRCMmZIaVp6QmtSb1FRIi0KHTZc_OyWqjtN77Y9KyBimz5OCepk1bY1rIo4vE37Egx-rD3hrV23n4SU9ds\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 20 May 2022 15:18:37 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"archiveReason\":\"none\",\"state\":\"open\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v1/security_analytics/signals/AQAAAYDiB_Ol8PbzFAAAAABBWURpQl9PbEFBQU0yeXhGTG9ZV2JnQUE/state" + }, + "response": { + "body": { + "string": "{\"status\":\"done\",\"elapsed\":6,\"hitCount\":1,\"type\":\"status\",\"requestId\":\"pddv1ChZsZTVoQTlZUlRCMmZIaVp6QmtSb1FRIi0KHTZc_OyWqjtN77Y9KyBimz5OCepk1bY1rIo4vE37Egx-rD3hrV23n4SU9ds\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 20 May 2022 15:18:37 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/security_monitoring/Modify-the-triage-assignee-of-a-security-signal-returns-OK-response.json b/tests/scenarios/cassettes/v1/security_monitoring/Modify-the-triage-assignee-of-a-security-signal-returns-OK-response.json index 75305e23b..b0490c53b 100644 --- a/tests/scenarios/cassettes/v1/security_monitoring/Modify-the-triage-assignee-of-a-security-signal-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/security_monitoring/Modify-the-triage-assignee-of-a-security-signal-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"assignee\":\"773b045d-ccf8-4808-bd3b-955ef6a8c940\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v1/security_analytics/signals/AQAAAYDiB_Ol8PbzFAAAAABBWURpQl9PbEFBQU0yeXhGTG9ZV2JnQUE/assignee"}, "response": {"body": {"string": "{\"status\":\"done\",\"elapsed\":4,\"hitCount\":1,\"type\":\"status\",\"requestId\":\"pddv1ChZSZEFGOVVCR1NEMmk4V2xsUnlsLVdBIiwKHO4N7zMgBuJVPFh9vBniHGgyfw7UoOk5ULtgX2cSDMZkxtW2dY1nP5am-Q\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 20 May 2022 15:18:23 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"assignee\":\"773b045d-ccf8-4808-bd3b-955ef6a8c940\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v1/security_analytics/signals/AQAAAYDiB_Ol8PbzFAAAAABBWURpQl9PbEFBQU0yeXhGTG9ZV2JnQUE/assignee" + }, + "response": { + "body": { + "string": "{\"status\":\"done\",\"elapsed\":4,\"hitCount\":1,\"type\":\"status\",\"requestId\":\"pddv1ChZSZEFGOVVCR1NEMmk4V2xsUnlsLVdBIiwKHO4N7zMgBuJVPFh9vBniHGgyfw7UoOk5ULtgX2cSDMZkxtW2dY1nP5am-Q\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 20 May 2022 15:18:23 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/service_checks/Submit-a-Service-Check-returns-Payload-accepted-response.json b/tests/scenarios/cassettes/v1/service_checks/Submit-a-Service-Check-returns-Payload-accepted-response.json index 3af4b1ca9..e667de92a 100644 --- a/tests/scenarios/cassettes/v1/service_checks/Submit-a-Service-Check-returns-Payload-accepted-response.json +++ b/tests/scenarios/cassettes/v1/service_checks/Submit-a-Service-Check-returns-Payload-accepted-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "[{\"check\":\"app.ok\",\"host_name\":\"host\",\"status\":0,\"tags\":[\"test:TestSubmitaServiceCheckreturnsPayloadacceptedresponse1652349011\"]}]", "encoding": null}, "headers": {"Accept": ["text/json, application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/check_run"}, "response": {"body": {"string": "{\"status\": \"ok\"}", "encoding": null}, "headers": {"Content-Type": ["text/json"]}, "status": {"code": 202, "message": "Accepted"}}, "recorded_at": "Thu, 12 May 2022 09:50:11 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "[{\"check\":\"app.ok\",\"host_name\":\"host\",\"status\":0,\"tags\":[\"test:TestSubmitaServiceCheckreturnsPayloadacceptedresponse1652349011\"]}]", + "encoding": null + }, + "headers": { + "Accept": [ + "text/json, application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/check_run" + }, + "response": { + "body": { + "string": "{\"status\": \"ok\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/json" + ] + }, + "status": { + "code": 202, + "message": "Accepted" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:11 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/service_level_objective_corrections/Create-an-SLO-correction-returns-OK-response.json b/tests/scenarios/cassettes/v1/service_level_objective_corrections/Create-an-SLO-correction-returns-OK-response.json index 62c7990a3..7bd4c88cf 100644 --- a/tests/scenarios/cassettes/v1/service_level_objective_corrections/Create-an-SLO-correction-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/service_level_objective_corrections/Create-an-SLO-correction-returns-OK-response.json @@ -1 +1,125 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Create_an_SLO_correction_returns_OK_response-1652349011\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/slo"}, "response": {"body": {"string": "{\"data\":[{\"description\":\"\",\"monitor_tags\":[],\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"thresholds\":[{\"warning\":98.0,\"warning_display\":\"98.\",\"target\":95.0,\"target_display\":\"95.\",\"timeframe\":\"7d\"}],\"type_id\":1,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"id\":\"26d1f492d25b598fb6ef1a0405faa153\",\"name\":\"Test-Create_an_SLO_correction_returns_OK_response-1652349011\",\"created_at\":1652349012,\"tags\":[],\"modified_at\":1652349012,\"type\":\"metric\"}],\"error\":null}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:11 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"category\":\"Scheduled Maintenance\",\"description\":\"Test-Create_an_SLO_correction_returns_OK_response-1652349011\",\"end\":1652352611,\"slo_id\":\"26d1f492d25b598fb6ef1a0405faa153\",\"start\":1652349011,\"timezone\":\"UTC\"},\"type\":\"correction\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/slo/correction"}, "response": {"body": {"string": "{\"data\":{\"type\":\"correction\",\"id\":\"eb223538-d1d8-11ec-8dd2-da7ad0902002\",\"attributes\":{\"slo_id\":\"26d1f492d25b598fb6ef1a0405faa153\",\"start\":1652349011,\"end\":1652352611,\"description\":\"Test-Create_an_SLO_correction_returns_OK_response-1652349011\",\"category\":\"Scheduled Maintenance\",\"timezone\":\"UTC\",\"created_at\":null,\"modified_at\":null,\"rrule\":null,\"duration\":null,\"creator\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"modifier\":null}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:11 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/slo/correction/eb223538-d1d8-11ec-8dd2-da7ad0902002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:50:11 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/slo/26d1f492d25b598fb6ef1a0405faa153"}, "response": {"body": {"string": "{\"data\":[\"26d1f492d25b598fb6ef1a0405faa153\"],\"error\":null}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:11 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Create_an_SLO_correction_returns_OK_response-1652349011\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/slo" + }, + "response": { + "body": { + "string": "{\"data\":[{\"description\":\"\",\"monitor_tags\":[],\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"thresholds\":[{\"warning\":98.0,\"warning_display\":\"98.\",\"target\":95.0,\"target_display\":\"95.\",\"timeframe\":\"7d\"}],\"type_id\":1,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"id\":\"26d1f492d25b598fb6ef1a0405faa153\",\"name\":\"Test-Create_an_SLO_correction_returns_OK_response-1652349011\",\"created_at\":1652349012,\"tags\":[],\"modified_at\":1652349012,\"type\":\"metric\"}],\"error\":null}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:11 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"category\":\"Scheduled Maintenance\",\"description\":\"Test-Create_an_SLO_correction_returns_OK_response-1652349011\",\"end\":1652352611,\"slo_id\":\"26d1f492d25b598fb6ef1a0405faa153\",\"start\":1652349011,\"timezone\":\"UTC\"},\"type\":\"correction\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/slo/correction" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"correction\",\"id\":\"eb223538-d1d8-11ec-8dd2-da7ad0902002\",\"attributes\":{\"slo_id\":\"26d1f492d25b598fb6ef1a0405faa153\",\"start\":1652349011,\"end\":1652352611,\"description\":\"Test-Create_an_SLO_correction_returns_OK_response-1652349011\",\"category\":\"Scheduled Maintenance\",\"timezone\":\"UTC\",\"created_at\":null,\"modified_at\":null,\"rrule\":null,\"duration\":null,\"creator\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"modifier\":null}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:11 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/slo/correction/eb223538-d1d8-11ec-8dd2-da7ad0902002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:11 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/slo/26d1f492d25b598fb6ef1a0405faa153" + }, + "response": { + "body": { + "string": "{\"data\":[\"26d1f492d25b598fb6ef1a0405faa153\"],\"error\":null}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:11 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/service_level_objective_corrections/Create-an-SLO-correction-with-rrule-returns-OK-response.json b/tests/scenarios/cassettes/v1/service_level_objective_corrections/Create-an-SLO-correction-with-rrule-returns-OK-response.json index e61100ebd..4844761af 100644 --- a/tests/scenarios/cassettes/v1/service_level_objective_corrections/Create-an-SLO-correction-with-rrule-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/service_level_objective_corrections/Create-an-SLO-correction-with-rrule-returns-OK-response.json @@ -1 +1,125 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Create_an_SLO_correction_with_rrule_returns_OK_response-1652349014\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/slo"}, "response": {"body": {"string": "{\"data\":[{\"description\":\"\",\"monitor_tags\":[],\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"thresholds\":[{\"warning\":98.0,\"warning_display\":\"98.\",\"target\":95.0,\"target_display\":\"95.\",\"timeframe\":\"7d\"}],\"type_id\":1,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"id\":\"24892d3875ee57e7a9e1320ebffa3916\",\"name\":\"Test-Create_an_SLO_correction_with_rrule_returns_OK_response-1652349014\",\"created_at\":1652349014,\"tags\":[],\"modified_at\":1652349014,\"type\":\"metric\"}],\"error\":null}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:14 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"category\":\"Scheduled Maintenance\",\"description\":\"Test-Create_an_SLO_correction_with_rrule_returns_OK_response-1652349014\",\"duration\":3600,\"rrule\":\"FREQ=DAILY;INTERVAL=10;COUNT=5\",\"slo_id\":\"24892d3875ee57e7a9e1320ebffa3916\",\"start\":1652349014,\"timezone\":\"UTC\"},\"type\":\"correction\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/slo/correction"}, "response": {"body": {"string": "{\"data\":{\"type\":\"correction\",\"id\":\"ec8f9488-d1d8-11ec-bc64-da7ad0902002\",\"attributes\":{\"slo_id\":\"24892d3875ee57e7a9e1320ebffa3916\",\"start\":1652349014,\"end\":null,\"description\":\"Test-Create_an_SLO_correction_with_rrule_returns_OK_response-1652349014\",\"category\":\"Scheduled Maintenance\",\"timezone\":\"UTC\",\"created_at\":null,\"modified_at\":null,\"rrule\":\"FREQ=DAILY;INTERVAL=10;COUNT=5\",\"duration\":3600,\"creator\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"modifier\":null}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:14 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/slo/correction/ec8f9488-d1d8-11ec-bc64-da7ad0902002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:50:14 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/slo/24892d3875ee57e7a9e1320ebffa3916"}, "response": {"body": {"string": "{\"data\":[\"24892d3875ee57e7a9e1320ebffa3916\"],\"error\":null}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:14 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Create_an_SLO_correction_with_rrule_returns_OK_response-1652349014\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/slo" + }, + "response": { + "body": { + "string": "{\"data\":[{\"description\":\"\",\"monitor_tags\":[],\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"thresholds\":[{\"warning\":98.0,\"warning_display\":\"98.\",\"target\":95.0,\"target_display\":\"95.\",\"timeframe\":\"7d\"}],\"type_id\":1,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"id\":\"24892d3875ee57e7a9e1320ebffa3916\",\"name\":\"Test-Create_an_SLO_correction_with_rrule_returns_OK_response-1652349014\",\"created_at\":1652349014,\"tags\":[],\"modified_at\":1652349014,\"type\":\"metric\"}],\"error\":null}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:14 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"category\":\"Scheduled Maintenance\",\"description\":\"Test-Create_an_SLO_correction_with_rrule_returns_OK_response-1652349014\",\"duration\":3600,\"rrule\":\"FREQ=DAILY;INTERVAL=10;COUNT=5\",\"slo_id\":\"24892d3875ee57e7a9e1320ebffa3916\",\"start\":1652349014,\"timezone\":\"UTC\"},\"type\":\"correction\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/slo/correction" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"correction\",\"id\":\"ec8f9488-d1d8-11ec-bc64-da7ad0902002\",\"attributes\":{\"slo_id\":\"24892d3875ee57e7a9e1320ebffa3916\",\"start\":1652349014,\"end\":null,\"description\":\"Test-Create_an_SLO_correction_with_rrule_returns_OK_response-1652349014\",\"category\":\"Scheduled Maintenance\",\"timezone\":\"UTC\",\"created_at\":null,\"modified_at\":null,\"rrule\":\"FREQ=DAILY;INTERVAL=10;COUNT=5\",\"duration\":3600,\"creator\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"modifier\":null}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:14 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/slo/correction/ec8f9488-d1d8-11ec-bc64-da7ad0902002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:14 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/slo/24892d3875ee57e7a9e1320ebffa3916" + }, + "response": { + "body": { + "string": "{\"data\":[\"24892d3875ee57e7a9e1320ebffa3916\"],\"error\":null}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:14 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/service_level_objective_corrections/Get-all-SLO-corrections-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v1/service_level_objective_corrections/Get-all-SLO-corrections-returns-OK-response-with-pagination.json index 73f459f9e..e10a19c9b 100644 --- a/tests/scenarios/cassettes/v1/service_level_objective_corrections/Get-all-SLO-corrections-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v1/service_level_objective_corrections/Get-all-SLO-corrections-returns-OK-response-with-pagination.json @@ -1 +1,61 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/slo/correction?limit=2"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"correction\",\"id\":\"fb76e0fa-bf7b-11ed-ba7e-da7ad0902002\",\"attributes\":{\"slo_id\":\"a17acfd48b7c55d19192e3a697cc1d01\",\"start\":1678255200,\"end\":1678355280,\"description\":\"\",\"category\":\"Other\",\"timezone\":\"UTC\",\"created_at\":1678477473,\"modified_at\":1678477473,\"rrule\":null,\"duration\":null,\"creator\":{\"data\":{\"type\":\"users\",\"id\":\"35c75d43-eba0-11e9-a77a-2b3585ff5dfb\",\"attributes\":{\"uuid\":\"35c75d43-eba0-11e9-a77a-2b3585ff5dfb\",\"handle\":\"support-nickautotestingorg\",\"email\":\"support-user-prod@datadoghq.com\",\"name\":\"Datadog Support\",\"icon\":\"https://secure.gravatar.com/avatar/e6952b5f29fe2d996cf4e63f40db9e71?s=48&d=retro\"}}},\"modifier\":null}},{\"type\":\"correction\",\"id\":\"2d16c2ee-bf70-11ed-895f-da7ad0902002\",\"attributes\":{\"slo_id\":\"70e82706f4ae56ff8bdd7f02e767f97c\",\"start\":1678255200,\"end\":1678339140,\"description\":\"\",\"category\":\"Other\",\"timezone\":\"UTC\",\"created_at\":1678472403,\"modified_at\":1678472403,\"rrule\":null,\"duration\":null,\"creator\":{\"data\":{\"type\":\"users\",\"id\":\"35c75d43-eba0-11e9-a77a-2b3585ff5dfb\",\"attributes\":{\"uuid\":\"35c75d43-eba0-11e9-a77a-2b3585ff5dfb\",\"handle\":\"support-nickautotestingorg\",\"email\":\"support-user-prod@datadoghq.com\",\"name\":\"Datadog Support\",\"icon\":\"https://secure.gravatar.com/avatar/e6952b5f29fe2d996cf4e63f40db9e71?s=48&d=retro\"}}},\"modifier\":null}}],\"meta\":{\"page\":{\"total_count\":3,\"total_filtered_count\":2}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 25 Aug 2023 11:50:34 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/slo/correction?limit=2&offset=2"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"correction\",\"id\":\"cc2316d2-bf6e-11ed-82f2-da7ad0902002\",\"attributes\":{\"slo_id\":\"955ab6301fa656e7b061de4a05ad4774\",\"start\":1678255200,\"end\":1678339140,\"description\":\"\",\"category\":\"Other\",\"timezone\":\"UTC\",\"created_at\":1678471811,\"modified_at\":1678471811,\"rrule\":null,\"duration\":null,\"creator\":{\"data\":{\"type\":\"users\",\"id\":\"35c75d43-eba0-11e9-a77a-2b3585ff5dfb\",\"attributes\":{\"uuid\":\"35c75d43-eba0-11e9-a77a-2b3585ff5dfb\",\"handle\":\"support-nickautotestingorg\",\"email\":\"support-user-prod@datadoghq.com\",\"name\":\"Datadog Support\",\"icon\":\"https://secure.gravatar.com/avatar/e6952b5f29fe2d996cf4e63f40db9e71?s=48&d=retro\"}}},\"modifier\":null}}],\"meta\":{\"page\":{\"total_count\":3,\"total_filtered_count\":1}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 25 Aug 2023 11:50:34 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/slo/correction?limit=2" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"correction\",\"id\":\"fb76e0fa-bf7b-11ed-ba7e-da7ad0902002\",\"attributes\":{\"slo_id\":\"a17acfd48b7c55d19192e3a697cc1d01\",\"start\":1678255200,\"end\":1678355280,\"description\":\"\",\"category\":\"Other\",\"timezone\":\"UTC\",\"created_at\":1678477473,\"modified_at\":1678477473,\"rrule\":null,\"duration\":null,\"creator\":{\"data\":{\"type\":\"users\",\"id\":\"35c75d43-eba0-11e9-a77a-2b3585ff5dfb\",\"attributes\":{\"uuid\":\"35c75d43-eba0-11e9-a77a-2b3585ff5dfb\",\"handle\":\"support-nickautotestingorg\",\"email\":\"support-user-prod@datadoghq.com\",\"name\":\"Datadog Support\",\"icon\":\"https://secure.gravatar.com/avatar/e6952b5f29fe2d996cf4e63f40db9e71?s=48&d=retro\"}}},\"modifier\":null}},{\"type\":\"correction\",\"id\":\"2d16c2ee-bf70-11ed-895f-da7ad0902002\",\"attributes\":{\"slo_id\":\"70e82706f4ae56ff8bdd7f02e767f97c\",\"start\":1678255200,\"end\":1678339140,\"description\":\"\",\"category\":\"Other\",\"timezone\":\"UTC\",\"created_at\":1678472403,\"modified_at\":1678472403,\"rrule\":null,\"duration\":null,\"creator\":{\"data\":{\"type\":\"users\",\"id\":\"35c75d43-eba0-11e9-a77a-2b3585ff5dfb\",\"attributes\":{\"uuid\":\"35c75d43-eba0-11e9-a77a-2b3585ff5dfb\",\"handle\":\"support-nickautotestingorg\",\"email\":\"support-user-prod@datadoghq.com\",\"name\":\"Datadog Support\",\"icon\":\"https://secure.gravatar.com/avatar/e6952b5f29fe2d996cf4e63f40db9e71?s=48&d=retro\"}}},\"modifier\":null}}],\"meta\":{\"page\":{\"total_count\":3,\"total_filtered_count\":2}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 25 Aug 2023 11:50:34 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/slo/correction?limit=2&offset=2" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"correction\",\"id\":\"cc2316d2-bf6e-11ed-82f2-da7ad0902002\",\"attributes\":{\"slo_id\":\"955ab6301fa656e7b061de4a05ad4774\",\"start\":1678255200,\"end\":1678339140,\"description\":\"\",\"category\":\"Other\",\"timezone\":\"UTC\",\"created_at\":1678471811,\"modified_at\":1678471811,\"rrule\":null,\"duration\":null,\"creator\":{\"data\":{\"type\":\"users\",\"id\":\"35c75d43-eba0-11e9-a77a-2b3585ff5dfb\",\"attributes\":{\"uuid\":\"35c75d43-eba0-11e9-a77a-2b3585ff5dfb\",\"handle\":\"support-nickautotestingorg\",\"email\":\"support-user-prod@datadoghq.com\",\"name\":\"Datadog Support\",\"icon\":\"https://secure.gravatar.com/avatar/e6952b5f29fe2d996cf4e63f40db9e71?s=48&d=retro\"}}},\"modifier\":null}}],\"meta\":{\"page\":{\"total_count\":3,\"total_filtered_count\":1}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 25 Aug 2023 11:50:34 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/service_level_objective_corrections/Get-all-SLO-corrections-returns-OK-response.json b/tests/scenarios/cassettes/v1/service_level_objective_corrections/Get-all-SLO-corrections-returns-OK-response.json index 9ba08cb1e..9d5e6aea1 100644 --- a/tests/scenarios/cassettes/v1/service_level_objective_corrections/Get-all-SLO-corrections-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/service_level_objective_corrections/Get-all-SLO-corrections-returns-OK-response.json @@ -1 +1,157 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Get_all_SLO_corrections_returns_OK_response-1668703099\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/slo"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"60569193a09054f6bc6fa6e87fb43031\",\"name\":\"Test-Get_all_SLO_corrections_returns_OK_response-1668703099\",\"tags\":[],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":95.0,\"target_display\":\"95.\",\"warning\":98.0,\"warning_display\":\"98.\"}],\"type\":\"metric\",\"type_id\":1,\"description\":\"\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"created_at\":1668703100,\"modified_at\":1668703100}],\"error\":null}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 17 Nov 2022 16:38:19 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"category\":\"Other\",\"description\":\"Test Correction\",\"end\":1668706699,\"slo_id\":\"60569193a09054f6bc6fa6e87fb43031\",\"start\":1668703099,\"timezone\":\"UTC\"},\"type\":\"correction\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/slo/correction"}, "response": {"body": {"string": "{\"data\":{\"type\":\"correction\",\"id\":\"3ecd96c6-6696-11ed-9c21-da7ad0902002\",\"attributes\":{\"slo_id\":\"60569193a09054f6bc6fa6e87fb43031\",\"start\":1668703099,\"end\":1668706699,\"description\":\"Test Correction\",\"category\":\"Other\",\"timezone\":\"UTC\",\"created_at\":null,\"modified_at\":null,\"rrule\":null,\"duration\":null,\"creator\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"modifier\":null}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 17 Nov 2022 16:38:19 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/slo/correction?offset=1&limit=1"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"correction\",\"id\":\"3ecd96c6-6696-11ed-9c21-da7ad0902002\",\"attributes\":{\"slo_id\":\"60569193a09054f6bc6fa6e87fb43031\",\"start\":1668703099,\"end\":1668706699,\"description\":\"Test Correction\",\"category\":\"Other\",\"timezone\":\"UTC\",\"created_at\":1668703100,\"modified_at\":1668703100,\"rrule\":null,\"duration\":null,\"creator\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"modifier\":null}}],\"meta\":{\"page\":{\"total_count\":2,\"total_filtered_count\":1}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 17 Nov 2022 16:38:19 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/slo/correction/3ecd96c6-6696-11ed-9c21-da7ad0902002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 17 Nov 2022 16:38:19 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/slo/60569193a09054f6bc6fa6e87fb43031"}, "response": {"body": {"string": "{\"data\":[\"60569193a09054f6bc6fa6e87fb43031\"],\"error\":null}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 17 Nov 2022 16:38:19 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Get_all_SLO_corrections_returns_OK_response-1668703099\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/slo" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"60569193a09054f6bc6fa6e87fb43031\",\"name\":\"Test-Get_all_SLO_corrections_returns_OK_response-1668703099\",\"tags\":[],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":95.0,\"target_display\":\"95.\",\"warning\":98.0,\"warning_display\":\"98.\"}],\"type\":\"metric\",\"type_id\":1,\"description\":\"\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"created_at\":1668703100,\"modified_at\":1668703100}],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 17 Nov 2022 16:38:19 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"category\":\"Other\",\"description\":\"Test Correction\",\"end\":1668706699,\"slo_id\":\"60569193a09054f6bc6fa6e87fb43031\",\"start\":1668703099,\"timezone\":\"UTC\"},\"type\":\"correction\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/slo/correction" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"correction\",\"id\":\"3ecd96c6-6696-11ed-9c21-da7ad0902002\",\"attributes\":{\"slo_id\":\"60569193a09054f6bc6fa6e87fb43031\",\"start\":1668703099,\"end\":1668706699,\"description\":\"Test Correction\",\"category\":\"Other\",\"timezone\":\"UTC\",\"created_at\":null,\"modified_at\":null,\"rrule\":null,\"duration\":null,\"creator\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"modifier\":null}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 17 Nov 2022 16:38:19 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/slo/correction?offset=1&limit=1" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"correction\",\"id\":\"3ecd96c6-6696-11ed-9c21-da7ad0902002\",\"attributes\":{\"slo_id\":\"60569193a09054f6bc6fa6e87fb43031\",\"start\":1668703099,\"end\":1668706699,\"description\":\"Test Correction\",\"category\":\"Other\",\"timezone\":\"UTC\",\"created_at\":1668703100,\"modified_at\":1668703100,\"rrule\":null,\"duration\":null,\"creator\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"modifier\":null}}],\"meta\":{\"page\":{\"total_count\":2,\"total_filtered_count\":1}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 17 Nov 2022 16:38:19 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/slo/correction/3ecd96c6-6696-11ed-9c21-da7ad0902002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 17 Nov 2022 16:38:19 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/slo/60569193a09054f6bc6fa6e87fb43031" + }, + "response": { + "body": { + "string": "{\"data\":[\"60569193a09054f6bc6fa6e87fb43031\"],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 17 Nov 2022 16:38:19 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/service_level_objective_corrections/Get-an-SLO-correction-for-an-SLO-returns-OK-response.json b/tests/scenarios/cassettes/v1/service_level_objective_corrections/Get-an-SLO-correction-for-an-SLO-returns-OK-response.json index 4701d4a0e..1adceff47 100644 --- a/tests/scenarios/cassettes/v1/service_level_objective_corrections/Get-an-SLO-correction-for-an-SLO-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/service_level_objective_corrections/Get-an-SLO-correction-for-an-SLO-returns-OK-response.json @@ -1 +1,153 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Get_an_SLO_correction_for_an_SLO_returns_OK_response-1652349019\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/slo"}, "response": {"body": {"string": "{\"data\":[{\"description\":\"\",\"monitor_tags\":[],\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"thresholds\":[{\"warning\":98.0,\"warning_display\":\"98.\",\"target\":95.0,\"target_display\":\"95.\",\"timeframe\":\"7d\"}],\"type_id\":1,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"id\":\"b7e8543aac97516ebb61e8743d1a10a1\",\"name\":\"Test-Get_an_SLO_correction_for_an_SLO_returns_OK_response-1652349019\",\"created_at\":1652349019,\"tags\":[],\"modified_at\":1652349019,\"type\":\"metric\"}],\"error\":null}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:19 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"category\":\"Other\",\"description\":\"Test Correction\",\"end\":1652352619,\"slo_id\":\"b7e8543aac97516ebb61e8743d1a10a1\",\"start\":1652349019,\"timezone\":\"UTC\"},\"type\":\"correction\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/slo/correction"}, "response": {"body": {"string": "{\"data\":{\"type\":\"correction\",\"id\":\"efa6f9ea-d1d8-11ec-9495-da7ad0902002\",\"attributes\":{\"slo_id\":\"b7e8543aac97516ebb61e8743d1a10a1\",\"start\":1652349019,\"end\":1652352619,\"description\":\"Test Correction\",\"category\":\"Other\",\"timezone\":\"UTC\",\"created_at\":null,\"modified_at\":null,\"rrule\":null,\"duration\":null,\"creator\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"modifier\":null}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:19 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/slo/correction/efa6f9ea-d1d8-11ec-9495-da7ad0902002"}, "response": {"body": {"string": "{\"data\":{\"type\":\"correction\",\"id\":\"efa6f9ea-d1d8-11ec-9495-da7ad0902002\",\"attributes\":{\"slo_id\":\"b7e8543aac97516ebb61e8743d1a10a1\",\"start\":1652349019,\"end\":1652352619,\"description\":\"Test Correction\",\"category\":\"Other\",\"timezone\":\"UTC\",\"created_at\":1652349020,\"modified_at\":1652349020,\"rrule\":null,\"duration\":null,\"creator\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"modifier\":null}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:19 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/slo/correction/efa6f9ea-d1d8-11ec-9495-da7ad0902002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:50:19 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/slo/b7e8543aac97516ebb61e8743d1a10a1"}, "response": {"body": {"string": "{\"data\":[\"b7e8543aac97516ebb61e8743d1a10a1\"],\"error\":null}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:19 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Get_an_SLO_correction_for_an_SLO_returns_OK_response-1652349019\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/slo" + }, + "response": { + "body": { + "string": "{\"data\":[{\"description\":\"\",\"monitor_tags\":[],\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"thresholds\":[{\"warning\":98.0,\"warning_display\":\"98.\",\"target\":95.0,\"target_display\":\"95.\",\"timeframe\":\"7d\"}],\"type_id\":1,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"id\":\"b7e8543aac97516ebb61e8743d1a10a1\",\"name\":\"Test-Get_an_SLO_correction_for_an_SLO_returns_OK_response-1652349019\",\"created_at\":1652349019,\"tags\":[],\"modified_at\":1652349019,\"type\":\"metric\"}],\"error\":null}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:19 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"category\":\"Other\",\"description\":\"Test Correction\",\"end\":1652352619,\"slo_id\":\"b7e8543aac97516ebb61e8743d1a10a1\",\"start\":1652349019,\"timezone\":\"UTC\"},\"type\":\"correction\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/slo/correction" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"correction\",\"id\":\"efa6f9ea-d1d8-11ec-9495-da7ad0902002\",\"attributes\":{\"slo_id\":\"b7e8543aac97516ebb61e8743d1a10a1\",\"start\":1652349019,\"end\":1652352619,\"description\":\"Test Correction\",\"category\":\"Other\",\"timezone\":\"UTC\",\"created_at\":null,\"modified_at\":null,\"rrule\":null,\"duration\":null,\"creator\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"modifier\":null}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:19 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/slo/correction/efa6f9ea-d1d8-11ec-9495-da7ad0902002" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"correction\",\"id\":\"efa6f9ea-d1d8-11ec-9495-da7ad0902002\",\"attributes\":{\"slo_id\":\"b7e8543aac97516ebb61e8743d1a10a1\",\"start\":1652349019,\"end\":1652352619,\"description\":\"Test Correction\",\"category\":\"Other\",\"timezone\":\"UTC\",\"created_at\":1652349020,\"modified_at\":1652349020,\"rrule\":null,\"duration\":null,\"creator\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"modifier\":null}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:19 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/slo/correction/efa6f9ea-d1d8-11ec-9495-da7ad0902002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:19 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/slo/b7e8543aac97516ebb61e8743d1a10a1" + }, + "response": { + "body": { + "string": "{\"data\":[\"b7e8543aac97516ebb61e8743d1a10a1\"],\"error\":null}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:19 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/service_level_objective_corrections/Update-an-SLO-correction-returns-OK-response.json b/tests/scenarios/cassettes/v1/service_level_objective_corrections/Update-an-SLO-correction-returns-OK-response.json index ab7595613..bc83509a4 100644 --- a/tests/scenarios/cassettes/v1/service_level_objective_corrections/Update-an-SLO-correction-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/service_level_objective_corrections/Update-an-SLO-correction-returns-OK-response.json @@ -1 +1,159 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Update_an_SLO_correction_returns_OK_response-1652349022\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/slo"}, "response": {"body": {"string": "{\"data\":[{\"description\":\"\",\"monitor_tags\":[],\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"thresholds\":[{\"warning\":98.0,\"warning_display\":\"98.\",\"target\":95.0,\"target_display\":\"95.\",\"timeframe\":\"7d\"}],\"type_id\":1,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"id\":\"c20f6845962c5776b1440ed8d324d6fe\",\"name\":\"Test-Update_an_SLO_correction_returns_OK_response-1652349022\",\"created_at\":1652349022,\"tags\":[],\"modified_at\":1652349022,\"type\":\"metric\"}],\"error\":null}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:22 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"category\":\"Other\",\"description\":\"Test Correction\",\"end\":1652352622,\"slo_id\":\"c20f6845962c5776b1440ed8d324d6fe\",\"start\":1652349022,\"timezone\":\"UTC\"},\"type\":\"correction\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/slo/correction"}, "response": {"body": {"string": "{\"data\":{\"type\":\"correction\",\"id\":\"f12e44e4-d1d8-11ec-9dc0-da7ad0902002\",\"attributes\":{\"slo_id\":\"c20f6845962c5776b1440ed8d324d6fe\",\"start\":1652349022,\"end\":1652352622,\"description\":\"Test Correction\",\"category\":\"Other\",\"timezone\":\"UTC\",\"created_at\":null,\"modified_at\":null,\"rrule\":null,\"duration\":null,\"creator\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"modifier\":null}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:22 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"category\":\"Deployment\",\"description\":\"Test-Update_an_SLO_correction_returns_OK_response-1652349022\",\"end\":1652352622,\"start\":1652349022,\"timezone\":\"UTC\"},\"type\":\"correction\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v1/slo/correction/f12e44e4-d1d8-11ec-9dc0-da7ad0902002"}, "response": {"body": {"string": "{\"data\":{\"type\":\"correction\",\"id\":\"f12e44e4-d1d8-11ec-9dc0-da7ad0902002\",\"attributes\":{\"slo_id\":\"c20f6845962c5776b1440ed8d324d6fe\",\"start\":1652349022,\"end\":1652352622,\"description\":\"Test-Update_an_SLO_correction_returns_OK_response-1652349022\",\"category\":\"Deployment\",\"timezone\":\"UTC\",\"created_at\":1652349023,\"modified_at\":1652349023,\"rrule\":null,\"duration\":null,\"creator\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"modifier\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:22 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/slo/correction/f12e44e4-d1d8-11ec-9dc0-da7ad0902002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:50:22 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/slo/c20f6845962c5776b1440ed8d324d6fe"}, "response": {"body": {"string": "{\"data\":[\"c20f6845962c5776b1440ed8d324d6fe\"],\"error\":null}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:22 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Update_an_SLO_correction_returns_OK_response-1652349022\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/slo" + }, + "response": { + "body": { + "string": "{\"data\":[{\"description\":\"\",\"monitor_tags\":[],\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"thresholds\":[{\"warning\":98.0,\"warning_display\":\"98.\",\"target\":95.0,\"target_display\":\"95.\",\"timeframe\":\"7d\"}],\"type_id\":1,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"id\":\"c20f6845962c5776b1440ed8d324d6fe\",\"name\":\"Test-Update_an_SLO_correction_returns_OK_response-1652349022\",\"created_at\":1652349022,\"tags\":[],\"modified_at\":1652349022,\"type\":\"metric\"}],\"error\":null}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:22 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"category\":\"Other\",\"description\":\"Test Correction\",\"end\":1652352622,\"slo_id\":\"c20f6845962c5776b1440ed8d324d6fe\",\"start\":1652349022,\"timezone\":\"UTC\"},\"type\":\"correction\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/slo/correction" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"correction\",\"id\":\"f12e44e4-d1d8-11ec-9dc0-da7ad0902002\",\"attributes\":{\"slo_id\":\"c20f6845962c5776b1440ed8d324d6fe\",\"start\":1652349022,\"end\":1652352622,\"description\":\"Test Correction\",\"category\":\"Other\",\"timezone\":\"UTC\",\"created_at\":null,\"modified_at\":null,\"rrule\":null,\"duration\":null,\"creator\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"modifier\":null}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:22 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"category\":\"Deployment\",\"description\":\"Test-Update_an_SLO_correction_returns_OK_response-1652349022\",\"end\":1652352622,\"start\":1652349022,\"timezone\":\"UTC\"},\"type\":\"correction\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v1/slo/correction/f12e44e4-d1d8-11ec-9dc0-da7ad0902002" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"correction\",\"id\":\"f12e44e4-d1d8-11ec-9dc0-da7ad0902002\",\"attributes\":{\"slo_id\":\"c20f6845962c5776b1440ed8d324d6fe\",\"start\":1652349022,\"end\":1652352622,\"description\":\"Test-Update_an_SLO_correction_returns_OK_response-1652349022\",\"category\":\"Deployment\",\"timezone\":\"UTC\",\"created_at\":1652349023,\"modified_at\":1652349023,\"rrule\":null,\"duration\":null,\"creator\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"modifier\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:22 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/slo/correction/f12e44e4-d1d8-11ec-9dc0-da7ad0902002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:22 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/slo/c20f6845962c5776b1440ed8d324d6fe" + }, + "response": { + "body": { + "string": "{\"data\":[\"c20f6845962c5776b1440ed8d324d6fe\"],\"error\":null}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:22 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/service_level_objectives/Create-a-time-slice-SLO-object-returns-OK-response.frozen b/tests/scenarios/cassettes/v1/service_level_objectives/Create-a-time-slice-SLO-object-returns-OK-response.frozen new file mode 100644 index 000000000..0d30f4681 --- /dev/null +++ b/tests/scenarios/cassettes/v1/service_level_objectives/Create-a-time-slice-SLO-object-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-01-03T22:54:44.816Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/service_level_objectives/Create-a-time-slice-SLO-object-returns-OK-response.json b/tests/scenarios/cassettes/v1/service_level_objectives/Create-a-time-slice-SLO-object-returns-OK-response.json new file mode 100644 index 000000000..3c65a8af1 --- /dev/null +++ b/tests/scenarios/cassettes/v1/service_level_objectives/Create-a-time-slice-SLO-object-returns-OK-response.json @@ -0,0 +1,67 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":\"string\",\"name\":\"Test-Create_a_time_slice_SLO_object_returns_OK_response-1704322484\",\"sli_specification\":{\"time_slice\":{\"comparator\":\">\",\"query\":{\"formulas\":[{\"formula\":\"query1\"}],\"queries\":[{\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"trace.servlet.request{env:prod}\"}]},\"threshold\":5}},\"tags\":[\"env:prod\"],\"target_threshold\":97,\"thresholds\":[{\"target\":97,\"target_display\":\"97.0\",\"timeframe\":\"7d\",\"warning\":98,\"warning_display\":\"98.0\"}],\"timeframe\":\"7d\",\"type\":\"time_slice\",\"warning_threshold\":98}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/slo" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"776b80141eda520bbfae33e897849f61\",\"name\":\"Test-Create_a_time_slice_SLO_object_returns_OK_response-1704322484\",\"tags\":[\"env:prod\"],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":97.0,\"target_display\":\"97.\",\"warning\":98.0,\"warning_display\":\"98.\"}],\"type\":\"time_slice\",\"type_id\":2,\"description\":\"string\",\"timeframe\":\"7d\",\"warning_threshold\":98,\"target_threshold\":97,\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"created_at\":1704322485,\"modified_at\":1704322485,\"sli_specification\":{\"time_slice\":{\"comparator\":\">\",\"query\":{\"formulas\":[{\"formula\":\"query1\"}],\"queries\":[{\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"trace.servlet.request{env:prod}\"}]},\"threshold\":5,\"query_interval_seconds\":300}}}],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 03 Jan 2024 22:54:44 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/slo/776b80141eda520bbfae33e897849f61" + }, + "response": { + "body": { + "string": "{\"data\":[\"776b80141eda520bbfae33e897849f61\"],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 03 Jan 2024 22:54:44 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/service_level_objectives/Create-an-SLO-object-returns-Bad-Request-response.frozen b/tests/scenarios/cassettes/v1/service_level_objectives/Create-an-SLO-object-returns-Bad-Request-response.frozen index 04ad7cb74..931d2be7c 100644 --- a/tests/scenarios/cassettes/v1/service_level_objectives/Create-an-SLO-object-returns-Bad-Request-response.frozen +++ b/tests/scenarios/cassettes/v1/service_level_objectives/Create-an-SLO-object-returns-Bad-Request-response.frozen @@ -1 +1 @@ -2022-01-06T00:51:10.351Z \ No newline at end of file +2024-01-03T22:54:45.312Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/service_level_objectives/Create-an-SLO-object-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/service_level_objectives/Create-an-SLO-object-returns-Bad-Request-response.json index 4df468de0..c6fcf2bc1 100644 --- a/tests/scenarios/cassettes/v1/service_level_objectives/Create-an-SLO-object-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/service_level_objectives/Create-an-SLO-object-returns-Bad-Request-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Create_an_SLO_object_returns_Bad_Request_response-1641430270\",\"thresholds\":[{\"target\":95,\"target_display\":\"95.0\",\"timeframe\":\"7d\",\"warning\":98,\"warning_display\":\"98.0\"}],\"type\":\"monitor\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/slo"}, "response": {"body": {"string": "{\"errors\":[\"Invalid payload: must specify monitor_ids\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Thu, 06 Jan 2022 00:51:10 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Create_an_SLO_object_returns_Bad_Request_response-1704322485\",\"thresholds\":[{\"target\":95,\"target_display\":\"95.0\",\"timeframe\":\"7d\",\"warning\":98,\"warning_display\":\"98.0\"}],\"type\":\"monitor\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/slo" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Invalid payload: must specify monitor_ids\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Wed, 03 Jan 2024 22:54:45 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/service_level_objectives/Create-an-SLO-object-returns-OK-response.frozen b/tests/scenarios/cassettes/v1/service_level_objectives/Create-an-SLO-object-returns-OK-response.frozen index c04d9ebdb..4c1905702 100644 --- a/tests/scenarios/cassettes/v1/service_level_objectives/Create-an-SLO-object-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v1/service_level_objectives/Create-an-SLO-object-returns-OK-response.frozen @@ -1 +1 @@ -2023-01-26T10:51:10.970Z \ No newline at end of file +2024-01-03T22:54:45.425Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/service_level_objectives/Create-an-SLO-object-returns-OK-response.json b/tests/scenarios/cassettes/v1/service_level_objectives/Create-an-SLO-object-returns-OK-response.json index 49e54e21c..aca590bdb 100644 --- a/tests/scenarios/cassettes/v1/service_level_objectives/Create-an-SLO-object-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/service_level_objectives/Create-an-SLO-object-returns-OK-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"description\":\"string\",\"groups\":[\"env:test\",\"role:mysql\"],\"monitor_ids\":[],\"name\":\"Test-Create_an_SLO_object_returns_OK_response-1674730270\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"tags\":[\"env:prod\",\"app:core\"],\"target_threshold\":97,\"thresholds\":[{\"target\":97,\"target_display\":\"97.0\",\"timeframe\":\"7d\",\"warning\":98,\"warning_display\":\"98.0\"}],\"timeframe\":\"7d\",\"type\":\"metric\",\"warning_threshold\":98}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/slo"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"fbad7e9ce0aa5a32aa14224b91c699c6\",\"name\":\"Test-Create_an_SLO_object_returns_OK_response-1674730270\",\"tags\":[\"env:prod\",\"app:core\"],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":97.0,\"target_display\":\"97.\",\"warning\":98.0,\"warning_display\":\"98.\"}],\"type\":\"metric\",\"type_id\":1,\"description\":\"string\",\"timeframe\":\"7d\",\"warning_threshold\":98,\"target_threshold\":97,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"created_at\":1674730271,\"modified_at\":1674730271,\"groups\":[\"env:test\",\"role:mysql\"]}],\"error\":null}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 26 Jan 2023 10:51:10 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/slo/fbad7e9ce0aa5a32aa14224b91c699c6"}, "response": {"body": {"string": "{\"data\":[\"fbad7e9ce0aa5a32aa14224b91c699c6\"],\"error\":null}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 26 Jan 2023 10:51:10 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"description\":\"string\",\"groups\":[\"env:test\",\"role:mysql\"],\"monitor_ids\":[],\"name\":\"Test-Create_an_SLO_object_returns_OK_response-1704322485\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"tags\":[\"env:prod\",\"app:core\"],\"target_threshold\":97,\"thresholds\":[{\"target\":97,\"target_display\":\"97.0\",\"timeframe\":\"7d\",\"warning\":98,\"warning_display\":\"98.0\"}],\"timeframe\":\"7d\",\"type\":\"metric\",\"warning_threshold\":98}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/slo" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"6a3ffb99fc285f4f947ccf83d888558b\",\"name\":\"Test-Create_an_SLO_object_returns_OK_response-1704322485\",\"tags\":[\"app:core\",\"env:prod\"],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":97.0,\"target_display\":\"97.\",\"warning\":98.0,\"warning_display\":\"98.\"}],\"type\":\"metric\",\"type_id\":1,\"description\":\"string\",\"timeframe\":\"7d\",\"warning_threshold\":98,\"target_threshold\":97,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"created_at\":1704322485,\"modified_at\":1704322485,\"groups\":[\"env:test\",\"role:mysql\"]}],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 03 Jan 2024 22:54:45 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/slo/6a3ffb99fc285f4f947ccf83d888558b" + }, + "response": { + "body": { + "string": "{\"data\":[\"6a3ffb99fc285f4f947ccf83d888558b\"],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 03 Jan 2024 22:54:45 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/service_level_objectives/Delete-an-SLO-returns-Not-found-response.frozen b/tests/scenarios/cassettes/v1/service_level_objectives/Delete-an-SLO-returns-Not-found-response.frozen index f99e15030..b861a89a7 100644 --- a/tests/scenarios/cassettes/v1/service_level_objectives/Delete-an-SLO-returns-Not-found-response.frozen +++ b/tests/scenarios/cassettes/v1/service_level_objectives/Delete-an-SLO-returns-Not-found-response.frozen @@ -1 +1 @@ -2022-01-06T00:51:10.974Z \ No newline at end of file +2024-01-03T22:54:45.952Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/service_level_objectives/Delete-an-SLO-returns-Not-found-response.json b/tests/scenarios/cassettes/v1/service_level_objectives/Delete-an-SLO-returns-Not-found-response.json index a63ea7d65..d9528f341 100644 --- a/tests/scenarios/cassettes/v1/service_level_objectives/Delete-an-SLO-returns-Not-found-response.json +++ b/tests/scenarios/cassettes/v1/service_level_objectives/Delete-an-SLO-returns-Not-found-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/slo/testdeleteansloreturnsnotfoundresponse1641430270"}, "response": {"body": {"string": "{\"errors\":[\"SLO not found: testdeleteansloreturnsnotfoundresponse1641430270 not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 06 Jan 2022 00:51:10 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/slo/testdeleteansloreturnsnotfoundresponse1704322485" + }, + "response": { + "body": { + "string": "{\"errors\":[\"SLO not found: testdeleteansloreturnsnotfoundresponse1704322485 not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Wed, 03 Jan 2024 22:54:45 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/service_level_objectives/Delete-an-SLO-returns-OK-response.frozen b/tests/scenarios/cassettes/v1/service_level_objectives/Delete-an-SLO-returns-OK-response.frozen index f998a181a..84e1b4e44 100644 --- a/tests/scenarios/cassettes/v1/service_level_objectives/Delete-an-SLO-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v1/service_level_objectives/Delete-an-SLO-returns-OK-response.frozen @@ -1 +1 @@ -2022-01-06T00:51:11.158Z \ No newline at end of file +2024-01-03T22:54:46.108Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/service_level_objectives/Delete-an-SLO-returns-OK-response.json b/tests/scenarios/cassettes/v1/service_level_objectives/Delete-an-SLO-returns-OK-response.json index a90dc7afc..15210b39f 100644 --- a/tests/scenarios/cassettes/v1/service_level_objectives/Delete-an-SLO-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/service_level_objectives/Delete-an-SLO-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Delete_an_SLO_returns_OK_response-1641430271\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/slo"}, "response": {"body": {"string": "{\"data\":[{\"description\":\"\",\"monitor_tags\":[],\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"thresholds\":[{\"warning\":98,\"warning_display\":\"98.\",\"target\":95,\"target_display\":\"95.\",\"timeframe\":\"7d\"}],\"type_id\":1,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"id\":\"7c7a8700d1125ac99aa0ffa12f686b89\",\"name\":\"Test-Delete_an_SLO_returns_OK_response-1641430271\",\"created_at\":1641430271,\"tags\":[],\"modified_at\":1641430271,\"type\":\"metric\"}],\"error\":null}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:51:11 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/slo/7c7a8700d1125ac99aa0ffa12f686b89"}, "response": {"body": {"string": "{\"data\":[\"7c7a8700d1125ac99aa0ffa12f686b89\"],\"error\":null}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:51:11 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/slo/7c7a8700d1125ac99aa0ffa12f686b89"}, "response": {"body": {"string": "{\"errors\":[\"SLO not found: 7c7a8700d1125ac99aa0ffa12f686b89 not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 06 Jan 2022 00:51:11 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Delete_an_SLO_returns_OK_response-1704322486\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/slo" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"6065f42541b856f3abaf255e6a61de79\",\"name\":\"Test-Delete_an_SLO_returns_OK_response-1704322486\",\"tags\":[],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":95.0,\"target_display\":\"95.\",\"warning\":98.0,\"warning_display\":\"98.\"}],\"type\":\"metric\",\"type_id\":1,\"description\":\"\",\"timeframe\":\"7d\",\"warning_threshold\":98,\"target_threshold\":95,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"created_at\":1704322486,\"modified_at\":1704322486}],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 03 Jan 2024 22:54:46 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/slo/6065f42541b856f3abaf255e6a61de79" + }, + "response": { + "body": { + "string": "{\"data\":[\"6065f42541b856f3abaf255e6a61de79\"],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 03 Jan 2024 22:54:46 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/slo/6065f42541b856f3abaf255e6a61de79" + }, + "response": { + "body": { + "string": "{\"errors\":[\"SLO not found: 6065f42541b856f3abaf255e6a61de79 not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Wed, 03 Jan 2024 22:54:46 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/service_level_objectives/Get-Corrections-For-an-SLO-returns-OK-response.frozen b/tests/scenarios/cassettes/v1/service_level_objectives/Get-Corrections-For-an-SLO-returns-OK-response.frozen index 0b05e38af..9d1d459ec 100644 --- a/tests/scenarios/cassettes/v1/service_level_objectives/Get-Corrections-For-an-SLO-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v1/service_level_objectives/Get-Corrections-For-an-SLO-returns-OK-response.frozen @@ -1 +1 @@ -2022-05-12T09:50:24.737Z \ No newline at end of file +2024-01-03T22:54:46.662Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/service_level_objectives/Get-Corrections-For-an-SLO-returns-OK-response.json b/tests/scenarios/cassettes/v1/service_level_objectives/Get-Corrections-For-an-SLO-returns-OK-response.json index 3cac77600..8d5953f60 100644 --- a/tests/scenarios/cassettes/v1/service_level_objectives/Get-Corrections-For-an-SLO-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/service_level_objectives/Get-Corrections-For-an-SLO-returns-OK-response.json @@ -1 +1,157 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Get_Corrections_For_an_SLO_returns_OK_response-1652349024\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/slo"}, "response": {"body": {"string": "{\"data\":[{\"description\":\"\",\"monitor_tags\":[],\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"thresholds\":[{\"warning\":98.0,\"warning_display\":\"98.\",\"target\":95.0,\"target_display\":\"95.\",\"timeframe\":\"7d\"}],\"type_id\":1,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"id\":\"dd2615cf2fbf56098f3cf4965d37892f\",\"name\":\"Test-Get_Corrections_For_an_SLO_returns_OK_response-1652349024\",\"created_at\":1652349025,\"tags\":[],\"modified_at\":1652349025,\"type\":\"metric\"}],\"error\":null}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:24 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"category\":\"Other\",\"description\":\"Test Correction\",\"end\":1652352624,\"slo_id\":\"dd2615cf2fbf56098f3cf4965d37892f\",\"start\":1652349024,\"timezone\":\"UTC\"},\"type\":\"correction\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/slo/correction"}, "response": {"body": {"string": "{\"data\":{\"type\":\"correction\",\"id\":\"f2b8ad40-d1d8-11ec-a01e-da7ad0902002\",\"attributes\":{\"slo_id\":\"dd2615cf2fbf56098f3cf4965d37892f\",\"start\":1652349024,\"end\":1652352624,\"description\":\"Test Correction\",\"category\":\"Other\",\"timezone\":\"UTC\",\"created_at\":null,\"modified_at\":null,\"rrule\":null,\"duration\":null,\"creator\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"modifier\":null}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:24 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/slo/dd2615cf2fbf56098f3cf4965d37892f/corrections"}, "response": {"body": {"string": "{\"meta\":{\"pagination\":{\"type\":\"offset_limit\",\"prev_offset\":0,\"next_offset\":10,\"offset\":0,\"limit\":10,\"total\":1,\"first_offset\":0,\"last_offset\":0}},\"data\":[{\"type\":\"correction\",\"id\":\"f2b8ad40-d1d8-11ec-a01e-da7ad0902002\",\"attributes\":{\"slo_id\":\"dd2615cf2fbf56098f3cf4965d37892f\",\"start\":1652349024,\"end\":1652352624,\"description\":\"Test Correction\",\"category\":\"Other\",\"timezone\":\"UTC\",\"created_at\":1652349025,\"modified_at\":1652349025,\"rrule\":null,\"duration\":null,\"creator\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"modifier\":null}}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v1/slo/dd2615cf2fbf56098f3cf4965d37892f/corrections?page[offset]=10&page[limit]=10\",\"self\":\"https://api.datadoghq.com/api/v1/slo/dd2615cf2fbf56098f3cf4965d37892f/corrections\",\"prev\":null,\"last\":null,\"first\":\"https://api.datadoghq.com/api/v1/slo/dd2615cf2fbf56098f3cf4965d37892f/corrections?page[offset]=0&page[limit]=10\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:24 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/slo/correction/f2b8ad40-d1d8-11ec-a01e-da7ad0902002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:50:24 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/slo/dd2615cf2fbf56098f3cf4965d37892f"}, "response": {"body": {"string": "{\"data\":[\"dd2615cf2fbf56098f3cf4965d37892f\"],\"error\":null}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:24 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Get_Corrections_For_an_SLO_returns_OK_response-1704322486\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/slo" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"029b3b619a6255eb899c46681dd7038f\",\"name\":\"Test-Get_Corrections_For_an_SLO_returns_OK_response-1704322486\",\"tags\":[],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":95.0,\"target_display\":\"95.\",\"warning\":98.0,\"warning_display\":\"98.\"}],\"type\":\"metric\",\"type_id\":1,\"description\":\"\",\"timeframe\":\"7d\",\"warning_threshold\":98,\"target_threshold\":95,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"created_at\":1704322486,\"modified_at\":1704322486}],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 03 Jan 2024 22:54:46 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"category\":\"Other\",\"description\":\"Test Correction\",\"end\":1704326086,\"slo_id\":\"029b3b619a6255eb899c46681dd7038f\",\"start\":1704322486,\"timezone\":\"UTC\"},\"type\":\"correction\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/slo/correction" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"correction\",\"id\":\"17b61420-aa8b-11ee-97f2-da7ad0902002\",\"attributes\":{\"slo_id\":\"029b3b619a6255eb899c46681dd7038f\",\"start\":1704322486,\"end\":1704326086,\"description\":\"Test Correction\",\"category\":\"Other\",\"timezone\":\"UTC\",\"created_at\":null,\"modified_at\":null,\"rrule\":null,\"duration\":null,\"creator\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"modifier\":null}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 03 Jan 2024 22:54:46 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/slo/029b3b619a6255eb899c46681dd7038f/corrections" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"correction\",\"id\":\"17b61420-aa8b-11ee-97f2-da7ad0902002\",\"attributes\":{\"slo_id\":\"029b3b619a6255eb899c46681dd7038f\",\"start\":1704322486,\"end\":1704326086,\"description\":\"Test Correction\",\"category\":\"Other\",\"timezone\":\"UTC\",\"created_at\":1704322487,\"modified_at\":1704322487,\"rrule\":null,\"duration\":null,\"creator\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"modifier\":null}}],\"meta\":{\"pagination\":{\"offset\":0,\"first_offset\":0,\"prev_offset\":0,\"next_offset\":10,\"last_offset\":0,\"limit\":10,\"type\":\"offset_limit\",\"total\":1}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v1/slo/029b3b619a6255eb899c46681dd7038f/corrections\",\"last\":null,\"next\":\"https://api.datadoghq.com/api/v1/slo/029b3b619a6255eb899c46681dd7038f/corrections?page[offset]=10&page[limit]=10\",\"prev\":null,\"first\":\"https://api.datadoghq.com/api/v1/slo/029b3b619a6255eb899c46681dd7038f/corrections?page[offset]=0&page[limit]=10\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 03 Jan 2024 22:54:46 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/slo/correction/17b61420-aa8b-11ee-97f2-da7ad0902002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 03 Jan 2024 22:54:46 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/slo/029b3b619a6255eb899c46681dd7038f" + }, + "response": { + "body": { + "string": "{\"data\":[\"029b3b619a6255eb899c46681dd7038f\"],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 03 Jan 2024 22:54:46 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/service_level_objectives/Get-all-SLOs-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v1/service_level_objectives/Get-all-SLOs-returns-OK-response-with-pagination.json index 477fe9063..b7c066526 100644 --- a/tests/scenarios/cassettes/v1/service_level_objectives/Get-all-SLOs-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v1/service_level_objectives/Get-all-SLOs-returns-OK-response-with-pagination.json @@ -1 +1,61 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/slo?limit=2"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"70e82706f4ae56ff8bdd7f02e767f97c\",\"name\":\"test SLO 1668426861\",\"tags\":[\"type:test\"],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":90.0,\"target_display\":\"90.\"}],\"type\":\"metric\",\"type_id\":1,\"description\":\"\",\"timeframe\":\"7d\",\"target_threshold\":90.0,\"query\":{\"denominator\":\"sum:my.custom.metric{!type:ignored}.as_count()\",\"numerator\":\"sum:my.custom.metric{type:good,!type:ignored}.as_count()\"},\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"created_at\":1668426862,\"modified_at\":1668426862},{\"id\":\"955ab6301fa656e7b061de4a05ad4774\",\"name\":\"tf-TestAccDatadogServiceLevelObjective_Basic-local-1673543942-updated\",\"tags\":[\"foo:bar\",\"baz\"],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":99.5,\"target_display\":\"99.5\",\"warning\":99.8,\"warning_display\":\"99.8\"},{\"timeframe\":\"30d\",\"target\":98.0,\"target_display\":\"98.\",\"warning\":99.0,\"warning_display\":\"99.\"},{\"timeframe\":\"90d\",\"target\":99.9,\"target_display\":\"99.9\"}],\"type\":\"metric\",\"type_id\":1,\"description\":\"some updated description about foo SLO\",\"timeframe\":\"7d\",\"warning_threshold\":99.8,\"target_threshold\":99.5,\"query\":{\"denominator\":\"sum:my.metric{type:good}.as_count() + sum:my.metric{type:bad}.as_count()\",\"numerator\":\"sum:my.metric{type:good}.as_count()\"},\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"created_at\":1673543944,\"modified_at\":1673543945}],\"error\":null,\"metadata\":{\"page\":{\"total_count\":3,\"total_filtered_count\":2}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 25 Aug 2023 12:33:42 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/slo?limit=2&offset=2"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"a17acfd48b7c55d19192e3a697cc1d01\",\"name\":\"test SLO 1677686870\",\"tags\":[],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":90.0,\"target_display\":\"90.\"}],\"type\":\"monitor\",\"type_id\":0,\"description\":\"\",\"timeframe\":\"7d\",\"target_threshold\":90.0,\"monitor_ids\":[112445445],\"creator\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"},\"created_at\":1677686871,\"modified_at\":1677686871}],\"error\":null,\"metadata\":{\"page\":{\"total_count\":3,\"total_filtered_count\":2}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 25 Aug 2023 12:33:42 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/slo?limit=2" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"70e82706f4ae56ff8bdd7f02e767f97c\",\"name\":\"test SLO 1668426861\",\"tags\":[\"type:test\"],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":90.0,\"target_display\":\"90.\"}],\"type\":\"metric\",\"type_id\":1,\"description\":\"\",\"timeframe\":\"7d\",\"target_threshold\":90.0,\"query\":{\"denominator\":\"sum:my.custom.metric{!type:ignored}.as_count()\",\"numerator\":\"sum:my.custom.metric{type:good,!type:ignored}.as_count()\"},\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"created_at\":1668426862,\"modified_at\":1668426862},{\"id\":\"955ab6301fa656e7b061de4a05ad4774\",\"name\":\"tf-TestAccDatadogServiceLevelObjective_Basic-local-1673543942-updated\",\"tags\":[\"foo:bar\",\"baz\"],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":99.5,\"target_display\":\"99.5\",\"warning\":99.8,\"warning_display\":\"99.8\"},{\"timeframe\":\"30d\",\"target\":98.0,\"target_display\":\"98.\",\"warning\":99.0,\"warning_display\":\"99.\"},{\"timeframe\":\"90d\",\"target\":99.9,\"target_display\":\"99.9\"}],\"type\":\"metric\",\"type_id\":1,\"description\":\"some updated description about foo SLO\",\"timeframe\":\"7d\",\"warning_threshold\":99.8,\"target_threshold\":99.5,\"query\":{\"denominator\":\"sum:my.metric{type:good}.as_count() + sum:my.metric{type:bad}.as_count()\",\"numerator\":\"sum:my.metric{type:good}.as_count()\"},\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"created_at\":1673543944,\"modified_at\":1673543945}],\"error\":null,\"metadata\":{\"page\":{\"total_count\":3,\"total_filtered_count\":2}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 25 Aug 2023 12:33:42 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/slo?limit=2&offset=2" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"a17acfd48b7c55d19192e3a697cc1d01\",\"name\":\"test SLO 1677686870\",\"tags\":[],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":90.0,\"target_display\":\"90.\"}],\"type\":\"monitor\",\"type_id\":0,\"description\":\"\",\"timeframe\":\"7d\",\"target_threshold\":90.0,\"monitor_ids\":[112445445],\"creator\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"},\"created_at\":1677686871,\"modified_at\":1677686871}],\"error\":null,\"metadata\":{\"page\":{\"total_count\":3,\"total_filtered_count\":2}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 25 Aug 2023 12:33:42 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/service_level_objectives/Get-all-SLOs-returns-OK-response.frozen b/tests/scenarios/cassettes/v1/service_level_objectives/Get-all-SLOs-returns-OK-response.frozen index fb6bf3e09..8d2d61c2b 100644 --- a/tests/scenarios/cassettes/v1/service_level_objectives/Get-all-SLOs-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v1/service_level_objectives/Get-all-SLOs-returns-OK-response.frozen @@ -1 +1 @@ -2022-03-08T14:09:49.857Z \ No newline at end of file +2024-01-03T22:54:47.632Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/service_level_objectives/Get-all-SLOs-returns-OK-response.json b/tests/scenarios/cassettes/v1/service_level_objectives/Get-all-SLOs-returns-OK-response.json index b126c554c..45fb01b82 100644 --- a/tests/scenarios/cassettes/v1/service_level_objectives/Get-all-SLOs-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/service_level_objectives/Get-all-SLOs-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Get_all_SLOs_returns_OK_response-1646748589\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/slo"}, "response": {"body": {"string": "{\"data\":[{\"description\":\"\",\"monitor_tags\":[],\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"thresholds\":[{\"warning\":98.0,\"warning_display\":\"98.\",\"target\":95.0,\"target_display\":\"95.\",\"timeframe\":\"7d\"}],\"type_id\":1,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"id\":\"11b6985a7e135c529ea6e1d02d742dd8\",\"name\":\"Test-Get_all_SLOs_returns_OK_response-1646748589\",\"created_at\":1646748590,\"tags\":[],\"modified_at\":1646748590,\"type\":\"metric\"}],\"error\":null}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 08 Mar 2022 14:09:49 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/slo?ids=11b6985a7e135c529ea6e1d02d742dd8"}, "response": {"body": {"string": "{\"data\":[{\"description\":\"\",\"monitor_tags\":[],\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"thresholds\":[{\"warning\":98.0,\"warning_display\":\"98.\",\"target\":95.0,\"target_display\":\"95.\",\"timeframe\":\"7d\"}],\"type_id\":1,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"id\":\"11b6985a7e135c529ea6e1d02d742dd8\",\"name\":\"Test-Get_all_SLOs_returns_OK_response-1646748589\",\"created_at\":1646748590,\"tags\":[],\"modified_at\":1646748590,\"type\":\"metric\"}],\"error\":null}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 08 Mar 2022 14:09:49 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/slo/11b6985a7e135c529ea6e1d02d742dd8"}, "response": {"body": {"string": "{\"data\":[\"11b6985a7e135c529ea6e1d02d742dd8\"],\"error\":null}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 08 Mar 2022 14:09:49 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Get_all_SLOs_returns_OK_response-1704322487\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/slo" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"c2ce7fb6030c5c0b8035d1ce94dec12c\",\"name\":\"Test-Get_all_SLOs_returns_OK_response-1704322487\",\"tags\":[],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":95.0,\"target_display\":\"95.\",\"warning\":98.0,\"warning_display\":\"98.\"}],\"type\":\"metric\",\"type_id\":1,\"description\":\"\",\"timeframe\":\"7d\",\"warning_threshold\":98,\"target_threshold\":95,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"created_at\":1704322487,\"modified_at\":1704322487}],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 03 Jan 2024 22:54:47 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/slo?ids=c2ce7fb6030c5c0b8035d1ce94dec12c" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"c2ce7fb6030c5c0b8035d1ce94dec12c\",\"name\":\"Test-Get_all_SLOs_returns_OK_response-1704322487\",\"tags\":[],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":95.0,\"target_display\":\"95.\",\"warning\":98.0,\"warning_display\":\"98.\"}],\"type\":\"metric\",\"type_id\":1,\"description\":\"\",\"timeframe\":\"7d\",\"warning_threshold\":98.0,\"target_threshold\":95.0,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"created_at\":1704322487,\"modified_at\":1704322487}],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 03 Jan 2024 22:54:47 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/slo/c2ce7fb6030c5c0b8035d1ce94dec12c" + }, + "response": { + "body": { + "string": "{\"data\":[\"c2ce7fb6030c5c0b8035d1ce94dec12c\"],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 03 Jan 2024 22:54:47 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/service_level_objectives/Get-an-SLO-s-details-returns-OK-response.frozen b/tests/scenarios/cassettes/v1/service_level_objectives/Get-an-SLO-s-details-returns-OK-response.frozen index 34aad93e4..02d09fae4 100644 --- a/tests/scenarios/cassettes/v1/service_level_objectives/Get-an-SLO-s-details-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v1/service_level_objectives/Get-an-SLO-s-details-returns-OK-response.frozen @@ -1 +1 @@ -2022-03-08T13:51:10.786Z \ No newline at end of file +2024-01-03T22:54:48.137Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/service_level_objectives/Get-an-SLO-s-details-returns-OK-response.json b/tests/scenarios/cassettes/v1/service_level_objectives/Get-an-SLO-s-details-returns-OK-response.json index 3f4c466cc..57e7c1bfb 100644 --- a/tests/scenarios/cassettes/v1/service_level_objectives/Get-an-SLO-s-details-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/service_level_objectives/Get-an-SLO-s-details-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Get_an_SLO_s_details_returns_OK_response-1646747470\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/slo"}, "response": {"body": {"string": "{\"data\":[{\"description\":\"\",\"monitor_tags\":[],\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"thresholds\":[{\"warning\":98.0,\"warning_display\":\"98.\",\"target\":95.0,\"target_display\":\"95.\",\"timeframe\":\"7d\"}],\"type_id\":1,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"id\":\"152e72d970e15e799e4b195d7193ed18\",\"name\":\"Test-Get_an_SLO_s_details_returns_OK_response-1646747470\",\"created_at\":1646747471,\"tags\":[],\"modified_at\":1646747471,\"type\":\"metric\"}],\"error\":null}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 08 Mar 2022 13:51:10 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/slo/152e72d970e15e799e4b195d7193ed18"}, "response": {"body": {"string": "{\"data\":{\"description\":\"\",\"monitor_tags\":[],\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"thresholds\":[{\"warning\":98.0,\"warning_display\":\"98.\",\"target\":95.0,\"target_display\":\"95.\",\"timeframe\":\"7d\"}],\"type_id\":1,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"id\":\"152e72d970e15e799e4b195d7193ed18\",\"name\":\"Test-Get_an_SLO_s_details_returns_OK_response-1646747470\",\"created_at\":1646747471,\"tags\":[],\"modified_at\":1646747471,\"type\":\"metric\"},\"error\":null}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 08 Mar 2022 13:51:10 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/slo/152e72d970e15e799e4b195d7193ed18"}, "response": {"body": {"string": "{\"data\":[\"152e72d970e15e799e4b195d7193ed18\"],\"error\":null}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 08 Mar 2022 13:51:10 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Get_an_SLO_s_details_returns_OK_response-1704322488\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/slo" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"ebf2e048f49a5134b61a586438c66505\",\"name\":\"Test-Get_an_SLO_s_details_returns_OK_response-1704322488\",\"tags\":[],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":95.0,\"target_display\":\"95.\",\"warning\":98.0,\"warning_display\":\"98.\"}],\"type\":\"metric\",\"type_id\":1,\"description\":\"\",\"timeframe\":\"7d\",\"warning_threshold\":98,\"target_threshold\":95,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"created_at\":1704322488,\"modified_at\":1704322488}],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 03 Jan 2024 22:54:48 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/slo/ebf2e048f49a5134b61a586438c66505" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"ebf2e048f49a5134b61a586438c66505\",\"name\":\"Test-Get_an_SLO_s_details_returns_OK_response-1704322488\",\"tags\":[],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":95.0,\"target_display\":\"95.\",\"warning\":98.0,\"warning_display\":\"98.\"}],\"type\":\"metric\",\"type_id\":1,\"description\":\"\",\"timeframe\":\"7d\",\"warning_threshold\":98.0,\"target_threshold\":95.0,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"created_at\":1704322488,\"modified_at\":1704322488},\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 03 Jan 2024 22:54:48 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/slo/ebf2e048f49a5134b61a586438c66505" + }, + "response": { + "body": { + "string": "{\"data\":[\"ebf2e048f49a5134b61a586438c66505\"],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 03 Jan 2024 22:54:48 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/service_level_objectives/Get-an-SLO-s-history-returns-OK-response.frozen b/tests/scenarios/cassettes/v1/service_level_objectives/Get-an-SLO-s-history-returns-OK-response.frozen index 324ba61bc..0598ce878 100644 --- a/tests/scenarios/cassettes/v1/service_level_objectives/Get-an-SLO-s-history-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v1/service_level_objectives/Get-an-SLO-s-history-returns-OK-response.frozen @@ -1 +1 @@ -2022-03-08T13:59:13.427Z \ No newline at end of file +2024-01-03T22:54:48.654Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/service_level_objectives/Get-an-SLO-s-history-returns-OK-response.json b/tests/scenarios/cassettes/v1/service_level_objectives/Get-an-SLO-s-history-returns-OK-response.json index e4d893e5a..11b9852c4 100644 --- a/tests/scenarios/cassettes/v1/service_level_objectives/Get-an-SLO-s-history-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/service_level_objectives/Get-an-SLO-s-history-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Get_an_SLO_s_history_returns_OK_response-1646747953\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/slo"}, "response": {"body": {"string": "{\"data\":[{\"description\":\"\",\"monitor_tags\":[],\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"thresholds\":[{\"warning\":98.0,\"warning_display\":\"98.\",\"target\":95.0,\"target_display\":\"95.\",\"timeframe\":\"7d\"}],\"type_id\":1,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"id\":\"9236f988e3d25ac6982fd4319912ec43\",\"name\":\"Test-Get_an_SLO_s_history_returns_OK_response-1646747953\",\"created_at\":1646747953,\"tags\":[],\"modified_at\":1646747953,\"type\":\"metric\"}],\"error\":null}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 08 Mar 2022 13:59:13 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/slo/9236f988e3d25ac6982fd4319912ec43/history?from_ts=1646661553&to_ts=1646747953"}, "response": {"body": {"string": "{\"errors\":null,\"data\":{\"to_ts\":1646747953,\"type_id\":1,\"series\":{\"res_type\":\"time_series\",\"denominator\":{\"count\":13,\"sum\":0.0,\"values\":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],\"metadata\":{\"unit\":null,\"query_index\":1,\"aggr\":\"sum\",\"scope\":\"!code:3xx\",\"metric\":\"default_zero(httpservice.hits)\",\"expression\":\"default_zero(sum:httpservice.hits{!code:3xx}.as_count())\",\"tag_set\":[]}},\"graph_query\":\"default_zero(sum:httpservice.hits{code:2xx}.as_count()), default_zero(sum:httpservice.hits{!code:3xx}.as_count()) - default_zero(sum:httpservice.hits{code:2xx}.as_count())\",\"resp_version\":2,\"interval\":7200,\"numerator\":{\"count\":13,\"sum\":0.0,\"values\":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],\"metadata\":{\"unit\":null,\"query_index\":0,\"aggr\":\"sum\",\"scope\":\"code:2xx\",\"metric\":\"default_zero(httpservice.hits)\",\"expression\":\"default_zero(sum:httpservice.hits{code:2xx}.as_count())\",\"tag_set\":[]}},\"bad_series_query\":\"default_zero(sum:httpservice.hits{!code:3xx}.as_count()) - default_zero(sum:httpservice.hits{code:2xx}.as_count())\",\"times\":[1646654400000.0,1646661600000.0,1646668800000.0,1646676000000.0,1646683200000.0,1646690400000.0,1646697600000.0,1646704800000.0,1646712000000.0,1646719200000.0,1646726400000.0,1646733600000.0,1646740800000.0],\"denominator_query\":\"default_zero(sum:httpservice.hits{!code:3xx}.as_count())\",\"from_date\":1646661553000,\"numerator_query\":\"default_zero(sum:httpservice.hits{code:2xx}.as_count())\",\"to_date\":1646747953000,\"timing\":\"0.0103521347046\",\"query\":\"default_zero(sum:httpservice.hits{code:2xx}.as_count()), default_zero(sum:httpservice.hits{!code:3xx}.as_count())\",\"message\":\"\"},\"thresholds\":{\"7d\":{\"warning\":98.0,\"warning_display\":\"98.\",\"target\":95.0,\"target_display\":\"95.\",\"timeframe\":\"7d\"}},\"overall\":{\"uptime\":null,\"errors\":[{\"error_type\":\"ZERO_VALUED_DENOMINATOR\",\"error_message\":\"The denominator is zero valued\"}],\"sli_value\":null,\"precision\":{\"7d\":0},\"corrections\":[],\"span_precision\":2},\"from_ts\":1646661553,\"group_by\":[],\"slo\":{\"description\":\"\",\"monitor_tags\":[],\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"thresholds\":[{\"warning\":98.0,\"warning_display\":\"98.\",\"target\":95.0,\"target_display\":\"95.\",\"timeframe\":\"7d\"}],\"type_id\":1,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"id\":\"9236f988e3d25ac6982fd4319912ec43\",\"name\":\"Test-Get_an_SLO_s_history_returns_OK_response-1646747953\",\"created_at\":1646747953,\"tags\":[],\"modified_at\":1646747953,\"type\":\"metric\"},\"type\":\"metric\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 08 Mar 2022 13:59:13 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/slo/9236f988e3d25ac6982fd4319912ec43"}, "response": {"body": {"string": "{\"data\":[\"9236f988e3d25ac6982fd4319912ec43\"],\"error\":null}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 08 Mar 2022 13:59:13 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Get_an_SLO_s_history_returns_OK_response-1704322488\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/slo" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"627a3ccd24af50beb8eacbd36c5962f9\",\"name\":\"Test-Get_an_SLO_s_history_returns_OK_response-1704322488\",\"tags\":[],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":95.0,\"target_display\":\"95.\",\"warning\":98.0,\"warning_display\":\"98.\"}],\"type\":\"metric\",\"type_id\":1,\"description\":\"\",\"timeframe\":\"7d\",\"warning_threshold\":98,\"target_threshold\":95,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"created_at\":1704322488,\"modified_at\":1704322488}],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 03 Jan 2024 22:54:48 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/slo/627a3ccd24af50beb8eacbd36c5962f9/history?from_ts=1704236088&to_ts=1704322488" + }, + "response": { + "body": { + "string": "{\"data\":{\"thresholds\":{\"7d\":{\"timeframe\":\"7d\",\"target\":95.0,\"target_display\":\"95.\",\"warning\":98.0,\"warning_display\":\"98.\"}},\"from_ts\":1704236088,\"to_ts\":1704322488,\"type\":\"metric\",\"type_id\":1,\"slo\":{\"id\":\"627a3ccd24af50beb8eacbd36c5962f9\",\"name\":\"Test-Get_an_SLO_s_history_returns_OK_response-1704322488\",\"tags\":[],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":95.0,\"target_display\":\"95.\",\"warning\":98.0,\"warning_display\":\"98.\"}],\"type\":\"metric\",\"type_id\":1,\"description\":\"\",\"timeframe\":\"7d\",\"warning_threshold\":98.0,\"target_threshold\":95.0,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"created_at\":1704322488,\"modified_at\":1704322488},\"group_by\":[],\"series\":{\"timing\":\"0.02146005630493164\",\"res_type\":\"time_series\",\"resp_version\":2,\"query\":\"default_zero(sum:httpservice.hits{code:2xx}.as_count()), default_zero(sum:httpservice.hits{!code:3xx}.as_count())\",\"from_date\":1704236088000,\"to_date\":1704322488000,\"message\":\"\",\"interval\":7200,\"times\":[1704235800000.0,1704240000000.0,1704247200000.0,1704254400000.0,1704261600000.0,1704268800000.0,1704276000000.0,1704283200000.0,1704290400000.0,1704297600000.0,1704304800000.0,1704312000000.0,1704319200000.0],\"numerator\":{\"values\":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],\"metadata\":{\"unit\":null,\"query_index\":0,\"aggr\":\"sum\",\"metric\":\"default_zero(httpservice.hits)\",\"tag_set\":[],\"expression\":\"default_zero(sum:httpservice.hits{code:2xx}.as_count())\",\"scope\":\"code:2xx\"},\"sum\":0.0,\"count\":13},\"denominator\":{\"values\":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],\"metadata\":{\"unit\":null,\"query_index\":1,\"aggr\":\"sum\",\"metric\":\"default_zero(httpservice.hits)\",\"tag_set\":[],\"expression\":\"default_zero(sum:httpservice.hits{!code:3xx}.as_count())\",\"scope\":\"!code:3xx\"},\"sum\":0.0,\"count\":13},\"numerator_query\":\"default_zero(sum:httpservice.hits{code:2xx}.as_count())\",\"denominator_query\":\"default_zero(sum:httpservice.hits{!code:3xx}.as_count())\",\"bad_series_query\":\"default_zero(sum:httpservice.hits{!code:3xx}.as_count()) - default_zero(sum:httpservice.hits{code:2xx}.as_count())\",\"graph_query\":\"default_zero(sum:httpservice.hits{code:2xx}.as_count()), default_zero(sum:httpservice.hits{!code:3xx}.as_count()) - default_zero(sum:httpservice.hits{code:2xx}.as_count())\"},\"overall\":{\"errors\":[{\"error_message\":\"The denominator is zero valued\",\"error_type\":\"ZERO_VALUED_DENOMINATOR\"}],\"sli_value\":null,\"span_precision\":2,\"precision\":{\"7d\":0},\"uptime\":null,\"corrections\":[],\"state\":\"no_data\"}},\"errors\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 03 Jan 2024 22:54:48 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/slo/627a3ccd24af50beb8eacbd36c5962f9" + }, + "response": { + "body": { + "string": "{\"data\":[\"627a3ccd24af50beb8eacbd36c5962f9\"],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 03 Jan 2024 22:54:48 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/service_level_objectives/Search-for-SLOs-returns-OK-response.json b/tests/scenarios/cassettes/v1/service_level_objectives/Search-for-SLOs-returns-OK-response.json index a1c72da8b..9a3813af8 100644 --- a/tests/scenarios/cassettes/v1/service_level_objectives/Search-for-SLOs-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/service_level_objectives/Search-for-SLOs-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Search_for_SLOs_returns_OK_response-1676410539\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/slo"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"34c97838f5c5578ebe812e5d068977a9\",\"name\":\"Test-Search_for_SLOs_returns_OK_response-1676410539\",\"tags\":[],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":95.0,\"target_display\":\"95.\",\"warning\":98.0,\"warning_display\":\"98.\"}],\"type\":\"metric\",\"type_id\":1,\"description\":\"\",\"timeframe\":\"7d\",\"warning_threshold\":98,\"target_threshold\":95,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"created_at\":1676410539,\"modified_at\":1676410539}],\"error\":null}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 14 Feb 2023 21:35:39 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/slo/search?page%5Bnumber%5D=0&page%5Bsize%5D=20&query=Test-Search_for_SLOs_returns_OK_response-1676410539"}, "response": {"body": {"string": "{\"data\":{\"type\":\"service_level_objective_search_results\",\"attributes\":{\"slos\":[{\"data\":{\"type\":\"slo\",\"attributes\":{\"monitor_ids\":null,\"all_tags\":[],\"thresholds\":[{\"warning_display\":\"95\",\"target_display\":\"95\",\"target\":95.0,\"warning\":98.0,\"timeframe\":\"7d\"}],\"env_tags\":[],\"groups\":null,\"timeframe\":\"7d\",\"overall_status\":[{\"error_budget_remaining\":null,\"raw_error_budget_remaining\":null,\"indexed_at\":1676409980,\"status\":null,\"span_precision\":null,\"error\":\"The denominator is zero valued\",\"target\":95.0,\"state\":\"no_data\",\"timeframe\":\"7d\"}],\"query\":{\"metrics\":null,\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\",\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\"},\"warning_threshold\":98.0,\"slo_type\":\"metric\",\"name\":\"Test-Search_for_SLOs_returns_OK_response-1676410539\",\"service_tags\":[],\"status\":{\"error_budget_remaining\":null,\"raw_error_budget_remaining\":null,\"indexed_at\":1676409980,\"span_precision\":null,\"state\":\"no_data\",\"sli\":null,\"calculation_error\":\"The denominator is zero valued\"},\"creator\":{\"name\":null,\"id\":1445416,\"email\":\"frog@datadoghq.com\"},\"created_at\":1676364842,\"modified_at\":1676364842,\"description\":null,\"team_tags\":[],\"target_threshold\":95.0},\"id\":\"18101ab6982f547faba6c9bdc6de9413\"}}]}},\"meta\":{\"pagination\":{\"number\":0,\"first_number\":0,\"prev_number\":0,\"next_number\":1,\"last_number\":0,\"size\":20,\"type\":\"number_size\",\"total\":1}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v1/slo/search?query=Test-Search_for_SLOs_returns_OK_response-1676410539&page%5Bsize%5D=20&page%5Bnumber%5D=0\",\"last\":null,\"next\":\"https://api.datadoghq.com/api/v1/slo/search?query=Test-Search_for_SLOs_returns_OK_response-1676410539&page[number]=1&page[size]=20\",\"prev\":null,\"first\":\"https://api.datadoghq.com/api/v1/slo/search?query=Test-Search_for_SLOs_returns_OK_response-1676410539&page[number]=0&page[size]=20\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 14 Feb 2023 21:35:39 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/slo/34c97838f5c5578ebe812e5d068977a9"}, "response": {"body": {"string": "{\"data\":[\"34c97838f5c5578ebe812e5d068977a9\"],\"error\":null}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 14 Feb 2023 21:35:39 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Search_for_SLOs_returns_OK_response-1676410539\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/slo" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"34c97838f5c5578ebe812e5d068977a9\",\"name\":\"Test-Search_for_SLOs_returns_OK_response-1676410539\",\"tags\":[],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":95.0,\"target_display\":\"95.\",\"warning\":98.0,\"warning_display\":\"98.\"}],\"type\":\"metric\",\"type_id\":1,\"description\":\"\",\"timeframe\":\"7d\",\"warning_threshold\":98,\"target_threshold\":95,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"created_at\":1676410539,\"modified_at\":1676410539}],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 14 Feb 2023 21:35:39 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/slo/search?page%5Bnumber%5D=0&page%5Bsize%5D=20&query=Test-Search_for_SLOs_returns_OK_response-1676410539" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"service_level_objective_search_results\",\"attributes\":{\"slos\":[{\"data\":{\"type\":\"slo\",\"attributes\":{\"monitor_ids\":null,\"all_tags\":[],\"thresholds\":[{\"warning_display\":\"95\",\"target_display\":\"95\",\"target\":95.0,\"warning\":98.0,\"timeframe\":\"7d\"}],\"env_tags\":[],\"groups\":null,\"timeframe\":\"7d\",\"overall_status\":[{\"error_budget_remaining\":null,\"raw_error_budget_remaining\":null,\"indexed_at\":1676409980,\"status\":null,\"span_precision\":null,\"error\":\"The denominator is zero valued\",\"target\":95.0,\"state\":\"no_data\",\"timeframe\":\"7d\"}],\"query\":{\"metrics\":null,\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\",\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\"},\"warning_threshold\":98.0,\"slo_type\":\"metric\",\"name\":\"Test-Search_for_SLOs_returns_OK_response-1676410539\",\"service_tags\":[],\"status\":{\"error_budget_remaining\":null,\"raw_error_budget_remaining\":null,\"indexed_at\":1676409980,\"span_precision\":null,\"state\":\"no_data\",\"sli\":null,\"calculation_error\":\"The denominator is zero valued\"},\"creator\":{\"name\":null,\"id\":1445416,\"email\":\"frog@datadoghq.com\"},\"created_at\":1676364842,\"modified_at\":1676364842,\"description\":null,\"team_tags\":[],\"target_threshold\":95.0},\"id\":\"18101ab6982f547faba6c9bdc6de9413\"}}]}},\"meta\":{\"pagination\":{\"number\":0,\"first_number\":0,\"prev_number\":0,\"next_number\":1,\"last_number\":0,\"size\":20,\"type\":\"number_size\",\"total\":1}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v1/slo/search?query=Test-Search_for_SLOs_returns_OK_response-1676410539&page%5Bsize%5D=20&page%5Bnumber%5D=0\",\"last\":null,\"next\":\"https://api.datadoghq.com/api/v1/slo/search?query=Test-Search_for_SLOs_returns_OK_response-1676410539&page[number]=1&page[size]=20\",\"prev\":null,\"first\":\"https://api.datadoghq.com/api/v1/slo/search?query=Test-Search_for_SLOs_returns_OK_response-1676410539&page[number]=0&page[size]=20\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 14 Feb 2023 21:35:39 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/slo/34c97838f5c5578ebe812e5d068977a9" + }, + "response": { + "body": { + "string": "{\"data\":[\"34c97838f5c5578ebe812e5d068977a9\"],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 14 Feb 2023 21:35:39 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/service_level_objectives/Update-an-SLO-returns-Bad-Request-response.frozen b/tests/scenarios/cassettes/v1/service_level_objectives/Update-an-SLO-returns-Bad-Request-response.frozen index 37ba6cab0..a38c0a46e 100644 --- a/tests/scenarios/cassettes/v1/service_level_objectives/Update-an-SLO-returns-Bad-Request-response.frozen +++ b/tests/scenarios/cassettes/v1/service_level_objectives/Update-an-SLO-returns-Bad-Request-response.frozen @@ -1 +1 @@ -2022-01-06T00:51:12.843Z \ No newline at end of file +2024-01-03T22:54:49.226Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/service_level_objectives/Update-an-SLO-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/service_level_objectives/Update-an-SLO-returns-Bad-Request-response.json index e0a604a74..7df7819d9 100644 --- a/tests/scenarios/cassettes/v1/service_level_objectives/Update-an-SLO-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/service_level_objectives/Update-an-SLO-returns-Bad-Request-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Update_an_SLO_returns_Bad_Request_response-1641430272\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/slo"}, "response": {"body": {"string": "{\"data\":[{\"description\":\"\",\"monitor_tags\":[],\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null,\"email\":\"frog@datadoghq.com\"},\"thresholds\":[{\"warning\":98,\"warning_display\":\"98.\",\"target\":95,\"target_display\":\"95.\",\"timeframe\":\"7d\"}],\"type_id\":1,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"id\":\"f21337f0ea7059f986448228aaa11f09\",\"name\":\"Test-Update_an_SLO_returns_Bad_Request_response-1641430272\",\"created_at\":1641430273,\"tags\":[],\"modified_at\":1641430273,\"type\":\"metric\"}],\"error\":null}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:51:12 GMT"}, {"request": {"body": {"string": "{\"name\":\"Test-Update_an_SLO_returns_Bad_Request_response-1641430272\",\"thresholds\":[{\"target\":95,\"target_display\":\"95.0\",\"timeframe\":\"7d\",\"warning\":98,\"warning_display\":\"98.0\"}],\"type\":\"monitor\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "put", "uri": "https://api.datadoghq.com/api/v1/slo/f21337f0ea7059f986448228aaa11f09"}, "response": {"body": {"string": "{\"errors\":[\"Invalid payload: must specify the query for count types\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Thu, 06 Jan 2022 00:51:12 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/slo/f21337f0ea7059f986448228aaa11f09"}, "response": {"body": {"string": "{\"data\":[\"f21337f0ea7059f986448228aaa11f09\"],\"error\":null}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:51:12 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Update_an_SLO_returns_Bad_Request_response-1704322489\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/slo" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"9000070725e15b55a16fa1b2bcd1909c\",\"name\":\"Test-Update_an_SLO_returns_Bad_Request_response-1704322489\",\"tags\":[],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":95.0,\"target_display\":\"95.\",\"warning\":98.0,\"warning_display\":\"98.\"}],\"type\":\"metric\",\"type_id\":1,\"description\":\"\",\"timeframe\":\"7d\",\"warning_threshold\":98,\"target_threshold\":95,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"created_at\":1704322489,\"modified_at\":1704322489}],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 03 Jan 2024 22:54:49 GMT" + }, + { + "request": { + "body": { + "string": "{\"name\":\"Test-Update_an_SLO_returns_Bad_Request_response-1704322489\",\"thresholds\":[{\"target\":95,\"target_display\":\"95.0\",\"timeframe\":\"7d\",\"warning\":98,\"warning_display\":\"98.0\"}],\"type\":\"monitor\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v1/slo/9000070725e15b55a16fa1b2bcd1909c" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Invalid payload: must specify the query for count types\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Wed, 03 Jan 2024 22:54:49 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/slo/9000070725e15b55a16fa1b2bcd1909c" + }, + "response": { + "body": { + "string": "{\"data\":[\"9000070725e15b55a16fa1b2bcd1909c\"],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 03 Jan 2024 22:54:49 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/service_level_objectives/Update-an-SLO-returns-OK-response.frozen b/tests/scenarios/cassettes/v1/service_level_objectives/Update-an-SLO-returns-OK-response.frozen index 5e9bd3a34..b83299dd7 100644 --- a/tests/scenarios/cassettes/v1/service_level_objectives/Update-an-SLO-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v1/service_level_objectives/Update-an-SLO-returns-OK-response.frozen @@ -1 +1 @@ -2022-12-23T20:34:34.100Z \ No newline at end of file +2024-01-03T22:54:49.748Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/service_level_objectives/Update-an-SLO-returns-OK-response.json b/tests/scenarios/cassettes/v1/service_level_objectives/Update-an-SLO-returns-OK-response.json index 0c3390c8d..5fa96b530 100644 --- a/tests/scenarios/cassettes/v1/service_level_objectives/Update-an-SLO-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/service_level_objectives/Update-an-SLO-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Update_an_SLO_returns_OK_response-1671827674\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/slo"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"9ca3260165e5524bb05029ae2cf52ceb\",\"name\":\"Test-Update_an_SLO_returns_OK_response-1671827674\",\"tags\":[],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":95.0,\"target_display\":\"95.\",\"warning\":98.0,\"warning_display\":\"98.\"}],\"type\":\"metric\",\"type_id\":1,\"description\":\"\",\"timeframe\":\"7d\",\"warning_threshold\":98,\"target_threshold\":95,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"created_at\":1671827674,\"modified_at\":1671827674}],\"error\":null}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 23 Dec 2022 20:34:34 GMT"}, {"request": {"body": {"string": "{\"name\":\"Test-Update_an_SLO_returns_OK_response-1671827674\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"target_threshold\":97,\"thresholds\":[{\"target\":97,\"timeframe\":\"7d\",\"warning\":98}],\"timeframe\":\"7d\",\"type\":\"metric\",\"warning_threshold\":98}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "put", "uri": "https://api.datadoghq.com/api/v1/slo/9ca3260165e5524bb05029ae2cf52ceb"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"9ca3260165e5524bb05029ae2cf52ceb\",\"name\":\"Test-Update_an_SLO_returns_OK_response-1671827674\",\"tags\":[],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":97.0,\"target_display\":\"97.\",\"warning\":98.0,\"warning_display\":\"98.\"}],\"type\":\"metric\",\"type_id\":1,\"description\":\"\",\"timeframe\":\"7d\",\"warning_threshold\":98,\"target_threshold\":97,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"created_at\":1671827674,\"modified_at\":1671827674}],\"error\":null}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 23 Dec 2022 20:34:34 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/slo/9ca3260165e5524bb05029ae2cf52ceb"}, "response": {"body": {"string": "{\"data\":[\"9ca3260165e5524bb05029ae2cf52ceb\"],\"error\":null}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 23 Dec 2022 20:34:34 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Update_an_SLO_returns_OK_response-1704322489\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"thresholds\":[{\"target\":95,\"timeframe\":\"7d\",\"warning\":98}],\"type\":\"metric\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/slo" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"f38441f875995acc9682503ee2d1901e\",\"name\":\"Test-Update_an_SLO_returns_OK_response-1704322489\",\"tags\":[],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":95.0,\"target_display\":\"95.\",\"warning\":98.0,\"warning_display\":\"98.\"}],\"type\":\"metric\",\"type_id\":1,\"description\":\"\",\"timeframe\":\"7d\",\"warning_threshold\":98,\"target_threshold\":95,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"created_at\":1704322489,\"modified_at\":1704322489}],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 03 Jan 2024 22:54:49 GMT" + }, + { + "request": { + "body": { + "string": "{\"name\":\"Test-Update_an_SLO_returns_OK_response-1704322489\",\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"target_threshold\":97,\"thresholds\":[{\"target\":97,\"timeframe\":\"7d\",\"warning\":98}],\"timeframe\":\"7d\",\"type\":\"metric\",\"warning_threshold\":98}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v1/slo/f38441f875995acc9682503ee2d1901e" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"f38441f875995acc9682503ee2d1901e\",\"name\":\"Test-Update_an_SLO_returns_OK_response-1704322489\",\"tags\":[],\"monitor_tags\":[],\"thresholds\":[{\"timeframe\":\"7d\",\"target\":97.0,\"target_display\":\"97.\",\"warning\":98.0,\"warning_display\":\"98.\"}],\"type\":\"metric\",\"type_id\":1,\"description\":\"\",\"timeframe\":\"7d\",\"warning_threshold\":98,\"target_threshold\":97,\"query\":{\"denominator\":\"sum:httpservice.hits{!code:3xx}.as_count()\",\"numerator\":\"sum:httpservice.hits{code:2xx}.as_count()\"},\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"created_at\":1704322489,\"modified_at\":1704322490}],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 03 Jan 2024 22:54:49 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/slo/f38441f875995acc9682503ee2d1901e" + }, + "response": { + "body": { + "string": "{\"data\":[\"f38441f875995acc9682503ee2d1901e\"],\"error\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 03 Jan 2024 22:54:49 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Client-is-resilient-to-enum-and-oneOf-deserialization-errors.json b/tests/scenarios/cassettes/v1/synthetics/Client-is-resilient-to-enum-and-oneOf-deserialization-errors.json index 9db35a5ab..867727bbc 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Client-is-resilient-to-enum-and-oneOf-deserialization-errors.json +++ b/tests/scenarios/cassettes/v1/synthetics/Client-is-resilient-to-enum-and-oneOf-deserialization-errors.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests"}, "response": {"body": {"string": "{\"tests\":[{\"status\":\"paused\",\"public_id\":\"jv7-wfd-kvt\",\"tags\":[],\"locations\":[\"pl:pl-kevin-y-6382df0d72d4588e1817f090b131541f\"],\"message\":\"\",\"name\":\"Test on www.example.com\",\"monitor_id\":28558768,\"type\":\"api\",\"created_at\":\"2021-01-12T10:11:40.802074+00:00\",\"modified_at\":\"2021-01-22T16:42:10.520384+00:00\",\"subtype\":\"http\",\"config\":{\"request\":{\"url\":\"https://www.example.com\",\"method\":\"GET\",\"timeout\":30},\"assertions\":[{\"operator\":\"lessThan\",\"type\":\"responseTime\",\"target\":1000},{\"operator\":\"is\",\"type\":\"statusCode\",\"target\":200},{\"operator\":\"A non existent operator\",\"type\":\"body\",\"target\":{\"xPath\":\"//html/head/title\",\"operator\":\"contains\",\"targetValue\":\"Example\"}}],\"configVariables\":[]},\"options\":{\"monitor_options\":{\"notify_audit\":false,\"locked\":false,\"include_tags\":true,\"new_host_delay\":300,\"notify_no_data\":false,\"renotify_interval\":0},\"retry\":{\"count\":0,\"interval\":300},\"min_location_failed\":1,\"min_failure_duration\":0,\"tick_every\":60}},{\"status\":\"paused\",\"public_id\":\"jv7-wfd-kvt\",\"tags\":[],\"locations\":[\"pl:pl-kevin-y-6382df0d72d4588e1817f090b131541f\"],\"message\":\"\",\"name\":\"Test on www.example.com\",\"monitor_id\":28558768,\"type\":\"api\",\"created_at\":\"2021-01-12T10:11:40.802074+00:00\",\"modified_at\":\"2021-01-22T16:42:10.520384+00:00\",\"subtype\":\"http\",\"config\":{\"request\":{\"url\":\"https://www.example.com\",\"method\":\"GET\",\"timeout\":30},\"assertions\":[{\"operator\":\"lessThan\",\"type\":\"responseTime\",\"target\":1000},{\"operator\":\"is\",\"type\":\"A non existent assertion type\",\"target\":200}],\"configVariables\":[]},\"options\":{\"monitor_options\":{\"notify_audit\":false,\"locked\":false,\"include_tags\":true,\"new_host_delay\":300,\"notify_no_data\":false,\"renotify_interval\":0},\"retry\":{\"count\":0,\"interval\":300},\"min_location_failed\":1,\"min_failure_duration\":0,\"tick_every\":60}},{\"status\":\"live\",\"public_id\":\"2fx-64b-fb8\",\"tags\":[\"mini-website\",\"team:synthetics\",\"firefox\",\"synthetics-ci-browser\",\"edge\",\"chrome\"],\"locations\":[\"aws:ap-northeast-1\",\"aws:eu-north-1\",\"aws:eu-west-3\",\"aws:eu-central-1\"],\"message\":\"This mini-website check failed, please investigate why. @slack-synthetics-ops-worker\",\"name\":\"Mini Website - Click Trap\",\"monitor_id\":7647262,\"type\":\"browser\",\"created_at\":\"2018-12-20T13:19:23.734004+00:00\",\"modified_at\":\"2021-06-30T15:46:49.387631+00:00\",\"config\":{\"variables\":[],\"setCookie\":\"\",\"request\":{\"url\":\"http://34.95.79.70/click-trap\",\"headers\":{},\"method\":\"GET\"},\"assertions\":[],\"configVariables\":[]},\"options\":{\"ci\":{\"executionRule\":\"blocking\"},\"retry\":{\"count\":1,\"interval\":1000},\"min_location_failed\":1,\"min_failure_duration\":0,\"noScreenshot\":false,\"tick_every\":300,\"forwardProxy\":false,\"disableCors\":false,\"device_ids\":[\"chrome.laptop_large\",\"firefox.laptop_large\",\"A non existent device ID\"],\"monitor_options\":{\"renotify_interval\":360},\"ignoreServerCertificateError\":true}},{\"status\":\"live\",\"public_id\":\"g6d-gcm-pdq\",\"tags\":[],\"locations\":[\"aws:eu-central-1\",\"aws:ap-northeast-1\"],\"message\":\"\",\"name\":\"Check on www.10.0.0.1.xip.io\",\"monitor_id\":7464050,\"type\":\"A non existent test type\",\"created_at\":\"2018-12-07T17:30:49.785089+00:00\",\"modified_at\":\"2019-09-04T17:01:09.921070+00:00\",\"subtype\":\"http\",\"config\":{\"request\":{\"url\":\"https://www.10.0.0.1.xip.io\",\"method\":\"GET\",\"timeout\":30},\"assertions\":[{\"operator\":\"is\",\"type\":\"statusCode\",\"target\":200}]},\"options\":{\"tick_every\":60}},{\"status\":\"live\",\"public_id\":\"g6d-gcm-pdq\",\"tags\":[],\"locations\":[\"aws:eu-central-1\",\"aws:ap-northeast-1\"],\"message\":\"\",\"name\":\"Check on www.10.0.0.1.xip.io\",\"monitor_id\":7464050,\"type\":\"api\",\"created_at\":\"2018-12-07T17:30:49.785089+00:00\",\"modified_at\":\"2019-09-04T17:01:09.921070+00:00\",\"subtype\":\"http\",\"config\":{\"request\":{\"url\":\"https://www.10.0.0.1.xip.io\",\"method\":\"A non existent method\",\"timeout\":30},\"assertions\":[{\"operator\":\"is\",\"type\":\"statusCode\",\"target\":200}]},\"options\":{\"tick_every\":60}},{\"status\":\"live\",\"public_id\":\"g6d-gcm-pdq\",\"tags\":[],\"locations\":[\"aws:eu-central-1\",\"aws:ap-northeast-1\"],\"message\":\"A fully valid test\",\"name\":\"Check on www.10.0.0.1.xip.io\",\"monitor_id\":7464050,\"type\":\"api\",\"created_at\":\"2018-12-07T17:30:49.785089+00:00\",\"modified_at\":\"2019-09-04T17:01:09.921070+00:00\",\"subtype\":\"http\",\"config\":{\"request\":{\"url\":\"https://www.10.0.0.1.xip.io\",\"method\":\"GET\",\"timeout\":30},\"assertions\":[{\"operator\":\"is\",\"type\":\"statusCode\",\"target\":200}]},\"options\":{\"tick_every\":60}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 10 Jan 2022 16:38:49 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests" + }, + "response": { + "body": { + "string": "{\"tests\":[{\"status\":\"paused\",\"public_id\":\"jv7-wfd-kvt\",\"tags\":[],\"locations\":[\"pl:pl-kevin-y-6382df0d72d4588e1817f090b131541f\"],\"message\":\"\",\"name\":\"Test on www.example.com\",\"monitor_id\":28558768,\"type\":\"api\",\"created_at\":\"2021-01-12T10:11:40.802074+00:00\",\"modified_at\":\"2021-01-22T16:42:10.520384+00:00\",\"subtype\":\"http\",\"config\":{\"request\":{\"url\":\"https://www.example.com\",\"method\":\"GET\",\"timeout\":30},\"assertions\":[{\"operator\":\"lessThan\",\"type\":\"responseTime\",\"target\":1000},{\"operator\":\"is\",\"type\":\"statusCode\",\"target\":200},{\"operator\":\"A non existent operator\",\"type\":\"body\",\"target\":{\"xPath\":\"//html/head/title\",\"operator\":\"contains\",\"targetValue\":\"Example\"}}],\"configVariables\":[]},\"options\":{\"monitor_options\":{\"notify_audit\":false,\"locked\":false,\"include_tags\":true,\"new_host_delay\":300,\"notify_no_data\":false,\"renotify_interval\":0},\"retry\":{\"count\":0,\"interval\":300},\"min_location_failed\":1,\"min_failure_duration\":0,\"tick_every\":60}},{\"status\":\"paused\",\"public_id\":\"jv7-wfd-kvt\",\"tags\":[],\"locations\":[\"pl:pl-kevin-y-6382df0d72d4588e1817f090b131541f\"],\"message\":\"\",\"name\":\"Test on www.example.com\",\"monitor_id\":28558768,\"type\":\"api\",\"created_at\":\"2021-01-12T10:11:40.802074+00:00\",\"modified_at\":\"2021-01-22T16:42:10.520384+00:00\",\"subtype\":\"http\",\"config\":{\"request\":{\"url\":\"https://www.example.com\",\"method\":\"GET\",\"timeout\":30},\"assertions\":[{\"operator\":\"lessThan\",\"type\":\"responseTime\",\"target\":1000},{\"operator\":\"is\",\"type\":\"A non existent assertion type\",\"target\":200}],\"configVariables\":[]},\"options\":{\"monitor_options\":{\"notify_audit\":false,\"locked\":false,\"include_tags\":true,\"new_host_delay\":300,\"notify_no_data\":false,\"renotify_interval\":0},\"retry\":{\"count\":0,\"interval\":300},\"min_location_failed\":1,\"min_failure_duration\":0,\"tick_every\":60}},{\"status\":\"live\",\"public_id\":\"2fx-64b-fb8\",\"tags\":[\"mini-website\",\"team:synthetics\",\"firefox\",\"synthetics-ci-browser\",\"edge\",\"chrome\"],\"locations\":[\"aws:ap-northeast-1\",\"aws:eu-north-1\",\"aws:eu-west-3\",\"aws:eu-central-1\"],\"message\":\"This mini-website check failed, please investigate why. @slack-synthetics-ops-worker\",\"name\":\"Mini Website - Click Trap\",\"monitor_id\":7647262,\"type\":\"browser\",\"created_at\":\"2018-12-20T13:19:23.734004+00:00\",\"modified_at\":\"2021-06-30T15:46:49.387631+00:00\",\"config\":{\"variables\":[],\"setCookie\":\"\",\"request\":{\"url\":\"http://34.95.79.70/click-trap\",\"headers\":{},\"method\":\"GET\"},\"assertions\":[],\"configVariables\":[]},\"options\":{\"ci\":{\"executionRule\":\"blocking\"},\"retry\":{\"count\":1,\"interval\":1000},\"min_location_failed\":1,\"min_failure_duration\":0,\"noScreenshot\":false,\"tick_every\":300,\"forwardProxy\":false,\"disableCors\":false,\"device_ids\":[\"chrome.laptop_large\",\"firefox.laptop_large\",\"A non existent device ID\"],\"monitor_options\":{\"renotify_interval\":360},\"ignoreServerCertificateError\":true}},{\"status\":\"live\",\"public_id\":\"g6d-gcm-pdq\",\"tags\":[],\"locations\":[\"aws:eu-central-1\",\"aws:ap-northeast-1\"],\"message\":\"\",\"name\":\"Check on www.10.0.0.1.xip.io\",\"monitor_id\":7464050,\"type\":\"A non existent test type\",\"created_at\":\"2018-12-07T17:30:49.785089+00:00\",\"modified_at\":\"2019-09-04T17:01:09.921070+00:00\",\"subtype\":\"http\",\"config\":{\"request\":{\"url\":\"https://www.10.0.0.1.xip.io\",\"method\":\"GET\",\"timeout\":30},\"assertions\":[{\"operator\":\"is\",\"type\":\"statusCode\",\"target\":200}]},\"options\":{\"tick_every\":60}},{\"status\":\"live\",\"public_id\":\"g6d-gcm-pdq\",\"tags\":[],\"locations\":[\"aws:eu-central-1\",\"aws:ap-northeast-1\"],\"message\":\"\",\"name\":\"Check on www.10.0.0.1.xip.io\",\"monitor_id\":7464050,\"type\":\"api\",\"created_at\":\"2018-12-07T17:30:49.785089+00:00\",\"modified_at\":\"2019-09-04T17:01:09.921070+00:00\",\"subtype\":\"http\",\"config\":{\"request\":{\"url\":\"https://www.10.0.0.1.xip.io\",\"method\":\"A non existent method\",\"timeout\":30},\"assertions\":[{\"operator\":\"is\",\"type\":\"statusCode\",\"target\":200}]},\"options\":{\"tick_every\":60}},{\"status\":\"live\",\"public_id\":\"g6d-gcm-pdq\",\"tags\":[],\"locations\":[\"aws:eu-central-1\",\"aws:ap-northeast-1\"],\"message\":\"A fully valid test\",\"name\":\"Check on www.10.0.0.1.xip.io\",\"monitor_id\":7464050,\"type\":\"api\",\"created_at\":\"2018-12-07T17:30:49.785089+00:00\",\"modified_at\":\"2019-09-04T17:01:09.921070+00:00\",\"subtype\":\"http\",\"config\":{\"request\":{\"url\":\"https://www.10.0.0.1.xip.io\",\"method\":\"GET\",\"timeout\":30},\"assertions\":[{\"operator\":\"is\",\"type\":\"statusCode\",\"target\":200}]},\"options\":{\"tick_every\":60}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 10 Jan 2022 16:38:49 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Create-a-browser-test-returns-OK-Returns-saved-rumSettings-response.frozen b/tests/scenarios/cassettes/v1/synthetics/Create-a-browser-test-returns-OK-Returns-saved-rumSettings-response.frozen index 9ff9c16da..896fbf2e0 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Create-a-browser-test-returns-OK-Returns-saved-rumSettings-response.frozen +++ b/tests/scenarios/cassettes/v1/synthetics/Create-a-browser-test-returns-OK-Returns-saved-rumSettings-response.frozen @@ -1 +1 @@ -2023-09-26T16:16:35.258Z \ No newline at end of file +2024-01-26T10:20:21.858Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Create-a-browser-test-returns-OK-Returns-saved-rumSettings-response.json b/tests/scenarios/cassettes/v1/synthetics/Create-a-browser-test-returns-OK-Returns-saved-rumSettings-response.json index 7494cda73..afffc47f7 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Create-a-browser-test-returns-OK-Returns-saved-rumSettings-response.json +++ b/tests/scenarios/cassettes/v1/synthetics/Create-a-browser-test-returns-OK-Returns-saved-rumSettings-response.json @@ -1 +1,73 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"config\":{\"assertions\":[],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"certificateDomains\":[\"https://datadoghq.com\"],\"method\":\"GET\",\"url\":\"https://datadoghq.com\"},\"setCookie\":\"name:test\"},\"locations\":[\"aws:us-east-2\"],\"message\":\"Test message\",\"name\":\"Test-Create_a_browser_test_returns_OK_Returns_saved_rumSettings_response-1695744995\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"ci\":{\"executionRule\":\"skipped\"},\"device_ids\":[\"tablet\"],\"disableCors\":true,\"disableCsp\":true,\"follow_redirects\":true,\"ignoreServerCertificateError\":true,\"initialNavigationTimeout\":200,\"min_failure_duration\":10,\"min_location_failed\":1,\"noScreenshot\":true,\"retry\":{\"count\":2,\"interval\":10},\"rumSettings\":{\"applicationId\":\"mockApplicationId\",\"clientTokenId\":12345,\"isEnabled\":true},\"tick_every\":300},\"steps\":[{\"allowFailure\":false,\"isCritical\":true,\"name\":\"Refresh page\",\"params\":{},\"type\":\"refresh\"}],\"tags\":[\"testing:browser\"],\"type\":\"browser\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/browser"}, "response": {"body": {"string": "{\"public_id\":\"xe7-4ub-t2m\",\"name\":\"Test-Create_a_browser_test_returns_OK_Returns_saved_rumSettings_response-1695744995\",\"status\":\"paused\",\"type\":\"browser\",\"tags\":[\"testing:browser\"],\"created_at\":\"2023-09-26T16:16:35.485692+00:00\",\"modified_at\":\"2023-09-26T16:16:35.485692+00:00\",\"config\":{\"assertions\":[],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"certificateDomains\":[\"https://datadoghq.com\"],\"method\":\"GET\",\"url\":\"https://datadoghq.com\"},\"setCookie\":\"name:test\"},\"message\":\"Test message\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"ci\":{\"executionRule\":\"skipped\"},\"device_ids\":[\"tablet\"],\"disableCors\":true,\"disableCsp\":true,\"follow_redirects\":true,\"ignoreServerCertificateError\":true,\"initialNavigationTimeout\":200,\"min_failure_duration\":10,\"min_location_failed\":1,\"noScreenshot\":true,\"retry\":{\"count\":2,\"interval\":10},\"rumSettings\":{\"applicationId\":\"mockApplicationId\",\"clientTokenId\":12345,\"isEnabled\":true},\"tick_every\":300},\"locations\":[\"aws:us-east-2\"],\"created_by\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":132050365,\"org_id\":321813,\"modified_by\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"steps\":[{\"name\":\"Refresh page\",\"params\":{},\"type\":\"refresh\",\"allowFailure\":false,\"isCritical\":true}],\"stepCount\":{\"assertions\":0,\"subtests\":0,\"total\":1}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 26 Sep 2023 16:16:35 GMT"}, {"request": {"body": {"string": "{\"public_ids\":[\"xe7-4ub-t2m\"]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete"}, "response": {"body": {"string": "{\"deleted_tests\":[{\"public_id\":\"xe7-4ub-t2m\",\"deleted_at\":\"2023-09-26T16:16:35.702812+00:00\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 26 Sep 2023 16:16:35 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"config\":{\"assertions\":[],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"certificateDomains\":[\"https://datadoghq.com\"],\"method\":\"GET\",\"url\":\"https://datadoghq.com\"},\"setCookie\":\"name:test\"},\"locations\":[\"aws:us-east-2\"],\"message\":\"Test message\",\"name\":\"Test-Create_a_browser_test_returns_OK_Returns_saved_rumSettings_response-1706264421\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"ci\":{\"executionRule\":\"skipped\"},\"device_ids\":[\"tablet\"],\"disableCors\":true,\"disableCsp\":true,\"follow_redirects\":true,\"ignoreServerCertificateError\":true,\"initialNavigationTimeout\":200,\"min_failure_duration\":10,\"min_location_failed\":1,\"noScreenshot\":true,\"retry\":{\"count\":2,\"interval\":10},\"rumSettings\":{\"applicationId\":\"mockApplicationId\",\"clientTokenId\":12345,\"isEnabled\":true},\"tick_every\":300},\"steps\":[{\"allowFailure\":false,\"isCritical\":true,\"name\":\"Refresh page\",\"params\":{},\"type\":\"refresh\"}],\"tags\":[\"testing:browser\"],\"type\":\"browser\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/browser" + }, + "response": { + "body": { + "string": "{\"public_id\":\"y2r-gnr-i3n\",\"name\":\"Test-Create_a_browser_test_returns_OK_Returns_saved_rumSettings_response-1706264421\",\"status\":\"paused\",\"type\":\"browser\",\"tags\":[\"testing:browser\"],\"created_at\":\"2024-01-26T10:20:22.506547+00:00\",\"modified_at\":\"2024-01-26T10:20:22.506547+00:00\",\"config\":{\"assertions\":[],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"certificateDomains\":[\"https://datadoghq.com\"],\"method\":\"GET\",\"url\":\"https://datadoghq.com\"},\"setCookie\":\"name:test\"},\"message\":\"Test message\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"ci\":{\"executionRule\":\"skipped\"},\"device_ids\":[\"tablet\"],\"disableCors\":true,\"disableCsp\":true,\"follow_redirects\":true,\"ignoreServerCertificateError\":true,\"initialNavigationTimeout\":200,\"min_failure_duration\":10,\"min_location_failed\":1,\"noScreenshot\":true,\"retry\":{\"count\":2,\"interval\":10},\"rumSettings\":{\"applicationId\":\"mockApplicationId\",\"clientTokenId\":12345,\"isEnabled\":true},\"tick_every\":300},\"locations\":[\"aws:us-east-2\"],\"created_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":138446062,\"org_id\":569509,\"modified_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"steps\":[{\"name\":\"Refresh page\",\"params\":{},\"type\":\"refresh\",\"allowFailure\":false,\"isCritical\":true}],\"stepCount\":{\"assertions\":0,\"subtests\":0,\"total\":1}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 10:20:21 GMT" + }, + { + "request": { + "body": { + "string": "{\"public_ids\":[\"y2r-gnr-i3n\"]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete" + }, + "response": { + "body": { + "string": "{\"deleted_tests\":[{\"public_id\":\"y2r-gnr-i3n\",\"deleted_at\":\"2024-01-26T10:20:23.057714+00:00\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 10:20:21 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Create-a-browser-test-returns-OK-Returns-the-created-test-details-response.frozen b/tests/scenarios/cassettes/v1/synthetics/Create-a-browser-test-returns-OK-Returns-the-created-test-details-response.frozen index 012060535..207843d86 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Create-a-browser-test-returns-OK-Returns-the-created-test-details-response.frozen +++ b/tests/scenarios/cassettes/v1/synthetics/Create-a-browser-test-returns-OK-Returns-the-created-test-details-response.frozen @@ -1 +1 @@ -2023-09-26T16:16:35.839Z \ No newline at end of file +2024-01-26T13:21:41.908Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Create-a-browser-test-returns-OK-Returns-the-created-test-details-response.json b/tests/scenarios/cassettes/v1/synthetics/Create-a-browser-test-returns-OK-Returns-the-created-test-details-response.json index a313ee718..e55968a0f 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Create-a-browser-test-returns-OK-Returns-the-created-test-details-response.json +++ b/tests/scenarios/cassettes/v1/synthetics/Create-a-browser-test-returns-OK-Returns-the-created-test-details-response.json @@ -1 +1,73 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"config\":{\"assertions\":[],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"secure\":true,\"type\":\"text\"}],\"request\":{\"method\":\"GET\",\"url\":\"https://datadoghq.com\"},\"setCookie\":\"name:test\",\"variables\":[{\"example\":\"secret\",\"name\":\"TEST_VARIABLE\",\"pattern\":\"secret\",\"secure\":true,\"type\":\"text\"}]},\"locations\":[\"aws:us-east-2\"],\"message\":\"Test message\",\"name\":\"Test-Create_a_browser_test_returns_OK_Returns_the_created_test_details_response-1695744995\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"device_ids\":[\"tablet\"],\"disableCors\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"noScreenshot\":true,\"retry\":{\"count\":2,\"interval\":10},\"tick_every\":300},\"steps\":[{\"allowFailure\":false,\"isCritical\":true,\"name\":\"Refresh page\",\"params\":{},\"type\":\"refresh\"}],\"tags\":[\"testing:browser\"],\"type\":\"browser\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/browser"}, "response": {"body": {"string": "{\"public_id\":\"nrw-sne-nnu\",\"name\":\"Test-Create_a_browser_test_returns_OK_Returns_the_created_test_details_response-1695744995\",\"status\":\"paused\",\"type\":\"browser\",\"tags\":[\"testing:browser\"],\"created_at\":\"2023-09-26T16:16:36.081358+00:00\",\"modified_at\":\"2023-09-26T16:16:36.081358+00:00\",\"config\":{\"assertions\":[],\"configVariables\":[{\"name\":\"PROPERTY\",\"secure\":true,\"type\":\"text\"}],\"request\":{\"method\":\"GET\",\"url\":\"https://datadoghq.com\"},\"setCookie\":\"name:test\",\"variables\":[{\"name\":\"TEST_VARIABLE\",\"secure\":true,\"type\":\"text\"}]},\"message\":\"Test message\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"device_ids\":[\"tablet\"],\"disableCors\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"noScreenshot\":true,\"retry\":{\"count\":2,\"interval\":10},\"tick_every\":300},\"locations\":[\"aws:us-east-2\"],\"created_by\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":132050366,\"org_id\":321813,\"modified_by\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"steps\":[{\"name\":\"Refresh page\",\"params\":{},\"type\":\"refresh\",\"allowFailure\":false,\"isCritical\":true}],\"stepCount\":{\"assertions\":0,\"subtests\":0,\"total\":1}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 26 Sep 2023 16:16:35 GMT"}, {"request": {"body": {"string": "{\"public_ids\":[\"nrw-sne-nnu\"]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete"}, "response": {"body": {"string": "{\"deleted_tests\":[{\"public_id\":\"nrw-sne-nnu\",\"deleted_at\":\"2023-09-26T16:16:36.330841+00:00\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 26 Sep 2023 16:16:35 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"config\":{\"assertions\":[],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"secure\":true,\"type\":\"text\"}],\"request\":{\"method\":\"GET\",\"url\":\"https://datadoghq.com\"},\"setCookie\":\"name:test\",\"variables\":[{\"example\":\"secret\",\"name\":\"TEST_VARIABLE\",\"pattern\":\"secret\",\"secure\":true,\"type\":\"text\"}]},\"locations\":[\"aws:us-east-2\"],\"message\":\"Test message\",\"name\":\"Test-Create_a_browser_test_returns_OK_Returns_the_created_test_details_response-1706275301\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"device_ids\":[\"chrome.laptop_large\"],\"disableCors\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"noScreenshot\":true,\"retry\":{\"count\":2,\"interval\":10},\"tick_every\":300},\"steps\":[{\"allowFailure\":false,\"isCritical\":true,\"name\":\"Refresh page\",\"params\":{},\"type\":\"refresh\"}],\"tags\":[\"testing:browser\"],\"type\":\"browser\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/browser" + }, + "response": { + "body": { + "string": "{\"public_id\":\"s58-re2-v8s\",\"name\":\"Test-Create_a_browser_test_returns_OK_Returns_the_created_test_details_response-1706275301\",\"status\":\"paused\",\"type\":\"browser\",\"tags\":[\"testing:browser\"],\"created_at\":\"2024-01-26T13:21:42.472655+00:00\",\"modified_at\":\"2024-01-26T13:21:42.472655+00:00\",\"config\":{\"assertions\":[],\"configVariables\":[{\"name\":\"PROPERTY\",\"secure\":true,\"type\":\"text\"}],\"request\":{\"method\":\"GET\",\"url\":\"https://datadoghq.com\"},\"setCookie\":\"name:test\",\"variables\":[{\"name\":\"TEST_VARIABLE\",\"secure\":true,\"type\":\"text\"}]},\"message\":\"Test message\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"device_ids\":[\"chrome.laptop_large\"],\"disableCors\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"noScreenshot\":true,\"retry\":{\"count\":2,\"interval\":10},\"tick_every\":300},\"locations\":[\"aws:us-east-2\"],\"created_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":138453230,\"org_id\":569509,\"modified_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"steps\":[{\"name\":\"Refresh page\",\"params\":{},\"type\":\"refresh\",\"allowFailure\":false,\"isCritical\":true}],\"stepCount\":{\"assertions\":0,\"subtests\":0,\"total\":1}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 13:21:41 GMT" + }, + { + "request": { + "body": { + "string": "{\"public_ids\":[\"s58-re2-v8s\"]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete" + }, + "response": { + "body": { + "string": "{\"deleted_tests\":[{\"public_id\":\"s58-re2-v8s\",\"deleted_at\":\"2024-01-26T13:21:42.969942+00:00\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 13:21:41 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Create-a-browser-test-with-advanced-scheduling-options-returns-OK-Returns-the-created-test-details-response.frozen b/tests/scenarios/cassettes/v1/synthetics/Create-a-browser-test-with-advanced-scheduling-options-returns-OK-Returns-the-created-test-details-response.frozen index 552d73d50..a585a5946 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Create-a-browser-test-with-advanced-scheduling-options-returns-OK-Returns-the-created-test-details-response.frozen +++ b/tests/scenarios/cassettes/v1/synthetics/Create-a-browser-test-with-advanced-scheduling-options-returns-OK-Returns-the-created-test-details-response.frozen @@ -1 +1 @@ -2023-09-26T16:16:36.921Z \ No newline at end of file +2024-01-26T10:20:25.056Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Create-a-browser-test-with-advanced-scheduling-options-returns-OK-Returns-the-created-test-details-response.json b/tests/scenarios/cassettes/v1/synthetics/Create-a-browser-test-with-advanced-scheduling-options-returns-OK-Returns-the-created-test-details-response.json index f06cba5aa..00cc3e90d 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Create-a-browser-test-with-advanced-scheduling-options-returns-OK-Returns-the-created-test-details-response.json +++ b/tests/scenarios/cassettes/v1/synthetics/Create-a-browser-test-with-advanced-scheduling-options-returns-OK-Returns-the-created-test-details-response.json @@ -1 +1,73 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"config\":{\"assertions\":[],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"method\":\"GET\",\"url\":\"https://datadoghq.com\"},\"setCookie\":\"name:test\"},\"locations\":[\"aws:us-east-2\"],\"message\":\"Test message\",\"name\":\"Test-Create_a_browser_test_with_advanced_scheduling_options_returns_OK_Returns_the_created_test_details_r-1695744996\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"device_ids\":[\"tablet\"],\"disableCors\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"noScreenshot\":true,\"retry\":{\"count\":2,\"interval\":10},\"scheduling\":{\"timeframes\":[{\"day\":1,\"from\":\"07:00\",\"to\":\"16:00\"},{\"day\":3,\"from\":\"07:00\",\"to\":\"16:00\"}],\"timezone\":\"America/New_York\"},\"tick_every\":300},\"steps\":[{\"allowFailure\":false,\"isCritical\":true,\"name\":\"Refresh page\",\"params\":{},\"type\":\"refresh\"}],\"tags\":[\"testing:browser\"],\"type\":\"browser\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/browser"}, "response": {"body": {"string": "{\"public_id\":\"6mk-9ey-6p5\",\"name\":\"Test-Create_a_browser_test_with_advanced_scheduling_options_returns_OK_Returns_the_created_test_details_r-1695744996\",\"status\":\"paused\",\"type\":\"browser\",\"tags\":[\"testing:browser\"],\"created_at\":\"2023-09-26T16:16:37.134602+00:00\",\"modified_at\":\"2023-09-26T16:16:37.134602+00:00\",\"config\":{\"assertions\":[],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"method\":\"GET\",\"url\":\"https://datadoghq.com\"},\"setCookie\":\"name:test\"},\"message\":\"Test message\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"device_ids\":[\"tablet\"],\"disableCors\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"noScreenshot\":true,\"retry\":{\"count\":2,\"interval\":10},\"scheduling\":{\"timeframes\":[{\"day\":1,\"from\":\"07:00\",\"to\":\"16:00\"},{\"day\":3,\"from\":\"07:00\",\"to\":\"16:00\"}],\"timezone\":\"America/New_York\"},\"tick_every\":300},\"locations\":[\"aws:us-east-2\"],\"created_by\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":132050367,\"org_id\":321813,\"modified_by\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"steps\":[{\"name\":\"Refresh page\",\"params\":{},\"type\":\"refresh\",\"allowFailure\":false,\"isCritical\":true}],\"stepCount\":{\"assertions\":0,\"subtests\":0,\"total\":1}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 26 Sep 2023 16:16:36 GMT"}, {"request": {"body": {"string": "{\"public_ids\":[\"6mk-9ey-6p5\"]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete"}, "response": {"body": {"string": "{\"deleted_tests\":[{\"public_id\":\"6mk-9ey-6p5\",\"deleted_at\":\"2023-09-26T16:16:37.344201+00:00\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 26 Sep 2023 16:16:36 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"config\":{\"assertions\":[],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"method\":\"GET\",\"url\":\"https://datadoghq.com\"},\"setCookie\":\"name:test\"},\"locations\":[\"aws:us-east-2\"],\"message\":\"Test message\",\"name\":\"Test-Create_a_browser_test_with_advanced_scheduling_options_returns_OK_Returns_the_created_test_details_r-1706264425\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"device_ids\":[\"tablet\"],\"disableCors\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"noScreenshot\":true,\"retry\":{\"count\":2,\"interval\":10},\"scheduling\":{\"timeframes\":[{\"day\":1,\"from\":\"07:00\",\"to\":\"16:00\"},{\"day\":3,\"from\":\"07:00\",\"to\":\"16:00\"}],\"timezone\":\"America/New_York\"},\"tick_every\":300},\"steps\":[{\"allowFailure\":false,\"isCritical\":true,\"name\":\"Refresh page\",\"params\":{},\"type\":\"refresh\"}],\"tags\":[\"testing:browser\"],\"type\":\"browser\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/browser" + }, + "response": { + "body": { + "string": "{\"public_id\":\"un5-mtk-j4v\",\"name\":\"Test-Create_a_browser_test_with_advanced_scheduling_options_returns_OK_Returns_the_created_test_details_r-1706264425\",\"status\":\"paused\",\"type\":\"browser\",\"tags\":[\"testing:browser\"],\"created_at\":\"2024-01-26T10:20:25.632372+00:00\",\"modified_at\":\"2024-01-26T10:20:25.632372+00:00\",\"config\":{\"assertions\":[],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"method\":\"GET\",\"url\":\"https://datadoghq.com\"},\"setCookie\":\"name:test\"},\"message\":\"Test message\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"device_ids\":[\"tablet\"],\"disableCors\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"noScreenshot\":true,\"retry\":{\"count\":2,\"interval\":10},\"scheduling\":{\"timeframes\":[{\"day\":1,\"from\":\"07:00\",\"to\":\"16:00\"},{\"day\":3,\"from\":\"07:00\",\"to\":\"16:00\"}],\"timezone\":\"America/New_York\"},\"tick_every\":300},\"locations\":[\"aws:us-east-2\"],\"created_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":138446064,\"org_id\":569509,\"modified_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"steps\":[{\"name\":\"Refresh page\",\"params\":{},\"type\":\"refresh\",\"allowFailure\":false,\"isCritical\":true}],\"stepCount\":{\"assertions\":0,\"subtests\":0,\"total\":1}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 10:20:25 GMT" + }, + { + "request": { + "body": { + "string": "{\"public_ids\":[\"un5-mtk-j4v\"]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete" + }, + "response": { + "body": { + "string": "{\"deleted_tests\":[{\"public_id\":\"un5-mtk-j4v\",\"deleted_at\":\"2024-01-26T10:20:26.205695+00:00\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 10:20:25 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Create-a-global-variable-from-test-returns-OK-response.frozen b/tests/scenarios/cassettes/v1/synthetics/Create-a-global-variable-from-test-returns-OK-response.frozen index 8f9867d53..27e5628c1 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Create-a-global-variable-from-test-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v1/synthetics/Create-a-global-variable-from-test-returns-OK-response.frozen @@ -1 +1 @@ -2023-05-23T13:41:47.597Z \ No newline at end of file +2024-03-13T08:48:00.559Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Create-a-global-variable-from-test-returns-OK-response.json b/tests/scenarios/cassettes/v1/synthetics/Create-a-global-variable-from-test-returns-OK-response.json index 03fd6c3cf..36dd6e92f 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Create-a-global-variable-from-test-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/synthetics/Create-a-global-variable-from-test-returns-OK-response.json @@ -1 +1,135 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"config\":{\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"steps\":[{\"allowFailure\":true,\"assertions\":[{\"operator\":\"is\",\"target\":200,\"type\":\"statusCode\"}],\"extractedValues\":[{\"field\":\"server\",\"name\":\"EXTRACTED_VALUE\",\"parser\":{\"type\":\"raw\"},\"secure\":true,\"type\":\"http_header\"}],\"isCritical\":true,\"name\":\"request is sent\",\"request\":{\"method\":\"GET\",\"timeout\":10,\"url\":\"https://datadoghq.com\"},\"retry\":{\"count\":5,\"interval\":1000},\"subtype\":\"http\"}]},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_test_multi_step_payload.json\",\"name\":\"Test-Create_a_global_variable_from_test_returns_OK_response-1684849307\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_a_global_variable_from_test_returns_OK_response-1684849307\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":1000},\"tick_every\":60},\"subtype\":\"multi\",\"tags\":[\"testing:api\"],\"type\":\"api\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api"}, "response": {"body": {"string": "{\"public_id\":\"wk3-pn7-sn3\",\"name\":\"Test-Create_a_global_variable_from_test_returns_OK_response-1684849307\",\"status\":\"live\",\"type\":\"api\",\"tags\":[\"testing:api\"],\"created_at\":\"2023-05-23T13:41:47.888352+00:00\",\"modified_at\":\"2023-05-23T13:41:47.888352+00:00\",\"config\":{\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"steps\":[{\"allowFailure\":true,\"assertions\":[{\"operator\":\"is\",\"target\":200,\"type\":\"statusCode\"}],\"extractedValues\":[{\"field\":\"server\",\"name\":\"EXTRACTED_VALUE\",\"parser\":{\"type\":\"raw\"},\"secure\":true,\"type\":\"http_header\"}],\"isCritical\":true,\"name\":\"request is sent\",\"request\":{\"method\":\"GET\",\"timeout\":10,\"url\":\"https://datadoghq.com\"},\"retry\":{\"count\":5,\"interval\":1000},\"subtype\":\"http\",\"id\":\"ymn-tzt-isn\"}]},\"message\":\"BDD test payload: synthetics_api_test_multi_step_payload.json\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_a_global_variable_from_test_returns_OK_response-1684849307\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":1000},\"tick_every\":60},\"locations\":[\"aws:us-east-2\"],\"subtype\":\"multi\",\"deleted_at\":null,\"monitor_id\":119820627,\"org_id\":321813}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 23 May 2023 13:41:47 GMT"}, {"request": {"body": {"string": "{\"description\":\"\",\"name\":\"GLOBAL_VARIABLE_PAYLOAD_TESTCREATEAGLOBALVARIABLEFROMTESTRETURNSOKRESPONSE1684849307\",\"parse_test_options\":{\"localVariableName\":\"EXTRACTED_VALUE\",\"type\":\"local_variable\"},\"parse_test_public_id\":\"wk3-pn7-sn3\",\"tags\":[],\"value\":{\"options\":{\"totp_parameters\":{\"digits\":6,\"refresh_interval\":30}},\"secure\":false,\"value\":\"\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/variables"}, "response": {"body": {"string": "{\"id\":\"c1b94a97-87df-440f-b5fc-ef7f391bf07a\",\"name\":\"GLOBAL_VARIABLE_PAYLOAD_TESTCREATEAGLOBALVARIABLEFROMTESTRETURNSOKRESPONSE1684849307\",\"description\":\"\",\"type\":\"variable\",\"tags\":[],\"parse_test_public_id\":\"wk3-pn7-sn3\",\"parse_test_name\":null,\"parse_test_options\":{\"localVariableName\":\"EXTRACTED_VALUE\",\"type\":\"local_variable\"},\"parse_test_extracted_at\":null,\"is_totp\":null,\"is_fido\":null,\"last_error\":null,\"value\":{\"options\":{\"totp_parameters\":{\"digits\":6,\"refresh_interval\":30}},\"secure\":false,\"value\":\"\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 23 May 2023 13:41:47 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/synthetics/variables/c1b94a97-87df-440f-b5fc-ef7f391bf07a"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 23 May 2023 13:41:47 GMT"}, {"request": {"body": {"string": "{\"public_ids\":[\"wk3-pn7-sn3\"]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete"}, "response": {"body": {"string": "{\"deleted_tests\":[{\"public_id\":\"wk3-pn7-sn3\",\"deleted_at\":\"2023-05-23T13:41:48.789772+00:00\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 23 May 2023 13:41:47 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"config\":{\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"steps\":[{\"allowFailure\":true,\"assertions\":[{\"operator\":\"is\",\"target\":200,\"type\":\"statusCode\"}],\"extractedValues\":[{\"field\":\"server\",\"name\":\"EXTRACTED_VALUE\",\"parser\":{\"type\":\"raw\"},\"secure\":true,\"type\":\"http_header\"}],\"isCritical\":true,\"name\":\"request is sent\",\"request\":{\"httpVersion\":\"http2\",\"method\":\"GET\",\"timeout\":10,\"url\":\"https://datadoghq.com\"},\"retry\":{\"count\":5,\"interval\":1000},\"subtype\":\"http\"},{\"allowFailure\":false,\"assertions\":[{\"operator\":\"lessThan\",\"target\":1000,\"type\":\"responseTime\"}],\"extractedValues\":[],\"isCritical\":true,\"name\":\"GRPC CALL\",\"request\":{\"callType\":\"unary\",\"compressedJsonDescriptor\":\"eJy1lU1z2yAQhv+Lzj74I3ETH506bQ7OZOSm1w4Wa4epBARQppqM/3v5koCJJdvtxCdW77vPssCO3zMKUgHOFu/ZXvBiS6hZho/f8qe7pftYgXphWJrlA8XwxywEvNba+6PhkC2yVcVVswYp0R6ykRYlZ1SCV21SDrxsssPIeS9FJKqGfK2rqnmmSBwhWa2XlKgtaQPiDcRGCUDVfwGD2sKUqKEtc1cSoOrsMlaMOec1sySYCCgUYRSVLv2zSva2u+FQkB0pVkIw8bFuIudOOn3pOaKYVT3Iy97Pd0AYhOx5QcMsnxvRHlnuLf8ETDd3CNtrv2nejkDpRnANCmGkkFn/hsYzpBKE7jVbufgnKnV9HRM9zRPDDKPttYT61n0TdWkAAjggk9AhuxIeaXd69CYTcsGw7cBTakLVbNpRzGEgyWjkSOpMbZXkhGL6oX30R49qt3GoHrap7i0XdD41WQ+2icCNm5p1hmFqnHNlcla0riKmDZ183crDxChjbnurtxHPRE784sVhWvDfGP+SsTKibU3o5NtWHuZFGZOxP6P5VXqIOvaOSec4eYohyd7NslHuJbd1bewds85xYrNxkr2d+5IhFWF3NvaO684xjE2S5ulY+tu64Pna0fCPJgzw6vF5/WucLcYjt5xoq19O3UDptOg/OamJQRaCcPPnMTQ2QDFn+uhPvUfnCrMc99upyQY4Ui9Dlc/YoG3R/v4Cs9YE+g==\",\"host\":\"grpcbin.test.k6.io\",\"message\":\"{}\",\"metadata\":{},\"method\":\"Index\",\"port\":9000,\"service\":\"grpcbin.GRPCBin\"},\"retry\":{\"count\":0,\"interval\":300},\"subtype\":\"grpc\"}]},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_test_multi_step_payload.json\",\"name\":\"Test-Create_a_global_variable_from_test_returns_OK_response-1710319680\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_a_global_variable_from_test_returns_OK_response-1710319680\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":1000},\"tick_every\":60},\"subtype\":\"multi\",\"tags\":[\"testing:api\"],\"type\":\"api\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api" + }, + "response": { + "body": { + "string": "{\"public_id\":\"hke-w83-j6r\",\"name\":\"Test-Create_a_global_variable_from_test_returns_OK_response-1710319680\",\"status\":\"live\",\"type\":\"api\",\"tags\":[\"testing:api\"],\"created_at\":\"2024-03-13T08:48:01.233193+00:00\",\"modified_at\":\"2024-03-13T08:48:01.233193+00:00\",\"config\":{\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"steps\":[{\"allowFailure\":true,\"assertions\":[{\"operator\":\"is\",\"target\":200,\"type\":\"statusCode\"}],\"extractedValues\":[{\"field\":\"server\",\"name\":\"EXTRACTED_VALUE\",\"parser\":{\"type\":\"raw\"},\"secure\":true,\"type\":\"http_header\"}],\"isCritical\":true,\"name\":\"request is sent\",\"request\":{\"httpVersion\":\"http2\",\"method\":\"GET\",\"timeout\":10,\"url\":\"https://datadoghq.com\"},\"retry\":{\"count\":5,\"interval\":1000},\"subtype\":\"http\",\"id\":\"bba-utu-dpy\"},{\"allowFailure\":false,\"assertions\":[{\"operator\":\"lessThan\",\"target\":1000,\"type\":\"responseTime\"}],\"extractedValues\":[],\"isCritical\":true,\"name\":\"GRPC CALL\",\"request\":{\"callType\":\"unary\",\"compressedJsonDescriptor\":\"eJy1lU1z2yAQhv+Lzj74I3ETH506bQ7OZOSm1w4Wa4epBARQppqM/3v5koCJJdvtxCdW77vPssCO3zMKUgHOFu/ZXvBiS6hZho/f8qe7pftYgXphWJrlA8XwxywEvNba+6PhkC2yVcVVswYp0R6ykRYlZ1SCV21SDrxsssPIeS9FJKqGfK2rqnmmSBwhWa2XlKgtaQPiDcRGCUDVfwGD2sKUqKEtc1cSoOrsMlaMOec1sySYCCgUYRSVLv2zSva2u+FQkB0pVkIw8bFuIudOOn3pOaKYVT3Iy97Pd0AYhOx5QcMsnxvRHlnuLf8ETDd3CNtrv2nejkDpRnANCmGkkFn/hsYzpBKE7jVbufgnKnV9HRM9zRPDDKPttYT61n0TdWkAAjggk9AhuxIeaXd69CYTcsGw7cBTakLVbNpRzGEgyWjkSOpMbZXkhGL6oX30R49qt3GoHrap7i0XdD41WQ+2icCNm5p1hmFqnHNlcla0riKmDZ183crDxChjbnurtxHPRE784sVhWvDfGP+SsTKibU3o5NtWHuZFGZOxP6P5VXqIOvaOSec4eYohyd7NslHuJbd1bewds85xYrNxkr2d+5IhFWF3NvaO684xjE2S5ulY+tu64Pna0fCPJgzw6vF5/WucLcYjt5xoq19O3UDptOg/OamJQRaCcPPnMTQ2QDFn+uhPvUfnCrMc99upyQY4Ui9Dlc/YoG3R/v4Cs9YE+g==\",\"host\":\"grpcbin.test.k6.io\",\"message\":\"{}\",\"metadata\":{},\"method\":\"Index\",\"port\":9000,\"service\":\"grpcbin.GRPCBin\"},\"retry\":{\"count\":0,\"interval\":300},\"subtype\":\"grpc\",\"id\":\"tax-mfs-p3v\"}]},\"message\":\"BDD test payload: synthetics_api_test_multi_step_payload.json\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_a_global_variable_from_test_returns_OK_response-1710319680\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":1000},\"tick_every\":60},\"locations\":[\"aws:us-east-2\"],\"subtype\":\"multi\",\"created_by\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":141300469,\"org_id\":321813,\"modified_by\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 13 Mar 2024 08:48:00 GMT" + }, + { + "request": { + "body": { + "string": "{\"description\":\"\",\"name\":\"GLOBAL_VARIABLE_PAYLOAD_TESTCREATEAGLOBALVARIABLEFROMTESTRETURNSOKRESPONSE1710319680\",\"parse_test_options\":{\"localVariableName\":\"EXTRACTED_VALUE\",\"type\":\"local_variable\"},\"parse_test_public_id\":\"hke-w83-j6r\",\"tags\":[],\"value\":{\"options\":{\"totp_parameters\":{\"digits\":6,\"refresh_interval\":30}},\"secure\":false,\"value\":\"\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/variables" + }, + "response": { + "body": { + "string": "{\"id\":\"d4597027-2f9b-4595-8c10-7ea475bdcf0f\",\"name\":\"GLOBAL_VARIABLE_PAYLOAD_TESTCREATEAGLOBALVARIABLEFROMTESTRETURNSOKRESPONSE1710319680\",\"description\":\"\",\"type\":\"variable\",\"tags\":[],\"parse_test_public_id\":\"hke-w83-j6r\",\"parse_test_name\":null,\"parse_test_options\":{\"localVariableName\":\"EXTRACTED_VALUE\",\"type\":\"local_variable\"},\"parse_test_extracted_at\":null,\"is_totp\":null,\"is_fido\":null,\"last_error\":null,\"value\":{\"options\":{\"totp_parameters\":{\"digits\":6,\"refresh_interval\":30}},\"secure\":false,\"value\":\"\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 13 Mar 2024 08:48:00 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/synthetics/variables/d4597027-2f9b-4595-8c10-7ea475bdcf0f" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 13 Mar 2024 08:48:00 GMT" + }, + { + "request": { + "body": { + "string": "{\"public_ids\":[\"hke-w83-j6r\"]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete" + }, + "response": { + "body": { + "string": "{\"deleted_tests\":[{\"public_id\":\"hke-w83-j6r\",\"deleted_at\":\"2024-03-13T08:48:02.740088+00:00\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 13 Mar 2024 08:48:00 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Create-a-private-location-returns-OK-response.frozen b/tests/scenarios/cassettes/v1/synthetics/Create-a-private-location-returns-OK-response.frozen index 5f9f597e7..2284819e6 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Create-a-private-location-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v1/synthetics/Create-a-private-location-returns-OK-response.frozen @@ -1 +1 @@ -2022-08-30T12:58:55.910Z \ No newline at end of file +2024-01-26T10:20:29.865Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Create-a-private-location-returns-OK-response.json b/tests/scenarios/cassettes/v1/synthetics/Create-a-private-location-returns-OK-response.json index 9afe2af42..f94356a29 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Create-a-private-location-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/synthetics/Create-a-private-location-returns-OK-response.json @@ -1 +1,129 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_a_private_location_returns_OK_response-1661864335\"},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles"}, "response": {"body": {"string": "{\"data\":{\"type\":\"roles\",\"id\":\"81ddc27c-2863-11ed-b579-da7ad0900002\",\"attributes\":{\"name\":\"Test-Create_a_private_location_returns_OK_response-1661864335\",\"created_at\":\"2022-08-30T12:58:56.401290+00:00\",\"modified_at\":\"2022-08-30T12:58:56.449222+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\"}]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 30 Aug 2022 12:58:55 GMT"}, {"request": {"body": {"string": "{\"description\":\"Test Test-Create_a_private_location_returns_OK_response-1661864335 description\",\"metadata\":{\"restricted_roles\":[\"81ddc27c-2863-11ed-b579-da7ad0900002\"]},\"name\":\"Test-Create_a_private_location_returns_OK_response-1661864335\",\"tags\":[\"test:testcreateaprivatelocationreturnsokresponse1661864335\"]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/private-locations"}, "response": {"body": {"string": "{\"private_location\":{\"name\":\"Test-Create_a_private_location_returns_OK_response-1661864335\",\"tags\":[\"test:testcreateaprivatelocationreturnsokresponse1661864335\"],\"secrets\":{\"authentication\":{\"id\":\"84de632c89cdb10a5781d61e0e5e3e27\",\"key\":\"c4802dfb71ae674b4311ee8e80715148b020657b3a0afc26ef121f55fec74724\"},\"config_decryption\":{\"id\":\"6486c010470fd1dbed0f4a277fe8718c\",\"key\":\"-----BEGIN RSA PRIVATE KEY-----\\nMIIJKQIBAAKCAgEAuftTDiT8ImQOyZH0x6ltNAAmcvil3arGhCC5a9cRRlRhgPBG\\n0ZW97b4/dxi9U6Ww16/ZSxzbwzzvMl0EyyIhzuGK7riG20NP1foEnCmN7r5yw1FD\\nqfd1vcAqiIV5xaSRsfk76CJOwK4s3DcoH2gPPtWUviaFIwTpZ7hCKQ6iflUtuJ/3\\nAUWBYt04/3G5DzGUGnZr84okZS3usYz27ly9B3WFkwpMM+JwIRlkXaq/Qk28NUyf\\nf+kBAHEMKuiWO/qhYVUDEnEg1495teNTAumX2MpJ9AWX5FOoYZ9PbJ+0Vc6ogMZ4\\nyWQ3d7/dZlwNBELCidmH4QJ1SFO8mGF5apRaTCYsm1rWzpONJTtb4M/5te0v2Uk6\\nvt6chT3Ml3ScFewgO37WE7aU4d4BgnxK9ndUQiYsaUBkCdLhEcF5BiBb4k1zYdAn\\nC/UW129l/llg22eK63tTCYeMFleLrToPJuxAv8U723PVZrBWnVKPuCO974YuegMW\\nXJnNOUAcUG4tp3iOB6rNIP/GAeDg2BhOiZl4haVG+8Vq03+sPJZM9TWrojHMgvHD\\nY+30oEDpNDlmg3OO26S8Fi3iwj5Tduw594mhVcuzUd/KN4/oIBEBCXwN+DJ6QxjC\\nFkzNazsSt0zzSdYusitUlYJyFz1aRta+rj/eTOkoEb7UBmLVY1YiuVh9MJsCAwEA\\nAQKCAgARPITU4EJKhlRv2P+YdjrWjBcEJnLqNCwZeGucM36jMn8mMzPqXlg6YvHr\\nKJdPW8v5HrqNlrtFVm3iuzKOXaJIKVNgztLsxPRuuTED2hQQkYT9q207y4vqzexY\\njRTykiR7RpqHPTq9lRw3kphnhL44+BQaJWQcZpWif7YIq8BijfliotdXvlMrUE5l\\nL5XTndLYkFYZPZnO6MQLn4Fj06N56qnlApolCtzn1xHGs+RC5wUaOXjkzWRC4Ayd\\nI24yWTGWCDTJ2O3kHHokDHvtNAIB3Qmf5y7NwfUZNb8SKvZMfOPVVM+X9ppEwRA/\\nWX5Oq/NEpwJMAm16imGFtoRJXOjF/NoE22dGkyQA2n7wC0e0Y49pYQHQD+RfnEH+\\nPj0AhUPY3LhotZ5uMZD9TSA9EBPYpgc39bNVEfQxHDRAikpVyOgsS5J/yoGkUdqy\\nzRZ244kYXVe3U/Uxl6lOfLXVBnngupPrhz63ouvx0gq2fm9eGm13ZKs9Hw58N4Mf\\nnE4ZvqkfrO6bIB4J8rKG5yEm4dICqe4bxtCnyTyOI0zYnCVmoWIP1HH5ZILzIcPK\\nRjalShhT+QAHAQktIY6mLBzA8iNFG/DGS0P8hBoh2gIfPLqobEuT2P9yrdyLbgw2\\n4zw9jNI2h3RoCyRr1QQO3h7OjOZsF8WMYPXq6SBTfRMjrE/sOQKCAQEAwQ20eraE\\nrVxru74tQq/JVTpNBsjqzzDK8xV+YN7vN6rcbICwv3681hWRRApfARmhdvsdwXyc\\nWDuBbSteQ4QSk/uAlBMHYw1bRT+Kyibj5qJq325qo5NYiD8t0k8CKbp2FpavB55i\\nu0AzKTIZqd1Wtcqj7psrG7iR20bPTPvFKd30+x9u5HIUA3iNeNcap8LKN9E/oEh+\\npG5aekn6I45UIqkbG1Yv9ga0FdWpiYZ/Qh9mW27Jbf+qXdPVzaSur0YheEPMAT0x\\nHT68Y7xjRzimZv2LoaJ3GtYOPBjgFqzP87RC/e8WdbpgcY6S1pyuxsp/++/dvcOU\\nOjbQGrrdzR+2OQKCAQEA9p9VBL9FmoY6p3KadSfTi+f+KwCUrM+ssY8dDq9Q098Q\\n8orh5IrhqFCyFYx8OIyaYajs7tufMAihRvZXw/63x/9ALw5cmnZjhbOyZ3Zvp0qr\\nV7cZxAXFJIFaH+jtCMLjVavn3K0wfrRVRVKNvn48ZF5khUG4JJiQzXruIJ+9nt2p\\nuKa0KZ+GoJ3xEqeddnPa/7rphUbOanQMeWmNPYpfUFVK+RLPM0CYylthont+RY5d\\nJIyDvjbyXMYyULxBRyUuapRtfCpk3NyEUIXHVX7Rf5CFLCwBg3FnlApUjifQwZPi\\nSmA97c+B91ik2taof7PoM8iNwgpcaI/ht0CSfWj9cwKCAQAuUkiEzTiGlE9xS892\\nWdF4NrX2s8zLjAyWSQj622MQu1mKW1KNkC5lO+WQKuDi1bCNaPGZ1Hl7HkQO2sIS\\ndyUyBr2ySeKS3MiSlA2MNcqnMz9rfwXtW9R5VJd9B+If+xKMlvlGXbWY8m2UK+ZG\\ngMpmcknlXav5Sc8Niy8AbMTBJ/W5L7Ce9dRhhNKFNS+7Ixz8SaP3pI1mjOf+wbNY\\nRrVfX64WYBa/9JnPR2YXjoMIbZpUw/9m+lp5ivOZFTOo8K3lOnc/sNwRBVWUpMY5\\nd5lNyvZvARmNAeGGf/1801hORGlynqSH+QFdHfWTsyKopjwRSlutRblSQoaqcz33\\nEu3ZAoIBAQCtRaK5FB22BIrfLNDCcTnbOSLFWcIbbEmb8r3qnFhAk5/XmKY/KSiE\\nVjXYl/yKypaI+OOGqj08xUNylQ9yv9qlpHuW1BNR3s3rmSZGNNsbgYXCuf1bUOaC\\n0HLeqosnNa39eisMS44f51llvCukZBLQPdWIHnVfGOXbyHvX5gOWw4xEFLPN7qvq\\n2y0N+z/RgnKia9M39Vh/SIufHf7C9x4iVdq4BnQXQVJYEj4Vp4g/HFfqnuLM2NQN\\nRJ8DRFDkyIXFEgWeUDbPSguYe3ViZxiP9JzsPPrPO/UW+O8RdX3hE6LQuK+qDrn0\\na45fxqNaHa+N+mFGrHriZ/yhALgrboFrAoIBAQC2OAxw++keMRwIMuocneG520Sw\\na9D/17InVi/cCdyS/TkSC2eSGvymHORmcBepMGHis7nYQg16pPY3lEsMBJVX7XjB\\nGUN4EaJYlIYCK34Pv4lihuImX2FhopIF+1XE4QeroXQwuC0J1ml8FfRuqXpnEvSC\\nIEd5gjpRlhVhPcEmnsqAmPCmKjGZqQZoDozxFhxmzLTPKdv6pZTtoeablAv+A+cl\\njUXU75MKwRYhbYa+eYb5QgbAnFs7csa1XtXmO6v3mBW9Ufj3j913F+MgttPX8VHI\\nsnnMA20AynUrTpVFNPheyHZrSX9vVhyyjUaD7WocedgOQSk6ikEb9zUBRycv\\n-----END RSA PRIVATE KEY-----\"}},\"modifiedAt\":\"2022-08-30T12:58:57.286294+00:00\",\"createdBy\":\"frog@datadoghq.com\",\"metadata\":{\"restricted_roles\":[\"81ddc27c-2863-11ed-b579-da7ad0900002\"]},\"config\":{\"site\":\"datadoghq.com\"},\"id\":\"pl:test-create_a_private_location_returns_ok_response-1661864335-2660976f1b7c4e302fe2ed0f35972587\",\"createdAt\":\"2022-08-30T12:58:57.286294+00:00\",\"description\":\"Test Test-Create_a_private_location_returns_OK_response-1661864335 description\"},\"config\":{\"accessKey\":\"84de632c89cdb10a5781d61e0e5e3e27\",\"privateKey\":\"-----BEGIN RSA PRIVATE KEY-----\\nMIIJKQIBAAKCAgEAuftTDiT8ImQOyZH0x6ltNAAmcvil3arGhCC5a9cRRlRhgPBG\\n0ZW97b4/dxi9U6Ww16/ZSxzbwzzvMl0EyyIhzuGK7riG20NP1foEnCmN7r5yw1FD\\nqfd1vcAqiIV5xaSRsfk76CJOwK4s3DcoH2gPPtWUviaFIwTpZ7hCKQ6iflUtuJ/3\\nAUWBYt04/3G5DzGUGnZr84okZS3usYz27ly9B3WFkwpMM+JwIRlkXaq/Qk28NUyf\\nf+kBAHEMKuiWO/qhYVUDEnEg1495teNTAumX2MpJ9AWX5FOoYZ9PbJ+0Vc6ogMZ4\\nyWQ3d7/dZlwNBELCidmH4QJ1SFO8mGF5apRaTCYsm1rWzpONJTtb4M/5te0v2Uk6\\nvt6chT3Ml3ScFewgO37WE7aU4d4BgnxK9ndUQiYsaUBkCdLhEcF5BiBb4k1zYdAn\\nC/UW129l/llg22eK63tTCYeMFleLrToPJuxAv8U723PVZrBWnVKPuCO974YuegMW\\nXJnNOUAcUG4tp3iOB6rNIP/GAeDg2BhOiZl4haVG+8Vq03+sPJZM9TWrojHMgvHD\\nY+30oEDpNDlmg3OO26S8Fi3iwj5Tduw594mhVcuzUd/KN4/oIBEBCXwN+DJ6QxjC\\nFkzNazsSt0zzSdYusitUlYJyFz1aRta+rj/eTOkoEb7UBmLVY1YiuVh9MJsCAwEA\\nAQKCAgARPITU4EJKhlRv2P+YdjrWjBcEJnLqNCwZeGucM36jMn8mMzPqXlg6YvHr\\nKJdPW8v5HrqNlrtFVm3iuzKOXaJIKVNgztLsxPRuuTED2hQQkYT9q207y4vqzexY\\njRTykiR7RpqHPTq9lRw3kphnhL44+BQaJWQcZpWif7YIq8BijfliotdXvlMrUE5l\\nL5XTndLYkFYZPZnO6MQLn4Fj06N56qnlApolCtzn1xHGs+RC5wUaOXjkzWRC4Ayd\\nI24yWTGWCDTJ2O3kHHokDHvtNAIB3Qmf5y7NwfUZNb8SKvZMfOPVVM+X9ppEwRA/\\nWX5Oq/NEpwJMAm16imGFtoRJXOjF/NoE22dGkyQA2n7wC0e0Y49pYQHQD+RfnEH+\\nPj0AhUPY3LhotZ5uMZD9TSA9EBPYpgc39bNVEfQxHDRAikpVyOgsS5J/yoGkUdqy\\nzRZ244kYXVe3U/Uxl6lOfLXVBnngupPrhz63ouvx0gq2fm9eGm13ZKs9Hw58N4Mf\\nnE4ZvqkfrO6bIB4J8rKG5yEm4dICqe4bxtCnyTyOI0zYnCVmoWIP1HH5ZILzIcPK\\nRjalShhT+QAHAQktIY6mLBzA8iNFG/DGS0P8hBoh2gIfPLqobEuT2P9yrdyLbgw2\\n4zw9jNI2h3RoCyRr1QQO3h7OjOZsF8WMYPXq6SBTfRMjrE/sOQKCAQEAwQ20eraE\\nrVxru74tQq/JVTpNBsjqzzDK8xV+YN7vN6rcbICwv3681hWRRApfARmhdvsdwXyc\\nWDuBbSteQ4QSk/uAlBMHYw1bRT+Kyibj5qJq325qo5NYiD8t0k8CKbp2FpavB55i\\nu0AzKTIZqd1Wtcqj7psrG7iR20bPTPvFKd30+x9u5HIUA3iNeNcap8LKN9E/oEh+\\npG5aekn6I45UIqkbG1Yv9ga0FdWpiYZ/Qh9mW27Jbf+qXdPVzaSur0YheEPMAT0x\\nHT68Y7xjRzimZv2LoaJ3GtYOPBjgFqzP87RC/e8WdbpgcY6S1pyuxsp/++/dvcOU\\nOjbQGrrdzR+2OQKCAQEA9p9VBL9FmoY6p3KadSfTi+f+KwCUrM+ssY8dDq9Q098Q\\n8orh5IrhqFCyFYx8OIyaYajs7tufMAihRvZXw/63x/9ALw5cmnZjhbOyZ3Zvp0qr\\nV7cZxAXFJIFaH+jtCMLjVavn3K0wfrRVRVKNvn48ZF5khUG4JJiQzXruIJ+9nt2p\\nuKa0KZ+GoJ3xEqeddnPa/7rphUbOanQMeWmNPYpfUFVK+RLPM0CYylthont+RY5d\\nJIyDvjbyXMYyULxBRyUuapRtfCpk3NyEUIXHVX7Rf5CFLCwBg3FnlApUjifQwZPi\\nSmA97c+B91ik2taof7PoM8iNwgpcaI/ht0CSfWj9cwKCAQAuUkiEzTiGlE9xS892\\nWdF4NrX2s8zLjAyWSQj622MQu1mKW1KNkC5lO+WQKuDi1bCNaPGZ1Hl7HkQO2sIS\\ndyUyBr2ySeKS3MiSlA2MNcqnMz9rfwXtW9R5VJd9B+If+xKMlvlGXbWY8m2UK+ZG\\ngMpmcknlXav5Sc8Niy8AbMTBJ/W5L7Ce9dRhhNKFNS+7Ixz8SaP3pI1mjOf+wbNY\\nRrVfX64WYBa/9JnPR2YXjoMIbZpUw/9m+lp5ivOZFTOo8K3lOnc/sNwRBVWUpMY5\\nd5lNyvZvARmNAeGGf/1801hORGlynqSH+QFdHfWTsyKopjwRSlutRblSQoaqcz33\\nEu3ZAoIBAQCtRaK5FB22BIrfLNDCcTnbOSLFWcIbbEmb8r3qnFhAk5/XmKY/KSiE\\nVjXYl/yKypaI+OOGqj08xUNylQ9yv9qlpHuW1BNR3s3rmSZGNNsbgYXCuf1bUOaC\\n0HLeqosnNa39eisMS44f51llvCukZBLQPdWIHnVfGOXbyHvX5gOWw4xEFLPN7qvq\\n2y0N+z/RgnKia9M39Vh/SIufHf7C9x4iVdq4BnQXQVJYEj4Vp4g/HFfqnuLM2NQN\\nRJ8DRFDkyIXFEgWeUDbPSguYe3ViZxiP9JzsPPrPO/UW+O8RdX3hE6LQuK+qDrn0\\na45fxqNaHa+N+mFGrHriZ/yhALgrboFrAoIBAQC2OAxw++keMRwIMuocneG520Sw\\na9D/17InVi/cCdyS/TkSC2eSGvymHORmcBepMGHis7nYQg16pPY3lEsMBJVX7XjB\\nGUN4EaJYlIYCK34Pv4lihuImX2FhopIF+1XE4QeroXQwuC0J1ml8FfRuqXpnEvSC\\nIEd5gjpRlhVhPcEmnsqAmPCmKjGZqQZoDozxFhxmzLTPKdv6pZTtoeablAv+A+cl\\njUXU75MKwRYhbYa+eYb5QgbAnFs7csa1XtXmO6v3mBW9Ufj3j913F+MgttPX8VHI\\nsnnMA20AynUrTpVFNPheyHZrSX9vVhyyjUaD7WocedgOQSk6ikEb9zUBRycv\\n-----END RSA PRIVATE KEY-----\",\"site\":\"datadoghq.com\",\"secretAccessKey\":\"c4802dfb71ae674b4311ee8e80715148b020657b3a0afc26ef121f55fec74724\",\"publicKey\":{\"pem\":\"-----BEGIN PUBLIC KEY-----\\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0yCGWhamEUB1Xyp8a0lI\\nXIJX9xEGS4Os467tfjMXF8SJj2+47EqZNNB0SPbesethiTH/3zVvsFhzCtXOfuKG\\nNZIN+6IWVEIsecgiFGYPnCdnOawzKTPHzE+sD/ipbJCkINvbbcgmxYE5Hw1Ju26n\\nneFv25fKTAI/JHETBMQGxFbcJ4QU2IdJrQ6Er7mT6s1BT/HO7X7WAWs34FBGDPtg\\nlM6erRoY5CSCP5/5x++xDzw4gfWOkawMBgS9GfBnfp3FWy9H33GwvPhBelRbxzOC\\n3FMKx5dwngWRFJYekIdwFBEJt088EwyTS9MqYGyt+5AiJVEQ7LV6Hz6HH89sbyQB\\n0QxrFQlQ38qeReA8QV6o4SVNa+JmvyHWHExX9Mnb2w1n86iYYinu1DcA+kuXvsG0\\njGeym0Uz9l/ufZrhLmFDFOMpN1J6/FK8mHGtXz2weupflNNwWWgyD1jKPn9U1ZQP\\ndYXjdBhTHU7H9beoUQ40eYpF4JGBQEu8ARgKYBGSwCsiu0zIykd9zAFndouakFSj\\nqSq1h8kNY1Yp/1NZjPbvMTXt+hNPgBBKJ+aV3Z4tl+DB7HLKrWirAX6RNeFqH6Ys\\n/CZk1xH3wTGuvBKsdEL93o8EoxhZxh0O4o7936aPYtpDucExXcqaao8jdXprs0q0\\nqvDZkEI3/aUB3LclvfXjavMCAwEAAQ==\\n-----END PUBLIC KEY-----\\n\",\"fingerprint\":\"sha256$base64$GA8WCOyWvWP6GJAGhywibAf0NuEeFgqJKZVjrCogbqU=\"},\"id\":\"pl:test-create_a_private_location_returns_ok_response-1661864335-2660976f1b7c4e302fe2ed0f35972587\"},\"result_encryption\":{\"id\":\"sha256$base64$GA8WCOyWvWP6GJAGhywibAf0NuEeFgqJKZVjrCogbqU=\",\"key\":\"-----BEGIN PUBLIC KEY-----\\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0yCGWhamEUB1Xyp8a0lI\\nXIJX9xEGS4Os467tfjMXF8SJj2+47EqZNNB0SPbesethiTH/3zVvsFhzCtXOfuKG\\nNZIN+6IWVEIsecgiFGYPnCdnOawzKTPHzE+sD/ipbJCkINvbbcgmxYE5Hw1Ju26n\\nneFv25fKTAI/JHETBMQGxFbcJ4QU2IdJrQ6Er7mT6s1BT/HO7X7WAWs34FBGDPtg\\nlM6erRoY5CSCP5/5x++xDzw4gfWOkawMBgS9GfBnfp3FWy9H33GwvPhBelRbxzOC\\n3FMKx5dwngWRFJYekIdwFBEJt088EwyTS9MqYGyt+5AiJVEQ7LV6Hz6HH89sbyQB\\n0QxrFQlQ38qeReA8QV6o4SVNa+JmvyHWHExX9Mnb2w1n86iYYinu1DcA+kuXvsG0\\njGeym0Uz9l/ufZrhLmFDFOMpN1J6/FK8mHGtXz2weupflNNwWWgyD1jKPn9U1ZQP\\ndYXjdBhTHU7H9beoUQ40eYpF4JGBQEu8ARgKYBGSwCsiu0zIykd9zAFndouakFSj\\nqSq1h8kNY1Yp/1NZjPbvMTXt+hNPgBBKJ+aV3Z4tl+DB7HLKrWirAX6RNeFqH6Ys\\n/CZk1xH3wTGuvBKsdEL93o8EoxhZxh0O4o7936aPYtpDucExXcqaao8jdXprs0q0\\nqvDZkEI3/aUB3LclvfXjavMCAwEAAQ==\\n-----END PUBLIC KEY-----\\n\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 30 Aug 2022 12:58:55 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/synthetics/private-locations/pl%3Atest-create_a_private_location_returns_ok_response-1661864335-2660976f1b7c4e302fe2ed0f35972587"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Tue, 30 Aug 2022 12:58:55 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/81ddc27c-2863-11ed-b579-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Tue, 30 Aug 2022 12:58:55 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_a_private_location_returns_OK_response-1706264429\"},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"roles\",\"id\":\"88260ec6-bc34-11ee-aae0-da7ad0900002\",\"attributes\":{\"name\":\"Test-Create_a_private_location_returns_OK_response-1706264429\",\"created_at\":\"2024-01-26T10:20:30.357389+00:00\",\"modified_at\":\"2024-01-26T10:20:30.420608+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5ad874-7aff-11ed-a5cd-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"a8b4d6e8-4ea4-11ee-b482-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"50c270de-69ee-11ee-9151-da7ad0900002\"}]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 10:20:29 GMT" + }, + { + "request": { + "body": { + "string": "{\"description\":\"Test Test-Create_a_private_location_returns_OK_response-1706264429 description\",\"metadata\":{\"restricted_roles\":[\"88260ec6-bc34-11ee-aae0-da7ad0900002\"]},\"name\":\"Test-Create_a_private_location_returns_OK_response-1706264429\",\"tags\":[\"test:testcreateaprivatelocationreturnsokresponse1706264429\"]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/private-locations" + }, + "response": { + "body": { + "string": "{\"private_location\":{\"createdAt\":\"2024-01-26T10:20:35.103428+00:00\",\"modifiedAt\":\"2024-01-26T10:20:35.103428+00:00\",\"description\":\"Test Test-Create_a_private_location_returns_OK_response-1706264429 description\",\"tags\":[\"test:testcreateaprivatelocationreturnsokresponse1706264429\"],\"name\":\"Test-Create_a_private_location_returns_OK_response-1706264429\",\"metadata\":{\"restricted_roles\":[\"88260ec6-bc34-11ee-aae0-da7ad0900002\"]},\"id\":\"pl:test-create_a_private_location_returns_ok_response-1706264429-142add9a13d5e67404ac364c8b25d1dc\",\"createdBy\":\"frog@datadoghq.com\",\"secrets\":{\"config_decryption\":{\"key\":\"-----BEGIN RSA PRIVATE KEY-----\\nMIIJKAIBAAKCAgEAzDBoEOFNX0T+HBIjE4ltWD2xjhzEd2rmnVXzkeq+3rzwRd9d\\nBrEjEih/dHlxhNsd6Z0w5N8hqr2LR74ke6OdTEVgQEuL94rK73OpIdIjYyYmXu2b\\nZWNea2gUJQlZlTNOD5Wbts8mHjyw5MLCf23XsWqrKFNbrGomuZuODZWCn7OjQoWy\\n1NFw7osMbr2FjYJrCJc88ZpARlFtpVuRy2BXUdePnpvA1OFlqstRGN8EIrTqIOxq\\noB7shoidI7AjyzJAnXvN26DFsvwj2N5Fizfr2VuFmw2ewOCUQggLA0Nnh/XjO8qi\\nRAfgDxMQtClMO9WiXmHUrvH7PC/dH2aPhNl1n/UgKfRz2bwlRQuP7z7827N/clVz\\nCuiO7/QDyWKjD+qvmPtKN5LswffYM32hjq8aGtgw9AEp70r5Ng6bbUDRidRlgXPC\\ngAqzV667NHunyHzmk6OdFlgbAHwRJkqg5E5RdlLZTFAnoPF1FfQAJFWxeIqotb32\\nMCHLVWh2jcD3ndPxU9kfA3tsyGBDy1VH5DRNnICBeGePUmqu7J1p0S8G1GGW4l0k\\n0AmS6nFOf/LWXIDUGWi2kcaaWi5mzJivIqZ1NNNPNfYaaZp7AFy+mpVlIuni+wc2\\nzo1EN3c7+Wg0jZAT5OaURJRvDxV6hrKt16e74Cxhth6VN9G/S11ZPlKrfiMCAwEA\\nAQKCAgAcOXi5FJugVqYVdUBZ+/4cW3LGpR1XMHSuPOpNOjimC1HfJq/yM9wYL3bm\\nv768UZmB6FOQ33ME6extv0/Fs2kT2OckHA0963Z/wOoZHbX8h5J4PrnjOugbSqi2\\nMeOrJwtcRh7fFyU6usLs7Cr8eE9/W7JLAbLDU20E7QamxArpTmh70oVUu5qzro7K\\nY/IpDGUFK/qlnt/RmIHigJTXmvqW+ogEsZznED0AbdhI6tLkhUNzx5o5hezF7+5g\\nt4FLHigmXK2o9UE+q3G9EYRlaRZ11hvSwgA2wxRbSEdVbSTLe2aspibl5nzHOKhv\\nbuH1x2MJTtaaVCKZQDh9layy/Wgvs9ge51+TiX+ugHA7M8JJVd6VjG0k7ypwoFL8\\nqPlNshml5QDISC/kw7XT8j873MoJC/jawwdH5Oy8cRg+ERQeNWphlXRAYTX2ntUh\\nCpNk3Q8uP4bKVau6Jdjo8QpsjfDYg4j9OQKM2HfgAF7AaIFV5o3aEv/mVHo5FNoB\\nEuxfp8iteLIRCiGYYRH6Cl3SaunlPVKFHjzR27sQ5nXmn56V0+iCRynNAh1PxXq9\\n0ugjiyiWNtKntRzfanLr4l2SYc2MkNFKh1EpQPBEFYAWOhIORv9bYfD4xvlzXTdh\\nsCpx5U2IZ8lSFONnZww9a+n6b7rN0H9dfEKYE9/uA9WbRwBEkQKCAQEA9AQ3znx8\\npTGmEyvmSB1x4Pc+8zdzdwN+Y0HKTSV0vbMl6yIE8k2h4ZY2P9xnh0LX7z3Qt+0v\\nf13W0H+LeaLHY2U8OSss06O7RcoTCGRpD3YS/WAvz0fTRT7v2FNy2iyFIJB23JEV\\nF2V+Fc8JQUHpU3VaAqStBMa2kLatl3XzCjQUBW92Xwn9IVNno28TGTADbOTbbVm6\\n05RpCHzlpqE33C2EdR2mOoWH7ECfQifA5bu6hkdbOlikPZ0pOxhPEgTOFS/B/p5H\\ntgVVFqIcdXOKQkMdhh5i4+60+yn0yFNP4jcEGtyym8prneBHCM+IHkPEAj9PMYHJ\\nluLobuBBl/Ss+wKCAQEA1jd6Owi3oUYxvr/jNdlADQfkZiQnjn/ysDihAp1SgouV\\nGNd7QSD6SY9JribewUNNBstUAhuTOYuthn1X5HQ2ZuyS48iV5Mntt6adYAjdI8t1\\nzl1nC1L4RLkYomrmk+V1jTyTfp2WQCtUmqjKKqBhPbUM3VCgdsgohPnWW7Xfr064\\nbTPlgAKHWTXDOrXIEgkbEA7TC0eXLdcZFhNZpOeQErntsskSsfbsCOzkAaVMPuG8\\nL02ZEOOQfPGWVHoQ1c31BG+O2jBadumPMNsGGoKOXe9RwRBuYDiXSvaNhluocxJT\\nESEfO6kCsBpOWp5LMX3UzTaNJKGX0G/C4M5Mbm1a+QKCAQEAmuBCe3BPvJmyiuCG\\nHKdzrBHBhqVfR96TzXPobuajHfQi0QaalR/o60Fn1UiS/SrT2ykk3FhSmUh6G4OY\\nhu9mFhQfETnyDbISHs2PHvh8JjAPBXqTXcB8u6qimG7+qrMvG+gVSRFcjakBSd5K\\nRX0MFsiZBKx4lFt7bIZFz6gxRfyf6INCYjf4zboeQYEyYf4zbl4jV1hoV/oOYDDF\\noekZh0nslFjpNKOkDbNGYbrRl/56+Nc5c+Lm+6RQkw1uwkUCeDgDrRPQ+BqSUvc5\\nkOJwknX+uy12Hq1XeUK79pnKTg4VMOd7BZ6Ih3/eFh2Ci5L/SV3dadKynG4QkK8N\\ncuD9GQKCAQBwGRHuiI5HZ8sqTZHhoPFCoGmmBa9pg40FKG0hSCBgThjUqhZGq7Iu\\nAjyFVLPmoIhTUN2CSNnPGEfTBA6Vbzb0v0HSzymZUw4Bt7/M/HZ0f8kDF5+Prnha\\nxh2dCKHmrQHJyfRJIr/4jnQ0hrVcfxbDytWTjtiZr/58L5072r3WKDSceLbVOP2I\\n8nhaZbvvrDIsQgWwdmMnStNG2RNlFwQuuHspvsz4sgUsWoKqVczDby8h9dJuoxb+\\nOxH23PWoXKGmE5bGmN0OMwSKhWL5Rm6nu0+l3ypTUeniAYln0NkidmlfolyMxNGy\\nQ+HSy9j/aiCMzsonbCRcn890AqC+fJ1JAoIBAFklhivnh6N09aCFspe12fjVONib\\nSKS7ZSur1i1HRj2CX65BYOKc7doX6AZ4kPmxttMXXTFvQQewbIVOZ4uK19pz2Nh+\\naorWQ2nnLmrevZ8obVfbe5sw+6yjsH+XQS0kFsejZW56iDBoc7hDOWTe2Mjmn9+E\\nDChrY6CA3f0wTvOaT5WX/33g3ZLWsGKLJjJRoWLfTVYJ6rkFBYFDyVdk8PxBJK8g\\nX2jSDIogUwS23pRoeanycxMJ4AAtuY3wHj9rRkvwJSf1petdA1YoCXRou3GWL1Fv\\nYzArN8mDRlWGDFbdzUO+5dmoRI32f3oOmZolNQEkJJd4M5EMkAHLuwiKzWw=\\n-----END RSA PRIVATE KEY-----\",\"id\":\"2b9d4d02c47cd3be78f6eb3170cc1eb8\"},\"authentication\":{\"key\":\"88b31857c9c5fa03c7a01d9c99e6d0adedd60a1f8049f69743ab78843537bc9b\",\"id\":\"e8f9aa489993922fba0f7c72569125c4\"}},\"config\":{\"site\":\"datadoghq.com\"}},\"result_encryption\":{\"id\":\"sha256$base64$GA8WCOyWvWP6GJAGhywibAf0NuEeFgqJKZVjrCogbqU=\",\"key\":\"-----BEGIN PUBLIC KEY-----\\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0yCGWhamEUB1Xyp8a0lI\\nXIJX9xEGS4Os467tfjMXF8SJj2+47EqZNNB0SPbesethiTH/3zVvsFhzCtXOfuKG\\nNZIN+6IWVEIsecgiFGYPnCdnOawzKTPHzE+sD/ipbJCkINvbbcgmxYE5Hw1Ju26n\\nneFv25fKTAI/JHETBMQGxFbcJ4QU2IdJrQ6Er7mT6s1BT/HO7X7WAWs34FBGDPtg\\nlM6erRoY5CSCP5/5x++xDzw4gfWOkawMBgS9GfBnfp3FWy9H33GwvPhBelRbxzOC\\n3FMKx5dwngWRFJYekIdwFBEJt088EwyTS9MqYGyt+5AiJVEQ7LV6Hz6HH89sbyQB\\n0QxrFQlQ38qeReA8QV6o4SVNa+JmvyHWHExX9Mnb2w1n86iYYinu1DcA+kuXvsG0\\njGeym0Uz9l/ufZrhLmFDFOMpN1J6/FK8mHGtXz2weupflNNwWWgyD1jKPn9U1ZQP\\ndYXjdBhTHU7H9beoUQ40eYpF4JGBQEu8ARgKYBGSwCsiu0zIykd9zAFndouakFSj\\nqSq1h8kNY1Yp/1NZjPbvMTXt+hNPgBBKJ+aV3Z4tl+DB7HLKrWirAX6RNeFqH6Ys\\n/CZk1xH3wTGuvBKsdEL93o8EoxhZxh0O4o7936aPYtpDucExXcqaao8jdXprs0q0\\nqvDZkEI3/aUB3LclvfXjavMCAwEAAQ==\\n-----END PUBLIC KEY-----\\n\"},\"config\":{\"id\":\"pl:test-create_a_private_location_returns_ok_response-1706264429-142add9a13d5e67404ac364c8b25d1dc\",\"site\":\"datadoghq.com\",\"accessKey\":\"e8f9aa489993922fba0f7c72569125c4\",\"secretAccessKey\":\"88b31857c9c5fa03c7a01d9c99e6d0adedd60a1f8049f69743ab78843537bc9b\",\"privateKey\":\"-----BEGIN RSA PRIVATE KEY-----\\nMIIJKAIBAAKCAgEAzDBoEOFNX0T+HBIjE4ltWD2xjhzEd2rmnVXzkeq+3rzwRd9d\\nBrEjEih/dHlxhNsd6Z0w5N8hqr2LR74ke6OdTEVgQEuL94rK73OpIdIjYyYmXu2b\\nZWNea2gUJQlZlTNOD5Wbts8mHjyw5MLCf23XsWqrKFNbrGomuZuODZWCn7OjQoWy\\n1NFw7osMbr2FjYJrCJc88ZpARlFtpVuRy2BXUdePnpvA1OFlqstRGN8EIrTqIOxq\\noB7shoidI7AjyzJAnXvN26DFsvwj2N5Fizfr2VuFmw2ewOCUQggLA0Nnh/XjO8qi\\nRAfgDxMQtClMO9WiXmHUrvH7PC/dH2aPhNl1n/UgKfRz2bwlRQuP7z7827N/clVz\\nCuiO7/QDyWKjD+qvmPtKN5LswffYM32hjq8aGtgw9AEp70r5Ng6bbUDRidRlgXPC\\ngAqzV667NHunyHzmk6OdFlgbAHwRJkqg5E5RdlLZTFAnoPF1FfQAJFWxeIqotb32\\nMCHLVWh2jcD3ndPxU9kfA3tsyGBDy1VH5DRNnICBeGePUmqu7J1p0S8G1GGW4l0k\\n0AmS6nFOf/LWXIDUGWi2kcaaWi5mzJivIqZ1NNNPNfYaaZp7AFy+mpVlIuni+wc2\\nzo1EN3c7+Wg0jZAT5OaURJRvDxV6hrKt16e74Cxhth6VN9G/S11ZPlKrfiMCAwEA\\nAQKCAgAcOXi5FJugVqYVdUBZ+/4cW3LGpR1XMHSuPOpNOjimC1HfJq/yM9wYL3bm\\nv768UZmB6FOQ33ME6extv0/Fs2kT2OckHA0963Z/wOoZHbX8h5J4PrnjOugbSqi2\\nMeOrJwtcRh7fFyU6usLs7Cr8eE9/W7JLAbLDU20E7QamxArpTmh70oVUu5qzro7K\\nY/IpDGUFK/qlnt/RmIHigJTXmvqW+ogEsZznED0AbdhI6tLkhUNzx5o5hezF7+5g\\nt4FLHigmXK2o9UE+q3G9EYRlaRZ11hvSwgA2wxRbSEdVbSTLe2aspibl5nzHOKhv\\nbuH1x2MJTtaaVCKZQDh9layy/Wgvs9ge51+TiX+ugHA7M8JJVd6VjG0k7ypwoFL8\\nqPlNshml5QDISC/kw7XT8j873MoJC/jawwdH5Oy8cRg+ERQeNWphlXRAYTX2ntUh\\nCpNk3Q8uP4bKVau6Jdjo8QpsjfDYg4j9OQKM2HfgAF7AaIFV5o3aEv/mVHo5FNoB\\nEuxfp8iteLIRCiGYYRH6Cl3SaunlPVKFHjzR27sQ5nXmn56V0+iCRynNAh1PxXq9\\n0ugjiyiWNtKntRzfanLr4l2SYc2MkNFKh1EpQPBEFYAWOhIORv9bYfD4xvlzXTdh\\nsCpx5U2IZ8lSFONnZww9a+n6b7rN0H9dfEKYE9/uA9WbRwBEkQKCAQEA9AQ3znx8\\npTGmEyvmSB1x4Pc+8zdzdwN+Y0HKTSV0vbMl6yIE8k2h4ZY2P9xnh0LX7z3Qt+0v\\nf13W0H+LeaLHY2U8OSss06O7RcoTCGRpD3YS/WAvz0fTRT7v2FNy2iyFIJB23JEV\\nF2V+Fc8JQUHpU3VaAqStBMa2kLatl3XzCjQUBW92Xwn9IVNno28TGTADbOTbbVm6\\n05RpCHzlpqE33C2EdR2mOoWH7ECfQifA5bu6hkdbOlikPZ0pOxhPEgTOFS/B/p5H\\ntgVVFqIcdXOKQkMdhh5i4+60+yn0yFNP4jcEGtyym8prneBHCM+IHkPEAj9PMYHJ\\nluLobuBBl/Ss+wKCAQEA1jd6Owi3oUYxvr/jNdlADQfkZiQnjn/ysDihAp1SgouV\\nGNd7QSD6SY9JribewUNNBstUAhuTOYuthn1X5HQ2ZuyS48iV5Mntt6adYAjdI8t1\\nzl1nC1L4RLkYomrmk+V1jTyTfp2WQCtUmqjKKqBhPbUM3VCgdsgohPnWW7Xfr064\\nbTPlgAKHWTXDOrXIEgkbEA7TC0eXLdcZFhNZpOeQErntsskSsfbsCOzkAaVMPuG8\\nL02ZEOOQfPGWVHoQ1c31BG+O2jBadumPMNsGGoKOXe9RwRBuYDiXSvaNhluocxJT\\nESEfO6kCsBpOWp5LMX3UzTaNJKGX0G/C4M5Mbm1a+QKCAQEAmuBCe3BPvJmyiuCG\\nHKdzrBHBhqVfR96TzXPobuajHfQi0QaalR/o60Fn1UiS/SrT2ykk3FhSmUh6G4OY\\nhu9mFhQfETnyDbISHs2PHvh8JjAPBXqTXcB8u6qimG7+qrMvG+gVSRFcjakBSd5K\\nRX0MFsiZBKx4lFt7bIZFz6gxRfyf6INCYjf4zboeQYEyYf4zbl4jV1hoV/oOYDDF\\noekZh0nslFjpNKOkDbNGYbrRl/56+Nc5c+Lm+6RQkw1uwkUCeDgDrRPQ+BqSUvc5\\nkOJwknX+uy12Hq1XeUK79pnKTg4VMOd7BZ6Ih3/eFh2Ci5L/SV3dadKynG4QkK8N\\ncuD9GQKCAQBwGRHuiI5HZ8sqTZHhoPFCoGmmBa9pg40FKG0hSCBgThjUqhZGq7Iu\\nAjyFVLPmoIhTUN2CSNnPGEfTBA6Vbzb0v0HSzymZUw4Bt7/M/HZ0f8kDF5+Prnha\\nxh2dCKHmrQHJyfRJIr/4jnQ0hrVcfxbDytWTjtiZr/58L5072r3WKDSceLbVOP2I\\n8nhaZbvvrDIsQgWwdmMnStNG2RNlFwQuuHspvsz4sgUsWoKqVczDby8h9dJuoxb+\\nOxH23PWoXKGmE5bGmN0OMwSKhWL5Rm6nu0+l3ypTUeniAYln0NkidmlfolyMxNGy\\nQ+HSy9j/aiCMzsonbCRcn890AqC+fJ1JAoIBAFklhivnh6N09aCFspe12fjVONib\\nSKS7ZSur1i1HRj2CX65BYOKc7doX6AZ4kPmxttMXXTFvQQewbIVOZ4uK19pz2Nh+\\naorWQ2nnLmrevZ8obVfbe5sw+6yjsH+XQS0kFsejZW56iDBoc7hDOWTe2Mjmn9+E\\nDChrY6CA3f0wTvOaT5WX/33g3ZLWsGKLJjJRoWLfTVYJ6rkFBYFDyVdk8PxBJK8g\\nX2jSDIogUwS23pRoeanycxMJ4AAtuY3wHj9rRkvwJSf1petdA1YoCXRou3GWL1Fv\\nYzArN8mDRlWGDFbdzUO+5dmoRI32f3oOmZolNQEkJJd4M5EMkAHLuwiKzWw=\\n-----END RSA PRIVATE KEY-----\",\"publicKey\":{\"pem\":\"-----BEGIN PUBLIC KEY-----\\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0yCGWhamEUB1Xyp8a0lI\\nXIJX9xEGS4Os467tfjMXF8SJj2+47EqZNNB0SPbesethiTH/3zVvsFhzCtXOfuKG\\nNZIN+6IWVEIsecgiFGYPnCdnOawzKTPHzE+sD/ipbJCkINvbbcgmxYE5Hw1Ju26n\\nneFv25fKTAI/JHETBMQGxFbcJ4QU2IdJrQ6Er7mT6s1BT/HO7X7WAWs34FBGDPtg\\nlM6erRoY5CSCP5/5x++xDzw4gfWOkawMBgS9GfBnfp3FWy9H33GwvPhBelRbxzOC\\n3FMKx5dwngWRFJYekIdwFBEJt088EwyTS9MqYGyt+5AiJVEQ7LV6Hz6HH89sbyQB\\n0QxrFQlQ38qeReA8QV6o4SVNa+JmvyHWHExX9Mnb2w1n86iYYinu1DcA+kuXvsG0\\njGeym0Uz9l/ufZrhLmFDFOMpN1J6/FK8mHGtXz2weupflNNwWWgyD1jKPn9U1ZQP\\ndYXjdBhTHU7H9beoUQ40eYpF4JGBQEu8ARgKYBGSwCsiu0zIykd9zAFndouakFSj\\nqSq1h8kNY1Yp/1NZjPbvMTXt+hNPgBBKJ+aV3Z4tl+DB7HLKrWirAX6RNeFqH6Ys\\n/CZk1xH3wTGuvBKsdEL93o8EoxhZxh0O4o7936aPYtpDucExXcqaao8jdXprs0q0\\nqvDZkEI3/aUB3LclvfXjavMCAwEAAQ==\\n-----END PUBLIC KEY-----\\n\",\"fingerprint\":\"sha256$base64$GA8WCOyWvWP6GJAGhywibAf0NuEeFgqJKZVjrCogbqU=\"}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 10:20:29 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/synthetics/private-locations/pl%3Atest-create_a_private_location_returns_ok_response-1706264429-142add9a13d5e67404ac364c8b25d1dc" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Fri, 26 Jan 2024 10:20:29 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/88260ec6-bc34-11ee-aae0-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Fri, 26 Jan 2024 10:20:29 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-GRPC-test-returns-OK-Returns-the-created-test-details-response.frozen b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-GRPC-test-returns-OK-Returns-the-created-test-details-response.frozen index 2fc786ee7..3f4321f87 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-GRPC-test-returns-OK-Returns-the-created-test-details-response.frozen +++ b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-GRPC-test-returns-OK-Returns-the-created-test-details-response.frozen @@ -1 +1 @@ -2023-04-25T13:05:10.528Z \ No newline at end of file +2024-01-26T10:20:39.410Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-GRPC-test-returns-OK-Returns-the-created-test-details-response.json b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-GRPC-test-returns-OK-Returns-the-created-test-details-response.json index 2590105df..9019964f5 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-GRPC-test-returns-OK-Returns-the-created-test-details-response.json +++ b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-GRPC-test-returns-OK-Returns-the-created-test-details-response.json @@ -1 +1,73 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"config\":{\"assertions\":[{\"operator\":\"is\",\"target\":1,\"type\":\"grpcHealthcheckStatus\"},{\"operator\":\"is\",\"target\":\"proto target\",\"type\":\"grpcProto\"},{\"operator\":\"is\",\"property\":\"property\",\"target\":\"123\",\"type\":\"grpcMetadata\"}],\"request\":{\"host\":\"localhost\",\"message\":\"\",\"metadata\":{},\"method\":\"GET\",\"port\":50051,\"service\":\"Hello\"}},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_grpc_test_payload.json\",\"name\":\"Test-Create_an_API_GRPC_test_returns_OK_Returns_the_created_test_details_response-1682427910\",\"options\":{\"min_failure_duration\":0,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_an_API_GRPC_test_returns_OK_Returns_the_created_test_details_response-1682427910\",\"monitor_options\":{\"renotify_interval\":0},\"tick_every\":60},\"subtype\":\"grpc\",\"tags\":[\"testing:api\"],\"type\":\"api\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api"}, "response": {"body": {"string": "{\"public_id\":\"ihe-qm5-bjz\",\"name\":\"Test-Create_an_API_GRPC_test_returns_OK_Returns_the_created_test_details_response-1682427910\",\"status\":\"live\",\"type\":\"api\",\"tags\":[\"testing:api\"],\"created_at\":\"2023-04-25T13:05:11.041226+00:00\",\"modified_at\":\"2023-04-25T13:05:11.041226+00:00\",\"config\":{\"assertions\":[{\"operator\":\"is\",\"target\":1,\"type\":\"grpcHealthcheckStatus\"},{\"operator\":\"is\",\"target\":\"proto target\",\"type\":\"grpcProto\"},{\"operator\":\"is\",\"property\":\"property\",\"target\":\"123\",\"type\":\"grpcMetadata\"}],\"request\":{\"host\":\"localhost\",\"message\":\"\",\"metadata\":{},\"method\":\"GET\",\"port\":50051,\"service\":\"Hello\"}},\"message\":\"BDD test payload: synthetics_api_grpc_test_payload.json\",\"options\":{\"min_failure_duration\":0,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_an_API_GRPC_test_returns_OK_Returns_the_created_test_details_response-1682427910\",\"monitor_options\":{\"renotify_interval\":0,\"on_missing_data\":\"show_no_data\",\"notify_audit\":false,\"new_host_delay\":300,\"include_tags\":true},\"tick_every\":60},\"locations\":[\"aws:us-east-2\"],\"subtype\":\"grpc\",\"deleted_at\":null,\"monitor_id\":117244159,\"org_id\":569509}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 25 Apr 2023 13:05:10 GMT"}, {"request": {"body": {"string": "{\"public_ids\":[\"ihe-qm5-bjz\"]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete"}, "response": {"body": {"string": "{\"deleted_tests\":[{\"public_id\":\"ihe-qm5-bjz\",\"deleted_at\":\"2023-04-25T13:05:11.578194+00:00\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 25 Apr 2023 13:05:10 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"config\":{\"assertions\":[{\"operator\":\"is\",\"target\":1,\"type\":\"grpcHealthcheckStatus\"},{\"operator\":\"is\",\"target\":\"proto target\",\"type\":\"grpcProto\"},{\"operator\":\"is\",\"property\":\"property\",\"target\":\"123\",\"type\":\"grpcMetadata\"}],\"request\":{\"host\":\"localhost\",\"message\":\"\",\"metadata\":{},\"method\":\"GET\",\"port\":50051,\"service\":\"Hello\"}},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_grpc_test_payload.json\",\"name\":\"Test-Create_an_API_GRPC_test_returns_OK_Returns_the_created_test_details_response-1706264439\",\"options\":{\"min_failure_duration\":0,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_an_API_GRPC_test_returns_OK_Returns_the_created_test_details_response-1706264439\",\"monitor_options\":{\"renotify_interval\":0},\"tick_every\":60},\"subtype\":\"grpc\",\"tags\":[\"testing:api\"],\"type\":\"api\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api" + }, + "response": { + "body": { + "string": "{\"public_id\":\"d9f-drx-gbw\",\"name\":\"Test-Create_an_API_GRPC_test_returns_OK_Returns_the_created_test_details_response-1706264439\",\"status\":\"live\",\"type\":\"api\",\"tags\":[\"testing:api\"],\"created_at\":\"2024-01-26T10:20:40.001199+00:00\",\"modified_at\":\"2024-01-26T10:20:40.001199+00:00\",\"config\":{\"assertions\":[{\"operator\":\"is\",\"target\":1,\"type\":\"grpcHealthcheckStatus\"},{\"operator\":\"is\",\"target\":\"proto target\",\"type\":\"grpcProto\"},{\"operator\":\"is\",\"property\":\"property\",\"target\":\"123\",\"type\":\"grpcMetadata\"}],\"request\":{\"host\":\"localhost\",\"message\":\"\",\"metadata\":{},\"method\":\"GET\",\"port\":50051,\"service\":\"Hello\"}},\"message\":\"BDD test payload: synthetics_api_grpc_test_payload.json\",\"options\":{\"min_failure_duration\":0,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_an_API_GRPC_test_returns_OK_Returns_the_created_test_details_response-1706264439\",\"monitor_options\":{\"renotify_interval\":0,\"on_missing_data\":\"show_no_data\",\"notify_audit\":false,\"new_host_delay\":300,\"include_tags\":true},\"tick_every\":60},\"locations\":[\"aws:us-east-2\"],\"subtype\":\"grpc\",\"created_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":138446066,\"org_id\":569509,\"modified_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 10:20:39 GMT" + }, + { + "request": { + "body": { + "string": "{\"public_ids\":[\"d9f-drx-gbw\"]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete" + }, + "response": { + "body": { + "string": "{\"deleted_tests\":[{\"public_id\":\"d9f-drx-gbw\",\"deleted_at\":\"2024-01-26T10:20:40.516126+00:00\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 10:20:39 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-HTTP-test-returns-OK-Returns-the-created-test-details-response.frozen b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-HTTP-test-returns-OK-Returns-the-created-test-details-response.frozen index cbdcd3a7a..a19f247a8 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-HTTP-test-returns-OK-Returns-the-created-test-details-response.frozen +++ b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-HTTP-test-returns-OK-Returns-the-created-test-details-response.frozen @@ -1 +1 @@ -2023-09-11T14:49:13.966Z \ No newline at end of file +2024-01-26T10:20:40.621Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-HTTP-test-returns-OK-Returns-the-created-test-details-response.json b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-HTTP-test-returns-OK-Returns-the-created-test-details-response.json index 4d4d96c07..fa9d3407e 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-HTTP-test-returns-OK-Returns-the-created-test-details-response.json +++ b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-HTTP-test-returns-OK-Returns-the-created-test-details-response.json @@ -1 +1,73 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"timingsScope\":\"withoutDNS\",\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"},{\"operator\":\"validatesXPath\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"basicAuth\":{\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"clientSecret\":\"client-secret\",\"resource\":\"resource\",\"scope\":\"yoyo\",\"tokenApiAuthentication\":\"header\",\"type\":\"oauth-client\"},\"certificate\":{\"cert\":{\"content\":\"cert-content\",\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"content\":\"key-content\",\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testcreateanapihttptestreturnsokreturnsthecreatedtestdetailsresponse1694443753\"},\"method\":\"GET\",\"persistCookies\":true,\"proxy\":{\"headers\":{},\"url\":\"https://datadoghq.com\"},\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"name\":\"Test-Create_an_API_HTTP_test_returns_OK_Returns_the_created_test_details_response-1694443753\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"httpVersion\":\"http2\",\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_an_API_HTTP_test_returns_OK_Returns_the_created_test_details_response-1694443753\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"subtype\":\"http\",\"tags\":[\"testing:api\"],\"type\":\"api\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api"}, "response": {"body": {"string": "{\"public_id\":\"459-yrn-6c6\",\"name\":\"Test-Create_an_API_HTTP_test_returns_OK_Returns_the_created_test_details_response-1694443753\",\"status\":\"live\",\"type\":\"api\",\"tags\":[\"testing:api\"],\"created_at\":\"2023-09-11T14:49:14.209609+00:00\",\"modified_at\":\"2023-09-11T14:49:14.209609+00:00\",\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"timingsScope\":\"withoutDNS\",\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"},{\"operator\":\"validatesXPath\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"basicAuth\":{\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"clientSecret\":\"client-secret\",\"resource\":\"resource\",\"scope\":\"yoyo\",\"tokenApiAuthentication\":\"header\",\"type\":\"oauth-client\"},\"certificate\":{\"cert\":{\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testcreateanapihttptestreturnsokreturnsthecreatedtestdetailsresponse1694443753\"},\"method\":\"GET\",\"persistCookies\":true,\"proxy\":{\"headers\":{},\"url\":\"https://datadoghq.com\"},\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"httpVersion\":\"http2\",\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_an_API_HTTP_test_returns_OK_Returns_the_created_test_details_response-1694443753\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"locations\":[\"aws:us-east-2\"],\"subtype\":\"http\",\"created_by\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":131183718,\"org_id\":321813,\"modified_by\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 11 Sep 2023 14:49:13 GMT"}, {"request": {"body": {"string": "{\"public_ids\":[\"459-yrn-6c6\"]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete"}, "response": {"body": {"string": "{\"deleted_tests\":[{\"public_id\":\"459-yrn-6c6\",\"deleted_at\":\"2023-09-11T14:49:16.625763+00:00\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 11 Sep 2023 14:49:13 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"timingsScope\":\"withoutDNS\",\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"},{\"operator\":\"validatesXPath\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"basicAuth\":{\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"clientSecret\":\"client-secret\",\"resource\":\"resource\",\"scope\":\"yoyo\",\"tokenApiAuthentication\":\"header\",\"type\":\"oauth-client\"},\"certificate\":{\"cert\":{\"content\":\"cert-content\",\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"content\":\"key-content\",\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testcreateanapihttptestreturnsokreturnsthecreatedtestdetailsresponse1706264440\"},\"method\":\"GET\",\"persistCookies\":true,\"proxy\":{\"headers\":{},\"url\":\"https://datadoghq.com\"},\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"name\":\"Test-Create_an_API_HTTP_test_returns_OK_Returns_the_created_test_details_response-1706264440\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"httpVersion\":\"http2\",\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_an_API_HTTP_test_returns_OK_Returns_the_created_test_details_response-1706264440\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"subtype\":\"http\",\"tags\":[\"testing:api\"],\"type\":\"api\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api" + }, + "response": { + "body": { + "string": "{\"public_id\":\"vkt-349-4ey\",\"name\":\"Test-Create_an_API_HTTP_test_returns_OK_Returns_the_created_test_details_response-1706264440\",\"status\":\"live\",\"type\":\"api\",\"tags\":[\"testing:api\"],\"created_at\":\"2024-01-26T10:20:41.088993+00:00\",\"modified_at\":\"2024-01-26T10:20:41.088993+00:00\",\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"timingsScope\":\"withoutDNS\",\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"},{\"operator\":\"validatesXPath\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"basicAuth\":{\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"clientSecret\":\"client-secret\",\"resource\":\"resource\",\"scope\":\"yoyo\",\"tokenApiAuthentication\":\"header\",\"type\":\"oauth-client\"},\"certificate\":{\"cert\":{\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testcreateanapihttptestreturnsokreturnsthecreatedtestdetailsresponse1706264440\"},\"method\":\"GET\",\"persistCookies\":true,\"proxy\":{\"headers\":{},\"url\":\"https://datadoghq.com\"},\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"httpVersion\":\"http2\",\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_an_API_HTTP_test_returns_OK_Returns_the_created_test_details_response-1706264440\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"locations\":[\"aws:us-east-2\"],\"subtype\":\"http\",\"created_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":138446067,\"org_id\":569509,\"modified_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 10:20:40 GMT" + }, + { + "request": { + "body": { + "string": "{\"public_ids\":[\"vkt-349-4ey\"]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete" + }, + "response": { + "body": { + "string": "{\"deleted_tests\":[{\"public_id\":\"vkt-349-4ey\",\"deleted_at\":\"2024-01-26T10:20:41.763678+00:00\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 10:20:40 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-HTTP-with-oauth-rop-test-returns-OK-Returns-the-created-test-details-response.frozen b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-HTTP-with-oauth-rop-test-returns-OK-Returns-the-created-test-details-response.frozen index a1c9097d6..4c15857f5 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-HTTP-with-oauth-rop-test-returns-OK-Returns-the-created-test-details-response.frozen +++ b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-HTTP-with-oauth-rop-test-returns-OK-Returns-the-created-test-details-response.frozen @@ -1 +1 @@ -2022-12-07T10:36:18.554Z \ No newline at end of file +2024-01-26T10:20:41.904Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-HTTP-with-oauth-rop-test-returns-OK-Returns-the-created-test-details-response.json b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-HTTP-with-oauth-rop-test-returns-OK-Returns-the-created-test-details-response.json index dfbbfece6..79f2d0df9 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-HTTP-with-oauth-rop-test-returns-OK-Returns-the-created-test-details-response.json +++ b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-HTTP-with-oauth-rop-test-returns-OK-Returns-the-created-test-details-response.json @@ -1 +1,73 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"},{\"operator\":\"validatesXPath\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"basicAuth\":{\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"clientSecret\":\"client-secret\",\"password\":\"oauth-password\",\"resource\":\"resource\",\"scope\":\"yoyo\",\"tokenApiAuthentication\":\"body\",\"type\":\"oauth-rop\",\"username\":\"oauth-usermame\"},\"certificate\":{\"cert\":{\"content\":\"cert-content\",\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"content\":\"key-content\",\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testcreateanapihttpwithoauthroptestreturnsokreturnsthecreatedtestdetailsresponse1670409378\"},\"method\":\"GET\",\"proxy\":{\"headers\":{},\"url\":\"https://datadoghq.com\"},\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"name\":\"Test-Create_an_API_HTTP_with_oauth_rop_test_returns_OK_Returns_the_created_test_details_response-1670409378\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_an_API_HTTP_with_oauth_rop_test_returns_OK_Returns_the_created_test_details_response-1670409378\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"subtype\":\"http\",\"tags\":[\"testing:api\"],\"type\":\"api\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api"}, "response": {"body": {"string": "{\"status\":\"live\",\"public_id\":\"u7x-e98-98f\",\"tags\":[\"testing:api\"],\"org_id\":569509,\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"deleted_at\":null,\"name\":\"Test-Create_an_API_HTTP_with_oauth_rop_test_returns_OK_Returns_the_created_test_details_response-1670409378\",\"monitor_id\":105046994,\"type\":\"api\",\"created_at\":\"2022-12-07T10:36:19.000736+00:00\",\"modified_at\":\"2022-12-07T10:36:19.000736+00:00\",\"subtype\":\"http\",\"config\":{\"request\":{\"certificate\":{\"cert\":{\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"url\":\"https://datadoghq.com\",\"basicAuth\":{\"username\":\"oauth-usermame\",\"clientSecret\":\"client-secret\",\"resource\":\"resource\",\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"scope\":\"yoyo\",\"password\":\"oauth-password\",\"type\":\"oauth-rop\",\"tokenApiAuthentication\":\"body\"},\"headers\":{\"unique\":\"testcreateanapihttpwithoauthroptestreturnsokreturnsthecreatedtestdetailsresponse1670409378\"},\"proxy\":{\"url\":\"https://datadoghq.com\",\"headers\":{}},\"timeout\":10,\"method\":\"GET\"},\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"type\":\"header\",\"target\":\"text/html\"},{\"operator\":\"lessThan\",\"type\":\"responseTime\",\"target\":2000},{\"operator\":\"validatesJSONPath\",\"type\":\"body\",\"target\":{\"operator\":\"isNot\",\"targetValue\":\"0\",\"jsonPath\":\"topKey\"}},{\"operator\":\"validatesXPath\",\"type\":\"body\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"}}],\"configVariables\":[{\"pattern\":\"content-type\",\"type\":\"text\",\"example\":\"content-type\",\"name\":\"PROPERTY\"}]},\"options\":{\"accept_self_signed\":false,\"retry\":{\"count\":3,\"interval\":10},\"min_location_failed\":1,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"monitor_priority\":5,\"monitor_name\":\"Test-Create_an_API_HTTP_with_oauth_rop_test_returns_OK_Returns_the_created_test_details_response-1670409378\",\"tick_every\":60}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 07 Dec 2022 10:36:18 GMT"}, {"request": {"body": {"string": "{\"public_ids\":[\"u7x-e98-98f\"]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete"}, "response": {"body": {"string": "{\"deleted_tests\":[{\"deleted_at\":\"2022-12-07T10:36:19.441845+00:00\",\"public_id\":\"u7x-e98-98f\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 07 Dec 2022 10:36:18 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"},{\"operator\":\"validatesXPath\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"basicAuth\":{\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"clientSecret\":\"client-secret\",\"password\":\"oauth-password\",\"resource\":\"resource\",\"scope\":\"yoyo\",\"tokenApiAuthentication\":\"body\",\"type\":\"oauth-rop\",\"username\":\"oauth-usermame\"},\"certificate\":{\"cert\":{\"content\":\"cert-content\",\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"content\":\"key-content\",\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testcreateanapihttpwithoauthroptestreturnsokreturnsthecreatedtestdetailsresponse1706264441\"},\"method\":\"GET\",\"proxy\":{\"headers\":{},\"url\":\"https://datadoghq.com\"},\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"name\":\"Test-Create_an_API_HTTP_with_oauth_rop_test_returns_OK_Returns_the_created_test_details_response-1706264441\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_an_API_HTTP_with_oauth_rop_test_returns_OK_Returns_the_created_test_details_response-1706264441\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"subtype\":\"http\",\"tags\":[\"testing:api\"],\"type\":\"api\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api" + }, + "response": { + "body": { + "string": "{\"public_id\":\"rud-evi-5bc\",\"name\":\"Test-Create_an_API_HTTP_with_oauth_rop_test_returns_OK_Returns_the_created_test_details_response-1706264441\",\"status\":\"live\",\"type\":\"api\",\"tags\":[\"testing:api\"],\"created_at\":\"2024-01-26T10:20:42.403815+00:00\",\"modified_at\":\"2024-01-26T10:20:42.403815+00:00\",\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"},{\"operator\":\"validatesXPath\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"basicAuth\":{\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"clientSecret\":\"client-secret\",\"password\":\"oauth-password\",\"resource\":\"resource\",\"scope\":\"yoyo\",\"tokenApiAuthentication\":\"body\",\"type\":\"oauth-rop\",\"username\":\"oauth-usermame\"},\"certificate\":{\"cert\":{\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testcreateanapihttpwithoauthroptestreturnsokreturnsthecreatedtestdetailsresponse1706264441\"},\"method\":\"GET\",\"proxy\":{\"headers\":{},\"url\":\"https://datadoghq.com\"},\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_an_API_HTTP_with_oauth_rop_test_returns_OK_Returns_the_created_test_details_response-1706264441\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"locations\":[\"aws:us-east-2\"],\"subtype\":\"http\",\"created_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":138446068,\"org_id\":569509,\"modified_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 10:20:41 GMT" + }, + { + "request": { + "body": { + "string": "{\"public_ids\":[\"rud-evi-5bc\"]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete" + }, + "response": { + "body": { + "string": "{\"deleted_tests\":[{\"public_id\":\"rud-evi-5bc\",\"deleted_at\":\"2024-01-26T10:20:42.915758+00:00\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 10:20:41 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-SSL-test-returns-OK-Returns-the-created-test-details-response.frozen b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-SSL-test-returns-OK-Returns-the-created-test-details-response.frozen index 996757393..63811487e 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-SSL-test-returns-OK-Returns-the-created-test-details-response.frozen +++ b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-SSL-test-returns-OK-Returns-the-created-test-details-response.frozen @@ -1 +1 @@ -2022-08-30T12:59:11.498Z \ No newline at end of file +2024-01-26T10:20:43.061Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-SSL-test-returns-OK-Returns-the-created-test-details-response.json b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-SSL-test-returns-OK-Returns-the-created-test-details-response.json index 7d24a94f2..8bdaec943 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-SSL-test-returns-OK-Returns-the-created-test-details-response.json +++ b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-SSL-test-returns-OK-Returns-the-created-test-details-response.json @@ -1 +1,73 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"config\":{\"assertions\":[{\"operator\":\"isInMoreThan\",\"target\":10,\"type\":\"certificate\"}],\"request\":{\"host\":\"datadoghq.com\",\"port\":443}},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_ssl_test_payload.json\",\"name\":\"Test-Create_an_API_SSL_test_returns_OK_Returns_the_created_test_details_response-1661864351\",\"options\":{\"accept_self_signed\":true,\"checkCertificateRevocation\":true,\"tick_every\":60},\"subtype\":\"ssl\",\"tags\":[\"testing:api\"],\"type\":\"api\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api"}, "response": {"body": {"string": "{\"status\":\"live\",\"public_id\":\"qrz-a4f-273\",\"tags\":[\"testing:api\"],\"org_id\":321813,\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_ssl_test_payload.json\",\"deleted_at\":null,\"name\":\"Test-Create_an_API_SSL_test_returns_OK_Returns_the_created_test_details_response-1661864351\",\"monitor_id\":81568628,\"type\":\"api\",\"created_at\":\"2022-08-30T12:59:12.024188+00:00\",\"modified_at\":\"2022-08-30T12:59:12.024188+00:00\",\"subtype\":\"ssl\",\"config\":{\"request\":{\"host\":\"datadoghq.com\",\"port\":443},\"assertions\":[{\"operator\":\"isInMoreThan\",\"type\":\"certificate\",\"target\":10}]},\"options\":{\"accept_self_signed\":true,\"checkCertificateRevocation\":true,\"tick_every\":60}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 30 Aug 2022 12:59:11 GMT"}, {"request": {"body": {"string": "{\"public_ids\":[\"qrz-a4f-273\"]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete"}, "response": {"body": {"string": "{\"deleted_tests\":[{\"deleted_at\":\"2022-08-30T12:59:17.464324+00:00\",\"public_id\":\"qrz-a4f-273\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 30 Aug 2022 12:59:11 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"config\":{\"assertions\":[{\"operator\":\"isInMoreThan\",\"target\":10,\"type\":\"certificate\"}],\"request\":{\"host\":\"datadoghq.com\",\"port\":443}},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_ssl_test_payload.json\",\"name\":\"Test-Create_an_API_SSL_test_returns_OK_Returns_the_created_test_details_response-1706264443\",\"options\":{\"accept_self_signed\":true,\"checkCertificateRevocation\":true,\"tick_every\":60},\"subtype\":\"ssl\",\"tags\":[\"testing:api\"],\"type\":\"api\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api" + }, + "response": { + "body": { + "string": "{\"public_id\":\"q3p-xte-pfv\",\"name\":\"Test-Create_an_API_SSL_test_returns_OK_Returns_the_created_test_details_response-1706264443\",\"status\":\"live\",\"type\":\"api\",\"tags\":[\"testing:api\"],\"created_at\":\"2024-01-26T10:20:43.545261+00:00\",\"modified_at\":\"2024-01-26T10:20:43.545261+00:00\",\"config\":{\"assertions\":[{\"operator\":\"isInMoreThan\",\"target\":10,\"type\":\"certificate\"}],\"request\":{\"host\":\"datadoghq.com\",\"port\":443}},\"message\":\"BDD test payload: synthetics_api_ssl_test_payload.json\",\"options\":{\"accept_self_signed\":true,\"checkCertificateRevocation\":true,\"tick_every\":60},\"locations\":[\"aws:us-east-2\"],\"subtype\":\"ssl\",\"created_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":138446069,\"org_id\":569509,\"modified_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 10:20:43 GMT" + }, + { + "request": { + "body": { + "string": "{\"public_ids\":[\"q3p-xte-pfv\"]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete" + }, + "response": { + "body": { + "string": "{\"deleted_tests\":[{\"public_id\":\"q3p-xte-pfv\",\"deleted_at\":\"2024-01-26T10:20:44.591012+00:00\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 10:20:43 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-returns-OK-Returns-the-created-test-details-response.json b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-returns-OK-Returns-the-created-test-details-response.json index 06e2a0ac5..68270e318 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-returns-OK-Returns-the-created-test-details-response.json +++ b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-returns-OK-Returns-the-created-test-details-response.json @@ -1 +1,73 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"certificate\":{\"cert\":{\"content\":\"cert-content\",\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"content\":\"key-content\",\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testcreateanapitestreturnsokreturnsthecreatedtestdetailsresponse1644495851\"},\"method\":\"GET\",\"proxy\":{\"headers\":{},\"url\":\"https://datadoghq.com\"},\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_test_payload.json\",\"name\":\"Test-Create_an_API_test_returns_OK_Returns_the_created_test_details_response-1644495851\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_an_API_test_returns_OK_Returns_the_created_test_details_response-1644495851\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"subtype\":\"http\",\"tags\":[\"testing:api\"],\"type\":\"api\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api"}, "response": {"body": {"string": "{\"status\":\"live\",\"public_id\":\"x87-4ez-4xz\",\"tags\":[\"testing:api\"],\"org_id\":321813,\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_test_payload.json\",\"deleted_at\":null,\"name\":\"Test-Create_an_API_test_returns_OK_Returns_the_created_test_details_response-1644495851\",\"monitor_id\":63812387,\"type\":\"api\",\"created_at\":\"2022-02-10T12:24:12.489088+00:00\",\"modified_at\":\"2022-02-10T12:24:12.489088+00:00\",\"subtype\":\"http\",\"config\":{\"request\":{\"certificate\":{\"cert\":{\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"url\":\"https://datadoghq.com\",\"headers\":{\"unique\":\"testcreateanapitestreturnsokreturnsthecreatedtestdetailsresponse1644495851\"},\"proxy\":{\"url\":\"https://datadoghq.com\",\"headers\":{}},\"timeout\":10,\"method\":\"GET\"},\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"type\":\"header\",\"target\":\"text/html\"},{\"operator\":\"lessThan\",\"type\":\"responseTime\",\"target\":2000},{\"operator\":\"validatesJSONPath\",\"type\":\"body\",\"target\":{\"operator\":\"isNot\",\"targetValue\":\"0\",\"jsonPath\":\"topKey\"}}],\"configVariables\":[{\"pattern\":\"content-type\",\"type\":\"text\",\"example\":\"content-type\",\"name\":\"PROPERTY\"}]},\"options\":{\"accept_self_signed\":false,\"retry\":{\"count\":3,\"interval\":10},\"min_location_failed\":1,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"monitor_priority\":5,\"monitor_name\":\"Test-Create_an_API_test_returns_OK_Returns_the_created_test_details_response-1644495851\",\"tick_every\":60}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 10 Feb 2022 12:24:11 GMT"}, {"request": {"body": {"string": "{\"public_ids\":[\"x87-4ez-4xz\"]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete"}, "response": {"body": {"string": "{\"deleted_tests\":[{\"deleted_at\":\"2022-02-10T12:24:13.010432+00:00\",\"public_id\":\"x87-4ez-4xz\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 10 Feb 2022 12:24:11 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"certificate\":{\"cert\":{\"content\":\"cert-content\",\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"content\":\"key-content\",\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testcreateanapitestreturnsokreturnsthecreatedtestdetailsresponse1644495851\"},\"method\":\"GET\",\"proxy\":{\"headers\":{},\"url\":\"https://datadoghq.com\"},\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_test_payload.json\",\"name\":\"Test-Create_an_API_test_returns_OK_Returns_the_created_test_details_response-1644495851\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_an_API_test_returns_OK_Returns_the_created_test_details_response-1644495851\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"subtype\":\"http\",\"tags\":[\"testing:api\"],\"type\":\"api\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api" + }, + "response": { + "body": { + "string": "{\"status\":\"live\",\"public_id\":\"x87-4ez-4xz\",\"tags\":[\"testing:api\"],\"org_id\":321813,\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_test_payload.json\",\"deleted_at\":null,\"name\":\"Test-Create_an_API_test_returns_OK_Returns_the_created_test_details_response-1644495851\",\"monitor_id\":63812387,\"type\":\"api\",\"created_at\":\"2022-02-10T12:24:12.489088+00:00\",\"modified_at\":\"2022-02-10T12:24:12.489088+00:00\",\"subtype\":\"http\",\"config\":{\"request\":{\"certificate\":{\"cert\":{\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"url\":\"https://datadoghq.com\",\"headers\":{\"unique\":\"testcreateanapitestreturnsokreturnsthecreatedtestdetailsresponse1644495851\"},\"proxy\":{\"url\":\"https://datadoghq.com\",\"headers\":{}},\"timeout\":10,\"method\":\"GET\"},\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"type\":\"header\",\"target\":\"text/html\"},{\"operator\":\"lessThan\",\"type\":\"responseTime\",\"target\":2000},{\"operator\":\"validatesJSONPath\",\"type\":\"body\",\"target\":{\"operator\":\"isNot\",\"targetValue\":\"0\",\"jsonPath\":\"topKey\"}}],\"configVariables\":[{\"pattern\":\"content-type\",\"type\":\"text\",\"example\":\"content-type\",\"name\":\"PROPERTY\"}]},\"options\":{\"accept_self_signed\":false,\"retry\":{\"count\":3,\"interval\":10},\"min_location_failed\":1,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"monitor_priority\":5,\"monitor_name\":\"Test-Create_an_API_test_returns_OK_Returns_the_created_test_details_response-1644495851\",\"tick_every\":60}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 10 Feb 2022 12:24:11 GMT" + }, + { + "request": { + "body": { + "string": "{\"public_ids\":[\"x87-4ez-4xz\"]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete" + }, + "response": { + "body": { + "string": "{\"deleted_tests\":[{\"deleted_at\":\"2022-02-10T12:24:13.010432+00:00\",\"public_id\":\"x87-4ez-4xz\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 10 Feb 2022 12:24:11 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-with-UDP-subtype-returns-OK-Returns-the-created-test-details-response.frozen b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-with-UDP-subtype-returns-OK-Returns-the-created-test-details-response.frozen index cab19f4c9..f447b9d00 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-with-UDP-subtype-returns-OK-Returns-the-created-test-details-response.frozen +++ b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-with-UDP-subtype-returns-OK-Returns-the-created-test-details-response.frozen @@ -1 +1 @@ -2022-08-30T12:59:17.615Z \ No newline at end of file +2024-01-26T10:20:44.836Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-with-UDP-subtype-returns-OK-Returns-the-created-test-details-response.json b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-with-UDP-subtype-returns-OK-Returns-the-created-test-details-response.json index 56af76c46..c149ee2ae 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-with-UDP-subtype-returns-OK-Returns-the-created-test-details-response.json +++ b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-with-UDP-subtype-returns-OK-Returns-the-created-test-details-response.json @@ -1 +1,73 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"config\":{\"assertions\":[{\"operator\":\"is\",\"target\":\"message\",\"type\":\"receivedMessage\"},{\"operator\":\"lessThan\",\"target\":2000,\"type\":\"responseTime\"}],\"configVariables\":[],\"request\":{\"host\":\"https://datadoghq.com\",\"message\":\"message\",\"port\":443}},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_test_udp_payload.json\",\"name\":\"Test-Create_an_API_test_with_UDP_subtype_returns_OK_Returns_the_created_test_details_response-1661864357\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_an_API_test_with_UDP_subtype_returns_OK_Returns_the_created_test_details_response-1661864357\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"subtype\":\"udp\",\"tags\":[\"testing:api\"],\"type\":\"api\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api"}, "response": {"body": {"string": "{\"status\":\"live\",\"public_id\":\"6nm-aqw-5ub\",\"tags\":[\"testing:api\"],\"org_id\":321813,\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_test_udp_payload.json\",\"deleted_at\":null,\"name\":\"Test-Create_an_API_test_with_UDP_subtype_returns_OK_Returns_the_created_test_details_response-1661864357\",\"monitor_id\":81568631,\"type\":\"api\",\"created_at\":\"2022-08-30T12:59:18.089228+00:00\",\"modified_at\":\"2022-08-30T12:59:18.089228+00:00\",\"subtype\":\"udp\",\"config\":{\"request\":{\"host\":\"https://datadoghq.com\",\"message\":\"message\",\"port\":443},\"assertions\":[{\"operator\":\"is\",\"type\":\"receivedMessage\",\"target\":\"message\"},{\"operator\":\"lessThan\",\"type\":\"responseTime\",\"target\":2000}],\"configVariables\":[]},\"options\":{\"accept_self_signed\":false,\"retry\":{\"count\":3,\"interval\":10},\"min_location_failed\":1,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"monitor_priority\":5,\"monitor_name\":\"Test-Create_an_API_test_with_UDP_subtype_returns_OK_Returns_the_created_test_details_response-1661864357\",\"tick_every\":60}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 30 Aug 2022 12:59:17 GMT"}, {"request": {"body": {"string": "{\"public_ids\":[\"6nm-aqw-5ub\"]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete"}, "response": {"body": {"string": "{\"deleted_tests\":[{\"deleted_at\":\"2022-08-30T12:59:23.479491+00:00\",\"public_id\":\"6nm-aqw-5ub\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 30 Aug 2022 12:59:17 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"config\":{\"assertions\":[{\"operator\":\"is\",\"target\":\"message\",\"type\":\"receivedMessage\"},{\"operator\":\"lessThan\",\"target\":2000,\"type\":\"responseTime\"}],\"configVariables\":[],\"request\":{\"host\":\"https://datadoghq.com\",\"message\":\"message\",\"port\":443}},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_test_udp_payload.json\",\"name\":\"Test-Create_an_API_test_with_UDP_subtype_returns_OK_Returns_the_created_test_details_response-1706264444\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_an_API_test_with_UDP_subtype_returns_OK_Returns_the_created_test_details_response-1706264444\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"subtype\":\"udp\",\"tags\":[\"testing:api\"],\"type\":\"api\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api" + }, + "response": { + "body": { + "string": "{\"public_id\":\"r9y-tsx-jja\",\"name\":\"Test-Create_an_API_test_with_UDP_subtype_returns_OK_Returns_the_created_test_details_response-1706264444\",\"status\":\"live\",\"type\":\"api\",\"tags\":[\"testing:api\"],\"created_at\":\"2024-01-26T10:20:45.321803+00:00\",\"modified_at\":\"2024-01-26T10:20:45.321803+00:00\",\"config\":{\"assertions\":[{\"operator\":\"is\",\"target\":\"message\",\"type\":\"receivedMessage\"},{\"operator\":\"lessThan\",\"target\":2000,\"type\":\"responseTime\"}],\"configVariables\":[],\"request\":{\"host\":\"https://datadoghq.com\",\"message\":\"message\",\"port\":443}},\"message\":\"BDD test payload: synthetics_api_test_udp_payload.json\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_an_API_test_with_UDP_subtype_returns_OK_Returns_the_created_test_details_response-1706264444\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"locations\":[\"aws:us-east-2\"],\"subtype\":\"udp\",\"created_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":138446070,\"org_id\":569509,\"modified_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 10:20:44 GMT" + }, + { + "request": { + "body": { + "string": "{\"public_ids\":[\"r9y-tsx-jja\"]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete" + }, + "response": { + "body": { + "string": "{\"deleted_tests\":[{\"public_id\":\"r9y-tsx-jja\",\"deleted_at\":\"2024-01-26T10:20:45.948287+00:00\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 10:20:44 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-with-WEBSOCKET-subtype-returns-OK-Returns-the-created-test-details-response.frozen b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-with-WEBSOCKET-subtype-returns-OK-Returns-the-created-test-details-response.frozen index c6ee1211b..6ae4d3839 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-with-WEBSOCKET-subtype-returns-OK-Returns-the-created-test-details-response.frozen +++ b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-with-WEBSOCKET-subtype-returns-OK-Returns-the-created-test-details-response.frozen @@ -1 +1 @@ -2022-08-30T12:59:24.424Z \ No newline at end of file +2024-01-26T10:20:46.251Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-with-WEBSOCKET-subtype-returns-OK-Returns-the-created-test-details-response.json b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-with-WEBSOCKET-subtype-returns-OK-Returns-the-created-test-details-response.json index eef8f4430..66a323fee 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-with-WEBSOCKET-subtype-returns-OK-Returns-the-created-test-details-response.json +++ b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-with-WEBSOCKET-subtype-returns-OK-Returns-the-created-test-details-response.json @@ -1 +1,73 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"config\":{\"assertions\":[{\"operator\":\"is\",\"target\":\"message\",\"type\":\"receivedMessage\"},{\"operator\":\"lessThan\",\"target\":2000,\"type\":\"responseTime\"}],\"configVariables\":[],\"request\":{\"message\":\"message\",\"url\":\"ws://datadoghq.com\"}},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_test_websocket_payload.json\",\"name\":\"Test-Create_an_API_test_with_WEBSOCKET_subtype_returns_OK_Returns_the_created_test_details_response-1661864364\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_an_API_test_with_WEBSOCKET_subtype_returns_OK_Returns_the_created_test_details_response-1661864364\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"subtype\":\"websocket\",\"tags\":[\"testing:api\"],\"type\":\"api\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api"}, "response": {"body": {"string": "{\"status\":\"live\",\"public_id\":\"sfv-45x-54e\",\"tags\":[\"testing:api\"],\"org_id\":321813,\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_test_websocket_payload.json\",\"deleted_at\":null,\"name\":\"Test-Create_an_API_test_with_WEBSOCKET_subtype_returns_OK_Returns_the_created_test_details_response-1661864364\",\"monitor_id\":81568635,\"type\":\"api\",\"created_at\":\"2022-08-30T12:59:24.899035+00:00\",\"modified_at\":\"2022-08-30T12:59:24.899035+00:00\",\"subtype\":\"websocket\",\"config\":{\"request\":{\"url\":\"ws://datadoghq.com\",\"message\":\"message\"},\"assertions\":[{\"operator\":\"is\",\"type\":\"receivedMessage\",\"target\":\"message\"},{\"operator\":\"lessThan\",\"type\":\"responseTime\",\"target\":2000}],\"configVariables\":[]},\"options\":{\"accept_self_signed\":false,\"retry\":{\"count\":3,\"interval\":10},\"min_location_failed\":1,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"monitor_priority\":5,\"monitor_name\":\"Test-Create_an_API_test_with_WEBSOCKET_subtype_returns_OK_Returns_the_created_test_details_response-1661864364\",\"tick_every\":60}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 30 Aug 2022 12:59:24 GMT"}, {"request": {"body": {"string": "{\"public_ids\":[\"sfv-45x-54e\"]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete"}, "response": {"body": {"string": "{\"deleted_tests\":[{\"deleted_at\":\"2022-08-30T12:59:30.439075+00:00\",\"public_id\":\"sfv-45x-54e\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 30 Aug 2022 12:59:24 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"config\":{\"assertions\":[{\"operator\":\"is\",\"target\":\"message\",\"type\":\"receivedMessage\"},{\"operator\":\"lessThan\",\"target\":2000,\"type\":\"responseTime\"}],\"configVariables\":[],\"request\":{\"message\":\"message\",\"url\":\"ws://datadoghq.com\"}},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_test_websocket_payload.json\",\"name\":\"Test-Create_an_API_test_with_WEBSOCKET_subtype_returns_OK_Returns_the_created_test_details_response-1706264446\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_an_API_test_with_WEBSOCKET_subtype_returns_OK_Returns_the_created_test_details_response-1706264446\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"subtype\":\"websocket\",\"tags\":[\"testing:api\"],\"type\":\"api\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api" + }, + "response": { + "body": { + "string": "{\"public_id\":\"sfs-q7c-6ft\",\"name\":\"Test-Create_an_API_test_with_WEBSOCKET_subtype_returns_OK_Returns_the_created_test_details_response-1706264446\",\"status\":\"live\",\"type\":\"api\",\"tags\":[\"testing:api\"],\"created_at\":\"2024-01-26T10:20:46.730863+00:00\",\"modified_at\":\"2024-01-26T10:20:46.730863+00:00\",\"config\":{\"assertions\":[{\"operator\":\"is\",\"target\":\"message\",\"type\":\"receivedMessage\"},{\"operator\":\"lessThan\",\"target\":2000,\"type\":\"responseTime\"}],\"configVariables\":[],\"request\":{\"message\":\"message\",\"url\":\"ws://datadoghq.com\"}},\"message\":\"BDD test payload: synthetics_api_test_websocket_payload.json\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_an_API_test_with_WEBSOCKET_subtype_returns_OK_Returns_the_created_test_details_response-1706264446\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"locations\":[\"aws:us-east-2\"],\"subtype\":\"websocket\",\"created_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":138446071,\"org_id\":569509,\"modified_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 10:20:46 GMT" + }, + { + "request": { + "body": { + "string": "{\"public_ids\":[\"sfs-q7c-6ft\"]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete" + }, + "response": { + "body": { + "string": "{\"deleted_tests\":[{\"public_id\":\"sfs-q7c-6ft\",\"deleted_at\":\"2024-01-26T10:20:47.202087+00:00\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 10:20:46 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-with-a-file-payload-returns-OK-Returns-the-created-test-details-response.frozen b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-with-a-file-payload-returns-OK-Returns-the-created-test-details-response.frozen new file mode 100644 index 000000000..42decaa94 --- /dev/null +++ b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-with-a-file-payload-returns-OK-Returns-the-created-test-details-response.frozen @@ -0,0 +1 @@ +2024-04-02T15:35:39.188Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-with-a-file-payload-returns-OK-Returns-the-created-test-details-response.json b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-with-a-file-payload-returns-OK-Returns-the-created-test-details-response.json new file mode 100644 index 000000000..11643166d --- /dev/null +++ b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-with-a-file-payload-returns-OK-Returns-the-created-test-details-response.json @@ -0,0 +1,73 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"timingsScope\":\"withoutDNS\",\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"},{\"operator\":\"validatesXPath\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"basicAuth\":{\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"clientSecret\":\"client-secret\",\"resource\":\"resource\",\"scope\":\"yoyo\",\"tokenApiAuthentication\":\"header\",\"type\":\"oauth-client\"},\"bodyType\":\"application/octet-stream\",\"certificate\":{\"cert\":{\"content\":\"cert-content\",\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"content\":\"key-content\",\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"files\":[{\"content\":\"file content\",\"name\":\"file name\",\"type\":\"file type\"}],\"headers\":{\"unique\":\"testcreateanapitestwithafilepayloadreturnsokreturnsthecreatedtestdetailsresponse1712072139\"},\"method\":\"GET\",\"persistCookies\":true,\"proxy\":{\"headers\":{},\"url\":\"https://datadoghq.com\"},\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"name\":\"Test-Create_an_API_test_with_a_file_payload_returns_OK_Returns_the_created_test_details_response-1712072139\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"httpVersion\":\"http2\",\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_an_API_test_with_a_file_payload_returns_OK_Returns_the_created_test_details_response-1712072139\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"subtype\":\"http\",\"tags\":[\"testing:api\"],\"type\":\"api\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api" + }, + "response": { + "body": { + "string": "{\"public_id\":\"sxp-kz5-mk7\",\"name\":\"Test-Create_an_API_test_with_a_file_payload_returns_OK_Returns_the_created_test_details_response-1712072139\",\"status\":\"live\",\"type\":\"api\",\"tags\":[\"testing:api\"],\"created_at\":\"2024-04-02T15:35:40.509801+00:00\",\"modified_at\":\"2024-04-02T15:35:40.509801+00:00\",\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"timingsScope\":\"withoutDNS\",\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"},{\"operator\":\"validatesXPath\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"basicAuth\":{\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"clientSecret\":\"client-secret\",\"resource\":\"resource\",\"scope\":\"yoyo\",\"tokenApiAuthentication\":\"header\",\"type\":\"oauth-client\"},\"bodyType\":\"application/octet-stream\",\"certificate\":{\"cert\":{\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"files\":[{\"name\":\"file name\",\"type\":\"file type\",\"bucketKey\":\"api-upload-file/sxp-kz5-mk7/2024-04-02T15:35:40.363501_da19b48f-1756-453d-a03d-90526e629d7e.json\"}],\"headers\":{\"unique\":\"testcreateanapitestwithafilepayloadreturnsokreturnsthecreatedtestdetailsresponse1712072139\"},\"method\":\"GET\",\"persistCookies\":true,\"proxy\":{\"headers\":{},\"url\":\"https://datadoghq.com\"},\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"httpVersion\":\"http2\",\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_an_API_test_with_a_file_payload_returns_OK_Returns_the_created_test_details_response-1712072139\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"locations\":[\"aws:us-east-2\"],\"subtype\":\"http\",\"created_by\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":142439982,\"org_id\":321813,\"modified_by\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 02 Apr 2024 15:35:39 GMT" + }, + { + "request": { + "body": { + "string": "{\"public_ids\":[\"sxp-kz5-mk7\"]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete" + }, + "response": { + "body": { + "string": "{\"deleted_tests\":[{\"public_id\":\"sxp-kz5-mk7\",\"deleted_at\":\"2024-04-02T15:35:41.326918+00:00\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 02 Apr 2024 15:35:39 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-with-multi-subtype-returns-OK-Returns-the-created-test-details-response.frozen b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-with-multi-subtype-returns-OK-Returns-the-created-test-details-response.frozen index 63e087b31..c7b41f31f 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-with-multi-subtype-returns-OK-Returns-the-created-test-details-response.frozen +++ b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-with-multi-subtype-returns-OK-Returns-the-created-test-details-response.frozen @@ -1 +1 @@ -2023-05-22T14:08:52.406Z \ No newline at end of file +2024-03-13T08:48:03.203Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-with-multi-subtype-returns-OK-Returns-the-created-test-details-response.json b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-with-multi-subtype-returns-OK-Returns-the-created-test-details-response.json index 033434897..11415352b 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-with-multi-subtype-returns-OK-Returns-the-created-test-details-response.json +++ b/tests/scenarios/cassettes/v1/synthetics/Create-an-API-test-with-multi-subtype-returns-OK-Returns-the-created-test-details-response.json @@ -1 +1,73 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"config\":{\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"steps\":[{\"allowFailure\":true,\"assertions\":[{\"operator\":\"is\",\"target\":200,\"type\":\"statusCode\"}],\"extractedValues\":[{\"field\":\"server\",\"name\":\"EXTRACTED_VALUE\",\"parser\":{\"type\":\"raw\"},\"secure\":true,\"type\":\"http_header\"}],\"isCritical\":true,\"name\":\"request is sent\",\"request\":{\"method\":\"GET\",\"timeout\":10,\"url\":\"https://datadoghq.com\"},\"retry\":{\"count\":5,\"interval\":1000},\"subtype\":\"http\"}]},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_test_multi_step_payload.json\",\"name\":\"Test-Create_an_API_test_with_multi_subtype_returns_OK_Returns_the_created_test_details_response-1684764532\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_an_API_test_with_multi_subtype_returns_OK_Returns_the_created_test_details_response-1684764532\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":1000},\"tick_every\":60},\"subtype\":\"multi\",\"tags\":[\"testing:api\"],\"type\":\"api\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api"}, "response": {"body": {"string": "{\"public_id\":\"i52-inf-ua8\",\"name\":\"Test-Create_an_API_test_with_multi_subtype_returns_OK_Returns_the_created_test_details_response-1684764532\",\"status\":\"live\",\"type\":\"api\",\"tags\":[\"testing:api\"],\"created_at\":\"2023-05-22T14:08:52.875670+00:00\",\"modified_at\":\"2023-05-22T14:08:52.875670+00:00\",\"config\":{\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"steps\":[{\"allowFailure\":true,\"assertions\":[{\"operator\":\"is\",\"target\":200,\"type\":\"statusCode\"}],\"extractedValues\":[{\"field\":\"server\",\"name\":\"EXTRACTED_VALUE\",\"parser\":{\"type\":\"raw\"},\"secure\":true,\"type\":\"http_header\"}],\"isCritical\":true,\"name\":\"request is sent\",\"request\":{\"method\":\"GET\",\"timeout\":10,\"url\":\"https://datadoghq.com\"},\"retry\":{\"count\":5,\"interval\":1000},\"subtype\":\"http\",\"id\":\"enf-w74-k4y\"}]},\"message\":\"BDD test payload: synthetics_api_test_multi_step_payload.json\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_an_API_test_with_multi_subtype_returns_OK_Returns_the_created_test_details_response-1684764532\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":1000},\"tick_every\":60},\"locations\":[\"aws:us-east-2\"],\"subtype\":\"multi\",\"deleted_at\":null,\"monitor_id\":119714203,\"org_id\":569509}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 22 May 2023 14:08:52 GMT"}, {"request": {"body": {"string": "{\"public_ids\":[\"i52-inf-ua8\"]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete"}, "response": {"body": {"string": "{\"deleted_tests\":[{\"public_id\":\"i52-inf-ua8\",\"deleted_at\":\"2023-05-22T14:08:53.980399+00:00\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 22 May 2023 14:08:52 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"config\":{\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"steps\":[{\"allowFailure\":true,\"assertions\":[{\"operator\":\"is\",\"target\":200,\"type\":\"statusCode\"}],\"extractedValues\":[{\"field\":\"server\",\"name\":\"EXTRACTED_VALUE\",\"parser\":{\"type\":\"raw\"},\"secure\":true,\"type\":\"http_header\"}],\"isCritical\":true,\"name\":\"request is sent\",\"request\":{\"httpVersion\":\"http2\",\"method\":\"GET\",\"timeout\":10,\"url\":\"https://datadoghq.com\"},\"retry\":{\"count\":5,\"interval\":1000},\"subtype\":\"http\"},{\"allowFailure\":false,\"assertions\":[{\"operator\":\"lessThan\",\"target\":1000,\"type\":\"responseTime\"}],\"extractedValues\":[],\"isCritical\":true,\"name\":\"GRPC CALL\",\"request\":{\"callType\":\"unary\",\"compressedJsonDescriptor\":\"eJy1lU1z2yAQhv+Lzj74I3ETH506bQ7OZOSm1w4Wa4epBARQppqM/3v5koCJJdvtxCdW77vPssCO3zMKUgHOFu/ZXvBiS6hZho/f8qe7pftYgXphWJrlA8XwxywEvNba+6PhkC2yVcVVswYp0R6ykRYlZ1SCV21SDrxsssPIeS9FJKqGfK2rqnmmSBwhWa2XlKgtaQPiDcRGCUDVfwGD2sKUqKEtc1cSoOrsMlaMOec1sySYCCgUYRSVLv2zSva2u+FQkB0pVkIw8bFuIudOOn3pOaKYVT3Iy97Pd0AYhOx5QcMsnxvRHlnuLf8ETDd3CNtrv2nejkDpRnANCmGkkFn/hsYzpBKE7jVbufgnKnV9HRM9zRPDDKPttYT61n0TdWkAAjggk9AhuxIeaXd69CYTcsGw7cBTakLVbNpRzGEgyWjkSOpMbZXkhGL6oX30R49qt3GoHrap7i0XdD41WQ+2icCNm5p1hmFqnHNlcla0riKmDZ183crDxChjbnurtxHPRE784sVhWvDfGP+SsTKibU3o5NtWHuZFGZOxP6P5VXqIOvaOSec4eYohyd7NslHuJbd1bewds85xYrNxkr2d+5IhFWF3NvaO684xjE2S5ulY+tu64Pna0fCPJgzw6vF5/WucLcYjt5xoq19O3UDptOg/OamJQRaCcPPnMTQ2QDFn+uhPvUfnCrMc99upyQY4Ui9Dlc/YoG3R/v4Cs9YE+g==\",\"host\":\"grpcbin.test.k6.io\",\"message\":\"{}\",\"metadata\":{},\"method\":\"Index\",\"port\":9000,\"service\":\"grpcbin.GRPCBin\"},\"retry\":{\"count\":0,\"interval\":300},\"subtype\":\"grpc\"}]},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_test_multi_step_payload.json\",\"name\":\"Test-Create_an_API_test_with_multi_subtype_returns_OK_Returns_the_created_test_details_response-1710319683\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_an_API_test_with_multi_subtype_returns_OK_Returns_the_created_test_details_response-1710319683\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":1000},\"tick_every\":60},\"subtype\":\"multi\",\"tags\":[\"testing:api\"],\"type\":\"api\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api" + }, + "response": { + "body": { + "string": "{\"public_id\":\"y2r-vcd-vpr\",\"name\":\"Test-Create_an_API_test_with_multi_subtype_returns_OK_Returns_the_created_test_details_response-1710319683\",\"status\":\"live\",\"type\":\"api\",\"tags\":[\"testing:api\"],\"created_at\":\"2024-03-13T08:48:03.719895+00:00\",\"modified_at\":\"2024-03-13T08:48:03.719895+00:00\",\"config\":{\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"steps\":[{\"allowFailure\":true,\"assertions\":[{\"operator\":\"is\",\"target\":200,\"type\":\"statusCode\"}],\"extractedValues\":[{\"field\":\"server\",\"name\":\"EXTRACTED_VALUE\",\"parser\":{\"type\":\"raw\"},\"secure\":true,\"type\":\"http_header\"}],\"isCritical\":true,\"name\":\"request is sent\",\"request\":{\"httpVersion\":\"http2\",\"method\":\"GET\",\"timeout\":10,\"url\":\"https://datadoghq.com\"},\"retry\":{\"count\":5,\"interval\":1000},\"subtype\":\"http\",\"id\":\"uub-ecp-afe\"},{\"allowFailure\":false,\"assertions\":[{\"operator\":\"lessThan\",\"target\":1000,\"type\":\"responseTime\"}],\"extractedValues\":[],\"isCritical\":true,\"name\":\"GRPC CALL\",\"request\":{\"callType\":\"unary\",\"compressedJsonDescriptor\":\"eJy1lU1z2yAQhv+Lzj74I3ETH506bQ7OZOSm1w4Wa4epBARQppqM/3v5koCJJdvtxCdW77vPssCO3zMKUgHOFu/ZXvBiS6hZho/f8qe7pftYgXphWJrlA8XwxywEvNba+6PhkC2yVcVVswYp0R6ykRYlZ1SCV21SDrxsssPIeS9FJKqGfK2rqnmmSBwhWa2XlKgtaQPiDcRGCUDVfwGD2sKUqKEtc1cSoOrsMlaMOec1sySYCCgUYRSVLv2zSva2u+FQkB0pVkIw8bFuIudOOn3pOaKYVT3Iy97Pd0AYhOx5QcMsnxvRHlnuLf8ETDd3CNtrv2nejkDpRnANCmGkkFn/hsYzpBKE7jVbufgnKnV9HRM9zRPDDKPttYT61n0TdWkAAjggk9AhuxIeaXd69CYTcsGw7cBTakLVbNpRzGEgyWjkSOpMbZXkhGL6oX30R49qt3GoHrap7i0XdD41WQ+2icCNm5p1hmFqnHNlcla0riKmDZ183crDxChjbnurtxHPRE784sVhWvDfGP+SsTKibU3o5NtWHuZFGZOxP6P5VXqIOvaOSec4eYohyd7NslHuJbd1bewds85xYrNxkr2d+5IhFWF3NvaO684xjE2S5ulY+tu64Pna0fCPJgzw6vF5/WucLcYjt5xoq19O3UDptOg/OamJQRaCcPPnMTQ2QDFn+uhPvUfnCrMc99upyQY4Ui9Dlc/YoG3R/v4Cs9YE+g==\",\"host\":\"grpcbin.test.k6.io\",\"message\":\"{}\",\"metadata\":{},\"method\":\"Index\",\"port\":9000,\"service\":\"grpcbin.GRPCBin\"},\"retry\":{\"count\":0,\"interval\":300},\"subtype\":\"grpc\",\"id\":\"znu-k77-h5c\"}]},\"message\":\"BDD test payload: synthetics_api_test_multi_step_payload.json\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_an_API_test_with_multi_subtype_returns_OK_Returns_the_created_test_details_response-1710319683\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":1000},\"tick_every\":60},\"locations\":[\"aws:us-east-2\"],\"subtype\":\"multi\",\"created_by\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":141300471,\"org_id\":321813,\"modified_by\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 13 Mar 2024 08:48:03 GMT" + }, + { + "request": { + "body": { + "string": "{\"public_ids\":[\"y2r-vcd-vpr\"]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete" + }, + "response": { + "body": { + "string": "{\"deleted_tests\":[{\"public_id\":\"y2r-vcd-vpr\",\"deleted_at\":\"2024-03-13T08:48:04.414269+00:00\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 13 Mar 2024 08:48:03 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Edit-an-API-test-returns-OK-response.frozen b/tests/scenarios/cassettes/v1/synthetics/Edit-an-API-test-returns-OK-response.frozen index 01b81d49c..7d1215e25 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Edit-an-API-test-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v1/synthetics/Edit-an-API-test-returns-OK-response.frozen @@ -1 +1 @@ -2023-09-11T14:49:16.770Z \ No newline at end of file +2024-01-26T10:20:48.691Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Edit-an-API-test-returns-OK-response.json b/tests/scenarios/cassettes/v1/synthetics/Edit-an-API-test-returns-OK-response.json index 841a9829f..ee6fd0660 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Edit-an-API-test-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/synthetics/Edit-an-API-test-returns-OK-response.json @@ -1 +1,107 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"timingsScope\":\"withoutDNS\",\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"},{\"operator\":\"validatesXPath\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"basicAuth\":{\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"clientSecret\":\"client-secret\",\"resource\":\"resource\",\"scope\":\"yoyo\",\"tokenApiAuthentication\":\"header\",\"type\":\"oauth-client\"},\"certificate\":{\"cert\":{\"content\":\"cert-content\",\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"content\":\"key-content\",\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testeditanapitestreturnsokresponse1694443756\"},\"method\":\"GET\",\"persistCookies\":true,\"proxy\":{\"headers\":{},\"url\":\"https://datadoghq.com\"},\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"name\":\"Test-Edit_an_API_test_returns_OK_response-1694443756\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"httpVersion\":\"http2\",\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Edit_an_API_test_returns_OK_response-1694443756\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"subtype\":\"http\",\"tags\":[\"testing:api\"],\"type\":\"api\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api"}, "response": {"body": {"string": "{\"public_id\":\"qfc-hyy-hr5\",\"name\":\"Test-Edit_an_API_test_returns_OK_response-1694443756\",\"status\":\"live\",\"type\":\"api\",\"tags\":[\"testing:api\"],\"created_at\":\"2023-09-11T14:49:16.999247+00:00\",\"modified_at\":\"2023-09-11T14:49:16.999247+00:00\",\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"timingsScope\":\"withoutDNS\",\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"},{\"operator\":\"validatesXPath\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"basicAuth\":{\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"clientSecret\":\"client-secret\",\"resource\":\"resource\",\"scope\":\"yoyo\",\"tokenApiAuthentication\":\"header\",\"type\":\"oauth-client\"},\"certificate\":{\"cert\":{\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testeditanapitestreturnsokresponse1694443756\"},\"method\":\"GET\",\"persistCookies\":true,\"proxy\":{\"headers\":{},\"url\":\"https://datadoghq.com\"},\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"httpVersion\":\"http2\",\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Edit_an_API_test_returns_OK_response-1694443756\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"locations\":[\"aws:us-east-2\"],\"subtype\":\"http\",\"created_by\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":131183739,\"org_id\":321813,\"modified_by\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 11 Sep 2023 14:49:16 GMT"}, {"request": {"body": {"string": "{\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"certificate\":{\"cert\":{\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testeditanapitestreturnsokresponse1694443756\"},\"method\":\"GET\",\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_test_payload.json\",\"name\":\"Test-Edit_an_API_test_returns_OK_response-1694443756-updated\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-TestSyntheticsAPITestLifecycle-1623076664\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"status\":\"live\",\"subtype\":\"http\",\"tags\":[\"testing:api\"],\"type\":\"api\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "put", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api/qfc-hyy-hr5"}, "response": {"body": {"string": "{\"public_id\":\"qfc-hyy-hr5\",\"name\":\"Test-Edit_an_API_test_returns_OK_response-1694443756-updated\",\"status\":\"live\",\"type\":\"api\",\"tags\":[\"testing:api\"],\"created_at\":\"2023-09-11T14:49:16.999247+00:00\",\"modified_at\":\"2023-09-11T14:49:17.801923+00:00\",\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"certificate\":{\"key\":{\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"cert\":{\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testeditanapitestreturnsokresponse1694443756\"},\"method\":\"GET\",\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"message\":\"BDD test payload: synthetics_api_test_payload.json\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-TestSyntheticsAPITestLifecycle-1623076664\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"locations\":[\"aws:us-east-2\"],\"subtype\":\"http\",\"created_by\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":131183739,\"org_id\":321813,\"modified_by\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 11 Sep 2023 14:49:16 GMT"}, {"request": {"body": {"string": "{\"public_ids\":[\"qfc-hyy-hr5\"]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete"}, "response": {"body": {"string": "{\"deleted_tests\":[{\"public_id\":\"qfc-hyy-hr5\",\"deleted_at\":\"2023-09-11T14:49:18.248113+00:00\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 11 Sep 2023 14:49:16 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"timingsScope\":\"withoutDNS\",\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"},{\"operator\":\"validatesXPath\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"basicAuth\":{\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"clientSecret\":\"client-secret\",\"resource\":\"resource\",\"scope\":\"yoyo\",\"tokenApiAuthentication\":\"header\",\"type\":\"oauth-client\"},\"certificate\":{\"cert\":{\"content\":\"cert-content\",\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"content\":\"key-content\",\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testeditanapitestreturnsokresponse1706264448\"},\"method\":\"GET\",\"persistCookies\":true,\"proxy\":{\"headers\":{},\"url\":\"https://datadoghq.com\"},\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"name\":\"Test-Edit_an_API_test_returns_OK_response-1706264448\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"httpVersion\":\"http2\",\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Edit_an_API_test_returns_OK_response-1706264448\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"subtype\":\"http\",\"tags\":[\"testing:api\"],\"type\":\"api\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api" + }, + "response": { + "body": { + "string": "{\"public_id\":\"u88-3rh-nzd\",\"name\":\"Test-Edit_an_API_test_returns_OK_response-1706264448\",\"status\":\"live\",\"type\":\"api\",\"tags\":[\"testing:api\"],\"created_at\":\"2024-01-26T10:20:49.184055+00:00\",\"modified_at\":\"2024-01-26T10:20:49.184055+00:00\",\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"timingsScope\":\"withoutDNS\",\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"},{\"operator\":\"validatesXPath\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"basicAuth\":{\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"clientSecret\":\"client-secret\",\"resource\":\"resource\",\"scope\":\"yoyo\",\"tokenApiAuthentication\":\"header\",\"type\":\"oauth-client\"},\"certificate\":{\"cert\":{\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testeditanapitestreturnsokresponse1706264448\"},\"method\":\"GET\",\"persistCookies\":true,\"proxy\":{\"headers\":{},\"url\":\"https://datadoghq.com\"},\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"httpVersion\":\"http2\",\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Edit_an_API_test_returns_OK_response-1706264448\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"locations\":[\"aws:us-east-2\"],\"subtype\":\"http\",\"created_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":138446073,\"org_id\":569509,\"modified_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 10:20:48 GMT" + }, + { + "request": { + "body": { + "string": "{\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"certificate\":{\"cert\":{\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testeditanapitestreturnsokresponse1706264448\"},\"method\":\"GET\",\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_test_payload.json\",\"name\":\"Test-Edit_an_API_test_returns_OK_response-1706264448-updated\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-TestSyntheticsAPITestLifecycle-1623076664\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"status\":\"live\",\"subtype\":\"http\",\"tags\":[\"testing:api\"],\"type\":\"api\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api/u88-3rh-nzd" + }, + "response": { + "body": { + "string": "{\"public_id\":\"u88-3rh-nzd\",\"name\":\"Test-Edit_an_API_test_returns_OK_response-1706264448-updated\",\"status\":\"live\",\"type\":\"api\",\"tags\":[\"testing:api\"],\"created_at\":\"2024-01-26T10:20:49.184055+00:00\",\"modified_at\":\"2024-01-26T10:20:49.716922+00:00\",\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"certificate\":{\"key\":{\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"cert\":{\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testeditanapitestreturnsokresponse1706264448\"},\"method\":\"GET\",\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"message\":\"BDD test payload: synthetics_api_test_payload.json\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-TestSyntheticsAPITestLifecycle-1623076664\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"locations\":[\"aws:us-east-2\"],\"subtype\":\"http\",\"created_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":138446073,\"org_id\":569509,\"modified_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 10:20:48 GMT" + }, + { + "request": { + "body": { + "string": "{\"public_ids\":[\"u88-3rh-nzd\"]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete" + }, + "response": { + "body": { + "string": "{\"deleted_tests\":[{\"public_id\":\"u88-3rh-nzd\",\"deleted_at\":\"2024-01-26T10:20:50.259314+00:00\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 10:20:48 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Get-a-browser-test-result-returns-OK-response.json b/tests/scenarios/cassettes/v1/synthetics/Get-a-browser-test-result-returns-OK-response.json index 85652c81f..02c742b62 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Get-a-browser-test-result-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/synthetics/Get-a-browser-test-result-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/browser/2yy-sem-mjh/results/5671719892074090418"}, "response": {"body": {"string": "{\"status\":0,\"run_type\":0,\"check_time\":1657823117511,\"check_version\":2,\"result\":{\"runType\":0,\"browserType\":\"edge\",\"eventType\":\"finished\",\"stepDetails\":[{\"browserErrors\":[],\"vitalsMetrics\":[{\"url\":\"https://docs.datadoghq.com/\",\"lcp\":805.599,\"cls\":0.001}],\"skipped\":false,\"description\":\"Navigate to start URL\",\"warnings\":[],\"url\":\"about:blank\",\"snapshotBucketKey\":false,\"value\":\"https://docs.datadoghq.com/\",\"rumContext\":{\"sessionId\":\"058f89c5-df45-4ecd-ada4-3cebd80ded90\",\"applicationId\":\"737d835c-601a-46c1-853a-1af59907cff5\",\"viewId\":\"8eaade39-8793-436f-b7fb-2e74858e0583\"},\"duration\":2254,\"emailMessageBucketKeys\":false,\"allowFailure\":false,\"screenshotBucketKey\":true,\"isCritical\":false,\"type\":\"goToUrlAndMeasureTti\",\"stepId\":-1},{\"browserErrors\":[],\"vitalsMetrics\":[],\"skipped\":false,\"publicId\":\"s9n-dfr-cfw\",\"description\":\"Type text on input \\\"s\\\"\",\"emailMessageBucketKeys\":false,\"url\":\"https://docs.datadoghq.com/\",\"snapshotBucketKey\":false,\"value\":\"api\",\"rumContext\":{\"sessionId\":\"058f89c5-df45-4ecd-ada4-3cebd80ded90\",\"applicationId\":\"737d835c-601a-46c1-853a-1af59907cff5\",\"viewId\":\"8eaade39-8793-436f-b7fb-2e74858e0583\"},\"duration\":814,\"allowFailure\":false,\"screenshotBucketKey\":true,\"isCritical\":true,\"type\":\"typeText\",\"stepId\":11943140},{\"browserErrors\":[],\"vitalsMetrics\":[{\"url\":\"https://docs.datadoghq.com/search/?s=api\",\"lcp\":474.8}],\"skipped\":false,\"publicId\":\"tzz-gum-7rc\",\"description\":\"Press key 'Enter'\",\"emailMessageBucketKeys\":false,\"url\":\"https://docs.datadoghq.com/\",\"snapshotBucketKey\":false,\"value\":\"Enter\",\"rumContext\":{\"sessionId\":\"058f89c5-df45-4ecd-ada4-3cebd80ded90\",\"applicationId\":\"737d835c-601a-46c1-853a-1af59907cff5\",\"viewId\":\"2d5db8da-8605-4ca8-b001-c53b418f4cf0\"},\"duration\":1973,\"allowFailure\":false,\"screenshotBucketKey\":true,\"isCritical\":true,\"type\":\"pressKey\",\"stepId\":11943141},{\"browserErrors\":[],\"vitalsMetrics\":[{\"url\":\"https://docs.datadoghq.com/api/latest/scopes/\",\"lcp\":434.4,\"cls\":0.001}],\"skipped\":false,\"publicId\":\"waa-yji-ffq\",\"description\":\"Click on link \\\"API\\\"\",\"emailMessageBucketKeys\":false,\"url\":\"https://docs.datadoghq.com/search/?s=api\",\"snapshotBucketKey\":false,\"rumContext\":{\"sessionId\":\"058f89c5-df45-4ecd-ada4-3cebd80ded90\",\"applicationId\":\"737d835c-601a-46c1-853a-1af59907cff5\",\"viewId\":\"18bd7286-d1a6-4218-896b-33c9af642aa9\"},\"duration\":2090,\"allowFailure\":false,\"screenshotBucketKey\":true,\"isCritical\":true,\"type\":\"click\",\"stepId\":11943142}],\"browserVersion\":\"101.0.1210.32\",\"mainDC\":\"us1.prod\",\"timeToInteractive\":1596.800000011921,\"subtype\":null,\"device\":{\"name\":\"Laptop Large\",\"height\":1100,\"width\":1440,\"userAgent\":\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/101.0.1210.32 DatadogSynthetics\",\"id\":\"edge.laptop_large\",\"isMobile\":false,\"browser\":\"edge\"},\"hasArtifacts\":true,\"passed\":true,\"duration\":7131,\"startUrl\":\"https://docs.datadoghq.com/\"},\"probe_dc\":\"aws:ca-central-1\",\"result_id\":\"5671719892074090418\",\"check\":{\"type\":\"browser\",\"config\":{\"variables\":[],\"setCookie\":\"\",\"request\":{\"url\":\"https://docs.datadoghq.com/\",\"headers\":{},\"method\":\"GET\"},\"assertions\":[],\"configVariables\":[]},\"options\":{\"rumSettings\":{\"isEnabled\":true,\"applicationId\":\"737d835c-601a-46c1-853a-1af59907cff5\",\"clientTokenId\":94668},\"retry\":{\"count\":1,\"interval\":300},\"min_location_failed\":1,\"monitor_options\":{\"include_tags\":true,\"notify_no_data\":false,\"notify_audit\":false,\"new_host_delay\":300,\"renotify_interval\":0},\"noScreenshot\":false,\"tick_every\":3600,\"disableCsp\":false,\"disableCors\":false,\"device_ids\":[\"chrome.laptop_large\",\"firefox.laptop_large\",\"edge.laptop_large\"],\"min_failure_duration\":600,\"ignoreServerCertificateError\":false}},\"device_id\":\"edge.laptop_large\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 14 Jul 2022 19:05:28 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/browser/2yy-sem-mjh/results/5671719892074090418" + }, + "response": { + "body": { + "string": "{\"status\":0,\"run_type\":0,\"check_time\":1657823117511,\"check_version\":2,\"result\":{\"runType\":0,\"browserType\":\"edge\",\"eventType\":\"finished\",\"stepDetails\":[{\"browserErrors\":[],\"vitalsMetrics\":[{\"url\":\"https://docs.datadoghq.com/\",\"lcp\":805.599,\"cls\":0.001}],\"skipped\":false,\"description\":\"Navigate to start URL\",\"warnings\":[],\"url\":\"about:blank\",\"snapshotBucketKey\":false,\"value\":\"https://docs.datadoghq.com/\",\"rumContext\":{\"sessionId\":\"058f89c5-df45-4ecd-ada4-3cebd80ded90\",\"applicationId\":\"737d835c-601a-46c1-853a-1af59907cff5\",\"viewId\":\"8eaade39-8793-436f-b7fb-2e74858e0583\"},\"duration\":2254,\"emailMessageBucketKeys\":false,\"allowFailure\":false,\"screenshotBucketKey\":true,\"isCritical\":false,\"type\":\"goToUrlAndMeasureTti\",\"stepId\":-1},{\"browserErrors\":[],\"vitalsMetrics\":[],\"skipped\":false,\"publicId\":\"s9n-dfr-cfw\",\"description\":\"Type text on input \\\"s\\\"\",\"emailMessageBucketKeys\":false,\"url\":\"https://docs.datadoghq.com/\",\"snapshotBucketKey\":false,\"value\":\"api\",\"rumContext\":{\"sessionId\":\"058f89c5-df45-4ecd-ada4-3cebd80ded90\",\"applicationId\":\"737d835c-601a-46c1-853a-1af59907cff5\",\"viewId\":\"8eaade39-8793-436f-b7fb-2e74858e0583\"},\"duration\":814,\"allowFailure\":false,\"screenshotBucketKey\":true,\"isCritical\":true,\"type\":\"typeText\",\"stepId\":11943140},{\"browserErrors\":[],\"vitalsMetrics\":[{\"url\":\"https://docs.datadoghq.com/search/?s=api\",\"lcp\":474.8}],\"skipped\":false,\"publicId\":\"tzz-gum-7rc\",\"description\":\"Press key 'Enter'\",\"emailMessageBucketKeys\":false,\"url\":\"https://docs.datadoghq.com/\",\"snapshotBucketKey\":false,\"value\":\"Enter\",\"rumContext\":{\"sessionId\":\"058f89c5-df45-4ecd-ada4-3cebd80ded90\",\"applicationId\":\"737d835c-601a-46c1-853a-1af59907cff5\",\"viewId\":\"2d5db8da-8605-4ca8-b001-c53b418f4cf0\"},\"duration\":1973,\"allowFailure\":false,\"screenshotBucketKey\":true,\"isCritical\":true,\"type\":\"pressKey\",\"stepId\":11943141},{\"browserErrors\":[],\"vitalsMetrics\":[{\"url\":\"https://docs.datadoghq.com/api/latest/scopes/\",\"lcp\":434.4,\"cls\":0.001}],\"skipped\":false,\"publicId\":\"waa-yji-ffq\",\"description\":\"Click on link \\\"API\\\"\",\"emailMessageBucketKeys\":false,\"url\":\"https://docs.datadoghq.com/search/?s=api\",\"snapshotBucketKey\":false,\"rumContext\":{\"sessionId\":\"058f89c5-df45-4ecd-ada4-3cebd80ded90\",\"applicationId\":\"737d835c-601a-46c1-853a-1af59907cff5\",\"viewId\":\"18bd7286-d1a6-4218-896b-33c9af642aa9\"},\"duration\":2090,\"allowFailure\":false,\"screenshotBucketKey\":true,\"isCritical\":true,\"type\":\"click\",\"stepId\":11943142}],\"browserVersion\":\"101.0.1210.32\",\"mainDC\":\"us1.prod\",\"timeToInteractive\":1596.800000011921,\"subtype\":null,\"device\":{\"name\":\"Laptop Large\",\"height\":1100,\"width\":1440,\"userAgent\":\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/101.0.1210.32 DatadogSynthetics\",\"id\":\"edge.laptop_large\",\"isMobile\":false,\"browser\":\"edge\"},\"hasArtifacts\":true,\"passed\":true,\"duration\":7131,\"startUrl\":\"https://docs.datadoghq.com/\"},\"probe_dc\":\"aws:ca-central-1\",\"result_id\":\"5671719892074090418\",\"check\":{\"type\":\"browser\",\"config\":{\"variables\":[],\"setCookie\":\"\",\"request\":{\"url\":\"https://docs.datadoghq.com/\",\"headers\":{},\"method\":\"GET\"},\"assertions\":[],\"configVariables\":[]},\"options\":{\"rumSettings\":{\"isEnabled\":true,\"applicationId\":\"737d835c-601a-46c1-853a-1af59907cff5\",\"clientTokenId\":94668},\"retry\":{\"count\":1,\"interval\":300},\"min_location_failed\":1,\"monitor_options\":{\"include_tags\":true,\"notify_no_data\":false,\"notify_audit\":false,\"new_host_delay\":300,\"renotify_interval\":0},\"noScreenshot\":false,\"tick_every\":3600,\"disableCsp\":false,\"disableCors\":false,\"device_ids\":[\"chrome.laptop_large\",\"firefox.laptop_large\",\"edge.laptop_large\"],\"min_failure_duration\":600,\"ignoreServerCertificateError\":false}},\"device_id\":\"edge.laptop_large\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 14 Jul 2022 19:05:28 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Get-a-browser-test-s-latest-results-summaries-returns-OK-response.json b/tests/scenarios/cassettes/v1/synthetics/Get-a-browser-test-s-latest-results-summaries-returns-OK-response.json index 6cd135080..4b55979a4 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Get-a-browser-test-s-latest-results-summaries-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/synthetics/Get-a-browser-test-s-latest-results-summaries-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/browser/2yy-sem-mjh/results"}, "response": {"body": {"string": "{\"last_timestamp_fetched\":1652639281000,\"results\":[{\"status\":0,\"check_time\":1657823117511,\"check_version\":2,\"result\":{\"runType\":0,\"tunnel\":false,\"errorMessage\":null,\"timings\":null,\"stepCountTotal\":4,\"stepCountCompleted\":4,\"duration\":7131,\"deviceId\":\"edge.laptop_large\",\"passed\":true,\"device\":{\"name\":\"Laptop Large\",\"height\":1100,\"width\":1440,\"userAgent\":\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/101.0.1210.32 DatadogSynthetics\",\"id\":\"edge.laptop_large\",\"isMobile\":false,\"browser\":\"edge\"},\"errorCount\":0},\"probe_dc\":\"aws:ca-central-1\",\"result_id\":\"5671719892074090418\",\"device_id\":\"edge.laptop_large\"},{\"status\":0,\"check_time\":1657823117502,\"check_version\":2,\"result\":{\"runType\":0,\"tunnel\":false,\"errorMessage\":null,\"timings\":null,\"stepCountTotal\":4,\"stepCountCompleted\":4,\"duration\":4777,\"deviceId\":\"chrome.laptop_large\",\"passed\":true,\"device\":{\"name\":\"Laptop Large\",\"height\":1100,\"width\":1440,\"userAgent\":\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36 DatadogSynthetics\",\"id\":\"chrome.laptop_large\",\"isMobile\":false,\"browser\":\"chrome\"},\"errorCount\":1},\"probe_dc\":\"aws:ca-central-1\",\"result_id\":\"4818974208458839907\",\"device_id\":\"chrome.laptop_large\"},{\"status\":0,\"check_time\":1657823117502,\"check_version\":2,\"result\":{\"runType\":0,\"tunnel\":false,\"errorMessage\":null,\"timings\":null,\"stepCountTotal\":4,\"stepCountCompleted\":4,\"duration\":5838,\"deviceId\":\"firefox.laptop_large\",\"passed\":true,\"device\":{\"name\":\"Laptop Large\",\"height\":1100,\"width\":1440,\"userAgent\":\"Mozilla/5.0 (X11; Linux x86_64) Gecko/20100101 Firefox/98.0.2 DatadogSynthetics\",\"id\":\"firefox.laptop_large\",\"isMobile\":false,\"browser\":\"firefox\"},\"errorCount\":0},\"probe_dc\":\"aws:ca-central-1\",\"result_id\":\"5020771801584744095\",\"device_id\":\"firefox.laptop_large\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 14 Jul 2022 18:28:01 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/browser/2yy-sem-mjh/results" + }, + "response": { + "body": { + "string": "{\"last_timestamp_fetched\":1652639281000,\"results\":[{\"status\":0,\"check_time\":1657823117511,\"check_version\":2,\"result\":{\"runType\":0,\"tunnel\":false,\"errorMessage\":null,\"timings\":null,\"stepCountTotal\":4,\"stepCountCompleted\":4,\"duration\":7131,\"deviceId\":\"edge.laptop_large\",\"passed\":true,\"device\":{\"name\":\"Laptop Large\",\"height\":1100,\"width\":1440,\"userAgent\":\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/101.0.1210.32 DatadogSynthetics\",\"id\":\"edge.laptop_large\",\"isMobile\":false,\"browser\":\"edge\"},\"errorCount\":0},\"probe_dc\":\"aws:ca-central-1\",\"result_id\":\"5671719892074090418\",\"device_id\":\"edge.laptop_large\"},{\"status\":0,\"check_time\":1657823117502,\"check_version\":2,\"result\":{\"runType\":0,\"tunnel\":false,\"errorMessage\":null,\"timings\":null,\"stepCountTotal\":4,\"stepCountCompleted\":4,\"duration\":4777,\"deviceId\":\"chrome.laptop_large\",\"passed\":true,\"device\":{\"name\":\"Laptop Large\",\"height\":1100,\"width\":1440,\"userAgent\":\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36 DatadogSynthetics\",\"id\":\"chrome.laptop_large\",\"isMobile\":false,\"browser\":\"chrome\"},\"errorCount\":1},\"probe_dc\":\"aws:ca-central-1\",\"result_id\":\"4818974208458839907\",\"device_id\":\"chrome.laptop_large\"},{\"status\":0,\"check_time\":1657823117502,\"check_version\":2,\"result\":{\"runType\":0,\"tunnel\":false,\"errorMessage\":null,\"timings\":null,\"stepCountTotal\":4,\"stepCountCompleted\":4,\"duration\":5838,\"deviceId\":\"firefox.laptop_large\",\"passed\":true,\"device\":{\"name\":\"Laptop Large\",\"height\":1100,\"width\":1440,\"userAgent\":\"Mozilla/5.0 (X11; Linux x86_64) Gecko/20100101 Firefox/98.0.2 DatadogSynthetics\",\"id\":\"firefox.laptop_large\",\"isMobile\":false,\"browser\":\"firefox\"},\"errorCount\":0},\"probe_dc\":\"aws:ca-central-1\",\"result_id\":\"5020771801584744095\",\"device_id\":\"firefox.laptop_large\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 14 Jul 2022 18:28:01 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Get-an-API-test-result-returns-OK-response.json b/tests/scenarios/cassettes/v1/synthetics/Get-an-API-test-result-returns-OK-response.json index e66b81df0..596a730f3 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Get-an-API-test-result-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/synthetics/Get-an-API-test-result-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/hwb-332-3xe/results/3420446318379485707"}, "response": {"body": {"string": "{\"status\":0,\"run_type\":0,\"check_time\":1657824307023,\"check_version\":1,\"result\":{\"dnsServer\":\"8.8.4.4\",\"eventType\":\"finished\",\"resolutionAttempts\":[],\"timings\":{\"firstByte\":21.2,\"tcp\":2.4,\"ssl\":18,\"dns\":10.9,\"download\":0.2,\"total\":52.7},\"subtype\":\"http\",\"mainDC\":\"us1.prod\",\"passed\":true,\"resolvedIp\":\"142.250.189.238\",\"runType\":0,\"httpStatusCode\":301,\"assertionResults\":[{\"expected\":\"2000\",\"operator\":\"lessThan\",\"valid\":true,\"actual\":52.7,\"type\":\"responseTime\"},{\"expected\":\"301\",\"operator\":\"is\",\"valid\":true,\"actual\":301,\"type\":\"statusCode\"},{\"actual\":\"text/html; charset=UTF-8\",\"expected\":\"text/html; charset=UTF-8\",\"valid\":true,\"operator\":\"is\",\"property\":\"content-type\",\"type\":\"header\"}],\"responseSize\":220},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3420446318379485707\",\"check\":{\"type\":\"api\",\"config\":{\"request\":{\"url\":\"https://google.com\",\"method\":\"GET\"},\"assertions\":[{\"operator\":\"lessThan\",\"type\":\"responseTime\",\"target\":2000},{\"operator\":\"is\",\"type\":\"statusCode\",\"target\":301},{\"operator\":\"is\",\"property\":\"content-type\",\"type\":\"header\",\"target\":\"text/html; charset=UTF-8\"}]},\"options\":{\"min_location_failed\":1,\"monitor_options\":{\"include_tags\":true,\"notify_no_data\":false,\"notify_audit\":false,\"new_host_delay\":300,\"renotify_interval\":0},\"tick_every\":60,\"monitor_name\":\"Tesst\",\"min_failure_duration\":0,\"httpVersion\":\"http1\"}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 14 Jul 2022 18:46:34 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/hwb-332-3xe/results/3420446318379485707" + }, + "response": { + "body": { + "string": "{\"status\":0,\"run_type\":0,\"check_time\":1657824307023,\"check_version\":1,\"result\":{\"dnsServer\":\"8.8.4.4\",\"eventType\":\"finished\",\"resolutionAttempts\":[],\"timings\":{\"firstByte\":21.2,\"tcp\":2.4,\"ssl\":18,\"dns\":10.9,\"download\":0.2,\"total\":52.7},\"subtype\":\"http\",\"mainDC\":\"us1.prod\",\"passed\":true,\"resolvedIp\":\"142.250.189.238\",\"runType\":0,\"httpStatusCode\":301,\"assertionResults\":[{\"expected\":\"2000\",\"operator\":\"lessThan\",\"valid\":true,\"actual\":52.7,\"type\":\"responseTime\"},{\"expected\":\"301\",\"operator\":\"is\",\"valid\":true,\"actual\":301,\"type\":\"statusCode\"},{\"actual\":\"text/html; charset=UTF-8\",\"expected\":\"text/html; charset=UTF-8\",\"valid\":true,\"operator\":\"is\",\"property\":\"content-type\",\"type\":\"header\"}],\"responseSize\":220},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3420446318379485707\",\"check\":{\"type\":\"api\",\"config\":{\"request\":{\"url\":\"https://google.com\",\"method\":\"GET\"},\"assertions\":[{\"operator\":\"lessThan\",\"type\":\"responseTime\",\"target\":2000},{\"operator\":\"is\",\"type\":\"statusCode\",\"target\":301},{\"operator\":\"is\",\"property\":\"content-type\",\"type\":\"header\",\"target\":\"text/html; charset=UTF-8\"}]},\"options\":{\"min_location_failed\":1,\"monitor_options\":{\"include_tags\":true,\"notify_no_data\":false,\"notify_audit\":false,\"new_host_delay\":300,\"renotify_interval\":0},\"tick_every\":60,\"monitor_name\":\"Tesst\",\"min_failure_duration\":0,\"httpVersion\":\"http1\"}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 14 Jul 2022 18:46:34 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Get-an-API-test-result-returns-result-with-failure-object.json b/tests/scenarios/cassettes/v1/synthetics/Get-an-API-test-result-returns-result-with-failure-object.json index e752056b9..3415c55a9 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Get-an-API-test-result-returns-result-with-failure-object.json +++ b/tests/scenarios/cassettes/v1/synthetics/Get-an-API-test-result-returns-result-with-failure-object.json @@ -1 +1,135 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"config\":{\"assertions\":[{\"operator\":\"lessThan\",\"target\":1000,\"type\":\"responseTime\"}],\"request\":{\"method\":\"GET\",\"url\":\"https://app.datadfoghq.com\"}},\"locations\":[\"aws:eu-west-3\"],\"message\":\"Testing wrong DNS error\",\"name\":\"Test-Get_an_API_test_result_returns_result_with_failure_object-1644495858\",\"options\":{\"min_failure_duration\":0,\"min_location_failed\":1,\"monitor_options\":{\"renotify_interval\":0},\"tick_every\":86400},\"subtype\":\"http\",\"tags\":[],\"type\":\"api\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api"}, "response": {"body": {"string": "{\"status\":\"live\",\"public_id\":\"ive-g7h-dgu\",\"tags\":[],\"org_id\":321813,\"locations\":[\"aws:eu-west-3\"],\"message\":\"Testing wrong DNS error\",\"deleted_at\":null,\"name\":\"Test-Get_an_API_test_result_returns_result_with_failure_object-1644495858\",\"monitor_id\":63812392,\"type\":\"api\",\"created_at\":\"2022-02-10T12:24:19.316262+00:00\",\"modified_at\":\"2022-02-10T12:24:19.316262+00:00\",\"subtype\":\"http\",\"config\":{\"request\":{\"url\":\"https://app.datadfoghq.com\",\"method\":\"GET\"},\"assertions\":[{\"operator\":\"lessThan\",\"type\":\"responseTime\",\"target\":1000}]},\"options\":{\"monitor_options\":{\"notify_audit\":false,\"locked\":false,\"include_tags\":true,\"new_host_delay\":300,\"notify_no_data\":false,\"renotify_interval\":0},\"tick_every\":86400,\"min_failure_duration\":0,\"min_location_failed\":1}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 10 Feb 2022 12:24:18 GMT"}, {"request": {"body": {"string": "{\"tests\":[{\"public_id\":\"ive-g7h-dgu\"}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/trigger"}, "response": {"body": {"string": "{\"batch_id\":null,\"results\":[{\"result_id\":\"990211588540730529\",\"public_id\":\"ive-g7h-dgu\",\"location\":32153}],\"triggered_check_ids\":[\"ive-g7h-dgu\"],\"locations\":[{\"display_name\":\"Paris (AWS)\",\"name\":\"aws:eu-west-3\",\"region\":\"Europe\",\"is_active\":true,\"is_public\":true,\"id\":32153}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 10 Feb 2022 12:24:18 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/ive-g7h-dgu/results/990211588540730529"}, "response": {"body": {"string": "{\"status\":1,\"run_type\":3,\"check_time\":1644495859933,\"check_version\":1,\"result\":{\"subtype\":\"http\",\"eventType\":\"finished\",\"timings\":{\"total\":45.8,\"dns\":14.5},\"failure\":{\"message\":\"Error during DNS resolution of hostname app.datadfoghq.com (ENOTFOUND).\",\"code\":\"DNS\"},\"mainDC\":\"us1.prod\",\"passed\":false,\"error\":\"Error during DNS resolution (ENOTFOUND).\",\"runType\":3,\"enrichment\":{}},\"probe_dc\":\"aws:eu-west-3\",\"result_id\":\"990211588540730529\",\"check\":{\"type\":\"api\",\"config\":{\"request\":{\"url\":\"https://app.datadfoghq.com\",\"method\":\"GET\"},\"assertions\":[{\"operator\":\"lessThan\",\"type\":\"responseTime\",\"target\":1000}]},\"options\":{\"monitor_options\":{\"notify_audit\":false,\"locked\":false,\"include_tags\":true,\"new_host_delay\":300,\"notify_no_data\":false,\"renotify_interval\":0},\"tick_every\":86400,\"min_failure_duration\":0,\"min_location_failed\":1}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 10 Feb 2022 12:24:18 GMT"}, {"request": {"body": {"string": "{\"public_ids\":[\"ive-g7h-dgu\"]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete"}, "response": {"body": {"string": "{\"deleted_tests\":[{\"deleted_at\":\"2022-02-10T12:24:21.045390+00:00\",\"public_id\":\"ive-g7h-dgu\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 10 Feb 2022 12:24:18 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"config\":{\"assertions\":[{\"operator\":\"lessThan\",\"target\":1000,\"type\":\"responseTime\"}],\"request\":{\"method\":\"GET\",\"url\":\"https://app.datadfoghq.com\"}},\"locations\":[\"aws:eu-west-3\"],\"message\":\"Testing wrong DNS error\",\"name\":\"Test-Get_an_API_test_result_returns_result_with_failure_object-1644495858\",\"options\":{\"min_failure_duration\":0,\"min_location_failed\":1,\"monitor_options\":{\"renotify_interval\":0},\"tick_every\":86400},\"subtype\":\"http\",\"tags\":[],\"type\":\"api\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api" + }, + "response": { + "body": { + "string": "{\"status\":\"live\",\"public_id\":\"ive-g7h-dgu\",\"tags\":[],\"org_id\":321813,\"locations\":[\"aws:eu-west-3\"],\"message\":\"Testing wrong DNS error\",\"deleted_at\":null,\"name\":\"Test-Get_an_API_test_result_returns_result_with_failure_object-1644495858\",\"monitor_id\":63812392,\"type\":\"api\",\"created_at\":\"2022-02-10T12:24:19.316262+00:00\",\"modified_at\":\"2022-02-10T12:24:19.316262+00:00\",\"subtype\":\"http\",\"config\":{\"request\":{\"url\":\"https://app.datadfoghq.com\",\"method\":\"GET\"},\"assertions\":[{\"operator\":\"lessThan\",\"type\":\"responseTime\",\"target\":1000}]},\"options\":{\"monitor_options\":{\"notify_audit\":false,\"locked\":false,\"include_tags\":true,\"new_host_delay\":300,\"notify_no_data\":false,\"renotify_interval\":0},\"tick_every\":86400,\"min_failure_duration\":0,\"min_location_failed\":1}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 10 Feb 2022 12:24:18 GMT" + }, + { + "request": { + "body": { + "string": "{\"tests\":[{\"public_id\":\"ive-g7h-dgu\"}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/trigger" + }, + "response": { + "body": { + "string": "{\"batch_id\":null,\"results\":[{\"result_id\":\"990211588540730529\",\"public_id\":\"ive-g7h-dgu\",\"location\":32153}],\"triggered_check_ids\":[\"ive-g7h-dgu\"],\"locations\":[{\"display_name\":\"Paris (AWS)\",\"name\":\"aws:eu-west-3\",\"region\":\"Europe\",\"is_active\":true,\"is_public\":true,\"id\":32153}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 10 Feb 2022 12:24:18 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/ive-g7h-dgu/results/990211588540730529" + }, + "response": { + "body": { + "string": "{\"status\":1,\"run_type\":3,\"check_time\":1644495859933,\"check_version\":1,\"result\":{\"subtype\":\"http\",\"eventType\":\"finished\",\"timings\":{\"total\":45.8,\"dns\":14.5},\"failure\":{\"message\":\"Error during DNS resolution of hostname app.datadfoghq.com (ENOTFOUND).\",\"code\":\"DNS\"},\"mainDC\":\"us1.prod\",\"passed\":false,\"error\":\"Error during DNS resolution (ENOTFOUND).\",\"runType\":3,\"enrichment\":{}},\"probe_dc\":\"aws:eu-west-3\",\"result_id\":\"990211588540730529\",\"check\":{\"type\":\"api\",\"config\":{\"request\":{\"url\":\"https://app.datadfoghq.com\",\"method\":\"GET\"},\"assertions\":[{\"operator\":\"lessThan\",\"type\":\"responseTime\",\"target\":1000}]},\"options\":{\"monitor_options\":{\"notify_audit\":false,\"locked\":false,\"include_tags\":true,\"new_host_delay\":300,\"notify_no_data\":false,\"renotify_interval\":0},\"tick_every\":86400,\"min_failure_duration\":0,\"min_location_failed\":1}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 10 Feb 2022 12:24:18 GMT" + }, + { + "request": { + "body": { + "string": "{\"public_ids\":[\"ive-g7h-dgu\"]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete" + }, + "response": { + "body": { + "string": "{\"deleted_tests\":[{\"deleted_at\":\"2022-02-10T12:24:21.045390+00:00\",\"public_id\":\"ive-g7h-dgu\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 10 Feb 2022 12:24:18 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Get-an-API-test-s-latest-results-summaries-returns-OK-response.json b/tests/scenarios/cassettes/v1/synthetics/Get-an-API-test-s-latest-results-summaries-returns-OK-response.json index 8dd82b8fb..6c0c65a1d 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Get-an-API-test-s-latest-results-summaries-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/synthetics/Get-an-API-test-s-latest-results-summaries-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/hwb-332-3xe/results"}, "response": {"body": {"string": "{\"last_timestamp_fetched\":1657814887000,\"results\":[{\"status\":0,\"check_time\":1657823827021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.9,\"tcp\":2.2,\"ssl\":16.6,\"dns\":43.6,\"download\":0.2,\"total\":84.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2147451725290613856\"},{\"status\":0,\"check_time\":1657823767022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.1,\"tcp\":2.4,\"ssl\":17.3,\"dns\":2.7,\"download\":0.2,\"total\":43.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2736918053597593363\"},{\"status\":0,\"check_time\":1657823707022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.3,\"tcp\":1.9,\"ssl\":17.6,\"dns\":10.6,\"download\":0.2,\"total\":49.6},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5899589886945153316\"},{\"status\":0,\"check_time\":1657823647064,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.6,\"tcp\":2,\"ssl\":16.4,\"dns\":10.8,\"download\":0.2,\"total\":52},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3136878677884618026\"},{\"status\":0,\"check_time\":1657823587049,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.3,\"tcp\":2.1,\"ssl\":16.4,\"dns\":2.5,\"download\":0.2,\"total\":41.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"7030222077614277750\"},{\"status\":0,\"check_time\":1657823527022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.1,\"tcp\":2.1,\"ssl\":16.6,\"dns\":2.2,\"download\":0.2,\"total\":40.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3940660120779028557\"},{\"status\":0,\"check_time\":1657823467021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.2,\"tcp\":2.3,\"ssl\":16.9,\"dns\":6.7,\"download\":0.2,\"total\":49.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"7648732563321764711\"},{\"status\":0,\"check_time\":1657823407027,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.9,\"tcp\":2.4,\"ssl\":17.2,\"dns\":2.8,\"download\":0.2,\"total\":45.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4703460869145734705\"},{\"status\":0,\"check_time\":1657823347028,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.3,\"tcp\":2.5,\"ssl\":17.8,\"dns\":2.8,\"download\":0.2,\"total\":44.6},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3933274257899992839\"},{\"status\":0,\"check_time\":1657823287024,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20,\"tcp\":2.1,\"ssl\":16.7,\"dns\":4.7,\"download\":0.3,\"total\":43.8},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"7524092567975741345\"},{\"status\":0,\"check_time\":1657823227084,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.7,\"tcp\":2.3,\"ssl\":16.8,\"dns\":10.4,\"download\":0.2,\"total\":49.4},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2600036611950900880\"},{\"status\":0,\"check_time\":1657823167022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.5,\"tcp\":2.3,\"ssl\":16.2,\"dns\":2.6,\"download\":0.2,\"total\":40.8},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"335476697967636252\"},{\"status\":0,\"check_time\":1657823107022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.8,\"tcp\":2.1,\"ssl\":16.7,\"dns\":3.4,\"download\":0.2,\"total\":43.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6929008513886756680\"},{\"status\":0,\"check_time\":1657823047054,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.5,\"tcp\":2.3,\"ssl\":16.7,\"dns\":10.3,\"download\":0.2,\"total\":52},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5439559125971658253\"},{\"status\":0,\"check_time\":1657822987022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.9,\"tcp\":2.4,\"ssl\":18.9,\"dns\":3.2,\"download\":0.2,\"total\":45.6},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"355794928230704983\"},{\"status\":0,\"check_time\":1657822927021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.6,\"tcp\":2.3,\"ssl\":18.6,\"dns\":2.5,\"download\":0.2,\"total\":45.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"643336001610722367\"},{\"status\":0,\"check_time\":1657822867020,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.2,\"tcp\":2.4,\"ssl\":17.3,\"dns\":18.6,\"download\":0.2,\"total\":58.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"21738872680101064\"},{\"status\":0,\"check_time\":1657822807021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":60.7,\"tcp\":2.2,\"ssl\":16.7,\"dns\":2.6,\"download\":0.2,\"total\":82.4},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6856078697840735389\"},{\"status\":0,\"check_time\":1657822747027,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.7,\"tcp\":2,\"ssl\":17.3,\"dns\":2.6,\"download\":0.3,\"total\":41.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4075204224785704431\"},{\"status\":0,\"check_time\":1657822687021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":24.1,\"tcp\":2.1,\"ssl\":16.8,\"dns\":10.1,\"download\":0.2,\"total\":53.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6209783554255170024\"},{\"status\":0,\"check_time\":1657822627040,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.2,\"tcp\":2.1,\"ssl\":16.7,\"dns\":2.6,\"download\":0.2,\"total\":41.8},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6903629827895866973\"},{\"status\":0,\"check_time\":1657822567021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.8,\"tcp\":2,\"ssl\":16.3,\"dns\":2.6,\"download\":0.2,\"total\":40.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2924796953366770835\"},{\"status\":0,\"check_time\":1657822507022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.1,\"tcp\":2.1,\"ssl\":16.8,\"dns\":19.7,\"download\":0.2,\"total\":57.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6379325368393251179\"},{\"status\":0,\"check_time\":1657822447020,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.2,\"tcp\":2.2,\"ssl\":16.8,\"dns\":10.1,\"download\":0.2,\"total\":49.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2686055343750621487\"},{\"status\":0,\"check_time\":1657822387021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.2,\"tcp\":2,\"ssl\":17.4,\"dns\":2.5,\"download\":0.2,\"total\":44.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5543182747742243143\"},{\"status\":0,\"check_time\":1657822327021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20,\"tcp\":2.1,\"ssl\":17.6,\"dns\":18.2,\"download\":0.2,\"total\":58.1},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2269636868419356372\"},{\"status\":0,\"check_time\":1657822267022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.5,\"tcp\":2.1,\"ssl\":16.7,\"dns\":42.7,\"download\":0.2,\"total\":83.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5469474174303798711\"},{\"status\":0,\"check_time\":1657822207020,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.3,\"tcp\":2.1,\"ssl\":17.7,\"dns\":10.2,\"download\":0.2,\"total\":49.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4586780187835008147\"},{\"status\":0,\"check_time\":1657822147036,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.5,\"tcp\":2.1,\"ssl\":17.5,\"dns\":11.4,\"download\":0.2,\"total\":51.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6258993996901260844\"},{\"status\":0,\"check_time\":1657822087023,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21,\"tcp\":2.7,\"ssl\":17.3,\"dns\":2.8,\"download\":0.2,\"total\":44},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3646950137218922815\"},{\"status\":0,\"check_time\":1657822027020,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.8,\"tcp\":2.5,\"ssl\":17.2,\"dns\":2.7,\"download\":0.2,\"total\":45.4},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4923985243964600124\"},{\"status\":0,\"check_time\":1657821967022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.9,\"tcp\":2.4,\"ssl\":17.5,\"dns\":2.8,\"download\":0.2,\"total\":44.8},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3453405071321888013\"},{\"status\":0,\"check_time\":1657821907027,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.5,\"tcp\":2.5,\"ssl\":19.1,\"dns\":10.5,\"download\":0.3,\"total\":53.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4860780408851125674\"},{\"status\":0,\"check_time\":1657821847023,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":18.4,\"tcp\":2.3,\"ssl\":18.1,\"dns\":17.8,\"download\":0.2,\"total\":56.8},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3538453859314235769\"},{\"status\":0,\"check_time\":1657821787026,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.5,\"tcp\":2.4,\"ssl\":16.9,\"dns\":43.8,\"download\":0.4,\"total\":85},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5338646328588574108\"},{\"status\":0,\"check_time\":1657821727021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.8,\"tcp\":2.4,\"ssl\":18.4,\"dns\":19.9,\"download\":0.2,\"total\":62.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6815265324582998383\"},{\"status\":0,\"check_time\":1657821667021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.4,\"tcp\":2.5,\"ssl\":17.7,\"dns\":2.5,\"download\":0.2,\"total\":44.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2206194445304856139\"},{\"status\":0,\"check_time\":1657821607022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20,\"tcp\":2.2,\"ssl\":17.6,\"dns\":43.6,\"download\":0.2,\"total\":83.6},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3007569586343396469\"},{\"status\":0,\"check_time\":1657821547022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.3,\"tcp\":2.3,\"ssl\":17.5,\"dns\":10.1,\"download\":0.2,\"total\":52.4},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4061663753893569371\"},{\"status\":0,\"check_time\":1657821487027,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.9,\"tcp\":2,\"ssl\":17,\"dns\":2.3,\"download\":0.2,\"total\":42.4},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"8612160026496241996\"},{\"status\":0,\"check_time\":1657821427048,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.3,\"tcp\":2.4,\"ssl\":18.7,\"dns\":11.2,\"download\":0.2,\"total\":53.8},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6313951986856470204\"},{\"status\":0,\"check_time\":1657821367042,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.1,\"tcp\":2.4,\"ssl\":17.7,\"dns\":2.9,\"download\":0.2,\"total\":44.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"1601574064815468673\"},{\"status\":0,\"check_time\":1657821307022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.4,\"tcp\":1.9,\"ssl\":17.4,\"dns\":2.4,\"download\":0.2,\"total\":43.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2560914233719846030\"},{\"status\":0,\"check_time\":1657821247025,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.1,\"tcp\":2.5,\"ssl\":17.9,\"dns\":20.4,\"download\":0.3,\"total\":62.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"7403136938724560421\"},{\"status\":0,\"check_time\":1657821187028,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.3,\"tcp\":2.1,\"ssl\":17.5,\"dns\":10.1,\"download\":0.2,\"total\":50.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"1481356933037875147\"},{\"status\":0,\"check_time\":1657821127056,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.9,\"tcp\":2,\"ssl\":17.6,\"dns\":2.9,\"download\":0.2,\"total\":43.6},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5003900951412223560\"},{\"status\":0,\"check_time\":1657821067075,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.6,\"tcp\":2.4,\"ssl\":18.2,\"dns\":3,\"download\":0.2,\"total\":43.4},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"866067104085006359\"},{\"status\":0,\"check_time\":1657821007044,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.7,\"tcp\":2,\"ssl\":17.4,\"dns\":2.5,\"download\":0.2,\"total\":43.8},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"9031070472021706974\"},{\"status\":0,\"check_time\":1657820947022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.9,\"tcp\":2.5,\"ssl\":17.5,\"dns\":20.1,\"download\":0.2,\"total\":60.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"7243890839725314447\"},{\"status\":0,\"check_time\":1657820887021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.9,\"tcp\":2.1,\"ssl\":17.4,\"dns\":2.3,\"download\":0.2,\"total\":42.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6316459410374609034\"},{\"status\":0,\"check_time\":1657820827087,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.6,\"tcp\":2.1,\"ssl\":17,\"dns\":2.3,\"download\":0.2,\"total\":41.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2391163560644233898\"},{\"status\":0,\"check_time\":1657820767025,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.4,\"tcp\":2.4,\"ssl\":17.1,\"dns\":2.6,\"download\":0.2,\"total\":42.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2704426115135797654\"},{\"status\":0,\"check_time\":1657820707022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.8,\"tcp\":2.2,\"ssl\":16.9,\"dns\":2.6,\"download\":0.2,\"total\":43.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6468922312261958149\"},{\"status\":0,\"check_time\":1657820647028,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.3,\"tcp\":2.4,\"ssl\":18,\"dns\":2.7,\"download\":0.2,\"total\":43.6},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5978059985719800109\"},{\"status\":0,\"check_time\":1657820587020,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.4,\"tcp\":2.1,\"ssl\":17.3,\"dns\":9.9,\"download\":0.2,\"total\":48.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5475549957159652443\"},{\"status\":0,\"check_time\":1657820527023,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.5,\"tcp\":2.1,\"ssl\":16.8,\"dns\":43.5,\"download\":0.3,\"total\":83.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5764338012453727680\"},{\"status\":0,\"check_time\":1657820467022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.3,\"tcp\":2.4,\"ssl\":17.9,\"dns\":10.2,\"download\":0.2,\"total\":50},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5851746037187590562\"},{\"status\":0,\"check_time\":1657820407027,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.3,\"tcp\":2.4,\"ssl\":16.1,\"dns\":2.5,\"download\":0.2,\"total\":42.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"8566665391922084374\"},{\"status\":0,\"check_time\":1657820347025,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.3,\"tcp\":2.2,\"ssl\":17.5,\"dns\":11.5,\"download\":0.2,\"total\":51.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"7775361401432180009\"},{\"status\":0,\"check_time\":1657820287024,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.4,\"tcp\":2.1,\"ssl\":16.9,\"dns\":2.7,\"download\":0.3,\"total\":43.4},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5468206518334142168\"},{\"status\":0,\"check_time\":1657820227029,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.6,\"tcp\":2.6,\"ssl\":18.3,\"dns\":5.7,\"download\":0.3,\"total\":49.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4230011094833517307\"},{\"status\":0,\"check_time\":1657820167023,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.1,\"tcp\":2.1,\"ssl\":17.9,\"dns\":2.4,\"download\":0.3,\"total\":41.8},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"7951105577637093894\"},{\"status\":0,\"check_time\":1657820107050,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.2,\"tcp\":2.4,\"ssl\":17.8,\"dns\":10,\"download\":0.2,\"total\":51.6},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5868124116451126981\"},{\"status\":0,\"check_time\":1657820047021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.8,\"tcp\":2.4,\"ssl\":16.9,\"dns\":2.6,\"download\":0.3,\"total\":43},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5677724996851842329\"},{\"status\":0,\"check_time\":1657819987022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.8,\"tcp\":2.5,\"ssl\":17.5,\"dns\":11.4,\"download\":0.2,\"total\":52.4},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2850933094908220447\"},{\"status\":0,\"check_time\":1657819927023,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.5,\"tcp\":2.3,\"ssl\":17.6,\"dns\":2.6,\"download\":0.2,\"total\":43.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6454176558299049885\"},{\"status\":0,\"check_time\":1657819867020,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19,\"tcp\":2.4,\"ssl\":18.1,\"dns\":10.4,\"download\":0.2,\"total\":50.1},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6009668996360218693\"},{\"status\":0,\"check_time\":1657819807023,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.5,\"tcp\":2.4,\"ssl\":18.3,\"dns\":11.5,\"download\":0.2,\"total\":51.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6415494266530489047\"},{\"status\":0,\"check_time\":1657819747020,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.3,\"tcp\":2.2,\"ssl\":18,\"dns\":2.6,\"download\":0.2,\"total\":44.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5864798097247325195\"},{\"status\":0,\"check_time\":1657819687022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.3,\"tcp\":2.2,\"ssl\":17.5,\"dns\":2.3,\"download\":0.2,\"total\":42.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"509181295089261130\"},{\"status\":0,\"check_time\":1657819627046,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.4,\"tcp\":2.4,\"ssl\":17.2,\"dns\":10.2,\"download\":0.2,\"total\":51.4},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"1667150563071868315\"},{\"status\":0,\"check_time\":1657819567038,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.4,\"tcp\":2.3,\"ssl\":16.5,\"dns\":2.7,\"download\":0.2,\"total\":42.1},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"174495478946441012\"},{\"status\":0,\"check_time\":1657819507026,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.1,\"tcp\":2.1,\"ssl\":16.7,\"dns\":2.3,\"download\":0.2,\"total\":40.4},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4888866800783420329\"},{\"status\":0,\"check_time\":1657819447024,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.1,\"tcp\":2.4,\"ssl\":16.9,\"dns\":2.7,\"download\":0.2,\"total\":43.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6898902814159630987\"},{\"status\":0,\"check_time\":1657819387024,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.4,\"tcp\":2.4,\"ssl\":17.1,\"dns\":3.1,\"download\":0.2,\"total\":43.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5365518645050836616\"},{\"status\":0,\"check_time\":1657819327029,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.4,\"tcp\":2,\"ssl\":17.2,\"dns\":2.3,\"download\":0.2,\"total\":42.1},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3881839125364233987\"},{\"status\":0,\"check_time\":1657819267021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.7,\"tcp\":2.2,\"ssl\":15.8,\"dns\":17.9,\"download\":0.2,\"total\":57.8},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"9171121047299316715\"},{\"status\":0,\"check_time\":1657819207031,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.9,\"tcp\":2.2,\"ssl\":17.5,\"dns\":6.2,\"download\":0.3,\"total\":48.1},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6024257274088881438\"},{\"status\":0,\"check_time\":1657819147030,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.5,\"tcp\":2.3,\"ssl\":17.5,\"dns\":18,\"download\":0.2,\"total\":59.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"7617748266279263162\"},{\"status\":0,\"check_time\":1657819087022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.3,\"tcp\":2.4,\"ssl\":18.5,\"dns\":3.2,\"download\":0.3,\"total\":45.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"1919574935668889909\"},{\"status\":0,\"check_time\":1657819027023,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.5,\"tcp\":2.4,\"ssl\":17.1,\"dns\":20.1,\"download\":0.2,\"total\":61.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5509798148210738487\"},{\"status\":0,\"check_time\":1657818967023,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":18.9,\"tcp\":2.1,\"ssl\":16.4,\"dns\":2.6,\"download\":0.2,\"total\":40.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4189407303361700550\"},{\"status\":0,\"check_time\":1657818907025,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.6,\"tcp\":2.1,\"ssl\":16.6,\"dns\":3.5,\"download\":0.3,\"total\":43.1},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6086825031000349574\"},{\"status\":0,\"check_time\":1657818847022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.6,\"tcp\":2.2,\"ssl\":16.7,\"dns\":3.4,\"download\":0.2,\"total\":44.1},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"8711840686840939707\"},{\"status\":0,\"check_time\":1657818787026,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.7,\"tcp\":2.4,\"ssl\":17.7,\"dns\":2.9,\"download\":0.2,\"total\":45.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"7801820812346816155\"},{\"status\":0,\"check_time\":1657818727063,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.3,\"tcp\":2.3,\"ssl\":17.5,\"dns\":18.5,\"download\":0.2,\"total\":58.8},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"1716152521360265500\"},{\"status\":0,\"check_time\":1657818667021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.5,\"tcp\":2.3,\"ssl\":23,\"dns\":17.4,\"download\":0.2,\"total\":63.4},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"8877612450790845578\"},{\"status\":0,\"check_time\":1657818607024,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":18.8,\"tcp\":2.2,\"ssl\":17.7,\"dns\":17.3,\"download\":0.3,\"total\":56.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"7357117475121264950\"},{\"status\":0,\"check_time\":1657818547021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.9,\"tcp\":2.3,\"ssl\":16.1,\"dns\":2.5,\"download\":0.2,\"total\":42},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"7178414616121476040\"},{\"status\":0,\"check_time\":1657818487020,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.9,\"tcp\":2.5,\"ssl\":17,\"dns\":43.9,\"download\":0.2,\"total\":85.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"1406060691842611491\"},{\"status\":0,\"check_time\":1657818427021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.7,\"tcp\":2.3,\"ssl\":17.6,\"dns\":10.3,\"download\":0.2,\"total\":51.1},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2264363337220538735\"},{\"status\":0,\"check_time\":1657818367021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21,\"tcp\":2.4,\"ssl\":17.2,\"dns\":7.4,\"download\":0.2,\"total\":48.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2815123377588061307\"},{\"status\":0,\"check_time\":1657818307021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":26.8,\"tcp\":2,\"ssl\":16.8,\"dns\":10.5,\"download\":0.3,\"total\":56.4},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"7281507116475070141\"},{\"status\":0,\"check_time\":1657818247022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.8,\"tcp\":2.2,\"ssl\":16.9,\"dns\":3.2,\"download\":0.2,\"total\":44.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3326299500350925576\"},{\"status\":0,\"check_time\":1657818187025,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.2,\"tcp\":2.5,\"ssl\":17.2,\"dns\":10.2,\"download\":0.2,\"total\":51.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5706412366415447498\"},{\"status\":0,\"check_time\":1657818127026,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.1,\"tcp\":2.6,\"ssl\":17.1,\"dns\":42.8,\"download\":0.1,\"total\":83.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6832957454398735582\"},{\"status\":0,\"check_time\":1657818067029,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.4,\"tcp\":2.1,\"ssl\":16.8,\"dns\":11,\"download\":0.2,\"total\":49.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"505332710896558965\"},{\"status\":0,\"check_time\":1657818007022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.9,\"tcp\":2.4,\"ssl\":18.7,\"dns\":2.4,\"download\":0.2,\"total\":43.6},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3717359232452441539\"},{\"status\":0,\"check_time\":1657817947041,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.2,\"tcp\":2.5,\"ssl\":16.5,\"dns\":2.7,\"download\":0.2,\"total\":41.1},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6059009955560454402\"},{\"status\":0,\"check_time\":1657817887023,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.3,\"tcp\":2.2,\"ssl\":16.8,\"dns\":10.8,\"download\":0.3,\"total\":50.4},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4097087532848539935\"},{\"status\":0,\"check_time\":1657817827024,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22,\"tcp\":2.6,\"ssl\":17,\"dns\":2.5,\"download\":0.2,\"total\":44.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5570140122178196695\"},{\"status\":0,\"check_time\":1657817767024,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.2,\"tcp\":2.6,\"ssl\":16.5,\"dns\":42.6,\"download\":0.2,\"total\":82.1},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"8807839761137175209\"},{\"status\":0,\"check_time\":1657817707021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.5,\"tcp\":2.3,\"ssl\":16.9,\"dns\":2.8,\"download\":0.2,\"total\":43.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4598135831107636130\"},{\"status\":0,\"check_time\":1657817647049,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.5,\"tcp\":2.2,\"ssl\":16.6,\"dns\":2.4,\"download\":0.2,\"total\":41.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"8503974215646285521\"},{\"status\":0,\"check_time\":1657817587023,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.1,\"tcp\":2.1,\"ssl\":16.6,\"dns\":2.5,\"download\":0.2,\"total\":44.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4810581563399265961\"},{\"status\":0,\"check_time\":1657817527031,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.4,\"tcp\":2.3,\"ssl\":16.3,\"dns\":9.9,\"download\":0.2,\"total\":51.1},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"8662615886231808192\"},{\"status\":0,\"check_time\":1657817467033,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.7,\"tcp\":2.2,\"ssl\":16.8,\"dns\":10.1,\"download\":0.2,\"total\":53},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3787435357402421374\"},{\"status\":0,\"check_time\":1657817407156,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.6,\"tcp\":2,\"ssl\":17.4,\"dns\":2.8,\"download\":0.3,\"total\":46.1},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"8224869029160376969\"},{\"status\":0,\"check_time\":1657817347023,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.8,\"tcp\":2.4,\"ssl\":17,\"dns\":10.4,\"download\":0.2,\"total\":53.8},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4856507720487285799\"},{\"status\":0,\"check_time\":1657817287025,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.5,\"tcp\":2.8,\"ssl\":16.2,\"dns\":3.8,\"download\":0.2,\"total\":46.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"1336679613266057038\"},{\"status\":0,\"check_time\":1657817227021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.6,\"tcp\":2.5,\"ssl\":17,\"dns\":19.9,\"download\":0.2,\"total\":62.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2161996301298808434\"},{\"status\":0,\"check_time\":1657817167022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.5,\"tcp\":2.6,\"ssl\":17,\"dns\":20.3,\"download\":0.3,\"total\":63.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6156028875392528350\"},{\"status\":0,\"check_time\":1657817107024,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.3,\"tcp\":2,\"ssl\":17.5,\"dns\":9.9,\"download\":0.2,\"total\":51.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4159341805401327590\"},{\"status\":0,\"check_time\":1657817047027,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.9,\"tcp\":2.1,\"ssl\":16.5,\"dns\":9.9,\"download\":0.2,\"total\":52.6},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6334755055293095810\"},{\"status\":0,\"check_time\":1657816987021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.6,\"tcp\":2.1,\"ssl\":16.4,\"dns\":2.2,\"download\":0.3,\"total\":44.6},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2680156533562131601\"},{\"status\":0,\"check_time\":1657816927032,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":24.2,\"tcp\":2.5,\"ssl\":16.9,\"dns\":2.8,\"download\":0.2,\"total\":46.6},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"806227860631968517\"},{\"status\":0,\"check_time\":1657816867022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23,\"tcp\":2.3,\"ssl\":18,\"dns\":10.4,\"download\":0.2,\"total\":53.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6225023771213676781\"},{\"status\":0,\"check_time\":1657816807022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.2,\"tcp\":2.4,\"ssl\":16.8,\"dns\":2.5,\"download\":0.2,\"total\":45.1},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4660246960847540887\"},{\"status\":0,\"check_time\":1657816747020,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.1,\"tcp\":2.3,\"ssl\":16.4,\"dns\":9.9,\"download\":0.2,\"total\":51.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2730563290445354243\"},{\"status\":0,\"check_time\":1657816687022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":55.9,\"tcp\":2.4,\"ssl\":17.7,\"dns\":10.2,\"download\":0.3,\"total\":86.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3218939371040514195\"},{\"status\":0,\"check_time\":1657816627021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23,\"tcp\":2.3,\"ssl\":16.7,\"dns\":19.8,\"download\":0.2,\"total\":62},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2163128864459720479\"},{\"status\":0,\"check_time\":1657816567022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.3,\"tcp\":2.1,\"ssl\":16.4,\"dns\":11,\"download\":0.2,\"total\":52},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"9077489792251189297\"},{\"status\":0,\"check_time\":1657816507049,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":28.2,\"tcp\":2.3,\"ssl\":16.8,\"dns\":17.8,\"download\":0.2,\"total\":65.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"1199544834513107706\"},{\"status\":0,\"check_time\":1657816447024,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.1,\"tcp\":2.4,\"ssl\":17,\"dns\":2.8,\"download\":0.2,\"total\":45.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5475519602143380768\"},{\"status\":0,\"check_time\":1657816387022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.2,\"tcp\":2.3,\"ssl\":17,\"dns\":16.2,\"download\":0.2,\"total\":58.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3322297213026331409\"},{\"status\":0,\"check_time\":1657816327020,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23,\"tcp\":2.1,\"ssl\":16.7,\"dns\":2.2,\"download\":0.2,\"total\":44.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4454927692741030599\"},{\"status\":0,\"check_time\":1657816267021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":25,\"tcp\":2.1,\"ssl\":16.7,\"dns\":2.4,\"download\":0.2,\"total\":46.4},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5371309288811496964\"},{\"status\":0,\"check_time\":1657816207021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23,\"tcp\":2.3,\"ssl\":16.1,\"dns\":2.5,\"download\":0.2,\"total\":44.1},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4376648719392927012\"},{\"status\":0,\"check_time\":1657816147023,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.5,\"tcp\":2.1,\"ssl\":16.5,\"dns\":17.3,\"download\":0.2,\"total\":58.6},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"1127427600058908196\"},{\"status\":0,\"check_time\":1657816087022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.4,\"tcp\":2.4,\"ssl\":17.6,\"dns\":10.3,\"download\":0.2,\"total\":52.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4652809420321214711\"},{\"status\":0,\"check_time\":1657816027021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.8,\"tcp\":2.3,\"ssl\":17.2,\"dns\":3.3,\"download\":0.2,\"total\":46.8},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"1237780483267320221\"},{\"status\":0,\"check_time\":1657815967054,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.7,\"tcp\":2,\"ssl\":16.6,\"dns\":2.2,\"download\":0.2,\"total\":43.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6674705045105926123\"},{\"status\":0,\"check_time\":1657815907021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.7,\"tcp\":2.1,\"ssl\":17.3,\"dns\":11.3,\"download\":0.2,\"total\":53.6},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"8676336293520815129\"},{\"status\":0,\"check_time\":1657815847020,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.4,\"tcp\":2.4,\"ssl\":17.1,\"dns\":3,\"download\":0.2,\"total\":46.1},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"7308292714152753737\"},{\"status\":0,\"check_time\":1657815787019,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.3,\"tcp\":2.1,\"ssl\":17.1,\"dns\":11,\"download\":0.2,\"total\":53.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2100249415294414977\"},{\"status\":0,\"check_time\":1657815727027,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23,\"tcp\":2.6,\"ssl\":18.3,\"dns\":20.1,\"download\":0.3,\"total\":64.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"7662114915452963744\"},{\"status\":0,\"check_time\":1657815667075,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":25.2,\"tcp\":2.5,\"ssl\":17.2,\"dns\":2.5,\"download\":0.3,\"total\":47.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"8478669664799606065\"},{\"status\":0,\"check_time\":1657815607023,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.6,\"tcp\":2,\"ssl\":17.3,\"dns\":3.8,\"download\":0.2,\"total\":45.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3551473628167424908\"},{\"status\":0,\"check_time\":1657815547028,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.4,\"tcp\":2.5,\"ssl\":17.5,\"dns\":42.7,\"download\":0.3,\"total\":86.4},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5136372600859209498\"},{\"status\":0,\"check_time\":1657815487021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.6,\"tcp\":2.4,\"ssl\":17.9,\"dns\":18.2,\"download\":0.2,\"total\":61.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2688748499791518542\"},{\"status\":0,\"check_time\":1657815427041,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22,\"tcp\":2,\"ssl\":16.5,\"dns\":9.8,\"download\":0.2,\"total\":50.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4652508950470510558\"},{\"status\":0,\"check_time\":1657815367022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":24.6,\"tcp\":2.4,\"ssl\":16.8,\"dns\":2.5,\"download\":0.2,\"total\":46.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6844266696357171543\"},{\"status\":0,\"check_time\":1657815307023,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.8,\"tcp\":2.5,\"ssl\":17.1,\"dns\":10.4,\"download\":0.2,\"total\":53},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3407365683554059063\"},{\"status\":0,\"check_time\":1657815247037,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.1,\"tcp\":2.4,\"ssl\":17.4,\"dns\":5.7,\"download\":0.2,\"total\":48.8},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"8145208580637225280\"},{\"status\":0,\"check_time\":1657815187022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.8,\"tcp\":2.5,\"ssl\":17.3,\"dns\":10.1,\"download\":0.2,\"total\":53.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"577296595087751042\"},{\"status\":0,\"check_time\":1657815127023,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":37.9,\"tcp\":2,\"ssl\":16.4,\"dns\":2.2,\"download\":0.2,\"total\":58.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3860557533040322120\"},{\"status\":0,\"check_time\":1657815067025,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.1,\"tcp\":2.5,\"ssl\":16.2,\"dns\":17.8,\"download\":0.2,\"total\":59.8},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6555482765793314735\"},{\"status\":0,\"check_time\":1657815007022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.1,\"tcp\":2.1,\"ssl\":16.6,\"dns\":2.2,\"download\":0.2,\"total\":44.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4608646129128827646\"},{\"status\":0,\"check_time\":1657814947022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.8,\"tcp\":2.4,\"ssl\":17.7,\"dns\":11.6,\"download\":0.2,\"total\":55.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"647018035394677274\"},{\"status\":0,\"check_time\":1657814887021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.3,\"tcp\":2.1,\"ssl\":17.5,\"dns\":2.5,\"download\":0.2,\"total\":45.6},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4422690840270934969\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 14 Jul 2022 18:37:24 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/hwb-332-3xe/results" + }, + "response": { + "body": { + "string": "{\"last_timestamp_fetched\":1657814887000,\"results\":[{\"status\":0,\"check_time\":1657823827021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.9,\"tcp\":2.2,\"ssl\":16.6,\"dns\":43.6,\"download\":0.2,\"total\":84.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2147451725290613856\"},{\"status\":0,\"check_time\":1657823767022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.1,\"tcp\":2.4,\"ssl\":17.3,\"dns\":2.7,\"download\":0.2,\"total\":43.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2736918053597593363\"},{\"status\":0,\"check_time\":1657823707022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.3,\"tcp\":1.9,\"ssl\":17.6,\"dns\":10.6,\"download\":0.2,\"total\":49.6},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5899589886945153316\"},{\"status\":0,\"check_time\":1657823647064,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.6,\"tcp\":2,\"ssl\":16.4,\"dns\":10.8,\"download\":0.2,\"total\":52},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3136878677884618026\"},{\"status\":0,\"check_time\":1657823587049,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.3,\"tcp\":2.1,\"ssl\":16.4,\"dns\":2.5,\"download\":0.2,\"total\":41.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"7030222077614277750\"},{\"status\":0,\"check_time\":1657823527022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.1,\"tcp\":2.1,\"ssl\":16.6,\"dns\":2.2,\"download\":0.2,\"total\":40.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3940660120779028557\"},{\"status\":0,\"check_time\":1657823467021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.2,\"tcp\":2.3,\"ssl\":16.9,\"dns\":6.7,\"download\":0.2,\"total\":49.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"7648732563321764711\"},{\"status\":0,\"check_time\":1657823407027,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.9,\"tcp\":2.4,\"ssl\":17.2,\"dns\":2.8,\"download\":0.2,\"total\":45.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4703460869145734705\"},{\"status\":0,\"check_time\":1657823347028,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.3,\"tcp\":2.5,\"ssl\":17.8,\"dns\":2.8,\"download\":0.2,\"total\":44.6},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3933274257899992839\"},{\"status\":0,\"check_time\":1657823287024,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20,\"tcp\":2.1,\"ssl\":16.7,\"dns\":4.7,\"download\":0.3,\"total\":43.8},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"7524092567975741345\"},{\"status\":0,\"check_time\":1657823227084,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.7,\"tcp\":2.3,\"ssl\":16.8,\"dns\":10.4,\"download\":0.2,\"total\":49.4},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2600036611950900880\"},{\"status\":0,\"check_time\":1657823167022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.5,\"tcp\":2.3,\"ssl\":16.2,\"dns\":2.6,\"download\":0.2,\"total\":40.8},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"335476697967636252\"},{\"status\":0,\"check_time\":1657823107022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.8,\"tcp\":2.1,\"ssl\":16.7,\"dns\":3.4,\"download\":0.2,\"total\":43.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6929008513886756680\"},{\"status\":0,\"check_time\":1657823047054,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.5,\"tcp\":2.3,\"ssl\":16.7,\"dns\":10.3,\"download\":0.2,\"total\":52},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5439559125971658253\"},{\"status\":0,\"check_time\":1657822987022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.9,\"tcp\":2.4,\"ssl\":18.9,\"dns\":3.2,\"download\":0.2,\"total\":45.6},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"355794928230704983\"},{\"status\":0,\"check_time\":1657822927021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.6,\"tcp\":2.3,\"ssl\":18.6,\"dns\":2.5,\"download\":0.2,\"total\":45.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"643336001610722367\"},{\"status\":0,\"check_time\":1657822867020,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.2,\"tcp\":2.4,\"ssl\":17.3,\"dns\":18.6,\"download\":0.2,\"total\":58.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"21738872680101064\"},{\"status\":0,\"check_time\":1657822807021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":60.7,\"tcp\":2.2,\"ssl\":16.7,\"dns\":2.6,\"download\":0.2,\"total\":82.4},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6856078697840735389\"},{\"status\":0,\"check_time\":1657822747027,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.7,\"tcp\":2,\"ssl\":17.3,\"dns\":2.6,\"download\":0.3,\"total\":41.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4075204224785704431\"},{\"status\":0,\"check_time\":1657822687021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":24.1,\"tcp\":2.1,\"ssl\":16.8,\"dns\":10.1,\"download\":0.2,\"total\":53.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6209783554255170024\"},{\"status\":0,\"check_time\":1657822627040,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.2,\"tcp\":2.1,\"ssl\":16.7,\"dns\":2.6,\"download\":0.2,\"total\":41.8},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6903629827895866973\"},{\"status\":0,\"check_time\":1657822567021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.8,\"tcp\":2,\"ssl\":16.3,\"dns\":2.6,\"download\":0.2,\"total\":40.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2924796953366770835\"},{\"status\":0,\"check_time\":1657822507022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.1,\"tcp\":2.1,\"ssl\":16.8,\"dns\":19.7,\"download\":0.2,\"total\":57.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6379325368393251179\"},{\"status\":0,\"check_time\":1657822447020,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.2,\"tcp\":2.2,\"ssl\":16.8,\"dns\":10.1,\"download\":0.2,\"total\":49.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2686055343750621487\"},{\"status\":0,\"check_time\":1657822387021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.2,\"tcp\":2,\"ssl\":17.4,\"dns\":2.5,\"download\":0.2,\"total\":44.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5543182747742243143\"},{\"status\":0,\"check_time\":1657822327021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20,\"tcp\":2.1,\"ssl\":17.6,\"dns\":18.2,\"download\":0.2,\"total\":58.1},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2269636868419356372\"},{\"status\":0,\"check_time\":1657822267022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.5,\"tcp\":2.1,\"ssl\":16.7,\"dns\":42.7,\"download\":0.2,\"total\":83.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5469474174303798711\"},{\"status\":0,\"check_time\":1657822207020,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.3,\"tcp\":2.1,\"ssl\":17.7,\"dns\":10.2,\"download\":0.2,\"total\":49.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4586780187835008147\"},{\"status\":0,\"check_time\":1657822147036,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.5,\"tcp\":2.1,\"ssl\":17.5,\"dns\":11.4,\"download\":0.2,\"total\":51.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6258993996901260844\"},{\"status\":0,\"check_time\":1657822087023,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21,\"tcp\":2.7,\"ssl\":17.3,\"dns\":2.8,\"download\":0.2,\"total\":44},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3646950137218922815\"},{\"status\":0,\"check_time\":1657822027020,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.8,\"tcp\":2.5,\"ssl\":17.2,\"dns\":2.7,\"download\":0.2,\"total\":45.4},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4923985243964600124\"},{\"status\":0,\"check_time\":1657821967022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.9,\"tcp\":2.4,\"ssl\":17.5,\"dns\":2.8,\"download\":0.2,\"total\":44.8},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3453405071321888013\"},{\"status\":0,\"check_time\":1657821907027,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.5,\"tcp\":2.5,\"ssl\":19.1,\"dns\":10.5,\"download\":0.3,\"total\":53.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4860780408851125674\"},{\"status\":0,\"check_time\":1657821847023,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":18.4,\"tcp\":2.3,\"ssl\":18.1,\"dns\":17.8,\"download\":0.2,\"total\":56.8},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3538453859314235769\"},{\"status\":0,\"check_time\":1657821787026,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.5,\"tcp\":2.4,\"ssl\":16.9,\"dns\":43.8,\"download\":0.4,\"total\":85},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5338646328588574108\"},{\"status\":0,\"check_time\":1657821727021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.8,\"tcp\":2.4,\"ssl\":18.4,\"dns\":19.9,\"download\":0.2,\"total\":62.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6815265324582998383\"},{\"status\":0,\"check_time\":1657821667021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.4,\"tcp\":2.5,\"ssl\":17.7,\"dns\":2.5,\"download\":0.2,\"total\":44.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2206194445304856139\"},{\"status\":0,\"check_time\":1657821607022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20,\"tcp\":2.2,\"ssl\":17.6,\"dns\":43.6,\"download\":0.2,\"total\":83.6},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3007569586343396469\"},{\"status\":0,\"check_time\":1657821547022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.3,\"tcp\":2.3,\"ssl\":17.5,\"dns\":10.1,\"download\":0.2,\"total\":52.4},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4061663753893569371\"},{\"status\":0,\"check_time\":1657821487027,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.9,\"tcp\":2,\"ssl\":17,\"dns\":2.3,\"download\":0.2,\"total\":42.4},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"8612160026496241996\"},{\"status\":0,\"check_time\":1657821427048,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.3,\"tcp\":2.4,\"ssl\":18.7,\"dns\":11.2,\"download\":0.2,\"total\":53.8},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6313951986856470204\"},{\"status\":0,\"check_time\":1657821367042,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.1,\"tcp\":2.4,\"ssl\":17.7,\"dns\":2.9,\"download\":0.2,\"total\":44.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"1601574064815468673\"},{\"status\":0,\"check_time\":1657821307022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.4,\"tcp\":1.9,\"ssl\":17.4,\"dns\":2.4,\"download\":0.2,\"total\":43.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2560914233719846030\"},{\"status\":0,\"check_time\":1657821247025,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.1,\"tcp\":2.5,\"ssl\":17.9,\"dns\":20.4,\"download\":0.3,\"total\":62.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"7403136938724560421\"},{\"status\":0,\"check_time\":1657821187028,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.3,\"tcp\":2.1,\"ssl\":17.5,\"dns\":10.1,\"download\":0.2,\"total\":50.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"1481356933037875147\"},{\"status\":0,\"check_time\":1657821127056,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.9,\"tcp\":2,\"ssl\":17.6,\"dns\":2.9,\"download\":0.2,\"total\":43.6},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5003900951412223560\"},{\"status\":0,\"check_time\":1657821067075,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.6,\"tcp\":2.4,\"ssl\":18.2,\"dns\":3,\"download\":0.2,\"total\":43.4},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"866067104085006359\"},{\"status\":0,\"check_time\":1657821007044,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.7,\"tcp\":2,\"ssl\":17.4,\"dns\":2.5,\"download\":0.2,\"total\":43.8},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"9031070472021706974\"},{\"status\":0,\"check_time\":1657820947022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.9,\"tcp\":2.5,\"ssl\":17.5,\"dns\":20.1,\"download\":0.2,\"total\":60.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"7243890839725314447\"},{\"status\":0,\"check_time\":1657820887021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.9,\"tcp\":2.1,\"ssl\":17.4,\"dns\":2.3,\"download\":0.2,\"total\":42.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6316459410374609034\"},{\"status\":0,\"check_time\":1657820827087,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.6,\"tcp\":2.1,\"ssl\":17,\"dns\":2.3,\"download\":0.2,\"total\":41.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2391163560644233898\"},{\"status\":0,\"check_time\":1657820767025,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.4,\"tcp\":2.4,\"ssl\":17.1,\"dns\":2.6,\"download\":0.2,\"total\":42.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2704426115135797654\"},{\"status\":0,\"check_time\":1657820707022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.8,\"tcp\":2.2,\"ssl\":16.9,\"dns\":2.6,\"download\":0.2,\"total\":43.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6468922312261958149\"},{\"status\":0,\"check_time\":1657820647028,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.3,\"tcp\":2.4,\"ssl\":18,\"dns\":2.7,\"download\":0.2,\"total\":43.6},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5978059985719800109\"},{\"status\":0,\"check_time\":1657820587020,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.4,\"tcp\":2.1,\"ssl\":17.3,\"dns\":9.9,\"download\":0.2,\"total\":48.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5475549957159652443\"},{\"status\":0,\"check_time\":1657820527023,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.5,\"tcp\":2.1,\"ssl\":16.8,\"dns\":43.5,\"download\":0.3,\"total\":83.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5764338012453727680\"},{\"status\":0,\"check_time\":1657820467022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.3,\"tcp\":2.4,\"ssl\":17.9,\"dns\":10.2,\"download\":0.2,\"total\":50},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5851746037187590562\"},{\"status\":0,\"check_time\":1657820407027,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.3,\"tcp\":2.4,\"ssl\":16.1,\"dns\":2.5,\"download\":0.2,\"total\":42.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"8566665391922084374\"},{\"status\":0,\"check_time\":1657820347025,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.3,\"tcp\":2.2,\"ssl\":17.5,\"dns\":11.5,\"download\":0.2,\"total\":51.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"7775361401432180009\"},{\"status\":0,\"check_time\":1657820287024,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.4,\"tcp\":2.1,\"ssl\":16.9,\"dns\":2.7,\"download\":0.3,\"total\":43.4},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5468206518334142168\"},{\"status\":0,\"check_time\":1657820227029,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.6,\"tcp\":2.6,\"ssl\":18.3,\"dns\":5.7,\"download\":0.3,\"total\":49.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4230011094833517307\"},{\"status\":0,\"check_time\":1657820167023,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.1,\"tcp\":2.1,\"ssl\":17.9,\"dns\":2.4,\"download\":0.3,\"total\":41.8},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"7951105577637093894\"},{\"status\":0,\"check_time\":1657820107050,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.2,\"tcp\":2.4,\"ssl\":17.8,\"dns\":10,\"download\":0.2,\"total\":51.6},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5868124116451126981\"},{\"status\":0,\"check_time\":1657820047021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.8,\"tcp\":2.4,\"ssl\":16.9,\"dns\":2.6,\"download\":0.3,\"total\":43},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5677724996851842329\"},{\"status\":0,\"check_time\":1657819987022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.8,\"tcp\":2.5,\"ssl\":17.5,\"dns\":11.4,\"download\":0.2,\"total\":52.4},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2850933094908220447\"},{\"status\":0,\"check_time\":1657819927023,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.5,\"tcp\":2.3,\"ssl\":17.6,\"dns\":2.6,\"download\":0.2,\"total\":43.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6454176558299049885\"},{\"status\":0,\"check_time\":1657819867020,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19,\"tcp\":2.4,\"ssl\":18.1,\"dns\":10.4,\"download\":0.2,\"total\":50.1},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6009668996360218693\"},{\"status\":0,\"check_time\":1657819807023,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.5,\"tcp\":2.4,\"ssl\":18.3,\"dns\":11.5,\"download\":0.2,\"total\":51.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6415494266530489047\"},{\"status\":0,\"check_time\":1657819747020,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.3,\"tcp\":2.2,\"ssl\":18,\"dns\":2.6,\"download\":0.2,\"total\":44.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5864798097247325195\"},{\"status\":0,\"check_time\":1657819687022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.3,\"tcp\":2.2,\"ssl\":17.5,\"dns\":2.3,\"download\":0.2,\"total\":42.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"509181295089261130\"},{\"status\":0,\"check_time\":1657819627046,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.4,\"tcp\":2.4,\"ssl\":17.2,\"dns\":10.2,\"download\":0.2,\"total\":51.4},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"1667150563071868315\"},{\"status\":0,\"check_time\":1657819567038,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.4,\"tcp\":2.3,\"ssl\":16.5,\"dns\":2.7,\"download\":0.2,\"total\":42.1},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"174495478946441012\"},{\"status\":0,\"check_time\":1657819507026,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.1,\"tcp\":2.1,\"ssl\":16.7,\"dns\":2.3,\"download\":0.2,\"total\":40.4},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4888866800783420329\"},{\"status\":0,\"check_time\":1657819447024,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.1,\"tcp\":2.4,\"ssl\":16.9,\"dns\":2.7,\"download\":0.2,\"total\":43.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6898902814159630987\"},{\"status\":0,\"check_time\":1657819387024,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.4,\"tcp\":2.4,\"ssl\":17.1,\"dns\":3.1,\"download\":0.2,\"total\":43.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5365518645050836616\"},{\"status\":0,\"check_time\":1657819327029,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.4,\"tcp\":2,\"ssl\":17.2,\"dns\":2.3,\"download\":0.2,\"total\":42.1},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3881839125364233987\"},{\"status\":0,\"check_time\":1657819267021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.7,\"tcp\":2.2,\"ssl\":15.8,\"dns\":17.9,\"download\":0.2,\"total\":57.8},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"9171121047299316715\"},{\"status\":0,\"check_time\":1657819207031,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.9,\"tcp\":2.2,\"ssl\":17.5,\"dns\":6.2,\"download\":0.3,\"total\":48.1},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6024257274088881438\"},{\"status\":0,\"check_time\":1657819147030,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.5,\"tcp\":2.3,\"ssl\":17.5,\"dns\":18,\"download\":0.2,\"total\":59.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"7617748266279263162\"},{\"status\":0,\"check_time\":1657819087022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.3,\"tcp\":2.4,\"ssl\":18.5,\"dns\":3.2,\"download\":0.3,\"total\":45.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"1919574935668889909\"},{\"status\":0,\"check_time\":1657819027023,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.5,\"tcp\":2.4,\"ssl\":17.1,\"dns\":20.1,\"download\":0.2,\"total\":61.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5509798148210738487\"},{\"status\":0,\"check_time\":1657818967023,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":18.9,\"tcp\":2.1,\"ssl\":16.4,\"dns\":2.6,\"download\":0.2,\"total\":40.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4189407303361700550\"},{\"status\":0,\"check_time\":1657818907025,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.6,\"tcp\":2.1,\"ssl\":16.6,\"dns\":3.5,\"download\":0.3,\"total\":43.1},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6086825031000349574\"},{\"status\":0,\"check_time\":1657818847022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.6,\"tcp\":2.2,\"ssl\":16.7,\"dns\":3.4,\"download\":0.2,\"total\":44.1},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"8711840686840939707\"},{\"status\":0,\"check_time\":1657818787026,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.7,\"tcp\":2.4,\"ssl\":17.7,\"dns\":2.9,\"download\":0.2,\"total\":45.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"7801820812346816155\"},{\"status\":0,\"check_time\":1657818727063,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.3,\"tcp\":2.3,\"ssl\":17.5,\"dns\":18.5,\"download\":0.2,\"total\":58.8},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"1716152521360265500\"},{\"status\":0,\"check_time\":1657818667021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.5,\"tcp\":2.3,\"ssl\":23,\"dns\":17.4,\"download\":0.2,\"total\":63.4},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"8877612450790845578\"},{\"status\":0,\"check_time\":1657818607024,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":18.8,\"tcp\":2.2,\"ssl\":17.7,\"dns\":17.3,\"download\":0.3,\"total\":56.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"7357117475121264950\"},{\"status\":0,\"check_time\":1657818547021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.9,\"tcp\":2.3,\"ssl\":16.1,\"dns\":2.5,\"download\":0.2,\"total\":42},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"7178414616121476040\"},{\"status\":0,\"check_time\":1657818487020,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.9,\"tcp\":2.5,\"ssl\":17,\"dns\":43.9,\"download\":0.2,\"total\":85.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"1406060691842611491\"},{\"status\":0,\"check_time\":1657818427021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.7,\"tcp\":2.3,\"ssl\":17.6,\"dns\":10.3,\"download\":0.2,\"total\":51.1},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2264363337220538735\"},{\"status\":0,\"check_time\":1657818367021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21,\"tcp\":2.4,\"ssl\":17.2,\"dns\":7.4,\"download\":0.2,\"total\":48.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2815123377588061307\"},{\"status\":0,\"check_time\":1657818307021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":26.8,\"tcp\":2,\"ssl\":16.8,\"dns\":10.5,\"download\":0.3,\"total\":56.4},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"7281507116475070141\"},{\"status\":0,\"check_time\":1657818247022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.8,\"tcp\":2.2,\"ssl\":16.9,\"dns\":3.2,\"download\":0.2,\"total\":44.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3326299500350925576\"},{\"status\":0,\"check_time\":1657818187025,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.2,\"tcp\":2.5,\"ssl\":17.2,\"dns\":10.2,\"download\":0.2,\"total\":51.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5706412366415447498\"},{\"status\":0,\"check_time\":1657818127026,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.1,\"tcp\":2.6,\"ssl\":17.1,\"dns\":42.8,\"download\":0.1,\"total\":83.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6832957454398735582\"},{\"status\":0,\"check_time\":1657818067029,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.4,\"tcp\":2.1,\"ssl\":16.8,\"dns\":11,\"download\":0.2,\"total\":49.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"505332710896558965\"},{\"status\":0,\"check_time\":1657818007022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.9,\"tcp\":2.4,\"ssl\":18.7,\"dns\":2.4,\"download\":0.2,\"total\":43.6},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3717359232452441539\"},{\"status\":0,\"check_time\":1657817947041,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":19.2,\"tcp\":2.5,\"ssl\":16.5,\"dns\":2.7,\"download\":0.2,\"total\":41.1},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6059009955560454402\"},{\"status\":0,\"check_time\":1657817887023,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.3,\"tcp\":2.2,\"ssl\":16.8,\"dns\":10.8,\"download\":0.3,\"total\":50.4},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4097087532848539935\"},{\"status\":0,\"check_time\":1657817827024,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22,\"tcp\":2.6,\"ssl\":17,\"dns\":2.5,\"download\":0.2,\"total\":44.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5570140122178196695\"},{\"status\":0,\"check_time\":1657817767024,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.2,\"tcp\":2.6,\"ssl\":16.5,\"dns\":42.6,\"download\":0.2,\"total\":82.1},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"8807839761137175209\"},{\"status\":0,\"check_time\":1657817707021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":21.5,\"tcp\":2.3,\"ssl\":16.9,\"dns\":2.8,\"download\":0.2,\"total\":43.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4598135831107636130\"},{\"status\":0,\"check_time\":1657817647049,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":20.5,\"tcp\":2.2,\"ssl\":16.6,\"dns\":2.4,\"download\":0.2,\"total\":41.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"8503974215646285521\"},{\"status\":0,\"check_time\":1657817587023,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.1,\"tcp\":2.1,\"ssl\":16.6,\"dns\":2.5,\"download\":0.2,\"total\":44.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4810581563399265961\"},{\"status\":0,\"check_time\":1657817527031,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.4,\"tcp\":2.3,\"ssl\":16.3,\"dns\":9.9,\"download\":0.2,\"total\":51.1},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"8662615886231808192\"},{\"status\":0,\"check_time\":1657817467033,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.7,\"tcp\":2.2,\"ssl\":16.8,\"dns\":10.1,\"download\":0.2,\"total\":53},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3787435357402421374\"},{\"status\":0,\"check_time\":1657817407156,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.6,\"tcp\":2,\"ssl\":17.4,\"dns\":2.8,\"download\":0.3,\"total\":46.1},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"8224869029160376969\"},{\"status\":0,\"check_time\":1657817347023,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.8,\"tcp\":2.4,\"ssl\":17,\"dns\":10.4,\"download\":0.2,\"total\":53.8},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4856507720487285799\"},{\"status\":0,\"check_time\":1657817287025,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.5,\"tcp\":2.8,\"ssl\":16.2,\"dns\":3.8,\"download\":0.2,\"total\":46.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"1336679613266057038\"},{\"status\":0,\"check_time\":1657817227021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.6,\"tcp\":2.5,\"ssl\":17,\"dns\":19.9,\"download\":0.2,\"total\":62.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2161996301298808434\"},{\"status\":0,\"check_time\":1657817167022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.5,\"tcp\":2.6,\"ssl\":17,\"dns\":20.3,\"download\":0.3,\"total\":63.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6156028875392528350\"},{\"status\":0,\"check_time\":1657817107024,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.3,\"tcp\":2,\"ssl\":17.5,\"dns\":9.9,\"download\":0.2,\"total\":51.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4159341805401327590\"},{\"status\":0,\"check_time\":1657817047027,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.9,\"tcp\":2.1,\"ssl\":16.5,\"dns\":9.9,\"download\":0.2,\"total\":52.6},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6334755055293095810\"},{\"status\":0,\"check_time\":1657816987021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.6,\"tcp\":2.1,\"ssl\":16.4,\"dns\":2.2,\"download\":0.3,\"total\":44.6},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2680156533562131601\"},{\"status\":0,\"check_time\":1657816927032,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":24.2,\"tcp\":2.5,\"ssl\":16.9,\"dns\":2.8,\"download\":0.2,\"total\":46.6},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"806227860631968517\"},{\"status\":0,\"check_time\":1657816867022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23,\"tcp\":2.3,\"ssl\":18,\"dns\":10.4,\"download\":0.2,\"total\":53.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6225023771213676781\"},{\"status\":0,\"check_time\":1657816807022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.2,\"tcp\":2.4,\"ssl\":16.8,\"dns\":2.5,\"download\":0.2,\"total\":45.1},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4660246960847540887\"},{\"status\":0,\"check_time\":1657816747020,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.1,\"tcp\":2.3,\"ssl\":16.4,\"dns\":9.9,\"download\":0.2,\"total\":51.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2730563290445354243\"},{\"status\":0,\"check_time\":1657816687022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":55.9,\"tcp\":2.4,\"ssl\":17.7,\"dns\":10.2,\"download\":0.3,\"total\":86.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3218939371040514195\"},{\"status\":0,\"check_time\":1657816627021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23,\"tcp\":2.3,\"ssl\":16.7,\"dns\":19.8,\"download\":0.2,\"total\":62},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2163128864459720479\"},{\"status\":0,\"check_time\":1657816567022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.3,\"tcp\":2.1,\"ssl\":16.4,\"dns\":11,\"download\":0.2,\"total\":52},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"9077489792251189297\"},{\"status\":0,\"check_time\":1657816507049,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":28.2,\"tcp\":2.3,\"ssl\":16.8,\"dns\":17.8,\"download\":0.2,\"total\":65.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"1199544834513107706\"},{\"status\":0,\"check_time\":1657816447024,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.1,\"tcp\":2.4,\"ssl\":17,\"dns\":2.8,\"download\":0.2,\"total\":45.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5475519602143380768\"},{\"status\":0,\"check_time\":1657816387022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.2,\"tcp\":2.3,\"ssl\":17,\"dns\":16.2,\"download\":0.2,\"total\":58.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3322297213026331409\"},{\"status\":0,\"check_time\":1657816327020,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23,\"tcp\":2.1,\"ssl\":16.7,\"dns\":2.2,\"download\":0.2,\"total\":44.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4454927692741030599\"},{\"status\":0,\"check_time\":1657816267021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":25,\"tcp\":2.1,\"ssl\":16.7,\"dns\":2.4,\"download\":0.2,\"total\":46.4},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5371309288811496964\"},{\"status\":0,\"check_time\":1657816207021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23,\"tcp\":2.3,\"ssl\":16.1,\"dns\":2.5,\"download\":0.2,\"total\":44.1},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4376648719392927012\"},{\"status\":0,\"check_time\":1657816147023,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.5,\"tcp\":2.1,\"ssl\":16.5,\"dns\":17.3,\"download\":0.2,\"total\":58.6},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"1127427600058908196\"},{\"status\":0,\"check_time\":1657816087022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.4,\"tcp\":2.4,\"ssl\":17.6,\"dns\":10.3,\"download\":0.2,\"total\":52.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4652809420321214711\"},{\"status\":0,\"check_time\":1657816027021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.8,\"tcp\":2.3,\"ssl\":17.2,\"dns\":3.3,\"download\":0.2,\"total\":46.8},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"1237780483267320221\"},{\"status\":0,\"check_time\":1657815967054,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.7,\"tcp\":2,\"ssl\":16.6,\"dns\":2.2,\"download\":0.2,\"total\":43.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6674705045105926123\"},{\"status\":0,\"check_time\":1657815907021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.7,\"tcp\":2.1,\"ssl\":17.3,\"dns\":11.3,\"download\":0.2,\"total\":53.6},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"8676336293520815129\"},{\"status\":0,\"check_time\":1657815847020,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.4,\"tcp\":2.4,\"ssl\":17.1,\"dns\":3,\"download\":0.2,\"total\":46.1},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"7308292714152753737\"},{\"status\":0,\"check_time\":1657815787019,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.3,\"tcp\":2.1,\"ssl\":17.1,\"dns\":11,\"download\":0.2,\"total\":53.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2100249415294414977\"},{\"status\":0,\"check_time\":1657815727027,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23,\"tcp\":2.6,\"ssl\":18.3,\"dns\":20.1,\"download\":0.3,\"total\":64.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"7662114915452963744\"},{\"status\":0,\"check_time\":1657815667075,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":25.2,\"tcp\":2.5,\"ssl\":17.2,\"dns\":2.5,\"download\":0.3,\"total\":47.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"8478669664799606065\"},{\"status\":0,\"check_time\":1657815607023,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.6,\"tcp\":2,\"ssl\":17.3,\"dns\":3.8,\"download\":0.2,\"total\":45.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3551473628167424908\"},{\"status\":0,\"check_time\":1657815547028,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.4,\"tcp\":2.5,\"ssl\":17.5,\"dns\":42.7,\"download\":0.3,\"total\":86.4},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"5136372600859209498\"},{\"status\":0,\"check_time\":1657815487021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.6,\"tcp\":2.4,\"ssl\":17.9,\"dns\":18.2,\"download\":0.2,\"total\":61.3},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"2688748499791518542\"},{\"status\":0,\"check_time\":1657815427041,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22,\"tcp\":2,\"ssl\":16.5,\"dns\":9.8,\"download\":0.2,\"total\":50.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4652508950470510558\"},{\"status\":0,\"check_time\":1657815367022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":24.6,\"tcp\":2.4,\"ssl\":16.8,\"dns\":2.5,\"download\":0.2,\"total\":46.5},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6844266696357171543\"},{\"status\":0,\"check_time\":1657815307023,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":22.8,\"tcp\":2.5,\"ssl\":17.1,\"dns\":10.4,\"download\":0.2,\"total\":53},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3407365683554059063\"},{\"status\":0,\"check_time\":1657815247037,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.1,\"tcp\":2.4,\"ssl\":17.4,\"dns\":5.7,\"download\":0.2,\"total\":48.8},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"8145208580637225280\"},{\"status\":0,\"check_time\":1657815187022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.8,\"tcp\":2.5,\"ssl\":17.3,\"dns\":10.1,\"download\":0.2,\"total\":53.9},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"577296595087751042\"},{\"status\":0,\"check_time\":1657815127023,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":37.9,\"tcp\":2,\"ssl\":16.4,\"dns\":2.2,\"download\":0.2,\"total\":58.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"3860557533040322120\"},{\"status\":0,\"check_time\":1657815067025,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.1,\"tcp\":2.5,\"ssl\":16.2,\"dns\":17.8,\"download\":0.2,\"total\":59.8},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"6555482765793314735\"},{\"status\":0,\"check_time\":1657815007022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.1,\"tcp\":2.1,\"ssl\":16.6,\"dns\":2.2,\"download\":0.2,\"total\":44.2},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4608646129128827646\"},{\"status\":0,\"check_time\":1657814947022,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.8,\"tcp\":2.4,\"ssl\":17.7,\"dns\":11.6,\"download\":0.2,\"total\":55.7},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"647018035394677274\"},{\"status\":0,\"check_time\":1657814887021,\"check_version\":1,\"result\":{\"tunnel\":false,\"errorMessage\":null,\"timings\":{\"firstByte\":23.3,\"tcp\":2.1,\"ssl\":17.5,\"dns\":2.5,\"download\":0.2,\"total\":45.6},\"passed\":true,\"runType\":0},\"probe_dc\":\"aws:us-west-1\",\"result_id\":\"4422690840270934969\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 14 Jul 2022 18:37:24 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Get-the-list-of-all-Synthetic-tests-returns-OK-Returns-the-list-of-all-Synthetic-tests-response-with-pagination.json b/tests/scenarios/cassettes/v1/synthetics/Get-the-list-of-all-Synthetic-tests-returns-OK-Returns-the-list-of-all-Synthetic-tests-response-with-pagination.json index 657b23f1e..0015cd1ad 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Get-the-list-of-all-Synthetic-tests-returns-OK-Returns-the-list-of-all-Synthetic-tests-response-with-pagination.json +++ b/tests/scenarios/cassettes/v1/synthetics/Get-the-list-of-all-Synthetic-tests-returns-OK-Returns-the-list-of-all-Synthetic-tests-response-with-pagination.json @@ -1 +1,61 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests?page_size=2&page_number=0"}, "response": {"body": {"string": "{\"tests\":[{\"public_id\":\"888-nvp-kbw\",\"name\":\"tf-TestAccDatadogSyntheticsTestBrowserMML_Basic-local-1689951468-updated\",\"status\":\"paused\",\"type\":\"browser\",\"tags\":[\"foo:bar\",\"baz\"],\"created_at\":\"2023-07-21T14:57:51.688079+00:00\",\"modified_at\":\"2023-07-21T14:58:21.332326+00:00\",\"config\":{\"assertions\":[],\"configVariables\":[],\"request\":{\"method\":\"GET\",\"timeout\":60,\"url\":\"https://www.datadoghq.com\"},\"variables\":[]},\"message\":\"Notify @datadog.user\",\"options\":{\"device_ids\":[\"laptop_large\"],\"min_location_failed\":1,\"tick_every\":900},\"locations\":[\"aws:eu-central-1\"],\"monitor_id\":126283369,\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"}},{\"public_id\":\"i9r-v4f-v3u\",\"name\":\"tf-TestAccDatadogSyntheticsBrowserTest_Updated_RumSettings-local-1689951491-updated-rumsettings\",\"status\":\"live\",\"type\":\"browser\",\"tags\":[\"foo:bar\",\"buz\"],\"created_at\":\"2023-07-21T14:58:17.635359+00:00\",\"modified_at\":\"2023-08-28T14:37:49.734465+00:00\",\"config\":{\"assertions\":[],\"configVariables\":[],\"request\":{\"method\":\"GET\",\"headers\":{\"Accept\":\"application/xml\",\"X-Datadog-Trace-ID\":\"987654321\"},\"url\":\"https://docs.datadoghq.com\"},\"setCookie\":\"\",\"variables\":[{\"example\":\"7956\",\"name\":\"MY_PATTERN_VAR\",\"pattern\":\"{{numeric(4)}}\",\"secure\":false,\"type\":\"text\"}]},\"message\":\"Notify @pagerduty\",\"options\":{\"device_ids\":[\"chrome.laptop_large\",\"chrome.tablet\"],\"ignoreServerCertificateError\":false,\"disableCors\":false,\"disableCsp\":false,\"noScreenshot\":false,\"tick_every\":1800,\"min_failure_duration\":10,\"min_location_failed\":1,\"retry\":{\"count\":3,\"interval\":500},\"monitor_options\":{\"renotify_interval\":120},\"ci\":{\"executionRule\":\"skipped\"},\"rumSettings\":{\"isEnabled\":false},\"enableProfiling\":false,\"enableSecurityTesting\":false},\"locations\":[\"aws:eu-central-1\"],\"monitor_id\":126283421,\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"}}],\"total\":3}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 30 Aug 2023 09:42:25 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests?page_size=2&page_number=1"}, "response": {"body": {"string": "{\"tests\":[{\"public_id\":\"p34-3up-y6p\",\"name\":\"Example-Create_an_API_HTTP_test_returns_OK_Returns_the_created_test_details_response_1692944481\",\"status\":\"live\",\"type\":\"api\",\"tags\":[\"testing:api\"],\"created_at\":\"2023-08-25T06:21:21.640836+00:00\",\"modified_at\":\"2023-08-25T06:21:21.640836+00:00\",\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"},{\"operator\":\"validatesXPath\",\"target\":{\"xPath\":\"target-xpath\",\"targetValue\":\"0\",\"operator\":\"contains\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"certificate\":{\"cert\":{\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"examplecreateanapihttptestreturnsokreturnsthecreatedtestdetailsresponse1692944481\"},\"method\":\"GET\",\"timeout\":10,\"url\":\"https://datadoghq.com\",\"proxy\":{\"url\":\"https://datadoghq.com\",\"headers\":{}},\"basicAuth\":{\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"clientSecret\":\"client-secret\",\"resource\":\"resource\",\"scope\":\"yoyo\",\"tokenApiAuthentication\":\"header\",\"type\":\"oauth-client\"},\"persistCookies\":true}},\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Example-Create_an_API_HTTP_test_returns_OK_Returns_the_created_test_details_response_1692944481\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60,\"httpVersion\":\"http2\"},\"locations\":[\"aws:us-east-2\"],\"subtype\":\"http\",\"monitor_id\":130283608,\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"}}],\"total\":3}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 30 Aug 2023 09:42:25 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests?page_size=2&page_number=0" + }, + "response": { + "body": { + "string": "{\"tests\":[{\"public_id\":\"888-nvp-kbw\",\"name\":\"tf-TestAccDatadogSyntheticsTestBrowserMML_Basic-local-1689951468-updated\",\"status\":\"paused\",\"type\":\"browser\",\"tags\":[\"foo:bar\",\"baz\"],\"created_at\":\"2023-07-21T14:57:51.688079+00:00\",\"modified_at\":\"2023-07-21T14:58:21.332326+00:00\",\"config\":{\"assertions\":[],\"configVariables\":[],\"request\":{\"method\":\"GET\",\"timeout\":60,\"url\":\"https://www.datadoghq.com\"},\"variables\":[]},\"message\":\"Notify @datadog.user\",\"options\":{\"device_ids\":[\"laptop_large\"],\"min_location_failed\":1,\"tick_every\":900},\"locations\":[\"aws:eu-central-1\"],\"monitor_id\":126283369,\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"}},{\"public_id\":\"i9r-v4f-v3u\",\"name\":\"tf-TestAccDatadogSyntheticsBrowserTest_Updated_RumSettings-local-1689951491-updated-rumsettings\",\"status\":\"live\",\"type\":\"browser\",\"tags\":[\"foo:bar\",\"buz\"],\"created_at\":\"2023-07-21T14:58:17.635359+00:00\",\"modified_at\":\"2023-08-28T14:37:49.734465+00:00\",\"config\":{\"assertions\":[],\"configVariables\":[],\"request\":{\"method\":\"GET\",\"headers\":{\"Accept\":\"application/xml\",\"X-Datadog-Trace-ID\":\"987654321\"},\"url\":\"https://docs.datadoghq.com\"},\"setCookie\":\"\",\"variables\":[{\"example\":\"7956\",\"name\":\"MY_PATTERN_VAR\",\"pattern\":\"{{numeric(4)}}\",\"secure\":false,\"type\":\"text\"}]},\"message\":\"Notify @pagerduty\",\"options\":{\"device_ids\":[\"chrome.laptop_large\",\"chrome.tablet\"],\"ignoreServerCertificateError\":false,\"disableCors\":false,\"disableCsp\":false,\"noScreenshot\":false,\"tick_every\":1800,\"min_failure_duration\":10,\"min_location_failed\":1,\"retry\":{\"count\":3,\"interval\":500},\"monitor_options\":{\"renotify_interval\":120},\"ci\":{\"executionRule\":\"skipped\"},\"rumSettings\":{\"isEnabled\":false},\"enableProfiling\":false,\"enableSecurityTesting\":false},\"locations\":[\"aws:eu-central-1\"],\"monitor_id\":126283421,\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"}}],\"total\":3}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 30 Aug 2023 09:42:25 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests?page_size=2&page_number=1" + }, + "response": { + "body": { + "string": "{\"tests\":[{\"public_id\":\"p34-3up-y6p\",\"name\":\"Example-Create_an_API_HTTP_test_returns_OK_Returns_the_created_test_details_response_1692944481\",\"status\":\"live\",\"type\":\"api\",\"tags\":[\"testing:api\"],\"created_at\":\"2023-08-25T06:21:21.640836+00:00\",\"modified_at\":\"2023-08-25T06:21:21.640836+00:00\",\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"},{\"operator\":\"validatesXPath\",\"target\":{\"xPath\":\"target-xpath\",\"targetValue\":\"0\",\"operator\":\"contains\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"certificate\":{\"cert\":{\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"examplecreateanapihttptestreturnsokreturnsthecreatedtestdetailsresponse1692944481\"},\"method\":\"GET\",\"timeout\":10,\"url\":\"https://datadoghq.com\",\"proxy\":{\"url\":\"https://datadoghq.com\",\"headers\":{}},\"basicAuth\":{\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"clientSecret\":\"client-secret\",\"resource\":\"resource\",\"scope\":\"yoyo\",\"tokenApiAuthentication\":\"header\",\"type\":\"oauth-client\"},\"persistCookies\":true}},\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Example-Create_an_API_HTTP_test_returns_OK_Returns_the_created_test_details_response_1692944481\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60,\"httpVersion\":\"http2\"},\"locations\":[\"aws:us-east-2\"],\"subtype\":\"http\",\"monitor_id\":130283608,\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"}}],\"total\":3}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 30 Aug 2023 09:42:25 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Get-the-list-of-default-locations-returns-OK-response.frozen b/tests/scenarios/cassettes/v1/synthetics/Get-the-list-of-default-locations-returns-OK-response.frozen index 61195b4ce..b87acbf6a 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Get-the-list-of-default-locations-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v1/synthetics/Get-the-list-of-default-locations-returns-OK-response.frozen @@ -1 +1 @@ -2023-06-08T19:13:18.175Z \ No newline at end of file +2024-01-26T10:20:50.399Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Get-the-list-of-default-locations-returns-OK-response.json b/tests/scenarios/cassettes/v1/synthetics/Get-the-list-of-default-locations-returns-OK-response.json index db27b7e75..9f7a70410 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Get-the-list-of-default-locations-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/synthetics/Get-the-list-of-default-locations-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/synthetics/settings/default_locations"}, "response": {"body": {"string": "[\"aws:af-south-1\",\"aws:ap-east-1\",\"aws:ap-northeast-1\",\"aws:ap-northeast-2\",\"aws:ap-northeast-3\",\"aws:ap-south-1\",\"aws:ap-southeast-1\",\"aws:ap-southeast-2\",\"aws:ap-southeast-3\",\"aws:ca-central-1\",\"aws:eu-central-1\",\"aws:eu-north-1\",\"aws:eu-south-1\",\"aws:eu-west-1\",\"aws:eu-west-2\",\"aws:eu-west-3\",\"aws:me-south-1\",\"aws:sa-east-1\",\"aws:us-east-1\",\"aws:us-east-2\",\"aws:us-west-1\",\"aws:us-west-2\",\"azure:eastus\",\"pl:gcp-integrations-lab-527d63de5764c9fdad65fd1a5ac64a8e\"]\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 08 Jun 2023 19:13:18 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/synthetics/settings/default_locations" + }, + "response": { + "body": { + "string": "[]\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 10:20:50 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Patch-a-Synthetic-test-returns-OK-response.frozen b/tests/scenarios/cassettes/v1/synthetics/Patch-a-Synthetic-test-returns-OK-response.frozen index b473119b4..3b9a48744 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Patch-a-Synthetic-test-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v1/synthetics/Patch-a-Synthetic-test-returns-OK-response.frozen @@ -1 +1 @@ -2023-11-17T12:10:50.122Z \ No newline at end of file +2024-01-26T10:20:50.764Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Patch-a-Synthetic-test-returns-OK-response.json b/tests/scenarios/cassettes/v1/synthetics/Patch-a-Synthetic-test-returns-OK-response.json index b217cff57..0f428a821 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Patch-a-Synthetic-test-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/synthetics/Patch-a-Synthetic-test-returns-OK-response.json @@ -1 +1,107 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"timingsScope\":\"withoutDNS\",\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"},{\"operator\":\"validatesXPath\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"basicAuth\":{\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"clientSecret\":\"client-secret\",\"resource\":\"resource\",\"scope\":\"yoyo\",\"tokenApiAuthentication\":\"header\",\"type\":\"oauth-client\"},\"certificate\":{\"cert\":{\"content\":\"cert-content\",\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"content\":\"key-content\",\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testpatchasynthetictestreturnsokresponse1700223050\"},\"method\":\"GET\",\"persistCookies\":true,\"proxy\":{\"headers\":{},\"url\":\"https://datadoghq.com\"},\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"name\":\"Test-Patch_a_Synthetic_test_returns_OK_response-1700223050\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"httpVersion\":\"http2\",\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Patch_a_Synthetic_test_returns_OK_response-1700223050\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"subtype\":\"http\",\"tags\":[\"testing:api\"],\"type\":\"api\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api"}, "response": {"body": {"string": "{\"public_id\":\"imz-5ik-p8i\",\"name\":\"Test-Patch_a_Synthetic_test_returns_OK_response-1700223050\",\"status\":\"live\",\"type\":\"api\",\"tags\":[\"testing:api\"],\"created_at\":\"2023-11-17T12:10:50.727692+00:00\",\"modified_at\":\"2023-11-17T12:10:50.727692+00:00\",\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"timingsScope\":\"withoutDNS\",\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"},{\"operator\":\"validatesXPath\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"basicAuth\":{\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"clientSecret\":\"client-secret\",\"resource\":\"resource\",\"scope\":\"yoyo\",\"tokenApiAuthentication\":\"header\",\"type\":\"oauth-client\"},\"certificate\":{\"cert\":{\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testpatchasynthetictestreturnsokresponse1700223050\"},\"method\":\"GET\",\"persistCookies\":true,\"proxy\":{\"headers\":{},\"url\":\"https://datadoghq.com\"},\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"httpVersion\":\"http2\",\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Patch_a_Synthetic_test_returns_OK_response-1700223050\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"locations\":[\"aws:us-east-2\"],\"subtype\":\"http\",\"created_by\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":135003391,\"org_id\":321813,\"modified_by\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 17 Nov 2023 12:10:50 GMT"}, {"request": {"body": {"string": "{\"data\":[{\"op\":\"replace\",\"path\":\"/name\",\"value\":\"New test name\"},{\"op\":\"remove\",\"path\":\"/config/assertions/0\"}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/imz-5ik-p8i"}, "response": {"body": {"string": "{\"public_id\":\"imz-5ik-p8i\",\"name\":\"New test name\",\"status\":\"live\",\"type\":\"api\",\"tags\":[\"testing:api\"],\"created_at\":\"2023-11-17T12:10:50.727692+00:00\",\"modified_at\":\"2023-11-17T12:10:51.334561+00:00\",\"config\":{\"assertions\":[{\"operator\":\"lessThan\",\"target\":2000,\"timingsScope\":\"withoutDNS\",\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"},{\"operator\":\"validatesXPath\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"basicAuth\":{\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"clientSecret\":\"client-secret\",\"resource\":\"resource\",\"scope\":\"yoyo\",\"tokenApiAuthentication\":\"header\",\"type\":\"oauth-client\"},\"certificate\":{\"key\":{\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"cert\":{\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testpatchasynthetictestreturnsokresponse1700223050\"},\"method\":\"GET\",\"persistCookies\":true,\"proxy\":{\"headers\":{},\"url\":\"https://datadoghq.com\"},\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"httpVersion\":\"http2\",\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Patch_a_Synthetic_test_returns_OK_response-1700223050\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"locations\":[\"aws:us-east-2\"],\"subtype\":\"http\",\"created_by\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":135003391,\"org_id\":321813,\"modified_by\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 17 Nov 2023 12:10:50 GMT"}, {"request": {"body": {"string": "{\"public_ids\":[\"imz-5ik-p8i\"]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete"}, "response": {"body": {"string": "{\"deleted_tests\":[{\"public_id\":\"imz-5ik-p8i\",\"deleted_at\":\"2023-11-17T12:10:52.395192+00:00\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 17 Nov 2023 12:10:50 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"timingsScope\":\"withoutDNS\",\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"},{\"operator\":\"validatesXPath\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"basicAuth\":{\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"clientSecret\":\"client-secret\",\"resource\":\"resource\",\"scope\":\"yoyo\",\"tokenApiAuthentication\":\"header\",\"type\":\"oauth-client\"},\"certificate\":{\"cert\":{\"content\":\"cert-content\",\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"content\":\"key-content\",\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testpatchasynthetictestreturnsokresponse1706264450\"},\"method\":\"GET\",\"persistCookies\":true,\"proxy\":{\"headers\":{},\"url\":\"https://datadoghq.com\"},\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"name\":\"Test-Patch_a_Synthetic_test_returns_OK_response-1706264450\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"httpVersion\":\"http2\",\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Patch_a_Synthetic_test_returns_OK_response-1706264450\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"subtype\":\"http\",\"tags\":[\"testing:api\"],\"type\":\"api\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api" + }, + "response": { + "body": { + "string": "{\"public_id\":\"nbb-6gy-hjd\",\"name\":\"Test-Patch_a_Synthetic_test_returns_OK_response-1706264450\",\"status\":\"live\",\"type\":\"api\",\"tags\":[\"testing:api\"],\"created_at\":\"2024-01-26T10:20:51.274118+00:00\",\"modified_at\":\"2024-01-26T10:20:51.274118+00:00\",\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"timingsScope\":\"withoutDNS\",\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"},{\"operator\":\"validatesXPath\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"basicAuth\":{\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"clientSecret\":\"client-secret\",\"resource\":\"resource\",\"scope\":\"yoyo\",\"tokenApiAuthentication\":\"header\",\"type\":\"oauth-client\"},\"certificate\":{\"cert\":{\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testpatchasynthetictestreturnsokresponse1706264450\"},\"method\":\"GET\",\"persistCookies\":true,\"proxy\":{\"headers\":{},\"url\":\"https://datadoghq.com\"},\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"httpVersion\":\"http2\",\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Patch_a_Synthetic_test_returns_OK_response-1706264450\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"locations\":[\"aws:us-east-2\"],\"subtype\":\"http\",\"created_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":138446074,\"org_id\":569509,\"modified_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 10:20:50 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":[{\"op\":\"replace\",\"path\":\"/name\",\"value\":\"New test name\"},{\"op\":\"remove\",\"path\":\"/config/assertions/0\"}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/nbb-6gy-hjd" + }, + "response": { + "body": { + "string": "{\"public_id\":\"nbb-6gy-hjd\",\"name\":\"New test name\",\"status\":\"live\",\"type\":\"api\",\"tags\":[\"testing:api\"],\"created_at\":\"2024-01-26T10:20:51.274118+00:00\",\"modified_at\":\"2024-01-26T10:20:51.752636+00:00\",\"config\":{\"assertions\":[{\"operator\":\"lessThan\",\"target\":2000,\"timingsScope\":\"withoutDNS\",\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"},{\"operator\":\"validatesXPath\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"basicAuth\":{\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"clientSecret\":\"client-secret\",\"resource\":\"resource\",\"scope\":\"yoyo\",\"tokenApiAuthentication\":\"header\",\"type\":\"oauth-client\"},\"certificate\":{\"key\":{\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"cert\":{\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testpatchasynthetictestreturnsokresponse1706264450\"},\"method\":\"GET\",\"persistCookies\":true,\"proxy\":{\"headers\":{},\"url\":\"https://datadoghq.com\"},\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"httpVersion\":\"http2\",\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Patch_a_Synthetic_test_returns_OK_response-1706264450\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"locations\":[\"aws:us-east-2\"],\"subtype\":\"http\",\"created_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":138446074,\"org_id\":569509,\"modified_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 10:20:50 GMT" + }, + { + "request": { + "body": { + "string": "{\"public_ids\":[\"nbb-6gy-hjd\"]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete" + }, + "response": { + "body": { + "string": "{\"deleted_tests\":[{\"public_id\":\"nbb-6gy-hjd\",\"deleted_at\":\"2024-01-26T10:20:52.266139+00:00\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 10:20:50 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Trigger-Synthetic-tests-returns-OK-response.frozen b/tests/scenarios/cassettes/v1/synthetics/Trigger-Synthetic-tests-returns-OK-response.frozen index c483c717a..479cc3331 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Trigger-Synthetic-tests-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v1/synthetics/Trigger-Synthetic-tests-returns-OK-response.frozen @@ -1 +1 @@ -2023-09-11T14:49:18.367Z \ No newline at end of file +2024-01-26T10:20:52.441Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Trigger-Synthetic-tests-returns-OK-response.json b/tests/scenarios/cassettes/v1/synthetics/Trigger-Synthetic-tests-returns-OK-response.json index da0e11096..fd9d93c6e 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Trigger-Synthetic-tests-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/synthetics/Trigger-Synthetic-tests-returns-OK-response.json @@ -1 +1,107 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"timingsScope\":\"withoutDNS\",\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"},{\"operator\":\"validatesXPath\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"basicAuth\":{\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"clientSecret\":\"client-secret\",\"resource\":\"resource\",\"scope\":\"yoyo\",\"tokenApiAuthentication\":\"header\",\"type\":\"oauth-client\"},\"certificate\":{\"cert\":{\"content\":\"cert-content\",\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"content\":\"key-content\",\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testtriggersynthetictestsreturnsokresponse1694443758\"},\"method\":\"GET\",\"persistCookies\":true,\"proxy\":{\"headers\":{},\"url\":\"https://datadoghq.com\"},\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"name\":\"Test-Trigger_Synthetic_tests_returns_OK_response-1694443758\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"httpVersion\":\"http2\",\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Trigger_Synthetic_tests_returns_OK_response-1694443758\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"subtype\":\"http\",\"tags\":[\"testing:api\"],\"type\":\"api\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api"}, "response": {"body": {"string": "{\"public_id\":\"26u-yie-mnd\",\"name\":\"Test-Trigger_Synthetic_tests_returns_OK_response-1694443758\",\"status\":\"live\",\"type\":\"api\",\"tags\":[\"testing:api\"],\"created_at\":\"2023-09-11T14:49:18.613748+00:00\",\"modified_at\":\"2023-09-11T14:49:18.613748+00:00\",\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"timingsScope\":\"withoutDNS\",\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"},{\"operator\":\"validatesXPath\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"basicAuth\":{\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"clientSecret\":\"client-secret\",\"resource\":\"resource\",\"scope\":\"yoyo\",\"tokenApiAuthentication\":\"header\",\"type\":\"oauth-client\"},\"certificate\":{\"cert\":{\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testtriggersynthetictestsreturnsokresponse1694443758\"},\"method\":\"GET\",\"persistCookies\":true,\"proxy\":{\"headers\":{},\"url\":\"https://datadoghq.com\"},\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"httpVersion\":\"http2\",\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Trigger_Synthetic_tests_returns_OK_response-1694443758\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"locations\":[\"aws:us-east-2\"],\"subtype\":\"http\",\"created_by\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":131183740,\"org_id\":321813,\"modified_by\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 11 Sep 2023 14:49:18 GMT"}, {"request": {"body": {"string": "{\"tests\":[{\"public_id\":\"26u-yie-mnd\"}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/trigger"}, "response": {"body": {"string": "{\"triggered_check_ids\":[\"26u-yie-mnd\"],\"results\":[{\"public_id\":\"26u-yie-mnd\",\"location\":30005,\"result_id\":\"8959055245200670536\"}],\"locations\":[{\"id\":30005,\"name\":\"aws:us-east-2\",\"display_name\":\"Ohio (AWS)\",\"region\":\"Americas\",\"is_active\":true,\"is_public\":true,\"metadata\":null}],\"batch_id\":null}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 11 Sep 2023 14:49:18 GMT"}, {"request": {"body": {"string": "{\"public_ids\":[\"26u-yie-mnd\"]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete"}, "response": {"body": {"string": "{\"deleted_tests\":[{\"public_id\":\"26u-yie-mnd\",\"deleted_at\":\"2023-09-11T14:49:19.021129+00:00\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 11 Sep 2023 14:49:18 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"timingsScope\":\"withoutDNS\",\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"},{\"operator\":\"validatesXPath\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"basicAuth\":{\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"clientSecret\":\"client-secret\",\"resource\":\"resource\",\"scope\":\"yoyo\",\"tokenApiAuthentication\":\"header\",\"type\":\"oauth-client\"},\"certificate\":{\"cert\":{\"content\":\"cert-content\",\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"content\":\"key-content\",\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testtriggersynthetictestsreturnsokresponse1706264452\"},\"method\":\"GET\",\"persistCookies\":true,\"proxy\":{\"headers\":{},\"url\":\"https://datadoghq.com\"},\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"name\":\"Test-Trigger_Synthetic_tests_returns_OK_response-1706264452\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"httpVersion\":\"http2\",\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Trigger_Synthetic_tests_returns_OK_response-1706264452\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"subtype\":\"http\",\"tags\":[\"testing:api\"],\"type\":\"api\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api" + }, + "response": { + "body": { + "string": "{\"public_id\":\"nnz-ibr-d7f\",\"name\":\"Test-Trigger_Synthetic_tests_returns_OK_response-1706264452\",\"status\":\"live\",\"type\":\"api\",\"tags\":[\"testing:api\"],\"created_at\":\"2024-01-26T10:20:52.952483+00:00\",\"modified_at\":\"2024-01-26T10:20:52.952483+00:00\",\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"timingsScope\":\"withoutDNS\",\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"},{\"operator\":\"validatesXPath\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"basicAuth\":{\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"clientSecret\":\"client-secret\",\"resource\":\"resource\",\"scope\":\"yoyo\",\"tokenApiAuthentication\":\"header\",\"type\":\"oauth-client\"},\"certificate\":{\"cert\":{\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testtriggersynthetictestsreturnsokresponse1706264452\"},\"method\":\"GET\",\"persistCookies\":true,\"proxy\":{\"headers\":{},\"url\":\"https://datadoghq.com\"},\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"httpVersion\":\"http2\",\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Trigger_Synthetic_tests_returns_OK_response-1706264452\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"locations\":[\"aws:us-east-2\"],\"subtype\":\"http\",\"created_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":138446075,\"org_id\":569509,\"modified_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 10:20:52 GMT" + }, + { + "request": { + "body": { + "string": "{\"tests\":[{\"public_id\":\"nnz-ibr-d7f\"}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/trigger" + }, + "response": { + "body": { + "string": "{\"triggered_check_ids\":[\"nnz-ibr-d7f\"],\"results\":[{\"public_id\":\"nnz-ibr-d7f\",\"location\":30005,\"result_id\":\"3934706466876721718\"}],\"locations\":[{\"id\":30005,\"name\":\"aws:us-east-2\",\"display_name\":\"Ohio (AWS)\",\"region\":\"Americas\",\"is_active\":true,\"is_public\":true,\"metadata\":null}],\"batch_id\":null}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 10:20:52 GMT" + }, + { + "request": { + "body": { + "string": "{\"public_ids\":[\"nnz-ibr-d7f\"]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete" + }, + "response": { + "body": { + "string": "{\"deleted_tests\":[{\"public_id\":\"nnz-ibr-d7f\",\"deleted_at\":\"2024-01-26T10:20:53.938026+00:00\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 10:20:52 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/synthetics/Trigger-Synthetics-tests-returns-OK-response.json b/tests/scenarios/cassettes/v1/synthetics/Trigger-Synthetics-tests-returns-OK-response.json index d78ed71e1..1c0aac4b8 100644 --- a/tests/scenarios/cassettes/v1/synthetics/Trigger-Synthetics-tests-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/synthetics/Trigger-Synthetics-tests-returns-OK-response.json @@ -1 +1,107 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"},{\"operator\":\"validatesXPath\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"basicAuth\":{\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"clientSecret\":\"client-secret\",\"resource\":\"resource\",\"scope\":\"yoyo\",\"tokenApiAuthentication\":\"header\",\"type\":\"oauth-client\"},\"certificate\":{\"cert\":{\"content\":\"cert-content\",\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"content\":\"key-content\",\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testtriggersyntheticstestsreturnsokresponse1673476032\"},\"method\":\"GET\",\"proxy\":{\"headers\":{},\"url\":\"https://datadoghq.com\"},\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"name\":\"Test-Trigger_Synthetics_tests_returns_OK_response-1673476032\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"httpVersion\":\"http2\",\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Trigger_Synthetics_tests_returns_OK_response-1673476032\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"subtype\":\"http\",\"tags\":[\"testing:api\"],\"type\":\"api\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api"}, "response": {"body": {"string": "{\"status\":\"live\",\"public_id\":\"rsj-jug-mjq\",\"tags\":[\"testing:api\"],\"org_id\":321813,\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"deleted_at\":null,\"name\":\"Test-Trigger_Synthetics_tests_returns_OK_response-1673476032\",\"monitor_id\":107572465,\"type\":\"api\",\"created_at\":\"2023-01-11T22:27:12.286447+00:00\",\"modified_at\":\"2023-01-11T22:27:12.286447+00:00\",\"subtype\":\"http\",\"config\":{\"request\":{\"certificate\":{\"cert\":{\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"url\":\"https://datadoghq.com\",\"basicAuth\":{\"clientSecret\":\"client-secret\",\"resource\":\"resource\",\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"scope\":\"yoyo\",\"type\":\"oauth-client\",\"tokenApiAuthentication\":\"header\"},\"headers\":{\"unique\":\"testtriggersyntheticstestsreturnsokresponse1673476032\"},\"proxy\":{\"url\":\"https://datadoghq.com\",\"headers\":{}},\"timeout\":10,\"method\":\"GET\"},\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"type\":\"header\",\"target\":\"text/html\"},{\"operator\":\"lessThan\",\"type\":\"responseTime\",\"target\":2000},{\"operator\":\"validatesJSONPath\",\"type\":\"body\",\"target\":{\"operator\":\"isNot\",\"targetValue\":\"0\",\"jsonPath\":\"topKey\"}},{\"operator\":\"validatesXPath\",\"type\":\"body\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"}}],\"configVariables\":[{\"pattern\":\"content-type\",\"type\":\"text\",\"example\":\"content-type\",\"name\":\"PROPERTY\"}]},\"options\":{\"accept_self_signed\":false,\"retry\":{\"count\":3,\"interval\":10},\"min_location_failed\":1,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"monitor_priority\":5,\"monitor_name\":\"Test-Trigger_Synthetics_tests_returns_OK_response-1673476032\",\"tick_every\":60,\"httpVersion\":\"http2\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 11 Jan 2023 22:27:12 GMT"}, {"request": {"body": {"string": "{\"tests\":[{\"public_id\":\"rsj-jug-mjq\"}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/trigger"}, "response": {"body": {"string": "{\"batch_id\":null,\"results\":[{\"result_id\":\"8571118738293232737\",\"public_id\":\"rsj-jug-mjq\",\"location\":30005}],\"triggered_check_ids\":[\"rsj-jug-mjq\"],\"locations\":[{\"display_name\":\"Ohio (AWS)\",\"name\":\"aws:us-east-2\",\"region\":\"Americas\",\"is_active\":true,\"is_public\":true,\"id\":30005,\"metadata\":null}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 11 Jan 2023 22:27:12 GMT"}, {"request": {"body": {"string": "{\"public_ids\":[\"rsj-jug-mjq\"]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete"}, "response": {"body": {"string": "{\"deleted_tests\":[{\"deleted_at\":\"2023-01-11T22:27:12.624532+00:00\",\"public_id\":\"rsj-jug-mjq\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 11 Jan 2023 22:27:12 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"config\":{\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"target\":\"text/html\",\"type\":\"header\"},{\"operator\":\"lessThan\",\"target\":2000,\"type\":\"responseTime\"},{\"operator\":\"validatesJSONPath\",\"target\":{\"jsonPath\":\"topKey\",\"operator\":\"isNot\",\"targetValue\":\"0\"},\"type\":\"body\"},{\"operator\":\"validatesXPath\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"},\"type\":\"body\"}],\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"request\":{\"basicAuth\":{\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"clientSecret\":\"client-secret\",\"resource\":\"resource\",\"scope\":\"yoyo\",\"tokenApiAuthentication\":\"header\",\"type\":\"oauth-client\"},\"certificate\":{\"cert\":{\"content\":\"cert-content\",\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"content\":\"key-content\",\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"headers\":{\"unique\":\"testtriggersyntheticstestsreturnsokresponse1673476032\"},\"method\":\"GET\",\"proxy\":{\"headers\":{},\"url\":\"https://datadoghq.com\"},\"timeout\":10,\"url\":\"https://datadoghq.com\"}},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"name\":\"Test-Trigger_Synthetics_tests_returns_OK_response-1673476032\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"httpVersion\":\"http2\",\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Trigger_Synthetics_tests_returns_OK_response-1673476032\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":10},\"tick_every\":60},\"subtype\":\"http\",\"tags\":[\"testing:api\"],\"type\":\"api\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/api" + }, + "response": { + "body": { + "string": "{\"status\":\"live\",\"public_id\":\"rsj-jug-mjq\",\"tags\":[\"testing:api\"],\"org_id\":321813,\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_http_test_payload.json\",\"deleted_at\":null,\"name\":\"Test-Trigger_Synthetics_tests_returns_OK_response-1673476032\",\"monitor_id\":107572465,\"type\":\"api\",\"created_at\":\"2023-01-11T22:27:12.286447+00:00\",\"modified_at\":\"2023-01-11T22:27:12.286447+00:00\",\"subtype\":\"http\",\"config\":{\"request\":{\"certificate\":{\"cert\":{\"filename\":\"cert-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"},\"key\":{\"filename\":\"key-filename\",\"updatedAt\":\"2020-10-16T09:23:24.857Z\"}},\"url\":\"https://datadoghq.com\",\"basicAuth\":{\"clientSecret\":\"client-secret\",\"resource\":\"resource\",\"accessTokenUrl\":\"https://datadog-token.com\",\"audience\":\"audience\",\"clientId\":\"client-id\",\"scope\":\"yoyo\",\"type\":\"oauth-client\",\"tokenApiAuthentication\":\"header\"},\"headers\":{\"unique\":\"testtriggersyntheticstestsreturnsokresponse1673476032\"},\"proxy\":{\"url\":\"https://datadoghq.com\",\"headers\":{}},\"timeout\":10,\"method\":\"GET\"},\"assertions\":[{\"operator\":\"is\",\"property\":\"{{ PROPERTY }}\",\"type\":\"header\",\"target\":\"text/html\"},{\"operator\":\"lessThan\",\"type\":\"responseTime\",\"target\":2000},{\"operator\":\"validatesJSONPath\",\"type\":\"body\",\"target\":{\"operator\":\"isNot\",\"targetValue\":\"0\",\"jsonPath\":\"topKey\"}},{\"operator\":\"validatesXPath\",\"type\":\"body\",\"target\":{\"operator\":\"contains\",\"targetValue\":\"0\",\"xPath\":\"target-xpath\"}}],\"configVariables\":[{\"pattern\":\"content-type\",\"type\":\"text\",\"example\":\"content-type\",\"name\":\"PROPERTY\"}]},\"options\":{\"accept_self_signed\":false,\"retry\":{\"count\":3,\"interval\":10},\"min_location_failed\":1,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"monitor_priority\":5,\"monitor_name\":\"Test-Trigger_Synthetics_tests_returns_OK_response-1673476032\",\"tick_every\":60,\"httpVersion\":\"http2\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 11 Jan 2023 22:27:12 GMT" + }, + { + "request": { + "body": { + "string": "{\"tests\":[{\"public_id\":\"rsj-jug-mjq\"}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/trigger" + }, + "response": { + "body": { + "string": "{\"batch_id\":null,\"results\":[{\"result_id\":\"8571118738293232737\",\"public_id\":\"rsj-jug-mjq\",\"location\":30005}],\"triggered_check_ids\":[\"rsj-jug-mjq\"],\"locations\":[{\"display_name\":\"Ohio (AWS)\",\"name\":\"aws:us-east-2\",\"region\":\"Americas\",\"is_active\":true,\"is_public\":true,\"id\":30005,\"metadata\":null}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 11 Jan 2023 22:27:12 GMT" + }, + { + "request": { + "body": { + "string": "{\"public_ids\":[\"rsj-jug-mjq\"]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/synthetics/tests/delete" + }, + "response": { + "body": { + "string": "{\"deleted_tests\":[{\"deleted_at\":\"2023-01-11T22:27:12.624532+00:00\",\"public_id\":\"rsj-jug-mjq\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 11 Jan 2023 22:27:12 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-all-custom-metrics-by-hourly-average-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-all-custom-metrics-by-hourly-average-returns-Bad-Request-response.json index 60e86da4b..b545ffeba 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-all-custom-metrics-by-hourly-average-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-all-custom-metrics-by-hourly-average-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/top_avg_metrics"}, "response": {"body": {"string": "{\"errors\": [\"The parameter 'month/day' is required\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Fri, 01 Apr 2022 00:41:20 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/top_avg_metrics" + }, + "response": { + "body": { + "string": "{\"errors\": [\"The parameter 'month/day' is required\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Fri, 01 Apr 2022 00:41:20 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-all-custom-metrics-by-hourly-average-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-all-custom-metrics-by-hourly-average-returns-OK-response.json index 1cf385759..979951ccb 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-all-custom-metrics-by-hourly-average-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-all-custom-metrics-by-hourly-average-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/top_avg_metrics?day=2022-03-29T00%3A41%3A20.876Z"}, "response": {"body": {"string": "{\"usage\":[{\"metric_category\":\"custom\",\"metric_name\":\"page.views\",\"max_metric_hour\":11,\"avg_metric_hour\":11},{\"metric_category\":\"custom\",\"metric_name\":\"datadog_api_client_python_test_create_a_logbased_metric_returns_ok_response_1617189622.037749\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633000123\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"TestListtagconfigurationswithconfiguredfilterreturnsSuccessresponse1648567994\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632849661\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632909874\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633006696\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"TestUpdateatagconfigurationreturnsOKresponse1648572624\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633007533\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632832883\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"foo\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632851109\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632820425\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"ruby_Create_a_log_based_metric_returns_OK_response_1617976084\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632836431\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632827387\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1640112763\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632846619\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633011091\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Create_a_log_based_metric_returns_OK_response_1637077938\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632844127\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632918172\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"TestListtagsbymetricnamereturnsSuccessresponse1648571864\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632997303\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633015432\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Create_a_log_based_metric_returns_OK_response_1637078452\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"go.client.test.metric\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Go_TestMetrics_1648512356\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Typescript_Create_a_log_based_metric_returns_OK_response_1614896593.355\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632817303\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632826421\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Typescript_Create_a_log_based_metric_returns_OK_response_1614072176.745\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632888511\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Typescript_Create_a_log_based_metric_returns_OK_response_1613675381.562\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632974958\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632844008\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632986079\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632849879\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632910728\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632328087\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"TestListtagconfigurationswithconfiguredfilterreturnsSuccessresponse1648571107\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"datadog_api_client_python_test_create_a_logbased_metric_returns_ok_response_1607014407.161855\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"datadog_api_client_python_test_create_a_logbased_metric_returns_ok_response_1608595661.620162\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633003782\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632933825\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632921859\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"TestDeleteatagconfigurationreturnsNoContentresponse1648560475\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Create_a_log_based_metric_returns_OK_response_1637070501\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"TestListtagsbymetricnamereturnsSuccessresponse1648572328\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632833151\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632839523\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"java.client.test.metric\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632904020\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Python_Create_a_log_based_metric_returns_OK_response_1638987055\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Create_a_log_based_metric_returns_OK_response_1618491718\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"datadog_api_client_python_test_create_a_logbased_metric_returns_ok_response_1617014547.984513\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Java_Create_a_log_based_metric_returns_OK_response_1618407299\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632913792\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Create_a_log_based_metric_returns_OK_response_1637141184\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Typescript_Create_a_log_based_metric_returns_OK_response_1613674902.961\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632842468\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632907313\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"TestListtagconfigurationswithconfiguredfilterreturnsSuccessresponse1648567875\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632848436\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632848876\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632841151\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"TestUpdateatagconfigurationreturnsOKresponse1648572582\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"TestListtagsbymetricnamereturnsSuccessresponse1648572404\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632820224\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632843061\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"TestListtagconfigurationswithconfiguredfilterreturnsSuccessresponse1648571244\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632919560\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632899187\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633011226\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"TestListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1648563345\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632928242\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632828986\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"TestListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1648563421\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Typescript_Create_a_log_based_metric_returns_OK_response_1616149774.73\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"TestListtagconfigurationswithconfiguredfilterreturnsSuccessresponse1648568220\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632848076\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632821487\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"TestListtagconfigurationswithconfiguredfilterreturnsSuccessresponse1648566682\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Create_a_log_based_metric_returns_OK_response_1637063323\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Create_a_log_based_metric_returns_OK_response_1640112922\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632922194\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Create_a_log_based_metric_returns_OK_response_1618831542\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632908380\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632898971\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632989750\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633004062\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Go_Create_a_log_based_metric_returns_OK_response_1634316108\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632824835\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632839540\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1642756658\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632821189\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632919344\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632903468\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632839741\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632847587\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"datadog_api_client_python_test_create_a_logbased_metric_returns_ok_response_1617190464.536072\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"TestListtagsbymetricnamereturnsSuccessresponse1648572378\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"java_metricsTests_local_1648524015\",\"max_metric_hour\":1,\"avg_metric_hour\":1}],\"metadata\":{\"pagination\":{\"next_record_id\":null,\"limit\":500,\"total_number_of_records\":null},\"day\":\"2022-03-29T00:00:00+00:00\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 01 Apr 2022 00:41:20 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/top_avg_metrics?day=2022-03-29T00%3A41%3A20.876Z" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"metric_category\":\"custom\",\"metric_name\":\"page.views\",\"max_metric_hour\":11,\"avg_metric_hour\":11},{\"metric_category\":\"custom\",\"metric_name\":\"datadog_api_client_python_test_create_a_logbased_metric_returns_ok_response_1617189622.037749\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633000123\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"TestListtagconfigurationswithconfiguredfilterreturnsSuccessresponse1648567994\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632849661\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632909874\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633006696\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"TestUpdateatagconfigurationreturnsOKresponse1648572624\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633007533\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632832883\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"foo\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632851109\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632820425\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"ruby_Create_a_log_based_metric_returns_OK_response_1617976084\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632836431\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632827387\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1640112763\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632846619\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633011091\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Create_a_log_based_metric_returns_OK_response_1637077938\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632844127\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632918172\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"TestListtagsbymetricnamereturnsSuccessresponse1648571864\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632997303\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633015432\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Create_a_log_based_metric_returns_OK_response_1637078452\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"go.client.test.metric\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Go_TestMetrics_1648512356\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Typescript_Create_a_log_based_metric_returns_OK_response_1614896593.355\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632817303\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632826421\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Typescript_Create_a_log_based_metric_returns_OK_response_1614072176.745\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632888511\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Typescript_Create_a_log_based_metric_returns_OK_response_1613675381.562\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632974958\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632844008\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632986079\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632849879\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632910728\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632328087\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"TestListtagconfigurationswithconfiguredfilterreturnsSuccessresponse1648571107\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"datadog_api_client_python_test_create_a_logbased_metric_returns_ok_response_1607014407.161855\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"datadog_api_client_python_test_create_a_logbased_metric_returns_ok_response_1608595661.620162\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633003782\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632933825\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632921859\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"TestDeleteatagconfigurationreturnsNoContentresponse1648560475\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Create_a_log_based_metric_returns_OK_response_1637070501\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"TestListtagsbymetricnamereturnsSuccessresponse1648572328\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632833151\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632839523\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"java.client.test.metric\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632904020\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Python_Create_a_log_based_metric_returns_OK_response_1638987055\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Create_a_log_based_metric_returns_OK_response_1618491718\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"datadog_api_client_python_test_create_a_logbased_metric_returns_ok_response_1617014547.984513\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Java_Create_a_log_based_metric_returns_OK_response_1618407299\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632913792\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Create_a_log_based_metric_returns_OK_response_1637141184\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Typescript_Create_a_log_based_metric_returns_OK_response_1613674902.961\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632842468\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632907313\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"TestListtagconfigurationswithconfiguredfilterreturnsSuccessresponse1648567875\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632848436\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632848876\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632841151\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"TestUpdateatagconfigurationreturnsOKresponse1648572582\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"TestListtagsbymetricnamereturnsSuccessresponse1648572404\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632820224\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632843061\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"TestListtagconfigurationswithconfiguredfilterreturnsSuccessresponse1648571244\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632919560\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632899187\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633011226\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"TestListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1648563345\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632928242\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632828986\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"TestListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1648563421\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Typescript_Create_a_log_based_metric_returns_OK_response_1616149774.73\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"TestListtagconfigurationswithconfiguredfilterreturnsSuccessresponse1648568220\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632848076\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632821487\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"TestListtagconfigurationswithconfiguredfilterreturnsSuccessresponse1648566682\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Create_a_log_based_metric_returns_OK_response_1637063323\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Create_a_log_based_metric_returns_OK_response_1640112922\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632922194\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Create_a_log_based_metric_returns_OK_response_1618831542\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632908380\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632898971\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632989750\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633004062\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Go_Create_a_log_based_metric_returns_OK_response_1634316108\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632824835\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632839540\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1642756658\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632821189\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632919344\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632903468\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632839741\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632847587\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"datadog_api_client_python_test_create_a_logbased_metric_returns_ok_response_1617190464.536072\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"TestListtagsbymetricnamereturnsSuccessresponse1648572378\",\"max_metric_hour\":1,\"avg_metric_hour\":1},{\"metric_category\":\"custom\",\"metric_name\":\"java_metricsTests_local_1648524015\",\"max_metric_hour\":1,\"avg_metric_hour\":1}],\"metadata\":{\"pagination\":{\"next_record_id\":null,\"limit\":500,\"total_number_of_records\":null},\"day\":\"2022-03-29T00:00:00+00:00\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 01 Apr 2022 00:41:20 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-logs-usage-by-retention-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-logs-usage-by-retention-returns-Bad-Request-response.json index 10d283aa4..d8802fa31 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-logs-usage-by-retention-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-logs-usage-by-retention-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/logs-by-retention?start_hr=2022-03-29T00%3A41%3A21.295Z&end_hr=2022-03-27T00%3A41%3A21.295Z"}, "response": {"body": {"string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Fri, 01 Apr 2022 00:41:21 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/logs-by-retention?start_hr=2022-03-29T00%3A41%3A21.295Z&end_hr=2022-03-27T00%3A41%3A21.295Z" + }, + "response": { + "body": { + "string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Fri, 01 Apr 2022 00:41:21 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-logs-usage-by-retention-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-logs-usage-by-retention-returns-OK-response.json index c7b41a2f0..edf0376a9 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-logs-usage-by-retention-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-logs-usage-by-retention-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/logs-by-retention?start_hr=2022-03-27T00%3A41%3A21.397Z&end_hr=2022-03-29T00%3A41%3A21.397Z"}, "response": {"body": {"string": "{\"usage\":[{\"retention\":\"15\",\"indexed_events_count\":11325,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T00:00:00+00:00\",\"live_indexed_events_count\":11325},{\"retention\":\"15\",\"indexed_events_count\":11262,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T01:00:00+00:00\",\"live_indexed_events_count\":11262},{\"retention\":\"15\",\"indexed_events_count\":11230,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T02:00:00+00:00\",\"live_indexed_events_count\":11230},{\"retention\":\"15\",\"indexed_events_count\":11237,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T03:00:00+00:00\",\"live_indexed_events_count\":11237},{\"retention\":\"15\",\"indexed_events_count\":11231,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T04:00:00+00:00\",\"live_indexed_events_count\":11231},{\"retention\":\"15\",\"indexed_events_count\":11169,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T05:00:00+00:00\",\"live_indexed_events_count\":11169},{\"retention\":\"15\",\"indexed_events_count\":11225,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T06:00:00+00:00\",\"live_indexed_events_count\":11225},{\"retention\":\"15\",\"indexed_events_count\":11256,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T07:00:00+00:00\",\"live_indexed_events_count\":11256},{\"retention\":\"15\",\"indexed_events_count\":11314,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T08:00:00+00:00\",\"live_indexed_events_count\":11314},{\"retention\":\"15\",\"indexed_events_count\":11257,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T09:00:00+00:00\",\"live_indexed_events_count\":11257},{\"retention\":\"15\",\"indexed_events_count\":11221,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T10:00:00+00:00\",\"live_indexed_events_count\":11221},{\"retention\":\"15\",\"indexed_events_count\":11168,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T11:00:00+00:00\",\"live_indexed_events_count\":11168},{\"retention\":\"15\",\"indexed_events_count\":11314,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T12:00:00+00:00\",\"live_indexed_events_count\":11314},{\"retention\":\"15\",\"indexed_events_count\":11257,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T13:00:00+00:00\",\"live_indexed_events_count\":11257},{\"retention\":\"15\",\"indexed_events_count\":11265,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T14:00:00+00:00\",\"live_indexed_events_count\":11265},{\"retention\":\"15\",\"indexed_events_count\":11232,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T15:00:00+00:00\",\"live_indexed_events_count\":11232},{\"retention\":\"15\",\"indexed_events_count\":11314,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T16:00:00+00:00\",\"live_indexed_events_count\":11314},{\"retention\":\"15\",\"indexed_events_count\":11113,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T17:00:00+00:00\",\"live_indexed_events_count\":11113},{\"retention\":\"15\",\"indexed_events_count\":11285,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T18:00:00+00:00\",\"live_indexed_events_count\":11285},{\"retention\":\"15\",\"indexed_events_count\":11256,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T19:00:00+00:00\",\"live_indexed_events_count\":11256},{\"retention\":\"15\",\"indexed_events_count\":11250,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T20:00:00+00:00\",\"live_indexed_events_count\":11250},{\"retention\":\"15\",\"indexed_events_count\":11257,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T21:00:00+00:00\",\"live_indexed_events_count\":11257},{\"retention\":\"15\",\"indexed_events_count\":11285,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T22:00:00+00:00\",\"live_indexed_events_count\":11285},{\"retention\":\"15\",\"indexed_events_count\":11196,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T23:00:00+00:00\",\"live_indexed_events_count\":11196},{\"retention\":\"15\",\"indexed_events_count\":11325,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T00:00:00+00:00\",\"live_indexed_events_count\":11325},{\"retention\":\"15\",\"indexed_events_count\":11202,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T01:00:00+00:00\",\"live_indexed_events_count\":11202},{\"retention\":\"15\",\"indexed_events_count\":11226,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T02:00:00+00:00\",\"live_indexed_events_count\":11226},{\"retention\":\"15\",\"indexed_events_count\":11261,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T03:00:00+00:00\",\"live_indexed_events_count\":11261},{\"retention\":\"15\",\"indexed_events_count\":11319,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T04:00:00+00:00\",\"live_indexed_events_count\":11319},{\"retention\":\"15\",\"indexed_events_count\":11197,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T05:00:00+00:00\",\"live_indexed_events_count\":11197},{\"retention\":\"15\",\"indexed_events_count\":11285,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T06:00:00+00:00\",\"live_indexed_events_count\":11285},{\"retention\":\"15\",\"indexed_events_count\":11256,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T07:00:00+00:00\",\"live_indexed_events_count\":11256},{\"retention\":\"15\",\"indexed_events_count\":11254,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T08:00:00+00:00\",\"live_indexed_events_count\":11254},{\"retention\":\"15\",\"indexed_events_count\":11203,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T09:00:00+00:00\",\"live_indexed_events_count\":11203},{\"retention\":\"15\",\"indexed_events_count\":11172,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T10:00:00+00:00\",\"live_indexed_events_count\":11172},{\"retention\":\"15\",\"indexed_events_count\":11285,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T11:00:00+00:00\",\"live_indexed_events_count\":11285},{\"retention\":\"15\",\"indexed_events_count\":11290,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T12:00:00+00:00\",\"live_indexed_events_count\":11290},{\"retention\":\"15\",\"indexed_events_count\":11257,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T13:00:00+00:00\",\"live_indexed_events_count\":11257},{\"retention\":\"15\",\"indexed_events_count\":11285,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T14:00:00+00:00\",\"live_indexed_events_count\":11285},{\"retention\":\"15\",\"indexed_events_count\":11232,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T15:00:00+00:00\",\"live_indexed_events_count\":11232},{\"retention\":\"15\",\"indexed_events_count\":11266,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T16:00:00+00:00\",\"live_indexed_events_count\":11266},{\"retention\":\"15\",\"indexed_events_count\":11257,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T17:00:00+00:00\",\"live_indexed_events_count\":11257},{\"retention\":\"15\",\"indexed_events_count\":11285,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T18:00:00+00:00\",\"live_indexed_events_count\":11285},{\"retention\":\"15\",\"indexed_events_count\":11172,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T19:00:00+00:00\",\"live_indexed_events_count\":11172},{\"retention\":\"15\",\"indexed_events_count\":11294,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T20:00:00+00:00\",\"live_indexed_events_count\":11294},{\"retention\":\"15\",\"indexed_events_count\":11180,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T21:00:00+00:00\",\"live_indexed_events_count\":11180},{\"retention\":\"15\",\"indexed_events_count\":11197,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T22:00:00+00:00\",\"live_indexed_events_count\":11197},{\"retention\":\"15\",\"indexed_events_count\":11208,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T23:00:00+00:00\",\"live_indexed_events_count\":11208}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 01 Apr 2022 00:41:21 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/logs-by-retention?start_hr=2022-03-27T00%3A41%3A21.397Z&end_hr=2022-03-29T00%3A41%3A21.397Z" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"retention\":\"15\",\"indexed_events_count\":11325,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T00:00:00+00:00\",\"live_indexed_events_count\":11325},{\"retention\":\"15\",\"indexed_events_count\":11262,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T01:00:00+00:00\",\"live_indexed_events_count\":11262},{\"retention\":\"15\",\"indexed_events_count\":11230,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T02:00:00+00:00\",\"live_indexed_events_count\":11230},{\"retention\":\"15\",\"indexed_events_count\":11237,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T03:00:00+00:00\",\"live_indexed_events_count\":11237},{\"retention\":\"15\",\"indexed_events_count\":11231,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T04:00:00+00:00\",\"live_indexed_events_count\":11231},{\"retention\":\"15\",\"indexed_events_count\":11169,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T05:00:00+00:00\",\"live_indexed_events_count\":11169},{\"retention\":\"15\",\"indexed_events_count\":11225,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T06:00:00+00:00\",\"live_indexed_events_count\":11225},{\"retention\":\"15\",\"indexed_events_count\":11256,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T07:00:00+00:00\",\"live_indexed_events_count\":11256},{\"retention\":\"15\",\"indexed_events_count\":11314,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T08:00:00+00:00\",\"live_indexed_events_count\":11314},{\"retention\":\"15\",\"indexed_events_count\":11257,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T09:00:00+00:00\",\"live_indexed_events_count\":11257},{\"retention\":\"15\",\"indexed_events_count\":11221,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T10:00:00+00:00\",\"live_indexed_events_count\":11221},{\"retention\":\"15\",\"indexed_events_count\":11168,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T11:00:00+00:00\",\"live_indexed_events_count\":11168},{\"retention\":\"15\",\"indexed_events_count\":11314,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T12:00:00+00:00\",\"live_indexed_events_count\":11314},{\"retention\":\"15\",\"indexed_events_count\":11257,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T13:00:00+00:00\",\"live_indexed_events_count\":11257},{\"retention\":\"15\",\"indexed_events_count\":11265,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T14:00:00+00:00\",\"live_indexed_events_count\":11265},{\"retention\":\"15\",\"indexed_events_count\":11232,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T15:00:00+00:00\",\"live_indexed_events_count\":11232},{\"retention\":\"15\",\"indexed_events_count\":11314,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T16:00:00+00:00\",\"live_indexed_events_count\":11314},{\"retention\":\"15\",\"indexed_events_count\":11113,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T17:00:00+00:00\",\"live_indexed_events_count\":11113},{\"retention\":\"15\",\"indexed_events_count\":11285,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T18:00:00+00:00\",\"live_indexed_events_count\":11285},{\"retention\":\"15\",\"indexed_events_count\":11256,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T19:00:00+00:00\",\"live_indexed_events_count\":11256},{\"retention\":\"15\",\"indexed_events_count\":11250,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T20:00:00+00:00\",\"live_indexed_events_count\":11250},{\"retention\":\"15\",\"indexed_events_count\":11257,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T21:00:00+00:00\",\"live_indexed_events_count\":11257},{\"retention\":\"15\",\"indexed_events_count\":11285,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T22:00:00+00:00\",\"live_indexed_events_count\":11285},{\"retention\":\"15\",\"indexed_events_count\":11196,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-27T23:00:00+00:00\",\"live_indexed_events_count\":11196},{\"retention\":\"15\",\"indexed_events_count\":11325,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T00:00:00+00:00\",\"live_indexed_events_count\":11325},{\"retention\":\"15\",\"indexed_events_count\":11202,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T01:00:00+00:00\",\"live_indexed_events_count\":11202},{\"retention\":\"15\",\"indexed_events_count\":11226,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T02:00:00+00:00\",\"live_indexed_events_count\":11226},{\"retention\":\"15\",\"indexed_events_count\":11261,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T03:00:00+00:00\",\"live_indexed_events_count\":11261},{\"retention\":\"15\",\"indexed_events_count\":11319,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T04:00:00+00:00\",\"live_indexed_events_count\":11319},{\"retention\":\"15\",\"indexed_events_count\":11197,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T05:00:00+00:00\",\"live_indexed_events_count\":11197},{\"retention\":\"15\",\"indexed_events_count\":11285,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T06:00:00+00:00\",\"live_indexed_events_count\":11285},{\"retention\":\"15\",\"indexed_events_count\":11256,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T07:00:00+00:00\",\"live_indexed_events_count\":11256},{\"retention\":\"15\",\"indexed_events_count\":11254,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T08:00:00+00:00\",\"live_indexed_events_count\":11254},{\"retention\":\"15\",\"indexed_events_count\":11203,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T09:00:00+00:00\",\"live_indexed_events_count\":11203},{\"retention\":\"15\",\"indexed_events_count\":11172,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T10:00:00+00:00\",\"live_indexed_events_count\":11172},{\"retention\":\"15\",\"indexed_events_count\":11285,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T11:00:00+00:00\",\"live_indexed_events_count\":11285},{\"retention\":\"15\",\"indexed_events_count\":11290,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T12:00:00+00:00\",\"live_indexed_events_count\":11290},{\"retention\":\"15\",\"indexed_events_count\":11257,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T13:00:00+00:00\",\"live_indexed_events_count\":11257},{\"retention\":\"15\",\"indexed_events_count\":11285,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T14:00:00+00:00\",\"live_indexed_events_count\":11285},{\"retention\":\"15\",\"indexed_events_count\":11232,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T15:00:00+00:00\",\"live_indexed_events_count\":11232},{\"retention\":\"15\",\"indexed_events_count\":11266,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T16:00:00+00:00\",\"live_indexed_events_count\":11266},{\"retention\":\"15\",\"indexed_events_count\":11257,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T17:00:00+00:00\",\"live_indexed_events_count\":11257},{\"retention\":\"15\",\"indexed_events_count\":11285,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T18:00:00+00:00\",\"live_indexed_events_count\":11285},{\"retention\":\"15\",\"indexed_events_count\":11172,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T19:00:00+00:00\",\"live_indexed_events_count\":11172},{\"retention\":\"15\",\"indexed_events_count\":11294,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T20:00:00+00:00\",\"live_indexed_events_count\":11294},{\"retention\":\"15\",\"indexed_events_count\":11180,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T21:00:00+00:00\",\"live_indexed_events_count\":11180},{\"retention\":\"15\",\"indexed_events_count\":11197,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T22:00:00+00:00\",\"live_indexed_events_count\":11197},{\"retention\":\"15\",\"indexed_events_count\":11208,\"rehydrated_indexed_events_count\":0,\"hour\":\"2022-03-28T23:00:00+00:00\",\"live_indexed_events_count\":11208}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 01 Apr 2022 00:41:21 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-attribution-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-attribution-returns-OK-response.json index ffce7a7c4..6330a297a 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-attribution-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-attribution-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/hourly-attribution?start_hr=2022-05-20T08%3A46%3A26.291Z&usage_type=infra_host_usage"}, "response": {"body": {"string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T08:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T00\",\"usage_type\":\"infra_host_usage\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T09:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T00\",\"usage_type\":\"infra_host_usage\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T10:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T00\",\"usage_type\":\"infra_host_usage\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T11:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T00\",\"usage_type\":\"infra_host_usage\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T12:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T04\",\"usage_type\":\"infra_host_usage\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T13:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T04\",\"usage_type\":\"infra_host_usage\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T14:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T04\",\"usage_type\":\"infra_host_usage\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T15:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T04\",\"usage_type\":\"infra_host_usage\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T16:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T07\",\"usage_type\":\"infra_host_usage\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T17:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T07\",\"usage_type\":\"infra_host_usage\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T18:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T07\",\"usage_type\":\"infra_host_usage\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T19:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T07\",\"usage_type\":\"infra_host_usage\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T20:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T10\",\"usage_type\":\"infra_host_usage\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T21:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T10\",\"usage_type\":\"infra_host_usage\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T22:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T10\",\"usage_type\":\"infra_host_usage\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T23:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T10\",\"usage_type\":\"infra_host_usage\"}],\"metadata\":{\"pagination\":{\"next_record_id\":null}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 23 May 2022 08:46:26 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/hourly-attribution?start_hr=2022-05-20T08%3A46%3A26.291Z&usage_type=infra_host_usage" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T08:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T00\",\"usage_type\":\"infra_host_usage\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T09:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T00\",\"usage_type\":\"infra_host_usage\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T10:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T00\",\"usage_type\":\"infra_host_usage\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T11:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T00\",\"usage_type\":\"infra_host_usage\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T12:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T04\",\"usage_type\":\"infra_host_usage\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T13:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T04\",\"usage_type\":\"infra_host_usage\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T14:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T04\",\"usage_type\":\"infra_host_usage\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T15:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T04\",\"usage_type\":\"infra_host_usage\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T16:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T07\",\"usage_type\":\"infra_host_usage\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T17:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T07\",\"usage_type\":\"infra_host_usage\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T18:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T07\",\"usage_type\":\"infra_host_usage\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T19:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T07\",\"usage_type\":\"infra_host_usage\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T20:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T10\",\"usage_type\":\"infra_host_usage\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T21:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T10\",\"usage_type\":\"infra_host_usage\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T22:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T10\",\"usage_type\":\"infra_host_usage\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-20T23:00:00+00:00\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"total_usage_sum\":18,\"updated_at\":\"2022-05-21T10\",\"usage_type\":\"infra_host_usage\"}],\"metadata\":{\"pagination\":{\"next_record_id\":null}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 23 May 2022 08:46:26 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-CI-visibility-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-CI-visibility-returns-Bad-Request-response.json index 698763850..b120d9517 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-CI-visibility-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-CI-visibility-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/ci-app?start_hr=2023-09-22T19%3A13%3A30.824Z&end_hr=2023-09-20T19%3A13%3A30.824Z"}, "response": {"body": {"string": "{\"errors\":[\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Mon, 25 Sep 2023 19:13:30 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/ci-app?start_hr=2023-09-22T19%3A13%3A30.824Z&end_hr=2023-09-20T19%3A13%3A30.824Z" + }, + "response": { + "body": { + "string": "{\"errors\":[\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Mon, 25 Sep 2023 19:13:30 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-CI-visibility-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-CI-visibility-returns-OK-response.json index c21b3fd4e..6fc70d25d 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-CI-visibility-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-CI-visibility-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/ci-app?start_hr=2023-09-20T18%3A27%3A41.222Z&end_hr=2023-09-22T18%3A27%3A41.222Z"}, "response": {"body": {"string": "{\"usage\":[{\"hour\":\"2023-09-20T18:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-20T19:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-20T20:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-20T21:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-20T22:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-20T23:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T00:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":4,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T01:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T02:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T03:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T04:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":4,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T05:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T06:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T07:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T08:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T09:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T10:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T11:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T12:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T13:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T14:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T15:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T16:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T17:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T18:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T19:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T20:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T21:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T22:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T23:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T00:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T01:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":4,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T02:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":4,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T03:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T04:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T05:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T06:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T07:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T08:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T09:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T10:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T11:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T12:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T13:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T14:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T15:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T16:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T17:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 25 Sep 2023 18:27:41 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/ci-app?start_hr=2023-09-20T18%3A27%3A41.222Z&end_hr=2023-09-22T18%3A27%3A41.222Z" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"hour\":\"2023-09-20T18:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-20T19:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-20T20:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-20T21:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-20T22:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-20T23:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T00:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":4,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T01:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T02:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T03:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T04:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":4,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T05:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T06:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T07:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T08:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T09:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T10:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T11:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T12:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T13:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T14:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T15:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T16:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T17:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T18:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T19:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T20:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T21:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T22:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T23:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T00:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T01:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":4,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T02:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":4,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T03:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T04:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T05:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T06:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T07:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T08:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T09:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T10:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T11:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T12:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T13:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T14:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":2,\"ci_test_indexed_spans\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T15:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T16:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T17:00:00+00:00\",\"region\":\"us\",\"ci_visibility_itr_committers\":null,\"ci_visibility_pipeline_committers\":0,\"ci_visibility_test_committers\":0,\"ci_pipeline_indexed_spans\":null,\"ci_test_indexed_spans\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 25 Sep 2023 18:27:41 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-CSM-Pro-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-CSM-Pro-returns-OK-response.json index 27c342758..dac0ca712 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-CSM-Pro-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-CSM-Pro-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/cspm?start_hr=2023-09-17T21%3A11%3A12.476Z"}, "response": {"body": {"string": "{\"usage\":[{\"hour\":\"2023-09-17T21:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-17T22:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-17T23:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T00:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T01:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T02:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T03:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T04:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T05:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T06:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T07:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T08:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T09:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T10:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T11:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T12:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T13:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T14:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T15:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T16:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T17:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T18:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T19:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T20:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 20 Sep 2023 21:11:12 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/cspm?start_hr=2023-09-17T21%3A11%3A12.476Z" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"hour\":\"2023-09-17T21:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-17T22:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-17T23:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T00:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T01:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T02:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T03:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T04:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T05:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T06:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T07:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T08:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T09:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T10:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T11:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T12:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T13:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T14:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T15:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T16:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T17:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T18:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T19:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-18T20:00:00+00:00\",\"region\":\"us\",\"host_count\":null,\"container_count\":null,\"aas_host_count\":null,\"aws_host_count\":null,\"gcp_host_count\":null,\"azure_host_count\":null,\"compliance_host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 20 Sep 2023 21:11:12 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-CSPM-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-CSPM-returns-OK-response.json index 98da20a38..46106b26c 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-CSPM-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-CSPM-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/cspm?start_hr=2022-01-18T12%3A03%3A20.978Z"}, "response": {"body": {"string": "{\"usage\":[{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-18T12:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-18T13:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-18T14:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-18T15:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-18T16:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-18T17:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-18T18:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-18T19:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-18T20:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-18T21:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-18T22:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-18T23:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-19T00:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-19T01:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-19T02:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-19T03:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-19T04:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-19T05:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-19T06:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-19T07:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-19T08:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-19T09:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-19T10:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-19T11:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 21 Jan 2022 12:03:20 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/cspm?start_hr=2022-01-18T12%3A03%3A20.978Z" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-18T12:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-18T13:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-18T14:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-18T15:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-18T16:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-18T17:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-18T18:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-18T19:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-18T20:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-18T21:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-18T22:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-18T23:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-19T00:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-19T01:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-19T02:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-19T03:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-19T04:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-19T05:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-19T06:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-19T07:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-19T08:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-19T09:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-19T10:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"aas_host_count\":null,\"hour\":\"2022-01-19T11:00:00+00:00\",\"compliance_host_count\":null,\"azure_host_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 21 Jan 2022 12:03:20 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Database-Monitoring-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Database-Monitoring-returns-OK-response.json index 77f645746..0dbdd6e4d 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Database-Monitoring-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Database-Monitoring-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/dbm?start_hr=2022-03-27T15%3A43%3A36.948Z&end_hr=2022-03-29T15%3A43%3A36.948Z"}, "response": {"body": {"string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T15:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T16:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T17:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T18:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T19:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T20:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T21:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T22:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T23:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T00:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T01:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T02:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T03:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T04:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T05:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T06:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T07:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T08:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T09:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T10:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T11:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T12:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T13:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T14:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T15:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T16:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T17:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T18:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T19:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T20:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T21:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T22:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T23:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T00:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T01:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T02:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T03:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T04:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T05:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T06:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T07:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T08:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T09:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T10:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T11:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T12:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T13:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T14:00:00+00:00\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 01 Apr 2022 15:43:36 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/dbm?start_hr=2022-03-27T15%3A43%3A36.948Z&end_hr=2022-03-29T15%3A43%3A36.948Z" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T15:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T16:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T17:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T18:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T19:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T20:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T21:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T22:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T23:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T00:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T01:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T02:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T03:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T04:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T05:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T06:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T07:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T08:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T09:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T10:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T11:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T12:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T13:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T14:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T15:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T16:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T17:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T18:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T19:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T20:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T21:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T22:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T23:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T00:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T01:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T02:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T03:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T04:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T05:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T06:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T07:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T08:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T09:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T10:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T11:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T12:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T13:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"dbm_host_count\":null,\"dbm_queries_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T14:00:00+00:00\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 01 Apr 2022 15:43:36 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Fargate-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Fargate-returns-Bad-Request-response.json index a054d15ef..ef94eaa7f 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Fargate-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Fargate-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/fargate?start_hr=2022-03-29T00%3A41%3A23.099Z&end_hr=2022-03-27T00%3A41%3A23.099Z"}, "response": {"body": {"string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Fri, 01 Apr 2022 00:41:23 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/fargate?start_hr=2022-03-29T00%3A41%3A23.099Z&end_hr=2022-03-27T00%3A41%3A23.099Z" + }, + "response": { + "body": { + "string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Fri, 01 Apr 2022 00:41:23 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Fargate-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Fargate-returns-OK-response.json index 5f74bc6f0..e0c7b2aa0 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Fargate-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Fargate-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/fargate?start_hr=2022-03-27T00%3A41%3A23.206Z&end_hr=2022-03-29T00%3A41%3A23.206Z"}, "response": {"body": {"string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T00:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T01:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T02:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T03:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T04:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T05:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T06:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T07:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T08:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T09:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T10:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T11:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T12:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T13:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T14:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T15:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T16:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T17:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T18:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T19:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T20:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T21:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T22:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T23:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T00:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T01:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T02:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T03:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T04:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T05:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T06:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T07:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T08:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T09:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T10:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T11:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T12:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T13:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T14:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T15:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T16:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T17:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T18:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T19:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T20:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T21:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T22:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T23:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 01 Apr 2022 00:41:23 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/fargate?start_hr=2022-03-27T00%3A41%3A23.206Z&end_hr=2022-03-29T00%3A41%3A23.206Z" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T00:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T01:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T02:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T03:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T04:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T05:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T06:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T07:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T08:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T09:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T10:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T11:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T12:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T13:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T14:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T15:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T16:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T17:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T18:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T19:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T20:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T21:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T22:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T23:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T00:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T01:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T02:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T03:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T04:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T05:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T06:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T07:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T08:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T09:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T10:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T11:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T12:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T13:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T14:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T15:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T16:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T17:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T18:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T19:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T20:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T21:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T22:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T23:00:00+00:00\",\"avg_tasks_count\":null,\"tasks_count\":null,\"avg_profiled_fargate_tasks\":null}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 01 Apr 2022 00:41:23 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-IoT-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-IoT-returns-Bad-Request-response.json index 94826f0d1..263c3745d 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-IoT-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-IoT-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/iot?start_hr=2022-01-28T09%3A34%3A27.865Z&end_hr=2022-01-26T09%3A34%3A27.865Z"}, "response": {"body": {"string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Mon, 31 Jan 2022 09:34:27 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/iot?start_hr=2022-01-28T09%3A34%3A27.865Z&end_hr=2022-01-26T09%3A34%3A27.865Z" + }, + "response": { + "body": { + "string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Mon, 31 Jan 2022 09:34:27 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-IoT-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-IoT-returns-OK-response.json index 837de2f65..92657d7df 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-IoT-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-IoT-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/iot?start_hr=2022-01-26T09%3A34%3A28.357Z&end_hr=2022-01-28T09%3A34%3A28.357Z"}, "response": {"body": {"string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T09:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T10:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T11:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T12:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T13:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T14:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T15:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T16:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T17:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T18:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T19:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T20:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T21:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T22:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T23:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T00:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T01:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T02:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T03:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T04:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T05:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T06:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T07:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T08:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T09:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T10:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T11:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T12:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T13:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T14:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T15:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T16:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T17:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T18:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T19:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T20:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T21:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T22:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T23:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T00:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T01:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T02:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T03:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T04:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T05:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T06:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T07:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T08:00:00+00:00\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 31 Jan 2022 09:34:28 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/iot?start_hr=2022-01-26T09%3A34%3A28.357Z&end_hr=2022-01-28T09%3A34%3A28.357Z" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T09:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T10:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T11:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T12:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T13:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T14:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T15:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T16:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T17:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T18:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T19:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T20:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T21:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T22:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T23:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T00:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T01:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T02:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T03:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T04:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T05:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T06:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T07:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T08:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T09:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T10:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T11:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T12:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T13:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T14:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T15:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T16:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T17:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T18:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T19:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T20:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T21:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T22:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T23:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T00:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T01:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T02:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T03:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T04:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T05:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T06:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T07:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"iot_device_count\":0,\"iot_device_tag\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T08:00:00+00:00\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 31 Jan 2022 09:34:28 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Lambda-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Lambda-returns-Bad-Request-response.json index b3f350f08..4ae8bf6d1 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Lambda-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Lambda-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/aws_lambda?start_hr=2022-03-29T00%3A41%3A23.917Z&end_hr=2022-03-27T00%3A41%3A23.917Z"}, "response": {"body": {"string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Fri, 01 Apr 2022 00:41:23 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/aws_lambda?start_hr=2022-03-29T00%3A41%3A23.917Z&end_hr=2022-03-27T00%3A41%3A23.917Z" + }, + "response": { + "body": { + "string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Fri, 01 Apr 2022 00:41:23 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Lambda-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Lambda-returns-OK-response.json index 3cf232618..9f0ae22b8 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Lambda-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Lambda-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/aws_lambda?start_hr=2022-03-27T00%3A41%3A24.021Z&end_hr=2022-03-29T00%3A41%3A24.021Z"}, "response": {"body": {"string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T00:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T01:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T02:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T03:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T04:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T05:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T06:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T07:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T08:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T09:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T10:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T11:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T12:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T13:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T14:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T15:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T16:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T17:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T18:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T19:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T20:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T21:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T22:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T23:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T00:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T01:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T02:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T03:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T04:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T05:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T06:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T07:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T08:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T09:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T10:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T11:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T12:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T13:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T14:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T15:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T16:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T17:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T18:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T19:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T20:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T21:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T22:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T23:00:00+00:00\",\"invocations_sum\":0}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 01 Apr 2022 00:41:24 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/aws_lambda?start_hr=2022-03-27T00%3A41%3A24.021Z&end_hr=2022-03-29T00%3A41%3A24.021Z" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T00:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T01:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T02:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T03:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T04:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T05:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T06:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T07:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T08:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T09:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T10:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T11:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T12:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T13:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T14:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T15:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T16:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T17:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T18:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T19:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T20:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T21:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T22:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T23:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T00:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T01:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T02:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T03:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T04:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T05:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T06:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T07:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T08:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T09:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T10:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T11:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T12:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T13:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T14:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T15:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T16:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T17:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T18:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T19:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T20:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T21:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T22:00:00+00:00\",\"invocations_sum\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"func_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T23:00:00+00:00\",\"invocations_sum\":0}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 01 Apr 2022 00:41:24 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Logs-by-Index-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Logs-by-Index-returns-Bad-Request-response.json index e037c93e8..d867ad6f2 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Logs-by-Index-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Logs-by-Index-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/logs_by_index?start_hr=2022-03-29T17%3A01%3A53.545Z&end_hr=2022-03-27T17%3A01%3A53.545Z"}, "response": {"body": {"string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Fri, 01 Apr 2022 17:01:53 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/logs_by_index?start_hr=2022-03-29T17%3A01%3A53.545Z&end_hr=2022-03-27T17%3A01%3A53.545Z" + }, + "response": { + "body": { + "string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Fri, 01 Apr 2022 17:01:53 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Logs-by-Index-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Logs-by-Index-returns-OK-response.json index 0007a7df3..a23f924d2 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Logs-by-Index-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Logs-by-Index-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/logs_by_index?start_hr=2022-03-27T15%3A43%3A39.457Z&end_hr=2022-03-29T15%3A43%3A39.457Z"}, "response": {"body": {"string": "{\"usage\":[{\"rehydrated_indexed\":0,\"hour\":\"2022-03-27T15:00:00+00:00\",\"event_count\":11232,\"org_id\":321813,\"live_index_indexed\":11232,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-27T16:00:00+00:00\",\"event_count\":11314,\"org_id\":321813,\"live_index_indexed\":11314,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-27T17:00:00+00:00\",\"event_count\":11113,\"org_id\":321813,\"live_index_indexed\":11113,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-27T18:00:00+00:00\",\"event_count\":11285,\"org_id\":321813,\"live_index_indexed\":11285,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-27T19:00:00+00:00\",\"event_count\":11256,\"org_id\":321813,\"live_index_indexed\":11256,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-27T20:00:00+00:00\",\"event_count\":11250,\"org_id\":321813,\"live_index_indexed\":11250,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-27T21:00:00+00:00\",\"event_count\":11257,\"org_id\":321813,\"live_index_indexed\":11257,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-27T22:00:00+00:00\",\"event_count\":11285,\"org_id\":321813,\"live_index_indexed\":11285,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-27T23:00:00+00:00\",\"event_count\":11196,\"org_id\":321813,\"live_index_indexed\":11196,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T00:00:00+00:00\",\"event_count\":11325,\"org_id\":321813,\"live_index_indexed\":11325,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T01:00:00+00:00\",\"event_count\":11202,\"org_id\":321813,\"live_index_indexed\":11202,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T02:00:00+00:00\",\"event_count\":11226,\"org_id\":321813,\"live_index_indexed\":11226,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T03:00:00+00:00\",\"event_count\":11261,\"org_id\":321813,\"live_index_indexed\":11261,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T04:00:00+00:00\",\"event_count\":11319,\"org_id\":321813,\"live_index_indexed\":11319,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T05:00:00+00:00\",\"event_count\":11197,\"org_id\":321813,\"live_index_indexed\":11197,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T06:00:00+00:00\",\"event_count\":11285,\"org_id\":321813,\"live_index_indexed\":11285,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T07:00:00+00:00\",\"event_count\":11256,\"org_id\":321813,\"live_index_indexed\":11256,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T08:00:00+00:00\",\"event_count\":11254,\"org_id\":321813,\"live_index_indexed\":11254,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T09:00:00+00:00\",\"event_count\":11203,\"org_id\":321813,\"live_index_indexed\":11203,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T10:00:00+00:00\",\"event_count\":11172,\"org_id\":321813,\"live_index_indexed\":11172,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T11:00:00+00:00\",\"event_count\":11285,\"org_id\":321813,\"live_index_indexed\":11285,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T12:00:00+00:00\",\"event_count\":11290,\"org_id\":321813,\"live_index_indexed\":11290,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T13:00:00+00:00\",\"event_count\":11257,\"org_id\":321813,\"live_index_indexed\":11257,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T14:00:00+00:00\",\"event_count\":11285,\"org_id\":321813,\"live_index_indexed\":11285,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T15:00:00+00:00\",\"event_count\":11232,\"org_id\":321813,\"live_index_indexed\":11232,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T16:00:00+00:00\",\"event_count\":11266,\"org_id\":321813,\"live_index_indexed\":11266,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T17:00:00+00:00\",\"event_count\":11257,\"org_id\":321813,\"live_index_indexed\":11257,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T18:00:00+00:00\",\"event_count\":11285,\"org_id\":321813,\"live_index_indexed\":11285,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T19:00:00+00:00\",\"event_count\":11172,\"org_id\":321813,\"live_index_indexed\":11172,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T20:00:00+00:00\",\"event_count\":11294,\"org_id\":321813,\"live_index_indexed\":11294,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T21:00:00+00:00\",\"event_count\":11180,\"org_id\":321813,\"live_index_indexed\":11180,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T22:00:00+00:00\",\"event_count\":11197,\"org_id\":321813,\"live_index_indexed\":11197,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T23:00:00+00:00\",\"event_count\":11208,\"org_id\":321813,\"live_index_indexed\":11208,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-29T00:00:00+00:00\",\"event_count\":11305,\"org_id\":321813,\"live_index_indexed\":11305,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-29T01:00:00+00:00\",\"event_count\":11262,\"org_id\":321813,\"live_index_indexed\":11262,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-29T02:00:00+00:00\",\"event_count\":11170,\"org_id\":321813,\"live_index_indexed\":11170,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-29T03:00:00+00:00\",\"event_count\":11113,\"org_id\":321813,\"live_index_indexed\":11113,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-29T04:00:00+00:00\",\"event_count\":11290,\"org_id\":321813,\"live_index_indexed\":11290,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-29T05:00:00+00:00\",\"event_count\":11286,\"org_id\":321813,\"live_index_indexed\":11286,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-29T06:00:00+00:00\",\"event_count\":11285,\"org_id\":321813,\"live_index_indexed\":11285,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-29T07:00:00+00:00\",\"event_count\":11256,\"org_id\":321813,\"live_index_indexed\":11256,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-29T08:00:00+00:00\",\"event_count\":11254,\"org_id\":321813,\"live_index_indexed\":11254,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-29T09:00:00+00:00\",\"event_count\":11193,\"org_id\":321813,\"live_index_indexed\":11193,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-29T10:00:00+00:00\",\"event_count\":11236,\"org_id\":321813,\"live_index_indexed\":11236,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-29T11:00:00+00:00\",\"event_count\":11261,\"org_id\":321813,\"live_index_indexed\":11261,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-29T12:00:00+00:00\",\"event_count\":11314,\"org_id\":321813,\"live_index_indexed\":11314,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-29T13:00:00+00:00\",\"event_count\":11233,\"org_id\":321813,\"live_index_indexed\":11233,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-29T14:00:00+00:00\",\"event_count\":11225,\"org_id\":321813,\"live_index_indexed\":11225,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 01 Apr 2022 15:43:39 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/logs_by_index?start_hr=2022-03-27T15%3A43%3A39.457Z&end_hr=2022-03-29T15%3A43%3A39.457Z" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"rehydrated_indexed\":0,\"hour\":\"2022-03-27T15:00:00+00:00\",\"event_count\":11232,\"org_id\":321813,\"live_index_indexed\":11232,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-27T16:00:00+00:00\",\"event_count\":11314,\"org_id\":321813,\"live_index_indexed\":11314,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-27T17:00:00+00:00\",\"event_count\":11113,\"org_id\":321813,\"live_index_indexed\":11113,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-27T18:00:00+00:00\",\"event_count\":11285,\"org_id\":321813,\"live_index_indexed\":11285,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-27T19:00:00+00:00\",\"event_count\":11256,\"org_id\":321813,\"live_index_indexed\":11256,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-27T20:00:00+00:00\",\"event_count\":11250,\"org_id\":321813,\"live_index_indexed\":11250,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-27T21:00:00+00:00\",\"event_count\":11257,\"org_id\":321813,\"live_index_indexed\":11257,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-27T22:00:00+00:00\",\"event_count\":11285,\"org_id\":321813,\"live_index_indexed\":11285,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-27T23:00:00+00:00\",\"event_count\":11196,\"org_id\":321813,\"live_index_indexed\":11196,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T00:00:00+00:00\",\"event_count\":11325,\"org_id\":321813,\"live_index_indexed\":11325,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T01:00:00+00:00\",\"event_count\":11202,\"org_id\":321813,\"live_index_indexed\":11202,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T02:00:00+00:00\",\"event_count\":11226,\"org_id\":321813,\"live_index_indexed\":11226,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T03:00:00+00:00\",\"event_count\":11261,\"org_id\":321813,\"live_index_indexed\":11261,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T04:00:00+00:00\",\"event_count\":11319,\"org_id\":321813,\"live_index_indexed\":11319,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T05:00:00+00:00\",\"event_count\":11197,\"org_id\":321813,\"live_index_indexed\":11197,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T06:00:00+00:00\",\"event_count\":11285,\"org_id\":321813,\"live_index_indexed\":11285,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T07:00:00+00:00\",\"event_count\":11256,\"org_id\":321813,\"live_index_indexed\":11256,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T08:00:00+00:00\",\"event_count\":11254,\"org_id\":321813,\"live_index_indexed\":11254,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T09:00:00+00:00\",\"event_count\":11203,\"org_id\":321813,\"live_index_indexed\":11203,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T10:00:00+00:00\",\"event_count\":11172,\"org_id\":321813,\"live_index_indexed\":11172,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T11:00:00+00:00\",\"event_count\":11285,\"org_id\":321813,\"live_index_indexed\":11285,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T12:00:00+00:00\",\"event_count\":11290,\"org_id\":321813,\"live_index_indexed\":11290,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T13:00:00+00:00\",\"event_count\":11257,\"org_id\":321813,\"live_index_indexed\":11257,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T14:00:00+00:00\",\"event_count\":11285,\"org_id\":321813,\"live_index_indexed\":11285,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T15:00:00+00:00\",\"event_count\":11232,\"org_id\":321813,\"live_index_indexed\":11232,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T16:00:00+00:00\",\"event_count\":11266,\"org_id\":321813,\"live_index_indexed\":11266,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T17:00:00+00:00\",\"event_count\":11257,\"org_id\":321813,\"live_index_indexed\":11257,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T18:00:00+00:00\",\"event_count\":11285,\"org_id\":321813,\"live_index_indexed\":11285,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T19:00:00+00:00\",\"event_count\":11172,\"org_id\":321813,\"live_index_indexed\":11172,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T20:00:00+00:00\",\"event_count\":11294,\"org_id\":321813,\"live_index_indexed\":11294,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T21:00:00+00:00\",\"event_count\":11180,\"org_id\":321813,\"live_index_indexed\":11180,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T22:00:00+00:00\",\"event_count\":11197,\"org_id\":321813,\"live_index_indexed\":11197,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-28T23:00:00+00:00\",\"event_count\":11208,\"org_id\":321813,\"live_index_indexed\":11208,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-29T00:00:00+00:00\",\"event_count\":11305,\"org_id\":321813,\"live_index_indexed\":11305,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-29T01:00:00+00:00\",\"event_count\":11262,\"org_id\":321813,\"live_index_indexed\":11262,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-29T02:00:00+00:00\",\"event_count\":11170,\"org_id\":321813,\"live_index_indexed\":11170,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-29T03:00:00+00:00\",\"event_count\":11113,\"org_id\":321813,\"live_index_indexed\":11113,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-29T04:00:00+00:00\",\"event_count\":11290,\"org_id\":321813,\"live_index_indexed\":11290,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-29T05:00:00+00:00\",\"event_count\":11286,\"org_id\":321813,\"live_index_indexed\":11286,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-29T06:00:00+00:00\",\"event_count\":11285,\"org_id\":321813,\"live_index_indexed\":11285,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-29T07:00:00+00:00\",\"event_count\":11256,\"org_id\":321813,\"live_index_indexed\":11256,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-29T08:00:00+00:00\",\"event_count\":11254,\"org_id\":321813,\"live_index_indexed\":11254,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-29T09:00:00+00:00\",\"event_count\":11193,\"org_id\":321813,\"live_index_indexed\":11193,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-29T10:00:00+00:00\",\"event_count\":11236,\"org_id\":321813,\"live_index_indexed\":11236,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-29T11:00:00+00:00\",\"event_count\":11261,\"org_id\":321813,\"live_index_indexed\":11261,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-29T12:00:00+00:00\",\"event_count\":11314,\"org_id\":321813,\"live_index_indexed\":11314,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-29T13:00:00+00:00\",\"event_count\":11233,\"org_id\":321813,\"live_index_indexed\":11233,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15},{\"rehydrated_indexed\":0,\"hour\":\"2022-03-29T14:00:00+00:00\",\"event_count\":11225,\"org_id\":321813,\"live_index_indexed\":11225,\"index_name\":\"main\",\"rate_limited\":false,\"filtered\":false,\"index_id\":\"33715\",\"retention\":15}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 01 Apr 2022 15:43:39 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Logs-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Logs-returns-Bad-Request-response.json index 7c531465d..7705fee4a 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Logs-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Logs-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/logs?start_hr=2022-03-29T15%3A43%3A39.812Z&end_hr=2022-03-27T15%3A43%3A39.812Z"}, "response": {"body": {"string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Fri, 01 Apr 2022 15:43:39 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/logs?start_hr=2022-03-29T15%3A43%3A39.812Z&end_hr=2022-03-27T15%3A43%3A39.812Z" + }, + "response": { + "body": { + "string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Fri, 01 Apr 2022 15:43:39 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Logs-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Logs-returns-OK-response.json index 11166df1c..210fd36e3 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Logs-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Logs-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/logs?start_hr=2022-03-27T15%3A43%3A39.992Z&end_hr=2022-03-29T15%3A43%3A39.992Z"}, "response": {"body": {"string": "{\"usage\":[{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-27T15:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11232,\"logs_live_indexed_count\":11232},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-27T16:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11314,\"logs_live_indexed_count\":11314},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-27T17:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11113,\"logs_live_indexed_count\":11113},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-27T18:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11285,\"logs_live_indexed_count\":11285},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-27T19:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11256,\"logs_live_indexed_count\":11256},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-27T20:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11250,\"logs_live_indexed_count\":11250},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-27T21:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11257,\"logs_live_indexed_count\":11257},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-27T22:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11285,\"logs_live_indexed_count\":11285},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-27T23:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11196,\"logs_live_indexed_count\":11196},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T00:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11325,\"logs_live_indexed_count\":11325},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T01:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11202,\"logs_live_indexed_count\":11202},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T02:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11226,\"logs_live_indexed_count\":11226},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T03:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11261,\"logs_live_indexed_count\":11261},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T04:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11319,\"logs_live_indexed_count\":11319},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T05:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11197,\"logs_live_indexed_count\":11197},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T06:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11285,\"logs_live_indexed_count\":11285},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T07:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11256,\"logs_live_indexed_count\":11256},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T08:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11254,\"logs_live_indexed_count\":11254},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T09:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11203,\"logs_live_indexed_count\":11203},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T10:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11172,\"logs_live_indexed_count\":11172},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T11:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11285,\"logs_live_indexed_count\":11285},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T12:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11290,\"logs_live_indexed_count\":11290},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T13:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11257,\"logs_live_indexed_count\":11257},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T14:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11285,\"logs_live_indexed_count\":11285},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T15:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11232,\"logs_live_indexed_count\":11232},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T16:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11266,\"logs_live_indexed_count\":11266},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T17:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11257,\"logs_live_indexed_count\":11257},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T18:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11285,\"logs_live_indexed_count\":11285},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T19:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11172,\"logs_live_indexed_count\":11172},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T20:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11294,\"logs_live_indexed_count\":11294},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T21:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11180,\"logs_live_indexed_count\":11180},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T22:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11197,\"logs_live_indexed_count\":11197},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T23:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11208,\"logs_live_indexed_count\":11208},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-29T00:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11305,\"logs_live_indexed_count\":11305},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-29T01:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11262,\"logs_live_indexed_count\":11262},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-29T02:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11170,\"logs_live_indexed_count\":11170},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-29T03:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11113,\"logs_live_indexed_count\":11113},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-29T04:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11290,\"logs_live_indexed_count\":11290},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-29T05:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11286,\"logs_live_indexed_count\":11286},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-29T06:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11285,\"logs_live_indexed_count\":11285},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-29T07:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11256,\"logs_live_indexed_count\":11256},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-29T08:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11254,\"logs_live_indexed_count\":11254},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-29T09:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11193,\"logs_live_indexed_count\":11193},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-29T10:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11236,\"logs_live_indexed_count\":11236},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-29T11:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11261,\"logs_live_indexed_count\":11261},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-29T12:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11314,\"logs_live_indexed_count\":11314},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-29T13:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11233,\"logs_live_indexed_count\":11233},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-29T14:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11225,\"logs_live_indexed_count\":11225}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 01 Apr 2022 15:43:39 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/logs?start_hr=2022-03-27T15%3A43%3A39.992Z&end_hr=2022-03-29T15%3A43%3A39.992Z" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-27T15:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11232,\"logs_live_indexed_count\":11232},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-27T16:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11314,\"logs_live_indexed_count\":11314},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-27T17:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11113,\"logs_live_indexed_count\":11113},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-27T18:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11285,\"logs_live_indexed_count\":11285},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-27T19:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11256,\"logs_live_indexed_count\":11256},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-27T20:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11250,\"logs_live_indexed_count\":11250},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-27T21:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11257,\"logs_live_indexed_count\":11257},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-27T22:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11285,\"logs_live_indexed_count\":11285},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-27T23:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11196,\"logs_live_indexed_count\":11196},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T00:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11325,\"logs_live_indexed_count\":11325},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T01:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11202,\"logs_live_indexed_count\":11202},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T02:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11226,\"logs_live_indexed_count\":11226},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T03:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11261,\"logs_live_indexed_count\":11261},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T04:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11319,\"logs_live_indexed_count\":11319},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T05:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11197,\"logs_live_indexed_count\":11197},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T06:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11285,\"logs_live_indexed_count\":11285},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T07:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11256,\"logs_live_indexed_count\":11256},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T08:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11254,\"logs_live_indexed_count\":11254},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T09:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11203,\"logs_live_indexed_count\":11203},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T10:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11172,\"logs_live_indexed_count\":11172},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T11:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11285,\"logs_live_indexed_count\":11285},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T12:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11290,\"logs_live_indexed_count\":11290},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T13:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11257,\"logs_live_indexed_count\":11257},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T14:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11285,\"logs_live_indexed_count\":11285},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T15:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11232,\"logs_live_indexed_count\":11232},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T16:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11266,\"logs_live_indexed_count\":11266},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T17:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11257,\"logs_live_indexed_count\":11257},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T18:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11285,\"logs_live_indexed_count\":11285},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T19:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11172,\"logs_live_indexed_count\":11172},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T20:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11294,\"logs_live_indexed_count\":11294},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T21:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11180,\"logs_live_indexed_count\":11180},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T22:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11197,\"logs_live_indexed_count\":11197},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-28T23:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11208,\"logs_live_indexed_count\":11208},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-29T00:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11305,\"logs_live_indexed_count\":11305},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-29T01:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11262,\"logs_live_indexed_count\":11262},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-29T02:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11170,\"logs_live_indexed_count\":11170},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-29T03:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11113,\"logs_live_indexed_count\":11113},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-29T04:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11290,\"logs_live_indexed_count\":11290},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-29T05:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11286,\"logs_live_indexed_count\":11286},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-29T06:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11285,\"logs_live_indexed_count\":11285},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-29T07:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11256,\"logs_live_indexed_count\":11256},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-29T08:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11254,\"logs_live_indexed_count\":11254},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-29T09:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11193,\"logs_live_indexed_count\":11193},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-29T10:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11236,\"logs_live_indexed_count\":11236},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-29T11:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11261,\"logs_live_indexed_count\":11261},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-29T12:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11314,\"logs_live_indexed_count\":11314},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-29T13:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11233,\"logs_live_indexed_count\":11233},{\"logs_live_ingested_bytes\":0,\"ingested_events_bytes\":0,\"hour\":\"2022-03-29T14:00:00+00:00\",\"logs_rehydrated_indexed_count\":0,\"logs_rehydrated_ingested_bytes\":0,\"billable_ingested_bytes\":0,\"indexed_events_count\":11225,\"logs_live_indexed_count\":11225}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 01 Apr 2022 15:43:39 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Network-Flows-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Network-Flows-returns-Bad-Request-response.json index 4480d683c..0c9488d08 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Network-Flows-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Network-Flows-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/network_flows?start_hr=2022-03-29T15%3A43%3A40.233Z&end_hr=2022-03-27T15%3A43%3A40.233Z"}, "response": {"body": {"string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Fri, 01 Apr 2022 15:43:40 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/network_flows?start_hr=2022-03-29T15%3A43%3A40.233Z&end_hr=2022-03-27T15%3A43%3A40.233Z" + }, + "response": { + "body": { + "string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Fri, 01 Apr 2022 15:43:40 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Network-Flows-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Network-Flows-returns-OK-response.json index c2239f7a6..b64115699 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Network-Flows-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Network-Flows-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/network_flows?start_hr=2022-03-27T15%3A43%3A40.429Z&end_hr=2022-03-29T15%3A43%3A40.429Z"}, "response": {"body": {"string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-27T15:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-27T16:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-27T17:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-27T18:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-27T19:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-27T20:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-27T21:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-27T22:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-27T23:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T00:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T01:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T02:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T03:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T04:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T05:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T06:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T07:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T08:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T09:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T10:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T11:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T12:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T13:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T14:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T15:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T16:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T17:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T18:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T19:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T20:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T21:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T22:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T23:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-29T00:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-29T01:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-29T02:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-29T03:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-29T04:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-29T05:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-29T06:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-29T07:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-29T08:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-29T09:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-29T10:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-29T11:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-29T12:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-29T13:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-29T14:00:00+00:00\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 01 Apr 2022 15:43:40 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/network_flows?start_hr=2022-03-27T15%3A43%3A40.429Z&end_hr=2022-03-29T15%3A43%3A40.429Z" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-27T15:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-27T16:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-27T17:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-27T18:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-27T19:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-27T20:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-27T21:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-27T22:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-27T23:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T00:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T01:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T02:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T03:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T04:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T05:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T06:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T07:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T08:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T09:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T10:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T11:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T12:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T13:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T14:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T15:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T16:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T17:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T18:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T19:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T20:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T21:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T22:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-28T23:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-29T00:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-29T01:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-29T02:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-29T03:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-29T04:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-29T05:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-29T06:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-29T07:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-29T08:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-29T09:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-29T10:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-29T11:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-29T12:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-29T13:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-03-29T14:00:00+00:00\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 01 Apr 2022 15:43:40 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Network-Hosts-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Network-Hosts-returns-Bad-Request-response.json index e3bee8b2e..10d794fe9 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Network-Hosts-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Network-Hosts-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/network_hosts?start_hr=2022-03-29T17%3A01%3A55.545Z&end_hr=2022-03-27T17%3A01%3A55.545Z"}, "response": {"body": {"string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Fri, 01 Apr 2022 17:01:55 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/network_hosts?start_hr=2022-03-29T17%3A01%3A55.545Z&end_hr=2022-03-27T17%3A01%3A55.545Z" + }, + "response": { + "body": { + "string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Fri, 01 Apr 2022 17:01:55 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Network-Hosts-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Network-Hosts-returns-OK-response.json index d593ccc78..fe06a5a8c 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Network-Hosts-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Network-Hosts-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/network_hosts?start_hr=2022-03-27T15%3A43%3A40.923Z&end_hr=2022-03-29T15%3A43%3A40.923Z"}, "response": {"body": {"string": "{\"usage\":[{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T15:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T16:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T17:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T18:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T19:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T20:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T21:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T22:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T23:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T00:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T01:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T02:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T03:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T04:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T05:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T06:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T07:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T08:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T09:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T10:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T11:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T12:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T13:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T14:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T15:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T16:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T17:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T18:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T19:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T20:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T21:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T22:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T23:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T00:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T01:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T02:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T03:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T04:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T05:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T06:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T07:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T08:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T09:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T10:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T11:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T12:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T13:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T14:00:00+00:00\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 01 Apr 2022 15:43:40 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/network_hosts?start_hr=2022-03-27T15%3A43%3A40.923Z&end_hr=2022-03-29T15%3A43%3A40.923Z" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T15:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T16:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T17:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T18:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T19:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T20:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T21:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T22:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T23:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T00:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T01:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T02:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T03:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T04:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T05:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T06:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T07:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T08:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T09:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T10:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T11:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T12:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T13:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T14:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T15:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T16:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T17:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T18:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T19:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T20:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T21:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T22:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T23:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T00:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T01:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T02:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T03:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T04:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T05:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T06:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T07:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T08:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T09:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T10:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T11:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T12:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T13:00:00+00:00\"},{\"host_count\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T14:00:00+00:00\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 01 Apr 2022 15:43:40 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Online-Archive-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Online-Archive-returns-Bad-Request-response.json index c7d6cfd58..9d3b392f8 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Online-Archive-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Online-Archive-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/online-archive?start_hr=2022-03-05T15%3A58%3A31.986Z&end_hr=2022-03-03T15%3A58%3A31.986Z"}, "response": {"body": {"string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Tue, 08 Mar 2022 15:58:31 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/online-archive?start_hr=2022-03-05T15%3A58%3A31.986Z&end_hr=2022-03-03T15%3A58%3A31.986Z" + }, + "response": { + "body": { + "string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Tue, 08 Mar 2022 15:58:31 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Online-Archive-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Online-Archive-returns-OK-response.json index af4e800c1..07c848111 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Online-Archive-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Online-Archive-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/online-archive?start_hr=2022-03-03T15%3A58%3A32.586Z&end_hr=2022-03-05T15%3A58%3A32.586Z"}, "response": {"body": {"string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-03T15:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-03T16:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-03T17:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-03T18:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-03T19:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-03T20:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-03T21:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-03T22:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-03T23:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T00:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T01:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T02:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T03:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T04:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T05:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T06:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T07:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T08:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T09:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T10:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T11:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T12:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T13:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T14:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T15:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T16:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T17:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T18:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T19:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T20:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T21:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T22:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T23:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-05T00:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-05T01:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-05T02:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-05T03:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-05T04:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-05T05:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-05T06:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-05T07:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-05T08:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-05T09:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-05T10:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-05T11:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-05T12:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-05T13:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-05T14:00:00+00:00\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 08 Mar 2022 15:58:32 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/online-archive?start_hr=2022-03-03T15%3A58%3A32.586Z&end_hr=2022-03-05T15%3A58%3A32.586Z" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-03T15:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-03T16:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-03T17:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-03T18:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-03T19:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-03T20:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-03T21:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-03T22:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-03T23:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T00:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T01:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T02:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T03:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T04:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T05:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T06:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T07:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T08:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T09:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T10:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T11:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T12:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T13:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T14:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T15:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T16:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T17:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T18:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T19:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T20:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T21:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T22:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-04T23:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-05T00:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-05T01:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-05T02:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-05T03:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-05T04:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-05T05:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-05T06:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-05T07:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-05T08:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-05T09:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-05T10:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-05T11:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-05T12:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-05T13:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"online_archive_events_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-05T14:00:00+00:00\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 08 Mar 2022 15:58:32 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-RUM-Sessions-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-RUM-Sessions-returns-Bad-Request-response.json index e8e34f99f..30b0cbfaa 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-RUM-Sessions-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-RUM-Sessions-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/rum_sessions?start_hr=2022-03-29T00%3A41%3A26.836Z&end_hr=2022-03-27T00%3A41%3A26.836Z"}, "response": {"body": {"string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Fri, 01 Apr 2022 00:41:26 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/rum_sessions?start_hr=2022-03-29T00%3A41%3A26.836Z&end_hr=2022-03-27T00%3A41%3A26.836Z" + }, + "response": { + "body": { + "string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Fri, 01 Apr 2022 00:41:26 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-RUM-Sessions-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-RUM-Sessions-returns-OK-response.json index b94ed1857..ab89d25e0 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-RUM-Sessions-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-RUM-Sessions-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/rum_sessions?start_hr=2022-03-27T00%3A41%3A26.958Z&end_hr=2022-03-29T00%3A41%3A26.958Z"}, "response": {"body": {"string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T00:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T01:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T02:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T03:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T04:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T05:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T06:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T07:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T08:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T09:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T10:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T11:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T12:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T13:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T14:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T15:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T16:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T17:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T18:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T19:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T20:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T21:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T22:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T23:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T00:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T01:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T02:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T03:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T04:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T05:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T06:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T07:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T08:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T09:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T10:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T11:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T12:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T13:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T14:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T15:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T16:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T17:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T18:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T19:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T20:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T21:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T22:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T23:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 01 Apr 2022 00:41:26 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/rum_sessions?start_hr=2022-03-27T00%3A41%3A26.958Z&end_hr=2022-03-29T00%3A41%3A26.958Z" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T00:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T01:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T02:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T03:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T04:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T05:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T06:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T07:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T08:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T09:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T10:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T11:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T12:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T13:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T14:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T15:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T16:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T17:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T18:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T19:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T20:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T21:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T22:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T23:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T00:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T01:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T02:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T03:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T04:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T05:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T06:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T07:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T08:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T09:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T10:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T11:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T12:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T13:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T14:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T15:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T16:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T17:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T18:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T19:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T20:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T21:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T22:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T23:00:00+00:00\",\"indexed_events_count\":null,\"session_count\":null,\"replay_session_count\":0}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 01 Apr 2022 00:41:26 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-RUM-Units-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-RUM-Units-returns-OK-response.json index 486106f55..2718ad027 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-RUM-Units-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-RUM-Units-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/rum?start_hr=2022-03-27T00%3A41%3A27.572Z&end_hr=2022-03-29T00%3A41%3A27.572Z"}, "response": {"body": {"string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T00:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T01:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T02:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T03:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T04:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T05:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T06:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T07:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T08:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T09:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T10:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T11:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T12:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T13:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T14:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T15:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T16:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T17:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T18:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T19:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T20:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T21:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T22:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T23:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T00:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T01:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T02:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T03:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T04:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T05:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T06:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T07:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T08:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T09:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T10:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T11:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T12:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T13:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T14:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T15:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T16:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T17:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T18:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T19:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T20:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T21:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T22:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T23:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 01 Apr 2022 00:41:27 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/rum?start_hr=2022-03-27T00%3A41%3A27.572Z&end_hr=2022-03-29T00%3A41%3A27.572Z" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T00:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T01:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T02:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T03:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T04:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T05:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T06:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T07:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T08:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T09:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T10:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T11:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T12:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T13:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T14:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T15:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T16:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T17:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T18:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T19:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T20:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T21:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T22:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-27T23:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T00:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T01:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T02:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T03:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T04:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T05:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T06:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T07:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T08:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T09:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T10:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T11:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T12:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T13:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T14:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T15:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T16:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T17:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T18:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T19:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T20:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T21:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T22:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_rum_units\":null,\"hour\":\"2022-03-28T23:00:00+00:00\",\"rum_units\":0,\"mobile_rum_units\":null,\"public_id\":\"fasjyydbcgwwc2uc\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 01 Apr 2022 00:41:27 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-SNMP-devices-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-SNMP-devices-returns-Bad-Request-response.json index bbe482e95..ec9039c08 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-SNMP-devices-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-SNMP-devices-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/snmp?start_hr=2022-01-28T09%3A34%3A29.203Z&end_hr=2022-01-26T09%3A34%3A29.203Z"}, "response": {"body": {"string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Mon, 31 Jan 2022 09:34:29 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/snmp?start_hr=2022-01-28T09%3A34%3A29.203Z&end_hr=2022-01-26T09%3A34%3A29.203Z" + }, + "response": { + "body": { + "string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Mon, 31 Jan 2022 09:34:29 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-SNMP-devices-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-SNMP-devices-returns-OK-response.json index dc41f6011..f44e3d1bd 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-SNMP-devices-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-SNMP-devices-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/snmp?start_hr=2022-01-26T09%3A34%3A29.627Z&end_hr=2022-01-28T09%3A34%3A29.627Z"}, "response": {"body": {"string": "{\"usage\":[{\"snmp_devices\":0,\"hour\":\"2022-01-26T09:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-26T10:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-26T11:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-26T12:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-26T13:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-26T14:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-26T15:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-26T16:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-26T17:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-26T18:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-26T19:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-26T20:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-26T21:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-26T22:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-26T23:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T00:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T01:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T02:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T03:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T04:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T05:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T06:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T07:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T08:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T09:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T10:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T11:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T12:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T13:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T14:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T15:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T16:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T17:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T18:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T19:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T20:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T21:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T22:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T23:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-28T00:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-28T01:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-28T02:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-28T03:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-28T04:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-28T05:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-28T06:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-28T07:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-28T08:00:00+00:00\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 31 Jan 2022 09:34:29 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/snmp?start_hr=2022-01-26T09%3A34%3A29.627Z&end_hr=2022-01-28T09%3A34%3A29.627Z" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"snmp_devices\":0,\"hour\":\"2022-01-26T09:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-26T10:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-26T11:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-26T12:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-26T13:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-26T14:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-26T15:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-26T16:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-26T17:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-26T18:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-26T19:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-26T20:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-26T21:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-26T22:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-26T23:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T00:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T01:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T02:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T03:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T04:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T05:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T06:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T07:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T08:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T09:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T10:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T11:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T12:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T13:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T14:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T15:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T16:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T17:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T18:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T19:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T20:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T21:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T22:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-27T23:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-28T00:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-28T01:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-28T02:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-28T03:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-28T04:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-28T05:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-28T06:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-28T07:00:00+00:00\"},{\"snmp_devices\":0,\"hour\":\"2022-01-28T08:00:00+00:00\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 31 Jan 2022 09:34:29 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Sensitive-Data-Scanner-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Sensitive-Data-Scanner-returns-OK-response.json index dd6a02356..3808f6cd0 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Sensitive-Data-Scanner-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Sensitive-Data-Scanner-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/sds?start_hr=2022-03-27T00%3A41%3A27.888Z&end_hr=2022-03-29T00%3A41%3A27.888Z"}, "response": {"body": {"string": "{\"usage\":[{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T00:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T01:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T02:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T03:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T04:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T05:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T06:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T07:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T08:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T09:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T10:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T11:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T12:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T13:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T14:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T15:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T16:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T17:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T18:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T19:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T20:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T21:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T22:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T23:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T00:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T01:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T02:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T03:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T04:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T05:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T06:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T07:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T08:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T09:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T10:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T11:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T12:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T13:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T14:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T15:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T16:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T17:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T18:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T19:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T20:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T21:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T22:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T23:00:00+00:00\",\"logs_scanned_bytes\":0}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 01 Apr 2022 00:41:27 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/sds?start_hr=2022-03-27T00%3A41%3A27.888Z&end_hr=2022-03-29T00%3A41%3A27.888Z" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T00:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T01:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T02:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T03:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T04:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T05:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T06:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T07:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T08:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T09:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T10:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T11:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T12:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T13:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T14:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T15:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T16:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T17:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T18:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T19:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T20:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T21:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T22:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T23:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T00:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T01:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T02:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T03:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T04:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T05:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T06:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T07:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T08:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T09:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T10:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T11:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T12:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T13:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T14:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T15:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T16:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T17:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T18:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T19:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T20:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T21:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T22:00:00+00:00\",\"logs_scanned_bytes\":0},{\"total_scanned_bytes\":0,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T23:00:00+00:00\",\"logs_scanned_bytes\":0}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 01 Apr 2022 00:41:27 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Synthetics-API-Checks-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Synthetics-API-Checks-returns-Bad-Request-response.json index dd8dc9041..153e82dfb 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Synthetics-API-Checks-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Synthetics-API-Checks-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/synthetics_api?start_hr=2022-03-29T15%3A43%3A44.039Z&end_hr=2022-03-27T15%3A43%3A44.039Z"}, "response": {"body": {"string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Fri, 01 Apr 2022 15:43:44 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/synthetics_api?start_hr=2022-03-29T15%3A43%3A44.039Z&end_hr=2022-03-27T15%3A43%3A44.039Z" + }, + "response": { + "body": { + "string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Fri, 01 Apr 2022 15:43:44 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Synthetics-API-Checks-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Synthetics-API-Checks-returns-OK-response.json index 916c4667a..c8714eb8a 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Synthetics-API-Checks-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Synthetics-API-Checks-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/synthetics_api?start_hr=2022-03-27T15%3A43%3A44.274Z&end_hr=2022-03-29T15%3A43%3A44.274Z"}, "response": {"body": {"string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T15:00:00+00:00\",\"check_calls_count\":1171},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T16:00:00+00:00\",\"check_calls_count\":1172},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T17:00:00+00:00\",\"check_calls_count\":1182},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T18:00:00+00:00\",\"check_calls_count\":1171},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T19:00:00+00:00\",\"check_calls_count\":1150},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T20:00:00+00:00\",\"check_calls_count\":1155},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T21:00:00+00:00\",\"check_calls_count\":1182},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T22:00:00+00:00\",\"check_calls_count\":1173},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T23:00:00+00:00\",\"check_calls_count\":1161},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T00:00:00+00:00\",\"check_calls_count\":1189},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T01:00:00+00:00\",\"check_calls_count\":1200},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T02:00:00+00:00\",\"check_calls_count\":1183},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T03:00:00+00:00\",\"check_calls_count\":1175},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T04:00:00+00:00\",\"check_calls_count\":1185},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T05:00:00+00:00\",\"check_calls_count\":1177},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T06:00:00+00:00\",\"check_calls_count\":1178},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T07:00:00+00:00\",\"check_calls_count\":1169},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T08:00:00+00:00\",\"check_calls_count\":1151},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T09:00:00+00:00\",\"check_calls_count\":1178},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T10:00:00+00:00\",\"check_calls_count\":1170},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T11:00:00+00:00\",\"check_calls_count\":1138},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T12:00:00+00:00\",\"check_calls_count\":1169},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T13:00:00+00:00\",\"check_calls_count\":1161},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T14:00:00+00:00\",\"check_calls_count\":1165},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T15:00:00+00:00\",\"check_calls_count\":1155},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T16:00:00+00:00\",\"check_calls_count\":1157},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T17:00:00+00:00\",\"check_calls_count\":1173},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T18:00:00+00:00\",\"check_calls_count\":567},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T19:00:00+00:00\",\"check_calls_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T20:00:00+00:00\",\"check_calls_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T21:00:00+00:00\",\"check_calls_count\":49},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T22:00:00+00:00\",\"check_calls_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T23:00:00+00:00\",\"check_calls_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T00:00:00+00:00\",\"check_calls_count\":21},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T01:00:00+00:00\",\"check_calls_count\":29},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T02:00:00+00:00\",\"check_calls_count\":15},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T03:00:00+00:00\",\"check_calls_count\":17},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T04:00:00+00:00\",\"check_calls_count\":13},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T05:00:00+00:00\",\"check_calls_count\":12},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T06:00:00+00:00\",\"check_calls_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T07:00:00+00:00\",\"check_calls_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T08:00:00+00:00\",\"check_calls_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T09:00:00+00:00\",\"check_calls_count\":13},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T10:00:00+00:00\",\"check_calls_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T11:00:00+00:00\",\"check_calls_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":8,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T12:00:00+00:00\",\"check_calls_count\":7},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T13:00:00+00:00\",\"check_calls_count\":17},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T14:00:00+00:00\",\"check_calls_count\":0}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 01 Apr 2022 15:43:44 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/synthetics_api?start_hr=2022-03-27T15%3A43%3A44.274Z&end_hr=2022-03-29T15%3A43%3A44.274Z" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T15:00:00+00:00\",\"check_calls_count\":1171},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T16:00:00+00:00\",\"check_calls_count\":1172},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T17:00:00+00:00\",\"check_calls_count\":1182},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T18:00:00+00:00\",\"check_calls_count\":1171},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T19:00:00+00:00\",\"check_calls_count\":1150},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T20:00:00+00:00\",\"check_calls_count\":1155},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T21:00:00+00:00\",\"check_calls_count\":1182},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T22:00:00+00:00\",\"check_calls_count\":1173},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T23:00:00+00:00\",\"check_calls_count\":1161},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T00:00:00+00:00\",\"check_calls_count\":1189},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T01:00:00+00:00\",\"check_calls_count\":1200},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T02:00:00+00:00\",\"check_calls_count\":1183},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T03:00:00+00:00\",\"check_calls_count\":1175},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T04:00:00+00:00\",\"check_calls_count\":1185},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T05:00:00+00:00\",\"check_calls_count\":1177},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T06:00:00+00:00\",\"check_calls_count\":1178},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T07:00:00+00:00\",\"check_calls_count\":1169},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T08:00:00+00:00\",\"check_calls_count\":1151},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T09:00:00+00:00\",\"check_calls_count\":1178},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T10:00:00+00:00\",\"check_calls_count\":1170},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T11:00:00+00:00\",\"check_calls_count\":1138},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T12:00:00+00:00\",\"check_calls_count\":1169},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T13:00:00+00:00\",\"check_calls_count\":1161},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T14:00:00+00:00\",\"check_calls_count\":1165},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T15:00:00+00:00\",\"check_calls_count\":1155},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T16:00:00+00:00\",\"check_calls_count\":1157},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T17:00:00+00:00\",\"check_calls_count\":1173},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T18:00:00+00:00\",\"check_calls_count\":567},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T19:00:00+00:00\",\"check_calls_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T20:00:00+00:00\",\"check_calls_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T21:00:00+00:00\",\"check_calls_count\":49},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T22:00:00+00:00\",\"check_calls_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T23:00:00+00:00\",\"check_calls_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T00:00:00+00:00\",\"check_calls_count\":21},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T01:00:00+00:00\",\"check_calls_count\":29},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T02:00:00+00:00\",\"check_calls_count\":15},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T03:00:00+00:00\",\"check_calls_count\":17},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T04:00:00+00:00\",\"check_calls_count\":13},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T05:00:00+00:00\",\"check_calls_count\":12},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T06:00:00+00:00\",\"check_calls_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T07:00:00+00:00\",\"check_calls_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T08:00:00+00:00\",\"check_calls_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T09:00:00+00:00\",\"check_calls_count\":13},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T10:00:00+00:00\",\"check_calls_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T11:00:00+00:00\",\"check_calls_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":8,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T12:00:00+00:00\",\"check_calls_count\":7},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T13:00:00+00:00\",\"check_calls_count\":17},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-29T14:00:00+00:00\",\"check_calls_count\":0}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 01 Apr 2022 15:43:44 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Synthetics-Browser-Checks-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Synthetics-Browser-Checks-returns-Bad-Request-response.json index 5ea7c297c..759ea5207 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Synthetics-Browser-Checks-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Synthetics-Browser-Checks-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/synthetics_browser?start_hr=2022-03-29T00%3A41%3A28.391Z&end_hr=2022-03-27T00%3A41%3A28.391Z"}, "response": {"body": {"string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Fri, 01 Apr 2022 00:41:28 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/synthetics_browser?start_hr=2022-03-29T00%3A41%3A28.391Z&end_hr=2022-03-27T00%3A41%3A28.391Z" + }, + "response": { + "body": { + "string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Fri, 01 Apr 2022 00:41:28 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Synthetics-Browser-Checks-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Synthetics-Browser-Checks-returns-OK-response.json index 6851587d5..198e40a99 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Synthetics-Browser-Checks-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-Synthetics-Browser-Checks-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/synthetics_browser?start_hr=2022-03-27T00%3A41%3A28.503Z&end_hr=2022-03-29T00%3A41%3A28.503Z"}, "response": {"body": {"string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T00:00:00+00:00\",\"check_calls_count\":1181},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T01:00:00+00:00\",\"check_calls_count\":1190},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T02:00:00+00:00\",\"check_calls_count\":1180},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T03:00:00+00:00\",\"check_calls_count\":1197},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T04:00:00+00:00\",\"check_calls_count\":1178},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T05:00:00+00:00\",\"check_calls_count\":1180},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T06:00:00+00:00\",\"check_calls_count\":1174},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T07:00:00+00:00\",\"check_calls_count\":1163},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T08:00:00+00:00\",\"check_calls_count\":1167},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T09:00:00+00:00\",\"check_calls_count\":1182},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T10:00:00+00:00\",\"check_calls_count\":1195},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T11:00:00+00:00\",\"check_calls_count\":1178},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T12:00:00+00:00\",\"check_calls_count\":1170},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T13:00:00+00:00\",\"check_calls_count\":1192},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T14:00:00+00:00\",\"check_calls_count\":1170},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T15:00:00+00:00\",\"check_calls_count\":1171},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T16:00:00+00:00\",\"check_calls_count\":1172},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T17:00:00+00:00\",\"check_calls_count\":1182},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T18:00:00+00:00\",\"check_calls_count\":1171},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T19:00:00+00:00\",\"check_calls_count\":1150},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T20:00:00+00:00\",\"check_calls_count\":1155},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T21:00:00+00:00\",\"check_calls_count\":1182},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T22:00:00+00:00\",\"check_calls_count\":1173},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T23:00:00+00:00\",\"check_calls_count\":1161},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T00:00:00+00:00\",\"check_calls_count\":1189},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T01:00:00+00:00\",\"check_calls_count\":1200},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T02:00:00+00:00\",\"check_calls_count\":1183},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T03:00:00+00:00\",\"check_calls_count\":1175},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T04:00:00+00:00\",\"check_calls_count\":1185},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T05:00:00+00:00\",\"check_calls_count\":1177},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T06:00:00+00:00\",\"check_calls_count\":1178},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T07:00:00+00:00\",\"check_calls_count\":1169},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T08:00:00+00:00\",\"check_calls_count\":1151},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T09:00:00+00:00\",\"check_calls_count\":1178},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T10:00:00+00:00\",\"check_calls_count\":1170},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T11:00:00+00:00\",\"check_calls_count\":1138},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T12:00:00+00:00\",\"check_calls_count\":1169},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T13:00:00+00:00\",\"check_calls_count\":1161},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T14:00:00+00:00\",\"check_calls_count\":1165},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T15:00:00+00:00\",\"check_calls_count\":1155},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T16:00:00+00:00\",\"check_calls_count\":1157},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T17:00:00+00:00\",\"check_calls_count\":1173},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T18:00:00+00:00\",\"check_calls_count\":567},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T19:00:00+00:00\",\"check_calls_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T20:00:00+00:00\",\"check_calls_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T21:00:00+00:00\",\"check_calls_count\":49},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T22:00:00+00:00\",\"check_calls_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T23:00:00+00:00\",\"check_calls_count\":0}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 01 Apr 2022 00:41:28 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/synthetics_browser?start_hr=2022-03-27T00%3A41%3A28.503Z&end_hr=2022-03-29T00%3A41%3A28.503Z" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T00:00:00+00:00\",\"check_calls_count\":1181},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T01:00:00+00:00\",\"check_calls_count\":1190},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T02:00:00+00:00\",\"check_calls_count\":1180},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T03:00:00+00:00\",\"check_calls_count\":1197},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T04:00:00+00:00\",\"check_calls_count\":1178},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T05:00:00+00:00\",\"check_calls_count\":1180},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T06:00:00+00:00\",\"check_calls_count\":1174},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T07:00:00+00:00\",\"check_calls_count\":1163},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T08:00:00+00:00\",\"check_calls_count\":1167},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T09:00:00+00:00\",\"check_calls_count\":1182},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T10:00:00+00:00\",\"check_calls_count\":1195},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T11:00:00+00:00\",\"check_calls_count\":1178},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T12:00:00+00:00\",\"check_calls_count\":1170},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T13:00:00+00:00\",\"check_calls_count\":1192},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T14:00:00+00:00\",\"check_calls_count\":1170},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T15:00:00+00:00\",\"check_calls_count\":1171},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T16:00:00+00:00\",\"check_calls_count\":1172},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T17:00:00+00:00\",\"check_calls_count\":1182},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T18:00:00+00:00\",\"check_calls_count\":1171},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T19:00:00+00:00\",\"check_calls_count\":1150},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T20:00:00+00:00\",\"check_calls_count\":1155},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T21:00:00+00:00\",\"check_calls_count\":1182},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T22:00:00+00:00\",\"check_calls_count\":1173},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T23:00:00+00:00\",\"check_calls_count\":1161},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T00:00:00+00:00\",\"check_calls_count\":1189},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T01:00:00+00:00\",\"check_calls_count\":1200},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T02:00:00+00:00\",\"check_calls_count\":1183},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T03:00:00+00:00\",\"check_calls_count\":1175},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T04:00:00+00:00\",\"check_calls_count\":1185},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T05:00:00+00:00\",\"check_calls_count\":1177},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T06:00:00+00:00\",\"check_calls_count\":1178},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T07:00:00+00:00\",\"check_calls_count\":1169},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T08:00:00+00:00\",\"check_calls_count\":1151},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T09:00:00+00:00\",\"check_calls_count\":1178},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T10:00:00+00:00\",\"check_calls_count\":1170},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T11:00:00+00:00\",\"check_calls_count\":1138},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T12:00:00+00:00\",\"check_calls_count\":1169},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T13:00:00+00:00\",\"check_calls_count\":1161},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T14:00:00+00:00\",\"check_calls_count\":1165},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T15:00:00+00:00\",\"check_calls_count\":1155},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T16:00:00+00:00\",\"check_calls_count\":1157},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T17:00:00+00:00\",\"check_calls_count\":1173},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T18:00:00+00:00\",\"check_calls_count\":567},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T19:00:00+00:00\",\"check_calls_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T20:00:00+00:00\",\"check_calls_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T21:00:00+00:00\",\"check_calls_count\":49},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T22:00:00+00:00\",\"check_calls_count\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"browser_check_calls_count\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T23:00:00+00:00\",\"check_calls_count\":0}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 01 Apr 2022 00:41:28 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-analyzed-logs-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-analyzed-logs-returns-Bad-Request-response.json index 71c424e03..60a34ac02 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-analyzed-logs-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-analyzed-logs-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/analyzed_logs?start_hr=2022-01-28T09%3A34%3A30.286Z&end_hr=2022-01-26T09%3A34%3A30.286Z"}, "response": {"body": {"string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Mon, 31 Jan 2022 09:34:30 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/analyzed_logs?start_hr=2022-01-28T09%3A34%3A30.286Z&end_hr=2022-01-26T09%3A34%3A30.286Z" + }, + "response": { + "body": { + "string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Mon, 31 Jan 2022 09:34:30 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-analyzed-logs-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-analyzed-logs-returns-OK-response.json index 1fc4ef9ce..5034f767f 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-analyzed-logs-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-analyzed-logs-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/analyzed_logs?start_hr=2022-01-26T09%3A34%3A30.705Z&end_hr=2022-01-28T09%3A34%3A30.705Z"}, "response": {"body": {"string": "{\"usage\":[{\"hour\":\"2022-01-26T09:00:00+00:00\",\"analyzed_logs\":200},{\"hour\":\"2022-01-26T10:00:00+00:00\",\"analyzed_logs\":0},{\"hour\":\"2022-01-26T11:00:00+00:00\",\"analyzed_logs\":412},{\"hour\":\"2022-01-26T12:00:00+00:00\",\"analyzed_logs\":0},{\"hour\":\"2022-01-26T13:00:00+00:00\",\"analyzed_logs\":200},{\"hour\":\"2022-01-26T14:00:00+00:00\",\"analyzed_logs\":1014},{\"hour\":\"2022-01-26T15:00:00+00:00\",\"analyzed_logs\":200},{\"hour\":\"2022-01-26T16:00:00+00:00\",\"analyzed_logs\":0},{\"hour\":\"2022-01-26T17:00:00+00:00\",\"analyzed_logs\":200},{\"hour\":\"2022-01-26T18:00:00+00:00\",\"analyzed_logs\":0},{\"hour\":\"2022-01-26T19:00:00+00:00\",\"analyzed_logs\":200},{\"hour\":\"2022-01-26T20:00:00+00:00\",\"analyzed_logs\":0},{\"hour\":\"2022-01-26T21:00:00+00:00\",\"analyzed_logs\":200},{\"hour\":\"2022-01-26T22:00:00+00:00\",\"analyzed_logs\":403786},{\"hour\":\"2022-01-26T23:00:00+00:00\",\"analyzed_logs\":1500564},{\"hour\":\"2022-01-27T00:00:00+00:00\",\"analyzed_logs\":2420},{\"hour\":\"2022-01-27T01:00:00+00:00\",\"analyzed_logs\":1217},{\"hour\":\"2022-01-27T02:00:00+00:00\",\"analyzed_logs\":978},{\"hour\":\"2022-01-27T03:00:00+00:00\",\"analyzed_logs\":1178},{\"hour\":\"2022-01-27T04:00:00+00:00\",\"analyzed_logs\":1014},{\"hour\":\"2022-01-27T05:00:00+00:00\",\"analyzed_logs\":200},{\"hour\":\"2022-01-27T06:00:00+00:00\",\"analyzed_logs\":0},{\"hour\":\"2022-01-27T07:00:00+00:00\",\"analyzed_logs\":200},{\"hour\":\"2022-01-27T08:00:00+00:00\",\"analyzed_logs\":0},{\"hour\":\"2022-01-27T09:00:00+00:00\",\"analyzed_logs\":200},{\"hour\":\"2022-01-27T10:00:00+00:00\",\"analyzed_logs\":0},{\"hour\":\"2022-01-27T11:00:00+00:00\",\"analyzed_logs\":412},{\"hour\":\"2022-01-27T12:00:00+00:00\",\"analyzed_logs\":194874},{\"hour\":\"2022-01-27T13:00:00+00:00\",\"analyzed_logs\":1742486},{\"hour\":\"2022-01-27T14:00:00+00:00\",\"analyzed_logs\":992448},{\"hour\":\"2022-01-27T15:00:00+00:00\",\"analyzed_logs\":8200},{\"hour\":\"2022-01-27T16:00:00+00:00\",\"analyzed_logs\":576000},{\"hour\":\"2022-01-27T17:00:00+00:00\",\"analyzed_logs\":576200},{\"hour\":\"2022-01-27T18:00:00+00:00\",\"analyzed_logs\":571200},{\"hour\":\"2022-01-27T19:00:00+00:00\",\"analyzed_logs\":576200},{\"hour\":\"2022-01-27T20:00:00+00:00\",\"analyzed_logs\":41600},{\"hour\":\"2022-01-27T21:00:00+00:00\",\"analyzed_logs\":200},{\"hour\":\"2022-01-27T22:00:00+00:00\",\"analyzed_logs\":0},{\"hour\":\"2022-01-27T23:00:00+00:00\",\"analyzed_logs\":200},{\"hour\":\"2022-01-28T00:00:00+00:00\",\"analyzed_logs\":2420},{\"hour\":\"2022-01-28T01:00:00+00:00\",\"analyzed_logs\":1217},{\"hour\":\"2022-01-28T02:00:00+00:00\",\"analyzed_logs\":978},{\"hour\":\"2022-01-28T03:00:00+00:00\",\"analyzed_logs\":1178},{\"hour\":\"2022-01-28T04:00:00+00:00\",\"analyzed_logs\":1014},{\"hour\":\"2022-01-28T05:00:00+00:00\",\"analyzed_logs\":200},{\"hour\":\"2022-01-28T06:00:00+00:00\",\"analyzed_logs\":0},{\"hour\":\"2022-01-28T07:00:00+00:00\",\"analyzed_logs\":200},{\"hour\":\"2022-01-28T08:00:00+00:00\",\"analyzed_logs\":0}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 31 Jan 2022 09:34:30 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/analyzed_logs?start_hr=2022-01-26T09%3A34%3A30.705Z&end_hr=2022-01-28T09%3A34%3A30.705Z" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"hour\":\"2022-01-26T09:00:00+00:00\",\"analyzed_logs\":200},{\"hour\":\"2022-01-26T10:00:00+00:00\",\"analyzed_logs\":0},{\"hour\":\"2022-01-26T11:00:00+00:00\",\"analyzed_logs\":412},{\"hour\":\"2022-01-26T12:00:00+00:00\",\"analyzed_logs\":0},{\"hour\":\"2022-01-26T13:00:00+00:00\",\"analyzed_logs\":200},{\"hour\":\"2022-01-26T14:00:00+00:00\",\"analyzed_logs\":1014},{\"hour\":\"2022-01-26T15:00:00+00:00\",\"analyzed_logs\":200},{\"hour\":\"2022-01-26T16:00:00+00:00\",\"analyzed_logs\":0},{\"hour\":\"2022-01-26T17:00:00+00:00\",\"analyzed_logs\":200},{\"hour\":\"2022-01-26T18:00:00+00:00\",\"analyzed_logs\":0},{\"hour\":\"2022-01-26T19:00:00+00:00\",\"analyzed_logs\":200},{\"hour\":\"2022-01-26T20:00:00+00:00\",\"analyzed_logs\":0},{\"hour\":\"2022-01-26T21:00:00+00:00\",\"analyzed_logs\":200},{\"hour\":\"2022-01-26T22:00:00+00:00\",\"analyzed_logs\":403786},{\"hour\":\"2022-01-26T23:00:00+00:00\",\"analyzed_logs\":1500564},{\"hour\":\"2022-01-27T00:00:00+00:00\",\"analyzed_logs\":2420},{\"hour\":\"2022-01-27T01:00:00+00:00\",\"analyzed_logs\":1217},{\"hour\":\"2022-01-27T02:00:00+00:00\",\"analyzed_logs\":978},{\"hour\":\"2022-01-27T03:00:00+00:00\",\"analyzed_logs\":1178},{\"hour\":\"2022-01-27T04:00:00+00:00\",\"analyzed_logs\":1014},{\"hour\":\"2022-01-27T05:00:00+00:00\",\"analyzed_logs\":200},{\"hour\":\"2022-01-27T06:00:00+00:00\",\"analyzed_logs\":0},{\"hour\":\"2022-01-27T07:00:00+00:00\",\"analyzed_logs\":200},{\"hour\":\"2022-01-27T08:00:00+00:00\",\"analyzed_logs\":0},{\"hour\":\"2022-01-27T09:00:00+00:00\",\"analyzed_logs\":200},{\"hour\":\"2022-01-27T10:00:00+00:00\",\"analyzed_logs\":0},{\"hour\":\"2022-01-27T11:00:00+00:00\",\"analyzed_logs\":412},{\"hour\":\"2022-01-27T12:00:00+00:00\",\"analyzed_logs\":194874},{\"hour\":\"2022-01-27T13:00:00+00:00\",\"analyzed_logs\":1742486},{\"hour\":\"2022-01-27T14:00:00+00:00\",\"analyzed_logs\":992448},{\"hour\":\"2022-01-27T15:00:00+00:00\",\"analyzed_logs\":8200},{\"hour\":\"2022-01-27T16:00:00+00:00\",\"analyzed_logs\":576000},{\"hour\":\"2022-01-27T17:00:00+00:00\",\"analyzed_logs\":576200},{\"hour\":\"2022-01-27T18:00:00+00:00\",\"analyzed_logs\":571200},{\"hour\":\"2022-01-27T19:00:00+00:00\",\"analyzed_logs\":576200},{\"hour\":\"2022-01-27T20:00:00+00:00\",\"analyzed_logs\":41600},{\"hour\":\"2022-01-27T21:00:00+00:00\",\"analyzed_logs\":200},{\"hour\":\"2022-01-27T22:00:00+00:00\",\"analyzed_logs\":0},{\"hour\":\"2022-01-27T23:00:00+00:00\",\"analyzed_logs\":200},{\"hour\":\"2022-01-28T00:00:00+00:00\",\"analyzed_logs\":2420},{\"hour\":\"2022-01-28T01:00:00+00:00\",\"analyzed_logs\":1217},{\"hour\":\"2022-01-28T02:00:00+00:00\",\"analyzed_logs\":978},{\"hour\":\"2022-01-28T03:00:00+00:00\",\"analyzed_logs\":1178},{\"hour\":\"2022-01-28T04:00:00+00:00\",\"analyzed_logs\":1014},{\"hour\":\"2022-01-28T05:00:00+00:00\",\"analyzed_logs\":200},{\"hour\":\"2022-01-28T06:00:00+00:00\",\"analyzed_logs\":0},{\"hour\":\"2022-01-28T07:00:00+00:00\",\"analyzed_logs\":200},{\"hour\":\"2022-01-28T08:00:00+00:00\",\"analyzed_logs\":0}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 31 Jan 2022 09:34:30 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-audit-logs-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-audit-logs-returns-OK-response.json index 551f29ff0..497e1097a 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-audit-logs-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-audit-logs-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/audit_logs?start_hr=2022-03-27T00%3A41%3A28.687Z&end_hr=2022-03-29T00%3A41%3A28.687Z"}, "response": {"body": {"string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T00:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T01:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T02:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T03:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T04:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T05:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T06:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T07:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T08:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T09:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T10:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T11:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T12:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T13:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T14:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T15:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T16:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T17:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T18:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T19:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T20:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T21:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T22:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T23:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T00:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T01:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T02:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T03:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T04:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T05:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T06:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T07:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T08:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T09:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T10:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T11:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T12:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T13:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T14:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T15:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T16:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T17:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T18:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T19:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T20:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T21:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T22:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T23:00:00+00:00\",\"lines_indexed\":0}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 01 Apr 2022 00:41:28 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/audit_logs?start_hr=2022-03-27T00%3A41%3A28.687Z&end_hr=2022-03-29T00%3A41%3A28.687Z" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T00:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T01:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T02:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T03:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T04:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T05:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T06:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T07:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T08:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T09:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T10:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T11:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T12:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T13:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T14:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T15:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T16:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T17:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T18:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T19:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T20:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T21:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T22:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T23:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T00:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T01:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T02:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T03:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T04:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T05:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T06:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T07:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T08:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T09:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T10:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T11:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T12:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T13:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T14:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T15:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T16:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T17:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T18:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T19:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T20:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T21:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T22:00:00+00:00\",\"lines_indexed\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T23:00:00+00:00\",\"lines_indexed\":0}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 01 Apr 2022 00:41:28 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-cloud-workload-security-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-cloud-workload-security-returns-OK-response.json index e094eb77a..f284ec6f3 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-cloud-workload-security-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-cloud-workload-security-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/cws?start_hr=2023-09-20T19%3A19%3A28.364Z&end_hr=2023-09-22T19%3A19%3A28.364Z"}, "response": {"body": {"string": "{\"usage\":[{\"hour\":\"2023-09-20T19:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-20T20:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-20T21:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-20T22:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-20T23:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T00:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T01:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T02:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T03:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T04:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T05:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T06:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T07:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T08:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T09:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T10:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T11:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T12:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T13:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T14:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T15:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T16:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T17:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T18:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T19:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T20:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T21:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T22:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T23:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T00:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T01:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T02:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T03:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T04:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T05:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T06:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T07:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T08:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T09:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T10:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T11:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T12:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T13:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T14:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T15:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T16:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T17:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T18:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 25 Sep 2023 19:19:28 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/cws?start_hr=2023-09-20T19%3A19%3A28.364Z&end_hr=2023-09-22T19%3A19%3A28.364Z" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"hour\":\"2023-09-20T19:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-20T20:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-20T21:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-20T22:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-20T23:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T00:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T01:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T02:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T03:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T04:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T05:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T06:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T07:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T08:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T09:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T10:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T11:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T12:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T13:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T14:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T15:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T16:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T17:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T18:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T19:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T20:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T21:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T22:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-21T23:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T00:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T01:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T02:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T03:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T04:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T05:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T06:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T07:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T08:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T09:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T10:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T11:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T12:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T13:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T14:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T15:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T16:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T17:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"},{\"hour\":\"2023-09-22T18:00:00+00:00\",\"region\":\"us\",\"cws_host_count\":null,\"cws_container_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 25 Sep 2023 19:19:28 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-custom-metrics-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-custom-metrics-returns-Bad-Request-response.json index 6cdb0e0b4..e14f87e5d 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-custom-metrics-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-custom-metrics-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/timeseries?start_hr=2022-03-29T00%3A41%3A29.079Z&end_hr=2022-03-27T00%3A41%3A29.079Z"}, "response": {"body": {"string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Fri, 01 Apr 2022 00:41:29 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/timeseries?start_hr=2022-03-29T00%3A41%3A29.079Z&end_hr=2022-03-27T00%3A41%3A29.079Z" + }, + "response": { + "body": { + "string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Fri, 01 Apr 2022 00:41:29 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-custom-metrics-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-custom-metrics-returns-OK-response.json index 39ec2fb94..8bd3d7b74 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-custom-metrics-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-custom-metrics-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/timeseries?start_hr=2022-03-27T00%3A41%3A29.168Z&end_hr=2022-03-29T00%3A41%3A29.168Z"}, "response": {"body": {"string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":93,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":1,\"hour\":\"2022-03-27T00:00:00+00:00\",\"num_standard_timeseries\":36425,\"num_custom_output_timeseries\":83,\"num_custom_timeseries\":96,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":93,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T01:00:00+00:00\",\"num_standard_timeseries\":36424,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":93,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T02:00:00+00:00\",\"num_standard_timeseries\":36359,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":93,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T03:00:00+00:00\",\"num_standard_timeseries\":36368,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":95,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":93,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T04:00:00+00:00\",\"num_standard_timeseries\":36372,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T05:00:00+00:00\",\"num_standard_timeseries\":36372,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T06:00:00+00:00\",\"num_standard_timeseries\":36301,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T07:00:00+00:00\",\"num_standard_timeseries\":36308,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T08:00:00+00:00\",\"num_standard_timeseries\":36293,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T09:00:00+00:00\",\"num_standard_timeseries\":36365,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T10:00:00+00:00\",\"num_standard_timeseries\":36295,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T11:00:00+00:00\",\"num_standard_timeseries\":36304,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":87,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":1,\"hour\":\"2022-03-27T12:00:00+00:00\",\"num_standard_timeseries\":36363,\"num_custom_output_timeseries\":83,\"num_custom_timeseries\":94,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T13:00:00+00:00\",\"num_standard_timeseries\":36358,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T14:00:00+00:00\",\"num_standard_timeseries\":36298,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T15:00:00+00:00\",\"num_standard_timeseries\":36306,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T16:00:00+00:00\",\"num_standard_timeseries\":36295,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T17:00:00+00:00\",\"num_standard_timeseries\":36364,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T18:00:00+00:00\",\"num_standard_timeseries\":36300,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T19:00:00+00:00\",\"num_standard_timeseries\":36289,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T20:00:00+00:00\",\"num_standard_timeseries\":36294,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T21:00:00+00:00\",\"num_standard_timeseries\":36372,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T22:00:00+00:00\",\"num_standard_timeseries\":36327,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T23:00:00+00:00\",\"num_standard_timeseries\":36295,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":103,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":1,\"hour\":\"2022-03-28T00:00:00+00:00\",\"num_standard_timeseries\":36417,\"num_custom_output_timeseries\":83,\"num_custom_timeseries\":96,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":93,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T01:00:00+00:00\",\"num_standard_timeseries\":36427,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":93,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T02:00:00+00:00\",\"num_standard_timeseries\":36370,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":93,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T03:00:00+00:00\",\"num_standard_timeseries\":36366,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":95,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":93,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T04:00:00+00:00\",\"num_standard_timeseries\":36361,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T05:00:00+00:00\",\"num_standard_timeseries\":36371,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T06:00:00+00:00\",\"num_standard_timeseries\":36292,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T07:00:00+00:00\",\"num_standard_timeseries\":36304,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T08:00:00+00:00\",\"num_standard_timeseries\":36308,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T09:00:00+00:00\",\"num_standard_timeseries\":36378,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T10:00:00+00:00\",\"num_standard_timeseries\":36304,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T11:00:00+00:00\",\"num_standard_timeseries\":36307,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":1,\"hour\":\"2022-03-28T12:00:00+00:00\",\"num_standard_timeseries\":36363,\"num_custom_output_timeseries\":83,\"num_custom_timeseries\":94,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T13:00:00+00:00\",\"num_standard_timeseries\":36382,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":94,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T14:00:00+00:00\",\"num_standard_timeseries\":36293,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":94,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T15:00:00+00:00\",\"num_standard_timeseries\":36295,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T16:00:00+00:00\",\"num_standard_timeseries\":36299,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T17:00:00+00:00\",\"num_standard_timeseries\":36356,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":1,\"hour\":\"2022-03-28T18:00:00+00:00\",\"num_standard_timeseries\":36387,\"num_custom_output_timeseries\":87,\"num_custom_timeseries\":105,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T19:00:00+00:00\",\"num_standard_timeseries\":36083,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":2,\"hour\":\"2022-03-28T20:00:00+00:00\",\"num_standard_timeseries\":36082,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":101,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":93,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T21:00:00+00:00\",\"num_standard_timeseries\":36312,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T22:00:00+00:00\",\"num_standard_timeseries\":36073,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T23:00:00+00:00\",\"num_standard_timeseries\":36078,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 01 Apr 2022 00:41:29 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/timeseries?start_hr=2022-03-27T00%3A41%3A29.168Z&end_hr=2022-03-29T00%3A41%3A29.168Z" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":93,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":1,\"hour\":\"2022-03-27T00:00:00+00:00\",\"num_standard_timeseries\":36425,\"num_custom_output_timeseries\":83,\"num_custom_timeseries\":96,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":93,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T01:00:00+00:00\",\"num_standard_timeseries\":36424,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":93,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T02:00:00+00:00\",\"num_standard_timeseries\":36359,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":93,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T03:00:00+00:00\",\"num_standard_timeseries\":36368,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":95,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":93,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T04:00:00+00:00\",\"num_standard_timeseries\":36372,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T05:00:00+00:00\",\"num_standard_timeseries\":36372,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T06:00:00+00:00\",\"num_standard_timeseries\":36301,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T07:00:00+00:00\",\"num_standard_timeseries\":36308,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T08:00:00+00:00\",\"num_standard_timeseries\":36293,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T09:00:00+00:00\",\"num_standard_timeseries\":36365,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T10:00:00+00:00\",\"num_standard_timeseries\":36295,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T11:00:00+00:00\",\"num_standard_timeseries\":36304,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":87,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":1,\"hour\":\"2022-03-27T12:00:00+00:00\",\"num_standard_timeseries\":36363,\"num_custom_output_timeseries\":83,\"num_custom_timeseries\":94,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T13:00:00+00:00\",\"num_standard_timeseries\":36358,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T14:00:00+00:00\",\"num_standard_timeseries\":36298,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T15:00:00+00:00\",\"num_standard_timeseries\":36306,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T16:00:00+00:00\",\"num_standard_timeseries\":36295,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T17:00:00+00:00\",\"num_standard_timeseries\":36364,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T18:00:00+00:00\",\"num_standard_timeseries\":36300,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T19:00:00+00:00\",\"num_standard_timeseries\":36289,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T20:00:00+00:00\",\"num_standard_timeseries\":36294,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T21:00:00+00:00\",\"num_standard_timeseries\":36372,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T22:00:00+00:00\",\"num_standard_timeseries\":36327,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-27T23:00:00+00:00\",\"num_standard_timeseries\":36295,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":103,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":1,\"hour\":\"2022-03-28T00:00:00+00:00\",\"num_standard_timeseries\":36417,\"num_custom_output_timeseries\":83,\"num_custom_timeseries\":96,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":93,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T01:00:00+00:00\",\"num_standard_timeseries\":36427,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":93,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T02:00:00+00:00\",\"num_standard_timeseries\":36370,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":93,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T03:00:00+00:00\",\"num_standard_timeseries\":36366,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":95,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":93,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T04:00:00+00:00\",\"num_standard_timeseries\":36361,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T05:00:00+00:00\",\"num_standard_timeseries\":36371,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T06:00:00+00:00\",\"num_standard_timeseries\":36292,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T07:00:00+00:00\",\"num_standard_timeseries\":36304,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T08:00:00+00:00\",\"num_standard_timeseries\":36308,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T09:00:00+00:00\",\"num_standard_timeseries\":36378,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T10:00:00+00:00\",\"num_standard_timeseries\":36304,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T11:00:00+00:00\",\"num_standard_timeseries\":36307,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":1,\"hour\":\"2022-03-28T12:00:00+00:00\",\"num_standard_timeseries\":36363,\"num_custom_output_timeseries\":83,\"num_custom_timeseries\":94,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T13:00:00+00:00\",\"num_standard_timeseries\":36382,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":94,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T14:00:00+00:00\",\"num_standard_timeseries\":36293,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":94,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T15:00:00+00:00\",\"num_standard_timeseries\":36295,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T16:00:00+00:00\",\"num_standard_timeseries\":36299,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T17:00:00+00:00\",\"num_standard_timeseries\":36356,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":1,\"hour\":\"2022-03-28T18:00:00+00:00\",\"num_standard_timeseries\":36387,\"num_custom_output_timeseries\":87,\"num_custom_timeseries\":105,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T19:00:00+00:00\",\"num_standard_timeseries\":36083,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":2,\"hour\":\"2022-03-28T20:00:00+00:00\",\"num_standard_timeseries\":36082,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":101,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":93,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T21:00:00+00:00\",\"num_standard_timeseries\":36312,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T22:00:00+00:00\",\"num_standard_timeseries\":36073,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0},{\"org_name\":\"DD Integration Tests (321813)\",\"num_standard_output_timeseries\":77,\"public_id\":\"fasjyydbcgwwc2uc\",\"num_custom_input_timeseries\":0,\"hour\":\"2022-03-28T23:00:00+00:00\",\"num_standard_timeseries\":36078,\"num_custom_output_timeseries\":82,\"num_custom_timeseries\":93,\"num_standard_input_timeseries\":0}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 01 Apr 2022 00:41:29 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-hosts-and-containers-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-hosts-and-containers-returns-Bad-Request-response.json index 6f935da66..7547c31ac 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-hosts-and-containers-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-hosts-and-containers-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/hosts?start_hr=2022-03-29T00%3A41%3A30.106Z&end_hr=2022-03-27T00%3A41%3A30.106Z"}, "response": {"body": {"string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Fri, 01 Apr 2022 00:41:30 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/hosts?start_hr=2022-03-29T00%3A41%3A30.106Z&end_hr=2022-03-27T00%3A41%3A30.106Z" + }, + "response": { + "body": { + "string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Fri, 01 Apr 2022 00:41:30 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-hosts-and-containers-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-hosts-and-containers-returns-OK-response.json index 06adb2820..f17004713 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-hosts-and-containers-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-hosts-and-containers-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/hosts?start_hr=2022-03-27T00%3A41%3A30.234Z&end_hr=2022-03-29T00%3A41%3A30.234Z"}, "response": {"body": {"string": "{\"usage\":[{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T00:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T01:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T02:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T03:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T04:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T05:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T06:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T07:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T08:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T09:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T10:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T11:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T12:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T13:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T14:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T15:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T16:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T17:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T18:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T19:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T20:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T21:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T22:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T23:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T00:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T01:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T02:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T03:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T04:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T05:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T06:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T07:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T08:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T09:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T10:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T11:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T12:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T13:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T14:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T15:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T16:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T17:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T18:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T19:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T20:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T21:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T22:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T23:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 01 Apr 2022 00:41:30 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/hosts?start_hr=2022-03-27T00%3A41%3A30.234Z&end_hr=2022-03-29T00%3A41%3A30.234Z" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T00:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T01:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T02:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T03:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T04:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T05:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T06:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T07:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T08:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T09:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T10:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T11:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T12:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T13:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T14:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T15:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T16:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T17:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T18:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T19:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T20:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T21:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T22:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-27T23:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T00:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T01:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T02:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T03:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T04:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T05:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T06:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T07:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T08:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T09:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T10:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T11:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T12:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T13:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T14:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T15:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T16:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T17:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T18:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T19:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T20:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T21:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T22:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0},{\"host_count\":14,\"org_name\":\"DD Integration Tests (321813)\",\"container_count\":null,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-03-28T23:00:00+00:00\",\"alibaba_host_count\":0,\"agent_host_count\":14,\"apm_host_count\":8,\"org_id\":321813,\"apm_trace_count\":0,\"npm_host_count\":null,\"vsphere_host_count\":0,\"azure_host_count\":0,\"apm_azure_app_service_host_count\":0,\"gcp_host_count\":0,\"heroku_host_count\":0,\"infra_azure_app_service\":0,\"aws_host_count\":0,\"opentelemetry_host_count\":0,\"unbillable_host_count\":0}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 01 Apr 2022 00:41:30 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-incident-management-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-incident-management-returns-Bad-Request-response.json index f264c73dc..ccc4e66ff 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-incident-management-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-incident-management-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/incident-management?start_hr=2022-01-28T09%3A34%3A31.364Z&end_hr=2022-01-26T09%3A34%3A31.364Z"}, "response": {"body": {"string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Mon, 31 Jan 2022 09:34:31 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/incident-management?start_hr=2022-01-28T09%3A34%3A31.364Z&end_hr=2022-01-26T09%3A34%3A31.364Z" + }, + "response": { + "body": { + "string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Mon, 31 Jan 2022 09:34:31 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-incident-management-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-incident-management-returns-OK-response.json index 2b4fc029b..bc814d7df 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-incident-management-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-incident-management-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/incident-management?start_hr=2022-01-26T09%3A34%3A31.797Z&end_hr=2022-01-28T09%3A34%3A31.797Z"}, "response": {"body": {"string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-26T09:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-26T10:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-26T11:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-26T12:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-26T13:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-26T14:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-26T15:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-26T16:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-26T17:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-26T18:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-26T19:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-26T20:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-26T21:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-26T22:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-26T23:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T00:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T01:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T02:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T03:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T04:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T05:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T06:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T07:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T08:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T09:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T10:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T11:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T12:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T13:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T14:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T15:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T16:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T17:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T18:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T19:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T20:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T21:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T22:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T23:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-28T00:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-28T01:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-28T02:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-28T03:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-28T04:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-28T05:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-28T06:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-28T07:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-28T08:00:00+00:00\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 31 Jan 2022 09:34:31 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/incident-management?start_hr=2022-01-26T09%3A34%3A31.797Z&end_hr=2022-01-28T09%3A34%3A31.797Z" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-26T09:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-26T10:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-26T11:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-26T12:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-26T13:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-26T14:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-26T15:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-26T16:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-26T17:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-26T18:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-26T19:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-26T20:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-26T21:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-26T22:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-26T23:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T00:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T01:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T02:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T03:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T04:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T05:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T06:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T07:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T08:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T09:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T10:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T11:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T12:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T13:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T14:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T15:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T16:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T17:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T18:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T19:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T20:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T21:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T22:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-27T23:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-28T00:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-28T01:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-28T02:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-28T03:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-28T04:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-28T05:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-28T06:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-28T07:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"monthly_active_users\":1,\"hour\":\"2022-01-28T08:00:00+00:00\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 31 Jan 2022 09:34:31 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-indexed-spans-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-indexed-spans-returns-Bad-Request-response.json index 7c977acfe..dc2c5ef57 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-indexed-spans-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-indexed-spans-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/indexed-spans?start_hr=2022-01-28T09%3A34%3A32.316Z&end_hr=2022-01-26T09%3A34%3A32.316Z"}, "response": {"body": {"string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Mon, 31 Jan 2022 09:34:32 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/indexed-spans?start_hr=2022-01-28T09%3A34%3A32.316Z&end_hr=2022-01-26T09%3A34%3A32.316Z" + }, + "response": { + "body": { + "string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Mon, 31 Jan 2022 09:34:32 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-indexed-spans-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-indexed-spans-returns-OK-response.json index 5e80dca61..3b1601ec2 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-indexed-spans-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-indexed-spans-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/indexed-spans?start_hr=2022-01-26T09%3A34%3A32.749Z&end_hr=2022-01-28T09%3A34%3A32.749Z"}, "response": {"body": {"string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-26T09:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-26T10:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-26T11:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-26T12:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-26T13:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-26T14:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-26T15:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-26T16:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-26T17:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-26T18:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-26T19:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-26T20:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-26T21:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-26T22:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-26T23:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T00:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T01:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T02:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T03:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T04:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T05:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T06:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T07:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T08:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T09:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T10:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T11:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T12:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T13:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T14:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T15:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T16:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T17:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T18:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T19:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T20:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T21:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T22:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T23:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-28T00:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-28T01:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-28T02:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-28T03:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-28T04:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-28T05:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-28T06:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-28T07:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-28T08:00:00+00:00\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 31 Jan 2022 09:34:32 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/indexed-spans?start_hr=2022-01-26T09%3A34%3A32.749Z&end_hr=2022-01-28T09%3A34%3A32.749Z" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-26T09:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-26T10:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-26T11:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-26T12:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-26T13:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-26T14:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-26T15:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-26T16:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-26T17:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-26T18:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-26T19:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-26T20:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-26T21:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-26T22:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-26T23:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T00:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T01:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T02:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T03:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T04:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T05:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T06:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T07:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T08:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T09:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T10:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T11:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T12:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T13:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T14:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T15:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T16:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T17:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T18:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T19:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T20:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T21:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T22:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-27T23:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-28T00:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-28T01:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-28T02:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-28T03:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-28T04:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-28T05:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-28T06:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-28T07:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"indexed_events_count\":0,\"hour\":\"2022-01-28T08:00:00+00:00\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 31 Jan 2022 09:34:32 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-ingested-spans-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-ingested-spans-returns-Bad-Request-response.json index 2d95574d1..1cbda382f 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-ingested-spans-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-ingested-spans-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/ingested-spans?start_hr=2022-01-28T09%3A34%3A33.304Z&end_hr=2022-01-26T09%3A34%3A33.304Z"}, "response": {"body": {"string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Mon, 31 Jan 2022 09:34:33 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/ingested-spans?start_hr=2022-01-28T09%3A34%3A33.304Z&end_hr=2022-01-26T09%3A34%3A33.304Z" + }, + "response": { + "body": { + "string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Mon, 31 Jan 2022 09:34:33 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-ingested-spans-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-ingested-spans-returns-OK-response.json index ccd48c315..80df9d65b 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-ingested-spans-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-ingested-spans-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/ingested-spans?start_hr=2022-01-26T09%3A34%3A33.739Z&end_hr=2022-01-28T09%3A34%3A33.739Z"}, "response": {"body": {"string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T09:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T10:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T11:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T12:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T13:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T14:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T15:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T16:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T17:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T18:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T19:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T20:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T21:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":569960,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T22:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":2118720,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T23:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T00:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T01:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T02:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T03:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T04:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T05:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T06:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T07:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T08:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T09:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T10:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T11:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":275263,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T12:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":2450015,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T13:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":1381529,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T14:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":10595,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T15:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":748763,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T16:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":748738,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T17:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":741902,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T18:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":748746,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T19:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":54279,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T20:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T21:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T22:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T23:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T00:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T01:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T02:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T03:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T04:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T05:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T06:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T07:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T08:00:00+00:00\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 31 Jan 2022 09:34:33 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/ingested-spans?start_hr=2022-01-26T09%3A34%3A33.739Z&end_hr=2022-01-28T09%3A34%3A33.739Z" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T09:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T10:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T11:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T12:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T13:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T14:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T15:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T16:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T17:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T18:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T19:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T20:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T21:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":569960,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T22:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":2118720,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T23:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T00:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T01:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T02:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T03:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T04:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T05:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T06:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T07:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T08:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T09:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T10:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T11:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":275263,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T12:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":2450015,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T13:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":1381529,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T14:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":10595,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T15:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":748763,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T16:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":748738,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T17:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":741902,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T18:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":748746,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T19:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":54279,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T20:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T21:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T22:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T23:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T00:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T01:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T02:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T03:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T04:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T05:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T06:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T07:00:00+00:00\"},{\"org_name\":\"DD Integration Tests (321813)\",\"ingested_events_bytes\":0,\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T08:00:00+00:00\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 31 Jan 2022 09:34:33 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-profiled-hosts-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-profiled-hosts-returns-Bad-Request-response.json index 8f2bb9706..de94af88c 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-profiled-hosts-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-profiled-hosts-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/profiling?start_hr=2022-01-28T09%3A34%3A34.396Z&end_hr=2022-01-26T09%3A34%3A34.396Z"}, "response": {"body": {"string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Mon, 31 Jan 2022 09:34:34 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/profiling?start_hr=2022-01-28T09%3A34%3A34.396Z&end_hr=2022-01-26T09%3A34%3A34.396Z" + }, + "response": { + "body": { + "string": "{\"errors\": [\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Mon, 31 Jan 2022 09:34:34 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-profiled-hosts-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-profiled-hosts-returns-OK-response.json index 946db476e..db376eb44 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-profiled-hosts-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-hourly-usage-for-profiled-hosts-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/profiling?start_hr=2022-01-26T09%3A34%3A34.802Z&end_hr=2022-01-28T09%3A34%3A34.802Z"}, "response": {"body": {"string": "{\"usage\":[{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T09:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T10:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T11:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T12:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T13:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T14:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T15:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T16:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T17:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T18:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T19:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T20:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T21:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T22:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T23:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T00:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T01:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T02:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T03:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T04:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T05:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T06:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T07:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T08:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T09:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T10:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T11:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T12:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T13:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T14:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T15:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T16:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T17:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T18:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T19:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T20:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T21:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T22:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T23:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T00:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T01:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T02:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T03:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T04:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T05:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T06:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T07:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T08:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 31 Jan 2022 09:34:34 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/profiling?start_hr=2022-01-26T09%3A34%3A34.802Z&end_hr=2022-01-28T09%3A34%3A34.802Z" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T09:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T10:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T11:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T12:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T13:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T14:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T15:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T16:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T17:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T18:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T19:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T20:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T21:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T22:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-26T23:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T00:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T01:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T02:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T03:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T04:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T05:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T06:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T07:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T08:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T09:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T10:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T11:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T12:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T13:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T14:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T15:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T16:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T17:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T18:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T19:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T20:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T21:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T22:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-27T23:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T00:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T01:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T02:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T03:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T04:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T05:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T06:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T07:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null},{\"host_count\":null,\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-01-28T08:00:00+00:00\",\"avg_container_agent_count\":null,\"avg_container_agentless_count\":null}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 31 Jan 2022 09:34:34 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-mobile-hourly-usage-for-RUM-Sessions-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-mobile-hourly-usage-for-RUM-Sessions-returns-OK-response.json index ecbd1c170..9a1faa618 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-mobile-hourly-usage-for-RUM-Sessions-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-mobile-hourly-usage-for-RUM-Sessions-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/rum_sessions?start_hr=2022-05-05T15%3A31%3A42.562Z&end_hr=2022-05-07T15%3A31%3A42.562Z&type=mobile"}, "response": {"body": {"string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-05T15:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-05T16:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-05T17:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-05T18:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-05T19:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-05T20:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-05T21:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-05T22:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-05T23:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T00:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T01:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T02:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T03:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T04:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T05:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T06:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T07:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T08:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T09:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T10:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T11:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T12:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T13:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T14:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T15:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T16:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T17:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T18:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T19:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T20:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T21:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T22:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T23:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-07T00:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-07T01:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-07T02:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-07T03:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-07T04:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-07T05:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-07T06:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-07T07:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-07T08:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-07T09:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-07T10:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-07T11:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-07T12:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-07T13:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-07T14:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 10 May 2022 15:31:42 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/rum_sessions?start_hr=2022-05-05T15%3A31%3A42.562Z&end_hr=2022-05-07T15%3A31%3A42.562Z&type=mobile" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-05T15:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-05T16:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-05T17:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-05T18:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-05T19:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-05T20:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-05T21:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-05T22:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-05T23:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T00:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T01:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T02:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T03:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T04:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T05:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T06:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T07:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T08:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T09:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T10:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T11:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T12:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T13:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T14:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T15:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T16:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T17:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T18:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T19:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T20:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T21:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T22:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-06T23:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-07T00:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-07T01:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-07T02:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-07T03:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-07T04:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-07T05:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-07T06:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-07T07:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-07T08:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-07T09:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-07T10:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-07T11:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-07T12:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-07T13:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null},{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"hour\":\"2022-05-07T14:00:00+00:00\",\"session_count_android\":null,\"session_count\":null,\"session_count_ios\":null,\"session_count_reactnative\":null}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 10 May 2022 15:31:42 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-monthly-usage-attribution-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-monthly-usage-attribution-returns-OK-response.json index bf5dddd7b..650356935 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-monthly-usage-attribution-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-monthly-usage-attribution-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/monthly-attribution?start_month=2022-05-20T08%3A46%3A27.028Z&fields=infra_host_usage"}, "response": {"body": {"string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"updated_at\":\"2022-05-22T09:05:00Z\",\"month\":\"2022-05-01T00:00:00+00:00\",\"values\":{\"infra_host_usage\":19}}],\"metadata\":{\"pagination\":{\"next_record_id\":null},\"aggregates\":[{\"field\":\"infra_host_usage\",\"value\":19.0,\"agg_type\":\"sum\"}]}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 23 May 2022 08:46:27 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/monthly-attribution?start_month=2022-05-20T08%3A46%3A27.028Z&fields=infra_host_usage" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"updated_at\":\"2022-05-22T09:05:00Z\",\"month\":\"2022-05-01T00:00:00+00:00\",\"values\":{\"infra_host_usage\":19}}],\"metadata\":{\"pagination\":{\"next_record_id\":null},\"aggregates\":[{\"field\":\"infra_host_usage\",\"value\":19.0,\"agg_type\":\"sum\"}]}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 23 May 2022 08:46:27 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-specified-daily-custom-reports-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-specified-daily-custom-reports-returns-OK-response.json index 6e5e67ff4..fdd5bb809 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-specified-daily-custom-reports-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-specified-daily-custom-reports-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/daily_custom_reports/2022-03-20"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"total_count\":1}},\"data\":{\"type\":\"reports\",\"id\":\"2022-03-20\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-20\",\"end_date\":\"2022-03-20\",\"size\":10247,\"computed_on\":\"2022-03-21T11:48:01+00:00\",\"location\":\"https://dd-michelada-custom-reporting-prod.s3.amazonaws.com/subscription_job_zipper/1.0/2022/03/20/1/550/daily_report_2022-03-20.zip?AWSAccessKeyId=ASIAWYLNJGWWCXCR4V7V&Signature=I7cpEqhY5%2BXEFlsYzxA57a%2BYnHk%3D&x-amz-security-token=IQoJb3JpZ2luX2VjEGsaCXVzLWVhc3QtMSJHMEUCIEXGsulBAsPHdZRek1V56QMDUifIBwCWlJLQbiXZtZeZAiEA7XmK8wJwFM9FYFTuWqXd%2FAZOgScwd2EElr%2FUMJU8EHYqtAII9P%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgw0NjQ2MjI1MzIwMTIiDIBxf%2FLE%2F8pisemenyqIAvOZUzJItp6MlR%2BAasSF7mKWn8dqAbcSWsSIk26bBfnZnJKIapLNO87CNK5XY%2BRQGlQtiedFTeM70882IMR4yeTbHR2V%2F1IhNorCwuitJ9Bt3pfyEIA5wfFm30vPk%2F8TpTxh3kU9yDksIy3LKhh72zH%2BOE58W41Xsbe%2B1Up7EjH6MvwgGTnkdro%2BADAaC%2Bk2E7ziAzRTh8bVqDbyt6nFw38sCiAxISIzLyKUNSE2LF4V6R%2FoKM2OYjKkCAtcEyuaZlruLuyq64HDXOasTZPGdPEPnKn1HDYa95i4SDoJcRJeFNQFmG2xtueUx63zOg8dMRfEeCEwOhbS6y9pmcCsqYOMzcVDW8UNxDD1wZKSBjqdARNDm0Wuz7QRUfPFC9L4WZPg1POnUSKJ40XYyzWYbn9hKNocw0vyFUVx07mFUUBKZhPBJQHFTWhabDq%2FmVWCV%2FDQ73ruhCMjx7%2Bo0tnGUGuY3fTzBkDTSfoEsoAKYdWcMWXcFwnnItX3Q3Y8TwWUoy1hyB1QDc1zIVxid1PqnV5%2FBnTYYzGw8Z2zFaPR%2FMt%2FCJaLPwBEvc%2F7v6IrqUA%3D&Expires=1648665975\"}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 30 Mar 2022 18:31:15 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/daily_custom_reports/2022-03-20" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"total_count\":1}},\"data\":{\"type\":\"reports\",\"id\":\"2022-03-20\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-20\",\"end_date\":\"2022-03-20\",\"size\":10247,\"computed_on\":\"2022-03-21T11:48:01+00:00\",\"location\":\"https://dd-michelada-custom-reporting-prod.s3.amazonaws.com/subscription_job_zipper/1.0/2022/03/20/1/550/daily_report_2022-03-20.zip?AWSAccessKeyId=ASIAWYLNJGWWCXCR4V7V&Signature=I7cpEqhY5%2BXEFlsYzxA57a%2BYnHk%3D&x-amz-security-token=IQoJb3JpZ2luX2VjEGsaCXVzLWVhc3QtMSJHMEUCIEXGsulBAsPHdZRek1V56QMDUifIBwCWlJLQbiXZtZeZAiEA7XmK8wJwFM9FYFTuWqXd%2FAZOgScwd2EElr%2FUMJU8EHYqtAII9P%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgw0NjQ2MjI1MzIwMTIiDIBxf%2FLE%2F8pisemenyqIAvOZUzJItp6MlR%2BAasSF7mKWn8dqAbcSWsSIk26bBfnZnJKIapLNO87CNK5XY%2BRQGlQtiedFTeM70882IMR4yeTbHR2V%2F1IhNorCwuitJ9Bt3pfyEIA5wfFm30vPk%2F8TpTxh3kU9yDksIy3LKhh72zH%2BOE58W41Xsbe%2B1Up7EjH6MvwgGTnkdro%2BADAaC%2Bk2E7ziAzRTh8bVqDbyt6nFw38sCiAxISIzLyKUNSE2LF4V6R%2FoKM2OYjKkCAtcEyuaZlruLuyq64HDXOasTZPGdPEPnKn1HDYa95i4SDoJcRJeFNQFmG2xtueUx63zOg8dMRfEeCEwOhbS6y9pmcCsqYOMzcVDW8UNxDD1wZKSBjqdARNDm0Wuz7QRUfPFC9L4WZPg1POnUSKJ40XYyzWYbn9hKNocw0vyFUVx07mFUUBKZhPBJQHFTWhabDq%2FmVWCV%2FDQ73ruhCMjx7%2Bo0tnGUGuY3fTzBkDTSfoEsoAKYdWcMWXcFwnnItX3Q3Y8TwWUoy1hyB1QDc1zIVxid1PqnV5%2FBnTYYzGw8Z2zFaPR%2FMt%2FCJaLPwBEvc%2F7v6IrqUA%3D&Expires=1648665975\"}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 30 Mar 2022 18:31:15 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-specified-monthly-custom-reports-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-specified-monthly-custom-reports-returns-OK-response.json index 017b685fc..936e1ec38 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-specified-monthly-custom-reports-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-specified-monthly-custom-reports-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/monthly_custom_reports/2021-05-01"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"total_count\":1}},\"data\":{\"type\":\"reports\",\"id\":\"2021-05-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2021-05-01\",\"end_date\":\"2021-06-01\",\"size\":12397,\"computed_on\":\"2021-06-01T18:47:43+00:00\",\"location\":\"https://dd-michelada-custom-reporting-prod.s3.amazonaws.com/org_month_custom_reporting/1.0/2021/05/0/550/monthly_report_2021-05.zip?AWSAccessKeyId=ASIAWYLNJGWWCXCR4V7V&Signature=izgOSTDQwRnELRSMM%2BF10Nlhq8A%3D&x-amz-security-token=IQoJb3JpZ2luX2VjEGsaCXVzLWVhc3QtMSJHMEUCIEXGsulBAsPHdZRek1V56QMDUifIBwCWlJLQbiXZtZeZAiEA7XmK8wJwFM9FYFTuWqXd%2FAZOgScwd2EElr%2FUMJU8EHYqtAII9P%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgw0NjQ2MjI1MzIwMTIiDIBxf%2FLE%2F8pisemenyqIAvOZUzJItp6MlR%2BAasSF7mKWn8dqAbcSWsSIk26bBfnZnJKIapLNO87CNK5XY%2BRQGlQtiedFTeM70882IMR4yeTbHR2V%2F1IhNorCwuitJ9Bt3pfyEIA5wfFm30vPk%2F8TpTxh3kU9yDksIy3LKhh72zH%2BOE58W41Xsbe%2B1Up7EjH6MvwgGTnkdro%2BADAaC%2Bk2E7ziAzRTh8bVqDbyt6nFw38sCiAxISIzLyKUNSE2LF4V6R%2FoKM2OYjKkCAtcEyuaZlruLuyq64HDXOasTZPGdPEPnKn1HDYa95i4SDoJcRJeFNQFmG2xtueUx63zOg8dMRfEeCEwOhbS6y9pmcCsqYOMzcVDW8UNxDD1wZKSBjqdARNDm0Wuz7QRUfPFC9L4WZPg1POnUSKJ40XYyzWYbn9hKNocw0vyFUVx07mFUUBKZhPBJQHFTWhabDq%2FmVWCV%2FDQ73ruhCMjx7%2Bo0tnGUGuY3fTzBkDTSfoEsoAKYdWcMWXcFwnnItX3Q3Y8TwWUoy1hyB1QDc1zIVxid1PqnV5%2FBnTYYzGw8Z2zFaPR%2FMt%2FCJaLPwBEvc%2F7v6IrqUA%3D&Expires=1648665976\"}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 30 Mar 2022 18:31:15 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/monthly_custom_reports/2021-05-01" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"total_count\":1}},\"data\":{\"type\":\"reports\",\"id\":\"2021-05-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2021-05-01\",\"end_date\":\"2021-06-01\",\"size\":12397,\"computed_on\":\"2021-06-01T18:47:43+00:00\",\"location\":\"https://dd-michelada-custom-reporting-prod.s3.amazonaws.com/org_month_custom_reporting/1.0/2021/05/0/550/monthly_report_2021-05.zip?AWSAccessKeyId=ASIAWYLNJGWWCXCR4V7V&Signature=izgOSTDQwRnELRSMM%2BF10Nlhq8A%3D&x-amz-security-token=IQoJb3JpZ2luX2VjEGsaCXVzLWVhc3QtMSJHMEUCIEXGsulBAsPHdZRek1V56QMDUifIBwCWlJLQbiXZtZeZAiEA7XmK8wJwFM9FYFTuWqXd%2FAZOgScwd2EElr%2FUMJU8EHYqtAII9P%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgw0NjQ2MjI1MzIwMTIiDIBxf%2FLE%2F8pisemenyqIAvOZUzJItp6MlR%2BAasSF7mKWn8dqAbcSWsSIk26bBfnZnJKIapLNO87CNK5XY%2BRQGlQtiedFTeM70882IMR4yeTbHR2V%2F1IhNorCwuitJ9Bt3pfyEIA5wfFm30vPk%2F8TpTxh3kU9yDksIy3LKhh72zH%2BOE58W41Xsbe%2B1Up7EjH6MvwgGTnkdro%2BADAaC%2Bk2E7ziAzRTh8bVqDbyt6nFw38sCiAxISIzLyKUNSE2LF4V6R%2FoKM2OYjKkCAtcEyuaZlruLuyq64HDXOasTZPGdPEPnKn1HDYa95i4SDoJcRJeFNQFmG2xtueUx63zOg8dMRfEeCEwOhbS6y9pmcCsqYOMzcVDW8UNxDD1wZKSBjqdARNDm0Wuz7QRUfPFC9L4WZPg1POnUSKJ40XYyzWYbn9hKNocw0vyFUVx07mFUUBKZhPBJQHFTWhabDq%2FmVWCV%2FDQ73ruhCMjx7%2Bo0tnGUGuY3fTzBkDTSfoEsoAKYdWcMWXcFwnnItX3Q3Y8TwWUoy1hyB1QDc1zIVxid1PqnV5%2FBnTYYzGw8Z2zFaPR%2FMt%2FCJaLPwBEvc%2F7v6IrqUA%3D&Expires=1648665976\"}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 30 Mar 2022 18:31:15 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-the-list-of-available-daily-custom-reports-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-the-list-of-available-daily-custom-reports-returns-OK-response.json index f682db205..4f1185344 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-the-list-of-available-daily-custom-reports-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-the-list-of-available-daily-custom-reports-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/daily_custom_reports"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"total_count\":397}},\"data\":[{\"type\":\"reports\",\"id\":\"2022-03-30\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-30\",\"end_date\":\"2022-03-30\",\"size\":11887,\"computed_on\":\"2022-03-31T13:22:53+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-29\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-29\",\"end_date\":\"2022-03-29\",\"size\":11141,\"computed_on\":\"2022-03-30T19:59:17+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-28\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-28\",\"end_date\":\"2022-03-28\",\"size\":11088,\"computed_on\":\"2022-03-29T11:57:38+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-27\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-27\",\"end_date\":\"2022-03-27\",\"size\":11277,\"computed_on\":\"2022-03-28T12:39:05+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-26\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-26\",\"end_date\":\"2022-03-26\",\"size\":11277,\"computed_on\":\"2022-03-27T12:33:52+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-25\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-25\",\"end_date\":\"2022-03-25\",\"size\":11259,\"computed_on\":\"2022-03-26T11:33:26+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-24\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-24\",\"end_date\":\"2022-03-24\",\"size\":11253,\"computed_on\":\"2022-03-25T12:35:16+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-23\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-23\",\"end_date\":\"2022-03-23\",\"size\":10890,\"computed_on\":\"2022-03-24T11:40:57+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-22\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-22\",\"end_date\":\"2022-03-22\",\"size\":11134,\"computed_on\":\"2022-03-23T11:53:55+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-21\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-21\",\"end_date\":\"2022-03-21\",\"size\":10850,\"computed_on\":\"2022-03-22T11:45:29+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-20\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-20\",\"end_date\":\"2022-03-20\",\"size\":10247,\"computed_on\":\"2022-03-21T11:48:01+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-19\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-19\",\"end_date\":\"2022-03-19\",\"size\":10247,\"computed_on\":\"2022-03-20T12:35:11+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-18\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-18\",\"end_date\":\"2022-03-18\",\"size\":10970,\"computed_on\":\"2022-03-19T12:16:44+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-17\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-17\",\"end_date\":\"2022-03-17\",\"size\":11253,\"computed_on\":\"2022-03-18T15:36:07+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-16\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-16\",\"end_date\":\"2022-03-16\",\"size\":11257,\"computed_on\":\"2022-03-17T11:46:13+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-15\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-15\",\"end_date\":\"2022-03-15\",\"size\":11253,\"computed_on\":\"2022-03-16T12:02:15+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-14\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-14\",\"end_date\":\"2022-03-14\",\"size\":11257,\"computed_on\":\"2022-03-15T12:10:44+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-13\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-13\",\"end_date\":\"2022-03-13\",\"size\":11253,\"computed_on\":\"2022-03-31T18:56:21+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-12\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-12\",\"end_date\":\"2022-03-12\",\"size\":11253,\"computed_on\":\"2022-03-31T18:38:30+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-11\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-11\",\"end_date\":\"2022-03-11\",\"size\":11256,\"computed_on\":\"2022-03-31T18:20:09+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-10\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-10\",\"end_date\":\"2022-03-10\",\"size\":11253,\"computed_on\":\"2022-03-31T18:01:15+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-09\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-09\",\"end_date\":\"2022-03-09\",\"size\":11250,\"computed_on\":\"2022-03-31T17:43:15+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-08\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-08\",\"end_date\":\"2022-03-08\",\"size\":11067,\"computed_on\":\"2022-03-31T17:24:33+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-07\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-07\",\"end_date\":\"2022-03-07\",\"size\":11132,\"computed_on\":\"2022-03-31T17:05:58+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-06\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-06\",\"end_date\":\"2022-03-06\",\"size\":11253,\"computed_on\":\"2022-03-31T16:47:01+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-05\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-05\",\"end_date\":\"2022-03-05\",\"size\":11251,\"computed_on\":\"2022-03-31T16:29:16+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-04\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-04\",\"end_date\":\"2022-03-04\",\"size\":11021,\"computed_on\":\"2022-03-31T16:11:45+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-03\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-03\",\"end_date\":\"2022-03-03\",\"size\":10168,\"computed_on\":\"2022-03-31T15:54:47+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-02\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-02\",\"end_date\":\"2022-03-02\",\"size\":10295,\"computed_on\":\"2022-03-31T15:37:20+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-01\",\"end_date\":\"2022-03-01\",\"size\":10112,\"computed_on\":\"2022-03-31T15:20:26+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-28\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-28\",\"end_date\":\"2022-02-28\",\"size\":9623,\"computed_on\":\"2022-03-01T11:42:11+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-27\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-27\",\"end_date\":\"2022-02-27\",\"size\":9635,\"computed_on\":\"2022-02-28T11:31:54+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-26\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-26\",\"end_date\":\"2022-02-26\",\"size\":9635,\"computed_on\":\"2022-02-27T11:19:34+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-25\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-25\",\"end_date\":\"2022-02-25\",\"size\":10325,\"computed_on\":\"2022-02-26T11:31:41+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-24\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-24\",\"end_date\":\"2022-02-24\",\"size\":10162,\"computed_on\":\"2022-02-25T11:42:33+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-23\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-23\",\"end_date\":\"2022-02-23\",\"size\":11840,\"computed_on\":\"2022-02-24T11:52:42+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-22\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-22\",\"end_date\":\"2022-02-22\",\"size\":10201,\"computed_on\":\"2022-02-23T13:44:21+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-21\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-21\",\"end_date\":\"2022-02-21\",\"size\":10253,\"computed_on\":\"2022-02-22T12:54:00+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-20\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-20\",\"end_date\":\"2022-02-20\",\"size\":10253,\"computed_on\":\"2022-02-21T11:42:26+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-19\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-19\",\"end_date\":\"2022-02-19\",\"size\":10253,\"computed_on\":\"2022-02-20T11:59:36+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-18\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-18\",\"end_date\":\"2022-02-18\",\"size\":10253,\"computed_on\":\"2022-02-19T13:20:42+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-17\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-17\",\"end_date\":\"2022-02-17\",\"size\":10253,\"computed_on\":\"2022-02-18T13:19:10+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-16\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-16\",\"end_date\":\"2022-02-16\",\"size\":11200,\"computed_on\":\"2022-02-17T12:43:57+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-15\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-15\",\"end_date\":\"2022-02-15\",\"size\":11839,\"computed_on\":\"2022-02-16T11:40:11+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-14\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-14\",\"end_date\":\"2022-02-14\",\"size\":10488,\"computed_on\":\"2022-02-15T13:56:48+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-13\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-13\",\"end_date\":\"2022-02-13\",\"size\":9222,\"computed_on\":\"2022-02-14T11:18:48+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-12\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-12\",\"end_date\":\"2022-02-12\",\"size\":9219,\"computed_on\":\"2022-02-13T12:09:53+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-11\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-11\",\"end_date\":\"2022-02-11\",\"size\":15226,\"computed_on\":\"2022-02-12T11:29:42+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-10\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-10\",\"end_date\":\"2022-02-10\",\"size\":12803,\"computed_on\":\"2022-02-11T12:58:43+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-09\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-09\",\"end_date\":\"2022-02-09\",\"size\":9818,\"computed_on\":\"2022-02-10T13:23:20+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-08\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-08\",\"end_date\":\"2022-02-08\",\"size\":10105,\"computed_on\":\"2022-02-09T13:13:24+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-07\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-07\",\"end_date\":\"2022-02-07\",\"size\":10232,\"computed_on\":\"2022-02-08T13:00:00+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-06\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-06\",\"end_date\":\"2022-02-06\",\"size\":10229,\"computed_on\":\"2022-02-07T11:01:35+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-05\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-05\",\"end_date\":\"2022-02-05\",\"size\":10229,\"computed_on\":\"2022-02-06T11:52:57+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-04\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-04\",\"end_date\":\"2022-02-04\",\"size\":9855,\"computed_on\":\"2022-02-05T11:53:22+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-03\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-03\",\"end_date\":\"2022-02-03\",\"size\":11314,\"computed_on\":\"2022-02-04T12:26:10+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-02\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-02\",\"end_date\":\"2022-02-02\",\"size\":9535,\"computed_on\":\"2022-02-03T15:30:14+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-01\",\"end_date\":\"2022-02-01\",\"size\":9202,\"computed_on\":\"2022-02-02T12:30:57+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-01-31\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-01-31\",\"end_date\":\"2022-01-31\",\"size\":9277,\"computed_on\":\"2022-02-01T12:46:32+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-01-30\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-01-30\",\"end_date\":\"2022-01-30\",\"size\":9275,\"computed_on\":\"2022-01-31T12:27:45+00:00\"}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 01 Apr 2022 00:41:30 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/daily_custom_reports" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"total_count\":397}},\"data\":[{\"type\":\"reports\",\"id\":\"2022-03-30\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-30\",\"end_date\":\"2022-03-30\",\"size\":11887,\"computed_on\":\"2022-03-31T13:22:53+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-29\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-29\",\"end_date\":\"2022-03-29\",\"size\":11141,\"computed_on\":\"2022-03-30T19:59:17+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-28\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-28\",\"end_date\":\"2022-03-28\",\"size\":11088,\"computed_on\":\"2022-03-29T11:57:38+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-27\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-27\",\"end_date\":\"2022-03-27\",\"size\":11277,\"computed_on\":\"2022-03-28T12:39:05+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-26\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-26\",\"end_date\":\"2022-03-26\",\"size\":11277,\"computed_on\":\"2022-03-27T12:33:52+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-25\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-25\",\"end_date\":\"2022-03-25\",\"size\":11259,\"computed_on\":\"2022-03-26T11:33:26+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-24\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-24\",\"end_date\":\"2022-03-24\",\"size\":11253,\"computed_on\":\"2022-03-25T12:35:16+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-23\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-23\",\"end_date\":\"2022-03-23\",\"size\":10890,\"computed_on\":\"2022-03-24T11:40:57+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-22\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-22\",\"end_date\":\"2022-03-22\",\"size\":11134,\"computed_on\":\"2022-03-23T11:53:55+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-21\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-21\",\"end_date\":\"2022-03-21\",\"size\":10850,\"computed_on\":\"2022-03-22T11:45:29+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-20\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-20\",\"end_date\":\"2022-03-20\",\"size\":10247,\"computed_on\":\"2022-03-21T11:48:01+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-19\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-19\",\"end_date\":\"2022-03-19\",\"size\":10247,\"computed_on\":\"2022-03-20T12:35:11+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-18\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-18\",\"end_date\":\"2022-03-18\",\"size\":10970,\"computed_on\":\"2022-03-19T12:16:44+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-17\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-17\",\"end_date\":\"2022-03-17\",\"size\":11253,\"computed_on\":\"2022-03-18T15:36:07+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-16\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-16\",\"end_date\":\"2022-03-16\",\"size\":11257,\"computed_on\":\"2022-03-17T11:46:13+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-15\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-15\",\"end_date\":\"2022-03-15\",\"size\":11253,\"computed_on\":\"2022-03-16T12:02:15+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-14\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-14\",\"end_date\":\"2022-03-14\",\"size\":11257,\"computed_on\":\"2022-03-15T12:10:44+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-13\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-13\",\"end_date\":\"2022-03-13\",\"size\":11253,\"computed_on\":\"2022-03-31T18:56:21+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-12\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-12\",\"end_date\":\"2022-03-12\",\"size\":11253,\"computed_on\":\"2022-03-31T18:38:30+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-11\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-11\",\"end_date\":\"2022-03-11\",\"size\":11256,\"computed_on\":\"2022-03-31T18:20:09+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-10\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-10\",\"end_date\":\"2022-03-10\",\"size\":11253,\"computed_on\":\"2022-03-31T18:01:15+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-09\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-09\",\"end_date\":\"2022-03-09\",\"size\":11250,\"computed_on\":\"2022-03-31T17:43:15+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-08\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-08\",\"end_date\":\"2022-03-08\",\"size\":11067,\"computed_on\":\"2022-03-31T17:24:33+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-07\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-07\",\"end_date\":\"2022-03-07\",\"size\":11132,\"computed_on\":\"2022-03-31T17:05:58+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-06\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-06\",\"end_date\":\"2022-03-06\",\"size\":11253,\"computed_on\":\"2022-03-31T16:47:01+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-05\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-05\",\"end_date\":\"2022-03-05\",\"size\":11251,\"computed_on\":\"2022-03-31T16:29:16+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-04\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-04\",\"end_date\":\"2022-03-04\",\"size\":11021,\"computed_on\":\"2022-03-31T16:11:45+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-03\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-03\",\"end_date\":\"2022-03-03\",\"size\":10168,\"computed_on\":\"2022-03-31T15:54:47+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-02\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-02\",\"end_date\":\"2022-03-02\",\"size\":10295,\"computed_on\":\"2022-03-31T15:37:20+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-03-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-03-01\",\"end_date\":\"2022-03-01\",\"size\":10112,\"computed_on\":\"2022-03-31T15:20:26+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-28\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-28\",\"end_date\":\"2022-02-28\",\"size\":9623,\"computed_on\":\"2022-03-01T11:42:11+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-27\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-27\",\"end_date\":\"2022-02-27\",\"size\":9635,\"computed_on\":\"2022-02-28T11:31:54+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-26\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-26\",\"end_date\":\"2022-02-26\",\"size\":9635,\"computed_on\":\"2022-02-27T11:19:34+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-25\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-25\",\"end_date\":\"2022-02-25\",\"size\":10325,\"computed_on\":\"2022-02-26T11:31:41+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-24\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-24\",\"end_date\":\"2022-02-24\",\"size\":10162,\"computed_on\":\"2022-02-25T11:42:33+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-23\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-23\",\"end_date\":\"2022-02-23\",\"size\":11840,\"computed_on\":\"2022-02-24T11:52:42+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-22\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-22\",\"end_date\":\"2022-02-22\",\"size\":10201,\"computed_on\":\"2022-02-23T13:44:21+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-21\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-21\",\"end_date\":\"2022-02-21\",\"size\":10253,\"computed_on\":\"2022-02-22T12:54:00+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-20\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-20\",\"end_date\":\"2022-02-20\",\"size\":10253,\"computed_on\":\"2022-02-21T11:42:26+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-19\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-19\",\"end_date\":\"2022-02-19\",\"size\":10253,\"computed_on\":\"2022-02-20T11:59:36+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-18\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-18\",\"end_date\":\"2022-02-18\",\"size\":10253,\"computed_on\":\"2022-02-19T13:20:42+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-17\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-17\",\"end_date\":\"2022-02-17\",\"size\":10253,\"computed_on\":\"2022-02-18T13:19:10+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-16\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-16\",\"end_date\":\"2022-02-16\",\"size\":11200,\"computed_on\":\"2022-02-17T12:43:57+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-15\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-15\",\"end_date\":\"2022-02-15\",\"size\":11839,\"computed_on\":\"2022-02-16T11:40:11+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-14\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-14\",\"end_date\":\"2022-02-14\",\"size\":10488,\"computed_on\":\"2022-02-15T13:56:48+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-13\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-13\",\"end_date\":\"2022-02-13\",\"size\":9222,\"computed_on\":\"2022-02-14T11:18:48+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-12\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-12\",\"end_date\":\"2022-02-12\",\"size\":9219,\"computed_on\":\"2022-02-13T12:09:53+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-11\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-11\",\"end_date\":\"2022-02-11\",\"size\":15226,\"computed_on\":\"2022-02-12T11:29:42+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-10\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-10\",\"end_date\":\"2022-02-10\",\"size\":12803,\"computed_on\":\"2022-02-11T12:58:43+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-09\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-09\",\"end_date\":\"2022-02-09\",\"size\":9818,\"computed_on\":\"2022-02-10T13:23:20+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-08\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-08\",\"end_date\":\"2022-02-08\",\"size\":10105,\"computed_on\":\"2022-02-09T13:13:24+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-07\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-07\",\"end_date\":\"2022-02-07\",\"size\":10232,\"computed_on\":\"2022-02-08T13:00:00+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-06\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-06\",\"end_date\":\"2022-02-06\",\"size\":10229,\"computed_on\":\"2022-02-07T11:01:35+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-05\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-05\",\"end_date\":\"2022-02-05\",\"size\":10229,\"computed_on\":\"2022-02-06T11:52:57+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-04\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-04\",\"end_date\":\"2022-02-04\",\"size\":9855,\"computed_on\":\"2022-02-05T11:53:22+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-03\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-03\",\"end_date\":\"2022-02-03\",\"size\":11314,\"computed_on\":\"2022-02-04T12:26:10+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-02\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-02\",\"end_date\":\"2022-02-02\",\"size\":9535,\"computed_on\":\"2022-02-03T15:30:14+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-02-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-01\",\"end_date\":\"2022-02-01\",\"size\":9202,\"computed_on\":\"2022-02-02T12:30:57+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-01-31\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-01-31\",\"end_date\":\"2022-01-31\",\"size\":9277,\"computed_on\":\"2022-02-01T12:46:32+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-01-30\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-01-30\",\"end_date\":\"2022-01-30\",\"size\":9275,\"computed_on\":\"2022-01-31T12:27:45+00:00\"}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 01 Apr 2022 00:41:30 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-the-list-of-available-monthly-custom-reports-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-the-list-of-available-monthly-custom-reports-returns-OK-response.json index e34d79e53..3ded48264 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-the-list-of-available-monthly-custom-reports-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-the-list-of-available-monthly-custom-reports-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/monthly_custom_reports"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"total_count\":13}},\"data\":[{\"type\":\"reports\",\"id\":\"2022-02-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-01\",\"end_date\":\"2022-03-01\",\"size\":20340,\"computed_on\":\"2022-03-08T20:44:56+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-01-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-01-01\",\"end_date\":\"2022-02-01\",\"size\":22697,\"computed_on\":\"2022-02-01T16:50:14+00:00\"}},{\"type\":\"reports\",\"id\":\"2021-12-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2021-12-01\",\"end_date\":\"2022-01-01\",\"size\":29169,\"computed_on\":\"2022-01-01T15:54:13+00:00\"}},{\"type\":\"reports\",\"id\":\"2021-11-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2021-11-01\",\"end_date\":\"2021-12-01\",\"size\":19416,\"computed_on\":\"2021-12-01T18:17:01+00:00\"}},{\"type\":\"reports\",\"id\":\"2021-10-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2021-10-01\",\"end_date\":\"2021-11-01\",\"size\":27977,\"computed_on\":\"2021-11-01T15:14:43+00:00\"}},{\"type\":\"reports\",\"id\":\"2021-09-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2021-09-01\",\"end_date\":\"2021-10-01\",\"size\":20126,\"computed_on\":\"2021-10-01T17:53:32+00:00\"}},{\"type\":\"reports\",\"id\":\"2021-08-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2021-08-01\",\"end_date\":\"2021-09-01\",\"size\":21429,\"computed_on\":\"2021-09-01T18:05:42+00:00\"}},{\"type\":\"reports\",\"id\":\"2021-07-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2021-07-01\",\"end_date\":\"2021-08-01\",\"size\":21226,\"computed_on\":\"2021-08-01T21:02:05+00:00\"}},{\"type\":\"reports\",\"id\":\"2021-06-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2021-06-01\",\"end_date\":\"2021-07-01\",\"size\":19206,\"computed_on\":\"2021-07-02T01:10:11+00:00\"}},{\"type\":\"reports\",\"id\":\"2021-05-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2021-05-01\",\"end_date\":\"2021-06-01\",\"size\":12397,\"computed_on\":\"2021-06-01T18:47:43+00:00\"}},{\"type\":\"reports\",\"id\":\"2021-04-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2021-04-01\",\"end_date\":\"2021-05-01\",\"size\":24230,\"computed_on\":\"2021-05-01T20:21:29+00:00\"}},{\"type\":\"reports\",\"id\":\"2021-03-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2021-03-01\",\"end_date\":\"2021-04-01\",\"size\":33516,\"computed_on\":\"2021-04-15T18:59:09+00:00\"}},{\"type\":\"reports\",\"id\":\"2021-02-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2021-02-01\",\"end_date\":\"2021-03-01\",\"size\":35757,\"computed_on\":\"2021-03-02T15:37:35+00:00\"}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 01 Apr 2022 00:41:31 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/monthly_custom_reports" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"total_count\":13}},\"data\":[{\"type\":\"reports\",\"id\":\"2022-02-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-02-01\",\"end_date\":\"2022-03-01\",\"size\":20340,\"computed_on\":\"2022-03-08T20:44:56+00:00\"}},{\"type\":\"reports\",\"id\":\"2022-01-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2022-01-01\",\"end_date\":\"2022-02-01\",\"size\":22697,\"computed_on\":\"2022-02-01T16:50:14+00:00\"}},{\"type\":\"reports\",\"id\":\"2021-12-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2021-12-01\",\"end_date\":\"2022-01-01\",\"size\":29169,\"computed_on\":\"2022-01-01T15:54:13+00:00\"}},{\"type\":\"reports\",\"id\":\"2021-11-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2021-11-01\",\"end_date\":\"2021-12-01\",\"size\":19416,\"computed_on\":\"2021-12-01T18:17:01+00:00\"}},{\"type\":\"reports\",\"id\":\"2021-10-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2021-10-01\",\"end_date\":\"2021-11-01\",\"size\":27977,\"computed_on\":\"2021-11-01T15:14:43+00:00\"}},{\"type\":\"reports\",\"id\":\"2021-09-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2021-09-01\",\"end_date\":\"2021-10-01\",\"size\":20126,\"computed_on\":\"2021-10-01T17:53:32+00:00\"}},{\"type\":\"reports\",\"id\":\"2021-08-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2021-08-01\",\"end_date\":\"2021-09-01\",\"size\":21429,\"computed_on\":\"2021-09-01T18:05:42+00:00\"}},{\"type\":\"reports\",\"id\":\"2021-07-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2021-07-01\",\"end_date\":\"2021-08-01\",\"size\":21226,\"computed_on\":\"2021-08-01T21:02:05+00:00\"}},{\"type\":\"reports\",\"id\":\"2021-06-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2021-06-01\",\"end_date\":\"2021-07-01\",\"size\":19206,\"computed_on\":\"2021-07-02T01:10:11+00:00\"}},{\"type\":\"reports\",\"id\":\"2021-05-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2021-05-01\",\"end_date\":\"2021-06-01\",\"size\":12397,\"computed_on\":\"2021-06-01T18:47:43+00:00\"}},{\"type\":\"reports\",\"id\":\"2021-04-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2021-04-01\",\"end_date\":\"2021-05-01\",\"size\":24230,\"computed_on\":\"2021-05-01T20:21:29+00:00\"}},{\"type\":\"reports\",\"id\":\"2021-03-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2021-03-01\",\"end_date\":\"2021-04-01\",\"size\":33516,\"computed_on\":\"2021-04-15T18:59:09+00:00\"}},{\"type\":\"reports\",\"id\":\"2021-02-01\",\"attributes\":{\"tags\":[\"project\"],\"start_date\":\"2021-02-01\",\"end_date\":\"2021-03-01\",\"size\":35757,\"computed_on\":\"2021-03-02T15:37:35+00:00\"}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 01 Apr 2022 00:41:31 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Get-usage-attribution-returns-OK-response.json b/tests/scenarios/cassettes/v1/usage_metering/Get-usage-attribution-returns-OK-response.json index 391fdbb19..68c17eb6b 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Get-usage-attribution-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Get-usage-attribution-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/attribution?start_month=2022-05-20T08%3A46%3A27.749Z&fields=%2A&offset=0&limit=1"}, "response": {"body": {"string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":{\"project\":[]},\"updated_at\":\"2022-05-23T00\",\"month\":\"2022-05-01T00:00:00+00:00\",\"values\":{\"apm_host_usage\":12,\"api_usage\":97173,\"dbm_hosts_percentage\":0.0,\"custom_timeseries_percentage\":100.0,\"fargate_usage\":0.0,\"cws_containers_usage\":0.0,\"profiled_host_percentage\":0.0,\"cws_hosts_usage\":0,\"cspm_hosts_percentage\":0.0,\"cws_hosts_percentage\":0.0,\"lambda_invocations_percentage\":0.0,\"infra_host_usage\":1,\"infra_host_percentage\":5.26,\"cspm_hosts_usage\":0,\"container_percentage\":100.0,\"profiled_host_usage\":0,\"dbm_queries_usage\":0.0,\"browser_usage\":368,\"snmp_percentage\":0.0,\"profiled_container_usage\":1.45,\"lambda_functions_usage\":0.0,\"snmp_usage\":0,\"api_percentage\":100.0,\"dbm_hosts_usage\":0,\"container_usage\":1.0,\"cspm_containers_usage\":0.0,\"cspm_containers_percentage\":0.0,\"npm_host_usage\":0,\"apm_host_percentage\":100.0,\"lambda_functions_percentage\":0.0,\"dbm_queries_percentage\":0.0,\"profiled_container_percentage\":100.0,\"npm_host_percentage\":0.0,\"lambda_invocations_usage\":0,\"fargate_percentage\":0.0,\"browser_percentage\":100.0,\"cws_containers_percentage\":0.0,\"custom_timeseries_usage\":76.63}}],\"metadata\":{\"pagination\":{\"sort_direction\":\"DESC\",\"sort_name\":\"custom_timeseries_usage\",\"limit\":1,\"total_number_of_records\":3,\"offset\":0},\"aggregates\":[{\"field\":\"custom_timeseries_usage\",\"value\":76.63,\"agg_type\":\"sum\"},{\"field\":\"container_usage\",\"value\":1.0,\"agg_type\":\"sum\"},{\"field\":\"snmp_percentage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"apm_host_usage\",\"value\":12.0,\"agg_type\":\"sum\"},{\"field\":\"browser_usage\",\"value\":368.0,\"agg_type\":\"sum\"},{\"field\":\"npm_host_percentage\",\"value\":100.0,\"agg_type\":\"sum\"},{\"field\":\"infra_host_usage\",\"value\":19.0,\"agg_type\":\"sum\"},{\"field\":\"custom_timeseries_percentage\",\"value\":100.0,\"agg_type\":\"sum\"},{\"field\":\"container_percentage\",\"value\":100.0,\"agg_type\":\"sum\"},{\"field\":\"api_usage\",\"value\":97173.0,\"agg_type\":\"sum\"},{\"field\":\"apm_host_percentage\",\"value\":100.0,\"agg_type\":\"sum\"},{\"field\":\"infra_host_percentage\",\"value\":100.0,\"agg_type\":\"sum\"},{\"field\":\"snmp_usage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"browser_percentage\",\"value\":100.0,\"agg_type\":\"sum\"},{\"field\":\"api_percentage\",\"value\":100.0,\"agg_type\":\"sum\"},{\"field\":\"npm_host_usage\",\"value\":18.0,\"agg_type\":\"sum\"},{\"field\":\"lambda_functions_usage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"lambda_functions_percentage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"lambda_invocations_usage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"lambda_invocations_percentage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"fargate_usage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"fargate_percentage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"profiled_host_usage\",\"value\":3.0,\"agg_type\":\"sum\"},{\"field\":\"profiled_host_percentage\",\"value\":100.0,\"agg_type\":\"sum\"},{\"field\":\"profiled_container_usage\",\"value\":1.45,\"agg_type\":\"sum\"},{\"field\":\"profiled_container_percentage\",\"value\":100.0,\"agg_type\":\"sum\"},{\"field\":\"cws_hosts_usage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"cws_hosts_percentage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"cws_containers_usage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"cws_containers_percentage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"cspm_hosts_usage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"cspm_hosts_percentage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"cspm_containers_usage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"cspm_containers_percentage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"dbm_hosts_usage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"dbm_hosts_percentage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"dbm_queries_usage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"dbm_queries_percentage\",\"value\":0.0,\"agg_type\":\"sum\"}]}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 23 May 2022 08:46:27 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/attribution?start_month=2022-05-20T08%3A46%3A27.749Z&fields=%2A&offset=0&limit=1" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":{\"project\":[]},\"updated_at\":\"2022-05-23T00\",\"month\":\"2022-05-01T00:00:00+00:00\",\"values\":{\"apm_host_usage\":12,\"api_usage\":97173,\"dbm_hosts_percentage\":0.0,\"custom_timeseries_percentage\":100.0,\"fargate_usage\":0.0,\"cws_containers_usage\":0.0,\"profiled_host_percentage\":0.0,\"cws_hosts_usage\":0,\"cspm_hosts_percentage\":0.0,\"cws_hosts_percentage\":0.0,\"lambda_invocations_percentage\":0.0,\"infra_host_usage\":1,\"infra_host_percentage\":5.26,\"cspm_hosts_usage\":0,\"container_percentage\":100.0,\"profiled_host_usage\":0,\"dbm_queries_usage\":0.0,\"browser_usage\":368,\"snmp_percentage\":0.0,\"profiled_container_usage\":1.45,\"lambda_functions_usage\":0.0,\"snmp_usage\":0,\"api_percentage\":100.0,\"dbm_hosts_usage\":0,\"container_usage\":1.0,\"cspm_containers_usage\":0.0,\"cspm_containers_percentage\":0.0,\"npm_host_usage\":0,\"apm_host_percentage\":100.0,\"lambda_functions_percentage\":0.0,\"dbm_queries_percentage\":0.0,\"profiled_container_percentage\":100.0,\"npm_host_percentage\":0.0,\"lambda_invocations_usage\":0,\"fargate_percentage\":0.0,\"browser_percentage\":100.0,\"cws_containers_percentage\":0.0,\"custom_timeseries_usage\":76.63}}],\"metadata\":{\"pagination\":{\"sort_direction\":\"DESC\",\"sort_name\":\"custom_timeseries_usage\",\"limit\":1,\"total_number_of_records\":3,\"offset\":0},\"aggregates\":[{\"field\":\"custom_timeseries_usage\",\"value\":76.63,\"agg_type\":\"sum\"},{\"field\":\"container_usage\",\"value\":1.0,\"agg_type\":\"sum\"},{\"field\":\"snmp_percentage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"apm_host_usage\",\"value\":12.0,\"agg_type\":\"sum\"},{\"field\":\"browser_usage\",\"value\":368.0,\"agg_type\":\"sum\"},{\"field\":\"npm_host_percentage\",\"value\":100.0,\"agg_type\":\"sum\"},{\"field\":\"infra_host_usage\",\"value\":19.0,\"agg_type\":\"sum\"},{\"field\":\"custom_timeseries_percentage\",\"value\":100.0,\"agg_type\":\"sum\"},{\"field\":\"container_percentage\",\"value\":100.0,\"agg_type\":\"sum\"},{\"field\":\"api_usage\",\"value\":97173.0,\"agg_type\":\"sum\"},{\"field\":\"apm_host_percentage\",\"value\":100.0,\"agg_type\":\"sum\"},{\"field\":\"infra_host_percentage\",\"value\":100.0,\"agg_type\":\"sum\"},{\"field\":\"snmp_usage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"browser_percentage\",\"value\":100.0,\"agg_type\":\"sum\"},{\"field\":\"api_percentage\",\"value\":100.0,\"agg_type\":\"sum\"},{\"field\":\"npm_host_usage\",\"value\":18.0,\"agg_type\":\"sum\"},{\"field\":\"lambda_functions_usage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"lambda_functions_percentage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"lambda_invocations_usage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"lambda_invocations_percentage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"fargate_usage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"fargate_percentage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"profiled_host_usage\",\"value\":3.0,\"agg_type\":\"sum\"},{\"field\":\"profiled_host_percentage\",\"value\":100.0,\"agg_type\":\"sum\"},{\"field\":\"profiled_container_usage\",\"value\":1.45,\"agg_type\":\"sum\"},{\"field\":\"profiled_container_percentage\",\"value\":100.0,\"agg_type\":\"sum\"},{\"field\":\"cws_hosts_usage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"cws_hosts_percentage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"cws_containers_usage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"cws_containers_percentage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"cspm_hosts_usage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"cspm_hosts_percentage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"cspm_containers_usage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"cspm_containers_percentage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"dbm_hosts_usage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"dbm_hosts_percentage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"dbm_queries_usage\",\"value\":0.0,\"agg_type\":\"sum\"},{\"field\":\"dbm_queries_percentage\",\"value\":0.0,\"agg_type\":\"sum\"}]}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 23 May 2022 08:46:27 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/usage_metering/Paginate-Monthly-Usage-Attribution.json b/tests/scenarios/cassettes/v1/usage_metering/Paginate-Monthly-Usage-Attribution.json index 94e2100ef..e8c1aaf87 100644 --- a/tests/scenarios/cassettes/v1/usage_metering/Paginate-Monthly-Usage-Attribution.json +++ b/tests/scenarios/cassettes/v1/usage_metering/Paginate-Monthly-Usage-Attribution.json @@ -1 +1,61 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/monthly-attribution?start_month=2022-03-26T15%3A05%3A25.629Z&fields=infra_host_usage"}, "response": {"body": {"string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"updated_at\":\"2022-03-28T23:02:55Z\",\"month\":\"2022-03-01T00:00:00+00:00\",\"values\":{\"infra_host_usage\":15}}],\"metadata\":{\"pagination\":{\"next_record_id\":null},\"aggregates\":[{\"field\":\"infra_host_usage\",\"value\":15.0,\"agg_type\":\"sum\"}]}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 29 Mar 2022 15:05:25 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/usage/monthly-attribution?next_record_id=null&start_month=2022-03-26T15%3A05%3A25.629Z&fields=infra_host_usage"}, "response": {"body": {"string": "{\"usage\":[],\"metadata\":{\"pagination\":{\"next_record_id\":null},\"aggregates\":[{\"field\":\"infra_host_usage\",\"value\":15.0,\"agg_type\":\"sum\"}]}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 29 Mar 2022 15:05:25 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/monthly-attribution?start_month=2022-03-26T15%3A05%3A25.629Z&fields=infra_host_usage" + }, + "response": { + "body": { + "string": "{\"usage\":[{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"tag_config_source\":\"DD Integration Tests (321813):::project\",\"tags\":null,\"updated_at\":\"2022-03-28T23:02:55Z\",\"month\":\"2022-03-01T00:00:00+00:00\",\"values\":{\"infra_host_usage\":15}}],\"metadata\":{\"pagination\":{\"next_record_id\":null},\"aggregates\":[{\"field\":\"infra_host_usage\",\"value\":15.0,\"agg_type\":\"sum\"}]}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 29 Mar 2022 15:05:25 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/usage/monthly-attribution?next_record_id=null&start_month=2022-03-26T15%3A05%3A25.629Z&fields=infra_host_usage" + }, + "response": { + "body": { + "string": "{\"usage\":[],\"metadata\":{\"pagination\":{\"next_record_id\":null},\"aggregates\":[{\"field\":\"infra_host_usage\",\"value\":15.0,\"agg_type\":\"sum\"}]}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 29 Mar 2022 15:05:25 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/users/Create-a-user-returns-User-created-response-test.json b/tests/scenarios/cassettes/v1/users/Create-a-user-returns-User-created-response-test.json index 73b0ed056..575437b03 100644 --- a/tests/scenarios/cassettes/v1/users/Create-a-user-returns-User-created-response-test.json +++ b/tests/scenarios/cassettes/v1/users/Create-a-user-returns-User-created-response-test.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"access_role\":\"st\",\"disabled\":false,\"email\":\"test@datadoghq.com\",\"handle\":\"test@datadoghq.com\",\"name\":\"test user\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/user"}, "response": {"body": {"string": "{\"user\":{\"handle\":\"test@datadoghq.com\",\"name\":\"test user\",\"role\":null,\"title\":null,\"email\":\"test@datadoghq.com\",\"disabled\":false,\"access_role\":null,\"is_admin\":false,\"icon\":\"https://secure.gravatar.com/avatar/f979f58720feb88e09cc3d11ce3d15da?s=48&d=retro\",\"verified\":false}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 10 Jul 2023 18:57:28 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/user/test%40datadoghq.com"}, "response": {"body": {"string": "{\"message\":\"User test@datadoghq.com disabled\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 10 Jul 2023 18:57:28 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"access_role\":\"st\",\"disabled\":false,\"email\":\"test@datadoghq.com\",\"handle\":\"test@datadoghq.com\",\"name\":\"test user\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/user" + }, + "response": { + "body": { + "string": "{\"user\":{\"handle\":\"test@datadoghq.com\",\"name\":\"test user\",\"role\":null,\"title\":null,\"email\":\"test@datadoghq.com\",\"disabled\":false,\"access_role\":null,\"is_admin\":false,\"icon\":\"https://secure.gravatar.com/avatar/f979f58720feb88e09cc3d11ce3d15da?s=48&d=retro\",\"verified\":false}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 10 Jul 2023 18:57:28 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/user/test%40datadoghq.com" + }, + "response": { + "body": { + "string": "{\"message\":\"User test@datadoghq.com disabled\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 10 Jul 2023 18:57:28 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/users/Create-a-user-returns-null-access-role.json b/tests/scenarios/cassettes/v1/users/Create-a-user-returns-null-access-role.json index 951e7e0f2..1f527ffce 100644 --- a/tests/scenarios/cassettes/v1/users/Create-a-user-returns-null-access-role.json +++ b/tests/scenarios/cassettes/v1/users/Create-a-user-returns-null-access-role.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"access_role\":null,\"disabled\":false,\"email\":\"test@datadoghq.com\",\"handle\":\"test@datadoghq.com\",\"name\":\"test user\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/user"}, "response": {"body": {"string": "{\"user\":{\"handle\":\"test@datadoghq.com\",\"name\":\"test user\",\"role\":null,\"title\":null,\"email\":\"test@datadoghq.com\",\"disabled\":true,\"access_role\":null,\"is_admin\":false,\"icon\":\"https://secure.gravatar.com/avatar/f979f58720feb88e09cc3d11ce3d15da?s=48&d=retro\",\"verified\":false}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 10 Jul 2023 18:58:47 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/user/test%40datadoghq.com"}, "response": {"body": {"string": "{\"errors\":[\"User is already disabled\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Mon, 10 Jul 2023 18:58:47 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"access_role\":null,\"disabled\":false,\"email\":\"test@datadoghq.com\",\"handle\":\"test@datadoghq.com\",\"name\":\"test user\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/user" + }, + "response": { + "body": { + "string": "{\"user\":{\"handle\":\"test@datadoghq.com\",\"name\":\"test user\",\"role\":null,\"title\":null,\"email\":\"test@datadoghq.com\",\"disabled\":true,\"access_role\":null,\"is_admin\":false,\"icon\":\"https://secure.gravatar.com/avatar/f979f58720feb88e09cc3d11ce3d15da?s=48&d=retro\",\"verified\":false}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 10 Jul 2023 18:58:47 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/user/test%40datadoghq.com" + }, + "response": { + "body": { + "string": "{\"errors\":[\"User is already disabled\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Mon, 10 Jul 2023 18:58:47 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/webhooks_integration/Create-a-custom-variable-returns-OK-response.json b/tests/scenarios/cassettes/v1/webhooks_integration/Create-a-custom-variable-returns-OK-response.json index fc4021510..41afab6e6 100644 --- a/tests/scenarios/cassettes/v1/webhooks_integration/Create-a-custom-variable-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/webhooks_integration/Create-a-custom-variable-returns-OK-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"is_secret\":true,\"name\":\"TESTCREATEACUSTOMVARIABLERETURNSOKRESPONSE1652349031\",\"value\":\"CUSTOM_VARIABLE_VALUE\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/custom-variables"}, "response": {"body": {"string": "{\"is_secret\":true,\"name\":\"TESTCREATEACUSTOMVARIABLERETURNSOKRESPONSE1652349031\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:50:31 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/custom-variables/TESTCREATEACUSTOMVARIABLERETURNSOKRESPONSE1652349031"}, "response": {"body": {"string": "{}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:31 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"is_secret\":true,\"name\":\"TESTCREATEACUSTOMVARIABLERETURNSOKRESPONSE1652349031\",\"value\":\"CUSTOM_VARIABLE_VALUE\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/custom-variables" + }, + "response": { + "body": { + "string": "{\"is_secret\":true,\"name\":\"TESTCREATEACUSTOMVARIABLERETURNSOKRESPONSE1652349031\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:31 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/custom-variables/TESTCREATEACUSTOMVARIABLERETURNSOKRESPONSE1652349031" + }, + "response": { + "body": { + "string": "{}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:31 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/webhooks_integration/Create-a-webhooks-integration-returns-OK-response.json b/tests/scenarios/cassettes/v1/webhooks_integration/Create-a-webhooks-integration-returns-OK-response.json index ec6b1a5d9..853fdb7a4 100644 --- a/tests/scenarios/cassettes/v1/webhooks_integration/Create-a-webhooks-integration-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/webhooks_integration/Create-a-webhooks-integration-returns-OK-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Create_a_webhooks_integration_returns_OK_response-1652349037\",\"url\":\"https://example.com/webhook\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/webhooks"}, "response": {"body": {"string": "{\"encode_as\":\"json\",\"url\":\"https://example.com/webhook\",\"custom_headers\":null,\"name\":\"Test-Create_a_webhooks_integration_returns_OK_response-1652349037\",\"payload\":\"{\\\"body\\\": \\\"$EVENT_MSG\\\", \\\"last_updated\\\": \\\"$LAST_UPDATED\\\", \\\"event_type\\\": \\\"$EVENT_TYPE\\\", \\\"title\\\": \\\"$EVENT_TITLE\\\", \\\"date\\\": \\\"$DATE\\\", \\\"org\\\": {\\\"id\\\": \\\"$ORG_ID\\\", \\\"name\\\": \\\"$ORG_NAME\\\"}, \\\"id\\\": \\\"$ID\\\"}\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:50:37 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/webhooks/Test-Create_a_webhooks_integration_returns_OK_response-1652349037"}, "response": {"body": {"string": "{}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:37 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Create_a_webhooks_integration_returns_OK_response-1652349037\",\"url\":\"https://example.com/webhook\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/webhooks" + }, + "response": { + "body": { + "string": "{\"encode_as\":\"json\",\"url\":\"https://example.com/webhook\",\"custom_headers\":null,\"name\":\"Test-Create_a_webhooks_integration_returns_OK_response-1652349037\",\"payload\":\"{\\\"body\\\": \\\"$EVENT_MSG\\\", \\\"last_updated\\\": \\\"$LAST_UPDATED\\\", \\\"event_type\\\": \\\"$EVENT_TYPE\\\", \\\"title\\\": \\\"$EVENT_TITLE\\\", \\\"date\\\": \\\"$DATE\\\", \\\"org\\\": {\\\"id\\\": \\\"$ORG_ID\\\", \\\"name\\\": \\\"$ORG_NAME\\\"}, \\\"id\\\": \\\"$ID\\\"}\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:37 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/webhooks/Test-Create_a_webhooks_integration_returns_OK_response-1652349037" + }, + "response": { + "body": { + "string": "{}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:37 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/webhooks_integration/Delete-a-custom-variable-returns-OK-response.json b/tests/scenarios/cassettes/v1/webhooks_integration/Delete-a-custom-variable-returns-OK-response.json index ac73195e7..cd72a8f70 100644 --- a/tests/scenarios/cassettes/v1/webhooks_integration/Delete-a-custom-variable-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/webhooks_integration/Delete-a-custom-variable-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"is_secret\":false,\"name\":\"TESTDELETEACUSTOMVARIABLERETURNSOKRESPONSE1652349041\",\"value\":\"variable-value\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/custom-variables"}, "response": {"body": {"string": "{\"is_secret\":false,\"name\":\"TESTDELETEACUSTOMVARIABLERETURNSOKRESPONSE1652349041\",\"value\":\"variable-value\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:50:41 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/custom-variables/TESTDELETEACUSTOMVARIABLERETURNSOKRESPONSE1652349041"}, "response": {"body": {"string": "{}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:41 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/custom-variables/TESTDELETEACUSTOMVARIABLERETURNSOKRESPONSE1652349041"}, "response": {"body": {"string": "{\"errors\": [\"Custom variable does not exist\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 12 May 2022 09:50:41 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"is_secret\":false,\"name\":\"TESTDELETEACUSTOMVARIABLERETURNSOKRESPONSE1652349041\",\"value\":\"variable-value\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/custom-variables" + }, + "response": { + "body": { + "string": "{\"is_secret\":false,\"name\":\"TESTDELETEACUSTOMVARIABLERETURNSOKRESPONSE1652349041\",\"value\":\"variable-value\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:41 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/custom-variables/TESTDELETEACUSTOMVARIABLERETURNSOKRESPONSE1652349041" + }, + "response": { + "body": { + "string": "{}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:41 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/custom-variables/TESTDELETEACUSTOMVARIABLERETURNSOKRESPONSE1652349041" + }, + "response": { + "body": { + "string": "{\"errors\": [\"Custom variable does not exist\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:41 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/webhooks_integration/Delete-a-webhook-returns-OK-response.json b/tests/scenarios/cassettes/v1/webhooks_integration/Delete-a-webhook-returns-OK-response.json index 63ec986d7..c5cd96074 100644 --- a/tests/scenarios/cassettes/v1/webhooks_integration/Delete-a-webhook-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/webhooks_integration/Delete-a-webhook-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Delete_a_webhook_returns_OK_response-1652349047\",\"url\":\"http://example.com/webhook\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/webhooks"}, "response": {"body": {"string": "{\"encode_as\":\"json\",\"url\":\"http://example.com/webhook\",\"custom_headers\":null,\"name\":\"Test-Delete_a_webhook_returns_OK_response-1652349047\",\"payload\":\"{\\\"body\\\": \\\"$EVENT_MSG\\\", \\\"last_updated\\\": \\\"$LAST_UPDATED\\\", \\\"event_type\\\": \\\"$EVENT_TYPE\\\", \\\"title\\\": \\\"$EVENT_TITLE\\\", \\\"date\\\": \\\"$DATE\\\", \\\"org\\\": {\\\"id\\\": \\\"$ORG_ID\\\", \\\"name\\\": \\\"$ORG_NAME\\\"}, \\\"id\\\": \\\"$ID\\\"}\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:50:47 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/webhooks/Test-Delete_a_webhook_returns_OK_response-1652349047"}, "response": {"body": {"string": "{}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:47 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/webhooks/Test-Delete_a_webhook_returns_OK_response-1652349047"}, "response": {"body": {"string": "{\"errors\": [\"Webhook does not exist\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 12 May 2022 09:50:47 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Delete_a_webhook_returns_OK_response-1652349047\",\"url\":\"http://example.com/webhook\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/webhooks" + }, + "response": { + "body": { + "string": "{\"encode_as\":\"json\",\"url\":\"http://example.com/webhook\",\"custom_headers\":null,\"name\":\"Test-Delete_a_webhook_returns_OK_response-1652349047\",\"payload\":\"{\\\"body\\\": \\\"$EVENT_MSG\\\", \\\"last_updated\\\": \\\"$LAST_UPDATED\\\", \\\"event_type\\\": \\\"$EVENT_TYPE\\\", \\\"title\\\": \\\"$EVENT_TITLE\\\", \\\"date\\\": \\\"$DATE\\\", \\\"org\\\": {\\\"id\\\": \\\"$ORG_ID\\\", \\\"name\\\": \\\"$ORG_NAME\\\"}, \\\"id\\\": \\\"$ID\\\"}\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:47 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/webhooks/Test-Delete_a_webhook_returns_OK_response-1652349047" + }, + "response": { + "body": { + "string": "{}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:47 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/webhooks/Test-Delete_a_webhook_returns_OK_response-1652349047" + }, + "response": { + "body": { + "string": "{\"errors\": [\"Webhook does not exist\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:47 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/webhooks_integration/Get-a-webhook-integration-returns-OK-response.json b/tests/scenarios/cassettes/v1/webhooks_integration/Get-a-webhook-integration-returns-OK-response.json index f1141bc44..90ab8e3fd 100644 --- a/tests/scenarios/cassettes/v1/webhooks_integration/Get-a-webhook-integration-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/webhooks_integration/Get-a-webhook-integration-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Get_a_webhook_integration_returns_OK_response-1652349051\",\"url\":\"http://example.com/webhook\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/webhooks"}, "response": {"body": {"string": "{\"encode_as\":\"json\",\"url\":\"http://example.com/webhook\",\"custom_headers\":null,\"name\":\"Test-Get_a_webhook_integration_returns_OK_response-1652349051\",\"payload\":\"{\\\"body\\\": \\\"$EVENT_MSG\\\", \\\"last_updated\\\": \\\"$LAST_UPDATED\\\", \\\"event_type\\\": \\\"$EVENT_TYPE\\\", \\\"title\\\": \\\"$EVENT_TITLE\\\", \\\"date\\\": \\\"$DATE\\\", \\\"org\\\": {\\\"id\\\": \\\"$ORG_ID\\\", \\\"name\\\": \\\"$ORG_NAME\\\"}, \\\"id\\\": \\\"$ID\\\"}\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:50:51 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/webhooks/Test-Get_a_webhook_integration_returns_OK_response-1652349051"}, "response": {"body": {"string": "{\"encode_as\":\"json\",\"url\":\"http://example.com/webhook\",\"custom_headers\":null,\"name\":\"Test-Get_a_webhook_integration_returns_OK_response-1652349051\",\"payload\":\"{\\\"body\\\": \\\"$EVENT_MSG\\\", \\\"last_updated\\\": \\\"$LAST_UPDATED\\\", \\\"event_type\\\": \\\"$EVENT_TYPE\\\", \\\"title\\\": \\\"$EVENT_TITLE\\\", \\\"date\\\": \\\"$DATE\\\", \\\"org\\\": {\\\"id\\\": \\\"$ORG_ID\\\", \\\"name\\\": \\\"$ORG_NAME\\\"}, \\\"id\\\": \\\"$ID\\\"}\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:51 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/webhooks/Test-Get_a_webhook_integration_returns_OK_response-1652349051"}, "response": {"body": {"string": "{}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:51 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Get_a_webhook_integration_returns_OK_response-1652349051\",\"url\":\"http://example.com/webhook\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/webhooks" + }, + "response": { + "body": { + "string": "{\"encode_as\":\"json\",\"url\":\"http://example.com/webhook\",\"custom_headers\":null,\"name\":\"Test-Get_a_webhook_integration_returns_OK_response-1652349051\",\"payload\":\"{\\\"body\\\": \\\"$EVENT_MSG\\\", \\\"last_updated\\\": \\\"$LAST_UPDATED\\\", \\\"event_type\\\": \\\"$EVENT_TYPE\\\", \\\"title\\\": \\\"$EVENT_TITLE\\\", \\\"date\\\": \\\"$DATE\\\", \\\"org\\\": {\\\"id\\\": \\\"$ORG_ID\\\", \\\"name\\\": \\\"$ORG_NAME\\\"}, \\\"id\\\": \\\"$ID\\\"}\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:51 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/webhooks/Test-Get_a_webhook_integration_returns_OK_response-1652349051" + }, + "response": { + "body": { + "string": "{\"encode_as\":\"json\",\"url\":\"http://example.com/webhook\",\"custom_headers\":null,\"name\":\"Test-Get_a_webhook_integration_returns_OK_response-1652349051\",\"payload\":\"{\\\"body\\\": \\\"$EVENT_MSG\\\", \\\"last_updated\\\": \\\"$LAST_UPDATED\\\", \\\"event_type\\\": \\\"$EVENT_TYPE\\\", \\\"title\\\": \\\"$EVENT_TITLE\\\", \\\"date\\\": \\\"$DATE\\\", \\\"org\\\": {\\\"id\\\": \\\"$ORG_ID\\\", \\\"name\\\": \\\"$ORG_NAME\\\"}, \\\"id\\\": \\\"$ID\\\"}\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:51 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/webhooks/Test-Get_a_webhook_integration_returns_OK_response-1652349051" + }, + "response": { + "body": { + "string": "{}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:51 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/webhooks_integration/Update-a-custom-variable-returns-OK-response.json b/tests/scenarios/cassettes/v1/webhooks_integration/Update-a-custom-variable-returns-OK-response.json index 513d59189..b024c36e0 100644 --- a/tests/scenarios/cassettes/v1/webhooks_integration/Update-a-custom-variable-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/webhooks_integration/Update-a-custom-variable-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"is_secret\":false,\"name\":\"TESTUPDATEACUSTOMVARIABLERETURNSOKRESPONSE1652349056\",\"value\":\"variable-value\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/custom-variables"}, "response": {"body": {"string": "{\"is_secret\":false,\"name\":\"TESTUPDATEACUSTOMVARIABLERETURNSOKRESPONSE1652349056\",\"value\":\"variable-value\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:50:56 GMT"}, {"request": {"body": {"string": "{\"value\":\"variable-updated\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "put", "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/custom-variables/TESTUPDATEACUSTOMVARIABLERETURNSOKRESPONSE1652349056"}, "response": {"body": {"string": "{\"is_secret\":false,\"name\":\"TESTUPDATEACUSTOMVARIABLERETURNSOKRESPONSE1652349056\",\"value\":\"variable-updated\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:56 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/custom-variables/TESTUPDATEACUSTOMVARIABLERETURNSOKRESPONSE1652349056"}, "response": {"body": {"string": "{}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:50:56 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"is_secret\":false,\"name\":\"TESTUPDATEACUSTOMVARIABLERETURNSOKRESPONSE1652349056\",\"value\":\"variable-value\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/custom-variables" + }, + "response": { + "body": { + "string": "{\"is_secret\":false,\"name\":\"TESTUPDATEACUSTOMVARIABLERETURNSOKRESPONSE1652349056\",\"value\":\"variable-value\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:56 GMT" + }, + { + "request": { + "body": { + "string": "{\"value\":\"variable-updated\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/custom-variables/TESTUPDATEACUSTOMVARIABLERETURNSOKRESPONSE1652349056" + }, + "response": { + "body": { + "string": "{\"is_secret\":false,\"name\":\"TESTUPDATEACUSTOMVARIABLERETURNSOKRESPONSE1652349056\",\"value\":\"variable-updated\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:56 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/custom-variables/TESTUPDATEACUSTOMVARIABLERETURNSOKRESPONSE1652349056" + }, + "response": { + "body": { + "string": "{}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:50:56 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/webhooks_integration/Update-a-webhook-returns-OK-response.json b/tests/scenarios/cassettes/v1/webhooks_integration/Update-a-webhook-returns-OK-response.json index a0850411f..1de9e12d3 100644 --- a/tests/scenarios/cassettes/v1/webhooks_integration/Update-a-webhook-returns-OK-response.json +++ b/tests/scenarios/cassettes/v1/webhooks_integration/Update-a-webhook-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Update_a_webhook_returns_OK_response-1652349062\",\"url\":\"http://example.com/webhook\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/webhooks"}, "response": {"body": {"string": "{\"encode_as\":\"json\",\"url\":\"http://example.com/webhook\",\"custom_headers\":null,\"name\":\"Test-Update_a_webhook_returns_OK_response-1652349062\",\"payload\":\"{\\\"body\\\": \\\"$EVENT_MSG\\\", \\\"last_updated\\\": \\\"$LAST_UPDATED\\\", \\\"event_type\\\": \\\"$EVENT_TYPE\\\", \\\"title\\\": \\\"$EVENT_TITLE\\\", \\\"date\\\": \\\"$DATE\\\", \\\"org\\\": {\\\"id\\\": \\\"$ORG_ID\\\", \\\"name\\\": \\\"$ORG_NAME\\\"}, \\\"id\\\": \\\"$ID\\\"}\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:51:02 GMT"}, {"request": {"body": {"string": "{\"url\":\"https://example.com/webhook-updated\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "put", "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/webhooks/Test-Update_a_webhook_returns_OK_response-1652349062"}, "response": {"body": {"string": "{\"encode_as\":\"json\",\"url\":\"https://example.com/webhook-updated\",\"custom_headers\":null,\"name\":\"Test-Update_a_webhook_returns_OK_response-1652349062\",\"payload\":\"{\\\"body\\\": \\\"$EVENT_MSG\\\", \\\"last_updated\\\": \\\"$LAST_UPDATED\\\", \\\"event_type\\\": \\\"$EVENT_TYPE\\\", \\\"title\\\": \\\"$EVENT_TITLE\\\", \\\"date\\\": \\\"$DATE\\\", \\\"org\\\": {\\\"id\\\": \\\"$ORG_ID\\\", \\\"name\\\": \\\"$ORG_NAME\\\"}, \\\"id\\\": \\\"$ID\\\"}\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:51:02 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/webhooks/Test-Update_a_webhook_returns_OK_response-1652349062"}, "response": {"body": {"string": "{}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:51:02 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Update_a_webhook_returns_OK_response-1652349062\",\"url\":\"http://example.com/webhook\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/webhooks" + }, + "response": { + "body": { + "string": "{\"encode_as\":\"json\",\"url\":\"http://example.com/webhook\",\"custom_headers\":null,\"name\":\"Test-Update_a_webhook_returns_OK_response-1652349062\",\"payload\":\"{\\\"body\\\": \\\"$EVENT_MSG\\\", \\\"last_updated\\\": \\\"$LAST_UPDATED\\\", \\\"event_type\\\": \\\"$EVENT_TYPE\\\", \\\"title\\\": \\\"$EVENT_TITLE\\\", \\\"date\\\": \\\"$DATE\\\", \\\"org\\\": {\\\"id\\\": \\\"$ORG_ID\\\", \\\"name\\\": \\\"$ORG_NAME\\\"}, \\\"id\\\": \\\"$ID\\\"}\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:02 GMT" + }, + { + "request": { + "body": { + "string": "{\"url\":\"https://example.com/webhook-updated\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/webhooks/Test-Update_a_webhook_returns_OK_response-1652349062" + }, + "response": { + "body": { + "string": "{\"encode_as\":\"json\",\"url\":\"https://example.com/webhook-updated\",\"custom_headers\":null,\"name\":\"Test-Update_a_webhook_returns_OK_response-1652349062\",\"payload\":\"{\\\"body\\\": \\\"$EVENT_MSG\\\", \\\"last_updated\\\": \\\"$LAST_UPDATED\\\", \\\"event_type\\\": \\\"$EVENT_TYPE\\\", \\\"title\\\": \\\"$EVENT_TITLE\\\", \\\"date\\\": \\\"$DATE\\\", \\\"org\\\": {\\\"id\\\": \\\"$ORG_ID\\\", \\\"name\\\": \\\"$ORG_NAME\\\"}, \\\"id\\\": \\\"$ID\\\"}\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:02 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/integration/webhooks/configuration/webhooks/Test-Update_a_webhook_returns_OK_response-1652349062" + }, + "response": { + "body": { + "string": "{}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:02 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/apm_retention_filters/Create-a-retention-filter-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/apm_retention_filters/Create-a-retention-filter-returns-Bad-Request-response.json index a9baf0780..a26adabc8 100644 --- a/tests/scenarios/cassettes/v2/apm_retention_filters/Create-a-retention-filter-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/apm_retention_filters/Create-a-retention-filter-returns-Bad-Request-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"enabled\":true,\"filter\":{\"query\":\"@http.status_code:200 service:my-service\"},\"filter_type\":\"spans-sampling-processor\",\"name\":\"my retention filter\",\"rate\":2},\"type\":\"apm_retention_filter\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters"}, "response": {"body": {"string": "{\"errors\":[\"Invalid Pipeline\",\"'rate' must exist and be between 0 and 1\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Thu, 21 Sep 2023 16:39:02 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":true,\"filter\":{\"query\":\"@http.status_code:200 service:my-service\"},\"filter_type\":\"spans-sampling-processor\",\"name\":\"my retention filter\",\"rate\":2},\"type\":\"apm_retention_filter\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Invalid Pipeline\",\"'rate' must exist and be between 0 and 1\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Thu, 21 Sep 2023 16:39:02 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/apm_retention_filters/Create-a-retention-filter-returns-OK-response.json b/tests/scenarios/cassettes/v2/apm_retention_filters/Create-a-retention-filter-returns-OK-response.json index f8eb853da..4c1cf03e4 100644 --- a/tests/scenarios/cassettes/v2/apm_retention_filters/Create-a-retention-filter-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/apm_retention_filters/Create-a-retention-filter-returns-OK-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"enabled\":true,\"filter\":{\"query\":\"@http.status_code:200 service:my-service\"},\"filter_type\":\"spans-sampling-processor\",\"name\":\"my retention filter\",\"rate\":1},\"type\":\"apm_retention_filter\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters"}, "response": {"body": {"string": "{\"data\":{\"id\":\"kkZkTzFaR_Oy4OWzOJQbcw\",\"attributes\":{\"name\":\"my retention filter\",\"rate\":1.0,\"enabled\":true,\"filter_type\":\"spans-sampling-processor\",\"filter\":{\"query\":\"@http.status_code:200 service:my-service\"},\"editable\":true,\"modified_by\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"modified_at\":1697718481,\"created_by\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"created_at\":1697718481},\"type\":\"apm_retention_filter\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 19 Oct 2023 12:28:01 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/kkZkTzFaR_Oy4OWzOJQbcw"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 19 Oct 2023 12:28:01 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":true,\"filter\":{\"query\":\"@http.status_code:200 service:my-service\"},\"filter_type\":\"spans-sampling-processor\",\"name\":\"my retention filter\",\"rate\":1},\"type\":\"apm_retention_filter\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"kkZkTzFaR_Oy4OWzOJQbcw\",\"attributes\":{\"name\":\"my retention filter\",\"rate\":1.0,\"enabled\":true,\"filter_type\":\"spans-sampling-processor\",\"filter\":{\"query\":\"@http.status_code:200 service:my-service\"},\"editable\":true,\"modified_by\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"modified_at\":1697718481,\"created_by\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"created_at\":1697718481},\"type\":\"apm_retention_filter\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 19 Oct 2023 12:28:01 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/kkZkTzFaR_Oy4OWzOJQbcw" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 19 Oct 2023 12:28:01 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/apm_retention_filters/Delete-a-retention-filter-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/apm_retention_filters/Delete-a-retention-filter-returns-Not-Found-response.json index 21165471b..c22d2593d 100644 --- a/tests/scenarios/cassettes/v2/apm_retention_filters/Delete-a-retention-filter-returns-Not-Found-response.json +++ b/tests/scenarios/cassettes/v2/apm_retention_filters/Delete-a-retention-filter-returns-Not-Found-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/not_found"}, "response": {"body": {"string": "{\"errors\":[\"retention filter with id: 'not_found' not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Wed, 06 Sep 2023 23:15:15 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/not_found" + }, + "response": { + "body": { + "string": "{\"errors\":[\"retention filter with id: 'not_found' not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Wed, 06 Sep 2023 23:15:15 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/apm_retention_filters/Delete-a-retention-filter-returns-OK-response.json b/tests/scenarios/cassettes/v2/apm_retention_filters/Delete-a-retention-filter-returns-OK-response.json index 36401ecef..8b04030e9 100644 --- a/tests/scenarios/cassettes/v2/apm_retention_filters/Delete-a-retention-filter-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/apm_retention_filters/Delete-a-retention-filter-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"enabled\":true,\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"filter_type\":\"spans-sampling-processor\",\"name\":\"demo retention filter\",\"rate\":0.9},\"type\":\"apm_retention_filter\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters"}, "response": {"body": {"string": "{\"data\":{\"id\":\"ErO5dcpeRPmDWbmrryfpYQ\",\"attributes\":{\"name\":\"demo retention filter\",\"rate\":0.9,\"enabled\":true,\"filter_type\":\"spans-sampling-processor\",\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"modified_by\":\"frog@datadoghq.com\",\"modified_at\":1695118296,\"created_by\":\"frog@datadoghq.com\",\"created_at\":1695118296,\"editable\":true},\"type\":\"apm_retention_filter\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 19 Sep 2023 10:11:35 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/ErO5dcpeRPmDWbmrryfpYQ"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 19 Sep 2023 10:11:35 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/ErO5dcpeRPmDWbmrryfpYQ"}, "response": {"body": {"string": "{\"errors\":[\"retention filter with id: 'ErO5dcpeRPmDWbmrryfpYQ' not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Tue, 19 Sep 2023 10:11:35 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":true,\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"filter_type\":\"spans-sampling-processor\",\"name\":\"demo retention filter\",\"rate\":0.9},\"type\":\"apm_retention_filter\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"ErO5dcpeRPmDWbmrryfpYQ\",\"attributes\":{\"name\":\"demo retention filter\",\"rate\":0.9,\"enabled\":true,\"filter_type\":\"spans-sampling-processor\",\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"modified_by\":\"frog@datadoghq.com\",\"modified_at\":1695118296,\"created_by\":\"frog@datadoghq.com\",\"created_at\":1695118296,\"editable\":true},\"type\":\"apm_retention_filter\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 19 Sep 2023 10:11:35 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/ErO5dcpeRPmDWbmrryfpYQ" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 19 Sep 2023 10:11:35 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/ErO5dcpeRPmDWbmrryfpYQ" + }, + "response": { + "body": { + "string": "{\"errors\":[\"retention filter with id: 'ErO5dcpeRPmDWbmrryfpYQ' not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Tue, 19 Sep 2023 10:11:35 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/apm_retention_filters/Get-a-given-APM-retention-filter-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/apm_retention_filters/Get-a-given-APM-retention-filter-returns-Not-Found-response.json index 36e49ecbe..2e5c35abe 100644 --- a/tests/scenarios/cassettes/v2/apm_retention_filters/Get-a-given-APM-retention-filter-returns-Not-Found-response.json +++ b/tests/scenarios/cassettes/v2/apm_retention_filters/Get-a-given-APM-retention-filter-returns-Not-Found-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/REPLACE.ME"}, "response": {"body": {"string": "{\"errors\":[\"retention filter with id: 'REPLACE.ME' not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 28 Sep 2023 08:19:42 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/REPLACE.ME" + }, + "response": { + "body": { + "string": "{\"errors\":[\"retention filter with id: 'REPLACE.ME' not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 28 Sep 2023 08:19:42 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/apm_retention_filters/Get-a-given-APM-retention-filter-returns-OK-response.json b/tests/scenarios/cassettes/v2/apm_retention_filters/Get-a-given-APM-retention-filter-returns-OK-response.json index 311bbac5b..511bdfee8 100644 --- a/tests/scenarios/cassettes/v2/apm_retention_filters/Get-a-given-APM-retention-filter-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/apm_retention_filters/Get-a-given-APM-retention-filter-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"enabled\":true,\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"filter_type\":\"spans-sampling-processor\",\"name\":\"demo retention filter\",\"rate\":0.9},\"type\":\"apm_retention_filter\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters"}, "response": {"body": {"string": "{\"data\":{\"id\":\"FaVuDNMERS25j8w4QWTwzg\",\"attributes\":{\"name\":\"demo retention filter\",\"rate\":0.9,\"enabled\":true,\"filter_type\":\"spans-sampling-processor\",\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"editable\":true,\"modified_by\":\"frog@datadoghq.com\",\"modified_at\":1695889183,\"created_by\":\"frog@datadoghq.com\",\"created_at\":1695889183},\"type\":\"apm_retention_filter\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 28 Sep 2023 08:19:43 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/FaVuDNMERS25j8w4QWTwzg"}, "response": {"body": {"string": "{\"data\":{\"id\":\"FaVuDNMERS25j8w4QWTwzg\",\"attributes\":{\"name\":\"demo retention filter\",\"rate\":0.9,\"enabled\":true,\"filter_type\":\"spans-sampling-processor\",\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"editable\":true,\"modified_by\":\"frog@datadoghq.com\",\"modified_at\":1695889183,\"created_by\":\"frog@datadoghq.com\",\"created_at\":1695889183},\"type\":\"apm_retention_filter\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 28 Sep 2023 08:19:43 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/FaVuDNMERS25j8w4QWTwzg"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 28 Sep 2023 08:19:43 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":true,\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"filter_type\":\"spans-sampling-processor\",\"name\":\"demo retention filter\",\"rate\":0.9},\"type\":\"apm_retention_filter\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"FaVuDNMERS25j8w4QWTwzg\",\"attributes\":{\"name\":\"demo retention filter\",\"rate\":0.9,\"enabled\":true,\"filter_type\":\"spans-sampling-processor\",\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"editable\":true,\"modified_by\":\"frog@datadoghq.com\",\"modified_at\":1695889183,\"created_by\":\"frog@datadoghq.com\",\"created_at\":1695889183},\"type\":\"apm_retention_filter\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 28 Sep 2023 08:19:43 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/FaVuDNMERS25j8w4QWTwzg" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"FaVuDNMERS25j8w4QWTwzg\",\"attributes\":{\"name\":\"demo retention filter\",\"rate\":0.9,\"enabled\":true,\"filter_type\":\"spans-sampling-processor\",\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"editable\":true,\"modified_by\":\"frog@datadoghq.com\",\"modified_at\":1695889183,\"created_by\":\"frog@datadoghq.com\",\"created_at\":1695889183},\"type\":\"apm_retention_filter\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 28 Sep 2023 08:19:43 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/FaVuDNMERS25j8w4QWTwzg" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 28 Sep 2023 08:19:43 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/apm_retention_filters/List-all-APM-retention-filters-returns-OK-response.json b/tests/scenarios/cassettes/v2/apm_retention_filters/List-all-APM-retention-filters-returns-OK-response.json index 1f2aec2a3..9a5ca2c84 100644 --- a/tests/scenarios/cassettes/v2/apm_retention_filters/List-all-APM-retention-filters-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/apm_retention_filters/List-all-APM-retention-filters-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"enabled\":true,\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"filter_type\":\"spans-sampling-processor\",\"name\":\"demo retention filter\",\"rate\":0.9},\"type\":\"apm_retention_filter\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters"}, "response": {"body": {"string": "{\"data\":{\"id\":\"-v1Gd2orR3G29xzbVzy6lQ\",\"attributes\":{\"name\":\"demo retention filter\",\"rate\":0.9,\"enabled\":true,\"filter_type\":\"spans-sampling-processor\",\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"editable\":true,\"modified_by\":\"frog@datadoghq.com\",\"modified_at\":1695635854,\"created_by\":\"frog@datadoghq.com\",\"created_at\":1695635854},\"type\":\"apm_retention_filter\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 25 Sep 2023 09:57:23 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"jdZrilSJQLqzb6Cu7aub9Q\",\"attributes\":{\"name\":\"Application Security Monitoring Default\",\"rate\":1.0,\"enabled\":false,\"filter_type\":\"spans-appsec-sampling-processor\",\"filter\":{\"query\":\"@appsec.event:true\"},\"editable\":false,\"execution_order\":1},\"type\":\"apm_retention_filter\"},{\"id\":\"7RBOb7dLSYWI01yc3pIH8w\",\"attributes\":{\"name\":\"Error Default\",\"rate\":1.0,\"enabled\":true,\"filter_type\":\"spans-errors-sampling-processor\",\"filter\":{\"query\":\"status:error\"},\"editable\":false,\"execution_order\":2},\"type\":\"apm_retention_filter\"},{\"id\":\"-v1Gd2orR3G29xzbVzy6lQ\",\"attributes\":{\"name\":\"demo retention filter\",\"rate\":0.9,\"enabled\":true,\"filter_type\":\"spans-sampling-processor\",\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"editable\":true,\"execution_order\":3,\"modified_by\":\"frog@datadoghq.com\",\"modified_at\":1695635854,\"created_by\":\"frog@datadoghq.com\",\"created_at\":1695635854},\"type\":\"apm_retention_filter\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 25 Sep 2023 09:57:23 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/-v1Gd2orR3G29xzbVzy6lQ"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 25 Sep 2023 09:57:23 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":true,\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"filter_type\":\"spans-sampling-processor\",\"name\":\"demo retention filter\",\"rate\":0.9},\"type\":\"apm_retention_filter\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"-v1Gd2orR3G29xzbVzy6lQ\",\"attributes\":{\"name\":\"demo retention filter\",\"rate\":0.9,\"enabled\":true,\"filter_type\":\"spans-sampling-processor\",\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"editable\":true,\"modified_by\":\"frog@datadoghq.com\",\"modified_at\":1695635854,\"created_by\":\"frog@datadoghq.com\",\"created_at\":1695635854},\"type\":\"apm_retention_filter\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 25 Sep 2023 09:57:23 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"jdZrilSJQLqzb6Cu7aub9Q\",\"attributes\":{\"name\":\"Application Security Monitoring Default\",\"rate\":1.0,\"enabled\":false,\"filter_type\":\"spans-appsec-sampling-processor\",\"filter\":{\"query\":\"@appsec.event:true\"},\"editable\":false,\"execution_order\":1},\"type\":\"apm_retention_filter\"},{\"id\":\"7RBOb7dLSYWI01yc3pIH8w\",\"attributes\":{\"name\":\"Error Default\",\"rate\":1.0,\"enabled\":true,\"filter_type\":\"spans-errors-sampling-processor\",\"filter\":{\"query\":\"status:error\"},\"editable\":false,\"execution_order\":2},\"type\":\"apm_retention_filter\"},{\"id\":\"-v1Gd2orR3G29xzbVzy6lQ\",\"attributes\":{\"name\":\"demo retention filter\",\"rate\":0.9,\"enabled\":true,\"filter_type\":\"spans-sampling-processor\",\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"editable\":true,\"execution_order\":3,\"modified_by\":\"frog@datadoghq.com\",\"modified_at\":1695635854,\"created_by\":\"frog@datadoghq.com\",\"created_at\":1695635854},\"type\":\"apm_retention_filter\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 25 Sep 2023 09:57:23 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/-v1Gd2orR3G29xzbVzy6lQ" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 25 Sep 2023 09:57:23 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/apm_retention_filters/Re-order-retention-filters-returns-OK-response.json b/tests/scenarios/cassettes/v2/apm_retention_filters/Re-order-retention-filters-returns-OK-response.json index 2c442adab..a7ef40df4 100644 --- a/tests/scenarios/cassettes/v2/apm_retention_filters/Re-order-retention-filters-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/apm_retention_filters/Re-order-retention-filters-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":[{\"id\":\"jdZrilSJQLqzb6Cu7aub9Q\",\"type\":\"apm_retention_filter\"},{\"id\":\"7RBOb7dLSYWI01yc3pIH8w\",\"type\":\"apm_retention_filter\"}]}", "encoding": null}, "headers": {"Accept": ["*/*"], "Content-Type": ["application/json"]}, "method": "put", "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters-execution-order"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 25 Sep 2023 11:39:25 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":[{\"id\":\"jdZrilSJQLqzb6Cu7aub9Q\",\"type\":\"apm_retention_filter\"},{\"id\":\"7RBOb7dLSYWI01yc3pIH8w\",\"type\":\"apm_retention_filter\"}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "*/*" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters-execution-order" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 25 Sep 2023 11:39:25 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/apm_retention_filters/Update-a-retention-filter-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/apm_retention_filters/Update-a-retention-filter-returns-Bad-Request-response.json index 96337f3c4..70819738a 100644 --- a/tests/scenarios/cassettes/v2/apm_retention_filters/Update-a-retention-filter-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/apm_retention_filters/Update-a-retention-filter-returns-Bad-Request-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"enabled\":true,\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"filter_type\":\"spans-sampling-processor\",\"name\":\"demo retention filter\",\"rate\":0.9},\"type\":\"apm_retention_filter\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters"}, "response": {"body": {"string": "{\"data\":{\"id\":\"WvfydouzRnOdrIHZny7nrg\",\"attributes\":{\"name\":\"demo retention filter\",\"rate\":0.9,\"enabled\":true,\"filter_type\":\"spans-sampling-processor\",\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"modified_by\":\"frog@datadoghq.com\",\"modified_at\":1695314343,\"created_by\":\"frog@datadoghq.com\",\"created_at\":1695314343,\"editable\":true},\"type\":\"apm_retention_filter\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 21 Sep 2023 16:39:03 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"enabled\":true,\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"filter_type\":\"spans-sampling-processor\",\"name\":\"test\",\"rate\":1.9},\"id\":\"test-id\",\"type\":\"apm_retention_filter\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "put", "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/WvfydouzRnOdrIHZny7nrg"}, "response": {"body": {"string": "{\"errors\":[\"Invalid Pipeline\",\"'rate' must exist and be between 0 and 1\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Thu, 21 Sep 2023 16:39:03 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/WvfydouzRnOdrIHZny7nrg"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 21 Sep 2023 16:39:03 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":true,\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"filter_type\":\"spans-sampling-processor\",\"name\":\"demo retention filter\",\"rate\":0.9},\"type\":\"apm_retention_filter\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"WvfydouzRnOdrIHZny7nrg\",\"attributes\":{\"name\":\"demo retention filter\",\"rate\":0.9,\"enabled\":true,\"filter_type\":\"spans-sampling-processor\",\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"modified_by\":\"frog@datadoghq.com\",\"modified_at\":1695314343,\"created_by\":\"frog@datadoghq.com\",\"created_at\":1695314343,\"editable\":true},\"type\":\"apm_retention_filter\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 21 Sep 2023 16:39:03 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":true,\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"filter_type\":\"spans-sampling-processor\",\"name\":\"test\",\"rate\":1.9},\"id\":\"test-id\",\"type\":\"apm_retention_filter\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/WvfydouzRnOdrIHZny7nrg" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Invalid Pipeline\",\"'rate' must exist and be between 0 and 1\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Thu, 21 Sep 2023 16:39:03 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/WvfydouzRnOdrIHZny7nrg" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 21 Sep 2023 16:39:03 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/apm_retention_filters/Update-a-retention-filter-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/apm_retention_filters/Update-a-retention-filter-returns-Not-Found-response.json index 93a4be294..1f379b458 100644 --- a/tests/scenarios/cassettes/v2/apm_retention_filters/Update-a-retention-filter-returns-Not-Found-response.json +++ b/tests/scenarios/cassettes/v2/apm_retention_filters/Update-a-retention-filter-returns-Not-Found-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"enabled\":true,\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"filter_type\":\"spans-sampling-processor\",\"name\":\"test\",\"rate\":0.9},\"id\":\"not_found\",\"type\":\"apm_retention_filter\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "put", "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/not_found"}, "response": {"body": {"string": "{\"errors\":[\"retention filter with id: 'not_found' not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 21 Sep 2023 16:39:04 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":true,\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"filter_type\":\"spans-sampling-processor\",\"name\":\"test\",\"rate\":0.9},\"id\":\"not_found\",\"type\":\"apm_retention_filter\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/not_found" + }, + "response": { + "body": { + "string": "{\"errors\":[\"retention filter with id: 'not_found' not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 21 Sep 2023 16:39:04 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/apm_retention_filters/Update-a-retention-filter-returns-OK-response.json b/tests/scenarios/cassettes/v2/apm_retention_filters/Update-a-retention-filter-returns-OK-response.json index c37f092b0..5011fa853 100644 --- a/tests/scenarios/cassettes/v2/apm_retention_filters/Update-a-retention-filter-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/apm_retention_filters/Update-a-retention-filter-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"enabled\":true,\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"filter_type\":\"spans-sampling-processor\",\"name\":\"demo retention filter\",\"rate\":0.9},\"type\":\"apm_retention_filter\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters"}, "response": {"body": {"string": "{\"data\":{\"id\":\"ur3J5qCQTtmILqW-Ss0alw\",\"attributes\":{\"name\":\"demo retention filter\",\"rate\":0.9,\"enabled\":true,\"filter_type\":\"spans-sampling-processor\",\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"modified_by\":\"frog@datadoghq.com\",\"modified_at\":1695314344,\"created_by\":\"frog@datadoghq.com\",\"created_at\":1695314344,\"editable\":true},\"type\":\"apm_retention_filter\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 21 Sep 2023 16:39:04 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"enabled\":true,\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"filter_type\":\"spans-sampling-processor\",\"name\":\"test\",\"rate\":0.9},\"id\":\"test-id\",\"type\":\"apm_retention_filter\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "put", "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/ur3J5qCQTtmILqW-Ss0alw"}, "response": {"body": {"string": "{\"data\":{\"id\":\"ur3J5qCQTtmILqW-Ss0alw\",\"attributes\":{\"name\":\"test\",\"rate\":0.9,\"enabled\":true,\"filter_type\":\"spans-sampling-processor\",\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"modified_by\":\"frog@datadoghq.com\",\"modified_at\":1695314344,\"created_by\":\"frog@datadoghq.com\",\"created_at\":1695314344,\"editable\":true},\"type\":\"apm_retention_filter\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 21 Sep 2023 16:39:04 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/ur3J5qCQTtmILqW-Ss0alw"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 21 Sep 2023 16:39:04 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":true,\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"filter_type\":\"spans-sampling-processor\",\"name\":\"demo retention filter\",\"rate\":0.9},\"type\":\"apm_retention_filter\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"ur3J5qCQTtmILqW-Ss0alw\",\"attributes\":{\"name\":\"demo retention filter\",\"rate\":0.9,\"enabled\":true,\"filter_type\":\"spans-sampling-processor\",\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"modified_by\":\"frog@datadoghq.com\",\"modified_at\":1695314344,\"created_by\":\"frog@datadoghq.com\",\"created_at\":1695314344,\"editable\":true},\"type\":\"apm_retention_filter\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 21 Sep 2023 16:39:04 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":true,\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"filter_type\":\"spans-sampling-processor\",\"name\":\"test\",\"rate\":0.9},\"id\":\"test-id\",\"type\":\"apm_retention_filter\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/ur3J5qCQTtmILqW-Ss0alw" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"ur3J5qCQTtmILqW-Ss0alw\",\"attributes\":{\"name\":\"test\",\"rate\":0.9,\"enabled\":true,\"filter_type\":\"spans-sampling-processor\",\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"modified_by\":\"frog@datadoghq.com\",\"modified_at\":1695314344,\"created_by\":\"frog@datadoghq.com\",\"created_at\":1695314344,\"editable\":true},\"type\":\"apm_retention_filter\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 21 Sep 2023 16:39:04 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/ur3J5qCQTtmILqW-Ss0alw" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 21 Sep 2023 16:39:04 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/apm_retention_filters/Update-a-retention-filters-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/apm_retention_filters/Update-a-retention-filters-returns-Bad-Request-response.json index b826f042f..e1b6b7601 100644 --- a/tests/scenarios/cassettes/v2/apm_retention_filters/Update-a-retention-filters-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/apm_retention_filters/Update-a-retention-filters-returns-Bad-Request-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"enabled\":true,\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"filter_type\":\"spans-sampling-processor\",\"name\":\"demo retention filter\",\"rate\":0.9},\"type\":\"apm_retention_filter\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters"}, "response": {"body": {"string": "{\"data\":{\"id\":\"7-OGpPS-SvyZKxEt0p01kA\",\"attributes\":{\"name\":\"demo retention filter\",\"rate\":0.9,\"enabled\":true,\"filter_type\":\"spans-sampling-processor\",\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"modified_by\":\"frog@datadoghq.com\",\"modified_at\":1695119407,\"created_by\":\"frog@datadoghq.com\",\"created_at\":1695119407,\"editable\":true},\"type\":\"apm_retention_filter\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 19 Sep 2023 10:30:07 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"enabled\":true,\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"filter_type\":\"spans-sampling-processor\",\"name\":\"test\",\"rate\":1.9},\"id\":\"test-id\",\"type\":\"apm_retention_filter\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "put", "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/7-OGpPS-SvyZKxEt0p01kA"}, "response": {"body": {"string": "{\"errors\":[\"Invalid Pipeline\",\"'rate' must exist and be between 0 and 1\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Tue, 19 Sep 2023 10:30:07 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/7-OGpPS-SvyZKxEt0p01kA"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 19 Sep 2023 10:30:07 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":true,\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"filter_type\":\"spans-sampling-processor\",\"name\":\"demo retention filter\",\"rate\":0.9},\"type\":\"apm_retention_filter\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"7-OGpPS-SvyZKxEt0p01kA\",\"attributes\":{\"name\":\"demo retention filter\",\"rate\":0.9,\"enabled\":true,\"filter_type\":\"spans-sampling-processor\",\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"modified_by\":\"frog@datadoghq.com\",\"modified_at\":1695119407,\"created_by\":\"frog@datadoghq.com\",\"created_at\":1695119407,\"editable\":true},\"type\":\"apm_retention_filter\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 19 Sep 2023 10:30:07 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":true,\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"filter_type\":\"spans-sampling-processor\",\"name\":\"test\",\"rate\":1.9},\"id\":\"test-id\",\"type\":\"apm_retention_filter\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/7-OGpPS-SvyZKxEt0p01kA" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Invalid Pipeline\",\"'rate' must exist and be between 0 and 1\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Tue, 19 Sep 2023 10:30:07 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/7-OGpPS-SvyZKxEt0p01kA" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 19 Sep 2023 10:30:07 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/apm_retention_filters/Update-a-retention-filters-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/apm_retention_filters/Update-a-retention-filters-returns-Not-Found-response.json index 56e486714..550e349c3 100644 --- a/tests/scenarios/cassettes/v2/apm_retention_filters/Update-a-retention-filters-returns-Not-Found-response.json +++ b/tests/scenarios/cassettes/v2/apm_retention_filters/Update-a-retention-filters-returns-Not-Found-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"enabled\":true,\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"filter_type\":\"spans-sampling-processor\",\"name\":\"test\",\"rate\":0.9},\"id\":\"not_found\",\"type\":\"apm_retention_filter\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "put", "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/not_found"}, "response": {"body": {"string": "{\"errors\":[\"retention filter with id: 'not_found' not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Mon, 18 Sep 2023 11:29:51 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":true,\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"filter_type\":\"spans-sampling-processor\",\"name\":\"test\",\"rate\":0.9},\"id\":\"not_found\",\"type\":\"apm_retention_filter\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/not_found" + }, + "response": { + "body": { + "string": "{\"errors\":[\"retention filter with id: 'not_found' not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Mon, 18 Sep 2023 11:29:51 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/apm_retention_filters/Update-a-retention-filters-returns-OK-response.json b/tests/scenarios/cassettes/v2/apm_retention_filters/Update-a-retention-filters-returns-OK-response.json index 2bcb401b6..d1ff79b75 100644 --- a/tests/scenarios/cassettes/v2/apm_retention_filters/Update-a-retention-filters-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/apm_retention_filters/Update-a-retention-filters-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"enabled\":true,\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"filter_type\":\"spans-sampling-processor\",\"name\":\"demo retention filter\",\"rate\":0.9},\"type\":\"apm_retention_filter\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters"}, "response": {"body": {"string": "{\"data\":{\"id\":\"CDqOdN7wRGahYAPVsdAvfw\",\"attributes\":{\"name\":\"demo retention filter\",\"rate\":0.9,\"enabled\":true,\"filter_type\":\"spans-sampling-processor\",\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"modified_by\":\"frog@datadoghq.com\",\"modified_at\":1695118296,\"created_by\":\"frog@datadoghq.com\",\"created_at\":1695118296,\"editable\":true},\"type\":\"apm_retention_filter\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 19 Sep 2023 10:11:36 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"enabled\":true,\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"filter_type\":\"spans-sampling-processor\",\"name\":\"test\",\"rate\":0.9},\"id\":\"test-id\",\"type\":\"apm_retention_filter\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "put", "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/CDqOdN7wRGahYAPVsdAvfw"}, "response": {"body": {"string": "{\"data\":{\"id\":\"CDqOdN7wRGahYAPVsdAvfw\",\"attributes\":{\"name\":\"test\",\"rate\":0.9,\"enabled\":true,\"filter_type\":\"spans-sampling-processor\",\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"modified_by\":\"frog@datadoghq.com\",\"modified_at\":1695118296,\"created_by\":\"frog@datadoghq.com\",\"created_at\":1695118296,\"editable\":true},\"type\":\"apm_retention_filter\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 19 Sep 2023 10:11:36 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/CDqOdN7wRGahYAPVsdAvfw"}, "response": {"body": {"string": "{}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 19 Sep 2023 10:11:36 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":true,\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"filter_type\":\"spans-sampling-processor\",\"name\":\"demo retention filter\",\"rate\":0.9},\"type\":\"apm_retention_filter\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"CDqOdN7wRGahYAPVsdAvfw\",\"attributes\":{\"name\":\"demo retention filter\",\"rate\":0.9,\"enabled\":true,\"filter_type\":\"spans-sampling-processor\",\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"modified_by\":\"frog@datadoghq.com\",\"modified_at\":1695118296,\"created_by\":\"frog@datadoghq.com\",\"created_at\":1695118296,\"editable\":true},\"type\":\"apm_retention_filter\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 19 Sep 2023 10:11:36 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":true,\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"filter_type\":\"spans-sampling-processor\",\"name\":\"test\",\"rate\":0.9},\"id\":\"test-id\",\"type\":\"apm_retention_filter\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/CDqOdN7wRGahYAPVsdAvfw" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"CDqOdN7wRGahYAPVsdAvfw\",\"attributes\":{\"name\":\"test\",\"rate\":0.9,\"enabled\":true,\"filter_type\":\"spans-sampling-processor\",\"filter\":{\"query\":\"@_top_level:1 test:service-demo\"},\"modified_by\":\"frog@datadoghq.com\",\"modified_at\":1695118296,\"created_by\":\"frog@datadoghq.com\",\"created_at\":1695118296,\"editable\":true},\"type\":\"apm_retention_filter\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 19 Sep 2023 10:11:36 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/apm/config/retention-filters/CDqOdN7wRGahYAPVsdAvfw" + }, + "response": { + "body": { + "string": "{}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 19 Sep 2023 10:11:36 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/audit/Get-a-list-of-Audit-Logs-events-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v2/audit/Get-a-list-of-Audit-Logs-events-returns-OK-response-with-pagination.json index 5267464da..3e046ecf7 100644 --- a/tests/scenarios/cassettes/v2/audit/Get-a-list-of-Audit-Logs-events-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v2/audit/Get-a-list-of-Audit-Logs-events-returns-OK-response-with-pagination.json @@ -1 +1,61 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/audit/events?page%5Blimit%5D=2"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFpUWhuWTNTSHVVUUFBQUFCQldVRnBVV2h4UmtGQlEwczJhSGMyTWtoNGNuUjNRVUUifQ\"}},\"data\":[{\"attributes\":{\"attributes\":{\"status\":\"info\",\"tags\":[\"agent_hostname:i-086c6dfaa6bd27468\",\"agent_version:7.35.0\",\"root_config_version:4\",\"old_snapshot_version:1419839\",\"last_snapshot_version:1419845\"],\"timestamp\":\"2022-04-13T09:29:59Z\",\"usr\":{\"id\":\"1ad9c690-ee90-4dca-80ad-034e916623ab\",\"email\":\"1ad9c690-ee90-4dca-80ad-034e916623ab\"},\"action\":\"update_config\",\"org\":{\"uuid\":\"8dee7c38-00cb-11ea-a77b-8b5a08d3b091\"},\"evt\":{\"actor\":{\"type\":\"Other\"}},\"auth_method\":\"API + App Key\"},\"message\":\"Agent configuration successfuly updated\",\"tags\":[\"source:audit\"],\"timestamp\":\"2022-04-13T09:29:59.000Z\"},\"type\":\"audit\",\"id\":\"AQAAAYAiQhnY3SfuUQAAAABBWUFpUWhxSEFBQ0s2aHc2Mkh4cnZRQUE\"},{\"attributes\":{\"attributes\":{\"status\":\"info\",\"tags\":[\"agent_hostname:i-0a31006532ef57785\",\"agent_version:7.35.0\",\"root_config_version:4\",\"old_snapshot_version:1419839\",\"last_snapshot_version:1419845\"],\"timestamp\":\"2022-04-13T09:29:59Z\",\"usr\":{\"id\":\"1ad9c690-ee90-4dca-80ad-034e916623ab\",\"email\":\"1ad9c690-ee90-4dca-80ad-034e916623ab\"},\"action\":\"update_config\",\"org\":{\"uuid\":\"8dee7c38-00cb-11ea-a77b-8b5a08d3b091\"},\"evt\":{\"actor\":{\"type\":\"Other\"}},\"auth_method\":\"API + App Key\"},\"message\":\"Agent configuration successfuly updated\",\"tags\":[\"source:audit\"],\"timestamp\":\"2022-04-13T09:29:59.000Z\"},\"type\":\"audit\",\"id\":\"AQAAAYAiQhnY3SHuUQAAAABBWUFpUWhxRkFBQ0s2aHc2Mkh4cnR3QUE\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/audit/events?page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFpUWhuWTNTSHVVUUFBQUFCQldVRnBVV2h4UmtGQlEwczJhSGMyTWtoNGNuUjNRVUUifQ&page%5Blimit%5D=2\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 13 Apr 2022 09:30:15 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/audit/events?page%5Blimit%5D=2&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFpUWhuWTNTSHVVUUFBQUFCQldVRnBVV2h4UmtGQlEwczJhSGMyTWtoNGNuUjNRVUUifQ"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFpUWhuWTNRM3VVUUFBQUFCQldVRnBVV2h3YmtGQlEwczJhSGMyTWtoNGNtOTNRVUUifQ\"}},\"data\":[{\"attributes\":{\"attributes\":{\"status\":\"info\",\"tags\":[\"agent_hostname:i-029aff430be77ea83\",\"agent_version:7.35.0\",\"root_config_version:4\",\"old_snapshot_version:1419839\",\"last_snapshot_version:1419845\"],\"timestamp\":\"2022-04-13T09:29:59Z\",\"usr\":{\"id\":\"1ad9c690-ee90-4dca-80ad-034e916623ab\",\"email\":\"1ad9c690-ee90-4dca-80ad-034e916623ab\"},\"action\":\"update_config\",\"org\":{\"uuid\":\"8dee7c38-00cb-11ea-a77b-8b5a08d3b091\"},\"evt\":{\"actor\":{\"type\":\"Other\"}},\"auth_method\":\"API + App Key\"},\"message\":\"Agent configuration successfuly updated\",\"tags\":[\"source:audit\"],\"timestamp\":\"2022-04-13T09:29:59.000Z\"},\"type\":\"audit\",\"id\":\"AQAAAYAiQhnY3RvuUQAAAABBWUFpUWhwekFBQ0s2aHc2Mkh4cnNRQUE\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/audit/events?page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFpUWhuWTNRM3VVUUFBQUFCQldVRnBVV2h3YmtGQlEwczJhSGMyTWtoNGNtOTNRVUUifQ&page%5Blimit%5D=2\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 13 Apr 2022 09:30:15 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/audit/events?page%5Blimit%5D=2" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFpUWhuWTNTSHVVUUFBQUFCQldVRnBVV2h4UmtGQlEwczJhSGMyTWtoNGNuUjNRVUUifQ\"}},\"data\":[{\"attributes\":{\"attributes\":{\"status\":\"info\",\"tags\":[\"agent_hostname:i-086c6dfaa6bd27468\",\"agent_version:7.35.0\",\"root_config_version:4\",\"old_snapshot_version:1419839\",\"last_snapshot_version:1419845\"],\"timestamp\":\"2022-04-13T09:29:59Z\",\"usr\":{\"id\":\"1ad9c690-ee90-4dca-80ad-034e916623ab\",\"email\":\"1ad9c690-ee90-4dca-80ad-034e916623ab\"},\"action\":\"update_config\",\"org\":{\"uuid\":\"8dee7c38-00cb-11ea-a77b-8b5a08d3b091\"},\"evt\":{\"actor\":{\"type\":\"Other\"}},\"auth_method\":\"API + App Key\"},\"message\":\"Agent configuration successfuly updated\",\"tags\":[\"source:audit\"],\"timestamp\":\"2022-04-13T09:29:59.000Z\"},\"type\":\"audit\",\"id\":\"AQAAAYAiQhnY3SfuUQAAAABBWUFpUWhxSEFBQ0s2aHc2Mkh4cnZRQUE\"},{\"attributes\":{\"attributes\":{\"status\":\"info\",\"tags\":[\"agent_hostname:i-0a31006532ef57785\",\"agent_version:7.35.0\",\"root_config_version:4\",\"old_snapshot_version:1419839\",\"last_snapshot_version:1419845\"],\"timestamp\":\"2022-04-13T09:29:59Z\",\"usr\":{\"id\":\"1ad9c690-ee90-4dca-80ad-034e916623ab\",\"email\":\"1ad9c690-ee90-4dca-80ad-034e916623ab\"},\"action\":\"update_config\",\"org\":{\"uuid\":\"8dee7c38-00cb-11ea-a77b-8b5a08d3b091\"},\"evt\":{\"actor\":{\"type\":\"Other\"}},\"auth_method\":\"API + App Key\"},\"message\":\"Agent configuration successfuly updated\",\"tags\":[\"source:audit\"],\"timestamp\":\"2022-04-13T09:29:59.000Z\"},\"type\":\"audit\",\"id\":\"AQAAAYAiQhnY3SHuUQAAAABBWUFpUWhxRkFBQ0s2aHc2Mkh4cnR3QUE\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/audit/events?page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFpUWhuWTNTSHVVUUFBQUFCQldVRnBVV2h4UmtGQlEwczJhSGMyTWtoNGNuUjNRVUUifQ&page%5Blimit%5D=2\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 13 Apr 2022 09:30:15 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/audit/events?page%5Blimit%5D=2&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFpUWhuWTNTSHVVUUFBQUFCQldVRnBVV2h4UmtGQlEwczJhSGMyTWtoNGNuUjNRVUUifQ" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFpUWhuWTNRM3VVUUFBQUFCQldVRnBVV2h3YmtGQlEwczJhSGMyTWtoNGNtOTNRVUUifQ\"}},\"data\":[{\"attributes\":{\"attributes\":{\"status\":\"info\",\"tags\":[\"agent_hostname:i-029aff430be77ea83\",\"agent_version:7.35.0\",\"root_config_version:4\",\"old_snapshot_version:1419839\",\"last_snapshot_version:1419845\"],\"timestamp\":\"2022-04-13T09:29:59Z\",\"usr\":{\"id\":\"1ad9c690-ee90-4dca-80ad-034e916623ab\",\"email\":\"1ad9c690-ee90-4dca-80ad-034e916623ab\"},\"action\":\"update_config\",\"org\":{\"uuid\":\"8dee7c38-00cb-11ea-a77b-8b5a08d3b091\"},\"evt\":{\"actor\":{\"type\":\"Other\"}},\"auth_method\":\"API + App Key\"},\"message\":\"Agent configuration successfuly updated\",\"tags\":[\"source:audit\"],\"timestamp\":\"2022-04-13T09:29:59.000Z\"},\"type\":\"audit\",\"id\":\"AQAAAYAiQhnY3RvuUQAAAABBWUFpUWhwekFBQ0s2aHc2Mkh4cnNRQUE\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/audit/events?page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFpUWhuWTNRM3VVUUFBQUFCQldVRnBVV2h3YmtGQlEwczJhSGMyTWtoNGNtOTNRVUUifQ&page%5Blimit%5D=2\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 13 Apr 2022 09:30:15 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/audit/Get-a-list-of-Audit-Logs-events-returns-OK-response.json b/tests/scenarios/cassettes/v2/audit/Get-a-list-of-Audit-Logs-events-returns-OK-response.json index 7412d7e3c..3dc71d3eb 100644 --- a/tests/scenarios/cassettes/v2/audit/Get-a-list-of-Audit-Logs-events-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/audit/Get-a-list-of-Audit-Logs-events-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/audit/events"}, "response": {"body": {"string": "{\"data\":[]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 10 Mar 2022 12:51:27 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/audit/events" + }, + "response": { + "body": { + "string": "{\"data\":[]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 10 Mar 2022 12:51:27 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/audit/Search-Audit-Logs-events-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v2/audit/Search-Audit-Logs-events-returns-OK-response-with-pagination.json index 0c34d66c8..eab00deb7 100644 --- a/tests/scenarios/cassettes/v2/audit/Search-Audit-Logs-events-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v2/audit/Search-Audit-Logs-events-returns-OK-response-with-pagination.json @@ -1 +1,73 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"filter\":{\"from\":\"now-15m\",\"to\":\"now\"},\"options\":{\"timezone\":\"GMT\"},\"page\":{\"limit\":2},\"sort\":\"timestamp\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/audit/events/search"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFpT2hZV1JxeFgzUUFBQUFCQldVRnBUMmh2VFVGQlFrczVOa2wwVFZKVFYycEJRVUUifQ\"}},\"data\":[{\"attributes\":{\"attributes\":{\"status\":\"info\",\"http\":{\"status_code\":\"200\",\"url_details\":{\"path\":\"/api/v1/synthetics/enforced_tags\",\"host\":\"us1.prod.dog\"},\"method\":\"GET\",\"useragent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36\"},\"network\":{\"bytes_read\":0,\"client\":{\"ip\":\"84.102.253.215\"},\"bytes_written\":104},\"timestamp\":\"2022-04-13T09:21:13.750599\",\"usr\":{\"email\":\"foo@example.com\",\"id\":\"foo@example.com\",\"uuid\":\"0ed5718a-10e0-11ec-8246-da7ad0900002\"},\"action\":\"accessed\",\"org\":{\"uuid\":\"8dee7c38-00cb-11ea-a77b-8b5a08d3b091\"},\"evt\":{\"name\":\"Request\",\"actor\":{\"type\":\"USER\"}},\"auth_method\":\"SESSION\"},\"message\":\"GET request made to /api/v1/synthetics/enforced_tags by foo@example.com with response 200\",\"tags\":[\"source:audit\"],\"timestamp\":\"2022-04-13T09:21:13.750Z\"},\"type\":\"audit\",\"id\":\"AQAAAYAiOhYWi7EZ-QAAAABBWUFpT2hvT0FBRGJLTGZoSU50TEVRQUE\"},{\"attributes\":{\"attributes\":{\"status\":\"info\",\"http\":{\"status_code\":\"200\",\"url_details\":{\"path\":\"/api/v2/query/timeseries\",\"host\":\"us1.prod.dog\"},\"method\":\"POST\",\"useragent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36\"},\"network\":{\"bytes_read\":494,\"client\":{\"ip\":\"149.14.155.42\"},\"bytes_written\":108896},\"timestamp\":\"2022-04-13T09:21:13.750249\",\"usr\":{\"email\":\"foo@example.com\",\"id\":\"foo@example.com\",\"uuid\":\"32e2d7b6-52e4-11ec-a7e4-da7ad0900002\"},\"action\":\"accessed\",\"org\":{\"uuid\":\"8dee7c38-00cb-11ea-a77b-8b5a08d3b091\"},\"evt\":{\"name\":\"Request\",\"actor\":{\"type\":\"USER\"}},\"auth_method\":\"SESSION\"},\"message\":\"POST request made to /api/v2/query/timeseries by foo@example.com with response 200\",\"tags\":[\"source:audit\"],\"timestamp\":\"2022-04-13T09:21:13.750Z\"},\"type\":\"audit\",\"id\":\"AQAAAYAiOhYWRqxX3QAAAABBWUFpT2hvTUFBQks5Nkl0TVJTV2pBQUE\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/audit/events?sort=timestamp&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFpT2hZV1JxeFgzUUFBQUFCQldVRnBUMmh2VFVGQlFrczVOa2wwVFZKVFYycEJRVUUifQ&page%5Blimit%5D=2&filter%5Bfrom%5D=now-15m\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 13 Apr 2022 09:36:13 GMT"}, {"request": {"body": {"string": "{\"filter\":{\"from\":\"now-15m\",\"to\":\"now\"},\"options\":{\"timezone\":\"GMT\"},\"page\":{\"cursor\":\"eyJhZnRlciI6IkFRQUFBWUFpT2hZV1JxeFgzUUFBQUFCQldVRnBUMmh2VFVGQlFrczVOa2wwVFZKVFYycEJRVUUifQ\",\"limit\":2},\"sort\":\"timestamp\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/audit/events/search"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFpT2hnV2pkb1otUUFBQUFCQldVRnBUMmgzVFVGQlJHSkxUR1pvU1U1MFRrOW5RVUUifQ\"}},\"data\":[{\"attributes\":{\"attributes\":{\"status\":\"info\",\"http\":{\"status_code\":\"200\",\"url_details\":{\"path\":\"/series/batch_query\",\"host\":\"us1.prod.dog\"},\"method\":\"POST\",\"useragent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Safari/605.1.15\"},\"network\":{\"bytes_read\":818,\"client\":{\"ip\":\"185.12.36.70\"},\"bytes_written\":60804},\"timestamp\":\"2022-04-13T09:21:14.260084\",\"usr\":{\"email\":\"foo@example.com\",\"id\":\"foo@example.com\",\"uuid\":\"a9c5deae-eb9f-11e9-a77a-a386b4bf357a\"},\"action\":\"accessed\",\"org\":{\"uuid\":\"8dee7c38-00cb-11ea-a77b-8b5a08d3b091\"},\"evt\":{\"name\":\"Request\",\"actor\":{\"type\":\"USER\"}},\"auth_method\":\"SESSION\"},\"message\":\"POST request made to /series/batch_query by foo@example.com with response 200\",\"tags\":[\"source:audit\"],\"timestamp\":\"2022-04-13T09:21:14.260Z\"},\"type\":\"audit\",\"id\":\"AQAAAYAiOhgURpZX3QAAAABBWUFpT2hudkFBQks5Nkl0TVJTV2RnQUE\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/audit/events?sort=timestamp&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFpT2hnV2pkb1otUUFBQUFCQldVRnBUMmgzVFVGQlJHSkxUR1pvU1U1MFRrOW5RVUUifQ&page%5Blimit%5D=2&filter%5Bfrom%5D=now-15m\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 13 Apr 2022 09:36:13 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"filter\":{\"from\":\"now-15m\",\"to\":\"now\"},\"options\":{\"timezone\":\"GMT\"},\"page\":{\"limit\":2},\"sort\":\"timestamp\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/audit/events/search" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFpT2hZV1JxeFgzUUFBQUFCQldVRnBUMmh2VFVGQlFrczVOa2wwVFZKVFYycEJRVUUifQ\"}},\"data\":[{\"attributes\":{\"attributes\":{\"status\":\"info\",\"http\":{\"status_code\":\"200\",\"url_details\":{\"path\":\"/api/v1/synthetics/enforced_tags\",\"host\":\"us1.prod.dog\"},\"method\":\"GET\",\"useragent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36\"},\"network\":{\"bytes_read\":0,\"client\":{\"ip\":\"84.102.253.215\"},\"bytes_written\":104},\"timestamp\":\"2022-04-13T09:21:13.750599\",\"usr\":{\"email\":\"foo@example.com\",\"id\":\"foo@example.com\",\"uuid\":\"0ed5718a-10e0-11ec-8246-da7ad0900002\"},\"action\":\"accessed\",\"org\":{\"uuid\":\"8dee7c38-00cb-11ea-a77b-8b5a08d3b091\"},\"evt\":{\"name\":\"Request\",\"actor\":{\"type\":\"USER\"}},\"auth_method\":\"SESSION\"},\"message\":\"GET request made to /api/v1/synthetics/enforced_tags by foo@example.com with response 200\",\"tags\":[\"source:audit\"],\"timestamp\":\"2022-04-13T09:21:13.750Z\"},\"type\":\"audit\",\"id\":\"AQAAAYAiOhYWi7EZ-QAAAABBWUFpT2hvT0FBRGJLTGZoSU50TEVRQUE\"},{\"attributes\":{\"attributes\":{\"status\":\"info\",\"http\":{\"status_code\":\"200\",\"url_details\":{\"path\":\"/api/v2/query/timeseries\",\"host\":\"us1.prod.dog\"},\"method\":\"POST\",\"useragent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36\"},\"network\":{\"bytes_read\":494,\"client\":{\"ip\":\"149.14.155.42\"},\"bytes_written\":108896},\"timestamp\":\"2022-04-13T09:21:13.750249\",\"usr\":{\"email\":\"foo@example.com\",\"id\":\"foo@example.com\",\"uuid\":\"32e2d7b6-52e4-11ec-a7e4-da7ad0900002\"},\"action\":\"accessed\",\"org\":{\"uuid\":\"8dee7c38-00cb-11ea-a77b-8b5a08d3b091\"},\"evt\":{\"name\":\"Request\",\"actor\":{\"type\":\"USER\"}},\"auth_method\":\"SESSION\"},\"message\":\"POST request made to /api/v2/query/timeseries by foo@example.com with response 200\",\"tags\":[\"source:audit\"],\"timestamp\":\"2022-04-13T09:21:13.750Z\"},\"type\":\"audit\",\"id\":\"AQAAAYAiOhYWRqxX3QAAAABBWUFpT2hvTUFBQks5Nkl0TVJTV2pBQUE\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/audit/events?sort=timestamp&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFpT2hZV1JxeFgzUUFBQUFCQldVRnBUMmh2VFVGQlFrczVOa2wwVFZKVFYycEJRVUUifQ&page%5Blimit%5D=2&filter%5Bfrom%5D=now-15m\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 13 Apr 2022 09:36:13 GMT" + }, + { + "request": { + "body": { + "string": "{\"filter\":{\"from\":\"now-15m\",\"to\":\"now\"},\"options\":{\"timezone\":\"GMT\"},\"page\":{\"cursor\":\"eyJhZnRlciI6IkFRQUFBWUFpT2hZV1JxeFgzUUFBQUFCQldVRnBUMmh2VFVGQlFrczVOa2wwVFZKVFYycEJRVUUifQ\",\"limit\":2},\"sort\":\"timestamp\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/audit/events/search" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFpT2hnV2pkb1otUUFBQUFCQldVRnBUMmgzVFVGQlJHSkxUR1pvU1U1MFRrOW5RVUUifQ\"}},\"data\":[{\"attributes\":{\"attributes\":{\"status\":\"info\",\"http\":{\"status_code\":\"200\",\"url_details\":{\"path\":\"/series/batch_query\",\"host\":\"us1.prod.dog\"},\"method\":\"POST\",\"useragent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Safari/605.1.15\"},\"network\":{\"bytes_read\":818,\"client\":{\"ip\":\"185.12.36.70\"},\"bytes_written\":60804},\"timestamp\":\"2022-04-13T09:21:14.260084\",\"usr\":{\"email\":\"foo@example.com\",\"id\":\"foo@example.com\",\"uuid\":\"a9c5deae-eb9f-11e9-a77a-a386b4bf357a\"},\"action\":\"accessed\",\"org\":{\"uuid\":\"8dee7c38-00cb-11ea-a77b-8b5a08d3b091\"},\"evt\":{\"name\":\"Request\",\"actor\":{\"type\":\"USER\"}},\"auth_method\":\"SESSION\"},\"message\":\"POST request made to /series/batch_query by foo@example.com with response 200\",\"tags\":[\"source:audit\"],\"timestamp\":\"2022-04-13T09:21:14.260Z\"},\"type\":\"audit\",\"id\":\"AQAAAYAiOhgURpZX3QAAAABBWUFpT2hudkFBQks5Nkl0TVJTV2RnQUE\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/audit/events?sort=timestamp&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFpT2hnV2pkb1otUUFBQUFCQldVRnBUMmgzVFVGQlJHSkxUR1pvU1U1MFRrOW5RVUUifQ&page%5Blimit%5D=2&filter%5Bfrom%5D=now-15m\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 13 Apr 2022 09:36:13 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/audit/Search-Audit-Logs-events-returns-OK-response.json b/tests/scenarios/cassettes/v2/audit/Search-Audit-Logs-events-returns-OK-response.json index 6d6283f64..26e569948 100644 --- a/tests/scenarios/cassettes/v2/audit/Search-Audit-Logs-events-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/audit/Search-Audit-Logs-events-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"filter\":{\"from\":\"now-15m\",\"query\":\"@type:session AND @session.type:user\",\"to\":\"now\"},\"options\":{\"time_offset\":0,\"timezone\":\"GMT\"},\"page\":{\"limit\":25},\"sort\":\"timestamp\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/audit/events/search"}, "response": {"body": {"string": "{\"data\":[]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 10 Mar 2022 12:51:27 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"filter\":{\"from\":\"now-15m\",\"query\":\"@type:session AND @session.type:user\",\"to\":\"now\"},\"options\":{\"time_offset\":0,\"timezone\":\"GMT\"},\"page\":{\"limit\":25},\"sort\":\"timestamp\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/audit/events/search" + }, + "response": { + "body": { + "string": "{\"data\":[]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 10 Mar 2022 12:51:27 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/authn_mappings/Create-an-AuthN-Mapping-returns-OK-response.json b/tests/scenarios/cassettes/v2/authn_mappings/Create-an-AuthN-Mapping-returns-OK-response.json index f77bc7e04..f11004b25 100644 --- a/tests/scenarios/cassettes/v2/authn_mappings/Create-an-AuthN-Mapping-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/authn_mappings/Create-an-AuthN-Mapping-returns-OK-response.json @@ -1 +1,121 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_an_AuthN_Mapping_returns_OK_response-1652349066\"},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles"}, "response": {"body": {"string": "{\"data\":{\"type\":\"roles\",\"id\":\"0b9db2f6-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Create_an_AuthN_Mapping_returns_OK_response-1652349066\",\"created_at\":\"2022-05-12T09:51:07.463334+00:00\",\"modified_at\":\"2022-05-12T09:51:07.527219+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:51:06 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"attribute_key\":\"testcreateanauthnmappingreturnsokresponse1652349066\",\"attribute_value\":\"Test-Create_an_AuthN_Mapping_returns_OK_response-1652349066\"},\"relationships\":{\"role\":{\"data\":{\"id\":\"0b9db2f6-d1d9-11ec-ad3d-da7ad0900002\",\"type\":\"roles\"}}},\"type\":\"authn_mappings\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/authn_mappings"}, "response": {"body": {"string": "{\"included\":[{\"type\":\"roles\",\"id\":\"0b9db2f6-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Create_an_AuthN_Mapping_returns_OK_response-1652349066\",\"created_at\":\"2022-05-12T09:51:07.463334+00:00\",\"modified_at\":\"2022-05-12T09:51:07.527219+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}],\"data\":{\"type\":\"authn_mappings\",\"id\":\"0bf0acd6-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"attribute_key\":\"testcreateanauthnmappingreturnsokresponse1652349066\",\"attribute_value\":\"Test-Create_an_AuthN_Mapping_returns_OK_response-1652349066\",\"created_at\":\"2022-05-12T09:51:08.006161+00:00\",\"modified_at\":\"2022-05-12T09:51:08.006161+00:00\"},\"relationships\":{\"role\":{\"data\":{\"type\":\"roles\",\"id\":\"0b9db2f6-d1d9-11ec-ad3d-da7ad0900002\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:51:06 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/authn_mappings/0bf0acd6-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:51:06 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/0b9db2f6-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:51:06 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_an_AuthN_Mapping_returns_OK_response-1652349066\"},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"roles\",\"id\":\"0b9db2f6-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Create_an_AuthN_Mapping_returns_OK_response-1652349066\",\"created_at\":\"2022-05-12T09:51:07.463334+00:00\",\"modified_at\":\"2022-05-12T09:51:07.527219+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:06 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"attribute_key\":\"testcreateanauthnmappingreturnsokresponse1652349066\",\"attribute_value\":\"Test-Create_an_AuthN_Mapping_returns_OK_response-1652349066\"},\"relationships\":{\"role\":{\"data\":{\"id\":\"0b9db2f6-d1d9-11ec-ad3d-da7ad0900002\",\"type\":\"roles\"}}},\"type\":\"authn_mappings\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/authn_mappings" + }, + "response": { + "body": { + "string": "{\"included\":[{\"type\":\"roles\",\"id\":\"0b9db2f6-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Create_an_AuthN_Mapping_returns_OK_response-1652349066\",\"created_at\":\"2022-05-12T09:51:07.463334+00:00\",\"modified_at\":\"2022-05-12T09:51:07.527219+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}],\"data\":{\"type\":\"authn_mappings\",\"id\":\"0bf0acd6-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"attribute_key\":\"testcreateanauthnmappingreturnsokresponse1652349066\",\"attribute_value\":\"Test-Create_an_AuthN_Mapping_returns_OK_response-1652349066\",\"created_at\":\"2022-05-12T09:51:08.006161+00:00\",\"modified_at\":\"2022-05-12T09:51:08.006161+00:00\"},\"relationships\":{\"role\":{\"data\":{\"type\":\"roles\",\"id\":\"0b9db2f6-d1d9-11ec-ad3d-da7ad0900002\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:06 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/authn_mappings/0bf0acd6-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:06 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/0b9db2f6-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:06 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/authn_mappings/Delete-an-AuthN-Mapping-returns-OK-response.json b/tests/scenarios/cassettes/v2/authn_mappings/Delete-an-AuthN-Mapping-returns-OK-response.json index 972b589c8..494bd0512 100644 --- a/tests/scenarios/cassettes/v2/authn_mappings/Delete-an-AuthN-Mapping-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/authn_mappings/Delete-an-AuthN-Mapping-returns-OK-response.json @@ -1 +1,149 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Delete_an_AuthN_Mapping_returns_OK_response-1652349069\"},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles"}, "response": {"body": {"string": "{\"data\":{\"type\":\"roles\",\"id\":\"0cd38a56-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Delete_an_AuthN_Mapping_returns_OK_response-1652349069\",\"created_at\":\"2022-05-12T09:51:09.492974+00:00\",\"modified_at\":\"2022-05-12T09:51:09.537993+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:51:09 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"attribute_key\":\"testdeleteanauthnmappingreturnsokresponse1652349069\",\"attribute_value\":\"Test-Delete_an_AuthN_Mapping_returns_OK_response-1652349069\"},\"relationships\":{\"role\":{\"data\":{\"id\":\"0cd38a56-d1d9-11ec-ad3d-da7ad0900002\",\"type\":\"roles\"}}},\"type\":\"authn_mappings\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/authn_mappings"}, "response": {"body": {"string": "{\"included\":[{\"type\":\"roles\",\"id\":\"0cd38a56-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Delete_an_AuthN_Mapping_returns_OK_response-1652349069\",\"created_at\":\"2022-05-12T09:51:09.492974+00:00\",\"modified_at\":\"2022-05-12T09:51:09.537993+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}],\"data\":{\"type\":\"authn_mappings\",\"id\":\"0d2328cc-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"attribute_key\":\"testdeleteanauthnmappingreturnsokresponse1652349069\",\"attribute_value\":\"Test-Delete_an_AuthN_Mapping_returns_OK_response-1652349069\",\"created_at\":\"2022-05-12T09:51:10.015048+00:00\",\"modified_at\":\"2022-05-12T09:51:10.015048+00:00\"},\"relationships\":{\"role\":{\"data\":{\"type\":\"roles\",\"id\":\"0cd38a56-d1d9-11ec-ad3d-da7ad0900002\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:51:09 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/authn_mappings/0d2328cc-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:51:09 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/authn_mappings/0d2328cc-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "{\"errors\": [\"Mapping with id 0d2328cc-d1d9-11ec-ad3d-da7ad0900002 not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 12 May 2022 09:51:09 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/0cd38a56-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:51:09 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Delete_an_AuthN_Mapping_returns_OK_response-1652349069\"},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"roles\",\"id\":\"0cd38a56-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Delete_an_AuthN_Mapping_returns_OK_response-1652349069\",\"created_at\":\"2022-05-12T09:51:09.492974+00:00\",\"modified_at\":\"2022-05-12T09:51:09.537993+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:09 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"attribute_key\":\"testdeleteanauthnmappingreturnsokresponse1652349069\",\"attribute_value\":\"Test-Delete_an_AuthN_Mapping_returns_OK_response-1652349069\"},\"relationships\":{\"role\":{\"data\":{\"id\":\"0cd38a56-d1d9-11ec-ad3d-da7ad0900002\",\"type\":\"roles\"}}},\"type\":\"authn_mappings\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/authn_mappings" + }, + "response": { + "body": { + "string": "{\"included\":[{\"type\":\"roles\",\"id\":\"0cd38a56-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Delete_an_AuthN_Mapping_returns_OK_response-1652349069\",\"created_at\":\"2022-05-12T09:51:09.492974+00:00\",\"modified_at\":\"2022-05-12T09:51:09.537993+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}],\"data\":{\"type\":\"authn_mappings\",\"id\":\"0d2328cc-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"attribute_key\":\"testdeleteanauthnmappingreturnsokresponse1652349069\",\"attribute_value\":\"Test-Delete_an_AuthN_Mapping_returns_OK_response-1652349069\",\"created_at\":\"2022-05-12T09:51:10.015048+00:00\",\"modified_at\":\"2022-05-12T09:51:10.015048+00:00\"},\"relationships\":{\"role\":{\"data\":{\"type\":\"roles\",\"id\":\"0cd38a56-d1d9-11ec-ad3d-da7ad0900002\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:09 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/authn_mappings/0d2328cc-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:09 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/authn_mappings/0d2328cc-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "{\"errors\": [\"Mapping with id 0d2328cc-d1d9-11ec-ad3d-da7ad0900002 not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:09 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/0cd38a56-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:09 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/authn_mappings/Edit-an-AuthN-Mapping-returns-OK-response.json b/tests/scenarios/cassettes/v2/authn_mappings/Edit-an-AuthN-Mapping-returns-OK-response.json index f1a45a5c5..bce639de0 100644 --- a/tests/scenarios/cassettes/v2/authn_mappings/Edit-an-AuthN-Mapping-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/authn_mappings/Edit-an-AuthN-Mapping-returns-OK-response.json @@ -1 +1,155 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Edit_an_AuthN_Mapping_returns_OK_response-1652349071\"},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles"}, "response": {"body": {"string": "{\"data\":{\"type\":\"roles\",\"id\":\"0e6f2848-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Edit_an_AuthN_Mapping_returns_OK_response-1652349071\",\"created_at\":\"2022-05-12T09:51:12.191159+00:00\",\"modified_at\":\"2022-05-12T09:51:12.302936+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:51:11 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"attribute_key\":\"testeditanauthnmappingreturnsokresponse1652349071\",\"attribute_value\":\"Test-Edit_an_AuthN_Mapping_returns_OK_response-1652349071\"},\"relationships\":{\"role\":{\"data\":{\"id\":\"0e6f2848-d1d9-11ec-ad3d-da7ad0900002\",\"type\":\"roles\"}}},\"type\":\"authn_mappings\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/authn_mappings"}, "response": {"body": {"string": "{\"included\":[{\"type\":\"roles\",\"id\":\"0e6f2848-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Edit_an_AuthN_Mapping_returns_OK_response-1652349071\",\"created_at\":\"2022-05-12T09:51:12.191159+00:00\",\"modified_at\":\"2022-05-12T09:51:12.302936+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}],\"data\":{\"type\":\"authn_mappings\",\"id\":\"0ece1b8c-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"attribute_key\":\"testeditanauthnmappingreturnsokresponse1652349071\",\"attribute_value\":\"Test-Edit_an_AuthN_Mapping_returns_OK_response-1652349071\",\"created_at\":\"2022-05-12T09:51:12.813412+00:00\",\"modified_at\":\"2022-05-12T09:51:12.813412+00:00\"},\"relationships\":{\"role\":{\"data\":{\"type\":\"roles\",\"id\":\"0e6f2848-d1d9-11ec-ad3d-da7ad0900002\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:51:11 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"attribute_key\":\"member-of\",\"attribute_value\":\"Development\"},\"id\":\"0ece1b8c-d1d9-11ec-ad3d-da7ad0900002\",\"relationships\":{\"role\":{\"data\":{\"id\":\"0e6f2848-d1d9-11ec-ad3d-da7ad0900002\",\"type\":\"roles\"}}},\"type\":\"authn_mappings\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/authn_mappings/0ece1b8c-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "{\"included\":[{\"type\":\"roles\",\"id\":\"0e6f2848-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Edit_an_AuthN_Mapping_returns_OK_response-1652349071\",\"created_at\":\"2022-05-12T09:51:12.191159+00:00\",\"modified_at\":\"2022-05-12T09:51:12.302936+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}],\"data\":{\"type\":\"authn_mappings\",\"id\":\"0ece1b8c-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"attribute_key\":\"member-of\",\"attribute_value\":\"Development\",\"created_at\":\"2022-05-12T09:51:12.813412+00:00\",\"modified_at\":\"2022-05-12T09:51:13.311120+00:00\"},\"relationships\":{\"role\":{\"data\":{\"type\":\"roles\",\"id\":\"0e6f2848-d1d9-11ec-ad3d-da7ad0900002\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:51:11 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/authn_mappings/0ece1b8c-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:51:11 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/0e6f2848-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:51:11 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Edit_an_AuthN_Mapping_returns_OK_response-1652349071\"},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"roles\",\"id\":\"0e6f2848-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Edit_an_AuthN_Mapping_returns_OK_response-1652349071\",\"created_at\":\"2022-05-12T09:51:12.191159+00:00\",\"modified_at\":\"2022-05-12T09:51:12.302936+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:11 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"attribute_key\":\"testeditanauthnmappingreturnsokresponse1652349071\",\"attribute_value\":\"Test-Edit_an_AuthN_Mapping_returns_OK_response-1652349071\"},\"relationships\":{\"role\":{\"data\":{\"id\":\"0e6f2848-d1d9-11ec-ad3d-da7ad0900002\",\"type\":\"roles\"}}},\"type\":\"authn_mappings\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/authn_mappings" + }, + "response": { + "body": { + "string": "{\"included\":[{\"type\":\"roles\",\"id\":\"0e6f2848-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Edit_an_AuthN_Mapping_returns_OK_response-1652349071\",\"created_at\":\"2022-05-12T09:51:12.191159+00:00\",\"modified_at\":\"2022-05-12T09:51:12.302936+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}],\"data\":{\"type\":\"authn_mappings\",\"id\":\"0ece1b8c-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"attribute_key\":\"testeditanauthnmappingreturnsokresponse1652349071\",\"attribute_value\":\"Test-Edit_an_AuthN_Mapping_returns_OK_response-1652349071\",\"created_at\":\"2022-05-12T09:51:12.813412+00:00\",\"modified_at\":\"2022-05-12T09:51:12.813412+00:00\"},\"relationships\":{\"role\":{\"data\":{\"type\":\"roles\",\"id\":\"0e6f2848-d1d9-11ec-ad3d-da7ad0900002\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:11 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"attribute_key\":\"member-of\",\"attribute_value\":\"Development\"},\"id\":\"0ece1b8c-d1d9-11ec-ad3d-da7ad0900002\",\"relationships\":{\"role\":{\"data\":{\"id\":\"0e6f2848-d1d9-11ec-ad3d-da7ad0900002\",\"type\":\"roles\"}}},\"type\":\"authn_mappings\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/authn_mappings/0ece1b8c-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "{\"included\":[{\"type\":\"roles\",\"id\":\"0e6f2848-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Edit_an_AuthN_Mapping_returns_OK_response-1652349071\",\"created_at\":\"2022-05-12T09:51:12.191159+00:00\",\"modified_at\":\"2022-05-12T09:51:12.302936+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}],\"data\":{\"type\":\"authn_mappings\",\"id\":\"0ece1b8c-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"attribute_key\":\"member-of\",\"attribute_value\":\"Development\",\"created_at\":\"2022-05-12T09:51:12.813412+00:00\",\"modified_at\":\"2022-05-12T09:51:13.311120+00:00\"},\"relationships\":{\"role\":{\"data\":{\"type\":\"roles\",\"id\":\"0e6f2848-d1d9-11ec-ad3d-da7ad0900002\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:11 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/authn_mappings/0ece1b8c-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:11 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/0e6f2848-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:11 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/authn_mappings/Get-an-AuthN-Mapping-by-UUID-returns-OK-response.json b/tests/scenarios/cassettes/v2/authn_mappings/Get-an-AuthN-Mapping-by-UUID-returns-OK-response.json index 0594cce2e..1fac3f1ae 100644 --- a/tests/scenarios/cassettes/v2/authn_mappings/Get-an-AuthN-Mapping-by-UUID-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/authn_mappings/Get-an-AuthN-Mapping-by-UUID-returns-OK-response.json @@ -1 +1,149 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Get_an_AuthN_Mapping_by_UUID_returns_OK_response-1652349074\"},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles"}, "response": {"body": {"string": "{\"data\":{\"type\":\"roles\",\"id\":\"100b029e-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Get_an_AuthN_Mapping_by_UUID_returns_OK_response-1652349074\",\"created_at\":\"2022-05-12T09:51:14.889838+00:00\",\"modified_at\":\"2022-05-12T09:51:14.940000+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:51:14 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"attribute_key\":\"testgetanauthnmappingbyuuidreturnsokresponse1652349074\",\"attribute_value\":\"Test-Get_an_AuthN_Mapping_by_UUID_returns_OK_response-1652349074\"},\"relationships\":{\"role\":{\"data\":{\"id\":\"100b029e-d1d9-11ec-ad3d-da7ad0900002\",\"type\":\"roles\"}}},\"type\":\"authn_mappings\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/authn_mappings"}, "response": {"body": {"string": "{\"included\":[{\"type\":\"roles\",\"id\":\"100b029e-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Get_an_AuthN_Mapping_by_UUID_returns_OK_response-1652349074\",\"created_at\":\"2022-05-12T09:51:14.889838+00:00\",\"modified_at\":\"2022-05-12T09:51:14.940000+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}],\"data\":{\"type\":\"authn_mappings\",\"id\":\"10da3f46-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"attribute_key\":\"testgetanauthnmappingbyuuidreturnsokresponse1652349074\",\"attribute_value\":\"Test-Get_an_AuthN_Mapping_by_UUID_returns_OK_response-1652349074\",\"created_at\":\"2022-05-12T09:51:16.248429+00:00\",\"modified_at\":\"2022-05-12T09:51:16.248429+00:00\"},\"relationships\":{\"role\":{\"data\":{\"type\":\"roles\",\"id\":\"100b029e-d1d9-11ec-ad3d-da7ad0900002\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:51:14 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/authn_mappings/10da3f46-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "{\"included\":[{\"type\":\"roles\",\"id\":\"100b029e-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Get_an_AuthN_Mapping_by_UUID_returns_OK_response-1652349074\",\"created_at\":\"2022-05-12T09:51:14.889838+00:00\",\"modified_at\":\"2022-05-12T09:51:14.940000+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}],\"data\":{\"type\":\"authn_mappings\",\"id\":\"10da3f46-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"attribute_key\":\"testgetanauthnmappingbyuuidreturnsokresponse1652349074\",\"attribute_value\":\"Test-Get_an_AuthN_Mapping_by_UUID_returns_OK_response-1652349074\",\"created_at\":\"2022-05-12T09:51:16.248429+00:00\",\"modified_at\":\"2022-05-12T09:51:16.248429+00:00\"},\"relationships\":{\"role\":{\"data\":{\"type\":\"roles\",\"id\":\"100b029e-d1d9-11ec-ad3d-da7ad0900002\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:51:14 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/authn_mappings/10da3f46-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:51:14 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/100b029e-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:51:14 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Get_an_AuthN_Mapping_by_UUID_returns_OK_response-1652349074\"},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"roles\",\"id\":\"100b029e-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Get_an_AuthN_Mapping_by_UUID_returns_OK_response-1652349074\",\"created_at\":\"2022-05-12T09:51:14.889838+00:00\",\"modified_at\":\"2022-05-12T09:51:14.940000+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:14 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"attribute_key\":\"testgetanauthnmappingbyuuidreturnsokresponse1652349074\",\"attribute_value\":\"Test-Get_an_AuthN_Mapping_by_UUID_returns_OK_response-1652349074\"},\"relationships\":{\"role\":{\"data\":{\"id\":\"100b029e-d1d9-11ec-ad3d-da7ad0900002\",\"type\":\"roles\"}}},\"type\":\"authn_mappings\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/authn_mappings" + }, + "response": { + "body": { + "string": "{\"included\":[{\"type\":\"roles\",\"id\":\"100b029e-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Get_an_AuthN_Mapping_by_UUID_returns_OK_response-1652349074\",\"created_at\":\"2022-05-12T09:51:14.889838+00:00\",\"modified_at\":\"2022-05-12T09:51:14.940000+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}],\"data\":{\"type\":\"authn_mappings\",\"id\":\"10da3f46-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"attribute_key\":\"testgetanauthnmappingbyuuidreturnsokresponse1652349074\",\"attribute_value\":\"Test-Get_an_AuthN_Mapping_by_UUID_returns_OK_response-1652349074\",\"created_at\":\"2022-05-12T09:51:16.248429+00:00\",\"modified_at\":\"2022-05-12T09:51:16.248429+00:00\"},\"relationships\":{\"role\":{\"data\":{\"type\":\"roles\",\"id\":\"100b029e-d1d9-11ec-ad3d-da7ad0900002\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:14 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/authn_mappings/10da3f46-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "{\"included\":[{\"type\":\"roles\",\"id\":\"100b029e-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Get_an_AuthN_Mapping_by_UUID_returns_OK_response-1652349074\",\"created_at\":\"2022-05-12T09:51:14.889838+00:00\",\"modified_at\":\"2022-05-12T09:51:14.940000+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}],\"data\":{\"type\":\"authn_mappings\",\"id\":\"10da3f46-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"attribute_key\":\"testgetanauthnmappingbyuuidreturnsokresponse1652349074\",\"attribute_value\":\"Test-Get_an_AuthN_Mapping_by_UUID_returns_OK_response-1652349074\",\"created_at\":\"2022-05-12T09:51:16.248429+00:00\",\"modified_at\":\"2022-05-12T09:51:16.248429+00:00\"},\"relationships\":{\"role\":{\"data\":{\"type\":\"roles\",\"id\":\"100b029e-d1d9-11ec-ad3d-da7ad0900002\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:14 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/authn_mappings/10da3f46-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:14 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/100b029e-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:14 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/authn_mappings/List-all-AuthN-Mappings-returns-OK-response.json b/tests/scenarios/cassettes/v2/authn_mappings/List-all-AuthN-Mappings-returns-OK-response.json index c24566ee2..b47b07c35 100644 --- a/tests/scenarios/cassettes/v2/authn_mappings/List-all-AuthN-Mappings-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/authn_mappings/List-all-AuthN-Mappings-returns-OK-response.json @@ -1 +1,149 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-List_all_AuthN_Mappings_returns_OK_response-1652349077\"},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles"}, "response": {"body": {"string": "{\"data\":{\"type\":\"roles\",\"id\":\"120a6d32-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-List_all_AuthN_Mappings_returns_OK_response-1652349077\",\"created_at\":\"2022-05-12T09:51:18.241483+00:00\",\"modified_at\":\"2022-05-12T09:51:18.302819+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:51:17 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"attribute_key\":\"testlistallauthnmappingsreturnsokresponse1652349077\",\"attribute_value\":\"Test-List_all_AuthN_Mappings_returns_OK_response-1652349077\"},\"relationships\":{\"role\":{\"data\":{\"id\":\"120a6d32-d1d9-11ec-ad3d-da7ad0900002\",\"type\":\"roles\"}}},\"type\":\"authn_mappings\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/authn_mappings"}, "response": {"body": {"string": "{\"included\":[{\"type\":\"roles\",\"id\":\"120a6d32-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-List_all_AuthN_Mappings_returns_OK_response-1652349077\",\"created_at\":\"2022-05-12T09:51:18.241483+00:00\",\"modified_at\":\"2022-05-12T09:51:18.302819+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}],\"data\":{\"type\":\"authn_mappings\",\"id\":\"125e0500-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"attribute_key\":\"testlistallauthnmappingsreturnsokresponse1652349077\",\"attribute_value\":\"Test-List_all_AuthN_Mappings_returns_OK_response-1652349077\",\"created_at\":\"2022-05-12T09:51:18.789402+00:00\",\"modified_at\":\"2022-05-12T09:51:18.789402+00:00\"},\"relationships\":{\"role\":{\"data\":{\"type\":\"roles\",\"id\":\"120a6d32-d1d9-11ec-ad3d-da7ad0900002\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:51:17 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/authn_mappings"}, "response": {"body": {"string": "{\"included\":[{\"type\":\"roles\",\"id\":\"61366ea5-cea7-11ec-ac89-da7ad0900002\",\"attributes\":{\"name\":\"Test-Typescript-List_all_AuthN_Mappings_returns_OK_response-1651997882\",\"created_at\":\"2022-05-08T08:18:02.879216+00:00\",\"modified_at\":\"2022-05-08T08:18:02.926721+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}},{\"type\":\"roles\",\"id\":\"5f5e2acc-cea7-11ec-ac89-da7ad0900002\",\"attributes\":{\"name\":\"Test-Typescript-Create_an_AuthN_Mapping_returns_OK_response-1651997879\",\"created_at\":\"2022-05-08T08:17:59.650779+00:00\",\"modified_at\":\"2022-05-08T08:17:59.709387+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}},{\"type\":\"roles\",\"id\":\"94172442-be03-11e9-a77a-3b7612558ac1\",\"attributes\":{\"name\":\"Datadog Admin Role\",\"created_at\":\"2019-08-13T19:50:19.022791+00:00\",\"modified_at\":\"2019-08-13T19:50:19.022791+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\"},{\"type\":\"permissions\",\"id\":\"984d2f00-d3b4-11e8-a200-bb47109e9987\"},{\"type\":\"permissions\",\"id\":\"5e605652-dd12-11e8-9e53-375565b8970e\"},{\"type\":\"permissions\",\"id\":\"62cc036c-dd12-11e8-9e54-db9995643092\"},{\"type\":\"permissions\",\"id\":\"6f66600e-dd12-11e8-9e55-7f30fbb45e73\"},{\"type\":\"permissions\",\"id\":\"7d7c98ac-dd12-11e8-9e56-93700598622d\"},{\"type\":\"permissions\",\"id\":\"811ac4ca-dd12-11e8-9e57-676a7f0beef9\"},{\"type\":\"permissions\",\"id\":\"84aa3ae4-dd12-11e8-9e58-a373a514ccd0\"},{\"type\":\"permissions\",\"id\":\"87b00304-dd12-11e8-9e59-cbeb5f71f72f\"},{\"type\":\"permissions\",\"id\":\"979df720-aed7-11e9-99c6-a7eb8373165a\"},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"d90f6831-d3d8-11e9-a77a-4fd230ddbc6a\"},{\"type\":\"permissions\",\"id\":\"d90f6832-d3d8-11e9-a77a-bf8a2607f864\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"48ef71ea-d8b1-11e9-a77a-93f408470ad0\"},{\"type\":\"permissions\",\"id\":\"4d87d5f8-d8b1-11e9-a77a-eb9c8350d04f\"},{\"type\":\"permissions\",\"id\":\"1af86ce4-7823-11ea-93dc-d7cad1b1c6cb\"},{\"type\":\"permissions\",\"id\":\"b382b982-8535-11ea-93de-2bf1bdf20798\"},{\"type\":\"permissions\",\"id\":\"7314eb20-aa58-11ea-95e2-6fb6e4a451d5\"},{\"type\":\"permissions\",\"id\":\"7b516476-aa58-11ea-95e2-93718cd56369\"},{\"type\":\"permissions\",\"id\":\"80de1ec0-aa58-11ea-95e2-aff381626d5d\"},{\"type\":\"permissions\",\"id\":\"58b412cc-ff6d-11eb-bc9c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"9ac1d8cc-e707-11ea-aa2d-73d37e989a9d\"},{\"type\":\"permissions\",\"id\":\"9de604d8-e707-11ea-aa2d-93f1a783b3a3\"},{\"type\":\"permissions\",\"id\":\"46a301da-ec5c-11ea-aa9f-73bedeab67ee\"},{\"type\":\"permissions\",\"id\":\"46a301db-ec5c-11ea-aa9f-2fe72193d60e\"},{\"type\":\"permissions\",\"id\":\"46a301dc-ec5c-11ea-aa9f-13b33f8f46ea\"},{\"type\":\"permissions\",\"id\":\"46a301dd-ec5c-11ea-aa9f-97edfb345bc9\"},{\"type\":\"permissions\",\"id\":\"46a301de-ec5c-11ea-aa9f-a73252c24806\"},{\"type\":\"permissions\",\"id\":\"46a301df-ec5c-11ea-aa9f-970a9ae645e5\"},{\"type\":\"permissions\",\"id\":\"46a301e0-ec5c-11ea-aa9f-6ba6cc675d8c\"},{\"type\":\"permissions\",\"id\":\"46a301e1-ec5c-11ea-aa9f-afa39f6f3e36\"},{\"type\":\"permissions\",\"id\":\"46a301e2-ec5c-11ea-aa9f-1f511b7305fd\"},{\"type\":\"permissions\",\"id\":\"46a301e4-ec5c-11ea-aa9f-87282b3a50cc\"},{\"type\":\"permissions\",\"id\":\"07c3c146-f7f8-11ea-acf6-0bd62b9ae60e\"},{\"type\":\"permissions\",\"id\":\"2fbdac76-f923-11ea-adbc-07f3823e2b43\"},{\"type\":\"permissions\",\"id\":\"372896c4-f923-11ea-adbc-4fecd107156d\"},{\"type\":\"permissions\",\"id\":\"3e4d4d28-f923-11ea-adbc-e3565938c12e\"},{\"type\":\"permissions\",\"id\":\"4628ca54-f923-11ea-adbc-4b2b7f88c5e9\"},{\"type\":\"permissions\",\"id\":\"4ada6e36-f923-11ea-adbc-0788e5c5e3cf\"},{\"type\":\"permissions\",\"id\":\"5025ee24-f923-11ea-adbc-576ea241df8d\"},{\"type\":\"permissions\",\"id\":\"55f4b5ec-f923-11ea-adbc-1bfa2334a755\"},{\"type\":\"permissions\",\"id\":\"5c6b88e2-f923-11ea-adbc-abf57d079420\"},{\"type\":\"permissions\",\"id\":\"642eebe6-f923-11ea-adbc-eb617674ea04\"},{\"type\":\"permissions\",\"id\":\"6ba32d22-0e1a-11eb-ba44-bf9a5aafaa39\"},{\"type\":\"permissions\",\"id\":\"a42e94b2-1476-11eb-bd08-efda28c04248\"},{\"type\":\"permissions\",\"id\":\"fcac2ad8-2843-11eb-8315-0fe47949d625\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"43fa188e-2dce-11eb-84c0-835ad1fd6287\"},{\"type\":\"permissions\",\"id\":\"465cfe66-2dce-11eb-84c0-6baa888239fa\"},{\"type\":\"permissions\",\"id\":\"4916eebe-2dce-11eb-84c0-271cb2c672e8\"},{\"type\":\"permissions\",\"id\":\"4e3f02b4-2dce-11eb-84c0-2fca946a6efc\"},{\"type\":\"permissions\",\"id\":\"53950c54-2dce-11eb-84c0-a79ae108f6f8\"},{\"type\":\"permissions\",\"id\":\"5cbe5f9c-2dce-11eb-84c0-872d3e9f1076\"},{\"type\":\"permissions\",\"id\":\"61765026-2dce-11eb-84c0-833e230d1b8f\"},{\"type\":\"permissions\",\"id\":\"04bc1cf2-340a-11eb-873a-43b973c760dd\"},{\"type\":\"permissions\",\"id\":\"8106300a-54f7-11eb-8cbc-7781a434a67b\"},{\"type\":\"permissions\",\"id\":\"bf0dcf7c-90af-11eb-9b82-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"bf0dcf7d-90af-11eb-9b82-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"98b984f4-b16d-11eb-a2c6-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"98b984f5-b16d-11eb-a2c6-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc211-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc20f-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc210-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1d-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef25-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"c95412b8-16c7-11ec-85c0-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"c95412b9-16c7-11ec-85c0-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"26c79920-1703-11ec-85d2-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"020a563c-56a4-11ec-a982-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"8e4d6b6e-5750-11ec-a9f4-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"945b3bb4-5884-11ec-aa6d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"945b3bb5-5884-11ec-aa6d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac7-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"2108215e-b9b4-11ec-958e-da7ad0900002\"}]}}},{\"type\":\"roles\",\"id\":\"60d3ae04-cea7-11ec-ac89-da7ad0900002\",\"attributes\":{\"name\":\"Test-Typescript-Get_an_AuthN_Mapping_by_UUID_returns_OK_response-1651997881\",\"created_at\":\"2022-05-08T08:18:02.097999+00:00\",\"modified_at\":\"2022-05-08T08:18:02.171730+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}},{\"type\":\"roles\",\"id\":\"5fcd43c6-cea7-11ec-ac89-da7ad0900002\",\"attributes\":{\"name\":\"Test-Typescript-Delete_an_AuthN_Mapping_returns_OK_response-1651997879\",\"created_at\":\"2022-05-08T08:18:00.378768+00:00\",\"modified_at\":\"2022-05-08T08:18:00.426903+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}},{\"type\":\"roles\",\"id\":\"120a6d32-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-List_all_AuthN_Mappings_returns_OK_response-1652349077\",\"created_at\":\"2022-05-12T09:51:18.241483+00:00\",\"modified_at\":\"2022-05-12T09:51:18.302819+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}},{\"type\":\"roles\",\"id\":\"603dd82a-cea7-11ec-ac89-da7ad0900002\",\"attributes\":{\"name\":\"Test-Typescript-Edit_an_AuthN_Mapping_returns_OK_response-1651997880\",\"created_at\":\"2022-05-08T08:18:01.115889+00:00\",\"modified_at\":\"2022-05-08T08:18:01.165616+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}],\"meta\":{\"page\":{\"total_filtered_count\":7,\"total_count\":7}},\"data\":[{\"type\":\"authn_mappings\",\"id\":\"08a60f02-c0b9-11ec-a8cb-da7ad0900002\",\"attributes\":{\"attribute_key\":\"groups\",\"attribute_value\":\"238cfe80-9215-11eb-9bd1-da7ad0900002\",\"created_at\":\"2022-04-20T14:49:08.822094+00:00\",\"modified_at\":\"2022-04-20T14:49:08.822094+00:00\"},\"relationships\":{\"role\":{\"data\":{\"type\":\"roles\",\"id\":\"94172442-be03-11e9-a77a-3b7612558ac1\"}}}},{\"type\":\"authn_mappings\",\"id\":\"5f8335ce-cea7-11ec-ac89-da7ad0900002\",\"attributes\":{\"attribute_key\":\"testtypescriptcreateanauthnmappingreturnsokresponse1651997879\",\"attribute_value\":\"Test-Typescript-Create_an_AuthN_Mapping_returns_OK_response-1651997879\",\"created_at\":\"2022-05-08T08:17:59.892715+00:00\",\"modified_at\":\"2022-05-08T08:17:59.892715+00:00\"},\"relationships\":{\"role\":{\"data\":{\"type\":\"roles\",\"id\":\"5f5e2acc-cea7-11ec-ac89-da7ad0900002\"}}}},{\"type\":\"authn_mappings\",\"id\":\"5ff26c5a-cea7-11ec-ac89-da7ad0900002\",\"attributes\":{\"attribute_key\":\"testtypescriptdeleteanauthnmappingreturnsokresponse1651997879\",\"attribute_value\":\"Test-Typescript-Delete_an_AuthN_Mapping_returns_OK_response-1651997879\",\"created_at\":\"2022-05-08T08:18:00.621583+00:00\",\"modified_at\":\"2022-05-08T08:18:00.621583+00:00\"},\"relationships\":{\"role\":{\"data\":{\"type\":\"roles\",\"id\":\"5fcd43c6-cea7-11ec-ac89-da7ad0900002\"}}}},{\"type\":\"authn_mappings\",\"id\":\"60654da6-cea7-11ec-ac89-da7ad0900002\",\"attributes\":{\"attribute_key\":\"member-of\",\"attribute_value\":\"Development\",\"created_at\":\"2022-05-08T08:18:01.374568+00:00\",\"modified_at\":\"2022-05-08T08:18:01.582952+00:00\"},\"relationships\":{\"role\":{\"data\":{\"type\":\"roles\",\"id\":\"603dd82a-cea7-11ec-ac89-da7ad0900002\"}}}},{\"type\":\"authn_mappings\",\"id\":\"60fffd6a-cea7-11ec-ac89-da7ad0900002\",\"attributes\":{\"attribute_key\":\"testtypescriptgetanauthnmappingbyuuidreturnsokresponse1651997881\",\"attribute_value\":\"Test-Typescript-Get_an_AuthN_Mapping_by_UUID_returns_OK_response-1651997881\",\"created_at\":\"2022-05-08T08:18:02.387900+00:00\",\"modified_at\":\"2022-05-08T08:18:02.387900+00:00\"},\"relationships\":{\"role\":{\"data\":{\"type\":\"roles\",\"id\":\"60d3ae04-cea7-11ec-ac89-da7ad0900002\"}}}},{\"type\":\"authn_mappings\",\"id\":\"6176c44a-cea7-11ec-ac89-da7ad0900002\",\"attributes\":{\"attribute_key\":\"testtypescriptlistallauthnmappingsreturnsokresponse1651997882\",\"attribute_value\":\"Test-Typescript-List_all_AuthN_Mappings_returns_OK_response-1651997882\",\"created_at\":\"2022-05-08T08:18:03.167098+00:00\",\"modified_at\":\"2022-05-08T08:18:03.167098+00:00\"},\"relationships\":{\"role\":{\"data\":{\"type\":\"roles\",\"id\":\"61366ea5-cea7-11ec-ac89-da7ad0900002\"}}}},{\"type\":\"authn_mappings\",\"id\":\"125e0500-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"attribute_key\":\"testlistallauthnmappingsreturnsokresponse1652349077\",\"attribute_value\":\"Test-List_all_AuthN_Mappings_returns_OK_response-1652349077\",\"created_at\":\"2022-05-12T09:51:18.789402+00:00\",\"modified_at\":\"2022-05-12T09:51:18.789402+00:00\"},\"relationships\":{\"role\":{\"data\":{\"type\":\"roles\",\"id\":\"120a6d32-d1d9-11ec-ad3d-da7ad0900002\"}}}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:51:17 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/authn_mappings/125e0500-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:51:17 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/120a6d32-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:51:17 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-List_all_AuthN_Mappings_returns_OK_response-1652349077\"},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"roles\",\"id\":\"120a6d32-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-List_all_AuthN_Mappings_returns_OK_response-1652349077\",\"created_at\":\"2022-05-12T09:51:18.241483+00:00\",\"modified_at\":\"2022-05-12T09:51:18.302819+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:17 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"attribute_key\":\"testlistallauthnmappingsreturnsokresponse1652349077\",\"attribute_value\":\"Test-List_all_AuthN_Mappings_returns_OK_response-1652349077\"},\"relationships\":{\"role\":{\"data\":{\"id\":\"120a6d32-d1d9-11ec-ad3d-da7ad0900002\",\"type\":\"roles\"}}},\"type\":\"authn_mappings\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/authn_mappings" + }, + "response": { + "body": { + "string": "{\"included\":[{\"type\":\"roles\",\"id\":\"120a6d32-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-List_all_AuthN_Mappings_returns_OK_response-1652349077\",\"created_at\":\"2022-05-12T09:51:18.241483+00:00\",\"modified_at\":\"2022-05-12T09:51:18.302819+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}],\"data\":{\"type\":\"authn_mappings\",\"id\":\"125e0500-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"attribute_key\":\"testlistallauthnmappingsreturnsokresponse1652349077\",\"attribute_value\":\"Test-List_all_AuthN_Mappings_returns_OK_response-1652349077\",\"created_at\":\"2022-05-12T09:51:18.789402+00:00\",\"modified_at\":\"2022-05-12T09:51:18.789402+00:00\"},\"relationships\":{\"role\":{\"data\":{\"type\":\"roles\",\"id\":\"120a6d32-d1d9-11ec-ad3d-da7ad0900002\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:17 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/authn_mappings" + }, + "response": { + "body": { + "string": "{\"included\":[{\"type\":\"roles\",\"id\":\"61366ea5-cea7-11ec-ac89-da7ad0900002\",\"attributes\":{\"name\":\"Test-Typescript-List_all_AuthN_Mappings_returns_OK_response-1651997882\",\"created_at\":\"2022-05-08T08:18:02.879216+00:00\",\"modified_at\":\"2022-05-08T08:18:02.926721+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}},{\"type\":\"roles\",\"id\":\"5f5e2acc-cea7-11ec-ac89-da7ad0900002\",\"attributes\":{\"name\":\"Test-Typescript-Create_an_AuthN_Mapping_returns_OK_response-1651997879\",\"created_at\":\"2022-05-08T08:17:59.650779+00:00\",\"modified_at\":\"2022-05-08T08:17:59.709387+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}},{\"type\":\"roles\",\"id\":\"94172442-be03-11e9-a77a-3b7612558ac1\",\"attributes\":{\"name\":\"Datadog Admin Role\",\"created_at\":\"2019-08-13T19:50:19.022791+00:00\",\"modified_at\":\"2019-08-13T19:50:19.022791+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\"},{\"type\":\"permissions\",\"id\":\"984d2f00-d3b4-11e8-a200-bb47109e9987\"},{\"type\":\"permissions\",\"id\":\"5e605652-dd12-11e8-9e53-375565b8970e\"},{\"type\":\"permissions\",\"id\":\"62cc036c-dd12-11e8-9e54-db9995643092\"},{\"type\":\"permissions\",\"id\":\"6f66600e-dd12-11e8-9e55-7f30fbb45e73\"},{\"type\":\"permissions\",\"id\":\"7d7c98ac-dd12-11e8-9e56-93700598622d\"},{\"type\":\"permissions\",\"id\":\"811ac4ca-dd12-11e8-9e57-676a7f0beef9\"},{\"type\":\"permissions\",\"id\":\"84aa3ae4-dd12-11e8-9e58-a373a514ccd0\"},{\"type\":\"permissions\",\"id\":\"87b00304-dd12-11e8-9e59-cbeb5f71f72f\"},{\"type\":\"permissions\",\"id\":\"979df720-aed7-11e9-99c6-a7eb8373165a\"},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"d90f6831-d3d8-11e9-a77a-4fd230ddbc6a\"},{\"type\":\"permissions\",\"id\":\"d90f6832-d3d8-11e9-a77a-bf8a2607f864\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"48ef71ea-d8b1-11e9-a77a-93f408470ad0\"},{\"type\":\"permissions\",\"id\":\"4d87d5f8-d8b1-11e9-a77a-eb9c8350d04f\"},{\"type\":\"permissions\",\"id\":\"1af86ce4-7823-11ea-93dc-d7cad1b1c6cb\"},{\"type\":\"permissions\",\"id\":\"b382b982-8535-11ea-93de-2bf1bdf20798\"},{\"type\":\"permissions\",\"id\":\"7314eb20-aa58-11ea-95e2-6fb6e4a451d5\"},{\"type\":\"permissions\",\"id\":\"7b516476-aa58-11ea-95e2-93718cd56369\"},{\"type\":\"permissions\",\"id\":\"80de1ec0-aa58-11ea-95e2-aff381626d5d\"},{\"type\":\"permissions\",\"id\":\"58b412cc-ff6d-11eb-bc9c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"9ac1d8cc-e707-11ea-aa2d-73d37e989a9d\"},{\"type\":\"permissions\",\"id\":\"9de604d8-e707-11ea-aa2d-93f1a783b3a3\"},{\"type\":\"permissions\",\"id\":\"46a301da-ec5c-11ea-aa9f-73bedeab67ee\"},{\"type\":\"permissions\",\"id\":\"46a301db-ec5c-11ea-aa9f-2fe72193d60e\"},{\"type\":\"permissions\",\"id\":\"46a301dc-ec5c-11ea-aa9f-13b33f8f46ea\"},{\"type\":\"permissions\",\"id\":\"46a301dd-ec5c-11ea-aa9f-97edfb345bc9\"},{\"type\":\"permissions\",\"id\":\"46a301de-ec5c-11ea-aa9f-a73252c24806\"},{\"type\":\"permissions\",\"id\":\"46a301df-ec5c-11ea-aa9f-970a9ae645e5\"},{\"type\":\"permissions\",\"id\":\"46a301e0-ec5c-11ea-aa9f-6ba6cc675d8c\"},{\"type\":\"permissions\",\"id\":\"46a301e1-ec5c-11ea-aa9f-afa39f6f3e36\"},{\"type\":\"permissions\",\"id\":\"46a301e2-ec5c-11ea-aa9f-1f511b7305fd\"},{\"type\":\"permissions\",\"id\":\"46a301e4-ec5c-11ea-aa9f-87282b3a50cc\"},{\"type\":\"permissions\",\"id\":\"07c3c146-f7f8-11ea-acf6-0bd62b9ae60e\"},{\"type\":\"permissions\",\"id\":\"2fbdac76-f923-11ea-adbc-07f3823e2b43\"},{\"type\":\"permissions\",\"id\":\"372896c4-f923-11ea-adbc-4fecd107156d\"},{\"type\":\"permissions\",\"id\":\"3e4d4d28-f923-11ea-adbc-e3565938c12e\"},{\"type\":\"permissions\",\"id\":\"4628ca54-f923-11ea-adbc-4b2b7f88c5e9\"},{\"type\":\"permissions\",\"id\":\"4ada6e36-f923-11ea-adbc-0788e5c5e3cf\"},{\"type\":\"permissions\",\"id\":\"5025ee24-f923-11ea-adbc-576ea241df8d\"},{\"type\":\"permissions\",\"id\":\"55f4b5ec-f923-11ea-adbc-1bfa2334a755\"},{\"type\":\"permissions\",\"id\":\"5c6b88e2-f923-11ea-adbc-abf57d079420\"},{\"type\":\"permissions\",\"id\":\"642eebe6-f923-11ea-adbc-eb617674ea04\"},{\"type\":\"permissions\",\"id\":\"6ba32d22-0e1a-11eb-ba44-bf9a5aafaa39\"},{\"type\":\"permissions\",\"id\":\"a42e94b2-1476-11eb-bd08-efda28c04248\"},{\"type\":\"permissions\",\"id\":\"fcac2ad8-2843-11eb-8315-0fe47949d625\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"43fa188e-2dce-11eb-84c0-835ad1fd6287\"},{\"type\":\"permissions\",\"id\":\"465cfe66-2dce-11eb-84c0-6baa888239fa\"},{\"type\":\"permissions\",\"id\":\"4916eebe-2dce-11eb-84c0-271cb2c672e8\"},{\"type\":\"permissions\",\"id\":\"4e3f02b4-2dce-11eb-84c0-2fca946a6efc\"},{\"type\":\"permissions\",\"id\":\"53950c54-2dce-11eb-84c0-a79ae108f6f8\"},{\"type\":\"permissions\",\"id\":\"5cbe5f9c-2dce-11eb-84c0-872d3e9f1076\"},{\"type\":\"permissions\",\"id\":\"61765026-2dce-11eb-84c0-833e230d1b8f\"},{\"type\":\"permissions\",\"id\":\"04bc1cf2-340a-11eb-873a-43b973c760dd\"},{\"type\":\"permissions\",\"id\":\"8106300a-54f7-11eb-8cbc-7781a434a67b\"},{\"type\":\"permissions\",\"id\":\"bf0dcf7c-90af-11eb-9b82-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"bf0dcf7d-90af-11eb-9b82-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"98b984f4-b16d-11eb-a2c6-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"98b984f5-b16d-11eb-a2c6-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc211-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc20f-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc210-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1d-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef25-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"c95412b8-16c7-11ec-85c0-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"c95412b9-16c7-11ec-85c0-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"26c79920-1703-11ec-85d2-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"020a563c-56a4-11ec-a982-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"8e4d6b6e-5750-11ec-a9f4-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"945b3bb4-5884-11ec-aa6d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"945b3bb5-5884-11ec-aa6d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac7-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"2108215e-b9b4-11ec-958e-da7ad0900002\"}]}}},{\"type\":\"roles\",\"id\":\"60d3ae04-cea7-11ec-ac89-da7ad0900002\",\"attributes\":{\"name\":\"Test-Typescript-Get_an_AuthN_Mapping_by_UUID_returns_OK_response-1651997881\",\"created_at\":\"2022-05-08T08:18:02.097999+00:00\",\"modified_at\":\"2022-05-08T08:18:02.171730+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}},{\"type\":\"roles\",\"id\":\"5fcd43c6-cea7-11ec-ac89-da7ad0900002\",\"attributes\":{\"name\":\"Test-Typescript-Delete_an_AuthN_Mapping_returns_OK_response-1651997879\",\"created_at\":\"2022-05-08T08:18:00.378768+00:00\",\"modified_at\":\"2022-05-08T08:18:00.426903+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}},{\"type\":\"roles\",\"id\":\"120a6d32-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-List_all_AuthN_Mappings_returns_OK_response-1652349077\",\"created_at\":\"2022-05-12T09:51:18.241483+00:00\",\"modified_at\":\"2022-05-12T09:51:18.302819+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}},{\"type\":\"roles\",\"id\":\"603dd82a-cea7-11ec-ac89-da7ad0900002\",\"attributes\":{\"name\":\"Test-Typescript-Edit_an_AuthN_Mapping_returns_OK_response-1651997880\",\"created_at\":\"2022-05-08T08:18:01.115889+00:00\",\"modified_at\":\"2022-05-08T08:18:01.165616+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}],\"meta\":{\"page\":{\"total_filtered_count\":7,\"total_count\":7}},\"data\":[{\"type\":\"authn_mappings\",\"id\":\"08a60f02-c0b9-11ec-a8cb-da7ad0900002\",\"attributes\":{\"attribute_key\":\"groups\",\"attribute_value\":\"238cfe80-9215-11eb-9bd1-da7ad0900002\",\"created_at\":\"2022-04-20T14:49:08.822094+00:00\",\"modified_at\":\"2022-04-20T14:49:08.822094+00:00\"},\"relationships\":{\"role\":{\"data\":{\"type\":\"roles\",\"id\":\"94172442-be03-11e9-a77a-3b7612558ac1\"}}}},{\"type\":\"authn_mappings\",\"id\":\"5f8335ce-cea7-11ec-ac89-da7ad0900002\",\"attributes\":{\"attribute_key\":\"testtypescriptcreateanauthnmappingreturnsokresponse1651997879\",\"attribute_value\":\"Test-Typescript-Create_an_AuthN_Mapping_returns_OK_response-1651997879\",\"created_at\":\"2022-05-08T08:17:59.892715+00:00\",\"modified_at\":\"2022-05-08T08:17:59.892715+00:00\"},\"relationships\":{\"role\":{\"data\":{\"type\":\"roles\",\"id\":\"5f5e2acc-cea7-11ec-ac89-da7ad0900002\"}}}},{\"type\":\"authn_mappings\",\"id\":\"5ff26c5a-cea7-11ec-ac89-da7ad0900002\",\"attributes\":{\"attribute_key\":\"testtypescriptdeleteanauthnmappingreturnsokresponse1651997879\",\"attribute_value\":\"Test-Typescript-Delete_an_AuthN_Mapping_returns_OK_response-1651997879\",\"created_at\":\"2022-05-08T08:18:00.621583+00:00\",\"modified_at\":\"2022-05-08T08:18:00.621583+00:00\"},\"relationships\":{\"role\":{\"data\":{\"type\":\"roles\",\"id\":\"5fcd43c6-cea7-11ec-ac89-da7ad0900002\"}}}},{\"type\":\"authn_mappings\",\"id\":\"60654da6-cea7-11ec-ac89-da7ad0900002\",\"attributes\":{\"attribute_key\":\"member-of\",\"attribute_value\":\"Development\",\"created_at\":\"2022-05-08T08:18:01.374568+00:00\",\"modified_at\":\"2022-05-08T08:18:01.582952+00:00\"},\"relationships\":{\"role\":{\"data\":{\"type\":\"roles\",\"id\":\"603dd82a-cea7-11ec-ac89-da7ad0900002\"}}}},{\"type\":\"authn_mappings\",\"id\":\"60fffd6a-cea7-11ec-ac89-da7ad0900002\",\"attributes\":{\"attribute_key\":\"testtypescriptgetanauthnmappingbyuuidreturnsokresponse1651997881\",\"attribute_value\":\"Test-Typescript-Get_an_AuthN_Mapping_by_UUID_returns_OK_response-1651997881\",\"created_at\":\"2022-05-08T08:18:02.387900+00:00\",\"modified_at\":\"2022-05-08T08:18:02.387900+00:00\"},\"relationships\":{\"role\":{\"data\":{\"type\":\"roles\",\"id\":\"60d3ae04-cea7-11ec-ac89-da7ad0900002\"}}}},{\"type\":\"authn_mappings\",\"id\":\"6176c44a-cea7-11ec-ac89-da7ad0900002\",\"attributes\":{\"attribute_key\":\"testtypescriptlistallauthnmappingsreturnsokresponse1651997882\",\"attribute_value\":\"Test-Typescript-List_all_AuthN_Mappings_returns_OK_response-1651997882\",\"created_at\":\"2022-05-08T08:18:03.167098+00:00\",\"modified_at\":\"2022-05-08T08:18:03.167098+00:00\"},\"relationships\":{\"role\":{\"data\":{\"type\":\"roles\",\"id\":\"61366ea5-cea7-11ec-ac89-da7ad0900002\"}}}},{\"type\":\"authn_mappings\",\"id\":\"125e0500-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"attribute_key\":\"testlistallauthnmappingsreturnsokresponse1652349077\",\"attribute_value\":\"Test-List_all_AuthN_Mappings_returns_OK_response-1652349077\",\"created_at\":\"2022-05-12T09:51:18.789402+00:00\",\"modified_at\":\"2022-05-12T09:51:18.789402+00:00\"},\"relationships\":{\"role\":{\"data\":{\"type\":\"roles\",\"id\":\"120a6d32-d1d9-11ec-ad3d-da7ad0900002\"}}}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:17 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/authn_mappings/125e0500-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:17 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/120a6d32-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:17 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Archive-case-returns-Bad-Request-response.frozen b/tests/scenarios/cassettes/v2/case_management/Archive-case-returns-Bad-Request-response.frozen new file mode 100644 index 000000000..02ebd0b91 --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Archive-case-returns-Bad-Request-response.frozen @@ -0,0 +1 @@ +2024-02-14T18:55:15.159Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Archive-case-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/case_management/Archive-case-returns-Bad-Request-response.json new file mode 100644 index 000000000..046f100f7 --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Archive-case-returns-Bad-Request-response.json @@ -0,0 +1,73 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"priority\":\"P4\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}},\"type\":\"case\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"4e49aede-4c04-42d3-b5bc-f8eb4c1340df\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"created_at\":\"2024-02-14T18:55:15.280494299Z\",\"creation_source\":\"MANUAL\",\"description\":\"\",\"insights\":[],\"internal_id\":\"4e49aede-4c04-42d3-b5bc-f8eb4c1340df\",\"key\":\"DDFC-182\",\"priority\":\"P4\",\"public_id\":\"242\",\"status\":\"OPEN\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"created_by\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\"}},\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}}},\"included\":[{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\",\"attributes\":{\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":\"\"}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:15 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"type\":\"project\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases/4e49aede-4c04-42d3-b5bc-f8eb4c1340df/archive" + }, + "response": { + "body": { + "string": "{\"errors\":[{\"status\":\"400\",\"title\":\"Bad Request\",\"detail\":\"got type \\\"project\\\" expected one of \\\"case\\\"\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:15 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Archive-case-returns-Not-Found-response.frozen b/tests/scenarios/cassettes/v2/case_management/Archive-case-returns-Not-Found-response.frozen new file mode 100644 index 000000000..16674248e --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Archive-case-returns-Not-Found-response.frozen @@ -0,0 +1 @@ +2024-02-14T18:55:15.378Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Archive-case-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/case_management/Archive-case-returns-Not-Found-response.json new file mode 100644 index 000000000..1a31061ad --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Archive-case-returns-Not-Found-response.json @@ -0,0 +1,39 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"type\":\"case\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases/67d80aa3-36ff-44b9-a694-c501a7591737/archive" + }, + "response": { + "body": { + "string": "{\"errors\":[{\"code\":\"resource_not_found\",\"title\":\"case not found\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:15 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Archive-case-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/case_management/Archive-case-returns-OK-response.frozen new file mode 100644 index 000000000..f8ce6d98b --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Archive-case-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-02-14T18:55:15.466Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Archive-case-returns-OK-response.json b/tests/scenarios/cassettes/v2/case_management/Archive-case-returns-OK-response.json new file mode 100644 index 000000000..9a40c5687 --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Archive-case-returns-OK-response.json @@ -0,0 +1,73 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"priority\":\"P4\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}},\"type\":\"case\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"3752309b-6a77-4015-845a-02ff88647b4b\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"created_at\":\"2024-02-14T18:55:15.546103234Z\",\"creation_source\":\"MANUAL\",\"description\":\"\",\"insights\":[],\"internal_id\":\"3752309b-6a77-4015-845a-02ff88647b4b\",\"key\":\"DDFC-183\",\"priority\":\"P4\",\"public_id\":\"243\",\"status\":\"OPEN\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"created_by\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\"}},\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}}},\"included\":[{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\",\"attributes\":{\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":\"\"}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:15 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"type\":\"case\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases/3752309b-6a77-4015-845a-02ff88647b4b/archive" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"3752309b-6a77-4015-845a-02ff88647b4b\",\"type\":\"case\",\"attributes\":{\"archived_at\":\"2024-02-14T18:55:15.641594121Z\",\"attributes\":{},\"created_at\":\"2024-02-14T18:55:15.546103Z\",\"creation_source\":\"MANUAL\",\"description\":\"\",\"insights\":[],\"internal_id\":\"3752309b-6a77-4015-845a-02ff88647b4b\",\"key\":\"DDFC-183\",\"priority\":\"P4\",\"public_id\":\"243\",\"status\":\"OPEN\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"created_by\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\"}},\"modified_by\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\"}},\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}}},\"included\":[{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\",\"attributes\":{\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":\"\"}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:15 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Assign-case-returns-Bad-Request-response.frozen b/tests/scenarios/cassettes/v2/case_management/Assign-case-returns-Bad-Request-response.frozen new file mode 100644 index 000000000..2749371a9 --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Assign-case-returns-Bad-Request-response.frozen @@ -0,0 +1 @@ +2024-02-14T18:55:15.651Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Assign-case-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/case_management/Assign-case-returns-Bad-Request-response.json new file mode 100644 index 000000000..f478c4f2e --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Assign-case-returns-Bad-Request-response.json @@ -0,0 +1,73 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"priority\":\"P4\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}},\"type\":\"case\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"cf2e3b59-d504-4714-9853-38e4ceddb858\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"created_at\":\"2024-02-14T18:55:15.728783622Z\",\"creation_source\":\"MANUAL\",\"description\":\"\",\"insights\":[],\"internal_id\":\"cf2e3b59-d504-4714-9853-38e4ceddb858\",\"key\":\"DDFC-184\",\"priority\":\"P4\",\"public_id\":\"244\",\"status\":\"OPEN\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"created_by\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\"}},\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}}},\"included\":[{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\",\"attributes\":{\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":\"\"}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:15 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"assignee_id\":\"invalid-uuid\"},\"type\":\"case\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases/cf2e3b59-d504-4714-9853-38e4ceddb858/assign" + }, + "response": { + "body": { + "string": "{\"errors\":[{\"code\":\"invalid_command\",\"title\":\"error when validating input command: 'assigneeid' field must be an uuid\",\"meta\":{\"entity\":\"assigneeid\",\"rule\":\"uuid\"}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:15 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Assign-case-returns-Not-Found-response.frozen b/tests/scenarios/cassettes/v2/case_management/Assign-case-returns-Not-Found-response.frozen new file mode 100644 index 000000000..dac002f7f --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Assign-case-returns-Not-Found-response.frozen @@ -0,0 +1 @@ +2024-02-14T18:55:15.832Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Assign-case-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/case_management/Assign-case-returns-Not-Found-response.json new file mode 100644 index 000000000..e718cb62d --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Assign-case-returns-Not-Found-response.json @@ -0,0 +1,97 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"email\":\"Test-Assign_case_returns_Not_Found_response-1707936915@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/users" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"users\",\"id\":\"9740b08d-cb6a-11ee-8bd8-2a1a3c7b5bdd\",\"attributes\":{\"name\":null,\"handle\":\"test-assign_case_returns_not_found_response-1707936915@datadoghq.com\",\"created_at\":\"2024-02-14T18:55:15.963542+00:00\",\"modified_at\":\"2024-02-14T18:55:15.963542+00:00\",\"email\":\"test-assign_case_returns_not_found_response-1707936915@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/379ecb2d1d9ca2e9ce66fa109609c256?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:15 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"assignee_id\":\"9740b08d-cb6a-11ee-8bd8-2a1a3c7b5bdd\"},\"type\":\"case\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases/67d80aa3-36ff-44b9-a694-c501a7591737/assign" + }, + "response": { + "body": { + "string": "{\"errors\":[{\"code\":\"resource_not_found\",\"title\":\"case not found\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:15 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/users/9740b08d-cb6a-11ee-8bd8-2a1a3c7b5bdd" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:15 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Assign-case-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/case_management/Assign-case-returns-OK-response.frozen new file mode 100644 index 000000000..63999feda --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Assign-case-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-02-14T18:55:16.362Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Assign-case-returns-OK-response.json b/tests/scenarios/cassettes/v2/case_management/Assign-case-returns-OK-response.json new file mode 100644 index 000000000..9bcbfa283 --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Assign-case-returns-OK-response.json @@ -0,0 +1,131 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"priority\":\"P4\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}},\"type\":\"case\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"2d07d89b-2f91-47c2-b3ea-ee28ffee5b4c\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"created_at\":\"2024-02-14T18:55:16.445823452Z\",\"creation_source\":\"MANUAL\",\"description\":\"\",\"insights\":[],\"internal_id\":\"2d07d89b-2f91-47c2-b3ea-ee28ffee5b4c\",\"key\":\"DDFC-185\",\"priority\":\"P4\",\"public_id\":\"245\",\"status\":\"OPEN\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"created_by\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\"}},\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}}},\"included\":[{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\",\"attributes\":{\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":\"\"}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:16 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"email\":\"Test-Assign_case_returns_OK_response-1707936916@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/users" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"users\",\"id\":\"97a38d32-cb6a-11ee-9645-0a530ef9b7d3\",\"attributes\":{\"name\":null,\"handle\":\"test-assign_case_returns_ok_response-1707936916@datadoghq.com\",\"created_at\":\"2024-02-14T18:55:16.611469+00:00\",\"modified_at\":\"2024-02-14T18:55:16.611469+00:00\",\"email\":\"test-assign_case_returns_ok_response-1707936916@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/982f69dc821d8ef307cfc8907452899b?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:16 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"assignee_id\":\"97a38d32-cb6a-11ee-9645-0a530ef9b7d3\"},\"type\":\"case\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases/2d07d89b-2f91-47c2-b3ea-ee28ffee5b4c/assign" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"2d07d89b-2f91-47c2-b3ea-ee28ffee5b4c\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"created_at\":\"2024-02-14T18:55:16.445823Z\",\"creation_source\":\"MANUAL\",\"description\":\"\",\"insights\":[],\"internal_id\":\"2d07d89b-2f91-47c2-b3ea-ee28ffee5b4c\",\"key\":\"DDFC-185\",\"modified_at\":\"2024-02-14T18:55:16.737803Z\",\"priority\":\"P4\",\"public_id\":\"245\",\"status\":\"OPEN\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"assignee\":{\"data\":{\"id\":\"97a38d32-cb6a-11ee-9645-0a530ef9b7d3\",\"type\":\"user\"}},\"created_by\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\"}},\"modified_by\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\"}},\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}}},\"included\":[{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\",\"attributes\":{\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":\"\"}},{\"id\":\"97a38d32-cb6a-11ee-9645-0a530ef9b7d3\",\"type\":\"user\",\"attributes\":{\"email\":\"test-assign_case_returns_ok_response-1707936916@datadoghq.com\",\"handle\":\"test-assign_case_returns_ok_response-1707936916@datadoghq.com\",\"name\":\"\"}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:16 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/users/97a38d32-cb6a-11ee-9645-0a530ef9b7d3" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:16 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Create-a-case-returns-Bad-Request-response.frozen b/tests/scenarios/cassettes/v2/case_management/Create-a-case-returns-Bad-Request-response.frozen new file mode 100644 index 000000000..3d4309137 --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Create-a-case-returns-Bad-Request-response.frozen @@ -0,0 +1 @@ +2024-02-14T18:55:16.995Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Create-a-case-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/case_management/Create-a-case-returns-Bad-Request-response.json new file mode 100644 index 000000000..a4e022cb3 --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Create-a-case-returns-Bad-Request-response.json @@ -0,0 +1,39 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"priority\":\"NOT_DEFINED\",\"title\":\"Security breach investigation\",\"type\":\"STANDARD\"},\"relationships\":{\"assignee\":{\"data\":{\"id\":\"00000000-0000-0000-0000-000000000000\",\"type\":\"userx\"}},\"project\":{\"data\":{\"id\":\"e555e290-ed65-49bd-ae18-8acbfcf18db7\",\"type\":\"project\"}}},\"type\":\"case\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases" + }, + "response": { + "body": { + "string": "{\"errors\":[{\"status\":\"400\",\"title\":\"Bad Request\",\"detail\":\"got type \\\"userx\\\" expected one of \\\"user\\\"\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:16 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Create-a-case-returns-CREATED-response.frozen b/tests/scenarios/cassettes/v2/case_management/Create-a-case-returns-CREATED-response.frozen new file mode 100644 index 000000000..d0a1a57a4 --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Create-a-case-returns-CREATED-response.frozen @@ -0,0 +1 @@ +2024-02-14T18:55:17.074Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Create-a-case-returns-CREATED-response.json b/tests/scenarios/cassettes/v2/case_management/Create-a-case-returns-CREATED-response.json new file mode 100644 index 000000000..cbca42220 --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Create-a-case-returns-CREATED-response.json @@ -0,0 +1,97 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"email\":\"Test-Create_a_case_returns_CREATED_response-1707936917@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/users" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"users\",\"id\":\"97fb5e7f-cb6a-11ee-8de6-d2393b962484\",\"attributes\":{\"name\":null,\"handle\":\"test-create_a_case_returns_created_response-1707936917@datadoghq.com\",\"created_at\":\"2024-02-14T18:55:17.186960+00:00\",\"modified_at\":\"2024-02-14T18:55:17.186960+00:00\",\"email\":\"test-create_a_case_returns_created_response-1707936917@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/04ba872d0c124a11691bb75e2b774d08?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:17 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"priority\":\"NOT_DEFINED\",\"title\":\"Security breach investigation in 8216c516b64665ce\",\"type\":\"STANDARD\"},\"relationships\":{\"assignee\":{\"data\":{\"id\":\"97fb5e7f-cb6a-11ee-8de6-d2393b962484\",\"type\":\"user\"}},\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}},\"type\":\"case\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"93237ca1-b5ee-4116-9bfc-d94f99cd9629\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"created_at\":\"2024-02-14T18:55:17.301872096Z\",\"creation_source\":\"MANUAL\",\"description\":\"\",\"insights\":[],\"internal_id\":\"93237ca1-b5ee-4116-9bfc-d94f99cd9629\",\"key\":\"DDFC-186\",\"priority\":\"NOT_DEFINED\",\"public_id\":\"246\",\"status\":\"OPEN\",\"title\":\"Security breach investigation in 8216c516b64665ce\",\"type\":\"STANDARD\"},\"relationships\":{\"assignee\":{\"data\":{\"id\":\"97fb5e7f-cb6a-11ee-8de6-d2393b962484\",\"type\":\"user\"}},\"created_by\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\"}},\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}}},\"included\":[{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\",\"attributes\":{\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":\"\"}},{\"id\":\"97fb5e7f-cb6a-11ee-8de6-d2393b962484\",\"type\":\"user\",\"attributes\":{\"email\":\"test-create_a_case_returns_created_response-1707936917@datadoghq.com\",\"handle\":\"test-create_a_case_returns_created_response-1707936917@datadoghq.com\",\"name\":\"\"}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:17 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/users/97fb5e7f-cb6a-11ee-8de6-d2393b962484" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:17 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Get-the-details-of-a-case-returns-Not-Found-response.frozen b/tests/scenarios/cassettes/v2/case_management/Get-the-details-of-a-case-returns-Not-Found-response.frozen new file mode 100644 index 000000000..1f1e9770d --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Get-the-details-of-a-case-returns-Not-Found-response.frozen @@ -0,0 +1 @@ +2024-02-14T18:55:17.678Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Get-the-details-of-a-case-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/case_management/Get-the-details-of-a-case-returns-Not-Found-response.json new file mode 100644 index 000000000..7ea49c213 --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Get-the-details-of-a-case-returns-Not-Found-response.json @@ -0,0 +1,33 @@ +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/cases/67d80aa3-36ff-44b9-a694-c501a7591737" + }, + "response": { + "body": { + "string": "{\"errors\":[{\"code\":\"resource_not_found\",\"title\":\"case not found\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:17 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Get-the-details-of-a-case-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/case_management/Get-the-details-of-a-case-returns-OK-response.frozen new file mode 100644 index 000000000..ce3e1d89d --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Get-the-details-of-a-case-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-02-14T18:55:17.758Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Get-the-details-of-a-case-returns-OK-response.json b/tests/scenarios/cassettes/v2/case_management/Get-the-details-of-a-case-returns-OK-response.json new file mode 100644 index 000000000..833c08e28 --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Get-the-details-of-a-case-returns-OK-response.json @@ -0,0 +1,67 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"priority\":\"P4\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}},\"type\":\"case\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"d981cc6f-654e-4528-8451-d3d99259d4d6\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"created_at\":\"2024-02-14T18:55:17.837538892Z\",\"creation_source\":\"MANUAL\",\"description\":\"\",\"insights\":[],\"internal_id\":\"d981cc6f-654e-4528-8451-d3d99259d4d6\",\"key\":\"DDFC-187\",\"priority\":\"P4\",\"public_id\":\"247\",\"status\":\"OPEN\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"created_by\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\"}},\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}}},\"included\":[{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\",\"attributes\":{\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":\"\"}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:17 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/cases/d981cc6f-654e-4528-8451-d3d99259d4d6" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"d981cc6f-654e-4528-8451-d3d99259d4d6\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"created_at\":\"2024-02-14T18:55:17.837539Z\",\"creation_source\":\"MANUAL\",\"description\":\"\",\"insights\":[],\"internal_id\":\"d981cc6f-654e-4528-8451-d3d99259d4d6\",\"key\":\"DDFC-187\",\"priority\":\"P4\",\"public_id\":\"247\",\"status\":\"OPEN\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"created_by\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\"}},\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}}},\"included\":[{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\",\"attributes\":{\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":\"\"}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:17 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Unarchive-case-returns-Bad-Request-response.frozen b/tests/scenarios/cassettes/v2/case_management/Unarchive-case-returns-Bad-Request-response.frozen new file mode 100644 index 000000000..5b768a1c8 --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Unarchive-case-returns-Bad-Request-response.frozen @@ -0,0 +1 @@ +2024-02-14T18:55:17.936Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Unarchive-case-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/case_management/Unarchive-case-returns-Bad-Request-response.json new file mode 100644 index 000000000..69b3b67d4 --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Unarchive-case-returns-Bad-Request-response.json @@ -0,0 +1,73 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"priority\":\"P4\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}},\"type\":\"case\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"7c588891-1486-4cf6-992f-f0c3a97f0245\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"created_at\":\"2024-02-14T18:55:18.021909299Z\",\"creation_source\":\"MANUAL\",\"description\":\"\",\"insights\":[],\"internal_id\":\"7c588891-1486-4cf6-992f-f0c3a97f0245\",\"key\":\"DDFC-188\",\"priority\":\"P4\",\"public_id\":\"248\",\"status\":\"OPEN\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"created_by\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\"}},\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}}},\"included\":[{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\",\"attributes\":{\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":\"\"}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:17 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"type\":\"project\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases/7c588891-1486-4cf6-992f-f0c3a97f0245/unarchive" + }, + "response": { + "body": { + "string": "{\"errors\":[{\"status\":\"400\",\"title\":\"Bad Request\",\"detail\":\"got type \\\"project\\\" expected one of \\\"case\\\"\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:17 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Unarchive-case-returns-Not-Found-response.frozen b/tests/scenarios/cassettes/v2/case_management/Unarchive-case-returns-Not-Found-response.frozen new file mode 100644 index 000000000..034f1d4aa --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Unarchive-case-returns-Not-Found-response.frozen @@ -0,0 +1 @@ +2024-02-14T18:55:18.130Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Unarchive-case-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/case_management/Unarchive-case-returns-Not-Found-response.json new file mode 100644 index 000000000..5196689a8 --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Unarchive-case-returns-Not-Found-response.json @@ -0,0 +1,39 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"type\":\"case\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases/67d80aa3-36ff-44b9-a694-c501a7591737/unarchive" + }, + "response": { + "body": { + "string": "{\"errors\":[{\"code\":\"resource_not_found\",\"title\":\"case not found\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:18 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Unarchive-case-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/case_management/Unarchive-case-returns-OK-response.frozen new file mode 100644 index 000000000..df7e85e9f --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Unarchive-case-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-02-14T18:55:18.220Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Unarchive-case-returns-OK-response.json b/tests/scenarios/cassettes/v2/case_management/Unarchive-case-returns-OK-response.json new file mode 100644 index 000000000..3576e2708 --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Unarchive-case-returns-OK-response.json @@ -0,0 +1,73 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"priority\":\"P4\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}},\"type\":\"case\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"56b03839-5199-4207-94e6-648f5c363d1d\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"created_at\":\"2024-02-14T18:55:18.285988591Z\",\"creation_source\":\"MANUAL\",\"description\":\"\",\"insights\":[],\"internal_id\":\"56b03839-5199-4207-94e6-648f5c363d1d\",\"key\":\"DDFC-189\",\"priority\":\"P4\",\"public_id\":\"249\",\"status\":\"OPEN\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"created_by\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\"}},\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}}},\"included\":[{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\",\"attributes\":{\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":\"\"}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:18 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"type\":\"case\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases/56b03839-5199-4207-94e6-648f5c363d1d/unarchive" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"56b03839-5199-4207-94e6-648f5c363d1d\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"created_at\":\"2024-02-14T18:55:18.285989Z\",\"creation_source\":\"MANUAL\",\"description\":\"\",\"insights\":[],\"internal_id\":\"56b03839-5199-4207-94e6-648f5c363d1d\",\"key\":\"DDFC-189\",\"priority\":\"P4\",\"public_id\":\"249\",\"status\":\"OPEN\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"created_by\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\"}},\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}}},\"included\":[{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\",\"attributes\":{\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":\"\"}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:18 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Unassign-case-returns-Bad-Request-response.frozen b/tests/scenarios/cassettes/v2/case_management/Unassign-case-returns-Bad-Request-response.frozen new file mode 100644 index 000000000..5c53ccfe4 --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Unassign-case-returns-Bad-Request-response.frozen @@ -0,0 +1 @@ +2024-02-14T18:55:18.364Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Unassign-case-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/case_management/Unassign-case-returns-Bad-Request-response.json new file mode 100644 index 000000000..a7f751076 --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Unassign-case-returns-Bad-Request-response.json @@ -0,0 +1,73 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"priority\":\"P4\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}},\"type\":\"case\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"4c89618c-11cc-40ba-bc6c-000e862910b1\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"created_at\":\"2024-02-14T18:55:18.434117143Z\",\"creation_source\":\"MANUAL\",\"description\":\"\",\"insights\":[],\"internal_id\":\"4c89618c-11cc-40ba-bc6c-000e862910b1\",\"key\":\"DDFC-190\",\"priority\":\"P4\",\"public_id\":\"250\",\"status\":\"OPEN\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"created_by\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\"}},\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}}},\"included\":[{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\",\"attributes\":{\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":\"\"}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:18 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"type\":\"project\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases/4c89618c-11cc-40ba-bc6c-000e862910b1/unassign" + }, + "response": { + "body": { + "string": "{\"errors\":[{\"status\":\"400\",\"title\":\"Bad Request\",\"detail\":\"got type \\\"project\\\" expected one of \\\"case\\\"\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:18 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Unassign-case-returns-Not-Found-response.frozen b/tests/scenarios/cassettes/v2/case_management/Unassign-case-returns-Not-Found-response.frozen new file mode 100644 index 000000000..6a08f9742 --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Unassign-case-returns-Not-Found-response.frozen @@ -0,0 +1 @@ +2024-02-14T18:55:18.522Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Unassign-case-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/case_management/Unassign-case-returns-Not-Found-response.json new file mode 100644 index 000000000..56684f5cd --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Unassign-case-returns-Not-Found-response.json @@ -0,0 +1,39 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"type\":\"case\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases/67d80aa3-36ff-44b9-a694-c501a7591737/unassign" + }, + "response": { + "body": { + "string": "{\"errors\":[{\"code\":\"resource_not_found\",\"title\":\"case not found\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:18 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Unassign-case-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/case_management/Unassign-case-returns-OK-response.frozen new file mode 100644 index 000000000..e57766f0d --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Unassign-case-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-02-14T18:55:18.613Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Unassign-case-returns-OK-response.json b/tests/scenarios/cassettes/v2/case_management/Unassign-case-returns-OK-response.json new file mode 100644 index 000000000..e77fc81b7 --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Unassign-case-returns-OK-response.json @@ -0,0 +1,73 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"priority\":\"P4\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}},\"type\":\"case\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"fa3c26fc-fada-4308-8888-4067d97acf06\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"created_at\":\"2024-02-14T18:55:18.689935858Z\",\"creation_source\":\"MANUAL\",\"description\":\"\",\"insights\":[],\"internal_id\":\"fa3c26fc-fada-4308-8888-4067d97acf06\",\"key\":\"DDFC-191\",\"priority\":\"P4\",\"public_id\":\"251\",\"status\":\"OPEN\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"created_by\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\"}},\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}}},\"included\":[{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\",\"attributes\":{\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":\"\"}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:18 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"type\":\"case\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases/fa3c26fc-fada-4308-8888-4067d97acf06/unassign" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"fa3c26fc-fada-4308-8888-4067d97acf06\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"created_at\":\"2024-02-14T18:55:18.689936Z\",\"creation_source\":\"MANUAL\",\"description\":\"\",\"insights\":[],\"internal_id\":\"fa3c26fc-fada-4308-8888-4067d97acf06\",\"key\":\"DDFC-191\",\"priority\":\"P4\",\"public_id\":\"251\",\"status\":\"OPEN\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"created_by\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\"}},\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}}},\"included\":[{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\",\"attributes\":{\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":\"\"}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:18 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Update-case-priority-returns-Bad-Request-response.frozen b/tests/scenarios/cassettes/v2/case_management/Update-case-priority-returns-Bad-Request-response.frozen new file mode 100644 index 000000000..b44760c04 --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Update-case-priority-returns-Bad-Request-response.frozen @@ -0,0 +1 @@ +2024-02-14T18:55:18.767Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Update-case-priority-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/case_management/Update-case-priority-returns-Bad-Request-response.json new file mode 100644 index 000000000..21a6c7a2e --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Update-case-priority-returns-Bad-Request-response.json @@ -0,0 +1,73 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"priority\":\"P4\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}},\"type\":\"case\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"683c81be-fa27-42c8-957c-897923a2f660\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"created_at\":\"2024-02-14T18:55:18.846163387Z\",\"creation_source\":\"MANUAL\",\"description\":\"\",\"insights\":[],\"internal_id\":\"683c81be-fa27-42c8-957c-897923a2f660\",\"key\":\"DDFC-192\",\"priority\":\"P4\",\"public_id\":\"252\",\"status\":\"OPEN\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"created_by\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\"}},\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}}},\"included\":[{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\",\"attributes\":{\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":\"\"}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:18 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"priority\":\"P1234\"},\"type\":\"case\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases/683c81be-fa27-42c8-957c-897923a2f660/priority" + }, + "response": { + "body": { + "string": "{\"errors\":[{\"title\":\"Generic Error\",\"detail\":\"invalid priority P1234. Must be one of P1, P2, P3, P4, P5, NOT_DEFINED\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:18 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Update-case-priority-returns-Not-Found-response.frozen b/tests/scenarios/cassettes/v2/case_management/Update-case-priority-returns-Not-Found-response.frozen new file mode 100644 index 000000000..e6fee30e9 --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Update-case-priority-returns-Not-Found-response.frozen @@ -0,0 +1 @@ +2024-02-14T18:55:18.927Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Update-case-priority-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/case_management/Update-case-priority-returns-Not-Found-response.json new file mode 100644 index 000000000..048c4404b --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Update-case-priority-returns-Not-Found-response.json @@ -0,0 +1,39 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"priority\":\"P3\"},\"type\":\"case\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases/67d80aa3-36ff-44b9-a694-c501a7591737/priority" + }, + "response": { + "body": { + "string": "{\"errors\":[{\"code\":\"resource_not_found\",\"title\":\"case not found\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:18 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Update-case-priority-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/case_management/Update-case-priority-returns-OK-response.frozen new file mode 100644 index 000000000..42fe59de7 --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Update-case-priority-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-02-14T18:55:19.004Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Update-case-priority-returns-OK-response.json b/tests/scenarios/cassettes/v2/case_management/Update-case-priority-returns-OK-response.json new file mode 100644 index 000000000..0197920d8 --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Update-case-priority-returns-OK-response.json @@ -0,0 +1,73 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"priority\":\"P4\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}},\"type\":\"case\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"c55de906-a08b-4916-ade3-5f1b268379c3\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"created_at\":\"2024-02-14T18:55:19.080339451Z\",\"creation_source\":\"MANUAL\",\"description\":\"\",\"insights\":[],\"internal_id\":\"c55de906-a08b-4916-ade3-5f1b268379c3\",\"key\":\"DDFC-193\",\"priority\":\"P4\",\"public_id\":\"253\",\"status\":\"OPEN\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"created_by\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\"}},\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}}},\"included\":[{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\",\"attributes\":{\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":\"\"}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:19 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"priority\":\"P3\"},\"type\":\"case\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases/c55de906-a08b-4916-ade3-5f1b268379c3/priority" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"c55de906-a08b-4916-ade3-5f1b268379c3\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"created_at\":\"2024-02-14T18:55:19.080339Z\",\"creation_source\":\"MANUAL\",\"description\":\"\",\"insights\":[],\"internal_id\":\"c55de906-a08b-4916-ade3-5f1b268379c3\",\"key\":\"DDFC-193\",\"modified_at\":\"2024-02-14T18:55:19.160763Z\",\"priority\":\"P3\",\"public_id\":\"253\",\"status\":\"OPEN\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"created_by\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\"}},\"modified_by\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\"}},\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}}},\"included\":[{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\",\"attributes\":{\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":\"\"}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:19 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Update-case-status-returns-Bad-Request-response.frozen b/tests/scenarios/cassettes/v2/case_management/Update-case-status-returns-Bad-Request-response.frozen new file mode 100644 index 000000000..1c1c338c0 --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Update-case-status-returns-Bad-Request-response.frozen @@ -0,0 +1 @@ +2024-02-14T18:55:19.178Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Update-case-status-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/case_management/Update-case-status-returns-Bad-Request-response.json new file mode 100644 index 000000000..a24276848 --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Update-case-status-returns-Bad-Request-response.json @@ -0,0 +1,73 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"priority\":\"P4\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}},\"type\":\"case\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"1732a7a1-667c-45e4-ad8c-73a1c1f9f6f0\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"created_at\":\"2024-02-14T18:55:19.251201316Z\",\"creation_source\":\"MANUAL\",\"description\":\"\",\"insights\":[],\"internal_id\":\"1732a7a1-667c-45e4-ad8c-73a1c1f9f6f0\",\"key\":\"DDFC-194\",\"priority\":\"P4\",\"public_id\":\"254\",\"status\":\"OPEN\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"created_by\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\"}},\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}}},\"included\":[{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\",\"attributes\":{\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":\"\"}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:19 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"status\":\"OPENED\"},\"type\":\"case\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases/1732a7a1-667c-45e4-ad8c-73a1c1f9f6f0/status" + }, + "response": { + "body": { + "string": "{\"errors\":[{\"title\":\"Generic Error\",\"detail\":\"invalid status OPENED. Must be one of SUNKNOWN, OPEN, IN_PROGRESS, CLOSED\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:19 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Update-case-status-returns-Not-Found-response.frozen b/tests/scenarios/cassettes/v2/case_management/Update-case-status-returns-Not-Found-response.frozen new file mode 100644 index 000000000..3725bea8b --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Update-case-status-returns-Not-Found-response.frozen @@ -0,0 +1 @@ +2024-02-14T18:55:19.338Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Update-case-status-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/case_management/Update-case-status-returns-Not-Found-response.json new file mode 100644 index 000000000..896f80e9e --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Update-case-status-returns-Not-Found-response.json @@ -0,0 +1,39 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"status\":\"OPEN\"},\"type\":\"case\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases/67d80aa3-36ff-44b9-a694-c501a7591737/status" + }, + "response": { + "body": { + "string": "{\"errors\":[{\"code\":\"resource_not_found\",\"title\":\"case not found\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:19 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Update-case-status-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/case_management/Update-case-status-returns-OK-response.frozen new file mode 100644 index 000000000..a7c1161cd --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Update-case-status-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-02-14T18:55:19.415Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/case_management/Update-case-status-returns-OK-response.json b/tests/scenarios/cassettes/v2/case_management/Update-case-status-returns-OK-response.json new file mode 100644 index 000000000..6371842f7 --- /dev/null +++ b/tests/scenarios/cassettes/v2/case_management/Update-case-status-returns-OK-response.json @@ -0,0 +1,73 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"priority\":\"P4\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}},\"type\":\"case\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"d1633979-1770-4e5b-a2d0-2ede9f2a8f43\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"created_at\":\"2024-02-14T18:55:19.487094769Z\",\"creation_source\":\"MANUAL\",\"description\":\"\",\"insights\":[],\"internal_id\":\"d1633979-1770-4e5b-a2d0-2ede9f2a8f43\",\"key\":\"DDFC-195\",\"priority\":\"P4\",\"public_id\":\"255\",\"status\":\"OPEN\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"created_by\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\"}},\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}}},\"included\":[{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\",\"attributes\":{\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":\"\"}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:19 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"status\":\"IN_PROGRESS\"},\"type\":\"case\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cases/d1633979-1770-4e5b-a2d0-2ede9f2a8f43/status" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"d1633979-1770-4e5b-a2d0-2ede9f2a8f43\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"created_at\":\"2024-02-14T18:55:19.487095Z\",\"creation_source\":\"MANUAL\",\"description\":\"\",\"insights\":[],\"internal_id\":\"d1633979-1770-4e5b-a2d0-2ede9f2a8f43\",\"key\":\"DDFC-195\",\"modified_at\":\"2024-02-14T18:55:19.559421Z\",\"priority\":\"P4\",\"public_id\":\"255\",\"status\":\"IN_PROGRESS\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"created_by\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\"}},\"modified_by\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\"}},\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}}},\"included\":[{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"user\",\"attributes\":{\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\",\"name\":\"\"}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 14 Feb 2024 18:55:19 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/ci_visibility_pipelines/Aggregate-pipelines-events-returns-OK-response.json b/tests/scenarios/cassettes/v2/ci_visibility_pipelines/Aggregate-pipelines-events-returns-OK-response.json index f44888856..52d94db83 100644 --- a/tests/scenarios/cassettes/v2/ci_visibility_pipelines/Aggregate-pipelines-events-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/ci_visibility_pipelines/Aggregate-pipelines-events-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"compute\":[{\"aggregation\":\"pc90\",\"metric\":\"@duration\",\"type\":\"total\"}],\"filter\":{\"from\":\"now-15m\",\"query\":\"@ci.provider.name:(gitlab OR github)\",\"to\":\"now\"},\"group_by\":[{\"facet\":\"@ci.status\",\"limit\":10,\"total\":false}],\"options\":{\"timezone\":\"GMT\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/ci/pipelines/analytics/aggregate"}, "response": {"body": {"string": "{\"meta\":{\"elapsed\":170,\"request_id\":\"pddv1ChYzYWhuN3VqLVR4ZTV4V0Q0LVFDYVB3IiwKHKG6G1xIn05fWwGRsD7MITrTmBASHDayL3wqgBcSDEOG5uEAxWRZVp8G4w\",\"status\":\"done\"},\"data\":{\"buckets\":[{\"computes\":{\"c0\":236880835985.0375},\"by\":{\"@ci.status\":\"error\"}},{\"computes\":{\"c0\":3026515237.0540113},\"by\":{\"@ci.status\":\"skipped\"}},{\"computes\":{\"c0\":146575581775.90088},\"by\":{\"@ci.status\":\"success\"}}]}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 28 Nov 2022 11:57:44 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"compute\":[{\"aggregation\":\"pc90\",\"metric\":\"@duration\",\"type\":\"total\"}],\"filter\":{\"from\":\"now-15m\",\"query\":\"@ci.provider.name:(gitlab OR github)\",\"to\":\"now\"},\"group_by\":[{\"facet\":\"@ci.status\",\"limit\":10,\"total\":false}],\"options\":{\"timezone\":\"GMT\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/ci/pipelines/analytics/aggregate" + }, + "response": { + "body": { + "string": "{\"meta\":{\"elapsed\":170,\"request_id\":\"pddv1ChYzYWhuN3VqLVR4ZTV4V0Q0LVFDYVB3IiwKHKG6G1xIn05fWwGRsD7MITrTmBASHDayL3wqgBcSDEOG5uEAxWRZVp8G4w\",\"status\":\"done\"},\"data\":{\"buckets\":[{\"computes\":{\"c0\":236880835985.0375},\"by\":{\"@ci.status\":\"error\"}},{\"computes\":{\"c0\":3026515237.0540113},\"by\":{\"@ci.status\":\"skipped\"}},{\"computes\":{\"c0\":146575581775.90088},\"by\":{\"@ci.status\":\"success\"}}]}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 28 Nov 2022 11:57:44 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/ci_visibility_pipelines/Get-a-list-of-pipelines-events-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v2/ci_visibility_pipelines/Get-a-list-of-pipelines-events-returns-OK-response-with-pagination.json index 65c826613..0f938d720 100644 --- a/tests/scenarios/cassettes/v2/ci_visibility_pipelines/Get-a-list-of-pipelines-events-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v2/ci_visibility_pipelines/Get-a-list-of-pipelines-events-returns-OK-response-with-pagination.json @@ -1 +1,61 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/ci/pipelines/events?filter%5Bfrom%5D=2022-10-21T08%3A44%3A43.365Z&filter%5Bto%5D=2022-10-21T08%3A45%3A13.365Z&page%5Blimit%5D=2"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"AgAAAYP5t3tYR3aQMAAAAAAAAAAYAAAAAEFZUDV0M3RZQUFBanF1YktfS2dXdjlOWQAAACQAAAAAMDE4M2Y5YjctN2I1OC00YjQwLWFmNjEtNjllYTUwYjA1YmI3\",\"type\":\"cipipeline\",\"attributes\":{\"attributes\":{\"duration\":4000000000,\"github\":{\"conclusion\":\"success\",\"node_group\":\"GitHub Actions\",\"html_url\":\"https://github.com/DataDog/repo8s-resources\",\"run_attempt\":\"1\",\"app_id\":\"128890\"},\"git\":{\"commit\":{\"sha\":\"ac96ab878db8812762c13c4364ec5aa0b14158ce\"},\"default_branch\":\"master\",\"repository_url\":\"https://github.com/DataDog/repo8s-resources.git\",\"repository\":{\"path\":\"/DataDog/repo8s-resources.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo8s-resources\",\"host\":\"github.com\",\"id\":\"github.com/DataDog/repo8s-resources\"},\"branch\":\"EDGEBE-4_dummy_test_env\"},\"ci\":{\"pipeline\":{\"name\":\"Labeler\",\"id\":\"3296044030-1\"},\"node\":{\"labels\":[\"ubuntu-latest\"]},\"provider\":{\"instance\":\"github-actions\",\"name\":\"github\"},\"job\":{\"name\":\"label\",\"id\":\"9025708592\",\"url\":\"https://github.com/DataDog/repo8s-resources/actions/runs/3296044030/jobs/5435245138\"},\"status\":\"success\"},\"start\":1666341891000000000},\"ci_level\":\"job\",\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AgAAAYP5t3dwEybABgAAAAAAAAAYAAAAAEFZUDV0M2R3QUFBbUM3YndwWmRTSnBQWAAAACQAAAAAMDE4M2Y5YjctN2I1OC00YjQwLWFmNjEtNjllYTUwYjA1YmI3\",\"type\":\"cipipeline\",\"attributes\":{\"attributes\":{\"duration\":2445000000000,\"github\":{\"conclusion\":\"success\",\"html_url\":\"https://github.com/DataDog/repo\",\"run_attempt\":\"1\",\"event\":\"workflow_dispatch\",\"app_id\":\"128890\"},\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-10-07T13:30:54Z\",\"name\":\"GitHub\",\"email\":\"noreply@github.com\",\"date_timestamp\":1665149454000},\"author\":{\"name\":\"Joe\",\"email\":\"support@datadoghq.com\"},\"message\":\"Upgrade to go1.18.7 (#113)\",\"sha\":\"12dd44ae0c03bed08f7b790ff10e6cba0b887cd7\"},\"default_branch\":\"master\",\"repository_url\":\"https://github.com/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"github.com\",\"id\":\"github.com/DataDog/repo\"},\"branch\":\"master\"},\"ci\":{\"pipeline\":{\"number\":20646,\"name\":\"MacOS Agent tests\",\"id\":\"3295791228-1\",\"url\":\"https://github.com/DataDog/repo/actions/runs/3295791228/attempts/1\"},\"provider\":{\"instance\":\"github-actions\",\"name\":\"github\"},\"status\":\"success\"},\"_top_level\":1,\"start\":1666339449000000000},\"ci_level\":\"pipeline\",\"tags\":[\"source:apm\",\"source:apm\"]}}],\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWVA1dDNkd0V5YkFCZ0FBQUFBQUFBQVlBQUFBQUVGWlVEVjBNMlIzUVVGQmJVTTNZbmR3V21SVFNuQlFXQUFBQUNRQUFBQUFNREU0TTJZNVlqY3ROMkkxT0MwMFlqUXdMV0ZtTmpFdE5qbGxZVFV3WWpBMVltSTMifQ\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/ci/pipelines/events?filter%5Bfrom%5D=2022-10-21T08%3A44%3A43.365Z&filter%5Bto%5D=2022-10-21T08%3A45%3A13.365Z&page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWVA1dDNkd0V5YkFCZ0FBQUFBQUFBQVlBQUFBQUVGWlVEVjBNMlIzUVVGQmJVTTNZbmR3V21SVFNuQlFXQUFBQUNRQUFBQUFNREU0TTJZNVlqY3ROMkkxT0MwMFlqUXdMV0ZtTmpFdE5qbGxZVFV3WWpBMVltSTMifQ&page%5Blimit%5D=2\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 21 Oct 2022 08:45:13 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/ci/pipelines/events?filter%5Bfrom%5D=2022-10-21T08%3A44%3A43.365Z&filter%5Bto%5D=2022-10-21T08%3A45%3A13.365Z&page%5Blimit%5D=2&page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWVA1dDNkd0V5YkFCZ0FBQUFBQUFBQVlBQUFBQUVGWlVEVjBNMlIzUVVGQmJVTTNZbmR3V21SVFNuQlFXQUFBQUNRQUFBQUFNREU0TTJZNVlqY3ROMkkxT0MwMFlqUXdMV0ZtTmpFdE5qbGxZVFV3WWpBMVltSTMifQ"}, "response": {"body": {"string": "{\"data\":[],\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWVA1dDNPSVIzYVFMZ0FBQUFBQUFBQVlBQUFBQUVGWlVEVjBNMDlKUVVGRVpGcEJWVEpEWjNZNU4yUk9XUUFBQUNRQUFBQUFNREU0TTJZNVlqY3ROMkkxT0MwMFlqUXdMV0ZtTmpFdE5qbGxZVFV3WWpBMVltSTMifQ\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/ci/pipelines/events?filter%5Bfrom%5D=2022-10-21T08%3A44%3A43.365Z&filter%5Bto%5D=2022-10-21T08%3A45%3A13.365Z&page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWVA1dDNPSVIzYVFMZ0FBQUFBQUFBQVlBQUFBQUVGWlVEVjBNMDlKUVVGRVpGcEJWVEpEWjNZNU4yUk9XUUFBQUNRQUFBQUFNREU0TTJZNVlqY3ROMkkxT0MwMFlqUXdMV0ZtTmpFdE5qbGxZVFV3WWpBMVltSTMifQ&page%5Blimit%5D=2\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 21 Oct 2022 08:45:13 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/ci/pipelines/events?filter%5Bfrom%5D=2022-10-21T08%3A44%3A43.365Z&filter%5Bto%5D=2022-10-21T08%3A45%3A13.365Z&page%5Blimit%5D=2" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"AgAAAYP5t3tYR3aQMAAAAAAAAAAYAAAAAEFZUDV0M3RZQUFBanF1YktfS2dXdjlOWQAAACQAAAAAMDE4M2Y5YjctN2I1OC00YjQwLWFmNjEtNjllYTUwYjA1YmI3\",\"type\":\"cipipeline\",\"attributes\":{\"attributes\":{\"duration\":4000000000,\"github\":{\"conclusion\":\"success\",\"node_group\":\"GitHub Actions\",\"html_url\":\"https://github.com/DataDog/repo8s-resources\",\"run_attempt\":\"1\",\"app_id\":\"128890\"},\"git\":{\"commit\":{\"sha\":\"ac96ab878db8812762c13c4364ec5aa0b14158ce\"},\"default_branch\":\"master\",\"repository_url\":\"https://github.com/DataDog/repo8s-resources.git\",\"repository\":{\"path\":\"/DataDog/repo8s-resources.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo8s-resources\",\"host\":\"github.com\",\"id\":\"github.com/DataDog/repo8s-resources\"},\"branch\":\"EDGEBE-4_dummy_test_env\"},\"ci\":{\"pipeline\":{\"name\":\"Labeler\",\"id\":\"3296044030-1\"},\"node\":{\"labels\":[\"ubuntu-latest\"]},\"provider\":{\"instance\":\"github-actions\",\"name\":\"github\"},\"job\":{\"name\":\"label\",\"id\":\"9025708592\",\"url\":\"https://github.com/DataDog/repo8s-resources/actions/runs/3296044030/jobs/5435245138\"},\"status\":\"success\"},\"start\":1666341891000000000},\"ci_level\":\"job\",\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AgAAAYP5t3dwEybABgAAAAAAAAAYAAAAAEFZUDV0M2R3QUFBbUM3YndwWmRTSnBQWAAAACQAAAAAMDE4M2Y5YjctN2I1OC00YjQwLWFmNjEtNjllYTUwYjA1YmI3\",\"type\":\"cipipeline\",\"attributes\":{\"attributes\":{\"duration\":2445000000000,\"github\":{\"conclusion\":\"success\",\"html_url\":\"https://github.com/DataDog/repo\",\"run_attempt\":\"1\",\"event\":\"workflow_dispatch\",\"app_id\":\"128890\"},\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-10-07T13:30:54Z\",\"name\":\"GitHub\",\"email\":\"noreply@github.com\",\"date_timestamp\":1665149454000},\"author\":{\"name\":\"Joe\",\"email\":\"support@datadoghq.com\"},\"message\":\"Upgrade to go1.18.7 (#113)\",\"sha\":\"12dd44ae0c03bed08f7b790ff10e6cba0b887cd7\"},\"default_branch\":\"master\",\"repository_url\":\"https://github.com/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"github.com\",\"id\":\"github.com/DataDog/repo\"},\"branch\":\"master\"},\"ci\":{\"pipeline\":{\"number\":20646,\"name\":\"MacOS Agent tests\",\"id\":\"3295791228-1\",\"url\":\"https://github.com/DataDog/repo/actions/runs/3295791228/attempts/1\"},\"provider\":{\"instance\":\"github-actions\",\"name\":\"github\"},\"status\":\"success\"},\"_top_level\":1,\"start\":1666339449000000000},\"ci_level\":\"pipeline\",\"tags\":[\"source:apm\",\"source:apm\"]}}],\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWVA1dDNkd0V5YkFCZ0FBQUFBQUFBQVlBQUFBQUVGWlVEVjBNMlIzUVVGQmJVTTNZbmR3V21SVFNuQlFXQUFBQUNRQUFBQUFNREU0TTJZNVlqY3ROMkkxT0MwMFlqUXdMV0ZtTmpFdE5qbGxZVFV3WWpBMVltSTMifQ\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/ci/pipelines/events?filter%5Bfrom%5D=2022-10-21T08%3A44%3A43.365Z&filter%5Bto%5D=2022-10-21T08%3A45%3A13.365Z&page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWVA1dDNkd0V5YkFCZ0FBQUFBQUFBQVlBQUFBQUVGWlVEVjBNMlIzUVVGQmJVTTNZbmR3V21SVFNuQlFXQUFBQUNRQUFBQUFNREU0TTJZNVlqY3ROMkkxT0MwMFlqUXdMV0ZtTmpFdE5qbGxZVFV3WWpBMVltSTMifQ&page%5Blimit%5D=2\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 21 Oct 2022 08:45:13 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/ci/pipelines/events?filter%5Bfrom%5D=2022-10-21T08%3A44%3A43.365Z&filter%5Bto%5D=2022-10-21T08%3A45%3A13.365Z&page%5Blimit%5D=2&page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWVA1dDNkd0V5YkFCZ0FBQUFBQUFBQVlBQUFBQUVGWlVEVjBNMlIzUVVGQmJVTTNZbmR3V21SVFNuQlFXQUFBQUNRQUFBQUFNREU0TTJZNVlqY3ROMkkxT0MwMFlqUXdMV0ZtTmpFdE5qbGxZVFV3WWpBMVltSTMifQ" + }, + "response": { + "body": { + "string": "{\"data\":[],\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWVA1dDNPSVIzYVFMZ0FBQUFBQUFBQVlBQUFBQUVGWlVEVjBNMDlKUVVGRVpGcEJWVEpEWjNZNU4yUk9XUUFBQUNRQUFBQUFNREU0TTJZNVlqY3ROMkkxT0MwMFlqUXdMV0ZtTmpFdE5qbGxZVFV3WWpBMVltSTMifQ\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/ci/pipelines/events?filter%5Bfrom%5D=2022-10-21T08%3A44%3A43.365Z&filter%5Bto%5D=2022-10-21T08%3A45%3A13.365Z&page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWVA1dDNPSVIzYVFMZ0FBQUFBQUFBQVlBQUFBQUVGWlVEVjBNMDlKUVVGRVpGcEJWVEpEWjNZNU4yUk9XUUFBQUNRQUFBQUFNREU0TTJZNVlqY3ROMkkxT0MwMFlqUXdMV0ZtTmpFdE5qbGxZVFV3WWpBMVltSTMifQ&page%5Blimit%5D=2\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 21 Oct 2022 08:45:13 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/ci_visibility_pipelines/Get-a-list-of-pipelines-events-returns-OK-response.json b/tests/scenarios/cassettes/v2/ci_visibility_pipelines/Get-a-list-of-pipelines-events-returns-OK-response.json index 5a020603f..ff1679951 100644 --- a/tests/scenarios/cassettes/v2/ci_visibility_pipelines/Get-a-list-of-pipelines-events-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/ci_visibility_pipelines/Get-a-list-of-pipelines-events-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/ci/pipelines/events?filter%5Bquery%5D=%40ci.provider.name%3Acircleci&filter%5Bfrom%5D=2022-11-28T11%3A27%3A44.947Z&filter%5Bto%5D=2022-11-28T11%3A57%3A44.947Z&page%5Blimit%5D=5"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"AgAAAYS-GYtIKjvAWQAAAAAAAAAYAAAAAEFZUy1HWXRJQUFDVGxWdU5hQ2MyOW5kYQAAACQAAAAAMDE4NGJlMWItODM2OC00YWNkLTg0ZGMtZTYzMDMzMjk5Mjgz\",\"type\":\"cipipeline\",\"attributes\":{\"attributes\":{\"duration\":176127000000,\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-11-28T11:53:10Z\",\"name\":\"John Doe\",\"email\":\"john.doe@email.com\",\"date_timestamp\":1669636390000},\"author\":{\"date\":\"2022-11-28T11:53:10Z\",\"name\":\"John Doe\",\"email\":\"john.doe@email.com\",\"date_timestamp\":1669636390000},\"message\":\"Directly send SIGPROF signals to thread holding Global VM Lock\",\"sha\":\"e1d41e2ebc93f48d901d3baa6cbe84f71bdb500a\"},\"repository_url\":\"https://github.com/DataDog/repo\",\"repository\":{\"path\":\"/DataDog/repo\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"github.com\",\"id\":\"github.com/DataDog/repo\"},\"branch\":\"johndoe/directly-signal-gvl-thread\"},\"ci\":{\"pipeline\":{\"name\":\"build-and-test\",\"id\":\"e67854de-34d7-4782-a62a-2231977026a6\",\"url\":\"https://app.circleci.com/pipelines/workflows/e67804de-0000-4782-a62a-2231977026a6\"},\"provider\":{\"instance\":\"circleci\",\"name\":\"circleci\"},\"job\":{\"name\":\"test-3.0\",\"id\":\"b2fd7e9c-be84-4ad7-9cc5-3796b0cdbede\",\"url\":\"https://app.circleci.com/jobs/gh/DataDog/repo/301777\"},\"status\":\"success\"},\"circleci\":{\"result\":\"success\"},\"start\":1669636479817000000},\"ci_level\":\"job\",\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AgAAAYS-GWnbVbAEgQAAAAAAAAAYAAAAAEFZUy1HV25iQUFDWG5zSTV2dWM3dzNkYQAAACQAAAAAMDE4NGJlMWItODM2OC00YWNkLTg0ZGMtZTYzMDMzMjk5Mjgz\",\"type\":\"cipipeline\",\"attributes\":{\"attributes\":{\"duration\":226593000000,\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-11-28T11:53:10Z\",\"name\":\"John Doe\",\"email\":\"john.doe@email.com\",\"date_timestamp\":1669636390000},\"author\":{\"date\":\"2022-11-28T11:53:10Z\",\"name\":\"John Doe\",\"email\":\"john.doe@email.com\",\"date_timestamp\":1669636390000},\"message\":\"Directly send SIGPROF signals to thread holding Global VM Lock\",\"sha\":\"e1d41e2ebc93f48d901d3baa6cbe84f71bdb500a\"},\"repository_url\":\"https://github.com/DataDog/repo\",\"repository\":{\"path\":\"/DataDog/drepo\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"github.com\",\"id\":\"github.com/DataDog/repo\"},\"branch\":\"johndoe/directly-signal-gvl-thread\"},\"ci\":{\"pipeline\":{\"name\":\"build-and-test\",\"id\":\"e67854de-0000-4782-a62a-2231977026a6\",\"url\":\"https://app.circleci.com/pipelines/workflows/e67854de-0000-4782-a62a-2231977026a6\"},\"provider\":{\"instance\":\"circleci\",\"name\":\"circleci\"},\"job\":{\"name\":\"build-jruby-9.3-latest-1\",\"id\":\"55c12323-bb52-48ad-8f66-42a65d50bad5\",\"url\":\"https://app.circleci.com/jobs/gh/DataDog/repo/301773\"},\"status\":\"success\"},\"circleci\":{\"result\":\"success\"},\"start\":1669636420794000000},\"ci_level\":\"job\",\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AgAAAYS-GUIqP9PNOgAAAAAAAAAYAAAAAEFZUy1HVUlxQUFDekFXOHlOUHZTVVhkYQAAACQAAAAAMDE4NGJlMWItODM2OC00YWNkLTg0ZGMtZTYzMDMzMjk5Mjgz\",\"type\":\"cipipeline\",\"attributes\":{\"attributes\":{\"duration\":217224000000,\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-11-28T11:53:10Z\",\"name\":\"John Doe\",\"email\":\"john.doe@email.com\",\"date_timestamp\":1669636390000},\"author\":{\"date\":\"2022-11-28T11:53:10Z\",\"name\":\"John Doe\",\"email\":\"john.doe@email.com\",\"date_timestamp\":1669636390000},\"message\":\"Directly send SIGPROF signals to thread holding Global VM Lock\",\"sha\":\"e1d41e2ebc93f48d901d3baa6cbe84f71bdb500a\"},\"repository_url\":\"https://github.com/DataDog/repo\",\"repository\":{\"path\":\"DataDog/repo\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"github.com\",\"id\":\"github.com/DataDog/repo\"},\"branch\":\"johndoe/directly-signal-gvl-thread\"},\"ci\":{\"pipeline\":{\"name\":\"build-and-test\",\"id\":\"e67854de-34d7-4782-a62a-2231977026a6\",\"url\":\"https://app.circleci.com/pipelines/workflows/e67854de-0000-4782-a62a-2231977026a6\"},\"provider\":{\"instance\":\"circleci\",\"name\":\"circleci\"},\"job\":{\"name\":\"build_and_test_integration-2.4\",\"id\":\"dfb0036b-f9b7-414b-a147-1991e4bf7611\",\"url\":\"https://app.circleci.com/jobs/gh/DataDog/repo/301772\"},\"status\":\"success\"},\"circleci\":{\"result\":\"success\"},\"start\":1669636420002000000},\"ci_level\":\"job\",\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AgAAAYS-GPpigabGUAAAAAAAAAAYAAAAAEFZUy1HUHBpQUFBTEMyS0MwclNtTjNkYQAAACQAAAAAMDE4NGJlMWItODM2OC00YWNkLTg0ZGMtZTYzMDMzMjk5Mjgz\",\"type\":\"cipipeline\",\"attributes\":{\"attributes\":{\"duration\":200658000000,\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-11-28T11:53:10Z\",\"name\":\"John Doe\",\"email\":\"john.doe@email.com\",\"date_timestamp\":1669636390000},\"author\":{\"date\":\"2022-11-28T11:53:10Z\",\"name\":\"John Doe\",\"email\":\"john.doe@email.com\",\"date_timestamp\":1669636390000},\"message\":\"Directly send SIGPROF signals to thread holding Global VM Lock\",\"sha\":\"e1d41e2ebc93f48d901d3baa6cbe84f71bdb500a\"},\"repository_url\":\"https://github.com/DataDog/repo\",\"repository\":{\"path\":\"/DataDog/repo\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"github.com\",\"id\":\"github.com/DataDog/repo\"},\"branch\":\"johndoe/directly-signal-gvl-thread\"},\"ci\":{\"pipeline\":{\"name\":\"build-and-test\",\"id\":\"e67854de-34d7-4782-a62a-2231977026a6\",\"url\":\"https://app.circleci.com/pipelines/workflows/e67854de-0000-4782-a62a-2231977026a6\"},\"provider\":{\"instance\":\"circleci\",\"name\":\"circleci\"},\"job\":{\"name\":\"build-jruby-9.2-latest-1\",\"id\":\"09df7769-9b36-40cd-af1c-e97a00e233a5\",\"url\":\"https://app.circleci.com/jobs/gh/DataDog/repo/301760\"},\"status\":\"success\"},\"circleci\":{\"result\":\"success\"},\"start\":1669636418192000000},\"ci_level\":\"job\",\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AgAAAYS-GOd-VzPNOgAAAAAAAAAYAAAAAEFZUy1HT2QtQUFEUzFMbWdMNW4wTFhkYQAAACQAAAAAMDE4NGJlMWItODM2OC00YWNkLTg0ZGMtZTYzMDMzMjk5Mjgz\",\"type\":\"cipipeline\",\"attributes\":{\"attributes\":{\"duration\":195791000000,\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-11-28T11:53:10Z\",\"name\":\"John Doe\",\"email\":\"john.doe@email.com\",\"date_timestamp\":1669636390000},\"author\":{\"date\":\"2022-11-28T11:53:10Z\",\"name\":\"John Doe\",\"email\":\"john.doe@email.com\",\"date_timestamp\":1669636390000},\"message\":\"Directly send SIGPROF signals to thread holding Global VM Lock\",\"sha\":\"e1d41e2ebc93f48d901d3baa6cbe84f71bdb500a\"},\"repository_url\":\"https://github.com/DataDog/dd-trace-rb\",\"repository\":{\"path\":\"/DataDog/repo\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"github.com\",\"id\":\"github.com/DataDog/repo\"},\"branch\":\"johndoe/directly-signal-gvl-thread\"},\"ci\":{\"pipeline\":{\"name\":\"build-and-test\",\"id\":\"e67854de-34d7-4782-a62a-2231977026a6\",\"url\":\"https://app.circleci.com/pipelines/workflows/e67854de-0000-4782-a62a-2231977026a6\"},\"provider\":{\"instance\":\"circleci\",\"name\":\"circleci\"},\"job\":{\"name\":\"build_and_test_integration-2.3\",\"id\":\"64006f66-267a-47b7-8823-94833268546a\",\"url\":\"https://app.circleci.com/jobs/gh/DataDog/repo/301761\"},\"status\":\"success\"},\"circleci\":{\"result\":\"success\"},\"start\":1669636418223000000},\"ci_level\":\"job\",\"tags\":[\"source:apm\",\"source:apm\"]}}],\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWVMtR09kLVZ6UE5PZ0FBQUFBQUFBQVlBQUFBQUVGWlV5MUhUMlF0UVVGRVV6Rk1iV2RNTlc0d1RGaGtZUUFBQUNRQUFBQUFNREU0TkdKbE1XSXRPRE0yT0MwMFlXTmtMVGcwWkdNdFpUWXpNRE16TWprNU1qZ3oifQ\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/ci/pipelines/events?filter%5Bfrom%5D=2022-11-28T11%3A27%3A44.947Z&filter%5Bquery%5D=%40ci.provider.name%3Acircleci&filter%5Bto%5D=2022-11-28T11%3A57%3A44.947Z&page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWVMtR09kLVZ6UE5PZ0FBQUFBQUFBQVlBQUFBQUVGWlV5MUhUMlF0UVVGRVV6Rk1iV2RNTlc0d1RGaGtZUUFBQUNRQUFBQUFNREU0TkdKbE1XSXRPRE0yT0MwMFlXTmtMVGcwWkdNdFpUWXpNRE16TWprNU1qZ3oifQ&page%5Blimit%5D=5\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 28 Nov 2022 11:57:44 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/ci/pipelines/events?filter%5Bquery%5D=%40ci.provider.name%3Acircleci&filter%5Bfrom%5D=2022-11-28T11%3A27%3A44.947Z&filter%5Bto%5D=2022-11-28T11%3A57%3A44.947Z&page%5Blimit%5D=5" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"AgAAAYS-GYtIKjvAWQAAAAAAAAAYAAAAAEFZUy1HWXRJQUFDVGxWdU5hQ2MyOW5kYQAAACQAAAAAMDE4NGJlMWItODM2OC00YWNkLTg0ZGMtZTYzMDMzMjk5Mjgz\",\"type\":\"cipipeline\",\"attributes\":{\"attributes\":{\"duration\":176127000000,\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-11-28T11:53:10Z\",\"name\":\"John Doe\",\"email\":\"john.doe@email.com\",\"date_timestamp\":1669636390000},\"author\":{\"date\":\"2022-11-28T11:53:10Z\",\"name\":\"John Doe\",\"email\":\"john.doe@email.com\",\"date_timestamp\":1669636390000},\"message\":\"Directly send SIGPROF signals to thread holding Global VM Lock\",\"sha\":\"e1d41e2ebc93f48d901d3baa6cbe84f71bdb500a\"},\"repository_url\":\"https://github.com/DataDog/repo\",\"repository\":{\"path\":\"/DataDog/repo\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"github.com\",\"id\":\"github.com/DataDog/repo\"},\"branch\":\"johndoe/directly-signal-gvl-thread\"},\"ci\":{\"pipeline\":{\"name\":\"build-and-test\",\"id\":\"e67854de-34d7-4782-a62a-2231977026a6\",\"url\":\"https://app.circleci.com/pipelines/workflows/e67804de-0000-4782-a62a-2231977026a6\"},\"provider\":{\"instance\":\"circleci\",\"name\":\"circleci\"},\"job\":{\"name\":\"test-3.0\",\"id\":\"b2fd7e9c-be84-4ad7-9cc5-3796b0cdbede\",\"url\":\"https://app.circleci.com/jobs/gh/DataDog/repo/301777\"},\"status\":\"success\"},\"circleci\":{\"result\":\"success\"},\"start\":1669636479817000000},\"ci_level\":\"job\",\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AgAAAYS-GWnbVbAEgQAAAAAAAAAYAAAAAEFZUy1HV25iQUFDWG5zSTV2dWM3dzNkYQAAACQAAAAAMDE4NGJlMWItODM2OC00YWNkLTg0ZGMtZTYzMDMzMjk5Mjgz\",\"type\":\"cipipeline\",\"attributes\":{\"attributes\":{\"duration\":226593000000,\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-11-28T11:53:10Z\",\"name\":\"John Doe\",\"email\":\"john.doe@email.com\",\"date_timestamp\":1669636390000},\"author\":{\"date\":\"2022-11-28T11:53:10Z\",\"name\":\"John Doe\",\"email\":\"john.doe@email.com\",\"date_timestamp\":1669636390000},\"message\":\"Directly send SIGPROF signals to thread holding Global VM Lock\",\"sha\":\"e1d41e2ebc93f48d901d3baa6cbe84f71bdb500a\"},\"repository_url\":\"https://github.com/DataDog/repo\",\"repository\":{\"path\":\"/DataDog/drepo\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"github.com\",\"id\":\"github.com/DataDog/repo\"},\"branch\":\"johndoe/directly-signal-gvl-thread\"},\"ci\":{\"pipeline\":{\"name\":\"build-and-test\",\"id\":\"e67854de-0000-4782-a62a-2231977026a6\",\"url\":\"https://app.circleci.com/pipelines/workflows/e67854de-0000-4782-a62a-2231977026a6\"},\"provider\":{\"instance\":\"circleci\",\"name\":\"circleci\"},\"job\":{\"name\":\"build-jruby-9.3-latest-1\",\"id\":\"55c12323-bb52-48ad-8f66-42a65d50bad5\",\"url\":\"https://app.circleci.com/jobs/gh/DataDog/repo/301773\"},\"status\":\"success\"},\"circleci\":{\"result\":\"success\"},\"start\":1669636420794000000},\"ci_level\":\"job\",\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AgAAAYS-GUIqP9PNOgAAAAAAAAAYAAAAAEFZUy1HVUlxQUFDekFXOHlOUHZTVVhkYQAAACQAAAAAMDE4NGJlMWItODM2OC00YWNkLTg0ZGMtZTYzMDMzMjk5Mjgz\",\"type\":\"cipipeline\",\"attributes\":{\"attributes\":{\"duration\":217224000000,\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-11-28T11:53:10Z\",\"name\":\"John Doe\",\"email\":\"john.doe@email.com\",\"date_timestamp\":1669636390000},\"author\":{\"date\":\"2022-11-28T11:53:10Z\",\"name\":\"John Doe\",\"email\":\"john.doe@email.com\",\"date_timestamp\":1669636390000},\"message\":\"Directly send SIGPROF signals to thread holding Global VM Lock\",\"sha\":\"e1d41e2ebc93f48d901d3baa6cbe84f71bdb500a\"},\"repository_url\":\"https://github.com/DataDog/repo\",\"repository\":{\"path\":\"DataDog/repo\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"github.com\",\"id\":\"github.com/DataDog/repo\"},\"branch\":\"johndoe/directly-signal-gvl-thread\"},\"ci\":{\"pipeline\":{\"name\":\"build-and-test\",\"id\":\"e67854de-34d7-4782-a62a-2231977026a6\",\"url\":\"https://app.circleci.com/pipelines/workflows/e67854de-0000-4782-a62a-2231977026a6\"},\"provider\":{\"instance\":\"circleci\",\"name\":\"circleci\"},\"job\":{\"name\":\"build_and_test_integration-2.4\",\"id\":\"dfb0036b-f9b7-414b-a147-1991e4bf7611\",\"url\":\"https://app.circleci.com/jobs/gh/DataDog/repo/301772\"},\"status\":\"success\"},\"circleci\":{\"result\":\"success\"},\"start\":1669636420002000000},\"ci_level\":\"job\",\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AgAAAYS-GPpigabGUAAAAAAAAAAYAAAAAEFZUy1HUHBpQUFBTEMyS0MwclNtTjNkYQAAACQAAAAAMDE4NGJlMWItODM2OC00YWNkLTg0ZGMtZTYzMDMzMjk5Mjgz\",\"type\":\"cipipeline\",\"attributes\":{\"attributes\":{\"duration\":200658000000,\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-11-28T11:53:10Z\",\"name\":\"John Doe\",\"email\":\"john.doe@email.com\",\"date_timestamp\":1669636390000},\"author\":{\"date\":\"2022-11-28T11:53:10Z\",\"name\":\"John Doe\",\"email\":\"john.doe@email.com\",\"date_timestamp\":1669636390000},\"message\":\"Directly send SIGPROF signals to thread holding Global VM Lock\",\"sha\":\"e1d41e2ebc93f48d901d3baa6cbe84f71bdb500a\"},\"repository_url\":\"https://github.com/DataDog/repo\",\"repository\":{\"path\":\"/DataDog/repo\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"github.com\",\"id\":\"github.com/DataDog/repo\"},\"branch\":\"johndoe/directly-signal-gvl-thread\"},\"ci\":{\"pipeline\":{\"name\":\"build-and-test\",\"id\":\"e67854de-34d7-4782-a62a-2231977026a6\",\"url\":\"https://app.circleci.com/pipelines/workflows/e67854de-0000-4782-a62a-2231977026a6\"},\"provider\":{\"instance\":\"circleci\",\"name\":\"circleci\"},\"job\":{\"name\":\"build-jruby-9.2-latest-1\",\"id\":\"09df7769-9b36-40cd-af1c-e97a00e233a5\",\"url\":\"https://app.circleci.com/jobs/gh/DataDog/repo/301760\"},\"status\":\"success\"},\"circleci\":{\"result\":\"success\"},\"start\":1669636418192000000},\"ci_level\":\"job\",\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AgAAAYS-GOd-VzPNOgAAAAAAAAAYAAAAAEFZUy1HT2QtQUFEUzFMbWdMNW4wTFhkYQAAACQAAAAAMDE4NGJlMWItODM2OC00YWNkLTg0ZGMtZTYzMDMzMjk5Mjgz\",\"type\":\"cipipeline\",\"attributes\":{\"attributes\":{\"duration\":195791000000,\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-11-28T11:53:10Z\",\"name\":\"John Doe\",\"email\":\"john.doe@email.com\",\"date_timestamp\":1669636390000},\"author\":{\"date\":\"2022-11-28T11:53:10Z\",\"name\":\"John Doe\",\"email\":\"john.doe@email.com\",\"date_timestamp\":1669636390000},\"message\":\"Directly send SIGPROF signals to thread holding Global VM Lock\",\"sha\":\"e1d41e2ebc93f48d901d3baa6cbe84f71bdb500a\"},\"repository_url\":\"https://github.com/DataDog/dd-trace-rb\",\"repository\":{\"path\":\"/DataDog/repo\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"github.com\",\"id\":\"github.com/DataDog/repo\"},\"branch\":\"johndoe/directly-signal-gvl-thread\"},\"ci\":{\"pipeline\":{\"name\":\"build-and-test\",\"id\":\"e67854de-34d7-4782-a62a-2231977026a6\",\"url\":\"https://app.circleci.com/pipelines/workflows/e67854de-0000-4782-a62a-2231977026a6\"},\"provider\":{\"instance\":\"circleci\",\"name\":\"circleci\"},\"job\":{\"name\":\"build_and_test_integration-2.3\",\"id\":\"64006f66-267a-47b7-8823-94833268546a\",\"url\":\"https://app.circleci.com/jobs/gh/DataDog/repo/301761\"},\"status\":\"success\"},\"circleci\":{\"result\":\"success\"},\"start\":1669636418223000000},\"ci_level\":\"job\",\"tags\":[\"source:apm\",\"source:apm\"]}}],\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWVMtR09kLVZ6UE5PZ0FBQUFBQUFBQVlBQUFBQUVGWlV5MUhUMlF0UVVGRVV6Rk1iV2RNTlc0d1RGaGtZUUFBQUNRQUFBQUFNREU0TkdKbE1XSXRPRE0yT0MwMFlXTmtMVGcwWkdNdFpUWXpNRE16TWprNU1qZ3oifQ\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/ci/pipelines/events?filter%5Bfrom%5D=2022-11-28T11%3A27%3A44.947Z&filter%5Bquery%5D=%40ci.provider.name%3Acircleci&filter%5Bto%5D=2022-11-28T11%3A57%3A44.947Z&page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWVMtR09kLVZ6UE5PZ0FBQUFBQUFBQVlBQUFBQUVGWlV5MUhUMlF0UVVGRVV6Rk1iV2RNTlc0d1RGaGtZUUFBQUNRQUFBQUFNREU0TkdKbE1XSXRPRE0yT0MwMFlXTmtMVGcwWkdNdFpUWXpNRE16TWprNU1qZ3oifQ&page%5Blimit%5D=5\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 28 Nov 2022 11:57:44 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/ci_visibility_pipelines/Search-pipelines-events-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v2/ci_visibility_pipelines/Search-pipelines-events-returns-OK-response-with-pagination.json index e1656d9fd..eefbd1042 100644 --- a/tests/scenarios/cassettes/v2/ci_visibility_pipelines/Search-pipelines-events-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v2/ci_visibility_pipelines/Search-pipelines-events-returns-OK-response-with-pagination.json @@ -1 +1,73 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"filter\":{\"from\":\"now-30s\",\"to\":\"now\"},\"options\":{\"timezone\":\"GMT\"},\"page\":{\"limit\":2},\"sort\":\"timestamp\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/ci/pipelines/events/search"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"AgAAAYP5yrFQ-0eDTAAAAAAAAAAYAAAAAEFZUDV5ckZRQUFBLWxUZzA0Mm9yVVJJUwAAACQAAAAAMDE4M2Y5Y2EtYzhjMC00ZTVlLTk3ODktZTVlY2E0MzIyNmI3\",\"type\":\"cipipeline\",\"attributes\":{\"attributes\":{\"duration\":399000000000,\"github\":{\"conclusion\":\"success\",\"html_url\":\"https://github.com/DataDog/repo\",\"run_attempt\":\"1\",\"event\":\"pull_request\",\"app_id\":\"128890\"},\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-10-21T08:58:59Z\",\"name\":\"Joe\",\"email\":\"support@datadoghq.com\",\"date_timestamp\":1666342739000},\"author\":{\"name\":\"Joe\",\"email\":\"support@datadoghq.com\"},\"message\":\"init\",\"sha\":\"811f4ca3a6dcfe7b232dd3868ec405e9e492bb66\"},\"default_branch\":\"prod\",\"repository_url\":\"https://github.com/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"github.com\",\"id\":\"github.com/DataDog/repo\"},\"branch\":\"erkang.zhang/SYM-390/cache-test-spec\"},\"ci\":{\"pipeline\":{\"number\":4218,\"name\":\"ESLint\",\"id\":\"3296133341-1\",\"url\":\"https://github.com/DataDog/repo/actions/runs/3296133341/attempts/1\"},\"provider\":{\"instance\":\"github-actions\",\"name\":\"github\"},\"status\":\"success\"},\"_top_level\":1,\"start\":1666342755000000000},\"ci_level\":\"pipeline\",\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AgAAAYP5yr0I0OC-XAAAAAAAAAAYAAAAAEFZUDV5cjBJQUFEekl2RnhRMGRpbFYyUwAAACQAAAAAMDE4M2Y5Y2EtYzhjMC00ZTVlLTk3ODktZTVlY2E0MzIyNmI3\",\"type\":\"cipipeline\",\"attributes\":{\"attributes\":{\"duration\":166000000000,\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-10-21T10:57:28+02:00\",\"date_timestamp\":1666342648000},\"author\":{\"name\":\"Joe\",\"email\":\"support@datadoghq.com\"},\"message\":\"Merge pull request #39486 from DataDog/repo/output-using-sketches\\n\\n[RUM] Output using sketches\",\"sha\":\"07cb4950a3a0250e0808516108a04e432a3dcec7\"},\"default_branch\":\"cireliability/do-not-change-default-branch\",\"repository_url\":\"https://gitlab.site.io/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"gitlab.site.io\",\"id\":\"gitlab.site.io/DataDog/repo\"},\"branch\":\"prod\"},\"ci\":{\"pipeline\":{\"name\":\"DataDog/repo\",\"downstream\":true,\"id\":\"10623021\",\"url\":\"https://gitlab.site.io/DataDog/repo/pipelines/10623021\"},\"provider\":{\"instance\":\"gitlab-ci\",\"name\":\"gitlab\"},\"is_manual\":false,\"parameters\":[\"BASE_IMAGE_REPO:registry.site.io/logs-backend-base\",\"BASE_VERSION:71\",\"BAZEL_CI_IMAGE:registry.site.io/bazel:5@sha256:ec15d3a9e2131605d5e0fe486b9af09770b27c94a0671e5bc81a0052efc7eaac\",\"BUILD_ECR_ID:486234852809\",\"BUILD_IMAGE:486234852809.dkr.ecr.us-east-1.amazonaws.com/ci/logs-backend/java-builder\",\"BUILD_IMAGE_TAG:48\",\"CURRENT_STAGING:staging-42\",\"DD_AGENT_HOST:\",\"DD_ENV_TESTS:ci\",\"DD_INTEGRATION_JUNIT_ENABLED:true\",\"DD_INTEGRATION_MONGO_ENABLED:false\",\"DD_INTEGRATION_OPENTRACING_ENABLED:true\",\"DD_POSTGRES_URL:jdbc:postgresql://postgres/dogdata\",\"DD_SERVICE:logs-backend-tests\",\"DD_TRACING_ENABLED:true\",\"DOCKER_IMAGE_VERSION:20.10.3\",\"DRE_BAZEL_RULE:\",\"DYNAMIC_BUILD_IMAGE_VERSION:dynamicbuilder-v3319810-6f683f57\",\"ENABLE_SNAPSHOTTED_CHARTS:true\",\"FDB_DEB_URL:https://github.com/apple/foundationdb/releases/download/6.2.30/foundationdb-clients_6.2.30-1_amd64.deb\",\"GIT_BASE_BRANCH:prod\",\"GIT_DEPTH:96\",\"GO_VERSION:1.15\",\"JAVA_VERSION:azul-17-34-19\",\"KUBERNETES_SERVICE_ACCOUNT_OVERWRITE:logs-backend\",\"MAVEN_CLI_OPTS:--settings .ci/settings.xml --batch-mode --errors --no-transfer-progress --show-version -DisCI=true -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -Dorg.slf4j.simpleLogger.showDateTime=true -Dorg.slf4j.simpleLogger.dateTimeFormat=HH:mm:ss -Dsurefire.rerunFailingTestsCount=2\",\"MAVEN_ENV:-XX:MaxRAMPercentage=50 -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true\",\"MAVEN_OPTS:-Dmaven.repo.local=/.m2 -XX:MaxRAMPercentage=50 -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true\",\"S3_BUCKET:s3://dd-ci-artefacts-build-stable/logs-backend\",\"S3_BUCKET_PIPELINE_PATH:s3://dd-ci-artefacts-build-stable/logs-backend/10623014\",\"S3_DDBUILD_MIRROR:s3://binaries.site.io/logs-backend/mirror\",\"S3_DDBUILD_RELEASE:s3://binaries.site.io/logs-backend/release\",\"S3_OPTS:--region us-east-1 --sse AES256 --acl bucket-owner-full-control --only-show-errors\",\"SLACK_NOTIFIER_IMAGE:486234852809.dkr.ecr.us-east-1.amazonaws.com/slack-notifier@sha256:d35e229b35ee0c6cedcb79a908dbca6c964f8a7eeaf82f4367d7e77eb93b9b44\",\"TRACER_URL:https://repo1.maven.org/maven2/com/datadoghq/dd-java-agent/0.108.1/dd-java-agent-0.108.1.jar\",\"TRACER_VERSION:0.108.1\"],\"status\":\"success\"},\"_top_level\":1,\"start\":1666342991000000000,\"gitlab\":{\"pipeline_source\":\"parent_pipeline\",\"result\":\"passed\"},\"env\":\"prod\",\"user\":{\"name\":\"halil.sener\"}},\"ci_level\":\"pipeline\",\"tags\":[\"source:apm\",\"source:apm\"]}}],\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWVA1eXIwSTBPQy1YQUFBQUFBQUFBQVlBQUFBQUVGWlVEVjVjakJKUVVGRWVrbDJSbmhSTUdScGJGWXlVd0FBQUNRQUFBQUFNREU0TTJZNVkyRXRZemhqTUMwMFpUVmxMVGszT0RrdFpUVmxZMkUwTXpJeU5tSTMifQ\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/ci/pipelines/events?filter%5Bfrom%5D=now-30s&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWVA1eXIwSTBPQy1YQUFBQUFBQUFBQVlBQUFBQUVGWlVEVjVjakJKUVVGRWVrbDJSbmhSTUdScGJGWXlVd0FBQUNRQUFBQUFNREU0TTJZNVkyRXRZemhqTUMwMFpUVmxMVGszT0RrdFpUVmxZMkUwTXpJeU5tSTMifQ&page%5Blimit%5D=2&sort=timestamp\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 21 Oct 2022 09:06:23 GMT"}, {"request": {"body": {"string": "{\"filter\":{\"from\":\"now-30s\",\"to\":\"now\"},\"options\":{\"timezone\":\"GMT\"},\"page\":{\"cursor\":\"eyJhZnRlciI6IkFnQUFBWVA1eXIwSTBPQy1YQUFBQUFBQUFBQVlBQUFBQUVGWlVEVjVjakJKUVVGRWVrbDJSbmhSTUdScGJGWXlVd0FBQUNRQUFBQUFNREU0TTJZNVkyRXRZemhqTUMwMFpUVmxMVGszT0RrdFpUVmxZMkUwTXpJeU5tSTMifQ\",\"limit\":2},\"sort\":\"timestamp\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/ci/pipelines/events/search"}, "response": {"body": {"string": "{\"data\":[],\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWVA1eXIwSTBPQy1YZ0FBQUFBQUFBQVlBQUFBQUVGWlVEVjVjakJKUVVGRVN6aHhYekY1VVVSVGFXd3lVd0FBQUNRQUFBQUFNREU0TTJZNVkyRXRZemhqTUMwMFpUVmxMVGszT0RrdFpUVmxZMkUwTXpJeU5tSTMifQ\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/ci/pipelines/events?filter%5Bfrom%5D=now-30s&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWVA1eXIwSTBPQy1YZ0FBQUFBQUFBQVlBQUFBQUVGWlVEVjVjakJKUVVGRVN6aHhYekY1VVVSVGFXd3lVd0FBQUNRQUFBQUFNREU0TTJZNVkyRXRZemhqTUMwMFpUVmxMVGszT0RrdFpUVmxZMkUwTXpJeU5tSTMifQ&page%5Blimit%5D=2&sort=timestamp\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 21 Oct 2022 09:06:23 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"filter\":{\"from\":\"now-30s\",\"to\":\"now\"},\"options\":{\"timezone\":\"GMT\"},\"page\":{\"limit\":2},\"sort\":\"timestamp\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/ci/pipelines/events/search" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"AgAAAYP5yrFQ-0eDTAAAAAAAAAAYAAAAAEFZUDV5ckZRQUFBLWxUZzA0Mm9yVVJJUwAAACQAAAAAMDE4M2Y5Y2EtYzhjMC00ZTVlLTk3ODktZTVlY2E0MzIyNmI3\",\"type\":\"cipipeline\",\"attributes\":{\"attributes\":{\"duration\":399000000000,\"github\":{\"conclusion\":\"success\",\"html_url\":\"https://github.com/DataDog/repo\",\"run_attempt\":\"1\",\"event\":\"pull_request\",\"app_id\":\"128890\"},\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-10-21T08:58:59Z\",\"name\":\"Joe\",\"email\":\"support@datadoghq.com\",\"date_timestamp\":1666342739000},\"author\":{\"name\":\"Joe\",\"email\":\"support@datadoghq.com\"},\"message\":\"init\",\"sha\":\"811f4ca3a6dcfe7b232dd3868ec405e9e492bb66\"},\"default_branch\":\"prod\",\"repository_url\":\"https://github.com/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"github.com\",\"id\":\"github.com/DataDog/repo\"},\"branch\":\"erkang.zhang/SYM-390/cache-test-spec\"},\"ci\":{\"pipeline\":{\"number\":4218,\"name\":\"ESLint\",\"id\":\"3296133341-1\",\"url\":\"https://github.com/DataDog/repo/actions/runs/3296133341/attempts/1\"},\"provider\":{\"instance\":\"github-actions\",\"name\":\"github\"},\"status\":\"success\"},\"_top_level\":1,\"start\":1666342755000000000},\"ci_level\":\"pipeline\",\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AgAAAYP5yr0I0OC-XAAAAAAAAAAYAAAAAEFZUDV5cjBJQUFEekl2RnhRMGRpbFYyUwAAACQAAAAAMDE4M2Y5Y2EtYzhjMC00ZTVlLTk3ODktZTVlY2E0MzIyNmI3\",\"type\":\"cipipeline\",\"attributes\":{\"attributes\":{\"duration\":166000000000,\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-10-21T10:57:28+02:00\",\"date_timestamp\":1666342648000},\"author\":{\"name\":\"Joe\",\"email\":\"support@datadoghq.com\"},\"message\":\"Merge pull request #39486 from DataDog/repo/output-using-sketches\\n\\n[RUM] Output using sketches\",\"sha\":\"07cb4950a3a0250e0808516108a04e432a3dcec7\"},\"default_branch\":\"cireliability/do-not-change-default-branch\",\"repository_url\":\"https://gitlab.site.io/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"gitlab.site.io\",\"id\":\"gitlab.site.io/DataDog/repo\"},\"branch\":\"prod\"},\"ci\":{\"pipeline\":{\"name\":\"DataDog/repo\",\"downstream\":true,\"id\":\"10623021\",\"url\":\"https://gitlab.site.io/DataDog/repo/pipelines/10623021\"},\"provider\":{\"instance\":\"gitlab-ci\",\"name\":\"gitlab\"},\"is_manual\":false,\"parameters\":[\"BASE_IMAGE_REPO:registry.site.io/logs-backend-base\",\"BASE_VERSION:71\",\"BAZEL_CI_IMAGE:registry.site.io/bazel:5@sha256:ec15d3a9e2131605d5e0fe486b9af09770b27c94a0671e5bc81a0052efc7eaac\",\"BUILD_ECR_ID:486234852809\",\"BUILD_IMAGE:486234852809.dkr.ecr.us-east-1.amazonaws.com/ci/logs-backend/java-builder\",\"BUILD_IMAGE_TAG:48\",\"CURRENT_STAGING:staging-42\",\"DD_AGENT_HOST:\",\"DD_ENV_TESTS:ci\",\"DD_INTEGRATION_JUNIT_ENABLED:true\",\"DD_INTEGRATION_MONGO_ENABLED:false\",\"DD_INTEGRATION_OPENTRACING_ENABLED:true\",\"DD_POSTGRES_URL:jdbc:postgresql://postgres/dogdata\",\"DD_SERVICE:logs-backend-tests\",\"DD_TRACING_ENABLED:true\",\"DOCKER_IMAGE_VERSION:20.10.3\",\"DRE_BAZEL_RULE:\",\"DYNAMIC_BUILD_IMAGE_VERSION:dynamicbuilder-v3319810-6f683f57\",\"ENABLE_SNAPSHOTTED_CHARTS:true\",\"FDB_DEB_URL:https://github.com/apple/foundationdb/releases/download/6.2.30/foundationdb-clients_6.2.30-1_amd64.deb\",\"GIT_BASE_BRANCH:prod\",\"GIT_DEPTH:96\",\"GO_VERSION:1.15\",\"JAVA_VERSION:azul-17-34-19\",\"KUBERNETES_SERVICE_ACCOUNT_OVERWRITE:logs-backend\",\"MAVEN_CLI_OPTS:--settings .ci/settings.xml --batch-mode --errors --no-transfer-progress --show-version -DisCI=true -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -Dorg.slf4j.simpleLogger.showDateTime=true -Dorg.slf4j.simpleLogger.dateTimeFormat=HH:mm:ss -Dsurefire.rerunFailingTestsCount=2\",\"MAVEN_ENV:-XX:MaxRAMPercentage=50 -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true\",\"MAVEN_OPTS:-Dmaven.repo.local=/.m2 -XX:MaxRAMPercentage=50 -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true\",\"S3_BUCKET:s3://dd-ci-artefacts-build-stable/logs-backend\",\"S3_BUCKET_PIPELINE_PATH:s3://dd-ci-artefacts-build-stable/logs-backend/10623014\",\"S3_DDBUILD_MIRROR:s3://binaries.site.io/logs-backend/mirror\",\"S3_DDBUILD_RELEASE:s3://binaries.site.io/logs-backend/release\",\"S3_OPTS:--region us-east-1 --sse AES256 --acl bucket-owner-full-control --only-show-errors\",\"SLACK_NOTIFIER_IMAGE:486234852809.dkr.ecr.us-east-1.amazonaws.com/slack-notifier@sha256:d35e229b35ee0c6cedcb79a908dbca6c964f8a7eeaf82f4367d7e77eb93b9b44\",\"TRACER_URL:https://repo1.maven.org/maven2/com/datadoghq/dd-java-agent/0.108.1/dd-java-agent-0.108.1.jar\",\"TRACER_VERSION:0.108.1\"],\"status\":\"success\"},\"_top_level\":1,\"start\":1666342991000000000,\"gitlab\":{\"pipeline_source\":\"parent_pipeline\",\"result\":\"passed\"},\"env\":\"prod\",\"user\":{\"name\":\"halil.sener\"}},\"ci_level\":\"pipeline\",\"tags\":[\"source:apm\",\"source:apm\"]}}],\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWVA1eXIwSTBPQy1YQUFBQUFBQUFBQVlBQUFBQUVGWlVEVjVjakJKUVVGRWVrbDJSbmhSTUdScGJGWXlVd0FBQUNRQUFBQUFNREU0TTJZNVkyRXRZemhqTUMwMFpUVmxMVGszT0RrdFpUVmxZMkUwTXpJeU5tSTMifQ\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/ci/pipelines/events?filter%5Bfrom%5D=now-30s&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWVA1eXIwSTBPQy1YQUFBQUFBQUFBQVlBQUFBQUVGWlVEVjVjakJKUVVGRWVrbDJSbmhSTUdScGJGWXlVd0FBQUNRQUFBQUFNREU0TTJZNVkyRXRZemhqTUMwMFpUVmxMVGszT0RrdFpUVmxZMkUwTXpJeU5tSTMifQ&page%5Blimit%5D=2&sort=timestamp\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 21 Oct 2022 09:06:23 GMT" + }, + { + "request": { + "body": { + "string": "{\"filter\":{\"from\":\"now-30s\",\"to\":\"now\"},\"options\":{\"timezone\":\"GMT\"},\"page\":{\"cursor\":\"eyJhZnRlciI6IkFnQUFBWVA1eXIwSTBPQy1YQUFBQUFBQUFBQVlBQUFBQUVGWlVEVjVjakJKUVVGRWVrbDJSbmhSTUdScGJGWXlVd0FBQUNRQUFBQUFNREU0TTJZNVkyRXRZemhqTUMwMFpUVmxMVGszT0RrdFpUVmxZMkUwTXpJeU5tSTMifQ\",\"limit\":2},\"sort\":\"timestamp\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/ci/pipelines/events/search" + }, + "response": { + "body": { + "string": "{\"data\":[],\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWVA1eXIwSTBPQy1YZ0FBQUFBQUFBQVlBQUFBQUVGWlVEVjVjakJKUVVGRVN6aHhYekY1VVVSVGFXd3lVd0FBQUNRQUFBQUFNREU0TTJZNVkyRXRZemhqTUMwMFpUVmxMVGszT0RrdFpUVmxZMkUwTXpJeU5tSTMifQ\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/ci/pipelines/events?filter%5Bfrom%5D=now-30s&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWVA1eXIwSTBPQy1YZ0FBQUFBQUFBQVlBQUFBQUVGWlVEVjVjakJKUVVGRVN6aHhYekY1VVVSVGFXd3lVd0FBQUNRQUFBQUFNREU0TTJZNVkyRXRZemhqTUMwMFpUVmxMVGszT0RrdFpUVmxZMkUwTXpJeU5tSTMifQ&page%5Blimit%5D=2&sort=timestamp\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 21 Oct 2022 09:06:23 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/ci_visibility_pipelines/Search-pipelines-events-returns-OK-response.json b/tests/scenarios/cassettes/v2/ci_visibility_pipelines/Search-pipelines-events-returns-OK-response.json index d5b75264f..96e8a2fd7 100644 --- a/tests/scenarios/cassettes/v2/ci_visibility_pipelines/Search-pipelines-events-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/ci_visibility_pipelines/Search-pipelines-events-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"filter\":{\"from\":\"now-15m\",\"query\":\"@ci.provider.name:github AND @ci.status:error\",\"to\":\"now\"},\"options\":{\"timezone\":\"GMT\"},\"page\":{\"limit\":5},\"sort\":\"timestamp\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/ci/pipelines/events/search"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"AgAAAYP5wIfA7N1YyAAAAAAAAAAYAAAAAEFZUDV3SWZBQUFBZGs5R2kyd25pbjdNMQAAACQAAAAAMDE4M2Y5YzUtYWUwZi00MzFhLWI0MWItOGU2MDg1NDM3MzAx\",\"type\":\"cipipeline\",\"attributes\":{\"attributes\":{\"duration\":0,\"github\":{\"conclusion\":\"failure\",\"node_group\":\"\",\"html_url\":\"https://github.com/DataDog/repo\",\"run_attempt\":\"1\",\"app_id\":\"128890\"},\"git\":{\"commit\":{\"sha\":\"95094daa15b4281c41780073ab8b77bc7c8d63d6\"},\"default_branch\":\"prod\",\"repository_url\":\"https://github.com/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"github.com\",\"id\":\"github.com/DataDog/repo\"},\"branch\":\"erkang.zhang/SYM-390/cache-test-spec\"},\"ci\":{\"pipeline\":{\"name\":\"Request Schema diff\",\"id\":\"3296065344-1\"},\"node\":{\"labels\":[]},\"provider\":{\"instance\":\"github-actions\",\"name\":\"github\"},\"job\":{\"name\":\"Annotate PR\",\"id\":\"9025881221\",\"url\":\"https://github.com/DataDog/repo/runs/9025881221\"},\"status\":\"error\"},\"start\":1666342488000000000},\"ci_level\":\"job\",\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AgAAAYP5wZVIw5--1wAAAAAAAAAYAAAAAEFZUDV3WlZJQUFCakl1V1FZUE1TdHlxYgAAACQAAAAAMDE4M2Y5YzUtYWUwZi00MzFhLWI0MWItOGU2MDg1NDM3MzAx\",\"type\":\"cipipeline\",\"attributes\":{\"attributes\":{\"duration\":247000000000,\"github\":{\"conclusion\":\"failure\",\"node_group\":\"GitHub Actions\",\"html_url\":\"https://github.com/DataDog/repo\",\"run_attempt\":\"1\",\"app_id\":\"128890\"},\"git\":{\"commit\":{\"sha\":\"51aec3962c7b3be87b2d656b22042ee5e2c89a3f\"},\"repository_url\":\"https://github.com/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"github.com\",\"id\":\"github.com/DataDog/repo\"},\"branch\":\"master\"},\"ci\":{\"pipeline\":{\"name\":\"Staging Build Deploy and Test\",\"id\":\"3296065853-1\"},\"provider\":{\"instance\":\"github-actions\",\"name\":\"github\"},\"step\":{\"name\":\"Run Datadog Synthetic test\"},\"job\":{\"name\":\"test-checkouts\",\"id\":\"9025825907\"},\"status\":\"error\"},\"start\":1666342310000000000},\"ci_level\":\"step\",\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AgAAAYP5wZkww5--2gAAAAAAAAAYAAAAAEFZUDV3Wmt3QUFBN1R2bTVRRkxzaENxYgAAACQAAAAAMDE4M2Y5YzUtYWUwZi00MzFhLWI0MWItOGU2MDg1NDM3MzAx\",\"type\":\"cipipeline\",\"attributes\":{\"attributes\":{\"duration\":251000000000,\"github\":{\"conclusion\":\"failure\",\"node_group\":\"GitHub Actions\",\"html_url\":\"https://github.com/DataDog/repo\",\"run_attempt\":\"1\",\"app_id\":\"128890\"},\"git\":{\"commit\":{\"sha\":\"51aec3962c7b3be87b2d656b22042ee5e2c89a3f\"},\"default_branch\":\"master\",\"repository_url\":\"https://github.com/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"github.com\",\"id\":\"github.com/DataDog/repo\"},\"branch\":\"master\"},\"ci\":{\"pipeline\":{\"name\":\"Staging Build Deploy and Test\",\"id\":\"3296065853-1\"},\"node\":{\"labels\":[\"ubuntu-latest\"]},\"provider\":{\"instance\":\"github-actions\",\"name\":\"github\"},\"job\":{\"name\":\"test-checkouts\",\"id\":\"9025825907\",\"url\":\"https://github.com/DataDog/repo/actions/runs/3296065853/jobs/5435334930\"},\"status\":\"error\"},\"start\":1666342307000000000},\"ci_level\":\"job\",\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AgAAAYP5wmg4dbfjZwAAAAAAAAAYAAAAAEFZUDV3bWc0QUFBX0RBNlJkS1RqWkNLSAAAACQAAAAAMDE4M2Y5YzUtYWUwZi00MzFhLWI0MWItOGU2MDg1NDM3MzAx\",\"type\":\"cipipeline\",\"attributes\":{\"attributes\":{\"duration\":29000000000,\"github\":{\"conclusion\":\"failure\",\"node_group\":\"GitHub Actions\",\"html_url\":\"https://github.com/DataDog/repo\",\"run_attempt\":\"1\",\"app_id\":\"128890\"},\"git\":{\"commit\":{\"sha\":\"62bd7b957a4db5b6926ca570b087b3cfdb9f05a7\"},\"repository_url\":\"https://github.com/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"github.com\",\"id\":\"github.com/DataDog/repo\"},\"branch\":\"juanjux/APPSEC-6399-only-report-actorip-on-attack-part2\"},\"ci\":{\"pipeline\":{\"name\":\"Framework tests\",\"id\":\"3296098174-1\"},\"provider\":{\"instance\":\"github-actions\",\"name\":\"github\"},\"step\":{\"name\":\"Run tests\"},\"job\":{\"name\":\"starlette-testsuite-0_17_1\",\"id\":\"9025869107\"},\"status\":\"error\"},\"start\":1666342582000000000},\"ci_level\":\"step\",\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AgAAAYP5wnAIdbfjbAAAAAAAAAAYAAAAAEFZUDV3bkFJQUFENkpheXhlTXJfS3lLSAAAACQAAAAAMDE4M2Y5YzUtYWUwZi00MzFhLWI0MWItOGU2MDg1NDM3MzAx\",\"type\":\"cipipeline\",\"attributes\":{\"attributes\":{\"duration\":164000000000,\"github\":{\"conclusion\":\"failure\",\"node_group\":\"GitHub Actions\",\"html_url\":\"https://github.com/DataDog/repo\",\"run_attempt\":\"1\",\"app_id\":\"128890\"},\"git\":{\"commit\":{\"sha\":\"62bd7b957a4db5b6926ca570b087b3cfdb9f05a7\"},\"default_branch\":\"1.x\",\"repository_url\":\"https://github.com/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"github.com\",\"id\":\"github.com/DataDog/repo\"},\"branch\":\"juanjux/APPSEC-6399-only-report-actorip-on-attack-part2\"},\"ci\":{\"pipeline\":{\"name\":\"Framework tests\",\"id\":\"3296098174-1\"},\"node\":{\"labels\":[\"ubuntu-latest\"]},\"provider\":{\"instance\":\"github-actions\",\"name\":\"github\"},\"job\":{\"name\":\"starlette-testsuite-0_17_1\",\"id\":\"9025869107\",\"url\":\"https://github.com/DataDog/repo/actions/runs/3296098174/jobs/5435368427\"},\"status\":\"error\"},\"start\":1666342449000000000},\"ci_level\":\"job\",\"tags\":[\"source:apm\",\"source:apm\"]}}],\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWVA1d25BSWRiZmpiQUFBQUFBQUFBQVlBQUFBQUVGWlVEVjNia0ZKUVVGRU5rcGhlWGhsVFhKZlMzbExTQUFBQUNRQUFBQUFNREU0TTJZNVl6VXRZV1V3WmkwME16RmhMV0kwTVdJdE9HVTJNRGcxTkRNM016QXgifQ\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/ci/pipelines/events?filter%5Bfrom%5D=now-15m&filter%5Bquery%5D=%40ci.provider.name%3Agithub+AND+%40ci.status%3Aerror&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWVA1d25BSWRiZmpiQUFBQUFBQUFBQVlBQUFBQUVGWlVEVjNia0ZKUVVGRU5rcGhlWGhsVFhKZlMzbExTQUFBQUNRQUFBQUFNREU0TTJZNVl6VXRZV1V3WmkwME16RmhMV0kwTVdJdE9HVTJNRGcxTkRNM016QXgifQ&page%5Blimit%5D=5&sort=timestamp\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 21 Oct 2022 09:09:41 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"filter\":{\"from\":\"now-15m\",\"query\":\"@ci.provider.name:github AND @ci.status:error\",\"to\":\"now\"},\"options\":{\"timezone\":\"GMT\"},\"page\":{\"limit\":5},\"sort\":\"timestamp\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/ci/pipelines/events/search" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"AgAAAYP5wIfA7N1YyAAAAAAAAAAYAAAAAEFZUDV3SWZBQUFBZGs5R2kyd25pbjdNMQAAACQAAAAAMDE4M2Y5YzUtYWUwZi00MzFhLWI0MWItOGU2MDg1NDM3MzAx\",\"type\":\"cipipeline\",\"attributes\":{\"attributes\":{\"duration\":0,\"github\":{\"conclusion\":\"failure\",\"node_group\":\"\",\"html_url\":\"https://github.com/DataDog/repo\",\"run_attempt\":\"1\",\"app_id\":\"128890\"},\"git\":{\"commit\":{\"sha\":\"95094daa15b4281c41780073ab8b77bc7c8d63d6\"},\"default_branch\":\"prod\",\"repository_url\":\"https://github.com/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"github.com\",\"id\":\"github.com/DataDog/repo\"},\"branch\":\"erkang.zhang/SYM-390/cache-test-spec\"},\"ci\":{\"pipeline\":{\"name\":\"Request Schema diff\",\"id\":\"3296065344-1\"},\"node\":{\"labels\":[]},\"provider\":{\"instance\":\"github-actions\",\"name\":\"github\"},\"job\":{\"name\":\"Annotate PR\",\"id\":\"9025881221\",\"url\":\"https://github.com/DataDog/repo/runs/9025881221\"},\"status\":\"error\"},\"start\":1666342488000000000},\"ci_level\":\"job\",\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AgAAAYP5wZVIw5--1wAAAAAAAAAYAAAAAEFZUDV3WlZJQUFCakl1V1FZUE1TdHlxYgAAACQAAAAAMDE4M2Y5YzUtYWUwZi00MzFhLWI0MWItOGU2MDg1NDM3MzAx\",\"type\":\"cipipeline\",\"attributes\":{\"attributes\":{\"duration\":247000000000,\"github\":{\"conclusion\":\"failure\",\"node_group\":\"GitHub Actions\",\"html_url\":\"https://github.com/DataDog/repo\",\"run_attempt\":\"1\",\"app_id\":\"128890\"},\"git\":{\"commit\":{\"sha\":\"51aec3962c7b3be87b2d656b22042ee5e2c89a3f\"},\"repository_url\":\"https://github.com/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"github.com\",\"id\":\"github.com/DataDog/repo\"},\"branch\":\"master\"},\"ci\":{\"pipeline\":{\"name\":\"Staging Build Deploy and Test\",\"id\":\"3296065853-1\"},\"provider\":{\"instance\":\"github-actions\",\"name\":\"github\"},\"step\":{\"name\":\"Run Datadog Synthetic test\"},\"job\":{\"name\":\"test-checkouts\",\"id\":\"9025825907\"},\"status\":\"error\"},\"start\":1666342310000000000},\"ci_level\":\"step\",\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AgAAAYP5wZkww5--2gAAAAAAAAAYAAAAAEFZUDV3Wmt3QUFBN1R2bTVRRkxzaENxYgAAACQAAAAAMDE4M2Y5YzUtYWUwZi00MzFhLWI0MWItOGU2MDg1NDM3MzAx\",\"type\":\"cipipeline\",\"attributes\":{\"attributes\":{\"duration\":251000000000,\"github\":{\"conclusion\":\"failure\",\"node_group\":\"GitHub Actions\",\"html_url\":\"https://github.com/DataDog/repo\",\"run_attempt\":\"1\",\"app_id\":\"128890\"},\"git\":{\"commit\":{\"sha\":\"51aec3962c7b3be87b2d656b22042ee5e2c89a3f\"},\"default_branch\":\"master\",\"repository_url\":\"https://github.com/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"github.com\",\"id\":\"github.com/DataDog/repo\"},\"branch\":\"master\"},\"ci\":{\"pipeline\":{\"name\":\"Staging Build Deploy and Test\",\"id\":\"3296065853-1\"},\"node\":{\"labels\":[\"ubuntu-latest\"]},\"provider\":{\"instance\":\"github-actions\",\"name\":\"github\"},\"job\":{\"name\":\"test-checkouts\",\"id\":\"9025825907\",\"url\":\"https://github.com/DataDog/repo/actions/runs/3296065853/jobs/5435334930\"},\"status\":\"error\"},\"start\":1666342307000000000},\"ci_level\":\"job\",\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AgAAAYP5wmg4dbfjZwAAAAAAAAAYAAAAAEFZUDV3bWc0QUFBX0RBNlJkS1RqWkNLSAAAACQAAAAAMDE4M2Y5YzUtYWUwZi00MzFhLWI0MWItOGU2MDg1NDM3MzAx\",\"type\":\"cipipeline\",\"attributes\":{\"attributes\":{\"duration\":29000000000,\"github\":{\"conclusion\":\"failure\",\"node_group\":\"GitHub Actions\",\"html_url\":\"https://github.com/DataDog/repo\",\"run_attempt\":\"1\",\"app_id\":\"128890\"},\"git\":{\"commit\":{\"sha\":\"62bd7b957a4db5b6926ca570b087b3cfdb9f05a7\"},\"repository_url\":\"https://github.com/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"github.com\",\"id\":\"github.com/DataDog/repo\"},\"branch\":\"juanjux/APPSEC-6399-only-report-actorip-on-attack-part2\"},\"ci\":{\"pipeline\":{\"name\":\"Framework tests\",\"id\":\"3296098174-1\"},\"provider\":{\"instance\":\"github-actions\",\"name\":\"github\"},\"step\":{\"name\":\"Run tests\"},\"job\":{\"name\":\"starlette-testsuite-0_17_1\",\"id\":\"9025869107\"},\"status\":\"error\"},\"start\":1666342582000000000},\"ci_level\":\"step\",\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AgAAAYP5wnAIdbfjbAAAAAAAAAAYAAAAAEFZUDV3bkFJQUFENkpheXhlTXJfS3lLSAAAACQAAAAAMDE4M2Y5YzUtYWUwZi00MzFhLWI0MWItOGU2MDg1NDM3MzAx\",\"type\":\"cipipeline\",\"attributes\":{\"attributes\":{\"duration\":164000000000,\"github\":{\"conclusion\":\"failure\",\"node_group\":\"GitHub Actions\",\"html_url\":\"https://github.com/DataDog/repo\",\"run_attempt\":\"1\",\"app_id\":\"128890\"},\"git\":{\"commit\":{\"sha\":\"62bd7b957a4db5b6926ca570b087b3cfdb9f05a7\"},\"default_branch\":\"1.x\",\"repository_url\":\"https://github.com/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"github.com\",\"id\":\"github.com/DataDog/repo\"},\"branch\":\"juanjux/APPSEC-6399-only-report-actorip-on-attack-part2\"},\"ci\":{\"pipeline\":{\"name\":\"Framework tests\",\"id\":\"3296098174-1\"},\"node\":{\"labels\":[\"ubuntu-latest\"]},\"provider\":{\"instance\":\"github-actions\",\"name\":\"github\"},\"job\":{\"name\":\"starlette-testsuite-0_17_1\",\"id\":\"9025869107\",\"url\":\"https://github.com/DataDog/repo/actions/runs/3296098174/jobs/5435368427\"},\"status\":\"error\"},\"start\":1666342449000000000},\"ci_level\":\"job\",\"tags\":[\"source:apm\",\"source:apm\"]}}],\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWVA1d25BSWRiZmpiQUFBQUFBQUFBQVlBQUFBQUVGWlVEVjNia0ZKUVVGRU5rcGhlWGhsVFhKZlMzbExTQUFBQUNRQUFBQUFNREU0TTJZNVl6VXRZV1V3WmkwME16RmhMV0kwTVdJdE9HVTJNRGcxTkRNM016QXgifQ\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/ci/pipelines/events?filter%5Bfrom%5D=now-15m&filter%5Bquery%5D=%40ci.provider.name%3Agithub+AND+%40ci.status%3Aerror&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWVA1d25BSWRiZmpiQUFBQUFBQUFBQVlBQUFBQUVGWlVEVjNia0ZKUVVGRU5rcGhlWGhsVFhKZlMzbExTQUFBQUNRQUFBQUFNREU0TTJZNVl6VXRZV1V3WmkwME16RmhMV0kwTVdJdE9HVTJNRGcxTkRNM016QXgifQ&page%5Blimit%5D=5&sort=timestamp\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 21 Oct 2022 09:09:41 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/ci_visibility_pipelines/Send-pipeline-event-returns-Request-accepted-for-processing-response.json b/tests/scenarios/cassettes/v2/ci_visibility_pipelines/Send-pipeline-event-returns-Request-accepted-for-processing-response.json index f1741b02f..2480fd9cf 100644 --- a/tests/scenarios/cassettes/v2/ci_visibility_pipelines/Send-pipeline-event-returns-Request-accepted-for-processing-response.json +++ b/tests/scenarios/cassettes/v2/ci_visibility_pipelines/Send-pipeline-event-returns-Request-accepted-for-processing-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"resource\":{\"end\":\"2023-06-22T08:07:58.046Z\",\"git\":{\"author_email\":\"john.doe@email.com\",\"repository_url\":\"https://github.com/DataDog/datadog-agent\",\"sha\":\"7f263865994b76066c4612fd1965215e7dcb4cd2\"},\"level\":\"pipeline\",\"name\":\"Deploy to AWS\",\"partial_retry\":false,\"start\":\"2023-06-22T08:06:28.046Z\",\"status\":\"success\",\"unique_id\":\"3eacb6f3-ff04-4e10-8a9c-46e6d054024a\",\"url\":\"https://my-ci-provider.example/pipelines/my-pipeline/run/1\"}},\"type\":\"cipipeline_resource_request\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/ci/pipeline"}, "response": {"body": {"string": "{\"data\":null}", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 202, "message": "Accepted"}}, "recorded_at": "Thu, 22 Jun 2023 08:08:28 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"resource\":{\"end\":\"2023-06-22T08:07:58.046Z\",\"git\":{\"author_email\":\"john.doe@email.com\",\"repository_url\":\"https://github.com/DataDog/datadog-agent\",\"sha\":\"7f263865994b76066c4612fd1965215e7dcb4cd2\"},\"level\":\"pipeline\",\"name\":\"Deploy to AWS\",\"partial_retry\":false,\"start\":\"2023-06-22T08:06:28.046Z\",\"status\":\"success\",\"unique_id\":\"3eacb6f3-ff04-4e10-8a9c-46e6d054024a\",\"url\":\"https://my-ci-provider.example/pipelines/my-pipeline/run/1\"}},\"type\":\"cipipeline_resource_request\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/ci/pipeline" + }, + "response": { + "body": { + "string": "{\"data\":null}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 202, + "message": "Accepted" + } + }, + "recorded_at": "Thu, 22 Jun 2023 08:08:28 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/ci_visibility_pipelines/Send-pipeline-job-event-returns-Request-accepted-for-processing-response.json b/tests/scenarios/cassettes/v2/ci_visibility_pipelines/Send-pipeline-job-event-returns-Request-accepted-for-processing-response.json index c49056a87..48686b185 100644 --- a/tests/scenarios/cassettes/v2/ci_visibility_pipelines/Send-pipeline-job-event-returns-Request-accepted-for-processing-response.json +++ b/tests/scenarios/cassettes/v2/ci_visibility_pipelines/Send-pipeline-job-event-returns-Request-accepted-for-processing-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"resource\":{\"end\":\"2023-09-27T09:29:08.798Z\",\"id\":\"cf9456de-8b9e-4c27-aa79-27b1e78c1a33\",\"level\":\"job\",\"name\":\"Build image\",\"pipeline_name\":\"Deploy to AWS\",\"pipeline_unique_id\":\"3eacb6f3-ff04-4e10-8a9c-46e6d054024a\",\"start\":\"2023-09-27T09:27:38.798Z\",\"status\":\"error\",\"url\":\"https://my-ci-provider.example/jobs/my-jobs/run/1\"}},\"type\":\"cipipeline_resource_request\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/ci/pipeline"}, "response": {"body": {"string": "{\"data\":null}", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 202, "message": "Accepted"}}, "recorded_at": "Wed, 27 Sep 2023 09:29:38 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"resource\":{\"end\":\"2023-09-27T09:29:08.798Z\",\"id\":\"cf9456de-8b9e-4c27-aa79-27b1e78c1a33\",\"level\":\"job\",\"name\":\"Build image\",\"pipeline_name\":\"Deploy to AWS\",\"pipeline_unique_id\":\"3eacb6f3-ff04-4e10-8a9c-46e6d054024a\",\"start\":\"2023-09-27T09:27:38.798Z\",\"status\":\"error\",\"url\":\"https://my-ci-provider.example/jobs/my-jobs/run/1\"}},\"type\":\"cipipeline_resource_request\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/ci/pipeline" + }, + "response": { + "body": { + "string": "{\"data\":null}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 202, + "message": "Accepted" + } + }, + "recorded_at": "Wed, 27 Sep 2023 09:29:38 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/ci_visibility_tests/Aggregate-tests-events-returns-OK-response.json b/tests/scenarios/cassettes/v2/ci_visibility_tests/Aggregate-tests-events-returns-OK-response.json index f98a9b218..642c1b334 100644 --- a/tests/scenarios/cassettes/v2/ci_visibility_tests/Aggregate-tests-events-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/ci_visibility_tests/Aggregate-tests-events-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"compute\":[{\"aggregation\":\"count\",\"metric\":\"@test.is_flaky\",\"type\":\"total\"}],\"filter\":{\"from\":\"now-15m\",\"query\":\"@language:(python OR go)\",\"to\":\"now\"},\"group_by\":[{\"facet\":\"@git.branch\",\"limit\":10,\"sort\":{\"order\":\"asc\"},\"total\":false}],\"options\":{\"timezone\":\"GMT\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/ci/tests/analytics/aggregate"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6eyJAZ2l0LmJyYW5jaCI6WyJDTElQLTM4MSIsImFsZWphbmRyby50b3JyZXMvbWlncmF0ZS10by1uZXctaG1zLWVuZHBvaW50IiwiYW1vbmdpbC9hZGQtcmF0ZS1saW1pdC1uYW1lLW1ldGFkYXRhLXRvLWFwaXZpZXdlciIsImFzYWQxMTIzL3Jlc3BvbmRlci10eXBlcy1xYS1maXhlcyIsImF3L2RleHN0ci10YWdzLWZvci1rZXkiLCJjcmVhdGVfaW52aXRlX29yZ19hcGkiLCJkYXZlLmhhbmR5L2ZpeC1uby1yZXNvdXJjZWlkIiwiZWRyZXZvL2dpdGRiLW1lbW9yeS1sZWFrIiwiZmlzaGVyL2FkZC1rOHMtbmFtZXNwYWNlcyIsImZsb3JlbnRjbGFycmV0L215cHktZXhjbHVkZSJdfX0\"},\"elapsed\":43,\"request_id\":\"pddv1ChZoVGp4aTdKV1FYQ1ZoM19LUF90eGx3IiwKHB0cQpJ-X_9gd5n7p8wRMAoRGyyFQlDJbjpK5SkSDEclibMc2UXCLboJqw\",\"status\":\"done\"},\"data\":{\"buckets\":[{\"by\":{\"@git.branch\":\"branch1\"},\"computes\":{\"c0\":345}},{\"by\":{\"@git.branch\":\"branch2\"},\"computes\":{\"c0\":309}},{\"by\":{\"@git.branch\":\"branch2\"},\"computes\":{\"c0\":30597}},{\"by\":{\"@git.branch\":\"branch3\"},\"computes\":{\"c0\":43457}},{\"by\":{\"@git.branch\":\"branch3\"},\"computes\":{\"c0\":96}},{\"by\":{\"@git.branch\":\"branch4\"},\"computes\":{\"c0\":382}},{\"by\":{\"@git.branch\":\"branch5\"},\"computes\":{\"c0\":16891}},{\"by\":{\"@git.branch\":\"branch6\"},\"computes\":{\"c0\":93}},{\"by\":{\"@git.branch\":\"branch7\"},\"computes\":{\"c0\":46490}},{\"by\":{\"@git.branch\":\"branch8\"},\"computes\":{\"c0\":370}}]}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 21 Oct 2022 14:50:52 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"compute\":[{\"aggregation\":\"count\",\"metric\":\"@test.is_flaky\",\"type\":\"total\"}],\"filter\":{\"from\":\"now-15m\",\"query\":\"@language:(python OR go)\",\"to\":\"now\"},\"group_by\":[{\"facet\":\"@git.branch\",\"limit\":10,\"sort\":{\"order\":\"asc\"},\"total\":false}],\"options\":{\"timezone\":\"GMT\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/ci/tests/analytics/aggregate" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6eyJAZ2l0LmJyYW5jaCI6WyJDTElQLTM4MSIsImFsZWphbmRyby50b3JyZXMvbWlncmF0ZS10by1uZXctaG1zLWVuZHBvaW50IiwiYW1vbmdpbC9hZGQtcmF0ZS1saW1pdC1uYW1lLW1ldGFkYXRhLXRvLWFwaXZpZXdlciIsImFzYWQxMTIzL3Jlc3BvbmRlci10eXBlcy1xYS1maXhlcyIsImF3L2RleHN0ci10YWdzLWZvci1rZXkiLCJjcmVhdGVfaW52aXRlX29yZ19hcGkiLCJkYXZlLmhhbmR5L2ZpeC1uby1yZXNvdXJjZWlkIiwiZWRyZXZvL2dpdGRiLW1lbW9yeS1sZWFrIiwiZmlzaGVyL2FkZC1rOHMtbmFtZXNwYWNlcyIsImZsb3JlbnRjbGFycmV0L215cHktZXhjbHVkZSJdfX0\"},\"elapsed\":43,\"request_id\":\"pddv1ChZoVGp4aTdKV1FYQ1ZoM19LUF90eGx3IiwKHB0cQpJ-X_9gd5n7p8wRMAoRGyyFQlDJbjpK5SkSDEclibMc2UXCLboJqw\",\"status\":\"done\"},\"data\":{\"buckets\":[{\"by\":{\"@git.branch\":\"branch1\"},\"computes\":{\"c0\":345}},{\"by\":{\"@git.branch\":\"branch2\"},\"computes\":{\"c0\":309}},{\"by\":{\"@git.branch\":\"branch2\"},\"computes\":{\"c0\":30597}},{\"by\":{\"@git.branch\":\"branch3\"},\"computes\":{\"c0\":43457}},{\"by\":{\"@git.branch\":\"branch3\"},\"computes\":{\"c0\":96}},{\"by\":{\"@git.branch\":\"branch4\"},\"computes\":{\"c0\":382}},{\"by\":{\"@git.branch\":\"branch5\"},\"computes\":{\"c0\":16891}},{\"by\":{\"@git.branch\":\"branch6\"},\"computes\":{\"c0\":93}},{\"by\":{\"@git.branch\":\"branch7\"},\"computes\":{\"c0\":46490}},{\"by\":{\"@git.branch\":\"branch8\"},\"computes\":{\"c0\":370}}]}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 21 Oct 2022 14:50:52 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/ci_visibility_tests/Get-a-list-of-tests-events-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v2/ci_visibility_tests/Get-a-list-of-tests-events-returns-OK-response-with-pagination.json index e21b66f4f..98bd2665d 100644 --- a/tests/scenarios/cassettes/v2/ci_visibility_tests/Get-a-list-of-tests-events-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v2/ci_visibility_tests/Get-a-list-of-tests-events-returns-OK-response-with-pagination.json @@ -1 +1,61 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/ci/tests/events?filter%5Bfrom%5D=2022-10-21T14%3A43%3A41.511Z&filter%5Bto%5D=2022-10-21T14%3A44%3A11.511Z&page%5Blimit%5D=2"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"AQAAAYP7AGGfo7r-agAAAABBWVA3QUdHZkFBQlRMSUtLNkdvWHZNSUs\",\"type\":\"citest\",\"attributes\":{\"test_level\":\"test\",\"attributes\":{\"test_suite\":{\"fingerprint\":\"6c8995a36c21161e\"},\"test\":{\"framework_version\":\"0.0.2\",\"codeowners\":[\"@DataDog/repo\"],\"source\":{\"file\":\"javascript/datadog/dashboard/components/widgets/AlertGraph/alert-graph.utils.unit.ts\"},\"type\":\"test\",\"has_parameters\":false,\"jest\":{\"test_runner\":\"jest-circus\"},\"command\":\"jest --config jest.browser.config.js --color --ci --silent --maxWorkers=7\",\"framework\":\"jest\",\"suite\":\"javascript/datadog/dashboard/components/widgets/AlertGraph/alert-graph.utils.unit.ts\",\"full_name\":\"javascript/datadog/dashboard/components/widgets/AlertGraph/alert-graph.utils.unit.ts.Alert Graph utils getAlertPeriod should return the alert period\",\"service\":\"web-ui-tests\",\"name\":\"Alert Graph utils getAlertPeriod should return the alert period\",\"fingerprint\":\"cf1b658113e4fe46\",\"status\":\"pass\"},\"os\":{\"version\":\"5.15.0-1017-aws\",\"platform\":\"linux\",\"architecture\":\"x64\"},\"ci\":{\"pipeline\":{\"number\":479961,\"name\":\"DataDog/repo\",\"id\":\"10631454\",\"url\":\"https://gitlab.site.io/DataDog/repo/pipelines/10631454\"},\"workspace_path\":\"/go/src/github.com/DataDog/repo\",\"stage\":{\"name\":\"test\"},\"provider\":{\"name\":\"gitlab\"},\"job\":{\"name\":\"unit-test\",\"url\":\"https://gitlab.site.io/DataDog/repo/-/jobs/184825583\"}},\"sampling\":{\"priority\":1},\"start\":1666363449758001664,\"runtime\":{\"name\":\"node\",\"version\":\"v16.3.0\"},\"language\":\"javascript\",\"env\":\"ci\",\"version\":\"0.0.2\",\"duration\":1797119,\"test_session\":{\"fingerprint\":\"6bf54b12dc4341b8\"},\"library_version\":\"3.4.0\",\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-10-21T10:39:58-04:00\",\"name\":\"GitHub\",\"email\":\"noreply@github.com\",\"date_timestamp\":1666363198000},\"author\":{\"date\":\"2022-10-21T10:39:58-04:00\",\"name\":\"Joe\",\"email\":\"support@datadoghq.com\",\"date_timestamp\":1666363198000},\"message\":\"Merge branch 'preprod' into zach.anderson/sendgrid_last_login\",\"sha\":\"ddc2d8cf8a68ca7c67553ea12d41b0df5d069bf7\"},\"repository_url\":\"https://gitlab.site.io/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"gitlab.site.io\",\"id\":\"gitlab.site.io/DataDog/repo\"},\"branch\":\"zach.anderson/sendgrid_last_login\"},\"service\":\"web-ui-tests\",\"runtime-id\":\"d3f4759f-5bda-4dab-a494-0736b2671798\"},\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AQAAAYP7AGE4o7r-XAAAAABBWVA3QUdFNEFBQ20wc3BXLWNYUDB5Z1M\",\"type\":\"citest\",\"attributes\":{\"test_level\":\"test\",\"attributes\":{\"test_suite\":{\"fingerprint\":\"18538434d1355cce\"},\"test\":{\"framework_version\":\"0.0.2\",\"codeowners\":[\"@DataDog/repo\"],\"source\":{\"file\":\"javascript/datadog/logs/components/UnifiedExplorer/export-csv.helpers.unit.ts\"},\"type\":\"test\",\"has_parameters\":false,\"jest\":{\"test_runner\":\"jest-circus\"},\"command\":\"jest --config jest.browser.config.js --color --ci --silent --maxWorkers=7\",\"framework\":\"jest\",\"suite\":\"javascript/datadog/logs/components/UnifiedExplorer/export-csv.helpers.unit.ts\",\"full_name\":\"javascript/datadog/logs/components/UnifiedExplorer/export-csv.helpers.unit.ts.sanitizeCell should add a single-quote at the beginning if necessary (cell='')\",\"service\":\"web-ui-tests\",\"name\":\"sanitizeCell should add a single-quote at the beginning if necessary (cell='')\",\"fingerprint\":\"e1234fc553a164\",\"status\":\"pass\"},\"os\":{\"version\":\"5.15.0-1017-aws\",\"platform\":\"linux\",\"architecture\":\"x64\"},\"ci\":{\"pipeline\":{\"number\":479954,\"name\":\"DataDog/repo\",\"id\":\"10631295\",\"url\":\"https://gitlab.site.io/DataDog/repo/pipelines/10631295\"},\"workspace_path\":\"/go/src/github.com/DataDog/repo\",\"stage\":{\"name\":\"test\"},\"provider\":{\"name\":\"gitlab\"},\"job\":{\"name\":\"unit-test\",\"url\":\"https://gitlab.site.io/DataDog/repo/-/jobs/184822096\"}},\"sampling\":{\"priority\":1},\"start\":1666363449656001024,\"runtime\":{\"name\":\"node\",\"version\":\"v16.3.0\"},\"language\":\"javascript\",\"env\":\"ci\",\"version\":\"0.0.2\",\"duration\":961670,\"test_session\":{\"fingerprint\":\"6bf54b12dc4341b8\"},\"library_version\":\"3.4.0\",\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-10-21T14:33:58+00:00\",\"name\":\"GitHub\",\"email\":\"noreply@github.com\",\"date_timestamp\":1666362838000},\"author\":{\"date\":\"2022-10-21T14:33:58+00:00\",\"name\":\"temporal-github-worker-1[bot]\",\"email\":\"83676731+temporal-github-worker-1[bot]@users.noreply.github.com\",\"date_timestamp\":1666362838000},\"message\":\"{\\\"base_commit\\\":\\\"000e36971943d45210e6c019e1ed6f5fb3f182c5\\\",\\\"head_commit\\\":\\\"87bfaa65b1d93acae749a437b4265d1535e0bcdb\\\"}\\n\",\"sha\":\"0756e4459a560f921c497b5054e7406e812fba70\"},\"repository_url\":\"https://gitlab.site.io/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"gitlab.site.io\",\"id\":\"gitlab.site.io/DataDog/repo\"},\"branch\":\"mq-working-branch-6edc20d\"},\"service\":\"web-ui-tests\",\"runtime-id\":\"9878210e-f42c-4786-b3e3-b2203dd4bfc1\"},\"tags\":[\"source:apm\",\"source:apm\"]}}],\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWVA3QUdFNG83ci1YQUFBQUFCQldWQTNRVWRGTkVGQlEyMHdjM0JYTFdOWVVEQjVaMU0ifQ\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/ci/tests/events?filter%5Bfrom%5D=2022-10-21T14%3A43%3A41.511Z&filter%5Bto%5D=2022-10-21T14%3A44%3A11.511Z&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWVA3QUdFNG83ci1YQUFBQUFCQldWQTNRVWRGTkVGQlEyMHdjM0JYTFdOWVVEQjVaMU0ifQ&page%5Blimit%5D=2\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 21 Oct 2022 14:44:11 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/ci/tests/events?filter%5Bfrom%5D=2022-10-21T14%3A43%3A41.511Z&filter%5Bto%5D=2022-10-21T14%3A44%3A11.511Z&page%5Blimit%5D=2&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWVA3QUdFNG83ci1YQUFBQUFCQldWQTNRVWRGTkVGQlEyMHdjM0JYTFdOWVVEQjVaMU0ifQ"}, "response": {"body": {"string": "{\"data\":[],\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWVA3QUdCdmxSc1pDd0FBQUFCQldWQTNRVWRDZGtGQlFtUlViV0ZTVVhKZmFFVXpiMWcifQ\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/ci/tests/events?filter%5Bfrom%5D=2022-10-21T14%3A43%3A41.511Z&filter%5Bto%5D=2022-10-21T14%3A44%3A11.511Z&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWVA3QUdCdmxSc1pDd0FBQUFCQldWQTNRVWRDZGtGQlFtUlViV0ZTVVhKZmFFVXpiMWcifQ&page%5Blimit%5D=2\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 21 Oct 2022 14:44:11 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/ci/tests/events?filter%5Bfrom%5D=2022-10-21T14%3A43%3A41.511Z&filter%5Bto%5D=2022-10-21T14%3A44%3A11.511Z&page%5Blimit%5D=2" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"AQAAAYP7AGGfo7r-agAAAABBWVA3QUdHZkFBQlRMSUtLNkdvWHZNSUs\",\"type\":\"citest\",\"attributes\":{\"test_level\":\"test\",\"attributes\":{\"test_suite\":{\"fingerprint\":\"6c8995a36c21161e\"},\"test\":{\"framework_version\":\"0.0.2\",\"codeowners\":[\"@DataDog/repo\"],\"source\":{\"file\":\"javascript/datadog/dashboard/components/widgets/AlertGraph/alert-graph.utils.unit.ts\"},\"type\":\"test\",\"has_parameters\":false,\"jest\":{\"test_runner\":\"jest-circus\"},\"command\":\"jest --config jest.browser.config.js --color --ci --silent --maxWorkers=7\",\"framework\":\"jest\",\"suite\":\"javascript/datadog/dashboard/components/widgets/AlertGraph/alert-graph.utils.unit.ts\",\"full_name\":\"javascript/datadog/dashboard/components/widgets/AlertGraph/alert-graph.utils.unit.ts.Alert Graph utils getAlertPeriod should return the alert period\",\"service\":\"web-ui-tests\",\"name\":\"Alert Graph utils getAlertPeriod should return the alert period\",\"fingerprint\":\"cf1b658113e4fe46\",\"status\":\"pass\"},\"os\":{\"version\":\"5.15.0-1017-aws\",\"platform\":\"linux\",\"architecture\":\"x64\"},\"ci\":{\"pipeline\":{\"number\":479961,\"name\":\"DataDog/repo\",\"id\":\"10631454\",\"url\":\"https://gitlab.site.io/DataDog/repo/pipelines/10631454\"},\"workspace_path\":\"/go/src/github.com/DataDog/repo\",\"stage\":{\"name\":\"test\"},\"provider\":{\"name\":\"gitlab\"},\"job\":{\"name\":\"unit-test\",\"url\":\"https://gitlab.site.io/DataDog/repo/-/jobs/184825583\"}},\"sampling\":{\"priority\":1},\"start\":1666363449758001664,\"runtime\":{\"name\":\"node\",\"version\":\"v16.3.0\"},\"language\":\"javascript\",\"env\":\"ci\",\"version\":\"0.0.2\",\"duration\":1797119,\"test_session\":{\"fingerprint\":\"6bf54b12dc4341b8\"},\"library_version\":\"3.4.0\",\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-10-21T10:39:58-04:00\",\"name\":\"GitHub\",\"email\":\"noreply@github.com\",\"date_timestamp\":1666363198000},\"author\":{\"date\":\"2022-10-21T10:39:58-04:00\",\"name\":\"Joe\",\"email\":\"support@datadoghq.com\",\"date_timestamp\":1666363198000},\"message\":\"Merge branch 'preprod' into zach.anderson/sendgrid_last_login\",\"sha\":\"ddc2d8cf8a68ca7c67553ea12d41b0df5d069bf7\"},\"repository_url\":\"https://gitlab.site.io/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"gitlab.site.io\",\"id\":\"gitlab.site.io/DataDog/repo\"},\"branch\":\"zach.anderson/sendgrid_last_login\"},\"service\":\"web-ui-tests\",\"runtime-id\":\"d3f4759f-5bda-4dab-a494-0736b2671798\"},\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AQAAAYP7AGE4o7r-XAAAAABBWVA3QUdFNEFBQ20wc3BXLWNYUDB5Z1M\",\"type\":\"citest\",\"attributes\":{\"test_level\":\"test\",\"attributes\":{\"test_suite\":{\"fingerprint\":\"18538434d1355cce\"},\"test\":{\"framework_version\":\"0.0.2\",\"codeowners\":[\"@DataDog/repo\"],\"source\":{\"file\":\"javascript/datadog/logs/components/UnifiedExplorer/export-csv.helpers.unit.ts\"},\"type\":\"test\",\"has_parameters\":false,\"jest\":{\"test_runner\":\"jest-circus\"},\"command\":\"jest --config jest.browser.config.js --color --ci --silent --maxWorkers=7\",\"framework\":\"jest\",\"suite\":\"javascript/datadog/logs/components/UnifiedExplorer/export-csv.helpers.unit.ts\",\"full_name\":\"javascript/datadog/logs/components/UnifiedExplorer/export-csv.helpers.unit.ts.sanitizeCell should add a single-quote at the beginning if necessary (cell='')\",\"service\":\"web-ui-tests\",\"name\":\"sanitizeCell should add a single-quote at the beginning if necessary (cell='')\",\"fingerprint\":\"e1234fc553a164\",\"status\":\"pass\"},\"os\":{\"version\":\"5.15.0-1017-aws\",\"platform\":\"linux\",\"architecture\":\"x64\"},\"ci\":{\"pipeline\":{\"number\":479954,\"name\":\"DataDog/repo\",\"id\":\"10631295\",\"url\":\"https://gitlab.site.io/DataDog/repo/pipelines/10631295\"},\"workspace_path\":\"/go/src/github.com/DataDog/repo\",\"stage\":{\"name\":\"test\"},\"provider\":{\"name\":\"gitlab\"},\"job\":{\"name\":\"unit-test\",\"url\":\"https://gitlab.site.io/DataDog/repo/-/jobs/184822096\"}},\"sampling\":{\"priority\":1},\"start\":1666363449656001024,\"runtime\":{\"name\":\"node\",\"version\":\"v16.3.0\"},\"language\":\"javascript\",\"env\":\"ci\",\"version\":\"0.0.2\",\"duration\":961670,\"test_session\":{\"fingerprint\":\"6bf54b12dc4341b8\"},\"library_version\":\"3.4.0\",\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-10-21T14:33:58+00:00\",\"name\":\"GitHub\",\"email\":\"noreply@github.com\",\"date_timestamp\":1666362838000},\"author\":{\"date\":\"2022-10-21T14:33:58+00:00\",\"name\":\"temporal-github-worker-1[bot]\",\"email\":\"83676731+temporal-github-worker-1[bot]@users.noreply.github.com\",\"date_timestamp\":1666362838000},\"message\":\"{\\\"base_commit\\\":\\\"000e36971943d45210e6c019e1ed6f5fb3f182c5\\\",\\\"head_commit\\\":\\\"87bfaa65b1d93acae749a437b4265d1535e0bcdb\\\"}\\n\",\"sha\":\"0756e4459a560f921c497b5054e7406e812fba70\"},\"repository_url\":\"https://gitlab.site.io/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"gitlab.site.io\",\"id\":\"gitlab.site.io/DataDog/repo\"},\"branch\":\"mq-working-branch-6edc20d\"},\"service\":\"web-ui-tests\",\"runtime-id\":\"9878210e-f42c-4786-b3e3-b2203dd4bfc1\"},\"tags\":[\"source:apm\",\"source:apm\"]}}],\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWVA3QUdFNG83ci1YQUFBQUFCQldWQTNRVWRGTkVGQlEyMHdjM0JYTFdOWVVEQjVaMU0ifQ\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/ci/tests/events?filter%5Bfrom%5D=2022-10-21T14%3A43%3A41.511Z&filter%5Bto%5D=2022-10-21T14%3A44%3A11.511Z&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWVA3QUdFNG83ci1YQUFBQUFCQldWQTNRVWRGTkVGQlEyMHdjM0JYTFdOWVVEQjVaMU0ifQ&page%5Blimit%5D=2\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 21 Oct 2022 14:44:11 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/ci/tests/events?filter%5Bfrom%5D=2022-10-21T14%3A43%3A41.511Z&filter%5Bto%5D=2022-10-21T14%3A44%3A11.511Z&page%5Blimit%5D=2&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWVA3QUdFNG83ci1YQUFBQUFCQldWQTNRVWRGTkVGQlEyMHdjM0JYTFdOWVVEQjVaMU0ifQ" + }, + "response": { + "body": { + "string": "{\"data\":[],\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWVA3QUdCdmxSc1pDd0FBQUFCQldWQTNRVWRDZGtGQlFtUlViV0ZTVVhKZmFFVXpiMWcifQ\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/ci/tests/events?filter%5Bfrom%5D=2022-10-21T14%3A43%3A41.511Z&filter%5Bto%5D=2022-10-21T14%3A44%3A11.511Z&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWVA3QUdCdmxSc1pDd0FBQUFCQldWQTNRVWRDZGtGQlFtUlViV0ZTVVhKZmFFVXpiMWcifQ&page%5Blimit%5D=2\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 21 Oct 2022 14:44:11 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/ci_visibility_tests/Get-a-list-of-tests-events-returns-OK-response.json b/tests/scenarios/cassettes/v2/ci_visibility_tests/Get-a-list-of-tests-events-returns-OK-response.json index 4dd7b7379..e0342f6f3 100644 --- a/tests/scenarios/cassettes/v2/ci_visibility_tests/Get-a-list-of-tests-events-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/ci_visibility_tests/Get-a-list-of-tests-events-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/ci/tests/events?filter%5Bquery%5D=%40test.service%3Aweb-ui-tests&filter%5Bfrom%5D=2022-10-21T14%3A58%3A51.171Z&filter%5Bto%5D=2022-10-21T14%3A59%3A21.171Z&page%5Blimit%5D=5"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"AQAAAYP7DjkT1jtY0AAAAABBWVA3RGprVEFBQXFjVllsa2kwWm1LZGU\",\"type\":\"citest\",\"attributes\":{\"test_level\":\"test\",\"attributes\":{\"test_suite\":{\"fingerprint\":\"863929e666e072fd\"},\"test\":{\"framework_version\":\"0.0.2\",\"codeowners\":[\"@DataDog/repo\"],\"source\":{\"file\":\"javascript/datadog/organization-settings/components/sensitive-data-scanner/sensitive-data-scanner-validation.unit.ts\"},\"type\":\"test\",\"has_parameters\":false,\"jest\":{\"test_runner\":\"jest-circus\"},\"command\":\"jest --config jest.coverage.config.js --color --ci --silent --maxWorkers=7\",\"framework\":\"jest\",\"suite\":\"javascript/datadog/organization-settings/components/sensitive-data-scanner/sensitive-data-scanner-validation.unit.ts\",\"full_name\":\"javascript/datadog/organization-settings/components/sensitive-data-scanner/sensitive-data-scanner-validation.unit.ts.shouldDisplaySensitiveDataWarning it should not display a warning for an empty string: \\\"\\\"\",\"service\":\"web-ui-tests\",\"name\":\"shouldDisplaySensitiveDataWarning it should not display a warning for an empty string: \\\"\\\"\",\"fingerprint\":\"59d10d35bcee973b\",\"status\":\"pass\"},\"os\":{\"version\":\"5.15.0-1017-aws\",\"platform\":\"linux\",\"architecture\":\"x64\"},\"ci\":{\"pipeline\":{\"number\":479980,\"name\":\"DataDog/repo\",\"id\":\"10631816\",\"url\":\"https://gitlab.site.io/DataDog/repo/pipelines/10631816\"},\"workspace_path\":\"/go/src/github.com/DataDog/repo\",\"stage\":{\"name\":\"optional-jobs\"},\"provider\":{\"name\":\"gitlab\"},\"job\":{\"name\":\"unit-test-coverage\",\"url\":\"https://gitlab.site.io/DataDog/repo/-/jobs/184832404\"}},\"sampling\":{\"priority\":1},\"start\":1666364356883000320,\"runtime\":{\"name\":\"node\",\"version\":\"v16.3.0\"},\"language\":\"javascript\",\"env\":\"ci\",\"version\":\"0.0.2\",\"duration\":401123,\"test_session\":{\"fingerprint\":\"d0266bed689fa60c\"},\"library_version\":\"3.4.0\",\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-10-21T14:49:17+00:00\",\"name\":\"GitHub\",\"email\":\"noreply@github.com\",\"date_timestamp\":1666363757000},\"author\":{\"date\":\"2022-10-21T14:49:17+00:00\",\"name\":\"Joe\",\"email\":\"support@datadoghq.com\",\"date_timestamp\":1666363757000},\"message\":\"Remove suppression modal typo (#70411)\\n\\nCo-authored-by: r@datadoghq.com\",\"sha\":\"d04246da2ddbf9ceb599e7f4b5b5cbbca315bc0a\"},\"repository_url\":\"https://gitlab.site.io/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"gitlab.site.io\",\"id\":\"gitlab.site.io/DataDog/repo\"},\"branch\":\"preprod\"},\"service\":\"web-ui-tests\",\"runtime-id\":\"8d4be021-f2f7-4e63-b3c3-93d62ba0d1fa\"},\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AQAAAYP7DjhlyuNS-QAAAABBWVA3RGpobEFBRHoyX3Nfd21QQktySkE\",\"type\":\"citest\",\"attributes\":{\"test_level\":\"test\",\"attributes\":{\"test_suite\":{\"fingerprint\":\"b50f2adbaf2118cd\"},\"test\":{\"framework_version\":\"0.0.2\",\"codeowners\":[\"@DataDog/repo\"],\"source\":{\"file\":\"javascript/datadog/workflow-automation/lib/shared/validation.unit.ts\"},\"type\":\"test\",\"has_parameters\":true,\"jest\":{\"test_runner\":\"jest-circus\"},\"command\":\"jest --config jest.browser.config.js --color --ci --silent --maxWorkers=7\",\"framework\":\"jest\",\"suite\":\"javascript/datadog/workflow-automation/lib/shared/validation.unit.ts\",\"full_name\":\"javascript/datadog/workflow-automation/lib/shared/validation.unit.ts.Validate XML Should identifies good and bad XML\",\"service\":\"web-ui-tests\",\"name\":\"Validate XML Should identifies good and bad XML\",\"fingerprint\":\"fe78dde37925d00d\",\"parameters\":\"{\\\"arguments\\\":[\\\"foo\\\",false],\\\"metadata\\\":{}}\",\"status\":\"pass\"},\"os\":{\"version\":\"5.15.0-1017-aws\",\"platform\":\"linux\",\"architecture\":\"x64\"},\"ci\":{\"pipeline\":{\"number\":479973,\"name\":\"DataDog/repo\",\"id\":\"10631599\",\"url\":\"https://gitlab.site.io/DataDog/repo/pipelines/10631599\"},\"workspace_path\":\"/go/src/github.com/DataDog/repo\",\"stage\":{\"name\":\"test\"},\"provider\":{\"name\":\"gitlab\"},\"job\":{\"name\":\"unit-test\",\"url\":\"https://gitlab.site.io/DataDog/repo/-/jobs/184829344\"}},\"sampling\":{\"priority\":1},\"start\":1666364356707000320,\"runtime\":{\"name\":\"node\",\"version\":\"v16.3.0\"},\"language\":\"javascript\",\"env\":\"ci\",\"version\":\"0.0.2\",\"duration\":2591797,\"test_session\":{\"fingerprint\":\"6bf54b12dc4341b8\"},\"library_version\":\"3.4.0\",\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-10-21T23:44:50+09:00\",\"name\":\"GitHub\",\"email\":\"noreply@github.com\",\"date_timestamp\":1666363490000},\"author\":{\"date\":\"2022-10-21T23:44:50+09:00\",\"name\":\"Joe\",\"email\":\"support@datadoghq.com\",\"date_timestamp\":1666363490000},\"message\":\"Merge branch 'preprod' into babbins/core-app-docs-landing-page\",\"sha\":\"dbd090f623d681a7b6a65acb826ccf3968bb5d91\"},\"repository_url\":\"https://gitlab.site.io/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"gitlab.site.io\",\"id\":\"gitlab.site.io/DataDog/repo\"},\"branch\":\"babbins/core-app-docs-landing-page\"},\"service\":\"web-ui-tests\",\"runtime-id\":\"7020ff7c-a7f9-466d-9124-84720cdfd15c\"},\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AQAAAYP7DjhfyuNS4wAAAABBWVA3RGpoZkFBQXVhaUhDM2JqdXJrY1c\",\"type\":\"citest\",\"attributes\":{\"test_level\":\"test\",\"attributes\":{\"test_suite\":{\"fingerprint\":\"ea677b198d03d0f1\"},\"test\":{\"framework_version\":\"0.0.2\",\"codeowners\":[\"@DataDog/repo\"],\"source\":{\"file\":\"internal-apps/sdp/src/components/jira-template/TeamBoardCreator/__test__/TeamBoardCreator.unit.jsx\"},\"type\":\"test\",\"has_parameters\":false,\"jest\":{\"test_runner\":\"jest-circus\"},\"command\":\"jest --config jest.browser.config.js --color --testNamePattern=\\\\[flaky\\\\] --ci --silent --maxWorkers=7\",\"framework\":\"jest\",\"suite\":\"internal-apps/sdp/src/components/jira-template/TeamBoardCreator/__test__/TeamBoardCreator.unit.jsx\",\"full_name\":\"internal-apps/sdp/src/components/jira-template/TeamBoardCreator/__test__/TeamBoardCreator.unit.jsx.TeamBoardCreator Show Error Message for Bad Mutation found in Errors\",\"service\":\"web-ui-tests\",\"name\":\"TeamBoardCreator Show Error Message for Bad Mutation found in Errors\",\"fingerprint\":\"65589132d12f5a9\",\"status\":\"skip\"},\"os\":{\"version\":\"5.15.0-1017-aws\",\"platform\":\"linux\",\"architecture\":\"x64\"},\"ci\":{\"pipeline\":{\"number\":479992,\"name\":\"DataDog/repo\",\"id\":\"10632081\",\"url\":\"https://gitlab.site.io/DataDog/repo/pipelines/10632081\"},\"workspace_path\":\"/go/src/github.com/DataDog/repo\",\"stage\":{\"name\":\"optional-jobs\"},\"provider\":{\"name\":\"gitlab\"},\"job\":{\"name\":\"unit-test-flaky\",\"url\":\"https://gitlab.site.io/DataDog/repo/-/jobs/184836749\"}},\"sampling\":{\"priority\":1},\"start\":1666364356703001344,\"runtime\":{\"name\":\"node\",\"version\":\"v16.3.0\"},\"language\":\"javascript\",\"env\":\"ci\",\"version\":\"0.0.2\",\"duration\":14160,\"test_session\":{\"fingerprint\":\"6957ad04dea312d6\"},\"library_version\":\"3.4.0\",\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-10-21T10:55:42-04:00\",\"name\":\"GitHub\",\"email\":\"noreply@github.com\",\"date_timestamp\":1666364142000},\"author\":{\"date\":\"2022-10-21T10:55:42-04:00\",\"name\":\"alpinet\",\"email\":\"46504578+alpinet@users.noreply.github.com\",\"date_timestamp\":1666364142000},\"message\":\"Merge branch 'preprod' into alpinet/stripe_tile\",\"sha\":\"00c36e494ce1db0ef34245024904ae09f995a382\"},\"repository_url\":\"https://gitlab.site.io/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"gitlab.site.io\",\"id\":\"gitlab.site.io/DataDog/repo\"},\"branch\":\"alpinet/stripe_tile\"},\"service\":\"web-ui-tests\",\"runtime-id\":\"6e821bb2-2f25-4b80-9f0e-168ce1dc57e5\"},\"tags\":[\"source:apm\",\"source:apm\"]}}],\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWVA3RGpoYWdVb3luQUFBQUFCQldWQTNSR3BvWVVGQlFVaFJSamR3TWtKRlRXWklOVEkifQ\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/ci/tests/events?filter%5Bfrom%5D=2022-10-21T14%3A58%3A51.171Z&filter%5Bquery%5D=%40test.service%3Aweb-ui-tests&filter%5Bto%5D=2022-10-21T14%3A59%3A21.171Z&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWVA3RGpoYWdVb3luQUFBQUFCQldWQTNSR3BvWVVGQlFVaFJSamR3TWtKRlRXWklOVEkifQ&page%5Blimit%5D=5\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 21 Oct 2022 14:59:21 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/ci/tests/events?filter%5Bquery%5D=%40test.service%3Aweb-ui-tests&filter%5Bfrom%5D=2022-10-21T14%3A58%3A51.171Z&filter%5Bto%5D=2022-10-21T14%3A59%3A21.171Z&page%5Blimit%5D=5" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"AQAAAYP7DjkT1jtY0AAAAABBWVA3RGprVEFBQXFjVllsa2kwWm1LZGU\",\"type\":\"citest\",\"attributes\":{\"test_level\":\"test\",\"attributes\":{\"test_suite\":{\"fingerprint\":\"863929e666e072fd\"},\"test\":{\"framework_version\":\"0.0.2\",\"codeowners\":[\"@DataDog/repo\"],\"source\":{\"file\":\"javascript/datadog/organization-settings/components/sensitive-data-scanner/sensitive-data-scanner-validation.unit.ts\"},\"type\":\"test\",\"has_parameters\":false,\"jest\":{\"test_runner\":\"jest-circus\"},\"command\":\"jest --config jest.coverage.config.js --color --ci --silent --maxWorkers=7\",\"framework\":\"jest\",\"suite\":\"javascript/datadog/organization-settings/components/sensitive-data-scanner/sensitive-data-scanner-validation.unit.ts\",\"full_name\":\"javascript/datadog/organization-settings/components/sensitive-data-scanner/sensitive-data-scanner-validation.unit.ts.shouldDisplaySensitiveDataWarning it should not display a warning for an empty string: \\\"\\\"\",\"service\":\"web-ui-tests\",\"name\":\"shouldDisplaySensitiveDataWarning it should not display a warning for an empty string: \\\"\\\"\",\"fingerprint\":\"59d10d35bcee973b\",\"status\":\"pass\"},\"os\":{\"version\":\"5.15.0-1017-aws\",\"platform\":\"linux\",\"architecture\":\"x64\"},\"ci\":{\"pipeline\":{\"number\":479980,\"name\":\"DataDog/repo\",\"id\":\"10631816\",\"url\":\"https://gitlab.site.io/DataDog/repo/pipelines/10631816\"},\"workspace_path\":\"/go/src/github.com/DataDog/repo\",\"stage\":{\"name\":\"optional-jobs\"},\"provider\":{\"name\":\"gitlab\"},\"job\":{\"name\":\"unit-test-coverage\",\"url\":\"https://gitlab.site.io/DataDog/repo/-/jobs/184832404\"}},\"sampling\":{\"priority\":1},\"start\":1666364356883000320,\"runtime\":{\"name\":\"node\",\"version\":\"v16.3.0\"},\"language\":\"javascript\",\"env\":\"ci\",\"version\":\"0.0.2\",\"duration\":401123,\"test_session\":{\"fingerprint\":\"d0266bed689fa60c\"},\"library_version\":\"3.4.0\",\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-10-21T14:49:17+00:00\",\"name\":\"GitHub\",\"email\":\"noreply@github.com\",\"date_timestamp\":1666363757000},\"author\":{\"date\":\"2022-10-21T14:49:17+00:00\",\"name\":\"Joe\",\"email\":\"support@datadoghq.com\",\"date_timestamp\":1666363757000},\"message\":\"Remove suppression modal typo (#70411)\\n\\nCo-authored-by: r@datadoghq.com\",\"sha\":\"d04246da2ddbf9ceb599e7f4b5b5cbbca315bc0a\"},\"repository_url\":\"https://gitlab.site.io/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"gitlab.site.io\",\"id\":\"gitlab.site.io/DataDog/repo\"},\"branch\":\"preprod\"},\"service\":\"web-ui-tests\",\"runtime-id\":\"8d4be021-f2f7-4e63-b3c3-93d62ba0d1fa\"},\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AQAAAYP7DjhlyuNS-QAAAABBWVA3RGpobEFBRHoyX3Nfd21QQktySkE\",\"type\":\"citest\",\"attributes\":{\"test_level\":\"test\",\"attributes\":{\"test_suite\":{\"fingerprint\":\"b50f2adbaf2118cd\"},\"test\":{\"framework_version\":\"0.0.2\",\"codeowners\":[\"@DataDog/repo\"],\"source\":{\"file\":\"javascript/datadog/workflow-automation/lib/shared/validation.unit.ts\"},\"type\":\"test\",\"has_parameters\":true,\"jest\":{\"test_runner\":\"jest-circus\"},\"command\":\"jest --config jest.browser.config.js --color --ci --silent --maxWorkers=7\",\"framework\":\"jest\",\"suite\":\"javascript/datadog/workflow-automation/lib/shared/validation.unit.ts\",\"full_name\":\"javascript/datadog/workflow-automation/lib/shared/validation.unit.ts.Validate XML Should identifies good and bad XML\",\"service\":\"web-ui-tests\",\"name\":\"Validate XML Should identifies good and bad XML\",\"fingerprint\":\"fe78dde37925d00d\",\"parameters\":\"{\\\"arguments\\\":[\\\"foo\\\",false],\\\"metadata\\\":{}}\",\"status\":\"pass\"},\"os\":{\"version\":\"5.15.0-1017-aws\",\"platform\":\"linux\",\"architecture\":\"x64\"},\"ci\":{\"pipeline\":{\"number\":479973,\"name\":\"DataDog/repo\",\"id\":\"10631599\",\"url\":\"https://gitlab.site.io/DataDog/repo/pipelines/10631599\"},\"workspace_path\":\"/go/src/github.com/DataDog/repo\",\"stage\":{\"name\":\"test\"},\"provider\":{\"name\":\"gitlab\"},\"job\":{\"name\":\"unit-test\",\"url\":\"https://gitlab.site.io/DataDog/repo/-/jobs/184829344\"}},\"sampling\":{\"priority\":1},\"start\":1666364356707000320,\"runtime\":{\"name\":\"node\",\"version\":\"v16.3.0\"},\"language\":\"javascript\",\"env\":\"ci\",\"version\":\"0.0.2\",\"duration\":2591797,\"test_session\":{\"fingerprint\":\"6bf54b12dc4341b8\"},\"library_version\":\"3.4.0\",\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-10-21T23:44:50+09:00\",\"name\":\"GitHub\",\"email\":\"noreply@github.com\",\"date_timestamp\":1666363490000},\"author\":{\"date\":\"2022-10-21T23:44:50+09:00\",\"name\":\"Joe\",\"email\":\"support@datadoghq.com\",\"date_timestamp\":1666363490000},\"message\":\"Merge branch 'preprod' into babbins/core-app-docs-landing-page\",\"sha\":\"dbd090f623d681a7b6a65acb826ccf3968bb5d91\"},\"repository_url\":\"https://gitlab.site.io/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"gitlab.site.io\",\"id\":\"gitlab.site.io/DataDog/repo\"},\"branch\":\"babbins/core-app-docs-landing-page\"},\"service\":\"web-ui-tests\",\"runtime-id\":\"7020ff7c-a7f9-466d-9124-84720cdfd15c\"},\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AQAAAYP7DjhfyuNS4wAAAABBWVA3RGpoZkFBQXVhaUhDM2JqdXJrY1c\",\"type\":\"citest\",\"attributes\":{\"test_level\":\"test\",\"attributes\":{\"test_suite\":{\"fingerprint\":\"ea677b198d03d0f1\"},\"test\":{\"framework_version\":\"0.0.2\",\"codeowners\":[\"@DataDog/repo\"],\"source\":{\"file\":\"internal-apps/sdp/src/components/jira-template/TeamBoardCreator/__test__/TeamBoardCreator.unit.jsx\"},\"type\":\"test\",\"has_parameters\":false,\"jest\":{\"test_runner\":\"jest-circus\"},\"command\":\"jest --config jest.browser.config.js --color --testNamePattern=\\\\[flaky\\\\] --ci --silent --maxWorkers=7\",\"framework\":\"jest\",\"suite\":\"internal-apps/sdp/src/components/jira-template/TeamBoardCreator/__test__/TeamBoardCreator.unit.jsx\",\"full_name\":\"internal-apps/sdp/src/components/jira-template/TeamBoardCreator/__test__/TeamBoardCreator.unit.jsx.TeamBoardCreator Show Error Message for Bad Mutation found in Errors\",\"service\":\"web-ui-tests\",\"name\":\"TeamBoardCreator Show Error Message for Bad Mutation found in Errors\",\"fingerprint\":\"65589132d12f5a9\",\"status\":\"skip\"},\"os\":{\"version\":\"5.15.0-1017-aws\",\"platform\":\"linux\",\"architecture\":\"x64\"},\"ci\":{\"pipeline\":{\"number\":479992,\"name\":\"DataDog/repo\",\"id\":\"10632081\",\"url\":\"https://gitlab.site.io/DataDog/repo/pipelines/10632081\"},\"workspace_path\":\"/go/src/github.com/DataDog/repo\",\"stage\":{\"name\":\"optional-jobs\"},\"provider\":{\"name\":\"gitlab\"},\"job\":{\"name\":\"unit-test-flaky\",\"url\":\"https://gitlab.site.io/DataDog/repo/-/jobs/184836749\"}},\"sampling\":{\"priority\":1},\"start\":1666364356703001344,\"runtime\":{\"name\":\"node\",\"version\":\"v16.3.0\"},\"language\":\"javascript\",\"env\":\"ci\",\"version\":\"0.0.2\",\"duration\":14160,\"test_session\":{\"fingerprint\":\"6957ad04dea312d6\"},\"library_version\":\"3.4.0\",\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-10-21T10:55:42-04:00\",\"name\":\"GitHub\",\"email\":\"noreply@github.com\",\"date_timestamp\":1666364142000},\"author\":{\"date\":\"2022-10-21T10:55:42-04:00\",\"name\":\"alpinet\",\"email\":\"46504578+alpinet@users.noreply.github.com\",\"date_timestamp\":1666364142000},\"message\":\"Merge branch 'preprod' into alpinet/stripe_tile\",\"sha\":\"00c36e494ce1db0ef34245024904ae09f995a382\"},\"repository_url\":\"https://gitlab.site.io/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"gitlab.site.io\",\"id\":\"gitlab.site.io/DataDog/repo\"},\"branch\":\"alpinet/stripe_tile\"},\"service\":\"web-ui-tests\",\"runtime-id\":\"6e821bb2-2f25-4b80-9f0e-168ce1dc57e5\"},\"tags\":[\"source:apm\",\"source:apm\"]}}],\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWVA3RGpoYWdVb3luQUFBQUFCQldWQTNSR3BvWVVGQlFVaFJSamR3TWtKRlRXWklOVEkifQ\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/ci/tests/events?filter%5Bfrom%5D=2022-10-21T14%3A58%3A51.171Z&filter%5Bquery%5D=%40test.service%3Aweb-ui-tests&filter%5Bto%5D=2022-10-21T14%3A59%3A21.171Z&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWVA3RGpoYWdVb3luQUFBQUFCQldWQTNSR3BvWVVGQlFVaFJSamR3TWtKRlRXWklOVEkifQ&page%5Blimit%5D=5\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 21 Oct 2022 14:59:21 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/ci_visibility_tests/Search-tests-events-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v2/ci_visibility_tests/Search-tests-events-returns-OK-response-with-pagination.json index dfb05508a..156e35101 100644 --- a/tests/scenarios/cassettes/v2/ci_visibility_tests/Search-tests-events-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v2/ci_visibility_tests/Search-tests-events-returns-OK-response-with-pagination.json @@ -1 +1,73 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"filter\":{\"from\":\"now-15m\",\"query\":\"@test.status:pass AND -@language:python\",\"to\":\"now\"},\"page\":{\"limit\":2},\"sort\":\"timestamp\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/ci/tests/events/search"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"AQAAAYP69YODhSYeRgAAAABBWVA2OVlPREFBQjB3THBpOVlKQXRhMEg\",\"type\":\"citest\",\"attributes\":{\"test_level\":\"test\",\"attributes\":{\"test_suite\":{\"fingerprint\":\"355d882863b0e6d8\"},\"test\":{\"suite\":\"github.com/DataDog/repo/apps/rocky/internal/catalog\",\"full_name\":\"github.com/DataDog/repo/apps/rocky/internal/catalog.TestOverscan\",\"codeowners\":[\"@DataDog/repo\"],\"service\":\"dd-go-metrics-retrieval\",\"name\":\"TestOverscan\",\"fingerprint\":\"f156dcaa592eb047\",\"type\":\"test\",\"has_parameters\":false,\"status\":\"pass\"},\"os\":{\"version\":\"bionic\"},\"ci\":{\"pipeline\":{\"number\":1669072,\"name\":\"DataDog/repo\",\"id\":\"10630527\",\"url\":\"https://gitlab.site.io/DataDog/repo/pipelines/10630527\"},\"workspace_path\":\"/go/src/github.com/DataDog/repo\",\"stage\":{\"name\":\"stage-1\"},\"provider\":{\"name\":\"gitlab\"},\"job\":{\"name\":\"test:go:race-bionic 1/2\",\"url\":\"https://gitlab.site.io/DataDog/repo/-/jobs/184817229\"}},\"start\":1666362737539000000,\"runtime\":{\"name\":\"go\",\"version\":\"1.19.2\"},\"language\":\"go\",\"env\":\"test\",\"duration\":0,\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-10-21T14:24:33+00:00\",\"name\":\"ci.dd-go\",\"email\":\"support@datadoghq.com\",\"date_timestamp\":1666362273000},\"author\":{\"date\":\"2022-10-21T14:24:33+00:00\",\"name\":\"ci.dd-go\",\"email\":\"support@datadoghq.com\",\"date_timestamp\":1666362273000},\"message\":\"Gitlab merged prod (c5fd9a72b75448ff60ba078960fe0ba5e23d7050) to staging-43\\n\\nGitlab merged prod (07bd1d762138e4b5bebc0f792cd26ef078c0d872) to staging-43\\n\\nGitlab merged prod (4ac1ba5d2b28caccc0640182d90e2d99a5234584) to staging-43\\n\\nGitlab merged prod (1c27b214276d2e70d502fdc7c840200faa3d80cf) to staging-43\\n\\nMerge branch 'ting.tu/scheduling' (06242fc) into staging-43\\n\\n pm_trace_id: 10629269\\n feature_branch_pipeline_id: 10629269\\n source: to-staging\\n\\n* commit '06242fcf113290ca0f273e23942d86f2fc803a6b':\\n update nits\\n Allow partial schedule\\n\",\"sha\":\"c34a29db1311b6945aaa644302a77f9bc30e2d7d\"},\"repository_url\":\"https://gitlab.site.io/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"gitlab.site.io\",\"id\":\"gitlab.site.io/DataDog/repo\"},\"branch\":\"staging-43\"},\"service\":\"dd-go-metrics-retrieval\"},\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AQAAAYP69YODhSYeRwAAAABBWVA2OVlPREFBQmptZ3JJdUtpRmM0S3U\",\"type\":\"citest\",\"attributes\":{\"test_level\":\"test\",\"attributes\":{\"test_suite\":{\"fingerprint\":\"355d882863b0e6d8\"},\"test\":{\"suite\":\"github.com/DataDog/repo/apps/rocky/internal/catalog\",\"full_name\":\"github.com/DataDog/repo/apps/rocky/internal/catalog.TestHdqDebug\",\"codeowners\":[\"@DataDog/repo\"],\"service\":\"dd-go-metrics-retrieval\",\"name\":\"TestHdqDebug\",\"fingerprint\":\"7baf20ec99e08277\",\"type\":\"test\",\"has_parameters\":false,\"status\":\"pass\"},\"os\":{\"version\":\"bionic\"},\"ci\":{\"pipeline\":{\"number\":1669072,\"name\":\"DataDog/repo\",\"id\":\"10630527\",\"url\":\"https://gitlab.site.io/DataDog/repo/pipelines/10630527\"},\"workspace_path\":\"/go/src/github.com/DataDog/repo\",\"stage\":{\"name\":\"stage-1\"},\"provider\":{\"name\":\"gitlab\"},\"job\":{\"name\":\"test:go:race-bionic 1/2\",\"url\":\"https://gitlab.site.io/DataDog/repo/-/jobs/184817229\"}},\"start\":1666362737539000000,\"runtime\":{\"name\":\"go\",\"version\":\"1.19.2\"},\"language\":\"go\",\"env\":\"test\",\"duration\":0,\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-10-21T14:24:33+00:00\",\"name\":\"ci.dd-go\",\"email\":\"support@datadoghq.com\",\"date_timestamp\":1666362273000},\"author\":{\"date\":\"2022-10-21T14:24:33+00:00\",\"name\":\"ci.dd-go\",\"email\":\"support@datadoghq.com\",\"date_timestamp\":1666362273000},\"message\":\"Gitlab merged prod (c5fd9a72b75448ff60ba078960fe0ba5e23d7050) to staging-43\\n\\nGitlab merged prod (07bd1d762138e4b5bebc0f792cd26ef078c0d872) to staging-43\\n\\nGitlab merged prod (4ac1ba5d2b28caccc0640182d90e2d99a5234584) to staging-43\\n\\nGitlab merged prod (1c27b214276d2e70d502fdc7c840200faa3d80cf) to staging-43\\n\\nMerge branch 'ting.tu/scheduling' (06242fc) into staging-43\\n\\n pm_trace_id: 10629269\\n feature_branch_pipeline_id: 10629269\\n source: to-staging\\n\\n* commit '06242fcf113290ca0f273e23942d86f2fc803a6b':\\n update nits\\n Allow partial schedule\\n\",\"sha\":\"c34a29db1311b6945aaa644302a77f9bc30e2d7d\"},\"repository_url\":\"https://gitlab.site.io/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"gitlab.site.io\",\"id\":\"gitlab.site.io/DataDog/repo\"},\"branch\":\"staging-43\"},\"service\":\"dd-go-metrics-retrieval\"},\"tags\":[\"source:apm\",\"source:apm\"]}}],\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWVA2OVlPRGhTWWVSd0FBQUFCQldWQTJPVmxQUkVGQlFtcHRaM0pKZFV0cFJtTTBTM1UifQ\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/ci/tests/events?filter%5Bfrom%5D=now-15m&filter%5Bquery%5D=%40test.status%3Apass+AND+-%40language%3Apython&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWVA2OVlPRGhTWWVSd0FBQUFCQldWQTJPVmxQUkVGQlFtcHRaM0pKZFV0cFJtTTBTM1UifQ&page%5Blimit%5D=2&sort=timestamp\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 21 Oct 2022 14:47:17 GMT"}, {"request": {"body": {"string": "{\"filter\":{\"from\":\"now-15m\",\"query\":\"@test.status:pass AND -@language:python\",\"to\":\"now\"},\"page\":{\"cursor\":\"eyJhZnRlciI6IkFRQUFBWVA2OVlPRGhTWWVSd0FBQUFCQldWQTJPVmxQUkVGQlFtcHRaM0pKZFV0cFJtTTBTM1UifQ\",\"limit\":2},\"sort\":\"timestamp\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/ci/tests/events/search"}, "response": {"body": {"string": "{\"data\":[],\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWVA2OVlVbW5sUEFhd0FBQUFCQldWQTJPVmxWYlVGQlJGWkNWbGw1VTJWdVFWaHZNRm8ifQ\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/ci/tests/events?filter%5Bfrom%5D=now-15m&filter%5Bquery%5D=%40test.status%3Apass+AND+-%40language%3Apython&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWVA2OVlVbW5sUEFhd0FBQUFCQldWQTJPVmxWYlVGQlJGWkNWbGw1VTJWdVFWaHZNRm8ifQ&page%5Blimit%5D=2&sort=timestamp\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 21 Oct 2022 14:47:17 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"filter\":{\"from\":\"now-15m\",\"query\":\"@test.status:pass AND -@language:python\",\"to\":\"now\"},\"page\":{\"limit\":2},\"sort\":\"timestamp\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/ci/tests/events/search" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"AQAAAYP69YODhSYeRgAAAABBWVA2OVlPREFBQjB3THBpOVlKQXRhMEg\",\"type\":\"citest\",\"attributes\":{\"test_level\":\"test\",\"attributes\":{\"test_suite\":{\"fingerprint\":\"355d882863b0e6d8\"},\"test\":{\"suite\":\"github.com/DataDog/repo/apps/rocky/internal/catalog\",\"full_name\":\"github.com/DataDog/repo/apps/rocky/internal/catalog.TestOverscan\",\"codeowners\":[\"@DataDog/repo\"],\"service\":\"dd-go-metrics-retrieval\",\"name\":\"TestOverscan\",\"fingerprint\":\"f156dcaa592eb047\",\"type\":\"test\",\"has_parameters\":false,\"status\":\"pass\"},\"os\":{\"version\":\"bionic\"},\"ci\":{\"pipeline\":{\"number\":1669072,\"name\":\"DataDog/repo\",\"id\":\"10630527\",\"url\":\"https://gitlab.site.io/DataDog/repo/pipelines/10630527\"},\"workspace_path\":\"/go/src/github.com/DataDog/repo\",\"stage\":{\"name\":\"stage-1\"},\"provider\":{\"name\":\"gitlab\"},\"job\":{\"name\":\"test:go:race-bionic 1/2\",\"url\":\"https://gitlab.site.io/DataDog/repo/-/jobs/184817229\"}},\"start\":1666362737539000000,\"runtime\":{\"name\":\"go\",\"version\":\"1.19.2\"},\"language\":\"go\",\"env\":\"test\",\"duration\":0,\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-10-21T14:24:33+00:00\",\"name\":\"ci.dd-go\",\"email\":\"support@datadoghq.com\",\"date_timestamp\":1666362273000},\"author\":{\"date\":\"2022-10-21T14:24:33+00:00\",\"name\":\"ci.dd-go\",\"email\":\"support@datadoghq.com\",\"date_timestamp\":1666362273000},\"message\":\"Gitlab merged prod (c5fd9a72b75448ff60ba078960fe0ba5e23d7050) to staging-43\\n\\nGitlab merged prod (07bd1d762138e4b5bebc0f792cd26ef078c0d872) to staging-43\\n\\nGitlab merged prod (4ac1ba5d2b28caccc0640182d90e2d99a5234584) to staging-43\\n\\nGitlab merged prod (1c27b214276d2e70d502fdc7c840200faa3d80cf) to staging-43\\n\\nMerge branch 'ting.tu/scheduling' (06242fc) into staging-43\\n\\n pm_trace_id: 10629269\\n feature_branch_pipeline_id: 10629269\\n source: to-staging\\n\\n* commit '06242fcf113290ca0f273e23942d86f2fc803a6b':\\n update nits\\n Allow partial schedule\\n\",\"sha\":\"c34a29db1311b6945aaa644302a77f9bc30e2d7d\"},\"repository_url\":\"https://gitlab.site.io/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"gitlab.site.io\",\"id\":\"gitlab.site.io/DataDog/repo\"},\"branch\":\"staging-43\"},\"service\":\"dd-go-metrics-retrieval\"},\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AQAAAYP69YODhSYeRwAAAABBWVA2OVlPREFBQmptZ3JJdUtpRmM0S3U\",\"type\":\"citest\",\"attributes\":{\"test_level\":\"test\",\"attributes\":{\"test_suite\":{\"fingerprint\":\"355d882863b0e6d8\"},\"test\":{\"suite\":\"github.com/DataDog/repo/apps/rocky/internal/catalog\",\"full_name\":\"github.com/DataDog/repo/apps/rocky/internal/catalog.TestHdqDebug\",\"codeowners\":[\"@DataDog/repo\"],\"service\":\"dd-go-metrics-retrieval\",\"name\":\"TestHdqDebug\",\"fingerprint\":\"7baf20ec99e08277\",\"type\":\"test\",\"has_parameters\":false,\"status\":\"pass\"},\"os\":{\"version\":\"bionic\"},\"ci\":{\"pipeline\":{\"number\":1669072,\"name\":\"DataDog/repo\",\"id\":\"10630527\",\"url\":\"https://gitlab.site.io/DataDog/repo/pipelines/10630527\"},\"workspace_path\":\"/go/src/github.com/DataDog/repo\",\"stage\":{\"name\":\"stage-1\"},\"provider\":{\"name\":\"gitlab\"},\"job\":{\"name\":\"test:go:race-bionic 1/2\",\"url\":\"https://gitlab.site.io/DataDog/repo/-/jobs/184817229\"}},\"start\":1666362737539000000,\"runtime\":{\"name\":\"go\",\"version\":\"1.19.2\"},\"language\":\"go\",\"env\":\"test\",\"duration\":0,\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-10-21T14:24:33+00:00\",\"name\":\"ci.dd-go\",\"email\":\"support@datadoghq.com\",\"date_timestamp\":1666362273000},\"author\":{\"date\":\"2022-10-21T14:24:33+00:00\",\"name\":\"ci.dd-go\",\"email\":\"support@datadoghq.com\",\"date_timestamp\":1666362273000},\"message\":\"Gitlab merged prod (c5fd9a72b75448ff60ba078960fe0ba5e23d7050) to staging-43\\n\\nGitlab merged prod (07bd1d762138e4b5bebc0f792cd26ef078c0d872) to staging-43\\n\\nGitlab merged prod (4ac1ba5d2b28caccc0640182d90e2d99a5234584) to staging-43\\n\\nGitlab merged prod (1c27b214276d2e70d502fdc7c840200faa3d80cf) to staging-43\\n\\nMerge branch 'ting.tu/scheduling' (06242fc) into staging-43\\n\\n pm_trace_id: 10629269\\n feature_branch_pipeline_id: 10629269\\n source: to-staging\\n\\n* commit '06242fcf113290ca0f273e23942d86f2fc803a6b':\\n update nits\\n Allow partial schedule\\n\",\"sha\":\"c34a29db1311b6945aaa644302a77f9bc30e2d7d\"},\"repository_url\":\"https://gitlab.site.io/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"gitlab.site.io\",\"id\":\"gitlab.site.io/DataDog/repo\"},\"branch\":\"staging-43\"},\"service\":\"dd-go-metrics-retrieval\"},\"tags\":[\"source:apm\",\"source:apm\"]}}],\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWVA2OVlPRGhTWWVSd0FBQUFCQldWQTJPVmxQUkVGQlFtcHRaM0pKZFV0cFJtTTBTM1UifQ\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/ci/tests/events?filter%5Bfrom%5D=now-15m&filter%5Bquery%5D=%40test.status%3Apass+AND+-%40language%3Apython&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWVA2OVlPRGhTWWVSd0FBQUFCQldWQTJPVmxQUkVGQlFtcHRaM0pKZFV0cFJtTTBTM1UifQ&page%5Blimit%5D=2&sort=timestamp\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 21 Oct 2022 14:47:17 GMT" + }, + { + "request": { + "body": { + "string": "{\"filter\":{\"from\":\"now-15m\",\"query\":\"@test.status:pass AND -@language:python\",\"to\":\"now\"},\"page\":{\"cursor\":\"eyJhZnRlciI6IkFRQUFBWVA2OVlPRGhTWWVSd0FBQUFCQldWQTJPVmxQUkVGQlFtcHRaM0pKZFV0cFJtTTBTM1UifQ\",\"limit\":2},\"sort\":\"timestamp\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/ci/tests/events/search" + }, + "response": { + "body": { + "string": "{\"data\":[],\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWVA2OVlVbW5sUEFhd0FBQUFCQldWQTJPVmxWYlVGQlJGWkNWbGw1VTJWdVFWaHZNRm8ifQ\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/ci/tests/events?filter%5Bfrom%5D=now-15m&filter%5Bquery%5D=%40test.status%3Apass+AND+-%40language%3Apython&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWVA2OVlVbW5sUEFhd0FBQUFCQldWQTJPVmxWYlVGQlJGWkNWbGw1VTJWdVFWaHZNRm8ifQ&page%5Blimit%5D=2&sort=timestamp\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 21 Oct 2022 14:47:17 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/ci_visibility_tests/Search-tests-events-returns-OK-response.json b/tests/scenarios/cassettes/v2/ci_visibility_tests/Search-tests-events-returns-OK-response.json index 3f94828bc..8e9e604a4 100644 --- a/tests/scenarios/cassettes/v2/ci_visibility_tests/Search-tests-events-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/ci_visibility_tests/Search-tests-events-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"filter\":{\"from\":\"now-15m\",\"query\":\"@test.service:web-ui-tests AND @test.status:skip\",\"to\":\"now\"},\"options\":{\"timezone\":\"GMT\"},\"page\":{\"limit\":25},\"sort\":\"timestamp\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/ci/tests/events/search"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"AQAAAYP7BNMIuIAxxAAAAABBWVA3Qk5NSUFBQ3dKNTJFSjhrZXlTZ0s\",\"type\":\"citest\",\"attributes\":{\"test_level\":\"test\",\"attributes\":{\"test_suite\":{\"fingerprint\":\"821da1fe0511456d\"},\"test\":{\"framework_version\":\"0.0.2\",\"codeowners\":[\"@DataDog/repo\"],\"source\":{\"file\":\"javascript/datadog/apps-sdk/internal/lib/managers/app-manager-with-controller/controller-manager.unit.ts\"},\"type\":\"test\",\"has_parameters\":false,\"jest\":{\"test_runner\":\"jest-circus\"},\"command\":\"jest --config jest.browser.config.js --color --testNamePattern=\\\\[flaky\\\\] --ci --silent --maxWorkers=7\",\"framework\":\"jest\",\"suite\":\"javascript/datadog/apps-sdk/internal/lib/managers/app-manager-with-controller/controller-manager.unit.ts\",\"full_name\":\"javascript/datadog/apps-sdk/internal/lib/managers/app-manager-with-controller/controller-manager.unit.ts.request() delegates to the main iframe controller request method\",\"service\":\"web-ui-tests\",\"name\":\"request() delegates to the main iframe controller request method\",\"fingerprint\":\"3dbce8739d2972f9\",\"status\":\"skip\"},\"os\":{\"version\":\"5.15.0-1017-aws\",\"platform\":\"linux\",\"architecture\":\"x64\"},\"ci\":{\"pipeline\":{\"number\":479973,\"name\":\"DataDog/repo\",\"id\":\"10631599\",\"url\":\"https://gitlab.site.io/DataDog/repo/pipelines/10631599\"},\"workspace_path\":\"/go/src/github.com/DataDog/repo\",\"stage\":{\"name\":\"optional-jobs\"},\"provider\":{\"name\":\"gitlab\"},\"job\":{\"name\":\"unit-test-flaky\",\"url\":\"https://gitlab.site.io/DataDog/repo/-/jobs/184829407\"}},\"sampling\":{\"priority\":1},\"start\":1666363740936000512,\"runtime\":{\"name\":\"node\",\"version\":\"v16.3.0\"},\"language\":\"javascript\",\"env\":\"ci\",\"version\":\"0.0.2\",\"duration\":18799,\"test_session\":{\"fingerprint\":\"6957ad04dea312d6\"},\"library_version\":\"3.4.0\",\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-10-21T23:44:50+09:00\",\"name\":\"GitHub\",\"email\":\"noreply@github.com\",\"date_timestamp\":1666363490000},\"author\":{\"date\":\"2022-10-21T23:44:50+09:00\",\"name\":\"Joe\",\"email\":\"support@datadoghq.com\",\"date_timestamp\":1666363490000},\"message\":\"Merge branch 'preprod' into babbins/core-app-docs-landing-page\",\"sha\":\"dbd090f623d681a7b6a65acb826ccf3968bb5d91\"},\"repository_url\":\"https://gitlab.site.io/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"gitlab.site.io\",\"id\":\"gitlab.site.io/DataDog/repo\"},\"branch\":\"babbins/core-app-docs-landing-page\"},\"service\":\"web-ui-tests\",\"runtime-id\":\"1f3e8a86-145c-4856-9e13-5228bed9a30e\"},\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AQAAAYP7BNMIR5G-XgAAAABBWVA3Qk5NSUFBQ3BDUTR2ZlFfMDRQQUo\",\"type\":\"citest\",\"attributes\":{\"test_level\":\"test\",\"attributes\":{\"test_suite\":{\"fingerprint\":\"b3887a56ac7dce6b\"},\"test\":{\"framework_version\":\"0.0.2\",\"codeowners\":[\"@DataDog/repo\"],\"source\":{\"file\":\"javascript/datadog/trace/components/trace/SpanNetworks/span-networks.unit.tsx\"},\"type\":\"test\",\"has_parameters\":false,\"jest\":{\"test_runner\":\"jest-circus\"},\"command\":\"jest --config jest.browser.config.js --color --testNamePattern=\\\\[flaky\\\\] --ci --silent --maxWorkers=7\",\"framework\":\"jest\",\"suite\":\"javascript/datadog/trace/components/trace/SpanNetworks/span-networks.unit.tsx\",\"full_name\":\"javascript/datadog/trace/components/trace/SpanNetworks/span-networks.unit.tsx.getDefaultFilter() should return a container filter\",\"service\":\"web-ui-tests\",\"name\":\"getDefaultFilter() should return a container filter\",\"fingerprint\":\"133b6d44468c6022\",\"status\":\"skip\"},\"os\":{\"version\":\"5.15.0-1017-aws\",\"platform\":\"linux\",\"architecture\":\"x64\"},\"ci\":{\"pipeline\":{\"number\":479966,\"name\":\"DataDog/repo\",\"id\":\"10631485\",\"url\":\"https://gitlab.site.io/DataDog/repo/pipelines/10631485\"},\"workspace_path\":\"/go/src/github.com/DataDog/repo\",\"stage\":{\"name\":\"optional-jobs\"},\"provider\":{\"name\":\"gitlab\"},\"job\":{\"name\":\"unit-test-flaky\",\"url\":\"https://gitlab.site.io/DataDog/repo/-/jobs/184826196\"}},\"sampling\":{\"priority\":1},\"start\":1666363740936000768,\"runtime\":{\"name\":\"node\",\"version\":\"v16.3.0\"},\"language\":\"javascript\",\"env\":\"ci\",\"version\":\"0.0.2\",\"duration\":19287,\"test_session\":{\"fingerprint\":\"6957ad04dea312d6\"},\"library_version\":\"3.4.0\",\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-10-21T10:40:38-04:00\",\"name\":\"GitHub\",\"email\":\"noreply@github.com\",\"date_timestamp\":1666363238000},\"author\":{\"date\":\"2022-10-21T10:40:38-04:00\",\"name\":\"Joe\",\"email\":\"support@datadoghq.com\",\"date_timestamp\":1666363238000},\"message\":\"Merge branch 'preprod' into alpinet/github_api_endpoint_ticket\",\"sha\":\"c22e7de6ca6bcc4d58b960fce095ebdbc4fc693a\"},\"repository_url\":\"https://gitlab.site.io/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"gitlab.site.io\",\"id\":\"gitlab.site.io/DataDog/repo\"},\"branch\":\"alpinet/github_api_endpoint_ticket\"},\"service\":\"web-ui-tests\",\"runtime-id\":\"afa6f593-d5f0-4627-97c9-8753e83fc1e9\"},\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AQAAAYP7BNMJzoQeRQAAAABBWVA3Qk5NSkFBQV9kTGg3U1RCSWpTY1Q\",\"type\":\"citest\",\"attributes\":{\"test_level\":\"test\",\"attributes\":{\"test_suite\":{\"fingerprint\":\"44abf7116df30562\"},\"test\":{\"framework_version\":\"0.0.2\",\"codeowners\":[\"@DataDog/repo\"],\"source\":{\"file\":\"javascript/datadog/dataviz/lib/stats/FrameTimer.unit.ts\"},\"type\":\"test\",\"has_parameters\":false,\"jest\":{\"test_runner\":\"jest-circus\"},\"command\":\"jest --config jest.browser.config.js --color --testNamePattern=\\\\[flaky\\\\] --ci --silent --maxWorkers=7\",\"framework\":\"jest\",\"suite\":\"javascript/datadog/dataviz/lib/stats/FrameTimer.unit.ts\",\"full_name\":\"javascript/datadog/dataviz/lib/stats/FrameTimer.unit.ts.FrameTimer should capture timings with a GPU timer\",\"service\":\"web-ui-tests\",\"name\":\"FrameTimer should capture timings with a GPU timer\",\"fingerprint\":\"99424c8cd4b1362b\",\"status\":\"skip\"},\"os\":{\"version\":\"5.15.0-1017-aws\",\"platform\":\"linux\",\"architecture\":\"x64\"},\"ci\":{\"pipeline\":{\"number\":479961,\"name\":\"DataDog/repo\",\"id\":\"10631454\",\"url\":\"https://gitlab.site.io/DataDog/repo/pipelines/10631454\"},\"workspace_path\":\"/go/src/github.com/DataDog/repo\",\"stage\":{\"name\":\"optional-jobs\"},\"provider\":{\"name\":\"gitlab\"},\"job\":{\"name\":\"unit-test-flaky\",\"url\":\"https://gitlab.site.io/DataDog/repo/-/jobs/184825642\"}},\"sampling\":{\"priority\":1},\"start\":1666363740937000448,\"runtime\":{\"name\":\"node\",\"version\":\"v16.3.0\"},\"language\":\"javascript\",\"env\":\"ci\",\"version\":\"0.0.2\",\"duration\":18799,\"test_session\":{\"fingerprint\":\"6957ad04dea312d6\"},\"library_version\":\"3.4.0\",\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-10-21T10:39:58-04:00\",\"name\":\"GitHub\",\"email\":\"noreply@github.com\",\"date_timestamp\":1666363198000},\"author\":{\"date\":\"2022-10-21T10:39:58-04:00\",\"name\":\"Joe\",\"email\":\"support@datadoghq.com\",\"date_timestamp\":1666363198000},\"message\":\"Merge branch 'preprod' into zach.anderson/sendgrid_last_login\",\"sha\":\"ddc2d8cf8a68ca7c67553ea12d41b0df5d069bf7\"},\"repository_url\":\"https://gitlab.site.io/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"gitlab.site.io\",\"id\":\"gitlab.site.io/DataDog/repo\"},\"branch\":\"zach.anderson/sendgrid_last_login\"},\"service\":\"web-ui-tests\",\"runtime-id\":\"7efabaf6-197f-4fcc-9a4d-6ca6c85d3ae4\"},\"tags\":[\"source:apm\",\"source:apm\"]}}],\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWVA3Qk5OWGUtNGVVQUFBQUFCQldWQTNRazVPV0VGQlJGUnBVbkkxZVU5MWJXSnpiM2MifQ\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/ci/tests/events?filter%5Bfrom%5D=now-15m&filter%5Bquery%5D=%40test.service%3Aweb-ui-tests+AND+%40test.status%3Askip&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWVA3Qk5OWGUtNGVVQUFBQUFCQldWQTNRazVPV0VGQlJGUnBVbkkxZVU5MWJXSnpiM2MifQ&page%5Blimit%5D=25&sort=timestamp\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 21 Oct 2022 15:04:00 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"filter\":{\"from\":\"now-15m\",\"query\":\"@test.service:web-ui-tests AND @test.status:skip\",\"to\":\"now\"},\"options\":{\"timezone\":\"GMT\"},\"page\":{\"limit\":25},\"sort\":\"timestamp\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/ci/tests/events/search" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"AQAAAYP7BNMIuIAxxAAAAABBWVA3Qk5NSUFBQ3dKNTJFSjhrZXlTZ0s\",\"type\":\"citest\",\"attributes\":{\"test_level\":\"test\",\"attributes\":{\"test_suite\":{\"fingerprint\":\"821da1fe0511456d\"},\"test\":{\"framework_version\":\"0.0.2\",\"codeowners\":[\"@DataDog/repo\"],\"source\":{\"file\":\"javascript/datadog/apps-sdk/internal/lib/managers/app-manager-with-controller/controller-manager.unit.ts\"},\"type\":\"test\",\"has_parameters\":false,\"jest\":{\"test_runner\":\"jest-circus\"},\"command\":\"jest --config jest.browser.config.js --color --testNamePattern=\\\\[flaky\\\\] --ci --silent --maxWorkers=7\",\"framework\":\"jest\",\"suite\":\"javascript/datadog/apps-sdk/internal/lib/managers/app-manager-with-controller/controller-manager.unit.ts\",\"full_name\":\"javascript/datadog/apps-sdk/internal/lib/managers/app-manager-with-controller/controller-manager.unit.ts.request() delegates to the main iframe controller request method\",\"service\":\"web-ui-tests\",\"name\":\"request() delegates to the main iframe controller request method\",\"fingerprint\":\"3dbce8739d2972f9\",\"status\":\"skip\"},\"os\":{\"version\":\"5.15.0-1017-aws\",\"platform\":\"linux\",\"architecture\":\"x64\"},\"ci\":{\"pipeline\":{\"number\":479973,\"name\":\"DataDog/repo\",\"id\":\"10631599\",\"url\":\"https://gitlab.site.io/DataDog/repo/pipelines/10631599\"},\"workspace_path\":\"/go/src/github.com/DataDog/repo\",\"stage\":{\"name\":\"optional-jobs\"},\"provider\":{\"name\":\"gitlab\"},\"job\":{\"name\":\"unit-test-flaky\",\"url\":\"https://gitlab.site.io/DataDog/repo/-/jobs/184829407\"}},\"sampling\":{\"priority\":1},\"start\":1666363740936000512,\"runtime\":{\"name\":\"node\",\"version\":\"v16.3.0\"},\"language\":\"javascript\",\"env\":\"ci\",\"version\":\"0.0.2\",\"duration\":18799,\"test_session\":{\"fingerprint\":\"6957ad04dea312d6\"},\"library_version\":\"3.4.0\",\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-10-21T23:44:50+09:00\",\"name\":\"GitHub\",\"email\":\"noreply@github.com\",\"date_timestamp\":1666363490000},\"author\":{\"date\":\"2022-10-21T23:44:50+09:00\",\"name\":\"Joe\",\"email\":\"support@datadoghq.com\",\"date_timestamp\":1666363490000},\"message\":\"Merge branch 'preprod' into babbins/core-app-docs-landing-page\",\"sha\":\"dbd090f623d681a7b6a65acb826ccf3968bb5d91\"},\"repository_url\":\"https://gitlab.site.io/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"gitlab.site.io\",\"id\":\"gitlab.site.io/DataDog/repo\"},\"branch\":\"babbins/core-app-docs-landing-page\"},\"service\":\"web-ui-tests\",\"runtime-id\":\"1f3e8a86-145c-4856-9e13-5228bed9a30e\"},\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AQAAAYP7BNMIR5G-XgAAAABBWVA3Qk5NSUFBQ3BDUTR2ZlFfMDRQQUo\",\"type\":\"citest\",\"attributes\":{\"test_level\":\"test\",\"attributes\":{\"test_suite\":{\"fingerprint\":\"b3887a56ac7dce6b\"},\"test\":{\"framework_version\":\"0.0.2\",\"codeowners\":[\"@DataDog/repo\"],\"source\":{\"file\":\"javascript/datadog/trace/components/trace/SpanNetworks/span-networks.unit.tsx\"},\"type\":\"test\",\"has_parameters\":false,\"jest\":{\"test_runner\":\"jest-circus\"},\"command\":\"jest --config jest.browser.config.js --color --testNamePattern=\\\\[flaky\\\\] --ci --silent --maxWorkers=7\",\"framework\":\"jest\",\"suite\":\"javascript/datadog/trace/components/trace/SpanNetworks/span-networks.unit.tsx\",\"full_name\":\"javascript/datadog/trace/components/trace/SpanNetworks/span-networks.unit.tsx.getDefaultFilter() should return a container filter\",\"service\":\"web-ui-tests\",\"name\":\"getDefaultFilter() should return a container filter\",\"fingerprint\":\"133b6d44468c6022\",\"status\":\"skip\"},\"os\":{\"version\":\"5.15.0-1017-aws\",\"platform\":\"linux\",\"architecture\":\"x64\"},\"ci\":{\"pipeline\":{\"number\":479966,\"name\":\"DataDog/repo\",\"id\":\"10631485\",\"url\":\"https://gitlab.site.io/DataDog/repo/pipelines/10631485\"},\"workspace_path\":\"/go/src/github.com/DataDog/repo\",\"stage\":{\"name\":\"optional-jobs\"},\"provider\":{\"name\":\"gitlab\"},\"job\":{\"name\":\"unit-test-flaky\",\"url\":\"https://gitlab.site.io/DataDog/repo/-/jobs/184826196\"}},\"sampling\":{\"priority\":1},\"start\":1666363740936000768,\"runtime\":{\"name\":\"node\",\"version\":\"v16.3.0\"},\"language\":\"javascript\",\"env\":\"ci\",\"version\":\"0.0.2\",\"duration\":19287,\"test_session\":{\"fingerprint\":\"6957ad04dea312d6\"},\"library_version\":\"3.4.0\",\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-10-21T10:40:38-04:00\",\"name\":\"GitHub\",\"email\":\"noreply@github.com\",\"date_timestamp\":1666363238000},\"author\":{\"date\":\"2022-10-21T10:40:38-04:00\",\"name\":\"Joe\",\"email\":\"support@datadoghq.com\",\"date_timestamp\":1666363238000},\"message\":\"Merge branch 'preprod' into alpinet/github_api_endpoint_ticket\",\"sha\":\"c22e7de6ca6bcc4d58b960fce095ebdbc4fc693a\"},\"repository_url\":\"https://gitlab.site.io/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"gitlab.site.io\",\"id\":\"gitlab.site.io/DataDog/repo\"},\"branch\":\"alpinet/github_api_endpoint_ticket\"},\"service\":\"web-ui-tests\",\"runtime-id\":\"afa6f593-d5f0-4627-97c9-8753e83fc1e9\"},\"tags\":[\"source:apm\",\"source:apm\"]}},{\"id\":\"AQAAAYP7BNMJzoQeRQAAAABBWVA3Qk5NSkFBQV9kTGg3U1RCSWpTY1Q\",\"type\":\"citest\",\"attributes\":{\"test_level\":\"test\",\"attributes\":{\"test_suite\":{\"fingerprint\":\"44abf7116df30562\"},\"test\":{\"framework_version\":\"0.0.2\",\"codeowners\":[\"@DataDog/repo\"],\"source\":{\"file\":\"javascript/datadog/dataviz/lib/stats/FrameTimer.unit.ts\"},\"type\":\"test\",\"has_parameters\":false,\"jest\":{\"test_runner\":\"jest-circus\"},\"command\":\"jest --config jest.browser.config.js --color --testNamePattern=\\\\[flaky\\\\] --ci --silent --maxWorkers=7\",\"framework\":\"jest\",\"suite\":\"javascript/datadog/dataviz/lib/stats/FrameTimer.unit.ts\",\"full_name\":\"javascript/datadog/dataviz/lib/stats/FrameTimer.unit.ts.FrameTimer should capture timings with a GPU timer\",\"service\":\"web-ui-tests\",\"name\":\"FrameTimer should capture timings with a GPU timer\",\"fingerprint\":\"99424c8cd4b1362b\",\"status\":\"skip\"},\"os\":{\"version\":\"5.15.0-1017-aws\",\"platform\":\"linux\",\"architecture\":\"x64\"},\"ci\":{\"pipeline\":{\"number\":479961,\"name\":\"DataDog/repo\",\"id\":\"10631454\",\"url\":\"https://gitlab.site.io/DataDog/repo/pipelines/10631454\"},\"workspace_path\":\"/go/src/github.com/DataDog/repo\",\"stage\":{\"name\":\"optional-jobs\"},\"provider\":{\"name\":\"gitlab\"},\"job\":{\"name\":\"unit-test-flaky\",\"url\":\"https://gitlab.site.io/DataDog/repo/-/jobs/184825642\"}},\"sampling\":{\"priority\":1},\"start\":1666363740937000448,\"runtime\":{\"name\":\"node\",\"version\":\"v16.3.0\"},\"language\":\"javascript\",\"env\":\"ci\",\"version\":\"0.0.2\",\"duration\":18799,\"test_session\":{\"fingerprint\":\"6957ad04dea312d6\"},\"library_version\":\"3.4.0\",\"git\":{\"commit\":{\"committer\":{\"date\":\"2022-10-21T10:39:58-04:00\",\"name\":\"GitHub\",\"email\":\"noreply@github.com\",\"date_timestamp\":1666363198000},\"author\":{\"date\":\"2022-10-21T10:39:58-04:00\",\"name\":\"Joe\",\"email\":\"support@datadoghq.com\",\"date_timestamp\":1666363198000},\"message\":\"Merge branch 'preprod' into zach.anderson/sendgrid_last_login\",\"sha\":\"ddc2d8cf8a68ca7c67553ea12d41b0df5d069bf7\"},\"repository_url\":\"https://gitlab.site.io/DataDog/repo.git\",\"repository\":{\"path\":\"/DataDog/repo.git\",\"scheme\":\"https\",\"name\":\"DataDog/repo\",\"host\":\"gitlab.site.io\",\"id\":\"gitlab.site.io/DataDog/repo\"},\"branch\":\"zach.anderson/sendgrid_last_login\"},\"service\":\"web-ui-tests\",\"runtime-id\":\"7efabaf6-197f-4fcc-9a4d-6ca6c85d3ae4\"},\"tags\":[\"source:apm\",\"source:apm\"]}}],\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWVA3Qk5OWGUtNGVVQUFBQUFCQldWQTNRazVPV0VGQlJGUnBVbkkxZVU5MWJXSnpiM2MifQ\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/ci/tests/events?filter%5Bfrom%5D=now-15m&filter%5Bquery%5D=%40test.service%3Aweb-ui-tests+AND+%40test.status%3Askip&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWVA3Qk5OWGUtNGVVQUFBQUFCQldWQTNRazVPV0VGQlJGUnBVbkkxZVU5MWJXSnpiM2MifQ&page%5Blimit%5D=25&sort=timestamp\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 21 Oct 2022 15:04:00 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_cost_management/Create-Cloud-Cost-Management-AWS-CUR-config-returns-OK-response.json b/tests/scenarios/cassettes/v2/cloud_cost_management/Create-Cloud-Cost-Management-AWS-CUR-config-returns-OK-response.json index 3810ac41f..ff83a3e82 100644 --- a/tests/scenarios/cassettes/v2/cloud_cost_management/Create-Cloud-Cost-Management-AWS-CUR-config-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/cloud_cost_management/Create-Cloud-Cost-Management-AWS-CUR-config-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"account_id\":\"123456789123\",\"bucket_name\":\"dd-cost-bucket\",\"bucket_region\":\"us-east-1\",\"report_name\":\"dd-report-name\",\"report_prefix\":\"dd-report-prefix\"},\"type\":\"aws_cur_config_post_request\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/cost/aws_cur_config"}, "response": {"body": {"string": "{\"data\":{\"type\":\"aws_cur_config\",\"id\":177,\"attributes\":{\"account_id\":\"123456789123\",\"bucket_name\":\"dd-cost-bucket\",\"bucket_region\":\"us-east-1\",\"report_prefix\":\"dd-report-prefix\",\"report_name\":\"dd-report-name\",\"months\":15,\"updated_at\":\"2023-12-12T14:24:30.907264\",\"created_at\":\"2023-12-12T14:24:30.907264\",\"status\":\"active\",\"status_updated_at\":\"2023-12-12T14:24:30.904602\",\"error_messages\":[]}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 12 Dec 2023 14:24:29 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"account_id\":\"123456789123\",\"bucket_name\":\"dd-cost-bucket\",\"bucket_region\":\"us-east-1\",\"report_name\":\"dd-report-name\",\"report_prefix\":\"dd-report-prefix\"},\"type\":\"aws_cur_config_post_request\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cost/aws_cur_config" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"aws_cur_config\",\"id\":177,\"attributes\":{\"account_id\":\"123456789123\",\"bucket_name\":\"dd-cost-bucket\",\"bucket_region\":\"us-east-1\",\"report_prefix\":\"dd-report-prefix\",\"report_name\":\"dd-report-name\",\"months\":15,\"updated_at\":\"2023-12-12T14:24:30.907264\",\"created_at\":\"2023-12-12T14:24:30.907264\",\"status\":\"active\",\"status_updated_at\":\"2023-12-12T14:24:30.904602\",\"error_messages\":[]}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 12 Dec 2023 14:24:29 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_cost_management/Create-Cloud-Cost-Management-Azure-configs-returns-OK-response.json b/tests/scenarios/cassettes/v2/cloud_cost_management/Create-Cloud-Cost-Management-Azure-configs-returns-OK-response.json index 9a6499729..826b0b68e 100644 --- a/tests/scenarios/cassettes/v2/cloud_cost_management/Create-Cloud-Cost-Management-Azure-configs-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/cloud_cost_management/Create-Cloud-Cost-Management-Azure-configs-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\": {\"attributes\": {\"account_id\": \"1234abcd-1234-abcd-1234-1234abcd1234\", \"actual_bill_config\": {\"export_name\": \"dd-actual-export\", \"export_path\": \"dd-export-path\", \"storage_account\": \"dd-storage-account\", \"storage_container\": \"dd-storage-container\"}, \"amortized_bill_config\": {\"export_name\": \"dd-actual-export\", \"export_path\": \"dd-export-path\", \"storage_account\": \"dd-storage-account\", \"storage_container\": \"dd-storage-container\"}, \"client_id\": \"1234abcd-1234-abcd-1234-1234abcd1234\", \"is_enabled\": true, \"scope\": \"subscriptions/1234abcd-1234-abcd-1234-1234abcd1234\"}, \"type\": \"azure_uc_config_post_request\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/cost/azure_uc_config"}, "response": {"body": {"string": "{\"data\": {\"type\": \"azure_uc_configs\", \"id\": 1, \"attributes\": {\"configs\": [{\"id\": 1, \"storage_container\": \"test_storage_container\", \"scope\": \"test_scope\", \"status\": \"active\", \"account_id\": \"1234abcd-1234-abcd-1234-1234abcd1234\", \"client_id\": \"test_client_id\", \"storage_account\": \"test_storage_account\", \"months\": 15, \"error_messages\": [], \"dataset_type\": \"actual\", \"status_updated_at\": \"2023-12-12T17:11:56.855669\", \"created_at\": \"2023-12-12T17:11:56.860554\", \"updated_at\": \"2023-12-12T17:11:56.860554\", \"export_name\": \"test_export_name\", \"export_path\": \"test_export_path\"}, {\"id\": 1, \"storage_container\": \"test_storage_container\", \"scope\": \"test_scope\", \"status\": \"active\", \"account_id\": \"test_account_id\", \"client_id\": \"test_client_id\", \"storage_account\": \"test_storage_account\", \"months\": 15, \"error_messages\": [], \"dataset_type\": \"amortized\", \"status_updated_at\": \"2023-12-12T17:11:56.855669\", \"created_at\": \"2023-12-12T17:11:56.861623\", \"updated_at\": \"2023-12-12T17:11:56.861623\", \"export_name\": \"test_export_name\", \"export_path\": \"test_export_path\"}]}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 12 Dec 2023 17:11:52 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\": {\"attributes\": {\"account_id\": \"1234abcd-1234-abcd-1234-1234abcd1234\", \"actual_bill_config\": {\"export_name\": \"dd-actual-export\", \"export_path\": \"dd-export-path\", \"storage_account\": \"dd-storage-account\", \"storage_container\": \"dd-storage-container\"}, \"amortized_bill_config\": {\"export_name\": \"dd-actual-export\", \"export_path\": \"dd-export-path\", \"storage_account\": \"dd-storage-account\", \"storage_container\": \"dd-storage-container\"}, \"client_id\": \"1234abcd-1234-abcd-1234-1234abcd1234\", \"is_enabled\": true, \"scope\": \"subscriptions/1234abcd-1234-abcd-1234-1234abcd1234\"}, \"type\": \"azure_uc_config_post_request\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/cost/azure_uc_config" + }, + "response": { + "body": { + "string": "{\"data\": {\"type\": \"azure_uc_configs\", \"id\": 1, \"attributes\": {\"configs\": [{\"id\": 1, \"storage_container\": \"test_storage_container\", \"scope\": \"test_scope\", \"status\": \"active\", \"account_id\": \"1234abcd-1234-abcd-1234-1234abcd1234\", \"client_id\": \"test_client_id\", \"storage_account\": \"test_storage_account\", \"months\": 15, \"error_messages\": [], \"dataset_type\": \"actual\", \"status_updated_at\": \"2023-12-12T17:11:56.855669\", \"created_at\": \"2023-12-12T17:11:56.860554\", \"updated_at\": \"2023-12-12T17:11:56.860554\", \"export_name\": \"test_export_name\", \"export_path\": \"test_export_path\"}, {\"id\": 1, \"storage_container\": \"test_storage_container\", \"scope\": \"test_scope\", \"status\": \"active\", \"account_id\": \"test_account_id\", \"client_id\": \"test_client_id\", \"storage_account\": \"test_storage_account\", \"months\": 15, \"error_messages\": [], \"dataset_type\": \"amortized\", \"status_updated_at\": \"2023-12-12T17:11:56.855669\", \"created_at\": \"2023-12-12T17:11:56.861623\", \"updated_at\": \"2023-12-12T17:11:56.861623\", \"export_name\": \"test_export_name\", \"export_path\": \"test_export_path\"}]}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 12 Dec 2023 17:11:52 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_cost_management/Delete-Cloud-Cost-Management-AWS-CUR-config-returns-No-Content-response.json b/tests/scenarios/cassettes/v2/cloud_cost_management/Delete-Cloud-Cost-Management-AWS-CUR-config-returns-No-Content-response.json index 48b4c2ead..4a2575065 100644 --- a/tests/scenarios/cassettes/v2/cloud_cost_management/Delete-Cloud-Cost-Management-AWS-CUR-config-returns-No-Content-response.json +++ b/tests/scenarios/cassettes/v2/cloud_cost_management/Delete-Cloud-Cost-Management-AWS-CUR-config-returns-No-Content-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/cost/aws_cur_config/100"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Tue, 12 Dec 2023 14:24:02 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/cost/aws_cur_config/100" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Tue, 12 Dec 2023 14:24:02 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_cost_management/Delete-Cloud-Cost-Management-Azure-config-returns-No-Content-response.json b/tests/scenarios/cassettes/v2/cloud_cost_management/Delete-Cloud-Cost-Management-Azure-config-returns-No-Content-response.json index 0a082522c..9c31f69f2 100644 --- a/tests/scenarios/cassettes/v2/cloud_cost_management/Delete-Cloud-Cost-Management-Azure-config-returns-No-Content-response.json +++ b/tests/scenarios/cassettes/v2/cloud_cost_management/Delete-Cloud-Cost-Management-Azure-config-returns-No-Content-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/cost/azure_uc_config/100"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Tue, 12 Dec 2023 16:00:55 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/cost/azure_uc_config/100" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Tue, 12 Dec 2023 16:00:55 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_cost_management/List-Cloud-Cost-Management-AWS-CUR-configs-returns-OK-response.json b/tests/scenarios/cassettes/v2/cloud_cost_management/List-Cloud-Cost-Management-AWS-CUR-configs-returns-OK-response.json index 0bdbae4ea..1d392d510 100644 --- a/tests/scenarios/cassettes/v2/cloud_cost_management/List-Cloud-Cost-Management-AWS-CUR-configs-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/cloud_cost_management/List-Cloud-Cost-Management-AWS-CUR-configs-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/cost/aws_cur_config"}, "response": {"body": {"string": "{\"data\": [{\"type\": \"aws_cur_config\", \"id\": 100, \"attributes\": {\"account_id\": \"000000000000\", \"bucket_name\": \"test_bucket_name\", \"bucket_region\": \"us-east-1\", \"report_prefix\": \"cur-hourly\", \"report_name\": \"billing-conductor-cur\", \"months\": 15, \"updated_at\": \"2023-10-27T12:38:39.585408\", \"created_at\": \"2023-10-10T13:53:28.774143\", \"status\": \"active\", \"status_updated_at\": \"2023-11-21T17:07:24.778386\", \"error_messages\": []}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 12 Dec 2023 13:33:48 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/cost/aws_cur_config" + }, + "response": { + "body": { + "string": "{\"data\": [{\"type\": \"aws_cur_config\", \"id\": 100, \"attributes\": {\"account_id\": \"000000000000\", \"bucket_name\": \"test_bucket_name\", \"bucket_region\": \"us-east-1\", \"report_prefix\": \"cur-hourly\", \"report_name\": \"billing-conductor-cur\", \"months\": 15, \"updated_at\": \"2023-10-27T12:38:39.585408\", \"created_at\": \"2023-10-10T13:53:28.774143\", \"status\": \"active\", \"status_updated_at\": \"2023-11-21T17:07:24.778386\", \"error_messages\": []}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 12 Dec 2023 13:33:48 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_cost_management/List-Cloud-Cost-Management-Azure-configs-returns-OK-response.json b/tests/scenarios/cassettes/v2/cloud_cost_management/List-Cloud-Cost-Management-Azure-configs-returns-OK-response.json index dbfb181c1..568208275 100644 --- a/tests/scenarios/cassettes/v2/cloud_cost_management/List-Cloud-Cost-Management-Azure-configs-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/cloud_cost_management/List-Cloud-Cost-Management-Azure-configs-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/cost/azure_uc_config"}, "response": {"body": {"string": "{\"data\": [{\"type\": \"azure_uc_configs\", \"id\": 1, \"attributes\": {\"configs\": [{\"id\": 1, \"export_name\": \"test_export_name\", \"scope\": \"test_scope\", \"created_at\": \"2023-06-29T12:43:36.569819\", \"storage_container\": \"test_storage_container\", \"status\": \"active\", \"updated_at\": \"2023-06-29T12:43:36.569819\", \"account_id\": \"test_account_id\", \"client_id\": \"test_client_id\", \"dataset_type\": \"actual\", \"status_updated_at\": \"2023-11-03T13:48:16.827724\", \"error_messages\": [], \"storage_account\": \"test_storage_account\", \"months\": 15, \"export_path\": \"test_export_path\"}, {\"id\": 1, \"export_name\": \"test_export_name\", \"scope\": \"test_scope\", \"created_at\": \"2023-06-29T12:43:36.569819\", \"storage_container\": \"test_storage_container\", \"status\": \"active\", \"updated_at\": \"2023-06-29T12:43:36.569819\", \"account_id\": \"test_account_id\", \"client_id\": \"test_client_id\", \"dataset_type\": \"amortized\", \"status_updated_at\": \"2023-11-03T13:48:16.827724\", \"error_messages\": [], \"storage_account\": \"test_storage_account\", \"months\": 15, \"export_path\": \"test_export_path\"}]}}, {\"type\": \"azure_uc_configs\", \"id\": 1, \"attributes\": {\"configs\": [{\"id\": 1, \"export_name\": \"test_export_name\", \"scope\": \"test_scope\", \"created_at\": \"2023-11-09T16:26:33.859447\", \"storage_container\": \"test_storage_container\", \"status\": \"active\", \"updated_at\": \"2023-11-09T16:26:33.859447\", \"account_id\": \"test_account_id\", \"client_id\": \"test_client_id\", \"dataset_type\": \"actual\", \"status_updated_at\": \"2023-11-09T16:26:33.849153\", \"storage_account\": \"test_storage_account\", \"months\": 15, \"export_path\": \"test_export_path\"}, {\"id\": 1, \"export_name\": \"test_export_name\", \"scope\": \"test_scope\", \"created_at\": \"2023-11-09T16:26:33.862026\", \"storage_container\": \"test_storage_container\", \"status\": \"active\", \"updated_at\": \"2023-11-09T16:26:33.862026\", \"account_id\": \"test_account_id\", \"client_id\": \"test_client_id\", \"dataset_type\": \"amortized\", \"status_updated_at\": \"2023-11-09T16:26:33.849153\", \"storage_account\": \"test_storage_account\", \"months\": 15, \"export_path\": \"test_export_path\"}]}}, {\"type\": \"azure_uc_configs\", \"id\": 1, \"attributes\": {\"configs\": [{\"id\": 1, \"export_name\": \"test_export_name\", \"scope\": \"test_scope\", \"created_at\": \"2023-11-09T20:20:35.959808\", \"storage_container\": \"test_storage_container\", \"status\": \"active\", \"updated_at\": \"2023-11-09T20:20:35.959808\", \"account_id\": \"test_account_id\", \"client_id\": \"test_client_id\", \"dataset_type\": \"actual\", \"status_updated_at\": \"2023-11-09T20:20:35.956202\", \"storage_account\": \"test_storage_account\", \"months\": 15, \"export_path\": \"test_export_path\"}, {\"id\": 1, \"export_name\": \"test_export_name\", \"scope\": \"test_scope\", \"created_at\": \"2023-11-09T20:20:35.960815\", \"storage_container\": \"test_storage_container\", \"status\": \"active\", \"updated_at\": \"2023-11-09T20:20:35.960815\", \"account_id\": \"test_account_id\", \"client_id\": \"test_client_id\", \"dataset_type\": \"amortized\", \"status_updated_at\": \"2023-11-09T20:20:35.956202\", \"storage_account\": \"test_storage_account\", \"months\": 15, \"export_path\": \"test_export_path\"}]}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 12 Dec 2023 15:29:02 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/cost/azure_uc_config" + }, + "response": { + "body": { + "string": "{\"data\": [{\"type\": \"azure_uc_configs\", \"id\": 1, \"attributes\": {\"configs\": [{\"id\": 1, \"export_name\": \"test_export_name\", \"scope\": \"test_scope\", \"created_at\": \"2023-06-29T12:43:36.569819\", \"storage_container\": \"test_storage_container\", \"status\": \"active\", \"updated_at\": \"2023-06-29T12:43:36.569819\", \"account_id\": \"test_account_id\", \"client_id\": \"test_client_id\", \"dataset_type\": \"actual\", \"status_updated_at\": \"2023-11-03T13:48:16.827724\", \"error_messages\": [], \"storage_account\": \"test_storage_account\", \"months\": 15, \"export_path\": \"test_export_path\"}, {\"id\": 1, \"export_name\": \"test_export_name\", \"scope\": \"test_scope\", \"created_at\": \"2023-06-29T12:43:36.569819\", \"storage_container\": \"test_storage_container\", \"status\": \"active\", \"updated_at\": \"2023-06-29T12:43:36.569819\", \"account_id\": \"test_account_id\", \"client_id\": \"test_client_id\", \"dataset_type\": \"amortized\", \"status_updated_at\": \"2023-11-03T13:48:16.827724\", \"error_messages\": [], \"storage_account\": \"test_storage_account\", \"months\": 15, \"export_path\": \"test_export_path\"}]}}, {\"type\": \"azure_uc_configs\", \"id\": 1, \"attributes\": {\"configs\": [{\"id\": 1, \"export_name\": \"test_export_name\", \"scope\": \"test_scope\", \"created_at\": \"2023-11-09T16:26:33.859447\", \"storage_container\": \"test_storage_container\", \"status\": \"active\", \"updated_at\": \"2023-11-09T16:26:33.859447\", \"account_id\": \"test_account_id\", \"client_id\": \"test_client_id\", \"dataset_type\": \"actual\", \"status_updated_at\": \"2023-11-09T16:26:33.849153\", \"storage_account\": \"test_storage_account\", \"months\": 15, \"export_path\": \"test_export_path\"}, {\"id\": 1, \"export_name\": \"test_export_name\", \"scope\": \"test_scope\", \"created_at\": \"2023-11-09T16:26:33.862026\", \"storage_container\": \"test_storage_container\", \"status\": \"active\", \"updated_at\": \"2023-11-09T16:26:33.862026\", \"account_id\": \"test_account_id\", \"client_id\": \"test_client_id\", \"dataset_type\": \"amortized\", \"status_updated_at\": \"2023-11-09T16:26:33.849153\", \"storage_account\": \"test_storage_account\", \"months\": 15, \"export_path\": \"test_export_path\"}]}}, {\"type\": \"azure_uc_configs\", \"id\": 1, \"attributes\": {\"configs\": [{\"id\": 1, \"export_name\": \"test_export_name\", \"scope\": \"test_scope\", \"created_at\": \"2023-11-09T20:20:35.959808\", \"storage_container\": \"test_storage_container\", \"status\": \"active\", \"updated_at\": \"2023-11-09T20:20:35.959808\", \"account_id\": \"test_account_id\", \"client_id\": \"test_client_id\", \"dataset_type\": \"actual\", \"status_updated_at\": \"2023-11-09T20:20:35.956202\", \"storage_account\": \"test_storage_account\", \"months\": 15, \"export_path\": \"test_export_path\"}, {\"id\": 1, \"export_name\": \"test_export_name\", \"scope\": \"test_scope\", \"created_at\": \"2023-11-09T20:20:35.960815\", \"storage_container\": \"test_storage_container\", \"status\": \"active\", \"updated_at\": \"2023-11-09T20:20:35.960815\", \"account_id\": \"test_account_id\", \"client_id\": \"test_client_id\", \"dataset_type\": \"amortized\", \"status_updated_at\": \"2023-11-09T20:20:35.956202\", \"storage_account\": \"test_storage_account\", \"months\": 15, \"export_path\": \"test_export_path\"}]}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 12 Dec 2023 15:29:02 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_cost_management/List-related-AWS-accounts-returns-OK-response.json b/tests/scenarios/cassettes/v2/cloud_cost_management/List-related-AWS-accounts-returns-OK-response.json index c21c7088a..db3d0ad3e 100644 --- a/tests/scenarios/cassettes/v2/cloud_cost_management/List-related-AWS-accounts-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/cloud_cost_management/List-related-AWS-accounts-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/cost/aws_related_accounts?filter%5Bmanagement_account_id%5D=123456789123"}, "response": {"body": {"string": "{\"data\": [{\"type\": \"aws_account\", \"id\": \"000000000000\", \"attributes\": {\"name\": \"test_name\", \"has_datadog_integration\": false}}, {\"type\": \"aws_account\", \"id\": \"000000000000\", \"attributes\": {\"name\": \"test_name\", \"has_datadog_integration\": true}}, {\"type\": \"aws_account\", \"id\": \"000000000000\", \"attributes\": {\"name\": \"test_name\", \"has_datadog_integration\": false}}, {\"type\": \"aws_account\", \"id\": \"000000000000\", \"attributes\": {\"name\": \"test_name\", \"has_datadog_integration\": false}}, {\"type\": \"aws_account\", \"id\": \"000000000000\", \"attributes\": {\"name\": \"test_name\", \"has_datadog_integration\": true}}, {\"type\": \"aws_account\", \"id\": \"000000000000\", \"attributes\": {\"name\": \"test_name\", \"has_datadog_integration\": false}}, {\"type\": \"aws_account\", \"id\": \"000000000000\", \"attributes\": {\"name\": \"test_name\", \"has_datadog_integration\": false}}, {\"type\": \"aws_account\", \"id\": \"000000000000\", \"attributes\": {\"name\": \"test_name\", \"has_datadog_integration\": true}}, {\"type\": \"aws_account\", \"id\": \"000000000000\", \"attributes\": {\"name\": \"test_name\", \"has_datadog_integration\": false}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 12 Dec 2023 14:56:29 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/cost/aws_related_accounts?filter%5Bmanagement_account_id%5D=123456789123" + }, + "response": { + "body": { + "string": "{\"data\": [{\"type\": \"aws_account\", \"id\": \"000000000000\", \"attributes\": {\"name\": \"test_name\", \"has_datadog_integration\": false}}, {\"type\": \"aws_account\", \"id\": \"000000000000\", \"attributes\": {\"name\": \"test_name\", \"has_datadog_integration\": true}}, {\"type\": \"aws_account\", \"id\": \"000000000000\", \"attributes\": {\"name\": \"test_name\", \"has_datadog_integration\": false}}, {\"type\": \"aws_account\", \"id\": \"000000000000\", \"attributes\": {\"name\": \"test_name\", \"has_datadog_integration\": false}}, {\"type\": \"aws_account\", \"id\": \"000000000000\", \"attributes\": {\"name\": \"test_name\", \"has_datadog_integration\": true}}, {\"type\": \"aws_account\", \"id\": \"000000000000\", \"attributes\": {\"name\": \"test_name\", \"has_datadog_integration\": false}}, {\"type\": \"aws_account\", \"id\": \"000000000000\", \"attributes\": {\"name\": \"test_name\", \"has_datadog_integration\": false}}, {\"type\": \"aws_account\", \"id\": \"000000000000\", \"attributes\": {\"name\": \"test_name\", \"has_datadog_integration\": true}}, {\"type\": \"aws_account\", \"id\": \"000000000000\", \"attributes\": {\"name\": \"test_name\", \"has_datadog_integration\": false}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 12 Dec 2023 14:56:29 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_cost_management/Update-Cloud-Cost-Management-AWS-CUR-config-returns-OK-response.json b/tests/scenarios/cassettes/v2/cloud_cost_management/Update-Cloud-Cost-Management-AWS-CUR-config-returns-OK-response.json index c25ed1166..1372b55a1 100644 --- a/tests/scenarios/cassettes/v2/cloud_cost_management/Update-Cloud-Cost-Management-AWS-CUR-config-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/cloud_cost_management/Update-Cloud-Cost-Management-AWS-CUR-config-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\": {\"attributes\": {\"is_enabled\": true}, \"type\": \"aws_cur_config_patch_request\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/cost/aws_cur_config/100"}, "response": {"body": {"string": "{\"data\": [{\"type\": \"aws_cur_config\", \"id\": 100, \"attributes\": {\"account_id\": \"000000000000\", \"bucket_name\": \"test_bucket_name\", \"bucket_region\": \"us-east-1\", \"report_prefix\": \"cur-report-hourly\", \"report_name\": \"cur-hourly\", \"months\": 15, \"updated_at\": \"2023-10-18T08:15:45.265597\", \"created_at\": \"2022-07-25T17:19:47.190482\", \"status\": \"active\", \"status_updated_at\": \"2023-11-08T22:47:55.372330\", \"error_messages\": []}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 12 Dec 2023 13:23:19 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\": {\"attributes\": {\"is_enabled\": true}, \"type\": \"aws_cur_config_patch_request\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/cost/aws_cur_config/100" + }, + "response": { + "body": { + "string": "{\"data\": [{\"type\": \"aws_cur_config\", \"id\": 100, \"attributes\": {\"account_id\": \"000000000000\", \"bucket_name\": \"test_bucket_name\", \"bucket_region\": \"us-east-1\", \"report_prefix\": \"cur-report-hourly\", \"report_name\": \"cur-hourly\", \"months\": 15, \"updated_at\": \"2023-10-18T08:15:45.265597\", \"created_at\": \"2022-07-25T17:19:47.190482\", \"status\": \"active\", \"status_updated_at\": \"2023-11-08T22:47:55.372330\", \"error_messages\": []}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 12 Dec 2023 13:23:19 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_cost_management/Update-Cloud-Cost-Management-Azure-config-returns-OK-response.json b/tests/scenarios/cassettes/v2/cloud_cost_management/Update-Cloud-Cost-Management-Azure-config-returns-OK-response.json index 54a1ff71b..c04952012 100644 --- a/tests/scenarios/cassettes/v2/cloud_cost_management/Update-Cloud-Cost-Management-Azure-config-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/cloud_cost_management/Update-Cloud-Cost-Management-Azure-config-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\": {\"attributes\": {\"is_enabled\": true}, \"type\": \"azure_uc_config_patch_request\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/cost/azure_uc_config/100"}, "response": {"body": {"string": "{\"data\": {\"type\": \"azure_uc_configs\", \"id\": 100, \"attributes\": {\"configs\": [{\"updated_at\": \"2023-06-29T12:43:36.569819\", \"export_path\": \"/amortized-cost\", \"status\": \"active\", \"id\": 56, \"account_id\": \"test_account_id\", \"client_id\": \"test_client_id\", \"dataset_type\": \"amortized\", \"created_at\": \"2023-06-29T12:43:36.569819\", \"export_name\": \"test_export_name\", \"scope\": \"test_scope\", \"storage_account\": \"test_storage_account\", \"storage_container\": \"test_storage_container\", \"status_updated_at\": \"2023-12-13T13:29:24.462039\", \"months\": 15}, {\"updated_at\": \"2023-06-29T12:43:36.569819\", \"export_path\": \"/actual-cost\", \"status\": \"active\", \"id\": 55, \"account_id\": \"test_account_id\", \"client_id\": \"test_client_id\", \"dataset_type\": \"actual\", \"created_at\": \"2023-06-29T12:43:36.569819\", \"export_name\": \"test_export_name\", \"scope\": \"test_scope\", \"storage_account\": \"test_storage_account\", \"storage_container\": \"test_storage_container\", \"status_updated_at\": \"2023-12-13T13:29:24.462039\", \"months\": 15}]}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 13 Dec 2023 13:29:24 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\": {\"attributes\": {\"is_enabled\": true}, \"type\": \"azure_uc_config_patch_request\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/cost/azure_uc_config/100" + }, + "response": { + "body": { + "string": "{\"data\": {\"type\": \"azure_uc_configs\", \"id\": 100, \"attributes\": {\"configs\": [{\"updated_at\": \"2023-06-29T12:43:36.569819\", \"export_path\": \"/amortized-cost\", \"status\": \"active\", \"id\": 56, \"account_id\": \"test_account_id\", \"client_id\": \"test_client_id\", \"dataset_type\": \"amortized\", \"created_at\": \"2023-06-29T12:43:36.569819\", \"export_name\": \"test_export_name\", \"scope\": \"test_scope\", \"storage_account\": \"test_storage_account\", \"storage_container\": \"test_storage_container\", \"status_updated_at\": \"2023-12-13T13:29:24.462039\", \"months\": 15}, {\"updated_at\": \"2023-06-29T12:43:36.569819\", \"export_path\": \"/actual-cost\", \"status\": \"active\", \"id\": 55, \"account_id\": \"test_account_id\", \"client_id\": \"test_client_id\", \"dataset_type\": \"actual\", \"created_at\": \"2023-06-29T12:43:36.569819\", \"export_name\": \"test_export_name\", \"scope\": \"test_scope\", \"storage_account\": \"test_storage_account\", \"storage_container\": \"test_storage_container\", \"status_updated_at\": \"2023-12-13T13:29:24.462039\", \"months\": 15}]}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 13 Dec 2023 13:29:24 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-CSM-Threats-Agent-rule-returns-Bad-Request-response.frozen b/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-CSM-Threats-Agent-rule-returns-Bad-Request-response.frozen new file mode 100644 index 000000000..8ad43c5ec --- /dev/null +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-CSM-Threats-Agent-rule-returns-Bad-Request-response.frozen @@ -0,0 +1 @@ +2024-03-28T13:57:47.808Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-CSM-Threats-Agent-rule-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-CSM-Threats-Agent-rule-returns-Bad-Request-response.json new file mode 100644 index 000000000..b3163307a --- /dev/null +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-CSM-Threats-Agent-rule-returns-Bad-Request-response.json @@ -0,0 +1,39 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"My Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == sh\",\"name\":\"testcreateacsmthreatsagentrulereturnsbadrequestresponse1711634267\"},\"type\":\"agent_rule\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/remote_config/products/cws/agent_rules" + }, + "response": { + "body": { + "string": "{\"errors\":[\"input_validation_error(Field 'expression' is invalid: rule `testcreateacsmthreatsagentrulereturnsbadrequestresponse1711634267` error: rule compilation error: field `sh` not found)\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Thu, 28 Mar 2024 13:57:47 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-CSM-Threats-Agent-rule-returns-Conflict-response.frozen b/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-CSM-Threats-Agent-rule-returns-Conflict-response.frozen new file mode 100644 index 000000000..2dccd862e --- /dev/null +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-CSM-Threats-Agent-rule-returns-Conflict-response.frozen @@ -0,0 +1 @@ +2024-03-06T09:58:37.695Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-CSM-Threats-Agent-rule-returns-Conflict-response.json b/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-CSM-Threats-Agent-rule-returns-Conflict-response.json new file mode 100644 index 000000000..8663a4078 --- /dev/null +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-CSM-Threats-Agent-rule-returns-Conflict-response.json @@ -0,0 +1,67 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"My Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\",\"name\":\"my_agent_rule\"},\"type\":\"agent_rule\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/remote_config/products/cws/agent_rules" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"8r4-bdz-7ma\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1709719118032,\"creator\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"},\"defaultRule\":false,\"description\":\"My Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\",\"filters\":null,\"name\":\"my_agent_rule\",\"updateDate\":1709719118032,\"updater\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 06 Mar 2024 09:58:37 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/remote_config/products/cws/agent_rules/8r4-bdz-7ma" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 06 Mar 2024 09:58:37 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-CSM-Threats-Agent-rule-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-CSM-Threats-Agent-rule-returns-OK-response.frozen new file mode 100644 index 000000000..5c5d9638b --- /dev/null +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-CSM-Threats-Agent-rule-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-03-28T13:57:48.169Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-CSM-Threats-Agent-rule-returns-OK-response.json b/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-CSM-Threats-Agent-rule-returns-OK-response.json new file mode 100644 index 000000000..2442d5288 --- /dev/null +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-CSM-Threats-Agent-rule-returns-OK-response.json @@ -0,0 +1,67 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"My Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\",\"name\":\"testcreateacsmthreatsagentrulereturnsokresponse1711634268\"},\"type\":\"agent_rule\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/remote_config/products/cws/agent_rules" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"kll-o34-int\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1711634268228,\"creator\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"},\"defaultRule\":false,\"description\":\"My Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"testcreateacsmthreatsagentrulereturnsokresponse1711634268\",\"updateDate\":1711634268228,\"updater\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 28 Mar 2024 13:57:48 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/remote_config/products/cws/agent_rules/kll-o34-int" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 28 Mar 2024 13:57:48 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-Cloud-Workload-Security-Agent-rule-returns-Bad-Request-response.frozen b/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-Cloud-Workload-Security-Agent-rule-returns-Bad-Request-response.frozen index d29761583..e9ee5cb3f 100644 --- a/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-Cloud-Workload-Security-Agent-rule-returns-Bad-Request-response.frozen +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-Cloud-Workload-Security-Agent-rule-returns-Bad-Request-response.frozen @@ -1 +1 @@ -2022-01-11T18:11:35.118Z \ No newline at end of file +2024-03-08T14:19:03.967Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-Cloud-Workload-Security-Agent-rule-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-Cloud-Workload-Security-Agent-rule-returns-Bad-Request-response.json index 28da2301b..ace3b21a1 100644 --- a/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-Cloud-Workload-Security-Agent-rule-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-Cloud-Workload-Security-Agent-rule-returns-Bad-Request-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"description\":\"Test Agent rule\",\"enabled\":true,\"expression\":\"open.file.path = sh\",\"name\":\"testcreateacloudworkloadsecurityagentrulereturnsbadrequestresponse1641924695\"},\"type\":\"agent_rule\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules"}, "response": {"body": {"string": "{\"errors\":[\"input_validation_error(Field 'expression' is invalid: rule `testcreateacloudworkloadsecurityagentrulereturnsbadrequestresponse1641924695` definition error: syntax error: 1:18: unexpected token \\\"sh\\\" (expected \\\"~\\\"))\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Tue, 11 Jan 2022 18:11:35 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"Test Agent rule\",\"enabled\":true,\"expression\":\"open.file.path = sh\",\"name\":\"testcreateacloudworkloadsecurityagentrulereturnsbadrequestresponse1709907543\"},\"type\":\"agent_rule\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules" + }, + "response": { + "body": { + "string": "{\"errors\":[\"input_validation_error(Field 'expression' is invalid: rule `testcreateacloudworkloadsecurityagentrulereturnsbadrequestresponse1709907543` error: syntax error `1:18: unexpected token \\\"sh\\\" (expected \\\"~\\\")`)\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:03 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.frozen index 9c7c5b629..bbb5bba9c 100644 --- a/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.frozen @@ -1 +1 @@ -2022-05-12T09:51:20.359Z \ No newline at end of file +2024-03-08T14:19:04.358Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.json b/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.json index faacaf2d5..6bb05f42c 100644 --- a/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Create-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.json @@ -1 +1,63 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"description\":\"Test Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\",\"name\":\"testcreateacloudworkloadsecurityagentrulereturnsokresponse1652349080\"},\"type\":\"agent_rule\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"testcreateacloudworkloadsecurityagentrulereturnsokresponse1652349080\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"Test Agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1652349080821,\"creationDate\":1652349080821,\"expression\":\"exec.file.name == \\\"sh\\\"\"},\"type\":\"agent_rule\",\"id\":\"qb1-cn9-jwq\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json;charset=utf-8"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:51:20 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules/qb1-cn9-jwq"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["application/json;charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:51:20 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"Test Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\",\"name\":\"testcreateacloudworkloadsecurityagentrulereturnsokresponse1709907544\"},\"type\":\"agent_rule\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"svr-luf-gzy\",\"attributes\":{\"version\":1,\"name\":\"testcreateacloudworkloadsecurityagentrulereturnsokresponse1709907544\",\"description\":\"Test Agent rule\",\"expression\":\"exec.file.name == \\\"sh\\\"\",\"category\":\"Process Activity\",\"creationAuthorUuId\":\"cc32ddea-b5e4-11ec-93be-da7ad0900002\",\"creationDate\":1709907544744,\"updateAuthorUuId\":\"cc32ddea-b5e4-11ec-93be-da7ad0900002\",\"updateDate\":1709907544744,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":false,\"creator\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"},\"updater\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"}},\"type\":\"agent_rule\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:04 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules/svr-luf-gzy" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:04 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Delete-a-CSM-Threats-Agent-rule-returns-Not-Found-response.frozen b/tests/scenarios/cassettes/v2/cloud_workload_security/Delete-a-CSM-Threats-Agent-rule-returns-Not-Found-response.frozen new file mode 100644 index 000000000..2a00f4dad --- /dev/null +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Delete-a-CSM-Threats-Agent-rule-returns-Not-Found-response.frozen @@ -0,0 +1 @@ +2024-03-08T14:19:05.335Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Delete-a-CSM-Threats-Agent-rule-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/cloud_workload_security/Delete-a-CSM-Threats-Agent-rule-returns-Not-Found-response.json new file mode 100644 index 000000000..1bf1f28a0 --- /dev/null +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Delete-a-CSM-Threats-Agent-rule-returns-Not-Found-response.json @@ -0,0 +1,33 @@ +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/remote_config/products/cws/agent_rules/abc-123-xyz" + }, + "response": { + "body": { + "string": "{\"errors\":[{\"title\":\"failed to delete rule\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:05 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Delete-a-CSM-Threats-Agent-rule-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/cloud_workload_security/Delete-a-CSM-Threats-Agent-rule-returns-OK-response.frozen new file mode 100644 index 000000000..9b393995f --- /dev/null +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Delete-a-CSM-Threats-Agent-rule-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-03-08T14:19:05.699Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Delete-a-CSM-Threats-Agent-rule-returns-OK-response.json b/tests/scenarios/cassettes/v2/cloud_workload_security/Delete-a-CSM-Threats-Agent-rule-returns-OK-response.json new file mode 100644 index 000000000..0cc5f41a9 --- /dev/null +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Delete-a-CSM-Threats-Agent-rule-returns-OK-response.json @@ -0,0 +1,95 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"My Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\",\"name\":\"testdeleteacsmthreatsagentrulereturnsokresponse1709907545\"},\"type\":\"agent_rule\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/remote_config/products/cws/agent_rules" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"e19-wln-ypy\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1709907546083,\"creator\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"},\"defaultRule\":false,\"description\":\"My Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"testdeleteacsmthreatsagentrulereturnsokresponse1709907545\",\"updateDate\":1709907546083,\"updater\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:05 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/remote_config/products/cws/agent_rules/e19-wln-ypy" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:05 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/remote_config/products/cws/agent_rules/e19-wln-ypy" + }, + "response": { + "body": { + "string": "{\"errors\":[{\"title\":\"failed to delete rule\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:05 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Delete-a-Cloud-Workload-Security-Agent-rule-returns-Not-Found-response.frozen b/tests/scenarios/cassettes/v2/cloud_workload_security/Delete-a-Cloud-Workload-Security-Agent-rule-returns-Not-Found-response.frozen index 9f8ca51b7..da35a9232 100644 --- a/tests/scenarios/cassettes/v2/cloud_workload_security/Delete-a-Cloud-Workload-Security-Agent-rule-returns-Not-Found-response.frozen +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Delete-a-Cloud-Workload-Security-Agent-rule-returns-Not-Found-response.frozen @@ -1 +1 @@ -2022-05-12T09:51:21.337Z \ No newline at end of file +2024-03-08T14:19:07.580Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Delete-a-Cloud-Workload-Security-Agent-rule-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/cloud_workload_security/Delete-a-Cloud-Workload-Security-Agent-rule-returns-Not-Found-response.json index 7be08ae2e..2b765ea26 100644 --- a/tests/scenarios/cassettes/v2/cloud_workload_security/Delete-a-Cloud-Workload-Security-Agent-rule-returns-Not-Found-response.json +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Delete-a-Cloud-Workload-Security-Agent-rule-returns-Not-Found-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules/abc-123-xyz"}, "response": {"body": {"string": "{\"errors\":[\"not_found(Agent rule not found: agentRuleId=abc-123-xyz)\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 12 May 2022 09:51:21 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules/abc-123-xyz" + }, + "response": { + "body": { + "string": "{\"errors\":[\"not_found(Agent rule not found: agentRuleId=abc-123-xyz)\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:07 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Delete-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/cloud_workload_security/Delete-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.frozen index c0bf1eb51..7aaa4d936 100644 --- a/tests/scenarios/cassettes/v2/cloud_workload_security/Delete-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Delete-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.frozen @@ -1 +1 @@ -2022-05-12T09:51:21.769Z \ No newline at end of file +2024-03-08T14:19:07.919Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Delete-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.json b/tests/scenarios/cassettes/v2/cloud_workload_security/Delete-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.json index e29c10975..a01848295 100644 --- a/tests/scenarios/cassettes/v2/cloud_workload_security/Delete-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Delete-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"description\":\"My Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\",\"name\":\"testdeleteacloudworkloadsecurityagentrulereturnsokresponse1652349081\"},\"type\":\"agent_rule\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"testdeleteacloudworkloadsecurityagentrulereturnsokresponse1652349081\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"My Agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1652349082186,\"creationDate\":1652349082186,\"expression\":\"exec.file.name == \\\"sh\\\"\"},\"type\":\"agent_rule\",\"id\":\"hqy-ez4-nci\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json;charset=utf-8"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:51:21 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules/hqy-ez4-nci"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["application/json;charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:51:21 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules/hqy-ez4-nci"}, "response": {"body": {"string": "{\"errors\":[\"not_found(Agent rule not found: agentRuleId=hqy-ez4-nci)\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 12 May 2022 09:51:21 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"My Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\",\"name\":\"testdeleteacloudworkloadsecurityagentrulereturnsokresponse1709907547\"},\"type\":\"agent_rule\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"bo0-5k6-vtc\",\"attributes\":{\"version\":1,\"name\":\"testdeleteacloudworkloadsecurityagentrulereturnsokresponse1709907547\",\"description\":\"My Agent rule\",\"expression\":\"exec.file.name == \\\"sh\\\"\",\"category\":\"Process Activity\",\"creationAuthorUuId\":\"cc32ddea-b5e4-11ec-93be-da7ad0900002\",\"creationDate\":1709907548216,\"updateAuthorUuId\":\"cc32ddea-b5e4-11ec-93be-da7ad0900002\",\"updateDate\":1709907548216,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":false,\"creator\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"},\"updater\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"}},\"type\":\"agent_rule\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:07 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules/bo0-5k6-vtc" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:07 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules/bo0-5k6-vtc" + }, + "response": { + "body": { + "string": "{\"errors\":[\"not_found(Agent rule not found: agentRuleId=bo0-5k6-vtc)\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:07 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Get-a-CSM-Threats-Agent-rule-returns-Not-Found-response.frozen b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-a-CSM-Threats-Agent-rule-returns-Not-Found-response.frozen new file mode 100644 index 000000000..fa6ab0bcc --- /dev/null +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-a-CSM-Threats-Agent-rule-returns-Not-Found-response.frozen @@ -0,0 +1 @@ +2024-03-08T14:19:09.189Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Get-a-CSM-Threats-Agent-rule-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-a-CSM-Threats-Agent-rule-returns-Not-Found-response.json new file mode 100644 index 000000000..a76f2cafc --- /dev/null +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-a-CSM-Threats-Agent-rule-returns-Not-Found-response.json @@ -0,0 +1,33 @@ +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/remote_config/products/cws/agent_rules/abc-123-xyz" + }, + "response": { + "body": { + "string": "{\"errors\":[{\"title\":\"failed to get rule\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:09 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Get-a-CSM-Threats-Agent-rule-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-a-CSM-Threats-Agent-rule-returns-OK-response.frozen new file mode 100644 index 000000000..6a658aeb9 --- /dev/null +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-a-CSM-Threats-Agent-rule-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-03-08T14:19:09.586Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Get-a-CSM-Threats-Agent-rule-returns-OK-response.json b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-a-CSM-Threats-Agent-rule-returns-OK-response.json new file mode 100644 index 000000000..37f5dee29 --- /dev/null +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-a-CSM-Threats-Agent-rule-returns-OK-response.json @@ -0,0 +1,95 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"My Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\",\"name\":\"testgetacsmthreatsagentrulereturnsokresponse1709907549\"},\"type\":\"agent_rule\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/remote_config/products/cws/agent_rules" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"hod-pqw-spq\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1709907549922,\"creator\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"},\"defaultRule\":false,\"description\":\"My Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"testgetacsmthreatsagentrulereturnsokresponse1709907549\",\"updateDate\":1709907549922,\"updater\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:09 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/remote_config/products/cws/agent_rules/hod-pqw-spq" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"hod-pqw-spq\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1709907549000,\"creator\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"},\"defaultRule\":false,\"description\":\"My Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"testgetacsmthreatsagentrulereturnsokresponse1709907549\",\"updateDate\":1709907549000,\"updater\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:09 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/remote_config/products/cws/agent_rules/hod-pqw-spq" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:09 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Get-a-Cloud-Workload-Security-Agent-rule-returns-Not-Found-response.frozen b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-a-Cloud-Workload-Security-Agent-rule-returns-Not-Found-response.frozen index 712680a66..723e55f42 100644 --- a/tests/scenarios/cassettes/v2/cloud_workload_security/Get-a-Cloud-Workload-Security-Agent-rule-returns-Not-Found-response.frozen +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-a-Cloud-Workload-Security-Agent-rule-returns-Not-Found-response.frozen @@ -1 +1 @@ -2022-01-11T18:11:38.248Z \ No newline at end of file +2024-03-08T14:19:11.425Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Get-a-Cloud-Workload-Security-Agent-rule-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-a-Cloud-Workload-Security-Agent-rule-returns-Not-Found-response.json index 4e2a9d9cd..db9269168 100644 --- a/tests/scenarios/cassettes/v2/cloud_workload_security/Get-a-Cloud-Workload-Security-Agent-rule-returns-Not-Found-response.json +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-a-Cloud-Workload-Security-Agent-rule-returns-Not-Found-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules/abc-123-xyz"}, "response": {"body": {"string": "{\"errors\":[\"not_found(Agent rule not found: agentRuleId=abc-123-xyz)\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Tue, 11 Jan 2022 18:11:38 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules/abc-123-xyz" + }, + "response": { + "body": { + "string": "{\"errors\":[\"not_found(Agent rule not found: agentRuleId=abc-123-xyz)\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:11 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Get-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.frozen index e73f1c14f..fc05df647 100644 --- a/tests/scenarios/cassettes/v2/cloud_workload_security/Get-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.frozen @@ -1 +1 @@ -2022-05-12T09:51:23.120Z \ No newline at end of file +2024-03-08T14:19:11.763Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Get-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.json b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.json index 9489c569f..624868efd 100644 --- a/tests/scenarios/cassettes/v2/cloud_workload_security/Get-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"description\":\"My Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\",\"name\":\"testgetacloudworkloadsecurityagentrulereturnsokresponse1652349083\"},\"type\":\"agent_rule\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"testgetacloudworkloadsecurityagentrulereturnsokresponse1652349083\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"My Agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1652349083546,\"creationDate\":1652349083546,\"expression\":\"exec.file.name == \\\"sh\\\"\"},\"type\":\"agent_rule\",\"id\":\"xnm-bjf-tfb\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json;charset=utf-8"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:51:23 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules/xnm-bjf-tfb"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"testgetacloudworkloadsecurityagentrulereturnsokresponse1652349083\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"My Agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1652349083546,\"creationDate\":1652349083546,\"expression\":\"exec.file.name == \\\"sh\\\"\"},\"type\":\"agent_rule\",\"id\":\"xnm-bjf-tfb\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json;charset=utf-8"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:51:23 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules/xnm-bjf-tfb"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["application/json;charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:51:23 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"My Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\",\"name\":\"testgetacloudworkloadsecurityagentrulereturnsokresponse1709907551\"},\"type\":\"agent_rule\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"ynn-umb-rss\",\"attributes\":{\"version\":1,\"name\":\"testgetacloudworkloadsecurityagentrulereturnsokresponse1709907551\",\"description\":\"My Agent rule\",\"expression\":\"exec.file.name == \\\"sh\\\"\",\"category\":\"Process Activity\",\"creationAuthorUuId\":\"cc32ddea-b5e4-11ec-93be-da7ad0900002\",\"creationDate\":1709907552061,\"updateAuthorUuId\":\"cc32ddea-b5e4-11ec-93be-da7ad0900002\",\"updateDate\":1709907552061,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":false,\"creator\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"},\"updater\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"}},\"type\":\"agent_rule\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:11 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules/ynn-umb-rss" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"ynn-umb-rss\",\"attributes\":{\"version\":1,\"name\":\"testgetacloudworkloadsecurityagentrulereturnsokresponse1709907551\",\"description\":\"My Agent rule\",\"expression\":\"exec.file.name == \\\"sh\\\"\",\"category\":\"Process Activity\",\"creationAuthorUuId\":\"cc32ddea-b5e4-11ec-93be-da7ad0900002\",\"creationDate\":1709907552061,\"updateAuthorUuId\":\"cc32ddea-b5e4-11ec-93be-da7ad0900002\",\"updateDate\":1709907552061,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":false,\"creator\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"},\"updater\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"}},\"type\":\"agent_rule\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:11 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules/ynn-umb-rss" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:11 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Get-all-CSM-Threats-Agent-rules-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-all-CSM-Threats-Agent-rules-returns-OK-response.frozen new file mode 100644 index 000000000..38810c62a --- /dev/null +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-all-CSM-Threats-Agent-rules-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-03-08T14:19:12.809Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Get-all-CSM-Threats-Agent-rules-returns-OK-response.json b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-all-CSM-Threats-Agent-rules-returns-OK-response.json new file mode 100644 index 000000000..01f04d80a --- /dev/null +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-all-CSM-Threats-Agent-rules-returns-OK-response.json @@ -0,0 +1,33 @@ +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/remote_config/products/cws/agent_rules" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"cwq-z6j-igp\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Kernel Activity\",\"creationDate\":1691743022000,\"creator\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"},\"defaultRule\":false,\"description\":\"Unauthorized network access by deno runtime\",\"enabled\":true,\"expression\":\"bind.addr.family\\u003e=0 \\u0026\\u0026 process.comm==\\\"deno\\\" \\u0026\\u0026 process.args not in [r\\\".*(allow-net|allow-ffi|-A|allow-all).*\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"Deno_unauthorized_network_access_performed\",\"updateDate\":1698239523000,\"updater\":{\"name\":\"Juvenal Araujo\",\"handle\":\"juvenal.araujo@datadoghq.com\"}}},{\"id\":\"lsi-6pb-7th\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1691743022000,\"creator\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"},\"defaultRule\":false,\"description\":\"Unauthorized filesystem read by deno runtime\",\"enabled\":false,\"expression\":\"process.comm==\\\"deno\\\" \\u0026\\u0026 open.flags==524288 \\u0026\\u0026 open.file.name not in process.argv \\u0026\\u0026 process.args not in [r\\\".*(allow-read|-A|allow-all).*\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"Deno_unauthorized_read_executed\",\"updateDate\":1698237510000,\"updater\":{\"name\":\"Juvenal Araujo\",\"handle\":\"juvenal.araujo@datadoghq.com\"}}},{\"id\":\"mal-nic-u3y\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1691743022000,\"creator\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"},\"defaultRule\":false,\"description\":\"Unauthorized subprocess created by deno runtime\",\"enabled\":true,\"expression\":\"exec.comm !=\\\"\\\" \\u0026\\u0026 process.ancestors.comm==\\\"deno\\\" \\u0026\\u0026 process.ancestors.args not in [r\\\".*(allow-run|-A|allow-all).*\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"Deno_unauthorized_subprocess_created\",\"updateDate\":1698239525000,\"updater\":{\"name\":\"Juvenal Araujo\",\"handle\":\"juvenal.araujo@datadoghq.com\"}}},{\"id\":\"q17-vsb-c4k\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1691743022000,\"creator\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"},\"defaultRule\":false,\"description\":\"Unauthorized filesystem write by deno runtime\",\"enabled\":false,\"expression\":\"process.comm==\\\"deno\\\" \\u0026\\u0026 open.flags \\u00261==1 \\u0026\\u0026 process.args not in [r\\\".*(allow-write|-A|allow-all).*\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"Deno_unauthorized_write_executed\",\"updateDate\":1698237513000,\"updater\":{\"name\":\"Juvenal Araujo\",\"handle\":\"juvenal.araujo@datadoghq.com\"}}},{\"id\":\"qp4-oog-vwu\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1682687626000,\"creator\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"},\"defaultRule\":false,\"description\":\"A shell command was executed from a JupyterHub code cell\",\"enabled\":true,\"expression\":\"exec.file.path == \\\"/usr/bin/bash\\\" \\u0026\\u0026 process.ancestors.comm == \\\"jupyterhub-sing\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"jupyterhub_shell\",\"updateDate\":1698238456000,\"updater\":{\"name\":\"Juvenal Araujo\",\"handle\":\"juvenal.araujo@datadoghq.com\"}}},{\"id\":\"doi-13m-kzx\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1688462439000,\"creator\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"},\"defaultRule\":false,\"description\":\"Kubernetes offensive tool executed\",\"enabled\":true,\"expression\":\"(exec.file.name in [ ~\\\"python*\\\" ] \\u0026\\u0026 (\\\"KubiScan.py\\\" in exec.argv || \\\"kubestriker\\\" in exec.argv )) || exec.file.name in [\\\"kubiscan\\\",\\\"kdigger\\\",\\\"kube-hunter\\\",\\\"rakkess\\\",\\\"peirates\\\",\\\"kubescape\\\",\\\"kubeaudit\\\",\\\"kube-linter\\\",\\\"stratus\\\",~\\\"botb-*\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"kubernetes_offensive_tool_executed\",\"updateDate\":1698238459000,\"updater\":{\"name\":\"Juvenal Araujo\",\"handle\":\"juvenal.araujo@datadoghq.com\"}}},{\"id\":\"p24-io5-dv2\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1702898544000,\"creator\":{\"name\":\"Ahmed Mkadem\",\"handle\":\"ahmed.mkadem@datadoghq.com\"},\"defaultRule\":false,\"description\":\"iptables used to allow egress traffic\",\"enabled\":true,\"expression\":\"exec.comm == \\\"iptables\\\" \\u0026\\u0026 process.args in [r\\\".*OUTPUT.*((25[0-5]|(2[0-4]|1\\\\d|[1-9]|)\\\\d)\\\\.?\\\\b){4}.*ACCEPT\\\"] \\u0026\\u0026 process.args not in [r\\\"(127\\\\.)|(10\\\\.)|(172\\\\.1[6-9]\\\\.)|(172\\\\.2[0-9]\\\\.)|(^172\\\\.3[0-1]\\\\.)|(192\\\\.168\\\\.)|(169\\\\.254\\\\.)\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"tde_malware_egress_traffic_allowed_iptables\",\"updateDate\":1702898544000,\"updater\":{\"name\":\"Ahmed Mkadem\",\"handle\":\"ahmed.mkadem@datadoghq.com\"}}},{\"id\":\"wy7-3ug-3k7\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1702898570000,\"creator\":{\"name\":\"Ahmed Mkadem\",\"handle\":\"ahmed.mkadem@datadoghq.com\"},\"defaultRule\":false,\"description\":\"Multiple files with extensions created under common user directories\",\"enabled\":true,\"expression\":\"rename.file.path in [~\\\"/home/**\\\", ~\\\"/root/**\\\", ~\\\"/bin/**\\\", ~\\\"/usr/bin/**\\\", ~\\\"/var/log/**\\\", ~\\\"/var/lib/log/**\\\", ~\\\"/var/backup/*\\\", ~\\\"/var/www/**\\\"] \\u0026\\u0026 rename.file.destination.name in [r\\\"\\\\.[0-9a-z]+$\\\"] \\u0026\\u0026 rename.file.destination.name not in [r\\\".*\\\\.(lock|dbtmp|log|journal|ini|sh|json|yml|tmp|snap|txt|pyc|stat|hcl|[0-9])+$\\\"] \\u0026\\u0026 process.comm not in [\\\"python\\\",\\\"python3\\\",\\\"agent\\\",\\\"security-agent\\\",\\\"kubectl\\\",\\\"kubelet\\\",\\\"datadog-cluster\\\",\\\"postgres\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"tde_malware_files_with_extensions_created\",\"updateDate\":1703590999000,\"updater\":{\"name\":\"Ahmed Mkadem\",\"handle\":\"ahmed.mkadem@datadoghq.com\"}}},{\"id\":\"s7a-oly-ndz\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Kernel Activity\",\"creationDate\":1702898596000,\"creator\":{\"name\":\"Ahmed Mkadem\",\"handle\":\"ahmed.mkadem@datadoghq.com\"},\"defaultRule\":false,\"description\":\"Kernel module loaded from common tmp directories\",\"enabled\":true,\"expression\":\"load_module.file.path in [ ~\\\"/tmp/**\\\", ~\\\"/var/tmp/**\\\" ]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"tde_malware_kernel_module_loaded_from_tmp\",\"updateDate\":1702898596000,\"updater\":{\"name\":\"Ahmed Mkadem\",\"handle\":\"ahmed.mkadem@datadoghq.com\"}}},{\"id\":\"wvn-ega-hae\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Kernel Activity\",\"creationDate\":1702898618000,\"creator\":{\"name\":\"Ahmed Mkadem\",\"handle\":\"ahmed.mkadem@datadoghq.com\"},\"defaultRule\":false,\"description\":\"Libpam.so library hooked using ebpf\",\"enabled\":true,\"expression\":\"bpf.cmd == BPF_MAP_CREATE \\u0026\\u0026 process.args in [r\\\".*libpam.so.*\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"tde_malware_libpam_hooked_using_ebpf\",\"updateDate\":1702898618000,\"updater\":{\"name\":\"Ahmed Mkadem\",\"handle\":\"ahmed.mkadem@datadoghq.com\"}}},{\"id\":\"aie-5ua-pqh\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Kernel Activity\",\"creationDate\":1702898642000,\"creator\":{\"name\":\"Ahmed Mkadem\",\"handle\":\"ahmed.mkadem@datadoghq.com\"},\"defaultRule\":false,\"description\":\"A process is tracing privileged processes or sshd for possible credential dumping\",\"enabled\":true,\"expression\":\"((ptrace.tracee.euid==0 \\u0026\\u0026 ptrace.tracee.uid ==0)||ptrace.tracee.comm in [~\\\"*sshd*\\\"]) \\u0026\\u0026 process.comm not in [\\\"dlv\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"tde_malware_privileged_processes_or_sshd_traced\",\"updateDate\":1702898642000,\"updater\":{\"name\":\"Ahmed Mkadem\",\"handle\":\"ahmed.mkadem@datadoghq.com\"}}},{\"id\":\"46g-4uu-8q2\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1702898821000,\"creator\":{\"name\":\"Ahmed Mkadem\",\"handle\":\"ahmed.mkadem@datadoghq.com\"},\"defaultRule\":false,\"description\":\"Proxychaining technique used\",\"enabled\":true,\"expression\":\"exec.comm == \\\"proxychains\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"tde_malware_proxychains_executed\",\"updateDate\":1702898821000,\"updater\":{\"name\":\"Ahmed Mkadem\",\"handle\":\"ahmed.mkadem@datadoghq.com\"}}},{\"id\":\"yyy-5go-xpw\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1702898856000,\"creator\":{\"name\":\"Ahmed Mkadem\",\"handle\":\"ahmed.mkadem@datadoghq.com\"},\"defaultRule\":false,\"description\":\"A possible ransomware note created under common user directories\",\"enabled\":true,\"expression\":\"open.file.path in [~\\\"/home/**\\\", ~\\\"/root/**\\\", ~\\\"/bin/**\\\", ~\\\"/usr/bin/**\\\", ~\\\"/opt/**\\\", ~\\\"/etc/**\\\", ~\\\"/var/log/**\\\", ~\\\"/var/lib/log/**\\\", ~\\\"/var/backup/**\\\", ~\\\"/var/www/**\\\"] \\u0026\\u0026 open.file.name in [r\\\".*(restore|recovery|readme|instruction|how_to|ransom).*\\\", r\\\".*(your_|crypt|lock|important).*\\\\.txt$\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"tde_malware_ransomware_notes_written\",\"updateDate\":1709907009000,\"updater\":{\"name\":\"Ahmed Mkadem\",\"handle\":\"ahmed.mkadem@datadoghq.com\"}}},{\"id\":\"vdn-l8j-9h1\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1702898880000,\"creator\":{\"name\":\"Ahmed Mkadem\",\"handle\":\"ahmed.mkadem@datadoghq.com\"},\"defaultRule\":false,\"description\":\"A process deleted common system log files\",\"enabled\":true,\"expression\":\"unlink.file.path in [\\\"/var/run/utmp\\\", \\\"/var/log/wtmp\\\", \\\"/var/log/btmp\\\", \\\"/var/log/lastlog\\\", \\\"/var/log/faillog\\\", \\\"/var/log/syslog\\\", \\\"/var/log/messages\\\", \\\"/var/log/secure\\\", \\\"/var/log/auth.log\\\", \\\"/var/log/boot.log\\\", \\\"/var/log/kern.log\\\"] \\u0026\\u0026 process.comm !=\\\"dockerd\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"tde_malware_system_logs_deleted\",\"updateDate\":1702898880000,\"updater\":{\"name\":\"Ahmed Mkadem\",\"handle\":\"ahmed.mkadem@datadoghq.com\"}}},{\"id\":\"ofh-ne6-jcq\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1702898912000,\"creator\":{\"name\":\"Ahmed Mkadem\",\"handle\":\"ahmed.mkadem@datadoghq.com\"},\"defaultRule\":false,\"description\":\"Tunneling and port forwarding tool used\",\"enabled\":true,\"expression\":\"((exec.comm == \\\"pivotnacci\\\" || exec.comm == \\\"gost\\\") \\u0026\\u0026 process.args in [r\\\".*(-L|-C|-R).*\\\"])||(exec.comm in [\\\"ssh\\\", \\\"sshd\\\"] \\u0026\\u0026 process.args in [r\\\".*(-R|-L|-D|w).*\\\"] \\u0026\\u0026 process.args in [r\\\"((25[0-5]|(2[0-4]|1\\\\d|[1-9])\\\\d)\\\\.?\\\\b){4}\\\"] ) || (exec.comm == \\\"sshuttle\\\" \\u0026\\u0026 process.args in [r\\\".*(-r|--remote|-l|--listen).*\\\"]) || (exec.comm == \\\"socat\\\" \\u0026\\u0026 process.args in [r\\\".*(TCP4-LISTEN:|SOCKS).*\\\"]) || (exec.comm in [\\\"iodine\\\", \\\"iodined\\\", \\\"dnscat\\\", \\\"hans\\\", \\\"hans-ubuntu\\\", \\\"ptunnel-ng\\\", \\\"ssf\\\", \\\"3proxy\\\", \\\"ngrok\\\"] \\u0026\\u0026 process.parent.comm in [\\\"bash\\\", \\\"dash\\\", \\\"ash\\\", \\\"sh\\\", \\\"tcsh\\\", \\\"csh\\\", \\\"zsh\\\", \\\"ksh\\\", \\\"fish\\\"])\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"tde_malware_tunneling_and_port_forwarding_technique_used\",\"updateDate\":1702898912000,\"updater\":{\"name\":\"Ahmed Mkadem\",\"handle\":\"ahmed.mkadem@datadoghq.com\"}}},{\"id\":\"7nc-c8z-od7\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707330428000,\"creator\":{\"name\":\"Juvenal Araujo\",\"handle\":\"juvenal.araujo@datadoghq.com\"},\"defaultRule\":false,\"description\":\"nsenter used in container to execute code on the OS PID1\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"nsenter\\\" \\u0026\\u0026 exec.args_options in [\\\"target=1\\\", \\\"t=1\\\"] \\u0026\\u0026 container.id !=\\\"\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"tde_nsenter_pid1_detection\",\"updateDate\":1707330428000,\"updater\":{\"name\":\"Juvenal Araujo\",\"handle\":\"juvenal.araujo@datadoghq.com\"}}},{\"id\":\"vui-e82-jrw\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Network Activity\",\"creationDate\":1705501135000,\"creator\":{\"name\":\"Ahmed Mkadem\",\"handle\":\"ahmed.mkadem@datadoghq.com\"},\"defaultRule\":false,\"description\":\"Connection to red team domain\",\"enabled\":true,\"expression\":\"dns.question.name in [~\\\"*.interact.sh\\\" , ~\\\"*.oast.pro\\\" , ~\\\"*.oast.live\\\" , ~\\\"*.oast.site\\\" , ~\\\"*.oast.online\\\" , ~\\\"*.oast.fun\\\" , ~\\\"*.oast.me\\\" , ~\\\"*.burpcollaborator.net\\\" , ~\\\"*.oastify.com\\\" , ~\\\"*canarytokens.com\\\" , ~\\\"*.requestbin.net\\\" , ~\\\"*.dnslog.cn\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"tde_red_team_domains_used\",\"updateDate\":1705501135000,\"updater\":{\"name\":\"Ahmed Mkadem\",\"handle\":\"ahmed.mkadem@datadoghq.com\"}}},{\"id\":\"7ts-208-rn4\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"An AppArmor profile was modified in an interactive session\",\"enabled\":true,\"expression\":\"exec.file.name in [\\\"aa-disable\\\", \\\"aa-complain\\\", \\\"aa-audit\\\"] \\u0026\\u0026 exec.tty_name !=\\\"\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"apparmor_modified_tty\",\"updateDate\":1708708314000,\"updater\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"}}},{\"id\":\"def-000-7m7\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"The auditctl command was used to modify auditd\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"auditctl\\\" \\u0026\\u0026 exec.args_flags not in [\\\"s\\\", \\\"l\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"auditctl_usage\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-ly8\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"The auditd configuration file was modified without using auditctl\",\"enabled\":true,\"expression\":\"open.file.path == \\\"/etc/audit/auditd.conf\\\" \\u0026\\u0026 open.flags \\u0026 (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) \\u003e 0 \\u0026\\u0026 process.file.name != \\\"auditctl\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"auditd_config_modified\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-ehx\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"The auditd rules file was modified without using auditctl\",\"enabled\":true,\"expression\":\"open.file.path in [\\\"/etc/audit/rules.d/audit.rules\\\", \\\"/etc/audit/audit.rules\\\"] \\u0026\\u0026 open.flags \\u0026 (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) \\u003e 0 \\u0026\\u0026 process.file.name != \\\"auditctl\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"auditd_rule_file_modified\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"9f3-haw-91q\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"The AWS EKS service account token was accessed\",\"enabled\":true,\"expression\":\"open.file.path =~ \\\"/var/run/secrets/eks.amazonaws.com/serviceaccount/**\\\" \\u0026\\u0026 open.file.name == \\\"token\\\" \\u0026\\u0026 process.file.path not in [\\\"/opt/datadog-agent/embedded/bin/agent\\\", \\\"/opt/datadog-agent/embedded/bin/system-probe\\\", \\\"/opt/datadog-agent/embedded/bin/security-agent\\\", \\\"/opt/datadog-agent/embedded/bin/process-agent\\\", \\\"/opt/datadog-agent/bin/agent/agent\\\", \\\"/opt/datadog/apm/inject/auto_inject_runc\\\", \\\"/usr/bin/dd-host-install\\\", \\\"/usr/bin/dd-host-container-install\\\", \\\"/usr/bin/dd-container-install\\\", \\\"/opt/datadog-agent/bin/datadog-cluster-agent\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"aws_eks_service_account_token_accessed\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"wgv-wsb-pse\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"An AWS IMDS was called via a network utility\",\"enabled\":true,\"expression\":\"exec.comm in [\\\"wget\\\", \\\"curl\\\", \\\"lwp-download\\\"] \\u0026\\u0026 exec.args in [~\\\"*169.254.169.254/latest/meta-data/iam/security-credentials/*\\\", \\\"*169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\\\", ~\\\"*169.254.170.2/*/credentials?id=*\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"aws_imds\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"c2g-31u-jpk\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"An Azure IMDS was called via a network utility\",\"enabled\":true,\"expression\":\"exec.comm in [\\\"wget\\\", \\\"curl\\\", \\\"lwp-download\\\"] \\u0026\\u0026 exec.args in [~\\\"*169.254.169.254/metadata/identity/oauth2/token?api-version=*\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"azure_imds\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-a41\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"The base64 command was used to decode information\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"base64\\\" \\u0026\\u0026 exec.args_flags in [\\\"d\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"base64_decode\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-4tl\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Certutil was executed to transmit or decode a potentially malicious file\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"certutil.exe\\\" \\u0026\\u0026 ((exec.cmdline =~ \\\"*urlcache*\\\" \\u0026\\u0026 exec.cmdline =~ \\\"*split*\\\") || exec.cmdline =~ \\\"*decode*\\\")\",\"filters\":[\"os == \\\"windows\\\"\"],\"name\":\"certutil_usage\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-nin\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Network Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A newly created file contacted a chatroom domain\",\"enabled\":true,\"expression\":\"dns.question.name in [\\\"discord.com\\\", \\\"api.telegram.org\\\", \\\"cdn.discordapp.com\\\"] \\u0026\\u0026 process.file.in_upper_layer \\u0026\\u0026 process.file.change_time \\u003c 60s\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"chatroom_request\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"647-nlb-uld\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A network utility (nmap) commonly used in intrusion attacks was executed\",\"enabled\":true,\"expression\":\"exec.file.name in [\\\"nmap\\\", \\\"masscan\\\", \\\"fping\\\", \\\"zgrab\\\", \\\"zgrab2\\\", \\\"rustscan\\\", \\\"pnscan\\\"] \\u0026\\u0026 exec.args_flags not in [\\\"V\\\", \\\"version\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"common_net_intrusion_util\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"smg-le8-msf\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A compiler wrote a suspicious file in a container\",\"enabled\":true,\"expression\":\"open.flags \\u0026 O_CREAT \\u003e 0\\n\\u0026\\u0026 (\\n (open.file.path =~ \\\"/tmp/**\\\" \\u0026\\u0026 open.file.name in [~\\\"*.ko\\\", ~\\\".*\\\"])\\n || open.file.path in [~\\\"/var/tmp/**\\\", ~\\\"/dev/shm/**\\\", ~\\\"/root/**\\\", ~\\\"*/bin/*\\\", ~\\\"/usr/local/lib/**\\\"]\\n)\\n\\u0026\\u0026 (process.comm in [\\\"javac\\\", \\\"clang\\\", \\\"gcc\\\",\\\"bcc\\\"] || process.ancestors.comm in [\\\"javac\\\", \\\"clang\\\", \\\"gcc\\\",\\\"bcc\\\"])\\n\\u0026\\u0026 process.file.name not in [\\\"pip\\\", ~\\\"python*\\\"]\\n\\u0026\\u0026 container.id != \\\"\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"compile_after_delivery\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"ehh-ypb-9pl\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A compiler was executed inside of a container\",\"enabled\":true,\"expression\":\"(exec.file.name in [\\\"javac\\\", \\\"clang\\\", \\\"gcc\\\",\\\"bcc\\\"] || (exec.file.name == \\\"go\\\" \\u0026\\u0026 exec.args in [~\\\"*build*\\\", ~\\\"*run*\\\"])) \\u0026\\u0026 container.id !=\\\"\\\" \\u0026\\u0026 process.ancestors.file.path != \\\"/usr/bin/cilium-agent\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"compiler_in_container\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-u7b\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Known offensive tool crackmap exec executed\",\"enabled\":true,\"expression\":\"exec.cmdline in [~\\\"*crackmapexec*\\\", ~\\\"*cme*\\\"]\",\"filters\":[\"os == \\\"windows\\\"\"],\"name\":\"crackmap_exec_executed\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"s9m-foq-qqz\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Sensitive credential files were modified using a non-standard tool\",\"enabled\":true,\"expression\":\"(\\n (chmod.file.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ])\\n \\u0026\\u0026 process.file.path not in [ \\\"/sbin/vipw\\\", \\\"/usr/sbin/vipw\\\", \\\"/sbin/vigr\\\", \\\"/usr/sbin/vigr\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/local/bin/dockerd\\\", \\\"/usr/sbin/groupadd\\\", \\\"/usr/sbin/useradd\\\", \\\"/usr/sbin/usermod\\\", \\\"/usr/sbin/userdel\\\", \\\"/usr/bin/gpasswd\\\", \\\"/usr/bin/chage\\\", \\\"/usr/sbin/chpasswd\\\", \\\"/usr/bin/passwd\\\" ]\\n \\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n) \\u0026\\u0026 chmod.file.destination.mode != chmod.file.mode\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"credential_modified_chmod\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"td2-31c-ln4\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Sensitive credential files were modified using a non-standard tool\",\"enabled\":true,\"expression\":\"(\\n (chown.file.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ])\\n \\u0026\\u0026 process.file.path not in [ \\\"/sbin/vipw\\\", \\\"/usr/sbin/vipw\\\", \\\"/sbin/vigr\\\", \\\"/usr/sbin/vigr\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/local/bin/dockerd\\\", \\\"/usr/sbin/groupadd\\\", \\\"/usr/sbin/useradd\\\", \\\"/usr/sbin/usermod\\\", \\\"/usr/sbin/userdel\\\", \\\"/usr/bin/gpasswd\\\", \\\"/usr/bin/chage\\\", \\\"/usr/sbin/chpasswd\\\", \\\"/usr/bin/passwd\\\" ]\\n \\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n) \\u0026\\u0026 (chown.file.destination.uid != chown.file.uid || chown.file.destination.gid != chown.file.gid)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"credential_modified_chown\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"lli-czr-q4y\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Sensitive credential files were modified using a non-standard tool\",\"enabled\":true,\"expression\":\"(\\n (link.file.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ]\\n || link.file.destination.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ])\\n \\u0026\\u0026 process.file.path not in [ \\\"/sbin/vipw\\\", \\\"/usr/sbin/vipw\\\", \\\"/sbin/vigr\\\", \\\"/usr/sbin/vigr\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/local/bin/dockerd\\\", \\\"/usr/sbin/groupadd\\\", \\\"/usr/sbin/useradd\\\", \\\"/usr/sbin/usermod\\\", \\\"/usr/sbin/userdel\\\", \\\"/usr/bin/gpasswd\\\", \\\"/usr/bin/chage\\\", \\\"/usr/sbin/chpasswd\\\", \\\"/usr/bin/passwd\\\" ]\\n \\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"credential_modified_link\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-3b9\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Sensitive credential files were modified using a non-standard tool\",\"enabled\":true,\"expression\":\"(\\n open.flags \\u0026 ((O_CREAT|O_RDWR|O_WRONLY|O_TRUNC)) \\u003e 0 \\u0026\\u0026\\n (open.file.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ])\\n \\u0026\\u0026 process.file.path not in [ \\\"/sbin/vipw\\\", \\\"/usr/sbin/vipw\\\", \\\"/sbin/vigr\\\", \\\"/usr/sbin/vigr\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/local/bin/dockerd\\\", \\\"/usr/sbin/groupadd\\\", \\\"/usr/sbin/useradd\\\", \\\"/usr/sbin/usermod\\\", \\\"/usr/sbin/userdel\\\", \\\"/usr/bin/gpasswd\\\", \\\"/usr/bin/chage\\\", \\\"/usr/sbin/chpasswd\\\", \\\"/usr/bin/passwd\\\" ]\\n \\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n) \\u0026\\u0026 container.created_at \\u003e 90s\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"credential_modified_open_v2\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"0yj-grp-cmx\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Sensitive credential files were modified using a non-standard tool\",\"enabled\":true,\"expression\":\"(\\n (rename.file.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ]\\n || rename.file.destination.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ])\\n \\u0026\\u0026 process.file.path not in [ \\\"/sbin/vipw\\\", \\\"/usr/sbin/vipw\\\", \\\"/sbin/vigr\\\", \\\"/usr/sbin/vigr\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/local/bin/dockerd\\\", \\\"/usr/sbin/groupadd\\\", \\\"/usr/sbin/useradd\\\", \\\"/usr/sbin/usermod\\\", \\\"/usr/sbin/userdel\\\", \\\"/usr/bin/gpasswd\\\", \\\"/usr/bin/chage\\\", \\\"/usr/sbin/chpasswd\\\", \\\"/usr/bin/passwd\\\" ]\\n \\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"credential_modified_rename\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"q08-c9l-rsp\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Sensitive credential files were modified using a non-standard tool\",\"enabled\":true,\"expression\":\"(\\n (unlink.file.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ])\\n \\u0026\\u0026 process.file.path not in [ \\\"/sbin/vipw\\\", \\\"/usr/sbin/vipw\\\", \\\"/sbin/vigr\\\", \\\"/usr/sbin/vigr\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/local/bin/dockerd\\\", \\\"/usr/sbin/groupadd\\\", \\\"/usr/sbin/useradd\\\", \\\"/usr/sbin/usermod\\\", \\\"/usr/sbin/userdel\\\", \\\"/usr/bin/gpasswd\\\", \\\"/usr/bin/chage\\\", \\\"/usr/sbin/chpasswd\\\", \\\"/usr/bin/passwd\\\" ]\\n \\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"credential_modified_unlink\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"kv9-026-vhz\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Sensitive credential files were modified using a non-standard tool\",\"enabled\":true,\"expression\":\"(\\n (utimes.file.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ])\\n \\u0026\\u0026 process.file.path not in [ \\\"/sbin/vipw\\\", \\\"/usr/sbin/vipw\\\", \\\"/sbin/vigr\\\", \\\"/usr/sbin/vigr\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/local/bin/dockerd\\\", \\\"/usr/sbin/groupadd\\\", \\\"/usr/sbin/useradd\\\", \\\"/usr/sbin/usermod\\\", \\\"/usr/sbin/userdel\\\", \\\"/usr/bin/gpasswd\\\", \\\"/usr/bin/chage\\\", \\\"/usr/sbin/chpasswd\\\", \\\"/usr/bin/passwd\\\" ]\\n \\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"credential_modified_utimes\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"ogb-clp-hot\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"An unauthorized job was added to cron scheduling\",\"enabled\":true,\"expression\":\"(\\n (chmod.file.path in [ ~\\\"/var/spool/cron/**\\\", ~\\\"/etc/cron.*/**\\\", ~\\\"/etc/crontab\\\" ])\\n \\u0026\\u0026 process.file.path not in [ \\\"/usr/bin/at\\\", \\\"/usr/bin/crontab\\\" ]\\n) \\u0026\\u0026 chmod.file.destination.mode != chmod.file.mode\\n\\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"cron_at_job_creation_chmod\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"wnk-nli-nbp\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"An unauthorized job was added to cron scheduling\",\"enabled\":true,\"expression\":\"(\\n (chown.file.path in [ ~\\\"/var/spool/cron/**\\\", ~\\\"/etc/cron.*/**\\\", ~\\\"/etc/crontab\\\" ])\\n \\u0026\\u0026 process.file.path not in [ \\\"/usr/bin/at\\\", \\\"/usr/bin/crontab\\\" ]\\n) \\u0026\\u0026 (chown.file.destination.uid != chown.file.uid || chown.file.destination.gid != chown.file.gid)\\n\\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"cron_at_job_creation_chown\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"mcv-y5o-zg5\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"An unauthorized job was added to cron scheduling\",\"enabled\":true,\"expression\":\"(\\n (link.file.path in [ ~\\\"/var/spool/cron/**\\\", ~\\\"/etc/cron.*/**\\\", ~\\\"/etc/crontab\\\" ]\\n || link.file.destination.path in [ ~\\\"/var/spool/cron/**\\\", ~\\\"/etc/cron.*/**\\\", ~\\\"/etc/crontab\\\" ])\\n \\u0026\\u0026 process.file.path not in [ \\\"/usr/bin/at\\\", \\\"/usr/bin/crontab\\\" ]\\n)\\n\\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"cron_at_job_creation_link\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"uis-h13-41q\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"An unauthorized job was added to cron scheduling\",\"enabled\":true,\"expression\":\"(\\n open.flags \\u0026 (O_CREAT|O_RDWR|O_WRONLY) \\u003e 0 \\u0026\\u0026\\n (open.file.path in [ ~\\\"/var/spool/cron/**\\\", ~\\\"/etc/cron.*/**\\\", ~\\\"/etc/crontab\\\" ])\\n \\u0026\\u0026 process.file.path not in [ \\\"/usr/bin/at\\\", \\\"/usr/bin/crontab\\\" ]\\n)\\n\\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"cron_at_job_creation_open\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"xa1-b6v-n2l\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"An unauthorized job was added to cron scheduling\",\"enabled\":true,\"expression\":\"(\\n (rename.file.path in [ ~\\\"/var/spool/cron/**\\\", ~\\\"/etc/cron.*/**\\\", ~\\\"/etc/crontab\\\" ]\\n || rename.file.destination.path in [ ~\\\"/var/spool/cron/**\\\", ~\\\"/etc/cron.*/**\\\", ~\\\"/etc/crontab\\\" ])\\n \\u0026\\u0026 process.file.path not in [ \\\"/usr/bin/at\\\", \\\"/usr/bin/crontab\\\" ]\\n)\\n\\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"cron_at_job_creation_rename\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"m23-qb9-9s8\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"An unauthorized job was added to cron scheduling\",\"enabled\":true,\"expression\":\"(\\n (unlink.file.path in [ ~\\\"/var/spool/cron/**\\\", ~\\\"/etc/cron.*/**\\\", ~\\\"/etc/crontab\\\" ])\\n \\u0026\\u0026 process.file.path not in [ \\\"/usr/bin/at\\\", \\\"/usr/bin/crontab\\\" ]\\n)\\n\\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"cron_at_job_creation_unlink\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"4mx-n6o-mmb\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"An unauthorized job was added to cron scheduling\",\"enabled\":true,\"expression\":\"(\\n (utimes.file.path in [ ~\\\"/var/spool/cron/**\\\", ~\\\"/etc/cron.*/**\\\", ~\\\"/etc/crontab\\\" ])\\n \\u0026\\u0026 process.file.path not in [ \\\"/usr/bin/at\\\", \\\"/usr/bin/crontab\\\" ]\\n)\\n\\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"cron_at_job_creation_utimes\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"jr3-0m8-jlj\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A process launched with arguments associated with cryptominers\",\"enabled\":true,\"expression\":\"exec.args_flags in [\\\"cpu-priority\\\", \\\"donate-level\\\", ~\\\"randomx-1gb-pages\\\"] || exec.args in [~\\\"*stratum+tcp*\\\", ~\\\"*stratum+ssl*\\\", ~\\\"*stratum1+tcp*\\\", ~\\\"*stratum1+ssl*\\\", ~\\\"*stratum2+tcp*\\\", ~\\\"*stratum2+ssl*\\\", ~\\\"*nicehash*\\\", ~\\\"*yespower*\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"cryptominer_args\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-6jw\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Process environment variables match cryptocurrency miner\",\"enabled\":true,\"expression\":\"exec.envs in [\\\"POOL_USER\\\", \\\"POOL_URL\\\", \\\"POOL_PASS\\\", \\\"DONATE_LEVEL\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"cryptominer_envs\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-h1x\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"The Docker socket was referenced in a cURL command\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"curl\\\" \\u0026\\u0026 exec.args_flags in [\\\"unix-socket\\\"] \\u0026\\u0026 exec.args in [\\\"*docker.sock*\\\"] \\u0026\\u0026 container.id != \\\"\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"curl_docker_socket\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"mq1-y7n-kf2\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A database application spawned a shell, shell utility, or HTTP utility\",\"enabled\":true,\"expression\":\"(exec.file.path in [ \\\"/bin/dash\\\",\\n \\\"/usr/bin/dash\\\",\\n \\\"/bin/sh\\\",\\n \\\"/bin/static-sh\\\",\\n \\\"/usr/bin/sh\\\",\\n \\\"/bin/bash\\\",\\n \\\"/usr/bin/bash\\\",\\n \\\"/bin/bash-static\\\",\\n \\\"/usr/bin/zsh\\\",\\n \\\"/usr/bin/ash\\\",\\n \\\"/usr/bin/csh\\\",\\n \\\"/usr/bin/ksh\\\",\\n \\\"/usr/bin/tcsh\\\",\\n \\\"/usr/lib/initramfs-tools/bin/busybox\\\",\\n \\\"/bin/busybox\\\",\\n \\\"/usr/bin/fish\\\",\\n \\\"/bin/ksh93\\\",\\n \\\"/bin/rksh\\\",\\n \\\"/bin/rksh93\\\",\\n \\\"/bin/lksh\\\",\\n \\\"/bin/mksh\\\",\\n \\\"/bin/mksh-static\\\",\\n \\\"/usr/bin/csharp\\\",\\n \\\"/bin/posh\\\",\\n \\\"/usr/bin/rc\\\",\\n \\\"/bin/sash\\\",\\n \\\"/usr/bin/yash\\\",\\n \\\"/bin/zsh5\\\",\\n \\\"/bin/zsh5-static\\\" ] ||\\n exec.comm in [\\\"wget\\\", \\\"curl\\\", \\\"lwp-download\\\"] ||\\n exec.file.path in [\\\"/bin/cat\\\",\\\"/bin/chgrp\\\",\\\"/bin/chmod\\\",\\\"/bin/chown\\\",\\\"/bin/cp\\\",\\\"/bin/date\\\",\\\"/bin/dd\\\",\\\"/bin/df\\\",\\\"/bin/dir\\\",\\\"/bin/echo\\\",\\\"/bin/ln\\\",\\\"/bin/ls\\\",\\\"/bin/mkdir\\\",\\\"/bin/mknod\\\",\\\"/bin/mktemp\\\",\\\"/bin/mv\\\",\\\"/bin/pwd\\\",\\\"/bin/readlink\\\",\\\"/bin/rm\\\",\\\"/bin/rmdir\\\",\\\"/bin/sleep\\\",\\\"/bin/stty\\\",\\\"/bin/sync\\\",\\\"/bin/touch\\\",\\\"/bin/uname\\\",\\\"/bin/vdir\\\",\\\"/usr/bin/arch\\\",\\\"/usr/bin/b2sum\\\",\\\"/usr/bin/base32\\\",\\\"/usr/bin/base64\\\",\\\"/usr/bin/basename\\\",\\\"/usr/bin/chcon\\\",\\\"/usr/bin/cksum\\\",\\\"/usr/bin/comm\\\",\\\"/usr/bin/csplit\\\",\\\"/usr/bin/cut\\\",\\\"/usr/bin/dircolors\\\",\\\"/usr/bin/dirname\\\",\\\"/usr/bin/du\\\",\\\"/usr/bin/env\\\",\\\"/usr/bin/expand\\\",\\\"/usr/bin/expr\\\",\\\"/usr/bin/factor\\\",\\\"/usr/bin/fmt\\\",\\\"/usr/bin/fold\\\",\\\"/usr/bin/groups\\\",\\\"/usr/bin/head\\\",\\\"/usr/bin/hostid\\\",\\\"/usr/bin/id\\\",\\\"/usr/bin/install\\\",\\\"/usr/bin/join\\\",\\\"/usr/bin/link\\\",\\\"/usr/bin/logname\\\",\\\"/usr/bin/md5sum\\\",\\\"/usr/bin/md5sum.textutils\\\",\\\"/usr/bin/mkfifo\\\",\\\"/usr/bin/nice\\\",\\\"/usr/bin/nl\\\",\\\"/usr/bin/nohup\\\",\\\"/usr/bin/nproc\\\",\\\"/usr/bin/numfmt\\\",\\\"/usr/bin/od\\\",\\\"/usr/bin/paste\\\",\\\"/usr/bin/pathchk\\\",\\\"/usr/bin/pinky\\\",\\\"/usr/bin/pr\\\",\\\"/usr/bin/printenv\\\",\\\"/usr/bin/printf\\\",\\\"/usr/bin/ptx\\\",\\\"/usr/bin/realpath\\\",\\\"/usr/bin/runcon\\\",\\\"/usr/bin/seq\\\",\\\"/usr/bin/sha1sum\\\",\\\"/usr/bin/sha224sum\\\",\\\"/usr/bin/sha256sum\\\",\\\"/usr/bin/sha384sum\\\",\\\"/usr/bin/sha512sum\\\",\\\"/usr/bin/shred\\\",\\\"/usr/bin/shuf\\\",\\\"/usr/bin/sort\\\",\\\"/usr/bin/split\\\",\\\"/usr/bin/stat\\\",\\\"/usr/bin/stdbuf\\\",\\\"/usr/bin/sum\\\",\\\"/usr/bin/tac\\\",\\\"/usr/bin/tail\\\",\\\"/usr/bin/tee\\\",\\\"/usr/bin/test\\\",\\\"/usr/bin/timeout\\\",\\\"/usr/bin/tr\\\",\\\"/usr/bin/truncate\\\",\\\"/usr/bin/tsort\\\",\\\"/usr/bin/tty\\\",\\\"/usr/bin/unexpand\\\",\\\"/usr/bin/uniq\\\",\\\"/usr/bin/unlink\\\",\\\"/usr/bin/users\\\",\\\"/usr/bin/wc\\\",\\\"/usr/bin/who\\\",\\\"/usr/bin/whoami\\\",\\\"/usr/sbin/chroot\\\"]) \\u0026\\u0026\\nprocess.parent.file.name in [\\\"mysqld\\\", \\\"mongod\\\", \\\"postgres\\\"] \\u0026\\u0026\\n!(process.parent.file.name == \\\"initdb\\\" \\u0026\\u0026\\nexec.args == \\\"-c locale -a\\\") \\u0026\\u0026\\n!(process.parent.file.name == \\\"postgres\\\" \\u0026\\u0026\\nexec.args == ~\\\"*pg_wal*\\\")\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"database_shell_execution\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-u1r\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A process deleted common system log files\",\"enabled\":true,\"expression\":\"unlink.file.path in [\\\"/var/run/utmp\\\", \\\"/var/log/wtmp\\\", \\\"/var/log/btmp\\\", \\\"/var/log/lastlog\\\", \\\"/var/log/faillog\\\", \\\"/var/log/syslog\\\", \\\"/var/log/messages\\\", \\\"/var/log/secure\\\", \\\"/var/log/auth.log\\\", \\\"/var/log/boot.log\\\", \\\"/var/log/kern.log\\\"] \\u0026\\u0026 process.comm not in [\\\"dockerd\\\", \\\"containerd\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"delete_system_log\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-juz\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A privileged container was created\",\"enabled\":true,\"expression\":\"exec.file.name != \\\"\\\" \\u0026\\u0026 container.created_at \\u003c 1s \\u0026\\u0026 process.cap_permitted \\u0026 CAP_SYS_ADMIN \\u003e 0\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"deploy_priv_container\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"sej-11b-ey6\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Potential Dirty pipe exploitation attempt\",\"enabled\":true,\"expression\":\"(splice.pipe_entry_flag \\u0026 PIPE_BUF_FLAG_CAN_MERGE) != 0 \\u0026\\u0026 (splice.pipe_exit_flag \\u0026 PIPE_BUF_FLAG_CAN_MERGE) == 0 \\u0026\\u0026 (process.uid != 0 \\u0026\\u0026 process.gid != 0)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"dirty_pipe_attempt\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"422-svi-03v\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Potential Dirty pipe exploitation\",\"enabled\":true,\"expression\":\"(splice.pipe_exit_flag \\u0026 PIPE_BUF_FLAG_CAN_MERGE) \\u003e 0 \\u0026\\u0026 (process.uid != 0 \\u0026\\u0026 process.gid != 0)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"dirty_pipe_exploitation\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"2rq-drz-11u\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A process unlinked a dynamic linker config file\",\"enabled\":true,\"expression\":\"unlink.file.path in [\\\"/etc/ld.so.preload\\\", \\\"/etc/ld.so.conf\\\", ~\\\"/etc/ld.so.conf.d/*.conf\\\"] \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"dynamic_linker_config_unlink\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"2s5-ipa-ooo\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A process wrote to a dynamic linker config file\",\"enabled\":true,\"expression\":\"open.file.path in [\\\"/etc/ld.so.preload\\\", \\\"/etc/ld.so.conf\\\", \\\"/etc/ld.so.conf.d/*.conf\\\"] \\u0026\\u0026 open.flags \\u0026 (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) \\u003e 0 \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"] \\u0026\\u0026 process.ancestors.file.path not in [\\\"/opt/datadog-agent/embedded/bin/agent\\\", \\\"/opt/datadog-agent/embedded/bin/system-probe\\\", \\\"/opt/datadog-agent/embedded/bin/security-agent\\\", \\\"/opt/datadog-agent/embedded/bin/process-agent\\\", \\\"/opt/datadog-agent/bin/agent/agent\\\", \\\"/opt/datadog/apm/inject/auto_inject_runc\\\", \\\"/usr/bin/dd-host-install\\\", \\\"/usr/bin/dd-host-container-install\\\", \\\"/usr/bin/dd-container-install\\\", \\\"/opt/datadog-agent/bin/datadog-cluster-agent\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"dynamic_linker_config_write\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-4xu\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Kernel modules were listed using the lsmod command\",\"enabled\":true,\"expression\":\"exec.comm == \\\"lsmod\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"exec_lsmod\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-fqm\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"The whoami command was executed\",\"enabled\":true,\"expression\":\"exec.comm == \\\"whoami\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"exec_whoami\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-ev8\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"The wrmsr program executed\",\"enabled\":true,\"expression\":\"exec.comm == \\\"wrmsr\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"exec_wrmsr\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-bus\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"The executable bit was added to a newly created file\",\"enabled\":true,\"expression\":\"chmod.file.in_upper_layer \\u0026\\u0026\\nchmod.file.change_time \\u003c 30s \\u0026\\u0026\\ncontainer.id != \\\"\\\" \\u0026\\u0026\\nchmod.file.destination.mode != chmod.file.mode \\u0026\\u0026\\nchmod.file.destination.mode \\u0026 S_IXUSR|S_IXGRP|S_IXOTH \\u003e 0 \\u0026\\u0026\\nprocess.argv in [\\\"+x\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"executable_bit_added\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"ro4-rju-1vq\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"An GCP IMDS was called via a network utility\",\"enabled\":true,\"expression\":\"exec.comm in [\\\"wget\\\", \\\"curl\\\", \\\"lwp-download\\\"] \\u0026\\u0026 exec.args in [~\\\"*metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token\\\", ~\\\"*169.254.169.254/computeMetadata/v1/instance/service-accounts/default/token\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"gcp_imds\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-bgf\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A hidden file was executed in a suspicious folder\",\"enabled\":true,\"expression\":\"exec.file.name =~ \\\".*\\\" \\u0026\\u0026 exec.file.path in [~\\\"/home/**\\\", ~\\\"/tmp/**\\\", ~\\\"/var/tmp/**\\\", ~\\\"/dev/shm/**\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"hidden_file_executed\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"jeh-18e-m9h\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"An interactive shell was started inside of a container\",\"enabled\":true,\"expression\":\"exec.file.path in [ \\\"/bin/dash\\\",\\n \\\"/usr/bin/dash\\\",\\n \\\"/bin/sh\\\",\\n \\\"/bin/static-sh\\\",\\n \\\"/usr/bin/sh\\\",\\n \\\"/bin/bash\\\",\\n \\\"/usr/bin/bash\\\",\\n \\\"/bin/bash-static\\\",\\n \\\"/usr/bin/zsh\\\",\\n \\\"/usr/bin/ash\\\",\\n \\\"/usr/bin/csh\\\",\\n \\\"/usr/bin/ksh\\\",\\n \\\"/usr/bin/tcsh\\\",\\n \\\"/usr/lib/initramfs-tools/bin/busybox\\\",\\n \\\"/bin/busybox\\\",\\n \\\"/usr/bin/fish\\\",\\n \\\"/bin/ksh93\\\",\\n \\\"/bin/rksh\\\",\\n \\\"/bin/rksh93\\\",\\n \\\"/bin/lksh\\\",\\n \\\"/bin/mksh\\\",\\n \\\"/bin/mksh-static\\\",\\n \\\"/usr/bin/csharp\\\",\\n \\\"/bin/posh\\\",\\n \\\"/usr/bin/rc\\\",\\n \\\"/bin/sash\\\",\\n \\\"/usr/bin/yash\\\",\\n \\\"/bin/zsh5\\\",\\n \\\"/bin/zsh5-static\\\" ] \\u0026\\u0026 exec.args_flags in [\\\"i\\\"] \\u0026\\u0026 container.id !=\\\"\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"interactive_shell_in_container\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"4ov-ang-2gx\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Network Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A DNS lookup was done for a IP check service\",\"enabled\":true,\"expression\":\"dns.question.name in [\\\"icanhazip.com\\\", \\\"ip-api.com\\\", \\\"myip.opendns.com\\\", \\\"checkip.amazonaws.com\\\", \\\"whatismyip.akamai.com\\\"] \\u0026\\u0026 process.file.name != \\\"\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"ip_check_domain\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-88h\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Egress traffic allowed using iptables\",\"enabled\":true,\"expression\":\"exec.comm == \\\"iptables\\\" \\u0026\\u0026 process.args in [r\\\".*OUTPUT.*((25[0-5]|(2[0-4]|1\\\\d|[1-9]|)\\\\d)\\\\.?\\\\b){4}.*ACCEPT\\\"] \\u0026\\u0026 process.args not in [r\\\"(127\\\\.)|(10\\\\.)|(172\\\\.1[6-9]\\\\.)|(172\\\\.2[0-9]\\\\.)|(^172\\\\.3[0-1]\\\\.)|(192\\\\.168\\\\.)|(169\\\\.254\\\\.)\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"iptables_egress_allowed\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-but\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A java process spawned a shell, shell utility, or HTTP utility\",\"enabled\":true,\"expression\":\"(exec.file.path in [ \\\"/bin/dash\\\",\\n \\\"/usr/bin/dash\\\",\\n \\\"/bin/sh\\\",\\n \\\"/bin/static-sh\\\",\\n \\\"/usr/bin/sh\\\",\\n \\\"/bin/bash\\\",\\n \\\"/usr/bin/bash\\\",\\n \\\"/bin/bash-static\\\",\\n \\\"/usr/bin/zsh\\\",\\n \\\"/usr/bin/ash\\\",\\n \\\"/usr/bin/csh\\\",\\n \\\"/usr/bin/ksh\\\",\\n \\\"/usr/bin/tcsh\\\",\\n \\\"/usr/lib/initramfs-tools/bin/busybox\\\",\\n \\\"/bin/busybox\\\",\\n \\\"/usr/bin/fish\\\",\\n \\\"/bin/ksh93\\\",\\n \\\"/bin/rksh\\\",\\n \\\"/bin/rksh93\\\",\\n \\\"/bin/lksh\\\",\\n \\\"/bin/mksh\\\",\\n \\\"/bin/mksh-static\\\",\\n \\\"/usr/bin/csharp\\\",\\n \\\"/bin/posh\\\",\\n \\\"/usr/bin/rc\\\",\\n \\\"/bin/sash\\\",\\n \\\"/usr/bin/yash\\\",\\n \\\"/bin/zsh5\\\",\\n \\\"/bin/zsh5-static\\\" ] ||\\n exec.comm in [\\\"wget\\\", \\\"curl\\\", \\\"lwp-download\\\"] ||\\n exec.file.path in [\\\"/bin/cat\\\",\\\"/bin/chgrp\\\",\\\"/bin/chmod\\\",\\\"/bin/chown\\\",\\\"/bin/cp\\\",\\\"/bin/date\\\",\\\"/bin/dd\\\",\\\"/bin/df\\\",\\\"/bin/dir\\\",\\\"/bin/echo\\\",\\\"/bin/ln\\\",\\\"/bin/ls\\\",\\\"/bin/mkdir\\\",\\\"/bin/mknod\\\",\\\"/bin/mktemp\\\",\\\"/bin/mv\\\",\\\"/bin/pwd\\\",\\\"/bin/readlink\\\",\\\"/bin/rm\\\",\\\"/bin/rmdir\\\",\\\"/bin/sleep\\\",\\\"/bin/stty\\\",\\\"/bin/sync\\\",\\\"/bin/touch\\\",\\\"/bin/uname\\\",\\\"/bin/vdir\\\",\\\"/usr/bin/arch\\\",\\\"/usr/bin/b2sum\\\",\\\"/usr/bin/base32\\\",\\\"/usr/bin/base64\\\",\\\"/usr/bin/basename\\\",\\\"/usr/bin/chcon\\\",\\\"/usr/bin/cksum\\\",\\\"/usr/bin/comm\\\",\\\"/usr/bin/csplit\\\",\\\"/usr/bin/cut\\\",\\\"/usr/bin/dircolors\\\",\\\"/usr/bin/dirname\\\",\\\"/usr/bin/du\\\",\\\"/usr/bin/env\\\",\\\"/usr/bin/expand\\\",\\\"/usr/bin/expr\\\",\\\"/usr/bin/factor\\\",\\\"/usr/bin/fmt\\\",\\\"/usr/bin/fold\\\",\\\"/usr/bin/groups\\\",\\\"/usr/bin/head\\\",\\\"/usr/bin/hostid\\\",\\\"/usr/bin/id\\\",\\\"/usr/bin/install\\\",\\\"/usr/bin/join\\\",\\\"/usr/bin/link\\\",\\\"/usr/bin/logname\\\",\\\"/usr/bin/md5sum\\\",\\\"/usr/bin/md5sum.textutils\\\",\\\"/usr/bin/mkfifo\\\",\\\"/usr/bin/nice\\\",\\\"/usr/bin/nl\\\",\\\"/usr/bin/nohup\\\",\\\"/usr/bin/nproc\\\",\\\"/usr/bin/numfmt\\\",\\\"/usr/bin/od\\\",\\\"/usr/bin/paste\\\",\\\"/usr/bin/pathchk\\\",\\\"/usr/bin/pinky\\\",\\\"/usr/bin/pr\\\",\\\"/usr/bin/printenv\\\",\\\"/usr/bin/printf\\\",\\\"/usr/bin/ptx\\\",\\\"/usr/bin/realpath\\\",\\\"/usr/bin/runcon\\\",\\\"/usr/bin/seq\\\",\\\"/usr/bin/sha1sum\\\",\\\"/usr/bin/sha224sum\\\",\\\"/usr/bin/sha256sum\\\",\\\"/usr/bin/sha384sum\\\",\\\"/usr/bin/sha512sum\\\",\\\"/usr/bin/shred\\\",\\\"/usr/bin/shuf\\\",\\\"/usr/bin/sort\\\",\\\"/usr/bin/split\\\",\\\"/usr/bin/stat\\\",\\\"/usr/bin/stdbuf\\\",\\\"/usr/bin/sum\\\",\\\"/usr/bin/tac\\\",\\\"/usr/bin/tail\\\",\\\"/usr/bin/tee\\\",\\\"/usr/bin/test\\\",\\\"/usr/bin/timeout\\\",\\\"/usr/bin/tr\\\",\\\"/usr/bin/truncate\\\",\\\"/usr/bin/tsort\\\",\\\"/usr/bin/tty\\\",\\\"/usr/bin/unexpand\\\",\\\"/usr/bin/uniq\\\",\\\"/usr/bin/unlink\\\",\\\"/usr/bin/users\\\",\\\"/usr/bin/wc\\\",\\\"/usr/bin/who\\\",\\\"/usr/bin/whoami\\\",\\\"/usr/sbin/chroot\\\"])\\n\\u0026\\u0026 process.parent.file.name == \\\"java\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"java_shell_execution_parent\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-mfu\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A Jupyter notebook executed a shell\",\"enabled\":true,\"expression\":\"(exec.file.name in [\\\"cat\\\",\\\"chgrp\\\",\\\"chmod\\\",\\\"chown\\\",\\\"cp\\\",\\\"date\\\",\\\"dd\\\",\\\"df\\\",\\\"dir\\\",\\\"echo\\\",\\\"ln\\\",\\\"ls\\\",\\\"mkdir\\\",\\\"mknod\\\",\\\"mktemp\\\",\\\"mv\\\",\\\"pwd\\\",\\\"readlink\\\",\\\"rm\\\",\\\"rmdir\\\",\\\"sleep\\\",\\\"stty\\\",\\\"sync\\\",\\\"touch\\\",\\\"uname\\\",\\\"vdir\\\",\\\"arch\\\",\\\"b2sum\\\",\\\"base32\\\",\\\"base64\\\",\\\"basename\\\",\\\"chcon\\\",\\\"cksum\\\",\\\"comm\\\",\\\"csplit\\\",\\\"cut\\\",\\\"dircolors\\\",\\\"dirname\\\",\\\"du\\\",\\\"env\\\",\\\"expand\\\",\\\"expr\\\",\\\"factor\\\",\\\"fmt\\\",\\\"fold\\\",\\\"groups\\\",\\\"head\\\",\\\"hostid\\\",\\\"id\\\",\\\"install\\\",\\\"join\\\",\\\"link\\\",\\\"logname\\\",\\\"md5sum\\\",\\\"textutils\\\",\\\"mkfifo\\\",\\\"nice\\\",\\\"nl\\\",\\\"nohup\\\",\\\"nproc\\\",\\\"numfmt\\\",\\\"od\\\",\\\"paste\\\",\\\"pathchk\\\",\\\"pinky\\\",\\\"pr\\\",\\\"printenv\\\",\\\"printf\\\",\\\"ptx\\\",\\\"realpath\\\",\\\"runcon\\\",\\\"seq\\\",\\\"sha1sum\\\",\\\"sha224sum\\\",\\\"sha256sum\\\",\\\"sha384sum\\\",\\\"sha512sum\\\",\\\"shred\\\",\\\"shuf\\\",\\\"sort\\\",\\\"split\\\",\\\"stat\\\",\\\"stdbuf\\\",\\\"sum\\\",\\\"tac\\\",\\\"tail\\\",\\\"tee\\\",\\\"test\\\",\\\"timeout\\\",\\\"tr\\\",\\\"truncate\\\",\\\"tsort\\\",\\\"tty\\\",\\\"unexpand\\\",\\\"uniq\\\",\\\"unlink\\\",\\\"users\\\",\\\"wc\\\",\\\"who\\\",\\\"whoami\\\",\\\"chroot\\\"] || exec.file.name in [\\\"wget\\\", \\\"curl\\\", \\\"lwp-download\\\"] || exec.file.name in [\\\"dash\\\",\\\"sh\\\",\\\"static-sh\\\",\\\"sh\\\",\\\"bash\\\",\\\"bash\\\",\\\"bash-static\\\",\\\"zsh\\\",\\\"ash\\\",\\\"csh\\\",\\\"ksh\\\",\\\"tcsh\\\",\\\"busybox\\\",\\\"busybox\\\",\\\"fish\\\",\\\"ksh93\\\",\\\"rksh\\\",\\\"rksh93\\\",\\\"lksh\\\",\\\"mksh\\\",\\\"mksh-static\\\",\\\"csharp\\\",\\\"posh\\\",\\\"rc\\\",\\\"sash\\\",\\\"yash\\\",\\\"zsh5\\\",\\\"zsh5-static\\\"]) \\u0026\\u0026 process.ancestors.comm in [\\\"jupyter-noteboo\\\", \\\"jupyter-lab\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"jupyter_shell_execution\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"0i7-z9o-zed\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"The Kubernetes pod service account token was accessed\",\"enabled\":true,\"expression\":\"open.file.path in [~\\\"/var/run/secrets/kubernetes.io/serviceaccount/**\\\", ~\\\"/run/secrets/kubernetes.io/serviceaccount/**\\\"] \\u0026\\u0026 open.file.name == \\\"token\\\" \\u0026\\u0026 process.file.path not in [\\\"/opt/datadog-agent/embedded/bin/agent\\\", \\\"/opt/datadog-agent/embedded/bin/system-probe\\\", \\\"/opt/datadog-agent/embedded/bin/security-agent\\\", \\\"/opt/datadog-agent/embedded/bin/process-agent\\\", \\\"/opt/datadog-agent/bin/agent/agent\\\", \\\"/opt/datadog/apm/inject/auto_inject_runc\\\", \\\"/usr/bin/dd-host-install\\\", \\\"/usr/bin/dd-host-container-install\\\", \\\"/usr/bin/dd-container-install\\\", \\\"/opt/datadog-agent/bin/datadog-cluster-agent\\\"] \\u0026\\u0026 process.file.path not in [\\\"/usr/bin/cilium-agent\\\", \\\"/coredns\\\", \\\"/usr/bin/cilium-operator\\\", \\\"/manager\\\", \\\"/fluent-bit/bin/fluent-bit\\\", \\\"/usr/local/bin/cloud-node-manager\\\", \\\"/secrets-store-csi\\\", \\\"/bin/secrets-store-csi-driver-provider-aws\\\", \\\"/usr/bin/calico-node\\\", \\\"/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent\\\", \\\"/nginx-ingress-controller\\\", \\\"/cluster-autoscaler\\\", \\\"/cluster-proportional-autoscaler\\\", \\\"/haproxy-ingress-controller\\\", \\\"/kube-state-metrics\\\", \\\"/fluent-bit-gke-exporter\\\", \\\"/bin/external-secrets\\\", \\\"/node-termination-handler\\\", \\\"/fluent-bit-gke-exporter\\\", \\\"/bin/vault\\\", \\\"/usr/local/bin/kubectl\\\", \\\"/local-provisioner\\\", \\\"/usr/bin/gitlab-runner\\\", \\\"/usr/local/bin/vaultd\\\", \\\"/usr/local/bin/trace-driveline-writer\\\", \\\"/usr/local/bin/registration-controller\\\", \\\"/usr/local/bin/cluster-autoscaler\\\"] \\u0026\\u0026 process.ancestors.file.path not in [\\\"/opt/datadog-agent/embedded/bin/agent\\\", \\\"/opt/datadog-agent/embedded/bin/system-probe\\\", \\\"/opt/datadog-agent/embedded/bin/security-agent\\\", \\\"/opt/datadog-agent/embedded/bin/process-agent\\\", \\\"/opt/datadog-agent/bin/agent/agent\\\", \\\"/opt/datadog/apm/inject/auto_inject_runc\\\", \\\"/usr/bin/dd-host-install\\\", \\\"/usr/bin/dd-host-container-install\\\", \\\"/usr/bin/dd-container-install\\\", \\\"/opt/datadog-agent/bin/datadog-cluster-agent\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"k8s_pod_service_account_token_accessed\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"2dz-kyt-nme\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A new kernel module was added\",\"enabled\":true,\"expression\":\"(\\n (chmod.file.path in [ ~\\\"/lib/modules/**\\\", ~\\\"/usr/lib/modules/**\\\" ])\\n \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n \\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"] \\u0026\\u0026 process.ancestors.file.path != \\\"/usr/bin/kmod\\\"\\n) \\u0026\\u0026 chmod.file.destination.mode != chmod.file.mode\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"kernel_module_chmod\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"94l-lhd-e33\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A new kernel module was added\",\"enabled\":true,\"expression\":\"(\\n (chown.file.path in [ ~\\\"/lib/modules/**\\\", ~\\\"/usr/lib/modules/**\\\" ])\\n \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n \\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"] \\u0026\\u0026 process.ancestors.file.path != \\\"/usr/bin/kmod\\\"\\n) \\u0026\\u0026 (chown.file.destination.uid != chown.file.uid || chown.file.destination.gid != chown.file.gid)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"kernel_module_chown\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"ucb-5zb-rmj\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A new kernel module was added\",\"enabled\":true,\"expression\":\"(\\n (link.file.path in [ ~\\\"/lib/modules/**\\\", ~\\\"/usr/lib/modules/**\\\" ]\\n || link.file.destination.path in [ ~\\\"/lib/modules/**\\\", ~\\\"/usr/lib/modules/**\\\" ])\\n \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n \\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"] \\u0026\\u0026 process.ancestors.file.path != \\\"/usr/bin/kmod\\\"\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"kernel_module_link\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"5t3-iiv-rv5\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Kernel Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A kernel module was loaded\",\"enabled\":true,\"expression\":\"load_module.name not in [\\\"nf_tables\\\", \\\"iptable_filter\\\", \\\"ip6table_filter\\\", \\\"bpfilter\\\", \\\"ip6_tables\\\", \\\"ip6table_nat\\\", \\\"nf_reject_ipv4\\\", \\\"ipt_REJECT\\\", \\\"iptable_raw\\\"] \\u0026\\u0026 process.ancestors.file.name not in [~\\\"falcon*\\\", \\\"unattended-upgrade\\\", \\\"apt.systemd.daily\\\", \\\"xtables-legacy-multi\\\", \\\"ssm-agent-worker\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"kernel_module_load\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"dkb-9ud-0ca\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Kernel Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A container loaded a new kernel module\",\"enabled\":true,\"expression\":\"load_module.name != \\\"\\\" \\u0026\\u0026 container.id !=\\\"\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"kernel_module_load_container\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"lrg-avx-x1k\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Kernel Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A kernel module was loaded from memory\",\"enabled\":true,\"expression\":\"load_module.loaded_from_memory == true\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"kernel_module_load_from_memory\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"gx3-4a5-w9a\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Kernel Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A kernel module was loaded from memory inside a container\",\"enabled\":true,\"expression\":\"load_module.loaded_from_memory == true \\u0026\\u0026 container.id !=\\\"\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"kernel_module_load_from_memory_container\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"56y-vsb-zqu\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A new kernel module was added\",\"enabled\":true,\"expression\":\"(\\n open.flags \\u0026 (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) \\u003e 0 \\u0026\\u0026\\n (open.file.path in [ ~\\\"/lib/modules/**\\\", ~\\\"/usr/lib/modules/**\\\" ])\\n \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n \\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"] \\u0026\\u0026 process.ancestors.file.path != \\\"/usr/bin/kmod\\\"\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"kernel_module_open\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"3i1-zpd-ycj\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A new kernel module was added\",\"enabled\":true,\"expression\":\"(\\n (rename.file.path in [ ~\\\"/lib/modules/**\\\", ~\\\"/usr/lib/modules/**\\\" ]\\n || rename.file.destination.path in [ ~\\\"/lib/modules/**\\\", ~\\\"/usr/lib/modules/**\\\" ])\\n \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n \\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"] \\u0026\\u0026 process.ancestors.file.path != \\\"/usr/bin/kmod\\\"\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"kernel_module_rename\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"20v-gdb-0ha\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A new kernel module was added\",\"enabled\":true,\"expression\":\"(\\n (unlink.file.path in [ ~\\\"/lib/modules/**\\\", ~\\\"/usr/lib/modules/**\\\" ])\\n \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n \\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"] \\u0026\\u0026 process.ancestors.file.path != \\\"/usr/bin/kmod\\\"\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"kernel_module_unlink\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"fyq-x5u-mv1\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A new kernel module was added\",\"enabled\":true,\"expression\":\"(\\n (utimes.file.path in [ ~\\\"/lib/modules/**\\\", ~\\\"/usr/lib/modules/**\\\" ])\\n \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n \\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"] \\u0026\\u0026 process.ancestors.file.path != \\\"/usr/bin/kmod\\\"\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"kernel_module_utimes\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-dpm\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A process attempted to enable writing to model-specific registers\",\"enabled\":true,\"expression\":\"exec.comm == \\\"modprobe\\\" \\u0026\\u0026 process.args =~ \\\"*msr*allow_writes*\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"kernel_msr_write\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-xv7\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Kernel modules were listed using the kmod command\",\"enabled\":true,\"expression\":\"exec.comm == \\\"kmod\\\" \\u0026\\u0026 exec.args in [~\\\"*list*\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"kmod_list\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-b7s\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Network Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Kubernetes DNS enumeration\",\"enabled\":true,\"expression\":\"dns.question.name == \\\"any.any.svc.cluster.local\\\" \\u0026\\u0026 dns.question.type == SRV \\u0026\\u0026 container.id != \\\"\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"kubernetes_dns_enumeration\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"j8a-wic-bvi\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"The LD_PRELOAD variable is populated by a link to a suspicious file directory\",\"enabled\":true,\"expression\":\"exec.envs in [~\\\"LD_PRELOAD=*/tmp/*\\\" ,~\\\"LD_PRELOAD=/dev/shm/*\\\" ]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"ld_preload_unusual_library_path\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-fbb\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Kernel Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Library libpam.so hooked using eBPF\",\"enabled\":true,\"expression\":\"bpf.cmd == BPF_MAP_CREATE \\u0026\\u0026 process.args in [r\\\".*libpam.so.*\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"libpam_ebpf_hook\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-j1b\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Looney Tunables (CVE-2023-4911) exploit attempted\",\"enabled\":true,\"expression\":\"exec.file.mode \\u0026 S_ISUID \\u003e 0 \\u0026\\u0026 exec.file.uid == 0 \\u0026\\u0026 exec.uid != 0 \\u0026\\u0026 exec.envs in [~\\\"*GLIBC_TUNABLES*\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"looney_tunables_exploit\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-6ql\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"memfd object created\",\"enabled\":true,\"expression\":\"exec.file.name =~ \\\"memfd*\\\" \\u0026\\u0026 exec.file.path == \\\"\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"memfd_create\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-d1i\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Process memory was dumped using the minidump function from comsvcs.dll\",\"enabled\":true,\"expression\":\"exec.cmdline =~ \\\"*MiniDump*\\\"\",\"filters\":[\"os == \\\"windows\\\"\"],\"name\":\"minidump_usage\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"caz-yrk-14e\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Network Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A process resolved a DNS name associated with cryptomining activity\",\"enabled\":true,\"expression\":\"dns.question.name in [~\\\"*minexmr.com\\\", ~\\\"*nanopool.org\\\", ~\\\"*supportxmr.com\\\", ~\\\"*c3pool.com\\\", ~\\\"*p2pool.io\\\", ~\\\"*ethermine.org\\\", ~\\\"*f2pool.com\\\", ~\\\"*poolin.me\\\", ~\\\"*rplant.xyz\\\"] \\u0026\\u0026 process.file.name != \\\"\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"mining_pool_lookup\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-mxb\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"The host file system was mounted in a container\",\"enabled\":true,\"expression\":\"mount.source.path == \\\"/\\\" \\u0026\\u0026 mount.fs_type != \\\"overlay\\\" \\u0026\\u0026 container.id != \\\"\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"mount_host_fs\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-mr5\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Process hidden using mount\",\"enabled\":true,\"expression\":\"mount.mountpoint.path =~ \\\"/proc/*\\\" \\u0026\\u0026 process.file.name !~ \\\"runc*\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"mount_proc_hide\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"zfb-ixo-o4w\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A suspicious file was written by a network utility\",\"enabled\":true,\"expression\":\"open.flags \\u0026 O_CREAT \\u003e 0 \\u0026\\u0026 process.comm in [\\\"wget\\\", \\\"curl\\\", \\\"lwp-download\\\"]\\n\\u0026\\u0026 (\\n (open.file.path =~ \\\"/tmp/**\\\" \\u0026\\u0026 open.file.name in [~\\\"*.sh\\\", ~\\\"*.c\\\", ~\\\"*.so\\\", ~\\\"*.ko\\\"])\\n || open.file.path in [~\\\"/usr/**\\\", ~\\\"/lib/**\\\", ~\\\"/etc/**\\\", ~\\\"/var/tmp/**\\\", ~\\\"/dev/shm/**\\\"]\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"net_file_download\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"sqi-q1z-onu\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Network utility executed with suspicious URI\",\"enabled\":true,\"expression\":\"exec.comm in [\\\"wget\\\", \\\"curl\\\", \\\"lwp-download\\\"] \\u0026\\u0026 exec.args in [~\\\"*.php*\\\", ~\\\"*.jpg*\\\"] \",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"net_unusual_request\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"7y2-ihu-hm2\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A network utility was executed\",\"enabled\":true,\"expression\":\"(exec.comm in [\\\"socat\\\", \\\"dig\\\", \\\"nslookup\\\", \\\"host\\\", ~\\\"netcat*\\\", ~\\\"nc*\\\", \\\"ncat\\\"] ||\\n exec.comm in [\\\"wget\\\", \\\"curl\\\", \\\"lwp-download\\\"]) \\u0026\\u0026\\ncontainer.id == \\\"\\\" \\u0026\\u0026 exec.args not in [ ~\\\"*localhost*\\\", ~\\\"*127.0.0.1*\\\", ~\\\"*motd.ubuntu.com*\\\" ]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"net_util\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"a52-req-ghm\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Exfiltration attempt via network utility\",\"enabled\":true,\"expression\":\"exec.comm in [\\\"wget\\\", \\\"curl\\\", \\\"lwp-download\\\"] \\u0026\\u0026 \\nexec.args_options in [ ~\\\"post-file=*\\\", ~\\\"post-data=*\\\", ~\\\"T=*\\\", ~\\\"d=@*\\\", ~\\\"upload-file=*\\\", ~\\\"F=file*\\\"] \\u0026\\u0026\\nexec.args not in [~\\\"*localhost*\\\", ~\\\"*127.0.0.1*\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"net_util_exfiltration\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"w0z-64n-bss\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A network utility was executed in a container\",\"enabled\":true,\"expression\":\"(exec.comm in [\\\"socat\\\", \\\"dig\\\", \\\"nslookup\\\", \\\"host\\\", ~\\\"netcat*\\\", ~\\\"nc*\\\", \\\"ncat\\\"] ||\\n exec.comm in [\\\"wget\\\", \\\"curl\\\", \\\"lwp-download\\\"]) \\u0026\\u0026\\ncontainer.id != \\\"\\\" \\u0026\\u0026 exec.args not in [ ~\\\"*localhost*\\\", ~\\\"*127.0.0.1*\\\", ~\\\"*motd.ubuntu.com*\\\" ]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"net_util_in_container\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-0ra\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A network utility was executed in a container\",\"enabled\":true,\"expression\":\"(exec.comm in [\\\"socat\\\", \\\"dig\\\", \\\"nslookup\\\", \\\"host\\\", ~\\\"netcat*\\\", ~\\\"nc*\\\", \\\"ncat\\\"] ||\\n exec.comm in [\\\"wget\\\", \\\"curl\\\", \\\"lwp-download\\\"]) \\u0026\\u0026\\ncontainer.id != \\\"\\\" \\u0026\\u0026 exec.args not in [ ~\\\"*localhost*\\\", ~\\\"*127.0.0.1*\\\", ~\\\"*motd.ubuntu.com*\\\" ] \\u0026\\u0026 container.created_at \\u003e 90s\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"net_util_in_container_v2\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-9rk\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Local account groups were enumerated after container start up\",\"enabled\":true,\"expression\":\"exec.file.name in [\\\"tcpdump\\\", \\\"tshark\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"network_sniffing_tool\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"xgw-28i-480\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A container executed a new binary not found in the container image\",\"enabled\":true,\"expression\":\"container.id != \\\"\\\" \\u0026\\u0026 process.file.in_upper_layer \\u0026\\u0026 process.file.modification_time \\u003c 30s \\u0026\\u0026 exec.file.name != \\\"\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"new_binary_execution_in_container\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"mqh-lgo-brj\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"nsswitch may have been modified without authorization\",\"enabled\":true,\"expression\":\"(\\n (chmod.file.path in [ \\\"/etc/nsswitch.conf\\\" ])\\n) \\u0026\\u0026 chmod.file.destination.mode != chmod.file.mode \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"nsswitch_conf_mod_chmod\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"v2b-cd3-clr\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"nsswitch may have been modified without authorization\",\"enabled\":true,\"expression\":\"(\\n (chown.file.path in [ \\\"/etc/nsswitch.conf\\\" ])\\n) \\u0026\\u0026 (chown.file.destination.uid != chown.file.uid || chown.file.destination.gid != chown.file.gid) \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"nsswitch_conf_mod_chown\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"wwc-6it-t7i\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"nsswitch may have been modified without authorization\",\"enabled\":true,\"expression\":\"(\\n (link.file.path in [ \\\"/etc/nsswitch.conf\\\" ]\\n || link.file.destination.path in [ \\\"/etc/nsswitch.conf\\\" ])\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"nsswitch_conf_mod_link\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"e5h-onu-f7l\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"nsswitch may have been modified without authorization\",\"enabled\":true,\"expression\":\"(\\n open.flags \\u0026 ((O_RDWR|O_WRONLY|O_CREAT)) \\u003e 0 \\u0026\\u0026\\n (open.file.path in [ \\\"/etc/nsswitch.conf\\\" ])\\n) \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"nsswitch_conf_mod_open\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-i9x\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"nsswitch may have been modified without authorization\",\"enabled\":true,\"expression\":\"(\\n open.flags \\u0026 ((O_RDWR|O_WRONLY|O_CREAT)) \\u003e 0 \\u0026\\u0026\\n (open.file.path in [ \\\"/etc/nsswitch.conf\\\" ])\\n) \\u0026\\u0026 container.created_at \\u003e 90s \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"nsswitch_conf_mod_open_v2\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"sif-d9p-wzg\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"nsswitch may have been modified without authorization\",\"enabled\":true,\"expression\":\"(\\n (rename.file.path in [ \\\"/etc/nsswitch.conf\\\" ]\\n || rename.file.destination.path in [ \\\"/etc/nsswitch.conf\\\" ])\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"nsswitch_conf_mod_rename\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"4mu-d2x-fyk\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"nsswitch may have been modified without authorization\",\"enabled\":true,\"expression\":\"(\\n (unlink.file.path in [ \\\"/etc/nsswitch.conf\\\" ])\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"nsswitch_conf_mod_unlink\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"qt9-i99-q9p\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"nsswitch may have been modified without authorization\",\"enabled\":true,\"expression\":\"(\\n (utimes.file.path in [ \\\"/etc/nsswitch.conf\\\" ])\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"nsswitch_conf_mod_utimes\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-d4i\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"NTDS file referenced in commandline\",\"enabled\":true,\"expression\":\"exec.cmdline =~ \\\"*ntds.dit*\\\"\",\"filters\":[\"os == \\\"windows\\\"\"],\"name\":\"ntds_in_commandline\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-49j\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A known kubernetes pentesting tool has been executed\",\"enabled\":true,\"expression\":\"(exec.file.name in [ ~\\\"python*\\\" ] \\u0026\\u0026 (\\\"KubiScan.py\\\" in exec.argv || \\\"kubestriker\\\" in exec.argv ) ) || exec.file.name in [ \\\"kubiscan\\\",\\\"kdigger\\\",\\\"kube-hunter\\\",\\\"rakkess\\\",\\\"peirates\\\",\\\"kubescape\\\",\\\"kubeaudit\\\",\\\"kube-linter\\\",\\\"stratus\\\",~\\\"botb-*\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"offensive_k8s_tool\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"4yt-ize-avz\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Omiagent spawns a privileged child process\",\"enabled\":true,\"expression\":\"exec.uid \\u003e= 0 \\u0026\\u0026 process.ancestors.file.name == \\\"omiagent\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"omigod\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-tp8\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A process opened a model-specific register (MSR) configuration file\",\"enabled\":true,\"expression\":\"open.file.path == \\\"/sys/module/msr/parameters/allow_writes\\\" \\u0026\\u0026 open.flags \\u0026 O_CREAT|O_TRUNC|O_RDWR|O_WRONLY \\u003e 0\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"open_msr_writes\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"m7d-vlh-3yq\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Package management was detected in a container\",\"enabled\":true,\"expression\":\"exec.file.path in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"] \\u0026\\u0026 container.id != \\\"\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"package_management_in_container\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-k6i\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Package management was detected in a conatiner outside of container start_up\",\"enabled\":true,\"expression\":\"exec.file.path in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"] \\u0026\\u0026 container.id != \\\"\\\" \\u0026\\u0026 container.created_at \\u003e 90s\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"package_management_in_container_v2\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"34t-hic-8cn\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"PAM may have been modified without authorization\",\"enabled\":true,\"expression\":\"(\\n (chmod.file.path in [ ~\\\"/etc/pam.d/**\\\", \\\"/etc/pam.conf\\\" ])\\n) \\u0026\\u0026 chmod.file.destination.mode != chmod.file.mode\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"pam_modification_chmod\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"pfu-dvh-e5w\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"PAM may have been modified without authorization\",\"enabled\":true,\"expression\":\"(\\n (chown.file.path in [ ~\\\"/etc/pam.d/**\\\", \\\"/etc/pam.conf\\\" ])\\n) \\u0026\\u0026 (chown.file.destination.uid != chown.file.uid || chown.file.destination.gid != chown.file.gid)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"pam_modification_chown\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"x7i-34j-1rv\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"PAM may have been modified without authorization\",\"enabled\":true,\"expression\":\"(\\n (link.file.path in [ ~\\\"/etc/pam.d/**\\\", \\\"/etc/pam.conf\\\" ]\\n || link.file.destination.path in [ ~\\\"/etc/pam.d/**\\\", \\\"/etc/pam.conf\\\" ])\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"pam_modification_link\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"w7o-w48-j34\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"PAM may have been modified without authorization\",\"enabled\":true,\"expression\":\"(\\n open.flags \\u0026 (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) \\u003e 0 \\u0026\\u0026\\n (open.file.path in [ ~\\\"/etc/pam.d/**\\\", \\\"/etc/pam.conf\\\" ])\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"pam_modification_open\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"wri-hx3-4n3\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"PAM may have been modified without authorization\",\"enabled\":true,\"expression\":\"(\\n (rename.file.path in [ ~\\\"/etc/pam.d/**\\\", \\\"/etc/pam.conf\\\" ]\\n || rename.file.destination.path in [ ~\\\"/etc/pam.d/**\\\", \\\"/etc/pam.conf\\\" ])\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"pam_modification_rename\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"900-1sj-xhs\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"PAM may have been modified without authorization\",\"enabled\":true,\"expression\":\"(\\n (unlink.file.path in [ ~\\\"/etc/pam.d/**\\\", \\\"/etc/pam.conf\\\" ])\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"pam_modification_unlink\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"pxk-42u-fga\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"PAM may have been modified without authorization\",\"enabled\":true,\"expression\":\"(\\n (utimes.file.path in [ ~\\\"/etc/pam.d/**\\\", \\\"/etc/pam.conf\\\" ])\\n) \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"pam_modification_utimes\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"l2e-aka-bw6\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"The passwd or chpasswd utility was used to modify an account password\",\"enabled\":true,\"expression\":\"exec.file.path in [\\\"/usr/bin/passwd\\\", \\\"/usr/sbin/chpasswd\\\"] \\u0026\\u0026 exec.args_flags not in [\\\"S\\\", \\\"status\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"passwd_execution\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"460-gys-lqp\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Network Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A DNS lookup was done for a pastebin-like site\",\"enabled\":true,\"expression\":\"dns.question.name in [\\\"pastebin.com\\\", \\\"ghostbin.com\\\", \\\"termbin.com\\\", \\\"klgrth.io\\\"] \\u0026\\u0026 process.file.name != \\\"\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"paste_site\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"7vi-w5r-h15\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Critical system binaries may have been modified\",\"enabled\":true,\"expression\":\"(\\n (chmod.file.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\", ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/**\\\" ])\\n \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\\n \\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n) \\u0026\\u0026 chmod.file.destination.mode != chmod.file.mode\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"pci_11_5_critical_binaries_chmod\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"xiu-ghq-4zi\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Critical system binaries may have been modified\",\"enabled\":true,\"expression\":\"(\\n (chown.file.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\", ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/**\\\" ])\\n \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\\n \\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n) \\u0026\\u0026 (chown.file.destination.uid != chown.file.uid || chown.file.destination.gid != chown.file.gid)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"pci_11_5_critical_binaries_chown\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"9ym-18v-5zi\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Critical system binaries may have been modified\",\"enabled\":true,\"expression\":\"(\\n (link.file.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\", ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/**\\\" ]\\n || link.file.destination.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\", ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/**\\\" ])\\n \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\\n \\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"pci_11_5_critical_binaries_link\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"fpa-r6g-2em\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Critical system binaries may have been modified\",\"enabled\":true,\"expression\":\"(\\n open.flags \\u0026 (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) \\u003e 0 \\u0026\\u0026\\n open.file.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\", ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/**\\\" ]\\n \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\\n \\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"pci_11_5_critical_binaries_open\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-y7j\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Critical system binaries may have been modified\",\"enabled\":true,\"expression\":\"(\\n open.flags \\u0026 (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) \\u003e 0 \\u0026\\u0026\\n open.file.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\", ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/**\\\" ]\\n \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\\n \\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n) \\u0026\\u0026 container.created_at \\u003e 90s\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"pci_11_5_critical_binaries_open_v2\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"9pu-mp3-xea\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Critical system binaries may have been modified\",\"enabled\":true,\"expression\":\"(\\n (rename.file.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\", ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/**\\\" ]\\n || rename.file.destination.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\", ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/**\\\" ])\\n \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\\n \\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"pci_11_5_critical_binaries_rename\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"ssp-47a-p20\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Critical system binaries may have been modified\",\"enabled\":true,\"expression\":\"(\\n (unlink.file.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\", ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/**\\\" ])\\n \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\\n \\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"pci_11_5_critical_binaries_unlink\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"q0u-s8m-8pd\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Critical system binaries may have been modified\",\"enabled\":true,\"expression\":\"(\\n (utimes.file.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\", ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/**\\\" ])\\n \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\\n \\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"pci_11_5_critical_binaries_utimes\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-8j2\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A web application spawned a shell or shell utility\",\"enabled\":true,\"expression\":\"(exec.file.path in [ \\\"/bin/dash\\\",\\n \\\"/usr/bin/dash\\\",\\n \\\"/bin/sh\\\",\\n \\\"/bin/static-sh\\\",\\n \\\"/usr/bin/sh\\\",\\n \\\"/bin/bash\\\",\\n \\\"/usr/bin/bash\\\",\\n \\\"/bin/bash-static\\\",\\n \\\"/usr/bin/zsh\\\",\\n \\\"/usr/bin/ash\\\",\\n \\\"/usr/bin/csh\\\",\\n \\\"/usr/bin/ksh\\\",\\n \\\"/usr/bin/tcsh\\\",\\n \\\"/usr/lib/initramfs-tools/bin/busybox\\\",\\n \\\"/bin/busybox\\\",\\n \\\"/usr/bin/fish\\\",\\n \\\"/bin/ksh93\\\",\\n \\\"/bin/rksh\\\",\\n \\\"/bin/rksh93\\\",\\n \\\"/bin/lksh\\\",\\n \\\"/bin/mksh\\\",\\n \\\"/bin/mksh-static\\\",\\n \\\"/usr/bin/csharp\\\",\\n \\\"/bin/posh\\\",\\n \\\"/usr/bin/rc\\\",\\n \\\"/bin/sash\\\",\\n \\\"/usr/bin/yash\\\",\\n \\\"/bin/zsh5\\\",\\n \\\"/bin/zsh5-static\\\" ] || exec.comm in [\\\"wget\\\", \\\"curl\\\", \\\"lwp-download\\\"] || exec.file.path in [\\\"/bin/cat\\\",\\\"/bin/chgrp\\\",\\\"/bin/chmod\\\",\\\"/bin/chown\\\",\\\"/bin/cp\\\",\\\"/bin/date\\\",\\\"/bin/dd\\\",\\\"/bin/df\\\",\\\"/bin/dir\\\",\\\"/bin/echo\\\",\\\"/bin/ln\\\",\\\"/bin/ls\\\",\\\"/bin/mkdir\\\",\\\"/bin/mknod\\\",\\\"/bin/mktemp\\\",\\\"/bin/mv\\\",\\\"/bin/pwd\\\",\\\"/bin/readlink\\\",\\\"/bin/rm\\\",\\\"/bin/rmdir\\\",\\\"/bin/sleep\\\",\\\"/bin/stty\\\",\\\"/bin/sync\\\",\\\"/bin/touch\\\",\\\"/bin/uname\\\",\\\"/bin/vdir\\\",\\\"/usr/bin/arch\\\",\\\"/usr/bin/b2sum\\\",\\\"/usr/bin/base32\\\",\\\"/usr/bin/base64\\\",\\\"/usr/bin/basename\\\",\\\"/usr/bin/chcon\\\",\\\"/usr/bin/cksum\\\",\\\"/usr/bin/comm\\\",\\\"/usr/bin/csplit\\\",\\\"/usr/bin/cut\\\",\\\"/usr/bin/dircolors\\\",\\\"/usr/bin/dirname\\\",\\\"/usr/bin/du\\\",\\\"/usr/bin/env\\\",\\\"/usr/bin/expand\\\",\\\"/usr/bin/expr\\\",\\\"/usr/bin/factor\\\",\\\"/usr/bin/fmt\\\",\\\"/usr/bin/fold\\\",\\\"/usr/bin/groups\\\",\\\"/usr/bin/head\\\",\\\"/usr/bin/hostid\\\",\\\"/usr/bin/id\\\",\\\"/usr/bin/install\\\",\\\"/usr/bin/join\\\",\\\"/usr/bin/link\\\",\\\"/usr/bin/logname\\\",\\\"/usr/bin/md5sum\\\",\\\"/usr/bin/md5sum.textutils\\\",\\\"/usr/bin/mkfifo\\\",\\\"/usr/bin/nice\\\",\\\"/usr/bin/nl\\\",\\\"/usr/bin/nohup\\\",\\\"/usr/bin/nproc\\\",\\\"/usr/bin/numfmt\\\",\\\"/usr/bin/od\\\",\\\"/usr/bin/paste\\\",\\\"/usr/bin/pathchk\\\",\\\"/usr/bin/pinky\\\",\\\"/usr/bin/pr\\\",\\\"/usr/bin/printenv\\\",\\\"/usr/bin/printf\\\",\\\"/usr/bin/ptx\\\",\\\"/usr/bin/realpath\\\",\\\"/usr/bin/runcon\\\",\\\"/usr/bin/seq\\\",\\\"/usr/bin/sha1sum\\\",\\\"/usr/bin/sha224sum\\\",\\\"/usr/bin/sha256sum\\\",\\\"/usr/bin/sha384sum\\\",\\\"/usr/bin/sha512sum\\\",\\\"/usr/bin/shred\\\",\\\"/usr/bin/shuf\\\",\\\"/usr/bin/sort\\\",\\\"/usr/bin/split\\\",\\\"/usr/bin/stat\\\",\\\"/usr/bin/stdbuf\\\",\\\"/usr/bin/sum\\\",\\\"/usr/bin/tac\\\",\\\"/usr/bin/tail\\\",\\\"/usr/bin/tee\\\",\\\"/usr/bin/test\\\",\\\"/usr/bin/timeout\\\",\\\"/usr/bin/tr\\\",\\\"/usr/bin/truncate\\\",\\\"/usr/bin/tsort\\\",\\\"/usr/bin/tty\\\",\\\"/usr/bin/unexpand\\\",\\\"/usr/bin/uniq\\\",\\\"/usr/bin/unlink\\\",\\\"/usr/bin/users\\\",\\\"/usr/bin/wc\\\",\\\"/usr/bin/who\\\",\\\"/usr/bin/whoami\\\",\\\"/usr/sbin/chroot\\\"]) \\u0026\\u0026\\n(process.parent.file.name in [\\\"apache2\\\", \\\"nginx\\\", ~\\\"tomcat*\\\", \\\"httpd\\\"] || process.parent.file.name =~ \\\"php*\\\")\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"potential_web_shell_parent\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-oy4\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A tool used to dump process memory has been executed\",\"enabled\":true,\"expression\":\"exec.file.name in [\\\"procmon.exe\\\",\\\"procdump.exe\\\"]\",\"filters\":[\"os == \\\"windows\\\"\"],\"name\":\"procdump_execution\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-oyv\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Processes were listed using the ps command\",\"enabled\":true,\"expression\":\"exec.comm == \\\"ps\\\" \\u0026\\u0026 exec.argv not in [\\\"-p\\\", \\\"--pid\\\"] \\u0026\\u0026 process.ancestors.file.name not in [\\\"qualys-cloud-agent\\\", \\\"amazon-ssm-agent\\\"] \\u0026\\u0026 process.parent.file.name not in [\\\"rkhunter\\\", \\\"jspawnhelper\\\", ~\\\"vm-agent*\\\", \\\"PassengerAgent\\\", \\\"node\\\", \\\"wdavdaemon\\\", \\\"chkrootkit\\\", \\\"tsagentd\\\", \\\"wazuh-modulesd\\\", \\\"wdavdaemon\\\", \\\"talend-remote-engine-service\\\", \\\"check_procs\\\", \\\"newrelic-daemon\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"ps_discovery\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"pwu-7u7-iiq\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Kernel Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A process uses an anti-debugging technique to block debuggers\",\"enabled\":true,\"expression\":\"ptrace.request == PTRACE_TRACEME \\u0026\\u0026 process.file.name != \\\"\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"ptrace_antidebug\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"kpm-7kh-xz5\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Kernel Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A process attempted to inject code into another process\",\"enabled\":true,\"expression\":\"ptrace.request == PTRACE_POKETEXT || ptrace.request == PTRACE_POKEDATA || ptrace.request == PTRACE_POKEUSR\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"ptrace_injection\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"wpz-bim-6rb\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A process was spawned with indicators of exploitation of CVE-2021-4034\",\"enabled\":true,\"expression\":\"(exec.file.path == \\\"/usr/bin/pkexec\\\" \\u0026\\u0026 exec.envs in [~\\\"*SHELL*\\\", ~\\\"*PATH*\\\"] \\u0026\\u0026 exec.envs not in [~\\\"*DISPLAY*\\\", ~\\\"*DESKTOP_SESSION*\\\"] \\u0026\\u0026 exec.uid != 0)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"pwnkit_privilege_escalation\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"g7f-kfr-tdb\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Python code was provided on the command line\",\"enabled\":true,\"expression\":\"exec.file.name == ~\\\"python*\\\" \\u0026\\u0026 exec.args_flags in [\\\"c\\\"] \\u0026\\u0026 exec.args in [~\\\"*-c*SOCK_STREAM*\\\", ~\\\"*-c*subprocess*\\\", \\\"*-c*/bash*\\\", \\\"*-c*/bin/sh*\\\", \\\"*-c*pty.spawn*\\\"] \\u0026\\u0026 exec.args !~ \\\"*setuptools*\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"python_cli_code\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-do7\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Possible ransomware note created under common user directories\",\"enabled\":true,\"expression\":\"open.flags \\u0026 O_CREAT \\u003e 0\\n\\u0026\\u0026 open.file.path in [~\\\"/home/**\\\", ~\\\"/root/**\\\", ~\\\"/bin/**\\\", ~\\\"/usr/bin/**\\\", ~\\\"/opt/**\\\", ~\\\"/etc/**\\\", ~\\\"/var/log/**\\\", ~\\\"/var/lib/log/**\\\", ~\\\"/var/backup/**\\\", ~\\\"/var/www/**\\\"]\\n\\u0026\\u0026 open.file.name in [r\\\"(?i).*(restore|recover|read|instruction|how_to|ransom|lock).*(your_|crypt|lock|file|ransom).*\\\"] \\u0026\\u0026 open.file.name not in [r\\\".*\\\\.lock$\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"ransomware_note\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-y27\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"RC scripts modified\",\"enabled\":true,\"expression\":\"(open.flags \\u0026 (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) \\u003e 0 \\u0026\\u0026 (open.file.path in [\\\"/etc/rc.common\\\", \\\"/etc/rc.local\\\"])) \\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"rc_scripts_modified\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-qwm\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"The kubeconfig file was accessed\",\"enabled\":true,\"expression\":\"open.file.path in [~\\\"/home/*/.kube/config\\\", \\\"/root/.kube/config\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"read_kubeconfig\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-rhk\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"OS information was read from the /etc/lsb-release file\",\"enabled\":true,\"expression\":\"open.file.path == \\\"/etc/lsb-release\\\" \\u0026\\u0026 open.flags \\u0026 O_RDONLY \\u003e 0\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"read_release_info\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-npv\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Detects CVE-2022-0543\",\"enabled\":true,\"expression\":\"(open.file.path =~ \\\"/usr/lib/x86_64-linux-gnu/*\\\" \\u0026\\u0026 open.file.name in [\\\"libc-2.29.so\\\", \\\"libc-2.30.so\\\", \\\"libc-2.31.so\\\", \\\"libc-2.32.so\\\", \\\"libc-2.33.so\\\", \\\"libc-2.34.so\\\", \\\"libc-2.35.so\\\", \\\"libc-2.36.so\\\", \\\"libc-2.37.so\\\"]) \\u0026\\u0026 process.ancestors.comm in [\\\"redis-check-rdb\\\", \\\"redis-server\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"redis_sandbox_escape\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-wv3\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Redis module has been created\",\"enabled\":true,\"expression\":\"(open.flags \\u0026 (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) \\u003e 0 \\u0026\\u0026 open.file.path =~ \\\"/tmp/**\\\" \\u0026\\u0026 open.file.name in [~\\\"*.rdb\\\", ~\\\"*.aof\\\", ~\\\"*.so\\\"]) \\u0026\\u0026 process.file.name in [\\\"redis-check-rdb\\\", \\\"redis-server\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"redis_save_module\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"tlu-qlm-1ow\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"The runc binary was modified in a non-standard way\",\"enabled\":true,\"expression\":\"open.file.path in [\\\"/usr/bin/runc\\\", \\\"/usr/sbin/runc\\\", \\\"/usr/bin/docker-runc\\\"]\\n\\u0026\\u0026 open.flags \\u0026 O_CREAT|O_TRUNC|O_RDWR|O_WRONLY \\u003e 0\\n\\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\\n\\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"runc_modification\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-vqm\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A scheduled task was created\",\"enabled\":true,\"expression\":\"exec.file.name in [\\\"at.exe\\\",\\\"schtasks.exe\\\"]\",\"filters\":[\"os == \\\"windows\\\"\"],\"name\":\"scheduled_task_creation\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"wgq-lg4-tas\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Kernel Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"SELinux enforcement status was disabled\",\"enabled\":true,\"expression\":\"selinux.enforce.status in [\\\"permissive\\\", \\\"disabled\\\"] \\u0026\\u0026 process.ancestors.args != ~\\\"*BECOME-SUCCESS*\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"selinux_disable_enforcement\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-j45\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Kernel Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A process is tracing privileged processes or sshd for possible credential dumping\",\"enabled\":true,\"expression\":\"(ptrace.request == PTRACE_PEEKTEXT || ptrace.request == PTRACE_PEEKDATA || ptrace.request == PTRACE_PEEKUSR) \\u0026\\u0026 ptrace.tracee.euid == 0 \\u0026\\u0026 process.comm not in [\\\"dlv\\\", \\\"dlv-linux-amd64\\\", \\\"strace\\\", \\\"gdb\\\", \\\"lldb-server\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"sensitive_tracing\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-uv8\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"systemctl used to stop a service\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"systemctl\\\" \\u0026\\u0026 exec.args in [~\\\"*stop*\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"service_stop\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"dfr-by9-sx8\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Shell History was Deleted\",\"enabled\":true,\"expression\":\"(unlink.file.name =~ r\\\".([dbazfi]*sh)(_history)$\\\") \\u0026\\u0026 process.comm not in [\\\"dockerd\\\", \\\"containerd\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"shell_history_deleted\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"dmf-a2c-odj\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A symbolic link for shell history was created targeting /dev/null\",\"enabled\":true,\"expression\":\"exec.comm == \\\"ln\\\" \\u0026\\u0026 exec.args in [~\\\"*.*history*\\\", \\\"/dev/null\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"shell_history_symlink\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"v5x-8l4-d6a\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Shell History was Deleted\",\"enabled\":true,\"expression\":\"open.flags \\u0026 (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) \\u003e 0 \\u0026\\u0026 open.file.name =~ r\\\".([dbazfi]*sh)(_history)$\\\" \\u0026\\u0026 open.file.path in [~\\\"/root/*\\\", ~\\\"/home/**\\\"] \\u0026\\u0026 process.file.name == \\\"truncate\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"shell_history_truncated\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-fn2\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Shell profile was modified\",\"enabled\":true,\"expression\":\"open.file.path in [~\\\"/home/*/*profile\\\", ~\\\"/home/*/*rc\\\"] \\u0026\\u0026 open.flags \\u0026 ((O_CREAT|O_TRUNC|O_RDWR|O_WRONLY)) \\u003e 0\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"shell_profile_modification\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"htc-275-0wt\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"SSH modified keys may have been modified\",\"enabled\":true,\"expression\":\"(\\n chmod.file.name in [ \\\"authorized_keys\\\", \\\"authorized_keys2\\\" ] \\u0026\\u0026 (chmod.file.path in [ ~\\\"/root/.ssh/*\\\", ~\\\"/home/*/.ssh/*\\\", ~\\\"/var/lib/*/.ssh/*\\\" ])\\n) \\u0026\\u0026 chmod.file.destination.mode != chmod.file.mode\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"ssh_authorized_keys_chmod\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"7q3-6aa-pix\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"SSH modified keys may have been modified\",\"enabled\":true,\"expression\":\"(\\n chown.file.name in [ \\\"authorized_keys\\\", \\\"authorized_keys2\\\" ] \\u0026\\u0026 (chown.file.path in [ ~\\\"/root/.ssh/*\\\", ~\\\"/home/*/.ssh/*\\\", ~\\\"/var/lib/*/.ssh/*\\\" ])\\n) \\u0026\\u0026 (chown.file.destination.uid != chown.file.uid || chown.file.destination.gid != chown.file.gid)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"ssh_authorized_keys_chown\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"91f-pyq-54k\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"SSH modified keys may have been modified\",\"enabled\":true,\"expression\":\"(\\n link.file.name in [ \\\"authorized_keys\\\", \\\"authorized_keys2\\\" ] \\u0026\\u0026 (link.file.path in [ ~\\\"/root/.ssh/*\\\", ~\\\"/home/*/.ssh/*\\\", ~\\\"/var/lib/*/.ssh/*\\\" ]\\n || link.file.destination.path in [ ~\\\"/root/.ssh/*\\\", ~\\\"/home/*/.ssh/*\\\", ~\\\"/var/lib/*/.ssh/*\\\" ])\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"ssh_authorized_keys_link\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"rpc-ji0-zfu\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"SSH modified keys may have been modified\",\"enabled\":true,\"expression\":\"(\\n open.flags \\u0026 (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) \\u003e 0 \\u0026\\u0026\\n open.file.name in [ \\\"authorized_keys\\\", \\\"authorized_keys2\\\" ] \\u0026\\u0026 (open.file.path in [ ~\\\"/root/.ssh/*\\\", ~\\\"/home/*/.ssh/*\\\", ~\\\"/var/lib/*/.ssh/*\\\" ])\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"ssh_authorized_keys_open\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-qwu\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"SSH modified keys may have been modified\",\"enabled\":true,\"expression\":\"(\\n open.flags \\u0026 (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) \\u003e 0 \\u0026\\u0026\\n open.file.name in [ \\\"authorized_keys\\\", \\\"authorized_keys2\\\" ] \\u0026\\u0026 (open.file.path in [ ~\\\"/root/.ssh/*\\\", ~\\\"/home/*/.ssh/*\\\", ~\\\"/var/lib/*/.ssh/*\\\" ])\\n) \\u0026\\u0026 container.created_at \\u003e 90s\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"ssh_authorized_keys_open_v2\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"t5u-qdx-650\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"SSH modified keys may have been modified\",\"enabled\":true,\"expression\":\"(\\n rename.file.name in [ \\\"authorized_keys\\\", \\\"authorized_keys2\\\" ] \\u0026\\u0026 (rename.file.path in [ ~\\\"/root/.ssh/*\\\", ~\\\"/home/*/.ssh/*\\\", ~\\\"/var/lib/*/.ssh/*\\\" ]\\n || rename.file.destination.path in [ ~\\\"/root/.ssh/*\\\", ~\\\"/home/*/.ssh/*\\\", ~\\\"/var/lib/*/.ssh/*\\\" ])\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"ssh_authorized_keys_rename\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"y0y-3gl-645\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"SSH modified keys may have been modified\",\"enabled\":true,\"expression\":\"(\\n unlink.file.name in [ \\\"authorized_keys\\\", \\\"authorized_keys2\\\" ] \\u0026\\u0026 (unlink.file.path in [ ~\\\"/root/.ssh/*\\\", ~\\\"/home/*/.ssh/*\\\", ~\\\"/var/lib/*/.ssh/*\\\" ])\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"ssh_authorized_keys_unlink\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"hba-kfe-1xr\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"SSH modified keys may have been modified\",\"enabled\":true,\"expression\":\"(\\n utimes.file.name in [ \\\"authorized_keys\\\", \\\"authorized_keys2\\\" ] \\u0026\\u0026 (utimes.file.path in [ ~\\\"/root/.ssh/*\\\", ~\\\"/home/*/.ssh/*\\\", ~\\\"/var/lib/*/.ssh/*\\\" ])\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"ssh_authorized_keys_utimes\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-o13\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"The configuration directory for an ssh worm\",\"enabled\":true,\"expression\":\"open.file.path in [\\\"/root/.prng/*\\\", ~\\\"/home/*/.prng/*\\\", ~\\\"/root/.config/prng/*\\\", ~\\\"/home/*/.config/prng/*\\\"] \\u0026\\u0026 open.flags \\u0026 (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) \\u003e 0\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"ssh_it_tool_config_write\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"y5i-yxn-27t\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"SSL certificates may have been tampered with\",\"enabled\":true,\"expression\":\"(\\n (chmod.file.path in [ ~\\\"/etc/ssl/certs/**\\\", ~\\\"/etc/pki/**\\\" ])\\n \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n) \\u0026\\u0026 chmod.file.mode != chmod.file.destination.mode\\n\\u0026\\u0026 process.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n\\u0026\\u0026 process.ancestors.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n\\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n\\u0026\\u0026 process.file.name !~ \\\"runc*\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"ssl_certificate_tampering_chmod\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"kyr-sg6-us9\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"SSL certificates may have been tampered with\",\"enabled\":true,\"expression\":\"(\\n (chown.file.path in [ ~\\\"/etc/ssl/certs/**\\\", ~\\\"/etc/pki/**\\\" ])\\n \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n) \\u0026\\u0026 (chown.file.destination.uid != chown.file.uid || chown.file.destination.gid != chown.file.gid)\\n\\u0026\\u0026 process.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n\\u0026\\u0026 process.ancestors.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n\\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n\\u0026\\u0026 process.file.name !~ \\\"runc*\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"ssl_certificate_tampering_chown\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"w6f-wte-i63\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"SSL certificates may have been tampered with\",\"enabled\":true,\"expression\":\"(\\n (link.file.path in [ ~\\\"/etc/ssl/certs/**\\\", ~\\\"/etc/pki/**\\\" ]\\n || link.file.destination.path in [ ~\\\"/etc/ssl/certs/**\\\", ~\\\"/etc/pki/**\\\" ])\\n \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n \\u0026\\u0026 process.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n \\u0026\\u0026 process.ancestors.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n \\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n \\u0026\\u0026 process.file.name !~ \\\"runc*\\\"\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"ssl_certificate_tampering_link\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"191-ty1-ede\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"SSL certificates may have been tampered with\",\"enabled\":true,\"expression\":\"(\\n open.flags \\u0026 (O_CREAT|O_RDWR|O_WRONLY) \\u003e 0 \\u0026\\u0026\\n (open.file.path in [ ~\\\"/etc/ssl/certs/**\\\", ~\\\"/etc/pki/**\\\" ])\\n)\\n\\u0026\\u0026 process.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n\\u0026\\u0026 process.ancestors.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n\\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n\\u0026\\u0026 process.file.name !~ \\\"runc*\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"ssl_certificate_tampering_open\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-qt6\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"SSL certificates may have been tampered with\",\"enabled\":true,\"expression\":\"(\\n open.flags \\u0026 (O_CREAT|O_RDWR|O_WRONLY) \\u003e 0 \\u0026\\u0026\\n (open.file.path in [ ~\\\"/etc/ssl/certs/**\\\", ~\\\"/etc/pki/**\\\" ])\\n)\\n\\u0026\\u0026 process.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n\\u0026\\u0026 process.ancestors.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n\\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n\\u0026\\u0026 process.file.name !~ \\\"runc*\\\"\\n\\u0026\\u0026 container.created_at \\u003e 90s\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"ssl_certificate_tampering_open_v2\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"o5t-b08-86p\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"SSL certificates may have been tampered with\",\"enabled\":true,\"expression\":\"(\\n (rename.file.path in [ ~\\\"/etc/ssl/certs/**\\\", ~\\\"/etc/pki/**\\\" ]\\n || rename.file.destination.path in [ ~\\\"/etc/ssl/certs/**\\\", ~\\\"/etc/pki/**\\\" ])\\n \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\\n\\u0026\\u0026 process.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n\\u0026\\u0026 process.ancestors.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n\\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n\\u0026\\u0026 process.file.name !~ \\\"runc*\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"ssl_certificate_tampering_rename\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"9y1-cbb-p03\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"SSL certificates may have been tampered with\",\"enabled\":true,\"expression\":\"(\\n (unlink.file.path in [ ~\\\"/etc/ssl/certs/**\\\" ])\\n \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\\n\\u0026\\u0026 process.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n\\u0026\\u0026 process.ancestors.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n\\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n\\u0026\\u0026 process.file.name !~ \\\"runc*\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"ssl_certificate_tampering_unlink\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"ayv-hqe-lx8\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"SSL certificates may have been tampered with\",\"enabled\":true,\"expression\":\"(\\n (utimes.file.path in [ ~\\\"/etc/ssl/certs/**\\\" ])\\n \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\\n\\u0026\\u0026 process.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n\\u0026\\u0026 process.ancestors.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n\\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n\\u0026\\u0026 process.file.name !~ \\\"runc*\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"ssl_certificate_tampering_utimes\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-crv\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Sudoers policy file may have been modified without authorization\",\"enabled\":true,\"expression\":\"(\\n (chmod.file.path == \\\"/etc/sudoers\\\") \\n) \\u0026\\u0026 chmod.file.destination.mode != chmod.file.mode \\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"sudoers_policy_modified_chmod\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-l8e\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Sudoers policy file may have been modified without authorization\",\"enabled\":true,\"expression\":\"(\\n (chown.file.path == \\\"/etc/sudoers\\\")\\n) \\u0026\\u0026 (chown.file.destination.uid != chown.file.uid || chown.file.destination.gid != chown.file.gid)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"sudoers_policy_modified_chown\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-myb\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Sudoers policy file may have been modified without authorization\",\"enabled\":true,\"expression\":\"(\\n (link.file.path == \\\"/etc/sudoers\\\"\\n || link.file.destination.path == \\\"/etc/sudoers\\\")\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"sudoers_policy_modified_link\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-mmo\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Sudoers policy file may have been modified without authorization\",\"enabled\":true,\"expression\":\"\\n(open.flags \\u0026 (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) \\u003e 0 \\u0026\\u0026\\n(open.file.path == \\\"/etc/sudoers\\\")) \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"sudoers_policy_modified_open\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-550\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Sudoers policy file may have been modified without authorization\",\"enabled\":true,\"expression\":\"(\\n (rename.file.path == \\\"/etc/sudoers\\\"\\n || rename.file.destination.path == \\\"/etc/sudoers\\\")\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"sudoers_policy_modified_rename\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-bxs\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Sudoers policy file may have been modified without authorization\",\"enabled\":true,\"expression\":\"(\\n (unlink.file.path == \\\"/etc/sudoers\\\")\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"sudoers_policy_modified_unlink\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-s07\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Sudoers policy file may have been modified without authorization\",\"enabled\":true,\"expression\":\"(\\n (utimes.file.path == \\\"/etc/sudoers\\\")\\n) \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"sudoers_policy_modified_utimes\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-5wh\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"a SUID file was executed\",\"enabled\":true,\"expression\":\"(setuid.euid == 0 || setuid.uid == 0) \\u0026\\u0026 process.file.mode \\u0026 S_ISUID \\u003e 0 \\u0026\\u0026 process.file.uid == 0 \\u0026\\u0026 process.uid != 0 \\u0026\\u0026 process.file.path != \\\"/usr/bin/sudo\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"suid_file_execution\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-4y4\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A suspicious bitsadmin command has been executed\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"bitsadmin.exe\\\" \\u0026\\u0026 exec.cmdline in [~\\\"*addfile*\\\", ~\\\"*create*\\\", ~\\\"*resume*\\\"]\",\"filters\":[\"os == \\\"windows\\\"\"],\"name\":\"suspicious_bitsadmin_usage\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"afj-5sv-2wb\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A container management utility was executed in a container\",\"enabled\":true,\"expression\":\"exec.file.name in [\\\"docker\\\", \\\"kubectl\\\"] \\u0026\\u0026 container.id != \\\"\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"suspicious_container_client\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-2k6\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Suspicious usage of ntdsutil\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"ntdsutil.exe\\\" \\u0026\\u0026 exec.cmdline in [~\\\"*ntds*\\\", ~\\\"*create*\\\"]\",\"filters\":[\"os == \\\"windows\\\"\"],\"name\":\"suspicious_ntdsutil_usage\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-zo8\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Recently written or modified suid file has been executed\",\"enabled\":true,\"expression\":\"((process.file.mode \\u0026 S_ISUID \\u003e 0) \\u0026\\u0026 process.file.modification_time \\u003c 30s) \\u0026\\u0026 exec.file.name != \\\"\\\" \\u0026\\u0026 process.ancestors.file.path not in [\\\"/opt/datadog-agent/embedded/bin/agent\\\", \\\"/opt/datadog-agent/embedded/bin/system-probe\\\", \\\"/opt/datadog-agent/embedded/bin/security-agent\\\", \\\"/opt/datadog-agent/embedded/bin/process-agent\\\", \\\"/opt/datadog-agent/bin/agent/agent\\\", \\\"/opt/datadog/apm/inject/auto_inject_runc\\\", \\\"/usr/bin/dd-host-install\\\", \\\"/usr/bin/dd-host-container-install\\\", \\\"/usr/bin/dd-container-install\\\", \\\"/opt/datadog-agent/bin/datadog-cluster-agent\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"suspicious_suid_execution\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"48s-46n-g4w\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A service may have been modified without authorization\",\"enabled\":true,\"expression\":\"(\\n (chmod.file.path in [ ~\\\"/lib/systemd/system/**\\\", ~\\\"/usr/lib/systemd/system/**\\\", ~\\\"/etc/systemd/system/**\\\" ])\\n \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n) \\u0026\\u0026 chmod.file.destination.mode != chmod.file.mode\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"systemd_modification_chmod\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"wwy-h4d-pwm\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A service may have been modified without authorization\",\"enabled\":true,\"expression\":\"(\\n (chown.file.path in [ ~\\\"/lib/systemd/system/**\\\", ~\\\"/usr/lib/systemd/system/**\\\", ~\\\"/etc/systemd/system/**\\\" ])\\n \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n) \\u0026\\u0026 (chown.file.destination.uid != chown.file.uid || chown.file.destination.gid != chown.file.gid)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"systemd_modification_chown\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"64n-p6m-uq1\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A service may have been modified without authorization\",\"enabled\":true,\"expression\":\"(\\n (link.file.path in [ ~\\\"/lib/systemd/system/**\\\", ~\\\"/usr/lib/systemd/system/**\\\", ~\\\"/etc/systemd/system/**\\\" ]\\n || link.file.destination.path in [ ~\\\"/lib/systemd/system/**\\\", ~\\\"/usr/lib/systemd/system/**\\\", ~\\\"/etc/systemd/system/**\\\" ])\\n \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"systemd_modification_link\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"7zw-qbm-y6d\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A service may have been modified without authorization\",\"enabled\":true,\"expression\":\"(\\n open.flags \\u0026 (O_CREAT|O_RDWR|O_WRONLY) \\u003e 0 \\u0026\\u0026\\n (open.file.path in [ ~\\\"/lib/systemd/system/**\\\", ~\\\"/usr/lib/systemd/system/**\\\", ~\\\"/etc/systemd/system/**\\\" ])\\n \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"systemd_modification_open\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"prk-6q1-g0m\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A service may have been modified without authorization\",\"enabled\":true,\"expression\":\"(\\n (rename.file.path in [ ~\\\"/lib/systemd/system/**\\\", ~\\\"/usr/lib/systemd/system/**\\\", ~\\\"/etc/systemd/system/**\\\" ]\\n || rename.file.destination.path in [ ~\\\"/lib/systemd/system/**\\\", ~\\\"/usr/lib/systemd/system/**\\\", ~\\\"/etc/systemd/system/**\\\" ])\\n \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"systemd_modification_rename\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"jlt-y4v-dax\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A service may have been modified without authorization\",\"enabled\":true,\"expression\":\"(\\n (unlink.file.path in [ ~\\\"/lib/systemd/system/**\\\", ~\\\"/usr/lib/systemd/system/**\\\", ~\\\"/etc/systemd/system/**\\\" ])\\n \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"systemd_modification_unlink\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"yjj-o5q-x00\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"File Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A service may have been modified without authorization\",\"enabled\":true,\"expression\":\"(\\n (utimes.file.path in [ ~\\\"/lib/systemd/system/**\\\", ~\\\"/usr/lib/systemd/system/**\\\", ~\\\"/etc/systemd/system/**\\\" ])\\n \\u0026\\u0026 process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"systemd_modification_utimes\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-18q\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Tar archive created\",\"enabled\":true,\"expression\":\"exec.file.path == \\\"/usr/bin/tar\\\" \\u0026\\u0026 exec.args_flags in [\\\"create\\\",\\\"c\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"tar_execution\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-925\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A shell with a TTY was executed in a container\",\"enabled\":true,\"expression\":\"exec.file.path in [ \\\"/bin/dash\\\",\\n \\\"/usr/bin/dash\\\",\\n \\\"/bin/sh\\\",\\n \\\"/bin/static-sh\\\",\\n \\\"/usr/bin/sh\\\",\\n \\\"/bin/bash\\\",\\n \\\"/usr/bin/bash\\\",\\n \\\"/bin/bash-static\\\",\\n \\\"/usr/bin/zsh\\\",\\n \\\"/usr/bin/ash\\\",\\n \\\"/usr/bin/csh\\\",\\n \\\"/usr/bin/ksh\\\",\\n \\\"/usr/bin/tcsh\\\",\\n \\\"/usr/lib/initramfs-tools/bin/busybox\\\",\\n \\\"/bin/busybox\\\",\\n \\\"/usr/bin/fish\\\",\\n \\\"/bin/ksh93\\\",\\n \\\"/bin/rksh\\\",\\n \\\"/bin/rksh93\\\",\\n \\\"/bin/lksh\\\",\\n \\\"/bin/mksh\\\",\\n \\\"/bin/mksh-static\\\",\\n \\\"/usr/bin/csharp\\\",\\n \\\"/bin/posh\\\",\\n \\\"/usr/bin/rc\\\",\\n \\\"/bin/sash\\\",\\n \\\"/usr/bin/yash\\\",\\n \\\"/bin/zsh5\\\",\\n \\\"/bin/zsh5-static\\\" ] \\u0026\\u0026 process.tty_name != \\\"\\\" \\u0026\\u0026 process.container.id != \\\"\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"tty_shell_in_container\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-hlr\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Tunneling or port forwarding tool used\",\"enabled\":true,\"expression\":\"((exec.comm == \\\"pivotnacci\\\" || exec.comm == \\\"gost\\\") \\u0026\\u0026 process.args in [r\\\".*(-L|-C|-R).*\\\"]) || (exec.comm in [\\\"ssh\\\", \\\"sshd\\\"] \\u0026\\u0026 process.args in [r\\\".*(-R|-L|-D|w).*\\\"] \\u0026\\u0026 process.args in [r\\\"((25[0-5]|(2[0-4]|1\\\\d|[1-9])\\\\d)\\\\.?\\\\b){4}\\\"] ) || (exec.comm == \\\"sshuttle\\\" \\u0026\\u0026 process.args in [r\\\".*(-r|--remote|-l|--listen).*\\\"]) || (exec.comm == \\\"socat\\\" \\u0026\\u0026 process.args in [r\\\".*(TCP4-LISTEN:|SOCKS).*\\\"]) || (exec.comm in [\\\"iodine\\\", \\\"iodined\\\", \\\"dnscat\\\", \\\"hans\\\", \\\"hans-ubuntu\\\", \\\"ptunnel-ng\\\", \\\"ssf\\\", \\\"3proxy\\\", \\\"ngrok\\\"] \\u0026\\u0026 process.parent.comm in [\\\"bash\\\", \\\"dash\\\", \\\"ash\\\", \\\"sh\\\", \\\"tcsh\\\", \\\"csh\\\", \\\"zsh\\\", \\\"ksh\\\", \\\"fish\\\"])\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"tunnel_traffic\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"07y-k18-cih\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A user was created via an interactive session\",\"enabled\":true,\"expression\":\"exec.file.name in [\\\"useradd\\\", \\\"newusers\\\", \\\"adduser\\\"] \\u0026\\u0026 exec.tty_name !=\\\"\\\" \\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"] \\u0026\\u0026 exec.args_flags not in [\\\"D\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"user_created_tty\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-qem\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"A user was deleted via an interactive session\",\"enabled\":true,\"expression\":\"exec.file.name in [\\\"userdel\\\", \\\"deluser\\\"] \\u0026\\u0026 exec.tty_name !=\\\"\\\" \\u0026\\u0026 process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"user_deleted_tty\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}},{\"id\":\"def-000-vjv\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1707493323000,\"creator\":{\"name\":\"Detection Engineer\",\"handle\":\"\"},\"defaultRule\":true,\"description\":\"Command executed via WMI\",\"enabled\":true,\"expression\":\"exec.file.name in [~\\\"powershell*\\\",\\\"cmd.exe\\\"] \\u0026\\u0026 process.parent.file.name == \\\"WmiPrvSE.exe\\\"\",\"filters\":[\"os == \\\"windows\\\"\"],\"name\":\"wmi_spawning_shell\",\"updateDate\":1707493323000,\"updater\":{\"name\":\"Detection Engineer\",\"handle\":\"\"}}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:12 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Get-all-Cloud-Workload-Security-Agent-rules-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-all-Cloud-Workload-Security-Agent-rules-returns-OK-response.frozen index c9a383b55..6718e5385 100644 --- a/tests/scenarios/cassettes/v2/cloud_workload_security/Get-all-Cloud-Workload-Security-Agent-rules-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-all-Cloud-Workload-Security-Agent-rules-returns-OK-response.frozen @@ -1 +1 @@ -2022-05-12T09:51:24.499Z \ No newline at end of file +2024-03-08T14:19:13.469Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Get-all-Cloud-Workload-Security-Agent-rules-returns-OK-response.json b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-all-Cloud-Workload-Security-Agent-rules-returns-OK-response.json index 593063806..4e48128ad 100644 --- a/tests/scenarios/cassettes/v2/cloud_workload_security/Get-all-Cloud-Workload-Security-Agent-rules-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-all-Cloud-Workload-Security-Agent-rules-returns-OK-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"description\":\"My Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\",\"name\":\"testgetallcloudworkloadsecurityagentrulesreturnsokresponse1652349084\"},\"type\":\"agent_rule\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"testgetallcloudworkloadsecurityagentrulesreturnsokresponse1652349084\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"My Agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1652349084949,\"creationDate\":1652349084949,\"expression\":\"exec.file.name == \\\"sh\\\"\"},\"type\":\"agent_rule\",\"id\":\"w3n-qy8-qud\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json;charset=utf-8"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:51:24 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules"}, "response": {"body": {"string": "{\"data\":[{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"testgetallcloudworkloadsecurityagentrulesreturnsokresponse1652349084\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"My Agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1652349084949,\"creationDate\":1652349084949,\"expression\":\"exec.file.name == \\\"sh\\\"\"},\"type\":\"agent_rule\",\"id\":\"w3n-qy8-qud\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"new_binary_execution_in_container\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"A container executed a new a binary not found in the container image\",\"enabled\":true,\"defaultRule\":true,\"version\":1,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1652129913862,\"creationDate\":1652129906455,\"expression\":\"container.id !=\\\"\\\" && !process.file.in_upper_layer && process.file.modification_time < 30s && exec.file.name !=\\\"\\\"\"},\"type\":\"agent_rule\",\"id\":\"pwh-omk-qrr\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"testtypescriptgetallcloudworkloadsecurityagentrulesreturnsokresponse1652008845\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"My Agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1652008845797,\"creationDate\":1652008845797,\"expression\":\"exec.file.name == \\\"sh\\\"\"},\"type\":\"agent_rule\",\"id\":\"ntj-rfs-mw3\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"testtypescriptupdateacloudworkloadsecurityagentrulereturnsokresponse1651997887\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"Test Agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":2,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1651997888544,\"creationDate\":1651997888388,\"expression\":\"exec.file.name == \\\"sh\\\"\"},\"type\":\"agent_rule\",\"id\":\"dyn-u7u-v86\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"testtypescriptupdateacloudworkloadsecurityagentrulereturnsbadrequestresponse1651997886\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"My Agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1651997887223,\"creationDate\":1651997887223,\"expression\":\"exec.file.name == \\\"sh\\\"\"},\"type\":\"agent_rule\",\"id\":\"mlg-yxw-uig\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"testtypescriptgetallcloudworkloadsecurityagentrulesreturnsokresponse1651997885\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"My Agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1651997886363,\"creationDate\":1651997886363,\"expression\":\"exec.file.name == \\\"sh\\\"\"},\"type\":\"agent_rule\",\"id\":\"lq3-t6t-xng\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"testtypescriptgetacloudworkloadsecurityagentrulereturnsokresponse1651997885\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"My Agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1651997885869,\"creationDate\":1651997885869,\"expression\":\"exec.file.name == \\\"sh\\\"\"},\"type\":\"agent_rule\",\"id\":\"1hp-hpr-4ez\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"testtypescriptdeleteacloudworkloadsecurityagentrulereturnsokresponse1651997884\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"My Agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1651997884985,\"creationDate\":1651997884985,\"expression\":\"exec.file.name == \\\"sh\\\"\"},\"type\":\"agent_rule\",\"id\":\"mt3-pks-n5s\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"testtypescriptcreateacloudworkloadsecurityagentrulereturnsokresponse1651997883\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"Test Agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1651997884150,\"creationDate\":1651997884150,\"expression\":\"exec.file.name == \\\"sh\\\"\"},\"type\":\"agent_rule\",\"id\":\"r4a-yvz-rj7\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"testtypescriptgetallcloudworkloadsecurityagentrulesreturnsokresponse1651943471\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"My Agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1651943472022,\"creationDate\":1651943472022,\"expression\":\"exec.file.name == \\\"sh\\\"\"},\"type\":\"agent_rule\",\"id\":\"5k1-gwi-0aq\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"testtypescriptgetallcloudworkloadsecurityagentrulesreturnsokresponse1651915814\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"My Agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1651915815493,\"creationDate\":1651915815493,\"expression\":\"exec.file.name == \\\"sh\\\"\"},\"type\":\"agent_rule\",\"id\":\"lkj-jnq-r6s\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"testtypescriptgetallcloudworkloadsecurityagentrulesreturnsokresponse1651912469\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"My Agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1651912470539,\"creationDate\":1651912470539,\"expression\":\"exec.file.name == \\\"sh\\\"\"},\"type\":\"agent_rule\",\"id\":\"mbc-iwk-zpb\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"testtypescriptgetallcloudworkloadsecurityagentrulesreturnsokresponse1651867149\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"My Agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1651867150336,\"creationDate\":1651867150336,\"expression\":\"exec.file.name == \\\"sh\\\"\"},\"type\":\"agent_rule\",\"id\":\"fzb-lli-m26\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"suspicious_container_client\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"A container management utility was executed in a container\",\"enabled\":true,\"defaultRule\":true,\"version\":2,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1651671394200,\"creationDate\":1617722068555,\"expression\":\"exec.file.name in [\\\"docker\\\", \\\"kubectl\\\"] && container.id != \\\"\\\"\"},\"type\":\"agent_rule\",\"id\":\"9mk-xxe-lpw\"},{\"attributes\":{\"category\":\"Kernel Activity\",\"name\":\"kernel_module_load\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"A kernel module was loaded\",\"enabled\":true,\"defaultRule\":true,\"version\":2,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1650371511244,\"creationDate\":1650293718458,\"expression\":\"load_module.name != \\\"\\\"\"},\"type\":\"agent_rule\",\"id\":\"f5y-pdn-pnj\"},{\"attributes\":{\"category\":\"Kernel Activity\",\"name\":\"new_kernel_module_audit\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"A kernel module was loaded\",\"enabled\":true,\"defaultRule\":true,\"version\":2,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1650371511243,\"creationDate\":1650293718502,\"expression\":\"load_module.name != \\\"\\\"\"},\"type\":\"agent_rule\",\"id\":\"0dt-ev3-tgr\"},{\"attributes\":{\"category\":\"Kernel Activity\",\"name\":\"kernel_module_load_container\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"A container loaded a new kernel module\",\"enabled\":true,\"defaultRule\":true,\"version\":2,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1650371511241,\"creationDate\":1650293718705,\"expression\":\"load_module.name != \\\"\\\" && container.id !=\\\"\\\"\"},\"type\":\"agent_rule\",\"id\":\"ieg-lmk-cgo\"},{\"attributes\":{\"category\":\"Kernel Activity\",\"name\":\"new_kernel_module_audit_container\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"A kernel module was loaded\",\"enabled\":true,\"defaultRule\":true,\"version\":2,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1650371511240,\"creationDate\":1650293718457,\"expression\":\"load_module.name != \\\"\\\" && container.id !=\\\"\\\"\"},\"type\":\"agent_rule\",\"id\":\"rbg-5fp-tm8\"},{\"attributes\":{\"category\":\"Kernel Activity\",\"name\":\"ptrace_injection\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"A process attempted to inject code into another process\",\"enabled\":true,\"defaultRule\":true,\"version\":1,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1650293789265,\"creationDate\":1650293718540,\"expression\":\"ptrace.request == PTRACE_POKETEXT || ptrace.request == PTRACE_POKEDATA || ptrace.request == PTRACE_POKEUSR\"},\"type\":\"agent_rule\",\"id\":\"lzx-kkv-at3\"},{\"attributes\":{\"category\":\"Kernel Activity\",\"name\":\"ptrace_antidebug\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"A process uses an anti-debugging technique to block debuggers\",\"enabled\":true,\"defaultRule\":true,\"version\":1,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1650293789216,\"creationDate\":1650293718435,\"expression\":\"ptrace.request == PTRACE_TRACEME\"},\"type\":\"agent_rule\",\"id\":\"hnh-eio-mow\"},{\"attributes\":{\"category\":\"Kernel Activity\",\"name\":\"kernel_module_load_from_memory\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"A kernel module was loaded from memory\",\"enabled\":true,\"defaultRule\":true,\"version\":1,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1650293788996,\"creationDate\":1650293718630,\"expression\":\"load_module.loaded_from_memory == true\"},\"type\":\"agent_rule\",\"id\":\"j3f-cie-47b\"},{\"attributes\":{\"category\":\"Kernel Activity\",\"name\":\"kernel_module_load_from_memory_container\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"A kernel module was loaded from memory inside a container\",\"enabled\":true,\"defaultRule\":true,\"version\":1,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1650293788418,\"creationDate\":1650293718365,\"expression\":\"load_module.loaded_from_memory == true && container.id !=\\\"\\\"\"},\"type\":\"agent_rule\",\"id\":\"foo-pve-qbq\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"database_shell_execution\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"A database application spawned a shell, shell utility, or HTTP utility\",\"enabled\":true,\"defaultRule\":true,\"version\":2,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1649256369233,\"creationDate\":1617722069155,\"expression\":\"(exec.file.path in [ \\\"/bin/dash\\\", \\\"/usr/bin/dash\\\",\\n \\\"/bin/sh\\\", \\\"/bin/static-sh\\\", \\\"/usr/bin/sh\\\",\\n \\\"/usr/bin/bash\\\",\\n \\\"/bin/bash-static\\\",\\n \\\"/usr/bin/zsh\\\",\\n \\\"/usr/bin/ash\\\",\\n \\\"/usr/bin/csh\\\",\\n \\\"/usr/bin/ksh\\\",\\n \\\"/usr/bin/tcsh\\\",\\n \\\"/usr/lib/initramfs-tools/bin/busybox\\\",\\n \\\"/bin/busybox\\\",\\n \\\"/usr/bin/fish\\\",\\n \\\"/bin/ksh93\\\",\\n \\\"/bin/rksh\\\", \\\"/bin/rksh93\\\",\\n \\\"/bin/lksh\\\",\\n \\\"/bin/mksh\\\", \\\"/bin/mksh-static\\\",\\n \\\"/usr/bin/csharp\\\",\\n \\\"/bin/posh\\\",\\n \\\"/usr/bin/rc\\\",\\n \\\"/bin/sash\\\",\\n \\\"/usr/bin/yash\\\",\\n \\\"/bin/zsh5\\\", \\\"/bin/zsh5-static\\\" ] ||\\n exec.file.path in [\\\"/usr/bin/wget\\\", \\\"/usr/bin/curl\\\"] ||\\n exec.file.path in [\\\"/bin/cat\\\",\\\"/bin/chgrp\\\",\\\"/bin/chmod\\\",\\\"/bin/chown\\\",\\\"/bin/cp\\\",\\\"/bin/date\\\",\\\"/bin/dd\\\",\\\"/bin/df\\\",\\\"/bin/dir\\\",\\\"/bin/echo\\\",\\\"/bin/ln\\\",\\\"/bin/ls\\\",\\\"/bin/mkdir\\\",\\\"/bin/mknod\\\",\\\"/bin/mktemp\\\",\\\"/bin/mv\\\",\\\"/bin/pwd\\\",\\\"/bin/readlink\\\",\\\"/bin/rm\\\",\\\"/bin/rmdir\\\",\\\"/bin/sleep\\\",\\\"/bin/stty\\\",\\\"/bin/sync\\\",\\\"/bin/touch\\\",\\\"/bin/uname\\\",\\\"/bin/vdir\\\",\\\"/usr/bin/arch\\\",\\\"/usr/bin/b2sum\\\",\\\"/usr/bin/base32\\\",\\\"/usr/bin/base64\\\",\\\"/usr/bin/basename\\\",\\\"/usr/bin/chcon\\\",\\\"/usr/bin/cksum\\\",\\\"/usr/bin/comm\\\",\\\"/usr/bin/csplit\\\",\\\"/usr/bin/cut\\\",\\\"/usr/bin/dircolors\\\",\\\"/usr/bin/dirname\\\",\\\"/usr/bin/du\\\",\\\"/usr/bin/env\\\",\\\"/usr/bin/expand\\\",\\\"/usr/bin/expr\\\",\\\"/usr/bin/factor\\\",\\\"/usr/bin/fmt\\\",\\\"/usr/bin/fold\\\",\\\"/usr/bin/groups\\\",\\\"/usr/bin/head\\\",\\\"/usr/bin/hostid\\\",\\\"/usr/bin/id\\\",\\\"/usr/bin/install\\\",\\\"/usr/bin/join\\\",\\\"/usr/bin/link\\\",\\\"/usr/bin/logname\\\",\\\"/usr/bin/md5sum\\\",\\\"/usr/bin/md5sum.textutils\\\",\\\"/usr/bin/mkfifo\\\",\\\"/usr/bin/nice\\\",\\\"/usr/bin/nl\\\",\\\"/usr/bin/nohup\\\",\\\"/usr/bin/nproc\\\",\\\"/usr/bin/numfmt\\\",\\\"/usr/bin/od\\\",\\\"/usr/bin/paste\\\",\\\"/usr/bin/pathchk\\\",\\\"/usr/bin/pinky\\\",\\\"/usr/bin/pr\\\",\\\"/usr/bin/printenv\\\",\\\"/usr/bin/printf\\\",\\\"/usr/bin/ptx\\\",\\\"/usr/bin/realpath\\\",\\\"/usr/bin/runcon\\\",\\\"/usr/bin/seq\\\",\\\"/usr/bin/sha1sum\\\",\\\"/usr/bin/sha224sum\\\",\\\"/usr/bin/sha256sum\\\",\\\"/usr/bin/sha384sum\\\",\\\"/usr/bin/sha512sum\\\",\\\"/usr/bin/shred\\\",\\\"/usr/bin/shuf\\\",\\\"/usr/bin/sort\\\",\\\"/usr/bin/split\\\",\\\"/usr/bin/stat\\\",\\\"/usr/bin/stdbuf\\\",\\\"/usr/bin/sum\\\",\\\"/usr/bin/tac\\\",\\\"/usr/bin/tail\\\",\\\"/usr/bin/tee\\\",\\\"/usr/bin/test\\\",\\\"/usr/bin/timeout\\\",\\\"/usr/bin/tr\\\",\\\"/usr/bin/truncate\\\",\\\"/usr/bin/tsort\\\",\\\"/usr/bin/tty\\\",\\\"/usr/bin/unexpand\\\",\\\"/usr/bin/uniq\\\",\\\"/usr/bin/unlink\\\",\\\"/usr/bin/users\\\",\\\"/usr/bin/wc\\\",\\\"/usr/bin/who\\\",\\\"/usr/bin/whoami\\\",\\\"/usr/sbin/chroot\\\"]) &&\\nprocess.ancestors.file.name in [\\\"mysqld\\\", \\\"mongod\\\", \\\"postgres\\\"] &&\\n!(process.ancestors.file.name == \\\"initdb\\\" &&\\nexec.args == ~\\\"*locale -a*\\\")\"},\"type\":\"agent_rule\",\"id\":\"phy-tco-k7w\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"potential_web_shell\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"A webapp process (language engine or webserver) spawned a shell, shell utility, or HTTP utility\",\"enabled\":true,\"defaultRule\":true,\"version\":5,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1648752302471,\"creationDate\":1642158535124,\"expression\":\"(exec.file.path in [ \\\"/bin/dash\\\", \\\"/usr/bin/dash\\\",\\n \\\"/bin/sh\\\", \\\"/bin/static-sh\\\", \\\"/usr/bin/sh\\\",\\n \\\"/usr/bin/bash\\\",\\n \\\"/bin/bash-static\\\",\\n \\\"/usr/bin/zsh\\\",\\n \\\"/usr/bin/ash\\\",\\n \\\"/usr/bin/csh\\\",\\n \\\"/usr/bin/ksh\\\",\\n \\\"/usr/bin/tcsh\\\",\\n \\\"/usr/lib/initramfs-tools/bin/busybox\\\",\\n \\\"/bin/busybox\\\",\\n \\\"/usr/bin/fish\\\",\\n \\\"/bin/ksh93\\\",\\n \\\"/bin/rksh\\\", \\\"/bin/rksh93\\\",\\n \\\"/bin/lksh\\\",\\n \\\"/bin/mksh\\\", \\\"/bin/mksh-static\\\",\\n \\\"/usr/bin/csharp\\\",\\n \\\"/bin/posh\\\",\\n \\\"/usr/bin/rc\\\",\\n \\\"/bin/sash\\\",\\n \\\"/usr/bin/yash\\\",\\n \\\"/bin/zsh5\\\", \\\"/bin/zsh5-static\\\" ] || exec.file.path in [\\\"/usr/bin/wget\\\", \\\"/usr/bin/curl\\\"] || exec.file.path in [\\\"/bin/cat\\\",\\\"/bin/chgrp\\\",\\\"/bin/chmod\\\",\\\"/bin/chown\\\",\\\"/bin/cp\\\",\\\"/bin/date\\\",\\\"/bin/dd\\\",\\\"/bin/df\\\",\\\"/bin/dir\\\",\\\"/bin/echo\\\",\\\"/bin/ln\\\",\\\"/bin/ls\\\",\\\"/bin/mkdir\\\",\\\"/bin/mknod\\\",\\\"/bin/mktemp\\\",\\\"/bin/mv\\\",\\\"/bin/pwd\\\",\\\"/bin/readlink\\\",\\\"/bin/rm\\\",\\\"/bin/rmdir\\\",\\\"/bin/sleep\\\",\\\"/bin/stty\\\",\\\"/bin/sync\\\",\\\"/bin/touch\\\",\\\"/bin/uname\\\",\\\"/bin/vdir\\\",\\\"/usr/bin/arch\\\",\\\"/usr/bin/b2sum\\\",\\\"/usr/bin/base32\\\",\\\"/usr/bin/base64\\\",\\\"/usr/bin/basename\\\",\\\"/usr/bin/chcon\\\",\\\"/usr/bin/cksum\\\",\\\"/usr/bin/comm\\\",\\\"/usr/bin/csplit\\\",\\\"/usr/bin/cut\\\",\\\"/usr/bin/dircolors\\\",\\\"/usr/bin/dirname\\\",\\\"/usr/bin/du\\\",\\\"/usr/bin/env\\\",\\\"/usr/bin/expand\\\",\\\"/usr/bin/expr\\\",\\\"/usr/bin/factor\\\",\\\"/usr/bin/fmt\\\",\\\"/usr/bin/fold\\\",\\\"/usr/bin/groups\\\",\\\"/usr/bin/head\\\",\\\"/usr/bin/hostid\\\",\\\"/usr/bin/id\\\",\\\"/usr/bin/install\\\",\\\"/usr/bin/join\\\",\\\"/usr/bin/link\\\",\\\"/usr/bin/logname\\\",\\\"/usr/bin/md5sum\\\",\\\"/usr/bin/md5sum.textutils\\\",\\\"/usr/bin/mkfifo\\\",\\\"/usr/bin/nice\\\",\\\"/usr/bin/nl\\\",\\\"/usr/bin/nohup\\\",\\\"/usr/bin/nproc\\\",\\\"/usr/bin/numfmt\\\",\\\"/usr/bin/od\\\",\\\"/usr/bin/paste\\\",\\\"/usr/bin/pathchk\\\",\\\"/usr/bin/pinky\\\",\\\"/usr/bin/pr\\\",\\\"/usr/bin/printenv\\\",\\\"/usr/bin/printf\\\",\\\"/usr/bin/ptx\\\",\\\"/usr/bin/realpath\\\",\\\"/usr/bin/runcon\\\",\\\"/usr/bin/seq\\\",\\\"/usr/bin/sha1sum\\\",\\\"/usr/bin/sha224sum\\\",\\\"/usr/bin/sha256sum\\\",\\\"/usr/bin/sha384sum\\\",\\\"/usr/bin/sha512sum\\\",\\\"/usr/bin/shred\\\",\\\"/usr/bin/shuf\\\",\\\"/usr/bin/sort\\\",\\\"/usr/bin/split\\\",\\\"/usr/bin/stat\\\",\\\"/usr/bin/stdbuf\\\",\\\"/usr/bin/sum\\\",\\\"/usr/bin/tac\\\",\\\"/usr/bin/tail\\\",\\\"/usr/bin/tee\\\",\\\"/usr/bin/test\\\",\\\"/usr/bin/timeout\\\",\\\"/usr/bin/tr\\\",\\\"/usr/bin/truncate\\\",\\\"/usr/bin/tsort\\\",\\\"/usr/bin/tty\\\",\\\"/usr/bin/unexpand\\\",\\\"/usr/bin/uniq\\\",\\\"/usr/bin/unlink\\\",\\\"/usr/bin/users\\\",\\\"/usr/bin/wc\\\",\\\"/usr/bin/who\\\",\\\"/usr/bin/whoami\\\",\\\"/usr/sbin/chroot\\\"]) &&\\n(process.ancestors.file.name in [~\\\"python2*\\\", ~\\\"python3*\\\", \\\"node\\\", \\\"apache2\\\", \\\"nginx\\\", ~\\\"tomcat*\\\"] || process.ancestors.file.name =~ \\\"php*\\\") &&\\nprocess.ancestors.comm not in [\\\"pip3\\\", \\\"pip\\\", \\\"npm\\\"]\"},\"type\":\"agent_rule\",\"id\":\"wmi-qbh-yyj\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"dirty_pipe_attempt\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Potential Dirty pipe exploitation attempt\",\"enabled\":true,\"defaultRule\":true,\"version\":1,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1648564169932,\"creationDate\":1648564123603,\"expression\":\"(splice.pipe_entry_flag & PIPE_BUF_FLAG_CAN_MERGE) != 0 && (splice.pipe_exit_flag & PIPE_BUF_FLAG_CAN_MERGE) == 0\"},\"type\":\"agent_rule\",\"id\":\"jx4-pkv-247\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"dirty_pipe_exploitation\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Potential Dirty pipe exploitation\",\"enabled\":true,\"defaultRule\":true,\"version\":1,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1648564169488,\"creationDate\":1648564123563,\"expression\":\"(splice.pipe_exit_flag & PIPE_BUF_FLAG_CAN_MERGE) > 0\"},\"type\":\"agent_rule\",\"id\":\"aux-r7v-odv\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"example_agent_rule\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"An example agent rule generated in terraform\",\"enabled\":true,\"defaultRule\":false,\"version\":3,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1647036377676,\"creationDate\":1647036168203,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"irg-o45-pxz\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"net_util_in_container\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"A network utility was executed from a suspicious location in a container\",\"enabled\":true,\"defaultRule\":true,\"version\":3,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1646838764572,\"creationDate\":1617722068439,\"expression\":\"(exec.file.path in [\\\"/usr/bin/socat\\\", \\\"/usr/bin/dig\\\", \\\"/usr/bin/nslookup\\\", \\\"/usr/bin/netcat\\\", \\\"/usr/bin/nc\\\"] ||\\n exec.file.path in [\\\"/usr/bin/wget\\\", \\\"/usr/bin/curl\\\"]) &&\\ncontainer.id != \\\"\\\" && (exec.args not in [ ~\\\"*localhost*\\\", ~\\\"*127.0.0.1*\\\", ~\\\"*motd.ubuntu.com*\\\" ] || process.ancestors.comm != \\\"50-motd-news\\\") && process.ancestors.file.path in [ ~\\\"/tmp/**\\\", ~\\\"/var/tmp/**\\\", ~\\\"/home/**\\\", ~\\\"/run/user/**\\\" ]\"},\"type\":\"agent_rule\",\"id\":\"ifl-wfe-sch\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"net_util\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"A network utility was executed from a suspicious location\",\"enabled\":true,\"defaultRule\":true,\"version\":1,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1645196276088,\"creationDate\":1642158534952,\"expression\":\"(exec.file.path in [\\\"/usr/bin/socat\\\", \\\"/usr/bin/dig\\\", \\\"/usr/bin/nslookup\\\", \\\"/usr/bin/netcat\\\", \\\"/usr/bin/nc\\\"] ||\\n exec.file.path in [\\\"/usr/bin/wget\\\", \\\"/usr/bin/curl\\\"]) &&\\ncontainer.id == \\\"\\\" && (exec.args not in [ ~\\\"*localhost*\\\", ~\\\"*127.0.0.1*\\\", ~\\\"*motd.ubuntu.com*\\\" ] || process.ancestors.comm != \\\"50-motd-news\\\") && process.ancestors.file.path in [ ~\\\"/tmp/**\\\", ~\\\"/var/tmp/**\\\", ~\\\"/home/**\\\", ~\\\"/run/user/**\\\" ]\"},\"type\":\"agent_rule\",\"id\":\"3lt-gov-2yu\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"pwnkit_privilege_escalation\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"A process was spawned with indicators of exploitation of CVE-2021-4034\",\"enabled\":true,\"defaultRule\":true,\"version\":1,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1643639115768,\"creationDate\":1643639113864,\"expression\":\"(exec.file.path == \\\"/usr/bin/pkexec\\\" && exec.envs in [~\\\"*SHELL*\\\", ~\\\"*PATH*\\\"] && exec.uid != 0)\"},\"type\":\"agent_rule\",\"id\":\"vri-cjo-ywh\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643392923\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643392938634,\"creationDate\":1643392938634,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"rsy-7jg-hqm\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643392903\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643392919175,\"creationDate\":1643392919175,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"m39-rre-anw\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643392885\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643392899126,\"creationDate\":1643392899126,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"4wd-unc-xof\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643392458\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643392475857,\"creationDate\":1643392475857,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"jhk-qpj-jlt\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643392438\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643392453588,\"creationDate\":1643392453588,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"ruf-aic-d4j\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643392419\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643392434263,\"creationDate\":1643392434263,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"jtf-zrn-0ph\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643392026\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643392042558,\"creationDate\":1643392042558,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"ijz-1cz-bms\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643392003\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643392021741,\"creationDate\":1643392021741,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"21m-gs8-p43\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643391983\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643391998597,\"creationDate\":1643391998597,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"in7-ydq-pbw\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643391729\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643391745920,\"creationDate\":1643391745920,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"v8v-sem-rmg\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643391707\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643391725233,\"creationDate\":1643391725233,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"kox-qtp-cbn\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643391687\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643391702920,\"creationDate\":1643391702920,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"thp-evn-3gr\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643390432\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643390450706,\"creationDate\":1643390450706,\"expression\":\"exec.file.name == \\\"go\\\"\"},\"type\":\"agent_rule\",\"id\":\"hx6-v0z-9gk\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643390410\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643390427444,\"creationDate\":1643390427444,\"expression\":\"exec.file.name == \\\"go\\\"\"},\"type\":\"agent_rule\",\"id\":\"n8j-9n3-urm\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643390389\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643390405807,\"creationDate\":1643390405807,\"expression\":\"exec.file.name == \\\"go\\\"\"},\"type\":\"agent_rule\",\"id\":\"tkl-mjf-is5\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643390151\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643390171673,\"creationDate\":1643390171673,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"up2-fhh-bc8\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643390130\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643390147278,\"creationDate\":1643390147278,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"vdu-0rd-lnj\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643390108\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643390124588,\"creationDate\":1643390124588,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"dfb-wz2-0ka\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643389977\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643389998703,\"creationDate\":1643389998703,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"7vz-wdj-vwc\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643389955\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643389972825,\"creationDate\":1643389972825,\"expression\":\"exec.file.name == \\\"go\\\"\"},\"type\":\"agent_rule\",\"id\":\"qls-upn-1vc\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643389931\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643389950224,\"creationDate\":1643389950224,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"rxo-lya-bqu\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643389911\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643389929035,\"creationDate\":1643389929035,\"expression\":\"exec.file.name == \\\"go\\\"\"},\"type\":\"agent_rule\",\"id\":\"dm3-ip4-rza\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643389756\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643389773436,\"creationDate\":1643389773436,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"rzs-ccq-4qm\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643389685\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643389706550,\"creationDate\":1643389706550,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"wa9-zm8-8ds\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643389627\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643389645597,\"creationDate\":1643389645597,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"alm-sgy-vz3\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643389553\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643389575084,\"creationDate\":1643389575084,\"expression\":\"exec.file.name == \\\"go\\\"\"},\"type\":\"agent_rule\",\"id\":\"dls-vo9-rqx\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643389530\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643389549031,\"creationDate\":1643389549031,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"fyz-u20-nvn\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643389507\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643389523942,\"creationDate\":1643389523942,\"expression\":\"exec.file.name == \\\"go\\\"\"},\"type\":\"agent_rule\",\"id\":\"nqv-0et-fcj\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643389484\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643389502800,\"creationDate\":1643389502800,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"u7v-36z-wue\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643389460\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643389479547,\"creationDate\":1643389479547,\"expression\":\"exec.file.name == \\\"go\\\"\"},\"type\":\"agent_rule\",\"id\":\"y2z-ffa-zys\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643389411\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643389428402,\"creationDate\":1643389428402,\"expression\":\"exec.file.name == \\\"go\\\"\"},\"type\":\"agent_rule\",\"id\":\"cym-1zi-nnd\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643389389\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643389406698,\"creationDate\":1643389406698,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"ip9-wgt-q3k\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643389363\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643389381751,\"creationDate\":1643389381751,\"expression\":\"exec.file.name == \\\"go\\\"\"},\"type\":\"agent_rule\",\"id\":\"t9d-zbo-2nw\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643389339\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643389356453,\"creationDate\":1643389356453,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"kaw-0h7-dji\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643389317\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643389335243,\"creationDate\":1643389335243,\"expression\":\"exec.file.name == \\\"go\\\"\"},\"type\":\"agent_rule\",\"id\":\"m4i-otg-jnj\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643389210\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643389226802,\"creationDate\":1643389226802,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"heh-lnh-xwm\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643389186\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643389204108,\"creationDate\":1643389204108,\"expression\":\"exec.file.name == \\\"go\\\"\"},\"type\":\"agent_rule\",\"id\":\"cwa-5rh-qtd\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643389165\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643389181761,\"creationDate\":1643389181761,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"e5l-xtx-hmi\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643389136\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643389155207,\"creationDate\":1643389155207,\"expression\":\"exec.file.name == \\\"go\\\"\"},\"type\":\"agent_rule\",\"id\":\"ebx-lyj-r3a\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643389111\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643389130549,\"creationDate\":1643389130549,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"xac-4if-49b\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643389088\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643389106392,\"creationDate\":1643389106392,\"expression\":\"exec.file.name == \\\"go\\\"\"},\"type\":\"agent_rule\",\"id\":\"dh6-bdu-8v0\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643388939\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643388960762,\"creationDate\":1643388960762,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"hkd-6dr-ify\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643388912\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643388931383,\"creationDate\":1643388931383,\"expression\":\"exec.file.name == \\\"go\\\"\"},\"type\":\"agent_rule\",\"id\":\"bsx-fod-0xj\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643388890\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643388907818,\"creationDate\":1643388907818,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"8jt-x9p-yoy\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643388866\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643388883010,\"creationDate\":1643388883010,\"expression\":\"exec.file.name == \\\"go\\\"\"},\"type\":\"agent_rule\",\"id\":\"rhd-qao-dub\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643388847\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643388862340,\"creationDate\":1643388862340,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"j0f-fhi-ab7\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643388825\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643388843151,\"creationDate\":1643388843151,\"expression\":\"exec.file.name == \\\"go\\\"\"},\"type\":\"agent_rule\",\"id\":\"rvn-u2c-xm4\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643388726\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643388744863,\"creationDate\":1643388744863,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"ldn-agb-3fl\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643388700\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643388719895,\"creationDate\":1643388719895,\"expression\":\"exec.file.name == \\\"go\\\"\"},\"type\":\"agent_rule\",\"id\":\"cyr-g7t-to0\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643388666\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643388693095,\"creationDate\":1643388693095,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"wnm-xkk-mat\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643388257\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643388275282,\"creationDate\":1643388275282,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"moo-kuq-zbt\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643388230\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643388250051,\"creationDate\":1643388250051,\"expression\":\"exec.file.name == \\\"go\\\"\"},\"type\":\"agent_rule\",\"id\":\"wzs-moc-ji9\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643388208\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643388226579,\"creationDate\":1643388226579,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"uw2-d3y-5h6\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643388182\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643388201323,\"creationDate\":1643388201323,\"expression\":\"exec.file.name == \\\"go\\\"\"},\"type\":\"agent_rule\",\"id\":\"fez-txs-qf9\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643388161\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643388177724,\"creationDate\":1643388177724,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"fga-mna-xej\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643388137\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643388157048,\"creationDate\":1643388157048,\"expression\":\"exec.file.name == \\\"go\\\"\"},\"type\":\"agent_rule\",\"id\":\"iyn-7sl-swn\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643387992\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643388010676,\"creationDate\":1643388010676,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"p3w-qyi-pbo\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643387579\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643387597089,\"creationDate\":1643387597089,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"yyt-sfa-fck\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643387554\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643387573023,\"creationDate\":1643387573023,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"5z7-fqq-siu\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643387531\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643387549793,\"creationDate\":1643387549793,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"ivz-amj-yl7\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643387505\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643387524178,\"creationDate\":1643387524178,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"lyv-3xn-qch\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643387484\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643387500298,\"creationDate\":1643387500298,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"fpt-c7o-ipx\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643387461\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643387480011,\"creationDate\":1643387480011,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"tap-fek-5kw\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643387148\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643387165931,\"creationDate\":1643387165931,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"u7b-x0z-cbe\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643387120\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643387141298,\"creationDate\":1643387141298,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"hhe-gcm-vjl\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643387090\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643387114912,\"creationDate\":1643387114912,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"nt9-5fe-de1\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643387063\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643387082695,\"creationDate\":1643387082695,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"pj0-bcy-euh\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643387039\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643387057879,\"creationDate\":1643387057879,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"rm5-px4-iua\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643387014\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643387032689,\"creationDate\":1643387032689,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"cqz-7pc-ajz\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643386909\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643386926682,\"creationDate\":1643386926682,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"hot-prj-df5\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643386882\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643386901939,\"creationDate\":1643386901939,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"q7n-lvv-4au\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643386858\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643386877222,\"creationDate\":1643386877222,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"gly-5wu-uny\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643386831\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643386850558,\"creationDate\":1643386850558,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"umz-fjl-7qq\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643386809\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643386826170,\"creationDate\":1643386826170,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"spq-5f8-isw\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643386786\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643386804704,\"creationDate\":1643386804704,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"dul-hdz-xmo\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643386742\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643386762229,\"creationDate\":1643386762229,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"n94-q2a-co9\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643386718\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643386735946,\"creationDate\":1643386735946,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"x1n-wra-hdt\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643386695\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643386713348,\"creationDate\":1643386713348,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"kgt-kcc-tnu\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643386657\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"an agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1643386674573,\"creationDate\":1643386674573,\"expression\":\"exec.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"znp-dul-gcj\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"apparmor_modified_tty\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"AppArmor Profile Modified\",\"enabled\":true,\"defaultRule\":true,\"version\":1,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729678630,\"creationDate\":1627392836162,\"expression\":\"exec.file.name in [\\\"aa-disable\\\", \\\"aa-complain\\\", \\\"aa-audit\\\"] && exec.tty_name !=\\\"\\\"\"},\"type\":\"agent_rule\",\"id\":\"ki7-koc-icf\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"pci_11_5_critical_binaries_chmod\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Critical System Binaries\",\"enabled\":true,\"defaultRule\":true,\"version\":4,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729678212,\"creationDate\":1606142933669,\"expression\":\"(\\n (chmod.file.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\", ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n && process.ancestors.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n) && chmod.mode != chmod.file.mode\"},\"type\":\"agent_rule\",\"id\":\"kzh-5hn-edg\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"pci_11_5_critical_binaries_chown\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Critical System Binaries\",\"enabled\":true,\"defaultRule\":true,\"version\":4,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729678212,\"creationDate\":1606142933669,\"expression\":\"(\\n (chown.file.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\", ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n && process.ancestors.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n) && (chown.uid != chown.file.uid || chown.gid != chown.file.gid)\"},\"type\":\"agent_rule\",\"id\":\"yly-big-wfq\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"pci_11_5_critical_binaries_link\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Critical System Binaries\",\"enabled\":true,\"defaultRule\":true,\"version\":4,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729678212,\"creationDate\":1606142933669,\"expression\":\"(\\n (link.file.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\", ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/*\\\" ]\\n || link.file.destination.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\", ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n && process.ancestors.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"},\"type\":\"agent_rule\",\"id\":\"rm1-b8h-cec\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"pci_11_5_critical_binaries_rename\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Critical System Binaries\",\"enabled\":true,\"defaultRule\":true,\"version\":4,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729678212,\"creationDate\":1606142933669,\"expression\":\"(\\n (rename.file.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\", ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/*\\\" ]\\n || rename.file.destination.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\", ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n && process.ancestors.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"},\"type\":\"agent_rule\",\"id\":\"1vg-wvn-jeo\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"pci_11_5_critical_binaries_open\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Critical System Binaries\",\"enabled\":true,\"defaultRule\":true,\"version\":4,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729678212,\"creationDate\":1606142933669,\"expression\":\"(\\n open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 &&\\n (open.file.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\", ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n && process.ancestors.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"},\"type\":\"agent_rule\",\"id\":\"tmh-now-e61\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"pci_11_5_critical_binaries_unlink\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Critical System Binaries\",\"enabled\":true,\"defaultRule\":true,\"version\":4,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729678212,\"creationDate\":1606142933669,\"expression\":\"(\\n (unlink.file.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\", ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n && process.ancestors.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"},\"type\":\"agent_rule\",\"id\":\"mhl-gkn-bun\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"pci_11_5_critical_binaries_utimes\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Critical System Binaries\",\"enabled\":true,\"defaultRule\":true,\"version\":4,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729678212,\"creationDate\":1606142933669,\"expression\":\"(\\n (utimes.file.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\", ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n && process.ancestors.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"},\"type\":\"agent_rule\",\"id\":\"6ef-efv-07c\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"systemd_modification_chmod\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Systemd Modification\",\"enabled\":true,\"defaultRule\":true,\"version\":4,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729678140,\"creationDate\":1606142929241,\"expression\":\"(\\n (chmod.file.path in [ ~\\\"/lib/systemd/system/*\\\", ~\\\"/usr/lib/systemd/system/*\\\", ~\\\"/etc/systemd/system/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n) && chmod.mode != chmod.file.mode\"},\"type\":\"agent_rule\",\"id\":\"kuu-k1s-gqz\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"systemd_modification_chown\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Systemd Modification\",\"enabled\":true,\"defaultRule\":true,\"version\":4,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729678140,\"creationDate\":1606142929241,\"expression\":\"(\\n (chown.file.path in [ ~\\\"/lib/systemd/system/*\\\", ~\\\"/usr/lib/systemd/system/*\\\", ~\\\"/etc/systemd/system/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n) && (chown.uid != chown.file.uid || chown.gid != chown.file.gid)\"},\"type\":\"agent_rule\",\"id\":\"qdc-oqx-zsx\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"systemd_modification_link\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Systemd Modification\",\"enabled\":true,\"defaultRule\":true,\"version\":4,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729678140,\"creationDate\":1606142929241,\"expression\":\"(\\n (link.file.path in [ ~\\\"/lib/systemd/system/*\\\", ~\\\"/usr/lib/systemd/system/*\\\", ~\\\"/etc/systemd/system/*\\\" ]\\n || link.file.destination.path in [ ~\\\"/lib/systemd/system/*\\\", ~\\\"/usr/lib/systemd/system/*\\\", ~\\\"/etc/systemd/system/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"},\"type\":\"agent_rule\",\"id\":\"bgs-kbk-xkh\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"systemd_modification_rename\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Systemd Modification\",\"enabled\":true,\"defaultRule\":true,\"version\":4,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729678140,\"creationDate\":1606142929241,\"expression\":\"(\\n (rename.file.path in [ ~\\\"/lib/systemd/system/*\\\", ~\\\"/usr/lib/systemd/system/*\\\", ~\\\"/etc/systemd/system/*\\\" ]\\n || rename.file.destination.path in [ ~\\\"/lib/systemd/system/*\\\", ~\\\"/usr/lib/systemd/system/*\\\", ~\\\"/etc/systemd/system/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"},\"type\":\"agent_rule\",\"id\":\"rek-wb4-s7y\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"systemd_modification_open\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Systemd Modification\",\"enabled\":true,\"defaultRule\":true,\"version\":4,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729678140,\"creationDate\":1606142929241,\"expression\":\"(\\n open.flags & (O_CREAT|O_RDWR|O_WRONLY) > 0 &&\\n (open.file.path in [ ~\\\"/lib/systemd/system/*\\\", ~\\\"/usr/lib/systemd/system/*\\\", ~\\\"/etc/systemd/system/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"},\"type\":\"agent_rule\",\"id\":\"nlp-lzc-rcf\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"systemd_modification_unlink\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Systemd Modification\",\"enabled\":true,\"defaultRule\":true,\"version\":4,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729678140,\"creationDate\":1606142929241,\"expression\":\"(\\n (unlink.file.path in [ ~\\\"/lib/systemd/system/*\\\", ~\\\"/usr/lib/systemd/system/*\\\", ~\\\"/etc/systemd/system/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"},\"type\":\"agent_rule\",\"id\":\"kxs-kt6-5gt\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"systemd_modification_utimes\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Systemd Modification\",\"enabled\":true,\"defaultRule\":true,\"version\":4,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729678140,\"creationDate\":1606142929241,\"expression\":\"(\\n (utimes.file.path in [ ~\\\"/lib/systemd/system/*\\\", ~\\\"/usr/lib/systemd/system/*\\\", ~\\\"/etc/systemd/system/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"},\"type\":\"agent_rule\",\"id\":\"t8w-eul-chf\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"credential_modified_chmod\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Either /etc/shadow/ or /etc/gshadow was modified by a non-standard tool\",\"enabled\":true,\"defaultRule\":true,\"version\":7,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729662623,\"creationDate\":1598516746271,\"expression\":\"(\\n (chmod.file.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ])\\n && process.file.path not in [ \\\"/sbin/vipw\\\", \\\"/usr/sbin/vipw\\\", \\\"/sbin/vigr\\\", \\\"/usr/sbin/vigr\\\" ]\\n && process.ancestors.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n) && chmod.mode != chmod.file.mode\"},\"type\":\"agent_rule\",\"id\":\"4fh-bb7-747\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"credential_modified_chown\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Either /etc/shadow/ or /etc/gshadow was modified by a non-standard tool\",\"enabled\":true,\"defaultRule\":true,\"version\":7,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729662623,\"creationDate\":1598516746271,\"expression\":\"(\\n (chown.file.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ])\\n && process.file.path not in [ \\\"/sbin/vipw\\\", \\\"/usr/sbin/vipw\\\", \\\"/sbin/vigr\\\", \\\"/usr/sbin/vigr\\\" ]\\n && process.ancestors.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n) && (chown.uid != chown.file.uid || chown.gid != chown.file.gid)\"},\"type\":\"agent_rule\",\"id\":\"eoy-4fe-q7q\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"credential_modified_link\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Either /etc/shadow/ or /etc/gshadow was modified by a non-standard tool\",\"enabled\":true,\"defaultRule\":true,\"version\":7,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729662623,\"creationDate\":1598516746271,\"expression\":\"(\\n (link.file.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ]\\n || link.file.destination.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ])\\n && process.file.path not in [ \\\"/sbin/vipw\\\", \\\"/usr/sbin/vipw\\\", \\\"/sbin/vigr\\\", \\\"/usr/sbin/vigr\\\" ]\\n && process.ancestors.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"},\"type\":\"agent_rule\",\"id\":\"r5z-tke-sjm\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"credential_modified_rename\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Either /etc/shadow/ or /etc/gshadow was modified by a non-standard tool\",\"enabled\":true,\"defaultRule\":true,\"version\":7,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729662623,\"creationDate\":1598516746271,\"expression\":\"(\\n (rename.file.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ]\\n || rename.file.destination.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ])\\n && process.file.path not in [ \\\"/sbin/vipw\\\", \\\"/usr/sbin/vipw\\\", \\\"/sbin/vigr\\\", \\\"/usr/sbin/vigr\\\" ]\\n && process.ancestors.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"},\"type\":\"agent_rule\",\"id\":\"ac4-asc-qi4\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"credential_modified_open\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Either /etc/shadow/ or /etc/gshadow was modified by a non-standard tool\",\"enabled\":true,\"defaultRule\":true,\"version\":7,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729662623,\"creationDate\":1598516746271,\"expression\":\"(\\n open.flags & ((O_CREAT|O_RDWR|O_WRONLY|O_TRUNC)) > 0 &&\\n (open.file.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ])\\n && process.file.path not in [ \\\"/sbin/vipw\\\", \\\"/usr/sbin/vipw\\\", \\\"/sbin/vigr\\\", \\\"/usr/sbin/vigr\\\" ]\\n && process.ancestors.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"},\"type\":\"agent_rule\",\"id\":\"cne-1ft-bei\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"credential_modified_unlink\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Either /etc/shadow/ or /etc/gshadow was modified by a non-standard tool\",\"enabled\":true,\"defaultRule\":true,\"version\":7,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729662623,\"creationDate\":1598516746271,\"expression\":\"(\\n (unlink.file.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ])\\n && process.file.path not in [ \\\"/sbin/vipw\\\", \\\"/usr/sbin/vipw\\\", \\\"/sbin/vigr\\\", \\\"/usr/sbin/vigr\\\" ]\\n && process.ancestors.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"},\"type\":\"agent_rule\",\"id\":\"ay7-jkz-rda\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"credential_modified_utimes\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Either /etc/shadow/ or /etc/gshadow was modified by a non-standard tool\",\"enabled\":true,\"defaultRule\":true,\"version\":7,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729662623,\"creationDate\":1598516746271,\"expression\":\"(\\n (utimes.file.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ])\\n && process.file.path not in [ \\\"/sbin/vipw\\\", \\\"/usr/sbin/vipw\\\", \\\"/sbin/vigr\\\", \\\"/usr/sbin/vigr\\\" ]\\n && process.ancestors.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"},\"type\":\"agent_rule\",\"id\":\"psd-3el-h33\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"runc_modification\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Runc Binary Modified\",\"enabled\":true,\"defaultRule\":true,\"version\":1,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729662517,\"creationDate\":1627392837049,\"expression\":\"open.file.path in [\\\"/usr/bin/runc\\\", \\\"/usr/sbin/runc\\\", \\\"/usr/bin/docker-runc\\\"]\\n&& open.flags & O_CREAT|O_TRUNC|O_RDWR|O_WRONLY > 0\\n&& process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n&& process.ancestors.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\"},\"type\":\"agent_rule\",\"id\":\"qng-psi-j15\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"user_created_tty\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"User Created Interactively\",\"enabled\":true,\"defaultRule\":true,\"version\":1,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729662452,\"creationDate\":1627392836979,\"expression\":\"exec.file.name in [\\\"useradd\\\", \\\"newusers\\\"] && exec.tty_name !=\\\"\\\"\"},\"type\":\"agent_rule\",\"id\":\"asy-mod-zmt\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"ssl_certificate_tampering_chmod\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"SSL Certificate Tampering\",\"enabled\":true,\"defaultRule\":true,\"version\":4,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729662415,\"creationDate\":1606142980369,\"expression\":\"(\\n (chmod.file.path in [ ~\\\"/etc/ssl/certs/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n) && chmod.mode != chmod.file.mode\"},\"type\":\"agent_rule\",\"id\":\"ybu-yya-acz\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"ssl_certificate_tampering_chown\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"SSL Certificate Tampering\",\"enabled\":true,\"defaultRule\":true,\"version\":4,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729662415,\"creationDate\":1606142980369,\"expression\":\"(\\n (chown.file.path in [ ~\\\"/etc/ssl/certs/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n) && (chown.uid != chown.file.uid || chown.gid != chown.file.gid)\"},\"type\":\"agent_rule\",\"id\":\"ohe-vlf-t2h\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"ssl_certificate_tampering_link\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"SSL Certificate Tampering\",\"enabled\":true,\"defaultRule\":true,\"version\":4,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729662415,\"creationDate\":1606142980369,\"expression\":\"(\\n (link.file.path in [ ~\\\"/etc/ssl/certs/*\\\" ]\\n || link.file.destination.path in [ ~\\\"/etc/ssl/certs/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"},\"type\":\"agent_rule\",\"id\":\"7nq-ugi-gu1\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"ssl_certificate_tampering_rename\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"SSL Certificate Tampering\",\"enabled\":true,\"defaultRule\":true,\"version\":4,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729662415,\"creationDate\":1606142980369,\"expression\":\"(\\n (rename.file.path in [ ~\\\"/etc/ssl/certs/*\\\" ]\\n || rename.file.destination.path in [ ~\\\"/etc/ssl/certs/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"},\"type\":\"agent_rule\",\"id\":\"qzs-yvl-f4t\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"ssl_certificate_tampering_open\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"SSL Certificate Tampering\",\"enabled\":true,\"defaultRule\":true,\"version\":4,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729662415,\"creationDate\":1606142980369,\"expression\":\"(\\n open.flags & (O_CREAT|O_RDWR|O_WRONLY) > 0 &&\\n (open.file.path in [ ~\\\"/etc/ssl/certs/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"},\"type\":\"agent_rule\",\"id\":\"2p0-3i2-b4y\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"ssl_certificate_tampering_unlink\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"SSL Certificate Tampering\",\"enabled\":true,\"defaultRule\":true,\"version\":4,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729662415,\"creationDate\":1606142980369,\"expression\":\"(\\n (unlink.file.path in [ ~\\\"/etc/ssl/certs/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"},\"type\":\"agent_rule\",\"id\":\"jin-icc-lpi\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"ssl_certificate_tampering_utimes\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"SSL Certificate Tampering\",\"enabled\":true,\"defaultRule\":true,\"version\":4,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729662415,\"creationDate\":1606142980369,\"expression\":\"(\\n (utimes.file.path in [ ~\\\"/etc/ssl/certs/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"},\"type\":\"agent_rule\",\"id\":\"w07-amm-bxr\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"kernel_module_chmod\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"A kernel module was added to /lib/modules/\",\"enabled\":true,\"defaultRule\":true,\"version\":7,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729662391,\"creationDate\":1598516746168,\"expression\":\"(\\n (chmod.file.path in [ ~\\\"/lib/modules/*\\\", ~\\\"/usr/lib/modules/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n && process.ancestors.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"] && process.ancestors.file.path != \\\"/usr/bin/kmod\\\"\\n) && chmod.mode != chmod.file.mode\"},\"type\":\"agent_rule\",\"id\":\"avt-p2e-fyc\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"kernel_module_chown\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"A kernel module was added to /lib/modules/\",\"enabled\":true,\"defaultRule\":true,\"version\":7,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729662391,\"creationDate\":1598516746168,\"expression\":\"(\\n (chown.file.path in [ ~\\\"/lib/modules/*\\\", ~\\\"/usr/lib/modules/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n && process.ancestors.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"] && process.ancestors.file.path != \\\"/usr/bin/kmod\\\"\\n) && (chown.uid != chown.file.uid || chown.gid != chown.file.gid)\"},\"type\":\"agent_rule\",\"id\":\"cd0-w8q-vl4\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"kernel_module_link\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"A kernel module was added to /lib/modules/\",\"enabled\":true,\"defaultRule\":true,\"version\":7,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729662391,\"creationDate\":1598516746168,\"expression\":\"(\\n (link.file.path in [ ~\\\"/lib/modules/*\\\", ~\\\"/usr/lib/modules/*\\\" ]\\n || link.file.destination.path in [ ~\\\"/lib/modules/*\\\", ~\\\"/usr/lib/modules/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n && process.ancestors.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"] && process.ancestors.file.path != \\\"/usr/bin/kmod\\\"\\n)\"},\"type\":\"agent_rule\",\"id\":\"ec9-vff-7ni\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"kernel_module_rename\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"A kernel module was added to /lib/modules/\",\"enabled\":true,\"defaultRule\":true,\"version\":7,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729662391,\"creationDate\":1598516746168,\"expression\":\"(\\n (rename.file.path in [ ~\\\"/lib/modules/*\\\", ~\\\"/usr/lib/modules/*\\\" ]\\n || rename.file.destination.path in [ ~\\\"/lib/modules/*\\\", ~\\\"/usr/lib/modules/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n && process.ancestors.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"] && process.ancestors.file.path != \\\"/usr/bin/kmod\\\"\\n)\"},\"type\":\"agent_rule\",\"id\":\"mpb-1rj-dv6\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"kernel_module_open\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"A kernel module was added to /lib/modules/\",\"enabled\":true,\"defaultRule\":true,\"version\":7,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729662391,\"creationDate\":1598516746168,\"expression\":\"(\\n open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 &&\\n (open.file.path in [ ~\\\"/lib/modules/*\\\", ~\\\"/usr/lib/modules/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n && process.ancestors.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"] && process.ancestors.file.path != \\\"/usr/bin/kmod\\\"\\n)\"},\"type\":\"agent_rule\",\"id\":\"xye-pfo-y0r\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"kernel_module_unlink\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"A kernel module was added to /lib/modules/\",\"enabled\":true,\"defaultRule\":true,\"version\":7,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729662391,\"creationDate\":1598516746168,\"expression\":\"(\\n (unlink.file.path in [ ~\\\"/lib/modules/*\\\", ~\\\"/usr/lib/modules/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n && process.ancestors.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"] && process.ancestors.file.path != \\\"/usr/bin/kmod\\\"\\n)\"},\"type\":\"agent_rule\",\"id\":\"c4t-pxu-ixk\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"kernel_module_utimes\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"A kernel module was added to /lib/modules/\",\"enabled\":true,\"defaultRule\":true,\"version\":7,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729662391,\"creationDate\":1598516746168,\"expression\":\"(\\n (utimes.file.path in [ ~\\\"/lib/modules/*\\\", ~\\\"/usr/lib/modules/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n && process.ancestors.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"] && process.ancestors.file.path != \\\"/usr/bin/kmod\\\"\\n)\"},\"type\":\"agent_rule\",\"id\":\"fpw-paa-smb\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"compiler_in_container\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Compiler Executed in Container\",\"enabled\":true,\"defaultRule\":true,\"version\":1,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729662344,\"creationDate\":1627392836759,\"expression\":\"(exec.file.name in [\\\"javac\\\", \\\"clang\\\", \\\"gcc\\\",\\\"bcc\\\"] || (exec.file.name == \\\"go\\\" && exec.args in [~\\\"*build*\\\", ~\\\"*run*\\\"])) && container.id !=\\\"\\\" && process.ancestors.file.path != \\\"/usr/bin/cilium-agent\\\"\"},\"type\":\"agent_rule\",\"id\":\"ily-tsr-dtj\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"package_management_in_container\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Package management in container\",\"enabled\":true,\"defaultRule\":true,\"version\":2,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1636729662123,\"creationDate\":1617722067648,\"expression\":\"exec.file.path in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"] && container.id != \\\"\\\"\"},\"type\":\"agent_rule\",\"id\":\"3tj-btx-kvo\"},{\"attributes\":{\"category\":\"Kernel Activity\",\"name\":\"selinux_disable_enforcement\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"SELinux enforcement status was disabled\",\"enabled\":true,\"defaultRule\":true,\"version\":1,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1635332067172,\"creationDate\":1635332067172,\"expression\":\"selinux.enforce.status in [\\\"permissive\\\", \\\"disabled\\\"]\"},\"type\":\"agent_rule\",\"id\":\"je9-er4-njy\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"aws_metadata_service\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"EC2 Instance Metadata Service Accessed via Network Utility\",\"enabled\":true,\"defaultRule\":true,\"version\":1,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1629226276630,\"creationDate\":1627392836096,\"expression\":\"exec.file.path in [\\\"/usr/bin/wget\\\", \\\"/usr/bin/curl\\\"] && exec.args in [~\\\"*169.254.169.254*\\\"]\"},\"type\":\"agent_rule\",\"id\":\"jl5-wjt-58e\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"cron_at_job_creation_chmod\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Cron AT Job Creation\",\"enabled\":true,\"defaultRule\":true,\"version\":4,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1628512222418,\"creationDate\":1606142961130,\"expression\":\"(\\n (chmod.file.path in [ ~\\\"/var/spool/cron/*\\\" ])\\n && process.file.path not in [ \\\"/usr/bin/at\\\", \\\"/usr/bin/crontab\\\" ]\\n) && chmod.mode != chmod.file.mode\"},\"type\":\"agent_rule\",\"id\":\"ipa-v3l-kt6\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"cron_at_job_creation_chown\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Cron AT Job Creation\",\"enabled\":true,\"defaultRule\":true,\"version\":4,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1628512222418,\"creationDate\":1606142961130,\"expression\":\"(\\n (chown.file.path in [ ~\\\"/var/spool/cron/*\\\" ])\\n && process.file.path not in [ \\\"/usr/bin/at\\\", \\\"/usr/bin/crontab\\\" ]\\n) && (chown.uid != chown.file.uid || chown.gid != chown.file.gid)\"},\"type\":\"agent_rule\",\"id\":\"3xl-qds-f0e\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"cron_at_job_creation_link\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Cron AT Job Creation\",\"enabled\":true,\"defaultRule\":true,\"version\":4,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1628512222418,\"creationDate\":1606142961130,\"expression\":\"(\\n (link.file.path in [ ~\\\"/var/spool/cron/*\\\" ]\\n || link.file.destination.path in [ ~\\\"/var/spool/cron/*\\\" ])\\n && process.file.path not in [ \\\"/usr/bin/at\\\", \\\"/usr/bin/crontab\\\" ]\\n)\"},\"type\":\"agent_rule\",\"id\":\"0gu-pqy-o1a\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"cron_at_job_creation_rename\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Cron AT Job Creation\",\"enabled\":true,\"defaultRule\":true,\"version\":4,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1628512222418,\"creationDate\":1606142961130,\"expression\":\"(\\n (rename.file.path in [ ~\\\"/var/spool/cron/*\\\" ]\\n || rename.file.destination.path in [ ~\\\"/var/spool/cron/*\\\" ])\\n && process.file.path not in [ \\\"/usr/bin/at\\\", \\\"/usr/bin/crontab\\\" ]\\n)\"},\"type\":\"agent_rule\",\"id\":\"cmu-g58-cau\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"cron_at_job_creation_open\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Cron AT Job Creation\",\"enabled\":true,\"defaultRule\":true,\"version\":4,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1628512222418,\"creationDate\":1606142961130,\"expression\":\"(\\n open.flags & (O_CREAT|O_RDWR|O_WRONLY) > 0 &&\\n (open.file.path in [ ~\\\"/var/spool/cron/*\\\" ])\\n && process.file.path not in [ \\\"/usr/bin/at\\\", \\\"/usr/bin/crontab\\\" ]\\n)\"},\"type\":\"agent_rule\",\"id\":\"onm-dqu-jly\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"cron_at_job_creation_unlink\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Cron AT Job Creation\",\"enabled\":true,\"defaultRule\":true,\"version\":4,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1628512222418,\"creationDate\":1606142961130,\"expression\":\"(\\n (unlink.file.path in [ ~\\\"/var/spool/cron/*\\\" ])\\n && process.file.path not in [ \\\"/usr/bin/at\\\", \\\"/usr/bin/crontab\\\" ]\\n)\"},\"type\":\"agent_rule\",\"id\":\"atu-tci-bjn\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"cron_at_job_creation_utimes\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Cron AT Job Creation\",\"enabled\":true,\"defaultRule\":true,\"version\":4,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1628512222418,\"creationDate\":1606142961130,\"expression\":\"(\\n (utimes.file.path in [ ~\\\"/var/spool/cron/*\\\" ])\\n && process.file.path not in [ \\\"/usr/bin/at\\\", \\\"/usr/bin/crontab\\\" ]\\n)\"},\"type\":\"agent_rule\",\"id\":\"ygn-d8o-ncr\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"nsswitch_conf_mod_chmod\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Nsswitch Configuration Modified\",\"enabled\":true,\"defaultRule\":true,\"version\":3,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1628512222322,\"creationDate\":1606142958657,\"expression\":\"(\\n (chmod.file.path in [ \\\"/etc/nsswitch.conf\\\" ])\\n) && chmod.mode != chmod.file.mode\"},\"type\":\"agent_rule\",\"id\":\"ki2-nwj-sot\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"nsswitch_conf_mod_chown\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Nsswitch Configuration Modified\",\"enabled\":true,\"defaultRule\":true,\"version\":3,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1628512222322,\"creationDate\":1606142958657,\"expression\":\"(\\n (chown.file.path in [ \\\"/etc/nsswitch.conf\\\" ])\\n) && (chown.uid != chown.file.uid || chown.gid != chown.file.gid)\"},\"type\":\"agent_rule\",\"id\":\"nyc-gfz-yr5\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"nsswitch_conf_mod_link\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Nsswitch Configuration Modified\",\"enabled\":true,\"defaultRule\":true,\"version\":3,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1628512222322,\"creationDate\":1606142958657,\"expression\":\"(\\n (link.file.path in [ \\\"/etc/nsswitch.conf\\\" ]\\n || link.file.destination.path in [ \\\"/etc/nsswitch.conf\\\" ])\\n)\"},\"type\":\"agent_rule\",\"id\":\"8ol-dkr-aml\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"nsswitch_conf_mod_rename\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Nsswitch Configuration Modified\",\"enabled\":true,\"defaultRule\":true,\"version\":3,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1628512222322,\"creationDate\":1606142958657,\"expression\":\"(\\n (rename.file.path in [ \\\"/etc/nsswitch.conf\\\" ]\\n || rename.file.destination.path in [ \\\"/etc/nsswitch.conf\\\" ])\\n)\"},\"type\":\"agent_rule\",\"id\":\"pkn-azw-qia\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"nsswitch_conf_mod_open\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Nsswitch Configuration Modified\",\"enabled\":true,\"defaultRule\":true,\"version\":3,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1628512222322,\"creationDate\":1606142958657,\"expression\":\"(\\n open.flags & ((O_RDWR|O_WRONLY|O_CREAT)) > 0 &&\\n (open.file.path in [ \\\"/etc/nsswitch.conf\\\" ])\\n)\"},\"type\":\"agent_rule\",\"id\":\"fdf-wvb-c3k\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"nsswitch_conf_mod_unlink\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Nsswitch Configuration Modified\",\"enabled\":true,\"defaultRule\":true,\"version\":3,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1628512222322,\"creationDate\":1606142958657,\"expression\":\"(\\n (unlink.file.path in [ \\\"/etc/nsswitch.conf\\\" ])\\n)\"},\"type\":\"agent_rule\",\"id\":\"wpt-ba8-mpd\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"nsswitch_conf_mod_utimes\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Nsswitch Configuration Modified\",\"enabled\":true,\"defaultRule\":true,\"version\":3,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1628512222322,\"creationDate\":1606142958657,\"expression\":\"(\\n (utimes.file.path in [ \\\"/etc/nsswitch.conf\\\" ])\\n)\"},\"type\":\"agent_rule\",\"id\":\"7ud-d2o-qgo\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"ssh_authorized_keys_chmod\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"SSH Authorized Keys Modified\",\"enabled\":true,\"defaultRule\":true,\"version\":3,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1628512221784,\"creationDate\":1606142954844,\"expression\":\"(\\n chmod.file.name == \\\"authorized_keys\\\" && (chmod.file.path in [ ~\\\"*/.ssh/*\\\" ])\\n) && chmod.mode != chmod.file.mode\"},\"type\":\"agent_rule\",\"id\":\"vqc-lta-u8c\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"ssh_authorized_keys_chown\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"SSH Authorized Keys Modified\",\"enabled\":true,\"defaultRule\":true,\"version\":3,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1628512221784,\"creationDate\":1606142954844,\"expression\":\"(\\n chown.file.name == \\\"authorized_keys\\\" && (chown.file.path in [ ~\\\"*/.ssh/*\\\" ])\\n) && (chown.uid != chown.file.uid || chown.gid != chown.file.gid)\"},\"type\":\"agent_rule\",\"id\":\"ien-7aw-blw\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"ssh_authorized_keys_link\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"SSH Authorized Keys Modified\",\"enabled\":true,\"defaultRule\":true,\"version\":3,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1628512221784,\"creationDate\":1606142954844,\"expression\":\"(\\n link.file.name == \\\"authorized_keys\\\" && (link.file.path in [ ~\\\"*/.ssh/*\\\" ]\\n || link.file.destination.path in [ ~\\\"*/.ssh/*\\\" ])\\n)\"},\"type\":\"agent_rule\",\"id\":\"za8-uxc-jxk\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"ssh_authorized_keys_rename\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"SSH Authorized Keys Modified\",\"enabled\":true,\"defaultRule\":true,\"version\":3,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1628512221784,\"creationDate\":1606142954844,\"expression\":\"(\\n rename.file.name == \\\"authorized_keys\\\" && (rename.file.path in [ ~\\\"*/.ssh/*\\\" ]\\n || rename.file.destination.path in [ ~\\\"*/.ssh/*\\\" ])\\n)\"},\"type\":\"agent_rule\",\"id\":\"tiz-yss-zhq\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"ssh_authorized_keys_open\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"SSH Authorized Keys Modified\",\"enabled\":true,\"defaultRule\":true,\"version\":3,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1628512221784,\"creationDate\":1606142954844,\"expression\":\"(\\n open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 &&\\n open.file.name == \\\"authorized_keys\\\" && (open.file.path in [ ~\\\"*/.ssh/*\\\" ])\\n)\"},\"type\":\"agent_rule\",\"id\":\"nej-iw4-adk\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"ssh_authorized_keys_unlink\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"SSH Authorized Keys Modified\",\"enabled\":true,\"defaultRule\":true,\"version\":3,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1628512221784,\"creationDate\":1606142954844,\"expression\":\"(\\n unlink.file.name == \\\"authorized_keys\\\" && (unlink.file.path in [ ~\\\"*/.ssh/*\\\" ])\\n)\"},\"type\":\"agent_rule\",\"id\":\"apr-zj4-ee1\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"ssh_authorized_keys_utimes\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"SSH Authorized Keys Modified\",\"enabled\":true,\"defaultRule\":true,\"version\":3,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1628512221784,\"creationDate\":1606142954844,\"expression\":\"(\\n utimes.file.name == \\\"authorized_keys\\\" && (utimes.file.path in [ ~\\\"*/.ssh/*\\\" ])\\n)\"},\"type\":\"agent_rule\",\"id\":\"yhq-etl-wr6\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"pam_modification_chmod\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"PAM Configuration Files Modification\",\"enabled\":true,\"defaultRule\":true,\"version\":3,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1628512221276,\"creationDate\":1606142936138,\"expression\":\"(\\n (chmod.file.path in [ ~\\\"/etc/pam.d/*\\\", \\\"/etc/pam.conf\\\" ])\\n) && chmod.mode != chmod.file.mode\"},\"type\":\"agent_rule\",\"id\":\"12k-ui3-z4h\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"pam_modification_chown\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"PAM Configuration Files Modification\",\"enabled\":true,\"defaultRule\":true,\"version\":3,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1628512221276,\"creationDate\":1606142936138,\"expression\":\"(\\n (chown.file.path in [ ~\\\"/etc/pam.d/*\\\", \\\"/etc/pam.conf\\\" ])\\n) && (chown.uid != chown.file.uid || chown.gid != chown.file.gid)\"},\"type\":\"agent_rule\",\"id\":\"fak-u9s-pac\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"pam_modification_link\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"PAM Configuration Files Modification\",\"enabled\":true,\"defaultRule\":true,\"version\":3,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1628512221276,\"creationDate\":1606142936138,\"expression\":\"(\\n (link.file.path in [ ~\\\"/etc/pam.d/*\\\", \\\"/etc/pam.conf\\\" ]\\n || link.file.destination.path in [ ~\\\"/etc/pam.d/*\\\", \\\"/etc/pam.conf\\\" ])\\n)\"},\"type\":\"agent_rule\",\"id\":\"m8i-uhr-aoq\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"pam_modification_rename\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"PAM Configuration Files Modification\",\"enabled\":true,\"defaultRule\":true,\"version\":3,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1628512221276,\"creationDate\":1606142936138,\"expression\":\"(\\n (rename.file.path in [ ~\\\"/etc/pam.d/*\\\", \\\"/etc/pam.conf\\\" ]\\n || rename.file.destination.path in [ ~\\\"/etc/pam.d/*\\\", \\\"/etc/pam.conf\\\" ])\\n)\"},\"type\":\"agent_rule\",\"id\":\"2fy-aqt-8mz\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"pam_modification_open\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"PAM Configuration Files Modification\",\"enabled\":true,\"defaultRule\":true,\"version\":3,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1628512221276,\"creationDate\":1606142936138,\"expression\":\"(\\n open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 &&\\n (open.file.path in [ ~\\\"/etc/pam.d/*\\\", \\\"/etc/pam.conf\\\" ])\\n)\"},\"type\":\"agent_rule\",\"id\":\"adl-qjr-lyg\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"pam_modification_unlink\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"PAM Configuration Files Modification\",\"enabled\":true,\"defaultRule\":true,\"version\":3,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1628512221276,\"creationDate\":1606142936138,\"expression\":\"(\\n (unlink.file.path in [ ~\\\"/etc/pam.d/*\\\", \\\"/etc/pam.conf\\\" ])\\n)\"},\"type\":\"agent_rule\",\"id\":\"ei7-n5e-rvv\"},{\"attributes\":{\"category\":\"File Activity\",\"name\":\"pam_modification_utimes\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"PAM Configuration Files Modification\",\"enabled\":true,\"defaultRule\":true,\"version\":3,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1628512221276,\"creationDate\":1606142936138,\"expression\":\"(\\n (utimes.file.path in [ ~\\\"/etc/pam.d/*\\\", \\\"/etc/pam.conf\\\" ])\\n)\"},\"type\":\"agent_rule\",\"id\":\"ohp-ags-xpk\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"passwd_execution\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Passwd utility executed\",\"enabled\":true,\"defaultRule\":true,\"version\":1,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1627913197013,\"creationDate\":1617722068383,\"expression\":\"exec.file.path == \\\"/usr/bin/passwd\\\"\"},\"type\":\"agent_rule\",\"id\":\"ejk-rbu-v9x\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"java_shell_execution\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Java process spawned shell/utility\",\"enabled\":true,\"defaultRule\":true,\"version\":1,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1627913196085,\"creationDate\":1617722069224,\"expression\":\"(exec.file.path in [ \\\"/bin/dash\\\", \\\"/usr/bin/dash\\\",\\n \\\"/bin/sh\\\", \\\"/bin/static-sh\\\", \\\"/usr/bin/sh\\\",\\n \\\"/usr/bin/bash\\\",\\n \\\"/bin/bash-static\\\",\\n \\\"/usr/bin/zsh\\\",\\n \\\"/usr/bin/ash\\\",\\n \\\"/usr/bin/csh\\\",\\n \\\"/usr/bin/ksh\\\",\\n \\\"/usr/bin/tcsh\\\",\\n \\\"/usr/lib/initramfs-tools/bin/busybox\\\",\\n \\\"/bin/busybox\\\",\\n \\\"/usr/bin/fish\\\",\\n \\\"/bin/ksh93\\\",\\n \\\"/bin/rksh\\\", \\\"/bin/rksh93\\\",\\n \\\"/bin/lksh\\\",\\n \\\"/bin/mksh\\\", \\\"/bin/mksh-static\\\",\\n \\\"/usr/bin/csharp\\\",\\n \\\"/bin/posh\\\",\\n \\\"/usr/bin/rc\\\",\\n \\\"/bin/sash\\\",\\n \\\"/usr/bin/yash\\\",\\n \\\"/bin/zsh5\\\", \\\"/bin/zsh5-static\\\" ] ||\\n exec.file.path in [\\\"/usr/bin/wget\\\", \\\"/usr/bin/curl\\\"] ||\\n exec.file.path in [\\\"/bin/cat\\\",\\\"/bin/chgrp\\\",\\\"/bin/chmod\\\",\\\"/bin/chown\\\",\\\"/bin/cp\\\",\\\"/bin/date\\\",\\\"/bin/dd\\\",\\\"/bin/df\\\",\\\"/bin/dir\\\",\\\"/bin/echo\\\",\\\"/bin/ln\\\",\\\"/bin/ls\\\",\\\"/bin/mkdir\\\",\\\"/bin/mknod\\\",\\\"/bin/mktemp\\\",\\\"/bin/mv\\\",\\\"/bin/pwd\\\",\\\"/bin/readlink\\\",\\\"/bin/rm\\\",\\\"/bin/rmdir\\\",\\\"/bin/sleep\\\",\\\"/bin/stty\\\",\\\"/bin/sync\\\",\\\"/bin/touch\\\",\\\"/bin/uname\\\",\\\"/bin/vdir\\\",\\\"/usr/bin/arch\\\",\\\"/usr/bin/b2sum\\\",\\\"/usr/bin/base32\\\",\\\"/usr/bin/base64\\\",\\\"/usr/bin/basename\\\",\\\"/usr/bin/chcon\\\",\\\"/usr/bin/cksum\\\",\\\"/usr/bin/comm\\\",\\\"/usr/bin/csplit\\\",\\\"/usr/bin/cut\\\",\\\"/usr/bin/dircolors\\\",\\\"/usr/bin/dirname\\\",\\\"/usr/bin/du\\\",\\\"/usr/bin/env\\\",\\\"/usr/bin/expand\\\",\\\"/usr/bin/expr\\\",\\\"/usr/bin/factor\\\",\\\"/usr/bin/fmt\\\",\\\"/usr/bin/fold\\\",\\\"/usr/bin/groups\\\",\\\"/usr/bin/head\\\",\\\"/usr/bin/hostid\\\",\\\"/usr/bin/id\\\",\\\"/usr/bin/install\\\",\\\"/usr/bin/join\\\",\\\"/usr/bin/link\\\",\\\"/usr/bin/logname\\\",\\\"/usr/bin/md5sum\\\",\\\"/usr/bin/md5sum.textutils\\\",\\\"/usr/bin/mkfifo\\\",\\\"/usr/bin/nice\\\",\\\"/usr/bin/nl\\\",\\\"/usr/bin/nohup\\\",\\\"/usr/bin/nproc\\\",\\\"/usr/bin/numfmt\\\",\\\"/usr/bin/od\\\",\\\"/usr/bin/paste\\\",\\\"/usr/bin/pathchk\\\",\\\"/usr/bin/pinky\\\",\\\"/usr/bin/pr\\\",\\\"/usr/bin/printenv\\\",\\\"/usr/bin/printf\\\",\\\"/usr/bin/ptx\\\",\\\"/usr/bin/realpath\\\",\\\"/usr/bin/runcon\\\",\\\"/usr/bin/seq\\\",\\\"/usr/bin/sha1sum\\\",\\\"/usr/bin/sha224sum\\\",\\\"/usr/bin/sha256sum\\\",\\\"/usr/bin/sha384sum\\\",\\\"/usr/bin/sha512sum\\\",\\\"/usr/bin/shred\\\",\\\"/usr/bin/shuf\\\",\\\"/usr/bin/sort\\\",\\\"/usr/bin/split\\\",\\\"/usr/bin/stat\\\",\\\"/usr/bin/stdbuf\\\",\\\"/usr/bin/sum\\\",\\\"/usr/bin/tac\\\",\\\"/usr/bin/tail\\\",\\\"/usr/bin/tee\\\",\\\"/usr/bin/test\\\",\\\"/usr/bin/timeout\\\",\\\"/usr/bin/tr\\\",\\\"/usr/bin/truncate\\\",\\\"/usr/bin/tsort\\\",\\\"/usr/bin/tty\\\",\\\"/usr/bin/unexpand\\\",\\\"/usr/bin/uniq\\\",\\\"/usr/bin/unlink\\\",\\\"/usr/bin/users\\\",\\\"/usr/bin/wc\\\",\\\"/usr/bin/who\\\",\\\"/usr/bin/whoami\\\",\\\"/usr/sbin/chroot\\\"])\\n&& process.ancestors.file.name == \\\"java\\\"\"},\"type\":\"agent_rule\",\"id\":\"pej-frv-8lb\"},{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"common_net_intrusion_util\",\"creator\":{\"handle\":\"\",\"name\":\"\"},\"description\":\"Nmap Execution Detected\",\"enabled\":true,\"defaultRule\":true,\"version\":1,\"updater\":{\"handle\":\"\",\"name\":\"\"},\"updateDate\":1627913195813,\"creationDate\":1617722067554,\"expression\":\"exec.file.path == \\\"/usr/bin/nmap\\\"\"},\"type\":\"agent_rule\",\"id\":\"yiy-mba-pny\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/json;charset=utf-8"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:51:24 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules/w3n-qy8-qud"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["application/json;charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:51:24 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"My Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\",\"name\":\"testgetallcloudworkloadsecurityagentrulesreturnsokresponse1709907553\"},\"type\":\"agent_rule\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"gd2-ogg-fyk\",\"attributes\":{\"version\":1,\"name\":\"testgetallcloudworkloadsecurityagentrulesreturnsokresponse1709907553\",\"description\":\"My Agent rule\",\"expression\":\"exec.file.name == \\\"sh\\\"\",\"category\":\"Process Activity\",\"creationAuthorUuId\":\"cc32ddea-b5e4-11ec-93be-da7ad0900002\",\"creationDate\":1709907553752,\"updateAuthorUuId\":\"cc32ddea-b5e4-11ec-93be-da7ad0900002\",\"updateDate\":1709907553752,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"defaultRule\":false,\"enabled\":true,\"creator\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"},\"updater\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"}},\"type\":\"agent_rule\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:13 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"gd2-ogg-fyk\",\"attributes\":{\"version\":1,\"name\":\"testgetallcloudworkloadsecurityagentrulesreturnsokresponse1709907553\",\"description\":\"My Agent rule\",\"expression\":\"exec.file.name == \\\"sh\\\"\",\"category\":\"Process Activity\",\"creationAuthorUuId\":\"cc32ddea-b5e4-11ec-93be-da7ad0900002\",\"creationDate\":1709907553752,\"updateAuthorUuId\":\"cc32ddea-b5e4-11ec-93be-da7ad0900002\",\"updateDate\":1709907553752,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":false,\"creator\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"},\"updater\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"}},\"type\":\"agent_rule\"},{\"id\":\"g5j-9l5-phu\",\"attributes\":{\"version\":11,\"name\":\"cryptominer_args\",\"description\":\"A process launched with arguments associated with cryptominers\",\"expression\":\"exec.args_flags in [\\\"cpu-priority\\\", \\\"donate-level\\\", ~\\\"randomx-1gb-pages\\\"] || exec.args in [~\\\"*stratum+tcp*\\\", ~\\\"*stratum+ssl*\\\", ~\\\"*stratum1+tcp*\\\", ~\\\"*stratum1+ssl*\\\", ~\\\"*stratum2+tcp*\\\", ~\\\"*stratum2+ssl*\\\", ~\\\"*nicehash*\\\", ~\\\"*yespower*\\\"]\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateAuthorUuId\":\"3c3ddadd-9ceb-11ed-b5f9-b6e96f801924\",\"updateDate\":1709241156082,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":false,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"Daniel Zhou\",\"handle\":\"daniel.zhou@datadoghq.com\"}},\"type\":\"agent_rule\"},{\"id\":\"ya1-tzs-p2g\",\"attributes\":{\"version\":2,\"name\":\"tde_malware_ransomware_notes_written\",\"description\":\"A possible ransomware note created under common user directories\",\"expression\":\"open.file.path in [~\\\"/home/**\\\", ~\\\"/root/**\\\", ~\\\"/bin/**\\\", ~\\\"/usr/bin/**\\\", ~\\\"/opt/**\\\", ~\\\"/etc/**\\\", ~\\\"/var/log/**\\\", ~\\\"/var/lib/log/**\\\", ~\\\"/var/backup/**\\\", ~\\\"/var/www/**\\\"] && open.file.name in [r\\\".*(restore|recovery|readme|instruction|how_to|ransom).*\\\", r\\\".*(your_|crypt|lock|important).*\\\\.txt$\\\"]\",\"category\":\"File Activity\",\"creationAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"creationDate\":1703167436145,\"updateAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"updateDate\":1708536266340,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":false,\"creator\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"},\"updater\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"}},\"type\":\"agent_rule\"},{\"id\":\"xn0-ede-cwo\",\"attributes\":{\"version\":1,\"name\":\"tde_nsenter_pid1_detection\",\"description\":\"nsenter used in container to execute code on the OS PID1\",\"expression\":\"exec.file.name == \\\"nsenter\\\" && exec.args_options in [\\\"target=1\\\", \\\"t=1\\\"] && container.id !=\\\"\\\"\",\"category\":\"Process Activity\",\"creationAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"creationDate\":1707329054174,\"updateAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"updateDate\":1707329054174,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":false,\"creator\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"},\"updater\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"}},\"type\":\"agent_rule\"},{\"id\":\"wyh-nt8-y0o\",\"attributes\":{\"version\":1,\"name\":\"tde_red_team_domains_used\",\"description\":\"Connection to red team domain\",\"expression\":\"dns.question.name in [~\\\"*.interact.sh\\\" , ~\\\"*.oast.pro\\\" , ~\\\"*.oast.live\\\" , ~\\\"*.oast.site\\\" , ~\\\"*.oast.online\\\" , ~\\\"*.oast.fun\\\" , ~\\\"*.oast.me\\\" , ~\\\"*.burpcollaborator.net\\\" , ~\\\"*.oastify.com\\\" , ~\\\"*canarytokens.com\\\" , ~\\\"*.requestbin.net\\\" , ~\\\"*.dnslog.cn\\\"]\",\"category\":\"Network Activity\",\"creationAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"creationDate\":1705421116371,\"updateAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"updateDate\":1705421116371,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":false,\"creator\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"},\"updater\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"}},\"type\":\"agent_rule\"},{\"id\":\"mua-npg-7n2\",\"attributes\":{\"version\":1,\"name\":\"looney_tunables_exploit\",\"description\":\"Looney Tunables (CVE-2023-4911) exploit attempted\",\"expression\":\"exec.file.mode & S_ISUID > 0 && exec.file.uid == 0 && exec.uid != 0 && exec.envs in [~\\\"*GLIBC_TUNABLES*\\\"]\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1704404434303,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"afy-gnp-rfp\",\"attributes\":{\"version\":1,\"name\":\"kernel_msr_write\",\"description\":\"A process attempted to enable writing to model-specific registers\",\"expression\":\"exec.comm == \\\"modprobe\\\" && process.args =~ \\\"*msr*allow_writes*\\\"\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1704404434302,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"qew-m41-jfc\",\"attributes\":{\"version\":1,\"name\":\"ransomware_note\",\"description\":\"Possible ransomware note created under common user directories\",\"expression\":\"open.flags & O_CREAT > 0 && open.file.path in [~\\\"/home/**\\\", ~\\\"/root/**\\\", ~\\\"/bin/**\\\", ~\\\"/usr/bin/**\\\", ~\\\"/opt/**\\\", ~\\\"/etc/**\\\", ~\\\"/var/log/**\\\", ~\\\"/var/lib/log/**\\\", ~\\\"/var/backup/**\\\", ~\\\"/var/www/**\\\"] && open.file.name in [r\\\"(?i).*(restore|recovery|readme|instruction|how_to|ransom).*|.*(your_|crypt|lock|important).*\\\\.txt$\\\"] && open.file.name != \\\"README.md\\\"\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1704404434302,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"mwt-r43-san\",\"attributes\":{\"version\":1,\"name\":\"sensitive_tracing\",\"description\":\"A process is tracing privileged processes or sshd for possible credential dumping\",\"expression\":\"(ptrace.request == PTRACE_PEEKTEXT || ptrace.request == PTRACE_PEEKDATA || ptrace.request == PTRACE_PEEKUSR) && ptrace.tracee.euid == 0 && process.comm not in [\\\"dlv\\\", \\\"dlv-linux-amd64\\\", \\\"strace\\\", \\\"gdb\\\", \\\"lldb-server\\\"]\",\"category\":\"Kernel Activity\",\"creationDate\":0,\"updateDate\":1704404434302,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"ul7-jol-1bw\",\"attributes\":{\"version\":1,\"name\":\"cryptominer_envs\",\"description\":\"Process environment variables match cryptocurrency miner\",\"expression\":\"exec.envs in [~\\\"*POOL_USER*\\\", ~\\\"*POOL_URL*\\\", ~\\\"*POOL_PASS*\\\", ~\\\"*DONATE_LEVEL*\\\"]\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1704404426851,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"dqg-wa2-0oi\",\"attributes\":{\"version\":1,\"name\":\"procdump_execution\",\"description\":\"A tool used to dump process memory has been executed\",\"expression\":\"exec.file.name in [\\\"procmon.exe\\\",\\\"procdump.exe\\\"]\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1704404425515,\"filters\":[\"os == \\\"windows\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"csf-k3c-qka\",\"attributes\":{\"version\":1,\"name\":\"minidump_usage\",\"description\":\"Process memory was dumped using the minidump function from comsvcs.dll\",\"expression\":\"exec.cmdline =~ \\\"*MiniDump*\\\"\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1704404425504,\"filters\":[\"os == \\\"windows\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"ghp-mfr-1qz\",\"attributes\":{\"version\":1,\"name\":\"tunnel_traffic\",\"description\":\"Tunneling or port forwarding tool used\",\"expression\":\"((exec.comm == \\\"pivotnacci\\\" || exec.comm == \\\"gost\\\") && process.args in [r\\\".*(-L|-C|-R).*\\\"]) || (exec.comm in [\\\"ssh\\\", \\\"sshd\\\"] && process.args in [r\\\".*(-R|-L|-D|w).*\\\"] && process.args in [r\\\"((25[0-5]|(2[0-4]|1\\\\d|[1-9])\\\\d)\\\\.?\\\\b){4}\\\"] ) || (exec.comm == \\\"sshuttle\\\" && process.args in [r\\\".*(-r|--remote|-l|--listen).*\\\"]) || (exec.comm == \\\"socat\\\" && process.args in [r\\\".*(TCP4-LISTEN:|SOCKS).*\\\"]) || (exec.comm in [\\\"iodine\\\", \\\"iodined\\\", \\\"dnscat\\\", \\\"hans\\\", \\\"hans-ubuntu\\\", \\\"ptunnel-ng\\\", \\\"ssf\\\", \\\"3proxy\\\", \\\"ngrok\\\"] && process.parent.comm in [\\\"bash\\\", \\\"dash\\\", \\\"ash\\\", \\\"sh\\\", \\\"tcsh\\\", \\\"csh\\\", \\\"zsh\\\", \\\"ksh\\\", \\\"fish\\\"])\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1704404425504,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"uhr-n6q-lvh\",\"attributes\":{\"version\":1,\"name\":\"iptables_egress_allowed\",\"description\":\"Egress traffic allowed using iptables\",\"expression\":\"exec.comm == \\\"iptables\\\" && process.args in [r\\\".*OUTPUT.*((25[0-5]|(2[0-4]|1\\\\d|[1-9]|)\\\\d)\\\\.?\\\\b){4}.*ACCEPT\\\"] && process.args not in [r\\\"(127\\\\.)|(10\\\\.)|(172\\\\.1[6-9]\\\\.)|(172\\\\.2[0-9]\\\\.)|(^172\\\\.3[0-1]\\\\.)|(192\\\\.168\\\\.)|(169\\\\.254\\\\.)\\\"]\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1704404424741,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"642-j0s-psf\",\"attributes\":{\"version\":1,\"name\":\"libpam_ebpf_hook\",\"description\":\"Library libpam.so hooked using eBPF\",\"expression\":\"bpf.cmd == BPF_MAP_CREATE && process.args in [r\\\".*libpam.so.*\\\"]\",\"category\":\"Kernel Activity\",\"creationDate\":0,\"updateDate\":1704404424739,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"u8d-fot-gin\",\"attributes\":{\"version\":1,\"name\":\"wmi_spawning_shell\",\"description\":\"Command executed via WMI\",\"expression\":\"exec.file.name in [~\\\"powershell*\\\",\\\"cmd.exe\\\"] && process.parent.file.name == \\\"WmiPrvSE.exe\\\"\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1704404424705,\"filters\":[\"os == \\\"windows\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"17k-2xh-ie2\",\"attributes\":{\"version\":1,\"name\":\"crackmap_exec_executed\",\"description\":\"Known offensive tool crackmap exec executed\",\"expression\":\"exec.cmdline in [~\\\"*crackmapexec*\\\", ~\\\"*cme*\\\"]\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1704404424475,\"filters\":[\"os == \\\"windows\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"45j-2y7-vyd\",\"attributes\":{\"version\":1,\"name\":\"chatroom_request\",\"description\":\"A newly created file contacted a chatroom domain\",\"expression\":\"dns.question.name in [\\\"discord.com\\\", \\\"api.telegram.org\\\", \\\"cdn.discordapp.com\\\"] && process.file.in_upper_layer && process.file.change_time < 60s\",\"category\":\"Network Activity\",\"creationDate\":0,\"updateDate\":1704404424472,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"ecn-u6p-nqz\",\"attributes\":{\"version\":1,\"name\":\"suspicious_bitsadmin_usage\",\"description\":\"A suspicious bitsadmin command has been executed\",\"expression\":\"exec.file.name == \\\"bitsadmin.exe\\\" && exec.cmdline in [~\\\"*addfile*\\\", ~\\\"*create*\\\", ~\\\"*resume*\\\"]\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1704404424472,\"filters\":[\"os == \\\"windows\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"xcs-z8z-hx3\",\"attributes\":{\"version\":1,\"name\":\"ntds_in_commandline\",\"description\":\"NTDS file referenced in commandline\",\"expression\":\"exec.cmdline =~ \\\"*ntds.dit*\\\"\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1704404424468,\"filters\":[\"os == \\\"windows\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"l7e-zmy-5pd\",\"attributes\":{\"version\":1,\"name\":\"scheduled_task_creation\",\"description\":\"A scheduled task was created\",\"expression\":\"exec.file.name in [\\\"at.exe\\\",\\\"schtasks.exe\\\"]\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1704404424467,\"filters\":[\"os == \\\"windows\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"i8x-ujp-ueg\",\"attributes\":{\"version\":1,\"name\":\"delete_system_log\",\"description\":\"A process deleted common system log files\",\"expression\":\"unlink.file.path in [\\\"/var/run/utmp\\\", \\\"/var/log/wtmp\\\", \\\"/var/log/btmp\\\", \\\"/var/log/lastlog\\\", \\\"/var/log/faillog\\\", \\\"/var/log/syslog\\\", \\\"/var/log/messages\\\", \\\"/var/log/secure\\\", \\\"/var/log/auth.log\\\", \\\"/var/log/boot.log\\\", \\\"/var/log/kern.log\\\"] && process.comm not in [\\\"dockerd\\\", \\\"containerd\\\"]\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1704404424465,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"xns-u7l-cxs\",\"attributes\":{\"version\":1,\"name\":\"certutil_usage\",\"description\":\"Certutil was executed to transmit or decode a potentially malicious file\",\"expression\":\"exec.file.name == \\\"certutil.exe\\\" && ((exec.cmdline =~ \\\"*urlcache*\\\" && exec.cmdline =~ \\\"*split*\\\") || exec.cmdline =~ \\\"*decode*\\\")\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1704404424457,\"filters\":[\"os == \\\"windows\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"hxr-rjo-6am\",\"attributes\":{\"version\":1,\"name\":\"open_msr_writes\",\"description\":\"A process opened a model-specific register (MSR) configuration file\",\"expression\":\"open.file.path == \\\"/sys/module/msr/parameters/allow_writes\\\" && open.flags & O_CREAT|O_TRUNC|O_RDWR|O_WRONLY > 0\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1704404424453,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"jzh-eac-blf\",\"attributes\":{\"version\":1,\"name\":\"exec_wrmsr\",\"description\":\"The wrmsr program executed\",\"expression\":\"exec.comm == \\\"wrmsr\\\"\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1704404424444,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"mdd-iec-z0k\",\"attributes\":{\"version\":14,\"name\":\"database_shell_execution\",\"description\":\"A database application spawned a shell, shell utility, or HTTP utility\",\"expression\":\"(exec.file.path in [ \\\"/bin/dash\\\",\\n \\\"/usr/bin/dash\\\",\\n \\\"/bin/sh\\\",\\n \\\"/bin/static-sh\\\",\\n \\\"/usr/bin/sh\\\",\\n \\\"/bin/bash\\\",\\n \\\"/usr/bin/bash\\\",\\n \\\"/bin/bash-static\\\",\\n \\\"/usr/bin/zsh\\\",\\n \\\"/usr/bin/ash\\\",\\n \\\"/usr/bin/csh\\\",\\n \\\"/usr/bin/ksh\\\",\\n \\\"/usr/bin/tcsh\\\",\\n \\\"/usr/lib/initramfs-tools/bin/busybox\\\",\\n \\\"/bin/busybox\\\",\\n \\\"/usr/bin/fish\\\",\\n \\\"/bin/ksh93\\\",\\n \\\"/bin/rksh\\\",\\n \\\"/bin/rksh93\\\",\\n \\\"/bin/lksh\\\",\\n \\\"/bin/mksh\\\",\\n \\\"/bin/mksh-static\\\",\\n \\\"/usr/bin/csharp\\\",\\n \\\"/bin/posh\\\",\\n \\\"/usr/bin/rc\\\",\\n \\\"/bin/sash\\\",\\n \\\"/usr/bin/yash\\\",\\n \\\"/bin/zsh5\\\",\\n \\\"/bin/zsh5-static\\\" ] ||\\n exec.comm in [\\\"wget\\\", \\\"curl\\\", \\\"lwp-download\\\"] ||\\n exec.file.path in [\\\"/bin/cat\\\",\\\"/bin/chgrp\\\",\\\"/bin/chmod\\\",\\\"/bin/chown\\\",\\\"/bin/cp\\\",\\\"/bin/date\\\",\\\"/bin/dd\\\",\\\"/bin/df\\\",\\\"/bin/dir\\\",\\\"/bin/echo\\\",\\\"/bin/ln\\\",\\\"/bin/ls\\\",\\\"/bin/mkdir\\\",\\\"/bin/mknod\\\",\\\"/bin/mktemp\\\",\\\"/bin/mv\\\",\\\"/bin/pwd\\\",\\\"/bin/readlink\\\",\\\"/bin/rm\\\",\\\"/bin/rmdir\\\",\\\"/bin/sleep\\\",\\\"/bin/stty\\\",\\\"/bin/sync\\\",\\\"/bin/touch\\\",\\\"/bin/uname\\\",\\\"/bin/vdir\\\",\\\"/usr/bin/arch\\\",\\\"/usr/bin/b2sum\\\",\\\"/usr/bin/base32\\\",\\\"/usr/bin/base64\\\",\\\"/usr/bin/basename\\\",\\\"/usr/bin/chcon\\\",\\\"/usr/bin/cksum\\\",\\\"/usr/bin/comm\\\",\\\"/usr/bin/csplit\\\",\\\"/usr/bin/cut\\\",\\\"/usr/bin/dircolors\\\",\\\"/usr/bin/dirname\\\",\\\"/usr/bin/du\\\",\\\"/usr/bin/env\\\",\\\"/usr/bin/expand\\\",\\\"/usr/bin/expr\\\",\\\"/usr/bin/factor\\\",\\\"/usr/bin/fmt\\\",\\\"/usr/bin/fold\\\",\\\"/usr/bin/groups\\\",\\\"/usr/bin/head\\\",\\\"/usr/bin/hostid\\\",\\\"/usr/bin/id\\\",\\\"/usr/bin/install\\\",\\\"/usr/bin/join\\\",\\\"/usr/bin/link\\\",\\\"/usr/bin/logname\\\",\\\"/usr/bin/md5sum\\\",\\\"/usr/bin/md5sum.textutils\\\",\\\"/usr/bin/mkfifo\\\",\\\"/usr/bin/nice\\\",\\\"/usr/bin/nl\\\",\\\"/usr/bin/nohup\\\",\\\"/usr/bin/nproc\\\",\\\"/usr/bin/numfmt\\\",\\\"/usr/bin/od\\\",\\\"/usr/bin/paste\\\",\\\"/usr/bin/pathchk\\\",\\\"/usr/bin/pinky\\\",\\\"/usr/bin/pr\\\",\\\"/usr/bin/printenv\\\",\\\"/usr/bin/printf\\\",\\\"/usr/bin/ptx\\\",\\\"/usr/bin/realpath\\\",\\\"/usr/bin/runcon\\\",\\\"/usr/bin/seq\\\",\\\"/usr/bin/sha1sum\\\",\\\"/usr/bin/sha224sum\\\",\\\"/usr/bin/sha256sum\\\",\\\"/usr/bin/sha384sum\\\",\\\"/usr/bin/sha512sum\\\",\\\"/usr/bin/shred\\\",\\\"/usr/bin/shuf\\\",\\\"/usr/bin/sort\\\",\\\"/usr/bin/split\\\",\\\"/usr/bin/stat\\\",\\\"/usr/bin/stdbuf\\\",\\\"/usr/bin/sum\\\",\\\"/usr/bin/tac\\\",\\\"/usr/bin/tail\\\",\\\"/usr/bin/tee\\\",\\\"/usr/bin/test\\\",\\\"/usr/bin/timeout\\\",\\\"/usr/bin/tr\\\",\\\"/usr/bin/truncate\\\",\\\"/usr/bin/tsort\\\",\\\"/usr/bin/tty\\\",\\\"/usr/bin/unexpand\\\",\\\"/usr/bin/uniq\\\",\\\"/usr/bin/unlink\\\",\\\"/usr/bin/users\\\",\\\"/usr/bin/wc\\\",\\\"/usr/bin/who\\\",\\\"/usr/bin/whoami\\\",\\\"/usr/sbin/chroot\\\"]) &&\\nprocess.parent.file.name in [\\\"mysqld\\\", \\\"mongod\\\", \\\"postgres\\\"] &&\\n!(process.parent.file.name == \\\"initdb\\\" &&\\nexec.args == \\\"-c locale -a\\\") &&\\n!(process.parent.file.name == \\\"postgres\\\" &&\\nexec.args == ~\\\"*pg_wal*\\\")\",\"category\":\"Process Activity\",\"creationDate\":1617722069155,\"updateDate\":1704404408433,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"wic-due-xxn\",\"attributes\":{\"version\":2,\"name\":\"pci_11_5_critical_binaries_open_v2\",\"description\":\"Critical system binaries may have been modified\",\"expression\":\"(\\n open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 &&\\n open.file.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\", ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/**\\\" ]\\n && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\\n && process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n) && container.created_at > 90s\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1704404408077,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"ie9-9ii-vjx\",\"attributes\":{\"version\":18,\"name\":\"nsswitch_conf_mod_chmod\",\"description\":\"nsswitch may have been modified without authorization\",\"expression\":\"(\\n (chmod.file.path in [ \\\"/etc/nsswitch.conf\\\" ])\\n) && chmod.file.destination.mode != chmod.file.mode && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\",\"category\":\"File Activity\",\"creationDate\":1606142958657,\"updateDate\":1704404407750,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"1ez-rlj-tiq\",\"attributes\":{\"version\":2,\"name\":\"nsswitch_conf_mod_open_v2\",\"description\":\"nsswitch may have been modified without authorization\",\"expression\":\"(\\n open.flags & ((O_RDWR|O_WRONLY|O_CREAT)) > 0 &&\\n (open.file.path in [ \\\"/etc/nsswitch.conf\\\" ])\\n) && container.created_at > 90s && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1704404407660,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"oi0-rk3-alq\",\"attributes\":{\"version\":2,\"name\":\"ssl_certificate_tampering_open_v2\",\"description\":\"SSL certificates may have been tampered with\",\"expression\":\"(\\n open.flags & (O_CREAT|O_RDWR|O_WRONLY) > 0 &&\\n (open.file.path in [ ~\\\"/etc/ssl/certs/**\\\", ~\\\"/etc/pki/**\\\" ])\\n)\\n&& process.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n&& process.ancestors.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n&& process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n&& process.file.name !~ \\\"runc*\\\"\\n&& container.created_at > 90s\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1704404407651,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"vzp-pj6-nlx\",\"attributes\":{\"version\":19,\"name\":\"nsswitch_conf_mod_chown\",\"description\":\"nsswitch may have been modified without authorization\",\"expression\":\"(\\n (chown.file.path in [ \\\"/etc/nsswitch.conf\\\" ])\\n) && (chown.file.destination.uid != chown.file.uid || chown.file.destination.gid != chown.file.gid) && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\",\"category\":\"File Activity\",\"creationDate\":1606142958657,\"updateDate\":1704404407506,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"wbw-rqf-s3a\",\"attributes\":{\"version\":18,\"name\":\"nsswitch_conf_mod_open\",\"description\":\"nsswitch may have been modified without authorization\",\"expression\":\"(\\n open.flags & ((O_RDWR|O_WRONLY|O_CREAT)) > 0 &&\\n (open.file.path in [ \\\"/etc/nsswitch.conf\\\" ])\\n) && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\",\"category\":\"File Activity\",\"creationDate\":1606142958657,\"updateDate\":1704404407503,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"vkp-n2c-4el\",\"attributes\":{\"version\":3,\"name\":\"credential_modified_open_v2\",\"description\":\"Sensitive credential files were modified using a non-standard tool\",\"expression\":\"(\\n open.flags & ((O_CREAT|O_RDWR|O_WRONLY|O_TRUNC)) > 0 &&\\n (open.file.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ])\\n && process.file.path not in [ \\\"/sbin/vipw\\\", \\\"/usr/sbin/vipw\\\", \\\"/sbin/vigr\\\", \\\"/usr/sbin/vigr\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/local/bin/dockerd\\\", \\\"/usr/sbin/groupadd\\\", \\\"/usr/sbin/useradd\\\", \\\"/usr/sbin/usermod\\\", \\\"/usr/sbin/userdel\\\", \\\"/usr/bin/gpasswd\\\", \\\"/usr/bin/chage\\\", \\\"/usr/sbin/chpasswd\\\", \\\"/usr/bin/passwd\\\" ]\\n && process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n) && container.created_at > 90s\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1704404407503,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"ir2-b4s-gfn\",\"attributes\":{\"version\":3,\"name\":\"ssh_authorized_keys_open_v2\",\"description\":\"SSH modified keys may have been modified\",\"expression\":\"(\\n open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 &&\\n open.file.name in [ \\\"authorized_keys\\\", \\\"authorized_keys2\\\" ] && (open.file.path in [ ~\\\"/root/.ssh/*\\\", ~\\\"/home/*/.ssh/*\\\", ~\\\"/var/lib/*/.ssh/*\\\" ])\\n) && container.created_at > 90s\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1704404407501,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"c2x-vcd-5b4\",\"attributes\":{\"version\":3,\"name\":\"package_management_in_container_v2\",\"description\":\"Package management was detected in a conatiner outside of container start_up\",\"expression\":\"exec.file.path in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"] && container.id != \\\"\\\" && container.created_at > 90s\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1704404407500,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"nmo-zeb-pga\",\"attributes\":{\"version\":3,\"name\":\"suspicious_suid_execution\",\"description\":\"Recently written or modified suid file has been executed\",\"expression\":\"((process.file.mode & S_ISUID > 0) && process.file.modification_time < 30s) && exec.file.name != \\\"\\\" && process.ancestors.file.path not in [\\\"/opt/datadog-agent/embedded/bin/agent\\\", \\\"/opt/datadog-agent/embedded/bin/system-probe\\\", \\\"/opt/datadog-agent/embedded/bin/security-agent\\\", \\\"/opt/datadog-agent/embedded/bin/process-agent\\\", \\\"/opt/datadog-agent/bin/agent/agent\\\", \\\"/opt/datadog/apm/inject/auto_inject_runc\\\", \\\"/usr/bin/dd-host-install\\\", \\\"/usr/bin/dd-host-container-install\\\", \\\"/usr/bin/dd-container-install\\\", \\\"/opt/datadog-agent/bin/datadog-cluster-agent\\\"]\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1704404407500,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"crl-kkv-3cm\",\"attributes\":{\"version\":3,\"name\":\"tde_testing_tampering\",\"description\":\"testing only\",\"expression\":\"exec.comm == \\\"abcdefgh\\\"\",\"category\":\"Process Activity\",\"creationAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"creationDate\":1703684038882,\"updateAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"updateDate\":1704280473848,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":false,\"creator\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"},\"updater\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"}},\"type\":\"agent_rule\"},{\"id\":\"s6d-kk2-xoh\",\"attributes\":{\"version\":1,\"name\":\"tde_malware_tunneling_and_port_forwarding_technique_used\",\"description\":\"Tunneling and port forwarding tool used\",\"expression\":\"((exec.comm == \\\"pivotnacci\\\" || exec.comm == \\\"gost\\\") && process.args in [r\\\".*(-L|-C|-R).*\\\"])||(exec.comm in [\\\"ssh\\\", \\\"sshd\\\"] && process.args in [r\\\".*(-R|-L|-D|w).*\\\"] && process.args in [r\\\"((25[0-5]|(2[0-4]|1\\\\d|[1-9])\\\\d)\\\\.?\\\\b){4}\\\"] ) || (exec.comm == \\\"sshuttle\\\" && process.args in [r\\\".*(-r|--remote|-l|--listen).*\\\"]) || (exec.comm == \\\"socat\\\" && process.args in [r\\\".*(TCP4-LISTEN:|SOCKS).*\\\"]) || (exec.comm in [\\\"iodine\\\", \\\"iodined\\\", \\\"dnscat\\\", \\\"hans\\\", \\\"hans-ubuntu\\\", \\\"ptunnel-ng\\\", \\\"ssf\\\", \\\"3proxy\\\", \\\"ngrok\\\"] && process.parent.comm in [\\\"bash\\\", \\\"dash\\\", \\\"ash\\\", \\\"sh\\\", \\\"tcsh\\\", \\\"csh\\\", \\\"zsh\\\", \\\"ksh\\\", \\\"fish\\\"])\",\"category\":\"Process Activity\",\"creationAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"creationDate\":1703183027074,\"updateAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"updateDate\":1703183027074,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":false,\"creator\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"},\"updater\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"}},\"type\":\"agent_rule\"},{\"id\":\"iqa-7wg-rxt\",\"attributes\":{\"version\":1,\"name\":\"tde_malware_privileged_processes_or_sshd_traced\",\"description\":\"A process is tracing privileged processes or sshd for possible credential dumping\",\"expression\":\"((ptrace.tracee.euid==0 && ptrace.tracee.uid ==0)||ptrace.tracee.comm in [~\\\"*sshd*\\\"]) && process.comm not in [\\\"dlv\\\"]\",\"category\":\"Kernel Activity\",\"creationAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"creationDate\":1703180056299,\"updateAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"updateDate\":1703180056299,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":false,\"creator\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"},\"updater\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"}},\"type\":\"agent_rule\"},{\"id\":\"w8h-hbp-12m\",\"attributes\":{\"version\":1,\"name\":\"tde_malware_system_logs_deleted\",\"description\":\"A process deleted common system log files\",\"expression\":\"unlink.file.path in [\\\"/var/run/utmp\\\", \\\"/var/log/wtmp\\\", \\\"/var/log/btmp\\\", \\\"/var/log/lastlog\\\", \\\"/var/log/faillog\\\", \\\"/var/log/syslog\\\", \\\"/var/log/messages\\\", \\\"/var/log/secure\\\", \\\"/var/log/auth.log\\\", \\\"/var/log/boot.log\\\", \\\"/var/log/kern.log\\\"] && process.comm !=\\\"dockerd\\\"\",\"category\":\"File Activity\",\"creationAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"creationDate\":1703178864120,\"updateAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"updateDate\":1703178864120,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":false,\"creator\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"},\"updater\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"}},\"type\":\"agent_rule\"},{\"id\":\"wxv-xlp-34y\",\"attributes\":{\"version\":1,\"name\":\"tde_malware_files_with_extensions_created\",\"description\":\"Multiple files with extensions created under common user directories\",\"expression\":\"rename.file.path in [~\\\"/home/**\\\", ~\\\"/root/**\\\", ~\\\"/bin/**\\\", ~\\\"/usr/bin/**\\\", ~\\\"/var/log/**\\\", ~\\\"/var/lib/log/**\\\", ~\\\"/var/backup/*\\\", ~\\\"/var/www/**\\\"] && rename.file.destination.name in [r\\\"\\\\.[0-9a-z]+$\\\"] && rename.file.destination.name not in [r\\\".*\\\\.(lock|dbtmp|log|journal|ini|sh|json|yml|tmp|snap|txt|pyc|stat|hcl|[0-9])+$\\\"] && process.comm not in [\\\"python\\\",\\\"python3\\\",\\\"agent\\\",\\\"security-agent\\\",\\\"kubectl\\\",\\\"kubelet\\\",\\\"datadog-cluster\\\"]\",\"category\":\"File Activity\",\"creationAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"creationDate\":1703174626572,\"updateAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"updateDate\":1703174626572,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":false,\"creator\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"},\"updater\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"}},\"type\":\"agent_rule\"},{\"id\":\"3fl-m83-qqt\",\"attributes\":{\"version\":1,\"name\":\"tde_malware_proxychains_executed\",\"description\":\"Proxychaining technique used\",\"expression\":\"exec.comm == \\\"proxychains\\\"\",\"category\":\"Process Activity\",\"creationAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"creationDate\":1703171141223,\"updateAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"updateDate\":1703171141223,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":false,\"creator\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"},\"updater\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"}},\"type\":\"agent_rule\"},{\"id\":\"gha-zgq-l5p\",\"attributes\":{\"version\":1,\"name\":\"tde_malware_egress_traffic_allowed_iptables\",\"description\":\"iptables used to allow egress traffic\",\"expression\":\"exec.comm == \\\"iptables\\\" && process.args in [r\\\".*OUTPUT.*((25[0-5]|(2[0-4]|1\\\\d|[1-9]|)\\\\d)\\\\.?\\\\b){4}.*ACCEPT\\\"] && process.args not in [r\\\"(127\\\\.)|(10\\\\.)|(172\\\\.1[6-9]\\\\.)|(172\\\\.2[0-9]\\\\.)|(172\\\\.3[0-1]|\\\\.)|(192\\\\.168\\\\.)|(169\\\\.254\\\\.)\\\"]\",\"category\":\"Process Activity\",\"creationAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"creationDate\":1703167436195,\"updateAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"updateDate\":1703167436195,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":false,\"creator\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"},\"updater\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"}},\"type\":\"agent_rule\"},{\"id\":\"n9z-ini-wrv\",\"attributes\":{\"version\":1,\"name\":\"tde_malware_kernel_module_loaded_from_tmp\",\"description\":\"Kernel module loaded from common tmp directories\",\"expression\":\"load_module.file.path in [ ~\\\"/tmp/**\\\", ~\\\"/var/tmp/**\\\" ]\",\"category\":\"Kernel Activity\",\"creationAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"creationDate\":1703167436172,\"updateAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"updateDate\":1703167436172,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":false,\"creator\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"},\"updater\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"}},\"type\":\"agent_rule\"},{\"id\":\"4jr-tig-mue\",\"attributes\":{\"version\":1,\"name\":\"tde_malware_libpam_hooked_using_ebpf\",\"description\":\"Libpam.so library hooked using ebpf\",\"expression\":\"bpf.cmd == BPF_MAP_CREATE && process.args in [r\\\".*libpam.so.*\\\"]\",\"category\":\"Kernel Activity\",\"creationAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"creationDate\":1703160289438,\"updateAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"updateDate\":1703160289438,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":false,\"creator\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"},\"updater\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"}},\"type\":\"agent_rule\"},{\"id\":\"f24-lwh-8pz\",\"attributes\":{\"version\":3,\"name\":\"ps_discovery\",\"description\":\"Processes were listed using the ps command\",\"expression\":\"exec.comm == \\\"ps\\\" && exec.argv not in [\\\"-p\\\", \\\"--pid\\\"] && process.ancestors.file.name not in [\\\"qualys-cloud-agent\\\", \\\"amazon-ssm-agent\\\"]\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateAuthorUuId\":\"309c6bc6-6e68-11ec-b3fe-da7ad0900002\",\"updateDate\":1702489222385,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":false,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"Matt Mills\",\"handle\":\"matt.mills@datadoghq.com\"}},\"type\":\"agent_rule\"},{\"id\":\"esa-kku-q4m\",\"attributes\":{\"version\":8,\"name\":\"common_net_intrusion_util\",\"description\":\"A network utility (nmap) commonly used in intrusion attacks was executed\",\"expression\":\"exec.file.name in [\\\"nmap\\\", \\\"masscan\\\", \\\"fping\\\", \\\"zgrab\\\", \\\"zgrab2\\\", \\\"rustscan\\\", \\\"pnscan\\\"] && exec.args_flags not in [\\\"V\\\", \\\"version\\\"]\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateAuthorUuId\":\"de54768c-eb9f-11e9-a77a-cb84d47a0c16\",\"updateDate\":1700488339815,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":false,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"C\\u00e9cile Guyon\",\"handle\":\"cecile.guyon@datadoghq.com\"}},\"type\":\"agent_rule\"},{\"id\":\"ll4-n4d-zsq\",\"attributes\":{\"version\":8,\"name\":\"k8s_pod_service_account_token_accessed\",\"description\":\"The Kubernetes pod service account token was accessed\",\"expression\":\"open.file.path in [~\\\"/var/run/secrets/kubernetes.io/serviceaccount/**\\\", ~\\\"/run/secrets/kubernetes.io/serviceaccount/**\\\"] && open.file.name == \\\"token\\\" && process.file.path not in [\\\"/opt/datadog-agent/embedded/bin/agent\\\", \\\"/opt/datadog-agent/embedded/bin/system-probe\\\", \\\"/opt/datadog-agent/embedded/bin/security-agent\\\", \\\"/opt/datadog-agent/embedded/bin/process-agent\\\", \\\"/opt/datadog-agent/bin/agent/agent\\\", \\\"/opt/datadog/apm/inject/auto_inject_runc\\\", \\\"/usr/bin/dd-host-install\\\", \\\"/usr/bin/dd-host-container-install\\\", \\\"/usr/bin/dd-container-install\\\", \\\"/opt/datadog-agent/bin/datadog-cluster-agent\\\"] && process.file.path not in [\\\"/usr/bin/cilium-agent\\\", \\\"/coredns\\\", \\\"/usr/bin/cilium-operator\\\", \\\"/manager\\\", \\\"/fluent-bit/bin/fluent-bit\\\", \\\"/usr/local/bin/cloud-node-manager\\\", \\\"/secrets-store-csi\\\", \\\"/bin/secrets-store-csi-driver-provider-aws\\\", \\\"/usr/bin/calico-node\\\", \\\"/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent\\\", \\\"/nginx-ingress-controller\\\", \\\"/cluster-autoscaler\\\", \\\"/cluster-proportional-autoscaler\\\", \\\"/haproxy-ingress-controller\\\", \\\"/kube-state-metrics\\\", \\\"/fluent-bit-gke-exporter\\\", \\\"/bin/external-secrets\\\", \\\"/node-termination-handler\\\", \\\"/fluent-bit-gke-exporter\\\"] && process.ancestors.file.path not in [\\\"/opt/datadog-agent/embedded/bin/agent\\\", \\\"/opt/datadog-agent/embedded/bin/system-probe\\\", \\\"/opt/datadog-agent/embedded/bin/security-agent\\\", \\\"/opt/datadog-agent/embedded/bin/process-agent\\\", \\\"/opt/datadog-agent/bin/agent/agent\\\", \\\"/opt/datadog/apm/inject/auto_inject_runc\\\", \\\"/usr/bin/dd-host-install\\\", \\\"/usr/bin/dd-host-container-install\\\", \\\"/usr/bin/dd-container-install\\\", \\\"/opt/datadog-agent/bin/datadog-cluster-agent\\\"]\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1699614647574,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"o5b-3eb-em5\",\"attributes\":{\"version\":4,\"name\":\"interactive_shell_in_container\",\"description\":\"An interactive shell was started inside of a container\",\"expression\":\"exec.file.path in [ \\\"/bin/dash\\\",\\n \\\"/usr/bin/dash\\\",\\n \\\"/bin/sh\\\",\\n \\\"/bin/static-sh\\\",\\n \\\"/usr/bin/sh\\\",\\n \\\"/bin/bash\\\",\\n \\\"/usr/bin/bash\\\",\\n \\\"/bin/bash-static\\\",\\n \\\"/usr/bin/zsh\\\",\\n \\\"/usr/bin/ash\\\",\\n \\\"/usr/bin/csh\\\",\\n \\\"/usr/bin/ksh\\\",\\n \\\"/usr/bin/tcsh\\\",\\n \\\"/usr/lib/initramfs-tools/bin/busybox\\\",\\n \\\"/bin/busybox\\\",\\n \\\"/usr/bin/fish\\\",\\n \\\"/bin/ksh93\\\",\\n \\\"/bin/rksh\\\",\\n \\\"/bin/rksh93\\\",\\n \\\"/bin/lksh\\\",\\n \\\"/bin/mksh\\\",\\n \\\"/bin/mksh-static\\\",\\n \\\"/usr/bin/csharp\\\",\\n \\\"/bin/posh\\\",\\n \\\"/usr/bin/rc\\\",\\n \\\"/bin/sash\\\",\\n \\\"/usr/bin/yash\\\",\\n \\\"/bin/zsh5\\\",\\n \\\"/bin/zsh5-static\\\" ] && exec.args_flags in [\\\"i\\\"] && container.id !=\\\"\\\"\",\"category\":\"Process Activity\",\"creationDate\":1627392835654,\"updateDate\":1699614634532,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"pm7-0bt-lbp\",\"attributes\":{\"version\":19,\"name\":\"ssh_authorized_keys_unlink\",\"description\":\"SSH modified keys may have been modified\",\"expression\":\"(\\n unlink.file.name in [ \\\"authorized_keys\\\", \\\"authorized_keys2\\\" ] && (unlink.file.path in [ ~\\\"/root/.ssh/*\\\", ~\\\"/home/*/.ssh/*\\\", ~\\\"/var/lib/*/.ssh/*\\\" ])\\n)\",\"category\":\"File Activity\",\"creationDate\":1642158535302,\"updateDate\":1699614632218,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"6ss-gx0-o0l\",\"attributes\":{\"version\":2,\"name\":\"exec_lsmod\",\"description\":\"Kernel modules were listed using the lsmod command\",\"expression\":\"exec.comm == \\\"lsmod\\\"\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1699614632049,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"bay-wrp-htk\",\"attributes\":{\"version\":2,\"name\":\"omigod\",\"description\":\"Omiagent spawns a privileged child process\",\"expression\":\"exec.uid >= 0 && process.ancestors.file.name == \\\"omiagent\\\"\",\"category\":\"Process Activity\",\"creationDate\":1636729662305,\"updateDate\":1699614629763,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"5vv-6pw-c3z\",\"attributes\":{\"version\":2,\"name\":\"exec_whoami\",\"description\":\"The whoami command was executed\",\"expression\":\"exec.comm == \\\"whoami\\\"\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1699614622203,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"lb9-6hv-6k2\",\"attributes\":{\"version\":22,\"name\":\"systemd_modification_utimes\",\"description\":\"A service may have been modified without authorization\",\"expression\":\"(\\n (utimes.file.path in [ ~\\\"/lib/systemd/system/**\\\", ~\\\"/usr/lib/systemd/system/**\\\", ~\\\"/etc/systemd/system/**\\\" ])\\n && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1699614620744,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"u8t-ums-bdn\",\"attributes\":{\"version\":9,\"name\":\"suspicious_container_client\",\"description\":\"A container management utility was executed in a container\",\"expression\":\"exec.file.name in [\\\"docker\\\", \\\"kubectl\\\"] && container.id != \\\"\\\"\",\"category\":\"Process Activity\",\"creationDate\":1617722068555,\"updateDate\":1699614618370,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"3kb-bma-rya\",\"attributes\":{\"version\":4,\"name\":\"auditd_config_modified\",\"description\":\"The auditd configuration file was modified without using auditctl\",\"expression\":\"open.file.path == \\\"/etc/audit/auditd.conf\\\" && open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 && process.file.name != \\\"auditctl\\\"\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1699614615388,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"lag-ggh-k1o\",\"attributes\":{\"version\":2,\"name\":\"network_sniffing_tool\",\"description\":\"Local account groups were enumerated after container start up\",\"expression\":\"exec.file.name in [\\\"tcpdump\\\", \\\"tshark\\\"]\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1699614614908,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"o4t-6hb-gsb\",\"attributes\":{\"version\":22,\"name\":\"systemd_modification_unlink\",\"description\":\"A service may have been modified without authorization\",\"expression\":\"(\\n (unlink.file.path in [ ~\\\"/lib/systemd/system/**\\\", ~\\\"/usr/lib/systemd/system/**\\\", ~\\\"/etc/systemd/system/**\\\" ])\\n && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1699614614159,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"cp9-wqy-ie5\",\"attributes\":{\"version\":19,\"name\":\"ssh_authorized_keys_rename\",\"description\":\"SSH modified keys may have been modified\",\"expression\":\"(\\n rename.file.name in [ \\\"authorized_keys\\\", \\\"authorized_keys2\\\" ] && (rename.file.path in [ ~\\\"/root/.ssh/*\\\", ~\\\"/home/*/.ssh/*\\\", ~\\\"/var/lib/*/.ssh/*\\\" ]\\n || rename.file.destination.path in [ ~\\\"/root/.ssh/*\\\", ~\\\"/home/*/.ssh/*\\\", ~\\\"/var/lib/*/.ssh/*\\\" ])\\n)\",\"category\":\"File Activity\",\"creationDate\":1642158535225,\"updateDate\":1699614610736,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"mmd-hm9-nul\",\"attributes\":{\"version\":28,\"name\":\"pci_11_5_critical_binaries_unlink\",\"description\":\"Critical system binaries may have been modified\",\"expression\":\"(\\n (unlink.file.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\", ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/**\\\" ])\\n && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\\n && process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\",\"category\":\"File Activity\",\"creationDate\":1642158535384,\"updateDate\":1699614610678,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"sjc-t7h-y3g\",\"attributes\":{\"version\":2,\"name\":\"sudoers_policy_modified_open\",\"description\":\"Sudoers policy file may have been modified without authorization\",\"expression\":\"\\n(open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 &&\\n(open.file.path == \\\"/etc/sudoers\\\")) && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1699614610658,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"wty-l8v-uum\",\"attributes\":{\"version\":22,\"name\":\"systemd_modification_open\",\"description\":\"A service may have been modified without authorization\",\"expression\":\"(\\n open.flags & (O_CREAT|O_RDWR|O_WRONLY) > 0 &&\\n (open.file.path in [ ~\\\"/lib/systemd/system/**\\\", ~\\\"/usr/lib/systemd/system/**\\\", ~\\\"/etc/systemd/system/**\\\" ])\\n && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\",\"category\":\"File Activity\",\"creationDate\":1642158534936,\"updateDate\":1699614610639,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"1fj-fmh-6kw\",\"attributes\":{\"version\":4,\"name\":\"compile_after_delivery\",\"description\":\"A compiler wrote a suspicious file in a container\",\"expression\":\"open.flags & O_CREAT > 0\\n&& (\\n (open.file.path =~ \\\"/tmp/**\\\" && open.file.name in [~\\\"*.ko\\\", ~\\\".*\\\"])\\n || open.file.path in [~\\\"/var/tmp/**\\\", ~\\\"/dev/shm/**\\\", ~\\\"/root/**\\\", ~\\\"*/bin/*\\\", ~\\\"/usr/local/lib/**\\\"]\\n)\\n&& (process.comm in [\\\"javac\\\", \\\"clang\\\", \\\"gcc\\\",\\\"bcc\\\"] || process.ancestors.comm in [\\\"javac\\\", \\\"clang\\\", \\\"gcc\\\",\\\"bcc\\\"])\\n&& process.file.name not in [\\\"pip\\\", ~\\\"python*\\\"]\\n&& container.id != \\\"\\\"\",\"category\":\"File Activity\",\"creationDate\":0,\"updateAuthorUuId\":\"82ba1758-696c-11ea-828d-fb376ef71e70\",\"updateDate\":1699614610524,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"qox-gue-mq8\",\"attributes\":{\"version\":3,\"name\":\"pwnkit_privilege_escalation\",\"description\":\"A process was spawned with indicators of exploitation of CVE-2021-4034\",\"expression\":\"(exec.file.path == \\\"/usr/bin/pkexec\\\" && exec.envs in [~\\\"*SHELL*\\\", ~\\\"*PATH*\\\"] && exec.envs not in [~\\\"*DISPLAY*\\\", ~\\\"*DESKTOP_SESSION*\\\"] && exec.uid != 0)\",\"category\":\"Process Activity\",\"creationDate\":1643639113864,\"updateDate\":1699614610455,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"dlp-tcr-jju\",\"attributes\":{\"version\":2,\"name\":\"kmod_list\",\"description\":\"Kernel modules were listed using the kmod command\",\"expression\":\"exec.comm == \\\"kmod\\\" && exec.args in [~\\\"*list*\\\"]\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1699614610436,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"knr-3tx-cl8\",\"attributes\":{\"version\":2,\"name\":\"java_shell_execution_parent\",\"description\":\"A java process spawned a shell, shell utility, or HTTP utility\",\"expression\":\"(exec.file.path in [ \\\"/bin/dash\\\",\\n \\\"/usr/bin/dash\\\",\\n \\\"/bin/sh\\\",\\n \\\"/bin/static-sh\\\",\\n \\\"/usr/bin/sh\\\",\\n \\\"/bin/bash\\\",\\n \\\"/usr/bin/bash\\\",\\n \\\"/bin/bash-static\\\",\\n \\\"/usr/bin/zsh\\\",\\n \\\"/usr/bin/ash\\\",\\n \\\"/usr/bin/csh\\\",\\n \\\"/usr/bin/ksh\\\",\\n \\\"/usr/bin/tcsh\\\",\\n \\\"/usr/lib/initramfs-tools/bin/busybox\\\",\\n \\\"/bin/busybox\\\",\\n \\\"/usr/bin/fish\\\",\\n \\\"/bin/ksh93\\\",\\n \\\"/bin/rksh\\\",\\n \\\"/bin/rksh93\\\",\\n \\\"/bin/lksh\\\",\\n \\\"/bin/mksh\\\",\\n \\\"/bin/mksh-static\\\",\\n \\\"/usr/bin/csharp\\\",\\n \\\"/bin/posh\\\",\\n \\\"/usr/bin/rc\\\",\\n \\\"/bin/sash\\\",\\n \\\"/usr/bin/yash\\\",\\n \\\"/bin/zsh5\\\",\\n \\\"/bin/zsh5-static\\\" ] ||\\n exec.comm in [\\\"wget\\\", \\\"curl\\\", \\\"lwp-download\\\"] ||\\n exec.file.path in [\\\"/bin/cat\\\",\\\"/bin/chgrp\\\",\\\"/bin/chmod\\\",\\\"/bin/chown\\\",\\\"/bin/cp\\\",\\\"/bin/date\\\",\\\"/bin/dd\\\",\\\"/bin/df\\\",\\\"/bin/dir\\\",\\\"/bin/echo\\\",\\\"/bin/ln\\\",\\\"/bin/ls\\\",\\\"/bin/mkdir\\\",\\\"/bin/mknod\\\",\\\"/bin/mktemp\\\",\\\"/bin/mv\\\",\\\"/bin/pwd\\\",\\\"/bin/readlink\\\",\\\"/bin/rm\\\",\\\"/bin/rmdir\\\",\\\"/bin/sleep\\\",\\\"/bin/stty\\\",\\\"/bin/sync\\\",\\\"/bin/touch\\\",\\\"/bin/uname\\\",\\\"/bin/vdir\\\",\\\"/usr/bin/arch\\\",\\\"/usr/bin/b2sum\\\",\\\"/usr/bin/base32\\\",\\\"/usr/bin/base64\\\",\\\"/usr/bin/basename\\\",\\\"/usr/bin/chcon\\\",\\\"/usr/bin/cksum\\\",\\\"/usr/bin/comm\\\",\\\"/usr/bin/csplit\\\",\\\"/usr/bin/cut\\\",\\\"/usr/bin/dircolors\\\",\\\"/usr/bin/dirname\\\",\\\"/usr/bin/du\\\",\\\"/usr/bin/env\\\",\\\"/usr/bin/expand\\\",\\\"/usr/bin/expr\\\",\\\"/usr/bin/factor\\\",\\\"/usr/bin/fmt\\\",\\\"/usr/bin/fold\\\",\\\"/usr/bin/groups\\\",\\\"/usr/bin/head\\\",\\\"/usr/bin/hostid\\\",\\\"/usr/bin/id\\\",\\\"/usr/bin/install\\\",\\\"/usr/bin/join\\\",\\\"/usr/bin/link\\\",\\\"/usr/bin/logname\\\",\\\"/usr/bin/md5sum\\\",\\\"/usr/bin/md5sum.textutils\\\",\\\"/usr/bin/mkfifo\\\",\\\"/usr/bin/nice\\\",\\\"/usr/bin/nl\\\",\\\"/usr/bin/nohup\\\",\\\"/usr/bin/nproc\\\",\\\"/usr/bin/numfmt\\\",\\\"/usr/bin/od\\\",\\\"/usr/bin/paste\\\",\\\"/usr/bin/pathchk\\\",\\\"/usr/bin/pinky\\\",\\\"/usr/bin/pr\\\",\\\"/usr/bin/printenv\\\",\\\"/usr/bin/printf\\\",\\\"/usr/bin/ptx\\\",\\\"/usr/bin/realpath\\\",\\\"/usr/bin/runcon\\\",\\\"/usr/bin/seq\\\",\\\"/usr/bin/sha1sum\\\",\\\"/usr/bin/sha224sum\\\",\\\"/usr/bin/sha256sum\\\",\\\"/usr/bin/sha384sum\\\",\\\"/usr/bin/sha512sum\\\",\\\"/usr/bin/shred\\\",\\\"/usr/bin/shuf\\\",\\\"/usr/bin/sort\\\",\\\"/usr/bin/split\\\",\\\"/usr/bin/stat\\\",\\\"/usr/bin/stdbuf\\\",\\\"/usr/bin/sum\\\",\\\"/usr/bin/tac\\\",\\\"/usr/bin/tail\\\",\\\"/usr/bin/tee\\\",\\\"/usr/bin/test\\\",\\\"/usr/bin/timeout\\\",\\\"/usr/bin/tr\\\",\\\"/usr/bin/truncate\\\",\\\"/usr/bin/tsort\\\",\\\"/usr/bin/tty\\\",\\\"/usr/bin/unexpand\\\",\\\"/usr/bin/uniq\\\",\\\"/usr/bin/unlink\\\",\\\"/usr/bin/users\\\",\\\"/usr/bin/wc\\\",\\\"/usr/bin/who\\\",\\\"/usr/bin/whoami\\\",\\\"/usr/sbin/chroot\\\"])\\n&& process.parent.file.name == \\\"java\\\"\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1699614610329,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"r8w-red-u4k\",\"attributes\":{\"version\":2,\"name\":\"kernel_module_load_from_memory\",\"description\":\"A kernel module was loaded from memory\",\"expression\":\"load_module.loaded_from_memory == true\",\"category\":\"Kernel Activity\",\"creationDate\":1650293718630,\"updateDate\":1699614610258,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"jnv-fq4-f23\",\"attributes\":{\"version\":2,\"name\":\"sudoers_policy_modified_chmod\",\"description\":\"Sudoers policy file may have been modified without authorization\",\"expression\":\"(\\n (chmod.file.path == \\\"/etc/sudoers\\\") \\n) && chmod.file.destination.mode != chmod.file.mode && process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1699614610235,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"ji5-8o4-btp\",\"attributes\":{\"version\":2,\"name\":\"kubernetes_dns_enumeration\",\"description\":\"Kubernetes DNS enumeration\",\"expression\":\"dns.question.name == \\\"any.any.svc.cluster.local\\\" && dns.question.type == SRV && container.id != \\\"\\\"\",\"category\":\"Network Activity\",\"creationDate\":0,\"updateDate\":1699614610050,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"3j1-wdg-qsg\",\"attributes\":{\"version\":28,\"name\":\"pci_11_5_critical_binaries_open\",\"description\":\"Critical system binaries may have been modified\",\"expression\":\"(\\n open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 &&\\n open.file.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\", ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/**\\\" ]\\n && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\\n && process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\",\"category\":\"File Activity\",\"creationDate\":1642158535263,\"updateDate\":1699614610036,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"vaz-icd-nel\",\"attributes\":{\"version\":2,\"name\":\"net_file_download\",\"description\":\"A suspicious file was written by a network utility\",\"expression\":\"open.flags & O_CREAT > 0 && process.comm in [\\\"wget\\\", \\\"curl\\\", \\\"lwp-download\\\"]\\n&& (\\n (open.file.path =~ \\\"/tmp/**\\\" && open.file.name in [~\\\"*.sh\\\", ~\\\"*.c\\\", ~\\\"*.so\\\", ~\\\"*.ko\\\"])\\n || open.file.path in [~\\\"/usr/**\\\", ~\\\"/lib/**\\\", ~\\\"/etc/**\\\", ~\\\"/var/tmp/**\\\", ~\\\"/dev/shm/**\\\"]\\n)\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1699614609925,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"hir-1j3-tsx\",\"attributes\":{\"version\":20,\"name\":\"ssh_authorized_keys_chown\",\"description\":\"SSH modified keys may have been modified\",\"expression\":\"(\\n chown.file.name in [ \\\"authorized_keys\\\", \\\"authorized_keys2\\\" ] && (chown.file.path in [ ~\\\"/root/.ssh/*\\\", ~\\\"/home/*/.ssh/*\\\", ~\\\"/var/lib/*/.ssh/*\\\" ])\\n) && (chown.file.destination.uid != chown.file.uid || chown.file.destination.gid != chown.file.gid)\",\"category\":\"File Activity\",\"creationDate\":1642158534934,\"updateDate\":1699614609845,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"mag-ijd-ucx\",\"attributes\":{\"version\":2,\"name\":\"sudoers_policy_modified_utimes\",\"description\":\"Sudoers policy file may have been modified without authorization\",\"expression\":\"(\\n (utimes.file.path == \\\"/etc/sudoers\\\")\\n) && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1699614609831,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"yq3-x9w-n3j\",\"attributes\":{\"version\":2,\"name\":\"tar_execution\",\"description\":\"Tar archive created\",\"expression\":\"exec.file.path == \\\"/usr/bin/tar\\\" && exec.args_flags in [\\\"create\\\",\\\"c\\\"]\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1699614609831,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"sfh-mqa-shl\",\"attributes\":{\"version\":24,\"name\":\"ssl_certificate_tampering_chown\",\"description\":\"SSL certificates may have been tampered with\",\"expression\":\"(\\n (chown.file.path in [ ~\\\"/etc/ssl/certs/**\\\", ~\\\"/etc/pki/**\\\" ])\\n && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n) && (chown.file.destination.uid != chown.file.uid || chown.file.destination.gid != chown.file.gid)\\n&& process.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n&& process.ancestors.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n&& process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n&& process.file.name !~ \\\"runc*\\\"\",\"category\":\"File Activity\",\"creationDate\":1642158535153,\"updateDate\":1699614609662,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"f6g-gbx-9l6\",\"attributes\":{\"version\":4,\"name\":\"auditd_rule_file_modified\",\"description\":\"The auditd rules file was modified without using auditctl\",\"expression\":\"open.file.path in [\\\"/etc/audit/rules.d/audit.rules\\\", \\\"/etc/audit/audit.rules\\\"] && open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 && process.file.name != \\\"auditctl\\\"\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1699614609625,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"ysi-0bm-8tc\",\"attributes\":{\"version\":34,\"name\":\"kernel_module_chmod\",\"description\":\"A new kernel module was added\",\"expression\":\"(\\n (chmod.file.path in [ ~\\\"/lib/modules/**\\\", ~\\\"/usr/lib/modules/**\\\" ])\\n && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n && process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"] && process.ancestors.file.path != \\\"/usr/bin/kmod\\\"\\n) && chmod.file.destination.mode != chmod.file.mode\",\"category\":\"File Activity\",\"creationDate\":1642158535040,\"updateDate\":1699614609526,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"0sl-ako-4w6\",\"attributes\":{\"version\":24,\"name\":\"ssl_certificate_tampering_utimes\",\"description\":\"SSL certificates may have been tampered with\",\"expression\":\"(\\n (utimes.file.path in [ ~\\\"/etc/ssl/certs/**\\\" ])\\n && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\\n&& process.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n&& process.ancestors.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n&& process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n&& process.file.name !~ \\\"runc*\\\"\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1699614609522,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"4ec-mzv-u5g\",\"attributes\":{\"version\":5,\"name\":\"kernel_module_load\",\"description\":\"A kernel module was loaded\",\"expression\":\"load_module.name not in [\\\"nf_tables\\\", \\\"iptable_filter\\\", \\\"ip6table_filter\\\", \\\"bpfilter\\\", \\\"ip6_tables\\\", \\\"ip6table_nat\\\", \\\"nf_reject_ipv4\\\", \\\"ipt_REJECT\\\", \\\"iptable_raw\\\"] && process.ancestors.file.name not in [~\\\"falcon*\\\", \\\"unattended-upgrade\\\", \\\"apt.systemd.daily\\\", \\\"xtables-legacy-multi\\\", \\\"ssm-agent-worker\\\"]\",\"category\":\"Kernel Activity\",\"creationDate\":1650293718458,\"updateDate\":1699614609521,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"kik-wm5-my4\",\"attributes\":{\"version\":5,\"name\":\"dynamic_linker_config_unlink\",\"description\":\"A process unlinked a dynamic linker config file\",\"expression\":\"unlink.file.path in [\\\"/etc/ld.so.preload\\\", \\\"/etc/ld.so.conf\\\", ~\\\"/etc/ld.so.conf.d/*.conf\\\"] && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1699614609521,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"tji-eua-ery\",\"attributes\":{\"version\":2,\"name\":\"sudoers_policy_modified_rename\",\"description\":\"Sudoers policy file may have been modified without authorization\",\"expression\":\"(\\n (rename.file.path == \\\"/etc/sudoers\\\"\\n || rename.file.destination.path == \\\"/etc/sudoers\\\")\\n)\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1699614609520,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"bpi-apd-1ad\",\"attributes\":{\"version\":1,\"name\":\"offensive_k8s_tool\",\"description\":\"A known kubernetes pentesting tool has been executed\",\"expression\":\"(exec.file.name in [ ~\\\"python*\\\" ] && (\\\"KubiScan.py\\\" in exec.argv || \\\"kubestriker\\\" in exec.argv ) ) || exec.file.name in [ \\\"kubiscan\\\",\\\"kdigger\\\",\\\"kube-hunter\\\",\\\"rakkess\\\",\\\"peirates\\\",\\\"kubescape\\\",\\\"kubeaudit\\\",\\\"kube-linter\\\",\\\"stratus\\\",~\\\"botb-*\\\"]\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1699605542656,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"rcz-xwn-5lq\",\"attributes\":{\"version\":1,\"name\":\"redis_save_module\",\"description\":\"Redis module has been created\",\"expression\":\"(open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 && open.file.path =~ \\\"/tmp/**\\\" && open.file.name in [~\\\"*.rdb\\\", ~\\\"*.aof\\\", ~\\\"*.so\\\"]) && process.file.name in [\\\"redis-check-rdb\\\", \\\"redis-server\\\"]\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1699605540650,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"oit-dq6-jtz\",\"attributes\":{\"version\":4,\"name\":\"net_util_exfiltration\",\"description\":\"Exfiltration attempt via network utility\",\"expression\":\"exec.comm in [\\\"wget\\\", \\\"curl\\\", \\\"lwp-download\\\"] && \\nexec.args_options in [ ~\\\"post-file=*\\\", ~\\\"post-data=*\\\", ~\\\"T=*\\\", ~\\\"d=@*\\\", ~\\\"upload-file=*\\\", ~\\\"F=file*\\\"] &&\\nexec.args not in [~\\\"*localhost*\\\", ~\\\"*127.0.0.1*\\\"]\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1699605533426,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"wos-cqg-alj\",\"attributes\":{\"version\":27,\"name\":\"pci_11_5_critical_binaries_rename\",\"description\":\"Critical system binaries may have been modified\",\"expression\":\"(\\n (rename.file.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\", ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/**\\\" ]\\n || rename.file.destination.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\", ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/**\\\" ])\\n && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\\n && process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\",\"category\":\"File Activity\",\"creationDate\":1642158535169,\"updateDate\":1699605533116,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"1bt-oqb-nhw\",\"attributes\":{\"version\":27,\"name\":\"pci_11_5_critical_binaries_link\",\"description\":\"Critical system binaries may have been modified\",\"expression\":\"(\\n (link.file.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\", ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/**\\\" ]\\n || link.file.destination.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\", ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/**\\\" ])\\n && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\\n && process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\",\"category\":\"File Activity\",\"creationDate\":1642158535044,\"updateDate\":1699605533055,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"f1p-4uk-ji9\",\"attributes\":{\"version\":2,\"name\":\"selinux_disable_enforcement\",\"description\":\"SELinux enforcement status was disabled\",\"expression\":\"selinux.enforce.status in [\\\"permissive\\\", \\\"disabled\\\"] && process.ancestors.args != ~\\\"*BECOME-SUCCESS*\\\"\",\"category\":\"Kernel Activity\",\"creationDate\":1635332067172,\"updateDate\":1699605533031,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"ewk-kr1-m8w\",\"attributes\":{\"version\":6,\"name\":\"runc_modification\",\"description\":\"The runc binary was modified in a non-standard way\",\"expression\":\"open.file.path in [\\\"/usr/bin/runc\\\", \\\"/usr/sbin/runc\\\", \\\"/usr/bin/docker-runc\\\"]\\n&& open.flags & O_CREAT|O_TRUNC|O_RDWR|O_WRONLY > 0\\n&& process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\\n&& process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\",\"category\":\"File Activity\",\"creationDate\":1627392837049,\"updateDate\":1699605532961,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"4ym-hxb-nfc\",\"attributes\":{\"version\":27,\"name\":\"pci_11_5_critical_binaries_utimes\",\"description\":\"Critical system binaries may have been modified\",\"expression\":\"(\\n (utimes.file.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\", ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/**\\\" ])\\n && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\\n && process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\",\"category\":\"File Activity\",\"creationDate\":1642158535079,\"updateDate\":1699605532927,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"39x-fmc-9sw\",\"attributes\":{\"version\":27,\"name\":\"pci_11_5_critical_binaries_chown\",\"description\":\"Critical system binaries may have been modified\",\"expression\":\"(\\n (chown.file.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\", ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/**\\\" ])\\n && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\\n && process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n) && (chown.file.destination.uid != chown.file.uid || chown.file.destination.gid != chown.file.gid)\",\"category\":\"File Activity\",\"creationDate\":1642158535097,\"updateDate\":1699605532862,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"3xp-uvx-hxk\",\"attributes\":{\"version\":13,\"name\":\"apparmor_modified_tty\",\"description\":\"An AppArmor profile was modified in an interactive session\",\"expression\":\"exec.file.name in [\\\"aa-disable\\\", \\\"aa-complain\\\", \\\"aa-audit\\\"] && exec.tty_name !=\\\"\\\"\",\"category\":\"Process Activity\",\"creationDate\":1627392836162,\"updateAuthorUuId\":\"f4183a42-8a64-11ea-93df-c318904b3ca4\",\"updateDate\":1699605532856,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"v4a-bat-ppk\",\"attributes\":{\"version\":27,\"name\":\"pci_11_5_critical_binaries_chmod\",\"description\":\"Critical system binaries may have been modified\",\"expression\":\"(\\n (chmod.file.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\", ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/**\\\" ])\\n && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\\n && process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n) && chmod.file.destination.mode != chmod.file.mode\",\"category\":\"File Activity\",\"creationDate\":1642158535079,\"updateDate\":1699605532822,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"ylg-dxo-yuk\",\"attributes\":{\"version\":2,\"name\":\"rc_scripts_modified\",\"description\":\"RC scripts modified\",\"expression\":\"(open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 && (open.file.path in [\\\"/etc/rc.common\\\", \\\"/etc/rc.local\\\"])) && process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1699605532814,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"mal-nic-u3y\",\"attributes\":{\"version\":3,\"name\":\"Deno_unauthorized_subprocess_created\",\"description\":\"Unauthorized subprocess created by deno runtime\",\"expression\":\"exec.comm !=\\\"\\\" && process.ancestors.comm==\\\"deno\\\" && process.ancestors.args not in [r\\\".*(allow-run|-A|allow-all).*\\\"]\",\"category\":\"Process Activity\",\"creationAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"creationDate\":1691743022082,\"updateAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"updateDate\":1692012153553,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":false,\"creator\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"},\"updater\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"}},\"type\":\"agent_rule\"},{\"id\":\"cwq-z6j-igp\",\"attributes\":{\"version\":2,\"name\":\"Deno_unauthorized_network_access_performed\",\"description\":\"Unauthorized network access by deno runtime\",\"expression\":\"bind.addr.family>=0 && process.comm==\\\"deno\\\" && process.args not in [r\\\".*(allow-net|allow-ffi|-A|allow-all).*\\\"]\",\"category\":\"Kernel Activity\",\"creationAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"creationDate\":1691743022106,\"updateAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"updateDate\":1692012153529,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":false,\"creator\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"},\"updater\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"}},\"type\":\"agent_rule\"},{\"id\":\"hfc-a0c-8yl\",\"attributes\":{\"version\":1,\"name\":\"executable_bit_added\",\"description\":\"The executable bit was added to a newly created file\",\"expression\":\"chmod.file.in_upper_layer &&\\nchmod.file.change_time < 30s &&\\ncontainer.id != \\\"\\\" &&\\nchmod.file.destination.mode != chmod.file.mode &&\\nchmod.file.destination.mode & S_IXUSR|S_IXGRP|S_IXOTH > 0 &&\\nprocess.argv in [\\\"+x\\\"]\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1690311003102,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"osi-fya-a5p\",\"attributes\":{\"version\":19,\"name\":\"ssh_authorized_keys_link\",\"description\":\"SSH modified keys may have been modified\",\"expression\":\"(\\n link.file.name in [ \\\"authorized_keys\\\", \\\"authorized_keys2\\\" ] && (link.file.path in [ ~\\\"/root/.ssh/*\\\", ~\\\"/home/*/.ssh/*\\\", ~\\\"/var/lib/*/.ssh/*\\\" ]\\n || link.file.destination.path in [ ~\\\"/root/.ssh/*\\\", ~\\\"/home/*/.ssh/*\\\", ~\\\"/var/lib/*/.ssh/*\\\" ])\\n)\",\"category\":\"File Activity\",\"creationDate\":1642158535286,\"updateDate\":1690311003028,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"o5j-dvu-sdy\",\"attributes\":{\"version\":19,\"name\":\"ssh_authorized_keys_utimes\",\"description\":\"SSH modified keys may have been modified\",\"expression\":\"(\\n utimes.file.name in [ \\\"authorized_keys\\\", \\\"authorized_keys2\\\" ] && (utimes.file.path in [ ~\\\"/root/.ssh/*\\\", ~\\\"/home/*/.ssh/*\\\", ~\\\"/var/lib/*/.ssh/*\\\" ])\\n)\",\"category\":\"File Activity\",\"creationDate\":1642158535278,\"updateDate\":1690311003028,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"rut-8bg-ycb\",\"attributes\":{\"version\":31,\"name\":\"credential_modified_utimes\",\"description\":\"Sensitive credential files were modified using a non-standard tool\",\"expression\":\"(\\n (utimes.file.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ])\\n && process.file.path not in [ \\\"/sbin/vipw\\\", \\\"/usr/sbin/vipw\\\", \\\"/sbin/vigr\\\", \\\"/usr/sbin/vigr\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/local/bin/dockerd\\\", \\\"/usr/sbin/groupadd\\\", \\\"/usr/sbin/useradd\\\", \\\"/usr/sbin/usermod\\\", \\\"/usr/sbin/userdel\\\", \\\"/usr/bin/gpasswd\\\", \\\"/usr/bin/chage\\\", \\\"/usr/sbin/chpasswd\\\", \\\"/usr/bin/passwd\\\" ]\\n && process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\",\"category\":\"File Activity\",\"creationDate\":1642158535200,\"updateDate\":1690311003028,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"qka-g4s-khh\",\"attributes\":{\"version\":19,\"name\":\"ssh_authorized_keys_open\",\"description\":\"SSH modified keys may have been modified\",\"expression\":\"(\\n open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 &&\\n open.file.name in [ \\\"authorized_keys\\\", \\\"authorized_keys2\\\" ] && (open.file.path in [ ~\\\"/root/.ssh/*\\\", ~\\\"/home/*/.ssh/*\\\", ~\\\"/var/lib/*/.ssh/*\\\" ])\\n)\",\"category\":\"File Activity\",\"creationDate\":1642158534864,\"updateDate\":1690311003028,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"g5n-jhl-zge\",\"attributes\":{\"version\":17,\"name\":\"pam_modification_rename\",\"description\":\"PAM may have been modified without authorization\",\"expression\":\"(\\n (rename.file.path in [ ~\\\"/etc/pam.d/**\\\", \\\"/etc/pam.conf\\\" ]\\n || rename.file.destination.path in [ ~\\\"/etc/pam.d/**\\\", \\\"/etc/pam.conf\\\" ])\\n)\",\"category\":\"File Activity\",\"creationDate\":1606142936138,\"updateDate\":1690311003028,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"xrg-evq-ka5\",\"attributes\":{\"version\":17,\"name\":\"pam_modification_unlink\",\"description\":\"PAM may have been modified without authorization\",\"expression\":\"(\\n (unlink.file.path in [ ~\\\"/etc/pam.d/**\\\", \\\"/etc/pam.conf\\\" ])\\n)\",\"category\":\"File Activity\",\"creationDate\":1606142936138,\"updateDate\":1690311003028,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"nnu-ch5-3gm\",\"attributes\":{\"version\":1,\"name\":\"deploy_priv_container\",\"description\":\"A privileged container was created\",\"expression\":\"exec.file.name != \\\"\\\" && container.created_at < 1s && process.cap_permitted & CAP_SYS_ADMIN > 0\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1688748464067,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"6ln-wqy-y8b\",\"attributes\":{\"version\":1,\"name\":\"net_util_in_container_v2\",\"description\":\"A network utility was executed in a container\",\"expression\":\"(exec.comm in [\\\"socat\\\", \\\"dig\\\", \\\"nslookup\\\", \\\"host\\\", ~\\\"netcat*\\\", ~\\\"nc*\\\", \\\"ncat\\\"] ||\\n exec.comm in [\\\"wget\\\", \\\"curl\\\", \\\"lwp-download\\\"]) &&\\ncontainer.id != \\\"\\\" && exec.args not in [ ~\\\"*localhost*\\\", ~\\\"*127.0.0.1*\\\", ~\\\"*motd.ubuntu.com*\\\" ] && container.created_at > 180s\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1688748463994,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"hmy-il6-bk5\",\"attributes\":{\"version\":1,\"name\":\"hidden_file_executed\",\"description\":\"A hidden file was executed in a suspicious folder\",\"expression\":\"exec.file.name =~ \\\".*\\\" && exec.file.path in [~\\\"/home/**\\\", ~\\\"/tmp/**\\\", ~\\\"/var/tmp/**\\\", ~\\\"/dev/shm/**\\\"]\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1688748463951,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"iwa-79s-pb3\",\"attributes\":{\"version\":1,\"name\":\"shell_profile_modification\",\"description\":\"Shell profile was modified\",\"expression\":\"open.file.path in [~\\\"/home/*/*profile\\\", ~\\\"/home/*/*rc\\\"] && open.flags & ((O_CREAT|O_TRUNC|O_RDWR|O_WRONLY)) > 0\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1688748463951,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"mr2-bwg-0jr\",\"attributes\":{\"version\":1,\"name\":\"suid_file_execution\",\"description\":\"a SUID file was executed\",\"expression\":\"(setuid.euid == 0 || setuid.uid == 0) && process.file.mode & S_ISUID > 0 && process.file.uid == 0 && process.uid != 0 && process.file.path != \\\"/usr/bin/sudo\\\"\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1688748463947,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"zdz-pje-kbg\",\"attributes\":{\"version\":4,\"name\":\"python_cli_code\",\"description\":\"Python code was provided on the command line\",\"expression\":\"exec.file.name == ~\\\"python*\\\" && exec.args_flags in [\\\"c\\\"] && exec.args in [~\\\"*-c*SOCK_STREAM*\\\", ~\\\"*-c*subprocess*\\\", \\\"*-c*/bash*\\\", \\\"*-c*/bin/sh*\\\", \\\"*-c*pty.spawn*\\\"] && exec.args !~ \\\"*setuptools*\\\"\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1688748460425,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"doi-13m-kzx\",\"attributes\":{\"version\":1,\"name\":\"kubernetes_offensive_tool_executed\",\"description\":\"Kubernetes offensive tool executed\",\"expression\":\"(exec.file.name in [ ~\\\"python*\\\" ] && (\\\"KubiScan.py\\\" in exec.argv || \\\"kubestriker\\\" in exec.argv )) || exec.file.name in [\\\"kubiscan\\\",\\\"kdigger\\\",\\\"kube-hunter\\\",\\\"rakkess\\\",\\\"peirates\\\",\\\"kubescape\\\",\\\"kubeaudit\\\",\\\"kube-linter\\\",\\\"stratus\\\",~\\\"botb-*\\\"]\",\"category\":\"Process Activity\",\"creationAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"creationDate\":1688462439963,\"updateAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"updateDate\":1688462439963,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":false,\"creator\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"},\"updater\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"}},\"type\":\"agent_rule\"},{\"id\":\"nrd-9be-wnm\",\"attributes\":{\"version\":9,\"name\":\"compiler_in_container\",\"description\":\"Compiler Executed in Container\",\"expression\":\"(exec.file.name in [\\\"javac\\\", \\\"clang\\\", \\\"gcc\\\",\\\"bcc\\\"] || (exec.file.name == \\\"go\\\" && exec.args in [~\\\"*build*\\\", ~\\\"*run*\\\"])) && container.id !=\\\"\\\" && process.ancestors.file.path != \\\"/usr/bin/cilium-agent\\\"\",\"category\":\"Process Activity\",\"creationDate\":1627392836759,\"updateAuthorUuId\":\"9d3a4eb0-1e67-11ed-b20c-da7ad0900002\",\"updateDate\":1685978095211,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"John Murray\",\"handle\":\"john.murray@datadoghq.com\"}},\"type\":\"agent_rule\"},{\"id\":\"jea-2m4-kyy\",\"attributes\":{\"version\":1,\"name\":\"curl_docker_socket\",\"description\":\"The Docker socket was referenced in a cURL command\",\"expression\":\"exec.file.name == \\\"curl\\\" && exec.args_flags in [\\\"unix-socket\\\"] && exec.args in [\\\"*docker.sock*\\\"] && container.id != \\\"\\\"\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1684184973805,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"i1f-7yg-x6s\",\"attributes\":{\"version\":1,\"name\":\"sudoers_policy_modified_link\",\"description\":\"Sudoers policy file may have been modified without authorization\",\"expression\":\"(\\n (link.file.path == \\\"/etc/sudoers\\\"\\n || link.file.destination.path == \\\"/etc/sudoers\\\")\\n)\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1684184973412,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"r5j-bb3-dmf\",\"attributes\":{\"version\":1,\"name\":\"read_release_info\",\"description\":\"OS information was read from the /etc/lsb-release file\",\"expression\":\"open.file.path == \\\"/etc/lsb-release\\\" && open.flags & O_RDONLY > 0\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1684184973295,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"98m-cex-egg\",\"attributes\":{\"version\":1,\"name\":\"user_deleted_tty\",\"description\":\"A user was deleted via an interactive session\",\"expression\":\"exec.file.name in [\\\"userdel\\\", \\\"deluser\\\"] && exec.tty_name !=\\\"\\\" && process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1684184973238,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"luc-at7-mvw\",\"attributes\":{\"version\":1,\"name\":\"sudoers_policy_modified_chown\",\"description\":\"Sudoers policy file may have been modified without authorization\",\"expression\":\"(\\n (chown.file.path == \\\"/etc/sudoers\\\")\\n) && (chown.file.destination.uid != chown.file.uid || chown.file.destination.gid != chown.file.gid)\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1684184973211,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"8qc-61h-epb\",\"attributes\":{\"version\":1,\"name\":\"sudoers_policy_modified_unlink\",\"description\":\"Sudoers policy file may have been modified without authorization\",\"expression\":\"(\\n (unlink.file.path == \\\"/etc/sudoers\\\")\\n)\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1684184973209,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"2np-cy4-jad\",\"attributes\":{\"version\":1,\"name\":\"service_stop\",\"description\":\"systemctl used to stop a service\",\"expression\":\"exec.file.name == \\\"systemctl\\\" && exec.args in [~\\\"*stop*\\\"]\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1684184973206,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"azw-asm-uwe\",\"attributes\":{\"version\":1,\"name\":\"read_kubeconfig\",\"description\":\"The kubeconfig file was accessed\",\"expression\":\"open.file.path in [~\\\"/home/*/.kube/config\\\", \\\"/root/.kube/config\\\"]\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1684184973196,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"qp4-oog-vwu\",\"attributes\":{\"version\":1,\"name\":\"jupyterhub_shell\",\"description\":\"A shell command was executed from a JupyterHub code cell\",\"expression\":\"exec.file.path == \\\"/usr/bin/bash\\\" && process.ancestors.comm == \\\"jupyterhub-sing\\\"\",\"category\":\"Process Activity\",\"creationAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"creationDate\":1682687626099,\"updateAuthorUuId\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\",\"updateDate\":1682687626099,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":false,\"creator\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"},\"updater\":{\"name\":\"Threat Detection Engineering CI/CD\",\"handle\":\"9b3398f3-af79-49aa-b643-8a607ee6f848\"}},\"type\":\"agent_rule\"},{\"id\":\"k2h-ntz-zno\",\"attributes\":{\"version\":3,\"name\":\"auditctl_usage\",\"description\":\"The auditctl command was used to modify auditd\",\"expression\":\"exec.file.name == \\\"auditctl\\\"\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1681806567456,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"Cl\\u00e9ment Kuzniewycz\",\"handle\":\"clement.kuzniewycz@datadoghq.com\"}},\"type\":\"agent_rule\"},{\"id\":\"fft-hfp-fuu\",\"attributes\":{\"version\":7,\"name\":\"aws_eks_service_account_token_accessed\",\"description\":\"The AWS EKS service account token was accessed\",\"expression\":\"open.file.path =~ \\\"/var/run/secrets/eks.amazonaws.com/serviceaccount/**\\\" && open.file.name == \\\"token\\\" && process.file.path not in [\\\"/opt/datadog-agent/embedded/bin/agent\\\", \\\"/opt/datadog-agent/embedded/bin/system-probe\\\", \\\"/opt/datadog-agent/embedded/bin/security-agent\\\", \\\"/opt/datadog-agent/embedded/bin/process-agent\\\", \\\"/opt/datadog-agent/bin/agent/agent\\\", \\\"/opt/datadog/apm/inject/auto_inject_runc\\\", \\\"/usr/bin/dd-host-install\\\", \\\"/usr/bin/dd-host-container-install\\\", \\\"/usr/bin/dd-container-install\\\", \\\"/opt/datadog-agent/bin/datadog-cluster-agent\\\"]\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1681806564733,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"Cl\\u00e9ment Kuzniewycz\",\"handle\":\"clement.kuzniewycz@datadoghq.com\"}},\"type\":\"agent_rule\"},{\"id\":\"ucr-akl-jgo\",\"attributes\":{\"version\":3,\"name\":\"aws_imds\",\"description\":\"An AWS IMDS was called via a network utility\",\"expression\":\"exec.comm in [\\\"wget\\\", \\\"curl\\\", \\\"lwp-download\\\"] && exec.args in [~\\\"*169.254.169.254/latest/meta-data/iam/security-credentials/*\\\", \\\"*169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\\\", ~\\\"*169.254.170.2/*/credentials?id=*\\\"]\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1681806563896,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"Cl\\u00e9ment Kuzniewycz\",\"handle\":\"clement.kuzniewycz@datadoghq.com\"}},\"type\":\"agent_rule\"},{\"id\":\"p6d-hln-r9c\",\"attributes\":{\"version\":23,\"name\":\"ssl_certificate_tampering_chmod\",\"description\":\"SSL certificates may have been tampered with\",\"expression\":\"(\\n (chmod.file.path in [ ~\\\"/etc/ssl/certs/**\\\", ~\\\"/etc/pki/**\\\" ])\\n && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n) && chmod.file.mode != chmod.file.destination.mode\\n&& process.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n&& process.ancestors.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n&& process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n&& process.file.name !~ \\\"runc*\\\"\",\"category\":\"File Activity\",\"creationDate\":1642158535314,\"updateDate\":1681490426484,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"9e8-rvn-6hv\",\"attributes\":{\"version\":23,\"name\":\"ssl_certificate_tampering_unlink\",\"description\":\"SSL certificates may have been tampered with\",\"expression\":\"(\\n (unlink.file.path in [ ~\\\"/etc/ssl/certs/**\\\" ])\\n && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\\n&& process.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n&& process.ancestors.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n&& process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n&& process.file.name !~ \\\"runc*\\\"\",\"category\":\"File Activity\",\"creationDate\":1642158535055,\"updateDate\":1681490425998,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"rim-3ys-upw\",\"attributes\":{\"version\":3,\"name\":\"dynamic_linker_config_write\",\"description\":\"A process wrote to a dynamic linker config file\",\"expression\":\"open.file.path in [\\\"/etc/ld.so.preload\\\", \\\"/etc/ld.so.conf\\\", \\\"/etc/ld.so.conf.d/*.conf\\\"] && open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"] && process.ancestors.file.path not in [\\\"/opt/datadog-agent/embedded/bin/agent\\\", \\\"/opt/datadog-agent/embedded/bin/system-probe\\\", \\\"/opt/datadog-agent/embedded/bin/security-agent\\\", \\\"/opt/datadog-agent/embedded/bin/process-agent\\\", \\\"/opt/datadog-agent/bin/agent/agent\\\", \\\"/opt/datadog/apm/inject/auto_inject_runc\\\", \\\"/usr/bin/dd-host-install\\\", \\\"/usr/bin/dd-host-container-install\\\", \\\"/usr/bin/dd-container-install\\\", \\\"/opt/datadog-agent/bin/datadog-cluster-agent\\\"]\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1681490425873,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"twt-qsc-twv\",\"attributes\":{\"version\":23,\"name\":\"ssl_certificate_tampering_link\",\"description\":\"SSL certificates may have been tampered with\",\"expression\":\"(\\n (link.file.path in [ ~\\\"/etc/ssl/certs/**\\\", ~\\\"/etc/pki/**\\\" ]\\n || link.file.destination.path in [ ~\\\"/etc/ssl/certs/**\\\", ~\\\"/etc/pki/**\\\" ])\\n && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n && process.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n && process.ancestors.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n && process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n && process.file.name !~ \\\"runc*\\\"\\n)\",\"category\":\"File Activity\",\"creationDate\":1642158535139,\"updateDate\":1681490425573,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"1n2-xpg-6nx\",\"attributes\":{\"version\":23,\"name\":\"ssl_certificate_tampering_open\",\"description\":\"SSL certificates may have been tampered with\",\"expression\":\"(\\n open.flags & (O_CREAT|O_RDWR|O_WRONLY) > 0 &&\\n (open.file.path in [ ~\\\"/etc/ssl/certs/**\\\", ~\\\"/etc/pki/**\\\" ])\\n)\\n&& process.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n&& process.ancestors.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n&& process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n&& process.file.name !~ \\\"runc*\\\"\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1681490425289,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"uot-9ro-hpp\",\"attributes\":{\"version\":2,\"name\":\"shell_history_deleted\",\"description\":\"Shell History was Deleted\",\"expression\":\"(unlink.file.name =~ r\\\".([dbazfi]*sh)(_history)$\\\") && process.comm not in [\\\"dockerd\\\", \\\"containerd\\\"]\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1681490425280,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"jxj-xnb-lua\",\"attributes\":{\"version\":3,\"name\":\"shell_history_truncated\",\"description\":\"Shell History was Deleted\",\"expression\":\"open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 && open.file.name =~ r\\\".([dbazfi]*sh)(_history)$\\\" && open.file.path in [~\\\"/root/*\\\", ~\\\"/home/**\\\"] && process.file.name == \\\"truncate\\\"\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1681490425220,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"gur-w5f-2kn\",\"attributes\":{\"version\":23,\"name\":\"ssl_certificate_tampering_rename\",\"description\":\"SSL certificates may have been tampered with\",\"expression\":\"(\\n (rename.file.path in [ ~\\\"/etc/ssl/certs/**\\\", ~\\\"/etc/pki/**\\\" ]\\n || rename.file.destination.path in [ ~\\\"/etc/ssl/certs/**\\\", ~\\\"/etc/pki/**\\\" ])\\n && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\\n&& process.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n&& process.ancestors.file.path != \\\"/usr/sbin/update-ca-certificates\\\"\\n&& process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n&& process.file.name !~ \\\"runc*\\\"\",\"category\":\"File Activity\",\"creationDate\":1642158535082,\"updateDate\":1681490425217,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"jiu-wmv-ig0\",\"attributes\":{\"version\":35,\"name\":\"credential_modified_chmod\",\"description\":\"Sensitive credential files were modified using a non-standard tool\",\"expression\":\"(\\n (chmod.file.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ])\\n && process.file.path not in [ \\\"/sbin/vipw\\\", \\\"/usr/sbin/vipw\\\", \\\"/sbin/vigr\\\", \\\"/usr/sbin/vigr\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/local/bin/dockerd\\\", \\\"/usr/sbin/groupadd\\\", \\\"/usr/sbin/useradd\\\", \\\"/usr/sbin/usermod\\\", \\\"/usr/sbin/userdel\\\", \\\"/usr/bin/gpasswd\\\", \\\"/usr/bin/chage\\\", \\\"/usr/sbin/chpasswd\\\", \\\"/usr/bin/passwd\\\" ]\\n && process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n) && chmod.file.destination.mode != chmod.file.mode\",\"category\":\"File Activity\",\"creationDate\":1642158535177,\"updateDate\":1678909084442,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":false,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"Nick Allen\",\"handle\":\"nick.allen@datadoghq.com\"}},\"type\":\"agent_rule\"},{\"id\":\"bg2-noz-ouf\",\"attributes\":{\"version\":6,\"name\":\"dirty_pipe_attempt\",\"description\":\"Potential Dirty pipe exploitation attempt\",\"expression\":\"(splice.pipe_entry_flag & PIPE_BUF_FLAG_CAN_MERGE) != 0 && (splice.pipe_exit_flag & PIPE_BUF_FLAG_CAN_MERGE) == 0 && (process.uid != 0 && process.gid != 0)\",\"category\":\"File Activity\",\"creationDate\":1648564123603,\"updateDate\":1678308032425,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"Alexander Daskalov\",\"handle\":\"alexander.daskalov@datadoghq.com\"}},\"type\":\"agent_rule\"},{\"id\":\"ydj-k3d-kh3\",\"attributes\":{\"version\":4,\"name\":\"ip_check_domain\",\"description\":\"A DNS lookup was done for a IP check service\",\"expression\":\"dns.question.name in [\\\"icanhazip.com\\\", \\\"ip-api.com\\\", \\\"myip.opendns.com\\\", \\\"checkip.amazonaws.com\\\", \\\"whatismyip.akamai.com\\\"] && process.file.name != \\\"\\\"\",\"category\":\"Network Activity\",\"creationDate\":1648643213312,\"updateDate\":1678307295173,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"Alexander Daskalov\",\"handle\":\"alexander.daskalov@datadoghq.com\"}},\"type\":\"agent_rule\"},{\"id\":\"i64-vlz-y6u\",\"attributes\":{\"version\":22,\"name\":\"systemd_modification_chmod\",\"description\":\"A service may have been modified without authorization\",\"expression\":\"(\\n (chmod.file.path in [ ~\\\"/lib/systemd/system/**\\\", ~\\\"/usr/lib/systemd/system/**\\\", ~\\\"/etc/systemd/system/**\\\" ])\\n && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n) && chmod.file.destination.mode != chmod.file.mode\",\"category\":\"File Activity\",\"creationDate\":1642158535224,\"updateDate\":1677793411681,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"69h-fh3-8gd\",\"attributes\":{\"version\":1,\"name\":\"tty_shell_in_container\",\"description\":\"A shell with a TTY was executed in a container\",\"expression\":\"exec.file.path in [ \\\"/bin/dash\\\",\\n \\\"/usr/bin/dash\\\",\\n \\\"/bin/sh\\\",\\n \\\"/bin/static-sh\\\",\\n \\\"/usr/bin/sh\\\",\\n \\\"/bin/bash\\\",\\n \\\"/usr/bin/bash\\\",\\n \\\"/bin/bash-static\\\",\\n \\\"/usr/bin/zsh\\\",\\n \\\"/usr/bin/ash\\\",\\n \\\"/usr/bin/csh\\\",\\n \\\"/usr/bin/ksh\\\",\\n \\\"/usr/bin/tcsh\\\",\\n \\\"/usr/lib/initramfs-tools/bin/busybox\\\",\\n \\\"/bin/busybox\\\",\\n \\\"/usr/bin/fish\\\",\\n \\\"/bin/ksh93\\\",\\n \\\"/bin/rksh\\\",\\n \\\"/bin/rksh93\\\",\\n \\\"/bin/lksh\\\",\\n \\\"/bin/mksh\\\",\\n \\\"/bin/mksh-static\\\",\\n \\\"/usr/bin/csharp\\\",\\n \\\"/bin/posh\\\",\\n \\\"/usr/bin/rc\\\",\\n \\\"/bin/sash\\\",\\n \\\"/usr/bin/yash\\\",\\n \\\"/bin/zsh5\\\",\\n \\\"/bin/zsh5-static\\\" ] && process.tty_name != \\\"\\\" && process.container.id != \\\"\\\"\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1677793400846,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"ygs-aya-gxb\",\"attributes\":{\"version\":1,\"name\":\"redis_sandbox_escape\",\"description\":\"Detects CVE-2022-0543\",\"expression\":\"(open.file.path =~ \\\"/usr/lib/x86_64-linux-gnu/*\\\" && open.file.name in [\\\"libc-2.29.so\\\", \\\"libc-2.30.so\\\", \\\"libc-2.31.so\\\", \\\"libc-2.32.so\\\", \\\"libc-2.33.so\\\", \\\"libc-2.34.so\\\", \\\"libc-2.35.so\\\", \\\"libc-2.36.so\\\", \\\"libc-2.37.so\\\"]) && process.ancestors.comm in [\\\"redis-check-rdb\\\", \\\"redis-server\\\"]\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1677793399338,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"h2l-v6b-akf\",\"attributes\":{\"version\":1,\"name\":\"base64_decode\",\"description\":\"The base64 command was used to decode information\",\"expression\":\"exec.file.name == \\\"base64\\\" && exec.args_flags in [\\\"d\\\"]\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1677793399280,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"jvq-pxe-ygn\",\"attributes\":{\"version\":21,\"name\":\"systemd_modification_rename\",\"description\":\"A service may have been modified without authorization\",\"expression\":\"(\\n (rename.file.path in [ ~\\\"/lib/systemd/system/**\\\", ~\\\"/usr/lib/systemd/system/**\\\", ~\\\"/etc/systemd/system/**\\\" ]\\n || rename.file.destination.path in [ ~\\\"/lib/systemd/system/**\\\", ~\\\"/usr/lib/systemd/system/**\\\", ~\\\"/etc/systemd/system/**\\\" ])\\n && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1677793384295,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"esw-xou-pwg\",\"attributes\":{\"version\":11,\"name\":\"package_management_in_container\",\"description\":\"Package management was detected in a container\",\"expression\":\"exec.file.path in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"] && container.id != \\\"\\\"\",\"category\":\"Process Activity\",\"creationDate\":1617722067648,\"updateDate\":1677793383505,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"0yf-x4j-zbg\",\"attributes\":{\"version\":6,\"name\":\"user_created_tty\",\"description\":\"A user was created via an interactive session\",\"expression\":\"exec.file.name in [\\\"useradd\\\", \\\"newusers\\\", \\\"adduser\\\"] && exec.tty_name !=\\\"\\\" && process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"] && exec.args_flags not in [\\\"D\\\"]\",\"category\":\"Process Activity\",\"creationDate\":1627392836979,\"updateDate\":1677793382984,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"7nm-5gf-ghj\",\"attributes\":{\"version\":3,\"name\":\"new_binary_execution_in_container\",\"description\":\"A container executed a new binary not found in the container image\",\"expression\":\"container.id != \\\"\\\" && process.file.in_upper_layer && process.file.modification_time < 30s && exec.file.name != \\\"\\\"\",\"category\":\"Process Activity\",\"creationDate\":1652129906455,\"updateDate\":1677793380182,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"wib-i2s-0eb\",\"attributes\":{\"version\":17,\"name\":\"pam_modification_utimes\",\"description\":\"PAM may have been modified without authorization\",\"expression\":\"(\\n (utimes.file.path in [ ~\\\"/etc/pam.d/**\\\", \\\"/etc/pam.conf\\\" ])\\n) && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\",\"category\":\"File Activity\",\"creationDate\":1606142936138,\"updateDate\":1677793376369,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"d1p-2un-5ay\",\"attributes\":{\"version\":21,\"name\":\"systemd_modification_link\",\"description\":\"A service may have been modified without authorization\",\"expression\":\"(\\n (link.file.path in [ ~\\\"/lib/systemd/system/**\\\", ~\\\"/usr/lib/systemd/system/**\\\", ~\\\"/etc/systemd/system/**\\\" ]\\n || link.file.destination.path in [ ~\\\"/lib/systemd/system/**\\\", ~\\\"/usr/lib/systemd/system/**\\\", ~\\\"/etc/systemd/system/**\\\" ])\\n && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1677793376080,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"aic-m2b-kbp\",\"attributes\":{\"version\":22,\"name\":\"systemd_modification_chown\",\"description\":\"A service may have been modified without authorization\",\"expression\":\"(\\n (chown.file.path in [ ~\\\"/lib/systemd/system/**\\\", ~\\\"/usr/lib/systemd/system/**\\\", ~\\\"/etc/systemd/system/**\\\" ])\\n && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n) && (chown.file.destination.uid != chown.file.uid || chown.file.destination.gid != chown.file.gid)\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1677793375206,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"rxa-v6v-oyz\",\"attributes\":{\"version\":31,\"name\":\"credential_modified_rename\",\"description\":\"Sensitive credential files were modified using a non-standard tool\",\"expression\":\"(\\n (rename.file.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ]\\n || rename.file.destination.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ])\\n && process.file.path not in [ \\\"/sbin/vipw\\\", \\\"/usr/sbin/vipw\\\", \\\"/sbin/vigr\\\", \\\"/usr/sbin/vigr\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/local/bin/dockerd\\\", \\\"/usr/sbin/groupadd\\\", \\\"/usr/sbin/useradd\\\", \\\"/usr/sbin/usermod\\\", \\\"/usr/sbin/userdel\\\", \\\"/usr/bin/gpasswd\\\", \\\"/usr/bin/chage\\\", \\\"/usr/sbin/chpasswd\\\", \\\"/usr/bin/passwd\\\" ]\\n && process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\",\"category\":\"File Activity\",\"creationDate\":1642158535356,\"updateDate\":1677793375033,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"tys-u1m-rgt\",\"attributes\":{\"version\":33,\"name\":\"kernel_module_chown\",\"description\":\"A new kernel module was added\",\"expression\":\"(\\n (chown.file.path in [ ~\\\"/lib/modules/**\\\", ~\\\"/usr/lib/modules/**\\\" ])\\n && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n && process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"] && process.ancestors.file.path != \\\"/usr/bin/kmod\\\"\\n) && (chown.file.destination.uid != chown.file.uid || chown.file.destination.gid != chown.file.gid)\",\"category\":\"File Activity\",\"creationDate\":1598516746168,\"updateDate\":1677793374885,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"hzz-0oh-mji\",\"attributes\":{\"version\":32,\"name\":\"kernel_module_utimes\",\"description\":\"A new kernel module was added\",\"expression\":\"(\\n (utimes.file.path in [ ~\\\"/lib/modules/**\\\", ~\\\"/usr/lib/modules/**\\\" ])\\n && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n && process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"] && process.ancestors.file.path != \\\"/usr/bin/kmod\\\"\\n)\",\"category\":\"File Activity\",\"creationDate\":1598516746168,\"updateDate\":1677793374395,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"om1-5ch-5sf\",\"attributes\":{\"version\":32,\"name\":\"kernel_module_unlink\",\"description\":\"A new kernel module was added\",\"expression\":\"(\\n (unlink.file.path in [ ~\\\"/lib/modules/**\\\", ~\\\"/usr/lib/modules/**\\\" ])\\n && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n && process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"] && process.ancestors.file.path != \\\"/usr/bin/kmod\\\"\\n)\",\"category\":\"File Activity\",\"creationDate\":1598516746168,\"updateDate\":1677793372622,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"wwu-ysx-rm7\",\"attributes\":{\"version\":32,\"name\":\"kernel_module_rename\",\"description\":\"A new kernel module was added\",\"expression\":\"(\\n (rename.file.path in [ ~\\\"/lib/modules/**\\\", ~\\\"/usr/lib/modules/**\\\" ]\\n || rename.file.destination.path in [ ~\\\"/lib/modules/**\\\", ~\\\"/usr/lib/modules/**\\\" ])\\n && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n && process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"] && process.ancestors.file.path != \\\"/usr/bin/kmod\\\"\\n)\",\"category\":\"File Activity\",\"creationDate\":1642158535229,\"updateDate\":1677793372373,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"rza-8h3-4lj\",\"attributes\":{\"version\":32,\"name\":\"credential_modified_chown\",\"description\":\"Sensitive credential files were modified using a non-standard tool\",\"expression\":\"(\\n (chown.file.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ])\\n && process.file.path not in [ \\\"/sbin/vipw\\\", \\\"/usr/sbin/vipw\\\", \\\"/sbin/vigr\\\", \\\"/usr/sbin/vigr\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/local/bin/dockerd\\\", \\\"/usr/sbin/groupadd\\\", \\\"/usr/sbin/useradd\\\", \\\"/usr/sbin/usermod\\\", \\\"/usr/sbin/userdel\\\", \\\"/usr/bin/gpasswd\\\", \\\"/usr/bin/chage\\\", \\\"/usr/sbin/chpasswd\\\", \\\"/usr/bin/passwd\\\" ]\\n && process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n) && (chown.file.destination.uid != chown.file.uid || chown.file.destination.gid != chown.file.gid)\",\"category\":\"File Activity\",\"creationDate\":1642158534952,\"updateDate\":1677793372165,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"s17-cle-cuf\",\"attributes\":{\"version\":31,\"name\":\"credential_modified_link\",\"description\":\"Sensitive credential files were modified using a non-standard tool\",\"expression\":\"(\\n (link.file.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ]\\n || link.file.destination.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ])\\n && process.file.path not in [ \\\"/sbin/vipw\\\", \\\"/usr/sbin/vipw\\\", \\\"/sbin/vigr\\\", \\\"/usr/sbin/vigr\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/local/bin/dockerd\\\", \\\"/usr/sbin/groupadd\\\", \\\"/usr/sbin/useradd\\\", \\\"/usr/sbin/usermod\\\", \\\"/usr/sbin/userdel\\\", \\\"/usr/bin/gpasswd\\\", \\\"/usr/bin/chage\\\", \\\"/usr/sbin/chpasswd\\\", \\\"/usr/bin/passwd\\\" ]\\n && process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\",\"category\":\"File Activity\",\"creationDate\":1642158535271,\"updateDate\":1677793372149,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"ty2-qc4-drd\",\"attributes\":{\"version\":32,\"name\":\"kernel_module_link\",\"description\":\"A new kernel module was added\",\"expression\":\"(\\n (link.file.path in [ ~\\\"/lib/modules/**\\\", ~\\\"/usr/lib/modules/**\\\" ]\\n || link.file.destination.path in [ ~\\\"/lib/modules/**\\\", ~\\\"/usr/lib/modules/**\\\" ])\\n && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n && process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"] && process.ancestors.file.path != \\\"/usr/bin/kmod\\\"\\n)\",\"category\":\"File Activity\",\"creationDate\":1642158535200,\"updateDate\":1677793372103,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"hsk-ug8-fu7\",\"attributes\":{\"version\":32,\"name\":\"kernel_module_open\",\"description\":\"A new kernel module was added\",\"expression\":\"(\\n open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 &&\\n (open.file.path in [ ~\\\"/lib/modules/**\\\", ~\\\"/usr/lib/modules/**\\\" ])\\n && process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n && process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"] && process.ancestors.file.path != \\\"/usr/bin/kmod\\\"\\n)\",\"category\":\"File Activity\",\"creationDate\":1598516746168,\"updateDate\":1677793371891,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"rme-dmd-trz\",\"attributes\":{\"version\":31,\"name\":\"credential_modified_unlink\",\"description\":\"Sensitive credential files were modified using a non-standard tool\",\"expression\":\"(\\n (unlink.file.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ])\\n && process.file.path not in [ \\\"/sbin/vipw\\\", \\\"/usr/sbin/vipw\\\", \\\"/sbin/vigr\\\", \\\"/usr/sbin/vigr\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/local/bin/dockerd\\\", \\\"/usr/sbin/groupadd\\\", \\\"/usr/sbin/useradd\\\", \\\"/usr/sbin/usermod\\\", \\\"/usr/sbin/userdel\\\", \\\"/usr/bin/gpasswd\\\", \\\"/usr/bin/chage\\\", \\\"/usr/sbin/chpasswd\\\", \\\"/usr/bin/passwd\\\" ]\\n && process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"]\\n)\",\"category\":\"File Activity\",\"creationDate\":1642158535113,\"updateDate\":1677793371890,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"bya-q5x-vjt\",\"attributes\":{\"version\":24,\"name\":\"cron_at_job_creation_rename\",\"description\":\"An unauthorized job was added to cron scheduling\",\"expression\":\"(\\n (rename.file.path in [ ~\\\"/var/spool/cron/**\\\", ~\\\"/etc/cron.*/**\\\", ~\\\"/etc/crontab\\\" ]\\n || rename.file.destination.path in [ ~\\\"/var/spool/cron/**\\\", ~\\\"/etc/cron.*/**\\\", ~\\\"/etc/crontab\\\" ])\\n && process.file.path not in [ \\\"/usr/bin/at\\\", \\\"/usr/bin/crontab\\\" ]\\n)\\n&& process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\",\"category\":\"File Activity\",\"creationDate\":1606142961130,\"updateDate\":1674486419017,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":false,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"6p8-mws-jmo\",\"attributes\":{\"version\":1,\"name\":\"potential_web_shell_parent\",\"description\":\"A web application spawned a shell or shell utility\",\"expression\":\"(exec.file.path in [ \\\"/bin/dash\\\",\\n \\\"/usr/bin/dash\\\",\\n \\\"/bin/sh\\\",\\n \\\"/bin/static-sh\\\",\\n \\\"/usr/bin/sh\\\",\\n \\\"/bin/bash\\\",\\n \\\"/usr/bin/bash\\\",\\n \\\"/bin/bash-static\\\",\\n \\\"/usr/bin/zsh\\\",\\n \\\"/usr/bin/ash\\\",\\n \\\"/usr/bin/csh\\\",\\n \\\"/usr/bin/ksh\\\",\\n \\\"/usr/bin/tcsh\\\",\\n \\\"/usr/lib/initramfs-tools/bin/busybox\\\",\\n \\\"/bin/busybox\\\",\\n \\\"/usr/bin/fish\\\",\\n \\\"/bin/ksh93\\\",\\n \\\"/bin/rksh\\\",\\n \\\"/bin/rksh93\\\",\\n \\\"/bin/lksh\\\",\\n \\\"/bin/mksh\\\",\\n \\\"/bin/mksh-static\\\",\\n \\\"/usr/bin/csharp\\\",\\n \\\"/bin/posh\\\",\\n \\\"/usr/bin/rc\\\",\\n \\\"/bin/sash\\\",\\n \\\"/usr/bin/yash\\\",\\n \\\"/bin/zsh5\\\",\\n \\\"/bin/zsh5-static\\\" ] || exec.comm in [\\\"wget\\\", \\\"curl\\\", \\\"lwp-download\\\"] || exec.file.path in [\\\"/bin/cat\\\",\\\"/bin/chgrp\\\",\\\"/bin/chmod\\\",\\\"/bin/chown\\\",\\\"/bin/cp\\\",\\\"/bin/date\\\",\\\"/bin/dd\\\",\\\"/bin/df\\\",\\\"/bin/dir\\\",\\\"/bin/echo\\\",\\\"/bin/ln\\\",\\\"/bin/ls\\\",\\\"/bin/mkdir\\\",\\\"/bin/mknod\\\",\\\"/bin/mktemp\\\",\\\"/bin/mv\\\",\\\"/bin/pwd\\\",\\\"/bin/readlink\\\",\\\"/bin/rm\\\",\\\"/bin/rmdir\\\",\\\"/bin/sleep\\\",\\\"/bin/stty\\\",\\\"/bin/sync\\\",\\\"/bin/touch\\\",\\\"/bin/uname\\\",\\\"/bin/vdir\\\",\\\"/usr/bin/arch\\\",\\\"/usr/bin/b2sum\\\",\\\"/usr/bin/base32\\\",\\\"/usr/bin/base64\\\",\\\"/usr/bin/basename\\\",\\\"/usr/bin/chcon\\\",\\\"/usr/bin/cksum\\\",\\\"/usr/bin/comm\\\",\\\"/usr/bin/csplit\\\",\\\"/usr/bin/cut\\\",\\\"/usr/bin/dircolors\\\",\\\"/usr/bin/dirname\\\",\\\"/usr/bin/du\\\",\\\"/usr/bin/env\\\",\\\"/usr/bin/expand\\\",\\\"/usr/bin/expr\\\",\\\"/usr/bin/factor\\\",\\\"/usr/bin/fmt\\\",\\\"/usr/bin/fold\\\",\\\"/usr/bin/groups\\\",\\\"/usr/bin/head\\\",\\\"/usr/bin/hostid\\\",\\\"/usr/bin/id\\\",\\\"/usr/bin/install\\\",\\\"/usr/bin/join\\\",\\\"/usr/bin/link\\\",\\\"/usr/bin/logname\\\",\\\"/usr/bin/md5sum\\\",\\\"/usr/bin/md5sum.textutils\\\",\\\"/usr/bin/mkfifo\\\",\\\"/usr/bin/nice\\\",\\\"/usr/bin/nl\\\",\\\"/usr/bin/nohup\\\",\\\"/usr/bin/nproc\\\",\\\"/usr/bin/numfmt\\\",\\\"/usr/bin/od\\\",\\\"/usr/bin/paste\\\",\\\"/usr/bin/pathchk\\\",\\\"/usr/bin/pinky\\\",\\\"/usr/bin/pr\\\",\\\"/usr/bin/printenv\\\",\\\"/usr/bin/printf\\\",\\\"/usr/bin/ptx\\\",\\\"/usr/bin/realpath\\\",\\\"/usr/bin/runcon\\\",\\\"/usr/bin/seq\\\",\\\"/usr/bin/sha1sum\\\",\\\"/usr/bin/sha224sum\\\",\\\"/usr/bin/sha256sum\\\",\\\"/usr/bin/sha384sum\\\",\\\"/usr/bin/sha512sum\\\",\\\"/usr/bin/shred\\\",\\\"/usr/bin/shuf\\\",\\\"/usr/bin/sort\\\",\\\"/usr/bin/split\\\",\\\"/usr/bin/stat\\\",\\\"/usr/bin/stdbuf\\\",\\\"/usr/bin/sum\\\",\\\"/usr/bin/tac\\\",\\\"/usr/bin/tail\\\",\\\"/usr/bin/tee\\\",\\\"/usr/bin/test\\\",\\\"/usr/bin/timeout\\\",\\\"/usr/bin/tr\\\",\\\"/usr/bin/truncate\\\",\\\"/usr/bin/tsort\\\",\\\"/usr/bin/tty\\\",\\\"/usr/bin/unexpand\\\",\\\"/usr/bin/uniq\\\",\\\"/usr/bin/unlink\\\",\\\"/usr/bin/users\\\",\\\"/usr/bin/wc\\\",\\\"/usr/bin/who\\\",\\\"/usr/bin/whoami\\\",\\\"/usr/sbin/chroot\\\"]) &&\\n(process.parent.file.name in [\\\"apache2\\\", \\\"nginx\\\", ~\\\"tomcat*\\\", \\\"httpd\\\"] || process.parent.file.name =~ \\\"php*\\\")\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1674486410462,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"c3b-qwh-lwy\",\"attributes\":{\"version\":1,\"name\":\"mount_host_fs\",\"description\":\"The host file system was mounted in a container\",\"expression\":\"mount.source.path == \\\"/\\\" && mount.fs_type != \\\"overlay\\\" && container.id != \\\"\\\"\",\"category\":\"File Activity\",\"creationDate\":0,\"updateDate\":1674486409763,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"mfw-adh-mba\",\"attributes\":{\"version\":1,\"name\":\"memfd_create\",\"description\":\"memfd object created\",\"expression\":\"exec.file.name =~ \\\"memfd*\\\" && exec.file.path == \\\"\\\"\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1674486409582,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"ylo-d9p-7e2\",\"attributes\":{\"version\":25,\"name\":\"cron_at_job_creation_chmod\",\"description\":\"An unauthorized job was added to cron scheduling\",\"expression\":\"(\\n (chmod.file.path in [ ~\\\"/var/spool/cron/**\\\", ~\\\"/etc/cron.*/**\\\", ~\\\"/etc/crontab\\\" ])\\n && process.file.path not in [ \\\"/usr/bin/at\\\", \\\"/usr/bin/crontab\\\" ]\\n) && chmod.file.destination.mode != chmod.file.mode\\n&& process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\",\"category\":\"File Activity\",\"creationDate\":1606142961130,\"updateDate\":1674486392555,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":false,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"zwi-z69-wxv\",\"attributes\":{\"version\":25,\"name\":\"cron_at_job_creation_chown\",\"description\":\"An unauthorized job was added to cron scheduling\",\"expression\":\"(\\n (chown.file.path in [ ~\\\"/var/spool/cron/**\\\", ~\\\"/etc/cron.*/**\\\", ~\\\"/etc/crontab\\\" ])\\n && process.file.path not in [ \\\"/usr/bin/at\\\", \\\"/usr/bin/crontab\\\" ]\\n) && (chown.file.destination.uid != chown.file.uid || chown.file.destination.gid != chown.file.gid)\\n&& process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\",\"category\":\"File Activity\",\"creationDate\":1606142961130,\"updateDate\":1674486392076,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":false,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"abd-4hy-aep\",\"attributes\":{\"version\":25,\"name\":\"cron_at_job_creation_utimes\",\"description\":\"An unauthorized job was added to cron scheduling\",\"expression\":\"(\\n (utimes.file.path in [ ~\\\"/var/spool/cron/**\\\", ~\\\"/etc/cron.*/**\\\", ~\\\"/etc/crontab\\\" ])\\n && process.file.path not in [ \\\"/usr/bin/at\\\", \\\"/usr/bin/crontab\\\" ]\\n)\\n&& process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\",\"category\":\"File Activity\",\"creationDate\":1606142961130,\"updateDate\":1674486391087,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":false,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"kft-h30-mqm\",\"attributes\":{\"version\":25,\"name\":\"cron_at_job_creation_unlink\",\"description\":\"An unauthorized job was added to cron scheduling\",\"expression\":\"(\\n (unlink.file.path in [ ~\\\"/var/spool/cron/**\\\", ~\\\"/etc/cron.*/**\\\", ~\\\"/etc/crontab\\\" ])\\n && process.file.path not in [ \\\"/usr/bin/at\\\", \\\"/usr/bin/crontab\\\" ]\\n)\\n&& process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\",\"category\":\"File Activity\",\"creationDate\":1606142961130,\"updateDate\":1674486390957,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":false,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"xda-xrq-k9e\",\"attributes\":{\"version\":25,\"name\":\"cron_at_job_creation_open\",\"description\":\"An unauthorized job was added to cron scheduling\",\"expression\":\"(\\n open.flags & (O_CREAT|O_RDWR|O_WRONLY) > 0 &&\\n (open.file.path in [ ~\\\"/var/spool/cron/**\\\", ~\\\"/etc/cron.*/**\\\", ~\\\"/etc/crontab\\\" ])\\n && process.file.path not in [ \\\"/usr/bin/at\\\", \\\"/usr/bin/crontab\\\" ]\\n)\\n&& process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\",\"category\":\"File Activity\",\"creationDate\":1606142961130,\"updateDate\":1674486390712,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":false,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"vxt-pdr-0cl\",\"attributes\":{\"version\":25,\"name\":\"cron_at_job_creation_link\",\"description\":\"An unauthorized job was added to cron scheduling\",\"expression\":\"(\\n (link.file.path in [ ~\\\"/var/spool/cron/**\\\", ~\\\"/etc/cron.*/**\\\", ~\\\"/etc/crontab\\\" ]\\n || link.file.destination.path in [ ~\\\"/var/spool/cron/**\\\", ~\\\"/etc/cron.*/**\\\", ~\\\"/etc/crontab\\\" ])\\n && process.file.path not in [ \\\"/usr/bin/at\\\", \\\"/usr/bin/crontab\\\" ]\\n)\\n&& process.file.path not in [~\\\"/usr/bin/apt*\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/containerd\\\", \\\"/usr/local/bin/containerd\\\", \\\"/usr/bin/dockerd\\\", \\\"/usr/bin/npm\\\", ~\\\"/usr/bin/pip*\\\"]\",\"category\":\"File Activity\",\"creationDate\":1606142961130,\"updateDate\":1674486390691,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":false,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"z01-5m6-bbi\",\"attributes\":{\"version\":1,\"name\":\"gcp_imds\",\"description\":\"An GCP IMDS was called via a network utility\",\"expression\":\"exec.comm in [\\\"wget\\\", \\\"curl\\\", \\\"lwp-download\\\"] && exec.args in [~\\\"*metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token\\\", ~\\\"*169.254.169.254/computeMetadata/v1/instance/service-accounts/default/token\\\"]\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1670604148337,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"tez-7by-uke\",\"attributes\":{\"version\":1,\"name\":\"azure_imds\",\"description\":\"An Azure IMDS was called via a network utility\",\"expression\":\"exec.comm in [\\\"wget\\\", \\\"curl\\\", \\\"lwp-download\\\"] && exec.args in [~\\\"*169.254.169.254/metadata/identity/oauth2/token?api-version=*\\\"]\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1670604148316,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"fcs-rzj-p0a\",\"attributes\":{\"version\":1,\"name\":\"net_unusual_request\",\"description\":\"Network utility executed with suspicious URI\",\"expression\":\"exec.comm in [\\\"wget\\\", \\\"curl\\\", \\\"lwp-download\\\"] && exec.args in [~\\\"*.php*\\\", ~\\\"*.jpg*\\\"] \",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1670604148316,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"u4x-0kv-jq1\",\"attributes\":{\"version\":2,\"name\":\"ptrace_antidebug\",\"description\":\"A process uses an anti-debugging technique to block debuggers\",\"expression\":\"ptrace.request == PTRACE_TRACEME && process.file.name != \\\"\\\"\",\"category\":\"Kernel Activity\",\"creationDate\":1650293718435,\"updateDate\":1670604142703,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"hyc-d0a-iat\",\"attributes\":{\"version\":9,\"name\":\"passwd_execution\",\"description\":\"The passwd or chpasswd utility was used to modify an account password\",\"expression\":\"exec.file.path in [\\\"/usr/bin/passwd\\\", \\\"/usr/sbin/chpasswd\\\"] && exec.args_flags not in [\\\"S\\\", \\\"status\\\"]\",\"category\":\"Process Activity\",\"creationDate\":1617722068383,\"updateDate\":1666888149907,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"vls-ztk-8p0\",\"attributes\":{\"version\":2,\"name\":\"dirty_pipe_exploitation\",\"description\":\"Potential Dirty pipe exploitation\",\"expression\":\"(splice.pipe_exit_flag & PIPE_BUF_FLAG_CAN_MERGE) > 0 && (process.uid != 0 && process.gid != 0)\",\"category\":\"File Activity\",\"creationDate\":1648564123563,\"updateDate\":1666888149012,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"3ga-ibr-dlw\",\"attributes\":{\"version\":19,\"name\":\"net_util_in_container\",\"description\":\"A network utility was executed in a container\",\"expression\":\"(exec.comm in [\\\"socat\\\", \\\"dig\\\", \\\"nslookup\\\", \\\"host\\\", ~\\\"netcat*\\\", ~\\\"nc*\\\", \\\"ncat\\\"] ||\\n exec.comm in [\\\"wget\\\", \\\"curl\\\", \\\"lwp-download\\\"]) &&\\ncontainer.id != \\\"\\\" && exec.args not in [ ~\\\"*localhost*\\\", ~\\\"*127.0.0.1*\\\", ~\\\"*motd.ubuntu.com*\\\" ]\",\"category\":\"Process Activity\",\"creationDate\":1617722068439,\"updateDate\":1666888148873,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"kel-je5-jhu\",\"attributes\":{\"version\":14,\"name\":\"net_util\",\"description\":\"A network utility was executed\",\"expression\":\"(exec.comm in [\\\"socat\\\", \\\"dig\\\", \\\"nslookup\\\", \\\"host\\\", ~\\\"netcat*\\\", ~\\\"nc*\\\", \\\"ncat\\\"] ||\\n exec.comm in [\\\"wget\\\", \\\"curl\\\", \\\"lwp-download\\\"]) &&\\ncontainer.id == \\\"\\\" && exec.args not in [ ~\\\"*localhost*\\\", ~\\\"*127.0.0.1*\\\", ~\\\"*motd.ubuntu.com*\\\" ]\",\"category\":\"Process Activity\",\"creationDate\":1617722067377,\"updateDate\":1666888148817,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"zp1-2vr-dji\",\"attributes\":{\"version\":1,\"name\":\"ld_preload_unusual_library_path\",\"description\":\"The LD_PRELOAD variable is populated by a link to a suspicious file directory\",\"expression\":\"exec.envs in [~\\\"LD_PRELOAD=*/tmp/*\\\" ,~\\\"LD_PRELOAD=/dev/shm/*\\\" ]\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1665475122104,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"iha-seu-ukg\",\"attributes\":{\"version\":18,\"name\":\"pam_modification_chown\",\"description\":\"PAM may have been modified without authorization\",\"expression\":\"(\\n (chown.file.path in [ ~\\\"/etc/pam.d/**\\\", \\\"/etc/pam.conf\\\" ])\\n) && (chown.file.destination.uid != chown.file.uid || chown.file.destination.gid != chown.file.gid)\",\"category\":\"File Activity\",\"creationDate\":1642158535185,\"updateDate\":1665475117830,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"5jz-f4m-ujl\",\"attributes\":{\"version\":17,\"name\":\"pam_modification_chmod\",\"description\":\"PAM may have been modified without authorization\",\"expression\":\"(\\n (chmod.file.path in [ ~\\\"/etc/pam.d/**\\\", \\\"/etc/pam.conf\\\" ])\\n) && chmod.file.destination.mode != chmod.file.mode\",\"category\":\"File Activity\",\"creationDate\":1606142936138,\"updateDate\":1665475098297,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"hyg-xco-0yu\",\"attributes\":{\"version\":19,\"name\":\"ssh_authorized_keys_chmod\",\"description\":\"SSH modified keys may have been modified\",\"expression\":\"(\\n chmod.file.name in [ \\\"authorized_keys\\\", \\\"authorized_keys2\\\" ] && (chmod.file.path in [ ~\\\"/root/.ssh/*\\\", ~\\\"/home/*/.ssh/*\\\", ~\\\"/var/lib/*/.ssh/*\\\" ])\\n) && chmod.file.destination.mode != chmod.file.mode\",\"category\":\"File Activity\",\"creationDate\":1642158535014,\"updateDate\":1665475096405,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"m6c-qaa-oq5\",\"attributes\":{\"version\":1,\"name\":\"shell_history_symlink\",\"description\":\"A symbolic link for shell history was created targeting /dev/null\",\"expression\":\"exec.comm == \\\"ln\\\" && exec.args in [~\\\"*.*history*\\\", \\\"/dev/null\\\"]\",\"category\":\"Process Activity\",\"creationDate\":0,\"updateDate\":1661193978111,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"e8x-hfv-opq\",\"attributes\":{\"version\":3,\"name\":\"potential_cryptominer\",\"description\":\"A process resolved a DNS name associated with cryptomining activity\",\"expression\":\"dns.question.name in [~\\\"*minexmr.com\\\", ~\\\"*nanopool.org\\\", ~\\\"*supportxmr.com\\\", ~\\\"*c3pool.com\\\", ~\\\"*p2pool.io\\\", ~\\\"*ethermine.org\\\", ~\\\"*f2pool.com\\\", ~\\\"*poolin.me\\\", ~\\\"*rplant.xyz\\\"] && process.file.name != \\\"\\\"\",\"category\":\"Network Activity\",\"creationDate\":1648643213236,\"updateDate\":1658502066736,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"o9o-bqw-xda\",\"attributes\":{\"version\":2,\"name\":\"paste_site\",\"description\":\"A DNS lookup was done for a pastebin-like site\",\"expression\":\"dns.question.name in [\\\"pastebin.com\\\", \\\"ghostbin.com\\\", \\\"termbin.com\\\", \\\"klgrth.io\\\"] && process.file.name != \\\"\\\"\",\"category\":\"Network Activity\",\"creationDate\":1648643213212,\"updateDate\":1654020328112,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"ozc-4r6-5v6\",\"attributes\":{\"version\":2,\"name\":\"kernel_module_load_container\",\"description\":\"A container loaded a new kernel module\",\"expression\":\"load_module.name != \\\"\\\" && container.id !=\\\"\\\"\",\"category\":\"Kernel Activity\",\"creationDate\":1650293718705,\"updateDate\":1650371510304,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"qxl-uky-d3i\",\"attributes\":{\"version\":1,\"name\":\"ptrace_injection\",\"description\":\"A process attempted to inject code into another process\",\"expression\":\"ptrace.request == PTRACE_POKETEXT || ptrace.request == PTRACE_POKEDATA || ptrace.request == PTRACE_POKEUSR\",\"category\":\"Kernel Activity\",\"creationDate\":1650293718540,\"updateDate\":1650293782685,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"hkb-qnu-nin\",\"attributes\":{\"version\":1,\"name\":\"kernel_module_load_from_memory_container\",\"description\":\"A kernel module was loaded from memory inside a container\",\"expression\":\"load_module.loaded_from_memory == true && container.id !=\\\"\\\"\",\"category\":\"Kernel Activity\",\"creationDate\":1650293718365,\"updateDate\":1650293782651,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"vgp-c7n-4ww\",\"attributes\":{\"version\":17,\"name\":\"pam_modification_open\",\"description\":\"PAM may have been modified without authorization\",\"expression\":\"(\\n open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 &&\\n (open.file.path in [ ~\\\"/etc/pam.d/**\\\", \\\"/etc/pam.conf\\\" ])\\n)\",\"category\":\"File Activity\",\"creationDate\":1642158535331,\"updateDate\":1643993958380,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"dk5-qem-ukk\",\"attributes\":{\"version\":17,\"name\":\"pam_modification_link\",\"description\":\"PAM may have been modified without authorization\",\"expression\":\"(\\n (link.file.path in [ ~\\\"/etc/pam.d/**\\\", \\\"/etc/pam.conf\\\" ]\\n || link.file.destination.path in [ ~\\\"/etc/pam.d/**\\\", \\\"/etc/pam.conf\\\" ])\\n)\",\"category\":\"File Activity\",\"creationDate\":1642158535089,\"updateDate\":1643993957839,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"g0j-tcx-9yi\",\"attributes\":{\"version\":16,\"name\":\"nsswitch_conf_mod_link\",\"description\":\"Nsswitch Configuration Modified\",\"expression\":\"(\\n (link.file.path in [ \\\"/etc/nsswitch.conf\\\" ]\\n || link.file.destination.path in [ \\\"/etc/nsswitch.conf\\\" ])\\n)\",\"category\":\"File Activity\",\"creationDate\":1606142958657,\"updateDate\":1628512222322,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"wu3-ect-q5y\",\"attributes\":{\"version\":16,\"name\":\"nsswitch_conf_mod_rename\",\"description\":\"Nsswitch Configuration Modified\",\"expression\":\"(\\n (rename.file.path in [ \\\"/etc/nsswitch.conf\\\" ]\\n || rename.file.destination.path in [ \\\"/etc/nsswitch.conf\\\" ])\\n)\",\"category\":\"File Activity\",\"creationDate\":1606142958657,\"updateDate\":1628512222322,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"nfl-b7w-jla\",\"attributes\":{\"version\":16,\"name\":\"nsswitch_conf_mod_unlink\",\"description\":\"Nsswitch Configuration Modified\",\"expression\":\"(\\n (unlink.file.path in [ \\\"/etc/nsswitch.conf\\\" ])\\n)\",\"category\":\"File Activity\",\"creationDate\":1606142958657,\"updateDate\":1628512222322,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"},{\"id\":\"vti-qnm-wg7\",\"attributes\":{\"version\":16,\"name\":\"nsswitch_conf_mod_utimes\",\"description\":\"Nsswitch Configuration Modified\",\"expression\":\"(\\n (utimes.file.path in [ \\\"/etc/nsswitch.conf\\\" ])\\n)\",\"category\":\"File Activity\",\"creationDate\":1606142958657,\"updateDate\":1628512222322,\"filters\":[],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":true,\"creator\":{\"name\":\"\",\"handle\":\"\"},\"updater\":{\"name\":\"\",\"handle\":\"\"}},\"type\":\"agent_rule\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:13 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules/gd2-ogg-fyk" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:13 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Get-the-latest-CSM-Threats-policy-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-the-latest-CSM-Threats-policy-returns-OK-response.frozen new file mode 100644 index 000000000..bfb813f09 --- /dev/null +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-the-latest-CSM-Threats-policy-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-03-08T14:19:14.825Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Get-the-latest-CSM-Threats-policy-returns-OK-response.json b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-the-latest-CSM-Threats-policy-returns-OK-response.json new file mode 100644 index 000000000..e026c501b --- /dev/null +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-the-latest-CSM-Threats-policy-returns-OK-response.json @@ -0,0 +1,33 @@ +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/zip, application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/remote_config/products/cws/policy/download" + }, + "response": { + "body": { + "string": "UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAOAAAAZGVmYXVsdC5wb2xpY3nsfftz4zaS8O/7VyD8rnK2biiNPY/dpG52P2fs3czNy2V5NrcV+2NBJCQiIgEGACVrzjd/+1d48AEKlGjJr5koVRkLYOPV6G4AjUb3/wFv3p9+PDs/+nD+IziJsOBAUCBizMEYJwjMcZIAQgUYIcDQOEGhQBHABIgYgWMoYEQn4CjLACSRBh4hQGeIzRkWAhEwxyIGBM1BRhMcLnStEZ2ThMKI98FpgiBHIKURHi8AyxPEXdWPKQPjPEnAOCehwJTABItF/08zxDim5Edw0D886D/1Wfji2Z9ULT/+CQAAfICjHwHMMshSygLVDEZRIMRCfQcgQjxkOBOqliMiWzuSsCBjVKMAclCUk12DBGAiEIOhwDMEOOKyB6a2MU4EYqZx3QHKwatXwEswya88k4+uMqbL/QjQFQr7sqU+gSmSLfzqQehHmMNRgrwnQKZCmmYJxMQkYR5h4V2C77/XxYVYBKr0d6+8og1TQfQjGMOEozo6ZOlQJEHO4QS58HAeoxIKhDRN1fRCDnKOIkkhZr4UTHRrY5ewRbNeOTjIJjwYJ3DCFSUqBHGJiMS77DbWKAgpGeNJOf8rxxwBDZ0zKL+AZSqQRE1zAXKOyaRE1OZooBkiGg0ZFLGCHSARDlTN+t+oLzulkKKhFT6+B3sfg9dnJ0fn1x+D87NPH15ffwzOjn85u/4Y/HL28cO7f+2Dv4KnslTGaIg4r2H7uzq2uyJS8lYg6+iKS83S945DRSU1JKpu9COd6quUJKEmms2XywfE85wHaMoDjtgMhyiAYUhzIgJBp4jIFOK8HelHvwzBydshMKWBKQ1UaTUBjRq2x/SrL8AbzCAbsJwMOAoZEnyAprwPU/iZEjjn/ZCmA9Mj06FBr1ejZUsAqK56S6hUbZX8P6CZGER6gfDhBBExQOkIRRGKBiNMBipLTfAaQL7gAqV+xugIdYJHYc6wWPidWzCjWFmg7LK74wOYpQNMfkOhJFNBA/07YDkJFWzOmaojivyYcuFjwgVMEue3kBIBMUGsDcoN4O50kRMmOReImUF2EMtzHuA04m2L8C9D8Ob98VBRbAiTBEVghiGAgCAxp2wKcoHlDmBzKlZLi1zaNEHNJ0ihPcyZGm8yz/xim1JbaOVapAp88XoHL3/oH7543jd/BwkUiItBigT0JV4GGKYVvYQMRYgIDBM+6MkWqvJ/fto//LejX4bB648fzo/efDg5k7Lm+OTD+Zujd8Pg7OTd0fmbf54En87eeE/Al0bJQW9Qq/tvOHrV6zIBn3OGVk6BBPj6JkFiXyNfYUQsBhTmIj4cKLHyN5hh3+wZO6FpBDl6+TyIUEij1p2SBnLuk3RBgMmYslRtJ7ZEli0rdcvOrZJCaNRhiCFiQk5k+27wtYFQI5Pt5EKPTjBIeIoFoKwYKQQZFZoWkwVIYYJDTHO9AVg79DkmEZ3zjoMvOt5HV0ihYG9P01MaJZggtTD1cpaEMIxRr0KS9Z1nCRY9bx9cXzu+6kH1vP31WIyhYJSmAUO/54gLJ1fJg1CyACFDUGJQbYqUtFWnKlhWAiKaQrwFqUSE91U3MCW1Y0WEeUiZ3Eqm6iCR4b5ACZowmPYpmyjWi0jfgMEsU5CXS2sxJkGeZYgFCVwgtvQ5jCGZoEDgFIH/BC+f8vXYo2lKSUCQCDARLJejCOTctqHRkj9gj6Qw2ze1JAvNfVid03RdAAoBwym3KHhz9LqObLILEoEp5DyE6qA2zjBRSP08YXBU/jiUv1jORQGXEfXrcuWJ558S0oiuLlxN00zu0uFYIBZEKMEzxNxn3gKWgTmjQrIwz3lW41t16gXltmBzvF37JbC1uTZ7a7mFLgEkP5cJAPZcu06RZi0bSbM69KdUrZj9nne5X6vt+tp1Xvii97GmVlluEKHZgMdpmWaUiiLRUzsg80HunxIawmSQ4JGEuCyb27fGVHBKter9BmdQbePCBGp6mYSh98QbhaF3KbtaFIEkRFxQ1rmw1fLywaSkrQxnahTZQsSU1Pv+/ffVvPdxpM4y688wBUEFmARNsmmlvfraggnHEQJ0fDt0t+di2LVob5aSTUyo59yGjHKcRIYsWC5RuL/vQJ5nnWuq+azoUCK43IyHOMF5ajbV67HOYDhNYRbI3gUNKWeh/S2hcwLoeIwIxzMEBKVJWVwNrruQXLdmF+upQVTRivxm8BWmqMtWrNrkVmq8ME6pc4RDOTKln6uKKVnGwRwxVKkhjPoBEEp8LiCJIIsUPtYOvIuUq0swAPZUdxtCx+ggeAwjOi9VEhOTBpbYWuZj61QMvAGXZDPD2bw81Nk5JjVhze+1HEV5Bd1GZbaWbi0f1VmQhlN3geYX1eaE0TyDUSM354g5M1PqyIyQfXqdZJDzud2tMIYTZBcNYwecyQKXbQh3sWuB+i9VPTATPRsv2XRiZbAstdI5gUIgEqHIz7MJgxGyPhMFXmshw5ndwiJPq9mF2bSaAjwacAKzSP9bX5SUdKroMZKbRaJOKP1UbuS/e1X/nNaOPzfkUDonXxOH0nlzW7Dj0B2HPhSH1gmyzqK53ovVvsqc62vQAj9Zgp/gqMOp1sHRCSbTr4ehZW9vyM9WBdfXoKqijtHO1e3Ew0483IV42Ih55ak3mB1+Nfxr38HVLuGsy7fiUm6/uIWzZYDjqL9j2h3TPgTT2joBowgOoAB/BT900ZM6WJohAlOn3v5RcvSe7u8N+bG5Jtcr2a3KOwZ/NAy+EQvn5OvaVOv+3pCFdxy347jHw3ECp8hp+vBIOU71d8dxO477OjiOkgCK4Dc6CtQeF1PSfldzREBOYC5iyvBnFIHf6EhbKkaRNjOR1QEexijKE0wmd8FfzpsZcx/MM0qTgexEeQ0s+Uxm9HtLWQKObsx65fwLm/zK6ircb6y2X9OLu6TC25AI7dTc5ebQSY4tFxOPgxwd1xCPlRzvRUe9I1+bfNsODI+Bel2Hgy2I16q8gz5+i6bujE92VOykYpqhxyqD215/OF992PTv0jfviPKrIcp2heojIMsW9ekW5NUUr+tVq1s0tqPl+6Xlds3iY6Bltx5xR15fD3m1qtEeBXk5lWY78nqc5LXIBE1lIwFkEzdNFbgBCcyJJB3tXgCySZ4iIjiAnNMQq8c16kutVr45hTmfVoVZ7mcMU4bFQmIgogQK5CdophSLXzwGSUTTK/9gMvIzOFGviotHRnXTcS4YFHn6HyLMNNGVOZwnds7BMtDBMtThMtRhDYrgEMWQxya5QDyjc8RuOkmIzJyTdGqmCJEZZpTIeQEzyLCskoMUirCYljBnDJFwAVSFW06P7I6emNOPH98Fn4YnZ3JWdOLsXfn79Gg4lInjjx+Ozk+Cdyf/PHnXZeQ5SwJN7wGXf5wPvM5jBI4VENBASuQxNEZyoMZ9BAg/nb0rHgtuOWolI6oHcTlzu01QeMkJvvJ1t1xvKb2eHl5fgvQ0ROP1QpenHxEUcAQ5CniMksS8QqiePTb4uYAGMMsSHGp/CzyDc6Lew6k6nug/xWOvJ4Ay8PP5+en2r0/rK0eFzvr1ipJykMfek5rkrwnA5U8y250poMCh31qXs9CovW3HpyLb1221FPzcWmV7Y2Hrl2nrF+EulODRABMsGEzH3BeUJlx3POeLEb1yDcn5pWhmjJ14mPL4h2eOfLbc4SLbCZ+44dP27NXYD3kMWeYomtFWTLJmZYpe2mdr4SaNzzx+0ZJd9BnIJaqCuNnz7KWSNjvp1kK5GzI/44nERJFQt3RFgs5JmShhIihQ+bsEjsblL8yKnyiMafE7KatKePErndaA0ymp2k6nAqVlk+ms+JXNSxCGYCQPLmU6rX7VquUJQmVFXMhtgvm9IGHxW9A8jItELkV5kZiZqkruZBqwFACHPE+tDMjRs8NmzsvnzZyikZIk45ASK2PaqFmSgJVWr6atnNxKRpiFNKGMNzKbTUd5PYXIzEpeZZBEjRwLJWMYCmrnpFY/xjSxKlAXx1anYgQtiJhyga2cRqpwiVFl/Uaxhb6CNMo0nTTHnUYvGijWOX2BrtSbdquP6XSMx7SeI/dwVtrqEKFxnlkZct9sZeRpA1PUGmUGuUB2hojD2BpWhsl0YWUwO4WJaMyoyhtbOeKqnmQIJrIpKy8nDfrk6HcrGcODBjZ5DA8PnzsyX7xcznz2Fwfki4Mme/GYocjOyK2xcMoslC4xiRSydjoaNaqwmxQwtJPYmmeBkJ3kVvXy9EttvhTMTuUkhPZEi+YojNwqkjlZZsuc4N/tdJMFco5sWTC3BjaPaSMJU1zkGLMLRqnwLvfryvbipJxBhoiobYbVcpMu+O+JOpymlEy0CUhGuZgw4+CprOe7vdaa5P5R7laikVcvUW2dJYAfAnVWRsCH3v4Nai6701r3F6+XTYI5TLr4oIhQggQKtEujIKGFUqXlEK3BI+M2AehiIKETbe5kCm+wr3aq9SofUblIlacElZHQyWDezBg1MxLIRUInVt4Y4qSZxxe8mZUiztXp24JDYc6QlQVzEfebhUeUiqXMKWJEZVqOMdQ2qXxRX1ON1JQn68+ZEcoSuggyhmfrXs5LGJygiZpBA6ld9Wir8s3nr3G0VAe/VsP1/wQH3MIDzIIMsRQLSVvfg9dHp8HwX8Pg6Pj9mw81Dw8rcICZWAQZzlAAhdyMOc/ap4WbGXAs4YGEl6NIKBb6HGkX3gAPe1KCh6ivuoKIYAt1ngbfg9M3pyfBT5/+Hvz93dE/gtdHH4L3J2f/ONmXuFJe4OyiV1isLfmqKFkg0phPWE7ljInE0w6yoEJiHSkbYfK2MNgFDX8FT8FtomFBYIpDZS6BWOEGcsWtSCkdNYxSQ5hKgK7EeIdUQnJzzLTISCTCQRL1Oe1nDKlz1RNQz1VOIEvNdJXXjwY9/XHZW8+96ZDvwNrwpjM7Z1i4r27LidVObgS9o4lt9UPZYVrXzOotOKS8N1q44/uErsa1a70zdnbjuHMU+SCOIpUvm4S3mA6/RYygBKQ0yksD/QRzUZrnixgBVfqWFO5ql6fAZKXr1eGq+/o84+r/eYyA/mp5D+zsfKdjZ82BqmNvWcqdW07VWflRct6EwfT2+ylr79bNXMiPwQiLQF0pt3W4ggUjLOwraOjwx7f5UGq3CTUL7CVXeS4g22Hes6fcglu6hGmppYMteNeS34Nh8Oa/Pw3PruXff5ydqr8fz39u2ruVMphNZlrg/sdVB66ehNkq36P/eH36+D2PFp5G+xNKJ2qmBWIEJoOQplku0PvCE+nsQGsNSYgKL8i+cYPMBxEawzwR2j2pvpFtujTdor71MxHjKEJEe/Re5TLsyEAqJmk6a2u4DKRJtPV9bk1R8gV4/Zr7Tntv9cUbxDRFpcFG3XnfCmd+6xFT8/Fv7jLXOrNrBAZQt5YSU1xAdgde7WoCZ3d7ubu93N1eAqcHVSXfsdOgoYM9A86CMEbhNLBc8jZE4/GHIUgoneaZ4veIEqQilkDw5hSo4oVDflN+A25vcemLQ0hi+BlnhVNfnPkww0UqXeCsL8+NsrjJUx3Cme2fX36Yx1BgrorAKUwhbnH/W2kFO6BP7b14gCZyJAFMEjp3rzAnCgIIBsdjHAIDafbxRT2b48/eaRb12f44i9Wdef3ex0/np5/O+729vcMXvz71X1xe7x3++tR/fnl9cBFd/3rg/3B5vX8R7V/0/3Yx2v+f5//b7x29fn1yet44nLKaE1/m7R0c/vmiv3+9d/BU//nz4UX/4NeX/g+XVVq2Y9L/T2U8+/Wpf2AAfpAFXv5FJ17+cCG3CBf9/Q4r2m9wBptmOYG+l3CTtSxQqk12Vjm7da0osVvX7ntd21nl7KxydlY5tZydVc7OKme0s8oxyYe2yimXmNrO12nxIreU608Nv+XZQiDWzYb8vzSw3GSjEaXTSjFltqqm2AZbUWfcAL1WFstksUIWi6NaF82SqFZDtRDqRcMsf2rlU7KkWO+Kpa5c5dQCp9e22rKmVrRiMSvWMbOEmdWrWLiKNcssV2aVKhanck0ql6LaClQsPMV6Y5aZcnXRi0p9LamWELVyaPFSEqRZHspVQYs4swaUot9I/FLQ639KsW6kuUFEJbtLkV0X0aVkNgJZyeFC/BZStxS2CvOFaK0kaiFIVedrYrOUllpI1mRjKRK1JKwEYF3u1cVdXcrVhVsh04woM7xf4N/Iq1JMmfEroWRkkRZBRvJUAkfJmZp4KaSKpqCaDDGio5QYhaBQ8kGLhVIaFDKgfNvUYJe121NnKX2G8/Q/1RlNZ+hDVv1Pubv31DnK01/UUcdTZwJPn3u88tRS+6XPKp45a3j6LOIVZw9PnzW8tPpTtVacGzx9TvDkmcDTZwBP7/c9vb/36vt5ZcXouL6uRXXRMs03Mk3irchK4KjDWX/6Fx5kNNowiuTbfIQYQQJxkNHoPoNJ4ioMTz2c5LTsUB9TRyhJpd6/SYGaPQXeBZ/8tmwKVs6enL6iOSu8jmwmpAxFhFt9MkA0QwyqBQx4gxQSOEH69zjJERH+COs+VUnPYfeS0DzyCY2QX6/CEK0vpQDyQ45Vrplw+4sfMTxDTJLMDEdyzPNGd2GCQ6raKDEH53yglb2+6sEcijCuT777mypPJphc+Zgo5ayaHUaTxHS8RHwuKA9hMztjNKNMqGjdTZgYZoxeLdpqlvyrxCXyUyQYDnkD2f5kinx0Jes3RUbqKKrvYH2DOD0EiW+BWGquuP0YkihZmj53jTOYJ66plB0MhaZOlaunRAo1ZPtDnGCRwJHPclL/UtWkWnBZSQkGQ6QnPMEE+cq2zVUDQxOsHvrKwTUQ2STApQnbmVJ9I2Jv/Z5AGUsF2lhqhTtGFa5/WresqsxmNl/ob+57McGjgbHsKtf43Oiqa/k3cstwlyaPd2D+ujSib8GR6LrxWCHwpjUzu23cX3Zniza3kPfPFm4fkDu2WB7Rji3uyQ1nVzZqf19xz1zU4mCqMxNZtXVzPtm57h2DflVjWzeeVQx6U/ahsGVvtsw6EnYb3pHlTbuNsMBkHBgrmSelxUygW9A5L5tZo8z6bBU3wES7wyLjgCG1ocbZ7LlpIDg7+a+T1+f15hicr8S81eMv3hgmISVqht2UATPR1+ePqB9BnCjfTVe6n36CJjBc+GmeCHUG59xoB/w5ZVN5WNpgHte946web+qZ1Gbp9kTf4uw6XnN2tYVzjG3MaBqkKKVtscXb6BXIksAqueXodL31HsmyguU33QI2B7ZuArsMsbD9vRXD326jvo05bvXPe8/L+EYv36wa2pzy7hbr5RHtFmv1X1cmWeEv+J7ZpN05cGcyt+rr6g24c+07JvqqxrZuPLfIRKue5N8zE7V6Jd6R+fKIdmSu/utM5u0Ok++dzNu8I+/IfHlEOzJX/60nc866+OAwrnn0M2xE1PNsWUw92aeS/FHi8wyFeIxDoO83t3fhXL7+SWmkLx9B86XOqy/A66Wc9dTzIz0U3utwbEppFCSYO1/SdPJSML0DJwVqEoHr8bJsvssr2MqOJogIDxDJU8RaPQnV7IaOPwzBMvQGI1p+9ybBIVn05f98FvbNPWhfXXOr4VplxCJTZYZn/3Qcibs8YkuiwLhtCXKS8xwmQYJHDLJFIBnHhYnzGIF3x8Hp2cm7j0fHpQNsgDnIaJYnyt/AaAGgUihrZwT1J9Q4QSDCDIViK/0Islxjf/GqLr3q6afRHnhiZVePpKvDwArM4FEG0wCNsnEQU+rcv73TqDKwfU6BhCxpH/10+vfNBzjKxv0wjSTQT6d/D94fnWrdwMkSZ2Pzrq/sRr8L/SeUErQIRE7MM0btFss5TgUKzg0o2Hv9zxP/8OnhM//5DwcH+4VHrUr2bT7qymKy8tYw/PTmuHD5U33PscJNlVt3p9Wkjt4/3r356XVw/unD0U/vToZd8JOidBzpeBBOka++Azr6DYXi1h3TSWGtGnB6B3jVibdTTHCUp1mQczhxDqFwaG+0a+qBb55mlvAuagHjnISymNb9hTTls5D3ow5G6HNMIjrn7UI9jRJM9KB77zHBx3madViZZNfIJMgoTQL9Rtk1yGppZojTZKbU0FKGK0S3hlVQEXBDgWdbvfh0P23+4vVSTNBVysz75C9ej0BC5Uj6lE10Ds+zjDJhQYXPFEyZzg5VGlOdRCJWxmCoqmV82ChBaYJJP0U6ybIEEtG/Wnze7jV0qmxwY8pFMHYeAuSyIT/rBcB45JQUp0qWAQS2VyGr+vqc5iyssctA8ZH+NuaBWjnlyOgMsQQuXNcG3YctkRbEOFrJZMbJiOYsVW7bMap/M4qJMOP8AjxlHzboLdv56rn8ApQtfwfmIkho1ymFRbubt5oru5xRubUUiOhNwK25takd9yyduVGZN33CdX1FWlb6/ffWMbKpVVfINS5XwLKFtWHrPo81X/VD85cb1uxPqWcdK6+vWyzE5TmlOJzKk049YM8N/L90OdrISS72fQwpQeWa5g/2HFbPkJTIrJHAp7M3m0/wv9/s9a9r79/P4iI8TP+3bNLzLsG/d0OCwImbwBv0e0tOzJY8AVTD5jTU98gRVudrwvXaJn9LAaqGR5AIodBDlews4WSxLZ5T77d65npV3KtW+C5jQckDlzycyJ4ZzB8c/rn/tP+0f2DSKRVRPx/lROSyM51238WcBOhKYrf9XHZS+17sP5VDrVuTO56NxQuFxgvvCbhQiNS/6qi80MR5QSp3LVT1lhuUXSjv2L5k/Fc9Wb7IiaCAZc55+St69X+Ln3kmW7CL/v2VTPZ0s7VWKy3ORX2STKnaNF14l93WAzUja31FrWSZW1vmvyoO+u4BOag+X8HscDdlDzVloM3P+F/BD095lwmVUxRwgsdjee4RlDrXrHeya+WLNv0MVWvmCq2VPAKNhXYLbAx0lCM3UJ6gNphd11tHEWby7CjxLngM2bTDuZugeTDCBLJFzZfPeqFTDQVVj6QJmgNdl5q8Mc2JImd5sK0K4LQ6H28wcDfZWJvvJVeZ9ueURnhsYoTZrjKbWO12KiGcz7EIY+U6Okhp1P4kogAFKVyAGM4QGCFEgO6R2eHRXIAi3uWWKs8bPpXQm96ij9pfdP1yZgOj+Ye7zCnp5G78Rm9EFS0vAh4RVTheCnSiiru1Gd9RUUVFbdYNj4aIXDYPbhqyynUwiV9LiRugs80w8bGg0zZY3GtYKF4bdcx+d1PFtUjcMZtNHS27+D82gbTvrHfkU5FPu0HnY6GeFkPPbvJ6vUnnWlraAKntBn6PBqluw787QUarGdjjQYbTPOwWkCEirk+qytQlwcTJaR/Oj4f6ssQOn71c7JauVGW/+hEWHW596HiMCMczFEz/wls1DEdgSuic1ExoQIaIUAw3AbIUiCHX07u9rtzlqgx88bKFiCkpFCt73tt8hIchJP1s4UmYQm8zk4LBk13lguEpYo2v+2C/xVWTKoV5CIn3xJtGeKK8mqiq/Dgn6jGYx+B0ijj3nngZwgwKxA0ID2GGzG+YR8rBlSqaYFNUR7Dn3pMv3oiKkd9FpNMUT9wn+Y8pVg+6tDtjDqAVRi/GSVSsgptPBSrsLP7aCFvmeroma6KmUx0oT25sShu7FjvS4iZfAisFT4s5Hdh7PzzbN1GvcnM7MN4qBkrzOvAV8AZ8wY3Z6CDlbJBBBlMkKx7Ubexq14X2lWXbK59OoQQzGE7hBAXa206KiFirJDvVRUBVRJt8IIHC29TzNqxV7nqXdduGpBuYAayZjJYNe9f5gEKpKWkuiiAbDb1tcDt6229ktrbUs2cwDSyFbKvu9PTo/YPvZdo8zMi9TAbTfqRNBKqM29ChboLDFk3j48Ch2x3JDXF4txrHm+O87VDyGFDe8gxpHcatSjro5zpUeZMN/hKK23R1jwDFd/eu+E4x2q6geAQ4bX+Eug4nTcJdr6joUOlWiG5XWjwGRLc+VLxbnLTqLh4FTtpetd0AJ39cXWgGOZ9Hqz2un8fIwAHKQBib33WjmJzrl11q+hcAktLQQgFTtoWiw7ETrw1T9aVEhXFSb3Kd0cFKZzdDWYoLpWvohCiBAt760K09IpgqOcLET/AUgVoNG+CiJSZY0UQR12sSUy5qaYFYWktOkwkTcR/T7YzbsxAHBwfBiyBkWOAQJtpABSPefjh4bUALU/eiRIsY2RxTNz8bSNIxdsO89rugtFqy+bni2KXMOuiIUvGo3tHej/BZGuS38LTWXjtu+5y4irFaToyPgrHcB8YdY+0Ya0PGemjlQTsjth0THgEftpwR7pENrf50U0jcY+92QuLbERLbsHCbmurhWXh7LVWLkuoeuWzHZDsmM0zWctG347Mdn+34rHmU3OKKtp0L2+8PHp4J268PHoqLut5E3GP/dnvWb4fNt2Hk9vupR8DIrddTO0bZMcp9M0rrpeVjYJS2O8sdo+wY5U4YhQpEBIZJMEcjE2Vbh+t2ccgRmKMRgFmWGBMAbTxdBdgGlJkfW/sRWfJ+0GAKzRM6OnBtMmszsvxppKLCuzKrwMLOupyFRu1tOz4V2WXIYGfBz61VtjcWtn6Ztn4R7kKSlDDBgsF0zH1BacJ1x4sQyctDcn4pmtEBlZcKmYDKS/lsucNFthM+ccOn7dmrsV8EcV4qqoM6O8uwZmWKXtpna+EmDR0c2pld9BlUMbK7+uuwX2rUzCTUaFX0cP3TxLA3CR3I3iR0NHudKGFMXHv9uwRWEe71LxVsXv00se71hJVVqfDsZlpqwEX8e5MwQfB1alb80uHwNfarmPg6nVa/atUWIfJ1Qkc51791sHz1u4iYrxJF2HyVMLHzK17UQfQrdjfh2uv8r8PqWzkqvr6VUzRSEqCJuF9lTBs1mxj8NZI1weCrnNxK1sPz1zObTauA/WVKR7ivkkU8+HqOhZIyqH+Vk1r9MGH+y3QZ77/MMYH/qzTlAls5jVQRH7XK+o1iC30FaZRpOmmOO41eNFCsc/oCXQm5ill9TKdjPKb1HIJDqz5idYjQOM+sDLnRsDLytIEpao1SmfDYGSIOY2tYGSbThZXB7BQmojGjKm9s5YirepIhmMimrLycNOiTo9+tZAwPGtjkMTw8fO7IfPFyOfPZXxyQLw6a7MVjhiI7I7fGwimzULrEJFKk2ulo1KjCblLA0E5ia54FQnaSW9XLbT21+VIwO5WTENoTLZqjMHKrSOZkmS1zgn+3000WyDmyZcHcGtg8po0kTHGRo7aeYcwoFQ1fUHvF/llvHvV6U9mhwQyGMTqUC5QKI662uoKmxj+VFwuRmeWqtaJXX4Cn/BV22NUyGipXvivNF4/008vCRFF57S1ezBkXvzd/lrnupWkDMbK9lJI+upJTX/RbJTuYHvIgwjykM+SOuWZcqbY6ms/4bbuZz7jlA2xWGVX6yquV72d4dfwBYsUd/D2HyYLrePRVCG8Tpb6MyWdXuEQ4ZW1sWjxDBd5v6uQSoyRT6S/ezFSm6PEUco7IBLGjos0ijP48grMIolSKQeCF8VQyw1TH+Bdc1aDOn3P4OY994+g/Wi4pYIJI5DOUUoF8JLkC+RyxmVpOZM0onCpPuSpoIkFzhhIc+qaGDsShgsYHkAgcoVE+cXNAQe+5pBJIgAT3FfxEUQkKY4J/z5FkkFFCwynQH7cKwaC71jceVCXs6fnZ0euTQP37/mQr21M9bB2ivZXxi2Fb0Sd0GRDSSDKnoAASKmLEtn8H3Drg049vT85P/vtcCb5VQMdH50drgT4Nz9bjZ06mWATlW+cA8RAmcD2q5pCXp33lxxaTCIdQci6gY2B82mutAB0D4/L+wH/+9NnzzTHXPPq/qkcmyabyayVx6g7shz+fvHundVu906Pzn3s1o28FVyl1esdvhqfvjv5loI9Phm/PP54Gw5Ph8M3HD/WChcv8DiuQem0fhAkOQtri6FqBaHKTyM0YneEIRYAWDveUaAadHBx0MJIvHpnXXAE4rOCVoAxb/AX7YW/48fXbYHh+dnL03uDLD3s8HxkyUdJTZildRy2lNmllOhOLviKmXrOl774Ar8eRyDOlfejgg4FBwmk6hwwFhLqt8E8p53iUoBqsnH9UxCEAOYmUe8c0pUTKQlaG3MBoC77v4IO7BLB8ZJcn9S/eIKYpKh1XM6OmfVIqhZuaYJOmmWj1hJ3QiZ3Go6W8EQyneWZlzedz22G226038/b+hvf7vT2m1nV0zZDaolzLs/q1PLSxXInm65jOA0Gv9aRcy9VFFlvQnAXXKrCAyruW1Rug/b4hmEa7BTMzr9+76MtS/9ZhiWRhoImEBw2lvkU9Z6+BAbsF3f/eRqYlzseFemKZ3n7pXUWRozTl3uX+/jeq2l4xpwhGwTQfIe3MwjWf5zECFYTyc6Hjq4Vqt7zF5K5i4EFftjnQjaoBKl62cjsOj6EEQS43OWPqGuDHIZCfWKpXYzk2WU5HIpFLiyKThI98U9Md+PpotOBy6nF23Nl7B0MR5gGHJBrRq0D7inGN/Fj5guDF7uPQf/ri+bPNB+YMalDQ5dVfXgYvn/uqsD8h+aA10IGX4FHoH/YPf9DhDYr0s6eN9EEjfdhIP2uknzfSLxrpl430n2X6skUoVDplhW1fnUB8Fo1kDTpLnk86xT4v5muGAitsuS1XJVAR4LA8aW8dGmhDCeua6vXxKzR65C9Ix+bXEo4b1HAL6M1JaD3FbRNzErDw6KyDx5hXuMpXCpGHaAFJBFkE5vB2LuucC1W5cuQkLIU7X8oZlXe4vsp3bDVu7BLoD3CF/Udb43kYIyk0okBAPtUxx1rPryUwkMCKC7qKmBvq8qAwajwexrIt3lGNx5Hiq8BABEiu3aFycOQa0vDknQQHNTCgXyvrB8amnbWja2Vm05++aaBvKtf6SsRSzDmeqekv2mrT6OkTnTxy9n46ef3x/Yk//PT69clw2OFYxxHhWOAZCgSDISZrFFiYAwNX9+OWlRpQygDncaSeXmfFcTBkKNLmD0r7WzWyAdb22lUzJydv1yt5Tk7erlfynJy8/TQ804uLBlL/oj6qh/crJkKt6KX2M0pmas6SmdmzwDR6+dxTb91lJfLXRC9HSRKNuq9GRmsZcEGdEeW0OVUoKlW7hASwKLg5zpeVG17ZmDvaqWy5i/sDbQkTY0nHiyBCCRLuw+FQWbv8rAEVAx5bwBuMyjKXVAOTuxHm9fd+jUbw8xhf9ni8v1f0bv/fvP22WZfTXi0otSXnphjgi7Q9KjtfpCOa4FBHMB2XNkBxDSuFpkVANkHK76UKwkXyDgERO14+JMQ95/2e6YhekIpmb4yD4o7uvuhg231scWu2inLa1U5a06QX9UIF1eIVQo6ivMDsiNSMUVnB2l2sxquBtvaw2yK25ZjeM23VRz7osbCud6o56149KfudTrecx0HhDgdFwRQtVjjKGA5/rrbxEvT+zFNr7gpqTl8bPZc81sg6LJzOtnnY0JoQzmOb4KysQlFZ5t61Uz73rLR4WXjQWSnfrm86K273DLczKw/8Ut81i20r2QNOYmPBv/Ectryv2HAKra51e6a/YUs38T/mmsq2p9oPOJUbLduOGjYnhpa3pw84RS0PfXezdBezBLZ7Leqaw/Znog84hfWnmJtNQesD0w0noSk3Oz0W3bCtbdmy/cHgA07p0sn3xlPa+tTwodDc+tzsIdFce2a2IZrbHqrdE5qxUNE2An1xqiMHuJB8rgxp6mENCsOOhfbCSGR1YE5ZujmenVceGhEZI5MmJup5Gkr3cOACtj85zqBdlq4OKE2CEDGhj+IoEDDNEMNksuoc+g7UijSpV9dgbMU2R+3NvTUiEQ44Twayb9wygcmm+FG9cLyDO5Plk7Dj9Ns8HP9pJSa+e1W/rsuzCArkh9Cvz73nqsJ1FXWrlX21c+Q2b/0CPJaTsMvVyApubdVPPDS3tscM+KNz671oSHbcfV9zenfc3b5hf1jmXuF7fg1vW/V0UzR1qPVblhitI7oZ84H1DHjrFX5TOHdzdbfjSxt/tyszH5S/284b61Vkq0KidObh3Qp23/TejdY3pfBWXfCOyMGOyB8ZkYOtleltrLBKpf6gnLA6atMNN3SdNOAd6v2Wt3Q73r9vjHfj/U24etWtysNy9coQYRb37bjtthjkViv7ajF+h9y24nLtgbltVfC5HbfdCYPcamVfLca35rY8oojxIKMJDhflw+gVF4G6ANAF9HPa+4n96O1dEOC6C3z1ClwYVtOdu/D2wQXZwEq0M5lc2HRy4T0BFzalNLJYljZylqmlAUB0kXpbkmIaUIu8qLigmhpAg24uvMttKKLtsunBKKL7BdSr4pGyGZ33yMxWW3Deurt8hChv7DeXMG5Br1b+r5qtjXHZqm59OFw+ryHz5mYelkO2tkf5JQYfMLjtHSx8N5/+FQqYhyOA7kqZtey0UvVyJwy14vD7CDG6dCC+G5y0H1EeI06ax5Z1y+TDyI/7eVi/arJxFMghr3YwCcHw05tjPbNzyLs7kWx/GsqRyHFUe+57fQ1MnsxSefvLhwC9lQXD4I3qkVwrlmDKKutfCo9n685vI+UxNaJddpM8wyGmOQ9GWHAYpZgEOYcTpyg+qsGDEr70jXaX/jkldNmiesoPitelYRolmJReQGAUyWJab93TdwQmwRDPU9SNpkq8lBQchAludcVfQoEUEjjRjgDqsdcLnADl7KMEX4uirs+tlZ2rZivJVcqlkki0jWp1ZaIJqIPnxhoCiIi4HEk7XQwrqlAwgI5BUWrtAG9GA0W1K0lAAjXm/0ZTriTKSmFyhkJERLIAc4albASUVQuELK7lzM05ol3Y7K2RIcsrgO6Qfs0byLUE/Cd49pTvl2irUKuIouvxWvuzi6CAEZ1oP60DlI5QFKFILzGFn9Z1gNo/gJ8xOkKd4FGYMywWfucWzHhWFii77O74AGbpQLsjHcBcUOPONFh2lhP5MeXCL12hO76VrNgG5QZwd7rICZOcC8QK/7vrSV2hPbKee7erlI4K1xAPviFqszJXxxA9JvPX8sS44rPaTC19+sa1wDdXvG1KUS0qqcdEUW5L6B1F3ZiiHlpH56LAFV5SHgkBtlwD3z79Wc12M+69/U5800ywGYm26T0fDYnevi3ejq7uga7aFaqPhrLabdtun0Ka4q+TKdztd2NHqEuE2q6nfjyE2mqutaOQ+6CQVq39I6KQNhOjHYXcLoUIyFar5s4hA5CFMZ6hzr5lOyhZqwuYYngCshVBO1TL3hMv7KCPEWJhor1iEjRVw02CVy74VMwXCM7P/3U3yuUaoaNduNdduNdduFfL26ZkWLfefIOrFpETgpJAMDge47AAt0SagsBkApS/ZCbAmLI5ZJGKClaEzTMlN+D2vT3bd2uGZ1QQGIbYs4Pcyo8TyoXt47Z078q8fm/Pf3ftv772z1R0mH1Zvla7ko1cTgKQf5q+qu2Kzq5lXcfX8zLQjANwb+/wxa9P/ReX13uHvz71n19eH1xE178e+D9c7l9E+xf9v12M9v/n+f96l6DZGTkazuNciAR5K/rBrn0TGu7aT659X4XuI87xqSppCMWK+s5fnz73370Znp98+PF6+PH122E7qjCNMFHrrv6lbswjwlW0YODFkPDir5+PciJymcw0SflkovE8ln+eZYxeLTwV9JHRqTNMX9WwFqLAi8xf80f/qwUY8Myfz/rPVP9RYudy/UKec8SC4gmXEM6YiUc6/FPdZfEMQwAJwEQgBkMhV3mu6Xhz+nddpcqGYaTwTdDcxOkEHowi+bsWKKsmC7pfoX0tGzPX/qa8BjzusLVRs2w8dneYZQN5r7McIXXHFqHkjzSza2dunuJARYXDZKJ3p665e21sP8odqJy5X96/WTtN3a/9NVYzOkdMdaMnd9VppOM5OIRYVVK280uKT9lseKLAWwb9/wMAAP//UEsHCF4/Fq5+LgAAbm8BAFBLAwQUAAgACAAAAAAAAAAAAAAAAAAAAAAADQAAAGN1c3RvbS5wb2xpY3m0WG1z27jxf3+fYo//mxvJf5O2HCeXeEbtuE46TZNcPInzynY5ILEUEYEAD1hYVsrms3cAUo+RHFmXvhGB1f7w8NvFLhb/B6/fXb7/cHX++9UZvOKCLJAGKoWFQkiEiZASlCbIEAwWEnNCDkIBlQgvGTGuR3Be18AUb5UzBH2HZmIEESqYCCpB4QRqLUU+bUfleqKkZtwmcCmRWYRKc1FMwTiJdtPwhTZQOCmhcConoRWTgqbJT3dorNDqDKLTJ8+jnwL+7CcAgBgEP4OXqHTqFHNUaiO+IE8V0kSbccryHK1NazSFNhXyAALgaHMjagqDfloCQgeEFgjZFDgqDcYpEhV28EJIQtMtoV2GtjAcQiSFcvdRJ8f72qBtV54JxRPGuUkKVgk5/cvwGH79FWqj/TxJrqtqOIz8XNGynJmRDZYRCq5NlBz0mJR6Eiukpm0VhWji867DpOwnB9HtbJvCskwiP4OCSYsPMmaQ8RTvMXe0A03ewHZqCSvwwB/H0zZCdI0qKSQb2eHw6cnpyfPnC6mQmChW4YyoJfLudiHT72AHDsm4hym0LuumSnODbBceFxDoID+OSm/MwCP8PIxWvUrlaEmbB/xurrGVNKd24Oz7fudDCO7leAH54+j6vufBr4PhcLCLR4Wl7UDPmkt9dvWU0JQuS22JUm5i4xzCX+CXGcIxszBjDwqjK2Dwz3acf7gMcs0R8sVYexAT/CgcsppRGXSPnDVHmVBHGbPlA64VlBe7iq1Qo+i7TjJ2GRqFhDbVRYHKijtMSWv5oJu8maNgjgKPgjXUHhT0FhyEQOPNDV+jekqlVgcR3HoKetEbl4mPOVNJPY28TkCFKNQ0EPltWTJijGbt337fK2yYw2OEzZmKDqMxF6MRGt9yGcalUxR6ho3HaG10GNUoDCO0nYrNWY1dmzkuaAaVooNaMoycjQ6/RpmmLN7lBBPHtGJywgymOPIMpWRYUYg8Dc6OPBU1ebDdZKXZf+Ascn8LCSBoR4JupP0NtYh5Xm022bcpdXZe33+6uvx0lRz0eidPr4/jp7dN7+T6OD69bQY3vLkexC9um/4N798kf73J+v8+/U9ycH5x8eryKrp9IA70Bie/3ST9pjc4bj+/ndwkg+tn8YvbRd/P0/X/FQRPro/jQafwwgOePW87z17cJCdPT2+S/iPtE4Jl6i9nKd6TPxJaPZib3jlJopbYhtn2WrdAzlOUUxxNiEBaeUMa4MJgTtqIudX3MJ5B7/hLocaz+TU6KnWFRwcH0SF8jY6M1jTv+BA0a89C0qx/x8yR1KPVvsi+kWUsH7v6aEkymUy8RrDw8po4WhKKeaoWR9REN4m3JIu/3P7/LzuAltPFTdKTOh83PKOqbqQeNZ+1M4rJRijR2LL5bLVqppVs/P9Wsbqhe2rqad5YYtSUuWyCG/VnUy9nsflUXaDyISI0nkSHERuh8hHBYu6MoGk8E/gQkZPsWhK9jLeX9DiXzraho9aW/Jl9pEeOfYiWaaW5k5j66gB56rNWSlW9MaoHALQAaAFtmuvcj6r6x3ifH7tb2JoLer+gql7xmq4Pj9u+FFnNqrTUeow8dT4dppjVxaadvw26idUgRWaYmUILgwCDJdgem83qIskr7pX+dvn39N35ZXrx4dX51autkVLOlrPTPW9507URd0LiCHnajewTu0mtLbnPHfnmWHQ+WweIkBhyv+vFWDAfC7QBP1YoH2ttrcgk+ljFUZFgEriraqFG+7PV69VhnUn4xQSd4MOugFv5wwlP6XG/aVbl4TS20ezAL/Uguu1vP61c3j2aYn0/zUsmlH3wjnQ51/NkEualEn84DMl4f3pWk+7SWr5/1VvehGHK6io0lfaXv+51YYtzzAy9gHkG8X+dpBYl559PUbpe6CHle6euLblrrTqe1ygm3NCxMZjrOzTTxhfAFTZCWTIuPLw0pZ6kpJuWXF+8HELATrUzaZObaU1NSF2iqrUhpqjv0xnd0y+P9N22mkulHtmU+3zzvXDQKc1M21WDUo/aW8v+pnVKCjVeM25Lq3HqyFFVR4ewMM9kXZCtCySzJPVoRVYwIddldmrXRRVay0b+Mr+s55M1roh8bZysgzOt6Ruhz71B+O1F4edhxHU+RsMfd2TJKYXSZzGmeOodIS20mTDDvWweX9Kl+LJi1KsZPrwsejws8G3x9udCU6+3FpzEnSbF8lxE85Jr/udIW4r6WzNgL37bxBdN/CHU8v2mWRo7eIq1pSfcB/gN5cFimA+NH+llMwkDbVF8oCJZKUiiWwjV49pGrS0dkcTtpU8vNk0cG6w0YRPLJo6lsISq3d2mIXXO6IHxri4uT+O3rz9evfr9rPn4/uLNx41DBaqE5kIFR25b3De5sn6GQ4hKpuzsG7vMKXK+W7f+FqtRy3PhP09CwvEtNTJ6vEpozQwqWpo4PFj4ubpv92l/KW+/3edL+xm3n0LYMrrt73Q+lEVfYqe14IOUI2EIqptOQKfZlsNCQa4VMaHQ+Nq4S+XtI45u38vff4TL1y8H+x+JtWcGr9stIth29iphUx2W2Bo4ImZGSMNBoGk4aFmeLzYRPDwy7kSOQZ4Ssirlugo3lm3R4UIr1TLnyTDIwcOghe1PAFc2+cP5smy5jvsaHSThXYTllNgyAp9SDxLNLCW10St9Ke5wRWAFrQq0TyWrosKplX41/ztzps61lCzThpE2iUJaVhXF1HtwJ8qZYmZKeozKLokTg2FTmVDLeK58ZklytTUr/zcAAP//UEsHCEx0fdwXCAAAHRoAAFBLAQIUABQACAAIAAAAAABePxaufi4AAG5vAQAOAAAAAAAAAAAAAAAAAAAAAABkZWZhdWx0LnBvbGljeVBLAQIUABQACAAIAAAAAABMdH3cFwgAAB0aAAANAAAAAAAAAAAAAAAAALouAABjdXN0b20ucG9saWN5UEsFBgAAAAACAAIAdwAAAAw3AAAAAA==", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/zip" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:14 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Get-the-latest-Cloud-Workload-Security-policy-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-the-latest-Cloud-Workload-Security-policy-returns-OK-response.frozen index c889c00f9..70ab598aa 100644 --- a/tests/scenarios/cassettes/v2/cloud_workload_security/Get-the-latest-Cloud-Workload-Security-policy-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-the-latest-Cloud-Workload-Security-policy-returns-OK-response.frozen @@ -1 +1 @@ -2022-05-12T09:51:26.237Z \ No newline at end of file +2024-03-08T14:19:15.311Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Get-the-latest-Cloud-Workload-Security-policy-returns-OK-response.json b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-the-latest-Cloud-Workload-Security-policy-returns-OK-response.json index 9f5d46eb2..4118f234f 100644 --- a/tests/scenarios/cassettes/v2/cloud_workload_security/Get-the-latest-Cloud-Workload-Security-policy-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Get-the-latest-Cloud-Workload-Security-policy-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/yaml, application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/security/cloud_workload/policy/download"}, "response": {"body": {"string": "# IMPORTANT: Edits to this file will not be reflected in the Datadog App and will be overwritten with new policy file downloads. Please modify rules in the Datadog App for full functionality.\nversion: '1652349086649'\nrules:\n- id: apparmor_modified_tty\n version: a7f3b5c2\n description: AppArmor Profile Modified\n expression: exec.file.name in [\"aa-disable\", \"aa-complain\", \"aa-audit\"] && exec.tty_name\n !=\"\"\n- id: aws_metadata_service\n version: 4601e52e\n description: EC2 Instance Metadata Service Accessed via Network Utility\n expression: exec.file.path in [\"/usr/bin/wget\", \"/usr/bin/curl\"] && exec.args in\n [~\"*169.254.169.254*\"]\n- id: common_net_intrusion_util\n version: c7198131\n description: Nmap Execution Detected\n expression: exec.file.path == \"/usr/bin/nmap\"\n- id: compiler_in_container\n version: 441a7e85\n description: Compiler Executed in Container\n expression: (exec.file.name in [\"javac\", \"clang\", \"gcc\",\"bcc\"] || (exec.file.name\n == \"go\" && exec.args in [~\"*build*\", ~\"*run*\"])) && container.id !=\"\" && process.ancestors.file.path\n != \"/usr/bin/cilium-agent\"\n- id: credential_modified_chmod\n version: 7e14d921\n description: Either /etc/shadow/ or /etc/gshadow was modified by a non-standard\n tool\n expression: \"(\\n (chmod.file.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ])\\n\\\n \\ && process.file.path not in [ \\\"/sbin/vipw\\\", \\\"/usr/sbin/vipw\\\", \\\"/sbin/vigr\\\"\\\n , \\\"/usr/sbin/vigr\\\" ]\\n && process.ancestors.file.path not in [\\\"/usr/bin/apt\\\"\\\n , \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\"\\\n , \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n) && chmod.mode != chmod.file.mode\"\n- id: credential_modified_chown\n version: 3731e0d5\n description: Either /etc/shadow/ or /etc/gshadow was modified by a non-standard\n tool\n expression: \"(\\n (chown.file.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ])\\n\\\n \\ && process.file.path not in [ \\\"/sbin/vipw\\\", \\\"/usr/sbin/vipw\\\", \\\"/sbin/vigr\\\"\\\n , \\\"/usr/sbin/vigr\\\" ]\\n && process.ancestors.file.path not in [\\\"/usr/bin/apt\\\"\\\n , \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\"\\\n , \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n) && (chown.uid != chown.file.uid\\\n \\ || chown.gid != chown.file.gid)\"\n- id: credential_modified_link\n version: 7594ec54\n description: Either /etc/shadow/ or /etc/gshadow was modified by a non-standard\n tool\n expression: \"(\\n (link.file.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ]\\n \\\n \\ || link.file.destination.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ])\\n\\\n \\ && process.file.path not in [ \\\"/sbin/vipw\\\", \\\"/usr/sbin/vipw\\\", \\\"/sbin/vigr\\\"\\\n , \\\"/usr/sbin/vigr\\\" ]\\n && process.ancestors.file.path not in [\\\"/usr/bin/apt\\\"\\\n , \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\"\\\n , \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"\n- id: credential_modified_open\n version: 2d65e37f\n description: Either /etc/shadow/ or /etc/gshadow was modified by a non-standard\n tool\n expression: \"(\\n open.flags & ((O_CREAT|O_RDWR|O_WRONLY|O_TRUNC)) > 0 &&\\n \\\n \\ (open.file.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ])\\n && process.file.path\\\n \\ not in [ \\\"/sbin/vipw\\\", \\\"/usr/sbin/vipw\\\", \\\"/sbin/vigr\\\", \\\"/usr/sbin/vigr\\\"\\\n \\ ]\\n && process.ancestors.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\"\\\n , \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"\\\n /usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"\n- id: credential_modified_rename\n version: 8bb8242b\n description: Either /etc/shadow/ or /etc/gshadow was modified by a non-standard\n tool\n expression: \"(\\n (rename.file.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ]\\n\\\n \\ || rename.file.destination.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ])\\n\\\n \\ && process.file.path not in [ \\\"/sbin/vipw\\\", \\\"/usr/sbin/vipw\\\", \\\"/sbin/vigr\\\"\\\n , \\\"/usr/sbin/vigr\\\" ]\\n && process.ancestors.file.path not in [\\\"/usr/bin/apt\\\"\\\n , \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\"\\\n , \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"\n- id: credential_modified_unlink\n version: 5af577d\n description: Either /etc/shadow/ or /etc/gshadow was modified by a non-standard\n tool\n expression: \"(\\n (unlink.file.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ])\\n\\\n \\ && process.file.path not in [ \\\"/sbin/vipw\\\", \\\"/usr/sbin/vipw\\\", \\\"/sbin/vigr\\\"\\\n , \\\"/usr/sbin/vigr\\\" ]\\n && process.ancestors.file.path not in [\\\"/usr/bin/apt\\\"\\\n , \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\"\\\n , \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"\n- id: credential_modified_utimes\n version: 1c101338\n description: Either /etc/shadow/ or /etc/gshadow was modified by a non-standard\n tool\n expression: \"(\\n (utimes.file.path in [ \\\"/etc/shadow\\\", \\\"/etc/gshadow\\\" ])\\n\\\n \\ && process.file.path not in [ \\\"/sbin/vipw\\\", \\\"/usr/sbin/vipw\\\", \\\"/sbin/vigr\\\"\\\n , \\\"/usr/sbin/vigr\\\" ]\\n && process.ancestors.file.path not in [\\\"/usr/bin/apt\\\"\\\n , \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\"\\\n , \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"\n- id: cron_at_job_creation_chmod\n version: 13512ebc\n description: Cron AT Job Creation\n expression: \"(\\n (chmod.file.path in [ ~\\\"/var/spool/cron/*\\\" ])\\n && process.file.path\\\n \\ not in [ \\\"/usr/bin/at\\\", \\\"/usr/bin/crontab\\\" ]\\n) && chmod.mode != chmod.file.mode\"\n- id: cron_at_job_creation_chown\n version: ee7b306c\n description: Cron AT Job Creation\n expression: \"(\\n (chown.file.path in [ ~\\\"/var/spool/cron/*\\\" ])\\n && process.file.path\\\n \\ not in [ \\\"/usr/bin/at\\\", \\\"/usr/bin/crontab\\\" ]\\n) && (chown.uid != chown.file.uid\\\n \\ || chown.gid != chown.file.gid)\"\n- id: cron_at_job_creation_link\n version: b83e03f6\n description: Cron AT Job Creation\n expression: \"(\\n (link.file.path in [ ~\\\"/var/spool/cron/*\\\" ]\\n || link.file.destination.path\\\n \\ in [ ~\\\"/var/spool/cron/*\\\" ])\\n && process.file.path not in [ \\\"/usr/bin/at\\\"\\\n , \\\"/usr/bin/crontab\\\" ]\\n)\"\n- id: cron_at_job_creation_open\n version: 561ad06\n description: Cron AT Job Creation\n expression: \"(\\n open.flags & (O_CREAT|O_RDWR|O_WRONLY) > 0 &&\\n (open.file.path\\\n \\ in [ ~\\\"/var/spool/cron/*\\\" ])\\n && process.file.path not in [ \\\"/usr/bin/at\\\"\\\n , \\\"/usr/bin/crontab\\\" ]\\n)\"\n- id: cron_at_job_creation_rename\n version: 59b739d8\n description: Cron AT Job Creation\n expression: \"(\\n (rename.file.path in [ ~\\\"/var/spool/cron/*\\\" ]\\n || rename.file.destination.path\\\n \\ in [ ~\\\"/var/spool/cron/*\\\" ])\\n && process.file.path not in [ \\\"/usr/bin/at\\\"\\\n , \\\"/usr/bin/crontab\\\" ]\\n)\"\n- id: cron_at_job_creation_unlink\n version: 82b6d187\n description: Cron AT Job Creation\n expression: \"(\\n (unlink.file.path in [ ~\\\"/var/spool/cron/*\\\" ])\\n && process.file.path\\\n \\ not in [ \\\"/usr/bin/at\\\", \\\"/usr/bin/crontab\\\" ]\\n)\"\n- id: cron_at_job_creation_utimes\n version: d460ba68\n description: Cron AT Job Creation\n expression: \"(\\n (utimes.file.path in [ ~\\\"/var/spool/cron/*\\\" ])\\n && process.file.path\\\n \\ not in [ \\\"/usr/bin/at\\\", \\\"/usr/bin/crontab\\\" ]\\n)\"\n- id: database_shell_execution\n version: 3508c713\n description: A database application spawned a shell, shell utility, or HTTP utility\n expression: \"(exec.file.path in [ \\\"/bin/dash\\\", \\\"/usr/bin/dash\\\",\\n \\\"/bin/sh\\\"\\\n , \\\"/bin/static-sh\\\", \\\"/usr/bin/sh\\\",\\n \\\"/usr/bin/bash\\\",\\n \\\"/bin/bash-static\\\"\\\n ,\\n \\\"/usr/bin/zsh\\\",\\n \\\"/usr/bin/ash\\\",\\n \\\"/usr/bin/csh\\\",\\n \\\"/usr/bin/ksh\\\"\\\n ,\\n \\\"/usr/bin/tcsh\\\",\\n \\\"/usr/lib/initramfs-tools/bin/busybox\\\",\\n \\\"/bin/busybox\\\"\\\n ,\\n \\\"/usr/bin/fish\\\",\\n \\\"/bin/ksh93\\\",\\n \\\"/bin/rksh\\\", \\\"/bin/rksh93\\\",\\n\\\n \\ \\\"/bin/lksh\\\",\\n \\\"/bin/mksh\\\", \\\"/bin/mksh-static\\\",\\n \\\"/usr/bin/csharp\\\"\\\n ,\\n \\\"/bin/posh\\\",\\n \\\"/usr/bin/rc\\\",\\n \\\"/bin/sash\\\",\\n \\\"/usr/bin/yash\\\"\\\n ,\\n \\\"/bin/zsh5\\\", \\\"/bin/zsh5-static\\\" ] ||\\n exec.file.path in [\\\"/usr/bin/wget\\\"\\\n , \\\"/usr/bin/curl\\\"] ||\\n exec.file.path in [\\\"/bin/cat\\\",\\\"/bin/chgrp\\\",\\\"/bin/chmod\\\"\\\n ,\\\"/bin/chown\\\",\\\"/bin/cp\\\",\\\"/bin/date\\\",\\\"/bin/dd\\\",\\\"/bin/df\\\",\\\"/bin/dir\\\"\\\n ,\\\"/bin/echo\\\",\\\"/bin/ln\\\",\\\"/bin/ls\\\",\\\"/bin/mkdir\\\",\\\"/bin/mknod\\\",\\\"/bin/mktemp\\\"\\\n ,\\\"/bin/mv\\\",\\\"/bin/pwd\\\",\\\"/bin/readlink\\\",\\\"/bin/rm\\\",\\\"/bin/rmdir\\\",\\\"/bin/sleep\\\"\\\n ,\\\"/bin/stty\\\",\\\"/bin/sync\\\",\\\"/bin/touch\\\",\\\"/bin/uname\\\",\\\"/bin/vdir\\\",\\\"/usr/bin/arch\\\"\\\n ,\\\"/usr/bin/b2sum\\\",\\\"/usr/bin/base32\\\",\\\"/usr/bin/base64\\\",\\\"/usr/bin/basename\\\"\\\n ,\\\"/usr/bin/chcon\\\",\\\"/usr/bin/cksum\\\",\\\"/usr/bin/comm\\\",\\\"/usr/bin/csplit\\\",\\\"\\\n /usr/bin/cut\\\",\\\"/usr/bin/dircolors\\\",\\\"/usr/bin/dirname\\\",\\\"/usr/bin/du\\\",\\\"\\\n /usr/bin/env\\\",\\\"/usr/bin/expand\\\",\\\"/usr/bin/expr\\\",\\\"/usr/bin/factor\\\",\\\"/usr/bin/fmt\\\"\\\n ,\\\"/usr/bin/fold\\\",\\\"/usr/bin/groups\\\",\\\"/usr/bin/head\\\",\\\"/usr/bin/hostid\\\",\\\"\\\n /usr/bin/id\\\",\\\"/usr/bin/install\\\",\\\"/usr/bin/join\\\",\\\"/usr/bin/link\\\",\\\"/usr/bin/logname\\\"\\\n ,\\\"/usr/bin/md5sum\\\",\\\"/usr/bin/md5sum.textutils\\\",\\\"/usr/bin/mkfifo\\\",\\\"/usr/bin/nice\\\"\\\n ,\\\"/usr/bin/nl\\\",\\\"/usr/bin/nohup\\\",\\\"/usr/bin/nproc\\\",\\\"/usr/bin/numfmt\\\",\\\"\\\n /usr/bin/od\\\",\\\"/usr/bin/paste\\\",\\\"/usr/bin/pathchk\\\",\\\"/usr/bin/pinky\\\",\\\"/usr/bin/pr\\\"\\\n ,\\\"/usr/bin/printenv\\\",\\\"/usr/bin/printf\\\",\\\"/usr/bin/ptx\\\",\\\"/usr/bin/realpath\\\"\\\n ,\\\"/usr/bin/runcon\\\",\\\"/usr/bin/seq\\\",\\\"/usr/bin/sha1sum\\\",\\\"/usr/bin/sha224sum\\\"\\\n ,\\\"/usr/bin/sha256sum\\\",\\\"/usr/bin/sha384sum\\\",\\\"/usr/bin/sha512sum\\\",\\\"/usr/bin/shred\\\"\\\n ,\\\"/usr/bin/shuf\\\",\\\"/usr/bin/sort\\\",\\\"/usr/bin/split\\\",\\\"/usr/bin/stat\\\",\\\"/usr/bin/stdbuf\\\"\\\n ,\\\"/usr/bin/sum\\\",\\\"/usr/bin/tac\\\",\\\"/usr/bin/tail\\\",\\\"/usr/bin/tee\\\",\\\"/usr/bin/test\\\"\\\n ,\\\"/usr/bin/timeout\\\",\\\"/usr/bin/tr\\\",\\\"/usr/bin/truncate\\\",\\\"/usr/bin/tsort\\\"\\\n ,\\\"/usr/bin/tty\\\",\\\"/usr/bin/unexpand\\\",\\\"/usr/bin/uniq\\\",\\\"/usr/bin/unlink\\\"\\\n ,\\\"/usr/bin/users\\\",\\\"/usr/bin/wc\\\",\\\"/usr/bin/who\\\",\\\"/usr/bin/whoami\\\",\\\"/usr/sbin/chroot\\\"\\\n ]) &&\\nprocess.ancestors.file.name in [\\\"mysqld\\\", \\\"mongod\\\", \\\"postgres\\\"] &&\\n\\\n !(process.ancestors.file.name == \\\"initdb\\\" &&\\nexec.args == ~\\\"*locale -a*\\\")\"\n- id: dirty_pipe_attempt\n version: 8814807c\n description: Potential Dirty pipe exploitation attempt\n expression: (splice.pipe_entry_flag & PIPE_BUF_FLAG_CAN_MERGE) != 0 && (splice.pipe_exit_flag\n & PIPE_BUF_FLAG_CAN_MERGE) == 0\n- id: dirty_pipe_exploitation\n version: 9bcacfe3\n description: Potential Dirty pipe exploitation\n expression: (splice.pipe_exit_flag & PIPE_BUF_FLAG_CAN_MERGE) > 0\n- id: example_agent_rule\n version: 28ba1078\n description: An example agent rule generated in terraform\n expression: exec.file.name == \"java\"\n- id: java_shell_execution\n version: 24c2eb7c\n description: Java process spawned shell/utility\n expression: \"(exec.file.path in [ \\\"/bin/dash\\\", \\\"/usr/bin/dash\\\",\\n \\\"/bin/sh\\\"\\\n , \\\"/bin/static-sh\\\", \\\"/usr/bin/sh\\\",\\n \\\"/usr/bin/bash\\\",\\n \\\"/bin/bash-static\\\"\\\n ,\\n \\\"/usr/bin/zsh\\\",\\n \\\"/usr/bin/ash\\\",\\n \\\"/usr/bin/csh\\\",\\n \\\"/usr/bin/ksh\\\"\\\n ,\\n \\\"/usr/bin/tcsh\\\",\\n \\\"/usr/lib/initramfs-tools/bin/busybox\\\",\\n \\\"/bin/busybox\\\"\\\n ,\\n \\\"/usr/bin/fish\\\",\\n \\\"/bin/ksh93\\\",\\n \\\"/bin/rksh\\\", \\\"/bin/rksh93\\\",\\n\\\n \\ \\\"/bin/lksh\\\",\\n \\\"/bin/mksh\\\", \\\"/bin/mksh-static\\\",\\n \\\"/usr/bin/csharp\\\"\\\n ,\\n \\\"/bin/posh\\\",\\n \\\"/usr/bin/rc\\\",\\n \\\"/bin/sash\\\",\\n \\\"/usr/bin/yash\\\"\\\n ,\\n \\\"/bin/zsh5\\\", \\\"/bin/zsh5-static\\\" ] ||\\n exec.file.path in [\\\"/usr/bin/wget\\\"\\\n , \\\"/usr/bin/curl\\\"] ||\\n exec.file.path in [\\\"/bin/cat\\\",\\\"/bin/chgrp\\\",\\\"/bin/chmod\\\"\\\n ,\\\"/bin/chown\\\",\\\"/bin/cp\\\",\\\"/bin/date\\\",\\\"/bin/dd\\\",\\\"/bin/df\\\",\\\"/bin/dir\\\"\\\n ,\\\"/bin/echo\\\",\\\"/bin/ln\\\",\\\"/bin/ls\\\",\\\"/bin/mkdir\\\",\\\"/bin/mknod\\\",\\\"/bin/mktemp\\\"\\\n ,\\\"/bin/mv\\\",\\\"/bin/pwd\\\",\\\"/bin/readlink\\\",\\\"/bin/rm\\\",\\\"/bin/rmdir\\\",\\\"/bin/sleep\\\"\\\n ,\\\"/bin/stty\\\",\\\"/bin/sync\\\",\\\"/bin/touch\\\",\\\"/bin/uname\\\",\\\"/bin/vdir\\\",\\\"/usr/bin/arch\\\"\\\n ,\\\"/usr/bin/b2sum\\\",\\\"/usr/bin/base32\\\",\\\"/usr/bin/base64\\\",\\\"/usr/bin/basename\\\"\\\n ,\\\"/usr/bin/chcon\\\",\\\"/usr/bin/cksum\\\",\\\"/usr/bin/comm\\\",\\\"/usr/bin/csplit\\\",\\\"\\\n /usr/bin/cut\\\",\\\"/usr/bin/dircolors\\\",\\\"/usr/bin/dirname\\\",\\\"/usr/bin/du\\\",\\\"\\\n /usr/bin/env\\\",\\\"/usr/bin/expand\\\",\\\"/usr/bin/expr\\\",\\\"/usr/bin/factor\\\",\\\"/usr/bin/fmt\\\"\\\n ,\\\"/usr/bin/fold\\\",\\\"/usr/bin/groups\\\",\\\"/usr/bin/head\\\",\\\"/usr/bin/hostid\\\",\\\"\\\n /usr/bin/id\\\",\\\"/usr/bin/install\\\",\\\"/usr/bin/join\\\",\\\"/usr/bin/link\\\",\\\"/usr/bin/logname\\\"\\\n ,\\\"/usr/bin/md5sum\\\",\\\"/usr/bin/md5sum.textutils\\\",\\\"/usr/bin/mkfifo\\\",\\\"/usr/bin/nice\\\"\\\n ,\\\"/usr/bin/nl\\\",\\\"/usr/bin/nohup\\\",\\\"/usr/bin/nproc\\\",\\\"/usr/bin/numfmt\\\",\\\"\\\n /usr/bin/od\\\",\\\"/usr/bin/paste\\\",\\\"/usr/bin/pathchk\\\",\\\"/usr/bin/pinky\\\",\\\"/usr/bin/pr\\\"\\\n ,\\\"/usr/bin/printenv\\\",\\\"/usr/bin/printf\\\",\\\"/usr/bin/ptx\\\",\\\"/usr/bin/realpath\\\"\\\n ,\\\"/usr/bin/runcon\\\",\\\"/usr/bin/seq\\\",\\\"/usr/bin/sha1sum\\\",\\\"/usr/bin/sha224sum\\\"\\\n ,\\\"/usr/bin/sha256sum\\\",\\\"/usr/bin/sha384sum\\\",\\\"/usr/bin/sha512sum\\\",\\\"/usr/bin/shred\\\"\\\n ,\\\"/usr/bin/shuf\\\",\\\"/usr/bin/sort\\\",\\\"/usr/bin/split\\\",\\\"/usr/bin/stat\\\",\\\"/usr/bin/stdbuf\\\"\\\n ,\\\"/usr/bin/sum\\\",\\\"/usr/bin/tac\\\",\\\"/usr/bin/tail\\\",\\\"/usr/bin/tee\\\",\\\"/usr/bin/test\\\"\\\n ,\\\"/usr/bin/timeout\\\",\\\"/usr/bin/tr\\\",\\\"/usr/bin/truncate\\\",\\\"/usr/bin/tsort\\\"\\\n ,\\\"/usr/bin/tty\\\",\\\"/usr/bin/unexpand\\\",\\\"/usr/bin/uniq\\\",\\\"/usr/bin/unlink\\\"\\\n ,\\\"/usr/bin/users\\\",\\\"/usr/bin/wc\\\",\\\"/usr/bin/who\\\",\\\"/usr/bin/whoami\\\",\\\"/usr/sbin/chroot\\\"\\\n ])\\n&& process.ancestors.file.name == \\\"java\\\"\"\n- id: kernel_module_chmod\n version: 82c61c82\n description: A kernel module was added to /lib/modules/\n expression: \"(\\n (chmod.file.path in [ ~\\\"/lib/modules/*\\\", ~\\\"/usr/lib/modules/*\\\"\\\n \\ ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\"\\\n , \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"\\\n /usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n && process.ancestors.file.path\\\n \\ not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"\\\n /usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"\\\n ] && process.ancestors.file.path != \\\"/usr/bin/kmod\\\"\\n) && chmod.mode != chmod.file.mode\"\n- id: kernel_module_chown\n version: ca2cf124\n description: A kernel module was added to /lib/modules/\n expression: \"(\\n (chown.file.path in [ ~\\\"/lib/modules/*\\\", ~\\\"/usr/lib/modules/*\\\"\\\n \\ ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\"\\\n , \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"\\\n /usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n && process.ancestors.file.path\\\n \\ not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"\\\n /usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"\\\n ] && process.ancestors.file.path != \\\"/usr/bin/kmod\\\"\\n) && (chown.uid != chown.file.uid\\\n \\ || chown.gid != chown.file.gid)\"\n- id: kernel_module_link\n version: a18ca197\n description: A kernel module was added to /lib/modules/\n expression: \"(\\n (link.file.path in [ ~\\\"/lib/modules/*\\\", ~\\\"/usr/lib/modules/*\\\"\\\n \\ ]\\n || link.file.destination.path in [ ~\\\"/lib/modules/*\\\", ~\\\"/usr/lib/modules/*\\\"\\\n \\ ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\"\\\n , \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"\\\n /usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n && process.ancestors.file.path\\\n \\ not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"\\\n /usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"\\\n ] && process.ancestors.file.path != \\\"/usr/bin/kmod\\\"\\n)\"\n- id: kernel_module_load\n version: 904592b4\n description: A kernel module was loaded\n expression: load_module.name != \"\"\n- id: kernel_module_load_container\n version: 139b666a\n description: A container loaded a new kernel module\n expression: load_module.name != \"\" && container.id !=\"\"\n- id: kernel_module_load_from_memory\n version: 78122acd\n description: A kernel module was loaded from memory\n expression: load_module.loaded_from_memory == true\n- id: kernel_module_load_from_memory_container\n version: a277c753\n description: A kernel module was loaded from memory inside a container\n expression: load_module.loaded_from_memory == true && container.id !=\"\"\n- id: kernel_module_open\n version: 55f9569\n description: A kernel module was added to /lib/modules/\n expression: \"(\\n open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 &&\\n (open.file.path\\\n \\ in [ ~\\\"/lib/modules/*\\\", ~\\\"/usr/lib/modules/*\\\" ])\\n && process.file.path\\\n \\ not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"\\\n /usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"\\\n ]\\n && process.ancestors.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\"\\\n , \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"\\\n /usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"] && process.ancestors.file.path\\\n \\ != \\\"/usr/bin/kmod\\\"\\n)\"\n- id: kernel_module_rename\n version: 9d8cb7d8\n description: A kernel module was added to /lib/modules/\n expression: \"(\\n (rename.file.path in [ ~\\\"/lib/modules/*\\\", ~\\\"/usr/lib/modules/*\\\"\\\n \\ ]\\n || rename.file.destination.path in [ ~\\\"/lib/modules/*\\\", ~\\\"/usr/lib/modules/*\\\"\\\n \\ ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\"\\\n , \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"\\\n /usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n && process.ancestors.file.path\\\n \\ not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"\\\n /usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"\\\n ] && process.ancestors.file.path != \\\"/usr/bin/kmod\\\"\\n)\"\n- id: kernel_module_unlink\n version: 652391be\n description: A kernel module was added to /lib/modules/\n expression: \"(\\n (unlink.file.path in [ ~\\\"/lib/modules/*\\\", ~\\\"/usr/lib/modules/*\\\"\\\n \\ ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\"\\\n , \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"\\\n /usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n && process.ancestors.file.path\\\n \\ not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"\\\n /usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"\\\n ] && process.ancestors.file.path != \\\"/usr/bin/kmod\\\"\\n)\"\n- id: kernel_module_utimes\n version: 405d45e7\n description: A kernel module was added to /lib/modules/\n expression: \"(\\n (utimes.file.path in [ ~\\\"/lib/modules/*\\\", ~\\\"/usr/lib/modules/*\\\"\\\n \\ ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\"\\\n , \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"\\\n /usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n && process.ancestors.file.path\\\n \\ not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"\\\n /usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"\\\n ] && process.ancestors.file.path != \\\"/usr/bin/kmod\\\"\\n)\"\n- id: net_util\n version: fc362090\n description: A network utility was executed from a suspicious location\n expression: \"(exec.file.path in [\\\"/usr/bin/socat\\\", \\\"/usr/bin/dig\\\", \\\"/usr/bin/nslookup\\\"\\\n , \\\"/usr/bin/netcat\\\", \\\"/usr/bin/nc\\\"] ||\\n exec.file.path in [\\\"/usr/bin/wget\\\"\\\n , \\\"/usr/bin/curl\\\"]) &&\\ncontainer.id == \\\"\\\" && (exec.args not in [ ~\\\"*localhost*\\\"\\\n , ~\\\"*127.0.0.1*\\\", ~\\\"*motd.ubuntu.com*\\\" ] || process.ancestors.comm != \\\"50-motd-news\\\"\\\n ) && process.ancestors.file.path in [ ~\\\"/tmp/**\\\", ~\\\"/var/tmp/**\\\", ~\\\"/home/**\\\"\\\n , ~\\\"/run/user/**\\\" ]\"\n- id: net_util_in_container\n version: 69e03ac1\n description: A network utility was executed from a suspicious location in a container\n expression: \"(exec.file.path in [\\\"/usr/bin/socat\\\", \\\"/usr/bin/dig\\\", \\\"/usr/bin/nslookup\\\"\\\n , \\\"/usr/bin/netcat\\\", \\\"/usr/bin/nc\\\"] ||\\n exec.file.path in [\\\"/usr/bin/wget\\\"\\\n , \\\"/usr/bin/curl\\\"]) &&\\ncontainer.id != \\\"\\\" && (exec.args not in [ ~\\\"*localhost*\\\"\\\n , ~\\\"*127.0.0.1*\\\", ~\\\"*motd.ubuntu.com*\\\" ] || process.ancestors.comm != \\\"50-motd-news\\\"\\\n ) && process.ancestors.file.path in [ ~\\\"/tmp/**\\\", ~\\\"/var/tmp/**\\\", ~\\\"/home/**\\\"\\\n , ~\\\"/run/user/**\\\" ]\"\n- id: new_binary_execution_in_container\n version: 9dc42e1d\n description: A container executed a new a binary not found in the container image\n expression: container.id !=\"\" && !process.file.in_upper_layer && process.file.modification_time\n < 30s && exec.file.name !=\"\"\n- id: new_kernel_module_audit\n version: 904592b4\n description: A kernel module was loaded\n expression: load_module.name != \"\"\n- id: new_kernel_module_audit_container\n version: 139b666a\n description: A kernel module was loaded\n expression: load_module.name != \"\" && container.id !=\"\"\n- id: nsswitch_conf_mod_chmod\n version: d301aedf\n description: Nsswitch Configuration Modified\n expression: \"(\\n (chmod.file.path in [ \\\"/etc/nsswitch.conf\\\" ])\\n) && chmod.mode\\\n \\ != chmod.file.mode\"\n- id: nsswitch_conf_mod_chown\n version: '69383592'\n description: Nsswitch Configuration Modified\n expression: \"(\\n (chown.file.path in [ \\\"/etc/nsswitch.conf\\\" ])\\n) && (chown.uid\\\n \\ != chown.file.uid || chown.gid != chown.file.gid)\"\n- id: nsswitch_conf_mod_link\n version: e0565b29\n description: Nsswitch Configuration Modified\n expression: \"(\\n (link.file.path in [ \\\"/etc/nsswitch.conf\\\" ]\\n || link.file.destination.path\\\n \\ in [ \\\"/etc/nsswitch.conf\\\" ])\\n)\"\n- id: nsswitch_conf_mod_open\n version: b5602c6f\n description: Nsswitch Configuration Modified\n expression: \"(\\n open.flags & ((O_RDWR|O_WRONLY|O_CREAT)) > 0 &&\\n (open.file.path\\\n \\ in [ \\\"/etc/nsswitch.conf\\\" ])\\n)\"\n- id: nsswitch_conf_mod_rename\n version: aad34176\n description: Nsswitch Configuration Modified\n expression: \"(\\n (rename.file.path in [ \\\"/etc/nsswitch.conf\\\" ]\\n || rename.file.destination.path\\\n \\ in [ \\\"/etc/nsswitch.conf\\\" ])\\n)\"\n- id: nsswitch_conf_mod_unlink\n version: 8a3e2fbb\n description: Nsswitch Configuration Modified\n expression: \"(\\n (unlink.file.path in [ \\\"/etc/nsswitch.conf\\\" ])\\n)\"\n- id: nsswitch_conf_mod_utimes\n version: 902597c0\n description: Nsswitch Configuration Modified\n expression: \"(\\n (utimes.file.path in [ \\\"/etc/nsswitch.conf\\\" ])\\n)\"\n- id: package_management_in_container\n version: c152fcaf\n description: Package management in container\n expression: exec.file.path in [\"/usr/bin/apt\", \"/usr/bin/apt-get\", \"/usr/bin/apt-config\",\n \"/usr/bin/dpkg\", \"/usr/bin/aptitude-curses\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\"]\n && container.id != \"\"\n- id: pam_modification_chmod\n version: 974a676e\n description: PAM Configuration Files Modification\n expression: \"(\\n (chmod.file.path in [ ~\\\"/etc/pam.d/*\\\", \\\"/etc/pam.conf\\\" ])\\n\\\n ) && chmod.mode != chmod.file.mode\"\n- id: pam_modification_chown\n version: ca22d0ab\n description: PAM Configuration Files Modification\n expression: \"(\\n (chown.file.path in [ ~\\\"/etc/pam.d/*\\\", \\\"/etc/pam.conf\\\" ])\\n\\\n ) && (chown.uid != chown.file.uid || chown.gid != chown.file.gid)\"\n- id: pam_modification_link\n version: 3d5d6b31\n description: PAM Configuration Files Modification\n expression: \"(\\n (link.file.path in [ ~\\\"/etc/pam.d/*\\\", \\\"/etc/pam.conf\\\" ]\\n\\\n \\ || link.file.destination.path in [ ~\\\"/etc/pam.d/*\\\", \\\"/etc/pam.conf\\\" ])\\n\\\n )\"\n- id: pam_modification_open\n version: 9440f452\n description: PAM Configuration Files Modification\n expression: \"(\\n open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 &&\\n (open.file.path\\\n \\ in [ ~\\\"/etc/pam.d/*\\\", \\\"/etc/pam.conf\\\" ])\\n)\"\n- id: pam_modification_rename\n version: bd1d257a\n description: PAM Configuration Files Modification\n expression: \"(\\n (rename.file.path in [ ~\\\"/etc/pam.d/*\\\", \\\"/etc/pam.conf\\\"\\\n \\ ]\\n || rename.file.destination.path in [ ~\\\"/etc/pam.d/*\\\", \\\"/etc/pam.conf\\\"\\\n \\ ])\\n)\"\n- id: pam_modification_unlink\n version: c3dc53e1\n description: PAM Configuration Files Modification\n expression: \"(\\n (unlink.file.path in [ ~\\\"/etc/pam.d/*\\\", \\\"/etc/pam.conf\\\"\\\n \\ ])\\n)\"\n- id: pam_modification_utimes\n version: d377b599\n description: PAM Configuration Files Modification\n expression: \"(\\n (utimes.file.path in [ ~\\\"/etc/pam.d/*\\\", \\\"/etc/pam.conf\\\"\\\n \\ ])\\n)\"\n- id: passwd_execution\n version: e1d41f5e\n description: Passwd utility executed\n expression: exec.file.path == \"/usr/bin/passwd\"\n- id: pci_11_5_critical_binaries_chmod\n version: 1945831d\n description: Critical System Binaries\n expression: \"(\\n (chmod.file.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\"\\\n , ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/*\\\"\\\n \\ ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\"\\\n , \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"\\\n /usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n && process.ancestors.file.path\\\n \\ not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"\\\n /usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"\\\n ]\\n) && chmod.mode != chmod.file.mode\"\n- id: pci_11_5_critical_binaries_chown\n version: 21da2189\n description: Critical System Binaries\n expression: \"(\\n (chown.file.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\"\\\n , ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/*\\\"\\\n \\ ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\"\\\n , \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"\\\n /usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n && process.ancestors.file.path\\\n \\ not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"\\\n /usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"\\\n ]\\n) && (chown.uid != chown.file.uid || chown.gid != chown.file.gid)\"\n- id: pci_11_5_critical_binaries_link\n version: a7ac587c\n description: Critical System Binaries\n expression: \"(\\n (link.file.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\"\\\n , ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/*\\\"\\\n \\ ]\\n || link.file.destination.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\"\\\n , ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/*\\\"\\\n \\ ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\"\\\n , \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"\\\n /usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n && process.ancestors.file.path\\\n \\ not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"\\\n /usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"\\\n ]\\n)\"\n- id: pci_11_5_critical_binaries_open\n version: f583ba7c\n description: Critical System Binaries\n expression: \"(\\n open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 &&\\n (open.file.path\\\n \\ in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\", ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\"\\\n , ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/*\\\" ])\\n && process.file.path not in [\\\"\\\n /usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\"\\\n , \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"\\\n ]\\n && process.ancestors.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\"\\\n , \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"\\\n /usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"\n- id: pci_11_5_critical_binaries_rename\n version: e0bc0857\n description: Critical System Binaries\n expression: \"(\\n (rename.file.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\"\\\n , ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/*\\\"\\\n \\ ]\\n || rename.file.destination.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\"\\\n , ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/*\\\"\\\n \\ ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\"\\\n , \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"\\\n /usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n && process.ancestors.file.path\\\n \\ not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"\\\n /usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"\\\n ]\\n)\"\n- id: pci_11_5_critical_binaries_unlink\n version: 3bb086ca\n description: Critical System Binaries\n expression: \"(\\n (unlink.file.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\"\\\n , ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/*\\\"\\\n \\ ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\"\\\n , \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"\\\n /usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n && process.ancestors.file.path\\\n \\ not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"\\\n /usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"\\\n ]\\n)\"\n- id: pci_11_5_critical_binaries_utimes\n version: 6d979630\n description: Critical System Binaries\n expression: \"(\\n (utimes.file.path in [ ~\\\"/bin/*\\\", ~\\\"/sbin/*\\\", ~\\\"/usr/bin/*\\\"\\\n , ~\\\"/usr/sbin/*\\\", ~\\\"/usr/local/bin/*\\\", ~\\\"/usr/local/sbin/*\\\", ~\\\"/boot/*\\\"\\\n \\ ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\"\\\n , \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"\\\n /usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n && process.ancestors.file.path\\\n \\ not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"\\\n /usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"\\\n ]\\n)\"\n- id: potential_web_shell\n version: dcaa6f4d\n description: A webapp process (language engine or webserver) spawned a shell, shell\n utility, or HTTP utility\n expression: \"(exec.file.path in [ \\\"/bin/dash\\\", \\\"/usr/bin/dash\\\",\\n \\\"/bin/sh\\\"\\\n , \\\"/bin/static-sh\\\", \\\"/usr/bin/sh\\\",\\n \\\"/usr/bin/bash\\\",\\n \\\"/bin/bash-static\\\"\\\n ,\\n \\\"/usr/bin/zsh\\\",\\n \\\"/usr/bin/ash\\\",\\n \\\"/usr/bin/csh\\\",\\n \\\"/usr/bin/ksh\\\"\\\n ,\\n \\\"/usr/bin/tcsh\\\",\\n \\\"/usr/lib/initramfs-tools/bin/busybox\\\",\\n \\\"/bin/busybox\\\"\\\n ,\\n \\\"/usr/bin/fish\\\",\\n \\\"/bin/ksh93\\\",\\n \\\"/bin/rksh\\\", \\\"/bin/rksh93\\\",\\n\\\n \\ \\\"/bin/lksh\\\",\\n \\\"/bin/mksh\\\", \\\"/bin/mksh-static\\\",\\n \\\"/usr/bin/csharp\\\"\\\n ,\\n \\\"/bin/posh\\\",\\n \\\"/usr/bin/rc\\\",\\n \\\"/bin/sash\\\",\\n \\\"/usr/bin/yash\\\"\\\n ,\\n \\\"/bin/zsh5\\\", \\\"/bin/zsh5-static\\\" ] || exec.file.path in [\\\"/usr/bin/wget\\\"\\\n , \\\"/usr/bin/curl\\\"] || exec.file.path in [\\\"/bin/cat\\\",\\\"/bin/chgrp\\\",\\\"/bin/chmod\\\"\\\n ,\\\"/bin/chown\\\",\\\"/bin/cp\\\",\\\"/bin/date\\\",\\\"/bin/dd\\\",\\\"/bin/df\\\",\\\"/bin/dir\\\"\\\n ,\\\"/bin/echo\\\",\\\"/bin/ln\\\",\\\"/bin/ls\\\",\\\"/bin/mkdir\\\",\\\"/bin/mknod\\\",\\\"/bin/mktemp\\\"\\\n ,\\\"/bin/mv\\\",\\\"/bin/pwd\\\",\\\"/bin/readlink\\\",\\\"/bin/rm\\\",\\\"/bin/rmdir\\\",\\\"/bin/sleep\\\"\\\n ,\\\"/bin/stty\\\",\\\"/bin/sync\\\",\\\"/bin/touch\\\",\\\"/bin/uname\\\",\\\"/bin/vdir\\\",\\\"/usr/bin/arch\\\"\\\n ,\\\"/usr/bin/b2sum\\\",\\\"/usr/bin/base32\\\",\\\"/usr/bin/base64\\\",\\\"/usr/bin/basename\\\"\\\n ,\\\"/usr/bin/chcon\\\",\\\"/usr/bin/cksum\\\",\\\"/usr/bin/comm\\\",\\\"/usr/bin/csplit\\\",\\\"\\\n /usr/bin/cut\\\",\\\"/usr/bin/dircolors\\\",\\\"/usr/bin/dirname\\\",\\\"/usr/bin/du\\\",\\\"\\\n /usr/bin/env\\\",\\\"/usr/bin/expand\\\",\\\"/usr/bin/expr\\\",\\\"/usr/bin/factor\\\",\\\"/usr/bin/fmt\\\"\\\n ,\\\"/usr/bin/fold\\\",\\\"/usr/bin/groups\\\",\\\"/usr/bin/head\\\",\\\"/usr/bin/hostid\\\",\\\"\\\n /usr/bin/id\\\",\\\"/usr/bin/install\\\",\\\"/usr/bin/join\\\",\\\"/usr/bin/link\\\",\\\"/usr/bin/logname\\\"\\\n ,\\\"/usr/bin/md5sum\\\",\\\"/usr/bin/md5sum.textutils\\\",\\\"/usr/bin/mkfifo\\\",\\\"/usr/bin/nice\\\"\\\n ,\\\"/usr/bin/nl\\\",\\\"/usr/bin/nohup\\\",\\\"/usr/bin/nproc\\\",\\\"/usr/bin/numfmt\\\",\\\"\\\n /usr/bin/od\\\",\\\"/usr/bin/paste\\\",\\\"/usr/bin/pathchk\\\",\\\"/usr/bin/pinky\\\",\\\"/usr/bin/pr\\\"\\\n ,\\\"/usr/bin/printenv\\\",\\\"/usr/bin/printf\\\",\\\"/usr/bin/ptx\\\",\\\"/usr/bin/realpath\\\"\\\n ,\\\"/usr/bin/runcon\\\",\\\"/usr/bin/seq\\\",\\\"/usr/bin/sha1sum\\\",\\\"/usr/bin/sha224sum\\\"\\\n ,\\\"/usr/bin/sha256sum\\\",\\\"/usr/bin/sha384sum\\\",\\\"/usr/bin/sha512sum\\\",\\\"/usr/bin/shred\\\"\\\n ,\\\"/usr/bin/shuf\\\",\\\"/usr/bin/sort\\\",\\\"/usr/bin/split\\\",\\\"/usr/bin/stat\\\",\\\"/usr/bin/stdbuf\\\"\\\n ,\\\"/usr/bin/sum\\\",\\\"/usr/bin/tac\\\",\\\"/usr/bin/tail\\\",\\\"/usr/bin/tee\\\",\\\"/usr/bin/test\\\"\\\n ,\\\"/usr/bin/timeout\\\",\\\"/usr/bin/tr\\\",\\\"/usr/bin/truncate\\\",\\\"/usr/bin/tsort\\\"\\\n ,\\\"/usr/bin/tty\\\",\\\"/usr/bin/unexpand\\\",\\\"/usr/bin/uniq\\\",\\\"/usr/bin/unlink\\\"\\\n ,\\\"/usr/bin/users\\\",\\\"/usr/bin/wc\\\",\\\"/usr/bin/who\\\",\\\"/usr/bin/whoami\\\",\\\"/usr/sbin/chroot\\\"\\\n ]) &&\\n(process.ancestors.file.name in [~\\\"python2*\\\", ~\\\"python3*\\\", \\\"node\\\"\\\n , \\\"apache2\\\", \\\"nginx\\\", ~\\\"tomcat*\\\"] || process.ancestors.file.name =~ \\\"php*\\\"\\\n ) &&\\nprocess.ancestors.comm not in [\\\"pip3\\\", \\\"pip\\\", \\\"npm\\\"]\"\n- id: ptrace_antidebug\n version: a6289ff7\n description: A process uses an anti-debugging technique to block debuggers\n expression: ptrace.request == PTRACE_TRACEME\n- id: ptrace_injection\n version: 6d290a43\n description: A process attempted to inject code into another process\n expression: ptrace.request == PTRACE_POKETEXT || ptrace.request == PTRACE_POKEDATA\n || ptrace.request == PTRACE_POKEUSR\n- id: pwnkit_privilege_escalation\n version: c83bbabc\n description: A process was spawned with indicators of exploitation of CVE-2021-4034\n expression: (exec.file.path == \"/usr/bin/pkexec\" && exec.envs in [~\"*SHELL*\", ~\"*PATH*\"]\n && exec.uid != 0)\n- id: runc_modification\n version: c7144439\n description: Runc Binary Modified\n expression: 'open.file.path in [\"/usr/bin/runc\", \"/usr/sbin/runc\", \"/usr/bin/docker-runc\"]\n\n && open.flags & O_CREAT|O_TRUNC|O_RDWR|O_WRONLY > 0\n\n && process.file.path not in [\"/usr/bin/apt\", \"/usr/bin/apt-get\", \"/usr/bin/apt-config\",\n \"/usr/bin/dpkg\", \"/usr/bin/aptitude-curses\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\"]\n\n && process.ancestors.file.path not in [\"/usr/bin/apt\", \"/usr/bin/apt-get\", \"/usr/bin/apt-config\",\n \"/usr/bin/dpkg\", \"/usr/bin/aptitude-curses\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\"]'\n- id: selinux_disable_enforcement\n version: afa9a8ba\n description: SELinux enforcement status was disabled\n expression: selinux.enforce.status in [\"permissive\", \"disabled\"]\n- id: ssh_authorized_keys_chmod\n version: e4096f79\n description: SSH Authorized Keys Modified\n expression: \"(\\n chmod.file.name == \\\"authorized_keys\\\" && (chmod.file.path in\\\n \\ [ ~\\\"*/.ssh/*\\\" ])\\n) && chmod.mode != chmod.file.mode\"\n- id: ssh_authorized_keys_chown\n version: 9639bf6\n description: SSH Authorized Keys Modified\n expression: \"(\\n chown.file.name == \\\"authorized_keys\\\" && (chown.file.path in\\\n \\ [ ~\\\"*/.ssh/*\\\" ])\\n) && (chown.uid != chown.file.uid || chown.gid != chown.file.gid)\"\n- id: ssh_authorized_keys_link\n version: 81382bdd\n description: SSH Authorized Keys Modified\n expression: \"(\\n link.file.name == \\\"authorized_keys\\\" && (link.file.path in\\\n \\ [ ~\\\"*/.ssh/*\\\" ]\\n || link.file.destination.path in [ ~\\\"*/.ssh/*\\\" ])\\n\\\n )\"\n- id: ssh_authorized_keys_open\n version: 1ae8f7d6\n description: SSH Authorized Keys Modified\n expression: \"(\\n open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 &&\\n open.file.name\\\n \\ == \\\"authorized_keys\\\" && (open.file.path in [ ~\\\"*/.ssh/*\\\" ])\\n)\"\n- id: ssh_authorized_keys_rename\n version: fd3bdabf\n description: SSH Authorized Keys Modified\n expression: \"(\\n rename.file.name == \\\"authorized_keys\\\" && (rename.file.path\\\n \\ in [ ~\\\"*/.ssh/*\\\" ]\\n || rename.file.destination.path in [ ~\\\"*/.ssh/*\\\"\\\n \\ ])\\n)\"\n- id: ssh_authorized_keys_unlink\n version: 54cf4a88\n description: SSH Authorized Keys Modified\n expression: \"(\\n unlink.file.name == \\\"authorized_keys\\\" && (unlink.file.path\\\n \\ in [ ~\\\"*/.ssh/*\\\" ])\\n)\"\n- id: ssh_authorized_keys_utimes\n version: 59377e61\n description: SSH Authorized Keys Modified\n expression: \"(\\n utimes.file.name == \\\"authorized_keys\\\" && (utimes.file.path\\\n \\ in [ ~\\\"*/.ssh/*\\\" ])\\n)\"\n- id: ssl_certificate_tampering_chmod\n version: d8ac6517\n description: SSL Certificate Tampering\n expression: \"(\\n (chmod.file.path in [ ~\\\"/etc/ssl/certs/*\\\" ])\\n && process.file.path\\\n \\ not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"\\\n /usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"\\\n ]\\n) && chmod.mode != chmod.file.mode\"\n- id: ssl_certificate_tampering_chown\n version: 3d04895f\n description: SSL Certificate Tampering\n expression: \"(\\n (chown.file.path in [ ~\\\"/etc/ssl/certs/*\\\" ])\\n && process.file.path\\\n \\ not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"\\\n /usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"\\\n ]\\n) && (chown.uid != chown.file.uid || chown.gid != chown.file.gid)\"\n- id: ssl_certificate_tampering_link\n version: eb594616\n description: SSL Certificate Tampering\n expression: \"(\\n (link.file.path in [ ~\\\"/etc/ssl/certs/*\\\" ]\\n || link.file.destination.path\\\n \\ in [ ~\\\"/etc/ssl/certs/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\"\\\n , \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\"\\\n , \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"\n- id: ssl_certificate_tampering_open\n version: 59d94d53\n description: SSL Certificate Tampering\n expression: \"(\\n open.flags & (O_CREAT|O_RDWR|O_WRONLY) > 0 &&\\n (open.file.path\\\n \\ in [ ~\\\"/etc/ssl/certs/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\"\\\n , \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\"\\\n , \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"\n- id: ssl_certificate_tampering_rename\n version: e42eefb4\n description: SSL Certificate Tampering\n expression: \"(\\n (rename.file.path in [ ~\\\"/etc/ssl/certs/*\\\" ]\\n || rename.file.destination.path\\\n \\ in [ ~\\\"/etc/ssl/certs/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\"\\\n , \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\"\\\n , \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"\n- id: ssl_certificate_tampering_unlink\n version: 37c40311\n description: SSL Certificate Tampering\n expression: \"(\\n (unlink.file.path in [ ~\\\"/etc/ssl/certs/*\\\" ])\\n && process.file.path\\\n \\ not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"\\\n /usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"\\\n ]\\n)\"\n- id: ssl_certificate_tampering_utimes\n version: de3d3032\n description: SSL Certificate Tampering\n expression: \"(\\n (utimes.file.path in [ ~\\\"/etc/ssl/certs/*\\\" ])\\n && process.file.path\\\n \\ not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"\\\n /usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"\\\n ]\\n)\"\n- id: suspicious_container_client\n version: 8b9461f4\n description: A container management utility was executed in a container\n expression: exec.file.name in [\"docker\", \"kubectl\"] && container.id != \"\"\n- id: systemd_modification_chmod\n version: b0643139\n description: Systemd Modification\n expression: \"(\\n (chmod.file.path in [ ~\\\"/lib/systemd/system/*\\\", ~\\\"/usr/lib/systemd/system/*\\\"\\\n , ~\\\"/etc/systemd/system/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\"\\\n , \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\"\\\n , \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n) && chmod.mode != chmod.file.mode\"\n- id: systemd_modification_chown\n version: 380d501\n description: Systemd Modification\n expression: \"(\\n (chown.file.path in [ ~\\\"/lib/systemd/system/*\\\", ~\\\"/usr/lib/systemd/system/*\\\"\\\n , ~\\\"/etc/systemd/system/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\"\\\n , \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\"\\\n , \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n) && (chown.uid != chown.file.uid\\\n \\ || chown.gid != chown.file.gid)\"\n- id: systemd_modification_link\n version: cbd89cec\n description: Systemd Modification\n expression: \"(\\n (link.file.path in [ ~\\\"/lib/systemd/system/*\\\", ~\\\"/usr/lib/systemd/system/*\\\"\\\n , ~\\\"/etc/systemd/system/*\\\" ]\\n || link.file.destination.path in [ ~\\\"/lib/systemd/system/*\\\"\\\n , ~\\\"/usr/lib/systemd/system/*\\\", ~\\\"/etc/systemd/system/*\\\" ])\\n && process.file.path\\\n \\ not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"\\\n /usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"\\\n ]\\n)\"\n- id: systemd_modification_open\n version: b6dce303\n description: Systemd Modification\n expression: \"(\\n open.flags & (O_CREAT|O_RDWR|O_WRONLY) > 0 &&\\n (open.file.path\\\n \\ in [ ~\\\"/lib/systemd/system/*\\\", ~\\\"/usr/lib/systemd/system/*\\\", ~\\\"/etc/systemd/system/*\\\"\\\n \\ ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\"\\\n , \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"\\\n /usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"\n- id: systemd_modification_rename\n version: 1e723c46\n description: Systemd Modification\n expression: \"(\\n (rename.file.path in [ ~\\\"/lib/systemd/system/*\\\", ~\\\"/usr/lib/systemd/system/*\\\"\\\n , ~\\\"/etc/systemd/system/*\\\" ]\\n || rename.file.destination.path in [ ~\\\"/lib/systemd/system/*\\\"\\\n , ~\\\"/usr/lib/systemd/system/*\\\", ~\\\"/etc/systemd/system/*\\\" ])\\n && process.file.path\\\n \\ not in [\\\"/usr/bin/apt\\\", \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"\\\n /usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"\\\n ]\\n)\"\n- id: systemd_modification_unlink\n version: dcb17382\n description: Systemd Modification\n expression: \"(\\n (unlink.file.path in [ ~\\\"/lib/systemd/system/*\\\", ~\\\"/usr/lib/systemd/system/*\\\"\\\n , ~\\\"/etc/systemd/system/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\"\\\n , \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\"\\\n , \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"\n- id: systemd_modification_utimes\n version: 6b596fc5\n description: Systemd Modification\n expression: \"(\\n (utimes.file.path in [ ~\\\"/lib/systemd/system/*\\\", ~\\\"/usr/lib/systemd/system/*\\\"\\\n , ~\\\"/etc/systemd/system/*\\\" ])\\n && process.file.path not in [\\\"/usr/bin/apt\\\"\\\n , \\\"/usr/bin/apt-get\\\", \\\"/usr/bin/apt-config\\\", \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/aptitude-curses\\\"\\\n , \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\"]\\n)\"\n- id: testtypescriptcreateacloudworkloadsecurityagentrulereturnsokresponse1651997883\n version: f43786f8\n description: Test Agent rule\n expression: exec.file.name == \"sh\"\n- id: testtypescriptdeleteacloudworkloadsecurityagentrulereturnsokresponse1651997884\n version: f43786f8\n description: My Agent rule\n expression: exec.file.name == \"sh\"\n- id: testtypescriptgetacloudworkloadsecurityagentrulereturnsokresponse1651997885\n version: f43786f8\n description: My Agent rule\n expression: exec.file.name == \"sh\"\n- id: testtypescriptgetallcloudworkloadsecurityagentrulesreturnsokresponse1651867149\n version: f43786f8\n description: My Agent rule\n expression: exec.file.name == \"sh\"\n- id: testtypescriptgetallcloudworkloadsecurityagentrulesreturnsokresponse1651912469\n version: f43786f8\n description: My Agent rule\n expression: exec.file.name == \"sh\"\n- id: testtypescriptgetallcloudworkloadsecurityagentrulesreturnsokresponse1651915814\n version: f43786f8\n description: My Agent rule\n expression: exec.file.name == \"sh\"\n- id: testtypescriptgetallcloudworkloadsecurityagentrulesreturnsokresponse1651943471\n version: f43786f8\n description: My Agent rule\n expression: exec.file.name == \"sh\"\n- id: testtypescriptgetallcloudworkloadsecurityagentrulesreturnsokresponse1651997885\n version: f43786f8\n description: My Agent rule\n expression: exec.file.name == \"sh\"\n- id: testtypescriptgetallcloudworkloadsecurityagentrulesreturnsokresponse1652008845\n version: f43786f8\n description: My Agent rule\n expression: exec.file.name == \"sh\"\n- id: testtypescriptupdateacloudworkloadsecurityagentrulereturnsbadrequestresponse1651997886\n version: f43786f8\n description: My Agent rule\n expression: exec.file.name == \"sh\"\n- id: testtypescriptupdateacloudworkloadsecurityagentrulereturnsokresponse1651997887\n version: f43786f8\n description: Test Agent rule\n expression: exec.file.name == \"sh\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643386657\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643386695\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643386742\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643386809\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643386858\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643386909\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643387039\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643387090\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643387148\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643387484\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643387531\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643387579\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643388161\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643388208\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643388257\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643388666\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643388726\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643388847\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643388890\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643388939\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643389111\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643389165\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643389210\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643389339\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643389389\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643389484\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643389530\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643389627\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643389685\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643389756\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643389931\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643389977\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643390108\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643390130\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643390151\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643391687\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643391707\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643391729\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643391983\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643392003\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643392026\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643392419\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643392438\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643392458\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643392885\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643392903\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRule_local_1643392923\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643386718\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643386786\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643386831\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643386882\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643387014\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643387063\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643387120\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643387461\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643387505\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643387554\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643387992\n version: 28ba1078\n description: an agent rule\n expression: exec.file.name == \"java\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643388137\n version: 2dd188de\n description: an agent rule\n expression: exec.file.name == \"go\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643388182\n version: 2dd188de\n description: an agent rule\n expression: exec.file.name == \"go\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643388230\n version: 2dd188de\n description: an agent rule\n expression: exec.file.name == \"go\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643388700\n version: 2dd188de\n description: an agent rule\n expression: exec.file.name == \"go\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643388825\n version: 2dd188de\n description: an agent rule\n expression: exec.file.name == \"go\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643388866\n version: 2dd188de\n description: an agent rule\n expression: exec.file.name == \"go\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643388912\n version: 2dd188de\n description: an agent rule\n expression: exec.file.name == \"go\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643389088\n version: 2dd188de\n description: an agent rule\n expression: exec.file.name == \"go\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643389136\n version: 2dd188de\n description: an agent rule\n expression: exec.file.name == \"go\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643389186\n version: 2dd188de\n description: an agent rule\n expression: exec.file.name == \"go\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643389317\n version: 2dd188de\n description: an agent rule\n expression: exec.file.name == \"go\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643389363\n version: 2dd188de\n description: an agent rule\n expression: exec.file.name == \"go\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643389411\n version: 2dd188de\n description: an agent rule\n expression: exec.file.name == \"go\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643389460\n version: 2dd188de\n description: an agent rule\n expression: exec.file.name == \"go\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643389507\n version: 2dd188de\n description: an agent rule\n expression: exec.file.name == \"go\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643389553\n version: 2dd188de\n description: an agent rule\n expression: exec.file.name == \"go\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643389911\n version: 2dd188de\n description: an agent rule\n expression: exec.file.name == \"go\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643389955\n version: 2dd188de\n description: an agent rule\n expression: exec.file.name == \"go\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643390389\n version: 2dd188de\n description: an agent rule\n expression: exec.file.name == \"go\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643390410\n version: 2dd188de\n description: an agent rule\n expression: exec.file.name == \"go\"\n- id: tf_TestAccDatadogCloudWorkloadSecurityAgentRulesDatasource_local_1643390432\n version: 2dd188de\n description: an agent rule\n expression: exec.file.name == \"go\"\n- id: user_created_tty\n version: 5b5f4a52\n description: User Created Interactively\n expression: exec.file.name in [\"useradd\", \"newusers\"] && exec.tty_name !=\"\"\n", "encoding": null}, "headers": {"Content-Type": ["application/yaml"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:51:26 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/yaml, application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/security/cloud_workload/policy/download" + }, + "response": { + "body": { + "string": "# IMPORTANT: Edits to this file will not be reflected in the Datadog App and will be overwritten with new policy file downloads. Please modify rules in the Datadog App for full functionality.\nversion: '1709907555575'\nrules:\n- id: Deno_unauthorized_network_access_performed\n version: 482a395e\n description: Unauthorized network access by deno runtime\n expression: bind.addr.family>=0 && process.comm==\"deno\" && process.args not in [r\".*(allow-net|allow-ffi|-A|allow-all).*\"]\n agent_version: ''\n filters: []\n- id: Deno_unauthorized_subprocess_created\n version: d2d82b09\n description: Unauthorized subprocess created by deno runtime\n expression: exec.comm !=\"\" && process.ancestors.comm==\"deno\" && process.ancestors.args\n not in [r\".*(allow-run|-A|allow-all).*\"]\n agent_version: ''\n filters: []\n- id: apparmor_modified_tty\n version: a7f3b5c2\n description: An AppArmor profile was modified in an interactive session\n expression: exec.file.name in [\"aa-disable\", \"aa-complain\", \"aa-audit\"] && exec.tty_name\n !=\"\"\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: auditctl_usage\n version: fdc2412d\n description: The auditctl command was used to modify auditd\n expression: exec.file.name == \"auditctl\"\n agent_version: ''\n filters: []\n- id: auditd_config_modified\n version: c7f52a7a\n description: The auditd configuration file was modified without using auditctl\n expression: open.file.path == \"/etc/audit/auditd.conf\" && open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY)\n > 0 && process.file.name != \"auditctl\"\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: auditd_rule_file_modified\n version: c533115d\n description: The auditd rules file was modified without using auditctl\n expression: open.file.path in [\"/etc/audit/rules.d/audit.rules\", \"/etc/audit/audit.rules\"]\n && open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 && process.file.name !=\n \"auditctl\"\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: aws_eks_service_account_token_accessed\n version: d6a7a4a0\n description: The AWS EKS service account token was accessed\n expression: open.file.path =~ \"/var/run/secrets/eks.amazonaws.com/serviceaccount/**\"\n && open.file.name == \"token\" && process.file.path not in [\"/opt/datadog-agent/embedded/bin/agent\",\n \"/opt/datadog-agent/embedded/bin/system-probe\", \"/opt/datadog-agent/embedded/bin/security-agent\",\n \"/opt/datadog-agent/embedded/bin/process-agent\", \"/opt/datadog-agent/bin/agent/agent\",\n \"/opt/datadog/apm/inject/auto_inject_runc\", \"/usr/bin/dd-host-install\", \"/usr/bin/dd-host-container-install\",\n \"/usr/bin/dd-container-install\", \"/opt/datadog-agent/bin/datadog-cluster-agent\"]\n agent_version: ''\n filters: []\n- id: aws_imds\n version: 6d47fcfe\n description: An AWS IMDS was called via a network utility\n expression: exec.comm in [\"wget\", \"curl\", \"lwp-download\"] && exec.args in [~\"*169.254.169.254/latest/meta-data/iam/security-credentials/*\",\n \"*169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\", ~\"*169.254.170.2/*/credentials?id=*\"]\n agent_version: ''\n filters: []\n- id: azure_imds\n version: 784f9a83\n description: An Azure IMDS was called via a network utility\n expression: exec.comm in [\"wget\", \"curl\", \"lwp-download\"] && exec.args in [~\"*169.254.169.254/metadata/identity/oauth2/token?api-version=*\"]\n agent_version: ''\n filters: []\n- id: base64_decode\n version: dd942ef2\n description: The base64 command was used to decode information\n expression: exec.file.name == \"base64\" && exec.args_flags in [\"d\"]\n agent_version: ''\n filters: []\n- id: certutil_usage\n version: 4b9c58b5\n description: Certutil was executed to transmit or decode a potentially malicious\n file\n expression: exec.file.name == \"certutil.exe\" && ((exec.cmdline =~ \"*urlcache*\" &&\n exec.cmdline =~ \"*split*\") || exec.cmdline =~ \"*decode*\")\n agent_version: ''\n filters:\n - os == \"windows\"\n- id: chatroom_request\n version: 91aa2a0f\n description: A newly created file contacted a chatroom domain\n expression: dns.question.name in [\"discord.com\", \"api.telegram.org\", \"cdn.discordapp.com\"]\n && process.file.in_upper_layer && process.file.change_time < 60s\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: compile_after_delivery\n version: f41c1e36\n description: A compiler wrote a suspicious file in a container\n expression: |-\n open.flags & O_CREAT > 0\n && (\n (open.file.path =~ \"/tmp/**\" && open.file.name in [~\"*.ko\", ~\".*\"])\n || open.file.path in [~\"/var/tmp/**\", ~\"/dev/shm/**\", ~\"/root/**\", ~\"*/bin/*\", ~\"/usr/local/lib/**\"]\n )\n && (process.comm in [\"javac\", \"clang\", \"gcc\",\"bcc\"] || process.ancestors.comm in [\"javac\", \"clang\", \"gcc\",\"bcc\"])\n && process.file.name not in [\"pip\", ~\"python*\"]\n && container.id != \"\"\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: compiler_in_container\n version: 441a7e85\n description: Compiler Executed in Container\n expression: (exec.file.name in [\"javac\", \"clang\", \"gcc\",\"bcc\"] || (exec.file.name\n == \"go\" && exec.args in [~\"*build*\", ~\"*run*\"])) && container.id !=\"\" && process.ancestors.file.path\n != \"/usr/bin/cilium-agent\"\n agent_version: ''\n filters: []\n- id: crackmap_exec_executed\n version: 62b05d89\n description: Known offensive tool crackmap exec executed\n expression: exec.cmdline in [~\"*crackmapexec*\", ~\"*cme*\"]\n agent_version: ''\n filters:\n - os == \"windows\"\n- id: credential_modified_chown\n version: b5e2cf51\n description: Sensitive credential files were modified using a non-standard tool\n expression: |-\n (\n (chown.file.path in [ \"/etc/shadow\", \"/etc/gshadow\" ])\n && process.file.path not in [ \"/sbin/vipw\", \"/usr/sbin/vipw\", \"/sbin/vigr\", \"/usr/sbin/vigr\", \"/usr/bin/containerd\", \"/usr/local/bin/containerd\", \"/usr/bin/dockerd\", \"/usr/local/bin/dockerd\", \"/usr/sbin/groupadd\", \"/usr/sbin/useradd\", \"/usr/sbin/usermod\", \"/usr/sbin/userdel\", \"/usr/bin/gpasswd\", \"/usr/bin/chage\", \"/usr/sbin/chpasswd\", \"/usr/bin/passwd\" ]\n && process.ancestors.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n ) && (chown.file.destination.uid != chown.file.uid || chown.file.destination.gid != chown.file.gid)\n agent_version: ''\n filters: []\n- id: credential_modified_link\n version: 5fe23f72\n description: Sensitive credential files were modified using a non-standard tool\n expression: |-\n (\n (link.file.path in [ \"/etc/shadow\", \"/etc/gshadow\" ]\n || link.file.destination.path in [ \"/etc/shadow\", \"/etc/gshadow\" ])\n && process.file.path not in [ \"/sbin/vipw\", \"/usr/sbin/vipw\", \"/sbin/vigr\", \"/usr/sbin/vigr\", \"/usr/bin/containerd\", \"/usr/local/bin/containerd\", \"/usr/bin/dockerd\", \"/usr/local/bin/dockerd\", \"/usr/sbin/groupadd\", \"/usr/sbin/useradd\", \"/usr/sbin/usermod\", \"/usr/sbin/userdel\", \"/usr/bin/gpasswd\", \"/usr/bin/chage\", \"/usr/sbin/chpasswd\", \"/usr/bin/passwd\" ]\n && process.ancestors.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n )\n agent_version: ''\n filters: []\n- id: credential_modified_open_v2\n version: 5aec9afe\n description: Sensitive credential files were modified using a non-standard tool\n expression: |-\n (\n open.flags & ((O_CREAT|O_RDWR|O_WRONLY|O_TRUNC)) > 0 &&\n (open.file.path in [ \"/etc/shadow\", \"/etc/gshadow\" ])\n && process.file.path not in [ \"/sbin/vipw\", \"/usr/sbin/vipw\", \"/sbin/vigr\", \"/usr/sbin/vigr\", \"/usr/bin/containerd\", \"/usr/local/bin/containerd\", \"/usr/bin/dockerd\", \"/usr/local/bin/dockerd\", \"/usr/sbin/groupadd\", \"/usr/sbin/useradd\", \"/usr/sbin/usermod\", \"/usr/sbin/userdel\", \"/usr/bin/gpasswd\", \"/usr/bin/chage\", \"/usr/sbin/chpasswd\", \"/usr/bin/passwd\" ]\n && process.ancestors.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n ) && container.created_at > 90s\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: credential_modified_rename\n version: b7458786\n description: Sensitive credential files were modified using a non-standard tool\n expression: |-\n (\n (rename.file.path in [ \"/etc/shadow\", \"/etc/gshadow\" ]\n || rename.file.destination.path in [ \"/etc/shadow\", \"/etc/gshadow\" ])\n && process.file.path not in [ \"/sbin/vipw\", \"/usr/sbin/vipw\", \"/sbin/vigr\", \"/usr/sbin/vigr\", \"/usr/bin/containerd\", \"/usr/local/bin/containerd\", \"/usr/bin/dockerd\", \"/usr/local/bin/dockerd\", \"/usr/sbin/groupadd\", \"/usr/sbin/useradd\", \"/usr/sbin/usermod\", \"/usr/sbin/userdel\", \"/usr/bin/gpasswd\", \"/usr/bin/chage\", \"/usr/sbin/chpasswd\", \"/usr/bin/passwd\" ]\n && process.ancestors.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n )\n agent_version: ''\n filters: []\n- id: credential_modified_unlink\n version: 557758b6\n description: Sensitive credential files were modified using a non-standard tool\n expression: |-\n (\n (unlink.file.path in [ \"/etc/shadow\", \"/etc/gshadow\" ])\n && process.file.path not in [ \"/sbin/vipw\", \"/usr/sbin/vipw\", \"/sbin/vigr\", \"/usr/sbin/vigr\", \"/usr/bin/containerd\", \"/usr/local/bin/containerd\", \"/usr/bin/dockerd\", \"/usr/local/bin/dockerd\", \"/usr/sbin/groupadd\", \"/usr/sbin/useradd\", \"/usr/sbin/usermod\", \"/usr/sbin/userdel\", \"/usr/bin/gpasswd\", \"/usr/bin/chage\", \"/usr/sbin/chpasswd\", \"/usr/bin/passwd\" ]\n && process.ancestors.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n )\n agent_version: ''\n filters: []\n- id: credential_modified_utimes\n version: de8d14c5\n description: Sensitive credential files were modified using a non-standard tool\n expression: |-\n (\n (utimes.file.path in [ \"/etc/shadow\", \"/etc/gshadow\" ])\n && process.file.path not in [ \"/sbin/vipw\", \"/usr/sbin/vipw\", \"/sbin/vigr\", \"/usr/sbin/vigr\", \"/usr/bin/containerd\", \"/usr/local/bin/containerd\", \"/usr/bin/dockerd\", \"/usr/local/bin/dockerd\", \"/usr/sbin/groupadd\", \"/usr/sbin/useradd\", \"/usr/sbin/usermod\", \"/usr/sbin/userdel\", \"/usr/bin/gpasswd\", \"/usr/bin/chage\", \"/usr/sbin/chpasswd\", \"/usr/bin/passwd\" ]\n && process.ancestors.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n )\n agent_version: ''\n filters: []\n- id: cryptominer_envs\n version: 735b7690\n description: Process environment variables match cryptocurrency miner\n expression: exec.envs in [~\"*POOL_USER*\", ~\"*POOL_URL*\", ~\"*POOL_PASS*\", ~\"*DONATE_LEVEL*\"]\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: curl_docker_socket\n version: f736b6e6\n description: The Docker socket was referenced in a cURL command\n expression: exec.file.name == \"curl\" && exec.args_flags in [\"unix-socket\"] && exec.args\n in [\"*docker.sock*\"] && container.id != \"\"\n agent_version: ''\n filters: []\n- id: database_shell_execution\n version: 3508c713\n description: A database application spawned a shell, shell utility, or HTTP utility\n expression: |-\n (exec.file.path in [ \"/bin/dash\",\n \"/usr/bin/dash\",\n \"/bin/sh\",\n \"/bin/static-sh\",\n \"/usr/bin/sh\",\n \"/bin/bash\",\n \"/usr/bin/bash\",\n \"/bin/bash-static\",\n \"/usr/bin/zsh\",\n \"/usr/bin/ash\",\n \"/usr/bin/csh\",\n \"/usr/bin/ksh\",\n \"/usr/bin/tcsh\",\n \"/usr/lib/initramfs-tools/bin/busybox\",\n \"/bin/busybox\",\n \"/usr/bin/fish\",\n \"/bin/ksh93\",\n \"/bin/rksh\",\n \"/bin/rksh93\",\n \"/bin/lksh\",\n \"/bin/mksh\",\n \"/bin/mksh-static\",\n \"/usr/bin/csharp\",\n \"/bin/posh\",\n \"/usr/bin/rc\",\n \"/bin/sash\",\n \"/usr/bin/yash\",\n \"/bin/zsh5\",\n \"/bin/zsh5-static\" ] ||\n exec.comm in [\"wget\", \"curl\", \"lwp-download\"] ||\n exec.file.path in [\"/bin/cat\",\"/bin/chgrp\",\"/bin/chmod\",\"/bin/chown\",\"/bin/cp\",\"/bin/date\",\"/bin/dd\",\"/bin/df\",\"/bin/dir\",\"/bin/echo\",\"/bin/ln\",\"/bin/ls\",\"/bin/mkdir\",\"/bin/mknod\",\"/bin/mktemp\",\"/bin/mv\",\"/bin/pwd\",\"/bin/readlink\",\"/bin/rm\",\"/bin/rmdir\",\"/bin/sleep\",\"/bin/stty\",\"/bin/sync\",\"/bin/touch\",\"/bin/uname\",\"/bin/vdir\",\"/usr/bin/arch\",\"/usr/bin/b2sum\",\"/usr/bin/base32\",\"/usr/bin/base64\",\"/usr/bin/basename\",\"/usr/bin/chcon\",\"/usr/bin/cksum\",\"/usr/bin/comm\",\"/usr/bin/csplit\",\"/usr/bin/cut\",\"/usr/bin/dircolors\",\"/usr/bin/dirname\",\"/usr/bin/du\",\"/usr/bin/env\",\"/usr/bin/expand\",\"/usr/bin/expr\",\"/usr/bin/factor\",\"/usr/bin/fmt\",\"/usr/bin/fold\",\"/usr/bin/groups\",\"/usr/bin/head\",\"/usr/bin/hostid\",\"/usr/bin/id\",\"/usr/bin/install\",\"/usr/bin/join\",\"/usr/bin/link\",\"/usr/bin/logname\",\"/usr/bin/md5sum\",\"/usr/bin/md5sum.textutils\",\"/usr/bin/mkfifo\",\"/usr/bin/nice\",\"/usr/bin/nl\",\"/usr/bin/nohup\",\"/usr/bin/nproc\",\"/usr/bin/numfmt\",\"/usr/bin/od\",\"/usr/bin/paste\",\"/usr/bin/pathchk\",\"/usr/bin/pinky\",\"/usr/bin/pr\",\"/usr/bin/printenv\",\"/usr/bin/printf\",\"/usr/bin/ptx\",\"/usr/bin/realpath\",\"/usr/bin/runcon\",\"/usr/bin/seq\",\"/usr/bin/sha1sum\",\"/usr/bin/sha224sum\",\"/usr/bin/sha256sum\",\"/usr/bin/sha384sum\",\"/usr/bin/sha512sum\",\"/usr/bin/shred\",\"/usr/bin/shuf\",\"/usr/bin/sort\",\"/usr/bin/split\",\"/usr/bin/stat\",\"/usr/bin/stdbuf\",\"/usr/bin/sum\",\"/usr/bin/tac\",\"/usr/bin/tail\",\"/usr/bin/tee\",\"/usr/bin/test\",\"/usr/bin/timeout\",\"/usr/bin/tr\",\"/usr/bin/truncate\",\"/usr/bin/tsort\",\"/usr/bin/tty\",\"/usr/bin/unexpand\",\"/usr/bin/uniq\",\"/usr/bin/unlink\",\"/usr/bin/users\",\"/usr/bin/wc\",\"/usr/bin/who\",\"/usr/bin/whoami\",\"/usr/sbin/chroot\"]) &&\n process.parent.file.name in [\"mysqld\", \"mongod\", \"postgres\"] &&\n !(process.parent.file.name == \"initdb\" &&\n exec.args == \"-c locale -a\") &&\n !(process.parent.file.name == \"postgres\" &&\n exec.args == ~\"*pg_wal*\")\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: delete_system_log\n version: 5436807c\n description: A process deleted common system log files\n expression: unlink.file.path in [\"/var/run/utmp\", \"/var/log/wtmp\", \"/var/log/btmp\",\n \"/var/log/lastlog\", \"/var/log/faillog\", \"/var/log/syslog\", \"/var/log/messages\",\n \"/var/log/secure\", \"/var/log/auth.log\", \"/var/log/boot.log\", \"/var/log/kern.log\"]\n && process.comm not in [\"dockerd\", \"containerd\"]\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: deploy_priv_container\n version: 356d5ee7\n description: A privileged container was created\n expression: exec.file.name != \"\" && container.created_at < 1s && process.cap_permitted\n & CAP_SYS_ADMIN > 0\n agent_version: ''\n filters: []\n- id: dirty_pipe_attempt\n version: 8814807c\n description: Potential Dirty pipe exploitation attempt\n expression: (splice.pipe_entry_flag & PIPE_BUF_FLAG_CAN_MERGE) != 0 && (splice.pipe_exit_flag\n & PIPE_BUF_FLAG_CAN_MERGE) == 0 && (process.uid != 0 && process.gid != 0)\n agent_version: ''\n filters: []\n- id: dirty_pipe_exploitation\n version: 9bcacfe3\n description: Potential Dirty pipe exploitation\n expression: (splice.pipe_exit_flag & PIPE_BUF_FLAG_CAN_MERGE) > 0 && (process.uid\n != 0 && process.gid != 0)\n agent_version: ''\n filters: []\n- id: dynamic_linker_config_unlink\n version: 1924611e\n description: A process unlinked a dynamic linker config file\n expression: unlink.file.path in [\"/etc/ld.so.preload\", \"/etc/ld.so.conf\", ~\"/etc/ld.so.conf.d/*.conf\"]\n && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\",\n \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\",\n \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: dynamic_linker_config_write\n version: 764fc516\n description: A process wrote to a dynamic linker config file\n expression: open.file.path in [\"/etc/ld.so.preload\", \"/etc/ld.so.conf\", \"/etc/ld.so.conf.d/*.conf\"]\n && open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 && process.file.path not\n in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\",\n \"/usr/bin/containerd\", \"/usr/local/bin/containerd\", \"/usr/bin/dockerd\", \"/usr/bin/npm\",\n ~\"/usr/bin/pip*\"] && process.ancestors.file.path not in [\"/opt/datadog-agent/embedded/bin/agent\",\n \"/opt/datadog-agent/embedded/bin/system-probe\", \"/opt/datadog-agent/embedded/bin/security-agent\",\n \"/opt/datadog-agent/embedded/bin/process-agent\", \"/opt/datadog-agent/bin/agent/agent\",\n \"/opt/datadog/apm/inject/auto_inject_runc\", \"/usr/bin/dd-host-install\", \"/usr/bin/dd-host-container-install\",\n \"/usr/bin/dd-container-install\", \"/opt/datadog-agent/bin/datadog-cluster-agent\"]\n agent_version: ''\n filters: []\n- id: exec_lsmod\n version: 1a14c811\n description: Kernel modules were listed using the lsmod command\n expression: exec.comm == \"lsmod\"\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: exec_whoami\n version: 90ea91b6\n description: The whoami command was executed\n expression: exec.comm == \"whoami\"\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: exec_wrmsr\n version: 13ea7d84\n description: The wrmsr program executed\n expression: exec.comm == \"wrmsr\"\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: executable_bit_added\n version: 6f8761f\n description: The executable bit was added to a newly created file\n expression: |-\n chmod.file.in_upper_layer &&\n chmod.file.change_time < 30s &&\n container.id != \"\" &&\n chmod.file.destination.mode != chmod.file.mode &&\n chmod.file.destination.mode & S_IXUSR|S_IXGRP|S_IXOTH > 0 &&\n process.argv in [\"+x\"]\n agent_version: ''\n filters: []\n- id: gcp_imds\n version: 3035dbbf\n description: An GCP IMDS was called via a network utility\n expression: exec.comm in [\"wget\", \"curl\", \"lwp-download\"] && exec.args in [~\"*metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token\",\n ~\"*169.254.169.254/computeMetadata/v1/instance/service-accounts/default/token\"]\n agent_version: ''\n filters: []\n- id: hidden_file_executed\n version: 60fd84a9\n description: A hidden file was executed in a suspicious folder\n expression: exec.file.name =~ \".*\" && exec.file.path in [~\"/home/**\", ~\"/tmp/**\",\n ~\"/var/tmp/**\", ~\"/dev/shm/**\"]\n agent_version: ''\n filters: []\n- id: interactive_shell_in_container\n version: f8bc8845\n description: An interactive shell was started inside of a container\n expression: |-\n exec.file.path in [ \"/bin/dash\",\n \"/usr/bin/dash\",\n \"/bin/sh\",\n \"/bin/static-sh\",\n \"/usr/bin/sh\",\n \"/bin/bash\",\n \"/usr/bin/bash\",\n \"/bin/bash-static\",\n \"/usr/bin/zsh\",\n \"/usr/bin/ash\",\n \"/usr/bin/csh\",\n \"/usr/bin/ksh\",\n \"/usr/bin/tcsh\",\n \"/usr/lib/initramfs-tools/bin/busybox\",\n \"/bin/busybox\",\n \"/usr/bin/fish\",\n \"/bin/ksh93\",\n \"/bin/rksh\",\n \"/bin/rksh93\",\n \"/bin/lksh\",\n \"/bin/mksh\",\n \"/bin/mksh-static\",\n \"/usr/bin/csharp\",\n \"/bin/posh\",\n \"/usr/bin/rc\",\n \"/bin/sash\",\n \"/usr/bin/yash\",\n \"/bin/zsh5\",\n \"/bin/zsh5-static\" ] && exec.args_flags in [\"i\"] && container.id !=\"\"\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: ip_check_domain\n version: d8a9934\n description: A DNS lookup was done for a IP check service\n expression: dns.question.name in [\"icanhazip.com\", \"ip-api.com\", \"myip.opendns.com\",\n \"checkip.amazonaws.com\", \"whatismyip.akamai.com\"] && process.file.name != \"\"\n agent_version: ''\n filters: []\n- id: iptables_egress_allowed\n version: a5be0ef9\n description: Egress traffic allowed using iptables\n expression: exec.comm == \"iptables\" && process.args in [r\".*OUTPUT.*((25[0-5]|(2[0-4]|1\\d|[1-9]|)\\d)\\.?\\b){4}.*ACCEPT\"]\n && process.args not in [r\"(127\\.)|(10\\.)|(172\\.1[6-9]\\.)|(172\\.2[0-9]\\.)|(^172\\.3[0-1]\\.)|(192\\.168\\.)|(169\\.254\\.)\"]\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: java_shell_execution_parent\n version: 1bcff0aa\n description: A java process spawned a shell, shell utility, or HTTP utility\n expression: |-\n (exec.file.path in [ \"/bin/dash\",\n \"/usr/bin/dash\",\n \"/bin/sh\",\n \"/bin/static-sh\",\n \"/usr/bin/sh\",\n \"/bin/bash\",\n \"/usr/bin/bash\",\n \"/bin/bash-static\",\n \"/usr/bin/zsh\",\n \"/usr/bin/ash\",\n \"/usr/bin/csh\",\n \"/usr/bin/ksh\",\n \"/usr/bin/tcsh\",\n \"/usr/lib/initramfs-tools/bin/busybox\",\n \"/bin/busybox\",\n \"/usr/bin/fish\",\n \"/bin/ksh93\",\n \"/bin/rksh\",\n \"/bin/rksh93\",\n \"/bin/lksh\",\n \"/bin/mksh\",\n \"/bin/mksh-static\",\n \"/usr/bin/csharp\",\n \"/bin/posh\",\n \"/usr/bin/rc\",\n \"/bin/sash\",\n \"/usr/bin/yash\",\n \"/bin/zsh5\",\n \"/bin/zsh5-static\" ] ||\n exec.comm in [\"wget\", \"curl\", \"lwp-download\"] ||\n exec.file.path in [\"/bin/cat\",\"/bin/chgrp\",\"/bin/chmod\",\"/bin/chown\",\"/bin/cp\",\"/bin/date\",\"/bin/dd\",\"/bin/df\",\"/bin/dir\",\"/bin/echo\",\"/bin/ln\",\"/bin/ls\",\"/bin/mkdir\",\"/bin/mknod\",\"/bin/mktemp\",\"/bin/mv\",\"/bin/pwd\",\"/bin/readlink\",\"/bin/rm\",\"/bin/rmdir\",\"/bin/sleep\",\"/bin/stty\",\"/bin/sync\",\"/bin/touch\",\"/bin/uname\",\"/bin/vdir\",\"/usr/bin/arch\",\"/usr/bin/b2sum\",\"/usr/bin/base32\",\"/usr/bin/base64\",\"/usr/bin/basename\",\"/usr/bin/chcon\",\"/usr/bin/cksum\",\"/usr/bin/comm\",\"/usr/bin/csplit\",\"/usr/bin/cut\",\"/usr/bin/dircolors\",\"/usr/bin/dirname\",\"/usr/bin/du\",\"/usr/bin/env\",\"/usr/bin/expand\",\"/usr/bin/expr\",\"/usr/bin/factor\",\"/usr/bin/fmt\",\"/usr/bin/fold\",\"/usr/bin/groups\",\"/usr/bin/head\",\"/usr/bin/hostid\",\"/usr/bin/id\",\"/usr/bin/install\",\"/usr/bin/join\",\"/usr/bin/link\",\"/usr/bin/logname\",\"/usr/bin/md5sum\",\"/usr/bin/md5sum.textutils\",\"/usr/bin/mkfifo\",\"/usr/bin/nice\",\"/usr/bin/nl\",\"/usr/bin/nohup\",\"/usr/bin/nproc\",\"/usr/bin/numfmt\",\"/usr/bin/od\",\"/usr/bin/paste\",\"/usr/bin/pathchk\",\"/usr/bin/pinky\",\"/usr/bin/pr\",\"/usr/bin/printenv\",\"/usr/bin/printf\",\"/usr/bin/ptx\",\"/usr/bin/realpath\",\"/usr/bin/runcon\",\"/usr/bin/seq\",\"/usr/bin/sha1sum\",\"/usr/bin/sha224sum\",\"/usr/bin/sha256sum\",\"/usr/bin/sha384sum\",\"/usr/bin/sha512sum\",\"/usr/bin/shred\",\"/usr/bin/shuf\",\"/usr/bin/sort\",\"/usr/bin/split\",\"/usr/bin/stat\",\"/usr/bin/stdbuf\",\"/usr/bin/sum\",\"/usr/bin/tac\",\"/usr/bin/tail\",\"/usr/bin/tee\",\"/usr/bin/test\",\"/usr/bin/timeout\",\"/usr/bin/tr\",\"/usr/bin/truncate\",\"/usr/bin/tsort\",\"/usr/bin/tty\",\"/usr/bin/unexpand\",\"/usr/bin/uniq\",\"/usr/bin/unlink\",\"/usr/bin/users\",\"/usr/bin/wc\",\"/usr/bin/who\",\"/usr/bin/whoami\",\"/usr/sbin/chroot\"])\n && process.parent.file.name == \"java\"\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: jupyterhub_shell\n version: ee1b8429\n description: A shell command was executed from a JupyterHub code cell\n expression: exec.file.path == \"/usr/bin/bash\" && process.ancestors.comm == \"jupyterhub-sing\"\n agent_version: ''\n filters: []\n- id: k8s_pod_service_account_token_accessed\n version: 88c0ee3a\n description: The Kubernetes pod service account token was accessed\n expression: open.file.path in [~\"/var/run/secrets/kubernetes.io/serviceaccount/**\",\n ~\"/run/secrets/kubernetes.io/serviceaccount/**\"] && open.file.name == \"token\"\n && process.file.path not in [\"/opt/datadog-agent/embedded/bin/agent\", \"/opt/datadog-agent/embedded/bin/system-probe\",\n \"/opt/datadog-agent/embedded/bin/security-agent\", \"/opt/datadog-agent/embedded/bin/process-agent\",\n \"/opt/datadog-agent/bin/agent/agent\", \"/opt/datadog/apm/inject/auto_inject_runc\",\n \"/usr/bin/dd-host-install\", \"/usr/bin/dd-host-container-install\", \"/usr/bin/dd-container-install\",\n \"/opt/datadog-agent/bin/datadog-cluster-agent\"] && process.file.path not in [\"/usr/bin/cilium-agent\",\n \"/coredns\", \"/usr/bin/cilium-operator\", \"/manager\", \"/fluent-bit/bin/fluent-bit\",\n \"/usr/local/bin/cloud-node-manager\", \"/secrets-store-csi\", \"/bin/secrets-store-csi-driver-provider-aws\",\n \"/usr/bin/calico-node\", \"/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent\",\n \"/nginx-ingress-controller\", \"/cluster-autoscaler\", \"/cluster-proportional-autoscaler\",\n \"/haproxy-ingress-controller\", \"/kube-state-metrics\", \"/fluent-bit-gke-exporter\",\n \"/bin/external-secrets\", \"/node-termination-handler\", \"/fluent-bit-gke-exporter\"]\n && process.ancestors.file.path not in [\"/opt/datadog-agent/embedded/bin/agent\",\n \"/opt/datadog-agent/embedded/bin/system-probe\", \"/opt/datadog-agent/embedded/bin/security-agent\",\n \"/opt/datadog-agent/embedded/bin/process-agent\", \"/opt/datadog-agent/bin/agent/agent\",\n \"/opt/datadog/apm/inject/auto_inject_runc\", \"/usr/bin/dd-host-install\", \"/usr/bin/dd-host-container-install\",\n \"/usr/bin/dd-container-install\", \"/opt/datadog-agent/bin/datadog-cluster-agent\"]\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: kernel_module_chmod\n version: 93da2ba6\n description: A new kernel module was added\n expression: |-\n (\n (chmod.file.path in [ ~\"/lib/modules/**\", ~\"/usr/lib/modules/**\" ])\n && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n && process.ancestors.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"] && process.ancestors.file.path != \"/usr/bin/kmod\"\n ) && chmod.file.destination.mode != chmod.file.mode\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: kernel_module_chown\n version: ca2cf124\n description: A new kernel module was added\n expression: |-\n (\n (chown.file.path in [ ~\"/lib/modules/**\", ~\"/usr/lib/modules/**\" ])\n && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n && process.ancestors.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"] && process.ancestors.file.path != \"/usr/bin/kmod\"\n ) && (chown.file.destination.uid != chown.file.uid || chown.file.destination.gid != chown.file.gid)\n agent_version: ''\n filters: []\n- id: kernel_module_link\n version: ae6469e5\n description: A new kernel module was added\n expression: |-\n (\n (link.file.path in [ ~\"/lib/modules/**\", ~\"/usr/lib/modules/**\" ]\n || link.file.destination.path in [ ~\"/lib/modules/**\", ~\"/usr/lib/modules/**\" ])\n && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n && process.ancestors.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"] && process.ancestors.file.path != \"/usr/bin/kmod\"\n )\n agent_version: ''\n filters: []\n- id: kernel_module_load\n version: 904592b4\n description: A kernel module was loaded\n expression: load_module.name not in [\"nf_tables\", \"iptable_filter\", \"ip6table_filter\",\n \"bpfilter\", \"ip6_tables\", \"ip6table_nat\", \"nf_reject_ipv4\", \"ipt_REJECT\", \"iptable_raw\"]\n && process.ancestors.file.name not in [~\"falcon*\", \"unattended-upgrade\", \"apt.systemd.daily\",\n \"xtables-legacy-multi\", \"ssm-agent-worker\"]\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: kernel_module_load_container\n version: 139b666a\n description: A container loaded a new kernel module\n expression: load_module.name != \"\" && container.id !=\"\"\n agent_version: ''\n filters: []\n- id: kernel_module_load_from_memory\n version: 78122acd\n description: A kernel module was loaded from memory\n expression: load_module.loaded_from_memory == true\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: kernel_module_load_from_memory_container\n version: a277c753\n description: A kernel module was loaded from memory inside a container\n expression: load_module.loaded_from_memory == true && container.id !=\"\"\n agent_version: ''\n filters: []\n- id: kernel_module_open\n version: 55f9569\n description: A new kernel module was added\n expression: |-\n (\n open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 &&\n (open.file.path in [ ~\"/lib/modules/**\", ~\"/usr/lib/modules/**\" ])\n && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n && process.ancestors.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"] && process.ancestors.file.path != \"/usr/bin/kmod\"\n )\n agent_version: ''\n filters: []\n- id: kernel_module_rename\n version: 8dd78e74\n description: A new kernel module was added\n expression: |-\n (\n (rename.file.path in [ ~\"/lib/modules/**\", ~\"/usr/lib/modules/**\" ]\n || rename.file.destination.path in [ ~\"/lib/modules/**\", ~\"/usr/lib/modules/**\" ])\n && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n && process.ancestors.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"] && process.ancestors.file.path != \"/usr/bin/kmod\"\n )\n agent_version: ''\n filters: []\n- id: kernel_module_unlink\n version: 652391be\n description: A new kernel module was added\n expression: |-\n (\n (unlink.file.path in [ ~\"/lib/modules/**\", ~\"/usr/lib/modules/**\" ])\n && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n && process.ancestors.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"] && process.ancestors.file.path != \"/usr/bin/kmod\"\n )\n agent_version: ''\n filters: []\n- id: kernel_module_utimes\n version: 405d45e7\n description: A new kernel module was added\n expression: |-\n (\n (utimes.file.path in [ ~\"/lib/modules/**\", ~\"/usr/lib/modules/**\" ])\n && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n && process.ancestors.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"] && process.ancestors.file.path != \"/usr/bin/kmod\"\n )\n agent_version: ''\n filters: []\n- id: kernel_msr_write\n version: 2c433a21\n description: A process attempted to enable writing to model-specific registers\n expression: exec.comm == \"modprobe\" && process.args =~ \"*msr*allow_writes*\"\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: kmod_list\n version: c353a548\n description: Kernel modules were listed using the kmod command\n expression: exec.comm == \"kmod\" && exec.args in [~\"*list*\"]\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: kubernetes_dns_enumeration\n version: 70a1304\n description: Kubernetes DNS enumeration\n expression: dns.question.name == \"any.any.svc.cluster.local\" && dns.question.type\n == SRV && container.id != \"\"\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: kubernetes_offensive_tool_executed\n version: 18130cbb\n description: Kubernetes offensive tool executed\n expression: (exec.file.name in [ ~\"python*\" ] && (\"KubiScan.py\" in exec.argv ||\n \"kubestriker\" in exec.argv )) || exec.file.name in [\"kubiscan\",\"kdigger\",\"kube-hunter\",\"rakkess\",\"peirates\",\"kubescape\",\"kubeaudit\",\"kube-linter\",\"stratus\",~\"botb-*\"]\n agent_version: ''\n filters: []\n- id: ld_preload_unusual_library_path\n version: cc6fd0c4\n description: The LD_PRELOAD variable is populated by a link to a suspicious file\n directory\n expression: exec.envs in [~\"LD_PRELOAD=*/tmp/*\" ,~\"LD_PRELOAD=/dev/shm/*\" ]\n agent_version: ''\n filters: []\n- id: libpam_ebpf_hook\n version: adbe1bb1\n description: Library libpam.so hooked using eBPF\n expression: bpf.cmd == BPF_MAP_CREATE && process.args in [r\".*libpam.so.*\"]\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: looney_tunables_exploit\n version: 7e9f4346\n description: Looney Tunables (CVE-2023-4911) exploit attempted\n expression: exec.file.mode & S_ISUID > 0 && exec.file.uid == 0 && exec.uid != 0\n && exec.envs in [~\"*GLIBC_TUNABLES*\"]\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: memfd_create\n version: 5908512a\n description: memfd object created\n expression: exec.file.name =~ \"memfd*\" && exec.file.path == \"\"\n agent_version: ''\n filters: []\n- id: minidump_usage\n version: 3de40e55\n description: Process memory was dumped using the minidump function from comsvcs.dll\n expression: exec.cmdline =~ \"*MiniDump*\"\n agent_version: ''\n filters:\n - os == \"windows\"\n- id: mount_host_fs\n version: accb4f\n description: The host file system was mounted in a container\n expression: mount.source.path == \"/\" && mount.fs_type != \"overlay\" && container.id\n != \"\"\n agent_version: ''\n filters: []\n- id: net_file_download\n version: 75b930ad\n description: A suspicious file was written by a network utility\n expression: |-\n open.flags & O_CREAT > 0 && process.comm in [\"wget\", \"curl\", \"lwp-download\"]\n && (\n (open.file.path =~ \"/tmp/**\" && open.file.name in [~\"*.sh\", ~\"*.c\", ~\"*.so\", ~\"*.ko\"])\n || open.file.path in [~\"/usr/**\", ~\"/lib/**\", ~\"/etc/**\", ~\"/var/tmp/**\", ~\"/dev/shm/**\"]\n )\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: net_unusual_request\n version: 3df2d9ef\n description: Network utility executed with suspicious URI\n expression: 'exec.comm in [\"wget\", \"curl\", \"lwp-download\"] && exec.args in [~\"*.php*\",\n ~\"*.jpg*\"] '\n agent_version: ''\n filters: []\n- id: net_util\n version: c3f2117b\n description: A network utility was executed\n expression: |-\n (exec.comm in [\"socat\", \"dig\", \"nslookup\", \"host\", ~\"netcat*\", ~\"nc*\", \"ncat\"] ||\n exec.comm in [\"wget\", \"curl\", \"lwp-download\"]) &&\n container.id == \"\" && exec.args not in [ ~\"*localhost*\", ~\"*127.0.0.1*\", ~\"*motd.ubuntu.com*\" ]\n agent_version: ''\n filters: []\n- id: net_util_exfiltration\n version: 5f7c8871\n description: Exfiltration attempt via network utility\n expression: \"exec.comm in [\\\"wget\\\", \\\"curl\\\", \\\"lwp-download\\\"] && \\nexec.args_options\\\n \\ in [ ~\\\"post-file=*\\\", ~\\\"post-data=*\\\", ~\\\"T=*\\\", ~\\\"d=@*\\\", ~\\\"upload-file=*\\\"\\\n , ~\\\"F=file*\\\"] &&\\nexec.args not in [~\\\"*localhost*\\\", ~\\\"*127.0.0.1*\\\"]\"\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: net_util_in_container\n version: 69e03ac1\n description: A network utility was executed in a container\n expression: |-\n (exec.comm in [\"socat\", \"dig\", \"nslookup\", \"host\", ~\"netcat*\", ~\"nc*\", \"ncat\"] ||\n exec.comm in [\"wget\", \"curl\", \"lwp-download\"]) &&\n container.id != \"\" && exec.args not in [ ~\"*localhost*\", ~\"*127.0.0.1*\", ~\"*motd.ubuntu.com*\" ]\n agent_version: ''\n filters: []\n- id: net_util_in_container_v2\n version: 26d8eba1\n description: A network utility was executed in a container\n expression: |-\n (exec.comm in [\"socat\", \"dig\", \"nslookup\", \"host\", ~\"netcat*\", ~\"nc*\", \"ncat\"] ||\n exec.comm in [\"wget\", \"curl\", \"lwp-download\"]) &&\n container.id != \"\" && exec.args not in [ ~\"*localhost*\", ~\"*127.0.0.1*\", ~\"*motd.ubuntu.com*\" ] && container.created_at > 180s\n agent_version: ''\n filters: []\n- id: network_sniffing_tool\n version: 4ae409bf\n description: Local account groups were enumerated after container start up\n expression: exec.file.name in [\"tcpdump\", \"tshark\"]\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: new_binary_execution_in_container\n version: 9dc42e1d\n description: A container executed a new binary not found in the container image\n expression: container.id != \"\" && process.file.in_upper_layer && process.file.modification_time\n < 30s && exec.file.name != \"\"\n agent_version: ''\n filters: []\n- id: nsswitch_conf_mod_chmod\n version: d301aedf\n description: nsswitch may have been modified without authorization\n expression: |-\n (\n (chmod.file.path in [ \"/etc/nsswitch.conf\" ])\n ) && chmod.file.destination.mode != chmod.file.mode && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/containerd\", \"/usr/local/bin/containerd\", \"/usr/bin/dockerd\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\"]\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: nsswitch_conf_mod_chown\n version: '69383592'\n description: nsswitch may have been modified without authorization\n expression: |-\n (\n (chown.file.path in [ \"/etc/nsswitch.conf\" ])\n ) && (chown.file.destination.uid != chown.file.uid || chown.file.destination.gid != chown.file.gid) && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/containerd\", \"/usr/local/bin/containerd\", \"/usr/bin/dockerd\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\"]\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: nsswitch_conf_mod_link\n version: e0565b29\n description: Nsswitch Configuration Modified\n expression: |-\n (\n (link.file.path in [ \"/etc/nsswitch.conf\" ]\n || link.file.destination.path in [ \"/etc/nsswitch.conf\" ])\n )\n agent_version: ''\n filters: []\n- id: nsswitch_conf_mod_open\n version: b5602c6f\n description: nsswitch may have been modified without authorization\n expression: |-\n (\n open.flags & ((O_RDWR|O_WRONLY|O_CREAT)) > 0 &&\n (open.file.path in [ \"/etc/nsswitch.conf\" ])\n ) && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/containerd\", \"/usr/local/bin/containerd\", \"/usr/bin/dockerd\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\"]\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: nsswitch_conf_mod_open_v2\n version: abef53c9\n description: nsswitch may have been modified without authorization\n expression: |-\n (\n open.flags & ((O_RDWR|O_WRONLY|O_CREAT)) > 0 &&\n (open.file.path in [ \"/etc/nsswitch.conf\" ])\n ) && container.created_at > 90s && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/containerd\", \"/usr/local/bin/containerd\", \"/usr/bin/dockerd\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\"]\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: nsswitch_conf_mod_rename\n version: aad34176\n description: Nsswitch Configuration Modified\n expression: |-\n (\n (rename.file.path in [ \"/etc/nsswitch.conf\" ]\n || rename.file.destination.path in [ \"/etc/nsswitch.conf\" ])\n )\n agent_version: ''\n filters: []\n- id: nsswitch_conf_mod_unlink\n version: 8a3e2fbb\n description: Nsswitch Configuration Modified\n expression: |-\n (\n (unlink.file.path in [ \"/etc/nsswitch.conf\" ])\n )\n agent_version: ''\n filters: []\n- id: nsswitch_conf_mod_utimes\n version: 902597c0\n description: Nsswitch Configuration Modified\n expression: |-\n (\n (utimes.file.path in [ \"/etc/nsswitch.conf\" ])\n )\n agent_version: ''\n filters: []\n- id: ntds_in_commandline\n version: 5cdd4bba\n description: NTDS file referenced in commandline\n expression: exec.cmdline =~ \"*ntds.dit*\"\n agent_version: ''\n filters:\n - os == \"windows\"\n- id: offensive_k8s_tool\n version: b83fba22\n description: A known kubernetes pentesting tool has been executed\n expression: (exec.file.name in [ ~\"python*\" ] && (\"KubiScan.py\" in exec.argv ||\n \"kubestriker\" in exec.argv ) ) || exec.file.name in [ \"kubiscan\",\"kdigger\",\"kube-hunter\",\"rakkess\",\"peirates\",\"kubescape\",\"kubeaudit\",\"kube-linter\",\"stratus\",~\"botb-*\"]\n agent_version: ''\n filters: []\n- id: omigod\n version: 2064b3b4\n description: Omiagent spawns a privileged child process\n expression: exec.uid >= 0 && process.ancestors.file.name == \"omiagent\"\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: open_msr_writes\n version: 261f8f98\n description: A process opened a model-specific register (MSR) configuration file\n expression: open.file.path == \"/sys/module/msr/parameters/allow_writes\" && open.flags\n & O_CREAT|O_TRUNC|O_RDWR|O_WRONLY > 0\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: package_management_in_container\n version: c152fcaf\n description: Package management was detected in a container\n expression: exec.file.path in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\",\n \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\",\n \"/sbin/apk\", \"/usr/lib/snapd/snapd\"] && container.id != \"\"\n agent_version: ''\n filters: []\n- id: package_management_in_container_v2\n version: 7eb85510\n description: Package management was detected in a conatiner outside of container\n start_up\n expression: exec.file.path in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\",\n \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\",\n \"/sbin/apk\", \"/usr/lib/snapd/snapd\"] && container.id != \"\" && container.created_at\n > 90s\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: pam_modification_chmod\n version: 974a676e\n description: PAM may have been modified without authorization\n expression: |-\n (\n (chmod.file.path in [ ~\"/etc/pam.d/**\", \"/etc/pam.conf\" ])\n ) && chmod.file.destination.mode != chmod.file.mode\n agent_version: ''\n filters: []\n- id: pam_modification_chown\n version: d89aa0a7\n description: PAM may have been modified without authorization\n expression: |-\n (\n (chown.file.path in [ ~\"/etc/pam.d/**\", \"/etc/pam.conf\" ])\n ) && (chown.file.destination.uid != chown.file.uid || chown.file.destination.gid != chown.file.gid)\n agent_version: ''\n filters: []\n- id: pam_modification_link\n version: aa68153f\n description: PAM may have been modified without authorization\n expression: |-\n (\n (link.file.path in [ ~\"/etc/pam.d/**\", \"/etc/pam.conf\" ]\n || link.file.destination.path in [ ~\"/etc/pam.d/**\", \"/etc/pam.conf\" ])\n )\n agent_version: ''\n filters: []\n- id: pam_modification_open\n version: e22e05b7\n description: PAM may have been modified without authorization\n expression: |-\n (\n open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 &&\n (open.file.path in [ ~\"/etc/pam.d/**\", \"/etc/pam.conf\" ])\n )\n agent_version: ''\n filters: []\n- id: pam_modification_rename\n version: bd1d257a\n description: PAM may have been modified without authorization\n expression: |-\n (\n (rename.file.path in [ ~\"/etc/pam.d/**\", \"/etc/pam.conf\" ]\n || rename.file.destination.path in [ ~\"/etc/pam.d/**\", \"/etc/pam.conf\" ])\n )\n agent_version: ''\n filters: []\n- id: pam_modification_unlink\n version: c3dc53e1\n description: PAM may have been modified without authorization\n expression: |-\n (\n (unlink.file.path in [ ~\"/etc/pam.d/**\", \"/etc/pam.conf\" ])\n )\n agent_version: ''\n filters: []\n- id: pam_modification_utimes\n version: d377b599\n description: PAM may have been modified without authorization\n expression: |-\n (\n (utimes.file.path in [ ~\"/etc/pam.d/**\", \"/etc/pam.conf\" ])\n ) && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/containerd\", \"/usr/local/bin/containerd\", \"/usr/bin/dockerd\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\"]\n agent_version: ''\n filters: []\n- id: passwd_execution\n version: e1d41f5e\n description: The passwd or chpasswd utility was used to modify an account password\n expression: exec.file.path in [\"/usr/bin/passwd\", \"/usr/sbin/chpasswd\"] && exec.args_flags\n not in [\"S\", \"status\"]\n agent_version: ''\n filters: []\n- id: paste_site\n version: 3dcef11\n description: A DNS lookup was done for a pastebin-like site\n expression: dns.question.name in [\"pastebin.com\", \"ghostbin.com\", \"termbin.com\",\n \"klgrth.io\"] && process.file.name != \"\"\n agent_version: ''\n filters: []\n- id: pci_11_5_critical_binaries_chmod\n version: b858137e\n description: Critical system binaries may have been modified\n expression: |-\n (\n (chmod.file.path in [ ~\"/bin/*\", ~\"/sbin/*\", ~\"/usr/bin/*\", ~\"/usr/sbin/*\", ~\"/usr/local/bin/*\", ~\"/usr/local/sbin/*\", ~\"/boot/**\" ])\n && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/containerd\", \"/usr/local/bin/containerd\", \"/usr/bin/dockerd\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\"]\n && process.ancestors.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n ) && chmod.file.destination.mode != chmod.file.mode\n agent_version: ''\n filters: []\n- id: pci_11_5_critical_binaries_chown\n version: d6630ebc\n description: Critical system binaries may have been modified\n expression: |-\n (\n (chown.file.path in [ ~\"/bin/*\", ~\"/sbin/*\", ~\"/usr/bin/*\", ~\"/usr/sbin/*\", ~\"/usr/local/bin/*\", ~\"/usr/local/sbin/*\", ~\"/boot/**\" ])\n && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/containerd\", \"/usr/local/bin/containerd\", \"/usr/bin/dockerd\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\"]\n && process.ancestors.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n ) && (chown.file.destination.uid != chown.file.uid || chown.file.destination.gid != chown.file.gid)\n agent_version: ''\n filters: []\n- id: pci_11_5_critical_binaries_link\n version: 9b8182c6\n description: Critical system binaries may have been modified\n expression: |-\n (\n (link.file.path in [ ~\"/bin/*\", ~\"/sbin/*\", ~\"/usr/bin/*\", ~\"/usr/sbin/*\", ~\"/usr/local/bin/*\", ~\"/usr/local/sbin/*\", ~\"/boot/**\" ]\n || link.file.destination.path in [ ~\"/bin/*\", ~\"/sbin/*\", ~\"/usr/bin/*\", ~\"/usr/sbin/*\", ~\"/usr/local/bin/*\", ~\"/usr/local/sbin/*\", ~\"/boot/**\" ])\n && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/containerd\", \"/usr/local/bin/containerd\", \"/usr/bin/dockerd\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\"]\n && process.ancestors.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n )\n agent_version: ''\n filters: []\n- id: pci_11_5_critical_binaries_open\n version: ce1c6918\n description: Critical system binaries may have been modified\n expression: |-\n (\n open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 &&\n open.file.path in [ ~\"/bin/*\", ~\"/sbin/*\", ~\"/usr/bin/*\", ~\"/usr/sbin/*\", ~\"/usr/local/bin/*\", ~\"/usr/local/sbin/*\", ~\"/boot/**\" ]\n && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/containerd\", \"/usr/local/bin/containerd\", \"/usr/bin/dockerd\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\"]\n && process.ancestors.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n )\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: pci_11_5_critical_binaries_open_v2\n version: 45abd074\n description: Critical system binaries may have been modified\n expression: |-\n (\n open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 &&\n open.file.path in [ ~\"/bin/*\", ~\"/sbin/*\", ~\"/usr/bin/*\", ~\"/usr/sbin/*\", ~\"/usr/local/bin/*\", ~\"/usr/local/sbin/*\", ~\"/boot/**\" ]\n && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/containerd\", \"/usr/local/bin/containerd\", \"/usr/bin/dockerd\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\"]\n && process.ancestors.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n ) && container.created_at > 90s\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: pci_11_5_critical_binaries_rename\n version: 2a133ffc\n description: Critical system binaries may have been modified\n expression: |-\n (\n (rename.file.path in [ ~\"/bin/*\", ~\"/sbin/*\", ~\"/usr/bin/*\", ~\"/usr/sbin/*\", ~\"/usr/local/bin/*\", ~\"/usr/local/sbin/*\", ~\"/boot/**\" ]\n || rename.file.destination.path in [ ~\"/bin/*\", ~\"/sbin/*\", ~\"/usr/bin/*\", ~\"/usr/sbin/*\", ~\"/usr/local/bin/*\", ~\"/usr/local/sbin/*\", ~\"/boot/**\" ])\n && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/containerd\", \"/usr/local/bin/containerd\", \"/usr/bin/dockerd\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\"]\n && process.ancestors.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n )\n agent_version: ''\n filters: []\n- id: pci_11_5_critical_binaries_unlink\n version: a750ab26\n description: Critical system binaries may have been modified\n expression: |-\n (\n (unlink.file.path in [ ~\"/bin/*\", ~\"/sbin/*\", ~\"/usr/bin/*\", ~\"/usr/sbin/*\", ~\"/usr/local/bin/*\", ~\"/usr/local/sbin/*\", ~\"/boot/**\" ])\n && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/containerd\", \"/usr/local/bin/containerd\", \"/usr/bin/dockerd\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\"]\n && process.ancestors.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n )\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: pci_11_5_critical_binaries_utimes\n version: 5e2a9d6f\n description: Critical system binaries may have been modified\n expression: |-\n (\n (utimes.file.path in [ ~\"/bin/*\", ~\"/sbin/*\", ~\"/usr/bin/*\", ~\"/usr/sbin/*\", ~\"/usr/local/bin/*\", ~\"/usr/local/sbin/*\", ~\"/boot/**\" ])\n && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/containerd\", \"/usr/local/bin/containerd\", \"/usr/bin/dockerd\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\"]\n && process.ancestors.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n )\n agent_version: ''\n filters: []\n- id: potential_cryptominer\n version: 47048a42\n description: A process resolved a DNS name associated with cryptomining activity\n expression: dns.question.name in [~\"*minexmr.com\", ~\"*nanopool.org\", ~\"*supportxmr.com\",\n ~\"*c3pool.com\", ~\"*p2pool.io\", ~\"*ethermine.org\", ~\"*f2pool.com\", ~\"*poolin.me\",\n ~\"*rplant.xyz\"] && process.file.name != \"\"\n agent_version: ''\n filters: []\n- id: potential_web_shell_parent\n version: b67ffbcd\n description: A web application spawned a shell or shell utility\n expression: |-\n (exec.file.path in [ \"/bin/dash\",\n \"/usr/bin/dash\",\n \"/bin/sh\",\n \"/bin/static-sh\",\n \"/usr/bin/sh\",\n \"/bin/bash\",\n \"/usr/bin/bash\",\n \"/bin/bash-static\",\n \"/usr/bin/zsh\",\n \"/usr/bin/ash\",\n \"/usr/bin/csh\",\n \"/usr/bin/ksh\",\n \"/usr/bin/tcsh\",\n \"/usr/lib/initramfs-tools/bin/busybox\",\n \"/bin/busybox\",\n \"/usr/bin/fish\",\n \"/bin/ksh93\",\n \"/bin/rksh\",\n \"/bin/rksh93\",\n \"/bin/lksh\",\n \"/bin/mksh\",\n \"/bin/mksh-static\",\n \"/usr/bin/csharp\",\n \"/bin/posh\",\n \"/usr/bin/rc\",\n \"/bin/sash\",\n \"/usr/bin/yash\",\n \"/bin/zsh5\",\n \"/bin/zsh5-static\" ] || exec.comm in [\"wget\", \"curl\", \"lwp-download\"] || exec.file.path in [\"/bin/cat\",\"/bin/chgrp\",\"/bin/chmod\",\"/bin/chown\",\"/bin/cp\",\"/bin/date\",\"/bin/dd\",\"/bin/df\",\"/bin/dir\",\"/bin/echo\",\"/bin/ln\",\"/bin/ls\",\"/bin/mkdir\",\"/bin/mknod\",\"/bin/mktemp\",\"/bin/mv\",\"/bin/pwd\",\"/bin/readlink\",\"/bin/rm\",\"/bin/rmdir\",\"/bin/sleep\",\"/bin/stty\",\"/bin/sync\",\"/bin/touch\",\"/bin/uname\",\"/bin/vdir\",\"/usr/bin/arch\",\"/usr/bin/b2sum\",\"/usr/bin/base32\",\"/usr/bin/base64\",\"/usr/bin/basename\",\"/usr/bin/chcon\",\"/usr/bin/cksum\",\"/usr/bin/comm\",\"/usr/bin/csplit\",\"/usr/bin/cut\",\"/usr/bin/dircolors\",\"/usr/bin/dirname\",\"/usr/bin/du\",\"/usr/bin/env\",\"/usr/bin/expand\",\"/usr/bin/expr\",\"/usr/bin/factor\",\"/usr/bin/fmt\",\"/usr/bin/fold\",\"/usr/bin/groups\",\"/usr/bin/head\",\"/usr/bin/hostid\",\"/usr/bin/id\",\"/usr/bin/install\",\"/usr/bin/join\",\"/usr/bin/link\",\"/usr/bin/logname\",\"/usr/bin/md5sum\",\"/usr/bin/md5sum.textutils\",\"/usr/bin/mkfifo\",\"/usr/bin/nice\",\"/usr/bin/nl\",\"/usr/bin/nohup\",\"/usr/bin/nproc\",\"/usr/bin/numfmt\",\"/usr/bin/od\",\"/usr/bin/paste\",\"/usr/bin/pathchk\",\"/usr/bin/pinky\",\"/usr/bin/pr\",\"/usr/bin/printenv\",\"/usr/bin/printf\",\"/usr/bin/ptx\",\"/usr/bin/realpath\",\"/usr/bin/runcon\",\"/usr/bin/seq\",\"/usr/bin/sha1sum\",\"/usr/bin/sha224sum\",\"/usr/bin/sha256sum\",\"/usr/bin/sha384sum\",\"/usr/bin/sha512sum\",\"/usr/bin/shred\",\"/usr/bin/shuf\",\"/usr/bin/sort\",\"/usr/bin/split\",\"/usr/bin/stat\",\"/usr/bin/stdbuf\",\"/usr/bin/sum\",\"/usr/bin/tac\",\"/usr/bin/tail\",\"/usr/bin/tee\",\"/usr/bin/test\",\"/usr/bin/timeout\",\"/usr/bin/tr\",\"/usr/bin/truncate\",\"/usr/bin/tsort\",\"/usr/bin/tty\",\"/usr/bin/unexpand\",\"/usr/bin/uniq\",\"/usr/bin/unlink\",\"/usr/bin/users\",\"/usr/bin/wc\",\"/usr/bin/who\",\"/usr/bin/whoami\",\"/usr/sbin/chroot\"]) &&\n (process.parent.file.name in [\"apache2\", \"nginx\", ~\"tomcat*\", \"httpd\"] || process.parent.file.name =~ \"php*\")\n agent_version: ''\n filters: []\n- id: procdump_execution\n version: bfcebb5c\n description: A tool used to dump process memory has been executed\n expression: exec.file.name in [\"procmon.exe\",\"procdump.exe\"]\n agent_version: ''\n filters:\n - os == \"windows\"\n- id: ptrace_antidebug\n version: a6289ff7\n description: A process uses an anti-debugging technique to block debuggers\n expression: ptrace.request == PTRACE_TRACEME && process.file.name != \"\"\n agent_version: ''\n filters: []\n- id: ptrace_injection\n version: 6d290a43\n description: A process attempted to inject code into another process\n expression: ptrace.request == PTRACE_POKETEXT || ptrace.request == PTRACE_POKEDATA\n || ptrace.request == PTRACE_POKEUSR\n agent_version: ''\n filters: []\n- id: pwnkit_privilege_escalation\n version: c83bbabc\n description: A process was spawned with indicators of exploitation of CVE-2021-4034\n expression: (exec.file.path == \"/usr/bin/pkexec\" && exec.envs in [~\"*SHELL*\", ~\"*PATH*\"]\n && exec.envs not in [~\"*DISPLAY*\", ~\"*DESKTOP_SESSION*\"] && exec.uid != 0)\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: python_cli_code\n version: '989474'\n description: Python code was provided on the command line\n expression: exec.file.name == ~\"python*\" && exec.args_flags in [\"c\"] && exec.args\n in [~\"*-c*SOCK_STREAM*\", ~\"*-c*subprocess*\", \"*-c*/bash*\", \"*-c*/bin/sh*\", \"*-c*pty.spawn*\"]\n && exec.args !~ \"*setuptools*\"\n agent_version: ''\n filters: []\n- id: ransomware_note\n version: ffd9b885\n description: Possible ransomware note created under common user directories\n expression: open.flags & O_CREAT > 0 && open.file.path in [~\"/home/**\", ~\"/root/**\",\n ~\"/bin/**\", ~\"/usr/bin/**\", ~\"/opt/**\", ~\"/etc/**\", ~\"/var/log/**\", ~\"/var/lib/log/**\",\n ~\"/var/backup/**\", ~\"/var/www/**\"] && open.file.name in [r\"(?i).*(restore|recovery|readme|instruction|how_to|ransom).*|.*(your_|crypt|lock|important).*\\.txt$\"]\n && open.file.name != \"README.md\"\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: rc_scripts_modified\n version: af295b08\n description: RC scripts modified\n expression: (open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 && (open.file.path\n in [\"/etc/rc.common\", \"/etc/rc.local\"])) && process.ancestors.file.path not in\n [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\",\n \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n agent_version: ''\n filters: []\n- id: read_kubeconfig\n version: '80926379'\n description: The kubeconfig file was accessed\n expression: open.file.path in [~\"/home/*/.kube/config\", \"/root/.kube/config\"]\n agent_version: ''\n filters: []\n- id: read_release_info\n version: d0cc9710\n description: OS information was read from the /etc/lsb-release file\n expression: open.file.path == \"/etc/lsb-release\" && open.flags & O_RDONLY > 0\n agent_version: ''\n filters: []\n- id: redis_sandbox_escape\n version: d7eb615a\n description: Detects CVE-2022-0543\n expression: (open.file.path =~ \"/usr/lib/x86_64-linux-gnu/*\" && open.file.name in\n [\"libc-2.29.so\", \"libc-2.30.so\", \"libc-2.31.so\", \"libc-2.32.so\", \"libc-2.33.so\",\n \"libc-2.34.so\", \"libc-2.35.so\", \"libc-2.36.so\", \"libc-2.37.so\"]) && process.ancestors.comm\n in [\"redis-check-rdb\", \"redis-server\"]\n agent_version: ''\n filters: []\n- id: redis_save_module\n version: b1cb9110\n description: Redis module has been created\n expression: (open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 && open.file.path\n =~ \"/tmp/**\" && open.file.name in [~\"*.rdb\", ~\"*.aof\", ~\"*.so\"]) && process.file.name\n in [\"redis-check-rdb\", \"redis-server\"]\n agent_version: ''\n filters: []\n- id: runc_modification\n version: c7144439\n description: The runc binary was modified in a non-standard way\n expression: |-\n open.file.path in [\"/usr/bin/runc\", \"/usr/sbin/runc\", \"/usr/bin/docker-runc\"]\n && open.flags & O_CREAT|O_TRUNC|O_RDWR|O_WRONLY > 0\n && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/containerd\", \"/usr/local/bin/containerd\", \"/usr/bin/dockerd\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\"]\n && process.ancestors.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n agent_version: ''\n filters: []\n- id: scheduled_task_creation\n version: 9c3f2289\n description: A scheduled task was created\n expression: exec.file.name in [\"at.exe\",\"schtasks.exe\"]\n agent_version: ''\n filters:\n - os == \"windows\"\n- id: selinux_disable_enforcement\n version: afa9a8ba\n description: SELinux enforcement status was disabled\n expression: selinux.enforce.status in [\"permissive\", \"disabled\"] && process.ancestors.args\n != ~\"*BECOME-SUCCESS*\"\n agent_version: ''\n filters: []\n- id: sensitive_tracing\n version: c4585b20\n description: A process is tracing privileged processes or sshd for possible credential\n dumping\n expression: (ptrace.request == PTRACE_PEEKTEXT || ptrace.request == PTRACE_PEEKDATA\n || ptrace.request == PTRACE_PEEKUSR) && ptrace.tracee.euid == 0 && process.comm\n not in [\"dlv\", \"dlv-linux-amd64\", \"strace\", \"gdb\", \"lldb-server\"]\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: service_stop\n version: 8e434232\n description: systemctl used to stop a service\n expression: exec.file.name == \"systemctl\" && exec.args in [~\"*stop*\"]\n agent_version: ''\n filters: []\n- id: shell_history_deleted\n version: ff763e6\n description: Shell History was Deleted\n expression: (unlink.file.name =~ r\".([dbazfi]*sh)(_history)$\") && process.comm\n not in [\"dockerd\", \"containerd\"]\n agent_version: ''\n filters: []\n- id: shell_history_symlink\n version: 31982e4d\n description: A symbolic link for shell history was created targeting /dev/null\n expression: exec.comm == \"ln\" && exec.args in [~\"*.*history*\", \"/dev/null\"]\n agent_version: ''\n filters: []\n- id: shell_history_truncated\n version: 38ec83e8\n description: Shell History was Deleted\n expression: open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 && open.file.name\n =~ r\".([dbazfi]*sh)(_history)$\" && open.file.path in [~\"/root/*\", ~\"/home/**\"]\n && process.file.name == \"truncate\"\n agent_version: ''\n filters: []\n- id: shell_profile_modification\n version: d1cecdac\n description: Shell profile was modified\n expression: open.file.path in [~\"/home/*/*profile\", ~\"/home/*/*rc\"] && open.flags\n & ((O_CREAT|O_TRUNC|O_RDWR|O_WRONLY)) > 0\n agent_version: ''\n filters: []\n- id: ssh_authorized_keys_chmod\n version: 79be8a18\n description: SSH modified keys may have been modified\n expression: |-\n (\n chmod.file.name in [ \"authorized_keys\", \"authorized_keys2\" ] && (chmod.file.path in [ ~\"/root/.ssh/*\", ~\"/home/*/.ssh/*\", ~\"/var/lib/*/.ssh/*\" ])\n ) && chmod.file.destination.mode != chmod.file.mode\n agent_version: ''\n filters: []\n- id: ssh_authorized_keys_chown\n version: 7c835bfd\n description: SSH modified keys may have been modified\n expression: |-\n (\n chown.file.name in [ \"authorized_keys\", \"authorized_keys2\" ] && (chown.file.path in [ ~\"/root/.ssh/*\", ~\"/home/*/.ssh/*\", ~\"/var/lib/*/.ssh/*\" ])\n ) && (chown.file.destination.uid != chown.file.uid || chown.file.destination.gid != chown.file.gid)\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: ssh_authorized_keys_link\n version: 979d56a1\n description: SSH modified keys may have been modified\n expression: |-\n (\n link.file.name in [ \"authorized_keys\", \"authorized_keys2\" ] && (link.file.path in [ ~\"/root/.ssh/*\", ~\"/home/*/.ssh/*\", ~\"/var/lib/*/.ssh/*\" ]\n || link.file.destination.path in [ ~\"/root/.ssh/*\", ~\"/home/*/.ssh/*\", ~\"/var/lib/*/.ssh/*\" ])\n )\n agent_version: ''\n filters: []\n- id: ssh_authorized_keys_open\n version: c4fa7b8f\n description: SSH modified keys may have been modified\n expression: |-\n (\n open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 &&\n open.file.name in [ \"authorized_keys\", \"authorized_keys2\" ] && (open.file.path in [ ~\"/root/.ssh/*\", ~\"/home/*/.ssh/*\", ~\"/var/lib/*/.ssh/*\" ])\n )\n agent_version: ''\n filters: []\n- id: ssh_authorized_keys_open_v2\n version: 513f8108\n description: SSH modified keys may have been modified\n expression: |-\n (\n open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 &&\n open.file.name in [ \"authorized_keys\", \"authorized_keys2\" ] && (open.file.path in [ ~\"/root/.ssh/*\", ~\"/home/*/.ssh/*\", ~\"/var/lib/*/.ssh/*\" ])\n ) && container.created_at > 90s\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: ssh_authorized_keys_rename\n version: 6f58449a\n description: SSH modified keys may have been modified\n expression: |-\n (\n rename.file.name in [ \"authorized_keys\", \"authorized_keys2\" ] && (rename.file.path in [ ~\"/root/.ssh/*\", ~\"/home/*/.ssh/*\", ~\"/var/lib/*/.ssh/*\" ]\n || rename.file.destination.path in [ ~\"/root/.ssh/*\", ~\"/home/*/.ssh/*\", ~\"/var/lib/*/.ssh/*\" ])\n )\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: ssh_authorized_keys_unlink\n version: 41090e4e\n description: SSH modified keys may have been modified\n expression: |-\n (\n unlink.file.name in [ \"authorized_keys\", \"authorized_keys2\" ] && (unlink.file.path in [ ~\"/root/.ssh/*\", ~\"/home/*/.ssh/*\", ~\"/var/lib/*/.ssh/*\" ])\n )\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: ssh_authorized_keys_utimes\n version: c614f0d\n description: SSH modified keys may have been modified\n expression: |-\n (\n utimes.file.name in [ \"authorized_keys\", \"authorized_keys2\" ] && (utimes.file.path in [ ~\"/root/.ssh/*\", ~\"/home/*/.ssh/*\", ~\"/var/lib/*/.ssh/*\" ])\n )\n agent_version: ''\n filters: []\n- id: ssl_certificate_tampering_chmod\n version: 128236e9\n description: SSL certificates may have been tampered with\n expression: |-\n (\n (chmod.file.path in [ ~\"/etc/ssl/certs/**\", ~\"/etc/pki/**\" ])\n && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n ) && chmod.file.mode != chmod.file.destination.mode\n && process.file.path != \"/usr/sbin/update-ca-certificates\"\n && process.ancestors.file.path != \"/usr/sbin/update-ca-certificates\"\n && process.ancestors.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n && process.file.name !~ \"runc*\"\n agent_version: ''\n filters: []\n- id: ssl_certificate_tampering_chown\n version: 5af3db18\n description: SSL certificates may have been tampered with\n expression: |-\n (\n (chown.file.path in [ ~\"/etc/ssl/certs/**\", ~\"/etc/pki/**\" ])\n && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n ) && (chown.file.destination.uid != chown.file.uid || chown.file.destination.gid != chown.file.gid)\n && process.file.path != \"/usr/sbin/update-ca-certificates\"\n && process.ancestors.file.path != \"/usr/sbin/update-ca-certificates\"\n && process.ancestors.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n && process.file.name !~ \"runc*\"\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: ssl_certificate_tampering_link\n version: 1f02b72d\n description: SSL certificates may have been tampered with\n expression: |-\n (\n (link.file.path in [ ~\"/etc/ssl/certs/**\", ~\"/etc/pki/**\" ]\n || link.file.destination.path in [ ~\"/etc/ssl/certs/**\", ~\"/etc/pki/**\" ])\n && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n && process.file.path != \"/usr/sbin/update-ca-certificates\"\n && process.ancestors.file.path != \"/usr/sbin/update-ca-certificates\"\n && process.ancestors.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n && process.file.name !~ \"runc*\"\n )\n agent_version: ''\n filters: []\n- id: ssl_certificate_tampering_open\n version: c34bcf3a\n description: SSL certificates may have been tampered with\n expression: |-\n (\n open.flags & (O_CREAT|O_RDWR|O_WRONLY) > 0 &&\n (open.file.path in [ ~\"/etc/ssl/certs/**\", ~\"/etc/pki/**\" ])\n )\n && process.file.path != \"/usr/sbin/update-ca-certificates\"\n && process.ancestors.file.path != \"/usr/sbin/update-ca-certificates\"\n && process.ancestors.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n && process.file.name !~ \"runc*\"\n agent_version: ''\n filters: []\n- id: ssl_certificate_tampering_open_v2\n version: a90058eb\n description: SSL certificates may have been tampered with\n expression: |-\n (\n open.flags & (O_CREAT|O_RDWR|O_WRONLY) > 0 &&\n (open.file.path in [ ~\"/etc/ssl/certs/**\", ~\"/etc/pki/**\" ])\n )\n && process.file.path != \"/usr/sbin/update-ca-certificates\"\n && process.ancestors.file.path != \"/usr/sbin/update-ca-certificates\"\n && process.ancestors.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n && process.file.name !~ \"runc*\"\n && container.created_at > 90s\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: ssl_certificate_tampering_rename\n version: e74f2226\n description: SSL certificates may have been tampered with\n expression: |-\n (\n (rename.file.path in [ ~\"/etc/ssl/certs/**\", ~\"/etc/pki/**\" ]\n || rename.file.destination.path in [ ~\"/etc/ssl/certs/**\", ~\"/etc/pki/**\" ])\n && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n )\n && process.file.path != \"/usr/sbin/update-ca-certificates\"\n && process.ancestors.file.path != \"/usr/sbin/update-ca-certificates\"\n && process.ancestors.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n && process.file.name !~ \"runc*\"\n agent_version: ''\n filters: []\n- id: ssl_certificate_tampering_unlink\n version: 774e2aea\n description: SSL certificates may have been tampered with\n expression: |-\n (\n (unlink.file.path in [ ~\"/etc/ssl/certs/**\" ])\n && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n )\n && process.file.path != \"/usr/sbin/update-ca-certificates\"\n && process.ancestors.file.path != \"/usr/sbin/update-ca-certificates\"\n && process.ancestors.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n && process.file.name !~ \"runc*\"\n agent_version: ''\n filters: []\n- id: ssl_certificate_tampering_utimes\n version: 29db81c1\n description: SSL certificates may have been tampered with\n expression: |-\n (\n (utimes.file.path in [ ~\"/etc/ssl/certs/**\" ])\n && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n )\n && process.file.path != \"/usr/sbin/update-ca-certificates\"\n && process.ancestors.file.path != \"/usr/sbin/update-ca-certificates\"\n && process.ancestors.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n && process.file.name !~ \"runc*\"\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: sudoers_policy_modified_chmod\n version: ae70daab\n description: Sudoers policy file may have been modified without authorization\n expression: \"(\\n (chmod.file.path == \\\"/etc/sudoers\\\") \\n) && chmod.file.destination.mode\\\n \\ != chmod.file.mode && process.ancestors.file.path not in [~\\\"/usr/bin/apt*\\\"\\\n , \\\"/usr/bin/dpkg\\\", \\\"/usr/bin/rpm\\\", \\\"/usr/bin/unattended-upgrade\\\", \\\"/usr/bin/npm\\\"\\\n , ~\\\"/usr/bin/pip*\\\", \\\"/usr/bin/yum\\\", \\\"/sbin/apk\\\", \\\"/usr/lib/snapd/snapd\\\"\\\n ]\"\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: sudoers_policy_modified_chown\n version: 898b1aa0\n description: Sudoers policy file may have been modified without authorization\n expression: |-\n (\n (chown.file.path == \"/etc/sudoers\")\n ) && (chown.file.destination.uid != chown.file.uid || chown.file.destination.gid != chown.file.gid)\n agent_version: ''\n filters: []\n- id: sudoers_policy_modified_link\n version: 1f1b8962\n description: Sudoers policy file may have been modified without authorization\n expression: |-\n (\n (link.file.path == \"/etc/sudoers\"\n || link.file.destination.path == \"/etc/sudoers\")\n )\n agent_version: ''\n filters: []\n- id: sudoers_policy_modified_open\n version: af2610b6\n description: Sudoers policy file may have been modified without authorization\n expression: |2-\n\n (open.flags & (O_CREAT|O_TRUNC|O_RDWR|O_WRONLY) > 0 &&\n (open.file.path == \"/etc/sudoers\")) && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: sudoers_policy_modified_rename\n version: 531fc9ae\n description: Sudoers policy file may have been modified without authorization\n expression: |-\n (\n (rename.file.path == \"/etc/sudoers\"\n || rename.file.destination.path == \"/etc/sudoers\")\n )\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: sudoers_policy_modified_unlink\n version: 5568da57\n description: Sudoers policy file may have been modified without authorization\n expression: |-\n (\n (unlink.file.path == \"/etc/sudoers\")\n )\n agent_version: ''\n filters: []\n- id: sudoers_policy_modified_utimes\n version: d99c2466\n description: Sudoers policy file may have been modified without authorization\n expression: |-\n (\n (utimes.file.path == \"/etc/sudoers\")\n ) && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/containerd\", \"/usr/local/bin/containerd\", \"/usr/bin/dockerd\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\"]\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: suid_file_execution\n version: 1b4f4075\n description: a SUID file was executed\n expression: (setuid.euid == 0 || setuid.uid == 0) && process.file.mode & S_ISUID\n > 0 && process.file.uid == 0 && process.uid != 0 && process.file.path != \"/usr/bin/sudo\"\n agent_version: ''\n filters: []\n- id: suspicious_bitsadmin_usage\n version: 86c03d62\n description: A suspicious bitsadmin command has been executed\n expression: exec.file.name == \"bitsadmin.exe\" && exec.cmdline in [~\"*addfile*\",\n ~\"*create*\", ~\"*resume*\"]\n agent_version: ''\n filters:\n - os == \"windows\"\n- id: suspicious_container_client\n version: 8b9461f4\n description: A container management utility was executed in a container\n expression: exec.file.name in [\"docker\", \"kubectl\"] && container.id != \"\"\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: suspicious_suid_execution\n version: 216c8207\n description: Recently written or modified suid file has been executed\n expression: ((process.file.mode & S_ISUID > 0) && process.file.modification_time\n < 30s) && exec.file.name != \"\" && process.ancestors.file.path not in [\"/opt/datadog-agent/embedded/bin/agent\",\n \"/opt/datadog-agent/embedded/bin/system-probe\", \"/opt/datadog-agent/embedded/bin/security-agent\",\n \"/opt/datadog-agent/embedded/bin/process-agent\", \"/opt/datadog-agent/bin/agent/agent\",\n \"/opt/datadog/apm/inject/auto_inject_runc\", \"/usr/bin/dd-host-install\", \"/usr/bin/dd-host-container-install\",\n \"/usr/bin/dd-container-install\", \"/opt/datadog-agent/bin/datadog-cluster-agent\"]\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: systemd_modification_chmod\n version: e555b2b0\n description: A service may have been modified without authorization\n expression: |-\n (\n (chmod.file.path in [ ~\"/lib/systemd/system/**\", ~\"/usr/lib/systemd/system/**\", ~\"/etc/systemd/system/**\" ])\n && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n ) && chmod.file.destination.mode != chmod.file.mode\n agent_version: ''\n filters: []\n- id: systemd_modification_chown\n version: a0497885\n description: A service may have been modified without authorization\n expression: |-\n (\n (chown.file.path in [ ~\"/lib/systemd/system/**\", ~\"/usr/lib/systemd/system/**\", ~\"/etc/systemd/system/**\" ])\n && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n ) && (chown.file.destination.uid != chown.file.uid || chown.file.destination.gid != chown.file.gid)\n agent_version: ''\n filters: []\n- id: systemd_modification_link\n version: 11a77f5b\n description: A service may have been modified without authorization\n expression: |-\n (\n (link.file.path in [ ~\"/lib/systemd/system/**\", ~\"/usr/lib/systemd/system/**\", ~\"/etc/systemd/system/**\" ]\n || link.file.destination.path in [ ~\"/lib/systemd/system/**\", ~\"/usr/lib/systemd/system/**\", ~\"/etc/systemd/system/**\" ])\n && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n )\n agent_version: ''\n filters: []\n- id: systemd_modification_open\n version: 13b2daf3\n description: A service may have been modified without authorization\n expression: |-\n (\n open.flags & (O_CREAT|O_RDWR|O_WRONLY) > 0 &&\n (open.file.path in [ ~\"/lib/systemd/system/**\", ~\"/usr/lib/systemd/system/**\", ~\"/etc/systemd/system/**\" ])\n && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n )\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: systemd_modification_rename\n version: 9759ce6\n description: A service may have been modified without authorization\n expression: |-\n (\n (rename.file.path in [ ~\"/lib/systemd/system/**\", ~\"/usr/lib/systemd/system/**\", ~\"/etc/systemd/system/**\" ]\n || rename.file.destination.path in [ ~\"/lib/systemd/system/**\", ~\"/usr/lib/systemd/system/**\", ~\"/etc/systemd/system/**\" ])\n && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n )\n agent_version: ''\n filters: []\n- id: systemd_modification_unlink\n version: 8400ece8\n description: A service may have been modified without authorization\n expression: |-\n (\n (unlink.file.path in [ ~\"/lib/systemd/system/**\", ~\"/usr/lib/systemd/system/**\", ~\"/etc/systemd/system/**\" ])\n && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n )\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: systemd_modification_utimes\n version: 82acf2d\n description: A service may have been modified without authorization\n expression: |-\n (\n (utimes.file.path in [ ~\"/lib/systemd/system/**\", ~\"/usr/lib/systemd/system/**\", ~\"/etc/systemd/system/**\" ])\n && process.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n )\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: tar_execution\n version: e63af392\n description: Tar archive created\n expression: exec.file.path == \"/usr/bin/tar\" && exec.args_flags in [\"create\",\"c\"]\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: tde_malware_egress_traffic_allowed_iptables\n version: 14f124d7\n description: iptables used to allow egress traffic\n expression: exec.comm == \"iptables\" && process.args in [r\".*OUTPUT.*((25[0-5]|(2[0-4]|1\\d|[1-9]|)\\d)\\.?\\b){4}.*ACCEPT\"]\n && process.args not in [r\"(127\\.)|(10\\.)|(172\\.1[6-9]\\.)|(172\\.2[0-9]\\.)|(172\\.3[0-1]|\\.)|(192\\.168\\.)|(169\\.254\\.)\"]\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: tde_malware_files_with_extensions_created\n version: 161c317f\n description: Multiple files with extensions created under common user directories\n expression: rename.file.path in [~\"/home/**\", ~\"/root/**\", ~\"/bin/**\", ~\"/usr/bin/**\",\n ~\"/var/log/**\", ~\"/var/lib/log/**\", ~\"/var/backup/*\", ~\"/var/www/**\"] && rename.file.destination.name\n in [r\"\\.[0-9a-z]+$\"] && rename.file.destination.name not in [r\".*\\.(lock|dbtmp|log|journal|ini|sh|json|yml|tmp|snap|txt|pyc|stat|hcl|[0-9])+$\"]\n && process.comm not in [\"python\",\"python3\",\"agent\",\"security-agent\",\"kubectl\",\"kubelet\",\"datadog-cluster\"]\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: tde_malware_kernel_module_loaded_from_tmp\n version: 7673f399\n description: Kernel module loaded from common tmp directories\n expression: load_module.file.path in [ ~\"/tmp/**\", ~\"/var/tmp/**\" ]\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: tde_malware_libpam_hooked_using_ebpf\n version: adbe1bb1\n description: Libpam.so library hooked using ebpf\n expression: bpf.cmd == BPF_MAP_CREATE && process.args in [r\".*libpam.so.*\"]\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: tde_malware_privileged_processes_or_sshd_traced\n version: eda95b21\n description: A process is tracing privileged processes or sshd for possible credential\n dumping\n expression: ((ptrace.tracee.euid==0 && ptrace.tracee.uid ==0)||ptrace.tracee.comm\n in [~\"*sshd*\"]) && process.comm not in [\"dlv\"]\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: tde_malware_proxychains_executed\n version: 192a7f03\n description: Proxychaining technique used\n expression: exec.comm == \"proxychains\"\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: tde_malware_ransomware_notes_written\n version: 6d3052dc\n description: A possible ransomware note created under common user directories\n expression: open.file.path in [~\"/home/**\", ~\"/root/**\", ~\"/bin/**\", ~\"/usr/bin/**\",\n ~\"/opt/**\", ~\"/etc/**\", ~\"/var/log/**\", ~\"/var/lib/log/**\", ~\"/var/backup/**\",\n ~\"/var/www/**\"] && open.file.name in [r\".*(restore|recovery|readme|instruction|how_to|ransom).*\",\n r\".*(your_|crypt|lock|important).*\\.txt$\"]\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: tde_malware_system_logs_deleted\n version: f5fec42d\n description: A process deleted common system log files\n expression: unlink.file.path in [\"/var/run/utmp\", \"/var/log/wtmp\", \"/var/log/btmp\",\n \"/var/log/lastlog\", \"/var/log/faillog\", \"/var/log/syslog\", \"/var/log/messages\",\n \"/var/log/secure\", \"/var/log/auth.log\", \"/var/log/boot.log\", \"/var/log/kern.log\"]\n && process.comm !=\"dockerd\"\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: tde_malware_tunneling_and_port_forwarding_technique_used\n version: e253fced\n description: Tunneling and port forwarding tool used\n expression: ((exec.comm == \"pivotnacci\" || exec.comm == \"gost\") && process.args\n in [r\".*(-L|-C|-R).*\"])||(exec.comm in [\"ssh\", \"sshd\"] && process.args in [r\".*(-R|-L|-D|w).*\"]\n && process.args in [r\"((25[0-5]|(2[0-4]|1\\d|[1-9])\\d)\\.?\\b){4}\"] ) || (exec.comm\n == \"sshuttle\" && process.args in [r\".*(-r|--remote|-l|--listen).*\"]) || (exec.comm\n == \"socat\" && process.args in [r\".*(TCP4-LISTEN:|SOCKS).*\"]) || (exec.comm in\n [\"iodine\", \"iodined\", \"dnscat\", \"hans\", \"hans-ubuntu\", \"ptunnel-ng\", \"ssf\", \"3proxy\",\n \"ngrok\"] && process.parent.comm in [\"bash\", \"dash\", \"ash\", \"sh\", \"tcsh\", \"csh\",\n \"zsh\", \"ksh\", \"fish\"])\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: tde_nsenter_pid1_detection\n version: 7a2d42c7\n description: nsenter used in container to execute code on the OS PID1\n expression: exec.file.name == \"nsenter\" && exec.args_options in [\"target=1\", \"t=1\"]\n && container.id !=\"\"\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: tde_red_team_domains_used\n version: 1b507607\n description: Connection to red team domain\n expression: dns.question.name in [~\"*.interact.sh\" , ~\"*.oast.pro\" , ~\"*.oast.live\"\n , ~\"*.oast.site\" , ~\"*.oast.online\" , ~\"*.oast.fun\" , ~\"*.oast.me\" , ~\"*.burpcollaborator.net\"\n , ~\"*.oastify.com\" , ~\"*canarytokens.com\" , ~\"*.requestbin.net\" , ~\"*.dnslog.cn\"]\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: tde_testing_tampering\n version: c2be3b92\n description: testing only\n expression: exec.comm == \"abcdefgh\"\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: tty_shell_in_container\n version: 3d9489bb\n description: A shell with a TTY was executed in a container\n expression: |-\n exec.file.path in [ \"/bin/dash\",\n \"/usr/bin/dash\",\n \"/bin/sh\",\n \"/bin/static-sh\",\n \"/usr/bin/sh\",\n \"/bin/bash\",\n \"/usr/bin/bash\",\n \"/bin/bash-static\",\n \"/usr/bin/zsh\",\n \"/usr/bin/ash\",\n \"/usr/bin/csh\",\n \"/usr/bin/ksh\",\n \"/usr/bin/tcsh\",\n \"/usr/lib/initramfs-tools/bin/busybox\",\n \"/bin/busybox\",\n \"/usr/bin/fish\",\n \"/bin/ksh93\",\n \"/bin/rksh\",\n \"/bin/rksh93\",\n \"/bin/lksh\",\n \"/bin/mksh\",\n \"/bin/mksh-static\",\n \"/usr/bin/csharp\",\n \"/bin/posh\",\n \"/usr/bin/rc\",\n \"/bin/sash\",\n \"/usr/bin/yash\",\n \"/bin/zsh5\",\n \"/bin/zsh5-static\" ] && process.tty_name != \"\" && process.container.id != \"\"\n agent_version: ''\n filters: []\n- id: tunnel_traffic\n version: 816201a5\n description: Tunneling or port forwarding tool used\n expression: ((exec.comm == \"pivotnacci\" || exec.comm == \"gost\") && process.args\n in [r\".*(-L|-C|-R).*\"]) || (exec.comm in [\"ssh\", \"sshd\"] && process.args in [r\".*(-R|-L|-D|w).*\"]\n && process.args in [r\"((25[0-5]|(2[0-4]|1\\d|[1-9])\\d)\\.?\\b){4}\"] ) || (exec.comm\n == \"sshuttle\" && process.args in [r\".*(-r|--remote|-l|--listen).*\"]) || (exec.comm\n == \"socat\" && process.args in [r\".*(TCP4-LISTEN:|SOCKS).*\"]) || (exec.comm in\n [\"iodine\", \"iodined\", \"dnscat\", \"hans\", \"hans-ubuntu\", \"ptunnel-ng\", \"ssf\", \"3proxy\",\n \"ngrok\"] && process.parent.comm in [\"bash\", \"dash\", \"ash\", \"sh\", \"tcsh\", \"csh\",\n \"zsh\", \"ksh\", \"fish\"])\n agent_version: ''\n filters:\n - os == \"linux\"\n- id: user_created_tty\n version: 5b5f4a52\n description: A user was created via an interactive session\n expression: exec.file.name in [\"useradd\", \"newusers\", \"adduser\"] && exec.tty_name\n !=\"\" && process.ancestors.file.path not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\",\n \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\", \"/usr/bin/npm\", ~\"/usr/bin/pip*\",\n \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"] && exec.args_flags not in\n [\"D\"]\n agent_version: ''\n filters: []\n- id: user_deleted_tty\n version: ad8edbe\n description: A user was deleted via an interactive session\n expression: exec.file.name in [\"userdel\", \"deluser\"] && exec.tty_name !=\"\" && process.ancestors.file.path\n not in [~\"/usr/bin/apt*\", \"/usr/bin/dpkg\", \"/usr/bin/rpm\", \"/usr/bin/unattended-upgrade\",\n \"/usr/bin/npm\", ~\"/usr/bin/pip*\", \"/usr/bin/yum\", \"/sbin/apk\", \"/usr/lib/snapd/snapd\"]\n agent_version: ''\n filters: []\n- id: wmi_spawning_shell\n version: 6b9ff5c7\n description: Command executed via WMI\n expression: exec.file.name in [~\"powershell*\",\"cmd.exe\"] && process.parent.file.name\n == \"WmiPrvSE.exe\"\n agent_version: ''\n filters:\n - os == \"windows\"\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/yaml" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:15 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-CSM-Threats-Agent-rule-returns-Bad-Request-response.frozen b/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-CSM-Threats-Agent-rule-returns-Bad-Request-response.frozen new file mode 100644 index 000000000..36950db3c --- /dev/null +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-CSM-Threats-Agent-rule-returns-Bad-Request-response.frozen @@ -0,0 +1 @@ +2024-03-08T14:19:15.935Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-CSM-Threats-Agent-rule-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-CSM-Threats-Agent-rule-returns-Bad-Request-response.json new file mode 100644 index 000000000..b3273d1cb --- /dev/null +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-CSM-Threats-Agent-rule-returns-Bad-Request-response.json @@ -0,0 +1,101 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"My Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\",\"name\":\"testupdateacsmthreatsagentrulereturnsbadrequestresponse1709907555\"},\"type\":\"agent_rule\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/remote_config/products/cws/agent_rules" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"oes-jfu-tm8\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1709907556177,\"creator\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"},\"defaultRule\":false,\"description\":\"My Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"testupdateacsmthreatsagentrulereturnsbadrequestresponse1709907555\",\"updateDate\":1709907556177,\"updater\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:15 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"Test Agent rule\",\"enabled\":true,\"expression\":\"open.file.path = sh\"},\"id\":\"abc-123-xyz\",\"type\":\"agent_rule\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/remote_config/products/cws/agent_rules/oes-jfu-tm8" + }, + "response": { + "body": { + "string": "{\"errors\":[{\"title\":\"failed to update rule\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:15 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/remote_config/products/cws/agent_rules/oes-jfu-tm8" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:15 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-CSM-Threats-Agent-rule-returns-Not-Found-response.frozen b/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-CSM-Threats-Agent-rule-returns-Not-Found-response.frozen new file mode 100644 index 000000000..205d72408 --- /dev/null +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-CSM-Threats-Agent-rule-returns-Not-Found-response.frozen @@ -0,0 +1 @@ +2024-03-08T14:19:17.581Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-CSM-Threats-Agent-rule-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-CSM-Threats-Agent-rule-returns-Not-Found-response.json new file mode 100644 index 000000000..6919a7011 --- /dev/null +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-CSM-Threats-Agent-rule-returns-Not-Found-response.json @@ -0,0 +1,39 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"My Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\"},\"id\":\"abc-123-xyz\",\"type\":\"agent_rule\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/remote_config/products/cws/agent_rules/abc-123-xyz" + }, + "response": { + "body": { + "string": "{\"errors\":[{\"title\":\"failed to update rule\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:17 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-CSM-Threats-Agent-rule-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-CSM-Threats-Agent-rule-returns-OK-response.frozen new file mode 100644 index 000000000..0c7bf42c8 --- /dev/null +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-CSM-Threats-Agent-rule-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-03-08T14:19:17.965Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-CSM-Threats-Agent-rule-returns-OK-response.json b/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-CSM-Threats-Agent-rule-returns-OK-response.json new file mode 100644 index 000000000..70435a050 --- /dev/null +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-CSM-Threats-Agent-rule-returns-OK-response.json @@ -0,0 +1,101 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"My Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\",\"name\":\"testupdateacsmthreatsagentrulereturnsokresponse1709907557\"},\"type\":\"agent_rule\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/remote_config/products/cws/agent_rules" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"qp6-ix5-6o6\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1709907558307,\"creator\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"},\"defaultRule\":false,\"description\":\"My Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"testupdateacsmthreatsagentrulereturnsokresponse1709907557\",\"updateDate\":1709907558307,\"updater\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:17 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"Test Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\"},\"id\":\"qp6-ix5-6o6\",\"type\":\"agent_rule\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/remote_config/products/cws/agent_rules/qp6-ix5-6o6" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"qp6-ix5-6o6\",\"type\":\"agent_rule\",\"attributes\":{\"category\":\"Process Activity\",\"creationDate\":1709907558000,\"creator\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"},\"defaultRule\":false,\"description\":\"Test Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\",\"filters\":[\"os == \\\"linux\\\"\"],\"name\":\"testupdateacsmthreatsagentrulereturnsokresponse1709907557\",\"updateDate\":1709907559088,\"updater\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:17 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/remote_config/products/cws/agent_rules/qp6-ix5-6o6" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:17 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-Cloud-Workload-Security-Agent-rule-returns-Bad-Request-response.frozen b/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-Cloud-Workload-Security-Agent-rule-returns-Bad-Request-response.frozen index 8028840b8..2d0f6f108 100644 --- a/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-Cloud-Workload-Security-Agent-rule-returns-Bad-Request-response.frozen +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-Cloud-Workload-Security-Agent-rule-returns-Bad-Request-response.frozen @@ -1 +1 @@ -2022-05-12T09:51:26.947Z \ No newline at end of file +2024-03-08T14:19:20.303Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-Cloud-Workload-Security-Agent-rule-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-Cloud-Workload-Security-Agent-rule-returns-Bad-Request-response.json index 7a1b0c41d..b4ef17550 100644 --- a/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-Cloud-Workload-Security-Agent-rule-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-Cloud-Workload-Security-Agent-rule-returns-Bad-Request-response.json @@ -1 +1,97 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"description\":\"My Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\",\"name\":\"testupdateacloudworkloadsecurityagentrulereturnsbadrequestresponse1652349086\"},\"type\":\"agent_rule\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"testupdateacloudworkloadsecurityagentrulereturnsbadrequestresponse1652349086\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"My Agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1652349087367,\"creationDate\":1652349087367,\"expression\":\"exec.file.name == \\\"sh\\\"\"},\"type\":\"agent_rule\",\"id\":\"ezf-mkn-g0o\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json;charset=utf-8"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:51:26 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"description\":\"Test Agent rule\",\"enabled\":true,\"expression\":\"open.file.path = sh\"},\"type\":\"agent_rule\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules/ezf-mkn-g0o"}, "response": {"body": {"string": "{\"errors\":[\"input_validation_error(Field 'expression' is invalid: rule `testupdateacloudworkloadsecurityagentrulereturnsbadrequestresponse1652349086` definition error: syntax error: 1:18: unexpected token \\\"sh\\\" (expected \\\"~\\\"))\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Thu, 12 May 2022 09:51:26 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules/ezf-mkn-g0o"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["application/json;charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:51:26 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"My Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\",\"name\":\"testupdateacloudworkloadsecurityagentrulereturnsbadrequestresponse1709907560\"},\"type\":\"agent_rule\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"bvz-vbk-lmb\",\"attributes\":{\"version\":1,\"name\":\"testupdateacloudworkloadsecurityagentrulereturnsbadrequestresponse1709907560\",\"description\":\"My Agent rule\",\"expression\":\"exec.file.name == \\\"sh\\\"\",\"category\":\"Process Activity\",\"creationAuthorUuId\":\"cc32ddea-b5e4-11ec-93be-da7ad0900002\",\"creationDate\":1709907560595,\"updateAuthorUuId\":\"cc32ddea-b5e4-11ec-93be-da7ad0900002\",\"updateDate\":1709907560595,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":false,\"creator\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"},\"updater\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"}},\"type\":\"agent_rule\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:20 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"Test Agent rule\",\"enabled\":true,\"expression\":\"open.file.path = sh\"},\"type\":\"agent_rule\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules/bvz-vbk-lmb" + }, + "response": { + "body": { + "string": "{\"errors\":[\"input_validation_error(Field 'expression' is invalid: rule `testupdateacloudworkloadsecurityagentrulereturnsbadrequestresponse1709907560` error: syntax error `1:18: unexpected token \\\"sh\\\" (expected \\\"~\\\")`)\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:20 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules/bvz-vbk-lmb" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:20 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-Cloud-Workload-Security-Agent-rule-returns-Not-Found-response.frozen b/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-Cloud-Workload-Security-Agent-rule-returns-Not-Found-response.frozen index 27f706249..aab8c0313 100644 --- a/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-Cloud-Workload-Security-Agent-rule-returns-Not-Found-response.frozen +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-Cloud-Workload-Security-Agent-rule-returns-Not-Found-response.frozen @@ -1 +1 @@ -2022-01-11T18:11:42.604Z \ No newline at end of file +2024-03-08T14:19:21.451Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-Cloud-Workload-Security-Agent-rule-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-Cloud-Workload-Security-Agent-rule-returns-Not-Found-response.json index 49c4649d7..b52b17cea 100644 --- a/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-Cloud-Workload-Security-Agent-rule-returns-Not-Found-response.json +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-Cloud-Workload-Security-Agent-rule-returns-Not-Found-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"description\":\"Test Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\"},\"type\":\"agent_rule\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules/abc-123-xyz"}, "response": {"body": {"string": "{\"errors\":[\"not_found(Agent rule not found: agentRuleId=abc-123-xyz)\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Tue, 11 Jan 2022 18:11:42 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"Test Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\"},\"type\":\"agent_rule\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules/abc-123-xyz" + }, + "response": { + "body": { + "string": "{\"errors\":[\"not_found(Agent rule not found: agentRuleId=abc-123-xyz)\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:21 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.frozen index 0aec4a5ed..944438cc3 100644 --- a/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.frozen @@ -1 +1 @@ -2022-05-12T09:51:28.357Z \ No newline at end of file +2024-03-08T14:19:21.789Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.json b/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.json index 9523fb9c0..f3db7299f 100644 --- a/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/cloud_workload_security/Update-a-Cloud-Workload-Security-Agent-rule-returns-OK-response.json @@ -1 +1,97 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"description\":\"My Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\",\"name\":\"testupdateacloudworkloadsecurityagentrulereturnsokresponse1652349088\"},\"type\":\"agent_rule\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"testupdateacloudworkloadsecurityagentrulereturnsokresponse1652349088\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"My Agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":1,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1652349088786,\"creationDate\":1652349088786,\"expression\":\"exec.file.name == \\\"sh\\\"\"},\"type\":\"agent_rule\",\"id\":\"ivl-0d3-hga\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json;charset=utf-8"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:51:28 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"description\":\"Test Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\"},\"type\":\"agent_rule\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules/ivl-0d3-hga"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"category\":\"Process Activity\",\"name\":\"testupdateacloudworkloadsecurityagentrulereturnsokresponse1652349088\",\"creator\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"description\":\"Test Agent rule\",\"enabled\":true,\"defaultRule\":false,\"version\":2,\"updater\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"updateDate\":1652349089262,\"creationDate\":1652349088786,\"expression\":\"exec.file.name == \\\"sh\\\"\"},\"type\":\"agent_rule\",\"id\":\"ivl-0d3-hga\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json;charset=utf-8"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:51:28 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules/ivl-0d3-hga"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["application/json;charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:51:28 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"My Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\",\"name\":\"testupdateacloudworkloadsecurityagentrulereturnsokresponse1709907561\"},\"type\":\"agent_rule\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"usl-wf5-qjp\",\"attributes\":{\"version\":1,\"name\":\"testupdateacloudworkloadsecurityagentrulereturnsokresponse1709907561\",\"description\":\"My Agent rule\",\"expression\":\"exec.file.name == \\\"sh\\\"\",\"category\":\"Process Activity\",\"creationAuthorUuId\":\"cc32ddea-b5e4-11ec-93be-da7ad0900002\",\"creationDate\":1709907562158,\"updateAuthorUuId\":\"cc32ddea-b5e4-11ec-93be-da7ad0900002\",\"updateDate\":1709907562158,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":false,\"creator\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"},\"updater\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"}},\"type\":\"agent_rule\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:21 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"Test Agent rule\",\"enabled\":true,\"expression\":\"exec.file.name == \\\"sh\\\"\"},\"type\":\"agent_rule\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules/usl-wf5-qjp" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"usl-wf5-qjp\",\"attributes\":{\"version\":2,\"name\":\"testupdateacloudworkloadsecurityagentrulereturnsokresponse1709907561\",\"description\":\"Test Agent rule\",\"expression\":\"exec.file.name == \\\"sh\\\"\",\"category\":\"Process Activity\",\"creationAuthorUuId\":\"cc32ddea-b5e4-11ec-93be-da7ad0900002\",\"creationDate\":1709907562158,\"updateAuthorUuId\":\"cc32ddea-b5e4-11ec-93be-da7ad0900002\",\"updateDate\":1709907562613,\"filters\":[\"os == \\\"linux\\\"\"],\"actions\":[],\"agentConstraint\":\"\",\"enabled\":true,\"defaultRule\":false,\"creator\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"},\"updater\":{\"name\":\"Malo Le Goff\",\"handle\":\"malo.legoff@datadoghq.com\"}},\"type\":\"agent_rule\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:21 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/cloud_workload_security/agent_rules/usl-wf5-qjp" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Fri, 08 Mar 2024 14:19:21 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloudflare_integration/Add-Cloudflare-account-returns-Bad-Request-response-due-to-missing-email.frozen b/tests/scenarios/cassettes/v2/cloudflare_integration/Add-Cloudflare-account-returns-Bad-Request-response-due-to-missing-email.frozen index 2ea546653..d9508c1c1 100644 --- a/tests/scenarios/cassettes/v2/cloudflare_integration/Add-Cloudflare-account-returns-Bad-Request-response-due-to-missing-email.frozen +++ b/tests/scenarios/cassettes/v2/cloudflare_integration/Add-Cloudflare-account-returns-Bad-Request-response-due-to-missing-email.frozen @@ -1 +1 @@ -2023-01-26T10:55:04.225Z \ No newline at end of file +2024-01-04T18:40:40.939Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloudflare_integration/Add-Cloudflare-account-returns-Bad-Request-response-due-to-missing-email.json b/tests/scenarios/cassettes/v2/cloudflare_integration/Add-Cloudflare-account-returns-Bad-Request-response-due-to-missing-email.json index e1ce7f53c..a7d6ebdac 100644 --- a/tests/scenarios/cassettes/v2/cloudflare_integration/Add-Cloudflare-account-returns-Bad-Request-response-due-to-missing-email.json +++ b/tests/scenarios/cassettes/v2/cloudflare_integration/Add-Cloudflare-account-returns-Bad-Request-response-due-to-missing-email.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"api_key\":\"test-api-key\",\"name\":\"testaddcloudflareaccountreturnsbadrequestresponseduetomissingemail1674730504\"},\"type\":\"cloudflare-accounts\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts"}, "response": {"body": {"string": "{\"errors\":[\"{u'_schema': ['Email address is required if providing an api key and not an api token.']}\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Thu, 26 Jan 2023 10:55:04 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"api_key\":\"fakekey\",\"name\":\"testaddcloudflareaccountreturnsbadrequestresponseduetomissingemail1704393640\"},\"type\":\"cloudflare-accounts\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts" + }, + "response": { + "body": { + "string": "{\"errors\":[\"{'_schema': ['Email address is required if providing an api key and not an api token.']}\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Thu, 04 Jan 2024 18:40:40 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloudflare_integration/Add-Cloudflare-account-returns-Bad-Request-response-using-invalid-auth-key.frozen b/tests/scenarios/cassettes/v2/cloudflare_integration/Add-Cloudflare-account-returns-Bad-Request-response-using-invalid-auth-key.frozen index 86f90fee5..00c73cdaf 100644 --- a/tests/scenarios/cassettes/v2/cloudflare_integration/Add-Cloudflare-account-returns-Bad-Request-response-using-invalid-auth-key.frozen +++ b/tests/scenarios/cassettes/v2/cloudflare_integration/Add-Cloudflare-account-returns-Bad-Request-response-using-invalid-auth-key.frozen @@ -1 +1 @@ -2023-01-26T10:54:47.296Z \ No newline at end of file +2024-01-04T18:40:41.099Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloudflare_integration/Add-Cloudflare-account-returns-Bad-Request-response-using-invalid-auth-key.json b/tests/scenarios/cassettes/v2/cloudflare_integration/Add-Cloudflare-account-returns-Bad-Request-response-using-invalid-auth-key.json index 368c404cb..fef18dfc5 100644 --- a/tests/scenarios/cassettes/v2/cloudflare_integration/Add-Cloudflare-account-returns-Bad-Request-response-using-invalid-auth-key.json +++ b/tests/scenarios/cassettes/v2/cloudflare_integration/Add-Cloudflare-account-returns-Bad-Request-response-using-invalid-auth-key.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"api_key\":\"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"name\":\"testaddcloudflareaccountreturnsbadrequestresponseusinginvalidauthkey1674730487\"},\"type\":\"cloudflare-accounts\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts"}, "response": {"body": {"string": "{\"errors\":[\"Invalid account. Your Cloudflare configuration is invalid. Impossible to get zones for the account testaddcloudflareaccountreturnsbadrequestresponseusinginvalidauthkey1674730487: API key or email is unknown.\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Thu, 26 Jan 2023 10:54:47 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"api_key\":\"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"name\":\"testaddcloudflareaccountreturnsbadrequestresponseusinginvalidauthkey1704393641\"},\"type\":\"cloudflare-accounts\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Invalid account. Your Cloudflare configuration is invalid. Impossible to get zones for the account testaddcloudflareaccountreturnsbadrequestresponseusinginvalidauthkey1704393641: API key or email is unknown.\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Thu, 04 Jan 2024 18:40:41 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloudflare_integration/Add-Cloudflare-account-returns-CREATED-response-with-optional-filters.frozen b/tests/scenarios/cassettes/v2/cloudflare_integration/Add-Cloudflare-account-returns-CREATED-response-with-optional-filters.frozen new file mode 100644 index 000000000..8168df441 --- /dev/null +++ b/tests/scenarios/cassettes/v2/cloudflare_integration/Add-Cloudflare-account-returns-CREATED-response-with-optional-filters.frozen @@ -0,0 +1 @@ +2024-01-03T19:17:37.850Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloudflare_integration/Add-Cloudflare-account-returns-CREATED-response-with-optional-filters.json b/tests/scenarios/cassettes/v2/cloudflare_integration/Add-Cloudflare-account-returns-CREATED-response-with-optional-filters.json new file mode 100644 index 000000000..b652d3456 --- /dev/null +++ b/tests/scenarios/cassettes/v2/cloudflare_integration/Add-Cloudflare-account-returns-CREATED-response-with-optional-filters.json @@ -0,0 +1,39 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"api_key\":\"fakekey\",\"email\":\"new@email\",\"name\":\"testaddcloudflareaccountreturnscreatedresponsewithoptionalfilters1704309457\",\"resources\":[\"lb\",\"dns\"],\"zones\":[\"zone-id-1\",\"zone-id-2\"]},\"type\":\"cloudflare-accounts\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Invalid account. Your Cloudflare configuration is invalid. Impossible to get zones for the account testaddcloudflareaccountreturnscreatedresponsewithoptionalfilters1704309457: API key or email is not in the correct format.\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Wed, 03 Jan 2024 19:17:37 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloudflare_integration/Add-Cloudflare-account-returns-CREATED-response.frozen b/tests/scenarios/cassettes/v2/cloudflare_integration/Add-Cloudflare-account-returns-CREATED-response.frozen index 08656ce57..0e350ffed 100644 --- a/tests/scenarios/cassettes/v2/cloudflare_integration/Add-Cloudflare-account-returns-CREATED-response.frozen +++ b/tests/scenarios/cassettes/v2/cloudflare_integration/Add-Cloudflare-account-returns-CREATED-response.frozen @@ -1 +1 @@ -2023-01-26T10:54:24.725Z \ No newline at end of file +2024-01-04T18:40:41.520Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloudflare_integration/Add-Cloudflare-account-returns-CREATED-response.json b/tests/scenarios/cassettes/v2/cloudflare_integration/Add-Cloudflare-account-returns-CREATED-response.json index 821f67597..0be864118 100644 --- a/tests/scenarios/cassettes/v2/cloudflare_integration/Add-Cloudflare-account-returns-CREATED-response.json +++ b/tests/scenarios/cassettes/v2/cloudflare_integration/Add-Cloudflare-account-returns-CREATED-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"api_key\":\"fakekey\",\"email\":\"new@email\",\"name\":\"testaddcloudflareaccountreturnscreatedresponse1674730464\"},\"type\":\"cloudflare-accounts\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"new@email\",\"name\":\"testaddcloudflareaccountreturnscreatedresponse1674730464\"},\"type\":\"cloudflare-accounts\",\"id\":\"328432a98957fd7bcba6f70daea72519\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 26 Jan 2023 10:54:24 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts/328432a98957fd7bcba6f70daea72519"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 26 Jan 2023 10:54:24 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"api_key\":\"fakekey\",\"email\":\"dev@datadoghq.com\",\"name\":\"testaddcloudflareaccountreturnscreatedresponse1704393641\"},\"type\":\"cloudflare-accounts\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"cloudflare-accounts\",\"attributes\":{\"email\":\"dev@datadoghq.com\",\"name\":\"testaddcloudflareaccountreturnscreatedresponse1704393641\",\"resources\":[],\"zones\":[]},\"id\":\"baa2079200095466b080d75adfdb32fa\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 04 Jan 2024 18:40:41 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts/baa2079200095466b080d75adfdb32fa" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 04 Jan 2024 18:40:41 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloudflare_integration/Get-Cloudflare-account-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/cloudflare_integration/Get-Cloudflare-account-returns-OK-response.frozen index 5ddb9d7aa..22b0b70c1 100644 --- a/tests/scenarios/cassettes/v2/cloudflare_integration/Get-Cloudflare-account-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v2/cloudflare_integration/Get-Cloudflare-account-returns-OK-response.frozen @@ -1 +1 @@ -2023-01-27T09:00:21.006Z \ No newline at end of file +2024-01-04T18:40:42.323Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloudflare_integration/Get-Cloudflare-account-returns-OK-response.json b/tests/scenarios/cassettes/v2/cloudflare_integration/Get-Cloudflare-account-returns-OK-response.json index 14c55eb55..a5e63cff5 100644 --- a/tests/scenarios/cassettes/v2/cloudflare_integration/Get-Cloudflare-account-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/cloudflare_integration/Get-Cloudflare-account-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"api_key\":\"fakekey\",\"email\":\"dev@datadog.com\",\"name\":\"testgetcloudflareaccountreturnsokresponse1674810021\"},\"type\":\"cloudflare-accounts\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"dev@datadog.com\",\"name\":\"testgetcloudflareaccountreturnsokresponse1674810021\"},\"type\":\"cloudflare-accounts\",\"id\":\"ec582035efa21742f8f4ef4393ded49c\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Fri, 27 Jan 2023 09:00:21 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts/ec582035efa21742f8f4ef4393ded49c"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"dev@datadog.com\",\"name\":\"testgetcloudflareaccountreturnsokresponse1674810021\"},\"type\":\"cloudflare-accounts\",\"id\":\"ec582035efa21742f8f4ef4393ded49c\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 27 Jan 2023 09:00:21 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts/ec582035efa21742f8f4ef4393ded49c"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Fri, 27 Jan 2023 09:00:21 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"api_key\":\"fakekey\",\"email\":\"dev@datadog.com\",\"name\":\"testgetcloudflareaccountreturnsokresponse1704393642\",\"resources\":[\"web\",\"dns\"],\"zones\":[\"zone-id-1\",\"zone-id-2\"]},\"type\":\"cloudflare-accounts\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"cloudflare-accounts\",\"attributes\":{\"name\":\"testgetcloudflareaccountreturnsokresponse1704393642\",\"email\":\"dev@datadog.com\",\"zones\":[\"zone-id-1\",\"zone-id-2\"],\"resources\":[\"web\",\"dns\"]},\"id\":\"88d65a60026254bfaf976a427606c061\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 04 Jan 2024 18:40:42 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts/88d65a60026254bfaf976a427606c061" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"cloudflare-accounts\",\"attributes\":{\"zones\":[\"zone-id-1\",\"zone-id-2\"],\"email\":\"dev@datadog.com\",\"name\":\"testgetcloudflareaccountreturnsokresponse1704393642\",\"resources\":[\"web\",\"dns\"]},\"id\":\"88d65a60026254bfaf976a427606c061\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 04 Jan 2024 18:40:42 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts/88d65a60026254bfaf976a427606c061" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 04 Jan 2024 18:40:42 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloudflare_integration/List-Cloudflare-accounts-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/cloudflare_integration/List-Cloudflare-accounts-returns-OK-response.frozen index f1a4c9ed9..abacad3b1 100644 --- a/tests/scenarios/cassettes/v2/cloudflare_integration/List-Cloudflare-accounts-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v2/cloudflare_integration/List-Cloudflare-accounts-returns-OK-response.frozen @@ -1 +1 @@ -2023-01-27T09:00:01.876Z \ No newline at end of file +2024-01-04T18:40:43.242Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloudflare_integration/List-Cloudflare-accounts-returns-OK-response.json b/tests/scenarios/cassettes/v2/cloudflare_integration/List-Cloudflare-accounts-returns-OK-response.json index 14ab6d0f7..e925f3de7 100644 --- a/tests/scenarios/cassettes/v2/cloudflare_integration/List-Cloudflare-accounts-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/cloudflare_integration/List-Cloudflare-accounts-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"api_key\":\"fakekey\",\"email\":\"dev@datadog.com\",\"name\":\"testlistcloudflareaccountsreturnsokresponse1674810001\"},\"type\":\"cloudflare-accounts\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"dev@datadog.com\",\"name\":\"testlistcloudflareaccountsreturnsokresponse1674810001\"},\"type\":\"cloudflare-accounts\",\"id\":\"1458cfdd2c5679bdc8693a9c5a32bf45\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Fri, 27 Jan 2023 09:00:01 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts"}, "response": {"body": {"string": "{\"data\":[{\"attributes\":{\"email\":\"dev@datadog.com\",\"name\":\"testlistcloudflareaccountsreturnsokresponse1674810001\"},\"type\":\"cloudflare-accounts\",\"id\":\"1458cfdd2c5679bdc8693a9c5a32bf45\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 27 Jan 2023 09:00:01 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts/1458cfdd2c5679bdc8693a9c5a32bf45"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Fri, 27 Jan 2023 09:00:01 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"api_key\":\"fakekey\",\"email\":\"dev@datadog.com\",\"name\":\"testlistcloudflareaccountsreturnsokresponse1704393643\",\"resources\":[\"web\",\"dns\"],\"zones\":[\"zone-id-1\",\"zone-id-2\"]},\"type\":\"cloudflare-accounts\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"cloudflare-accounts\",\"id\":\"032c2a7bec2890a18b9ff810ffbaf789\",\"attributes\":{\"resources\":[\"web\",\"dns\"],\"name\":\"testlistcloudflareaccountsreturnsokresponse1704393643\",\"email\":\"dev@datadog.com\",\"zones\":[\"zone-id-1\",\"zone-id-2\"]}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 04 Jan 2024 18:40:43 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"cloudflare-accounts\",\"attributes\":{\"resources\":[\"dns\",\"worker\"],\"email\":\"dev@datadoghq.com\",\"zones\":[\"57d151866f1b1d5e4e0057aed6b9f4cb\"],\"name\":\"testing\"},\"id\":\"ae2b1fca515949e5d54fb22b8ed95575\"},{\"type\":\"cloudflare-accounts\",\"attributes\":{\"resources\":[\"web\",\"dns\"],\"email\":\"dev@datadog.com\",\"zones\":[\"zone-id-1\",\"zone-id-2\"],\"name\":\"testlistcloudflareaccountsreturnsokresponse1704393643\"},\"id\":\"032c2a7bec2890a18b9ff810ffbaf789\"},{\"type\":\"cloudflare-accounts\",\"attributes\":{\"resources\":[],\"email\":\"\",\"zones\":[],\"name\":\"testing_2\"},\"id\":\"8222b3d5b803354416362560a64a1725\"},{\"type\":\"cloudflare-accounts\",\"attributes\":{\"resources\":[],\"email\":\"\",\"zones\":[],\"name\":\"cloudflare-test\"},\"id\":\"fe0a70a58b246c3836c665e956f56bab\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 04 Jan 2024 18:40:43 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts/032c2a7bec2890a18b9ff810ffbaf789" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 04 Jan 2024 18:40:43 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloudflare_integration/Update-Cloudflare-account-returns-Bad-Request-response-due-to-invalid-api-key.frozen b/tests/scenarios/cassettes/v2/cloudflare_integration/Update-Cloudflare-account-returns-Bad-Request-response-due-to-invalid-api-key.frozen index 0928cd1f8..36232fe68 100644 --- a/tests/scenarios/cassettes/v2/cloudflare_integration/Update-Cloudflare-account-returns-Bad-Request-response-due-to-invalid-api-key.frozen +++ b/tests/scenarios/cassettes/v2/cloudflare_integration/Update-Cloudflare-account-returns-Bad-Request-response-due-to-invalid-api-key.frozen @@ -1 +1 @@ -2023-01-27T08:59:31.378Z \ No newline at end of file +2024-01-04T18:40:44.099Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloudflare_integration/Update-Cloudflare-account-returns-Bad-Request-response-due-to-invalid-api-key.json b/tests/scenarios/cassettes/v2/cloudflare_integration/Update-Cloudflare-account-returns-Bad-Request-response-due-to-invalid-api-key.json index 4b675de70..d3b5b1059 100644 --- a/tests/scenarios/cassettes/v2/cloudflare_integration/Update-Cloudflare-account-returns-Bad-Request-response-due-to-invalid-api-key.json +++ b/tests/scenarios/cassettes/v2/cloudflare_integration/Update-Cloudflare-account-returns-Bad-Request-response-due-to-invalid-api-key.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"api_key\":\"fakekey\",\"email\":\"dev@datadog.com\",\"name\":\"testupdatecloudflareaccountreturnsbadrequestresponseduetoinvalidapikey1674809971\"},\"type\":\"cloudflare-accounts\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"dev@datadog.com\",\"name\":\"testupdatecloudflareaccountreturnsbadrequestresponseduetoinvalidapikey1674809971\"},\"type\":\"cloudflare-accounts\",\"id\":\"56a7295bd711e0aea34906a3bea8a2b3\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Fri, 27 Jan 2023 08:59:31 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"api_key\":\"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"},\"type\":\"cloudflare-accounts\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts/56a7295bd711e0aea34906a3bea8a2b3"}, "response": {"body": {"string": "{\"errors\":[\"Invalid account. Your Cloudflare configuration is invalid. Impossible to get zones for the account testupdatecloudflareaccountreturnsbadrequestresponseduetoinvalidapikey1674809971: API key or email is unknown.\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Fri, 27 Jan 2023 08:59:31 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts/56a7295bd711e0aea34906a3bea8a2b3"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Fri, 27 Jan 2023 08:59:31 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"api_key\":\"fakekey\",\"email\":\"dev@datadog.com\",\"name\":\"testupdatecloudflareaccountreturnsbadrequestresponseduetoinvalidapikey1704393644\",\"resources\":[\"web\",\"dns\"],\"zones\":[\"zone-id-1\",\"zone-id-2\"]},\"type\":\"cloudflare-accounts\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"cloudflare-accounts\",\"attributes\":{\"email\":\"dev@datadog.com\",\"name\":\"testupdatecloudflareaccountreturnsbadrequestresponseduetoinvalidapikey1704393644\",\"resources\":[\"web\",\"dns\"],\"zones\":[\"zone-id-1\",\"zone-id-2\"]},\"id\":\"25336f9851edaf58647eec09ce3b636f\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 04 Jan 2024 18:40:44 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"api_key\":\"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"},\"type\":\"cloudflare-accounts\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts/25336f9851edaf58647eec09ce3b636f" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Invalid account. Your Cloudflare configuration is invalid. Impossible to get zones for the account testupdatecloudflareaccountreturnsbadrequestresponseduetoinvalidapikey1704393644: API key or email is unknown.\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Thu, 04 Jan 2024 18:40:44 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts/25336f9851edaf58647eec09ce3b636f" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 04 Jan 2024 18:40:44 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloudflare_integration/Update-Cloudflare-account-returns-Bad-Request-response-due-to-missing-required-email.frozen b/tests/scenarios/cassettes/v2/cloudflare_integration/Update-Cloudflare-account-returns-Bad-Request-response-due-to-missing-required-email.frozen index 541cd4979..42e9357ef 100644 --- a/tests/scenarios/cassettes/v2/cloudflare_integration/Update-Cloudflare-account-returns-Bad-Request-response-due-to-missing-required-email.frozen +++ b/tests/scenarios/cassettes/v2/cloudflare_integration/Update-Cloudflare-account-returns-Bad-Request-response-due-to-missing-required-email.frozen @@ -1 +1 @@ -2023-01-27T08:59:14.675Z \ No newline at end of file +2024-01-04T18:40:46.262Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloudflare_integration/Update-Cloudflare-account-returns-Bad-Request-response-due-to-missing-required-email.json b/tests/scenarios/cassettes/v2/cloudflare_integration/Update-Cloudflare-account-returns-Bad-Request-response-due-to-missing-required-email.json index c0adcbecc..35232b643 100644 --- a/tests/scenarios/cassettes/v2/cloudflare_integration/Update-Cloudflare-account-returns-Bad-Request-response-due-to-missing-required-email.json +++ b/tests/scenarios/cassettes/v2/cloudflare_integration/Update-Cloudflare-account-returns-Bad-Request-response-due-to-missing-required-email.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"api_key\":\"fakekey\",\"email\":\"dev@datadog.com\",\"name\":\"testupdatecloudflareaccountreturnsbadrequestresponseduetomissingrequiredemail1674809954\"},\"type\":\"cloudflare-accounts\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"dev@datadog.com\",\"name\":\"testupdatecloudflareaccountreturnsbadrequestresponseduetomissingrequiredemail1674809954\"},\"type\":\"cloudflare-accounts\",\"id\":\"c588ce074fe908f56db516f007afd3fd\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Fri, 27 Jan 2023 08:59:14 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"api_key\":\"abcdefghijklmnopqrstuvwxyz\"},\"type\":\"cloudflare-accounts\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts/c588ce074fe908f56db516f007afd3fd"}, "response": {"body": {"string": "{\"errors\":[\"{u'_schema': ['Email address is required if providing an api key and not an api token.']}\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Fri, 27 Jan 2023 08:59:14 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts/c588ce074fe908f56db516f007afd3fd"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Fri, 27 Jan 2023 08:59:14 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"api_key\":\"fakekey\",\"email\":\"dev@datadog.com\",\"name\":\"testupdatecloudflareaccountreturnsbadrequestresponseduetomissingrequiredemail1704393646\",\"resources\":[\"web\",\"dns\"],\"zones\":[\"zone-id-1\",\"zone-id-2\"]},\"type\":\"cloudflare-accounts\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"cloudflare-accounts\",\"attributes\":{\"zones\":[\"zone-id-1\",\"zone-id-2\"],\"resources\":[\"web\",\"dns\"],\"name\":\"testupdatecloudflareaccountreturnsbadrequestresponseduetomissingrequiredemail1704393646\",\"email\":\"dev@datadog.com\"},\"id\":\"f1d4f10fbad4add4962f2bc1fcb18c36\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 04 Jan 2024 18:40:46 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"api_key\":\"fakekey\"},\"type\":\"cloudflare-accounts\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts/f1d4f10fbad4add4962f2bc1fcb18c36" + }, + "response": { + "body": { + "string": "{\"errors\":[\"{'_schema': ['Email address is required if providing an api key and not an api token.']}\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Thu, 04 Jan 2024 18:40:46 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts/f1d4f10fbad4add4962f2bc1fcb18c36" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 04 Jan 2024 18:40:46 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloudflare_integration/Update-Cloudflare-account-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/cloudflare_integration/Update-Cloudflare-account-returns-OK-response.frozen index 5c0c1ba85..ec278af7a 100644 --- a/tests/scenarios/cassettes/v2/cloudflare_integration/Update-Cloudflare-account-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v2/cloudflare_integration/Update-Cloudflare-account-returns-OK-response.frozen @@ -1 +1 @@ -2023-01-27T08:58:49.822Z \ No newline at end of file +2024-01-04T18:40:47.476Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/cloudflare_integration/Update-Cloudflare-account-returns-OK-response.json b/tests/scenarios/cassettes/v2/cloudflare_integration/Update-Cloudflare-account-returns-OK-response.json index e35a72431..f4f2a2211 100644 --- a/tests/scenarios/cassettes/v2/cloudflare_integration/Update-Cloudflare-account-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/cloudflare_integration/Update-Cloudflare-account-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"api_key\":\"fakekey\",\"email\":\"dev@datadog.com\",\"name\":\"testupdatecloudflareaccountreturnsokresponse1674809929\"},\"type\":\"cloudflare-accounts\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"dev@datadog.com\",\"name\":\"testupdatecloudflareaccountreturnsokresponse1674809929\"},\"type\":\"cloudflare-accounts\",\"id\":\"4d22579092049210a1db06b632485219\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Fri, 27 Jan 2023 08:58:49 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"api_key\":\"fakekey\",\"email\":\"new@email\"},\"type\":\"cloudflare-accounts\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts/4d22579092049210a1db06b632485219"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"new@email\",\"name\":\"testupdatecloudflareaccountreturnsokresponse1674809929\"},\"type\":\"cloudflare-accounts\",\"id\":\"4d22579092049210a1db06b632485219\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 27 Jan 2023 08:58:49 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts/4d22579092049210a1db06b632485219"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Fri, 27 Jan 2023 08:58:49 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"api_key\":\"fakekey\",\"email\":\"dev@datadog.com\",\"name\":\"testupdatecloudflareaccountreturnsokresponse1704393647\",\"resources\":[\"web\",\"dns\"],\"zones\":[\"zone-id-1\",\"zone-id-2\"]},\"type\":\"cloudflare-accounts\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"cloudflare-accounts\",\"attributes\":{\"zones\":[\"zone-id-1\",\"zone-id-2\"],\"resources\":[\"web\",\"dns\"],\"name\":\"testupdatecloudflareaccountreturnsokresponse1704393647\",\"email\":\"dev@datadog.com\"},\"id\":\"6956534375b31b062c809696f3c34ee8\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 04 Jan 2024 18:40:47 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"api_key\":\"fakekey\",\"email\":\"dev@datadoghq.com\",\"zones\":[\"zone-id-3\"]},\"type\":\"cloudflare-accounts\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts/6956534375b31b062c809696f3c34ee8" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"cloudflare-accounts\",\"attributes\":{\"resources\":[],\"email\":\"dev@datadoghq.com\",\"zones\":[\"zone-id-3\"],\"name\":\"testupdatecloudflareaccountreturnsokresponse1704393647\"},\"id\":\"6956534375b31b062c809696f3c34ee8\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 04 Jan 2024 18:40:47 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integrations/cloudflare/accounts/6956534375b31b062c809696f3c34ee8" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 04 Jan 2024 18:40:47 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/confluent_cloud/Add-resource-to-Confluent-account-returns-OK-response.json b/tests/scenarios/cassettes/v2/confluent_cloud/Add-resource-to-Confluent-account-returns-OK-response.json index 46123d10a..c84159a37 100644 --- a/tests/scenarios/cassettes/v2/confluent_cloud/Add-resource-to-Confluent-account-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/confluent_cloud/Add-resource-to-Confluent-account-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"api_key\":\"TestAddresourcetoConfluentaccountreturnsOKresponse1688395120\",\"api_secret\":\"test-api-secret\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integrations/confluent-cloud/accounts"}, "response": {"body": {"string": "{\"data\":{\"type\":\"confluent-cloud-accounts\",\"attributes\":{\"tags\":[\"tag1\",\"tag2:val2\"],\"resources\":[{\"id\":\"test-resource-id\",\"enable_custom_metrics\":false,\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"api_key\":\"TestAddresourcetoConfluentaccountreturnsOKresponse1688395120\"},\"id\":\"ca66091df9181d4c62d17f0484461a0d\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 03 Jul 2023 14:38:40 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"enable_custom_metrics\":false,\"resource_type\":\"kafka\",\"tags\":[\"myTag\",\"myTag2:myValue\"]},\"id\":\"testaddresourcetoconfluentaccountreturnsokresponse1688395120\",\"type\":\"confluent-cloud-resources\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integrations/confluent-cloud/accounts/ca66091df9181d4c62d17f0484461a0d/resources"}, "response": {"body": {"string": "{\"data\":{\"type\":\"confluent-cloud-resources\",\"attributes\":{\"enable_custom_metrics\":false,\"tags\":[\"mytag\",\"mytag2:myvalue\"],\"resource_type\":\"kafka\"},\"id\":\"testaddresourcetoconfluentaccountreturnsokresponse1688395120\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 03 Jul 2023 14:38:40 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integrations/confluent-cloud/accounts/ca66091df9181d4c62d17f0484461a0d"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 03 Jul 2023 14:38:40 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"api_key\":\"TestAddresourcetoConfluentaccountreturnsOKresponse1688395120\",\"api_secret\":\"test-api-secret\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integrations/confluent-cloud/accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"confluent-cloud-accounts\",\"attributes\":{\"tags\":[\"tag1\",\"tag2:val2\"],\"resources\":[{\"id\":\"test-resource-id\",\"enable_custom_metrics\":false,\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"api_key\":\"TestAddresourcetoConfluentaccountreturnsOKresponse1688395120\"},\"id\":\"ca66091df9181d4c62d17f0484461a0d\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 03 Jul 2023 14:38:40 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enable_custom_metrics\":false,\"resource_type\":\"kafka\",\"tags\":[\"myTag\",\"myTag2:myValue\"]},\"id\":\"testaddresourcetoconfluentaccountreturnsokresponse1688395120\",\"type\":\"confluent-cloud-resources\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integrations/confluent-cloud/accounts/ca66091df9181d4c62d17f0484461a0d/resources" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"confluent-cloud-resources\",\"attributes\":{\"enable_custom_metrics\":false,\"tags\":[\"mytag\",\"mytag2:myvalue\"],\"resource_type\":\"kafka\"},\"id\":\"testaddresourcetoconfluentaccountreturnsokresponse1688395120\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 03 Jul 2023 14:38:40 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integrations/confluent-cloud/accounts/ca66091df9181d4c62d17f0484461a0d" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 03 Jul 2023 14:38:40 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/confluent_cloud/Delete-Confluent-account-returns-OK-response.json b/tests/scenarios/cassettes/v2/confluent_cloud/Delete-Confluent-account-returns-OK-response.json index a2ebcee61..9febdb8a4 100644 --- a/tests/scenarios/cassettes/v2/confluent_cloud/Delete-Confluent-account-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/confluent_cloud/Delete-Confluent-account-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"api_key\":\"TestDeleteConfluentaccountreturnsOKresponse1697461335\",\"api_secret\":\"test-api-secret\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integrations/confluent-cloud/accounts"}, "response": {"body": {"string": "{\"data\":{\"type\":\"confluent-cloud-accounts\",\"attributes\":{\"resources\":[{\"tags\":[\"tag1\",\"tag2:val2\"],\"id\":\"test-resource-id\",\"enable_custom_metrics\":false,\"resource_type\":\"kafka\"}],\"tags\":[\"tag1\",\"tag2:val2\"],\"api_key\":\"TestDeleteConfluentaccountreturnsOKresponse1697461335\"},\"id\":\"ed3f03aa36fdd7ba6b48381d54280e45\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 16 Oct 2023 13:02:15 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integrations/confluent-cloud/accounts/ed3f03aa36fdd7ba6b48381d54280e45"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 16 Oct 2023 13:02:15 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integrations/confluent-cloud/accounts/ed3f03aa36fdd7ba6b48381d54280e45"}, "response": {"body": {"string": "{\"errors\":[\"Account not found not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Mon, 16 Oct 2023 13:02:15 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"api_key\":\"TestDeleteConfluentaccountreturnsOKresponse1697461335\",\"api_secret\":\"test-api-secret\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integrations/confluent-cloud/accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"confluent-cloud-accounts\",\"attributes\":{\"resources\":[{\"tags\":[\"tag1\",\"tag2:val2\"],\"id\":\"test-resource-id\",\"enable_custom_metrics\":false,\"resource_type\":\"kafka\"}],\"tags\":[\"tag1\",\"tag2:val2\"],\"api_key\":\"TestDeleteConfluentaccountreturnsOKresponse1697461335\"},\"id\":\"ed3f03aa36fdd7ba6b48381d54280e45\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 16 Oct 2023 13:02:15 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integrations/confluent-cloud/accounts/ed3f03aa36fdd7ba6b48381d54280e45" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 16 Oct 2023 13:02:15 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integrations/confluent-cloud/accounts/ed3f03aa36fdd7ba6b48381d54280e45" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Account not found not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Mon, 16 Oct 2023 13:02:15 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/confluent_cloud/Get-Confluent-account-returns-OK-response.json b/tests/scenarios/cassettes/v2/confluent_cloud/Get-Confluent-account-returns-OK-response.json index 2352d431b..93421d4e3 100644 --- a/tests/scenarios/cassettes/v2/confluent_cloud/Get-Confluent-account-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/confluent_cloud/Get-Confluent-account-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"api_key\":\"TestGetConfluentaccountreturnsOKresponse1688395121\",\"api_secret\":\"test-api-secret\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integrations/confluent-cloud/accounts"}, "response": {"body": {"string": "{\"data\":{\"type\":\"confluent-cloud-accounts\",\"id\":\"8a03a240e4d322d42edf6d4f4654a624\",\"attributes\":{\"resources\":[{\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"],\"enable_custom_metrics\":false,\"id\":\"test-resource-id\"}],\"api_key\":\"TestGetConfluentaccountreturnsOKresponse1688395121\",\"tags\":[\"tag1\",\"tag2:val2\"]}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 03 Jul 2023 14:38:41 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/integrations/confluent-cloud/accounts/8a03a240e4d322d42edf6d4f4654a624"}, "response": {"body": {"string": "{\"data\":{\"type\":\"confluent-cloud-accounts\",\"attributes\":{\"resources\":[{\"enable_custom_metrics\":false,\"id\":\"test-resource-id\",\"tags\":[\"tag1\",\"tag2:val2\"],\"resource_type\":\"kafka\"}],\"api_key\":\"TestGetConfluentaccountreturnsOKresponse1688395121\",\"tags\":[\"tag1\",\"tag2:val2\"]},\"id\":\"8a03a240e4d322d42edf6d4f4654a624\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 03 Jul 2023 14:38:41 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integrations/confluent-cloud/accounts/8a03a240e4d322d42edf6d4f4654a624"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 03 Jul 2023 14:38:41 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"api_key\":\"TestGetConfluentaccountreturnsOKresponse1688395121\",\"api_secret\":\"test-api-secret\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integrations/confluent-cloud/accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"confluent-cloud-accounts\",\"id\":\"8a03a240e4d322d42edf6d4f4654a624\",\"attributes\":{\"resources\":[{\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"],\"enable_custom_metrics\":false,\"id\":\"test-resource-id\"}],\"api_key\":\"TestGetConfluentaccountreturnsOKresponse1688395121\",\"tags\":[\"tag1\",\"tag2:val2\"]}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 03 Jul 2023 14:38:41 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/integrations/confluent-cloud/accounts/8a03a240e4d322d42edf6d4f4654a624" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"confluent-cloud-accounts\",\"attributes\":{\"resources\":[{\"enable_custom_metrics\":false,\"id\":\"test-resource-id\",\"tags\":[\"tag1\",\"tag2:val2\"],\"resource_type\":\"kafka\"}],\"api_key\":\"TestGetConfluentaccountreturnsOKresponse1688395121\",\"tags\":[\"tag1\",\"tag2:val2\"]},\"id\":\"8a03a240e4d322d42edf6d4f4654a624\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 03 Jul 2023 14:38:41 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integrations/confluent-cloud/accounts/8a03a240e4d322d42edf6d4f4654a624" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 03 Jul 2023 14:38:41 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/confluent_cloud/List-Confluent-accounts-returns-OK-response.json b/tests/scenarios/cassettes/v2/confluent_cloud/List-Confluent-accounts-returns-OK-response.json index e237f27c4..a4a7f0d4b 100644 --- a/tests/scenarios/cassettes/v2/confluent_cloud/List-Confluent-accounts-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/confluent_cloud/List-Confluent-accounts-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1665090166\",\"api_secret\":\"test-api-secret\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integrations/confluent-cloud/accounts"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1665090166\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"45iw6lb8j5\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 06 Oct 2022 21:02:46 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/integrations/confluent-cloud/accounts"}, "response": {"body": {"string": "{\"data\":[{\"attributes\":{\"api_key\":\"test-api-key3\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"iubtgfayp5\"},{\"attributes\":{\"api_key\":\"Test-List_Confluent_accounts_returns_OK_response-1663015727\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"83wqs4ztwc\"},{\"attributes\":{\"api_key\":\"update-key\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[]},\"type\":\"confluent-cloud-accounts\",\"id\":\"mrwhlq9oyn\"},{\"attributes\":{\"api_key\":\"Test-List_Confluent_accounts_returns_OK_response-1663017017\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"tuwcfwqe3a\"},{\"attributes\":{\"api_key\":\"Test-Update_Confluent_account_returns_OK_response-1663017018\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"bt2li4wmv5\"},{\"attributes\":{\"api_key\":\"Test-List_Confluent_accounts_returns_OK_response-1663017074\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"snrx0cusau\"},{\"attributes\":{\"api_key\":\"Test-Update_Confluent_account_returns_OK_response-1663017075\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"3r136fz38z\"},{\"attributes\":{\"api_key\":\"Test-List_Confluent_accounts_returns_OK_response-1663035571\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"olnygn7t1v\"},{\"attributes\":{\"api_key\":\"Test-Update_Confluent_account_returns_OK_response-1663035572\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"u61jn2zm67\"},{\"attributes\":{\"api_key\":\"testlistconfluentaccountsreturnsokresponse1663035633\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"u0mnbkhpyg\"},{\"attributes\":{\"api_key\":\"testupdateconfluentaccountreturnsokresponse1663035635\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"1qt90nner9\"},{\"attributes\":{\"api_key\":\"testlistconfluentaccountsreturnsokresponse1663040179\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"rn6627go3o\"},{\"attributes\":{\"api_key\":\"testupdateconfluentaccountreturnsokresponse1663040180\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"hkkcrwodz3\"},{\"attributes\":{\"api_key\":\"api-key-test-123\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"m17r8n1brn\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663081412\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"0ubcaq4ack\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663081413\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"csu3ol6ewv\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663091740\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"e8ql5yb6d0\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663091741\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"frgdwzdkc8\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663091761\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"hpv6ewnuew\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663091762\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"19b6yov7hd\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663092165\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"97agj11bf0\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663092166\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[]},\"type\":\"confluent-cloud-accounts\",\"id\":\"kn6kq1i4si\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663092330\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"a8fzei9e85\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663092331\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"updated_tag:val\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"5wmpn2sx51\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663092374\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"fb3gmtwadj\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663092374\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"updated_tag:val\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"qul0ce8yrg\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663092403\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"9neye26b1h\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663092404\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"updated_tag:val\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"xaab9w4b72\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663092495\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"x7en9ipq51\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663092496\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"updated_tag:val\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"gl1y005ff1\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663093490\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"4j43efxc7f\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663093491\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"updated_tag:val\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"nl8es35l6i\"},{\"attributes\":{\"api_key\":\"TestDeleteresourcefromConfluentaccountreturnsOKresponse1663093498\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"9ccf1xtqtr\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663093499\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"ep3q1okrbl\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663093500\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"updated_tag:val\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"rqdlsa4bzf\"},{\"attributes\":{\"api_key\":\"TestDeleteresourcefromConfluentaccountreturnsOKresponse1663093577\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"b27wqbnkq3\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663093578\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"5t6xj8u5i5\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663093579\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"updated_tag:val\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"8vogxaeno1\"},{\"attributes\":{\"api_key\":\"TestDeleteresourcefromConfluentaccountreturnsOKresponse1663093596\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"krs4zg884i\"},{\"attributes\":{\"api_key\":\"TestDeleteresourcefromConfluentaccountreturnsOKresponse1663093745\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"9f503olewx\"},{\"attributes\":{\"api_key\":\"TestGetConfluentaccountreturnsOKresponse1663094037\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"be2ywpqpmq\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663094038\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"3uh8kipdh6\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663094039\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"updated_tag:val\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"z7rgwzsjgb\"},{\"attributes\":{\"api_key\":\"TestGetConfluentaccountreturnsOKresponse1663094133\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"mqq2s2dphs\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663094134\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"t3rjzkgkog\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663094135\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"updated_tag:val\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"6dbd2ohnq1\"},{\"attributes\":{\"api_key\":\"TestGetConfluentaccountreturnsOKresponse1663094313\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"r3z2a4u9r0\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663094314\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"rc2ezuf80r\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663094315\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"updated_tag:val\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"xttgp0v4l1\"},{\"attributes\":{\"api_key\":\"TestGetConfluentaccountreturnsOKresponse1663094436\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"6w0y04l7pj\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663094437\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"feibu0b5f3\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663094438\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"updated_tag:val\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"nb7swpr8g8\"},{\"attributes\":{\"api_key\":\"TestGetConfluentaccountreturnsOKresponse1663180425\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"by22udueep\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663180426\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"h1s9rgj73z\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663180426\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"updated_tag:val\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"izxxm263fi\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1665090166\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"45iw6lb8j5\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Oct 2022 21:02:46 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integrations/confluent-cloud/accounts/45iw6lb8j5"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 06 Oct 2022 21:02:46 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1665090166\",\"api_secret\":\"test-api-secret\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integrations/confluent-cloud/accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1665090166\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"45iw6lb8j5\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 06 Oct 2022 21:02:46 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/integrations/confluent-cloud/accounts" + }, + "response": { + "body": { + "string": "{\"data\":[{\"attributes\":{\"api_key\":\"test-api-key3\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"iubtgfayp5\"},{\"attributes\":{\"api_key\":\"Test-List_Confluent_accounts_returns_OK_response-1663015727\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"83wqs4ztwc\"},{\"attributes\":{\"api_key\":\"update-key\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[]},\"type\":\"confluent-cloud-accounts\",\"id\":\"mrwhlq9oyn\"},{\"attributes\":{\"api_key\":\"Test-List_Confluent_accounts_returns_OK_response-1663017017\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"tuwcfwqe3a\"},{\"attributes\":{\"api_key\":\"Test-Update_Confluent_account_returns_OK_response-1663017018\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"bt2li4wmv5\"},{\"attributes\":{\"api_key\":\"Test-List_Confluent_accounts_returns_OK_response-1663017074\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"snrx0cusau\"},{\"attributes\":{\"api_key\":\"Test-Update_Confluent_account_returns_OK_response-1663017075\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"3r136fz38z\"},{\"attributes\":{\"api_key\":\"Test-List_Confluent_accounts_returns_OK_response-1663035571\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"olnygn7t1v\"},{\"attributes\":{\"api_key\":\"Test-Update_Confluent_account_returns_OK_response-1663035572\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"u61jn2zm67\"},{\"attributes\":{\"api_key\":\"testlistconfluentaccountsreturnsokresponse1663035633\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"u0mnbkhpyg\"},{\"attributes\":{\"api_key\":\"testupdateconfluentaccountreturnsokresponse1663035635\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"1qt90nner9\"},{\"attributes\":{\"api_key\":\"testlistconfluentaccountsreturnsokresponse1663040179\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"rn6627go3o\"},{\"attributes\":{\"api_key\":\"testupdateconfluentaccountreturnsokresponse1663040180\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"hkkcrwodz3\"},{\"attributes\":{\"api_key\":\"api-key-test-123\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"m17r8n1brn\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663081412\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"0ubcaq4ack\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663081413\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"csu3ol6ewv\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663091740\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"e8ql5yb6d0\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663091741\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"frgdwzdkc8\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663091761\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"hpv6ewnuew\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663091762\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"19b6yov7hd\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663092165\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"97agj11bf0\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663092166\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[]},\"type\":\"confluent-cloud-accounts\",\"id\":\"kn6kq1i4si\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663092330\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"a8fzei9e85\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663092331\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"updated_tag:val\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"5wmpn2sx51\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663092374\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"fb3gmtwadj\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663092374\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"updated_tag:val\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"qul0ce8yrg\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663092403\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"9neye26b1h\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663092404\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"updated_tag:val\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"xaab9w4b72\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663092495\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"x7en9ipq51\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663092496\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"updated_tag:val\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"gl1y005ff1\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663093490\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"4j43efxc7f\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663093491\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"updated_tag:val\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"nl8es35l6i\"},{\"attributes\":{\"api_key\":\"TestDeleteresourcefromConfluentaccountreturnsOKresponse1663093498\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"9ccf1xtqtr\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663093499\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"ep3q1okrbl\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663093500\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"updated_tag:val\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"rqdlsa4bzf\"},{\"attributes\":{\"api_key\":\"TestDeleteresourcefromConfluentaccountreturnsOKresponse1663093577\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"b27wqbnkq3\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663093578\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"5t6xj8u5i5\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663093579\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"updated_tag:val\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"8vogxaeno1\"},{\"attributes\":{\"api_key\":\"TestDeleteresourcefromConfluentaccountreturnsOKresponse1663093596\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"krs4zg884i\"},{\"attributes\":{\"api_key\":\"TestDeleteresourcefromConfluentaccountreturnsOKresponse1663093745\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"9f503olewx\"},{\"attributes\":{\"api_key\":\"TestGetConfluentaccountreturnsOKresponse1663094037\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"be2ywpqpmq\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663094038\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"3uh8kipdh6\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663094039\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"updated_tag:val\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"z7rgwzsjgb\"},{\"attributes\":{\"api_key\":\"TestGetConfluentaccountreturnsOKresponse1663094133\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"mqq2s2dphs\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663094134\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"t3rjzkgkog\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663094135\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"updated_tag:val\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"6dbd2ohnq1\"},{\"attributes\":{\"api_key\":\"TestGetConfluentaccountreturnsOKresponse1663094313\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"r3z2a4u9r0\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663094314\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"rc2ezuf80r\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663094315\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"updated_tag:val\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"xttgp0v4l1\"},{\"attributes\":{\"api_key\":\"TestGetConfluentaccountreturnsOKresponse1663094436\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"6w0y04l7pj\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663094437\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"feibu0b5f3\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663094438\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"updated_tag:val\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"nb7swpr8g8\"},{\"attributes\":{\"api_key\":\"TestGetConfluentaccountreturnsOKresponse1663180425\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"by22udueep\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1663180426\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"h1s9rgj73z\"},{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1663180426\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"updated_tag:val\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"izxxm263fi\"},{\"attributes\":{\"api_key\":\"TestListConfluentaccountsreturnsOKresponse1665090166\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"45iw6lb8j5\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Oct 2022 21:02:46 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integrations/confluent-cloud/accounts/45iw6lb8j5" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 06 Oct 2022 21:02:46 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/confluent_cloud/Update-Confluent-account-returns-OK-response.json b/tests/scenarios/cassettes/v2/confluent_cloud/Update-Confluent-account-returns-OK-response.json index 8440f25cd..ccf5ccb64 100644 --- a/tests/scenarios/cassettes/v2/confluent_cloud/Update-Confluent-account-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/confluent_cloud/Update-Confluent-account-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1665090166\",\"api_secret\":\"test-api-secret\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integrations/confluent-cloud/accounts"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1665090166\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"ytthkwvtde\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 06 Oct 2022 21:02:46 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1665090166\",\"api_secret\":\"update-secret\",\"tags\":[\"updated_tag:val\"]},\"type\":\"confluent-cloud-accounts\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/integrations/confluent-cloud/accounts/ytthkwvtde"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1665090166\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"updated_tag:val\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"ytthkwvtde\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Oct 2022 21:02:46 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integrations/confluent-cloud/accounts/ytthkwvtde"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 06 Oct 2022 21:02:46 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1665090166\",\"api_secret\":\"test-api-secret\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integrations/confluent-cloud/accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1665090166\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"tag1\",\"tag2:val2\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"ytthkwvtde\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 06 Oct 2022 21:02:46 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1665090166\",\"api_secret\":\"update-secret\",\"tags\":[\"updated_tag:val\"]},\"type\":\"confluent-cloud-accounts\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/integrations/confluent-cloud/accounts/ytthkwvtde" + }, + "response": { + "body": { + "string": "{\"data\":{\"attributes\":{\"api_key\":\"TestUpdateConfluentaccountreturnsOKresponse1665090166\",\"resources\":[{\"id\":\"test-resource-id\",\"resource_type\":\"kafka\",\"tags\":[\"tag1\",\"tag2:val2\"]}],\"tags\":[\"updated_tag:val\"]},\"type\":\"confluent-cloud-accounts\",\"id\":\"ytthkwvtde\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Oct 2022 21:02:46 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integrations/confluent-cloud/accounts/ytthkwvtde" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 06 Oct 2022 21:02:46 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/container_images/Get-all-Container-Image-groups-returns-OK-response.json b/tests/scenarios/cassettes/v2/container_images/Get-all-Container-Image-groups-returns-OK-response.json index 93170e0a6..fb3c76912 100644 --- a/tests/scenarios/cassettes/v2/container_images/Get-all-Container-Image-groups-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/container_images/Get-all-Container-Image-groups-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/container_images?group_by=short_image"}, "response": {"body": {"string": "{\"data\": [{\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 641013}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 318935}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=hort_image:worker\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 183916}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 179844}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 179662}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 81059}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 42254}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 22692}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 18684}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 17610}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 16188}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 15532}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 14965}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 14727}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 13803}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 13724}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 12730}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 12702}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 12519}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 12500}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 12441}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 12359}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 11952}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 11949}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 11477}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 11265}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 10888}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 10801}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 10697}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 10576}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 10574}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 10449}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 10110}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9981}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9960}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9947}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9943}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9875}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9870}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9742}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9613}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9450}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9395}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9372}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9371}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9364}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9363}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9344}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9341}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9295}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9270}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9205}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9129}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9059}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9037}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8951}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8697}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8693}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8587}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8568}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8450}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8385}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8321}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8292}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8263}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8240}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8219}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8218}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8194}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8179}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8156}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8110}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7938}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7901}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7848}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7785}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7647}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7631}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7573}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7565}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7498}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7402}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7382}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7312}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7298}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7151}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7059}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7045}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7024}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7021}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 6998}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 6907}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 6862}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 6837}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 6726}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 6697}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 6679}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 6670}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 6618}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 6596}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}], \"meta\": {\"pagination\": {\"cursor\": \"\", \"prev_cursor\": null, \"next_cursor\": \"\", \"limit\": 100, \"type\": \"cursor_limit\", \"total\": 0}}, \"links\": {\"self\": \"https://api.datadoghq.com/api/v2/container_images?group_by=short_image\", \"last\": null, \"next\": null, \"prev\": null, \"first\": \"https://api.datadoghq.com/api/v2/container_images?group_by=short_image&page[size]=100\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 11 Oct 2023 09:51:52 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/container_images?group_by=short_image" + }, + "response": { + "body": { + "string": "{\"data\": [{\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 641013}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 318935}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=hort_image:worker\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 183916}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 179844}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 179662}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 81059}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 42254}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 22692}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 18684}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 17610}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 16188}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 15532}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 14965}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 14727}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 13803}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 13724}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 12730}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 12702}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 12519}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 12500}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 12441}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 12359}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 11952}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 11949}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 11477}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 11265}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 10888}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 10801}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 10697}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 10576}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 10574}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 10449}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 10110}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9981}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9960}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9947}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9943}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9875}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9870}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9742}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9613}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9450}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9395}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9372}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9371}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9364}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9363}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9344}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9341}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9295}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9270}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9205}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9129}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9059}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 9037}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8951}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8697}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8693}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8587}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8568}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8450}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8385}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8321}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8292}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8263}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8240}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8219}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8218}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8194}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8179}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8156}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 8110}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7938}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7901}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7848}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7785}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7647}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7631}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7573}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7565}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7498}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7402}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7382}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7312}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7298}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7151}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7059}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7045}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7024}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 7021}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 6998}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 6907}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 6862}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 6837}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 6726}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 6697}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 6679}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 6670}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 6618}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}, {\"type\": \"container_image_group\", \"attributes\": {\"name\": \"test_name\", \"tags\": {\"short_image\": \"test_short_image\"}, \"count\": 6596}, \"relationships\": {\"container_images\": {\"links\": {\"related\": \"https://api.datadoghq.com/api/v2/container_images?filter[tags]=short_image:image\"}, \"data\": []}}, \"id\": \"test_id\"}], \"meta\": {\"pagination\": {\"cursor\": \"\", \"prev_cursor\": null, \"next_cursor\": \"\", \"limit\": 100, \"type\": \"cursor_limit\", \"total\": 0}}, \"links\": {\"self\": \"https://api.datadoghq.com/api/v2/container_images?group_by=short_image\", \"last\": null, \"next\": null, \"prev\": null, \"first\": \"https://api.datadoghq.com/api/v2/container_images?group_by=short_image&page[size]=100\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 11 Oct 2023 09:51:52 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/container_images/Get-all-Container-Images-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v2/container_images/Get-all-Container-Images-returns-OK-response-with-pagination.json index 5c199a97e..6e494c1e8 100644 --- a/tests/scenarios/cassettes/v2/container_images/Get-all-Container-Images-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v2/container_images/Get-all-Container-Images-returns-OK-response-with-pagination.json @@ -1 +1,61 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/container_images?page%5Bsize%5D=2"}, "response": {"body": {"string": "{\"data\": [{\"type\": \"container_image\", \"id\": \"test_id\", \"attributes\": {\"name\": \"test_name\", \"short_image\": \"test_short_image\", \"image_tags\": [\"test_image_tags\"], \"registry\": \"test_registry\", \"repository\": \"argo\", \"repo_digest\": \"test_repo_digest\", \"sizes\": [41802389], \"published_at\": \"2021-05-19T19:33:53Z\", \"tags\": [\"test_tags\"], \"container_count\": 0, \"os_names\": [], \"os_versions\": [], \"os_architectures\": [], \"images_built_at\": [], \"sources\": [\"aws_ecr\"], \"image_flavors\": []}}, {\"type\": \"container_image\", \"id\": \"test_id\", \"attributes\": {\"name\": \"test_name\", \"short_image\": \"test_short_image\", \"image_tags\": [\"test_image_tags\"], \"registry\": \"test_registry\", \"repository\": \"argo\", \"repo_digest\": \"test_repo_digest\", \"sizes\": [41808952], \"published_at\": \"2021-05-19T20:09:12Z\", \"tags\": [\"test_tags\"], \"container_count\": 0, \"os_names\": [], \"os_versions\": [], \"os_architectures\": [], \"images_built_at\": [], \"sources\": [\"aws_ecr\"], \"image_flavors\": []}}], \"meta\": {\"pagination\": {\"cursor\": \"\", \"prev_cursor\": null, \"next_cursor\": \"bmFtZTowMTM5MTA3MzM1MTIuZGtyLmVjci51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS9hcmdvfGlkOjAxMzkxMDczMzUxMi5ka3IuZWNyLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tL2FyZ29Ac2hhMjU2OjNlYWJjNzMwY2RiOTBiMWQ1N2QwNTkyNzJkZWQ3OWQ5NzZkNzk1ZTk0NzM0M2Q0NWFjMjA5MGViZjVmY2I2MTk=\", \"limit\": 2, \"type\": \"cursor_limit\", \"total\": 5184864}}, \"links\": {\"self\": \"https://api.datadoghq.com/api/v2/container_images?page%5Bsize%5D=2\", \"last\": null, \"next\": \"https://api.datadoghq.com/api/v2/container_images?page[cursor]=bmFtZTowMTM5MTA3MzM1MTIuZGtyLmVjci51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS9hcmdvfGlkOjAxMzkxMDczMzUxMi5ka3IuZWNyLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tL2FyZ29Ac2hhMjU2OjNlYWJjNzMwY2RiOTBiMWQ1N2QwNTkyNzJkZWQ3OWQ5NzZkNzk1ZTk0NzM0M2Q0NWFjMjA5MGViZjVmY2I2MTk=&page[size]=2\", \"prev\": null, \"first\": \"https://api.datadoghq.com/api/v2/container_images?page[size]=2\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 11 Oct 2023 11:13:13 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/container_images?page%5Bsize%5D=2&page%5Bcursor%5D=bmFtZTowMTM5MTA3MzM1MTIuZGtyLmVjci51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS9hcmdvfGlkOjAxMzkxMDczMzUxMi5ka3IuZWNyLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tL2FyZ29Ac2hhMjU2OjNlYWJjNzMwY2RiOTBiMWQ1N2QwNTkyNzJkZWQ3OWQ5NzZkNzk1ZTk0NzM0M2Q0NWFjMjA5MGViZjVmY2I2MTk%3D"}, "response": {"body": {"string": "{\"data\": [{\"type\": \"container_image\", \"id\": \"test_id\", \"attributes\": {\"name\": \"test_name\", \"short_image\": \"test_short_image\", \"image_tags\": [\"test_image_tags\"], \"registry\": \"test_registry\", \"repository\": \"argo\", \"repo_digest\": \"test_repo_digest\", \"sizes\": [41808952], \"published_at\": \"2021-05-19T19:33:23Z\", \"tags\": [\"test_tags\"], \"container_count\": 0, \"os_names\": [], \"os_versions\": [], \"os_architectures\": [], \"images_built_at\": [], \"sources\": [\"aws_ecr\"], \"image_flavors\": []}}], \"meta\": {\"pagination\": {\"cursor\": \"bmFtZTowMTM5MTA3MzM1MTIuZGtyLmVjci51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS9hcmdvfGlkOjAxMzkxMDczMzUxMi5ka3IuZWNyLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tL2FyZ29Ac2hhMjU2OjNlYWJjNzMwY2RiOTBiMWQ1N2QwNTkyNzJkZWQ3OWQ5NzZkNzk1ZTk0NzM0M2Q0NWFjMjA5MGViZjVmY2I2MTk=\", \"prev_cursor\": null, \"next_cursor\": \"bmFtZTowMTM5MTA3MzM1MTIuZGtyLmVjci51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS9hcmdvfGlkOjAxMzkxMDczMzUxMi5ka3IuZWNyLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tL2FyZ29Ac2hhMjU2OmZmMTUxZWYyNDZkN2I0ZDZiOGZlMzE5MjNiMjk4ZDg0ZThmMjA2MzI3MDFiYmI2ZWQ5N2ZjYzU4YTAxNTBmODA=\", \"limit\": 2, \"type\": \"cursor_limit\", \"total\": 5185322}}, \"links\": {\"self\": \"https://api.datadoghq.com/api/v2/container_images?page%5Bsize%5D=2&page%5Bcursor%5D=bmFtZTowMTM5MTA3MzM1MTIuZGtyLmVjci51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS9hcmdvfGlkOjAxMzkxMDczMzUxMi5ka3IuZWNyLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tL2FyZ29Ac2hhMjU2OjNlYWJjNzMwY2RiOTBiMWQ1N2QwNTkyNzJkZWQ3OWQ5NzZkNzk1ZTk0NzM0M2Q0NWFjMjA5MGViZjVmY2I2MTk%3D\", \"last\": null, \"next\": \"https://api.datadoghq.com/api/v2/container_images?page[cursor]=bmFtZTowMTM5MTA3MzM1MTIuZGtyLmVjci51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS9hcmdvfGlkOjAxMzkxMDczMzUxMi5ka3IuZWNyLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tL2FyZ29Ac2hhMjU2OmZmMTUxZWYyNDZkN2I0ZDZiOGZlMzE5MjNiMjk4ZDg0ZThmMjA2MzI3MDFiYmI2ZWQ5N2ZjYzU4YTAxNTBmODA=&page[size]=2\", \"prev\": null, \"first\": \"https://api.datadoghq.com/api/v2/container_images?page[size]=2\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 11 Oct 2023 11:13:13 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/container_images?page%5Bsize%5D=2" + }, + "response": { + "body": { + "string": "{\"data\": [{\"type\": \"container_image\", \"id\": \"test_id\", \"attributes\": {\"name\": \"test_name\", \"short_image\": \"test_short_image\", \"image_tags\": [\"test_image_tags\"], \"registry\": \"test_registry\", \"repository\": \"argo\", \"repo_digest\": \"test_repo_digest\", \"sizes\": [41802389], \"published_at\": \"2021-05-19T19:33:53Z\", \"tags\": [\"test_tags\"], \"container_count\": 0, \"os_names\": [], \"os_versions\": [], \"os_architectures\": [], \"images_built_at\": [], \"sources\": [\"aws_ecr\"], \"image_flavors\": []}}, {\"type\": \"container_image\", \"id\": \"test_id\", \"attributes\": {\"name\": \"test_name\", \"short_image\": \"test_short_image\", \"image_tags\": [\"test_image_tags\"], \"registry\": \"test_registry\", \"repository\": \"argo\", \"repo_digest\": \"test_repo_digest\", \"sizes\": [41808952], \"published_at\": \"2021-05-19T20:09:12Z\", \"tags\": [\"test_tags\"], \"container_count\": 0, \"os_names\": [], \"os_versions\": [], \"os_architectures\": [], \"images_built_at\": [], \"sources\": [\"aws_ecr\"], \"image_flavors\": []}}], \"meta\": {\"pagination\": {\"cursor\": \"\", \"prev_cursor\": null, \"next_cursor\": \"bmFtZTowMTM5MTA3MzM1MTIuZGtyLmVjci51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS9hcmdvfGlkOjAxMzkxMDczMzUxMi5ka3IuZWNyLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tL2FyZ29Ac2hhMjU2OjNlYWJjNzMwY2RiOTBiMWQ1N2QwNTkyNzJkZWQ3OWQ5NzZkNzk1ZTk0NzM0M2Q0NWFjMjA5MGViZjVmY2I2MTk=\", \"limit\": 2, \"type\": \"cursor_limit\", \"total\": 5184864}}, \"links\": {\"self\": \"https://api.datadoghq.com/api/v2/container_images?page%5Bsize%5D=2\", \"last\": null, \"next\": \"https://api.datadoghq.com/api/v2/container_images?page[cursor]=bmFtZTowMTM5MTA3MzM1MTIuZGtyLmVjci51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS9hcmdvfGlkOjAxMzkxMDczMzUxMi5ka3IuZWNyLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tL2FyZ29Ac2hhMjU2OjNlYWJjNzMwY2RiOTBiMWQ1N2QwNTkyNzJkZWQ3OWQ5NzZkNzk1ZTk0NzM0M2Q0NWFjMjA5MGViZjVmY2I2MTk=&page[size]=2\", \"prev\": null, \"first\": \"https://api.datadoghq.com/api/v2/container_images?page[size]=2\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 11 Oct 2023 11:13:13 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/container_images?page%5Bsize%5D=2&page%5Bcursor%5D=bmFtZTowMTM5MTA3MzM1MTIuZGtyLmVjci51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS9hcmdvfGlkOjAxMzkxMDczMzUxMi5ka3IuZWNyLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tL2FyZ29Ac2hhMjU2OjNlYWJjNzMwY2RiOTBiMWQ1N2QwNTkyNzJkZWQ3OWQ5NzZkNzk1ZTk0NzM0M2Q0NWFjMjA5MGViZjVmY2I2MTk%3D" + }, + "response": { + "body": { + "string": "{\"data\": [{\"type\": \"container_image\", \"id\": \"test_id\", \"attributes\": {\"name\": \"test_name\", \"short_image\": \"test_short_image\", \"image_tags\": [\"test_image_tags\"], \"registry\": \"test_registry\", \"repository\": \"argo\", \"repo_digest\": \"test_repo_digest\", \"sizes\": [41808952], \"published_at\": \"2021-05-19T19:33:23Z\", \"tags\": [\"test_tags\"], \"container_count\": 0, \"os_names\": [], \"os_versions\": [], \"os_architectures\": [], \"images_built_at\": [], \"sources\": [\"aws_ecr\"], \"image_flavors\": []}}], \"meta\": {\"pagination\": {\"cursor\": \"bmFtZTowMTM5MTA3MzM1MTIuZGtyLmVjci51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS9hcmdvfGlkOjAxMzkxMDczMzUxMi5ka3IuZWNyLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tL2FyZ29Ac2hhMjU2OjNlYWJjNzMwY2RiOTBiMWQ1N2QwNTkyNzJkZWQ3OWQ5NzZkNzk1ZTk0NzM0M2Q0NWFjMjA5MGViZjVmY2I2MTk=\", \"prev_cursor\": null, \"next_cursor\": \"bmFtZTowMTM5MTA3MzM1MTIuZGtyLmVjci51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS9hcmdvfGlkOjAxMzkxMDczMzUxMi5ka3IuZWNyLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tL2FyZ29Ac2hhMjU2OmZmMTUxZWYyNDZkN2I0ZDZiOGZlMzE5MjNiMjk4ZDg0ZThmMjA2MzI3MDFiYmI2ZWQ5N2ZjYzU4YTAxNTBmODA=\", \"limit\": 2, \"type\": \"cursor_limit\", \"total\": 5185322}}, \"links\": {\"self\": \"https://api.datadoghq.com/api/v2/container_images?page%5Bsize%5D=2&page%5Bcursor%5D=bmFtZTowMTM5MTA3MzM1MTIuZGtyLmVjci51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS9hcmdvfGlkOjAxMzkxMDczMzUxMi5ka3IuZWNyLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tL2FyZ29Ac2hhMjU2OjNlYWJjNzMwY2RiOTBiMWQ1N2QwNTkyNzJkZWQ3OWQ5NzZkNzk1ZTk0NzM0M2Q0NWFjMjA5MGViZjVmY2I2MTk%3D\", \"last\": null, \"next\": \"https://api.datadoghq.com/api/v2/container_images?page[cursor]=bmFtZTowMTM5MTA3MzM1MTIuZGtyLmVjci51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS9hcmdvfGlkOjAxMzkxMDczMzUxMi5ka3IuZWNyLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tL2FyZ29Ac2hhMjU2OmZmMTUxZWYyNDZkN2I0ZDZiOGZlMzE5MjNiMjk4ZDg0ZThmMjA2MzI3MDFiYmI2ZWQ5N2ZjYzU4YTAxNTBmODA=&page[size]=2\", \"prev\": null, \"first\": \"https://api.datadoghq.com/api/v2/container_images?page[size]=2\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 11 Oct 2023 11:13:13 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/container_images/Get-all-Container-Images-returns-OK-response.json b/tests/scenarios/cassettes/v2/container_images/Get-all-Container-Images-returns-OK-response.json index 5cd1bf070..ef322bfb3 100644 --- a/tests/scenarios/cassettes/v2/container_images/Get-all-Container-Images-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/container_images/Get-all-Container-Images-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/container_images"}, "response": {"body": {"string": "{\"data\": [{\"type\": \"container_image\", \"id\": \"test_id\", \"attributes\": {\"name\": \"test_name\", \"short_image\": \"test_short_image\", \"image_tags\": [\"test_image_tags\"], \"registry\": \"test_registry\", \"repository\": \"argo\", \"repo_digest\": \"test_repo_digest\", \"sizes\": [41802389], \"published_at\": \"2021-05-19T19:33:53Z\", \"tags\": [\"test_tags\"], \"container_count\": 0, \"os_names\": [], \"os_versions\": [], \"os_architectures\": [], \"images_built_at\": [], \"sources\": [\"aws_ecr\"], \"image_flavors\": []}}, {\"type\": \"container_image\", \"id\": \"test_id\", \"attributes\": {\"name\": \"test_name\", \"short_image\": \"test_short_image\", \"image_tags\": [\"test_image_tags\"], \"registry\": \"test_registry\", \"repository\": \"argo\", \"repo_digest\": \"test_repo_digest\", \"sizes\": [41808952], \"published_at\": \"2021-05-19T20:09:12Z\", \"tags\": [\"test_tags\"], \"container_count\": 0, \"os_names\": [], \"os_versions\": [], \"os_architectures\": [], \"images_built_at\": [], \"sources\": [\"aws_ecr\"], \"image_flavors\": []}}], \"meta\": {\"pagination\": {\"cursor\": \"\", \"prev_cursor\": null, \"next_cursor\": \"bmFtZTowMTM5MTA3MzM1MTIuZGtyLmVjci51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS9hcmdvfGlkOjAxMzkxMDczMzUxMi5ka3IuZWNyLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tL2FyZ29Ac2hhMjU2OjNlYWJjNzMwY2RiOTBiMWQ1N2QwNTkyNzJkZWQ3OWQ5NzZkNzk1ZTk0NzM0M2Q0NWFjMjA5MGViZjVmY2I2MTk=\", \"limit\": 2, \"type\": \"cursor_limit\", \"total\": 5252447}}, \"links\": {\"self\": \"https://api.datadoghq.com/api/v2/container_images\", \"last\": null, \"next\": \"https://api.datadoghq.com/api/v2/container_images?page[cursor]=bmFtZTowMTM5MTA3MzM1MTIuZGtyLmVjci51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS9hcmdvfGlkOjAxMzkxMDczMzUxMi5ka3IuZWNyLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tL2FyZ29Ac2hhMjU2OjNlYWJjNzMwY2RiOTBiMWQ1N2QwNTkyNzJkZWQ3OWQ5NzZkNzk1ZTk0NzM0M2Q0NWFjMjA5MGViZjVmY2I2MTk=\", \"prev\": null, \"first\": \"https://api.datadoghq.com/api/v2/container_images\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 11 Oct 2023 09:43:43 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/container_images" + }, + "response": { + "body": { + "string": "{\"data\": [{\"type\": \"container_image\", \"id\": \"test_id\", \"attributes\": {\"name\": \"test_name\", \"short_image\": \"test_short_image\", \"image_tags\": [\"test_image_tags\"], \"registry\": \"test_registry\", \"repository\": \"argo\", \"repo_digest\": \"test_repo_digest\", \"sizes\": [41802389], \"published_at\": \"2021-05-19T19:33:53Z\", \"tags\": [\"test_tags\"], \"container_count\": 0, \"os_names\": [], \"os_versions\": [], \"os_architectures\": [], \"images_built_at\": [], \"sources\": [\"aws_ecr\"], \"image_flavors\": []}}, {\"type\": \"container_image\", \"id\": \"test_id\", \"attributes\": {\"name\": \"test_name\", \"short_image\": \"test_short_image\", \"image_tags\": [\"test_image_tags\"], \"registry\": \"test_registry\", \"repository\": \"argo\", \"repo_digest\": \"test_repo_digest\", \"sizes\": [41808952], \"published_at\": \"2021-05-19T20:09:12Z\", \"tags\": [\"test_tags\"], \"container_count\": 0, \"os_names\": [], \"os_versions\": [], \"os_architectures\": [], \"images_built_at\": [], \"sources\": [\"aws_ecr\"], \"image_flavors\": []}}], \"meta\": {\"pagination\": {\"cursor\": \"\", \"prev_cursor\": null, \"next_cursor\": \"bmFtZTowMTM5MTA3MzM1MTIuZGtyLmVjci51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS9hcmdvfGlkOjAxMzkxMDczMzUxMi5ka3IuZWNyLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tL2FyZ29Ac2hhMjU2OjNlYWJjNzMwY2RiOTBiMWQ1N2QwNTkyNzJkZWQ3OWQ5NzZkNzk1ZTk0NzM0M2Q0NWFjMjA5MGViZjVmY2I2MTk=\", \"limit\": 2, \"type\": \"cursor_limit\", \"total\": 5252447}}, \"links\": {\"self\": \"https://api.datadoghq.com/api/v2/container_images\", \"last\": null, \"next\": \"https://api.datadoghq.com/api/v2/container_images?page[cursor]=bmFtZTowMTM5MTA3MzM1MTIuZGtyLmVjci51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS9hcmdvfGlkOjAxMzkxMDczMzUxMi5ka3IuZWNyLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tL2FyZ29Ac2hhMjU2OjNlYWJjNzMwY2RiOTBiMWQ1N2QwNTkyNzJkZWQ3OWQ5NzZkNzk1ZTk0NzM0M2Q0NWFjMjA5MGViZjVmY2I2MTk=\", \"prev\": null, \"first\": \"https://api.datadoghq.com/api/v2/container_images\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 11 Oct 2023 09:43:43 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/containers/Get-All-Container-groups-returns-OK-response.json b/tests/scenarios/cassettes/v2/containers/Get-All-Container-groups-returns-OK-response.json index 21f7bbae6..98078ce90 100644 --- a/tests/scenarios/cassettes/v2/containers/Get-All-Container-groups-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/containers/Get-All-Container-groups-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/containers?group_by=short_image"}, "response": {"body": {"string": "{\"data\": [{\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 123, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}], \"meta\": {\"pagination\": {\"cursor\": \"\", \"prev_cursor\": null, \"next_cursor\": \"\", \"limit\": 100, \"type\": \"cursor_limit\", \"total\": 0}}, \"links\": {\"self\": \"https://api.datadoghq.com/api/v2/containers?group_by=short_image\", \"last\": null, \"next\": null, \"prev\": null, \"first\": \"https://api.datadoghq.com/api/v2/containers?group_by=short_image&page[size]=100\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 16 Oct 2023 15:58:19 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/containers?group_by=short_image" + }, + "response": { + "body": { + "string": "{\"data\": [{\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 123, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}, {\"type\": \"container_group\", \"id\": \"test_id\", \"attributes\": {\"count\": 1, \"tags\": {\"short_image\": \"test_short_image\"}}, \"relationships\": {\"containers\": {\"links\": {\"related\": \"test_related\"}, \"data\": []}}}], \"meta\": {\"pagination\": {\"cursor\": \"\", \"prev_cursor\": null, \"next_cursor\": \"\", \"limit\": 100, \"type\": \"cursor_limit\", \"total\": 0}}, \"links\": {\"self\": \"https://api.datadoghq.com/api/v2/containers?group_by=short_image\", \"last\": null, \"next\": null, \"prev\": null, \"first\": \"https://api.datadoghq.com/api/v2/containers?group_by=short_image&page[size]=100\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 16 Oct 2023 15:58:19 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/containers/Get-All-Containers-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v2/containers/Get-All-Containers-returns-OK-response-with-pagination.json index b8131f419..2dc3b1bbc 100644 --- a/tests/scenarios/cassettes/v2/containers/Get-All-Containers-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v2/containers/Get-All-Containers-returns-OK-response-with-pagination.json @@ -1 +1,61 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/containers?page%5Bsize%5D=2"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"container\",\"id\":\"15e90400bf66f26f4e7d3098406c30e11e2bc921\",\"attributes\":{\"name\":\"go-sample-app-modebeige_0\",\"created_at\":\"2023-10-12T13:46:51\",\"started_at\":\"2023-10-12T13:46:51\",\"state\":\"running\",\"container_id\":\"22f5bcc1-492a-435c-6d45-889e\",\"host\":\"compute-0-6c2718cc-dfd1-4768-9237-08132d11122f\",\"image_name\":\"\",\"image_tags\":null,\"image_digest\":null,\"tags\":[\"app_guid:c3e77ef9-1248-4ef8-aa75-9bf063ad1512\",\"app_id:c3e77ef9-1248-4ef8-aa75-9bf063ad1512\",\"app_instance_guid:22f5bcc1-492a-435c-6d45-889e\",\"app_instance_index:0\",\"app_name:go-sample-app-modebeige\",\"bosh_address:10.0.4.8\",\"bosh_az:us-central1-f\",\"bosh_deployment:cf-df4d3b7647b663c19610\",\"bosh_id:6c2718cc-dfd1-4768-9237-08132d11122f\",\"bosh_index:0\",\"bosh_ip:10.0.4.8\",\"bosh_job:compute\",\"bosh_name:compute\",\"cf-df4d3b7647b663c19610\",\"cf-df4d3b7647b663c19610-compute\",\"cloudfoundry\",\"compute\",\"container_name:go-sample-app-modebeige_0\",\"created_at:2023-10-09t08:30:42z\",\"deployment:cf-df4d3b7647b663c19610\",\"director:p-bosh\",\"env:pcf-modebeige\",\"foo:bar\",\"host:compute-0-6c2718cc-dfd1-4768-9237-08132d11122f\",\"id:6c2718cc-dfd1-4768-9237-08132d11122f\",\"index:0\",\"index:6c2718cc-dfd1-4768-9237-08132d11122f\",\"instance-id:3340011639055189196\",\"instance-type:n1-highmem-2\",\"instance_group:compute\",\"internal-hostname:vm-6dd9ae88-c203-463e-580e-26a7b561b870.c.cf-platform-engineering-cipp2.internal\",\"ip:10.0.4.8\",\"job:compute\",\"label_key:label_value\",\"metadata_key:metadata_value\",\"name:compute/6c2718cc-dfd1-4768-9237-08132d11122f\",\"numeric_project_id:946413340424\",\"org_id:9f4bffd9-6234-49dd-bc4e-d0282a7cf333\",\"org_name:Org 1\",\"p-bosh\",\"p-bosh-cf-df4d3b7647b663c19610\",\"p-bosh-cf-df4d3b7647b663c19610-compute\",\"pcf-modebeige\",\"project:cf-platform-engineering-cipp2\",\"service:go-sample-app-modebeige\",\"sidecar_count:1\",\"sidecar_present:true\",\"space_id:6c41b5e8-8ed8-465f-902a-48e03b465ffe\",\"space_name:Space 1\",\"user_data:_server_:_name_:_vm-6dd9ae88-c203-463e-580e-26a7b561b870_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\",\"version:1.0.0\",\"zone:us-central1-f\"]}},{\"type\":\"container\",\"id\":\"15e90400f5a7fd8072ebcc2e7eadb58c7acf1fe6\",\"attributes\":{\"name\":\"python-sample-app-modebeige_0\",\"created_at\":\"2023-10-12T13:46:51\",\"started_at\":\"2023-10-12T13:46:51\",\"state\":\"running\",\"container_id\":\"288bdf1c-ee25-43a2-6470-11e0\",\"host\":\"compute-0-6c2718cc-dfd1-4768-9237-08132d11122f\",\"image_name\":\"\",\"image_tags\":null,\"image_digest\":null,\"tags\":[\"app_guid:3d575664-cced-4000-b2fd-2ab4199722c7\",\"app_id:3d575664-cced-4000-b2fd-2ab4199722c7\",\"app_instance_guid:288bdf1c-ee25-43a2-6470-11e0\",\"app_instance_index:0\",\"app_name:python-sample-app-modebeige\",\"bosh_address:10.0.4.8\",\"bosh_az:us-central1-f\",\"bosh_deployment:cf-df4d3b7647b663c19610\",\"bosh_id:6c2718cc-dfd1-4768-9237-08132d11122f\",\"bosh_index:0\",\"bosh_ip:10.0.4.8\",\"bosh_job:compute\",\"bosh_name:compute\",\"cf-df4d3b7647b663c19610\",\"cf-df4d3b7647b663c19610-compute\",\"cloudfoundry\",\"compute\",\"container_name:python-sample-app-modebeige_0\",\"created_at:2023-10-09t08:30:42z\",\"deployment:cf-df4d3b7647b663c19610\",\"director:p-bosh\",\"env:pcf-modebeige\",\"foo:bar\",\"host:compute-0-6c2718cc-dfd1-4768-9237-08132d11122f\",\"id:6c2718cc-dfd1-4768-9237-08132d11122f\",\"index:0\",\"index:6c2718cc-dfd1-4768-9237-08132d11122f\",\"instance-id:3340011639055189196\",\"instance-type:n1-highmem-2\",\"instance_group:compute\",\"internal-hostname:vm-6dd9ae88-c203-463e-580e-26a7b561b870.c.cf-platform-engineering-cipp2.internal\",\"ip:10.0.4.8\",\"job:compute\",\"label_key:label_value\",\"metadata_key:metadata_value\",\"name:compute/6c2718cc-dfd1-4768-9237-08132d11122f\",\"numeric_project_id:946413340424\",\"org_id:9f4bffd9-6234-49dd-bc4e-d0282a7cf333\",\"org_name:Org 1\",\"p-bosh\",\"p-bosh-cf-df4d3b7647b663c19610\",\"p-bosh-cf-df4d3b7647b663c19610-compute\",\"pcf-modebeige\",\"project:cf-platform-engineering-cipp2\",\"service:python-sample-app-modebeige\",\"sidecar_count:1\",\"sidecar_present:true\",\"space_id:6c41b5e8-8ed8-465f-902a-48e03b465ffe\",\"space_name:Space 1\",\"user_data:_server_:_name_:_vm-6dd9ae88-c203-463e-580e-26a7b561b870_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\",\"version:1.0.0\",\"zone:us-central1-f\"]}}],\"meta\":{\"pagination\":{\"cursor\":\"\",\"prev_cursor\":null,\"next_cursor\":\"c3RhcnRlZDoxNjk3MTE4NDExMDAwLjAwMDAwMHxpZC5yYXc6Mjg4YmRmMWMtZWUyNS00M2EyLTY0NzAtMTFlMA==\",\"limit\":2,\"type\":\"cursor_limit\",\"total\":10}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/containers?page%5Bsize%5D=2\",\"last\":null,\"next\":\"https://api.datadoghq.com/api/v2/containers?page[cursor]=c3RhcnRlZDoxNjk3MTE4NDExMDAwLjAwMDAwMHxpZC5yYXc6Mjg4YmRmMWMtZWUyNS00M2EyLTY0NzAtMTFlMA==&page[size]=2\",\"prev\":null,\"first\":\"https://api.datadoghq.com/api/v2/containers?page[size]=2\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 16 Oct 2023 16:01:59 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/containers?page%5Bsize%5D=2&page%5Bcursor%5D=c3RhcnRlZDoxNjk3MTE4NDExMDAwLjAwMDAwMHxpZC5yYXc6Mjg4YmRmMWMtZWUyNS00M2EyLTY0NzAtMTFlMA%3D%3D"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"container\",\"id\":\"15e90400d72ce956da898384526fb3411a96ac48\",\"attributes\":{\"name\":\"java-sample-app-modebeige_0\",\"created_at\":\"2023-10-12T13:46:51\",\"started_at\":\"2023-10-12T13:46:51\",\"state\":\"running\",\"container_id\":\"5b2a80d0-da17-4e9b-4260-d0e1\",\"host\":\"compute-0-6c2718cc-dfd1-4768-9237-08132d11122f\",\"image_name\":\"\",\"image_tags\":null,\"image_digest\":null,\"tags\":[\"app_guid:cda17465-f9b8-4577-b53a-57a161a1326b\",\"app_id:cda17465-f9b8-4577-b53a-57a161a1326b\",\"app_instance_guid:5b2a80d0-da17-4e9b-4260-d0e1\",\"app_instance_index:0\",\"app_name:java-sample-app-modebeige\",\"bosh_address:10.0.4.8\",\"bosh_az:us-central1-f\",\"bosh_deployment:cf-df4d3b7647b663c19610\",\"bosh_id:6c2718cc-dfd1-4768-9237-08132d11122f\",\"bosh_index:0\",\"bosh_ip:10.0.4.8\",\"bosh_job:compute\",\"bosh_name:compute\",\"cf-df4d3b7647b663c19610\",\"cf-df4d3b7647b663c19610-compute\",\"cloudfoundry\",\"compute\",\"container_name:java-sample-app-modebeige_0\",\"created_at:2023-10-09t08:30:42z\",\"deployment:cf-df4d3b7647b663c19610\",\"director:p-bosh\",\"env:pcf-modebeige\",\"foo:bar\",\"host:compute-0-6c2718cc-dfd1-4768-9237-08132d11122f\",\"id:6c2718cc-dfd1-4768-9237-08132d11122f\",\"index:0\",\"index:6c2718cc-dfd1-4768-9237-08132d11122f\",\"instance-id:3340011639055189196\",\"instance-type:n1-highmem-2\",\"instance_group:compute\",\"internal-hostname:vm-6dd9ae88-c203-463e-580e-26a7b561b870.c.cf-platform-engineering-cipp2.internal\",\"ip:10.0.4.8\",\"job:compute\",\"label_key:label_value\",\"metadata_key:metadata_value\",\"name:compute/6c2718cc-dfd1-4768-9237-08132d11122f\",\"numeric_project_id:946413340424\",\"org_id:9f4bffd9-6234-49dd-bc4e-d0282a7cf333\",\"org_name:Org 1\",\"p-bosh\",\"p-bosh-cf-df4d3b7647b663c19610\",\"p-bosh-cf-df4d3b7647b663c19610-compute\",\"pcf-modebeige\",\"project:cf-platform-engineering-cipp2\",\"service:java-sample-app-modebeige\",\"sidecar_count:1\",\"sidecar_present:true\",\"space_id:6c41b5e8-8ed8-465f-902a-48e03b465ffe\",\"space_name:Space 1\",\"user_data:_server_:_name_:_vm-6dd9ae88-c203-463e-580e-26a7b561b870_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\",\"version:1.0.0\",\"zone:us-central1-f\"]}}],\"meta\":{\"pagination\":{\"cursor\":\"c3RhcnRlZDoxNjk3MTE4NDExMDAwLjAwMDAwMHxpZC5yYXc6Mjg4YmRmMWMtZWUyNS00M2EyLTY0NzAtMTFlMA==\",\"prev_cursor\":null,\"next_cursor\":\"c3RhcnRlZDoxNjk3MTE4NDExMDAwLjAwMDAwMHxpZC5yYXc6ODY4OWY2ODUtZTQ0MS00ODJjLTYwNDMtNWQ5ZA==\",\"limit\":2,\"type\":\"cursor_limit\",\"total\":10}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/containers?page%5Bsize%5D=2&page%5Bcursor%5D=c3RhcnRlZDoxNjk3MTE4NDExMDAwLjAwMDAwMHxpZC5yYXc6Mjg4YmRmMWMtZWUyNS00M2EyLTY0NzAtMTFlMA%3D%3D\",\"last\":null,\"next\":\"https://api.datadoghq.com/api/v2/containers?page[cursor]=c3RhcnRlZDoxNjk3MTE4NDExMDAwLjAwMDAwMHxpZC5yYXc6ODY4OWY2ODUtZTQ0MS00ODJjLTYwNDMtNWQ5ZA==&page[size]=2\",\"prev\":null,\"first\":\"https://api.datadoghq.com/api/v2/containers?page[size]=2\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 16 Oct 2023 16:01:59 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/containers?page%5Bsize%5D=2" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"container\",\"id\":\"15e90400bf66f26f4e7d3098406c30e11e2bc921\",\"attributes\":{\"name\":\"go-sample-app-modebeige_0\",\"created_at\":\"2023-10-12T13:46:51\",\"started_at\":\"2023-10-12T13:46:51\",\"state\":\"running\",\"container_id\":\"22f5bcc1-492a-435c-6d45-889e\",\"host\":\"compute-0-6c2718cc-dfd1-4768-9237-08132d11122f\",\"image_name\":\"\",\"image_tags\":null,\"image_digest\":null,\"tags\":[\"app_guid:c3e77ef9-1248-4ef8-aa75-9bf063ad1512\",\"app_id:c3e77ef9-1248-4ef8-aa75-9bf063ad1512\",\"app_instance_guid:22f5bcc1-492a-435c-6d45-889e\",\"app_instance_index:0\",\"app_name:go-sample-app-modebeige\",\"bosh_address:10.0.4.8\",\"bosh_az:us-central1-f\",\"bosh_deployment:cf-df4d3b7647b663c19610\",\"bosh_id:6c2718cc-dfd1-4768-9237-08132d11122f\",\"bosh_index:0\",\"bosh_ip:10.0.4.8\",\"bosh_job:compute\",\"bosh_name:compute\",\"cf-df4d3b7647b663c19610\",\"cf-df4d3b7647b663c19610-compute\",\"cloudfoundry\",\"compute\",\"container_name:go-sample-app-modebeige_0\",\"created_at:2023-10-09t08:30:42z\",\"deployment:cf-df4d3b7647b663c19610\",\"director:p-bosh\",\"env:pcf-modebeige\",\"foo:bar\",\"host:compute-0-6c2718cc-dfd1-4768-9237-08132d11122f\",\"id:6c2718cc-dfd1-4768-9237-08132d11122f\",\"index:0\",\"index:6c2718cc-dfd1-4768-9237-08132d11122f\",\"instance-id:3340011639055189196\",\"instance-type:n1-highmem-2\",\"instance_group:compute\",\"internal-hostname:vm-6dd9ae88-c203-463e-580e-26a7b561b870.c.cf-platform-engineering-cipp2.internal\",\"ip:10.0.4.8\",\"job:compute\",\"label_key:label_value\",\"metadata_key:metadata_value\",\"name:compute/6c2718cc-dfd1-4768-9237-08132d11122f\",\"numeric_project_id:946413340424\",\"org_id:9f4bffd9-6234-49dd-bc4e-d0282a7cf333\",\"org_name:Org 1\",\"p-bosh\",\"p-bosh-cf-df4d3b7647b663c19610\",\"p-bosh-cf-df4d3b7647b663c19610-compute\",\"pcf-modebeige\",\"project:cf-platform-engineering-cipp2\",\"service:go-sample-app-modebeige\",\"sidecar_count:1\",\"sidecar_present:true\",\"space_id:6c41b5e8-8ed8-465f-902a-48e03b465ffe\",\"space_name:Space 1\",\"user_data:_server_:_name_:_vm-6dd9ae88-c203-463e-580e-26a7b561b870_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\",\"version:1.0.0\",\"zone:us-central1-f\"]}},{\"type\":\"container\",\"id\":\"15e90400f5a7fd8072ebcc2e7eadb58c7acf1fe6\",\"attributes\":{\"name\":\"python-sample-app-modebeige_0\",\"created_at\":\"2023-10-12T13:46:51\",\"started_at\":\"2023-10-12T13:46:51\",\"state\":\"running\",\"container_id\":\"288bdf1c-ee25-43a2-6470-11e0\",\"host\":\"compute-0-6c2718cc-dfd1-4768-9237-08132d11122f\",\"image_name\":\"\",\"image_tags\":null,\"image_digest\":null,\"tags\":[\"app_guid:3d575664-cced-4000-b2fd-2ab4199722c7\",\"app_id:3d575664-cced-4000-b2fd-2ab4199722c7\",\"app_instance_guid:288bdf1c-ee25-43a2-6470-11e0\",\"app_instance_index:0\",\"app_name:python-sample-app-modebeige\",\"bosh_address:10.0.4.8\",\"bosh_az:us-central1-f\",\"bosh_deployment:cf-df4d3b7647b663c19610\",\"bosh_id:6c2718cc-dfd1-4768-9237-08132d11122f\",\"bosh_index:0\",\"bosh_ip:10.0.4.8\",\"bosh_job:compute\",\"bosh_name:compute\",\"cf-df4d3b7647b663c19610\",\"cf-df4d3b7647b663c19610-compute\",\"cloudfoundry\",\"compute\",\"container_name:python-sample-app-modebeige_0\",\"created_at:2023-10-09t08:30:42z\",\"deployment:cf-df4d3b7647b663c19610\",\"director:p-bosh\",\"env:pcf-modebeige\",\"foo:bar\",\"host:compute-0-6c2718cc-dfd1-4768-9237-08132d11122f\",\"id:6c2718cc-dfd1-4768-9237-08132d11122f\",\"index:0\",\"index:6c2718cc-dfd1-4768-9237-08132d11122f\",\"instance-id:3340011639055189196\",\"instance-type:n1-highmem-2\",\"instance_group:compute\",\"internal-hostname:vm-6dd9ae88-c203-463e-580e-26a7b561b870.c.cf-platform-engineering-cipp2.internal\",\"ip:10.0.4.8\",\"job:compute\",\"label_key:label_value\",\"metadata_key:metadata_value\",\"name:compute/6c2718cc-dfd1-4768-9237-08132d11122f\",\"numeric_project_id:946413340424\",\"org_id:9f4bffd9-6234-49dd-bc4e-d0282a7cf333\",\"org_name:Org 1\",\"p-bosh\",\"p-bosh-cf-df4d3b7647b663c19610\",\"p-bosh-cf-df4d3b7647b663c19610-compute\",\"pcf-modebeige\",\"project:cf-platform-engineering-cipp2\",\"service:python-sample-app-modebeige\",\"sidecar_count:1\",\"sidecar_present:true\",\"space_id:6c41b5e8-8ed8-465f-902a-48e03b465ffe\",\"space_name:Space 1\",\"user_data:_server_:_name_:_vm-6dd9ae88-c203-463e-580e-26a7b561b870_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\",\"version:1.0.0\",\"zone:us-central1-f\"]}}],\"meta\":{\"pagination\":{\"cursor\":\"\",\"prev_cursor\":null,\"next_cursor\":\"c3RhcnRlZDoxNjk3MTE4NDExMDAwLjAwMDAwMHxpZC5yYXc6Mjg4YmRmMWMtZWUyNS00M2EyLTY0NzAtMTFlMA==\",\"limit\":2,\"type\":\"cursor_limit\",\"total\":10}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/containers?page%5Bsize%5D=2\",\"last\":null,\"next\":\"https://api.datadoghq.com/api/v2/containers?page[cursor]=c3RhcnRlZDoxNjk3MTE4NDExMDAwLjAwMDAwMHxpZC5yYXc6Mjg4YmRmMWMtZWUyNS00M2EyLTY0NzAtMTFlMA==&page[size]=2\",\"prev\":null,\"first\":\"https://api.datadoghq.com/api/v2/containers?page[size]=2\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 16 Oct 2023 16:01:59 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/containers?page%5Bsize%5D=2&page%5Bcursor%5D=c3RhcnRlZDoxNjk3MTE4NDExMDAwLjAwMDAwMHxpZC5yYXc6Mjg4YmRmMWMtZWUyNS00M2EyLTY0NzAtMTFlMA%3D%3D" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"container\",\"id\":\"15e90400d72ce956da898384526fb3411a96ac48\",\"attributes\":{\"name\":\"java-sample-app-modebeige_0\",\"created_at\":\"2023-10-12T13:46:51\",\"started_at\":\"2023-10-12T13:46:51\",\"state\":\"running\",\"container_id\":\"5b2a80d0-da17-4e9b-4260-d0e1\",\"host\":\"compute-0-6c2718cc-dfd1-4768-9237-08132d11122f\",\"image_name\":\"\",\"image_tags\":null,\"image_digest\":null,\"tags\":[\"app_guid:cda17465-f9b8-4577-b53a-57a161a1326b\",\"app_id:cda17465-f9b8-4577-b53a-57a161a1326b\",\"app_instance_guid:5b2a80d0-da17-4e9b-4260-d0e1\",\"app_instance_index:0\",\"app_name:java-sample-app-modebeige\",\"bosh_address:10.0.4.8\",\"bosh_az:us-central1-f\",\"bosh_deployment:cf-df4d3b7647b663c19610\",\"bosh_id:6c2718cc-dfd1-4768-9237-08132d11122f\",\"bosh_index:0\",\"bosh_ip:10.0.4.8\",\"bosh_job:compute\",\"bosh_name:compute\",\"cf-df4d3b7647b663c19610\",\"cf-df4d3b7647b663c19610-compute\",\"cloudfoundry\",\"compute\",\"container_name:java-sample-app-modebeige_0\",\"created_at:2023-10-09t08:30:42z\",\"deployment:cf-df4d3b7647b663c19610\",\"director:p-bosh\",\"env:pcf-modebeige\",\"foo:bar\",\"host:compute-0-6c2718cc-dfd1-4768-9237-08132d11122f\",\"id:6c2718cc-dfd1-4768-9237-08132d11122f\",\"index:0\",\"index:6c2718cc-dfd1-4768-9237-08132d11122f\",\"instance-id:3340011639055189196\",\"instance-type:n1-highmem-2\",\"instance_group:compute\",\"internal-hostname:vm-6dd9ae88-c203-463e-580e-26a7b561b870.c.cf-platform-engineering-cipp2.internal\",\"ip:10.0.4.8\",\"job:compute\",\"label_key:label_value\",\"metadata_key:metadata_value\",\"name:compute/6c2718cc-dfd1-4768-9237-08132d11122f\",\"numeric_project_id:946413340424\",\"org_id:9f4bffd9-6234-49dd-bc4e-d0282a7cf333\",\"org_name:Org 1\",\"p-bosh\",\"p-bosh-cf-df4d3b7647b663c19610\",\"p-bosh-cf-df4d3b7647b663c19610-compute\",\"pcf-modebeige\",\"project:cf-platform-engineering-cipp2\",\"service:java-sample-app-modebeige\",\"sidecar_count:1\",\"sidecar_present:true\",\"space_id:6c41b5e8-8ed8-465f-902a-48e03b465ffe\",\"space_name:Space 1\",\"user_data:_server_:_name_:_vm-6dd9ae88-c203-463e-580e-26a7b561b870_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\",\"version:1.0.0\",\"zone:us-central1-f\"]}}],\"meta\":{\"pagination\":{\"cursor\":\"c3RhcnRlZDoxNjk3MTE4NDExMDAwLjAwMDAwMHxpZC5yYXc6Mjg4YmRmMWMtZWUyNS00M2EyLTY0NzAtMTFlMA==\",\"prev_cursor\":null,\"next_cursor\":\"c3RhcnRlZDoxNjk3MTE4NDExMDAwLjAwMDAwMHxpZC5yYXc6ODY4OWY2ODUtZTQ0MS00ODJjLTYwNDMtNWQ5ZA==\",\"limit\":2,\"type\":\"cursor_limit\",\"total\":10}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/containers?page%5Bsize%5D=2&page%5Bcursor%5D=c3RhcnRlZDoxNjk3MTE4NDExMDAwLjAwMDAwMHxpZC5yYXc6Mjg4YmRmMWMtZWUyNS00M2EyLTY0NzAtMTFlMA%3D%3D\",\"last\":null,\"next\":\"https://api.datadoghq.com/api/v2/containers?page[cursor]=c3RhcnRlZDoxNjk3MTE4NDExMDAwLjAwMDAwMHxpZC5yYXc6ODY4OWY2ODUtZTQ0MS00ODJjLTYwNDMtNWQ5ZA==&page[size]=2\",\"prev\":null,\"first\":\"https://api.datadoghq.com/api/v2/containers?page[size]=2\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 16 Oct 2023 16:01:59 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/containers/Get-All-Containers-returns-OK-response.json b/tests/scenarios/cassettes/v2/containers/Get-All-Containers-returns-OK-response.json index fd8367a28..12892e5cb 100644 --- a/tests/scenarios/cassettes/v2/containers/Get-All-Containers-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/containers/Get-All-Containers-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/containers"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"container\",\"id\":\"15e90400bf66f26f4e7d3098406c30e11e2bc921\",\"attributes\":{\"name\":\"test_name\",\"created_at\":\"2023-10-12T13:46:51\",\"started_at\":\"2023-10-12T13:46:51\",\"state\":\"running\",\"container_id\":\"22f5bcc1-492a-435c-6d45-889e\",\"host\":\"compute-0-6c2718cc-dfd1-4768-9237-08132d11122f\",\"image_name\":\"\",\"image_tags\":null,\"image_digest\":null,\"tags\":[\"app_guid:c3e77ef9-1248-4ef8-aa75-9bf063ad1512\",\"app_id:c3e77ef9-1248-4ef8-aa75-9bf063ad1512\",\"app_instance_guid:22f5bcc1-492a-435c-6d45-889e\",\"app_instance_index:0\",\"app_name:go-sample-app-modebeige\",\"bosh_address:10.0.4.8\",\"bosh_az:us-central1-f\",\"bosh_deployment:cf-df4d3b7647b663c19610\",\"bosh_id:6c2718cc-dfd1-4768-9237-08132d11122f\",\"bosh_index:0\",\"bosh_ip:10.0.4.8\",\"bosh_job:compute\",\"bosh_name:compute\",\"cf-df4d3b7647b663c19610\",\"cf-df4d3b7647b663c19610-compute\",\"cloudfoundry\",\"compute\",\"container_name:go-sample-app-modebeige_0\",\"created_at:2023-10-09t08:30:42z\",\"deployment:cf-df4d3b7647b663c19610\",\"director:p-bosh\",\"env:pcf-modebeige\",\"foo:bar\",\"host:compute-0-6c2718cc-dfd1-4768-9237-08132d11122f\",\"id:6c2718cc-dfd1-4768-9237-08132d11122f\",\"index:0\",\"index:6c2718cc-dfd1-4768-9237-08132d11122f\",\"instance-id:3340011639055189196\",\"instance-type:n1-highmem-2\",\"instance_group:compute\",\"internal-hostname:vm-6dd9ae88-c203-463e-580e-26a7b561b870.c.cf-platform-engineering-cipp2.internal\",\"ip:10.0.4.8\",\"job:compute\",\"label_key:label_value\",\"metadata_key:metadata_value\",\"name:compute/6c2718cc-dfd1-4768-9237-08132d11122f\",\"numeric_project_id:946413340424\",\"org_id:9f4bffd9-6234-49dd-bc4e-d0282a7cf333\",\"org_name:Org 1\",\"p-bosh\",\"p-bosh-cf-df4d3b7647b663c19610\",\"p-bosh-cf-df4d3b7647b663c19610-compute\",\"pcf-modebeige\",\"project:cf-platform-engineering-cipp2\",\"service:go-sample-app-modebeige\",\"sidecar_count:1\",\"sidecar_present:true\",\"space_id:6c41b5e8-8ed8-465f-902a-48e03b465ffe\",\"space_name:Space 1\",\"user_data:_server_:_name_:_vm-6dd9ae88-c203-463e-580e-26a7b561b870_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\",\"version:1.0.0\",\"zone:us-central1-f\"]}},{\"type\":\"container\",\"id\":\"15e90400f5a7fd8072ebcc2e7eadb58c7acf1fe6\",\"attributes\":{\"name\":\"python-sample-app-modebeige_0\",\"created_at\":\"2023-10-12T13:46:51\",\"started_at\":\"2023-10-12T13:46:51\",\"state\":\"running\",\"container_id\":\"288bdf1c-ee25-43a2-6470-11e0\",\"host\":\"compute-0-6c2718cc-dfd1-4768-9237-08132d11122f\",\"image_name\":\"\",\"image_tags\":null,\"image_digest\":null,\"tags\":[\"app_guid:3d575664-cced-4000-b2fd-2ab4199722c7\",\"app_id:3d575664-cced-4000-b2fd-2ab4199722c7\",\"app_instance_guid:288bdf1c-ee25-43a2-6470-11e0\",\"app_instance_index:0\",\"app_name:python-sample-app-modebeige\",\"bosh_address:10.0.4.8\",\"bosh_az:us-central1-f\",\"bosh_deployment:cf-df4d3b7647b663c19610\",\"bosh_id:6c2718cc-dfd1-4768-9237-08132d11122f\",\"bosh_index:0\",\"bosh_ip:10.0.4.8\",\"bosh_job:compute\",\"bosh_name:compute\",\"cf-df4d3b7647b663c19610\",\"cf-df4d3b7647b663c19610-compute\",\"cloudfoundry\",\"compute\",\"container_name:python-sample-app-modebeige_0\",\"created_at:2023-10-09t08:30:42z\",\"deployment:cf-df4d3b7647b663c19610\",\"director:p-bosh\",\"env:pcf-modebeige\",\"foo:bar\",\"host:compute-0-6c2718cc-dfd1-4768-9237-08132d11122f\",\"id:6c2718cc-dfd1-4768-9237-08132d11122f\",\"index:0\",\"index:6c2718cc-dfd1-4768-9237-08132d11122f\",\"instance-id:3340011639055189196\",\"instance-type:n1-highmem-2\",\"instance_group:compute\",\"internal-hostname:vm-6dd9ae88-c203-463e-580e-26a7b561b870.c.cf-platform-engineering-cipp2.internal\",\"ip:10.0.4.8\",\"job:compute\",\"label_key:label_value\",\"metadata_key:metadata_value\",\"name:compute/6c2718cc-dfd1-4768-9237-08132d11122f\",\"numeric_project_id:946413340424\",\"org_id:9f4bffd9-6234-49dd-bc4e-d0282a7cf333\",\"org_name:Org 1\",\"p-bosh\",\"p-bosh-cf-df4d3b7647b663c19610\",\"p-bosh-cf-df4d3b7647b663c19610-compute\",\"pcf-modebeige\",\"project:cf-platform-engineering-cipp2\",\"service:python-sample-app-modebeige\",\"sidecar_count:1\",\"sidecar_present:true\",\"space_id:6c41b5e8-8ed8-465f-902a-48e03b465ffe\",\"space_name:Space 1\",\"user_data:_server_:_name_:_vm-6dd9ae88-c203-463e-580e-26a7b561b870_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\",\"version:1.0.0\",\"zone:us-central1-f\"]}}],\"meta\":{\"pagination\":{\"cursor\":\"\",\"prev_cursor\":null,\"next_cursor\":\"c3RhcnRlZDoxNjk3NDY2MDI4MDAwLjAwMDAwMHxpZC5yYXc6M2U0MTU3ZjgtZjdmNC00OTdjLTRmNWMtMzk0Zg==\",\"limit\":1000,\"type\":\"cursor_limit\",\"total\":10}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/containers\",\"last\":null,\"next\":\"https://api.datadoghq.com/api/v2/containers?page[cursor]=c3RhcnRlZDoxNjk3NDY2MDI4MDAwLjAwMDAwMHxpZC5yYXc6M2U0MTU3ZjgtZjdmNC00OTdjLTRmNWMtMzk0Zg==&page[size]=1000\",\"prev\":null,\"first\":\"https://api.datadoghq.com/api/v2/containers?page[size]=1000\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 16 Oct 2023 15:45:21 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/containers" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"container\",\"id\":\"15e90400bf66f26f4e7d3098406c30e11e2bc921\",\"attributes\":{\"name\":\"test_name\",\"created_at\":\"2023-10-12T13:46:51\",\"started_at\":\"2023-10-12T13:46:51\",\"state\":\"running\",\"container_id\":\"22f5bcc1-492a-435c-6d45-889e\",\"host\":\"compute-0-6c2718cc-dfd1-4768-9237-08132d11122f\",\"image_name\":\"\",\"image_tags\":null,\"image_digest\":null,\"tags\":[\"app_guid:c3e77ef9-1248-4ef8-aa75-9bf063ad1512\",\"app_id:c3e77ef9-1248-4ef8-aa75-9bf063ad1512\",\"app_instance_guid:22f5bcc1-492a-435c-6d45-889e\",\"app_instance_index:0\",\"app_name:go-sample-app-modebeige\",\"bosh_address:10.0.4.8\",\"bosh_az:us-central1-f\",\"bosh_deployment:cf-df4d3b7647b663c19610\",\"bosh_id:6c2718cc-dfd1-4768-9237-08132d11122f\",\"bosh_index:0\",\"bosh_ip:10.0.4.8\",\"bosh_job:compute\",\"bosh_name:compute\",\"cf-df4d3b7647b663c19610\",\"cf-df4d3b7647b663c19610-compute\",\"cloudfoundry\",\"compute\",\"container_name:go-sample-app-modebeige_0\",\"created_at:2023-10-09t08:30:42z\",\"deployment:cf-df4d3b7647b663c19610\",\"director:p-bosh\",\"env:pcf-modebeige\",\"foo:bar\",\"host:compute-0-6c2718cc-dfd1-4768-9237-08132d11122f\",\"id:6c2718cc-dfd1-4768-9237-08132d11122f\",\"index:0\",\"index:6c2718cc-dfd1-4768-9237-08132d11122f\",\"instance-id:3340011639055189196\",\"instance-type:n1-highmem-2\",\"instance_group:compute\",\"internal-hostname:vm-6dd9ae88-c203-463e-580e-26a7b561b870.c.cf-platform-engineering-cipp2.internal\",\"ip:10.0.4.8\",\"job:compute\",\"label_key:label_value\",\"metadata_key:metadata_value\",\"name:compute/6c2718cc-dfd1-4768-9237-08132d11122f\",\"numeric_project_id:946413340424\",\"org_id:9f4bffd9-6234-49dd-bc4e-d0282a7cf333\",\"org_name:Org 1\",\"p-bosh\",\"p-bosh-cf-df4d3b7647b663c19610\",\"p-bosh-cf-df4d3b7647b663c19610-compute\",\"pcf-modebeige\",\"project:cf-platform-engineering-cipp2\",\"service:go-sample-app-modebeige\",\"sidecar_count:1\",\"sidecar_present:true\",\"space_id:6c41b5e8-8ed8-465f-902a-48e03b465ffe\",\"space_name:Space 1\",\"user_data:_server_:_name_:_vm-6dd9ae88-c203-463e-580e-26a7b561b870_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\",\"version:1.0.0\",\"zone:us-central1-f\"]}},{\"type\":\"container\",\"id\":\"15e90400f5a7fd8072ebcc2e7eadb58c7acf1fe6\",\"attributes\":{\"name\":\"python-sample-app-modebeige_0\",\"created_at\":\"2023-10-12T13:46:51\",\"started_at\":\"2023-10-12T13:46:51\",\"state\":\"running\",\"container_id\":\"288bdf1c-ee25-43a2-6470-11e0\",\"host\":\"compute-0-6c2718cc-dfd1-4768-9237-08132d11122f\",\"image_name\":\"\",\"image_tags\":null,\"image_digest\":null,\"tags\":[\"app_guid:3d575664-cced-4000-b2fd-2ab4199722c7\",\"app_id:3d575664-cced-4000-b2fd-2ab4199722c7\",\"app_instance_guid:288bdf1c-ee25-43a2-6470-11e0\",\"app_instance_index:0\",\"app_name:python-sample-app-modebeige\",\"bosh_address:10.0.4.8\",\"bosh_az:us-central1-f\",\"bosh_deployment:cf-df4d3b7647b663c19610\",\"bosh_id:6c2718cc-dfd1-4768-9237-08132d11122f\",\"bosh_index:0\",\"bosh_ip:10.0.4.8\",\"bosh_job:compute\",\"bosh_name:compute\",\"cf-df4d3b7647b663c19610\",\"cf-df4d3b7647b663c19610-compute\",\"cloudfoundry\",\"compute\",\"container_name:python-sample-app-modebeige_0\",\"created_at:2023-10-09t08:30:42z\",\"deployment:cf-df4d3b7647b663c19610\",\"director:p-bosh\",\"env:pcf-modebeige\",\"foo:bar\",\"host:compute-0-6c2718cc-dfd1-4768-9237-08132d11122f\",\"id:6c2718cc-dfd1-4768-9237-08132d11122f\",\"index:0\",\"index:6c2718cc-dfd1-4768-9237-08132d11122f\",\"instance-id:3340011639055189196\",\"instance-type:n1-highmem-2\",\"instance_group:compute\",\"internal-hostname:vm-6dd9ae88-c203-463e-580e-26a7b561b870.c.cf-platform-engineering-cipp2.internal\",\"ip:10.0.4.8\",\"job:compute\",\"label_key:label_value\",\"metadata_key:metadata_value\",\"name:compute/6c2718cc-dfd1-4768-9237-08132d11122f\",\"numeric_project_id:946413340424\",\"org_id:9f4bffd9-6234-49dd-bc4e-d0282a7cf333\",\"org_name:Org 1\",\"p-bosh\",\"p-bosh-cf-df4d3b7647b663c19610\",\"p-bosh-cf-df4d3b7647b663c19610-compute\",\"pcf-modebeige\",\"project:cf-platform-engineering-cipp2\",\"service:python-sample-app-modebeige\",\"sidecar_count:1\",\"sidecar_present:true\",\"space_id:6c41b5e8-8ed8-465f-902a-48e03b465ffe\",\"space_name:Space 1\",\"user_data:_server_:_name_:_vm-6dd9ae88-c203-463e-580e-26a7b561b870_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\",\"version:1.0.0\",\"zone:us-central1-f\"]}}],\"meta\":{\"pagination\":{\"cursor\":\"\",\"prev_cursor\":null,\"next_cursor\":\"c3RhcnRlZDoxNjk3NDY2MDI4MDAwLjAwMDAwMHxpZC5yYXc6M2U0MTU3ZjgtZjdmNC00OTdjLTRmNWMtMzk0Zg==\",\"limit\":1000,\"type\":\"cursor_limit\",\"total\":10}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/containers\",\"last\":null,\"next\":\"https://api.datadoghq.com/api/v2/containers?page[cursor]=c3RhcnRlZDoxNjk3NDY2MDI4MDAwLjAwMDAwMHxpZC5yYXc6M2U0MTU3ZjgtZjdmNC00OTdjLTRmNWMtMzk0Zg==&page[size]=1000\",\"prev\":null,\"first\":\"https://api.datadoghq.com/api/v2/containers?page[size]=1000\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 16 Oct 2023 15:45:21 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/dashboard_lists/Add-custom-screenboard-dashboard-to-an-existing-dashboard-list-returns-OK-response.json b/tests/scenarios/cassettes/v2/dashboard_lists/Add-custom-screenboard-dashboard-to-an-existing-dashboard-list-returns-OK-response.json index 5d0489ddf..51115e66a 100644 --- a/tests/scenarios/cassettes/v2/dashboard_lists/Add-custom-screenboard-dashboard-to-an-existing-dashboard-list-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/dashboard_lists/Add-custom-screenboard-dashboard-to-an-existing-dashboard-list-returns-OK-response.json @@ -1 +1,163 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Add_custom_screenboard_dashboard_to_an_existing_dashboard_list_returns_OK_response-1647890202\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual"}, "response": {"body": {"string": "{\"is_favorite\":false,\"name\":\"Test-Add_custom_screenboard_dashboard_to_an_existing_dashboard_list_returns_OK_response-1647890202\",\"dashboard_count\":0,\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"created\":\"2022-03-21T19:16:43.096523+00:00\",\"type\":\"manual_dashboard_list\",\"dashboards\":null,\"modified\":\"2022-03-21T19:16:43.096538+00:00\",\"id\":284061}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:42 GMT"}, {"request": {"body": {"string": "{\"layout_type\":\"free\",\"title\":\"Test-Add_custom_screenboard_dashboard_to_an_existing_dashboard_list_returns_OK_response-1647890202 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"},\"layout\":{\"height\":10,\"width\":10,\"x\":10,\"y\":10}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"sza-uj6-6p4\",\"title\":\"Test-Add_custom_screenboard_dashboard_to_an_existing_dashboard_list_returns_OK_response-1647890202 with Profile Metrics Query\",\"url\":\"/dashboard/sza-uj6-6p4/test-addcustomscreenboarddashboardtoanexistingdashboardlistreturnsokresponse-164\",\"created_at\":\"2022-03-21T19:16:43.625484+00:00\",\"modified_at\":\"2022-03-21T19:16:43.625484+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"layout\":{\"y\":10,\"width\":10,\"x\":10,\"height\":10},\"id\":3487499242863939}],\"layout_type\":\"free\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:42 GMT"}, {"request": {"body": {"string": "{\"dashboards\":[{\"id\":\"sza-uj6-6p4\",\"type\":\"custom_screenboard\"}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/dashboard/lists/manual/284061/dashboards"}, "response": {"body": {"string": "{\"added_dashboards_to_list\":[{\"type\":\"custom_screenboard\",\"id\":\"sza-uj6-6p4\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:42 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/sza-uj6-6p4"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"sza-uj6-6p4\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:42 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/284061"}, "response": {"body": {"string": "{\"deleted_dashboard_list_id\":284061}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:42 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Add_custom_screenboard_dashboard_to_an_existing_dashboard_list_returns_OK_response-1647890202\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual" + }, + "response": { + "body": { + "string": "{\"is_favorite\":false,\"name\":\"Test-Add_custom_screenboard_dashboard_to_an_existing_dashboard_list_returns_OK_response-1647890202\",\"dashboard_count\":0,\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"created\":\"2022-03-21T19:16:43.096523+00:00\",\"type\":\"manual_dashboard_list\",\"dashboards\":null,\"modified\":\"2022-03-21T19:16:43.096538+00:00\",\"id\":284061}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:42 GMT" + }, + { + "request": { + "body": { + "string": "{\"layout_type\":\"free\",\"title\":\"Test-Add_custom_screenboard_dashboard_to_an_existing_dashboard_list_returns_OK_response-1647890202 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"},\"layout\":{\"height\":10,\"width\":10,\"x\":10,\"y\":10}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"sza-uj6-6p4\",\"title\":\"Test-Add_custom_screenboard_dashboard_to_an_existing_dashboard_list_returns_OK_response-1647890202 with Profile Metrics Query\",\"url\":\"/dashboard/sza-uj6-6p4/test-addcustomscreenboarddashboardtoanexistingdashboardlistreturnsokresponse-164\",\"created_at\":\"2022-03-21T19:16:43.625484+00:00\",\"modified_at\":\"2022-03-21T19:16:43.625484+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"layout\":{\"y\":10,\"width\":10,\"x\":10,\"height\":10},\"id\":3487499242863939}],\"layout_type\":\"free\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:42 GMT" + }, + { + "request": { + "body": { + "string": "{\"dashboards\":[{\"id\":\"sza-uj6-6p4\",\"type\":\"custom_screenboard\"}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/dashboard/lists/manual/284061/dashboards" + }, + "response": { + "body": { + "string": "{\"added_dashboards_to_list\":[{\"type\":\"custom_screenboard\",\"id\":\"sza-uj6-6p4\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:42 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/sza-uj6-6p4" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"sza-uj6-6p4\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:42 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/284061" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_list_id\":284061}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:42 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/dashboard_lists/Add-custom-timeboard-dashboard-to-an-existing-dashboard-list-returns-OK-response.json b/tests/scenarios/cassettes/v2/dashboard_lists/Add-custom-timeboard-dashboard-to-an-existing-dashboard-list-returns-OK-response.json index 2210dcc9c..7c79d5a69 100644 --- a/tests/scenarios/cassettes/v2/dashboard_lists/Add-custom-timeboard-dashboard-to-an-existing-dashboard-list-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/dashboard_lists/Add-custom-timeboard-dashboard-to-an-existing-dashboard-list-returns-OK-response.json @@ -1 +1,163 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Add_custom_timeboard_dashboard_to_an_existing_dashboard_list_returns_OK_response-1647890204\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual"}, "response": {"body": {"string": "{\"is_favorite\":false,\"name\":\"Test-Add_custom_timeboard_dashboard_to_an_existing_dashboard_list_returns_OK_response-1647890204\",\"dashboard_count\":0,\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"created\":\"2022-03-21T19:16:44.861799+00:00\",\"type\":\"manual_dashboard_list\",\"dashboards\":null,\"modified\":\"2022-03-21T19:16:44.861808+00:00\",\"id\":284062}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:44 GMT"}, {"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Add_custom_timeboard_dashboard_to_an_existing_dashboard_list_returns_OK_response-1647890204 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"r9t-5r7-8gb\",\"title\":\"Test-Add_custom_timeboard_dashboard_to_an_existing_dashboard_list_returns_OK_response-1647890204 with Profile Metrics Query\",\"url\":\"/dashboard/r9t-5r7-8gb/test-addcustomtimeboarddashboardtoanexistingdashboardlistreturnsokresponse-16478\",\"created_at\":\"2022-03-21T19:16:45.143857+00:00\",\"modified_at\":\"2022-03-21T19:16:45.143857+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"id\":1606573387522135}],\"layout_type\":\"ordered\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:44 GMT"}, {"request": {"body": {"string": "{\"dashboards\":[{\"id\":\"r9t-5r7-8gb\",\"type\":\"custom_timeboard\"}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/dashboard/lists/manual/284062/dashboards"}, "response": {"body": {"string": "{\"added_dashboards_to_list\":[{\"type\":\"custom_timeboard\",\"id\":\"r9t-5r7-8gb\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:44 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/r9t-5r7-8gb"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"r9t-5r7-8gb\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:44 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/284062"}, "response": {"body": {"string": "{\"deleted_dashboard_list_id\":284062}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:44 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Add_custom_timeboard_dashboard_to_an_existing_dashboard_list_returns_OK_response-1647890204\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual" + }, + "response": { + "body": { + "string": "{\"is_favorite\":false,\"name\":\"Test-Add_custom_timeboard_dashboard_to_an_existing_dashboard_list_returns_OK_response-1647890204\",\"dashboard_count\":0,\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"created\":\"2022-03-21T19:16:44.861799+00:00\",\"type\":\"manual_dashboard_list\",\"dashboards\":null,\"modified\":\"2022-03-21T19:16:44.861808+00:00\",\"id\":284062}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:44 GMT" + }, + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Add_custom_timeboard_dashboard_to_an_existing_dashboard_list_returns_OK_response-1647890204 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"r9t-5r7-8gb\",\"title\":\"Test-Add_custom_timeboard_dashboard_to_an_existing_dashboard_list_returns_OK_response-1647890204 with Profile Metrics Query\",\"url\":\"/dashboard/r9t-5r7-8gb/test-addcustomtimeboarddashboardtoanexistingdashboardlistreturnsokresponse-16478\",\"created_at\":\"2022-03-21T19:16:45.143857+00:00\",\"modified_at\":\"2022-03-21T19:16:45.143857+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"id\":1606573387522135}],\"layout_type\":\"ordered\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:44 GMT" + }, + { + "request": { + "body": { + "string": "{\"dashboards\":[{\"id\":\"r9t-5r7-8gb\",\"type\":\"custom_timeboard\"}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/dashboard/lists/manual/284062/dashboards" + }, + "response": { + "body": { + "string": "{\"added_dashboards_to_list\":[{\"type\":\"custom_timeboard\",\"id\":\"r9t-5r7-8gb\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:44 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/r9t-5r7-8gb" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"r9t-5r7-8gb\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:44 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/284062" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_list_id\":284062}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:44 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/dashboard_lists/Delete-custom-screenboard-dashboard-from-an-existing-dashboard-list-returns-OK-response.json b/tests/scenarios/cassettes/v2/dashboard_lists/Delete-custom-screenboard-dashboard-from-an-existing-dashboard-list-returns-OK-response.json index 20176dbf3..c1391d340 100644 --- a/tests/scenarios/cassettes/v2/dashboard_lists/Delete-custom-screenboard-dashboard-from-an-existing-dashboard-list-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/dashboard_lists/Delete-custom-screenboard-dashboard-from-an-existing-dashboard-list-returns-OK-response.json @@ -1 +1,197 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Delete_custom_screenboard_dashboard_from_an_existing_dashboard_list_returns_OK_response-1647890206\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual"}, "response": {"body": {"string": "{\"is_favorite\":false,\"name\":\"Test-Delete_custom_screenboard_dashboard_from_an_existing_dashboard_list_returns_OK_response-1647890206\",\"dashboard_count\":0,\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"created\":\"2022-03-21T19:16:46.302834+00:00\",\"type\":\"manual_dashboard_list\",\"dashboards\":null,\"modified\":\"2022-03-21T19:16:46.302842+00:00\",\"id\":284063}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:46 GMT"}, {"request": {"body": {"string": "{\"layout_type\":\"free\",\"title\":\"Test-Delete_custom_screenboard_dashboard_from_an_existing_dashboard_list_returns_OK_response-1647890206 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"},\"layout\":{\"height\":10,\"width\":10,\"x\":10,\"y\":10}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"dam-zij-6w8\",\"title\":\"Test-Delete_custom_screenboard_dashboard_from_an_existing_dashboard_list_returns_OK_response-1647890206 with Profile Metrics Query\",\"url\":\"/dashboard/dam-zij-6w8/test-deletecustomscreenboarddashboardfromanexistingdashboardlistreturnsokrespons\",\"created_at\":\"2022-03-21T19:16:46.609394+00:00\",\"modified_at\":\"2022-03-21T19:16:46.609394+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"layout\":{\"y\":10,\"width\":10,\"x\":10,\"height\":10},\"id\":8080377461258470}],\"layout_type\":\"free\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:46 GMT"}, {"request": {"body": {"string": "{\"dashboards\":[{\"id\":\"dam-zij-6w8\",\"type\":\"custom_screenboard\"}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/dashboard/lists/manual/284063/dashboards"}, "response": {"body": {"string": "{\"added_dashboards_to_list\":[{\"type\":\"custom_screenboard\",\"id\":\"dam-zij-6w8\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:46 GMT"}, {"request": {"body": {"string": "{\"dashboards\":[{\"id\":\"dam-zij-6w8\",\"type\":\"custom_screenboard\"}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/dashboard/lists/manual/284063/dashboards"}, "response": {"body": {"string": "{\"deleted_dashboards_from_list\":[{\"type\":\"custom_screenboard\",\"id\":\"dam-zij-6w8\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:46 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/dam-zij-6w8"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"dam-zij-6w8\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:46 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/284063"}, "response": {"body": {"string": "{\"deleted_dashboard_list_id\":284063}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:46 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Delete_custom_screenboard_dashboard_from_an_existing_dashboard_list_returns_OK_response-1647890206\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual" + }, + "response": { + "body": { + "string": "{\"is_favorite\":false,\"name\":\"Test-Delete_custom_screenboard_dashboard_from_an_existing_dashboard_list_returns_OK_response-1647890206\",\"dashboard_count\":0,\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"created\":\"2022-03-21T19:16:46.302834+00:00\",\"type\":\"manual_dashboard_list\",\"dashboards\":null,\"modified\":\"2022-03-21T19:16:46.302842+00:00\",\"id\":284063}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:46 GMT" + }, + { + "request": { + "body": { + "string": "{\"layout_type\":\"free\",\"title\":\"Test-Delete_custom_screenboard_dashboard_from_an_existing_dashboard_list_returns_OK_response-1647890206 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"},\"layout\":{\"height\":10,\"width\":10,\"x\":10,\"y\":10}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"dam-zij-6w8\",\"title\":\"Test-Delete_custom_screenboard_dashboard_from_an_existing_dashboard_list_returns_OK_response-1647890206 with Profile Metrics Query\",\"url\":\"/dashboard/dam-zij-6w8/test-deletecustomscreenboarddashboardfromanexistingdashboardlistreturnsokrespons\",\"created_at\":\"2022-03-21T19:16:46.609394+00:00\",\"modified_at\":\"2022-03-21T19:16:46.609394+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"layout\":{\"y\":10,\"width\":10,\"x\":10,\"height\":10},\"id\":8080377461258470}],\"layout_type\":\"free\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:46 GMT" + }, + { + "request": { + "body": { + "string": "{\"dashboards\":[{\"id\":\"dam-zij-6w8\",\"type\":\"custom_screenboard\"}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/dashboard/lists/manual/284063/dashboards" + }, + "response": { + "body": { + "string": "{\"added_dashboards_to_list\":[{\"type\":\"custom_screenboard\",\"id\":\"dam-zij-6w8\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:46 GMT" + }, + { + "request": { + "body": { + "string": "{\"dashboards\":[{\"id\":\"dam-zij-6w8\",\"type\":\"custom_screenboard\"}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/dashboard/lists/manual/284063/dashboards" + }, + "response": { + "body": { + "string": "{\"deleted_dashboards_from_list\":[{\"type\":\"custom_screenboard\",\"id\":\"dam-zij-6w8\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:46 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/dam-zij-6w8" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"dam-zij-6w8\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:46 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/284063" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_list_id\":284063}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:46 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/dashboard_lists/Delete-custom-timeboard-dashboard-from-an-existing-dashboard-list-returns-OK-response.json b/tests/scenarios/cassettes/v2/dashboard_lists/Delete-custom-timeboard-dashboard-from-an-existing-dashboard-list-returns-OK-response.json index 1ab868946..c1f135b1a 100644 --- a/tests/scenarios/cassettes/v2/dashboard_lists/Delete-custom-timeboard-dashboard-from-an-existing-dashboard-list-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/dashboard_lists/Delete-custom-timeboard-dashboard-from-an-existing-dashboard-list-returns-OK-response.json @@ -1 +1,197 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Delete_custom_timeboard_dashboard_from_an_existing_dashboard_list_returns_OK_response-1647890207\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual"}, "response": {"body": {"string": "{\"is_favorite\":false,\"name\":\"Test-Delete_custom_timeboard_dashboard_from_an_existing_dashboard_list_returns_OK_response-1647890207\",\"dashboard_count\":0,\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"created\":\"2022-03-21T19:16:47.932747+00:00\",\"type\":\"manual_dashboard_list\",\"dashboards\":null,\"modified\":\"2022-03-21T19:16:47.932757+00:00\",\"id\":284064}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:47 GMT"}, {"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Delete_custom_timeboard_dashboard_from_an_existing_dashboard_list_returns_OK_response-1647890207 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"x4b-fxa-rsf\",\"title\":\"Test-Delete_custom_timeboard_dashboard_from_an_existing_dashboard_list_returns_OK_response-1647890207 with Profile Metrics Query\",\"url\":\"/dashboard/x4b-fxa-rsf/test-deletecustomtimeboarddashboardfromanexistingdashboardlistreturnsokresponse\",\"created_at\":\"2022-03-21T19:16:48.250818+00:00\",\"modified_at\":\"2022-03-21T19:16:48.250818+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"id\":2963682212939376}],\"layout_type\":\"ordered\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:47 GMT"}, {"request": {"body": {"string": "{\"dashboards\":[{\"id\":\"x4b-fxa-rsf\",\"type\":\"custom_timeboard\"}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/dashboard/lists/manual/284064/dashboards"}, "response": {"body": {"string": "{\"added_dashboards_to_list\":[{\"type\":\"custom_timeboard\",\"id\":\"x4b-fxa-rsf\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:47 GMT"}, {"request": {"body": {"string": "{\"dashboards\":[{\"id\":\"x4b-fxa-rsf\",\"type\":\"custom_timeboard\"}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/dashboard/lists/manual/284064/dashboards"}, "response": {"body": {"string": "{\"deleted_dashboards_from_list\":[{\"type\":\"custom_timeboard\",\"id\":\"x4b-fxa-rsf\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:47 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/x4b-fxa-rsf"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"x4b-fxa-rsf\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:47 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/284064"}, "response": {"body": {"string": "{\"deleted_dashboard_list_id\":284064}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:47 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Delete_custom_timeboard_dashboard_from_an_existing_dashboard_list_returns_OK_response-1647890207\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual" + }, + "response": { + "body": { + "string": "{\"is_favorite\":false,\"name\":\"Test-Delete_custom_timeboard_dashboard_from_an_existing_dashboard_list_returns_OK_response-1647890207\",\"dashboard_count\":0,\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"created\":\"2022-03-21T19:16:47.932747+00:00\",\"type\":\"manual_dashboard_list\",\"dashboards\":null,\"modified\":\"2022-03-21T19:16:47.932757+00:00\",\"id\":284064}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:47 GMT" + }, + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Delete_custom_timeboard_dashboard_from_an_existing_dashboard_list_returns_OK_response-1647890207 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"x4b-fxa-rsf\",\"title\":\"Test-Delete_custom_timeboard_dashboard_from_an_existing_dashboard_list_returns_OK_response-1647890207 with Profile Metrics Query\",\"url\":\"/dashboard/x4b-fxa-rsf/test-deletecustomtimeboarddashboardfromanexistingdashboardlistreturnsokresponse\",\"created_at\":\"2022-03-21T19:16:48.250818+00:00\",\"modified_at\":\"2022-03-21T19:16:48.250818+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"id\":2963682212939376}],\"layout_type\":\"ordered\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:47 GMT" + }, + { + "request": { + "body": { + "string": "{\"dashboards\":[{\"id\":\"x4b-fxa-rsf\",\"type\":\"custom_timeboard\"}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/dashboard/lists/manual/284064/dashboards" + }, + "response": { + "body": { + "string": "{\"added_dashboards_to_list\":[{\"type\":\"custom_timeboard\",\"id\":\"x4b-fxa-rsf\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:47 GMT" + }, + { + "request": { + "body": { + "string": "{\"dashboards\":[{\"id\":\"x4b-fxa-rsf\",\"type\":\"custom_timeboard\"}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/dashboard/lists/manual/284064/dashboards" + }, + "response": { + "body": { + "string": "{\"deleted_dashboards_from_list\":[{\"type\":\"custom_timeboard\",\"id\":\"x4b-fxa-rsf\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:47 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/x4b-fxa-rsf" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"x4b-fxa-rsf\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:47 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/284064" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_list_id\":284064}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:47 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/dashboard_lists/Get-items-of-a-Dashboard-List-returns-OK-response.json b/tests/scenarios/cassettes/v2/dashboard_lists/Get-items-of-a-Dashboard-List-returns-OK-response.json index 9c1b5bc36..048a1e126 100644 --- a/tests/scenarios/cassettes/v2/dashboard_lists/Get-items-of-a-Dashboard-List-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/dashboard_lists/Get-items-of-a-Dashboard-List-returns-OK-response.json @@ -1 +1,191 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Get_items_of_a_Dashboard_List_returns_OK_response-1647890209\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual"}, "response": {"body": {"string": "{\"is_favorite\":false,\"name\":\"Test-Get_items_of_a_Dashboard_List_returns_OK_response-1647890209\",\"dashboard_count\":0,\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"created\":\"2022-03-21T19:16:49.783939+00:00\",\"type\":\"manual_dashboard_list\",\"dashboards\":null,\"modified\":\"2022-03-21T19:16:49.783947+00:00\",\"id\":284065}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:49 GMT"}, {"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Get_items_of_a_Dashboard_List_returns_OK_response-1647890209 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"ayt-gzk-ffi\",\"title\":\"Test-Get_items_of_a_Dashboard_List_returns_OK_response-1647890209 with Profile Metrics Query\",\"url\":\"/dashboard/ayt-gzk-ffi/test-getitemsofadashboardlistreturnsokresponse-1647890209-with-profile-metrics-q\",\"created_at\":\"2022-03-21T19:16:50.088193+00:00\",\"modified_at\":\"2022-03-21T19:16:50.088193+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"id\":2463979356913479}],\"layout_type\":\"ordered\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:49 GMT"}, {"request": {"body": {"string": "{\"dashboards\":[{\"id\":\"ayt-gzk-ffi\",\"type\":\"custom_timeboard\"}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/dashboard/lists/manual/284065/dashboards"}, "response": {"body": {"string": "{\"added_dashboards_to_list\":[{\"type\":\"custom_timeboard\",\"id\":\"ayt-gzk-ffi\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:49 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/dashboard/lists/manual/284065/dashboards"}, "response": {"body": {"string": "{\"total\":1,\"dashboards\":[{\"popularity\":0,\"title\":\"Test-Get_items_of_a_Dashboard_List_returns_OK_response-1647890209 with Profile Metrics Query\",\"is_favorite\":false,\"id\":\"ayt-gzk-ffi\",\"icon\":null,\"integration_id\":null,\"is_shared\":false,\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"url\":\"/dashboard/ayt-gzk-ffi/test-getitemsofadashboardlistreturnsokresponse-1647890209-with-profile-metrics-q\",\"created\":\"2022-03-21T19:16:50.088193+00:00\",\"modified\":\"2022-03-21T19:16:50.088193+00:00\",\"is_read_only\":false,\"type\":\"custom_timeboard\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:49 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/ayt-gzk-ffi"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"ayt-gzk-ffi\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:49 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/284065"}, "response": {"body": {"string": "{\"deleted_dashboard_list_id\":284065}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:49 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Get_items_of_a_Dashboard_List_returns_OK_response-1647890209\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual" + }, + "response": { + "body": { + "string": "{\"is_favorite\":false,\"name\":\"Test-Get_items_of_a_Dashboard_List_returns_OK_response-1647890209\",\"dashboard_count\":0,\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"created\":\"2022-03-21T19:16:49.783939+00:00\",\"type\":\"manual_dashboard_list\",\"dashboards\":null,\"modified\":\"2022-03-21T19:16:49.783947+00:00\",\"id\":284065}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:49 GMT" + }, + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Get_items_of_a_Dashboard_List_returns_OK_response-1647890209 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"ayt-gzk-ffi\",\"title\":\"Test-Get_items_of_a_Dashboard_List_returns_OK_response-1647890209 with Profile Metrics Query\",\"url\":\"/dashboard/ayt-gzk-ffi/test-getitemsofadashboardlistreturnsokresponse-1647890209-with-profile-metrics-q\",\"created_at\":\"2022-03-21T19:16:50.088193+00:00\",\"modified_at\":\"2022-03-21T19:16:50.088193+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"id\":2463979356913479}],\"layout_type\":\"ordered\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:49 GMT" + }, + { + "request": { + "body": { + "string": "{\"dashboards\":[{\"id\":\"ayt-gzk-ffi\",\"type\":\"custom_timeboard\"}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/dashboard/lists/manual/284065/dashboards" + }, + "response": { + "body": { + "string": "{\"added_dashboards_to_list\":[{\"type\":\"custom_timeboard\",\"id\":\"ayt-gzk-ffi\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:49 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/dashboard/lists/manual/284065/dashboards" + }, + "response": { + "body": { + "string": "{\"total\":1,\"dashboards\":[{\"popularity\":0,\"title\":\"Test-Get_items_of_a_Dashboard_List_returns_OK_response-1647890209 with Profile Metrics Query\",\"is_favorite\":false,\"id\":\"ayt-gzk-ffi\",\"icon\":null,\"integration_id\":null,\"is_shared\":false,\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"url\":\"/dashboard/ayt-gzk-ffi/test-getitemsofadashboardlistreturnsokresponse-1647890209-with-profile-metrics-q\",\"created\":\"2022-03-21T19:16:50.088193+00:00\",\"modified\":\"2022-03-21T19:16:50.088193+00:00\",\"is_read_only\":false,\"type\":\"custom_timeboard\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:49 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/ayt-gzk-ffi" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"ayt-gzk-ffi\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:49 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/284065" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_list_id\":284065}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:49 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/dashboard_lists/Update-items-of-a-dashboard-list-returns-OK-response.json b/tests/scenarios/cassettes/v2/dashboard_lists/Update-items-of-a-dashboard-list-returns-OK-response.json index ace717ce2..c03c23f2f 100644 --- a/tests/scenarios/cassettes/v2/dashboard_lists/Update-items-of-a-dashboard-list-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/dashboard_lists/Update-items-of-a-dashboard-list-returns-OK-response.json @@ -1 +1,259 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"name\":\"Test-Update_items_of_a_dashboard_list_returns_OK_response-1647890211\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual"}, "response": {"body": {"string": "{\"is_favorite\":false,\"name\":\"Test-Update_items_of_a_dashboard_list_returns_OK_response-1647890211\",\"dashboard_count\":0,\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"created\":\"2022-03-21T19:16:51.788428+00:00\",\"type\":\"manual_dashboard_list\",\"dashboards\":null,\"modified\":\"2022-03-21T19:16:51.788437+00:00\",\"id\":284066}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:51 GMT"}, {"request": {"body": {"string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Update_items_of_a_dashboard_list_returns_OK_response-1647890211 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"niu-g3w-pmy\",\"title\":\"Test-Update_items_of_a_dashboard_list_returns_OK_response-1647890211 with Profile Metrics Query\",\"url\":\"/dashboard/niu-g3w-pmy/test-updateitemsofadashboardlistreturnsokresponse-1647890211-with-profile-metric\",\"created_at\":\"2022-03-21T19:16:52.105822+00:00\",\"modified_at\":\"2022-03-21T19:16:52.105822+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"id\":7025397435910312}],\"layout_type\":\"ordered\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:51 GMT"}, {"request": {"body": {"string": "{\"layout_type\":\"free\",\"title\":\"Test-Update_items_of_a_dashboard_list_returns_OK_response-1647890211 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"},\"layout\":{\"height\":10,\"width\":10,\"x\":10,\"y\":10}}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/dashboard"}, "response": {"body": {"string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"kqn-ck6-7nq\",\"title\":\"Test-Update_items_of_a_dashboard_list_returns_OK_response-1647890211 with Profile Metrics Query\",\"url\":\"/dashboard/kqn-ck6-7nq/test-updateitemsofadashboardlistreturnsokresponse-1647890211-with-profile-metric\",\"created_at\":\"2022-03-21T19:16:52.400846+00:00\",\"modified_at\":\"2022-03-21T19:16:52.400846+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"layout\":{\"y\":10,\"width\":10,\"x\":10,\"height\":10},\"id\":2927684530303517}],\"layout_type\":\"free\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:51 GMT"}, {"request": {"body": {"string": "{\"dashboards\":[{\"id\":\"niu-g3w-pmy\",\"type\":\"custom_timeboard\"}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/dashboard/lists/manual/284066/dashboards"}, "response": {"body": {"string": "{\"added_dashboards_to_list\":[{\"type\":\"custom_timeboard\",\"id\":\"niu-g3w-pmy\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:51 GMT"}, {"request": {"body": {"string": "{\"dashboards\":[{\"id\":\"kqn-ck6-7nq\",\"type\":\"custom_screenboard\"}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "put", "uri": "https://api.datadoghq.com/api/v2/dashboard/lists/manual/284066/dashboards"}, "response": {"body": {"string": "{\"dashboards\":[{\"type\":\"custom_screenboard\",\"id\":\"kqn-ck6-7nq\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:51 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/kqn-ck6-7nq"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"kqn-ck6-7nq\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:51 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/niu-g3w-pmy"}, "response": {"body": {"string": "{\"deleted_dashboard_id\":\"niu-g3w-pmy\"}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:51 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/284066"}, "response": {"body": {"string": "{\"deleted_dashboard_list_id\":284066}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Mar 2022 19:16:51 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"name\":\"Test-Update_items_of_a_dashboard_list_returns_OK_response-1647890211\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual" + }, + "response": { + "body": { + "string": "{\"is_favorite\":false,\"name\":\"Test-Update_items_of_a_dashboard_list_returns_OK_response-1647890211\",\"dashboard_count\":0,\"author\":{\"handle\":\"frog@datadoghq.com\",\"name\":null},\"created\":\"2022-03-21T19:16:51.788428+00:00\",\"type\":\"manual_dashboard_list\",\"dashboards\":null,\"modified\":\"2022-03-21T19:16:51.788437+00:00\",\"id\":284066}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:51 GMT" + }, + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Update_items_of_a_dashboard_list_returns_OK_response-1647890211 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"niu-g3w-pmy\",\"title\":\"Test-Update_items_of_a_dashboard_list_returns_OK_response-1647890211 with Profile Metrics Query\",\"url\":\"/dashboard/niu-g3w-pmy/test-updateitemsofadashboardlistreturnsokresponse-1647890211-with-profile-metric\",\"created_at\":\"2022-03-21T19:16:52.105822+00:00\",\"modified_at\":\"2022-03-21T19:16:52.105822+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"id\":7025397435910312}],\"layout_type\":\"ordered\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:51 GMT" + }, + { + "request": { + "body": { + "string": "{\"layout_type\":\"free\",\"title\":\"Test-Update_items_of_a_dashboard_list_returns_OK_response-1647890211 with Profile Metrics Query\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"compute\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\"},\"group_by\":[{\"facet\":\"service\",\"limit\":10,\"sort\":{\"aggregation\":\"sum\",\"facet\":\"@prof_core_cpu_cores\",\"order\":\"desc\"}}],\"search\":{\"query\":\"runtime:jvm\"}}}],\"type\":\"timeseries\"},\"layout\":{\"height\":10,\"width\":10,\"x\":10,\"y\":10}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"notify_list\":null,\"description\":null,\"restricted_roles\":[],\"author_name\":null,\"template_variables\":null,\"is_read_only\":false,\"id\":\"kqn-ck6-7nq\",\"title\":\"Test-Update_items_of_a_dashboard_list_returns_OK_response-1647890211 with Profile Metrics Query\",\"url\":\"/dashboard/kqn-ck6-7nq/test-updateitemsofadashboardlistreturnsokresponse-1647890211-with-profile-metric\",\"created_at\":\"2022-03-21T19:16:52.400846+00:00\",\"modified_at\":\"2022-03-21T19:16:52.400846+00:00\",\"author_handle\":\"frog@datadoghq.com\",\"widgets\":[{\"definition\":{\"requests\":[{\"profile_metrics_query\":{\"search\":{\"query\":\"runtime:jvm\"},\"group_by\":[{\"facet\":\"service\",\"sort\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\",\"order\":\"desc\"},\"limit\":10}],\"compute\":{\"facet\":\"@prof_core_cpu_cores\",\"aggregation\":\"sum\"}}}],\"type\":\"timeseries\"},\"layout\":{\"y\":10,\"width\":10,\"x\":10,\"height\":10},\"id\":2927684530303517}],\"layout_type\":\"free\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:51 GMT" + }, + { + "request": { + "body": { + "string": "{\"dashboards\":[{\"id\":\"niu-g3w-pmy\",\"type\":\"custom_timeboard\"}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/dashboard/lists/manual/284066/dashboards" + }, + "response": { + "body": { + "string": "{\"added_dashboards_to_list\":[{\"type\":\"custom_timeboard\",\"id\":\"niu-g3w-pmy\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:51 GMT" + }, + { + "request": { + "body": { + "string": "{\"dashboards\":[{\"id\":\"kqn-ck6-7nq\",\"type\":\"custom_screenboard\"}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v2/dashboard/lists/manual/284066/dashboards" + }, + "response": { + "body": { + "string": "{\"dashboards\":[{\"type\":\"custom_screenboard\",\"id\":\"kqn-ck6-7nq\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:51 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/kqn-ck6-7nq" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"kqn-ck6-7nq\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:51 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/niu-g3w-pmy" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"niu-g3w-pmy\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:51 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/lists/manual/284066" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_list_id\":284066}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Mar 2022 19:16:51 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/dora_metrics/Send-a-deployment-event-for-DORA-Metrics-returns-OK-response.json b/tests/scenarios/cassettes/v2/dora_metrics/Send-a-deployment-event-for-DORA-Metrics-returns-OK-response.json index 801d15a5e..7be12e2da 100644 --- a/tests/scenarios/cassettes/v2/dora_metrics/Send-a-deployment-event-for-DORA-Metrics-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/dora_metrics/Send-a-deployment-event-for-DORA-Metrics-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"finished_at\":1693491984000000000,\"git\":{\"commit_sha\":\"66adc9350f2cc9b250b69abddab733dd55e1a588\",\"repository_url\":\"https://github.com/organization/example-repository\"},\"service\":\"shopist\",\"started_at\":1693491974000000000,\"version\":\"v1.12.07\"}}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/dora/deployment"}, "response": {"body": {"string": "{\"data\":{\"id\":\"2a47b5f25b160b8a\",\"type\":\"dora_deployment\"}}", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 16 Nov 2023 16:58:35 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"finished_at\":1693491984000000000,\"git\":{\"commit_sha\":\"66adc9350f2cc9b250b69abddab733dd55e1a588\",\"repository_url\":\"https://github.com/organization/example-repository\"},\"service\":\"shopist\",\"started_at\":1693491974000000000,\"version\":\"v1.12.07\"}}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/dora/deployment" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"2a47b5f25b160b8a\",\"type\":\"dora_deployment\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 16 Nov 2023 16:58:35 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/dora_metrics/Send-an-incident-event-for-DORA-Metrics-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/dora_metrics/Send-an-incident-event-for-DORA-Metrics-returns-OK-response.frozen index de4fef2d6..cc9d3b3db 100644 --- a/tests/scenarios/cassettes/v2/dora_metrics/Send-an-incident-event-for-DORA-Metrics-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v2/dora_metrics/Send-an-incident-event-for-DORA-Metrics-returns-OK-response.frozen @@ -1 +1 @@ -2023-11-16T16:58:35.716Z \ No newline at end of file +2024-02-13T16:54:07.556Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/dora_metrics/Send-an-incident-event-for-DORA-Metrics-returns-OK-response.json b/tests/scenarios/cassettes/v2/dora_metrics/Send-an-incident-event-for-DORA-Metrics-returns-OK-response.json index fa23936e4..eadf3ecae 100644 --- a/tests/scenarios/cassettes/v2/dora_metrics/Send-an-incident-event-for-DORA-Metrics-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/dora_metrics/Send-an-incident-event-for-DORA-Metrics-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"finished_at\":1693491984000000000,\"git\":{\"commit_sha\":\"66adc9350f2cc9b250b69abddab733dd55e1a588\",\"repository_url\":\"https://github.com/organization/example-repository\"},\"name\":\"Webserver is down failing all requests\",\"service\":\"shopist\",\"severity\":\"High\",\"started_at\":1693491974000000000,\"version\":\"v1.12.07\"}}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/dora/incident"}, "response": {"body": {"string": "{\"data\":{\"id\":\"2a47b5f25b160b8a\",\"type\":\"dora_incident\"}}", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 16 Nov 2023 16:58:35 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"finished_at\":1707842944600000000,\"git\":{\"commit_sha\":\"66adc9350f2cc9b250b69abddab733dd55e1a588\",\"repository_url\":\"https://github.com/organization/example-repository\"},\"name\":\"Webserver is down failing all requests\",\"services\":[\"shopist\"],\"severity\":\"High\",\"started_at\":1707842944500000000,\"team\":\"backend\",\"version\":\"v1.12.07\"}}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/dora/incident" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"2775a2d3-6c28-4934-ae60-0ef9ce3720ee\",\"type\":\"dora_incident\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 13 Feb 2024 16:54:07 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/downtimes/Cancel-a-downtime-returns-Downtime-not-found-response.json b/tests/scenarios/cassettes/v2/downtimes/Cancel-a-downtime-returns-Downtime-not-found-response.json index f6770e475..3bc5812cd 100644 --- a/tests/scenarios/cassettes/v2/downtimes/Cancel-a-downtime-returns-Downtime-not-found-response.json +++ b/tests/scenarios/cassettes/v2/downtimes/Cancel-a-downtime-returns-Downtime-not-found-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/downtime/00000000-0000-1234-0000-000000000000"}, "response": {"body": {"string": "{\"errors\":[\"Downtime 00000000-0000-1234-0000-000000000000 not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 25 May 2023 20:24:18 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/downtime/00000000-0000-1234-0000-000000000000" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Downtime 00000000-0000-1234-0000-000000000000 not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 25 May 2023 20:24:18 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/downtimes/Cancel-a-downtime-returns-OK-response.json b/tests/scenarios/cassettes/v2/downtimes/Cancel-a-downtime-returns-OK-response.json index 424aac801..f30071ee7 100644 --- a/tests/scenarios/cassettes/v2/downtimes/Cancel-a-downtime-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/downtimes/Cancel-a-downtime-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"message\":\"test message\",\"monitor_identifier\":{\"monitor_tags\":[\"cat:hat\"]},\"schedule\":{\"start\":null},\"scope\":\"test:testcanceladowntimereturnsokresponse1685739202\"},\"type\":\"downtime\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/downtime"}, "response": {"body": {"string": "{\"data\":{\"type\":\"downtime\",\"attributes\":{\"mute_first_recovery_notification\":false,\"status\":\"active\",\"created\":\"2023-06-02T20:53:23.252025+00:00\",\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"canceled\":null,\"display_timezone\":\"UTC\",\"modified\":\"2023-06-02T20:53:23.252025+00:00\",\"monitor_identifier\":{\"monitor_tags\":[\"cat:hat\"]},\"scope\":\"test:testcanceladowntimereturnsokresponse1685739202\",\"schedule\":{\"start\":\"2023-06-02T20:53:23.238403+00:00\",\"end\":null},\"message\":\"test message\",\"notify_end_types\":[\"expired\"]},\"id\":\"83718756-0187-11ee-8c18-da7ad0900002\",\"relationships\":{\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"monitor\":{\"data\":null}}},\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 02 Jun 2023 20:53:22 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/downtime/83718756-0187-11ee-8c18-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Fri, 02 Jun 2023 20:53:22 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/downtime/83718756-0187-11ee-8c18-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Fri, 02 Jun 2023 20:53:22 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"message\":\"test message\",\"monitor_identifier\":{\"monitor_tags\":[\"cat:hat\"]},\"schedule\":{\"start\":null},\"scope\":\"test:testcanceladowntimereturnsokresponse1685739202\"},\"type\":\"downtime\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/downtime" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"downtime\",\"attributes\":{\"mute_first_recovery_notification\":false,\"status\":\"active\",\"created\":\"2023-06-02T20:53:23.252025+00:00\",\"notify_end_states\":[\"alert\",\"no data\",\"warn\"],\"canceled\":null,\"display_timezone\":\"UTC\",\"modified\":\"2023-06-02T20:53:23.252025+00:00\",\"monitor_identifier\":{\"monitor_tags\":[\"cat:hat\"]},\"scope\":\"test:testcanceladowntimereturnsokresponse1685739202\",\"schedule\":{\"start\":\"2023-06-02T20:53:23.238403+00:00\",\"end\":null},\"message\":\"test message\",\"notify_end_types\":[\"expired\"]},\"id\":\"83718756-0187-11ee-8c18-da7ad0900002\",\"relationships\":{\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"monitor\":{\"data\":null}}},\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 02 Jun 2023 20:53:22 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/downtime/83718756-0187-11ee-8c18-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Fri, 02 Jun 2023 20:53:22 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/downtime/83718756-0187-11ee-8c18-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Fri, 02 Jun 2023 20:53:22 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/downtimes/Get-a-downtime-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/downtimes/Get-a-downtime-returns-Bad-Request-response.json index 2655be7ad..e0b043035 100644 --- a/tests/scenarios/cassettes/v2/downtimes/Get-a-downtime-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/downtimes/Get-a-downtime-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/downtime/INVALID_UUID_LENGTH"}, "response": {"body": {"string": "{\"errors\":[\"Invalid URL param: downtime_id must be an uuid\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Thu, 25 May 2023 20:24:19 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/downtime/INVALID_UUID_LENGTH" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Invalid URL param: downtime_id must be an uuid\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Thu, 25 May 2023 20:24:19 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/downtimes/Get-a-downtime-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/downtimes/Get-a-downtime-returns-Not-Found-response.json index 8f7b89af1..6efbd55b1 100644 --- a/tests/scenarios/cassettes/v2/downtimes/Get-a-downtime-returns-Not-Found-response.json +++ b/tests/scenarios/cassettes/v2/downtimes/Get-a-downtime-returns-Not-Found-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/downtime/00000000-0000-1234-0000-000000000000"}, "response": {"body": {"string": "{\"errors\":[\"Downtime not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 25 May 2023 20:24:20 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/downtime/00000000-0000-1234-0000-000000000000" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Downtime not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 25 May 2023 20:24:20 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/downtimes/Get-a-downtime-returns-OK-response.json b/tests/scenarios/cassettes/v2/downtimes/Get-a-downtime-returns-OK-response.json index 481600044..fefb7c4af 100644 --- a/tests/scenarios/cassettes/v2/downtimes/Get-a-downtime-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/downtimes/Get-a-downtime-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"message\":\"test message\",\"monitor_identifier\":{\"monitor_tags\":[\"cat:hat\"]},\"schedule\":{\"start\":null},\"scope\":\"test:testgetadowntimereturnsokresponse1685739204\"},\"type\":\"downtime\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/downtime"}, "response": {"body": {"string": "{\"data\":{\"type\":\"downtime\",\"attributes\":{\"display_timezone\":\"UTC\",\"scope\":\"test:testgetadowntimereturnsokresponse1685739204\",\"notify_end_states\":[\"warn\",\"alert\",\"no data\"],\"message\":\"test message\",\"created\":\"2023-06-02T20:53:24.806100+00:00\",\"status\":\"active\",\"modified\":\"2023-06-02T20:53:24.806100+00:00\",\"canceled\":null,\"monitor_identifier\":{\"monitor_tags\":[\"cat:hat\"]},\"schedule\":{\"end\":null,\"start\":\"2023-06-02T20:53:24.791647+00:00\"},\"notify_end_types\":[\"expired\"],\"mute_first_recovery_notification\":false},\"relationships\":{\"monitor\":{\"data\":null},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}},\"id\":\"845e9a1e-0187-11ee-817a-da7ad0900002\"},\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 02 Jun 2023 20:53:24 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/downtime/845e9a1e-0187-11ee-817a-da7ad0900002"}, "response": {"body": {"string": "{\"data\":{\"type\":\"downtime\",\"attributes\":{\"notify_end_types\":[\"expired\"],\"modified\":\"2023-06-02T20:53:24.806100+00:00\",\"monitor_identifier\":{\"monitor_tags\":[\"cat:hat\"]},\"scope\":\"test:testgetadowntimereturnsokresponse1685739204\",\"schedule\":{\"end\":null,\"start\":\"2023-06-02T20:53:24.791647+00:00\"},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2023-06-02T20:53:24.806100+00:00\",\"canceled\":null,\"mute_first_recovery_notification\":false,\"message\":\"test message\",\"display_timezone\":\"UTC\",\"status\":\"active\"},\"id\":\"845e9a1e-0187-11ee-817a-da7ad0900002\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 02 Jun 2023 20:53:24 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/downtime/845e9a1e-0187-11ee-817a-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Fri, 02 Jun 2023 20:53:24 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"message\":\"test message\",\"monitor_identifier\":{\"monitor_tags\":[\"cat:hat\"]},\"schedule\":{\"start\":null},\"scope\":\"test:testgetadowntimereturnsokresponse1685739204\"},\"type\":\"downtime\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/downtime" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"downtime\",\"attributes\":{\"display_timezone\":\"UTC\",\"scope\":\"test:testgetadowntimereturnsokresponse1685739204\",\"notify_end_states\":[\"warn\",\"alert\",\"no data\"],\"message\":\"test message\",\"created\":\"2023-06-02T20:53:24.806100+00:00\",\"status\":\"active\",\"modified\":\"2023-06-02T20:53:24.806100+00:00\",\"canceled\":null,\"monitor_identifier\":{\"monitor_tags\":[\"cat:hat\"]},\"schedule\":{\"end\":null,\"start\":\"2023-06-02T20:53:24.791647+00:00\"},\"notify_end_types\":[\"expired\"],\"mute_first_recovery_notification\":false},\"relationships\":{\"monitor\":{\"data\":null},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}},\"id\":\"845e9a1e-0187-11ee-817a-da7ad0900002\"},\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 02 Jun 2023 20:53:24 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/downtime/845e9a1e-0187-11ee-817a-da7ad0900002" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"downtime\",\"attributes\":{\"notify_end_types\":[\"expired\"],\"modified\":\"2023-06-02T20:53:24.806100+00:00\",\"monitor_identifier\":{\"monitor_tags\":[\"cat:hat\"]},\"scope\":\"test:testgetadowntimereturnsokresponse1685739204\",\"schedule\":{\"end\":null,\"start\":\"2023-06-02T20:53:24.791647+00:00\"},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2023-06-02T20:53:24.806100+00:00\",\"canceled\":null,\"mute_first_recovery_notification\":false,\"message\":\"test message\",\"display_timezone\":\"UTC\",\"status\":\"active\"},\"id\":\"845e9a1e-0187-11ee-817a-da7ad0900002\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 02 Jun 2023 20:53:24 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/downtime/845e9a1e-0187-11ee-817a-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Fri, 02 Jun 2023 20:53:24 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/downtimes/Get-active-downtimes-for-a-monitor-returns-OK-response.json b/tests/scenarios/cassettes/v2/downtimes/Get-active-downtimes-for-a-monitor-returns-OK-response.json index 2248f78a3..56e9a6000 100644 --- a/tests/scenarios/cassettes/v2/downtimes/Get-active-downtimes-for-a-monitor-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/downtimes/Get-active-downtimes-for-a-monitor-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/monitor/35534610/downtime_matches"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"downtime_match\",\"id\":\"aeefc6a8-15d8-11ee-a8ef-da7ad0900002\",\"attributes\":{\"groups\":[\"*\"],\"scope\":\"*\",\"start\":\"2023-06-28T17:23:57.324000+00:00\",\"end\":null}}],\"meta\":{\"page\":{\"total_filtered_count\":1}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 28 Jun 2023 17:25:38 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/monitor/35534610/downtime_matches" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"downtime_match\",\"id\":\"aeefc6a8-15d8-11ee-a8ef-da7ad0900002\",\"attributes\":{\"groups\":[\"*\"],\"scope\":\"*\",\"start\":\"2023-06-28T17:23:57.324000+00:00\",\"end\":null}}],\"meta\":{\"page\":{\"total_filtered_count\":1}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 28 Jun 2023 17:25:38 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/downtimes/Get-all-downtimes-for-a-monitor-returns-Monitor-Not-Found-error-response.json b/tests/scenarios/cassettes/v2/downtimes/Get-all-downtimes-for-a-monitor-returns-Monitor-Not-Found-error-response.json index 996b46c78..f90594abc 100644 --- a/tests/scenarios/cassettes/v2/downtimes/Get-all-downtimes-for-a-monitor-returns-Monitor-Not-Found-error-response.json +++ b/tests/scenarios/cassettes/v2/downtimes/Get-all-downtimes-for-a-monitor-returns-Monitor-Not-Found-error-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/monitor/0/downtime_matches"}, "response": {"body": {"string": "{\"errors\":[\"Monitor with id 0 not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Fri, 09 Jun 2023 18:54:40 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/monitor/0/downtime_matches" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Monitor with id 0 not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Fri, 09 Jun 2023 18:54:40 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/downtimes/Get-all-downtimes-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v2/downtimes/Get-all-downtimes-returns-OK-response-with-pagination.json index 84206b56f..3b5352a01 100644 --- a/tests/scenarios/cassettes/v2/downtimes/Get-all-downtimes-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v2/downtimes/Get-all-downtimes-returns-OK-response-with-pagination.json @@ -1 +1,61 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/downtime?page%5Blimit%5D=2"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"downtime\",\"attributes\":{\"mute_first_recovery_notification\":false,\"canceled\":null,\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"schedule\":{\"start\":\"2023-05-22T03:06:54.072998+00:00\",\"end\":null},\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"no data\",\"warn\",\"alert\"],\"status\":\"active\",\"scope\":\"host:\\\"java-hostsMuteErrorsTest-local-1684724813\\\"\",\"created\":\"2023-05-22T03:06:54.079122+00:00\",\"display_timezone\":\"UTC\",\"message\":null,\"modified\":\"2023-05-22T03:06:54.079122+00:00\"},\"id\":\"b4613732-f84d-11ed-a766-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"mute_first_recovery_notification\":false,\"canceled\":null,\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"schedule\":{\"start\":\"2023-05-23T03:21:54.687109+00:00\",\"end\":null},\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"no data\",\"warn\",\"alert\"],\"status\":\"active\",\"scope\":\"host:\\\"java-hostsMuteErrorsTest-local-1684812114\\\"\",\"created\":\"2023-05-23T03:21:54.690618+00:00\",\"display_timezone\":\"UTC\",\"message\":null,\"modified\":\"2023-05-23T03:21:54.690618+00:00\"},\"id\":\"f799770a-f918-11ed-8b48-da7ad0900002\"}],\"meta\":{\"page\":{\"total_filtered_count\":3}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 05 Sep 2023 12:32:39 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/downtime?page%5Blimit%5D=2&page%5Boffset%5D=2"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"downtime\",\"attributes\":{\"modified\":\"2023-05-24T03:29:35.343207+00:00\",\"created\":\"2023-05-24T03:29:35.343207+00:00\",\"canceled\":null,\"status\":\"active\",\"scope\":\"host:\\\"java-hostsMuteErrorsTest-local-1684898975\\\"\",\"display_timezone\":\"UTC\",\"schedule\":{\"end\":null,\"start\":\"2023-05-24T03:29:35.340446+00:00\"},\"message\":null,\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"monitor_identifier\":{\"monitor_tags\":[\"*\"]}},\"id\":\"34953930-f9e3-11ed-85d4-da7ad0900002\"}],\"meta\":{\"page\":{\"total_filtered_count\":3}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 05 Sep 2023 12:32:39 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/downtime?page%5Blimit%5D=2" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"downtime\",\"attributes\":{\"mute_first_recovery_notification\":false,\"canceled\":null,\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"schedule\":{\"start\":\"2023-05-22T03:06:54.072998+00:00\",\"end\":null},\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"no data\",\"warn\",\"alert\"],\"status\":\"active\",\"scope\":\"host:\\\"java-hostsMuteErrorsTest-local-1684724813\\\"\",\"created\":\"2023-05-22T03:06:54.079122+00:00\",\"display_timezone\":\"UTC\",\"message\":null,\"modified\":\"2023-05-22T03:06:54.079122+00:00\"},\"id\":\"b4613732-f84d-11ed-a766-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"mute_first_recovery_notification\":false,\"canceled\":null,\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"schedule\":{\"start\":\"2023-05-23T03:21:54.687109+00:00\",\"end\":null},\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"no data\",\"warn\",\"alert\"],\"status\":\"active\",\"scope\":\"host:\\\"java-hostsMuteErrorsTest-local-1684812114\\\"\",\"created\":\"2023-05-23T03:21:54.690618+00:00\",\"display_timezone\":\"UTC\",\"message\":null,\"modified\":\"2023-05-23T03:21:54.690618+00:00\"},\"id\":\"f799770a-f918-11ed-8b48-da7ad0900002\"}],\"meta\":{\"page\":{\"total_filtered_count\":3}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 05 Sep 2023 12:32:39 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/downtime?page%5Blimit%5D=2&page%5Boffset%5D=2" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"downtime\",\"attributes\":{\"modified\":\"2023-05-24T03:29:35.343207+00:00\",\"created\":\"2023-05-24T03:29:35.343207+00:00\",\"canceled\":null,\"status\":\"active\",\"scope\":\"host:\\\"java-hostsMuteErrorsTest-local-1684898975\\\"\",\"display_timezone\":\"UTC\",\"schedule\":{\"end\":null,\"start\":\"2023-05-24T03:29:35.340446+00:00\"},\"message\":null,\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"monitor_identifier\":{\"monitor_tags\":[\"*\"]}},\"id\":\"34953930-f9e3-11ed-85d4-da7ad0900002\"}],\"meta\":{\"page\":{\"total_filtered_count\":3}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 05 Sep 2023 12:32:39 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/downtimes/Get-all-downtimes-returns-OK-response.json b/tests/scenarios/cassettes/v2/downtimes/Get-all-downtimes-returns-OK-response.json index e59696b34..b189cb195 100644 --- a/tests/scenarios/cassettes/v2/downtimes/Get-all-downtimes-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/downtimes/Get-all-downtimes-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/downtime"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-10-28T14:17:52.420429+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-10-28T14:17:52.420429+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635430672\",\"schedule\":{\"end\":null,\"start\":\"2021-10-28T14:17:52.399817+00:00\"},\"status\":\"active\"},\"id\":\"1d9e7eee-b23a-11ed-a0dc-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-10-28T14:33:48.622821+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-10-28T14:33:48.622821+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635431628\",\"schedule\":{\"end\":null,\"start\":\"2021-10-28T14:33:48.620257+00:00\"},\"status\":\"active\"},\"id\":\"1d9ec3cc-b23a-11ed-a0ea-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-10-28T14:48:50.581496+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-10-28T14:48:50.581496+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635432530\",\"schedule\":{\"end\":null,\"start\":\"2021-10-28T14:48:50.575549+00:00\"},\"status\":\"active\"},\"id\":\"1da042ec-b23a-11ed-a16b-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-10-28T14:56:22.879389+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-10-28T14:56:22.879389+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635432982\",\"schedule\":{\"end\":null,\"start\":\"2021-10-28T14:56:22.875090+00:00\"},\"status\":\"active\"},\"id\":\"1da0495e-b23a-11ed-a16c-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-10-28T15:16:54.480401+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-10-28T15:16:54.480401+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635434214\",\"schedule\":{\"end\":null,\"start\":\"2021-10-28T15:16:54.477880+00:00\"},\"status\":\"active\"},\"id\":\"1da06d30-b23a-11ed-a178-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-10-28T16:08:31.571892+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-10-28T16:08:31.571892+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635437311\",\"schedule\":{\"end\":null,\"start\":\"2021-10-28T16:08:31.562562+00:00\"},\"status\":\"active\"},\"id\":\"1da0eabc-b23a-11ed-a193-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-10-29T03:11:14.667351+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-10-29T03:11:14.667351+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635477074\",\"schedule\":{\"end\":null,\"start\":\"2021-10-29T03:11:14.662838+00:00\"},\"status\":\"active\"},\"id\":\"1da8e726-b23a-11ed-a3ab-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-10-29T08:07:08.893065+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-10-29T08:07:08.893065+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635494828\",\"schedule\":{\"end\":null,\"start\":\"2021-10-29T08:07:08.868526+00:00\"},\"status\":\"active\"},\"id\":\"1db7e4f6-b23a-11ed-a86e-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-10-29T08:41:03.157018+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-10-29T08:41:03.157018+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635496863\",\"schedule\":{\"end\":null,\"start\":\"2021-10-29T08:41:03.154098+00:00\"},\"status\":\"active\"},\"id\":\"1db8d8ac-b23a-11ed-a879-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-10-29T17:21:23.756952+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-10-29T17:21:23.756952+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635528083\",\"schedule\":{\"end\":null,\"start\":\"2021-10-29T17:21:23.754124+00:00\"},\"status\":\"active\"},\"id\":\"1dc7e13a-b23a-11ed-ad75-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-10-30T03:11:07.935370+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-10-30T03:11:07.935370+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635563467\",\"schedule\":{\"end\":null,\"start\":\"2021-10-30T03:11:07.931742+00:00\"},\"status\":\"active\"},\"id\":\"1dcb33f8-b23a-11ed-ae77-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-10-30T16:06:10.276649+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-10-30T16:06:10.276649+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635609970\",\"schedule\":{\"end\":null,\"start\":\"2021-10-30T16:06:10.273151+00:00\"},\"status\":\"active\"},\"id\":\"1dcd0b9c-b23a-11ed-af06-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-10-31T03:11:11.316510+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-10-31T03:11:11.316510+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635649871\",\"schedule\":{\"end\":null,\"start\":\"2021-10-31T03:11:11.312216+00:00\"},\"status\":\"active\"},\"id\":\"1dce8d64-b23a-11ed-af88-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-01T03:08:39.804462+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-01T03:08:39.804462+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635736119\",\"schedule\":{\"end\":null,\"start\":\"2021-11-01T03:08:39.802027+00:00\"},\"status\":\"active\"},\"id\":\"1dd35b50-b23a-11ed-b0e9-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-02T03:10:15.532889+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-02T03:10:15.532889+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635822615\",\"schedule\":{\"end\":null,\"start\":\"2021-11-02T03:10:15.528871+00:00\"},\"status\":\"active\"},\"id\":\"1de58d3e-b23a-11ed-b608-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-02T09:20:28.614860+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-02T09:20:28.614860+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635844828\",\"schedule\":{\"end\":null,\"start\":\"2021-11-02T09:20:28.611532+00:00\"},\"status\":\"active\"},\"id\":\"1de8bb30-b23a-11ed-b6d9-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-02T09:34:53.765122+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-02T09:34:53.765122+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635845693\",\"schedule\":{\"end\":null,\"start\":\"2021-11-02T09:34:53.761176+00:00\"},\"status\":\"active\"},\"id\":\"1de8f14a-b23a-11ed-b6e7-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-02T09:48:14.313975+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-02T09:48:14.313975+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635846494\",\"schedule\":{\"end\":null,\"start\":\"2021-11-02T09:48:14.311153+00:00\"},\"status\":\"active\"},\"id\":\"1de919c2-b23a-11ed-b6f4-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-02T09:55:05.587914+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-02T09:55:05.587914+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635846905\",\"schedule\":{\"end\":null,\"start\":\"2021-11-02T09:55:05.584723+00:00\"},\"status\":\"active\"},\"id\":\"1de92250-b23a-11ed-b6f8-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-02T10:45:12.687669+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-02T10:45:12.687669+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635849912\",\"schedule\":{\"end\":null,\"start\":\"2021-11-02T10:45:12.683837+00:00\"},\"status\":\"active\"},\"id\":\"1de9870e-b23a-11ed-b70e-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-02T10:57:27.536018+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-02T10:57:27.536018+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635850647\",\"schedule\":{\"end\":null,\"start\":\"2021-11-02T10:57:27.532780+00:00\"},\"status\":\"active\"},\"id\":\"1de99172-b23a-11ed-b713-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-02T11:07:15.081382+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-02T11:07:15.081382+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635851234\",\"schedule\":{\"end\":null,\"start\":\"2021-11-02T11:07:15.078037+00:00\"},\"status\":\"active\"},\"id\":\"1de9e398-b23a-11ed-b72e-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-02T11:15:16.847749+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-02T11:15:16.847749+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635851716\",\"schedule\":{\"end\":null,\"start\":\"2021-11-02T11:15:16.845135+00:00\"},\"status\":\"active\"},\"id\":\"1de9e5be-b23a-11ed-b72f-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-02T14:12:24.714186+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-02T14:12:24.714186+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635862344\",\"schedule\":{\"end\":null,\"start\":\"2021-11-02T14:12:24.710625+00:00\"},\"status\":\"active\"},\"id\":\"1deb279e-b23a-11ed-b784-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-02T14:46:14.802545+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-02T14:46:14.802545+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635864374\",\"schedule\":{\"end\":null,\"start\":\"2021-11-02T14:46:14.800340+00:00\"},\"status\":\"active\"},\"id\":\"1deb73a2-b23a-11ed-b797-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-02T15:16:48.477972+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-02T15:16:48.477972+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635866208\",\"schedule\":{\"end\":null,\"start\":\"2021-11-02T15:16:48.469517+00:00\"},\"status\":\"active\"},\"id\":\"1debd126-b23a-11ed-b7b0-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-02T18:28:35.537425+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-02T18:28:35.537425+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635877715\",\"schedule\":{\"end\":null,\"start\":\"2021-11-02T18:28:35.532968+00:00\"},\"status\":\"active\"},\"id\":\"1deefd9c-b23a-11ed-b8b8-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-03T03:08:05.553644+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-03T03:08:05.553644+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635908885\",\"schedule\":{\"end\":null,\"start\":\"2021-11-03T03:08:05.547972+00:00\"},\"status\":\"active\"},\"id\":\"1df2a096-b23a-11ed-b9b4-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-03T08:58:07.316209+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-03T08:58:07.316209+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635929887\",\"schedule\":{\"end\":null,\"start\":\"2021-11-03T08:58:07.312866+00:00\"},\"status\":\"active\"},\"id\":\"1df51538-b23a-11ed-ba64-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-03T10:28:12.844618+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-03T10:28:12.844618+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635935292\",\"schedule\":{\"end\":null,\"start\":\"2021-11-03T10:28:12.841116+00:00\"},\"status\":\"active\"},\"id\":\"1df5e13e-b23a-11ed-baa2-da7ad0900002\"}],\"meta\":{\"page\":{\"total_filtered_count\":1049}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 25 May 2023 20:24:20 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/downtime" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-10-28T14:17:52.420429+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-10-28T14:17:52.420429+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635430672\",\"schedule\":{\"end\":null,\"start\":\"2021-10-28T14:17:52.399817+00:00\"},\"status\":\"active\"},\"id\":\"1d9e7eee-b23a-11ed-a0dc-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-10-28T14:33:48.622821+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-10-28T14:33:48.622821+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635431628\",\"schedule\":{\"end\":null,\"start\":\"2021-10-28T14:33:48.620257+00:00\"},\"status\":\"active\"},\"id\":\"1d9ec3cc-b23a-11ed-a0ea-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-10-28T14:48:50.581496+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-10-28T14:48:50.581496+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635432530\",\"schedule\":{\"end\":null,\"start\":\"2021-10-28T14:48:50.575549+00:00\"},\"status\":\"active\"},\"id\":\"1da042ec-b23a-11ed-a16b-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-10-28T14:56:22.879389+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-10-28T14:56:22.879389+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635432982\",\"schedule\":{\"end\":null,\"start\":\"2021-10-28T14:56:22.875090+00:00\"},\"status\":\"active\"},\"id\":\"1da0495e-b23a-11ed-a16c-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-10-28T15:16:54.480401+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-10-28T15:16:54.480401+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635434214\",\"schedule\":{\"end\":null,\"start\":\"2021-10-28T15:16:54.477880+00:00\"},\"status\":\"active\"},\"id\":\"1da06d30-b23a-11ed-a178-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-10-28T16:08:31.571892+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-10-28T16:08:31.571892+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635437311\",\"schedule\":{\"end\":null,\"start\":\"2021-10-28T16:08:31.562562+00:00\"},\"status\":\"active\"},\"id\":\"1da0eabc-b23a-11ed-a193-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-10-29T03:11:14.667351+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-10-29T03:11:14.667351+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635477074\",\"schedule\":{\"end\":null,\"start\":\"2021-10-29T03:11:14.662838+00:00\"},\"status\":\"active\"},\"id\":\"1da8e726-b23a-11ed-a3ab-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-10-29T08:07:08.893065+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-10-29T08:07:08.893065+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635494828\",\"schedule\":{\"end\":null,\"start\":\"2021-10-29T08:07:08.868526+00:00\"},\"status\":\"active\"},\"id\":\"1db7e4f6-b23a-11ed-a86e-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-10-29T08:41:03.157018+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-10-29T08:41:03.157018+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635496863\",\"schedule\":{\"end\":null,\"start\":\"2021-10-29T08:41:03.154098+00:00\"},\"status\":\"active\"},\"id\":\"1db8d8ac-b23a-11ed-a879-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-10-29T17:21:23.756952+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-10-29T17:21:23.756952+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635528083\",\"schedule\":{\"end\":null,\"start\":\"2021-10-29T17:21:23.754124+00:00\"},\"status\":\"active\"},\"id\":\"1dc7e13a-b23a-11ed-ad75-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-10-30T03:11:07.935370+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-10-30T03:11:07.935370+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635563467\",\"schedule\":{\"end\":null,\"start\":\"2021-10-30T03:11:07.931742+00:00\"},\"status\":\"active\"},\"id\":\"1dcb33f8-b23a-11ed-ae77-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-10-30T16:06:10.276649+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-10-30T16:06:10.276649+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635609970\",\"schedule\":{\"end\":null,\"start\":\"2021-10-30T16:06:10.273151+00:00\"},\"status\":\"active\"},\"id\":\"1dcd0b9c-b23a-11ed-af06-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-10-31T03:11:11.316510+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-10-31T03:11:11.316510+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635649871\",\"schedule\":{\"end\":null,\"start\":\"2021-10-31T03:11:11.312216+00:00\"},\"status\":\"active\"},\"id\":\"1dce8d64-b23a-11ed-af88-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-01T03:08:39.804462+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-01T03:08:39.804462+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635736119\",\"schedule\":{\"end\":null,\"start\":\"2021-11-01T03:08:39.802027+00:00\"},\"status\":\"active\"},\"id\":\"1dd35b50-b23a-11ed-b0e9-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-02T03:10:15.532889+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-02T03:10:15.532889+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635822615\",\"schedule\":{\"end\":null,\"start\":\"2021-11-02T03:10:15.528871+00:00\"},\"status\":\"active\"},\"id\":\"1de58d3e-b23a-11ed-b608-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-02T09:20:28.614860+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-02T09:20:28.614860+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635844828\",\"schedule\":{\"end\":null,\"start\":\"2021-11-02T09:20:28.611532+00:00\"},\"status\":\"active\"},\"id\":\"1de8bb30-b23a-11ed-b6d9-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-02T09:34:53.765122+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-02T09:34:53.765122+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635845693\",\"schedule\":{\"end\":null,\"start\":\"2021-11-02T09:34:53.761176+00:00\"},\"status\":\"active\"},\"id\":\"1de8f14a-b23a-11ed-b6e7-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-02T09:48:14.313975+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-02T09:48:14.313975+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635846494\",\"schedule\":{\"end\":null,\"start\":\"2021-11-02T09:48:14.311153+00:00\"},\"status\":\"active\"},\"id\":\"1de919c2-b23a-11ed-b6f4-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-02T09:55:05.587914+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-02T09:55:05.587914+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635846905\",\"schedule\":{\"end\":null,\"start\":\"2021-11-02T09:55:05.584723+00:00\"},\"status\":\"active\"},\"id\":\"1de92250-b23a-11ed-b6f8-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-02T10:45:12.687669+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-02T10:45:12.687669+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635849912\",\"schedule\":{\"end\":null,\"start\":\"2021-11-02T10:45:12.683837+00:00\"},\"status\":\"active\"},\"id\":\"1de9870e-b23a-11ed-b70e-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-02T10:57:27.536018+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-02T10:57:27.536018+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635850647\",\"schedule\":{\"end\":null,\"start\":\"2021-11-02T10:57:27.532780+00:00\"},\"status\":\"active\"},\"id\":\"1de99172-b23a-11ed-b713-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-02T11:07:15.081382+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-02T11:07:15.081382+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635851234\",\"schedule\":{\"end\":null,\"start\":\"2021-11-02T11:07:15.078037+00:00\"},\"status\":\"active\"},\"id\":\"1de9e398-b23a-11ed-b72e-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-02T11:15:16.847749+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-02T11:15:16.847749+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635851716\",\"schedule\":{\"end\":null,\"start\":\"2021-11-02T11:15:16.845135+00:00\"},\"status\":\"active\"},\"id\":\"1de9e5be-b23a-11ed-b72f-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-02T14:12:24.714186+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-02T14:12:24.714186+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635862344\",\"schedule\":{\"end\":null,\"start\":\"2021-11-02T14:12:24.710625+00:00\"},\"status\":\"active\"},\"id\":\"1deb279e-b23a-11ed-b784-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-02T14:46:14.802545+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-02T14:46:14.802545+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635864374\",\"schedule\":{\"end\":null,\"start\":\"2021-11-02T14:46:14.800340+00:00\"},\"status\":\"active\"},\"id\":\"1deb73a2-b23a-11ed-b797-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-02T15:16:48.477972+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-02T15:16:48.477972+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635866208\",\"schedule\":{\"end\":null,\"start\":\"2021-11-02T15:16:48.469517+00:00\"},\"status\":\"active\"},\"id\":\"1debd126-b23a-11ed-b7b0-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-02T18:28:35.537425+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-02T18:28:35.537425+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635877715\",\"schedule\":{\"end\":null,\"start\":\"2021-11-02T18:28:35.532968+00:00\"},\"status\":\"active\"},\"id\":\"1deefd9c-b23a-11ed-b8b8-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-03T03:08:05.553644+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-03T03:08:05.553644+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635908885\",\"schedule\":{\"end\":null,\"start\":\"2021-11-03T03:08:05.547972+00:00\"},\"status\":\"active\"},\"id\":\"1df2a096-b23a-11ed-b9b4-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-03T08:58:07.316209+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-03T08:58:07.316209+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635929887\",\"schedule\":{\"end\":null,\"start\":\"2021-11-03T08:58:07.312866+00:00\"},\"status\":\"active\"},\"id\":\"1df51538-b23a-11ed-ba64-da7ad0900002\"},{\"type\":\"downtime\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"*\"]},\"notify_end_states\":[\"warn\",\"no data\",\"alert\"],\"created\":\"2021-11-03T10:28:12.844618+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_types\":[\"expired\"],\"message\":null,\"canceled\":null,\"modified\":\"2021-11-03T10:28:12.844618+00:00\",\"scope\":\"host:java-hostsMuteErrorsTest-local-1635935292\",\"schedule\":{\"end\":null,\"start\":\"2021-11-03T10:28:12.841116+00:00\"},\"status\":\"active\"},\"id\":\"1df5e13e-b23a-11ed-baa2-da7ad0900002\"}],\"meta\":{\"page\":{\"total_filtered_count\":1049}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 25 May 2023 20:24:20 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/downtimes/Schedule-a-downtime-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/downtimes/Schedule-a-downtime-returns-Bad-Request-response.json index 66db41353..d44d94e29 100644 --- a/tests/scenarios/cassettes/v2/downtimes/Schedule-a-downtime-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/downtimes/Schedule-a-downtime-returns-Bad-Request-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"cat:hat\"]},\"schedule\":{\"start\":null},\"scope\":\"BAD_SCOPE_MISSING_KEY_VALUE_FORMAT\"},\"type\":\"downtime\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/downtime"}, "response": {"body": {"string": "{\"errors\":[\"All values must have a key\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Fri, 02 Jun 2023 20:53:25 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"cat:hat\"]},\"schedule\":{\"start\":null},\"scope\":\"BAD_SCOPE_MISSING_KEY_VALUE_FORMAT\"},\"type\":\"downtime\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/downtime" + }, + "response": { + "body": { + "string": "{\"errors\":[\"All values must have a key\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Fri, 02 Jun 2023 20:53:25 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/downtimes/Schedule-a-downtime-returns-OK-response.json b/tests/scenarios/cassettes/v2/downtimes/Schedule-a-downtime-returns-OK-response.json index 2c7ccc5ed..4d2ed03d4 100644 --- a/tests/scenarios/cassettes/v2/downtimes/Schedule-a-downtime-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/downtimes/Schedule-a-downtime-returns-OK-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"message\":\"dark forest\",\"monitor_identifier\":{\"monitor_tags\":[\"cat:hat\"]},\"schedule\":{\"start\":null},\"scope\":\"test:testscheduleadowntimereturnsokresponse1685739206\"},\"type\":\"downtime\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/downtime"}, "response": {"body": {"string": "{\"data\":{\"type\":\"downtime\",\"attributes\":{\"display_timezone\":\"UTC\",\"scope\":\"test:testscheduleadowntimereturnsokresponse1685739206\",\"notify_end_states\":[\"warn\",\"alert\",\"no data\"],\"message\":\"dark forest\",\"created\":\"2023-06-02T20:53:26.300497+00:00\",\"status\":\"active\",\"modified\":\"2023-06-02T20:53:26.300497+00:00\",\"canceled\":null,\"monitor_identifier\":{\"monitor_tags\":[\"cat:hat\"]},\"schedule\":{\"end\":null,\"start\":\"2023-06-02T20:53:26.286133+00:00\"},\"notify_end_types\":[\"expired\"],\"mute_first_recovery_notification\":false},\"relationships\":{\"monitor\":{\"data\":null},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}},\"id\":\"85428b34-0187-11ee-bb05-da7ad0900002\"},\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 02 Jun 2023 20:53:26 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/downtime/85428b34-0187-11ee-bb05-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Fri, 02 Jun 2023 20:53:26 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"message\":\"dark forest\",\"monitor_identifier\":{\"monitor_tags\":[\"cat:hat\"]},\"schedule\":{\"start\":null},\"scope\":\"test:testscheduleadowntimereturnsokresponse1685739206\"},\"type\":\"downtime\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/downtime" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"downtime\",\"attributes\":{\"display_timezone\":\"UTC\",\"scope\":\"test:testscheduleadowntimereturnsokresponse1685739206\",\"notify_end_states\":[\"warn\",\"alert\",\"no data\"],\"message\":\"dark forest\",\"created\":\"2023-06-02T20:53:26.300497+00:00\",\"status\":\"active\",\"modified\":\"2023-06-02T20:53:26.300497+00:00\",\"canceled\":null,\"monitor_identifier\":{\"monitor_tags\":[\"cat:hat\"]},\"schedule\":{\"end\":null,\"start\":\"2023-06-02T20:53:26.286133+00:00\"},\"notify_end_types\":[\"expired\"],\"mute_first_recovery_notification\":false},\"relationships\":{\"monitor\":{\"data\":null},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}},\"id\":\"85428b34-0187-11ee-bb05-da7ad0900002\"},\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 02 Jun 2023 20:53:26 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/downtime/85428b34-0187-11ee-bb05-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Fri, 02 Jun 2023 20:53:26 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/downtimes/Update-a-downtime-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/downtimes/Update-a-downtime-returns-Bad-Request-response.json index 7b9773bd6..0700f69ee 100644 --- a/tests/scenarios/cassettes/v2/downtimes/Update-a-downtime-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/downtimes/Update-a-downtime-returns-Bad-Request-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"message\":\"test message\",\"monitor_identifier\":{\"monitor_tags\":[\"cat:hat\"]},\"schedule\":{\"start\":null},\"scope\":\"test:testupdateadowntimereturnsbadrequestresponse1685739206\"},\"type\":\"downtime\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/downtime"}, "response": {"body": {"string": "{\"data\":{\"type\":\"downtime\",\"attributes\":{\"schedule\":{\"start\":\"2023-06-02T20:53:26.854449+00:00\",\"end\":null},\"canceled\":null,\"modified\":\"2023-06-02T20:53:26.869296+00:00\",\"created\":\"2023-06-02T20:53:26.869296+00:00\",\"status\":\"active\",\"monitor_identifier\":{\"monitor_tags\":[\"cat:hat\"]},\"scope\":\"test:testupdateadowntimereturnsbadrequestresponse1685739206\",\"message\":\"test message\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_states\":[\"no data\",\"warn\",\"alert\"],\"notify_end_types\":[\"expired\"]},\"relationships\":{\"monitor\":{\"data\":null},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}},\"id\":\"85997dfe-0187-11ee-a1c1-da7ad0900002\"},\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 02 Jun 2023 20:53:26 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"invalid_field\":\"sophon\"},\"id\":\"85997dfe-0187-11ee-a1c1-da7ad0900002\",\"type\":\"downtime\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/downtime/85997dfe-0187-11ee-a1c1-da7ad0900002"}, "response": {"body": {"string": "{\"errors\":[\"Additional properties are not allowed ('invalid_field' was unexpected)\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Fri, 02 Jun 2023 20:53:26 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/downtime/85997dfe-0187-11ee-a1c1-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Fri, 02 Jun 2023 20:53:26 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"message\":\"test message\",\"monitor_identifier\":{\"monitor_tags\":[\"cat:hat\"]},\"schedule\":{\"start\":null},\"scope\":\"test:testupdateadowntimereturnsbadrequestresponse1685739206\"},\"type\":\"downtime\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/downtime" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"downtime\",\"attributes\":{\"schedule\":{\"start\":\"2023-06-02T20:53:26.854449+00:00\",\"end\":null},\"canceled\":null,\"modified\":\"2023-06-02T20:53:26.869296+00:00\",\"created\":\"2023-06-02T20:53:26.869296+00:00\",\"status\":\"active\",\"monitor_identifier\":{\"monitor_tags\":[\"cat:hat\"]},\"scope\":\"test:testupdateadowntimereturnsbadrequestresponse1685739206\",\"message\":\"test message\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_states\":[\"no data\",\"warn\",\"alert\"],\"notify_end_types\":[\"expired\"]},\"relationships\":{\"monitor\":{\"data\":null},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}},\"id\":\"85997dfe-0187-11ee-a1c1-da7ad0900002\"},\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 02 Jun 2023 20:53:26 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"invalid_field\":\"sophon\"},\"id\":\"85997dfe-0187-11ee-a1c1-da7ad0900002\",\"type\":\"downtime\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/downtime/85997dfe-0187-11ee-a1c1-da7ad0900002" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Additional properties are not allowed ('invalid_field' was unexpected)\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Fri, 02 Jun 2023 20:53:26 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/downtime/85997dfe-0187-11ee-a1c1-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Fri, 02 Jun 2023 20:53:26 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/downtimes/Update-a-downtime-returns-Downtime-not-found-response.json b/tests/scenarios/cassettes/v2/downtimes/Update-a-downtime-returns-Downtime-not-found-response.json index e3c4164b6..462ac96ca 100644 --- a/tests/scenarios/cassettes/v2/downtimes/Update-a-downtime-returns-Downtime-not-found-response.json +++ b/tests/scenarios/cassettes/v2/downtimes/Update-a-downtime-returns-Downtime-not-found-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"message\":\"test msg\"},\"id\":\"00000000-0000-1234-0000-000000000000\",\"type\":\"downtime\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/downtime/00000000-0000-1234-0000-000000000000"}, "response": {"body": {"string": "{\"errors\":[\"Downtime not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 25 May 2023 20:24:22 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"message\":\"test msg\"},\"id\":\"00000000-0000-1234-0000-000000000000\",\"type\":\"downtime\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/downtime/00000000-0000-1234-0000-000000000000" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Downtime not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 25 May 2023 20:24:22 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/downtimes/Update-a-downtime-returns-OK-response.json b/tests/scenarios/cassettes/v2/downtimes/Update-a-downtime-returns-OK-response.json index e6da48744..cca0d8bf2 100644 --- a/tests/scenarios/cassettes/v2/downtimes/Update-a-downtime-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/downtimes/Update-a-downtime-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"message\":\"test message\",\"monitor_identifier\":{\"monitor_tags\":[\"cat:hat\"]},\"schedule\":{\"start\":null},\"scope\":\"test:testupdateadowntimereturnsokresponse1685739207\"},\"type\":\"downtime\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/downtime"}, "response": {"body": {"string": "{\"data\":{\"type\":\"downtime\",\"relationships\":{\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"monitor\":{\"data\":null}},\"id\":\"865c7f20-0187-11ee-ac0a-da7ad0900002\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"cat:hat\"]},\"status\":\"active\",\"message\":\"test message\",\"created\":\"2023-06-02T20:53:28.147387+00:00\",\"schedule\":{\"end\":null,\"start\":\"2023-06-02T20:53:28.134493+00:00\"},\"modified\":\"2023-06-02T20:53:28.147387+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_states\":[\"no data\",\"warn\",\"alert\"],\"scope\":\"test:testupdateadowntimereturnsokresponse1685739207\",\"notify_end_types\":[\"expired\"],\"canceled\":null}},\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 02 Jun 2023 20:53:27 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"message\":\"light speed\"},\"id\":\"865c7f20-0187-11ee-ac0a-da7ad0900002\",\"type\":\"downtime\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/downtime/865c7f20-0187-11ee-ac0a-da7ad0900002"}, "response": {"body": {"string": "{\"data\":{\"type\":\"downtime\",\"attributes\":{\"display_timezone\":\"UTC\",\"status\":\"active\",\"message\":\"light speed\",\"created\":\"2023-06-02T20:53:28.147387+00:00\",\"canceled\":null,\"modified\":\"2023-06-02T20:53:28.386158+00:00\",\"notify_end_types\":[\"expired\"],\"mute_first_recovery_notification\":false,\"notify_end_states\":[\"no data\",\"alert\",\"warn\"],\"monitor_identifier\":{\"monitor_tags\":[\"cat:hat\"]},\"schedule\":{\"end\":null,\"start\":\"2023-06-02T20:53:28.134493+00:00\"},\"scope\":\"test:testupdateadowntimereturnsokresponse1685739207\"},\"id\":\"865c7f20-0187-11ee-ac0a-da7ad0900002\",\"relationships\":{\"monitor\":{\"data\":null},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 02 Jun 2023 20:53:27 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/downtime/865c7f20-0187-11ee-ac0a-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Fri, 02 Jun 2023 20:53:27 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"message\":\"test message\",\"monitor_identifier\":{\"monitor_tags\":[\"cat:hat\"]},\"schedule\":{\"start\":null},\"scope\":\"test:testupdateadowntimereturnsokresponse1685739207\"},\"type\":\"downtime\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/downtime" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"downtime\",\"relationships\":{\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"monitor\":{\"data\":null}},\"id\":\"865c7f20-0187-11ee-ac0a-da7ad0900002\",\"attributes\":{\"monitor_identifier\":{\"monitor_tags\":[\"cat:hat\"]},\"status\":\"active\",\"message\":\"test message\",\"created\":\"2023-06-02T20:53:28.147387+00:00\",\"schedule\":{\"end\":null,\"start\":\"2023-06-02T20:53:28.134493+00:00\"},\"modified\":\"2023-06-02T20:53:28.147387+00:00\",\"display_timezone\":\"UTC\",\"mute_first_recovery_notification\":false,\"notify_end_states\":[\"no data\",\"warn\",\"alert\"],\"scope\":\"test:testupdateadowntimereturnsokresponse1685739207\",\"notify_end_types\":[\"expired\"],\"canceled\":null}},\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 02 Jun 2023 20:53:27 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"message\":\"light speed\"},\"id\":\"865c7f20-0187-11ee-ac0a-da7ad0900002\",\"type\":\"downtime\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/downtime/865c7f20-0187-11ee-ac0a-da7ad0900002" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"downtime\",\"attributes\":{\"display_timezone\":\"UTC\",\"status\":\"active\",\"message\":\"light speed\",\"created\":\"2023-06-02T20:53:28.147387+00:00\",\"canceled\":null,\"modified\":\"2023-06-02T20:53:28.386158+00:00\",\"notify_end_types\":[\"expired\"],\"mute_first_recovery_notification\":false,\"notify_end_states\":[\"no data\",\"alert\",\"warn\"],\"monitor_identifier\":{\"monitor_tags\":[\"cat:hat\"]},\"schedule\":{\"end\":null,\"start\":\"2023-06-02T20:53:28.134493+00:00\"},\"scope\":\"test:testupdateadowntimereturnsokresponse1685739207\"},\"id\":\"865c7f20-0187-11ee-ac0a-da7ad0900002\",\"relationships\":{\"monitor\":{\"data\":null},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 02 Jun 2023 20:53:27 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/downtime/865c7f20-0187-11ee-ac0a-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Fri, 02 Jun 2023 20:53:27 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/events/Get-a-list-of-events-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v2/events/Get-a-list-of-events-returns-OK-response-with-pagination.json index eae4b5b1d..bc26d4cef 100644 --- a/tests/scenarios/cassettes/v2/events/Get-a-list-of-events-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v2/events/Get-a-list-of-events-returns-OK-response-with-pagination.json @@ -1 +1,61 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/events?filter%5Bfrom%5D=now-15m&filter%5Bto%5D=now&page%5Blimit%5D=2"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWUdDRldoUV9BZHZQZ0FBQUFBQUFBQVlBQUFBQUVGWlIwTkdWMmhSUVVGQ1VIQk5UMjQxVURKZllVZzFTUUFBQUNRQUFBQUFNREU0TVRneU1UVXROekF5TUMwMFpXTTJMV0l3WVdJdFpEVTFZbU0zTlRZMlpUUTMifQ\"}},\"data\":[{\"attributes\":{\"attributes\":{\"status\":\"info\",\"event_object\":\"adip\",\"service\":\"undefined\",\"title\":\"[Synthetics] EVMGT pipeline test\",\"timestamp\":1655744852000,\"hostname\":\"do ani\",\"priority\":\"normal\",\"aggregation_key\":\"adip\",\"evt\":{\"source_id\":100,\"type\":\"api\",\"id\":\"6567977849972254562\"}},\"message\":\"Synthetics test check that this event has the right content in the right format at the end of the event-pipeline output\",\"tags\":[\"environment:staging\",\"source:my_apps\",\"source:my_apps\",\"environment:staging\"],\"timestamp\":\"2022-06-20T17:07:32Z\"},\"type\":\"event\",\"id\":\"AgAAAYGCFXAgIVFvPgAAAAAAAAAYAAAAAEFZR0NGWEFnQUFBeFhHdU9OeF91OEZjSwAAACQAAAAAMDE4MTgyMTUtNzAyMC00ZWM2LWIwYWItZDU1YmM3NTY2ZTQ3\"},{\"attributes\":{\"attributes\":{\"status\":\"info\",\"event_object\":\"adip\",\"service\":\"undefined\",\"title\":\"[Synthetics] EVMGT pipeline test\",\"timestamp\":1655744850000,\"hostname\":\"do ani\",\"priority\":\"normal\",\"aggregation_key\":\"adip\",\"evt\":{\"source_id\":100,\"type\":\"api\",\"id\":\"6567977820721297650\"}},\"message\":\"Synthetics test check that this event has the right content in the right format at the end of the event-pipeline output\",\"tags\":[\"environment:staging\",\"source:my_apps\",\"source:my_apps\",\"environment:staging\"],\"timestamp\":\"2022-06-20T17:07:30Z\"},\"type\":\"event\",\"id\":\"AgAAAYGCFWhQ_AdvPgAAAAAAAAAYAAAAAEFZR0NGV2hRQUFCUHBNT241UDJfYUg1SQAAACQAAAAAMDE4MTgyMTUtNzAyMC00ZWM2LWIwYWItZDU1YmM3NTY2ZTQ3\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/events?filter%5Bfrom%5D=now-15m&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWUdDRldoUV9BZHZQZ0FBQUFBQUFBQVlBQUFBQUVGWlIwTkdWMmhSUVVGQ1VIQk5UMjQxVURKZllVZzFTUUFBQUNRQUFBQUFNREU0TVRneU1UVXROekF5TUMwMFpXTTJMV0l3WVdJdFpEVTFZbU0zTlRZMlpUUTMifQ&page%5Blimit%5D=2\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 20 Jun 2022 17:08:51 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/events?filter%5Bfrom%5D=now-15m&filter%5Bto%5D=now&page%5Blimit%5D=2&page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWUdDRldoUV9BZHZQZ0FBQUFBQUFBQVlBQUFBQUVGWlIwTkdWMmhSUVVGQ1VIQk5UMjQxVURKZllVZzFTUUFBQUNRQUFBQUFNREU0TVRneU1UVXROekF5TUMwMFpXTTJMV0l3WVdJdFpEVTFZbU0zTlRZMlpUUTMifQ"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWUdDRlRXSTJoUnZQZ0FBQUFBQUFBQVlBQUFBQUVGWlIwTkdWRmRKUVVGRVVqbERWbEZ5ZEdoZlMxOXJRZ0FBQUNRQUFBQUFNREU0TVRneU1UVXRNelU0T0MwME1EZGhMV0V5TURndE1qUmxZekE1TmpVMVptTmkifQ\"}},\"data\":[{\"attributes\":{\"attributes\":{\"status\":\"info\",\"event_object\":\"adip\",\"service\":\"undefined\",\"title\":\"[Synthetics] EVMGT pipeline test\",\"timestamp\":1655744837000,\"hostname\":\"do ani\",\"priority\":\"normal\",\"aggregation_key\":\"adip\",\"evt\":{\"source_id\":100,\"type\":\"api\",\"id\":\"6567977596797486753\"}},\"message\":\"Synthetics test check that this event has the right content in the right format at the end of the event-pipeline output\",\"tags\":[\"environment:staging\",\"source:my_apps\",\"source:my_apps\",\"environment:staging\"],\"timestamp\":\"2022-06-20T17:07:17Z\"},\"type\":\"event\",\"id\":\"AgAAAYGCFTWI2hRvPgAAAAAAAAAYAAAAAEFZR0NGVFdJQUFEUjlDVlFydGhfS19rQgAAACQAAAAAMDE4MTgyMTUtMzU4OC00MDdhLWEyMDgtMjRlYzA5NjU1ZmNi\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/events?filter%5Bfrom%5D=now-15m&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWUdDRlRXSTJoUnZQZ0FBQUFBQUFBQVlBQUFBQUVGWlIwTkdWRmRKUVVGRVVqbERWbEZ5ZEdoZlMxOXJRZ0FBQUNRQUFBQUFNREU0TVRneU1UVXRNelU0T0MwME1EZGhMV0V5TURndE1qUmxZekE1TmpVMVptTmkifQ&page%5Blimit%5D=2\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 20 Jun 2022 17:08:51 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/events?filter%5Bfrom%5D=now-15m&filter%5Bto%5D=now&page%5Blimit%5D=2" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWUdDRldoUV9BZHZQZ0FBQUFBQUFBQVlBQUFBQUVGWlIwTkdWMmhSUVVGQ1VIQk5UMjQxVURKZllVZzFTUUFBQUNRQUFBQUFNREU0TVRneU1UVXROekF5TUMwMFpXTTJMV0l3WVdJdFpEVTFZbU0zTlRZMlpUUTMifQ\"}},\"data\":[{\"attributes\":{\"attributes\":{\"status\":\"info\",\"event_object\":\"adip\",\"service\":\"undefined\",\"title\":\"[Synthetics] EVMGT pipeline test\",\"timestamp\":1655744852000,\"hostname\":\"do ani\",\"priority\":\"normal\",\"aggregation_key\":\"adip\",\"evt\":{\"source_id\":100,\"type\":\"api\",\"id\":\"6567977849972254562\"}},\"message\":\"Synthetics test check that this event has the right content in the right format at the end of the event-pipeline output\",\"tags\":[\"environment:staging\",\"source:my_apps\",\"source:my_apps\",\"environment:staging\"],\"timestamp\":\"2022-06-20T17:07:32Z\"},\"type\":\"event\",\"id\":\"AgAAAYGCFXAgIVFvPgAAAAAAAAAYAAAAAEFZR0NGWEFnQUFBeFhHdU9OeF91OEZjSwAAACQAAAAAMDE4MTgyMTUtNzAyMC00ZWM2LWIwYWItZDU1YmM3NTY2ZTQ3\"},{\"attributes\":{\"attributes\":{\"status\":\"info\",\"event_object\":\"adip\",\"service\":\"undefined\",\"title\":\"[Synthetics] EVMGT pipeline test\",\"timestamp\":1655744850000,\"hostname\":\"do ani\",\"priority\":\"normal\",\"aggregation_key\":\"adip\",\"evt\":{\"source_id\":100,\"type\":\"api\",\"id\":\"6567977820721297650\"}},\"message\":\"Synthetics test check that this event has the right content in the right format at the end of the event-pipeline output\",\"tags\":[\"environment:staging\",\"source:my_apps\",\"source:my_apps\",\"environment:staging\"],\"timestamp\":\"2022-06-20T17:07:30Z\"},\"type\":\"event\",\"id\":\"AgAAAYGCFWhQ_AdvPgAAAAAAAAAYAAAAAEFZR0NGV2hRQUFCUHBNT241UDJfYUg1SQAAACQAAAAAMDE4MTgyMTUtNzAyMC00ZWM2LWIwYWItZDU1YmM3NTY2ZTQ3\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/events?filter%5Bfrom%5D=now-15m&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWUdDRldoUV9BZHZQZ0FBQUFBQUFBQVlBQUFBQUVGWlIwTkdWMmhSUVVGQ1VIQk5UMjQxVURKZllVZzFTUUFBQUNRQUFBQUFNREU0TVRneU1UVXROekF5TUMwMFpXTTJMV0l3WVdJdFpEVTFZbU0zTlRZMlpUUTMifQ&page%5Blimit%5D=2\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 20 Jun 2022 17:08:51 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/events?filter%5Bfrom%5D=now-15m&filter%5Bto%5D=now&page%5Blimit%5D=2&page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWUdDRldoUV9BZHZQZ0FBQUFBQUFBQVlBQUFBQUVGWlIwTkdWMmhSUVVGQ1VIQk5UMjQxVURKZllVZzFTUUFBQUNRQUFBQUFNREU0TVRneU1UVXROekF5TUMwMFpXTTJMV0l3WVdJdFpEVTFZbU0zTlRZMlpUUTMifQ" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWUdDRlRXSTJoUnZQZ0FBQUFBQUFBQVlBQUFBQUVGWlIwTkdWRmRKUVVGRVVqbERWbEZ5ZEdoZlMxOXJRZ0FBQUNRQUFBQUFNREU0TVRneU1UVXRNelU0T0MwME1EZGhMV0V5TURndE1qUmxZekE1TmpVMVptTmkifQ\"}},\"data\":[{\"attributes\":{\"attributes\":{\"status\":\"info\",\"event_object\":\"adip\",\"service\":\"undefined\",\"title\":\"[Synthetics] EVMGT pipeline test\",\"timestamp\":1655744837000,\"hostname\":\"do ani\",\"priority\":\"normal\",\"aggregation_key\":\"adip\",\"evt\":{\"source_id\":100,\"type\":\"api\",\"id\":\"6567977596797486753\"}},\"message\":\"Synthetics test check that this event has the right content in the right format at the end of the event-pipeline output\",\"tags\":[\"environment:staging\",\"source:my_apps\",\"source:my_apps\",\"environment:staging\"],\"timestamp\":\"2022-06-20T17:07:17Z\"},\"type\":\"event\",\"id\":\"AgAAAYGCFTWI2hRvPgAAAAAAAAAYAAAAAEFZR0NGVFdJQUFEUjlDVlFydGhfS19rQgAAACQAAAAAMDE4MTgyMTUtMzU4OC00MDdhLWEyMDgtMjRlYzA5NjU1ZmNi\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/events?filter%5Bfrom%5D=now-15m&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWUdDRlRXSTJoUnZQZ0FBQUFBQUFBQVlBQUFBQUVGWlIwTkdWRmRKUVVGRVVqbERWbEZ5ZEdoZlMxOXJRZ0FBQUNRQUFBQUFNREU0TVRneU1UVXRNelU0T0MwME1EZGhMV0V5TURndE1qUmxZekE1TmpVMVptTmkifQ&page%5Blimit%5D=2\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 20 Jun 2022 17:08:51 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/events/Get-a-list-of-events-returns-OK-response.json b/tests/scenarios/cassettes/v2/events/Get-a-list-of-events-returns-OK-response.json index 083a660f1..48a0e2f55 100644 --- a/tests/scenarios/cassettes/v2/events/Get-a-list-of-events-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/events/Get-a-list-of-events-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/events"}, "response": {"body": {"string": "{\"data\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 20 Jun 2022 13:43:50 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/events" + }, + "response": { + "body": { + "string": "{\"data\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 20 Jun 2022 13:43:50 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/events/Get-a-quick-list-of-events-returns-OK-response.json b/tests/scenarios/cassettes/v2/events/Get-a-quick-list-of-events-returns-OK-response.json index 2a4ff0085..43c7f4c10 100644 --- a/tests/scenarios/cassettes/v2/events/Get-a-quick-list-of-events-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/events/Get-a-quick-list-of-events-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/events?filter%5Bquery%5D=datadog-agent&filter%5Bfrom%5D=2020-09-17T11%3A48%3A36%2B01%3A00&filter%5Bto%5D=2020-09-17T12%3A48%3A36%2B01%3A00&page%5Blimit%5D=5"}, "response": {"body": {"string": "{\"data\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 20 Jun 2022 12:31:31 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/events?filter%5Bquery%5D=datadog-agent&filter%5Bfrom%5D=2020-09-17T11%3A48%3A36%2B01%3A00&filter%5Bto%5D=2020-09-17T12%3A48%3A36%2B01%3A00&page%5Blimit%5D=5" + }, + "response": { + "body": { + "string": "{\"data\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 20 Jun 2022 12:31:31 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/events/Search-events-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/events/Search-events-returns-Bad-Request-response.json index b2b2b1cf1..3a0a308fa 100644 --- a/tests/scenarios/cassettes/v2/events/Search-events-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/events/Search-events-returns-Bad-Request-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"filter\":{\"from\":\"now-15m\",\"query\":\"service:web* AND @http.status_code:[200 TO 299]\",\"to\":\"now\"},\"options\":{\"timezone\":\"GMT\"},\"page\":{\"cursor\":\"eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==\",\"limit\":25},\"sort\":\"timestamp\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/events/search"}, "response": {"body": {"string": "{\"errors\":[\"{'errors': [u\\\"input_validation_error(Field 'page' is invalid: invalid cursor)\\\"]}\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Mon, 20 Jun 2022 13:43:51 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"filter\":{\"from\":\"now-15m\",\"query\":\"service:web* AND @http.status_code:[200 TO 299]\",\"to\":\"now\"},\"options\":{\"timezone\":\"GMT\"},\"page\":{\"cursor\":\"eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==\",\"limit\":25},\"sort\":\"timestamp\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/events/search" + }, + "response": { + "body": { + "string": "{\"errors\":[\"{'errors': [u\\\"input_validation_error(Field 'page' is invalid: invalid cursor)\\\"]}\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Mon, 20 Jun 2022 13:43:51 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/events/Search-events-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v2/events/Search-events-returns-OK-response-with-pagination.json index 12aa1c612..381b0695f 100644 --- a/tests/scenarios/cassettes/v2/events/Search-events-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v2/events/Search-events-returns-OK-response-with-pagination.json @@ -1 +1,73 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"filter\":{\"from\":\"now-15m\",\"to\":\"now\"},\"options\":{\"timezone\":\"GMT\"},\"page\":{\"limit\":2},\"sort\":\"timestamp\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/events/search"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWUdDRldoUV9BZHZQZ0FBQUFBQUFBQVlBQUFBQUVGWlIwTkdWMmhSUVVGQ1VIQk5UMjQxVURKZllVZzFTUUFBQUNRQUFBQUFNREU0TVRneU1UVXROekF5TUMwMFpXTTJMV0l3WVdJdFpEVTFZbU0zTlRZMlpUUTMifQ\"}},\"data\":[{\"attributes\":{\"attributes\":{\"status\":\"info\",\"event_object\":\"adip\",\"service\":\"undefined\",\"title\":\"[Synthetics] EVMGT pipeline test\",\"timestamp\":1655744837000,\"hostname\":\"do ani\",\"priority\":\"normal\",\"aggregation_key\":\"adip\",\"evt\":{\"source_id\":100,\"type\":\"api\",\"id\":\"6567977596797486753\"}},\"message\":\"Synthetics test check that this event has the right content in the right format at the end of the event-pipeline output\",\"tags\":[\"environment:staging\",\"source:my_apps\",\"source:my_apps\",\"environment:staging\"],\"timestamp\":\"2022-06-20T17:07:17Z\"},\"type\":\"event\",\"id\":\"AgAAAYGCFTWI2hRvPgAAAAAAAAAYAAAAAEFZR0NGVFdJQUFEUjlDVlFydGhfS19rQgAAACQAAAAAMDE4MTgyMTUtMzU4OC00MDdhLWEyMDgtMjRlYzA5NjU1ZmNi\"},{\"attributes\":{\"attributes\":{\"status\":\"info\",\"event_object\":\"adip\",\"service\":\"undefined\",\"title\":\"[Synthetics] EVMGT pipeline test\",\"timestamp\":1655744850000,\"hostname\":\"do ani\",\"priority\":\"normal\",\"aggregation_key\":\"adip\",\"evt\":{\"source_id\":100,\"type\":\"api\",\"id\":\"6567977820721297650\"}},\"message\":\"Synthetics test check that this event has the right content in the right format at the end of the event-pipeline output\",\"tags\":[\"environment:staging\",\"source:my_apps\",\"source:my_apps\",\"environment:staging\"],\"timestamp\":\"2022-06-20T17:07:30Z\"},\"type\":\"event\",\"id\":\"AgAAAYGCFWhQ_AdvPgAAAAAAAAAYAAAAAEFZR0NGV2hRQUFCUHBNT241UDJfYUg1SQAAACQAAAAAMDE4MTgyMTUtNzAyMC00ZWM2LWIwYWItZDU1YmM3NTY2ZTQ3\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/events/search?filter%5Bfrom%5D=now-15m&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWUdDRldoUV9BZHZQZ0FBQUFBQUFBQVlBQUFBQUVGWlIwTkdWMmhSUVVGQ1VIQk5UMjQxVURKZllVZzFTUUFBQUNRQUFBQUFNREU0TVRneU1UVXROekF5TUMwMFpXTTJMV0l3WVdJdFpEVTFZbU0zTlRZMlpUUTMifQ&page%5Blimit%5D=2&sort=timestamp\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 20 Jun 2022 17:08:53 GMT"}, {"request": {"body": {"string": "{\"filter\":{\"from\":\"now-15m\",\"to\":\"now\"},\"options\":{\"timezone\":\"GMT\"},\"page\":{\"cursor\":\"eyJhZnRlciI6IkFnQUFBWUdDRldoUV9BZHZQZ0FBQUFBQUFBQVlBQUFBQUVGWlIwTkdWMmhSUVVGQ1VIQk5UMjQxVURKZllVZzFTUUFBQUNRQUFBQUFNREU0TVRneU1UVXROekF5TUMwMFpXTTJMV0l3WVdJdFpEVTFZbU0zTlRZMlpUUTMifQ\",\"limit\":2},\"sort\":\"timestamp\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/events/search"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWUdDRlhBZ0lWRnZQZ0FBQUFBQUFBQVlBQUFBQUVGWlIwTkdXRUZuUVVGQmVGaEhkVTlPZUY5MU9FWmpTd0FBQUNRQUFBQUFNREU0TVRneU1UVXROekF5TUMwMFpXTTJMV0l3WVdJdFpEVTFZbU0zTlRZMlpUUTMifQ\"}},\"data\":[{\"attributes\":{\"attributes\":{\"status\":\"info\",\"event_object\":\"adip\",\"service\":\"undefined\",\"title\":\"[Synthetics] EVMGT pipeline test\",\"timestamp\":1655744852000,\"hostname\":\"do ani\",\"priority\":\"normal\",\"aggregation_key\":\"adip\",\"evt\":{\"source_id\":100,\"type\":\"api\",\"id\":\"6567977849972254562\"}},\"message\":\"Synthetics test check that this event has the right content in the right format at the end of the event-pipeline output\",\"tags\":[\"environment:staging\",\"source:my_apps\",\"source:my_apps\",\"environment:staging\"],\"timestamp\":\"2022-06-20T17:07:32Z\"},\"type\":\"event\",\"id\":\"AgAAAYGCFXAgIVFvPgAAAAAAAAAYAAAAAEFZR0NGWEFnQUFBeFhHdU9OeF91OEZjSwAAACQAAAAAMDE4MTgyMTUtNzAyMC00ZWM2LWIwYWItZDU1YmM3NTY2ZTQ3\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/events/search?filter%5Bfrom%5D=now-15m&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWUdDRlhBZ0lWRnZQZ0FBQUFBQUFBQVlBQUFBQUVGWlIwTkdXRUZuUVVGQmVGaEhkVTlPZUY5MU9FWmpTd0FBQUNRQUFBQUFNREU0TVRneU1UVXROekF5TUMwMFpXTTJMV0l3WVdJdFpEVTFZbU0zTlRZMlpUUTMifQ&page%5Blimit%5D=2&sort=timestamp\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 20 Jun 2022 17:08:53 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"filter\":{\"from\":\"now-15m\",\"to\":\"now\"},\"options\":{\"timezone\":\"GMT\"},\"page\":{\"limit\":2},\"sort\":\"timestamp\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/events/search" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWUdDRldoUV9BZHZQZ0FBQUFBQUFBQVlBQUFBQUVGWlIwTkdWMmhSUVVGQ1VIQk5UMjQxVURKZllVZzFTUUFBQUNRQUFBQUFNREU0TVRneU1UVXROekF5TUMwMFpXTTJMV0l3WVdJdFpEVTFZbU0zTlRZMlpUUTMifQ\"}},\"data\":[{\"attributes\":{\"attributes\":{\"status\":\"info\",\"event_object\":\"adip\",\"service\":\"undefined\",\"title\":\"[Synthetics] EVMGT pipeline test\",\"timestamp\":1655744837000,\"hostname\":\"do ani\",\"priority\":\"normal\",\"aggregation_key\":\"adip\",\"evt\":{\"source_id\":100,\"type\":\"api\",\"id\":\"6567977596797486753\"}},\"message\":\"Synthetics test check that this event has the right content in the right format at the end of the event-pipeline output\",\"tags\":[\"environment:staging\",\"source:my_apps\",\"source:my_apps\",\"environment:staging\"],\"timestamp\":\"2022-06-20T17:07:17Z\"},\"type\":\"event\",\"id\":\"AgAAAYGCFTWI2hRvPgAAAAAAAAAYAAAAAEFZR0NGVFdJQUFEUjlDVlFydGhfS19rQgAAACQAAAAAMDE4MTgyMTUtMzU4OC00MDdhLWEyMDgtMjRlYzA5NjU1ZmNi\"},{\"attributes\":{\"attributes\":{\"status\":\"info\",\"event_object\":\"adip\",\"service\":\"undefined\",\"title\":\"[Synthetics] EVMGT pipeline test\",\"timestamp\":1655744850000,\"hostname\":\"do ani\",\"priority\":\"normal\",\"aggregation_key\":\"adip\",\"evt\":{\"source_id\":100,\"type\":\"api\",\"id\":\"6567977820721297650\"}},\"message\":\"Synthetics test check that this event has the right content in the right format at the end of the event-pipeline output\",\"tags\":[\"environment:staging\",\"source:my_apps\",\"source:my_apps\",\"environment:staging\"],\"timestamp\":\"2022-06-20T17:07:30Z\"},\"type\":\"event\",\"id\":\"AgAAAYGCFWhQ_AdvPgAAAAAAAAAYAAAAAEFZR0NGV2hRQUFCUHBNT241UDJfYUg1SQAAACQAAAAAMDE4MTgyMTUtNzAyMC00ZWM2LWIwYWItZDU1YmM3NTY2ZTQ3\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/events/search?filter%5Bfrom%5D=now-15m&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWUdDRldoUV9BZHZQZ0FBQUFBQUFBQVlBQUFBQUVGWlIwTkdWMmhSUVVGQ1VIQk5UMjQxVURKZllVZzFTUUFBQUNRQUFBQUFNREU0TVRneU1UVXROekF5TUMwMFpXTTJMV0l3WVdJdFpEVTFZbU0zTlRZMlpUUTMifQ&page%5Blimit%5D=2&sort=timestamp\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 20 Jun 2022 17:08:53 GMT" + }, + { + "request": { + "body": { + "string": "{\"filter\":{\"from\":\"now-15m\",\"to\":\"now\"},\"options\":{\"timezone\":\"GMT\"},\"page\":{\"cursor\":\"eyJhZnRlciI6IkFnQUFBWUdDRldoUV9BZHZQZ0FBQUFBQUFBQVlBQUFBQUVGWlIwTkdWMmhSUVVGQ1VIQk5UMjQxVURKZllVZzFTUUFBQUNRQUFBQUFNREU0TVRneU1UVXROekF5TUMwMFpXTTJMV0l3WVdJdFpEVTFZbU0zTlRZMlpUUTMifQ\",\"limit\":2},\"sort\":\"timestamp\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/events/search" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWUdDRlhBZ0lWRnZQZ0FBQUFBQUFBQVlBQUFBQUVGWlIwTkdXRUZuUVVGQmVGaEhkVTlPZUY5MU9FWmpTd0FBQUNRQUFBQUFNREU0TVRneU1UVXROekF5TUMwMFpXTTJMV0l3WVdJdFpEVTFZbU0zTlRZMlpUUTMifQ\"}},\"data\":[{\"attributes\":{\"attributes\":{\"status\":\"info\",\"event_object\":\"adip\",\"service\":\"undefined\",\"title\":\"[Synthetics] EVMGT pipeline test\",\"timestamp\":1655744852000,\"hostname\":\"do ani\",\"priority\":\"normal\",\"aggregation_key\":\"adip\",\"evt\":{\"source_id\":100,\"type\":\"api\",\"id\":\"6567977849972254562\"}},\"message\":\"Synthetics test check that this event has the right content in the right format at the end of the event-pipeline output\",\"tags\":[\"environment:staging\",\"source:my_apps\",\"source:my_apps\",\"environment:staging\"],\"timestamp\":\"2022-06-20T17:07:32Z\"},\"type\":\"event\",\"id\":\"AgAAAYGCFXAgIVFvPgAAAAAAAAAYAAAAAEFZR0NGWEFnQUFBeFhHdU9OeF91OEZjSwAAACQAAAAAMDE4MTgyMTUtNzAyMC00ZWM2LWIwYWItZDU1YmM3NTY2ZTQ3\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/events/search?filter%5Bfrom%5D=now-15m&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWUdDRlhBZ0lWRnZQZ0FBQUFBQUFBQVlBQUFBQUVGWlIwTkdXRUZuUVVGQmVGaEhkVTlPZUY5MU9FWmpTd0FBQUNRQUFBQUFNREU0TVRneU1UVXROekF5TUMwMFpXTTJMV0l3WVdJdFpEVTFZbU0zTlRZMlpUUTMifQ&page%5Blimit%5D=2&sort=timestamp\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 20 Jun 2022 17:08:53 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/events/Search-events-returns-OK-response.json b/tests/scenarios/cassettes/v2/events/Search-events-returns-OK-response.json index 0a9dc729a..38698f4f7 100644 --- a/tests/scenarios/cassettes/v2/events/Search-events-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/events/Search-events-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"filter\":{\"from\":\"2020-09-17T11:48:36+01:00\",\"query\":\"datadog-agent\",\"to\":\"2020-09-17T12:48:36+01:00\"},\"page\":{\"limit\":5},\"sort\":\"timestamp\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/events/search"}, "response": {"body": {"string": "{\"data\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 20 Jun 2022 12:31:32 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"filter\":{\"from\":\"2020-09-17T11:48:36+01:00\",\"query\":\"datadog-agent\",\"to\":\"2020-09-17T12:48:36+01:00\"},\"page\":{\"limit\":5},\"sort\":\"timestamp\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/events/search" + }, + "response": { + "body": { + "string": "{\"data\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 20 Jun 2022 12:31:32 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/fastly_integration/Add-Fastly-account-returns-CREATED-response.json b/tests/scenarios/cassettes/v2/fastly_integration/Add-Fastly-account-returns-CREATED-response.json index fa365e20b..3606277a5 100644 --- a/tests/scenarios/cassettes/v2/fastly_integration/Add-Fastly-account-returns-CREATED-response.json +++ b/tests/scenarios/cassettes/v2/fastly_integration/Add-Fastly-account-returns-CREATED-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"api_key\":\"TestAddFastlyaccountreturnsCREATEDresponse1674141356\",\"name\":\"Test-Add_Fastly_account_returns_CREATED_response-1674141356\",\"services\":[]},\"type\":\"fastly-accounts\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integrations/fastly/accounts"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"services\":[],\"name\":\"Test-Add_Fastly_account_returns_CREATED_response-1674141356\"},\"type\":\"fastly-accounts\",\"id\":\"0427b05b6f56f454ca1477aa8df5e75d\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 19 Jan 2023 15:15:56 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integrations/fastly/accounts/0427b05b6f56f454ca1477aa8df5e75d"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 19 Jan 2023 15:15:56 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"api_key\":\"TestAddFastlyaccountreturnsCREATEDresponse1674141356\",\"name\":\"Test-Add_Fastly_account_returns_CREATED_response-1674141356\",\"services\":[]},\"type\":\"fastly-accounts\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integrations/fastly/accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"attributes\":{\"services\":[],\"name\":\"Test-Add_Fastly_account_returns_CREATED_response-1674141356\"},\"type\":\"fastly-accounts\",\"id\":\"0427b05b6f56f454ca1477aa8df5e75d\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 19 Jan 2023 15:15:56 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integrations/fastly/accounts/0427b05b6f56f454ca1477aa8df5e75d" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 19 Jan 2023 15:15:56 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/fastly_integration/Get-Fastly-account-returns-OK-response.json b/tests/scenarios/cassettes/v2/fastly_integration/Get-Fastly-account-returns-OK-response.json index 1af728d7a..0c61417ad 100644 --- a/tests/scenarios/cassettes/v2/fastly_integration/Get-Fastly-account-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/fastly_integration/Get-Fastly-account-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"api_key\":\"TestGetFastlyaccountreturnsOKresponse1678702274\",\"name\":\"Test-Get_Fastly_account_returns_OK_response-1678702274\",\"services\":[]},\"type\":\"fastly-accounts\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integrations/fastly/accounts"}, "response": {"body": {"string": "{\"data\":{\"type\":\"fastly-accounts\",\"id\":\"6d8f2860f9f3e953fb46d554b9a19627\",\"attributes\":{\"services\":[],\"name\":\"Test-Get_Fastly_account_returns_OK_response-1678702274\"}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 13 Mar 2023 10:11:14 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/integrations/fastly/accounts/6d8f2860f9f3e953fb46d554b9a19627"}, "response": {"body": {"string": "{\"data\":{\"type\":\"fastly-accounts\",\"id\":\"6d8f2860f9f3e953fb46d554b9a19627\",\"attributes\":{\"name\":\"Test-Get_Fastly_account_returns_OK_response-1678702274\",\"services\":[]}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 13 Mar 2023 10:11:14 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integrations/fastly/accounts/6d8f2860f9f3e953fb46d554b9a19627"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 13 Mar 2023 10:11:14 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"api_key\":\"TestGetFastlyaccountreturnsOKresponse1678702274\",\"name\":\"Test-Get_Fastly_account_returns_OK_response-1678702274\",\"services\":[]},\"type\":\"fastly-accounts\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integrations/fastly/accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"fastly-accounts\",\"id\":\"6d8f2860f9f3e953fb46d554b9a19627\",\"attributes\":{\"services\":[],\"name\":\"Test-Get_Fastly_account_returns_OK_response-1678702274\"}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 13 Mar 2023 10:11:14 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/integrations/fastly/accounts/6d8f2860f9f3e953fb46d554b9a19627" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"fastly-accounts\",\"id\":\"6d8f2860f9f3e953fb46d554b9a19627\",\"attributes\":{\"name\":\"Test-Get_Fastly_account_returns_OK_response-1678702274\",\"services\":[]}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 13 Mar 2023 10:11:14 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integrations/fastly/accounts/6d8f2860f9f3e953fb46d554b9a19627" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 13 Mar 2023 10:11:14 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/fastly_integration/List-Fastly-accounts-returns-OK-response.json b/tests/scenarios/cassettes/v2/fastly_integration/List-Fastly-accounts-returns-OK-response.json index e322e188a..aa6cdf1d8 100644 --- a/tests/scenarios/cassettes/v2/fastly_integration/List-Fastly-accounts-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/fastly_integration/List-Fastly-accounts-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"api_key\":\"TestListFastlyaccountsreturnsOKresponse1678702250\",\"name\":\"Test-List_Fastly_accounts_returns_OK_response-1678702250\",\"services\":[]},\"type\":\"fastly-accounts\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integrations/fastly/accounts"}, "response": {"body": {"string": "{\"data\":{\"type\":\"fastly-accounts\",\"attributes\":{\"name\":\"Test-List_Fastly_accounts_returns_OK_response-1678702250\",\"services\":[]},\"id\":\"07ec97dd43cd794c847ecf15cb25eb1c\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 13 Mar 2023 10:10:50 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/integrations/fastly/accounts"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"fastly-accounts\",\"attributes\":{\"name\":\"Test-List_Fastly_accounts_returns_OK_response-1678702250\",\"services\":[]},\"id\":\"07ec97dd43cd794c847ecf15cb25eb1c\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 13 Mar 2023 10:10:50 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integrations/fastly/accounts/07ec97dd43cd794c847ecf15cb25eb1c"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 13 Mar 2023 10:10:50 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"api_key\":\"TestListFastlyaccountsreturnsOKresponse1678702250\",\"name\":\"Test-List_Fastly_accounts_returns_OK_response-1678702250\",\"services\":[]},\"type\":\"fastly-accounts\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integrations/fastly/accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"fastly-accounts\",\"attributes\":{\"name\":\"Test-List_Fastly_accounts_returns_OK_response-1678702250\",\"services\":[]},\"id\":\"07ec97dd43cd794c847ecf15cb25eb1c\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 13 Mar 2023 10:10:50 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/integrations/fastly/accounts" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"fastly-accounts\",\"attributes\":{\"name\":\"Test-List_Fastly_accounts_returns_OK_response-1678702250\",\"services\":[]},\"id\":\"07ec97dd43cd794c847ecf15cb25eb1c\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 13 Mar 2023 10:10:50 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integrations/fastly/accounts/07ec97dd43cd794c847ecf15cb25eb1c" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 13 Mar 2023 10:10:50 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/fastly_integration/Update-Fastly-account-returns-OK-response.json b/tests/scenarios/cassettes/v2/fastly_integration/Update-Fastly-account-returns-OK-response.json index f7b1c27d3..c85988bbb 100644 --- a/tests/scenarios/cassettes/v2/fastly_integration/Update-Fastly-account-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/fastly_integration/Update-Fastly-account-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"api_key\":\"TestUpdateFastlyaccountreturnsOKresponse1678702217\",\"name\":\"Test-Update_Fastly_account_returns_OK_response-1678702217\",\"services\":[]},\"type\":\"fastly-accounts\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integrations/fastly/accounts"}, "response": {"body": {"string": "{\"data\":{\"type\":\"fastly-accounts\",\"id\":\"e37e834ae856fa24a2924973fdc7c276\",\"attributes\":{\"services\":[],\"name\":\"Test-Update_Fastly_account_returns_OK_response-1678702217\"}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 13 Mar 2023 10:10:17 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"api_key\":\"update-secret\"},\"type\":\"fastly-accounts\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/integrations/fastly/accounts/e37e834ae856fa24a2924973fdc7c276"}, "response": {"body": {"string": "{\"data\":{\"type\":\"fastly-accounts\",\"id\":\"e37e834ae856fa24a2924973fdc7c276\",\"attributes\":{\"services\":[],\"name\":\"Test-Update_Fastly_account_returns_OK_response-1678702217\"}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 13 Mar 2023 10:10:17 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integrations/fastly/accounts/e37e834ae856fa24a2924973fdc7c276"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 13 Mar 2023 10:10:17 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"api_key\":\"TestUpdateFastlyaccountreturnsOKresponse1678702217\",\"name\":\"Test-Update_Fastly_account_returns_OK_response-1678702217\",\"services\":[]},\"type\":\"fastly-accounts\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integrations/fastly/accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"fastly-accounts\",\"id\":\"e37e834ae856fa24a2924973fdc7c276\",\"attributes\":{\"services\":[],\"name\":\"Test-Update_Fastly_account_returns_OK_response-1678702217\"}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 13 Mar 2023 10:10:17 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"api_key\":\"update-secret\"},\"type\":\"fastly-accounts\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/integrations/fastly/accounts/e37e834ae856fa24a2924973fdc7c276" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"fastly-accounts\",\"id\":\"e37e834ae856fa24a2924973fdc7c276\",\"attributes\":{\"services\":[],\"name\":\"Test-Update_Fastly_account_returns_OK_response-1678702217\"}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 13 Mar 2023 10:10:17 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integrations/fastly/accounts/e37e834ae856fa24a2924973fdc7c276" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 13 Mar 2023 10:10:17 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/gcp_integration/Create-a-Datadog-GCP-principal-returns-OK-response.json b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-Datadog-GCP-principal-returns-OK-response.json index c976c0d45..0102cee26 100644 --- a/tests/scenarios/cassettes/v2/gcp_integration/Create-a-Datadog-GCP-principal-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-Datadog-GCP-principal-returns-OK-response.json @@ -1 +1,36 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integration/gcp/sts_delegate"}, "response": {"body": {"string": "{\"data\":{\"type\":\"gcp_sts_delegate\",\"attributes\":{\"delegate_account_email\":\"ddgci-b5ee8760a0ff148b3056@datadog-cloud-ints-staging.iam.gserviceaccount.com\"},\"id\":\"ddgci-b5ee8760a0ff148b3056@datadog-cloud-ints-staging.iam.gserviceaccount.com\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 18 May 2023 15:02:26 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integration/gcp/sts_delegate" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"gcp_sts_delegate\",\"attributes\":{\"delegate_account_email\":\"ddgci-b5ee8760a0ff148b3056@datadog-cloud-ints-staging.iam.gserviceaccount.com\"},\"id\":\"ddgci-b5ee8760a0ff148b3056@datadog-cloud-ints-staging.iam.gserviceaccount.com\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 18 May 2023 15:02:26 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/gcp_integration/Create-a-Datadog-GCP-principal-with-empty-body-returns-OK-response.json b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-Datadog-GCP-principal-with-empty-body-returns-OK-response.json index 89a1b1cf4..264828c7a 100644 --- a/tests/scenarios/cassettes/v2/gcp_integration/Create-a-Datadog-GCP-principal-with-empty-body-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-Datadog-GCP-principal-with-empty-body-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integration/gcp/sts_delegate"}, "response": {"body": {"string": "{\"data\":{\"type\":\"gcp_sts_delegate\",\"attributes\":{\"delegate_account_email\":\"ddgci-b5ee8760a0ff148b3056@datadog-cloud-ints-staging.iam.gserviceaccount.com\"},\"id\":\"ddgci-b5ee8760a0ff148b3056@datadog-cloud-ints-staging.iam.gserviceaccount.com\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 25 May 2023 17:14:37 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integration/gcp/sts_delegate" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"gcp_sts_delegate\",\"attributes\":{\"delegate_account_email\":\"ddgci-b5ee8760a0ff148b3056@datadog-cloud-ints-staging.iam.gserviceaccount.com\"},\"id\":\"ddgci-b5ee8760a0ff148b3056@datadog-cloud-ints-staging.iam.gserviceaccount.com\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 25 May 2023 17:14:37 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-returns-OK-response.frozen index 979e986fc..d0b2586b7 100644 --- a/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-returns-OK-response.frozen @@ -1 +1 @@ -2023-09-29T12:39:55.710Z \ No newline at end of file +2024-03-11T19:47:20.859Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-returns-OK-response.json b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-returns-OK-response.json index 1e07a5eb6..2ebca87dd 100644 --- a/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-returns-OK-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"client_email\":\"80e3f00106389e6e@test-project.iam.gserviceaccount.com\",\"host_filters\":[]},\"type\":\"gcp_service_account\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts"}, "response": {"body": {"string": "{\"data\":{\"type\":\"gcp_service_account\",\"id\":\"d6c68645-2b52-43e9-838c-9b7fdb809a8d\",\"attributes\":{\"host_filters\":[],\"account_tags\":[],\"client_email\":\"80e3f00106389e6e@test-project.iam.gserviceaccount.com\",\"is_cspm_enabled\":false,\"automute\":false}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Fri, 29 Sep 2023 12:39:55 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts/d6c68645-2b52-43e9-838c-9b7fdb809a8d"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Fri, 29 Sep 2023 12:39:55 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"client_email\":\"Test-8b2b196dd4bab7e2@test-project.iam.gserviceaccount.com\",\"host_filters\":[]},\"type\":\"gcp_service_account\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"gcp_service_account\",\"attributes\":{\"client_email\":\"Test-8b2b196dd4bab7e2@test-project.iam.gserviceaccount.com\",\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"cloud_run_revision_filters\":[],\"automute\":false,\"is_cspm_enabled\":false,\"account_tags\":[],\"host_filters\":[]},\"id\":\"e6f0237e-b9c2-4513-9940-d2473502e39e\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 11 Mar 2024 19:47:20 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts/e6f0237e-b9c2-4513-9940-d2473502e39e" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 11 Mar 2024 19:47:20 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-account-tags-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-account-tags-returns-OK-response.frozen index 698bf7bbb..e7f3fa130 100644 --- a/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-account-tags-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-account-tags-returns-OK-response.frozen @@ -1 +1 @@ -2023-09-27T14:45:59.771Z \ No newline at end of file +2024-03-11T19:47:22.769Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-account-tags-returns-OK-response.json b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-account-tags-returns-OK-response.json index 8cef0f9e4..9925dbb82 100644 --- a/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-account-tags-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-account-tags-returns-OK-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"account_tags\":[\"lorem\",\"ipsum\"],\"client_email\":\"1f86730b653d0a57@test-project.iam.gserviceaccount.com\",\"host_filters\":[]},\"type\":\"gcp_service_account\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts"}, "response": {"body": {"string": "{\"data\":{\"type\":\"gcp_service_account\",\"attributes\":{\"host_filters\":[],\"client_email\":\"1f86730b653d0a57@test-project.iam.gserviceaccount.com\",\"is_cspm_enabled\":false,\"automute\":false,\"account_tags\":[\"lorem\",\"ipsum\"]},\"id\":\"1cdedba8-a0a3-4036-82b0-ad8088dd0c02\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Wed, 27 Sep 2023 14:45:59 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts/1cdedba8-a0a3-4036-82b0-ad8088dd0c02"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 27 Sep 2023 14:45:59 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"account_tags\":[\"lorem\",\"ipsum\"],\"client_email\":\"Test-e5f8eebedfc95a5e@test-project.iam.gserviceaccount.com\",\"host_filters\":[]},\"type\":\"gcp_service_account\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"gcp_service_account\",\"attributes\":{\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"account_tags\":[\"lorem\",\"ipsum\"],\"cloud_run_revision_filters\":[],\"is_security_command_center_enabled\":false,\"host_filters\":[],\"client_email\":\"Test-e5f8eebedfc95a5e@test-project.iam.gserviceaccount.com\",\"automute\":false},\"id\":\"62f1287b-89d6-414d-8b80-713208d91299\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 11 Mar 2024 19:47:22 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts/62f1287b-89d6-414d-8b80-713208d91299" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 11 Mar 2024 19:47:22 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-cloud-run-revision-filters-enabled-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-cloud-run-revision-filters-enabled-returns-OK-response.frozen new file mode 100644 index 000000000..e88267090 --- /dev/null +++ b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-cloud-run-revision-filters-enabled-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-03-11T19:47:23.464Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-cloud-run-revision-filters-enabled-returns-OK-response.json b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-cloud-run-revision-filters-enabled-returns-OK-response.json new file mode 100644 index 000000000..c01525266 --- /dev/null +++ b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-cloud-run-revision-filters-enabled-returns-OK-response.json @@ -0,0 +1,67 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"client_email\":\"Test-1701e5fecd52895c@test-project.iam.gserviceaccount.com\",\"cloud_run_revision_filters\":[\"meh:bleh\"],\"host_filters\":[]},\"type\":\"gcp_service_account\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"gcp_service_account\",\"id\":\"58054a77-4ee0-44a8-8260-4eec67ddcced\",\"attributes\":{\"is_cspm_enabled\":false,\"automute\":false,\"is_security_command_center_enabled\":false,\"client_email\":\"Test-1701e5fecd52895c@test-project.iam.gserviceaccount.com\",\"resource_collection_enabled\":false,\"account_tags\":[],\"host_filters\":[],\"cloud_run_revision_filters\":[\"meh:bleh\"]}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 11 Mar 2024 19:47:23 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts/58054a77-4ee0-44a8-8260-4eec67ddcced" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 11 Mar 2024 19:47:23 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-cspm-enabled-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-cspm-enabled-returns-OK-response.frozen index 007c9de4a..6cf241a0e 100644 --- a/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-cspm-enabled-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-cspm-enabled-returns-OK-response.frozen @@ -1 +1 @@ -2023-12-15T08:45:38.020Z \ No newline at end of file +2024-03-11T19:47:24.085Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-cspm-enabled-returns-OK-response.json b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-cspm-enabled-returns-OK-response.json index f52518999..b903bf0c6 100644 --- a/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-cspm-enabled-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-cspm-enabled-returns-OK-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"client_email\":\"9f53cbf93a21704b@test-project.iam.gserviceaccount.com\",\"host_filters\":[],\"is_cspm_enabled\":true,\"resource_collection_enabled\":true},\"type\":\"gcp_service_account\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts"}, "response": {"body": {"string": "{\"data\":{\"type\":\"gcp_service_account\",\"attributes\":{\"is_cspm_enabled\":true,\"account_tags\":[],\"host_filters\":[],\"resource_collection_enabled\":true,\"is_security_command_center_enabled\":false,\"client_email\":\"9f53cbf93a21704b@test-project.iam.gserviceaccount.com\",\"automute\":false},\"id\":\"cf3c6e32-dad2-452e-8c09-f34c5f2211a1\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Fri, 15 Dec 2023 08:45:38 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts/cf3c6e32-dad2-452e-8c09-f34c5f2211a1"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Fri, 15 Dec 2023 08:45:38 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"client_email\":\"Test-e7179b69d4d565ed@test-project.iam.gserviceaccount.com\",\"host_filters\":[],\"is_cspm_enabled\":true,\"resource_collection_enabled\":true},\"type\":\"gcp_service_account\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"gcp_service_account\",\"attributes\":{\"is_cspm_enabled\":true,\"host_filters\":[],\"resource_collection_enabled\":true,\"cloud_run_revision_filters\":[],\"client_email\":\"Test-e7179b69d4d565ed@test-project.iam.gserviceaccount.com\",\"automute\":false,\"is_security_command_center_enabled\":false,\"account_tags\":[]},\"id\":\"9d359745-b1c0-41ba-9624-db7abb36904b\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 11 Mar 2024 19:47:24 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts/9d359745-b1c0-41ba-9624-db7abb36904b" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 11 Mar 2024 19:47:24 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-resource-collection-enabled-disabled-and-cspm-enabled-returns-Bad-Request-response.frozen b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-resource-collection-enabled-disabled-and-cspm-enabled-returns-Bad-Request-response.frozen index aad0057ee..316d73f94 100644 --- a/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-resource-collection-enabled-disabled-and-cspm-enabled-returns-Bad-Request-response.frozen +++ b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-resource-collection-enabled-disabled-and-cspm-enabled-returns-Bad-Request-response.frozen @@ -1 +1 @@ -2023-12-13T21:29:09.936Z \ No newline at end of file +2024-03-11T19:47:24.676Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-resource-collection-enabled-disabled-and-cspm-enabled-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-resource-collection-enabled-disabled-and-cspm-enabled-returns-Bad-Request-response.json index 030ed8301..45d53ae48 100644 --- a/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-resource-collection-enabled-disabled-and-cspm-enabled-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-resource-collection-enabled-disabled-and-cspm-enabled-returns-Bad-Request-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"client_email\":\"328d5a676e7e2219@test-project.iam.gserviceaccount.com\",\"host_filters\":[],\"is_cspm_enabled\":true,\"resource_collection_enabled\":false},\"type\":\"gcp_service_account\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts"}, "response": {"body": {"string": "{\"errors\":[\"Resource Collection must be enabled for CSM to be enabled\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Wed, 13 Dec 2023 21:29:09 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"client_email\":\"Test-f92057aa6491025d@test-project.iam.gserviceaccount.com\",\"host_filters\":[],\"is_cspm_enabled\":true,\"resource_collection_enabled\":false},\"type\":\"gcp_service_account\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Resource Collection must be enabled for CSM to be enabled\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Mon, 11 Mar 2024 19:47:24 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-resource-collection-enabled-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-resource-collection-enabled-returns-OK-response.frozen index b48e4fe18..0d35fdedb 100644 --- a/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-resource-collection-enabled-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-resource-collection-enabled-returns-OK-response.frozen @@ -1 +1 @@ -2023-12-13T21:29:10.005Z \ No newline at end of file +2024-03-11T19:47:24.798Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-resource-collection-enabled-returns-OK-response.json b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-resource-collection-enabled-returns-OK-response.json index 5b7687c83..9f5c37d5e 100644 --- a/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-resource-collection-enabled-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-resource-collection-enabled-returns-OK-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"client_email\":\"c200eb5fe37e7d26@test-project.iam.gserviceaccount.com\",\"host_filters\":[],\"resource_collection_enabled\":true},\"type\":\"gcp_service_account\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts"}, "response": {"body": {"string": "{\"data\":{\"type\":\"gcp_service_account\",\"attributes\":{\"automute\":false,\"is_security_command_center_enabled\":false,\"host_filters\":[],\"client_email\":\"c200eb5fe37e7d26@test-project.iam.gserviceaccount.com\",\"resource_collection_enabled\":true,\"account_tags\":[],\"is_cspm_enabled\":false},\"id\":\"e0e0b030-aba8-4eff-bcf2-7d4266d0d7fd\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Wed, 13 Dec 2023 21:29:10 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts/e0e0b030-aba8-4eff-bcf2-7d4266d0d7fd"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 13 Dec 2023 21:29:10 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"client_email\":\"Test-c8176325bf516421@test-project.iam.gserviceaccount.com\",\"host_filters\":[],\"resource_collection_enabled\":true},\"type\":\"gcp_service_account\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"gcp_service_account\",\"attributes\":{\"is_cspm_enabled\":false,\"automute\":false,\"cloud_run_revision_filters\":[],\"host_filters\":[],\"is_security_command_center_enabled\":false,\"account_tags\":[],\"resource_collection_enabled\":true,\"client_email\":\"Test-c8176325bf516421@test-project.iam.gserviceaccount.com\"},\"id\":\"584395b0-91b7-4ac0-83b2-3259a49ea34f\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 11 Mar 2024 19:47:24 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts/584395b0-91b7-4ac0-83b2-3259a49ea34f" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 11 Mar 2024 19:47:24 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-security-command-center-enabled-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-security-command-center-enabled-returns-OK-response.frozen index a70b525b6..cf5d8b554 100644 --- a/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-security-command-center-enabled-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-security-command-center-enabled-returns-OK-response.frozen @@ -1 +1 @@ -2023-12-13T21:29:10.722Z \ No newline at end of file +2024-03-11T19:47:25.315Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-security-command-center-enabled-returns-OK-response.json b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-security-command-center-enabled-returns-OK-response.json index c0e64b068..a0216bce4 100644 --- a/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-security-command-center-enabled-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/gcp_integration/Create-a-new-entry-for-your-service-account-with-security-command-center-enabled-returns-OK-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"client_email\":\"bce3b7c65fce9a71@test-project.iam.gserviceaccount.com\",\"host_filters\":[],\"is_security_command_center_enabled\":true},\"type\":\"gcp_service_account\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts"}, "response": {"body": {"string": "{\"data\":{\"type\":\"gcp_service_account\",\"attributes\":{\"automute\":false,\"account_tags\":[],\"host_filters\":[],\"client_email\":\"bce3b7c65fce9a71@test-project.iam.gserviceaccount.com\",\"is_security_command_center_enabled\":true,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false},\"id\":\"e72611ce-c7eb-4411-bc0e-04fa12a8cb6c\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Wed, 13 Dec 2023 21:29:10 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts/e72611ce-c7eb-4411-bc0e-04fa12a8cb6c"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 13 Dec 2023 21:29:10 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"client_email\":\"Test-48d87b38c858a0ef@test-project.iam.gserviceaccount.com\",\"host_filters\":[],\"is_security_command_center_enabled\":true},\"type\":\"gcp_service_account\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"gcp_service_account\",\"attributes\":{\"host_filters\":[],\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"cloud_run_revision_filters\":[],\"client_email\":\"Test-48d87b38c858a0ef@test-project.iam.gserviceaccount.com\",\"account_tags\":[],\"is_security_command_center_enabled\":true,\"automute\":false},\"id\":\"0edb7a57-bd74-49da-ba0c-77d3cc756950\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 11 Mar 2024 19:47:25 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts/0edb7a57-bd74-49da-ba0c-77d3cc756950" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 11 Mar 2024 19:47:25 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/gcp_integration/List-all-GCP-STS-enabled-service-accounts-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/gcp_integration/List-all-GCP-STS-enabled-service-accounts-returns-OK-response.frozen index 59c26a965..7118c9bc2 100644 --- a/tests/scenarios/cassettes/v2/gcp_integration/List-all-GCP-STS-enabled-service-accounts-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v2/gcp_integration/List-all-GCP-STS-enabled-service-accounts-returns-OK-response.frozen @@ -1 +1 @@ -2023-06-16T14:06:34.123Z \ No newline at end of file +2024-03-11T19:47:25.917Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/gcp_integration/List-all-GCP-STS-enabled-service-accounts-returns-OK-response.json b/tests/scenarios/cassettes/v2/gcp_integration/List-all-GCP-STS-enabled-service-accounts-returns-OK-response.json index 0b4981b03..af6fb7549 100644 --- a/tests/scenarios/cassettes/v2/gcp_integration/List-all-GCP-STS-enabled-service-accounts-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/gcp_integration/List-all-GCP-STS-enabled-service-accounts-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"client_email\":\"94b5da11cdec906f@example.com\",\"host_filters\":[]},\"type\":\"gcp_service_account\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts"}, "response": {"body": {"string": "{\"data\":{\"type\":\"gcp_service_account\",\"attributes\":{\"is_cspm_enabled\":false,\"automute\":false,\"client_email\":\"94b5da11cdec906f@example.com\",\"host_filters\":[]},\"id\":\"4c69f9f2-ab71-4f67-8932-6322579d6dc6\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Fri, 16 Jun 2023 14:06:34 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"gcp_service_account\",\"meta\":{\"accessible_projects\":[]},\"attributes\":{\"is_cspm_enabled\":false,\"client_email\":\"datadog-service-account@test-project.iam.gserviceaccount.com\",\"host_filters\":[],\"automute\":false},\"id\":\"3acadf04-13a2-4422-995b-1b8780dd23e6\"},{\"type\":\"gcp_service_account\",\"meta\":{\"accessible_projects\":[]},\"attributes\":{\"is_cspm_enabled\":false,\"client_email\":\"5347bd1ea052f252@test-project.iam.gserviceaccount.com\",\"host_filters\":[],\"automute\":false},\"id\":\"bfef2d23-0d85-4735-850a-c8f77407bcda\"},{\"type\":\"gcp_service_account\",\"meta\":{\"accessible_projects\":[]},\"attributes\":{\"is_cspm_enabled\":false,\"client_email\":\"df737fa467ada2aa@test-project.iam.gserviceaccount.com\",\"host_filters\":[],\"automute\":false},\"id\":\"c5f0a5fc-a1d1-4216-b0dc-7a97c4c0ddd6\"},{\"type\":\"gcp_service_account\",\"meta\":{\"accessible_projects\":[]},\"attributes\":{\"is_cspm_enabled\":false,\"client_email\":\"d970387cabc4467d@example.com\",\"host_filters\":[],\"automute\":false},\"id\":\"a3c40eff-1275-4a5b-97f1-1af3d53911e2\"},{\"type\":\"gcp_service_account\",\"meta\":{\"accessible_projects\":[]},\"attributes\":{\"is_cspm_enabled\":false,\"client_email\":\"f220355227f75a91@example.com\",\"host_filters\":[],\"automute\":false},\"id\":\"aa745f71-a36d-4653-90c1-c00798256bea\"},{\"type\":\"gcp_service_account\",\"meta\":{\"accessible_projects\":[]},\"attributes\":{\"is_cspm_enabled\":false,\"client_email\":\"94b5da11cdec906f@example.com\",\"host_filters\":[],\"automute\":false},\"id\":\"4c69f9f2-ab71-4f67-8932-6322579d6dc6\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 16 Jun 2023 14:06:34 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts/4c69f9f2-ab71-4f67-8932-6322579d6dc6"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Fri, 16 Jun 2023 14:06:34 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"client_email\":\"Test-bd3cfbaa8e662e9c@example.com\",\"host_filters\":[]},\"type\":\"gcp_service_account\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"gcp_service_account\",\"attributes\":{\"automute\":false,\"cloud_run_revision_filters\":[],\"is_cspm_enabled\":false,\"account_tags\":[],\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"client_email\":\"Test-bd3cfbaa8e662e9c@example.com\",\"host_filters\":[]},\"id\":\"f13432c1-353c-42d2-bcdd-6b535baf2c6b\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 11 Mar 2024 19:47:25 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"example-service-account@static-test-email.datadoghq.com\"},\"id\":\"2596b31f-4e6c-4d42-8df1-ee76dadf6bc7\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"187567668125ec65_1709791417@example.com\"},\"id\":\"34d4ecf8-e8e6-43cf-947f-4d0245bba1ee\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"e6c5436be66c06a6@test-project.iam.gserviceaccount.com\"},\"id\":\"45113458-8ab4-4111-b3e4-95ea6ac192c1\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"c4ad5a99cf7ffde4@test-project.iam.gserviceaccount.com\"},\"id\":\"3464c171-5e56-4466-9172-2b1d17f32b34\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[\"meh:bleh\"],\"automute\":false,\"account_tags\":[],\"client_email\":\"068400b85cd893c1@test-project.iam.gserviceaccount.com\"},\"id\":\"3d071308-d9bd-47f1-845e-7b12588131ef\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[\"merp:derp\"],\"automute\":false,\"account_tags\":[],\"client_email\":\"c7af83955eccd7a5_1710043232@example.com\"},\"id\":\"b10aa3fb-3c90-4111-8dec-c52e89501f6c\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[\"lorem\",\"ipsum\"],\"client_email\":\"7ecf31f03ee7ae2c@test-project.iam.gserviceaccount.com\"},\"id\":\"af51c993-5b07-43ec-84a8-2c3720818588\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[\"lorem\",\"ipsum\"],\"client_email\":\"eb67e49305fe222b_1709921006@test-project.iam.gserviceaccount.com\"},\"id\":\"8f0b790b-6f68-46ac-83d3-5adcfb84ca47\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":true,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"b492dabd8a30fbb8@test-project.iam.gserviceaccount.com\"},\"id\":\"d0ff9676-7852-45ed-bdf4-867956d101eb\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":true,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"08c9559e80fc3b89@test-project.iam.gserviceaccount.com\"},\"id\":\"c18e97c4-3d47-4c91-a082-a439a8b08f72\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"8c22d202126f7039@test-project.iam.gserviceaccount.com\"},\"id\":\"005a94a3-215f-4d89-b17b-53806308dc92\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"30069f88b2fa87bc@test-project.iam.gserviceaccount.com\"},\"id\":\"e90d31c9-d0a2-44f8-ba2f-26f130c8fd54\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[\"meh:bleh\"],\"automute\":false,\"account_tags\":[],\"client_email\":\"5b2abbbf5cf3178d@test-project.iam.gserviceaccount.com\"},\"id\":\"61a40e52-c78f-43de-b537-ccac9aeeb740\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"934d17353d9ad878@example.com\"},\"id\":\"76d0a9c2-6dfa-43fe-b4ef-2f74ff30e2dc\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"0d59d038c81393af_1710180209@test-project.iam.gserviceaccount.com\"},\"id\":\"c035ad26-066c-42b7-9cda-139f6f8e5b0c\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[\"lorem\",\"ipsum\"],\"client_email\":\"17fc11d04db7bab3@test-project.iam.gserviceaccount.com\"},\"id\":\"6e329517-c39b-42ce-9ccc-14ae4e4344c1\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"a18090579602565c_1710180228@test-project.iam.gserviceaccount.com\"},\"id\":\"d3452923-a0a4-44bf-b24c-48e462be351e\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"service-account@iam-service-google.com\"},\"id\":\"35636117-c773-4a19-92aa-bf26f08c19c8\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"0d59d038c81393af_1710050610@test-project.iam.gserviceaccount.com\"},\"id\":\"0fc9d206-40a9-4a89-829c-90576a1645af\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":true,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"4a8fdb7ff3a9490d_1710050623@test-project.iam.gserviceaccount.com\"},\"id\":\"01f2b8c6-75b8-4ae6-bb56-010b7ee7ec13\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":true,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"f427b1576583da8b@test-project.iam.gserviceaccount.com\"},\"id\":\"5108ab24-8db2-464c-9fdd-c2d44b9231b3\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[\"lorem\",\"ipsum\"],\"client_email\":\"eb67e49305fe222b_1709993006@test-project.iam.gserviceaccount.com\"},\"id\":\"a3676325-b1c8-4750-9903-ff0173b33973\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"0d59d038c81393af_1709748209@test-project.iam.gserviceaccount.com\"},\"id\":\"627119e7-8d06-4bd5-9dea-c071a6f5190c\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"a18090579602565c_1709935431@test-project.iam.gserviceaccount.com\"},\"id\":\"28413658-4724-49fb-a9ee-f83ca2bff971\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[\"foo:bar\"],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"c55e4905f4ea06f7_1709373818@example.com\"},\"id\":\"bef26a45-3c5b-49f7-8a51-283451aa2b29\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[\"lorem\",\"ipsum\"],\"client_email\":\"Test-e5f8eebedfc95a5e@test-project.iam.gserviceaccount.com\"},\"id\":\"62f1287b-89d6-414d-8b80-713208d91299\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"Test-c8176325bf516421@test-project.iam.gserviceaccount.com\"},\"id\":\"584395b0-91b7-4ac0-83b2-3259a49ea34f\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":true,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"Test-48d87b38c858a0ef@test-project.iam.gserviceaccount.com\"},\"id\":\"0edb7a57-bd74-49da-ba0c-77d3cc756950\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"Test-bd3cfbaa8e662e9c@example.com\"},\"id\":\"f13432c1-353c-42d2-bcdd-6b535baf2c6b\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"276af15de14e5c19@test-project.iam.gserviceaccount.com\"},\"id\":\"3c6bc165-a35a-4d40-9a3f-9fa1a42d2efb\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"189c5087132e3354@test-project.iam.gserviceaccount.com\"},\"id\":\"ad8a0506-3034-40f7-adf5-1a2a99b2e5cb\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[\"lorem\",\"ipsum\"],\"client_email\":\"f28613b0e6b1a969@test-project.iam.gserviceaccount.com\"},\"id\":\"76a956f4-955d-4079-baaf-62b7f515f5e6\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[\"meh:bleh\"],\"automute\":false,\"account_tags\":[],\"client_email\":\"e85cd4af47bc5b8f_1709812832@test-project.iam.gserviceaccount.com\"},\"id\":\"be208bd5-ddba-445e-8d73-b75045283bb0\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[\"lorem\",\"ipsum\"],\"client_email\":\"04ddfacf9efcc1bd@test-project.iam.gserviceaccount.com\"},\"id\":\"e485b787-234f-4a23-9960-9ac361ac46a0\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"da8d72278fe1d2a1@test-project.iam.gserviceaccount.com\"},\"id\":\"25204ea4-a6f0-4195-bc56-1b2487cc1ead\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":true,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"4ef62d1716094f4a@test-project.iam.gserviceaccount.com\"},\"id\":\"2fa93a40-9d1a-4699-8ccb-b216f46bddf4\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"44eac2ba7a7651e6@test-project.iam.gserviceaccount.com\"},\"id\":\"e99f7053-0cd9-47fb-893f-4eca62cdfc81\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":true,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"102753916d24109d@test-project.iam.gserviceaccount.com\"},\"id\":\"beefe1c5-103b-47bf-abee-fbf94960e1cf\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":true,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"14b5305a9b1ed176@test-project.iam.gserviceaccount.com\"},\"id\":\"54d490d5-8837-4c9c-b83c-80327ca90168\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"2172d124c0606f4f@test-project.iam.gserviceaccount.com\"},\"id\":\"c5534322-ede4-4749-9c1a-f35e8471bbe7\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[\"meh:bleh\"],\"automute\":false,\"account_tags\":[],\"client_email\":\"4713ec0096515bed@test-project.iam.gserviceaccount.com\"},\"id\":\"86c293bb-5d82-4229-a8f8-8ea32dd21046\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[\"lorem\",\"ipsum\"],\"client_email\":\"1ecfb5aec5e00f39@test-project.iam.gserviceaccount.com\"},\"id\":\"51890bde-d482-4d5a-abbe-b14cbe40f4db\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":true,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"7848a82a0fe98917@test-project.iam.gserviceaccount.com\"},\"id\":\"e919a192-f87d-4a2e-8d2f-73353ac22ffc\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":true,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"3e800ded14d13465@test-project.iam.gserviceaccount.com\"},\"id\":\"ef8bcbb5-c313-421c-b495-e1b299ff9cf2\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[\"lorem\",\"ipsum\"],\"client_email\":\"5f9b7739b74dda84@test-project.iam.gserviceaccount.com\"},\"id\":\"1df2979b-8e83-41b9-a503-e2a01a61066f\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"7693467192436dbe@test-project.iam.gserviceaccount.com\"},\"id\":\"fe5739c5-0155-45c8-9293-60c0106cf5ec\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"9534f9bd684944aa@test-project.iam.gserviceaccount.com\"},\"id\":\"038d0dc8-a24e-4d66-8b12-ae3c92173500\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[\"meh:bleh\"],\"automute\":false,\"account_tags\":[],\"client_email\":\"20ee848e08935ddd@test-project.iam.gserviceaccount.com\"},\"id\":\"a31e9694-806a-4b42-8a21-d5a5057b816a\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"3ceda3e3f06399de_1709345029@example.com\"},\"id\":\"2687f000-d448-4b86-9619-315e14a0bcb1\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[\"lorem\",\"ipsum\"],\"client_email\":\"eb67e49305fe222b_1710065006@test-project.iam.gserviceaccount.com\"},\"id\":\"debd4133-a46b-4426-9ea8-da0b24e8139b\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"0d59d038c81393af_1710065008@test-project.iam.gserviceaccount.com\"},\"id\":\"7a88b578-9562-46b3-bd1f-1197e30a5de7\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"a18090579602565c_1710065032@test-project.iam.gserviceaccount.com\"},\"id\":\"ebd23f03-9987-42f9-a85e-5776e2d1f4b5\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"a18090579602565c_1710007428@test-project.iam.gserviceaccount.com\"},\"id\":\"01caa1a8-b6e6-406a-914f-eb63a0308e6e\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"187567668125ec65_1709575417@example.com\"},\"id\":\"78b151a4-d948-4066-bc82-613dc06d13f6\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"d822132e43502a2f@test-project.iam.gserviceaccount.com\"},\"id\":\"9b9e1460-609c-4523-bf27-8e5835783395\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[\"lorem\",\"ipsum\"],\"client_email\":\"256023502919a626@test-project.iam.gserviceaccount.com\"},\"id\":\"5d907b45-bd20-4ee2-b4d3-d8a9a12168a9\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":true,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"579353cd037b75fc@test-project.iam.gserviceaccount.com\"},\"id\":\"29268104-c207-4107-a97f-abe0cc21f1de\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"f4699e487ba43362@test-project.iam.gserviceaccount.com\"},\"id\":\"3d22aa58-558c-458b-bb62-7854ee6603f9\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":true,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"f485721b1d7586a7@test-project.iam.gserviceaccount.com\"},\"id\":\"4f1a87ee-f962-4c6b-818f-6522d84cf1a1\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[\"foo:bar\"],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"c55e4905f4ea06f7_1709388218@example.com\"},\"id\":\"b6eb2295-8e16-45e5-905c-14375832e14b\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"3ceda3e3f06399de_1709388228@example.com\"},\"id\":\"9cc17fff-6339-41a1-a344-e3d592cabf78\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"0d59d038c81393af_1709877810@test-project.iam.gserviceaccount.com\"},\"id\":\"9609a5ee-79d5-4d6f-bbab-f15bf9a83cee\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[\"meh:bleh\"],\"automute\":false,\"account_tags\":[],\"client_email\":\"e85cd4af47bc5b8f_1710129632@test-project.iam.gserviceaccount.com\"},\"id\":\"046ed8de-9594-4cbd-a1dd-f5ea70cde036\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[\"meh:bleh\"],\"automute\":false,\"account_tags\":[],\"client_email\":\"89a4c2b52519b23a@test-project.iam.gserviceaccount.com\"},\"id\":\"16cb9efc-591d-4fe4-a85d-6b06e068bd4b\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[\"meh:bleh\"],\"automute\":false,\"account_tags\":[],\"client_email\":\"97e229ddc4fa0dc2@test-project.iam.gserviceaccount.com\"},\"id\":\"6814879c-924c-4c41-8d54-e3994e3f51c3\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"d83494a7ced9af6d@test-project.iam.gserviceaccount.com\"},\"id\":\"815a5821-86e0-4a9c-bd19-ec6153b9f176\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":true,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"8d7b10f275780ced@test-project.iam.gserviceaccount.com\"},\"id\":\"30761b4f-3987-4b98-8d0c-05b76e0ab969\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"fa8ee3c284e1f046@test-project.iam.gserviceaccount.com\"},\"id\":\"eeb404bd-3149-4a57-8abe-a5f8c4720587\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":true,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"f1e0759b1019cb6e@test-project.iam.gserviceaccount.com\"},\"id\":\"9d6c6bab-462d-40b7-bccb-51082369bbb9\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[\"lorem\",\"ipsum\"],\"client_email\":\"165a0199b6fff3d8@test-project.iam.gserviceaccount.com\"},\"id\":\"6ed6023e-71c2-4797-8822-e26bfc526bc9\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"e4d3f99f0d1b5389@test-project.iam.gserviceaccount.com\"},\"id\":\"c8dc8b69-dfa0-4450-b769-b9c6097aa0c6\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"e9279b991ee878e7@test-project.iam.gserviceaccount.com\"},\"id\":\"01c9e47b-12db-48d7-804f-da8a806b082e\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[\"lorem\",\"ipsum\"],\"client_email\":\"77cc184eab46d770@test-project.iam.gserviceaccount.com\"},\"id\":\"401c1495-7318-4930-9ba3-34313051bf63\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":true,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"660c1a9f45521b4d@test-project.iam.gserviceaccount.com\"},\"id\":\"15da8700-2a86-41b1-8362-cd68a9c9f2e1\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":true,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"aaa63907b86565c5@test-project.iam.gserviceaccount.com\"},\"id\":\"5df9bb5b-2909-4e40-9dbc-17db2e3d982b\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"ba9cb6633177c711@test-project.iam.gserviceaccount.com\"},\"id\":\"0035e4f6-413e-49e4-89d5-d26e764a4042\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"f3e7b8c638fe5361@test-project.iam.gserviceaccount.com\"},\"id\":\"e9dc3572-fbcd-48e2-816f-b464203875f4\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[\"lorem\",\"ipsum\"],\"client_email\":\"98ad3e9d52dd86a2@test-project.iam.gserviceaccount.com\"},\"id\":\"d84a5412-f780-4b6e-8a03-2939682576b1\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"9b637fe30dccca2f@test-project.iam.gserviceaccount.com\"},\"id\":\"f1960d2f-dc7b-435d-85bc-d717e536118c\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"4d5939ca800918a7@test-project.iam.gserviceaccount.com\"},\"id\":\"8cfbba44-feef-4bdd-bc83-99d9c9d67eaa\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[\"lorem\",\"ipsum\"],\"client_email\":\"eb67e49305fe222b_1709949806@test-project.iam.gserviceaccount.com\"},\"id\":\"a50f6f24-cda6-4721-af6b-58231c9f4d0a\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"0d59d038c81393af_1709949808@test-project.iam.gserviceaccount.com\"},\"id\":\"45db83b5-1d25-4c1b-8a61-424350f3ec33\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"3ceda3e3f06399de_1709949829@example.com\"},\"id\":\"27afb1dc-b5a4-41e7-86bf-75f4b52e31e4\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":true,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"4bbd0fe5af4ee5d2@test-project.iam.gserviceaccount.com\"},\"id\":\"438abad4-1ef4-43fb-a091-8e6ddc8adb98\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"d11e260aa813b831@test-project.iam.gserviceaccount.com\"},\"id\":\"2712d5e7-6473-4b58-a316-76f537564c58\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"d045f0b54614200d@test-project.iam.gserviceaccount.com\"},\"id\":\"d782d6b4-ea3c-48f1-82c3-ef62df30fb0d\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[\"lorem\",\"ipsum\"],\"client_email\":\"4415614b6b34a833@test-project.iam.gserviceaccount.com\"},\"id\":\"64e3e721-6a5c-4d3d-8b5b-f64d6947d3cd\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[\"meh:bleh\"],\"automute\":false,\"account_tags\":[],\"client_email\":\"10a6c233e22bf3ba@test-project.iam.gserviceaccount.com\"},\"id\":\"9d1e7d9a-daa5-4e6a-a151-4bbba616eea4\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":true,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"977705d92b08037a@test-project.iam.gserviceaccount.com\"},\"id\":\"9dd31d08-1c16-46f6-ac3b-519dac06f116\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[\"lorem\",\"ipsum\"],\"client_email\":\"5caaac75b3f3e806@test-project.iam.gserviceaccount.com\"},\"id\":\"d83760bf-14d9-45e2-95e6-0b6d431b395c\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":true,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"4a3da5951d4ef2d5@test-project.iam.gserviceaccount.com\"},\"id\":\"98aac727-fbc4-4fef-a142-84777b048b4b\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"1f2d4fb5bd426b61@test-project.iam.gserviceaccount.com\"},\"id\":\"cbdaea02-5aee-48df-8faf-1da3e26fd976\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[\"lorem\",\"ipsum\"],\"client_email\":\"c0a7fb4aa3cb9b8b@test-project.iam.gserviceaccount.com\"},\"id\":\"da3b483f-0de1-4ba9-a2c8-fec9155865fd\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[\"meh:bleh\"],\"automute\":false,\"account_tags\":[],\"client_email\":\"831ffc3586eadc33@test-project.iam.gserviceaccount.com\"},\"id\":\"cd63ae12-0e33-4869-8d1c-429cea099704\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"9ef923d67e74c33f@test-project.iam.gserviceaccount.com\"},\"id\":\"02ce870a-2351-4c27-b92b-057a3feddf25\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":true,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"75a14f9e2df7e018@test-project.iam.gserviceaccount.com\"},\"id\":\"4d593903-15c8-4e3d-84d3-48b37fa71c46\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[\"foo:bar\"],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"c55e4905f4ea06f7_1709460218@example.com\"},\"id\":\"66f350ed-9043-4712-9bd4-7cc091178e9d\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":true,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"81053c7a12fa055a_1710137018@test-project.iam.gserviceaccount.com\"},\"id\":\"f59c53fd-374c-4e2d-aca2-0a5ccb198c05\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"3ceda3e3f06399de_1710021829@example.com\"},\"id\":\"d959786a-c0eb-4699-8548-6bebca8115ff\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[\"lorem\",\"ipsum\"],\"client_email\":\"eb67e49305fe222b_1710079406@test-project.iam.gserviceaccount.com\"},\"id\":\"69ed6a13-3fcf-4868-bbbb-8d751f9718c8\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"0d59d038c81393af_1710079411@test-project.iam.gserviceaccount.com\"},\"id\":\"5ba23a25-c8f1-40fe-b601-7d09b233ab76\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"dbc82aa53b3eb1ed@test-project.iam.gserviceaccount.com\"},\"id\":\"d3f2f2d9-e25b-4527-810e-b09cc021e513\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":true,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"81053c7a12fa055a_1710079418@test-project.iam.gserviceaccount.com\"},\"id\":\"139165ca-858b-4a6b-a1f6-4bb58fad4331\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[\"meh:bleh\"],\"automute\":false,\"account_tags\":[],\"client_email\":\"8b7ed0e1cfe00f06@test-project.iam.gserviceaccount.com\"},\"id\":\"a7d8e033-14c5-4b3f-9e4f-795c5d55b605\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":true,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"822b3f9b1839a363@test-project.iam.gserviceaccount.com\"},\"id\":\"8523809c-0cd9-4170-9b8a-f69ae09da0e7\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":true,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"4a8fdb7ff3a9490d_1710079429@test-project.iam.gserviceaccount.com\"},\"id\":\"c1d72660-48aa-4232-ab79-f0ab7d998d7b\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":true,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"4a8fdb7ff3a9490d_1709892225@test-project.iam.gserviceaccount.com\"},\"id\":\"400f03cb-fab3-45e0-b86f-1db93d33d0ba\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"187567668125ec65_1709647418@example.com\"},\"id\":\"8b1d4bb9-d775-44d9-ad18-de2499e76609\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"e147621f6a46ac79@test-project.iam.gserviceaccount.com\"},\"id\":\"bc8186e8-7d4c-49fe-bd42-0bc54bf9109f\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[\"meh:bleh\"],\"automute\":false,\"account_tags\":[],\"client_email\":\"e85cd4af47bc5b8f_1709956832@test-project.iam.gserviceaccount.com\"},\"id\":\"46575ae9-9d15-43d3-91c8-3e31861ead27\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":true,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"255ce49d83b5d4ae@test-project.iam.gserviceaccount.com\"},\"id\":\"2cc0092a-16eb-4399-b28a-40e08d9c7bd6\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":true,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"ba47015c23d33d17@test-project.iam.gserviceaccount.com\"},\"id\":\"129ac722-30d1-47cd-8b0d-d163f866d5fa\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[\"meh:bleh\"],\"automute\":false,\"account_tags\":[],\"client_email\":\"a7ae55d97e09ed16@test-project.iam.gserviceaccount.com\"},\"id\":\"d5a78eb6-f734-46e3-8fdc-378c2dfedf0a\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[\"lorem\",\"ipsum\"],\"client_email\":\"b10d0cc263e003ee@test-project.iam.gserviceaccount.com\"},\"id\":\"04c3c170-ed2c-4838-934f-3369c5fdb839\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[\"meh:bleh\"],\"automute\":false,\"account_tags\":[],\"client_email\":\"03c63adda6c14daf@test-project.iam.gserviceaccount.com\"},\"id\":\"5871664d-534f-4d84-931b-187cbfdefa0f\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"6ce5f91942f91a28@test-project.iam.gserviceaccount.com\"},\"id\":\"bfae3820-90c0-4625-806d-630f6c07229f\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[\"meh:bleh\"],\"automute\":false,\"account_tags\":[],\"client_email\":\"e85cd4af47bc5b8f_1710144032@test-project.iam.gserviceaccount.com\"},\"id\":\"0044546f-4286-448c-83e5-4b7b7480b9ba\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"c7773f356fa3c2ec@test-project.iam.gserviceaccount.com\"},\"id\":\"7ed7f4f4-5611-436c-a2a9-040d75ef0d74\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[\"lorem\",\"ipsum\"],\"client_email\":\"3385b20c3283628b@test-project.iam.gserviceaccount.com\"},\"id\":\"14188312-6893-4c5e-b81c-e10453fd9ac5\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":true,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"3245cb39c6c0a9f0@test-project.iam.gserviceaccount.com\"},\"id\":\"16950a04-6372-4127-b0bd-64b062063f04\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":true,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"97bc20bd135b5bb1@test-project.iam.gserviceaccount.com\"},\"id\":\"a969cddb-8ac7-4b51-925f-9cce4044a2ad\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[\"lorem\",\"ipsum\"],\"client_email\":\"93951800085749be@test-project.iam.gserviceaccount.com\"},\"id\":\"12f0ae3d-f0f5-469c-91d1-fa8b9525ace0\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[\"meh:bleh\"],\"automute\":false,\"account_tags\":[],\"client_email\":\"71e6bb71baeb84cb@test-project.iam.gserviceaccount.com\"},\"id\":\"23acb474-3270-4d36-a02f-d273ae02496f\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":true,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"8ca6dc251731eb94@test-project.iam.gserviceaccount.com\"},\"id\":\"eadc4cde-d6a2-4119-b875-1cf6349b92e9\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"8553d0d59f8b8946@test-project.iam.gserviceaccount.com\"},\"id\":\"95c2c08d-7cea-45be-88a7-c35519d398f7\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":true,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"5a5cb9168fe96bb4@test-project.iam.gserviceaccount.com\"},\"id\":\"ebda1ec2-7d49-45c4-91bd-ba01eae73737\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"a18090579602565c_1709777029@test-project.iam.gserviceaccount.com\"},\"id\":\"3f1c1cc6-1d7e-463f-8d2e-7592e7094e60\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"d9d8d84a72b4970a@test-project.iam.gserviceaccount.com\"},\"id\":\"0eb0c0b7-831e-4450-9101-2df9cbb32b0b\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":true,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"d13a5061afd96e21@test-project.iam.gserviceaccount.com\"},\"id\":\"55375565-fae8-4f74-9639-14d1b3d9212f\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"61f2098ddca4184e@test-project.iam.gserviceaccount.com\"},\"id\":\"f83a5206-7b50-4bc0-a0a6-ee4b5e408669\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":true,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"65290b4e8d391144@test-project.iam.gserviceaccount.com\"},\"id\":\"53d2499b-1bac-4edb-94ce-739aa553343e\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[\"meh:bleh\"],\"automute\":false,\"account_tags\":[],\"client_email\":\"8f77a7040e8ad397@test-project.iam.gserviceaccount.com\"},\"id\":\"801be630-1f7b-4468-8bc1-817c30f83844\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"b3c5f28a39b5b530@test-project.iam.gserviceaccount.com\"},\"id\":\"b8aa8485-447b-4433-8789-93c360e848b9\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[\"foo:bar\"],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"c55e4905f4ea06f7_1709532221@example.com\"},\"id\":\"000a20f1-c366-407e-af73-492df87d4edc\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[\"lorem\",\"ipsum\"],\"client_email\":\"eb67e49305fe222b_1710151406@test-project.iam.gserviceaccount.com\"},\"id\":\"b6ee6615-60ab-4e62-86f6-19436bdb4b30\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":true,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"81053c7a12fa055a_1709964220@test-project.iam.gserviceaccount.com\"},\"id\":\"0b7fbeda-412d-4bf4-80ad-61759a7001c1\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":true,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"81053c7a12fa055a_1710151419@test-project.iam.gserviceaccount.com\"},\"id\":\"c91e403f-882f-4fba-a516-371b640ffab6\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[\"foo:bar\"],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"c55e4905f4ea06f7_1709964228@example.com\"},\"id\":\"a7388014-30c6-4fb9-a66d-e4e240a79295\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[\"foo:bar\"],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"c55e4905f4ea06f7_1710151419@example.com\"},\"id\":\"9c7e62d7-0d3e-434d-9f47-e5ee1d01e23b\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"a18090579602565c_1710151432@test-project.iam.gserviceaccount.com\"},\"id\":\"4e6bf9b9-a133-4e6a-b627-f8e5de66a150\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"125d926e72bc482d@test-project.iam.gserviceaccount.com\"},\"id\":\"d45dd8b3-3aaf-4a69-b8fa-c85b5a329ac7\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":true,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"2faa268f9e4a34d9@test-project.iam.gserviceaccount.com\"},\"id\":\"ed67f1e7-b35d-40b5-9b6b-9475b0c1c144\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"6d9bfe2d508ad2db@test-project.iam.gserviceaccount.com\"},\"id\":\"0a3586be-7a72-48ec-bdd0-e5d939e37b5f\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":true,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"0cd95cbec49d1848@test-project.iam.gserviceaccount.com\"},\"id\":\"0af36885-e2f3-4b51-be01-46bc222b9531\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"187567668125ec65_1709719416@example.com\"},\"id\":\"eb69f279-59f0-4ccf-81ab-f755e8ded0a4\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":true,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"4a8fdb7ff3a9490d_1710093823@test-project.iam.gserviceaccount.com\"},\"id\":\"c16bd8c1-84df-4622-863e-0125a1eedbc1\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"f510e209b0c13e36@test-project.iam.gserviceaccount.com\"},\"id\":\"7679f63d-9e47-4177-9816-c97c4bf48188\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":true,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"4f4242fb59de0a95@test-project.iam.gserviceaccount.com\"},\"id\":\"82035d51-3160-467b-815b-a867804a232d\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"88c287c8b4d43322@test-project.iam.gserviceaccount.com\"},\"id\":\"0b1b5834-43cc-4a40-8508-69b28bdbd127\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":true,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"56aeaea512158869@test-project.iam.gserviceaccount.com\"},\"id\":\"127559b5-0e0c-454e-a9f3-d9db825a63ca\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"3ceda3e3f06399de_1709906628@example.com\"},\"id\":\"5f3b69ed-71b2-4690-9ffd-981ea376e98a\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[\"merp:derp\"],\"automute\":false,\"account_tags\":[],\"client_email\":\"c7af83955eccd7a5_1709784032@example.com\"},\"id\":\"efff8d16-ba2e-4cee-972c-f8a0d2eb7ec3\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[\"merp:derp\"],\"automute\":false,\"account_tags\":[],\"client_email\":\"c7af83955eccd7a5_1709971232@example.com\"},\"id\":\"7a769578-479d-4c9f-80af-078199b179c0\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":true,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"85d10f780007bba5@test-project.iam.gserviceaccount.com\"},\"id\":\"ecbdccfa-e8b5-4923-a786-bb1ce9d2213b\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":true,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"89ebe8818e38b678@test-project.iam.gserviceaccount.com\"},\"id\":\"ca34e161-1486-4c02-83c1-b67e52291ae6\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"a4927b1207c5a19d@test-project.iam.gserviceaccount.com\"},\"id\":\"020f78d8-ab0d-4674-b962-2830622d426a\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"9c0c4085ba3b7473@test-project.iam.gserviceaccount.com\"},\"id\":\"4ac9fbfe-c87b-4e34-970f-816566354114\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"5b8e5bb3c333a8ee@test-project.iam.gserviceaccount.com\"},\"id\":\"13f5e6e1-719d-4de0-b8fb-37fbb42104a1\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[\"meh:bleh\"],\"automute\":false,\"account_tags\":[],\"client_email\":\"ddba1ab7ff6ff921@test-project.iam.gserviceaccount.com\"},\"id\":\"f46902f7-c2fc-4144-9c3d-5e40f4820533\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"77d44d4570ad1b11@test-project.iam.gserviceaccount.com\"},\"id\":\"c534c6c1-64f8-4a1b-8ac0-a4b1244fe312\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[\"meh:bleh\"],\"automute\":false,\"account_tags\":[],\"client_email\":\"e85cd4af47bc5b8f_1710158432@test-project.iam.gserviceaccount.com\"},\"id\":\"729261a4-e94f-4adf-8b2b-3ab82fa1db21\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[\"lorem\",\"ipsum\"],\"client_email\":\"eb67e49305fe222b_1710036206@test-project.iam.gserviceaccount.com\"},\"id\":\"41351665-5f5b-4756-bfb7-0bc41b90a935\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"6373b5e236588b9e@test-project.iam.gserviceaccount.com\"},\"id\":\"341ac872-12b9-41bf-8e84-6a0479914e01\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[\"merp:derp\"],\"automute\":false,\"account_tags\":[],\"client_email\":\"c7af83955eccd7a5_1710100832@example.com\"},\"id\":\"9d9935e7-5819-4d3a-bd7d-71fa593e8500\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"983567004d8234d3@test-project.iam.gserviceaccount.com\"},\"id\":\"2969651c-5b92-428d-abb0-8c2760e81b68\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[\"lorem\",\"ipsum\"],\"client_email\":\"6fa60234d560a441@test-project.iam.gserviceaccount.com\"},\"id\":\"a390c6ab-ab4f-493a-97bd-89bff4c2d145\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[\"meh:bleh\"],\"automute\":false,\"account_tags\":[],\"client_email\":\"63b5c282df4e62f7@test-project.iam.gserviceaccount.com\"},\"id\":\"9f3d35d3-0978-42e0-8fe4-c12e3e8ba3f2\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":true,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"d9c3523a6d88fb3b@test-project.iam.gserviceaccount.com\"},\"id\":\"64ed556e-3f44-4688-87cb-473ed77c44ab\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":true,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"d2a6fbb67fbd2c87@test-project.iam.gserviceaccount.com\"},\"id\":\"6abfb2d7-dbf0-44cc-a72d-595f95629210\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":true,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"1de41933252dbfc8@test-project.iam.gserviceaccount.com\"},\"id\":\"7864a515-7dbb-45a8-b3d9-feda3fc0efc5\",\"meta\":{\"accessible_projects\":[]}},{\"type\":\"gcp_service_account\",\"attributes\":{\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"host_filters\":[\"foo:bar\"],\"cloud_run_revision_filters\":[],\"automute\":false,\"account_tags\":[],\"client_email\":\"6bc50c526257abc2@example.com\"},\"id\":\"e1da4fe5-697a-4252-aa9f-8179178710c4\",\"meta\":{\"accessible_projects\":[]}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 11 Mar 2024 19:47:25 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts/f13432c1-353c-42d2-bcdd-6b535baf2c6b" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 11 Mar 2024 19:47:25 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/gcp_integration/List-delegate-account-returns-OK-response.json b/tests/scenarios/cassettes/v2/gcp_integration/List-delegate-account-returns-OK-response.json index 3db236cae..f469746ca 100644 --- a/tests/scenarios/cassettes/v2/gcp_integration/List-delegate-account-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/gcp_integration/List-delegate-account-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/integration/gcp/sts_delegate"}, "response": {"body": {"string": "{\"data\":{\"type\":\"gcp_sts_delegate\",\"attributes\":{\"delegate_account_email\":\"ddgci-d427c1b4a96cca3986b2@datadog-gci-sts-us1-prod.iam.gserviceaccount.com\"},\"id\":\"ddgci-d427c1b4a96cca3986b2@datadog-gci-sts-us1-prod.iam.gserviceaccount.com\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 23 May 2023 13:50:44 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/integration/gcp/sts_delegate" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"gcp_sts_delegate\",\"attributes\":{\"delegate_account_email\":\"ddgci-d427c1b4a96cca3986b2@datadog-gci-sts-us1-prod.iam.gserviceaccount.com\"},\"id\":\"ddgci-d427c1b4a96cca3986b2@datadog-gci-sts-us1-prod.iam.gserviceaccount.com\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 23 May 2023 13:50:44 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/gcp_integration/Update-STS-Service-Account-returns-OK-response-with-cloud-run-revision-filters.frozen b/tests/scenarios/cassettes/v2/gcp_integration/Update-STS-Service-Account-returns-OK-response-with-cloud-run-revision-filters.frozen new file mode 100644 index 000000000..f5ddf4de7 --- /dev/null +++ b/tests/scenarios/cassettes/v2/gcp_integration/Update-STS-Service-Account-returns-OK-response-with-cloud-run-revision-filters.frozen @@ -0,0 +1 @@ +2024-03-11T19:47:29.154Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/gcp_integration/Update-STS-Service-Account-returns-OK-response-with-cloud-run-revision-filters.json b/tests/scenarios/cassettes/v2/gcp_integration/Update-STS-Service-Account-returns-OK-response-with-cloud-run-revision-filters.json new file mode 100644 index 000000000..06d764651 --- /dev/null +++ b/tests/scenarios/cassettes/v2/gcp_integration/Update-STS-Service-Account-returns-OK-response-with-cloud-run-revision-filters.json @@ -0,0 +1,101 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"client_email\":\"Test-28b4739ba68f588b@example.com\",\"host_filters\":[]},\"type\":\"gcp_service_account\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"gcp_service_account\",\"attributes\":{\"resource_collection_enabled\":false,\"cloud_run_revision_filters\":[],\"account_tags\":[],\"is_cspm_enabled\":false,\"is_security_command_center_enabled\":false,\"automute\":false,\"host_filters\":[],\"client_email\":\"Test-28b4739ba68f588b@example.com\"},\"id\":\"73f227e1-939b-42e3-bb40-773a05509e52\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 11 Mar 2024 19:47:29 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"client_email\":\"Test-28b4739ba68f588b@example.com\",\"cloud_run_revision_filters\":[\"merp:derp\"]},\"id\":\"73f227e1-939b-42e3-bb40-773a05509e52\",\"type\":\"gcp_service_account\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts/73f227e1-939b-42e3-bb40-773a05509e52" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"gcp_service_account\",\"id\":\"73f227e1-939b-42e3-bb40-773a05509e52\",\"attributes\":{\"is_cspm_enabled\":false,\"automute\":false,\"is_security_command_center_enabled\":false,\"client_email\":\"Test-28b4739ba68f588b@example.com\",\"resource_collection_enabled\":false,\"account_tags\":[],\"host_filters\":[],\"cloud_run_revision_filters\":[\"merp:derp\"]}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 11 Mar 2024 19:47:29 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts/73f227e1-939b-42e3-bb40-773a05509e52" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 11 Mar 2024 19:47:29 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/gcp_integration/Update-STS-Service-Account-returns-OK-response-with-enable-resource-collection-turned-on.frozen b/tests/scenarios/cassettes/v2/gcp_integration/Update-STS-Service-Account-returns-OK-response-with-enable-resource-collection-turned-on.frozen index bb19b1444..feb305a2a 100644 --- a/tests/scenarios/cassettes/v2/gcp_integration/Update-STS-Service-Account-returns-OK-response-with-enable-resource-collection-turned-on.frozen +++ b/tests/scenarios/cassettes/v2/gcp_integration/Update-STS-Service-Account-returns-OK-response-with-enable-resource-collection-turned-on.frozen @@ -1 +1 @@ -2023-12-13T21:29:11.135Z \ No newline at end of file +2024-03-11T19:47:30.251Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/gcp_integration/Update-STS-Service-Account-returns-OK-response-with-enable-resource-collection-turned-on.json b/tests/scenarios/cassettes/v2/gcp_integration/Update-STS-Service-Account-returns-OK-response-with-enable-resource-collection-turned-on.json index 7239baa62..90f5ae485 100644 --- a/tests/scenarios/cassettes/v2/gcp_integration/Update-STS-Service-Account-returns-OK-response-with-enable-resource-collection-turned-on.json +++ b/tests/scenarios/cassettes/v2/gcp_integration/Update-STS-Service-Account-returns-OK-response-with-enable-resource-collection-turned-on.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"client_email\":\"78489d28e3cca21b@example.com\",\"host_filters\":[]},\"type\":\"gcp_service_account\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts"}, "response": {"body": {"string": "{\"data\":{\"type\":\"gcp_service_account\",\"attributes\":{\"client_email\":\"78489d28e3cca21b@example.com\",\"host_filters\":[],\"account_tags\":[],\"is_cspm_enabled\":false,\"automute\":false,\"is_security_command_center_enabled\":false,\"resource_collection_enabled\":false},\"id\":\"1ce480d7-4006-418e-b627-167af0586d7e\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Wed, 13 Dec 2023 21:29:11 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"client_email\":\"78489d28e3cca21b@example.com\",\"resource_collection_enabled\":true},\"id\":\"1ce480d7-4006-418e-b627-167af0586d7e\",\"type\":\"gcp_service_account\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts/1ce480d7-4006-418e-b627-167af0586d7e"}, "response": {"body": {"string": "{\"data\":{\"type\":\"gcp_service_account\",\"attributes\":{\"resource_collection_enabled\":true,\"is_security_command_center_enabled\":false,\"automute\":false,\"account_tags\":[],\"host_filters\":[],\"client_email\":\"78489d28e3cca21b@example.com\",\"is_cspm_enabled\":false},\"id\":\"1ce480d7-4006-418e-b627-167af0586d7e\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Wed, 13 Dec 2023 21:29:11 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts/1ce480d7-4006-418e-b627-167af0586d7e"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 13 Dec 2023 21:29:11 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"client_email\":\"Test-d84cfa9edd1d6635@example.com\",\"host_filters\":[]},\"type\":\"gcp_service_account\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"gcp_service_account\",\"id\":\"3d7cef2d-c455-48c2-ba50-cd8091978dd6\",\"attributes\":{\"account_tags\":[],\"automute\":false,\"client_email\":\"Test-d84cfa9edd1d6635@example.com\",\"resource_collection_enabled\":false,\"cloud_run_revision_filters\":[],\"is_cspm_enabled\":false,\"host_filters\":[],\"is_security_command_center_enabled\":false}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 11 Mar 2024 19:47:30 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"client_email\":\"Test-d84cfa9edd1d6635@example.com\",\"resource_collection_enabled\":true},\"id\":\"3d7cef2d-c455-48c2-ba50-cd8091978dd6\",\"type\":\"gcp_service_account\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts/3d7cef2d-c455-48c2-ba50-cd8091978dd6" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"gcp_service_account\",\"attributes\":{\"host_filters\":[],\"is_security_command_center_enabled\":false,\"client_email\":\"Test-d84cfa9edd1d6635@example.com\",\"cloud_run_revision_filters\":[],\"is_cspm_enabled\":false,\"automute\":false,\"resource_collection_enabled\":true,\"account_tags\":[]},\"id\":\"3d7cef2d-c455-48c2-ba50-cd8091978dd6\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 11 Mar 2024 19:47:30 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts/3d7cef2d-c455-48c2-ba50-cd8091978dd6" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 11 Mar 2024 19:47:30 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/gcp_integration/Update-STS-Service-Account-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/gcp_integration/Update-STS-Service-Account-returns-OK-response.frozen index 5fb9e744a..3a863a3c3 100644 --- a/tests/scenarios/cassettes/v2/gcp_integration/Update-STS-Service-Account-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v2/gcp_integration/Update-STS-Service-Account-returns-OK-response.frozen @@ -1 +1 @@ -2023-06-16T14:07:02.873Z \ No newline at end of file +2024-03-11T19:47:26.953Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/gcp_integration/Update-STS-Service-Account-returns-OK-response.json b/tests/scenarios/cassettes/v2/gcp_integration/Update-STS-Service-Account-returns-OK-response.json index fcedcb13a..70d9401eb 100644 --- a/tests/scenarios/cassettes/v2/gcp_integration/Update-STS-Service-Account-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/gcp_integration/Update-STS-Service-Account-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"client_email\":\"89e7e1c05bdec66f@example.com\",\"host_filters\":[]},\"type\":\"gcp_service_account\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts"}, "response": {"body": {"string": "{\"data\":{\"type\":\"gcp_service_account\",\"attributes\":{\"client_email\":\"89e7e1c05bdec66f@example.com\",\"host_filters\":[],\"automute\":false,\"is_cspm_enabled\":false},\"id\":\"91cde1ef-1da8-4340-9563-5b491f1176a7\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Fri, 16 Jun 2023 14:07:02 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"client_email\":\"89e7e1c05bdec66f@example.com\",\"host_filters\":[\"foo:bar\"]},\"id\":\"91cde1ef-1da8-4340-9563-5b491f1176a7\",\"type\":\"gcp_service_account\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts/91cde1ef-1da8-4340-9563-5b491f1176a7"}, "response": {"body": {"string": "{\"data\":{\"type\":\"gcp_service_account\",\"id\":\"91cde1ef-1da8-4340-9563-5b491f1176a7\",\"attributes\":{\"client_email\":\"89e7e1c05bdec66f@example.com\",\"is_cspm_enabled\":false,\"automute\":false,\"host_filters\":[\"foo:bar\"]}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Fri, 16 Jun 2023 14:07:02 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts/91cde1ef-1da8-4340-9563-5b491f1176a7"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Fri, 16 Jun 2023 14:07:02 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"client_email\":\"Test-159c92b6b06abd9d@example.com\",\"host_filters\":[]},\"type\":\"gcp_service_account\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"gcp_service_account\",\"attributes\":{\"resource_collection_enabled\":false,\"is_security_command_center_enabled\":false,\"cloud_run_revision_filters\":[],\"is_cspm_enabled\":false,\"client_email\":\"Test-159c92b6b06abd9d@example.com\",\"automute\":false,\"account_tags\":[],\"host_filters\":[]},\"id\":\"acd4d936-fba6-4b2f-8b46-768389ff90b1\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 11 Mar 2024 19:47:26 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"client_email\":\"Test-159c92b6b06abd9d@example.com\",\"host_filters\":[\"foo:bar\"]},\"id\":\"acd4d936-fba6-4b2f-8b46-768389ff90b1\",\"type\":\"gcp_service_account\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts/acd4d936-fba6-4b2f-8b46-768389ff90b1" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"gcp_service_account\",\"attributes\":{\"is_cspm_enabled\":false,\"resource_collection_enabled\":false,\"account_tags\":[],\"cloud_run_revision_filters\":[],\"is_security_command_center_enabled\":false,\"host_filters\":[\"foo:bar\"],\"client_email\":\"Test-159c92b6b06abd9d@example.com\",\"automute\":false},\"id\":\"acd4d936-fba6-4b2f-8b46-768389ff90b1\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 11 Mar 2024 19:47:26 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integration/gcp/accounts/acd4d936-fba6-4b2f-8b46-768389ff90b1" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 11 Mar 2024 19:47:26 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incident_services/Create-a-new-incident-service-returns-CREATED-response.json b/tests/scenarios/cassettes/v2/incident_services/Create-a-new-incident-service-returns-CREATED-response.json index b08304a37..67c6ccf47 100644 --- a/tests/scenarios/cassettes/v2/incident_services/Create-a-new-incident-service-returns-CREATED-response.json +++ b/tests/scenarios/cassettes/v2/incident_services/Create-a-new-incident-service-returns-CREATED-response.json @@ -1 +1,63 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_a_new_incident_service_returns_CREATED_response-1652349089\"},\"type\":\"services\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/services"}, "response": {"body": {"string": "{\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}],\"data\":{\"type\":\"services\",\"id\":\"aa4526fd-8084-58a0-bd52-164cd7f1a51e\",\"attributes\":{\"name\":\"Test-Create_a_new_incident_service_returns_CREATED_response-1652349089\",\"created\":\"2022-05-12T09:51:30.250528+00:00\",\"modified\":\"2022-05-12T09:51:30.250528+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:51:29 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/services/aa4526fd-8084-58a0-bd52-164cd7f1a51e"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:51:29 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_a_new_incident_service_returns_CREATED_response-1652349089\"},\"type\":\"services\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/services" + }, + "response": { + "body": { + "string": "{\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}],\"data\":{\"type\":\"services\",\"id\":\"aa4526fd-8084-58a0-bd52-164cd7f1a51e\",\"attributes\":{\"name\":\"Test-Create_a_new_incident_service_returns_CREATED_response-1652349089\",\"created\":\"2022-05-12T09:51:30.250528+00:00\",\"modified\":\"2022-05-12T09:51:30.250528+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:29 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/services/aa4526fd-8084-58a0-bd52-164cd7f1a51e" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:29 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incident_services/Delete-an-existing-incident-service-returns-OK-response.json b/tests/scenarios/cassettes/v2/incident_services/Delete-an-existing-incident-service-returns-OK-response.json index 9c23e1653..7057fb98d 100644 --- a/tests/scenarios/cassettes/v2/incident_services/Delete-an-existing-incident-service-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/incident_services/Delete-an-existing-incident-service-returns-OK-response.json @@ -1 +1,87 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Delete_an_existing_incident_service_returns_OK_response-1652349090\"},\"type\":\"services\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/services"}, "response": {"body": {"string": "{\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}],\"data\":{\"type\":\"services\",\"id\":\"9f42d0e5-438a-5808-bb84-01ede3c065fb\",\"attributes\":{\"name\":\"Test-Delete_an_existing_incident_service_returns_OK_response-1652349090\",\"created\":\"2022-05-12T09:51:31.181927+00:00\",\"modified\":\"2022-05-12T09:51:31.181927+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:51:30 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/services/9f42d0e5-438a-5808-bb84-01ede3c065fb"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:51:30 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/services/9f42d0e5-438a-5808-bb84-01ede3c065fb"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:51:30 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Delete_an_existing_incident_service_returns_OK_response-1652349090\"},\"type\":\"services\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/services" + }, + "response": { + "body": { + "string": "{\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}],\"data\":{\"type\":\"services\",\"id\":\"9f42d0e5-438a-5808-bb84-01ede3c065fb\",\"attributes\":{\"name\":\"Test-Delete_an_existing_incident_service_returns_OK_response-1652349090\",\"created\":\"2022-05-12T09:51:31.181927+00:00\",\"modified\":\"2022-05-12T09:51:31.181927+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:30 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/services/9f42d0e5-438a-5808-bb84-01ede3c065fb" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:30 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/services/9f42d0e5-438a-5808-bb84-01ede3c065fb" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:30 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incident_services/Get-a-list-of-all-incident-services-returns-OK-response.json b/tests/scenarios/cassettes/v2/incident_services/Get-a-list-of-all-incident-services-returns-OK-response.json index 4b40a4e70..b2a60ec4f 100644 --- a/tests/scenarios/cassettes/v2/incident_services/Get-a-list-of-all-incident-services-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/incident_services/Get-a-list-of-all-incident-services-returns-OK-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Get_a_list_of_all_incident_services_returns_OK_response-1652349092\"},\"type\":\"services\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/services"}, "response": {"body": {"string": "{\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}],\"data\":{\"type\":\"services\",\"id\":\"84fc985e-fd2b-5e37-b627-eee699786658\",\"attributes\":{\"name\":\"Test-Get_a_list_of_all_incident_services_returns_OK_response-1652349092\",\"created\":\"2022-05-12T09:51:32.548997+00:00\",\"modified\":\"2022-05-12T09:51:32.548997+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:51:32 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/services?filter=Test-Get_a_list_of_all_incident_services_returns_OK_response-1652349092"}, "response": {"body": {"string": "{\"meta\":{\"sort\":\"ASC\",\"pagination\":{\"total\":7805,\"size\":1,\"next_offset\":1,\"offset\":0},\"total\":7805},\"data\":[{\"type\":\"services\",\"id\":\"84fc985e-fd2b-5e37-b627-eee699786658\",\"attributes\":{\"name\":\"Test-Get_a_list_of_all_incident_services_returns_OK_response-1652349092\",\"created\":\"2022-05-12T09:51:32.548997+00:00\",\"modified\":\"2022-05-12T09:51:32.548997+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:51:32 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/services/84fc985e-fd2b-5e37-b627-eee699786658"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:51:32 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Get_a_list_of_all_incident_services_returns_OK_response-1652349092\"},\"type\":\"services\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/services" + }, + "response": { + "body": { + "string": "{\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}],\"data\":{\"type\":\"services\",\"id\":\"84fc985e-fd2b-5e37-b627-eee699786658\",\"attributes\":{\"name\":\"Test-Get_a_list_of_all_incident_services_returns_OK_response-1652349092\",\"created\":\"2022-05-12T09:51:32.548997+00:00\",\"modified\":\"2022-05-12T09:51:32.548997+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:32 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/services?filter=Test-Get_a_list_of_all_incident_services_returns_OK_response-1652349092" + }, + "response": { + "body": { + "string": "{\"meta\":{\"sort\":\"ASC\",\"pagination\":{\"total\":7805,\"size\":1,\"next_offset\":1,\"offset\":0},\"total\":7805},\"data\":[{\"type\":\"services\",\"id\":\"84fc985e-fd2b-5e37-b627-eee699786658\",\"attributes\":{\"name\":\"Test-Get_a_list_of_all_incident_services_returns_OK_response-1652349092\",\"created\":\"2022-05-12T09:51:32.548997+00:00\",\"modified\":\"2022-05-12T09:51:32.548997+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:32 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/services/84fc985e-fd2b-5e37-b627-eee699786658" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:32 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incident_services/Get-details-of-an-incident-service-returns-OK-response.json b/tests/scenarios/cassettes/v2/incident_services/Get-details-of-an-incident-service-returns-OK-response.json index adb0a8e91..9f149892c 100644 --- a/tests/scenarios/cassettes/v2/incident_services/Get-details-of-an-incident-service-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/incident_services/Get-details-of-an-incident-service-returns-OK-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Get_details_of_an_incident_service_returns_OK_response-1652349093\"},\"type\":\"services\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/services"}, "response": {"body": {"string": "{\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}],\"data\":{\"type\":\"services\",\"id\":\"e7c6527e-95ff-5ab1-b151-ba4f786038c0\",\"attributes\":{\"name\":\"Test-Get_details_of_an_incident_service_returns_OK_response-1652349093\",\"created\":\"2022-05-12T09:51:34.184497+00:00\",\"modified\":\"2022-05-12T09:51:34.184497+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:51:33 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/services/e7c6527e-95ff-5ab1-b151-ba4f786038c0"}, "response": {"body": {"string": "{\"data\":{\"type\":\"services\",\"id\":\"e7c6527e-95ff-5ab1-b151-ba4f786038c0\",\"attributes\":{\"name\":\"Test-Get_details_of_an_incident_service_returns_OK_response-1652349093\",\"created\":\"2022-05-12T09:51:34.184497+00:00\",\"modified\":\"2022-05-12T09:51:34.184497+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:51:33 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/services/e7c6527e-95ff-5ab1-b151-ba4f786038c0"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:51:33 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Get_details_of_an_incident_service_returns_OK_response-1652349093\"},\"type\":\"services\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/services" + }, + "response": { + "body": { + "string": "{\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}],\"data\":{\"type\":\"services\",\"id\":\"e7c6527e-95ff-5ab1-b151-ba4f786038c0\",\"attributes\":{\"name\":\"Test-Get_details_of_an_incident_service_returns_OK_response-1652349093\",\"created\":\"2022-05-12T09:51:34.184497+00:00\",\"modified\":\"2022-05-12T09:51:34.184497+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:33 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/services/e7c6527e-95ff-5ab1-b151-ba4f786038c0" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"services\",\"id\":\"e7c6527e-95ff-5ab1-b151-ba4f786038c0\",\"attributes\":{\"name\":\"Test-Get_details_of_an_incident_service_returns_OK_response-1652349093\",\"created\":\"2022-05-12T09:51:34.184497+00:00\",\"modified\":\"2022-05-12T09:51:34.184497+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:33 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/services/e7c6527e-95ff-5ab1-b151-ba4f786038c0" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:33 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incident_services/Update-an-existing-incident-service-returns-OK-response.json b/tests/scenarios/cassettes/v2/incident_services/Update-an-existing-incident-service-returns-OK-response.json index 92b42a1b4..7c1ae8431 100644 --- a/tests/scenarios/cassettes/v2/incident_services/Update-an-existing-incident-service-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/incident_services/Update-an-existing-incident-service-returns-OK-response.json @@ -1 +1,97 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Update_an_existing_incident_service_returns_OK_response-1652349095\"},\"type\":\"services\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/services"}, "response": {"body": {"string": "{\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}],\"data\":{\"type\":\"services\",\"id\":\"f9f4467a-1e31-5513-83b8-ca6c4287a9b3\",\"attributes\":{\"name\":\"Test-Update_an_existing_incident_service_returns_OK_response-1652349095\",\"created\":\"2022-05-12T09:51:35.599056+00:00\",\"modified\":\"2022-05-12T09:51:35.599056+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:51:35 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Update_an_existing_incident_service_returns_OK_response-1652349095-updated\"},\"type\":\"services\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/services/f9f4467a-1e31-5513-83b8-ca6c4287a9b3"}, "response": {"body": {"string": "{\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}],\"data\":{\"type\":\"services\",\"id\":\"f9f4467a-1e31-5513-83b8-ca6c4287a9b3\",\"attributes\":{\"name\":\"Test-Update_an_existing_incident_service_returns_OK_response-1652349095-updated\",\"created\":\"2022-05-12T09:51:35.599056+00:00\",\"modified\":\"2022-05-12T09:51:36.165537+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:51:35 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/services/f9f4467a-1e31-5513-83b8-ca6c4287a9b3"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:51:35 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Update_an_existing_incident_service_returns_OK_response-1652349095\"},\"type\":\"services\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/services" + }, + "response": { + "body": { + "string": "{\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}],\"data\":{\"type\":\"services\",\"id\":\"f9f4467a-1e31-5513-83b8-ca6c4287a9b3\",\"attributes\":{\"name\":\"Test-Update_an_existing_incident_service_returns_OK_response-1652349095\",\"created\":\"2022-05-12T09:51:35.599056+00:00\",\"modified\":\"2022-05-12T09:51:35.599056+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:35 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Update_an_existing_incident_service_returns_OK_response-1652349095-updated\"},\"type\":\"services\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/services/f9f4467a-1e31-5513-83b8-ca6c4287a9b3" + }, + "response": { + "body": { + "string": "{\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}],\"data\":{\"type\":\"services\",\"id\":\"f9f4467a-1e31-5513-83b8-ca6c4287a9b3\",\"attributes\":{\"name\":\"Test-Update_an_existing_incident_service_returns_OK_response-1652349095-updated\",\"created\":\"2022-05-12T09:51:35.599056+00:00\",\"modified\":\"2022-05-12T09:51:36.165537+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:35 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/services/f9f4467a-1e31-5513-83b8-ca6c4287a9b3" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:51:35 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incident_teams/Create-a-new-incident-team-returns-CREATED-response.json b/tests/scenarios/cassettes/v2/incident_teams/Create-a-new-incident-team-returns-CREATED-response.json index b7617d189..1ff6982e6 100644 --- a/tests/scenarios/cassettes/v2/incident_teams/Create-a-new-incident-team-returns-CREATED-response.json +++ b/tests/scenarios/cassettes/v2/incident_teams/Create-a-new-incident-team-returns-CREATED-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_a_new_incident_team_returns_CREATED_response-1699307973\"},\"type\":\"teams\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/teams"}, "response": {"body": {"string": "{\"data\":{\"type\":\"teams\",\"id\":\"ad2b4266-f087-5b33-9da5-e726f61fd9b0\",\"attributes\":{\"name\":\"Test-Create_a_new_incident_team_returns_CREATED_response-1699307973\",\"created\":\"2023-11-06T21:59:33.756628+00:00\",\"modified\":\"2023-11-06T21:59:33.756628+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 06 Nov 2023 21:59:33 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/teams/ad2b4266-f087-5b33-9da5-e726f61fd9b0"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Nov 2023 21:59:33 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_a_new_incident_team_returns_CREATED_response-1699307973\"},\"type\":\"teams\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/teams" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"teams\",\"id\":\"ad2b4266-f087-5b33-9da5-e726f61fd9b0\",\"attributes\":{\"name\":\"Test-Create_a_new_incident_team_returns_CREATED_response-1699307973\",\"created\":\"2023-11-06T21:59:33.756628+00:00\",\"modified\":\"2023-11-06T21:59:33.756628+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 06 Nov 2023 21:59:33 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/teams/ad2b4266-f087-5b33-9da5-e726f61fd9b0" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Nov 2023 21:59:33 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incident_teams/Delete-an-existing-incident-team-returns-OK-response.json b/tests/scenarios/cassettes/v2/incident_teams/Delete-an-existing-incident-team-returns-OK-response.json index c398410be..3de95bf28 100644 --- a/tests/scenarios/cassettes/v2/incident_teams/Delete-an-existing-incident-team-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/incident_teams/Delete-an-existing-incident-team-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Delete_an_existing_incident_team_returns_OK_response-1699307973\"},\"type\":\"teams\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/teams"}, "response": {"body": {"string": "{\"data\":{\"type\":\"teams\",\"id\":\"a5250cc2-827f-509c-8159-2e0ccfb43cd3\",\"attributes\":{\"name\":\"Test-Delete_an_existing_incident_team_returns_OK_response-1699307973\",\"created\":\"2023-11-06T21:59:34.043971+00:00\",\"modified\":\"2023-11-06T21:59:34.043971+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 06 Nov 2023 21:59:33 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/teams/a5250cc2-827f-509c-8159-2e0ccfb43cd3"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Nov 2023 21:59:33 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/teams/a5250cc2-827f-509c-8159-2e0ccfb43cd3"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Nov 2023 21:59:33 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Delete_an_existing_incident_team_returns_OK_response-1699307973\"},\"type\":\"teams\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/teams" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"teams\",\"id\":\"a5250cc2-827f-509c-8159-2e0ccfb43cd3\",\"attributes\":{\"name\":\"Test-Delete_an_existing_incident_team_returns_OK_response-1699307973\",\"created\":\"2023-11-06T21:59:34.043971+00:00\",\"modified\":\"2023-11-06T21:59:34.043971+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 06 Nov 2023 21:59:33 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/teams/a5250cc2-827f-509c-8159-2e0ccfb43cd3" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Nov 2023 21:59:33 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/teams/a5250cc2-827f-509c-8159-2e0ccfb43cd3" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Nov 2023 21:59:33 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incident_teams/Get-a-list-of-all-incident-teams-returns-OK-response.json b/tests/scenarios/cassettes/v2/incident_teams/Get-a-list-of-all-incident-teams-returns-OK-response.json index 9468938a0..56fc70f6c 100644 --- a/tests/scenarios/cassettes/v2/incident_teams/Get-a-list-of-all-incident-teams-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/incident_teams/Get-a-list-of-all-incident-teams-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Get_a_list_of_all_incident_teams_returns_OK_response-1699307974\"},\"type\":\"teams\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/teams"}, "response": {"body": {"string": "{\"data\":{\"type\":\"teams\",\"id\":\"7f1a6db2-da0d-51cd-bcfc-7462b9ce9ff8\",\"attributes\":{\"name\":\"Test-Get_a_list_of_all_incident_teams_returns_OK_response-1699307974\",\"created\":\"2023-11-06T21:59:34.424755+00:00\",\"modified\":\"2023-11-06T21:59:34.424755+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 06 Nov 2023 21:59:34 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/teams?filter=Test-Get_a_list_of_all_incident_teams_returns_OK_response-1699307974"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"teams\",\"id\":\"7f1a6db2-da0d-51cd-bcfc-7462b9ce9ff8\",\"attributes\":{\"name\":\"Test-Get_a_list_of_all_incident_teams_returns_OK_response-1699307974\",\"created\":\"2023-11-06T21:59:34.424755+00:00\",\"modified\":\"2023-11-06T21:59:34.424755+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}],\"meta\":{\"pagination\":{\"offset\":0,\"next_offset\":1,\"size\":1,\"total\":3852},\"sort\":\"ASC\",\"total\":3852}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 06 Nov 2023 21:59:34 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/teams/7f1a6db2-da0d-51cd-bcfc-7462b9ce9ff8"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Nov 2023 21:59:34 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Get_a_list_of_all_incident_teams_returns_OK_response-1699307974\"},\"type\":\"teams\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/teams" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"teams\",\"id\":\"7f1a6db2-da0d-51cd-bcfc-7462b9ce9ff8\",\"attributes\":{\"name\":\"Test-Get_a_list_of_all_incident_teams_returns_OK_response-1699307974\",\"created\":\"2023-11-06T21:59:34.424755+00:00\",\"modified\":\"2023-11-06T21:59:34.424755+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 06 Nov 2023 21:59:34 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/teams?filter=Test-Get_a_list_of_all_incident_teams_returns_OK_response-1699307974" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"teams\",\"id\":\"7f1a6db2-da0d-51cd-bcfc-7462b9ce9ff8\",\"attributes\":{\"name\":\"Test-Get_a_list_of_all_incident_teams_returns_OK_response-1699307974\",\"created\":\"2023-11-06T21:59:34.424755+00:00\",\"modified\":\"2023-11-06T21:59:34.424755+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}],\"meta\":{\"pagination\":{\"offset\":0,\"next_offset\":1,\"size\":1,\"total\":3852},\"sort\":\"ASC\",\"total\":3852}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 06 Nov 2023 21:59:34 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/teams/7f1a6db2-da0d-51cd-bcfc-7462b9ce9ff8" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Nov 2023 21:59:34 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incident_teams/Get-details-of-an-incident-team-returns-OK-response.json b/tests/scenarios/cassettes/v2/incident_teams/Get-details-of-an-incident-team-returns-OK-response.json index b0d8722f9..c9feedfe2 100644 --- a/tests/scenarios/cassettes/v2/incident_teams/Get-details-of-an-incident-team-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/incident_teams/Get-details-of-an-incident-team-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Get_details_of_an_incident_team_returns_OK_response-1699307974\"},\"type\":\"teams\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/teams"}, "response": {"body": {"string": "{\"data\":{\"type\":\"teams\",\"id\":\"98da5ea5-4d67-5296-b971-b8cd48f3e5f3\",\"attributes\":{\"name\":\"Test-Get_details_of_an_incident_team_returns_OK_response-1699307974\",\"created\":\"2023-11-06T21:59:34.850054+00:00\",\"modified\":\"2023-11-06T21:59:34.850054+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 06 Nov 2023 21:59:34 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/teams/98da5ea5-4d67-5296-b971-b8cd48f3e5f3"}, "response": {"body": {"string": "{\"data\":{\"type\":\"teams\",\"id\":\"98da5ea5-4d67-5296-b971-b8cd48f3e5f3\",\"attributes\":{\"name\":\"Test-Get_details_of_an_incident_team_returns_OK_response-1699307974\",\"created\":\"2023-11-06T21:59:34.850054+00:00\",\"modified\":\"2023-11-06T21:59:34.850054+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 06 Nov 2023 21:59:34 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/teams/98da5ea5-4d67-5296-b971-b8cd48f3e5f3"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Nov 2023 21:59:34 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Get_details_of_an_incident_team_returns_OK_response-1699307974\"},\"type\":\"teams\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/teams" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"teams\",\"id\":\"98da5ea5-4d67-5296-b971-b8cd48f3e5f3\",\"attributes\":{\"name\":\"Test-Get_details_of_an_incident_team_returns_OK_response-1699307974\",\"created\":\"2023-11-06T21:59:34.850054+00:00\",\"modified\":\"2023-11-06T21:59:34.850054+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 06 Nov 2023 21:59:34 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/teams/98da5ea5-4d67-5296-b971-b8cd48f3e5f3" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"teams\",\"id\":\"98da5ea5-4d67-5296-b971-b8cd48f3e5f3\",\"attributes\":{\"name\":\"Test-Get_details_of_an_incident_team_returns_OK_response-1699307974\",\"created\":\"2023-11-06T21:59:34.850054+00:00\",\"modified\":\"2023-11-06T21:59:34.850054+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 06 Nov 2023 21:59:34 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/teams/98da5ea5-4d67-5296-b971-b8cd48f3e5f3" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Nov 2023 21:59:34 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incident_teams/Update-an-existing-incident-team-returns-OK-response.json b/tests/scenarios/cassettes/v2/incident_teams/Update-an-existing-incident-team-returns-OK-response.json index 2504f8e1f..7d97a549d 100644 --- a/tests/scenarios/cassettes/v2/incident_teams/Update-an-existing-incident-team-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/incident_teams/Update-an-existing-incident-team-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Update_an_existing_incident_team_returns_OK_response-1699307975\"},\"type\":\"teams\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/teams"}, "response": {"body": {"string": "{\"data\":{\"type\":\"teams\",\"id\":\"90c4f5c8-5965-533e-8b56-cffad17e03bf\",\"attributes\":{\"name\":\"Test-Update_an_existing_incident_team_returns_OK_response-1699307975\",\"created\":\"2023-11-06T21:59:35.219247+00:00\",\"modified\":\"2023-11-06T21:59:35.219247+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 06 Nov 2023 21:59:35 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Update_an_existing_incident_team_returns_OK_response-1699307975-updated\"},\"type\":\"teams\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/teams/90c4f5c8-5965-533e-8b56-cffad17e03bf"}, "response": {"body": {"string": "{\"data\":{\"type\":\"teams\",\"id\":\"90c4f5c8-5965-533e-8b56-cffad17e03bf\",\"attributes\":{\"name\":\"Test-Update_an_existing_incident_team_returns_OK_response-1699307975-updated\",\"created\":\"2023-11-06T21:59:35.219247+00:00\",\"modified\":\"2023-11-06T21:59:35.364568+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 06 Nov 2023 21:59:35 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/teams/90c4f5c8-5965-533e-8b56-cffad17e03bf"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Nov 2023 21:59:35 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Update_an_existing_incident_team_returns_OK_response-1699307975\"},\"type\":\"teams\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/teams" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"teams\",\"id\":\"90c4f5c8-5965-533e-8b56-cffad17e03bf\",\"attributes\":{\"name\":\"Test-Update_an_existing_incident_team_returns_OK_response-1699307975\",\"created\":\"2023-11-06T21:59:35.219247+00:00\",\"modified\":\"2023-11-06T21:59:35.219247+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 06 Nov 2023 21:59:35 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Update_an_existing_incident_team_returns_OK_response-1699307975-updated\"},\"type\":\"teams\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/teams/90c4f5c8-5965-533e-8b56-cffad17e03bf" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"teams\",\"id\":\"90c4f5c8-5965-533e-8b56-cffad17e03bf\",\"attributes\":{\"name\":\"Test-Update_an_existing_incident_team_returns_OK_response-1699307975-updated\",\"created\":\"2023-11-06T21:59:35.219247+00:00\",\"modified\":\"2023-11-06T21:59:35.364568+00:00\"},\"relationships\":{\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 06 Nov 2023 21:59:35 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/teams/90c4f5c8-5965-533e-8b56-cffad17e03bf" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Nov 2023 21:59:35 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incidents/Add-commander-to-an-incident-returns-OK-response.json b/tests/scenarios/cassettes/v2/incidents/Add-commander-to-an-incident-returns-OK-response.json index afba71391..d1a0fa8db 100644 --- a/tests/scenarios/cassettes/v2/incidents/Add-commander-to-an-incident-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/incidents/Add-commander-to-an-incident-returns-OK-response.json @@ -1 +1,159 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"Test-Add_commander_to_an_incident_returns_OK_response-1699302323@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/users"}, "response": {"body": {"string": "{\"data\":{\"type\":\"users\",\"id\":\"9cee6c65-7ce2-11ee-afa1-d613a1313e9b\",\"attributes\":{\"name\":null,\"handle\":\"test-add_commander_to_an_incident_returns_ok_response-1699302323@datadoghq.com\",\"created_at\":\"2023-11-06T20:25:23.238858+00:00\",\"modified_at\":\"2023-11-06T20:25:23.238858+00:00\",\"email\":\"test-add_commander_to_an_incident_returns_ok_response-1699302323@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/3635a30484b69ec7f1dd8be2aa1962c6?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:23 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Add_commander_to_an_incident_returns_OK_response-1699302323\"},\"type\":\"incidents\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/incidents"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incidents\",\"id\":\"ef130d24-3827-5ca3-85ae-700fe155b6ae\",\"attributes\":{\"public_id\":174802,\"incident_type_uuid\":null,\"title\":\"Test-Add_commander_to_an_incident_returns_OK_response-1699302323\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:23.425656+00:00\",\"modified\":\"2023-11-06T20:25:23.425656+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:23.412982+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:23 GMT"}, {"request": {"body": {"string": "{\"data\":{\"id\":\"ef130d24-3827-5ca3-85ae-700fe155b6ae\",\"relationships\":{\"commander_user\":{\"data\":{\"id\":\"9cee6c65-7ce2-11ee-afa1-d613a1313e9b\",\"type\":\"users\"}}},\"type\":\"incidents\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/incidents/ef130d24-3827-5ca3-85ae-700fe155b6ae"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incidents\",\"id\":\"ef130d24-3827-5ca3-85ae-700fe155b6ae\",\"attributes\":{\"public_id\":174802,\"incident_type_uuid\":null,\"title\":\"Test-Add_commander_to_an_incident_returns_OK_response-1699302323\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-06T20:25:23.425656+00:00\",\"modified\":\"2023-11-06T20:25:23.853499+00:00\",\"commander\":{\"data\":{\"type\":\"users\",\"id\":\"9cee6c65-7ce2-11ee-afa1-d613a1313e9b\",\"attributes\":{\"uuid\":\"9cee6c65-7ce2-11ee-afa1-d613a1313e9b\",\"handle\":\"test-add_commander_to_an_incident_returns_ok_response-1699302323@datadoghq.com\",\"email\":\"test-add_commander_to_an_incident_returns_ok_response-1699302323@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/3635a30484b69ec7f1dd8be2aa1962c6?s=48&d=retro\"}}},\"detected\":\"2023-11-06T20:25:23.412982+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[{\"type\":\"incident_responders\",\"id\":\"a08d26e3-2baf-51dc-a956-a1df39b65108\"},{\"type\":\"incident_responders\",\"id\":\"28394b67-84ac-5ace-80bc-da0472019eae\"}]},\"impacts\":{\"data\":[]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:23 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/ef130d24-3827-5ca3-85ae-700fe155b6ae"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:23 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/users/9cee6c65-7ce2-11ee-afa1-d613a1313e9b"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:23 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"email\":\"Test-Add_commander_to_an_incident_returns_OK_response-1699302323@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/users" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"users\",\"id\":\"9cee6c65-7ce2-11ee-afa1-d613a1313e9b\",\"attributes\":{\"name\":null,\"handle\":\"test-add_commander_to_an_incident_returns_ok_response-1699302323@datadoghq.com\",\"created_at\":\"2023-11-06T20:25:23.238858+00:00\",\"modified_at\":\"2023-11-06T20:25:23.238858+00:00\",\"email\":\"test-add_commander_to_an_incident_returns_ok_response-1699302323@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/3635a30484b69ec7f1dd8be2aa1962c6?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:23 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Add_commander_to_an_incident_returns_OK_response-1699302323\"},\"type\":\"incidents\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/incidents" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incidents\",\"id\":\"ef130d24-3827-5ca3-85ae-700fe155b6ae\",\"attributes\":{\"public_id\":174802,\"incident_type_uuid\":null,\"title\":\"Test-Add_commander_to_an_incident_returns_OK_response-1699302323\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:23.425656+00:00\",\"modified\":\"2023-11-06T20:25:23.425656+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:23.412982+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:23 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"id\":\"ef130d24-3827-5ca3-85ae-700fe155b6ae\",\"relationships\":{\"commander_user\":{\"data\":{\"id\":\"9cee6c65-7ce2-11ee-afa1-d613a1313e9b\",\"type\":\"users\"}}},\"type\":\"incidents\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/incidents/ef130d24-3827-5ca3-85ae-700fe155b6ae" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incidents\",\"id\":\"ef130d24-3827-5ca3-85ae-700fe155b6ae\",\"attributes\":{\"public_id\":174802,\"incident_type_uuid\":null,\"title\":\"Test-Add_commander_to_an_incident_returns_OK_response-1699302323\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-06T20:25:23.425656+00:00\",\"modified\":\"2023-11-06T20:25:23.853499+00:00\",\"commander\":{\"data\":{\"type\":\"users\",\"id\":\"9cee6c65-7ce2-11ee-afa1-d613a1313e9b\",\"attributes\":{\"uuid\":\"9cee6c65-7ce2-11ee-afa1-d613a1313e9b\",\"handle\":\"test-add_commander_to_an_incident_returns_ok_response-1699302323@datadoghq.com\",\"email\":\"test-add_commander_to_an_incident_returns_ok_response-1699302323@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/3635a30484b69ec7f1dd8be2aa1962c6?s=48&d=retro\"}}},\"detected\":\"2023-11-06T20:25:23.412982+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[{\"type\":\"incident_responders\",\"id\":\"a08d26e3-2baf-51dc-a956-a1df39b65108\"},{\"type\":\"incident_responders\",\"id\":\"28394b67-84ac-5ace-80bc-da0472019eae\"}]},\"impacts\":{\"data\":[]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:23 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/ef130d24-3827-5ca3-85ae-700fe155b6ae" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:23 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/users/9cee6c65-7ce2-11ee-afa1-d613a1313e9b" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:23 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incidents/Create-an-incident-attachment-returns-OK-response.json b/tests/scenarios/cassettes/v2/incidents/Create-an-incident-attachment-returns-OK-response.json index aa33476ad..c64042b01 100644 --- a/tests/scenarios/cassettes/v2/incidents/Create-an-incident-attachment-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/incidents/Create-an-incident-attachment-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Create_an_incident_attachment_returns_OK_response-1699302324\"},\"type\":\"incidents\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/incidents"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incidents\",\"id\":\"f5faf64f-c9bd-5171-8c9e-e4ce51604c97\",\"attributes\":{\"public_id\":174803,\"incident_type_uuid\":null,\"title\":\"Test-Create_an_incident_attachment_returns_OK_response-1699302324\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:24.903041+00:00\",\"modified\":\"2023-11-06T20:25:24.903041+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:24.890646+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:24 GMT"}, {"request": {"body": {"string": "{\"data\":[{\"attributes\":{\"attachment\":{\"documentUrl\":\"https://www.example.com/doc\",\"title\":\"Test-Create_an_incident_attachment_returns_OK_response-1699302324\"},\"attachment_type\":\"link\"},\"type\":\"incident_attachments\"}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/incidents/f5faf64f-c9bd-5171-8c9e-e4ce51604c97/attachments"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"incident_attachments\",\"id\":\"34749f37-7681-50cb-8cc4-709950a4bd62\",\"attributes\":{\"modified\":\"2023-11-06T20:25:25.295458+00:00\",\"attachment_type\":\"link\",\"attachment\":{\"title\":\"Test-Create_an_incident_attachment_returns_OK_response-1699302324\",\"documentUrl\":\"https://www.example.com/doc\"}},\"relationships\":{\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:24 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/f5faf64f-c9bd-5171-8c9e-e4ce51604c97"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:24 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Create_an_incident_attachment_returns_OK_response-1699302324\"},\"type\":\"incidents\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/incidents" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incidents\",\"id\":\"f5faf64f-c9bd-5171-8c9e-e4ce51604c97\",\"attributes\":{\"public_id\":174803,\"incident_type_uuid\":null,\"title\":\"Test-Create_an_incident_attachment_returns_OK_response-1699302324\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:24.903041+00:00\",\"modified\":\"2023-11-06T20:25:24.903041+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:24.890646+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:24 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":[{\"attributes\":{\"attachment\":{\"documentUrl\":\"https://www.example.com/doc\",\"title\":\"Test-Create_an_incident_attachment_returns_OK_response-1699302324\"},\"attachment_type\":\"link\"},\"type\":\"incident_attachments\"}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/incidents/f5faf64f-c9bd-5171-8c9e-e4ce51604c97/attachments" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"incident_attachments\",\"id\":\"34749f37-7681-50cb-8cc4-709950a4bd62\",\"attributes\":{\"modified\":\"2023-11-06T20:25:25.295458+00:00\",\"attachment_type\":\"link\",\"attachment\":{\"title\":\"Test-Create_an_incident_attachment_returns_OK_response-1699302324\",\"documentUrl\":\"https://www.example.com/doc\"}},\"relationships\":{\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:24 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/f5faf64f-c9bd-5171-8c9e-e4ce51604c97" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:24 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incidents/Create-an-incident-integration-metadata-returns-CREATED-response.json b/tests/scenarios/cassettes/v2/incidents/Create-an-incident-integration-metadata-returns-CREATED-response.json index b0c20839b..3ec62fce7 100644 --- a/tests/scenarios/cassettes/v2/incidents/Create-an-incident-integration-metadata-returns-CREATED-response.json +++ b/tests/scenarios/cassettes/v2/incidents/Create-an-incident-integration-metadata-returns-CREATED-response.json @@ -1 +1,129 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Create_an_incident_integration_metadata_returns_CREATED_response-1699302325\"},\"type\":\"incidents\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/incidents"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incidents\",\"id\":\"114eac5a-0705-59b8-b9fd-0810aadb85f7\",\"attributes\":{\"public_id\":174804,\"incident_type_uuid\":null,\"title\":\"Test-Create_an_incident_integration_metadata_returns_CREATED_response-1699302325\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:25.824255+00:00\",\"modified\":\"2023-11-06T20:25:25.824255+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:25.811013+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:25 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"incident_id\":\"114eac5a-0705-59b8-b9fd-0810aadb85f7\",\"integration_type\":1,\"metadata\":{\"channels\":[{\"channel_id\":\"C0123456789\",\"channel_name\":\"#new-channel\",\"redirect_url\":\"https://slack.com/app_redirect?channel=C0123456789&team=T01234567\",\"team_id\":\"T01234567\"}]}},\"type\":\"incident_integrations\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/incidents/114eac5a-0705-59b8-b9fd-0810aadb85f7/relationships/integrations"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incident_integrations\",\"id\":\"51833293-96c6-5129-913f-1f6c2812871f\",\"attributes\":{\"created\":\"2023-11-06T20:25:26.250807+00:00\",\"modified\":\"2023-11-06T20:25:26.250807+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"incident_id\":\"114eac5a-0705-59b8-b9fd-0810aadb85f7\",\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"status\":3,\"integration_type\":1,\"metadata\":{\"channels\":[{\"channel_id\":\"C0123456789\",\"channel_name\":\"#new-channel\",\"redirect_url\":\"https://slack.com/app_redirect?channel=C0123456789&team=T01234567\",\"team_id\":\"T01234567\"}]}},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:25 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/114eac5a-0705-59b8-b9fd-0810aadb85f7/relationships/integrations/51833293-96c6-5129-913f-1f6c2812871f"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:25 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/114eac5a-0705-59b8-b9fd-0810aadb85f7"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:25 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Create_an_incident_integration_metadata_returns_CREATED_response-1699302325\"},\"type\":\"incidents\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/incidents" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incidents\",\"id\":\"114eac5a-0705-59b8-b9fd-0810aadb85f7\",\"attributes\":{\"public_id\":174804,\"incident_type_uuid\":null,\"title\":\"Test-Create_an_incident_integration_metadata_returns_CREATED_response-1699302325\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:25.824255+00:00\",\"modified\":\"2023-11-06T20:25:25.824255+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:25.811013+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:25 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"incident_id\":\"114eac5a-0705-59b8-b9fd-0810aadb85f7\",\"integration_type\":1,\"metadata\":{\"channels\":[{\"channel_id\":\"C0123456789\",\"channel_name\":\"#new-channel\",\"redirect_url\":\"https://slack.com/app_redirect?channel=C0123456789&team=T01234567\",\"team_id\":\"T01234567\"}]}},\"type\":\"incident_integrations\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/incidents/114eac5a-0705-59b8-b9fd-0810aadb85f7/relationships/integrations" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incident_integrations\",\"id\":\"51833293-96c6-5129-913f-1f6c2812871f\",\"attributes\":{\"created\":\"2023-11-06T20:25:26.250807+00:00\",\"modified\":\"2023-11-06T20:25:26.250807+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"incident_id\":\"114eac5a-0705-59b8-b9fd-0810aadb85f7\",\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"status\":3,\"integration_type\":1,\"metadata\":{\"channels\":[{\"channel_id\":\"C0123456789\",\"channel_name\":\"#new-channel\",\"redirect_url\":\"https://slack.com/app_redirect?channel=C0123456789&team=T01234567\",\"team_id\":\"T01234567\"}]}},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:25 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/114eac5a-0705-59b8-b9fd-0810aadb85f7/relationships/integrations/51833293-96c6-5129-913f-1f6c2812871f" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:25 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/114eac5a-0705-59b8-b9fd-0810aadb85f7" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:25 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incidents/Create-an-incident-returns-CREATED-response.json b/tests/scenarios/cassettes/v2/incidents/Create-an-incident-returns-CREATED-response.json index b9800d410..321e4f846 100644 --- a/tests/scenarios/cassettes/v2/incidents/Create-an-incident-returns-CREATED-response.json +++ b/tests/scenarios/cassettes/v2/incidents/Create-an-incident-returns-CREATED-response.json @@ -1 +1,125 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"Test-Create_an_incident_returns_CREATED_response-1699302326@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/users"}, "response": {"body": {"string": "{\"data\":{\"type\":\"users\",\"id\":\"9f1d70ff-7ce2-11ee-8c05-8e8ed6f172de\",\"attributes\":{\"name\":null,\"handle\":\"test-create_an_incident_returns_created_response-1699302326@datadoghq.com\",\"created_at\":\"2023-11-06T20:25:26.902430+00:00\",\"modified_at\":\"2023-11-06T20:25:26.902430+00:00\",\"email\":\"test-create_an_incident_returns_created_response-1699302326@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/458fde925dde178af60afb57aede60ab?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:26 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"fields\":{\"state\":{\"type\":\"dropdown\",\"value\":\"resolved\"}},\"title\":\"Test-Create_an_incident_returns_CREATED_response-1699302326\"},\"relationships\":{\"commander_user\":{\"data\":{\"id\":\"9f1d70ff-7ce2-11ee-8c05-8e8ed6f172de\",\"type\":\"users\"}}},\"type\":\"incidents\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/incidents"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incidents\",\"id\":\"3c4c88ec-620e-5fb0-af45-5cff0e7f6a16\",\"attributes\":{\"public_id\":174805,\"incident_type_uuid\":null,\"title\":\"Test-Create_an_incident_returns_CREATED_response-1699302326\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:27.088157+00:00\",\"modified\":\"2023-11-06T20:25:27.088157+00:00\",\"commander\":{\"data\":{\"type\":\"users\",\"id\":\"9f1d70ff-7ce2-11ee-8c05-8e8ed6f172de\",\"attributes\":{\"uuid\":\"9f1d70ff-7ce2-11ee-8c05-8e8ed6f172de\",\"handle\":\"test-create_an_incident_returns_created_response-1699302326@datadoghq.com\",\"email\":\"test-create_an_incident_returns_created_response-1699302326@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/458fde925dde178af60afb57aede60ab?s=48&d=retro\"}}},\"detected\":\"2023-11-06T20:25:27.074830+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"resolved\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"resolved\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":{\"type\":\"users\",\"id\":\"9f1d70ff-7ce2-11ee-8c05-8e8ed6f172de\"}},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[{\"type\":\"incident_responders\",\"id\":\"285bf315-cd07-50a7-9fc2-507791ac4079\"}]},\"impacts\":{\"data\":[]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:26 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/3c4c88ec-620e-5fb0-af45-5cff0e7f6a16"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:26 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/users/9f1d70ff-7ce2-11ee-8c05-8e8ed6f172de"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:26 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"email\":\"Test-Create_an_incident_returns_CREATED_response-1699302326@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/users" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"users\",\"id\":\"9f1d70ff-7ce2-11ee-8c05-8e8ed6f172de\",\"attributes\":{\"name\":null,\"handle\":\"test-create_an_incident_returns_created_response-1699302326@datadoghq.com\",\"created_at\":\"2023-11-06T20:25:26.902430+00:00\",\"modified_at\":\"2023-11-06T20:25:26.902430+00:00\",\"email\":\"test-create_an_incident_returns_created_response-1699302326@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/458fde925dde178af60afb57aede60ab?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:26 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"fields\":{\"state\":{\"type\":\"dropdown\",\"value\":\"resolved\"}},\"title\":\"Test-Create_an_incident_returns_CREATED_response-1699302326\"},\"relationships\":{\"commander_user\":{\"data\":{\"id\":\"9f1d70ff-7ce2-11ee-8c05-8e8ed6f172de\",\"type\":\"users\"}}},\"type\":\"incidents\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/incidents" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incidents\",\"id\":\"3c4c88ec-620e-5fb0-af45-5cff0e7f6a16\",\"attributes\":{\"public_id\":174805,\"incident_type_uuid\":null,\"title\":\"Test-Create_an_incident_returns_CREATED_response-1699302326\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:27.088157+00:00\",\"modified\":\"2023-11-06T20:25:27.088157+00:00\",\"commander\":{\"data\":{\"type\":\"users\",\"id\":\"9f1d70ff-7ce2-11ee-8c05-8e8ed6f172de\",\"attributes\":{\"uuid\":\"9f1d70ff-7ce2-11ee-8c05-8e8ed6f172de\",\"handle\":\"test-create_an_incident_returns_created_response-1699302326@datadoghq.com\",\"email\":\"test-create_an_incident_returns_created_response-1699302326@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/458fde925dde178af60afb57aede60ab?s=48&d=retro\"}}},\"detected\":\"2023-11-06T20:25:27.074830+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"resolved\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"resolved\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":{\"type\":\"users\",\"id\":\"9f1d70ff-7ce2-11ee-8c05-8e8ed6f172de\"}},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[{\"type\":\"incident_responders\",\"id\":\"285bf315-cd07-50a7-9fc2-507791ac4079\"}]},\"impacts\":{\"data\":[]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:26 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/3c4c88ec-620e-5fb0-af45-5cff0e7f6a16" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:26 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/users/9f1d70ff-7ce2-11ee-8c05-8e8ed6f172de" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:26 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incidents/Create-an-incident-todo-returns-CREATED-response.json b/tests/scenarios/cassettes/v2/incidents/Create-an-incident-todo-returns-CREATED-response.json index d7d9b9f46..a01369b6b 100644 --- a/tests/scenarios/cassettes/v2/incidents/Create-an-incident-todo-returns-CREATED-response.json +++ b/tests/scenarios/cassettes/v2/incidents/Create-an-incident-todo-returns-CREATED-response.json @@ -1 +1,129 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Create_an_incident_todo_returns_CREATED_response-1678308256\"},\"type\":\"incidents\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/incidents"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incidents\",\"id\":\"991b0712-45ac-5c58-990b-958a10759544\",\"attributes\":{\"public_id\":124930,\"title\":\"Test-Create_an_incident_todo_returns_CREATED_response-1678308256\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-03-08T20:44:17.336395+00:00\",\"modified\":\"2023-03-08T20:44:17.336395+00:00\",\"commander\":null,\"detected\":\"2023-03-08T20:44:17.328585+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Wed, 08 Mar 2023 20:44:16 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"assignees\":[\"@test.user@test.com\"],\"content\":\"Restore lost data.\"},\"type\":\"incident_todos\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/incidents/991b0712-45ac-5c58-990b-958a10759544/relationships/todos"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incident_todos\",\"id\":\"fcbc4d56-bca2-5d1d-9b81-da1a2da35d28\",\"attributes\":{\"created\":\"2023-03-08T20:44:17.781860+00:00\",\"modified\":\"2023-03-08T20:44:17.781860+00:00\",\"completed\":null,\"due_date\":null,\"assignees\":[\"@test.user@test.com\"],\"content\":\"Restore lost data.\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"incident_id\":\"991b0712-45ac-5c58-990b-958a10759544\",\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Wed, 08 Mar 2023 20:44:16 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/991b0712-45ac-5c58-990b-958a10759544/relationships/todos/fcbc4d56-bca2-5d1d-9b81-da1a2da35d28"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 08 Mar 2023 20:44:16 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/991b0712-45ac-5c58-990b-958a10759544"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 08 Mar 2023 20:44:16 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Create_an_incident_todo_returns_CREATED_response-1678308256\"},\"type\":\"incidents\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/incidents" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incidents\",\"id\":\"991b0712-45ac-5c58-990b-958a10759544\",\"attributes\":{\"public_id\":124930,\"title\":\"Test-Create_an_incident_todo_returns_CREATED_response-1678308256\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-03-08T20:44:17.336395+00:00\",\"modified\":\"2023-03-08T20:44:17.336395+00:00\",\"commander\":null,\"detected\":\"2023-03-08T20:44:17.328585+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Wed, 08 Mar 2023 20:44:16 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"assignees\":[\"@test.user@test.com\"],\"content\":\"Restore lost data.\"},\"type\":\"incident_todos\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/incidents/991b0712-45ac-5c58-990b-958a10759544/relationships/todos" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incident_todos\",\"id\":\"fcbc4d56-bca2-5d1d-9b81-da1a2da35d28\",\"attributes\":{\"created\":\"2023-03-08T20:44:17.781860+00:00\",\"modified\":\"2023-03-08T20:44:17.781860+00:00\",\"completed\":null,\"due_date\":null,\"assignees\":[\"@test.user@test.com\"],\"content\":\"Restore lost data.\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"incident_id\":\"991b0712-45ac-5c58-990b-958a10759544\",\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Wed, 08 Mar 2023 20:44:16 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/991b0712-45ac-5c58-990b-958a10759544/relationships/todos/fcbc4d56-bca2-5d1d-9b81-da1a2da35d28" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 08 Mar 2023 20:44:16 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/991b0712-45ac-5c58-990b-958a10759544" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 08 Mar 2023 20:44:16 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incidents/Delete-an-existing-incident-returns-OK-response.json b/tests/scenarios/cassettes/v2/incidents/Delete-an-existing-incident-returns-OK-response.json index 4d39f71c5..415b2225b 100644 --- a/tests/scenarios/cassettes/v2/incidents/Delete-an-existing-incident-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/incidents/Delete-an-existing-incident-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Delete_an_existing_incident_returns_OK_response-1699302328\"},\"type\":\"incidents\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/incidents"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incidents\",\"id\":\"e7a955c0-dcf2-553c-a8ae-4fa4908eb5bf\",\"attributes\":{\"public_id\":174806,\"incident_type_uuid\":null,\"title\":\"Test-Delete_an_existing_incident_returns_OK_response-1699302328\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:28.282046+00:00\",\"modified\":\"2023-11-06T20:25:28.282046+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:28.271982+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:28 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/e7a955c0-dcf2-553c-a8ae-4fa4908eb5bf"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:28 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/e7a955c0-dcf2-553c-a8ae-4fa4908eb5bf"}, "response": {"body": {"string": "{\"errors\":[\"incident e7a955c0-dcf2-553c-a8ae-4fa4908eb5bf not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:28 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Delete_an_existing_incident_returns_OK_response-1699302328\"},\"type\":\"incidents\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/incidents" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incidents\",\"id\":\"e7a955c0-dcf2-553c-a8ae-4fa4908eb5bf\",\"attributes\":{\"public_id\":174806,\"incident_type_uuid\":null,\"title\":\"Test-Delete_an_existing_incident_returns_OK_response-1699302328\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:28.282046+00:00\",\"modified\":\"2023-11-06T20:25:28.282046+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:28.271982+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:28 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/e7a955c0-dcf2-553c-a8ae-4fa4908eb5bf" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:28 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/e7a955c0-dcf2-553c-a8ae-4fa4908eb5bf" + }, + "response": { + "body": { + "string": "{\"errors\":[\"incident e7a955c0-dcf2-553c-a8ae-4fa4908eb5bf not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:28 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incidents/Delete-an-incident-integration-metadata-returns-OK-response.json b/tests/scenarios/cassettes/v2/incidents/Delete-an-incident-integration-metadata-returns-OK-response.json index 01d42ed58..46eaa5eb5 100644 --- a/tests/scenarios/cassettes/v2/incidents/Delete-an-incident-integration-metadata-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/incidents/Delete-an-incident-integration-metadata-returns-OK-response.json @@ -1 +1,157 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Delete_an_incident_integration_metadata_returns_OK_response-1699302328\"},\"type\":\"incidents\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/incidents"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incidents\",\"id\":\"f703ecbc-fb3c-5ec1-b7a3-272149fddce7\",\"attributes\":{\"public_id\":174807,\"incident_type_uuid\":null,\"title\":\"Test-Delete_an_incident_integration_metadata_returns_OK_response-1699302328\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:29.083565+00:00\",\"modified\":\"2023-11-06T20:25:29.083565+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:29.071823+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:28 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"incident_id\":\"f703ecbc-fb3c-5ec1-b7a3-272149fddce7\",\"integration_type\":1,\"metadata\":{\"channels\":[{\"channel_id\":\"C0123456789\",\"channel_name\":\"#example-channel-name\",\"redirect_url\":\"https://slack.com/app_redirect?channel=C0123456789&team=T01234567\",\"team_id\":\"T01234567\"}]},\"status\":2},\"type\":\"incident_integrations\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/incidents/f703ecbc-fb3c-5ec1-b7a3-272149fddce7/relationships/integrations"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incident_integrations\",\"id\":\"7361c4d9-1947-5ba5-9439-8cbf53a61e86\",\"attributes\":{\"created\":\"2023-11-06T20:25:29.507969+00:00\",\"modified\":\"2023-11-06T20:25:29.507969+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"incident_id\":\"f703ecbc-fb3c-5ec1-b7a3-272149fddce7\",\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"status\":3,\"integration_type\":1,\"metadata\":{\"channels\":[{\"channel_id\":\"C0123456789\",\"channel_name\":\"#example-channel-name\",\"redirect_url\":\"https://slack.com/app_redirect?channel=C0123456789&team=T01234567\",\"team_id\":\"T01234567\"}]}},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:28 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/f703ecbc-fb3c-5ec1-b7a3-272149fddce7/relationships/integrations/7361c4d9-1947-5ba5-9439-8cbf53a61e86"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:28 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/f703ecbc-fb3c-5ec1-b7a3-272149fddce7/relationships/integrations/7361c4d9-1947-5ba5-9439-8cbf53a61e86"}, "response": {"body": {"string": "{\"errors\":[\"7361c4d9-1947-5ba5-9439-8cbf53a61e86 not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:28 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/f703ecbc-fb3c-5ec1-b7a3-272149fddce7"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:28 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Delete_an_incident_integration_metadata_returns_OK_response-1699302328\"},\"type\":\"incidents\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/incidents" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incidents\",\"id\":\"f703ecbc-fb3c-5ec1-b7a3-272149fddce7\",\"attributes\":{\"public_id\":174807,\"incident_type_uuid\":null,\"title\":\"Test-Delete_an_incident_integration_metadata_returns_OK_response-1699302328\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:29.083565+00:00\",\"modified\":\"2023-11-06T20:25:29.083565+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:29.071823+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:28 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"incident_id\":\"f703ecbc-fb3c-5ec1-b7a3-272149fddce7\",\"integration_type\":1,\"metadata\":{\"channels\":[{\"channel_id\":\"C0123456789\",\"channel_name\":\"#example-channel-name\",\"redirect_url\":\"https://slack.com/app_redirect?channel=C0123456789&team=T01234567\",\"team_id\":\"T01234567\"}]},\"status\":2},\"type\":\"incident_integrations\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/incidents/f703ecbc-fb3c-5ec1-b7a3-272149fddce7/relationships/integrations" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incident_integrations\",\"id\":\"7361c4d9-1947-5ba5-9439-8cbf53a61e86\",\"attributes\":{\"created\":\"2023-11-06T20:25:29.507969+00:00\",\"modified\":\"2023-11-06T20:25:29.507969+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"incident_id\":\"f703ecbc-fb3c-5ec1-b7a3-272149fddce7\",\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"status\":3,\"integration_type\":1,\"metadata\":{\"channels\":[{\"channel_id\":\"C0123456789\",\"channel_name\":\"#example-channel-name\",\"redirect_url\":\"https://slack.com/app_redirect?channel=C0123456789&team=T01234567\",\"team_id\":\"T01234567\"}]}},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:28 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/f703ecbc-fb3c-5ec1-b7a3-272149fddce7/relationships/integrations/7361c4d9-1947-5ba5-9439-8cbf53a61e86" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:28 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/f703ecbc-fb3c-5ec1-b7a3-272149fddce7/relationships/integrations/7361c4d9-1947-5ba5-9439-8cbf53a61e86" + }, + "response": { + "body": { + "string": "{\"errors\":[\"7361c4d9-1947-5ba5-9439-8cbf53a61e86 not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:28 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/f703ecbc-fb3c-5ec1-b7a3-272149fddce7" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:28 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incidents/Delete-an-incident-todo-returns-OK-response.json b/tests/scenarios/cassettes/v2/incidents/Delete-an-incident-todo-returns-OK-response.json index 7c8ef53fc..70c350699 100644 --- a/tests/scenarios/cassettes/v2/incidents/Delete-an-incident-todo-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/incidents/Delete-an-incident-todo-returns-OK-response.json @@ -1 +1,157 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Delete_an_incident_todo_returns_OK_response-1678213638\"},\"type\":\"incidents\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/incidents"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incidents\",\"id\":\"8dc81d32-33b1-580a-97ab-00b84b2b2f4d\",\"attributes\":{\"public_id\":124740,\"title\":\"Test-Delete_an_incident_todo_returns_OK_response-1678213638\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-03-07T18:27:18.737862+00:00\",\"modified\":\"2023-03-07T18:27:18.737862+00:00\",\"commander\":null,\"detected\":\"2023-03-07T18:27:18.729880+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Tue, 07 Mar 2023 18:27:18 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"assignees\":[\"@test.user@test.com\",{\"icon\":\"https://a.slack-edge.com/80588/img/slackbot_48.png\",\"id\":\"USLACKBOT\",\"name\":\"Slackbot\",\"source\":\"slack\"}],\"content\":\"Follow up with customer about the impact they saw.\"},\"type\":\"incident_todos\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/incidents/8dc81d32-33b1-580a-97ab-00b84b2b2f4d/relationships/todos"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incident_todos\",\"id\":\"dc9639d1-0203-5569-acfb-276574c04268\",\"attributes\":{\"created\":\"2023-03-07T18:27:19.090564+00:00\",\"modified\":\"2023-03-07T18:27:19.090564+00:00\",\"completed\":null,\"due_date\":null,\"assignees\":[\"@test.user@test.com\",{\"icon\":\"https://a.slack-edge.com/80588/img/slackbot_48.png\",\"id\":\"USLACKBOT\",\"name\":\"Slackbot\",\"source\":\"slack\"}],\"content\":\"Follow up with customer about the impact they saw.\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"incident_id\":\"8dc81d32-33b1-580a-97ab-00b84b2b2f4d\",\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Tue, 07 Mar 2023 18:27:18 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/8dc81d32-33b1-580a-97ab-00b84b2b2f4d/relationships/todos/dc9639d1-0203-5569-acfb-276574c04268"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Tue, 07 Mar 2023 18:27:18 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/8dc81d32-33b1-580a-97ab-00b84b2b2f4d/relationships/todos/dc9639d1-0203-5569-acfb-276574c04268"}, "response": {"body": {"string": "{\"errors\":[\"dc9639d1-0203-5569-acfb-276574c04268 not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Tue, 07 Mar 2023 18:27:18 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/8dc81d32-33b1-580a-97ab-00b84b2b2f4d"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Tue, 07 Mar 2023 18:27:18 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Delete_an_incident_todo_returns_OK_response-1678213638\"},\"type\":\"incidents\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/incidents" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incidents\",\"id\":\"8dc81d32-33b1-580a-97ab-00b84b2b2f4d\",\"attributes\":{\"public_id\":124740,\"title\":\"Test-Delete_an_incident_todo_returns_OK_response-1678213638\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-03-07T18:27:18.737862+00:00\",\"modified\":\"2023-03-07T18:27:18.737862+00:00\",\"commander\":null,\"detected\":\"2023-03-07T18:27:18.729880+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Tue, 07 Mar 2023 18:27:18 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"assignees\":[\"@test.user@test.com\",{\"icon\":\"https://a.slack-edge.com/80588/img/slackbot_48.png\",\"id\":\"USLACKBOT\",\"name\":\"Slackbot\",\"source\":\"slack\"}],\"content\":\"Follow up with customer about the impact they saw.\"},\"type\":\"incident_todos\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/incidents/8dc81d32-33b1-580a-97ab-00b84b2b2f4d/relationships/todos" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incident_todos\",\"id\":\"dc9639d1-0203-5569-acfb-276574c04268\",\"attributes\":{\"created\":\"2023-03-07T18:27:19.090564+00:00\",\"modified\":\"2023-03-07T18:27:19.090564+00:00\",\"completed\":null,\"due_date\":null,\"assignees\":[\"@test.user@test.com\",{\"icon\":\"https://a.slack-edge.com/80588/img/slackbot_48.png\",\"id\":\"USLACKBOT\",\"name\":\"Slackbot\",\"source\":\"slack\"}],\"content\":\"Follow up with customer about the impact they saw.\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"incident_id\":\"8dc81d32-33b1-580a-97ab-00b84b2b2f4d\",\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Tue, 07 Mar 2023 18:27:18 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/8dc81d32-33b1-580a-97ab-00b84b2b2f4d/relationships/todos/dc9639d1-0203-5569-acfb-276574c04268" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Tue, 07 Mar 2023 18:27:18 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/8dc81d32-33b1-580a-97ab-00b84b2b2f4d/relationships/todos/dc9639d1-0203-5569-acfb-276574c04268" + }, + "response": { + "body": { + "string": "{\"errors\":[\"dc9639d1-0203-5569-acfb-276574c04268 not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Tue, 07 Mar 2023 18:27:18 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/8dc81d32-33b1-580a-97ab-00b84b2b2f4d" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Tue, 07 Mar 2023 18:27:18 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incidents/Get-a-list-of-an-incident-s-integration-metadata-returns-OK-response.json b/tests/scenarios/cassettes/v2/incidents/Get-a-list-of-an-incident-s-integration-metadata-returns-OK-response.json index 753ab4e44..862e71828 100644 --- a/tests/scenarios/cassettes/v2/incidents/Get-a-list-of-an-incident-s-integration-metadata-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/incidents/Get-a-list-of-an-incident-s-integration-metadata-returns-OK-response.json @@ -1 +1,157 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Get_a_list_of_an_incident_s_integration_metadata_returns_OK_response-1699302330\"},\"type\":\"incidents\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/incidents"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incidents\",\"id\":\"716a6bf5-cea2-5026-ba21-e1354d790343\",\"attributes\":{\"public_id\":174808,\"incident_type_uuid\":null,\"title\":\"Test-Get_a_list_of_an_incident_s_integration_metadata_returns_OK_response-1699302330\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:30.371095+00:00\",\"modified\":\"2023-11-06T20:25:30.371095+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:30.358461+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:30 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"incident_id\":\"716a6bf5-cea2-5026-ba21-e1354d790343\",\"integration_type\":1,\"metadata\":{\"channels\":[{\"channel_id\":\"C0123456789\",\"channel_name\":\"#example-channel-name\",\"redirect_url\":\"https://slack.com/app_redirect?channel=C0123456789&team=T01234567\",\"team_id\":\"T01234567\"}]},\"status\":2},\"type\":\"incident_integrations\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/incidents/716a6bf5-cea2-5026-ba21-e1354d790343/relationships/integrations"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incident_integrations\",\"id\":\"b16d89a2-4e69-542f-bfa3-d7052320a89b\",\"attributes\":{\"created\":\"2023-11-06T20:25:30.816058+00:00\",\"modified\":\"2023-11-06T20:25:30.816058+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"incident_id\":\"716a6bf5-cea2-5026-ba21-e1354d790343\",\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"status\":3,\"integration_type\":1,\"metadata\":{\"channels\":[{\"channel_id\":\"C0123456789\",\"channel_name\":\"#example-channel-name\",\"redirect_url\":\"https://slack.com/app_redirect?channel=C0123456789&team=T01234567\",\"team_id\":\"T01234567\"}]}},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:30 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/incidents/716a6bf5-cea2-5026-ba21-e1354d790343/relationships/integrations"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"incident_integrations\",\"id\":\"b16d89a2-4e69-542f-bfa3-d7052320a89b\",\"attributes\":{\"created\":\"2023-11-06T20:25:30.816058+00:00\",\"modified\":\"2023-11-06T20:25:30.816058+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"incident_id\":\"716a6bf5-cea2-5026-ba21-e1354d790343\",\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"status\":3,\"integration_type\":1,\"metadata\":{\"channels\":[{\"team_id\":\"T01234567\",\"channel_id\":\"C0123456789\",\"channel_name\":\"#example-channel-name\",\"redirect_url\":\"https://slack.com/app_redirect?channel=C0123456789&team=T01234567\"}]}},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}],\"meta\":{\"pagination\":{\"offset\":0,\"next_offset\":1,\"size\":1}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:30 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/716a6bf5-cea2-5026-ba21-e1354d790343/relationships/integrations/b16d89a2-4e69-542f-bfa3-d7052320a89b"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:30 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/716a6bf5-cea2-5026-ba21-e1354d790343"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:30 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Get_a_list_of_an_incident_s_integration_metadata_returns_OK_response-1699302330\"},\"type\":\"incidents\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/incidents" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incidents\",\"id\":\"716a6bf5-cea2-5026-ba21-e1354d790343\",\"attributes\":{\"public_id\":174808,\"incident_type_uuid\":null,\"title\":\"Test-Get_a_list_of_an_incident_s_integration_metadata_returns_OK_response-1699302330\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:30.371095+00:00\",\"modified\":\"2023-11-06T20:25:30.371095+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:30.358461+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:30 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"incident_id\":\"716a6bf5-cea2-5026-ba21-e1354d790343\",\"integration_type\":1,\"metadata\":{\"channels\":[{\"channel_id\":\"C0123456789\",\"channel_name\":\"#example-channel-name\",\"redirect_url\":\"https://slack.com/app_redirect?channel=C0123456789&team=T01234567\",\"team_id\":\"T01234567\"}]},\"status\":2},\"type\":\"incident_integrations\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/incidents/716a6bf5-cea2-5026-ba21-e1354d790343/relationships/integrations" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incident_integrations\",\"id\":\"b16d89a2-4e69-542f-bfa3-d7052320a89b\",\"attributes\":{\"created\":\"2023-11-06T20:25:30.816058+00:00\",\"modified\":\"2023-11-06T20:25:30.816058+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"incident_id\":\"716a6bf5-cea2-5026-ba21-e1354d790343\",\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"status\":3,\"integration_type\":1,\"metadata\":{\"channels\":[{\"channel_id\":\"C0123456789\",\"channel_name\":\"#example-channel-name\",\"redirect_url\":\"https://slack.com/app_redirect?channel=C0123456789&team=T01234567\",\"team_id\":\"T01234567\"}]}},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:30 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/incidents/716a6bf5-cea2-5026-ba21-e1354d790343/relationships/integrations" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"incident_integrations\",\"id\":\"b16d89a2-4e69-542f-bfa3-d7052320a89b\",\"attributes\":{\"created\":\"2023-11-06T20:25:30.816058+00:00\",\"modified\":\"2023-11-06T20:25:30.816058+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"incident_id\":\"716a6bf5-cea2-5026-ba21-e1354d790343\",\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"status\":3,\"integration_type\":1,\"metadata\":{\"channels\":[{\"team_id\":\"T01234567\",\"channel_id\":\"C0123456789\",\"channel_name\":\"#example-channel-name\",\"redirect_url\":\"https://slack.com/app_redirect?channel=C0123456789&team=T01234567\"}]}},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}],\"meta\":{\"pagination\":{\"offset\":0,\"next_offset\":1,\"size\":1}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:30 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/716a6bf5-cea2-5026-ba21-e1354d790343/relationships/integrations/b16d89a2-4e69-542f-bfa3-d7052320a89b" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:30 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/716a6bf5-cea2-5026-ba21-e1354d790343" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:30 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incidents/Get-a-list-of-an-incident-s-todos-returns-OK-response.json b/tests/scenarios/cassettes/v2/incidents/Get-a-list-of-an-incident-s-todos-returns-OK-response.json index 08468027f..f5b0f032e 100644 --- a/tests/scenarios/cassettes/v2/incidents/Get-a-list-of-an-incident-s-todos-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/incidents/Get-a-list-of-an-incident-s-todos-returns-OK-response.json @@ -1 +1,157 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Get_a_list_of_an_incident_s_todos_returns_OK_response-1678213640\"},\"type\":\"incidents\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/incidents"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incidents\",\"id\":\"931066f6-d890-55f1-912f-79dc982ed271\",\"attributes\":{\"public_id\":124741,\"title\":\"Test-Get_a_list_of_an_incident_s_todos_returns_OK_response-1678213640\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-03-07T18:27:20.124554+00:00\",\"modified\":\"2023-03-07T18:27:20.124554+00:00\",\"commander\":null,\"detected\":\"2023-03-07T18:27:20.116468+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Tue, 07 Mar 2023 18:27:20 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"assignees\":[\"@test.user@test.com\",{\"icon\":\"https://a.slack-edge.com/80588/img/slackbot_48.png\",\"id\":\"USLACKBOT\",\"name\":\"Slackbot\",\"source\":\"slack\"}],\"content\":\"Follow up with customer about the impact they saw.\"},\"type\":\"incident_todos\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/incidents/931066f6-d890-55f1-912f-79dc982ed271/relationships/todos"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incident_todos\",\"id\":\"77595d1b-b663-5bd8-81b7-997a817512b9\",\"attributes\":{\"created\":\"2023-03-07T18:27:20.438113+00:00\",\"modified\":\"2023-03-07T18:27:20.438113+00:00\",\"completed\":null,\"due_date\":null,\"assignees\":[\"@test.user@test.com\",{\"icon\":\"https://a.slack-edge.com/80588/img/slackbot_48.png\",\"id\":\"USLACKBOT\",\"name\":\"Slackbot\",\"source\":\"slack\"}],\"content\":\"Follow up with customer about the impact they saw.\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"incident_id\":\"931066f6-d890-55f1-912f-79dc982ed271\",\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Tue, 07 Mar 2023 18:27:20 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/incidents/931066f6-d890-55f1-912f-79dc982ed271/relationships/todos"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"incident_todos\",\"id\":\"77595d1b-b663-5bd8-81b7-997a817512b9\",\"attributes\":{\"created\":\"2023-03-07T18:27:20.438113+00:00\",\"modified\":\"2023-03-07T18:27:20.438113+00:00\",\"completed\":null,\"due_date\":null,\"assignees\":[\"@test.user@test.com\",{\"id\":\"USLACKBOT\",\"icon\":\"https://a.slack-edge.com/80588/img/slackbot_48.png\",\"name\":\"Slackbot\",\"source\":\"slack\"}],\"content\":\"Follow up with customer about the impact they saw.\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"incident_id\":\"931066f6-d890-55f1-912f-79dc982ed271\",\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}],\"meta\":{\"pagination\":{\"offset\":0,\"next_offset\":1,\"size\":1}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 07 Mar 2023 18:27:20 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/931066f6-d890-55f1-912f-79dc982ed271/relationships/todos/77595d1b-b663-5bd8-81b7-997a817512b9"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Tue, 07 Mar 2023 18:27:20 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/931066f6-d890-55f1-912f-79dc982ed271"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Tue, 07 Mar 2023 18:27:20 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Get_a_list_of_an_incident_s_todos_returns_OK_response-1678213640\"},\"type\":\"incidents\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/incidents" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incidents\",\"id\":\"931066f6-d890-55f1-912f-79dc982ed271\",\"attributes\":{\"public_id\":124741,\"title\":\"Test-Get_a_list_of_an_incident_s_todos_returns_OK_response-1678213640\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-03-07T18:27:20.124554+00:00\",\"modified\":\"2023-03-07T18:27:20.124554+00:00\",\"commander\":null,\"detected\":\"2023-03-07T18:27:20.116468+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Tue, 07 Mar 2023 18:27:20 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"assignees\":[\"@test.user@test.com\",{\"icon\":\"https://a.slack-edge.com/80588/img/slackbot_48.png\",\"id\":\"USLACKBOT\",\"name\":\"Slackbot\",\"source\":\"slack\"}],\"content\":\"Follow up with customer about the impact they saw.\"},\"type\":\"incident_todos\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/incidents/931066f6-d890-55f1-912f-79dc982ed271/relationships/todos" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incident_todos\",\"id\":\"77595d1b-b663-5bd8-81b7-997a817512b9\",\"attributes\":{\"created\":\"2023-03-07T18:27:20.438113+00:00\",\"modified\":\"2023-03-07T18:27:20.438113+00:00\",\"completed\":null,\"due_date\":null,\"assignees\":[\"@test.user@test.com\",{\"icon\":\"https://a.slack-edge.com/80588/img/slackbot_48.png\",\"id\":\"USLACKBOT\",\"name\":\"Slackbot\",\"source\":\"slack\"}],\"content\":\"Follow up with customer about the impact they saw.\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"incident_id\":\"931066f6-d890-55f1-912f-79dc982ed271\",\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Tue, 07 Mar 2023 18:27:20 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/incidents/931066f6-d890-55f1-912f-79dc982ed271/relationships/todos" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"incident_todos\",\"id\":\"77595d1b-b663-5bd8-81b7-997a817512b9\",\"attributes\":{\"created\":\"2023-03-07T18:27:20.438113+00:00\",\"modified\":\"2023-03-07T18:27:20.438113+00:00\",\"completed\":null,\"due_date\":null,\"assignees\":[\"@test.user@test.com\",{\"id\":\"USLACKBOT\",\"icon\":\"https://a.slack-edge.com/80588/img/slackbot_48.png\",\"name\":\"Slackbot\",\"source\":\"slack\"}],\"content\":\"Follow up with customer about the impact they saw.\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"incident_id\":\"931066f6-d890-55f1-912f-79dc982ed271\",\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}],\"meta\":{\"pagination\":{\"offset\":0,\"next_offset\":1,\"size\":1}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 07 Mar 2023 18:27:20 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/931066f6-d890-55f1-912f-79dc982ed271/relationships/todos/77595d1b-b663-5bd8-81b7-997a817512b9" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Tue, 07 Mar 2023 18:27:20 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/931066f6-d890-55f1-912f-79dc982ed271" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Tue, 07 Mar 2023 18:27:20 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incidents/Get-a-list-of-incidents-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v2/incidents/Get-a-list-of-incidents-returns-OK-response-with-pagination.json index c6cbc5532..da0186cca 100644 --- a/tests/scenarios/cassettes/v2/incidents/Get-a-list-of-incidents-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v2/incidents/Get-a-list-of-incidents-returns-OK-response-with-pagination.json @@ -1 +1,61 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/incidents?page%5Bsize%5D=2"}, "response": {"body": {"string": "{\"meta\":{\"pagination\":{\"size\":2,\"next_offset\":2,\"offset\":0}},\"data\":[{\"type\":\"incidents\",\"id\":\"ed3ff75e-6ce6-5b00-8ab4-665fcaeda9f8\",\"attributes\":{\"public_id\":62105,\"title\":\"Test-Ruby-Get_the_details_of_an_incident_returns_OK_response-1631710219\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"created\":\"2021-09-15T12:50:19.743510+00:00\",\"modified\":\"2021-09-15T12:50:19.743510+00:00\",\"detected\":\"2021-09-15T12:50:19.741188+00:00\",\"created_by_uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"commander_user\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"00037f9b-dd47-5b21-bcf3-f8dd30e907da\",\"attributes\":{\"public_id\":62582,\"title\":\"Test-Get_a_list_of_incidents_returns_OK_response-1631884327\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2021-09-17T13:12:08.512729+00:00\",\"modified\":\"2021-09-17T13:12:08.512729+00:00\",\"detected\":\"2021-09-17T13:12:08.510606+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 12 Apr 2022 13:28:59 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/incidents?page%5Bsize%5D=2&page%5Boffset%5D=2"}, "response": {"body": {"string": "{\"meta\":{\"pagination\":{\"size\":1,\"offset\":2}},\"data\":[{\"type\":\"incidents\",\"id\":\"1524396f-fa67-5e6d-a27d-78e7bd85f14d\",\"attributes\":{\"public_id\":62583,\"title\":\"Test-Update_an_existing_incident_returns_OK_response-1631884336\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2021-09-17T13:12:17.076724+00:00\",\"modified\":\"2021-09-17T13:12:17.076724+00:00\",\"detected\":\"2021-09-17T13:12:17.075124+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 12 Apr 2022 13:28:59 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/incidents?page%5Bsize%5D=2" + }, + "response": { + "body": { + "string": "{\"meta\":{\"pagination\":{\"size\":2,\"next_offset\":2,\"offset\":0}},\"data\":[{\"type\":\"incidents\",\"id\":\"ed3ff75e-6ce6-5b00-8ab4-665fcaeda9f8\",\"attributes\":{\"public_id\":62105,\"title\":\"Test-Ruby-Get_the_details_of_an_incident_returns_OK_response-1631710219\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"created\":\"2021-09-15T12:50:19.743510+00:00\",\"modified\":\"2021-09-15T12:50:19.743510+00:00\",\"detected\":\"2021-09-15T12:50:19.741188+00:00\",\"created_by_uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"commander_user\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"00037f9b-dd47-5b21-bcf3-f8dd30e907da\",\"attributes\":{\"public_id\":62582,\"title\":\"Test-Get_a_list_of_incidents_returns_OK_response-1631884327\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2021-09-17T13:12:08.512729+00:00\",\"modified\":\"2021-09-17T13:12:08.512729+00:00\",\"detected\":\"2021-09-17T13:12:08.510606+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 12 Apr 2022 13:28:59 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/incidents?page%5Bsize%5D=2&page%5Boffset%5D=2" + }, + "response": { + "body": { + "string": "{\"meta\":{\"pagination\":{\"size\":1,\"offset\":2}},\"data\":[{\"type\":\"incidents\",\"id\":\"1524396f-fa67-5e6d-a27d-78e7bd85f14d\",\"attributes\":{\"public_id\":62583,\"title\":\"Test-Update_an_existing_incident_returns_OK_response-1631884336\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2021-09-17T13:12:17.076724+00:00\",\"modified\":\"2021-09-17T13:12:17.076724+00:00\",\"detected\":\"2021-09-17T13:12:17.075124+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 12 Apr 2022 13:28:59 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incidents/Get-a-list-of-incidents-returns-OK-response.json b/tests/scenarios/cassettes/v2/incidents/Get-a-list-of-incidents-returns-OK-response.json index 61902887b..b51e79316 100644 --- a/tests/scenarios/cassettes/v2/incidents/Get-a-list-of-incidents-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/incidents/Get-a-list-of-incidents-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Get_a_list_of_incidents_returns_OK_response-1699302331\"},\"type\":\"incidents\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/incidents"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incidents\",\"id\":\"ab39b86b-fe44-570b-be1b-6ce0242d980d\",\"attributes\":{\"public_id\":174809,\"incident_type_uuid\":null,\"title\":\"Test-Get_a_list_of_incidents_returns_OK_response-1699302331\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:31.701983+00:00\",\"modified\":\"2023-11-06T20:25:31.701983+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:31.689012+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:31 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/incidents"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"incidents\",\"id\":\"53be4c9b-17c1-5109-9e61-f97804f78df0\",\"attributes\":{\"public_id\":174180,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Add_commander_to_an_incident_returns_OK_response-1699043757\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-03T20:35:58.136089+00:00\",\"modified\":\"2023-11-03T20:35:58.136089+00:00\",\"detected\":\"2023-11-03T20:35:58.123446+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"a72d6e86-3581-5a0c-9407-7c118a72e3b9\",\"attributes\":{\"public_id\":174181,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Create_an_incident_attachment_returns_OK_response-1699043758\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-03T20:35:58.740564+00:00\",\"modified\":\"2023-11-03T20:35:58.740564+00:00\",\"detected\":\"2023-11-03T20:35:58.729778+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"40eb208a-c867-5b51-97ee-e8efba340396\",\"attributes\":{\"public_id\":174182,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Create_an_incident_integration_metadata_returns_CREATED_response-1699043758\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-03T20:35:59.153850+00:00\",\"modified\":\"2023-11-03T20:35:59.153850+00:00\",\"detected\":\"2023-11-03T20:35:59.141884+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"233463fe-28bd-5361-9d14-98e2ac20f328\",\"attributes\":{\"public_id\":174183,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Create_an_incident_returns_CREATED_response-1699043759\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-03T20:35:59.657637+00:00\",\"modified\":\"2023-11-03T20:35:59.657637+00:00\",\"detected\":\"2023-11-03T20:35:59.647678+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"resolved\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"resolved\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":{\"type\":\"users\",\"id\":\"98ebf0b3-7a88-11ee-8d9d-868e8930478f\"}},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[{\"type\":\"incident_responders\",\"id\":\"598eca3a-47d8-55a8-a2ca-0a95d0b9ec7c\"}]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"1b45d550-12f7-55c8-89ed-826d688d3d1f\",\"attributes\":{\"public_id\":174184,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Delete_an_existing_incident_returns_OK_response-1699043760\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-03T20:36:00.341449+00:00\",\"modified\":\"2023-11-03T20:36:00.341449+00:00\",\"detected\":\"2023-11-03T20:36:00.331012+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"19c70c0d-7e83-5f81-bcd2-75e0f90ee11f\",\"attributes\":{\"public_id\":174185,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Delete_an_incident_integration_metadata_returns_OK_response-1699043760\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-03T20:36:00.653305+00:00\",\"modified\":\"2023-11-03T20:36:00.653305+00:00\",\"detected\":\"2023-11-03T20:36:00.642522+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"0ddf94c4-47ec-5fbb-8827-101c1b2678e0\",\"attributes\":{\"public_id\":174186,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Get_a_list_of_an_incident_s_integration_metadata_returns_OK_response-1699043760\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-03T20:36:00.962444+00:00\",\"modified\":\"2023-11-03T20:36:00.962444+00:00\",\"detected\":\"2023-11-03T20:36:00.951291+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"ce870e8d-cd51-5b58-92ef-2dfe01530066\",\"attributes\":{\"public_id\":174187,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Get_a_list_of_incidents_returns_OK_response-1699043761\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-03T20:36:01.278262+00:00\",\"modified\":\"2023-11-03T20:36:01.278262+00:00\",\"detected\":\"2023-11-03T20:36:01.267284+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"9c68f2c7-256e-5e98-a176-97526fd9d257\",\"attributes\":{\"public_id\":174188,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Get_incident_attachments_returns_OK_response-1699043761\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-03T20:36:01.678836+00:00\",\"modified\":\"2023-11-03T20:36:01.678836+00:00\",\"detected\":\"2023-11-03T20:36:01.662659+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"e4b4a761-8426-5e8c-ac41-e151eee07af9\",\"attributes\":{\"public_id\":174189,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Get_incident_integration_metadata_details_returns_OK_response-1699043761\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-03T20:36:02.127431+00:00\",\"modified\":\"2023-11-03T20:36:02.127431+00:00\",\"detected\":\"2023-11-03T20:36:02.115307+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"e70e2781-1df4-5e93-9210-7c672ff65a8c\",\"attributes\":{\"public_id\":174190,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Get_the_details_of_an_incident_returns_OK_response-1699043762\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-03T20:36:02.523488+00:00\",\"modified\":\"2023-11-03T20:36:02.523488+00:00\",\"detected\":\"2023-11-03T20:36:02.508790+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"68000356-e808-5571-b49a-109e96bc5e08\",\"attributes\":{\"public_id\":174191,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Remove_commander_from_an_incident_returns_OK_response-1699043762\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-03T20:36:02.811051+00:00\",\"modified\":\"2023-11-03T20:36:02.811051+00:00\",\"detected\":\"2023-11-03T20:36:02.800270+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"5af2ff33-ec8d-50c1-ae0b-77694ea77c89\",\"attributes\":{\"public_id\":174192,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Update_an_existing_incident_integration_metadata_returns_OK_response-1699043762\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-03T20:36:03.083799+00:00\",\"modified\":\"2023-11-03T20:36:03.083799+00:00\",\"detected\":\"2023-11-03T20:36:03.071557+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"96534427-6172-53bf-8cbe-215de5b207e1\",\"attributes\":{\"public_id\":174193,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Update_an_existing_incident_returns_OK_response-1699043763\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-03T20:36:03.395843+00:00\",\"modified\":\"2023-11-03T20:36:03.395843+00:00\",\"detected\":\"2023-11-03T20:36:03.379763+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"e729fbb8-4087-5227-8725-11e44fe85b5f\",\"attributes\":{\"public_id\":174194,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Update_an_incident_todo_returns_OK_response-1699043763\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-03T20:36:03.670238+00:00\",\"modified\":\"2023-11-03T20:36:03.670238+00:00\",\"detected\":\"2023-11-03T20:36:03.659639+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"ab39b86b-fe44-570b-be1b-6ce0242d980d\",\"attributes\":{\"public_id\":174809,\"incident_type_uuid\":null,\"title\":\"Test-Get_a_list_of_incidents_returns_OK_response-1699302331\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-06T20:25:31.701983+00:00\",\"modified\":\"2023-11-06T20:25:31.701983+00:00\",\"detected\":\"2023-11-06T20:25:31.689012+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}],\"meta\":{\"pagination\":{\"offset\":0,\"next_offset\":16,\"size\":16}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:31 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/ab39b86b-fe44-570b-be1b-6ce0242d980d"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:31 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Get_a_list_of_incidents_returns_OK_response-1699302331\"},\"type\":\"incidents\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/incidents" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incidents\",\"id\":\"ab39b86b-fe44-570b-be1b-6ce0242d980d\",\"attributes\":{\"public_id\":174809,\"incident_type_uuid\":null,\"title\":\"Test-Get_a_list_of_incidents_returns_OK_response-1699302331\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:31.701983+00:00\",\"modified\":\"2023-11-06T20:25:31.701983+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:31.689012+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:31 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/incidents" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"incidents\",\"id\":\"53be4c9b-17c1-5109-9e61-f97804f78df0\",\"attributes\":{\"public_id\":174180,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Add_commander_to_an_incident_returns_OK_response-1699043757\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-03T20:35:58.136089+00:00\",\"modified\":\"2023-11-03T20:35:58.136089+00:00\",\"detected\":\"2023-11-03T20:35:58.123446+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"a72d6e86-3581-5a0c-9407-7c118a72e3b9\",\"attributes\":{\"public_id\":174181,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Create_an_incident_attachment_returns_OK_response-1699043758\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-03T20:35:58.740564+00:00\",\"modified\":\"2023-11-03T20:35:58.740564+00:00\",\"detected\":\"2023-11-03T20:35:58.729778+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"40eb208a-c867-5b51-97ee-e8efba340396\",\"attributes\":{\"public_id\":174182,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Create_an_incident_integration_metadata_returns_CREATED_response-1699043758\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-03T20:35:59.153850+00:00\",\"modified\":\"2023-11-03T20:35:59.153850+00:00\",\"detected\":\"2023-11-03T20:35:59.141884+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"233463fe-28bd-5361-9d14-98e2ac20f328\",\"attributes\":{\"public_id\":174183,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Create_an_incident_returns_CREATED_response-1699043759\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-03T20:35:59.657637+00:00\",\"modified\":\"2023-11-03T20:35:59.657637+00:00\",\"detected\":\"2023-11-03T20:35:59.647678+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"resolved\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"resolved\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":{\"type\":\"users\",\"id\":\"98ebf0b3-7a88-11ee-8d9d-868e8930478f\"}},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[{\"type\":\"incident_responders\",\"id\":\"598eca3a-47d8-55a8-a2ca-0a95d0b9ec7c\"}]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"1b45d550-12f7-55c8-89ed-826d688d3d1f\",\"attributes\":{\"public_id\":174184,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Delete_an_existing_incident_returns_OK_response-1699043760\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-03T20:36:00.341449+00:00\",\"modified\":\"2023-11-03T20:36:00.341449+00:00\",\"detected\":\"2023-11-03T20:36:00.331012+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"19c70c0d-7e83-5f81-bcd2-75e0f90ee11f\",\"attributes\":{\"public_id\":174185,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Delete_an_incident_integration_metadata_returns_OK_response-1699043760\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-03T20:36:00.653305+00:00\",\"modified\":\"2023-11-03T20:36:00.653305+00:00\",\"detected\":\"2023-11-03T20:36:00.642522+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"0ddf94c4-47ec-5fbb-8827-101c1b2678e0\",\"attributes\":{\"public_id\":174186,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Get_a_list_of_an_incident_s_integration_metadata_returns_OK_response-1699043760\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-03T20:36:00.962444+00:00\",\"modified\":\"2023-11-03T20:36:00.962444+00:00\",\"detected\":\"2023-11-03T20:36:00.951291+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"ce870e8d-cd51-5b58-92ef-2dfe01530066\",\"attributes\":{\"public_id\":174187,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Get_a_list_of_incidents_returns_OK_response-1699043761\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-03T20:36:01.278262+00:00\",\"modified\":\"2023-11-03T20:36:01.278262+00:00\",\"detected\":\"2023-11-03T20:36:01.267284+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"9c68f2c7-256e-5e98-a176-97526fd9d257\",\"attributes\":{\"public_id\":174188,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Get_incident_attachments_returns_OK_response-1699043761\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-03T20:36:01.678836+00:00\",\"modified\":\"2023-11-03T20:36:01.678836+00:00\",\"detected\":\"2023-11-03T20:36:01.662659+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"e4b4a761-8426-5e8c-ac41-e151eee07af9\",\"attributes\":{\"public_id\":174189,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Get_incident_integration_metadata_details_returns_OK_response-1699043761\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-03T20:36:02.127431+00:00\",\"modified\":\"2023-11-03T20:36:02.127431+00:00\",\"detected\":\"2023-11-03T20:36:02.115307+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"e70e2781-1df4-5e93-9210-7c672ff65a8c\",\"attributes\":{\"public_id\":174190,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Get_the_details_of_an_incident_returns_OK_response-1699043762\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-03T20:36:02.523488+00:00\",\"modified\":\"2023-11-03T20:36:02.523488+00:00\",\"detected\":\"2023-11-03T20:36:02.508790+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"68000356-e808-5571-b49a-109e96bc5e08\",\"attributes\":{\"public_id\":174191,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Remove_commander_from_an_incident_returns_OK_response-1699043762\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-03T20:36:02.811051+00:00\",\"modified\":\"2023-11-03T20:36:02.811051+00:00\",\"detected\":\"2023-11-03T20:36:02.800270+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"5af2ff33-ec8d-50c1-ae0b-77694ea77c89\",\"attributes\":{\"public_id\":174192,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Update_an_existing_incident_integration_metadata_returns_OK_response-1699043762\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-03T20:36:03.083799+00:00\",\"modified\":\"2023-11-03T20:36:03.083799+00:00\",\"detected\":\"2023-11-03T20:36:03.071557+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"96534427-6172-53bf-8cbe-215de5b207e1\",\"attributes\":{\"public_id\":174193,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Update_an_existing_incident_returns_OK_response-1699043763\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-03T20:36:03.395843+00:00\",\"modified\":\"2023-11-03T20:36:03.395843+00:00\",\"detected\":\"2023-11-03T20:36:03.379763+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"e729fbb8-4087-5227-8725-11e44fe85b5f\",\"attributes\":{\"public_id\":174194,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Update_an_incident_todo_returns_OK_response-1699043763\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-03T20:36:03.670238+00:00\",\"modified\":\"2023-11-03T20:36:03.670238+00:00\",\"detected\":\"2023-11-03T20:36:03.659639+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"ab39b86b-fe44-570b-be1b-6ce0242d980d\",\"attributes\":{\"public_id\":174809,\"incident_type_uuid\":null,\"title\":\"Test-Get_a_list_of_incidents_returns_OK_response-1699302331\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-06T20:25:31.701983+00:00\",\"modified\":\"2023-11-06T20:25:31.701983+00:00\",\"detected\":\"2023-11-06T20:25:31.689012+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}],\"meta\":{\"pagination\":{\"offset\":0,\"next_offset\":16,\"size\":16}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:31 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/ab39b86b-fe44-570b-be1b-6ce0242d980d" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:31 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incidents/Get-incident-attachments-returns-OK-response.json b/tests/scenarios/cassettes/v2/incidents/Get-incident-attachments-returns-OK-response.json index 6ac502275..adb2c366e 100644 --- a/tests/scenarios/cassettes/v2/incidents/Get-incident-attachments-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/incidents/Get-incident-attachments-returns-OK-response.json @@ -1 +1,129 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Get_incident_attachments_returns_OK_response-1699302332\"},\"type\":\"incidents\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/incidents"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incidents\",\"id\":\"e49b3ad0-3bd0-5b05-91a1-06706e7e8bda\",\"attributes\":{\"public_id\":174810,\"incident_type_uuid\":null,\"title\":\"Test-Get_incident_attachments_returns_OK_response-1699302332\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:33.000644+00:00\",\"modified\":\"2023-11-06T20:25:33.000644+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:32.991070+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:32 GMT"}, {"request": {"body": {"string": "{\"data\":[{\"attributes\":{\"attachment\":{\"documentUrl\":\"https://www.example.com/doc\",\"title\":\"Important Doc\"},\"attachment_type\":\"link\"},\"type\":\"incident_attachments\"}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/incidents/e49b3ad0-3bd0-5b05-91a1-06706e7e8bda/attachments"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"incident_attachments\",\"id\":\"04f09f86-e2bf-576b-976e-7002405673c4\",\"attributes\":{\"modified\":\"2023-11-06T20:25:33.440319+00:00\",\"attachment_type\":\"link\",\"attachment\":{\"title\":\"Important Doc\",\"documentUrl\":\"https://www.example.com/doc\"}},\"relationships\":{\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:32 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/incidents/e49b3ad0-3bd0-5b05-91a1-06706e7e8bda/attachments"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"incident_attachments\",\"id\":\"04f09f86-e2bf-576b-976e-7002405673c4\",\"attributes\":{\"modified\":\"2023-11-06T20:25:33.440319+00:00\",\"attachment_type\":\"link\",\"attachment\":{\"title\":\"Important Doc\",\"documentUrl\":\"https://www.example.com/doc\"}},\"relationships\":{\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:32 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/e49b3ad0-3bd0-5b05-91a1-06706e7e8bda"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:32 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Get_incident_attachments_returns_OK_response-1699302332\"},\"type\":\"incidents\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/incidents" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incidents\",\"id\":\"e49b3ad0-3bd0-5b05-91a1-06706e7e8bda\",\"attributes\":{\"public_id\":174810,\"incident_type_uuid\":null,\"title\":\"Test-Get_incident_attachments_returns_OK_response-1699302332\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:33.000644+00:00\",\"modified\":\"2023-11-06T20:25:33.000644+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:32.991070+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:32 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":[{\"attributes\":{\"attachment\":{\"documentUrl\":\"https://www.example.com/doc\",\"title\":\"Important Doc\"},\"attachment_type\":\"link\"},\"type\":\"incident_attachments\"}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/incidents/e49b3ad0-3bd0-5b05-91a1-06706e7e8bda/attachments" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"incident_attachments\",\"id\":\"04f09f86-e2bf-576b-976e-7002405673c4\",\"attributes\":{\"modified\":\"2023-11-06T20:25:33.440319+00:00\",\"attachment_type\":\"link\",\"attachment\":{\"title\":\"Important Doc\",\"documentUrl\":\"https://www.example.com/doc\"}},\"relationships\":{\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:32 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/incidents/e49b3ad0-3bd0-5b05-91a1-06706e7e8bda/attachments" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"incident_attachments\",\"id\":\"04f09f86-e2bf-576b-976e-7002405673c4\",\"attributes\":{\"modified\":\"2023-11-06T20:25:33.440319+00:00\",\"attachment_type\":\"link\",\"attachment\":{\"title\":\"Important Doc\",\"documentUrl\":\"https://www.example.com/doc\"}},\"relationships\":{\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:32 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/e49b3ad0-3bd0-5b05-91a1-06706e7e8bda" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:32 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incidents/Get-incident-integration-metadata-details-returns-OK-response.json b/tests/scenarios/cassettes/v2/incidents/Get-incident-integration-metadata-details-returns-OK-response.json index f65d0ec23..abda73fda 100644 --- a/tests/scenarios/cassettes/v2/incidents/Get-incident-integration-metadata-details-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/incidents/Get-incident-integration-metadata-details-returns-OK-response.json @@ -1 +1,157 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Get_incident_integration_metadata_details_returns_OK_response-1699302334\"},\"type\":\"incidents\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/incidents"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incidents\",\"id\":\"0c83a971-8024-5a9f-8748-957c6a94dcbd\",\"attributes\":{\"public_id\":174811,\"incident_type_uuid\":null,\"title\":\"Test-Get_incident_integration_metadata_details_returns_OK_response-1699302334\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:34.181614+00:00\",\"modified\":\"2023-11-06T20:25:34.181614+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:34.167758+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:34 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"incident_id\":\"0c83a971-8024-5a9f-8748-957c6a94dcbd\",\"integration_type\":1,\"metadata\":{\"channels\":[{\"channel_id\":\"C0123456789\",\"channel_name\":\"#example-channel-name\",\"redirect_url\":\"https://slack.com/app_redirect?channel=C0123456789&team=T01234567\",\"team_id\":\"T01234567\"}]},\"status\":2},\"type\":\"incident_integrations\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/incidents/0c83a971-8024-5a9f-8748-957c6a94dcbd/relationships/integrations"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incident_integrations\",\"id\":\"a25ca729-6da3-5a0c-90af-7f1cbe8df9c1\",\"attributes\":{\"created\":\"2023-11-06T20:25:34.663600+00:00\",\"modified\":\"2023-11-06T20:25:34.663600+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"incident_id\":\"0c83a971-8024-5a9f-8748-957c6a94dcbd\",\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"status\":3,\"integration_type\":1,\"metadata\":{\"channels\":[{\"channel_id\":\"C0123456789\",\"channel_name\":\"#example-channel-name\",\"redirect_url\":\"https://slack.com/app_redirect?channel=C0123456789&team=T01234567\",\"team_id\":\"T01234567\"}]}},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:34 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/incidents/0c83a971-8024-5a9f-8748-957c6a94dcbd/relationships/integrations/a25ca729-6da3-5a0c-90af-7f1cbe8df9c1"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incident_integrations\",\"id\":\"a25ca729-6da3-5a0c-90af-7f1cbe8df9c1\",\"attributes\":{\"created\":\"2023-11-06T20:25:34.663600+00:00\",\"modified\":\"2023-11-06T20:25:34.663600+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"incident_id\":\"0c83a971-8024-5a9f-8748-957c6a94dcbd\",\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"status\":3,\"integration_type\":1,\"metadata\":{\"channels\":[{\"team_id\":\"T01234567\",\"channel_id\":\"C0123456789\",\"channel_name\":\"#example-channel-name\",\"redirect_url\":\"https://slack.com/app_redirect?channel=C0123456789&team=T01234567\"}]}},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:34 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/0c83a971-8024-5a9f-8748-957c6a94dcbd/relationships/integrations/a25ca729-6da3-5a0c-90af-7f1cbe8df9c1"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:34 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/0c83a971-8024-5a9f-8748-957c6a94dcbd"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:34 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Get_incident_integration_metadata_details_returns_OK_response-1699302334\"},\"type\":\"incidents\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/incidents" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incidents\",\"id\":\"0c83a971-8024-5a9f-8748-957c6a94dcbd\",\"attributes\":{\"public_id\":174811,\"incident_type_uuid\":null,\"title\":\"Test-Get_incident_integration_metadata_details_returns_OK_response-1699302334\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:34.181614+00:00\",\"modified\":\"2023-11-06T20:25:34.181614+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:34.167758+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:34 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"incident_id\":\"0c83a971-8024-5a9f-8748-957c6a94dcbd\",\"integration_type\":1,\"metadata\":{\"channels\":[{\"channel_id\":\"C0123456789\",\"channel_name\":\"#example-channel-name\",\"redirect_url\":\"https://slack.com/app_redirect?channel=C0123456789&team=T01234567\",\"team_id\":\"T01234567\"}]},\"status\":2},\"type\":\"incident_integrations\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/incidents/0c83a971-8024-5a9f-8748-957c6a94dcbd/relationships/integrations" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incident_integrations\",\"id\":\"a25ca729-6da3-5a0c-90af-7f1cbe8df9c1\",\"attributes\":{\"created\":\"2023-11-06T20:25:34.663600+00:00\",\"modified\":\"2023-11-06T20:25:34.663600+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"incident_id\":\"0c83a971-8024-5a9f-8748-957c6a94dcbd\",\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"status\":3,\"integration_type\":1,\"metadata\":{\"channels\":[{\"channel_id\":\"C0123456789\",\"channel_name\":\"#example-channel-name\",\"redirect_url\":\"https://slack.com/app_redirect?channel=C0123456789&team=T01234567\",\"team_id\":\"T01234567\"}]}},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:34 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/incidents/0c83a971-8024-5a9f-8748-957c6a94dcbd/relationships/integrations/a25ca729-6da3-5a0c-90af-7f1cbe8df9c1" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incident_integrations\",\"id\":\"a25ca729-6da3-5a0c-90af-7f1cbe8df9c1\",\"attributes\":{\"created\":\"2023-11-06T20:25:34.663600+00:00\",\"modified\":\"2023-11-06T20:25:34.663600+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"incident_id\":\"0c83a971-8024-5a9f-8748-957c6a94dcbd\",\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"status\":3,\"integration_type\":1,\"metadata\":{\"channels\":[{\"team_id\":\"T01234567\",\"channel_id\":\"C0123456789\",\"channel_name\":\"#example-channel-name\",\"redirect_url\":\"https://slack.com/app_redirect?channel=C0123456789&team=T01234567\"}]}},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:34 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/0c83a971-8024-5a9f-8748-957c6a94dcbd/relationships/integrations/a25ca729-6da3-5a0c-90af-7f1cbe8df9c1" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:34 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/0c83a971-8024-5a9f-8748-957c6a94dcbd" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:34 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incidents/Get-incident-todo-details-returns-OK-response.json b/tests/scenarios/cassettes/v2/incidents/Get-incident-todo-details-returns-OK-response.json index 5f690db05..9bd1cc331 100644 --- a/tests/scenarios/cassettes/v2/incidents/Get-incident-todo-details-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/incidents/Get-incident-todo-details-returns-OK-response.json @@ -1 +1,157 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Get_incident_todo_details_returns_OK_response-1678213641\"},\"type\":\"incidents\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/incidents"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incidents\",\"id\":\"37697217-2096-5139-8550-b620b2d8b0a3\",\"attributes\":{\"public_id\":124742,\"title\":\"Test-Get_incident_todo_details_returns_OK_response-1678213641\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-03-07T18:27:21.363231+00:00\",\"modified\":\"2023-03-07T18:27:21.363231+00:00\",\"commander\":null,\"detected\":\"2023-03-07T18:27:21.355801+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Tue, 07 Mar 2023 18:27:21 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"assignees\":[\"@test.user@test.com\",{\"icon\":\"https://a.slack-edge.com/80588/img/slackbot_48.png\",\"id\":\"USLACKBOT\",\"name\":\"Slackbot\",\"source\":\"slack\"}],\"content\":\"Follow up with customer about the impact they saw.\"},\"type\":\"incident_todos\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/incidents/37697217-2096-5139-8550-b620b2d8b0a3/relationships/todos"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incident_todos\",\"id\":\"fde4f9a4-1415-5b9d-b8b4-b15804387d6b\",\"attributes\":{\"created\":\"2023-03-07T18:27:21.843287+00:00\",\"modified\":\"2023-03-07T18:27:21.843287+00:00\",\"completed\":null,\"due_date\":null,\"assignees\":[\"@test.user@test.com\",{\"icon\":\"https://a.slack-edge.com/80588/img/slackbot_48.png\",\"id\":\"USLACKBOT\",\"name\":\"Slackbot\",\"source\":\"slack\"}],\"content\":\"Follow up with customer about the impact they saw.\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"incident_id\":\"37697217-2096-5139-8550-b620b2d8b0a3\",\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Tue, 07 Mar 2023 18:27:21 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/incidents/37697217-2096-5139-8550-b620b2d8b0a3/relationships/todos/fde4f9a4-1415-5b9d-b8b4-b15804387d6b"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incident_todos\",\"id\":\"fde4f9a4-1415-5b9d-b8b4-b15804387d6b\",\"attributes\":{\"created\":\"2023-03-07T18:27:21.843287+00:00\",\"modified\":\"2023-03-07T18:27:21.843287+00:00\",\"completed\":null,\"due_date\":null,\"assignees\":[\"@test.user@test.com\",{\"id\":\"USLACKBOT\",\"icon\":\"https://a.slack-edge.com/80588/img/slackbot_48.png\",\"name\":\"Slackbot\",\"source\":\"slack\"}],\"content\":\"Follow up with customer about the impact they saw.\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"incident_id\":\"37697217-2096-5139-8550-b620b2d8b0a3\",\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 07 Mar 2023 18:27:21 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/37697217-2096-5139-8550-b620b2d8b0a3/relationships/todos/fde4f9a4-1415-5b9d-b8b4-b15804387d6b"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Tue, 07 Mar 2023 18:27:21 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/37697217-2096-5139-8550-b620b2d8b0a3"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Tue, 07 Mar 2023 18:27:21 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Get_incident_todo_details_returns_OK_response-1678213641\"},\"type\":\"incidents\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/incidents" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incidents\",\"id\":\"37697217-2096-5139-8550-b620b2d8b0a3\",\"attributes\":{\"public_id\":124742,\"title\":\"Test-Get_incident_todo_details_returns_OK_response-1678213641\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-03-07T18:27:21.363231+00:00\",\"modified\":\"2023-03-07T18:27:21.363231+00:00\",\"commander\":null,\"detected\":\"2023-03-07T18:27:21.355801+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Tue, 07 Mar 2023 18:27:21 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"assignees\":[\"@test.user@test.com\",{\"icon\":\"https://a.slack-edge.com/80588/img/slackbot_48.png\",\"id\":\"USLACKBOT\",\"name\":\"Slackbot\",\"source\":\"slack\"}],\"content\":\"Follow up with customer about the impact they saw.\"},\"type\":\"incident_todos\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/incidents/37697217-2096-5139-8550-b620b2d8b0a3/relationships/todos" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incident_todos\",\"id\":\"fde4f9a4-1415-5b9d-b8b4-b15804387d6b\",\"attributes\":{\"created\":\"2023-03-07T18:27:21.843287+00:00\",\"modified\":\"2023-03-07T18:27:21.843287+00:00\",\"completed\":null,\"due_date\":null,\"assignees\":[\"@test.user@test.com\",{\"icon\":\"https://a.slack-edge.com/80588/img/slackbot_48.png\",\"id\":\"USLACKBOT\",\"name\":\"Slackbot\",\"source\":\"slack\"}],\"content\":\"Follow up with customer about the impact they saw.\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"incident_id\":\"37697217-2096-5139-8550-b620b2d8b0a3\",\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Tue, 07 Mar 2023 18:27:21 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/incidents/37697217-2096-5139-8550-b620b2d8b0a3/relationships/todos/fde4f9a4-1415-5b9d-b8b4-b15804387d6b" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incident_todos\",\"id\":\"fde4f9a4-1415-5b9d-b8b4-b15804387d6b\",\"attributes\":{\"created\":\"2023-03-07T18:27:21.843287+00:00\",\"modified\":\"2023-03-07T18:27:21.843287+00:00\",\"completed\":null,\"due_date\":null,\"assignees\":[\"@test.user@test.com\",{\"id\":\"USLACKBOT\",\"icon\":\"https://a.slack-edge.com/80588/img/slackbot_48.png\",\"name\":\"Slackbot\",\"source\":\"slack\"}],\"content\":\"Follow up with customer about the impact they saw.\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"incident_id\":\"37697217-2096-5139-8550-b620b2d8b0a3\",\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 07 Mar 2023 18:27:21 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/37697217-2096-5139-8550-b620b2d8b0a3/relationships/todos/fde4f9a4-1415-5b9d-b8b4-b15804387d6b" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Tue, 07 Mar 2023 18:27:21 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/37697217-2096-5139-8550-b620b2d8b0a3" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Tue, 07 Mar 2023 18:27:21 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incidents/Get-the-details-of-an-incident-returns-OK-response.json b/tests/scenarios/cassettes/v2/incidents/Get-the-details-of-an-incident-returns-OK-response.json index 51104a7b9..34f7be893 100644 --- a/tests/scenarios/cassettes/v2/incidents/Get-the-details-of-an-incident-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/incidents/Get-the-details-of-an-incident-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Get_the_details_of_an_incident_returns_OK_response-1699302335\"},\"type\":\"incidents\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/incidents"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incidents\",\"id\":\"1996a76f-a6b7-570a-bc63-95f7f1d0e289\",\"attributes\":{\"public_id\":174812,\"incident_type_uuid\":null,\"title\":\"Test-Get_the_details_of_an_incident_returns_OK_response-1699302335\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:35.426487+00:00\",\"modified\":\"2023-11-06T20:25:35.426487+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:35.414038+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:35 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/incidents/1996a76f-a6b7-570a-bc63-95f7f1d0e289"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incidents\",\"id\":\"1996a76f-a6b7-570a-bc63-95f7f1d0e289\",\"attributes\":{\"public_id\":174812,\"incident_type_uuid\":null,\"title\":\"Test-Get_the_details_of_an_incident_returns_OK_response-1699302335\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-06T20:25:35.426487+00:00\",\"modified\":\"2023-11-06T20:25:35.426487+00:00\",\"detected\":\"2023-11-06T20:25:35.414038+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:35 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/1996a76f-a6b7-570a-bc63-95f7f1d0e289"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:35 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Get_the_details_of_an_incident_returns_OK_response-1699302335\"},\"type\":\"incidents\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/incidents" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incidents\",\"id\":\"1996a76f-a6b7-570a-bc63-95f7f1d0e289\",\"attributes\":{\"public_id\":174812,\"incident_type_uuid\":null,\"title\":\"Test-Get_the_details_of_an_incident_returns_OK_response-1699302335\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:35.426487+00:00\",\"modified\":\"2023-11-06T20:25:35.426487+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:35.414038+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:35 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/incidents/1996a76f-a6b7-570a-bc63-95f7f1d0e289" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incidents\",\"id\":\"1996a76f-a6b7-570a-bc63-95f7f1d0e289\",\"attributes\":{\"public_id\":174812,\"incident_type_uuid\":null,\"title\":\"Test-Get_the_details_of_an_incident_returns_OK_response-1699302335\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-06T20:25:35.426487+00:00\",\"modified\":\"2023-11-06T20:25:35.426487+00:00\",\"detected\":\"2023-11-06T20:25:35.414038+00:00\",\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:35 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/1996a76f-a6b7-570a-bc63-95f7f1d0e289" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:35 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incidents/Remove-commander-from-an-incident-returns-OK-response.json b/tests/scenarios/cassettes/v2/incidents/Remove-commander-from-an-incident-returns-OK-response.json index c81a8f7cb..8332d187b 100644 --- a/tests/scenarios/cassettes/v2/incidents/Remove-commander-from-an-incident-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/incidents/Remove-commander-from-an-incident-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Remove_commander_from_an_incident_returns_OK_response-1699302335\"},\"type\":\"incidents\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/incidents"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incidents\",\"id\":\"f485a73d-bb6f-53ad-8d2a-61e965f3fb4a\",\"attributes\":{\"public_id\":174813,\"incident_type_uuid\":null,\"title\":\"Test-Remove_commander_from_an_incident_returns_OK_response-1699302335\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:36.125910+00:00\",\"modified\":\"2023-11-06T20:25:36.125910+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:36.111903+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:35 GMT"}, {"request": {"body": {"string": "{\"data\":{\"id\":\"f485a73d-bb6f-53ad-8d2a-61e965f3fb4a\",\"relationships\":{\"commander_user\":{\"data\":null}},\"type\":\"incidents\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/incidents/f485a73d-bb6f-53ad-8d2a-61e965f3fb4a"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incidents\",\"id\":\"f485a73d-bb6f-53ad-8d2a-61e965f3fb4a\",\"attributes\":{\"public_id\":174813,\"incident_type_uuid\":null,\"title\":\"Test-Remove_commander_from_an_incident_returns_OK_response-1699302335\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-06T20:25:36.125910+00:00\",\"modified\":\"2023-11-06T20:25:36.524033+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:36.111903+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[{\"type\":\"incident_responders\",\"id\":\"db687925-f1c5-5629-b919-98dd4e581626\"}]},\"impacts\":{\"data\":[]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:35 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/f485a73d-bb6f-53ad-8d2a-61e965f3fb4a"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:35 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Remove_commander_from_an_incident_returns_OK_response-1699302335\"},\"type\":\"incidents\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/incidents" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incidents\",\"id\":\"f485a73d-bb6f-53ad-8d2a-61e965f3fb4a\",\"attributes\":{\"public_id\":174813,\"incident_type_uuid\":null,\"title\":\"Test-Remove_commander_from_an_incident_returns_OK_response-1699302335\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:36.125910+00:00\",\"modified\":\"2023-11-06T20:25:36.125910+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:36.111903+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:35 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"id\":\"f485a73d-bb6f-53ad-8d2a-61e965f3fb4a\",\"relationships\":{\"commander_user\":{\"data\":null}},\"type\":\"incidents\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/incidents/f485a73d-bb6f-53ad-8d2a-61e965f3fb4a" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incidents\",\"id\":\"f485a73d-bb6f-53ad-8d2a-61e965f3fb4a\",\"attributes\":{\"public_id\":174813,\"incident_type_uuid\":null,\"title\":\"Test-Remove_commander_from_an_incident_returns_OK_response-1699302335\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-06T20:25:36.125910+00:00\",\"modified\":\"2023-11-06T20:25:36.524033+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:36.111903+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[{\"type\":\"incident_responders\",\"id\":\"db687925-f1c5-5629-b919-98dd4e581626\"}]},\"impacts\":{\"data\":[]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:35 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/f485a73d-bb6f-53ad-8d2a-61e965f3fb4a" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:35 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incidents/Search-for-incidents-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v2/incidents/Search-for-incidents-returns-OK-response-with-pagination.json index 0c507129e..e02c408c3 100644 --- a/tests/scenarios/cassettes/v2/incidents/Search-for-incidents-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v2/incidents/Search-for-incidents-returns-OK-response-with-pagination.json @@ -1 +1,61 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/incidents/search?query=state%3A%28active%20OR%20stable%20OR%20resolved%29&page%5Bsize%5D=2"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incidents_search_results\",\"attributes\":{\"total\":1703,\"facets\":{\"severity\":[{\"name\":\"UNKNOWN\",\"count\":1703},{\"name\":\"SEV-1\",\"count\":0},{\"name\":\"SEV-2\",\"count\":0},{\"name\":\"SEV-3\",\"count\":0},{\"name\":\"SEV-4\",\"count\":0},{\"name\":\"SEV-5\",\"count\":0}],\"time_to_repair\":[{\"name\":\"time_to_repair\",\"aggregates\":{\"min\":null,\"max\":null}}],\"responder\":[{\"name\":\"CI Account\",\"count\":844,\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"},{\"name\":\"frog@datadoghq.com\",\"count\":107,\"handle\":\"frog@datadoghq.com\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"email\":\"frog@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677888642@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677888642@datadoghq.com\",\"uuid\":\"00a080f5-ba21-11ed-a3f2-e6671bdc78dd\",\"email\":\"test-go-create_an_incident_returns_created_response-1677888642@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672877473@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672877473@datadoghq.com\",\"uuid\":\"01dc2b21-3194-414a-b8e8-58704603421b\",\"email\":\"test-go-create_an_incident_returns_created_response-1672877473@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678925450@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678925450@datadoghq.com\",\"uuid\":\"02a54dc1-c38f-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678925450@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672013445@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672013445@datadoghq.com\",\"uuid\":\"03e16d56-e954-4e9a-b9da-22dffdfa1f24\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672013445@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666981015@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666981015@datadoghq.com\",\"uuid\":\"03e65d16-b7bb-456a-a5da-bf31dffbdf4d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666981015@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675815038@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675815038@datadoghq.com\",\"uuid\":\"0423cfd5-a745-11ed-9567-ba00348e1a7a\",\"email\":\"test-go-create_an_incident_returns_created_response-1675815038@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669335011@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669335011@datadoghq.com\",\"uuid\":\"04c4feaa-1864-4167-a48b-e156181d50d8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669335011@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669248659@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669248659@datadoghq.com\",\"uuid\":\"04f0d8b5-1959-43fb-85b5-782682062c4e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669248659@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673655101@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673655101@datadoghq.com\",\"uuid\":\"05d83a07-93a0-11ed-bf65-7630e111ac00\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673655101@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666743047@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666743047@datadoghq.com\",\"uuid\":\"060c37c0-93a9-48c0-90bc-dee85b66a7c7\",\"email\":\"test-go-create_an_incident_returns_created_response-1666743047@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678925461@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678925461@datadoghq.com\",\"uuid\":\"08f8d3b7-c38f-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1678925461@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670112680@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670112680@datadoghq.com\",\"uuid\":\"09010d4b-7635-4553-a7b9-973f5f9cea5b\",\"email\":\"test-go-create_an_incident_returns_created_response-1670112680@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673655109@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673655109@datadoghq.com\",\"uuid\":\"0a679024-93a0-11ed-aaf8-3230475e674b\",\"email\":\"test-go-create_an_incident_returns_created_response-1673655109@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667434335@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667434335@datadoghq.com\",\"uuid\":\"0ebbf763-be8f-40bb-8ee7-d37b729a5eed\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667434335@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668384644@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668384644@datadoghq.com\",\"uuid\":\"1193cff3-b670-4e08-a535-346105dcaf9f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668384644@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675210330@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675210330@datadoghq.com\",\"uuid\":\"1205474f-a1c5-11ed-b767-5ec4f5b84c10\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675210330@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674691927@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674691927@datadoghq.com\",\"uuid\":\"122c89ad-9d0e-11ed-9f54-862b4cfe184c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674691927@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668643799@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668643799@datadoghq.com\",\"uuid\":\"12d78e1b-0784-46f3-99ac-7e5db2d5c92e\",\"email\":\"test-go-create_an_incident_returns_created_response-1668643799@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671667884@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671667884@datadoghq.com\",\"uuid\":\"1310687d-9adb-47ae-ad7a-066c9e525f8b\",\"email\":\"test-go-create_an_incident_returns_created_response-1671667884@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673741454@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673741454@datadoghq.com\",\"uuid\":\"142ba3fc-9469-11ed-a365-8ec8661800c6\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673741454@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679011809@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679011809@datadoghq.com\",\"uuid\":\"1431aabf-c458-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679011809@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670927771@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670927771@datadoghq.com\",\"uuid\":\"14344412-a7b1-4044-89f7-8139727432f6\",\"email\":\"test-go-create_an_incident_returns_created_response-1670927771@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667261554@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667261554@datadoghq.com\",\"uuid\":\"1608c46d-bee2-46a5-be87-49af2b889db5\",\"email\":\"test-go-create_an_incident_returns_created_response-1667261554@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670929702@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670929702@datadoghq.com\",\"uuid\":\"161217ca-a0b5-418c-b0e5-d16edddd8258\",\"email\":\"test-go-create_an_incident_returns_created_response-1670929702@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675901397@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675901397@datadoghq.com\",\"uuid\":\"1628d4a0-a80e-11ed-af43-4e64a4a39547\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675901397@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670928949@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670928949@datadoghq.com\",\"uuid\":\"16754b18-1887-4f22-ae44-4a86e9bfc749\",\"email\":\"test-go-create_an_incident_returns_created_response-1670928949@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675210337@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675210337@datadoghq.com\",\"uuid\":\"1682f280-a1c5-11ed-ad87-fecda9c428d5\",\"email\":\"test-go-create_an_incident_returns_created_response-1675210337@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674691935@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674691935@datadoghq.com\",\"uuid\":\"16bf2921-9d0e-11ed-aff1-fa6399bf96fd\",\"email\":\"test-go-create_an_incident_returns_created_response-1674691935@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671754258@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671754258@datadoghq.com\",\"uuid\":\"18ada30d-ad3e-4ba2-911d-931233a75aa0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671754258@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679962293@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679962293@datadoghq.com\",\"uuid\":\"18cfb810-ccfd-11ed-a201-de0443f18a2a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679962293@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673741462@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673741462@datadoghq.com\",\"uuid\":\"18e9a7f7-9469-11ed-aaf8-3230475e674b\",\"email\":\"test-go-create_an_incident_returns_created_response-1673741462@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679011819@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679011819@datadoghq.com\",\"uuid\":\"1a8c2817-c458-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1679011819@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675901404@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675901404@datadoghq.com\",\"uuid\":\"1aa50cab-a80e-11ed-bc4c-ea1adbbc0986\",\"email\":\"test-go-create_an_incident_returns_created_response-1675901404@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670285407@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670285407@datadoghq.com\",\"uuid\":\"1bb87a6c-da01-4798-8bd0-5cd9918f641f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670285407@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668903124@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668903124@datadoghq.com\",\"uuid\":\"1bcb111e-ea64-4d60-9b77-ae5e7f22f157\",\"email\":\"test-go-create_an_incident_returns_created_response-1668903124@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668039051@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668039051@datadoghq.com\",\"uuid\":\"1c54a963-17f1-4ee8-a2b0-7fd07c3b2c68\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668039051@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674259871@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674259871@datadoghq.com\",\"uuid\":\"1c631d44-9920-11ed-8c68-2a913616fde8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674259871@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677024542@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677024542@datadoghq.com\",\"uuid\":\"1ce329fb-b245-11ed-8fbc-ca7794d66904\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677024542@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671149452@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671149452@datadoghq.com\",\"uuid\":\"1ebe2367-3eda-464c-9571-edd444620682\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671149452@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676419814@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676419814@datadoghq.com\",\"uuid\":\"1f019dde-acc5-11ed-bcdd-a68779fca942\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676419814@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679962303@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679962303@datadoghq.com\",\"uuid\":\"1f034a5d-ccfd-11ed-aef0-a6405a9b4791\",\"email\":\"test-go-create_an_incident_returns_created_response-1679962303@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672618338@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672618338@datadoghq.com\",\"uuid\":\"1fd5cef4-df5c-4609-be9a-11bf76483cfc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672618338@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666915819@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666915819@datadoghq.com\",\"uuid\":\"20be4a8a-b215-4bc0-b2fa-31c27e0a642b\",\"email\":\"test-go-create_an_incident_returns_created_response-1666915819@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671840707@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671840707@datadoghq.com\",\"uuid\":\"20d2001a-92b4-4d03-a5cb-73617f27b723\",\"email\":\"test-go-create_an_incident_returns_created_response-1671840707@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674259878@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674259878@datadoghq.com\",\"uuid\":\"20dbaf3d-9920-11ed-8c68-2a913616fde8\",\"email\":\"test-go-create_an_incident_returns_created_response-1674259878@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677024549@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677024549@datadoghq.com\",\"uuid\":\"214ed4fd-b245-11ed-8fbc-ca7794d66904\",\"email\":\"test-go-create_an_incident_returns_created_response-1677024549@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676419822@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676419822@datadoghq.com\",\"uuid\":\"2375265b-acc5-11ed-9a7e-46e4eb8f12a7\",\"email\":\"test-go-create_an_incident_returns_created_response-1676419822@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670594546@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670594546@datadoghq.com\",\"uuid\":\"2399be00-e683-4133-aec2-7ab8fe73779e\",\"email\":\"test-go-create_an_incident_returns_created_response-1670594546@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673050262@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673050262@datadoghq.com\",\"uuid\":\"23a293e3-086a-4f8e-8fa6-a2555557309e\",\"email\":\"test-go-create_an_incident_returns_created_response-1673050262@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667175034@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667175034@datadoghq.com\",\"uuid\":\"24f932ba-4cd2-498e-8261-64f6ec161bcb\",\"email\":\"test-go-create_an_incident_returns_created_response-1667175034@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677456630@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677456630@datadoghq.com\",\"uuid\":\"25538030-b633-11ed-827a-8e2840b25db2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677456630@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672013452@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672013452@datadoghq.com\",\"uuid\":\"2593795d-b0f5-46f9-a852-34d3c466ce0a\",\"email\":\"test-go-create_an_incident_returns_created_response-1672013452@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667520677@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667520677@datadoghq.com\",\"uuid\":\"26287ddb-5d1c-400d-96dc-a1d3bb09f880\",\"email\":\"test-go-create_an_incident_returns_created_response-1667520677@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679616573@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679616573@datadoghq.com\",\"uuid\":\"27c16c1b-c9d8-11ed-b840-0ed4b0ca293a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679616573@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676938232@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676938232@datadoghq.com\",\"uuid\":\"281184f3-b17c-11ed-bce8-0a557ccee039\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676938232@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668557513@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668557513@datadoghq.com\",\"uuid\":\"2871bc57-733f-4f85-b3ef-440569202326\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668557513@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668471095@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668471095@datadoghq.com\",\"uuid\":\"289f8508-500c-472e-a9d4-71f30f1cf151\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668471095@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671667877@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671667877@datadoghq.com\",\"uuid\":\"28ae893d-4b70-420d-96dc-f82066a0642f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671667877@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672531830@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672531830@datadoghq.com\",\"uuid\":\"291b8416-a87d-4e56-a93e-9d430d5c4996\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672531830@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677456637@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677456637@datadoghq.com\",\"uuid\":\"29cd6809-b633-11ed-827a-8e2840b25db2\",\"email\":\"test-go-create_an_incident_returns_created_response-1677456637@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678493444@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678493444@datadoghq.com\",\"uuid\":\"2acb4dc0-bfa1-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678493444@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671927057@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671927057@datadoghq.com\",\"uuid\":\"2b0ac046-39c8-4bf4-a00a-deb089bbbc0c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671927057@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679530252@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679530252@datadoghq.com\",\"uuid\":\"2c9256b5-c90f-11ed-a1f3-7afc45c1981c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679530252@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676938239@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676938239@datadoghq.com\",\"uuid\":\"2c977e11-b17c-11ed-bce8-0a557ccee039\",\"email\":\"test-go-create_an_incident_returns_created_response-1676938239@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679616583@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679616583@datadoghq.com\",\"uuid\":\"2d99557e-c9d8-11ed-a171-361a8cacd441\",\"email\":\"test-go-create_an_incident_returns_created_response-1679616583@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672445562@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672445562@datadoghq.com\",\"uuid\":\"2db31432-b497-42b8-80b7-fef85898a2a8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672445562@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668039059@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668039059@datadoghq.com\",\"uuid\":\"2ebfffc1-a7da-4558-a507-038442f7ee79\",\"email\":\"test-go-create_an_incident_returns_created_response-1668039059@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669767030@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669767030@datadoghq.com\",\"uuid\":\"2eca0bd9-db8e-4c5d-91b7-2ccddffd5764\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669767030@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671235865@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671235865@datadoghq.com\",\"uuid\":\"2fc6258a-7492-43c0-accf-24528cbbfea1\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671235865@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669680686@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669680686@datadoghq.com\",\"uuid\":\"302a3d05-c61c-41d8-ad31-8821b764acf7\",\"email\":\"test-go-create_an_incident_returns_created_response-1669680686@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678493454@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678493454@datadoghq.com\",\"uuid\":\"30e3000f-bfa1-11ed-9949-f20a22a554f2\",\"email\":\"test-go-create_an_incident_returns_created_response-1678493454@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676333515@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676333515@datadoghq.com\",\"uuid\":\"30e43861-abfc-11ed-a6fc-0e9b7fe457ae\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676333515@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669680678@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669680678@datadoghq.com\",\"uuid\":\"31ad2923-926d-49af-ad5b-d8b120e6edc8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669680678@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679530263@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679530263@datadoghq.com\",\"uuid\":\"32d40acb-c90f-11ed-a1f3-7afc45c1981c\",\"email\":\"test-go-create_an_incident_returns_created_response-1679530263@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671581470@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671581470@datadoghq.com\",\"uuid\":\"34377484-e597-4d4c-bccf-88e919b6d549\",\"email\":\"test-go-create_an_incident_returns_created_response-1671581470@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667693449@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667693449@datadoghq.com\",\"uuid\":\"34e92512-7c24-4704-816e-4fadc9b5eff7\",\"email\":\"test-go-create_an_incident_returns_created_response-1667693449@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668211888@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668211888@datadoghq.com\",\"uuid\":\"3578dcc8-088a-4320-8c27-7f80f1bba4cb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668211888@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672186272@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672186272@datadoghq.com\",\"uuid\":\"3584000d-6337-4c9e-955e-e25514b83be0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672186272@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676333523@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676333523@datadoghq.com\",\"uuid\":\"35ba7493-abfc-11ed-b5cd-eec9514dd597\",\"email\":\"test-go-create_an_incident_returns_created_response-1676333523@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678579793@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678579793@datadoghq.com\",\"uuid\":\"367e08f8-c06a-11ed-b4e0-566658a732f8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678579793@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671062982@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671062982@datadoghq.com\",\"uuid\":\"3883d9fe-1678-452e-8801-11a374f9fdae\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671062982@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667002244@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667002244@datadoghq.com\",\"uuid\":\"39627294-7a14-4e71-b5ff-5221e68b6fbe\",\"email\":\"test-go-create_an_incident_returns_created_response-1667002244@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671581462@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671581462@datadoghq.com\",\"uuid\":\"3bc8406a-5790-4582-82f5-08e330921b9b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671581462@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668989431@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668989431@datadoghq.com\",\"uuid\":\"3c28c823-158e-46c2-8dce-06f1dace90e8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668989431@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673050254@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673050254@datadoghq.com\",\"uuid\":\"3c7509b1-82af-4d25-b1e5-3e8aaa107f0a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673050254@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678579803@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678579803@datadoghq.com\",\"uuid\":\"3c7f71d2-c06a-11ed-a89b-0ebbb850607d\",\"email\":\"test-go-create_an_incident_returns_created_response-1678579803@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669162240@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669162240@datadoghq.com\",\"uuid\":\"3ce20d84-5e75-45a5-b7b9-971549a50cf4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669162240@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670458180@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670458180@datadoghq.com\",\"uuid\":\"40d8c19a-8c6a-4f54-9444-aba7b6798064\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670458180@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678061409@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678061409@datadoghq.com\",\"uuid\":\"41da9ce5-bbb3-11ed-82a6-028cebedd0cf\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678061409@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673136665@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673136665@datadoghq.com\",\"uuid\":\"426feaae-7bf3-4b2c-bc8c-0c79056d6d8d\",\"email\":\"test-go-create_an_incident_returns_created_response-1673136665@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672099886@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672099886@datadoghq.com\",\"uuid\":\"431624c4-d099-4dfb-b701-33a60bba6ebe\",\"email\":\"test-go-create_an_incident_returns_created_response-1672099886@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669421482@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669421482@datadoghq.com\",\"uuid\":\"442dd264-b729-473b-a51d-4b141068fe3d\",\"email\":\"test-go-create_an_incident_returns_created_response-1669421482@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603297@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603297@datadoghq.com\",\"uuid\":\"446cd2d8-630c-4fe9-8901-fb85bd22426d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603297@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678061417@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678061417@datadoghq.com\",\"uuid\":\"467de14f-bbb3-11ed-82a6-028cebedd0cf\",\"email\":\"test-go-create_an_incident_returns_created_response-1678061417@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668989438@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668989438@datadoghq.com\",\"uuid\":\"46d62900-016b-463c-9fff-c8b4f946ce5c\",\"email\":\"test-go-create_an_incident_returns_created_response-1668989438@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675469405@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675469405@datadoghq.com\",\"uuid\":\"46e3c6ef-a420-11ed-b1f8-56250c47f0b3\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675469405@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670371777@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670371777@datadoghq.com\",\"uuid\":\"48f7337b-3304-46fc-9e88-23b4dc5d24cc\",\"email\":\"test-go-create_an_incident_returns_created_response-1670371777@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670943350@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670943350@datadoghq.com\",\"uuid\":\"4b432133-ba1b-4edc-ab57-c0250963f250\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670943350@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679098230@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679098230@datadoghq.com\",\"uuid\":\"4b5ba977-c521-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679098230@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675469412@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675469412@datadoghq.com\",\"uuid\":\"4b68a1e2-a420-11ed-b1f8-56250c47f0b3\",\"email\":\"test-go-create_an_incident_returns_created_response-1675469412@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668816648@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668816648@datadoghq.com\",\"uuid\":\"4e5cb15e-f18e-43ba-b115-2a4e62736739\",\"email\":\"test-go-create_an_incident_returns_created_response-1668816648@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603851@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603851@datadoghq.com\",\"uuid\":\"4e6b1824-dc1e-4691-8abd-5ffb968da7eb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603851@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669421474@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669421474@datadoghq.com\",\"uuid\":\"4fdb4327-3660-4aeb-b403-7f7939493f27\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669421474@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670458188@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670458188@datadoghq.com\",\"uuid\":\"50d5408a-1894-4173-9fa1-32209009d9b1\",\"email\":\"test-go-create_an_incident_returns_created_response-1670458188@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679098240@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679098240@datadoghq.com\",\"uuid\":\"5141e45c-c521-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-create_an_incident_returns_created_response-1679098240@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675383094@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675383094@datadoghq.com\",\"uuid\":\"520007b9-a357-11ed-acb5-6e0b90178632\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675383094@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670803787@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670803787@datadoghq.com\",\"uuid\":\"521a78f7-573e-4b67-8e2c-d0dd5d91a265\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670803787@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666743039@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666743039@datadoghq.com\",\"uuid\":\"54b84ea9-ae9f-4159-b226-aba3b432a792\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666743039@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674346295@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674346295@datadoghq.com\",\"uuid\":\"551c3a48-99e9-11ed-a607-1684d7f553f6\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674346295@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678147771@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678147771@datadoghq.com\",\"uuid\":\"557fb06e-bc7c-11ed-be39-625d488bce09\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678147771@datadoghq.com\"},{\"name\":\"test-add_commander_to_an_incident_returns_ok_response-1677691218@datadoghq.com\",\"count\":1,\"handle\":\"test-add_commander_to_an_incident_returns_ok_response-1677691218@datadoghq.com\",\"uuid\":\"56afe5b0-b855-11ed-a706-064bc8586212\",\"email\":\"test-add_commander_to_an_incident_returns_ok_response-1677691218@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675383103@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675383103@datadoghq.com\",\"uuid\":\"56d1cddc-a357-11ed-95c6-eefcd7f14d98\",\"email\":\"test-go-create_an_incident_returns_created_response-1675383103@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670929700@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670929700@datadoghq.com\",\"uuid\":\"5705f818-933e-4ef4-818c-615b06f80fd1\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670929700@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668557521@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668557521@datadoghq.com\",\"uuid\":\"577067f0-c41d-4928-8964-0f7725e8cf68\",\"email\":\"test-go-create_an_incident_returns_created_response-1668557521@datadoghq.com\"},{\"name\":\"test-create_an_incident_returns_created_response-1677691220@datadoghq.com\",\"count\":1,\"handle\":\"test-create_an_incident_returns_created_response-1677691220@datadoghq.com\",\"uuid\":\"57e9dbb7-b855-11ed-ab26-8e492650c256\",\"email\":\"test-create_an_incident_returns_created_response-1677691220@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679702983@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679702983@datadoghq.com\",\"uuid\":\"58287ff7-caa1-11ed-81eb-8227c2cf9828\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679702983@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666829448@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666829448@datadoghq.com\",\"uuid\":\"586e086f-1e29-4689-99b6-641c3218b0a8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666829448@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674346302@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674346302@datadoghq.com\",\"uuid\":\"59b0d36c-99e9-11ed-8968-92ec5048e27c\",\"email\":\"test-go-create_an_incident_returns_created_response-1674346302@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667261546@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667261546@datadoghq.com\",\"uuid\":\"59c9cd2e-cd40-4530-ba50-415bce89b133\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667261546@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678147781@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678147781@datadoghq.com\",\"uuid\":\"5b76378d-bc7c-11ed-ba16-0aeab349e953\",\"email\":\"test-go-create_an_incident_returns_created_response-1678147781@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670976638@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670976638@datadoghq.com\",\"uuid\":\"5baf69e4-9bd6-4c76-b552-2bfee88031b5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670976638@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668298265@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668298265@datadoghq.com\",\"uuid\":\"5c4ecf79-7ffb-47ea-9331-687b04ac9df8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668298265@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671840699@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671840699@datadoghq.com\",\"uuid\":\"5ce42d6d-a0b9-4d0f-893b-aa0b8f30ee5c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671840699@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672445570@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672445570@datadoghq.com\",\"uuid\":\"5d11019d-f1dc-468d-a20a-8e64e7af9494\",\"email\":\"test-go-create_an_incident_returns_created_response-1672445570@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670976646@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670976646@datadoghq.com\",\"uuid\":\"5db9c599-b71f-40c6-84d9-8ca8779004e1\",\"email\":\"test-go-create_an_incident_returns_created_response-1670976646@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679702993@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679702993@datadoghq.com\",\"uuid\":\"5e20a7d6-caa1-11ed-b285-a2593f21064b\",\"email\":\"test-go-create_an_incident_returns_created_response-1679702993@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673223078@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673223078@datadoghq.com\",\"uuid\":\"5f3582c4-06d1-43a3-bab9-b7ece49136a4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673223078@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672791107@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672791107@datadoghq.com\",\"uuid\":\"610753d8-8bc4-11ed-94a1-26632eba8bed\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672791107@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677110986@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677110986@datadoghq.com\",\"uuid\":\"614ff267-b30e-11ed-b3d7-ea098e8dc2bb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677110986@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667088640@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667088640@datadoghq.com\",\"uuid\":\"61d88713-957f-4920-8a3b-65f0ccd79b57\",\"email\":\"test-go-create_an_incident_returns_created_response-1667088640@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670026253@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670026253@datadoghq.com\",\"uuid\":\"623452c3-d694-466a-95b9-140a9c44a1ab\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670026253@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672791115@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672791115@datadoghq.com\",\"uuid\":\"65b38b0e-8bc4-11ed-81c7-fed5bfaa3f3d\",\"email\":\"test-go-create_an_incident_returns_created_response-1672791115@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677110993@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677110993@datadoghq.com\",\"uuid\":\"65e049af-b30e-11ed-82a1-e2db47427de5\",\"email\":\"test-go-create_an_incident_returns_created_response-1677110993@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674778401@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674778401@datadoghq.com\",\"uuid\":\"6847d712-9dd7-11ed-967f-12bf3e4c6b0d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674778401@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667520669@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667520669@datadoghq.com\",\"uuid\":\"6887723d-dbde-4969-bba8-e9b3464645ce\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667520669@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678204931@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678204931@datadoghq.com\",\"uuid\":\"6b9e40b1-bd01-11ed-8bd9-4a4655204cc7\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678204931@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667952700@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667952700@datadoghq.com\",\"uuid\":\"6c22fc34-31d7-4085-948b-d862feb447fe\",\"email\":\"test-go-create_an_incident_returns_created_response-1667952700@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676506273@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676506273@datadoghq.com\",\"uuid\":\"6ca38252-ad8e-11ed-9613-3a90352a946f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676506273@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671149459@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671149459@datadoghq.com\",\"uuid\":\"6ccce5fc-d6a8-416d-921b-f883914b67ad\",\"email\":\"test-go-create_an_incident_returns_created_response-1671149459@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674778408@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674778408@datadoghq.com\",\"uuid\":\"6d0c845f-9dd7-11ed-a399-1a75992a86c7\",\"email\":\"test-go-create_an_incident_returns_created_response-1674778408@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669594231@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669594231@datadoghq.com\",\"uuid\":\"6d550b97-297b-43ea-a3dc-85383cf72fba\",\"email\":\"test-go-create_an_incident_returns_created_response-1669594231@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671927065@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671927065@datadoghq.com\",\"uuid\":\"6d7f7052-6ddb-461f-a49f-6cb5fca6b2c8\",\"email\":\"test-go-create_an_incident_returns_created_response-1671927065@datadoghq.com\"},{\"name\":\"test-add_commander_to_an_incident_returns_ok_response-1677691687@datadoghq.com\",\"count\":1,\"handle\":\"test-add_commander_to_an_incident_returns_ok_response-1677691687@datadoghq.com\",\"uuid\":\"6e0e84e3-b856-11ed-ab26-8e492650c256\",\"email\":\"test-add_commander_to_an_incident_returns_ok_response-1677691687@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675987874@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675987874@datadoghq.com\",\"uuid\":\"6ed45bb9-a8d7-11ed-b51e-c2a468ff72a6\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675987874@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670927769@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670927769@datadoghq.com\",\"uuid\":\"6efabec4-24bc-46bd-8f53-e068f03adbf0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670927769@datadoghq.com\"},{\"name\":\"test-create_an_incident_returns_created_response-1677691689@datadoghq.com\",\"count\":1,\"handle\":\"test-create_an_incident_returns_created_response-1677691689@datadoghq.com\",\"uuid\":\"6f41744d-b856-11ed-a706-064bc8586212\",\"email\":\"test-create_an_incident_returns_created_response-1677691689@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670717462@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670717462@datadoghq.com\",\"uuid\":\"70532155-9800-46d9-89ed-bd41347c3dfd\",\"email\":\"test-go-create_an_incident_returns_created_response-1670717462@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676506281@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676506281@datadoghq.com\",\"uuid\":\"713c4001-ad8e-11ed-be7d-0ec0d643006a\",\"email\":\"test-go-create_an_incident_returns_created_response-1676506281@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678204941@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678204941@datadoghq.com\",\"uuid\":\"71cb7181-bd01-11ed-8700-9293738b117d\",\"email\":\"test-go-create_an_incident_returns_created_response-1678204941@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671322271@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671322271@datadoghq.com\",\"uuid\":\"7247d247-e798-4af5-b9ce-7bf786c4d0c7\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671322271@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672359091@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672359091@datadoghq.com\",\"uuid\":\"73546355-1adc-4289-908a-2f6fae7fc9fa\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672359091@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675987882@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675987882@datadoghq.com\",\"uuid\":\"738ccf6d-a8d7-11ed-ad7e-6ed4f1c67dea\",\"email\":\"test-go-create_an_incident_returns_created_response-1675987882@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677543090@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677543090@datadoghq.com\",\"uuid\":\"73a70dc9-b6fc-11ed-a3d7-a2295215c227\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677543090@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669507839@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669507839@datadoghq.com\",\"uuid\":\"7571121d-a654-4df8-9afa-e638f17d53bb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669507839@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674432680@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674432680@datadoghq.com\",\"uuid\":\"76c071c8-9ab2-11ed-8c68-2a913616fde8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674432680@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674864754@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674864754@datadoghq.com\",\"uuid\":\"7715eb6d-9ea0-11ed-8e78-767557a2485a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674864754@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677543098@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677543098@datadoghq.com\",\"uuid\":\"785f915d-b6fc-11ed-ad05-76e4602e1079\",\"email\":\"test-go-create_an_incident_returns_created_response-1677543098@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673395882@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673395882@datadoghq.com\",\"uuid\":\"7ac9b3b9-9144-11ed-82e3-622adeb45fa9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673395882@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674432688@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674432688@datadoghq.com\",\"uuid\":\"7b5907f1-9ab2-11ed-8c68-2a913616fde8\",\"email\":\"test-go-create_an_incident_returns_created_response-1674432688@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672877465@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672877465@datadoghq.com\",\"uuid\":\"7ba05e4d-f9a0-44e2-aa8c-bcda7adac2e5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672877465@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674864762@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674864762@datadoghq.com\",\"uuid\":\"7bc2a11e-9ea0-11ed-8c38-7ad981f4abb4\",\"email\":\"test-go-create_an_incident_returns_created_response-1674864762@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668384652@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668384652@datadoghq.com\",\"uuid\":\"7da5fc01-ccbd-4679-8149-cb22fe402bb3\",\"email\":\"test-go-create_an_incident_returns_created_response-1668384652@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667779824@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667779824@datadoghq.com\",\"uuid\":\"7dd124ba-7343-4882-b700-c44374efa8e3\",\"email\":\"test-go-create_an_incident_returns_created_response-1667779824@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673914292@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673914292@datadoghq.com\",\"uuid\":\"7f3e8ad2-95fb-11ed-b93e-b6681b4e2484\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673914292@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673395889@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673395889@datadoghq.com\",\"uuid\":\"7f7afd0e-9144-11ed-82e3-622adeb45fa9\",\"email\":\"test-go-create_an_incident_returns_created_response-1673395889@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676592635@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676592635@datadoghq.com\",\"uuid\":\"8009c2e2-ae57-11ed-b4cb-a681084bf13a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676592635@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670926105@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670926105@datadoghq.com\",\"uuid\":\"81831280-6cb1-4a01-9dc9-f68b1405f8f6\",\"email\":\"test-go-create_an_incident_returns_created_response-1670926105@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677197369@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677197369@datadoghq.com\",\"uuid\":\"81da5714-b3d7-11ed-97bb-cad2b20710fd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677197369@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678666250@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678666250@datadoghq.com\",\"uuid\":\"82eadb7f-c133-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678666250@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673914300@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673914300@datadoghq.com\",\"uuid\":\"84060fed-95fb-11ed-b93e-b6681b4e2484\",\"email\":\"test-go-create_an_incident_returns_created_response-1673914300@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670199054@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670199054@datadoghq.com\",\"uuid\":\"847f57aa-1b32-4eee-8447-e6eef1f6744f\",\"email\":\"test-go-create_an_incident_returns_created_response-1670199054@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676592642@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676592642@datadoghq.com\",\"uuid\":\"848026b5-ae57-11ed-9ecb-824f74ccf3e4\",\"email\":\"test-go-create_an_incident_returns_created_response-1676592642@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670630968@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670630968@datadoghq.com\",\"uuid\":\"853cce16-d7d3-4bd6-8f99-b1eab0407cf1\",\"email\":\"test-go-create_an_incident_returns_created_response-1670630968@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672099877@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672099877@datadoghq.com\",\"uuid\":\"862d085b-48ce-446e-a74f-ae3538d623f5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672099877@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674951109@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674951109@datadoghq.com\",\"uuid\":\"866af7b6-9f69-11ed-8c38-7ad981f4abb4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674951109@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677197377@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677197377@datadoghq.com\",\"uuid\":\"86a13258-b3d7-11ed-a605-a260cf3212a9\",\"email\":\"test-go-create_an_incident_returns_created_response-1677197377@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673827975@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673827975@datadoghq.com\",\"uuid\":\"86bc89ca-9532-11ed-bf65-7630e111ac00\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673827975@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667434343@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667434343@datadoghq.com\",\"uuid\":\"88c2cdf6-2769-4e68-9503-38d3f166ff1a\",\"email\":\"test-go-create_an_incident_returns_created_response-1667434343@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678666260@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678666260@datadoghq.com\",\"uuid\":\"88ce8004-c133-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1678666260@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679270991@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679270991@datadoghq.com\",\"uuid\":\"89229fdb-c6b3-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679270991@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668643791@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668643791@datadoghq.com\",\"uuid\":\"8a2d2c9d-c478-4a74-94a8-cabb28bd1473\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668643791@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674951116@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674951116@datadoghq.com\",\"uuid\":\"8ae38d89-9f69-11ed-bfa9-f2483e31eab5\",\"email\":\"test-go-create_an_incident_returns_created_response-1674951116@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673827983@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673827983@datadoghq.com\",\"uuid\":\"8b7b570e-9532-11ed-bf65-7630e111ac00\",\"email\":\"test-go-create_an_incident_returns_created_response-1673827983@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676074256@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676074256@datadoghq.com\",\"uuid\":\"8e41e3a8-a9a0-11ed-a060-46b9814ce648\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676074256@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672704719@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672704719@datadoghq.com\",\"uuid\":\"8e85e36f-5ccd-4052-a34e-d7338178914e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672704719@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679271002@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679271002@datadoghq.com\",\"uuid\":\"8f25b885-c6b3-11ed-9949-f20a22a554f2\",\"email\":\"test-go-create_an_incident_returns_created_response-1679271002@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667866310@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667866310@datadoghq.com\",\"uuid\":\"8f8399af-4d57-41a1-91a3-37c29fb62092\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667866310@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670630960@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670630960@datadoghq.com\",\"uuid\":\"8fa60296-198c-4113-8f21-0ba09e4fd83e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670630960@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679789405@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679789405@datadoghq.com\",\"uuid\":\"8fb58f8b-cb6a-11ed-be83-92f82eb96735\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679789405@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666829456@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666829456@datadoghq.com\",\"uuid\":\"91a8dc0a-0c63-4411-b9ab-39ec37dc2eee\",\"email\":\"test-go-create_an_incident_returns_created_response-1666829456@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669939802@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669939802@datadoghq.com\",\"uuid\":\"92c4c4e2-d881-485c-9668-0aa68239c513\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669939802@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676074265@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676074265@datadoghq.com\",\"uuid\":\"936c4650-a9a0-11ed-af98-1a32d7edfd9d\",\"email\":\"test-go-create_an_incident_returns_created_response-1676074265@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667088632@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667088632@datadoghq.com\",\"uuid\":\"93e8df0e-729e-4d2f-b0a4-9495ffb37b06\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667088632@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673482254@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673482254@datadoghq.com\",\"uuid\":\"94c9bf7f-920d-11ed-9cec-222dbf547024\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673482254@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670598792@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670598792@datadoghq.com\",\"uuid\":\"94d92a17-4768-48dd-97b4-ab32fee4e33b\",\"email\":\"test-go-create_an_incident_returns_created_response-1670598792@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669853467@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669853467@datadoghq.com\",\"uuid\":\"94f7179d-40a0-4790-9436-6080eb0db034\",\"email\":\"test-go-create_an_incident_returns_created_response-1669853467@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679789415@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679789415@datadoghq.com\",\"uuid\":\"959ada1b-cb6a-11ed-9f7f-0e85fe61e6ee\",\"email\":\"test-go-create_an_incident_returns_created_response-1679789415@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669075853@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669075853@datadoghq.com\",\"uuid\":\"96796850-b278-4313-a726-9cf5c832fe30\",\"email\":\"test-go-create_an_incident_returns_created_response-1669075853@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676679006@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676679006@datadoghq.com\",\"uuid\":\"99579994-af20-11ed-94c9-462a25af4eaf\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676679006@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673482262@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673482262@datadoghq.com\",\"uuid\":\"995b112e-920d-11ed-9888-e278e4206645\",\"email\":\"test-go-create_an_incident_returns_created_response-1673482262@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670594544@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670594544@datadoghq.com\",\"uuid\":\"9b26b565-e0c1-4777-a693-553a8d5cb243\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670594544@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670285415@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670285415@datadoghq.com\",\"uuid\":\"9b9fe3ac-f73b-43a5-b570-43d156e07ea9\",\"email\":\"test-go-create_an_incident_returns_created_response-1670285415@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670926595@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670926595@datadoghq.com\",\"uuid\":\"9c09fbea-fce4-4c02-9a45-ec845bab938a\",\"email\":\"test-go-create_an_incident_returns_created_response-1670926595@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670544898@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670544898@datadoghq.com\",\"uuid\":\"9c58a1dc-6beb-4390-928e-ed9d95b13b30\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670544898@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667693441@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667693441@datadoghq.com\",\"uuid\":\"9ccf5d51-55b4-43e0-ad79-7819a8d223f0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667693441@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676679013@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676679013@datadoghq.com\",\"uuid\":\"9dd94922-af20-11ed-94c9-462a25af4eaf\",\"email\":\"test-go-create_an_incident_returns_created_response-1676679013@datadoghq.com\"},{\"name\":\"test-add_commander_to_an_incident_returns_ok_response-1675266399@datadoghq.com\",\"count\":1,\"handle\":\"test-add_commander_to_an_incident_returns_ok_response-1675266399@datadoghq.com\",\"uuid\":\"9defa75d-a247-11ed-97de-223323d49fa6\",\"email\":\"test-add_commander_to_an_incident_returns_ok_response-1675266399@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666979690@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666979690@datadoghq.com\",\"uuid\":\"9e072255-5184-44a8-ae5f-a8e70ec5037c\",\"email\":\"test-go-create_an_incident_returns_created_response-1666979690@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678752625@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678752625@datadoghq.com\",\"uuid\":\"9e85bf56-c1fc-11ed-b4e0-566658a732f8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678752625@datadoghq.com\"},{\"name\":\"test-create_an_incident_returns_created_response-1675266400@datadoghq.com\",\"count\":1,\"handle\":\"test-create_an_incident_returns_created_response-1675266400@datadoghq.com\",\"uuid\":\"9ee1d254-a247-11ed-92ef-6ad132878933\",\"email\":\"test-create_an_incident_returns_created_response-1675266400@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668125498@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668125498@datadoghq.com\",\"uuid\":\"9f5a1546-bccf-4b9f-a25f-96fb87bd7bfc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668125498@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669162248@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669162248@datadoghq.com\",\"uuid\":\"9f88a5e0-9842-4fd1-95c7-7f85edad3874\",\"email\":\"test-go-create_an_incident_returns_created_response-1669162248@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666981017@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666981017@datadoghq.com\",\"uuid\":\"a136a629-05cd-4a2f-b925-e1d74c6a69ad\",\"email\":\"test-go-create_an_incident_returns_created_response-1666981017@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670803795@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670803795@datadoghq.com\",\"uuid\":\"a18c9430-e993-488f-8b5c-3ad27997e55c\",\"email\":\"test-go-create_an_incident_returns_created_response-1670803795@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675555889@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675555889@datadoghq.com\",\"uuid\":\"a3644be2-a4e9-11ed-b7fb-1ea641c369ef\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675555889@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672704726@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672704726@datadoghq.com\",\"uuid\":\"a4230eac-f78e-407d-8551-b07c6476622b\",\"email\":\"test-go-create_an_incident_returns_created_response-1672704726@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678752635@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678752635@datadoghq.com\",\"uuid\":\"a4aff885-c1fc-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1678752635@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675555897@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675555897@datadoghq.com\",\"uuid\":\"a813f7f3-a4e9-11ed-9388-1ad521c601b9\",\"email\":\"test-go-create_an_incident_returns_created_response-1675555897@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674087020@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674087020@datadoghq.com\",\"uuid\":\"a96c393b-978d-11ed-b425-4e7b3187c657\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674087020@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669767038@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669767038@datadoghq.com\",\"uuid\":\"a9977d83-cddd-4644-ba02-dc1a86c0293e\",\"email\":\"test-go-create_an_incident_returns_created_response-1669767038@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678234243@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678234243@datadoghq.com\",\"uuid\":\"aabc794c-bd45-11ed-9ea1-9ebf47de1fdb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678234243@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667606997@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667606997@datadoghq.com\",\"uuid\":\"ab5bb1f0-b9b2-43da-bd50-e5ba7315fc29\",\"email\":\"test-go-create_an_incident_returns_created_response-1667606997@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673568622@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673568622@datadoghq.com\",\"uuid\":\"abedb0a5-92d6-11ed-a082-5215624996c0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673568622@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672272649@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672272649@datadoghq.com\",\"uuid\":\"ac484716-4260-4fd9-8288-1d4a6b0d39da\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672272649@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674087028@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674087028@datadoghq.com\",\"uuid\":\"ade2bf85-978d-11ed-b425-4e7b3187c657\",\"email\":\"test-go-create_an_incident_returns_created_response-1674087028@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673568629@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673568629@datadoghq.com\",\"uuid\":\"b0771f90-92d6-11ed-a082-5215624996c0\",\"email\":\"test-go-create_an_incident_returns_created_response-1673568629@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672359099@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672359099@datadoghq.com\",\"uuid\":\"b12b859b-c89a-4023-84e6-2634f93fff00\",\"email\":\"test-go-create_an_incident_returns_created_response-1672359099@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678234254@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678234254@datadoghq.com\",\"uuid\":\"b155e604-bd45-11ed-ba70-22d478e15cef\",\"email\":\"test-go-create_an_incident_returns_created_response-1678234254@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667347843@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667347843@datadoghq.com\",\"uuid\":\"b2f195b3-53b7-4095-bfb8-90538edb12f7\",\"email\":\"test-go-create_an_incident_returns_created_response-1667347843@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677715854@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677715854@datadoghq.com\",\"uuid\":\"b2fc8929-b88e-11ed-8da2-b6d07de5d20c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677715854@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667779816@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667779816@datadoghq.com\",\"uuid\":\"b335a7f4-a66e-41ed-b4aa-982c5b76ffc1\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667779816@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672963863@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672963863@datadoghq.com\",\"uuid\":\"b39fcb21-440b-4bd8-bc55-103259b74a57\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672963863@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670890374@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670890374@datadoghq.com\",\"uuid\":\"b3ccf662-7d0d-4a45-9cb3-5ffcb089012c\",\"email\":\"test-go-create_an_incident_returns_created_response-1670890374@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669594223@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669594223@datadoghq.com\",\"uuid\":\"b4a8f9a4-28a9-4311-a813-8149eb5264f4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669594223@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672963870@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672963870@datadoghq.com\",\"uuid\":\"b631798d-d17b-44ab-af5c-f075df907ddd\",\"email\":\"test-go-create_an_incident_returns_created_response-1672963870@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677715861@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677715861@datadoghq.com\",\"uuid\":\"b768b7b4-b88e-11ed-a132-2aa63a904ba0\",\"email\":\"test-go-create_an_incident_returns_created_response-1677715861@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671408605@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671408605@datadoghq.com\",\"uuid\":\"b7d64361-36fd-4ebd-9438-949f60ec3745\",\"email\":\"test-go-create_an_incident_returns_created_response-1671408605@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670604391@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670604391@datadoghq.com\",\"uuid\":\"b8fa89c4-34f6-4b69-a654-e3671ce743a0\",\"email\":\"test-go-create_an_incident_returns_created_response-1670604391@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668471103@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668471103@datadoghq.com\",\"uuid\":\"b9d64d92-66de-41cc-9164-b83b7b74439f\",\"email\":\"test-go-create_an_incident_returns_created_response-1668471103@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674000722@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674000722@datadoghq.com\",\"uuid\":\"bbd69d76-96c4-11ed-b802-922cd9596b23\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674000722@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669853460@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669853460@datadoghq.com\",\"uuid\":\"bc036552-b05e-4ffd-8dd1-44dbe725a6ec\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669853460@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670544906@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670544906@datadoghq.com\",\"uuid\":\"bcb9456d-8b65-4369-b2c4-49ee5e4c14b7\",\"email\":\"test-go-create_an_incident_returns_created_response-1670544906@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674519128@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674519128@datadoghq.com\",\"uuid\":\"bd7e4c91-9b7b-11ed-882c-9aa2ca31c98c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674519128@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676765396@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676765396@datadoghq.com\",\"uuid\":\"bdc08c5f-afe9-11ed-84e6-a6c768ad21b4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676765396@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667952692@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667952692@datadoghq.com\",\"uuid\":\"be421a73-22de-48d3-be3f-1a269016ff83\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667952692@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675037533@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675037533@datadoghq.com\",\"uuid\":\"bf08166d-a032-11ed-88af-be56a8628f3f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675037533@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674000730@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674000730@datadoghq.com\",\"uuid\":\"c09c4f30-96c4-11ed-9f1c-fe165ba0981c\",\"email\":\"test-go-create_an_incident_returns_created_response-1674000730@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666915811@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666915811@datadoghq.com\",\"uuid\":\"c20da1a9-657e-4b5a-9159-9f4d324f51fc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666915811@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675642269@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675642269@datadoghq.com\",\"uuid\":\"c22b3e65-a5b2-11ed-9388-1ad521c601b9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675642269@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671495039@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671495039@datadoghq.com\",\"uuid\":\"c23885b0-3659-4d47-b5c9-16c0965dc7d9\",\"email\":\"test-go-create_an_incident_returns_created_response-1671495039@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679357416@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679357416@datadoghq.com\",\"uuid\":\"c238d04b-c77c-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679357416@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674519135@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674519135@datadoghq.com\",\"uuid\":\"c23e01c9-9b7b-11ed-8af1-7201c2784402\",\"email\":\"test-go-create_an_incident_returns_created_response-1674519135@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676765404@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676765404@datadoghq.com\",\"uuid\":\"c27df074-afe9-11ed-bce8-0a557ccee039\",\"email\":\"test-go-create_an_incident_returns_created_response-1676765404@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668730249@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668730249@datadoghq.com\",\"uuid\":\"c36f2608-4650-4331-b810-1dc5500c1356\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668730249@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670924666@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670924666@datadoghq.com\",\"uuid\":\"c381f80b-8a88-47bd-9dbe-77720d784a52\",\"email\":\"test-go-create_an_incident_returns_created_response-1670924666@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669075846@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669075846@datadoghq.com\",\"uuid\":\"c39f3031-906f-4679-a817-9b8f072254bb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669075846@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675037541@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675037541@datadoghq.com\",\"uuid\":\"c3e2d867-a032-11ed-88af-be56a8628f3f\",\"email\":\"test-go-create_an_incident_returns_created_response-1675037541@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667002236@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667002236@datadoghq.com\",\"uuid\":\"c567f0fa-6f70-42e3-855e-2ae1d2ed7243\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667002236@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668125506@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668125506@datadoghq.com\",\"uuid\":\"c60a0f7d-3f36-4966-a63f-f1f77dca030a\",\"email\":\"test-go-create_an_incident_returns_created_response-1668125506@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676247007@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676247007@datadoghq.com\",\"uuid\":\"c61f4ec1-ab32-11ed-8972-1eb0f4245ee5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676247007@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675642277@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675642277@datadoghq.com\",\"uuid\":\"c6d4d92c-a5b2-11ed-b7fb-1ea641c369ef\",\"email\":\"test-go-create_an_incident_returns_created_response-1675642277@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668903116@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668903116@datadoghq.com\",\"uuid\":\"c7319ecf-1451-4031-817a-5bef597d5ac9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668903116@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670604389@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670604389@datadoghq.com\",\"uuid\":\"c7b7b86f-5268-4c20-b223-afc7923d54b9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670604389@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679357426@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679357426@datadoghq.com\",\"uuid\":\"c811af38-c77c-11ed-9949-f20a22a554f2\",\"email\":\"test-go-create_an_incident_returns_created_response-1679357426@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673309503@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673309503@datadoghq.com\",\"uuid\":\"c8bbd0d2-53af-4fc0-a392-1c1c0871fb49\",\"email\":\"test-go-create_an_incident_returns_created_response-1673309503@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671754265@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671754265@datadoghq.com\",\"uuid\":\"c8e6753d-801c-40b5-9dd8-c98feae31df9\",\"email\":\"test-go-create_an_incident_returns_created_response-1671754265@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679184770@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679184770@datadoghq.com\",\"uuid\":\"c960ccca-c5ea-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679184770@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926103@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926103@datadoghq.com\",\"uuid\":\"c9f53cd7-2f1e-4491-ae28-796ace9db6fc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926103@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670371766@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670371766@datadoghq.com\",\"uuid\":\"cac0f70c-c327-4965-b9f9-62190c96b0dc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670371766@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676247015@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676247015@datadoghq.com\",\"uuid\":\"caf6ae98-ab32-11ed-bddd-722daf28c490\",\"email\":\"test-go-create_an_incident_returns_created_response-1676247015@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673223085@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673223085@datadoghq.com\",\"uuid\":\"cc0a6e87-ce4b-4313-b0a8-8b40179bcb68\",\"email\":\"test-go-create_an_incident_returns_created_response-1673223085@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671235873@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671235873@datadoghq.com\",\"uuid\":\"cc1891b1-9a95-4af6-98d7-95ac53c4e6ff\",\"email\":\"test-go-create_an_incident_returns_created_response-1671235873@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679184781@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679184781@datadoghq.com\",\"uuid\":\"cf9a8e87-c5ea-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-create_an_incident_returns_created_response-1679184781@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670943352@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670943352@datadoghq.com\",\"uuid\":\"d0330853-c731-4097-a353-fd1014abde80\",\"email\":\"test-go-create_an_incident_returns_created_response-1670943352@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667175027@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667175027@datadoghq.com\",\"uuid\":\"d1d53f95-4adc-4e7b-896b-1e75ba345e9f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667175027@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675728631@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675728631@datadoghq.com\",\"uuid\":\"d5aa246d-a67b-11ed-9567-ba00348e1a7a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675728631@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677370168@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677370168@datadoghq.com\",\"uuid\":\"d654fb42-b569-11ed-827a-8e2840b25db2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677370168@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676851766@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676851766@datadoghq.com\",\"uuid\":\"d6780612-b0b2-11ed-a714-aa504cceab29\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676851766@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672186280@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672186280@datadoghq.com\",\"uuid\":\"d70a12ec-c10f-47dd-9892-cebecfd6ffb0\",\"email\":\"test-go-create_an_incident_returns_created_response-1672186280@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670199046@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670199046@datadoghq.com\",\"uuid\":\"d968eb97-03c1-436e-835f-9ed06d352716\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670199046@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670890367@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670890367@datadoghq.com\",\"uuid\":\"d9a19936-2b5c-4fbc-b802-7a3dbf639c1b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670890367@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675728639@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675728639@datadoghq.com\",\"uuid\":\"da3ac6ee-a67b-11ed-bd1e-766989ec1239\",\"email\":\"test-go-create_an_incident_returns_created_response-1675728639@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677370176@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677370176@datadoghq.com\",\"uuid\":\"dac22963-b569-11ed-a797-c2fe525de487\",\"email\":\"test-go-create_an_incident_returns_created_response-1677370176@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676851774@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676851774@datadoghq.com\",\"uuid\":\"db0404af-b0b2-11ed-84e6-a6c768ad21b4\",\"email\":\"test-go-create_an_incident_returns_created_response-1676851774@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673136657@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673136657@datadoghq.com\",\"uuid\":\"dcbcad43-008c-4c4c-8c35-ee5ade081d9e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673136657@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670026261@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670026261@datadoghq.com\",\"uuid\":\"ddd99aa3-c7e5-4dff-8099-10588153e164\",\"email\":\"test-go-create_an_incident_returns_created_response-1670026261@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671495031@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671495031@datadoghq.com\",\"uuid\":\"de662b96-845c-45b9-a359-b0b763a45a61\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671495031@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670717454@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670717454@datadoghq.com\",\"uuid\":\"def01997-ae71-49bc-93ea-ff9287d606c7\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670717454@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670112672@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670112672@datadoghq.com\",\"uuid\":\"e09cd088-50f3-4a99-8222-0917d760f4fb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670112672@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670924664@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670924664@datadoghq.com\",\"uuid\":\"e0a87080-eb76-45db-9230-ed4ef629b0d2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670924664@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678839065@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678839065@datadoghq.com\",\"uuid\":\"e1073fac-c2c5-11ed-b4e0-566658a732f8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678839065@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668730257@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668730257@datadoghq.com\",\"uuid\":\"e21b3798-5777-4777-919d-e5ff6fce422a\",\"email\":\"test-go-create_an_incident_returns_created_response-1668730257@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667347836@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667347836@datadoghq.com\",\"uuid\":\"e2267bdc-1a12-4210-869e-60d0faa477bd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667347836@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669248667@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669248667@datadoghq.com\",\"uuid\":\"e42f7f54-0e83-4c40-b112-887402a7ba6b\",\"email\":\"test-go-create_an_incident_returns_created_response-1669248667@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669335019@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669335019@datadoghq.com\",\"uuid\":\"e485ea7a-9a64-44dd-a774-d3f31e869f6e\",\"email\":\"test-go-create_an_incident_returns_created_response-1669335019@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673309495@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673309495@datadoghq.com\",\"uuid\":\"e6615793-c00d-45e8-b8d6-ec1c96309d81\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673309495@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669939809@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669939809@datadoghq.com\",\"uuid\":\"e6d0a0d2-e642-4b20-aa66-34ab638f4d9f\",\"email\":\"test-go-create_an_incident_returns_created_response-1669939809@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678839075@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678839075@datadoghq.com\",\"uuid\":\"e7113f68-c2c5-11ed-b4e0-566658a732f8\",\"email\":\"test-go-create_an_incident_returns_created_response-1678839075@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672531837@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672531837@datadoghq.com\",\"uuid\":\"e7403ce3-c0a2-4bae-8823-45a21c310656\",\"email\":\"test-go-create_an_incident_returns_created_response-1672531837@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678320674@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678320674@datadoghq.com\",\"uuid\":\"e7d1ba87-be0e-11ed-be0d-5609971d255a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678320674@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672618346@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672618346@datadoghq.com\",\"uuid\":\"e84ce941-4c3d-4b79-b736-619897785a82\",\"email\":\"test-go-create_an_incident_returns_created_response-1672618346@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668298272@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668298272@datadoghq.com\",\"uuid\":\"e9b00493-1235-49f2-b229-06ee3afc79b0\",\"email\":\"test-go-create_an_incident_returns_created_response-1668298272@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676160739@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676160739@datadoghq.com\",\"uuid\":\"e9f6df6e-aa69-11ed-8972-1eb0f4245ee5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676160739@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677629617@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677629617@datadoghq.com\",\"uuid\":\"e9ffa5e5-b7c5-11ed-a50e-226546b1da54\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677629617@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679443813@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679443813@datadoghq.com\",\"uuid\":\"eb03f9a6-c845-11ed-a1e1-c6385b25b934\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679443813@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678407009@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678407009@datadoghq.com\",\"uuid\":\"eb834f42-bed7-11ed-a89b-0ebbb850607d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678407009@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674605534@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674605534@datadoghq.com\",\"uuid\":\"ebb5a53d-9c44-11ed-97cc-a697d2568caf\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674605534@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669507847@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669507847@datadoghq.com\",\"uuid\":\"ebf0848a-6b21-4736-ad2a-d93daf59fd15\",\"email\":\"test-go-create_an_incident_returns_created_response-1669507847@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671322279@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671322279@datadoghq.com\",\"uuid\":\"ebf23d4b-53c8-467a-bbb0-636c11b3ffee\",\"email\":\"test-go-create_an_incident_returns_created_response-1671322279@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667606989@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667606989@datadoghq.com\",\"uuid\":\"ec1ed77b-1d70-4727-b2ac-f478a37e3b8c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667606989@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678320684@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678320684@datadoghq.com\",\"uuid\":\"edaec5b4-be0e-11ed-be0d-5609971d255a\",\"email\":\"test-go-create_an_incident_returns_created_response-1678320684@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671062990@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671062990@datadoghq.com\",\"uuid\":\"ee1307d6-f262-47be-b312-0f77517487b8\",\"email\":\"test-go-create_an_incident_returns_created_response-1671062990@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679875893@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679875893@datadoghq.com\",\"uuid\":\"ee8bd235-cc33-11ed-b285-a2593f21064b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679875893@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676160746@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676160746@datadoghq.com\",\"uuid\":\"eeac3af0-aa69-11ed-bddd-722daf28c490\",\"email\":\"test-go-create_an_incident_returns_created_response-1676160746@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677629625@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677629625@datadoghq.com\",\"uuid\":\"eeb210e2-b7c5-11ed-8e20-4a014c845df9\",\"email\":\"test-go-create_an_incident_returns_created_response-1677629625@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672272657@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672272657@datadoghq.com\",\"uuid\":\"efc56647-04f9-430b-abcd-78fd73135dc9\",\"email\":\"test-go-create_an_incident_returns_created_response-1672272657@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674605542@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674605542@datadoghq.com\",\"uuid\":\"f090690e-9c44-11ed-bd03-d63a15ea0a5e\",\"email\":\"test-go-create_an_incident_returns_created_response-1674605542@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674173469@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674173469@datadoghq.com\",\"uuid\":\"f1130564-9856-11ed-8928-461f5552e193\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674173469@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679443823@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679443823@datadoghq.com\",\"uuid\":\"f116f34c-c845-11ed-8b17-fe25dd6b2d5d\",\"email\":\"test-go-create_an_incident_returns_created_response-1679443823@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678407019@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678407019@datadoghq.com\",\"uuid\":\"f182abdf-bed7-11ed-b4e0-566658a732f8\",\"email\":\"test-go-create_an_incident_returns_created_response-1678407019@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677283885@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677283885@datadoghq.com\",\"uuid\":\"f185aa8c-b4a0-11ed-a797-c2fe525de487\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677283885@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677974947@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677974947@datadoghq.com\",\"uuid\":\"f24bcc61-bae9-11ed-a3f2-e6671bdc78dd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677974947@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677808304@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677808304@datadoghq.com\",\"uuid\":\"f352f9e3-b965-11ed-b5bf-a606768bc197\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677808304@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679875903@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679875903@datadoghq.com\",\"uuid\":\"f48dd27a-cc33-11ed-9f7f-0e85fe61e6ee\",\"email\":\"test-go-create_an_incident_returns_created_response-1679875903@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675123953@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675123953@datadoghq.com\",\"uuid\":\"f59374fc-a0fb-11ed-a5e8-da207d422d98\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675123953@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674173477@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674173477@datadoghq.com\",\"uuid\":\"f5a1e00e-9856-11ed-a432-b611e40f0c37\",\"email\":\"test-go-create_an_incident_returns_created_response-1674173477@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675296611@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675296611@datadoghq.com\",\"uuid\":\"f5d92ebe-a28d-11ed-b39d-128f55cb4249\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675296611@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677283893@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677283893@datadoghq.com\",\"uuid\":\"f611f5ab-b4a0-11ed-a797-c2fe525de487\",\"email\":\"test-go-create_an_incident_returns_created_response-1677283893@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670598789@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670598789@datadoghq.com\",\"uuid\":\"f6a52e1f-a5fc-4498-b0f2-69fee17a4142\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670598789@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677974954@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677974954@datadoghq.com\",\"uuid\":\"f6c58d1e-bae9-11ed-8f91-4668bdad4d01\",\"email\":\"test-go-create_an_incident_returns_created_response-1677974954@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677808311@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677808311@datadoghq.com\",\"uuid\":\"f7f12039-b965-11ed-b5bf-a606768bc197\",\"email\":\"test-go-create_an_incident_returns_created_response-1677808311@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668211896@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668211896@datadoghq.com\",\"uuid\":\"f8313d55-863c-4872-8f01-5a74e04418d2\",\"email\":\"test-go-create_an_incident_returns_created_response-1668211896@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668816640@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668816640@datadoghq.com\",\"uuid\":\"f92f0fb9-f3fd-42ff-955a-744cc01ee9a4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668816640@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670928947@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670928947@datadoghq.com\",\"uuid\":\"f9e94170-240d-43ed-a3e4-dec65a38531b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670928947@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675123961@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675123961@datadoghq.com\",\"uuid\":\"fa40ced7-a0fb-11ed-a5e3-d6024dc128f7\",\"email\":\"test-go-create_an_incident_returns_created_response-1675123961@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675296619@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675296619@datadoghq.com\",\"uuid\":\"fa6d1a19-a28d-11ed-9c57-8a8107f52a6e\",\"email\":\"test-go-create_an_incident_returns_created_response-1675296619@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677888634@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677888634@datadoghq.com\",\"uuid\":\"fbd2af3f-ba20-11ed-a3f2-e6671bdc78dd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677888634@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670603299@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670603299@datadoghq.com\",\"uuid\":\"fc061455-8536-4ea0-8a7c-d6bd072c5b89\",\"email\":\"test-go-create_an_incident_returns_created_response-1670603299@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671408597@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671408597@datadoghq.com\",\"uuid\":\"fd20bff8-5c0c-4eb2-941b-c0d7669f996a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671408597@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670603854@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670603854@datadoghq.com\",\"uuid\":\"fdef06c9-5a21-44bb-afb4-14b055649e5b\",\"email\":\"test-go-create_an_incident_returns_created_response-1670603854@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667866318@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667866318@datadoghq.com\",\"uuid\":\"fe4f352d-a8b5-435e-a18c-9914eb88c865\",\"email\":\"test-go-create_an_incident_returns_created_response-1667866318@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926593@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926593@datadoghq.com\",\"uuid\":\"ff2e2858-cf28-44c7-98aa-be52cef329be\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926593@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675815030@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675815030@datadoghq.com\",\"uuid\":\"ff9a7c79-a744-11ed-9567-ba00348e1a7a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675815030@datadoghq.com\"}],\"impact\":[{\"name\":\"none\",\"count\":1703}],\"postmortem\":[{\"name\":\"No\",\"count\":1703},{\"name\":\"Yes\",\"count\":0}],\"time_to_resolve\":[{\"name\":\"time_to_resolve\",\"aggregates\":{\"min\":2.0,\"max\":3.0}}],\"state\":[{\"name\":\"active\",\"count\":1360},{\"name\":\"resolved\",\"count\":343},{\"name\":\"stable\",\"count\":0}],\"customer_impacted\":[{\"name\":0,\"count\":1703},{\"name\":true,\"count\":0}],\"fields\":[{\"name\":\"detection_method\",\"facets\":[{\"name\":\"unknown\",\"count\":1703},{\"name\":\"customer\",\"count\":0},{\"name\":\"employee\",\"count\":0},{\"name\":\"monitor\",\"count\":0},{\"name\":\"other\",\"count\":0}]},{\"name\":\"root_cause\",\"facets\":[]},{\"name\":\"services\",\"facets\":[]},{\"name\":\"summary\",\"facets\":[]},{\"name\":\"teams\",\"facets\":[]}],\"created_by\":[{\"name\":\"CI Account\",\"count\":1505,\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"},{\"name\":\"frog@datadoghq.com\",\"count\":198,\"handle\":\"frog@datadoghq.com\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"email\":\"frog@datadoghq.com\"}],\"last_modified_by\":[{\"name\":\"CI Account\",\"count\":1505,\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"},{\"name\":\"frog@datadoghq.com\",\"count\":198,\"handle\":\"frog@datadoghq.com\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"email\":\"frog@datadoghq.com\"}],\"commander\":[{\"name\":\"test-go-create_an_incident_returns_created_response-1677888642@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677888642@datadoghq.com\",\"uuid\":\"00a080f5-ba21-11ed-a3f2-e6671bdc78dd\",\"email\":\"test-go-create_an_incident_returns_created_response-1677888642@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672877473@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672877473@datadoghq.com\",\"uuid\":\"01dc2b21-3194-414a-b8e8-58704603421b\",\"email\":\"test-go-create_an_incident_returns_created_response-1672877473@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678925450@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678925450@datadoghq.com\",\"uuid\":\"02a54dc1-c38f-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678925450@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672013445@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672013445@datadoghq.com\",\"uuid\":\"03e16d56-e954-4e9a-b9da-22dffdfa1f24\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672013445@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666981015@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666981015@datadoghq.com\",\"uuid\":\"03e65d16-b7bb-456a-a5da-bf31dffbdf4d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666981015@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675815038@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675815038@datadoghq.com\",\"uuid\":\"0423cfd5-a745-11ed-9567-ba00348e1a7a\",\"email\":\"test-go-create_an_incident_returns_created_response-1675815038@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669335011@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669335011@datadoghq.com\",\"uuid\":\"04c4feaa-1864-4167-a48b-e156181d50d8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669335011@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669248659@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669248659@datadoghq.com\",\"uuid\":\"04f0d8b5-1959-43fb-85b5-782682062c4e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669248659@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673655101@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673655101@datadoghq.com\",\"uuid\":\"05d83a07-93a0-11ed-bf65-7630e111ac00\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673655101@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666743047@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666743047@datadoghq.com\",\"uuid\":\"060c37c0-93a9-48c0-90bc-dee85b66a7c7\",\"email\":\"test-go-create_an_incident_returns_created_response-1666743047@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678925461@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678925461@datadoghq.com\",\"uuid\":\"08f8d3b7-c38f-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1678925461@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670112680@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670112680@datadoghq.com\",\"uuid\":\"09010d4b-7635-4553-a7b9-973f5f9cea5b\",\"email\":\"test-go-create_an_incident_returns_created_response-1670112680@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673655109@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673655109@datadoghq.com\",\"uuid\":\"0a679024-93a0-11ed-aaf8-3230475e674b\",\"email\":\"test-go-create_an_incident_returns_created_response-1673655109@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667434335@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667434335@datadoghq.com\",\"uuid\":\"0ebbf763-be8f-40bb-8ee7-d37b729a5eed\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667434335@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668384644@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668384644@datadoghq.com\",\"uuid\":\"1193cff3-b670-4e08-a535-346105dcaf9f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668384644@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675210330@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675210330@datadoghq.com\",\"uuid\":\"1205474f-a1c5-11ed-b767-5ec4f5b84c10\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675210330@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674691927@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674691927@datadoghq.com\",\"uuid\":\"122c89ad-9d0e-11ed-9f54-862b4cfe184c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674691927@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668643799@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668643799@datadoghq.com\",\"uuid\":\"12d78e1b-0784-46f3-99ac-7e5db2d5c92e\",\"email\":\"test-go-create_an_incident_returns_created_response-1668643799@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671667884@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671667884@datadoghq.com\",\"uuid\":\"1310687d-9adb-47ae-ad7a-066c9e525f8b\",\"email\":\"test-go-create_an_incident_returns_created_response-1671667884@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673741454@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673741454@datadoghq.com\",\"uuid\":\"142ba3fc-9469-11ed-a365-8ec8661800c6\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673741454@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679011809@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679011809@datadoghq.com\",\"uuid\":\"1431aabf-c458-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679011809@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670927771@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670927771@datadoghq.com\",\"uuid\":\"14344412-a7b1-4044-89f7-8139727432f6\",\"email\":\"test-go-create_an_incident_returns_created_response-1670927771@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667261554@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667261554@datadoghq.com\",\"uuid\":\"1608c46d-bee2-46a5-be87-49af2b889db5\",\"email\":\"test-go-create_an_incident_returns_created_response-1667261554@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670929702@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670929702@datadoghq.com\",\"uuid\":\"161217ca-a0b5-418c-b0e5-d16edddd8258\",\"email\":\"test-go-create_an_incident_returns_created_response-1670929702@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675901397@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675901397@datadoghq.com\",\"uuid\":\"1628d4a0-a80e-11ed-af43-4e64a4a39547\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675901397@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670928949@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670928949@datadoghq.com\",\"uuid\":\"16754b18-1887-4f22-ae44-4a86e9bfc749\",\"email\":\"test-go-create_an_incident_returns_created_response-1670928949@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675210337@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675210337@datadoghq.com\",\"uuid\":\"1682f280-a1c5-11ed-ad87-fecda9c428d5\",\"email\":\"test-go-create_an_incident_returns_created_response-1675210337@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674691935@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674691935@datadoghq.com\",\"uuid\":\"16bf2921-9d0e-11ed-aff1-fa6399bf96fd\",\"email\":\"test-go-create_an_incident_returns_created_response-1674691935@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671754258@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671754258@datadoghq.com\",\"uuid\":\"18ada30d-ad3e-4ba2-911d-931233a75aa0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671754258@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679962293@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679962293@datadoghq.com\",\"uuid\":\"18cfb810-ccfd-11ed-a201-de0443f18a2a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679962293@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673741462@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673741462@datadoghq.com\",\"uuid\":\"18e9a7f7-9469-11ed-aaf8-3230475e674b\",\"email\":\"test-go-create_an_incident_returns_created_response-1673741462@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679011819@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679011819@datadoghq.com\",\"uuid\":\"1a8c2817-c458-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1679011819@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675901404@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675901404@datadoghq.com\",\"uuid\":\"1aa50cab-a80e-11ed-bc4c-ea1adbbc0986\",\"email\":\"test-go-create_an_incident_returns_created_response-1675901404@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670285407@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670285407@datadoghq.com\",\"uuid\":\"1bb87a6c-da01-4798-8bd0-5cd9918f641f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670285407@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668903124@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668903124@datadoghq.com\",\"uuid\":\"1bcb111e-ea64-4d60-9b77-ae5e7f22f157\",\"email\":\"test-go-create_an_incident_returns_created_response-1668903124@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668039051@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668039051@datadoghq.com\",\"uuid\":\"1c54a963-17f1-4ee8-a2b0-7fd07c3b2c68\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668039051@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674259871@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674259871@datadoghq.com\",\"uuid\":\"1c631d44-9920-11ed-8c68-2a913616fde8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674259871@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677024542@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677024542@datadoghq.com\",\"uuid\":\"1ce329fb-b245-11ed-8fbc-ca7794d66904\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677024542@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671149452@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671149452@datadoghq.com\",\"uuid\":\"1ebe2367-3eda-464c-9571-edd444620682\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671149452@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676419814@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676419814@datadoghq.com\",\"uuid\":\"1f019dde-acc5-11ed-bcdd-a68779fca942\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676419814@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679962303@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679962303@datadoghq.com\",\"uuid\":\"1f034a5d-ccfd-11ed-aef0-a6405a9b4791\",\"email\":\"test-go-create_an_incident_returns_created_response-1679962303@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672618338@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672618338@datadoghq.com\",\"uuid\":\"1fd5cef4-df5c-4609-be9a-11bf76483cfc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672618338@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666915819@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666915819@datadoghq.com\",\"uuid\":\"20be4a8a-b215-4bc0-b2fa-31c27e0a642b\",\"email\":\"test-go-create_an_incident_returns_created_response-1666915819@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671840707@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671840707@datadoghq.com\",\"uuid\":\"20d2001a-92b4-4d03-a5cb-73617f27b723\",\"email\":\"test-go-create_an_incident_returns_created_response-1671840707@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674259878@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674259878@datadoghq.com\",\"uuid\":\"20dbaf3d-9920-11ed-8c68-2a913616fde8\",\"email\":\"test-go-create_an_incident_returns_created_response-1674259878@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677024549@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677024549@datadoghq.com\",\"uuid\":\"214ed4fd-b245-11ed-8fbc-ca7794d66904\",\"email\":\"test-go-create_an_incident_returns_created_response-1677024549@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676419822@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676419822@datadoghq.com\",\"uuid\":\"2375265b-acc5-11ed-9a7e-46e4eb8f12a7\",\"email\":\"test-go-create_an_incident_returns_created_response-1676419822@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670594546@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670594546@datadoghq.com\",\"uuid\":\"2399be00-e683-4133-aec2-7ab8fe73779e\",\"email\":\"test-go-create_an_incident_returns_created_response-1670594546@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673050262@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673050262@datadoghq.com\",\"uuid\":\"23a293e3-086a-4f8e-8fa6-a2555557309e\",\"email\":\"test-go-create_an_incident_returns_created_response-1673050262@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667175034@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667175034@datadoghq.com\",\"uuid\":\"24f932ba-4cd2-498e-8261-64f6ec161bcb\",\"email\":\"test-go-create_an_incident_returns_created_response-1667175034@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677456630@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677456630@datadoghq.com\",\"uuid\":\"25538030-b633-11ed-827a-8e2840b25db2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677456630@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672013452@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672013452@datadoghq.com\",\"uuid\":\"2593795d-b0f5-46f9-a852-34d3c466ce0a\",\"email\":\"test-go-create_an_incident_returns_created_response-1672013452@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667520677@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667520677@datadoghq.com\",\"uuid\":\"26287ddb-5d1c-400d-96dc-a1d3bb09f880\",\"email\":\"test-go-create_an_incident_returns_created_response-1667520677@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679616573@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679616573@datadoghq.com\",\"uuid\":\"27c16c1b-c9d8-11ed-b840-0ed4b0ca293a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679616573@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676938232@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676938232@datadoghq.com\",\"uuid\":\"281184f3-b17c-11ed-bce8-0a557ccee039\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676938232@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668557513@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668557513@datadoghq.com\",\"uuid\":\"2871bc57-733f-4f85-b3ef-440569202326\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668557513@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668471095@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668471095@datadoghq.com\",\"uuid\":\"289f8508-500c-472e-a9d4-71f30f1cf151\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668471095@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671667877@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671667877@datadoghq.com\",\"uuid\":\"28ae893d-4b70-420d-96dc-f82066a0642f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671667877@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672531830@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672531830@datadoghq.com\",\"uuid\":\"291b8416-a87d-4e56-a93e-9d430d5c4996\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672531830@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677456637@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677456637@datadoghq.com\",\"uuid\":\"29cd6809-b633-11ed-827a-8e2840b25db2\",\"email\":\"test-go-create_an_incident_returns_created_response-1677456637@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678493444@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678493444@datadoghq.com\",\"uuid\":\"2acb4dc0-bfa1-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678493444@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671927057@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671927057@datadoghq.com\",\"uuid\":\"2b0ac046-39c8-4bf4-a00a-deb089bbbc0c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671927057@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679530252@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679530252@datadoghq.com\",\"uuid\":\"2c9256b5-c90f-11ed-a1f3-7afc45c1981c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679530252@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676938239@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676938239@datadoghq.com\",\"uuid\":\"2c977e11-b17c-11ed-bce8-0a557ccee039\",\"email\":\"test-go-create_an_incident_returns_created_response-1676938239@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679616583@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679616583@datadoghq.com\",\"uuid\":\"2d99557e-c9d8-11ed-a171-361a8cacd441\",\"email\":\"test-go-create_an_incident_returns_created_response-1679616583@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672445562@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672445562@datadoghq.com\",\"uuid\":\"2db31432-b497-42b8-80b7-fef85898a2a8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672445562@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668039059@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668039059@datadoghq.com\",\"uuid\":\"2ebfffc1-a7da-4558-a507-038442f7ee79\",\"email\":\"test-go-create_an_incident_returns_created_response-1668039059@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669767030@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669767030@datadoghq.com\",\"uuid\":\"2eca0bd9-db8e-4c5d-91b7-2ccddffd5764\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669767030@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671235865@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671235865@datadoghq.com\",\"uuid\":\"2fc6258a-7492-43c0-accf-24528cbbfea1\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671235865@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669680686@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669680686@datadoghq.com\",\"uuid\":\"302a3d05-c61c-41d8-ad31-8821b764acf7\",\"email\":\"test-go-create_an_incident_returns_created_response-1669680686@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678493454@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678493454@datadoghq.com\",\"uuid\":\"30e3000f-bfa1-11ed-9949-f20a22a554f2\",\"email\":\"test-go-create_an_incident_returns_created_response-1678493454@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676333515@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676333515@datadoghq.com\",\"uuid\":\"30e43861-abfc-11ed-a6fc-0e9b7fe457ae\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676333515@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669680678@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669680678@datadoghq.com\",\"uuid\":\"31ad2923-926d-49af-ad5b-d8b120e6edc8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669680678@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679530263@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679530263@datadoghq.com\",\"uuid\":\"32d40acb-c90f-11ed-a1f3-7afc45c1981c\",\"email\":\"test-go-create_an_incident_returns_created_response-1679530263@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671581470@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671581470@datadoghq.com\",\"uuid\":\"34377484-e597-4d4c-bccf-88e919b6d549\",\"email\":\"test-go-create_an_incident_returns_created_response-1671581470@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667693449@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667693449@datadoghq.com\",\"uuid\":\"34e92512-7c24-4704-816e-4fadc9b5eff7\",\"email\":\"test-go-create_an_incident_returns_created_response-1667693449@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668211888@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668211888@datadoghq.com\",\"uuid\":\"3578dcc8-088a-4320-8c27-7f80f1bba4cb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668211888@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672186272@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672186272@datadoghq.com\",\"uuid\":\"3584000d-6337-4c9e-955e-e25514b83be0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672186272@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676333523@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676333523@datadoghq.com\",\"uuid\":\"35ba7493-abfc-11ed-b5cd-eec9514dd597\",\"email\":\"test-go-create_an_incident_returns_created_response-1676333523@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678579793@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678579793@datadoghq.com\",\"uuid\":\"367e08f8-c06a-11ed-b4e0-566658a732f8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678579793@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671062982@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671062982@datadoghq.com\",\"uuid\":\"3883d9fe-1678-452e-8801-11a374f9fdae\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671062982@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667002244@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667002244@datadoghq.com\",\"uuid\":\"39627294-7a14-4e71-b5ff-5221e68b6fbe\",\"email\":\"test-go-create_an_incident_returns_created_response-1667002244@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671581462@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671581462@datadoghq.com\",\"uuid\":\"3bc8406a-5790-4582-82f5-08e330921b9b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671581462@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668989431@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668989431@datadoghq.com\",\"uuid\":\"3c28c823-158e-46c2-8dce-06f1dace90e8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668989431@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673050254@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673050254@datadoghq.com\",\"uuid\":\"3c7509b1-82af-4d25-b1e5-3e8aaa107f0a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673050254@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678579803@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678579803@datadoghq.com\",\"uuid\":\"3c7f71d2-c06a-11ed-a89b-0ebbb850607d\",\"email\":\"test-go-create_an_incident_returns_created_response-1678579803@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669162240@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669162240@datadoghq.com\",\"uuid\":\"3ce20d84-5e75-45a5-b7b9-971549a50cf4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669162240@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670458180@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670458180@datadoghq.com\",\"uuid\":\"40d8c19a-8c6a-4f54-9444-aba7b6798064\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670458180@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678061409@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678061409@datadoghq.com\",\"uuid\":\"41da9ce5-bbb3-11ed-82a6-028cebedd0cf\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678061409@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673136665@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673136665@datadoghq.com\",\"uuid\":\"426feaae-7bf3-4b2c-bc8c-0c79056d6d8d\",\"email\":\"test-go-create_an_incident_returns_created_response-1673136665@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672099886@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672099886@datadoghq.com\",\"uuid\":\"431624c4-d099-4dfb-b701-33a60bba6ebe\",\"email\":\"test-go-create_an_incident_returns_created_response-1672099886@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669421482@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669421482@datadoghq.com\",\"uuid\":\"442dd264-b729-473b-a51d-4b141068fe3d\",\"email\":\"test-go-create_an_incident_returns_created_response-1669421482@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603297@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603297@datadoghq.com\",\"uuid\":\"446cd2d8-630c-4fe9-8901-fb85bd22426d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603297@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678061417@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678061417@datadoghq.com\",\"uuid\":\"467de14f-bbb3-11ed-82a6-028cebedd0cf\",\"email\":\"test-go-create_an_incident_returns_created_response-1678061417@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668989438@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668989438@datadoghq.com\",\"uuid\":\"46d62900-016b-463c-9fff-c8b4f946ce5c\",\"email\":\"test-go-create_an_incident_returns_created_response-1668989438@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675469405@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675469405@datadoghq.com\",\"uuid\":\"46e3c6ef-a420-11ed-b1f8-56250c47f0b3\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675469405@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670371777@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670371777@datadoghq.com\",\"uuid\":\"48f7337b-3304-46fc-9e88-23b4dc5d24cc\",\"email\":\"test-go-create_an_incident_returns_created_response-1670371777@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670943350@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670943350@datadoghq.com\",\"uuid\":\"4b432133-ba1b-4edc-ab57-c0250963f250\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670943350@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679098230@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679098230@datadoghq.com\",\"uuid\":\"4b5ba977-c521-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679098230@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675469412@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675469412@datadoghq.com\",\"uuid\":\"4b68a1e2-a420-11ed-b1f8-56250c47f0b3\",\"email\":\"test-go-create_an_incident_returns_created_response-1675469412@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668816648@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668816648@datadoghq.com\",\"uuid\":\"4e5cb15e-f18e-43ba-b115-2a4e62736739\",\"email\":\"test-go-create_an_incident_returns_created_response-1668816648@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603851@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603851@datadoghq.com\",\"uuid\":\"4e6b1824-dc1e-4691-8abd-5ffb968da7eb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603851@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669421474@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669421474@datadoghq.com\",\"uuid\":\"4fdb4327-3660-4aeb-b403-7f7939493f27\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669421474@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670458188@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670458188@datadoghq.com\",\"uuid\":\"50d5408a-1894-4173-9fa1-32209009d9b1\",\"email\":\"test-go-create_an_incident_returns_created_response-1670458188@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679098240@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679098240@datadoghq.com\",\"uuid\":\"5141e45c-c521-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-create_an_incident_returns_created_response-1679098240@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675383094@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675383094@datadoghq.com\",\"uuid\":\"520007b9-a357-11ed-acb5-6e0b90178632\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675383094@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670803787@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670803787@datadoghq.com\",\"uuid\":\"521a78f7-573e-4b67-8e2c-d0dd5d91a265\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670803787@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666743039@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666743039@datadoghq.com\",\"uuid\":\"54b84ea9-ae9f-4159-b226-aba3b432a792\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666743039@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674346295@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674346295@datadoghq.com\",\"uuid\":\"551c3a48-99e9-11ed-a607-1684d7f553f6\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674346295@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678147771@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678147771@datadoghq.com\",\"uuid\":\"557fb06e-bc7c-11ed-be39-625d488bce09\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678147771@datadoghq.com\"},{\"name\":\"test-add_commander_to_an_incident_returns_ok_response-1677691218@datadoghq.com\",\"count\":1,\"handle\":\"test-add_commander_to_an_incident_returns_ok_response-1677691218@datadoghq.com\",\"uuid\":\"56afe5b0-b855-11ed-a706-064bc8586212\",\"email\":\"test-add_commander_to_an_incident_returns_ok_response-1677691218@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675383103@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675383103@datadoghq.com\",\"uuid\":\"56d1cddc-a357-11ed-95c6-eefcd7f14d98\",\"email\":\"test-go-create_an_incident_returns_created_response-1675383103@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670929700@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670929700@datadoghq.com\",\"uuid\":\"5705f818-933e-4ef4-818c-615b06f80fd1\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670929700@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668557521@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668557521@datadoghq.com\",\"uuid\":\"577067f0-c41d-4928-8964-0f7725e8cf68\",\"email\":\"test-go-create_an_incident_returns_created_response-1668557521@datadoghq.com\"},{\"name\":\"test-create_an_incident_returns_created_response-1677691220@datadoghq.com\",\"count\":1,\"handle\":\"test-create_an_incident_returns_created_response-1677691220@datadoghq.com\",\"uuid\":\"57e9dbb7-b855-11ed-ab26-8e492650c256\",\"email\":\"test-create_an_incident_returns_created_response-1677691220@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679702983@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679702983@datadoghq.com\",\"uuid\":\"58287ff7-caa1-11ed-81eb-8227c2cf9828\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679702983@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666829448@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666829448@datadoghq.com\",\"uuid\":\"586e086f-1e29-4689-99b6-641c3218b0a8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666829448@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674346302@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674346302@datadoghq.com\",\"uuid\":\"59b0d36c-99e9-11ed-8968-92ec5048e27c\",\"email\":\"test-go-create_an_incident_returns_created_response-1674346302@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667261546@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667261546@datadoghq.com\",\"uuid\":\"59c9cd2e-cd40-4530-ba50-415bce89b133\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667261546@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678147781@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678147781@datadoghq.com\",\"uuid\":\"5b76378d-bc7c-11ed-ba16-0aeab349e953\",\"email\":\"test-go-create_an_incident_returns_created_response-1678147781@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670976638@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670976638@datadoghq.com\",\"uuid\":\"5baf69e4-9bd6-4c76-b552-2bfee88031b5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670976638@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668298265@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668298265@datadoghq.com\",\"uuid\":\"5c4ecf79-7ffb-47ea-9331-687b04ac9df8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668298265@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671840699@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671840699@datadoghq.com\",\"uuid\":\"5ce42d6d-a0b9-4d0f-893b-aa0b8f30ee5c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671840699@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672445570@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672445570@datadoghq.com\",\"uuid\":\"5d11019d-f1dc-468d-a20a-8e64e7af9494\",\"email\":\"test-go-create_an_incident_returns_created_response-1672445570@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670976646@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670976646@datadoghq.com\",\"uuid\":\"5db9c599-b71f-40c6-84d9-8ca8779004e1\",\"email\":\"test-go-create_an_incident_returns_created_response-1670976646@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679702993@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679702993@datadoghq.com\",\"uuid\":\"5e20a7d6-caa1-11ed-b285-a2593f21064b\",\"email\":\"test-go-create_an_incident_returns_created_response-1679702993@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673223078@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673223078@datadoghq.com\",\"uuid\":\"5f3582c4-06d1-43a3-bab9-b7ece49136a4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673223078@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672791107@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672791107@datadoghq.com\",\"uuid\":\"610753d8-8bc4-11ed-94a1-26632eba8bed\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672791107@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677110986@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677110986@datadoghq.com\",\"uuid\":\"614ff267-b30e-11ed-b3d7-ea098e8dc2bb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677110986@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667088640@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667088640@datadoghq.com\",\"uuid\":\"61d88713-957f-4920-8a3b-65f0ccd79b57\",\"email\":\"test-go-create_an_incident_returns_created_response-1667088640@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670026253@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670026253@datadoghq.com\",\"uuid\":\"623452c3-d694-466a-95b9-140a9c44a1ab\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670026253@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672791115@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672791115@datadoghq.com\",\"uuid\":\"65b38b0e-8bc4-11ed-81c7-fed5bfaa3f3d\",\"email\":\"test-go-create_an_incident_returns_created_response-1672791115@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677110993@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677110993@datadoghq.com\",\"uuid\":\"65e049af-b30e-11ed-82a1-e2db47427de5\",\"email\":\"test-go-create_an_incident_returns_created_response-1677110993@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674778401@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674778401@datadoghq.com\",\"uuid\":\"6847d712-9dd7-11ed-967f-12bf3e4c6b0d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674778401@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667520669@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667520669@datadoghq.com\",\"uuid\":\"6887723d-dbde-4969-bba8-e9b3464645ce\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667520669@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678204931@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678204931@datadoghq.com\",\"uuid\":\"6b9e40b1-bd01-11ed-8bd9-4a4655204cc7\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678204931@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667952700@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667952700@datadoghq.com\",\"uuid\":\"6c22fc34-31d7-4085-948b-d862feb447fe\",\"email\":\"test-go-create_an_incident_returns_created_response-1667952700@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676506273@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676506273@datadoghq.com\",\"uuid\":\"6ca38252-ad8e-11ed-9613-3a90352a946f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676506273@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671149459@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671149459@datadoghq.com\",\"uuid\":\"6ccce5fc-d6a8-416d-921b-f883914b67ad\",\"email\":\"test-go-create_an_incident_returns_created_response-1671149459@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674778408@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674778408@datadoghq.com\",\"uuid\":\"6d0c845f-9dd7-11ed-a399-1a75992a86c7\",\"email\":\"test-go-create_an_incident_returns_created_response-1674778408@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669594231@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669594231@datadoghq.com\",\"uuid\":\"6d550b97-297b-43ea-a3dc-85383cf72fba\",\"email\":\"test-go-create_an_incident_returns_created_response-1669594231@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671927065@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671927065@datadoghq.com\",\"uuid\":\"6d7f7052-6ddb-461f-a49f-6cb5fca6b2c8\",\"email\":\"test-go-create_an_incident_returns_created_response-1671927065@datadoghq.com\"},{\"name\":\"test-add_commander_to_an_incident_returns_ok_response-1677691687@datadoghq.com\",\"count\":1,\"handle\":\"test-add_commander_to_an_incident_returns_ok_response-1677691687@datadoghq.com\",\"uuid\":\"6e0e84e3-b856-11ed-ab26-8e492650c256\",\"email\":\"test-add_commander_to_an_incident_returns_ok_response-1677691687@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675987874@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675987874@datadoghq.com\",\"uuid\":\"6ed45bb9-a8d7-11ed-b51e-c2a468ff72a6\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675987874@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670927769@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670927769@datadoghq.com\",\"uuid\":\"6efabec4-24bc-46bd-8f53-e068f03adbf0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670927769@datadoghq.com\"},{\"name\":\"test-create_an_incident_returns_created_response-1677691689@datadoghq.com\",\"count\":1,\"handle\":\"test-create_an_incident_returns_created_response-1677691689@datadoghq.com\",\"uuid\":\"6f41744d-b856-11ed-a706-064bc8586212\",\"email\":\"test-create_an_incident_returns_created_response-1677691689@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670717462@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670717462@datadoghq.com\",\"uuid\":\"70532155-9800-46d9-89ed-bd41347c3dfd\",\"email\":\"test-go-create_an_incident_returns_created_response-1670717462@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676506281@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676506281@datadoghq.com\",\"uuid\":\"713c4001-ad8e-11ed-be7d-0ec0d643006a\",\"email\":\"test-go-create_an_incident_returns_created_response-1676506281@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678204941@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678204941@datadoghq.com\",\"uuid\":\"71cb7181-bd01-11ed-8700-9293738b117d\",\"email\":\"test-go-create_an_incident_returns_created_response-1678204941@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671322271@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671322271@datadoghq.com\",\"uuid\":\"7247d247-e798-4af5-b9ce-7bf786c4d0c7\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671322271@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672359091@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672359091@datadoghq.com\",\"uuid\":\"73546355-1adc-4289-908a-2f6fae7fc9fa\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672359091@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675987882@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675987882@datadoghq.com\",\"uuid\":\"738ccf6d-a8d7-11ed-ad7e-6ed4f1c67dea\",\"email\":\"test-go-create_an_incident_returns_created_response-1675987882@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677543090@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677543090@datadoghq.com\",\"uuid\":\"73a70dc9-b6fc-11ed-a3d7-a2295215c227\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677543090@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669507839@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669507839@datadoghq.com\",\"uuid\":\"7571121d-a654-4df8-9afa-e638f17d53bb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669507839@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674432680@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674432680@datadoghq.com\",\"uuid\":\"76c071c8-9ab2-11ed-8c68-2a913616fde8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674432680@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674864754@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674864754@datadoghq.com\",\"uuid\":\"7715eb6d-9ea0-11ed-8e78-767557a2485a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674864754@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677543098@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677543098@datadoghq.com\",\"uuid\":\"785f915d-b6fc-11ed-ad05-76e4602e1079\",\"email\":\"test-go-create_an_incident_returns_created_response-1677543098@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673395882@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673395882@datadoghq.com\",\"uuid\":\"7ac9b3b9-9144-11ed-82e3-622adeb45fa9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673395882@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674432688@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674432688@datadoghq.com\",\"uuid\":\"7b5907f1-9ab2-11ed-8c68-2a913616fde8\",\"email\":\"test-go-create_an_incident_returns_created_response-1674432688@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672877465@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672877465@datadoghq.com\",\"uuid\":\"7ba05e4d-f9a0-44e2-aa8c-bcda7adac2e5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672877465@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674864762@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674864762@datadoghq.com\",\"uuid\":\"7bc2a11e-9ea0-11ed-8c38-7ad981f4abb4\",\"email\":\"test-go-create_an_incident_returns_created_response-1674864762@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668384652@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668384652@datadoghq.com\",\"uuid\":\"7da5fc01-ccbd-4679-8149-cb22fe402bb3\",\"email\":\"test-go-create_an_incident_returns_created_response-1668384652@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667779824@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667779824@datadoghq.com\",\"uuid\":\"7dd124ba-7343-4882-b700-c44374efa8e3\",\"email\":\"test-go-create_an_incident_returns_created_response-1667779824@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673914292@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673914292@datadoghq.com\",\"uuid\":\"7f3e8ad2-95fb-11ed-b93e-b6681b4e2484\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673914292@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673395889@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673395889@datadoghq.com\",\"uuid\":\"7f7afd0e-9144-11ed-82e3-622adeb45fa9\",\"email\":\"test-go-create_an_incident_returns_created_response-1673395889@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676592635@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676592635@datadoghq.com\",\"uuid\":\"8009c2e2-ae57-11ed-b4cb-a681084bf13a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676592635@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670926105@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670926105@datadoghq.com\",\"uuid\":\"81831280-6cb1-4a01-9dc9-f68b1405f8f6\",\"email\":\"test-go-create_an_incident_returns_created_response-1670926105@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677197369@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677197369@datadoghq.com\",\"uuid\":\"81da5714-b3d7-11ed-97bb-cad2b20710fd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677197369@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678666250@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678666250@datadoghq.com\",\"uuid\":\"82eadb7f-c133-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678666250@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673914300@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673914300@datadoghq.com\",\"uuid\":\"84060fed-95fb-11ed-b93e-b6681b4e2484\",\"email\":\"test-go-create_an_incident_returns_created_response-1673914300@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670199054@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670199054@datadoghq.com\",\"uuid\":\"847f57aa-1b32-4eee-8447-e6eef1f6744f\",\"email\":\"test-go-create_an_incident_returns_created_response-1670199054@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676592642@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676592642@datadoghq.com\",\"uuid\":\"848026b5-ae57-11ed-9ecb-824f74ccf3e4\",\"email\":\"test-go-create_an_incident_returns_created_response-1676592642@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670630968@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670630968@datadoghq.com\",\"uuid\":\"853cce16-d7d3-4bd6-8f99-b1eab0407cf1\",\"email\":\"test-go-create_an_incident_returns_created_response-1670630968@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672099877@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672099877@datadoghq.com\",\"uuid\":\"862d085b-48ce-446e-a74f-ae3538d623f5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672099877@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674951109@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674951109@datadoghq.com\",\"uuid\":\"866af7b6-9f69-11ed-8c38-7ad981f4abb4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674951109@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677197377@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677197377@datadoghq.com\",\"uuid\":\"86a13258-b3d7-11ed-a605-a260cf3212a9\",\"email\":\"test-go-create_an_incident_returns_created_response-1677197377@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673827975@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673827975@datadoghq.com\",\"uuid\":\"86bc89ca-9532-11ed-bf65-7630e111ac00\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673827975@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667434343@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667434343@datadoghq.com\",\"uuid\":\"88c2cdf6-2769-4e68-9503-38d3f166ff1a\",\"email\":\"test-go-create_an_incident_returns_created_response-1667434343@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678666260@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678666260@datadoghq.com\",\"uuid\":\"88ce8004-c133-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1678666260@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679270991@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679270991@datadoghq.com\",\"uuid\":\"89229fdb-c6b3-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679270991@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668643791@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668643791@datadoghq.com\",\"uuid\":\"8a2d2c9d-c478-4a74-94a8-cabb28bd1473\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668643791@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674951116@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674951116@datadoghq.com\",\"uuid\":\"8ae38d89-9f69-11ed-bfa9-f2483e31eab5\",\"email\":\"test-go-create_an_incident_returns_created_response-1674951116@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673827983@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673827983@datadoghq.com\",\"uuid\":\"8b7b570e-9532-11ed-bf65-7630e111ac00\",\"email\":\"test-go-create_an_incident_returns_created_response-1673827983@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676074256@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676074256@datadoghq.com\",\"uuid\":\"8e41e3a8-a9a0-11ed-a060-46b9814ce648\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676074256@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672704719@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672704719@datadoghq.com\",\"uuid\":\"8e85e36f-5ccd-4052-a34e-d7338178914e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672704719@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679271002@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679271002@datadoghq.com\",\"uuid\":\"8f25b885-c6b3-11ed-9949-f20a22a554f2\",\"email\":\"test-go-create_an_incident_returns_created_response-1679271002@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667866310@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667866310@datadoghq.com\",\"uuid\":\"8f8399af-4d57-41a1-91a3-37c29fb62092\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667866310@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670630960@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670630960@datadoghq.com\",\"uuid\":\"8fa60296-198c-4113-8f21-0ba09e4fd83e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670630960@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679789405@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679789405@datadoghq.com\",\"uuid\":\"8fb58f8b-cb6a-11ed-be83-92f82eb96735\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679789405@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666829456@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666829456@datadoghq.com\",\"uuid\":\"91a8dc0a-0c63-4411-b9ab-39ec37dc2eee\",\"email\":\"test-go-create_an_incident_returns_created_response-1666829456@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669939802@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669939802@datadoghq.com\",\"uuid\":\"92c4c4e2-d881-485c-9668-0aa68239c513\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669939802@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676074265@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676074265@datadoghq.com\",\"uuid\":\"936c4650-a9a0-11ed-af98-1a32d7edfd9d\",\"email\":\"test-go-create_an_incident_returns_created_response-1676074265@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667088632@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667088632@datadoghq.com\",\"uuid\":\"93e8df0e-729e-4d2f-b0a4-9495ffb37b06\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667088632@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673482254@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673482254@datadoghq.com\",\"uuid\":\"94c9bf7f-920d-11ed-9cec-222dbf547024\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673482254@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670598792@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670598792@datadoghq.com\",\"uuid\":\"94d92a17-4768-48dd-97b4-ab32fee4e33b\",\"email\":\"test-go-create_an_incident_returns_created_response-1670598792@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669853467@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669853467@datadoghq.com\",\"uuid\":\"94f7179d-40a0-4790-9436-6080eb0db034\",\"email\":\"test-go-create_an_incident_returns_created_response-1669853467@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679789415@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679789415@datadoghq.com\",\"uuid\":\"959ada1b-cb6a-11ed-9f7f-0e85fe61e6ee\",\"email\":\"test-go-create_an_incident_returns_created_response-1679789415@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669075853@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669075853@datadoghq.com\",\"uuid\":\"96796850-b278-4313-a726-9cf5c832fe30\",\"email\":\"test-go-create_an_incident_returns_created_response-1669075853@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676679006@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676679006@datadoghq.com\",\"uuid\":\"99579994-af20-11ed-94c9-462a25af4eaf\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676679006@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673482262@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673482262@datadoghq.com\",\"uuid\":\"995b112e-920d-11ed-9888-e278e4206645\",\"email\":\"test-go-create_an_incident_returns_created_response-1673482262@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670594544@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670594544@datadoghq.com\",\"uuid\":\"9b26b565-e0c1-4777-a693-553a8d5cb243\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670594544@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670285415@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670285415@datadoghq.com\",\"uuid\":\"9b9fe3ac-f73b-43a5-b570-43d156e07ea9\",\"email\":\"test-go-create_an_incident_returns_created_response-1670285415@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670926595@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670926595@datadoghq.com\",\"uuid\":\"9c09fbea-fce4-4c02-9a45-ec845bab938a\",\"email\":\"test-go-create_an_incident_returns_created_response-1670926595@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670544898@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670544898@datadoghq.com\",\"uuid\":\"9c58a1dc-6beb-4390-928e-ed9d95b13b30\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670544898@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667693441@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667693441@datadoghq.com\",\"uuid\":\"9ccf5d51-55b4-43e0-ad79-7819a8d223f0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667693441@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676679013@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676679013@datadoghq.com\",\"uuid\":\"9dd94922-af20-11ed-94c9-462a25af4eaf\",\"email\":\"test-go-create_an_incident_returns_created_response-1676679013@datadoghq.com\"},{\"name\":\"test-add_commander_to_an_incident_returns_ok_response-1675266399@datadoghq.com\",\"count\":1,\"handle\":\"test-add_commander_to_an_incident_returns_ok_response-1675266399@datadoghq.com\",\"uuid\":\"9defa75d-a247-11ed-97de-223323d49fa6\",\"email\":\"test-add_commander_to_an_incident_returns_ok_response-1675266399@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666979690@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666979690@datadoghq.com\",\"uuid\":\"9e072255-5184-44a8-ae5f-a8e70ec5037c\",\"email\":\"test-go-create_an_incident_returns_created_response-1666979690@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678752625@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678752625@datadoghq.com\",\"uuid\":\"9e85bf56-c1fc-11ed-b4e0-566658a732f8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678752625@datadoghq.com\"},{\"name\":\"test-create_an_incident_returns_created_response-1675266400@datadoghq.com\",\"count\":1,\"handle\":\"test-create_an_incident_returns_created_response-1675266400@datadoghq.com\",\"uuid\":\"9ee1d254-a247-11ed-92ef-6ad132878933\",\"email\":\"test-create_an_incident_returns_created_response-1675266400@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668125498@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668125498@datadoghq.com\",\"uuid\":\"9f5a1546-bccf-4b9f-a25f-96fb87bd7bfc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668125498@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669162248@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669162248@datadoghq.com\",\"uuid\":\"9f88a5e0-9842-4fd1-95c7-7f85edad3874\",\"email\":\"test-go-create_an_incident_returns_created_response-1669162248@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666981017@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666981017@datadoghq.com\",\"uuid\":\"a136a629-05cd-4a2f-b925-e1d74c6a69ad\",\"email\":\"test-go-create_an_incident_returns_created_response-1666981017@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670803795@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670803795@datadoghq.com\",\"uuid\":\"a18c9430-e993-488f-8b5c-3ad27997e55c\",\"email\":\"test-go-create_an_incident_returns_created_response-1670803795@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675555889@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675555889@datadoghq.com\",\"uuid\":\"a3644be2-a4e9-11ed-b7fb-1ea641c369ef\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675555889@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672704726@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672704726@datadoghq.com\",\"uuid\":\"a4230eac-f78e-407d-8551-b07c6476622b\",\"email\":\"test-go-create_an_incident_returns_created_response-1672704726@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678752635@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678752635@datadoghq.com\",\"uuid\":\"a4aff885-c1fc-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1678752635@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675555897@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675555897@datadoghq.com\",\"uuid\":\"a813f7f3-a4e9-11ed-9388-1ad521c601b9\",\"email\":\"test-go-create_an_incident_returns_created_response-1675555897@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674087020@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674087020@datadoghq.com\",\"uuid\":\"a96c393b-978d-11ed-b425-4e7b3187c657\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674087020@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669767038@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669767038@datadoghq.com\",\"uuid\":\"a9977d83-cddd-4644-ba02-dc1a86c0293e\",\"email\":\"test-go-create_an_incident_returns_created_response-1669767038@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678234243@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678234243@datadoghq.com\",\"uuid\":\"aabc794c-bd45-11ed-9ea1-9ebf47de1fdb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678234243@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667606997@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667606997@datadoghq.com\",\"uuid\":\"ab5bb1f0-b9b2-43da-bd50-e5ba7315fc29\",\"email\":\"test-go-create_an_incident_returns_created_response-1667606997@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673568622@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673568622@datadoghq.com\",\"uuid\":\"abedb0a5-92d6-11ed-a082-5215624996c0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673568622@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672272649@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672272649@datadoghq.com\",\"uuid\":\"ac484716-4260-4fd9-8288-1d4a6b0d39da\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672272649@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674087028@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674087028@datadoghq.com\",\"uuid\":\"ade2bf85-978d-11ed-b425-4e7b3187c657\",\"email\":\"test-go-create_an_incident_returns_created_response-1674087028@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673568629@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673568629@datadoghq.com\",\"uuid\":\"b0771f90-92d6-11ed-a082-5215624996c0\",\"email\":\"test-go-create_an_incident_returns_created_response-1673568629@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672359099@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672359099@datadoghq.com\",\"uuid\":\"b12b859b-c89a-4023-84e6-2634f93fff00\",\"email\":\"test-go-create_an_incident_returns_created_response-1672359099@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678234254@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678234254@datadoghq.com\",\"uuid\":\"b155e604-bd45-11ed-ba70-22d478e15cef\",\"email\":\"test-go-create_an_incident_returns_created_response-1678234254@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667347843@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667347843@datadoghq.com\",\"uuid\":\"b2f195b3-53b7-4095-bfb8-90538edb12f7\",\"email\":\"test-go-create_an_incident_returns_created_response-1667347843@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677715854@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677715854@datadoghq.com\",\"uuid\":\"b2fc8929-b88e-11ed-8da2-b6d07de5d20c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677715854@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667779816@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667779816@datadoghq.com\",\"uuid\":\"b335a7f4-a66e-41ed-b4aa-982c5b76ffc1\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667779816@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672963863@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672963863@datadoghq.com\",\"uuid\":\"b39fcb21-440b-4bd8-bc55-103259b74a57\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672963863@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670890374@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670890374@datadoghq.com\",\"uuid\":\"b3ccf662-7d0d-4a45-9cb3-5ffcb089012c\",\"email\":\"test-go-create_an_incident_returns_created_response-1670890374@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669594223@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669594223@datadoghq.com\",\"uuid\":\"b4a8f9a4-28a9-4311-a813-8149eb5264f4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669594223@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672963870@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672963870@datadoghq.com\",\"uuid\":\"b631798d-d17b-44ab-af5c-f075df907ddd\",\"email\":\"test-go-create_an_incident_returns_created_response-1672963870@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677715861@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677715861@datadoghq.com\",\"uuid\":\"b768b7b4-b88e-11ed-a132-2aa63a904ba0\",\"email\":\"test-go-create_an_incident_returns_created_response-1677715861@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671408605@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671408605@datadoghq.com\",\"uuid\":\"b7d64361-36fd-4ebd-9438-949f60ec3745\",\"email\":\"test-go-create_an_incident_returns_created_response-1671408605@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670604391@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670604391@datadoghq.com\",\"uuid\":\"b8fa89c4-34f6-4b69-a654-e3671ce743a0\",\"email\":\"test-go-create_an_incident_returns_created_response-1670604391@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668471103@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668471103@datadoghq.com\",\"uuid\":\"b9d64d92-66de-41cc-9164-b83b7b74439f\",\"email\":\"test-go-create_an_incident_returns_created_response-1668471103@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674000722@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674000722@datadoghq.com\",\"uuid\":\"bbd69d76-96c4-11ed-b802-922cd9596b23\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674000722@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669853460@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669853460@datadoghq.com\",\"uuid\":\"bc036552-b05e-4ffd-8dd1-44dbe725a6ec\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669853460@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670544906@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670544906@datadoghq.com\",\"uuid\":\"bcb9456d-8b65-4369-b2c4-49ee5e4c14b7\",\"email\":\"test-go-create_an_incident_returns_created_response-1670544906@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674519128@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674519128@datadoghq.com\",\"uuid\":\"bd7e4c91-9b7b-11ed-882c-9aa2ca31c98c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674519128@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676765396@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676765396@datadoghq.com\",\"uuid\":\"bdc08c5f-afe9-11ed-84e6-a6c768ad21b4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676765396@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667952692@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667952692@datadoghq.com\",\"uuid\":\"be421a73-22de-48d3-be3f-1a269016ff83\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667952692@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675037533@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675037533@datadoghq.com\",\"uuid\":\"bf08166d-a032-11ed-88af-be56a8628f3f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675037533@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674000730@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674000730@datadoghq.com\",\"uuid\":\"c09c4f30-96c4-11ed-9f1c-fe165ba0981c\",\"email\":\"test-go-create_an_incident_returns_created_response-1674000730@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666915811@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666915811@datadoghq.com\",\"uuid\":\"c20da1a9-657e-4b5a-9159-9f4d324f51fc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666915811@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675642269@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675642269@datadoghq.com\",\"uuid\":\"c22b3e65-a5b2-11ed-9388-1ad521c601b9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675642269@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671495039@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671495039@datadoghq.com\",\"uuid\":\"c23885b0-3659-4d47-b5c9-16c0965dc7d9\",\"email\":\"test-go-create_an_incident_returns_created_response-1671495039@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679357416@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679357416@datadoghq.com\",\"uuid\":\"c238d04b-c77c-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679357416@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674519135@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674519135@datadoghq.com\",\"uuid\":\"c23e01c9-9b7b-11ed-8af1-7201c2784402\",\"email\":\"test-go-create_an_incident_returns_created_response-1674519135@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676765404@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676765404@datadoghq.com\",\"uuid\":\"c27df074-afe9-11ed-bce8-0a557ccee039\",\"email\":\"test-go-create_an_incident_returns_created_response-1676765404@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668730249@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668730249@datadoghq.com\",\"uuid\":\"c36f2608-4650-4331-b810-1dc5500c1356\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668730249@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670924666@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670924666@datadoghq.com\",\"uuid\":\"c381f80b-8a88-47bd-9dbe-77720d784a52\",\"email\":\"test-go-create_an_incident_returns_created_response-1670924666@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669075846@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669075846@datadoghq.com\",\"uuid\":\"c39f3031-906f-4679-a817-9b8f072254bb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669075846@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675037541@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675037541@datadoghq.com\",\"uuid\":\"c3e2d867-a032-11ed-88af-be56a8628f3f\",\"email\":\"test-go-create_an_incident_returns_created_response-1675037541@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667002236@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667002236@datadoghq.com\",\"uuid\":\"c567f0fa-6f70-42e3-855e-2ae1d2ed7243\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667002236@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668125506@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668125506@datadoghq.com\",\"uuid\":\"c60a0f7d-3f36-4966-a63f-f1f77dca030a\",\"email\":\"test-go-create_an_incident_returns_created_response-1668125506@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676247007@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676247007@datadoghq.com\",\"uuid\":\"c61f4ec1-ab32-11ed-8972-1eb0f4245ee5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676247007@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675642277@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675642277@datadoghq.com\",\"uuid\":\"c6d4d92c-a5b2-11ed-b7fb-1ea641c369ef\",\"email\":\"test-go-create_an_incident_returns_created_response-1675642277@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668903116@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668903116@datadoghq.com\",\"uuid\":\"c7319ecf-1451-4031-817a-5bef597d5ac9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668903116@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670604389@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670604389@datadoghq.com\",\"uuid\":\"c7b7b86f-5268-4c20-b223-afc7923d54b9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670604389@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679357426@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679357426@datadoghq.com\",\"uuid\":\"c811af38-c77c-11ed-9949-f20a22a554f2\",\"email\":\"test-go-create_an_incident_returns_created_response-1679357426@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673309503@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673309503@datadoghq.com\",\"uuid\":\"c8bbd0d2-53af-4fc0-a392-1c1c0871fb49\",\"email\":\"test-go-create_an_incident_returns_created_response-1673309503@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671754265@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671754265@datadoghq.com\",\"uuid\":\"c8e6753d-801c-40b5-9dd8-c98feae31df9\",\"email\":\"test-go-create_an_incident_returns_created_response-1671754265@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679184770@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679184770@datadoghq.com\",\"uuid\":\"c960ccca-c5ea-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679184770@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926103@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926103@datadoghq.com\",\"uuid\":\"c9f53cd7-2f1e-4491-ae28-796ace9db6fc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926103@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670371766@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670371766@datadoghq.com\",\"uuid\":\"cac0f70c-c327-4965-b9f9-62190c96b0dc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670371766@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676247015@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676247015@datadoghq.com\",\"uuid\":\"caf6ae98-ab32-11ed-bddd-722daf28c490\",\"email\":\"test-go-create_an_incident_returns_created_response-1676247015@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673223085@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673223085@datadoghq.com\",\"uuid\":\"cc0a6e87-ce4b-4313-b0a8-8b40179bcb68\",\"email\":\"test-go-create_an_incident_returns_created_response-1673223085@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671235873@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671235873@datadoghq.com\",\"uuid\":\"cc1891b1-9a95-4af6-98d7-95ac53c4e6ff\",\"email\":\"test-go-create_an_incident_returns_created_response-1671235873@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679184781@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679184781@datadoghq.com\",\"uuid\":\"cf9a8e87-c5ea-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-create_an_incident_returns_created_response-1679184781@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670943352@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670943352@datadoghq.com\",\"uuid\":\"d0330853-c731-4097-a353-fd1014abde80\",\"email\":\"test-go-create_an_incident_returns_created_response-1670943352@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667175027@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667175027@datadoghq.com\",\"uuid\":\"d1d53f95-4adc-4e7b-896b-1e75ba345e9f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667175027@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675728631@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675728631@datadoghq.com\",\"uuid\":\"d5aa246d-a67b-11ed-9567-ba00348e1a7a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675728631@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677370168@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677370168@datadoghq.com\",\"uuid\":\"d654fb42-b569-11ed-827a-8e2840b25db2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677370168@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676851766@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676851766@datadoghq.com\",\"uuid\":\"d6780612-b0b2-11ed-a714-aa504cceab29\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676851766@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672186280@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672186280@datadoghq.com\",\"uuid\":\"d70a12ec-c10f-47dd-9892-cebecfd6ffb0\",\"email\":\"test-go-create_an_incident_returns_created_response-1672186280@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670199046@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670199046@datadoghq.com\",\"uuid\":\"d968eb97-03c1-436e-835f-9ed06d352716\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670199046@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670890367@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670890367@datadoghq.com\",\"uuid\":\"d9a19936-2b5c-4fbc-b802-7a3dbf639c1b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670890367@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675728639@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675728639@datadoghq.com\",\"uuid\":\"da3ac6ee-a67b-11ed-bd1e-766989ec1239\",\"email\":\"test-go-create_an_incident_returns_created_response-1675728639@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677370176@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677370176@datadoghq.com\",\"uuid\":\"dac22963-b569-11ed-a797-c2fe525de487\",\"email\":\"test-go-create_an_incident_returns_created_response-1677370176@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676851774@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676851774@datadoghq.com\",\"uuid\":\"db0404af-b0b2-11ed-84e6-a6c768ad21b4\",\"email\":\"test-go-create_an_incident_returns_created_response-1676851774@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673136657@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673136657@datadoghq.com\",\"uuid\":\"dcbcad43-008c-4c4c-8c35-ee5ade081d9e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673136657@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670026261@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670026261@datadoghq.com\",\"uuid\":\"ddd99aa3-c7e5-4dff-8099-10588153e164\",\"email\":\"test-go-create_an_incident_returns_created_response-1670026261@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671495031@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671495031@datadoghq.com\",\"uuid\":\"de662b96-845c-45b9-a359-b0b763a45a61\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671495031@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670717454@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670717454@datadoghq.com\",\"uuid\":\"def01997-ae71-49bc-93ea-ff9287d606c7\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670717454@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670112672@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670112672@datadoghq.com\",\"uuid\":\"e09cd088-50f3-4a99-8222-0917d760f4fb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670112672@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670924664@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670924664@datadoghq.com\",\"uuid\":\"e0a87080-eb76-45db-9230-ed4ef629b0d2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670924664@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678839065@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678839065@datadoghq.com\",\"uuid\":\"e1073fac-c2c5-11ed-b4e0-566658a732f8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678839065@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668730257@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668730257@datadoghq.com\",\"uuid\":\"e21b3798-5777-4777-919d-e5ff6fce422a\",\"email\":\"test-go-create_an_incident_returns_created_response-1668730257@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667347836@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667347836@datadoghq.com\",\"uuid\":\"e2267bdc-1a12-4210-869e-60d0faa477bd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667347836@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669248667@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669248667@datadoghq.com\",\"uuid\":\"e42f7f54-0e83-4c40-b112-887402a7ba6b\",\"email\":\"test-go-create_an_incident_returns_created_response-1669248667@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669335019@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669335019@datadoghq.com\",\"uuid\":\"e485ea7a-9a64-44dd-a774-d3f31e869f6e\",\"email\":\"test-go-create_an_incident_returns_created_response-1669335019@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673309495@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673309495@datadoghq.com\",\"uuid\":\"e6615793-c00d-45e8-b8d6-ec1c96309d81\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673309495@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669939809@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669939809@datadoghq.com\",\"uuid\":\"e6d0a0d2-e642-4b20-aa66-34ab638f4d9f\",\"email\":\"test-go-create_an_incident_returns_created_response-1669939809@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678839075@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678839075@datadoghq.com\",\"uuid\":\"e7113f68-c2c5-11ed-b4e0-566658a732f8\",\"email\":\"test-go-create_an_incident_returns_created_response-1678839075@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672531837@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672531837@datadoghq.com\",\"uuid\":\"e7403ce3-c0a2-4bae-8823-45a21c310656\",\"email\":\"test-go-create_an_incident_returns_created_response-1672531837@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678320674@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678320674@datadoghq.com\",\"uuid\":\"e7d1ba87-be0e-11ed-be0d-5609971d255a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678320674@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672618346@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672618346@datadoghq.com\",\"uuid\":\"e84ce941-4c3d-4b79-b736-619897785a82\",\"email\":\"test-go-create_an_incident_returns_created_response-1672618346@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668298272@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668298272@datadoghq.com\",\"uuid\":\"e9b00493-1235-49f2-b229-06ee3afc79b0\",\"email\":\"test-go-create_an_incident_returns_created_response-1668298272@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676160739@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676160739@datadoghq.com\",\"uuid\":\"e9f6df6e-aa69-11ed-8972-1eb0f4245ee5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676160739@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677629617@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677629617@datadoghq.com\",\"uuid\":\"e9ffa5e5-b7c5-11ed-a50e-226546b1da54\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677629617@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679443813@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679443813@datadoghq.com\",\"uuid\":\"eb03f9a6-c845-11ed-a1e1-c6385b25b934\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679443813@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678407009@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678407009@datadoghq.com\",\"uuid\":\"eb834f42-bed7-11ed-a89b-0ebbb850607d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678407009@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674605534@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674605534@datadoghq.com\",\"uuid\":\"ebb5a53d-9c44-11ed-97cc-a697d2568caf\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674605534@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669507847@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669507847@datadoghq.com\",\"uuid\":\"ebf0848a-6b21-4736-ad2a-d93daf59fd15\",\"email\":\"test-go-create_an_incident_returns_created_response-1669507847@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671322279@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671322279@datadoghq.com\",\"uuid\":\"ebf23d4b-53c8-467a-bbb0-636c11b3ffee\",\"email\":\"test-go-create_an_incident_returns_created_response-1671322279@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667606989@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667606989@datadoghq.com\",\"uuid\":\"ec1ed77b-1d70-4727-b2ac-f478a37e3b8c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667606989@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678320684@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678320684@datadoghq.com\",\"uuid\":\"edaec5b4-be0e-11ed-be0d-5609971d255a\",\"email\":\"test-go-create_an_incident_returns_created_response-1678320684@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671062990@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671062990@datadoghq.com\",\"uuid\":\"ee1307d6-f262-47be-b312-0f77517487b8\",\"email\":\"test-go-create_an_incident_returns_created_response-1671062990@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679875893@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679875893@datadoghq.com\",\"uuid\":\"ee8bd235-cc33-11ed-b285-a2593f21064b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679875893@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676160746@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676160746@datadoghq.com\",\"uuid\":\"eeac3af0-aa69-11ed-bddd-722daf28c490\",\"email\":\"test-go-create_an_incident_returns_created_response-1676160746@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677629625@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677629625@datadoghq.com\",\"uuid\":\"eeb210e2-b7c5-11ed-8e20-4a014c845df9\",\"email\":\"test-go-create_an_incident_returns_created_response-1677629625@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672272657@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672272657@datadoghq.com\",\"uuid\":\"efc56647-04f9-430b-abcd-78fd73135dc9\",\"email\":\"test-go-create_an_incident_returns_created_response-1672272657@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674605542@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674605542@datadoghq.com\",\"uuid\":\"f090690e-9c44-11ed-bd03-d63a15ea0a5e\",\"email\":\"test-go-create_an_incident_returns_created_response-1674605542@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674173469@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674173469@datadoghq.com\",\"uuid\":\"f1130564-9856-11ed-8928-461f5552e193\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674173469@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679443823@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679443823@datadoghq.com\",\"uuid\":\"f116f34c-c845-11ed-8b17-fe25dd6b2d5d\",\"email\":\"test-go-create_an_incident_returns_created_response-1679443823@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678407019@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678407019@datadoghq.com\",\"uuid\":\"f182abdf-bed7-11ed-b4e0-566658a732f8\",\"email\":\"test-go-create_an_incident_returns_created_response-1678407019@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677283885@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677283885@datadoghq.com\",\"uuid\":\"f185aa8c-b4a0-11ed-a797-c2fe525de487\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677283885@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677974947@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677974947@datadoghq.com\",\"uuid\":\"f24bcc61-bae9-11ed-a3f2-e6671bdc78dd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677974947@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677808304@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677808304@datadoghq.com\",\"uuid\":\"f352f9e3-b965-11ed-b5bf-a606768bc197\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677808304@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679875903@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679875903@datadoghq.com\",\"uuid\":\"f48dd27a-cc33-11ed-9f7f-0e85fe61e6ee\",\"email\":\"test-go-create_an_incident_returns_created_response-1679875903@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675123953@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675123953@datadoghq.com\",\"uuid\":\"f59374fc-a0fb-11ed-a5e8-da207d422d98\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675123953@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674173477@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674173477@datadoghq.com\",\"uuid\":\"f5a1e00e-9856-11ed-a432-b611e40f0c37\",\"email\":\"test-go-create_an_incident_returns_created_response-1674173477@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675296611@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675296611@datadoghq.com\",\"uuid\":\"f5d92ebe-a28d-11ed-b39d-128f55cb4249\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675296611@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677283893@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677283893@datadoghq.com\",\"uuid\":\"f611f5ab-b4a0-11ed-a797-c2fe525de487\",\"email\":\"test-go-create_an_incident_returns_created_response-1677283893@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670598789@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670598789@datadoghq.com\",\"uuid\":\"f6a52e1f-a5fc-4498-b0f2-69fee17a4142\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670598789@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677974954@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677974954@datadoghq.com\",\"uuid\":\"f6c58d1e-bae9-11ed-8f91-4668bdad4d01\",\"email\":\"test-go-create_an_incident_returns_created_response-1677974954@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677808311@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677808311@datadoghq.com\",\"uuid\":\"f7f12039-b965-11ed-b5bf-a606768bc197\",\"email\":\"test-go-create_an_incident_returns_created_response-1677808311@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668211896@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668211896@datadoghq.com\",\"uuid\":\"f8313d55-863c-4872-8f01-5a74e04418d2\",\"email\":\"test-go-create_an_incident_returns_created_response-1668211896@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668816640@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668816640@datadoghq.com\",\"uuid\":\"f92f0fb9-f3fd-42ff-955a-744cc01ee9a4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668816640@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670928947@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670928947@datadoghq.com\",\"uuid\":\"f9e94170-240d-43ed-a3e4-dec65a38531b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670928947@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675123961@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675123961@datadoghq.com\",\"uuid\":\"fa40ced7-a0fb-11ed-a5e3-d6024dc128f7\",\"email\":\"test-go-create_an_incident_returns_created_response-1675123961@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675296619@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675296619@datadoghq.com\",\"uuid\":\"fa6d1a19-a28d-11ed-9c57-8a8107f52a6e\",\"email\":\"test-go-create_an_incident_returns_created_response-1675296619@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677888634@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677888634@datadoghq.com\",\"uuid\":\"fbd2af3f-ba20-11ed-a3f2-e6671bdc78dd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677888634@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670603299@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670603299@datadoghq.com\",\"uuid\":\"fc061455-8536-4ea0-8a7c-d6bd072c5b89\",\"email\":\"test-go-create_an_incident_returns_created_response-1670603299@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671408597@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671408597@datadoghq.com\",\"uuid\":\"fd20bff8-5c0c-4eb2-941b-c0d7669f996a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671408597@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670603854@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670603854@datadoghq.com\",\"uuid\":\"fdef06c9-5a21-44bb-afb4-14b055649e5b\",\"email\":\"test-go-create_an_incident_returns_created_response-1670603854@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667866318@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667866318@datadoghq.com\",\"uuid\":\"fe4f352d-a8b5-435e-a18c-9914eb88c865\",\"email\":\"test-go-create_an_incident_returns_created_response-1667866318@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926593@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926593@datadoghq.com\",\"uuid\":\"ff2e2858-cf28-44c7-98aa-be52cef329be\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926593@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675815030@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675815030@datadoghq.com\",\"uuid\":\"ff9a7c79-a744-11ed-9567-ba00348e1a7a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675815030@datadoghq.com\"}]},\"incidents\":[{\"data\":{\"type\":\"incidents\",\"attributes\":{\"customer_impact_end\":null,\"time_to_detect\":0,\"customer_impact_start\":null,\"created_by_uuid\":null,\"title\":\"Test-Go-Update_an_incident_todo_returns_OK_response-1679962375\",\"non_datadog_creator\":null,\"last_modified_by_uuid\":null,\"state\":\"active\",\"commander\":null,\"case_id\":null,\"creation_idempotency_key\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"summary\":{\"type\":\"textbox\",\"value\":null},\"services\":{\"type\":\"autocomplete\",\"value\":null}},\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"name\":\"CI Account\",\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"},\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"time_to_resolve\":0,\"resolved\":null,\"created\":\"2023-03-28T00:12:55+00:00\",\"time_to_repair\":0,\"customer_impact_scope\":\"\",\"detected\":\"2023-03-28T00:12:55+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"name\":\"CI Account\",\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"},\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1679962375,\"end\":null}]}}},\"public_id\":128961,\"time_to_internal_response\":0,\"modified\":\"2023-03-28T00:12:55+00:00\",\"severity\":\"UNKNOWN\",\"notification_handles\":null,\"visibility\":\"organization\",\"customer_impacted\":false,\"customer_impact_duration\":0},\"relationships\":{\"commander_user\":{\"data\":null},\"responders\":{\"data\":[{\"type\":\"incident_responders\",\"id\":\"fbc19b87-ff03-5b2a-915d-75501ad44917\"}]},\"attachments\":{\"data\":[]},\"impacts\":{\"data\":[]},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"user_defined_fields\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"integrations\":{\"data\":[]}},\"id\":\"aa819dbd-9016-5c31-84c5-48ff15b845cf\"}},{\"data\":{\"type\":\"incidents\",\"attributes\":{\"customer_impact_end\":null,\"time_to_detect\":0,\"customer_impact_start\":null,\"created_by_uuid\":null,\"title\":\"Test-Go-Update_an_existing_incident_returns_OK_response-1679962372-updated\",\"non_datadog_creator\":null,\"last_modified_by_uuid\":null,\"state\":\"resolved\",\"commander\":null,\"case_id\":null,\"creation_idempotency_key\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"resolved\"}},\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"name\":\"CI Account\",\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"},\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"time_to_resolve\":2,\"resolved\":\"2023-03-28T00:12:54+00:00\",\"created\":\"2023-03-28T00:12:52+00:00\",\"time_to_repair\":0,\"customer_impact_scope\":\"\",\"detected\":\"2023-03-28T00:12:52+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"name\":\"CI Account\",\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"},\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":3,\"spans\":[{\"start\":1679962372,\"end\":1679962375}]},\"resolved\":{\"duration\":0,\"spans\":[{\"start\":1679962375,\"end\":null}]}}},\"public_id\":128960,\"time_to_internal_response\":0,\"modified\":\"2023-03-28T00:12:54+00:00\",\"severity\":\"UNKNOWN\",\"notification_handles\":null,\"visibility\":\"organization\",\"customer_impacted\":false,\"customer_impact_duration\":0},\"relationships\":{\"commander_user\":{\"data\":null},\"responders\":{\"data\":[{\"type\":\"incident_responders\",\"id\":\"35badb8c-6ee1-50d5-9ff9-19cacc137d90\"}]},\"attachments\":{\"data\":[]},\"impacts\":{\"data\":[]},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"user_defined_fields\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"integrations\":{\"data\":[]}},\"id\":\"6f648ab1-026d-5e82-a49a-6b88e098b018\"}}]},\"relationships\":{\"incidents_relationship\":{\"data\":[{\"type\":\"incidents\",\"id\":\"aa819dbd-9016-5c31-84c5-48ff15b845cf\"},{\"type\":\"incidents\",\"id\":\"6f648ab1-026d-5e82-a49a-6b88e098b018\"}]}}},\"included\":[{\"type\":\"incidents\",\"id\":\"aa819dbd-9016-5c31-84c5-48ff15b845cf\",\"attributes\":{\"public_id\":128961,\"title\":\"Test-Go-Update_an_incident_todo_returns_OK_response-1679962375\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"name\":\"CI Account\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-03-28T00:12:55+00:00\",\"modified\":\"2023-03-28T00:12:55+00:00\",\"commander\":null,\"detected\":\"2023-03-28T00:12:55+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"name\":\"CI Account\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"summary\":{\"type\":\"textbox\",\"value\":null},\"services\":{\"type\":\"autocomplete\",\"value\":null}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1679962375,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[{\"type\":\"incident_responders\",\"id\":\"fbc19b87-ff03-5b2a-915d-75501ad44917\"}]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"6f648ab1-026d-5e82-a49a-6b88e098b018\",\"attributes\":{\"public_id\":128960,\"title\":\"Test-Go-Update_an_existing_incident_returns_OK_response-1679962372-updated\",\"resolved\":\"2023-03-28T00:12:54+00:00\",\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"name\":\"CI Account\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-03-28T00:12:52+00:00\",\"modified\":\"2023-03-28T00:12:54+00:00\",\"commander\":null,\"detected\":\"2023-03-28T00:12:52+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"name\":\"CI Account\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":2,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"resolved\"}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":3,\"spans\":[{\"start\":1679962372,\"end\":1679962375}]},\"resolved\":{\"duration\":0,\"spans\":[{\"start\":1679962375,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"resolved\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[{\"type\":\"incident_responders\",\"id\":\"35badb8c-6ee1-50d5-9ff9-19cacc137d90\"}]},\"impacts\":{\"data\":[]}}}],\"meta\":{\"pagination\":{\"offset\":0,\"next_offset\":2,\"size\":2}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 28 Mar 2023 07:55:36 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/incidents/search?query=state%3A%28active%20OR%20stable%20OR%20resolved%29&page%5Bsize%5D=2&page%5Boffset%5D=2"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incidents_search_results\",\"attributes\":{\"total\":1703,\"facets\":{\"severity\":[{\"name\":\"UNKNOWN\",\"count\":1703},{\"name\":\"SEV-1\",\"count\":0},{\"name\":\"SEV-2\",\"count\":0},{\"name\":\"SEV-3\",\"count\":0},{\"name\":\"SEV-4\",\"count\":0},{\"name\":\"SEV-5\",\"count\":0}],\"time_to_repair\":[{\"name\":\"time_to_repair\",\"aggregates\":{\"min\":null,\"max\":null}}],\"responder\":[{\"name\":\"CI Account\",\"count\":844,\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"},{\"name\":\"frog@datadoghq.com\",\"count\":107,\"handle\":\"frog@datadoghq.com\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"email\":\"frog@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677888642@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677888642@datadoghq.com\",\"uuid\":\"00a080f5-ba21-11ed-a3f2-e6671bdc78dd\",\"email\":\"test-go-create_an_incident_returns_created_response-1677888642@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672877473@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672877473@datadoghq.com\",\"uuid\":\"01dc2b21-3194-414a-b8e8-58704603421b\",\"email\":\"test-go-create_an_incident_returns_created_response-1672877473@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678925450@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678925450@datadoghq.com\",\"uuid\":\"02a54dc1-c38f-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678925450@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672013445@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672013445@datadoghq.com\",\"uuid\":\"03e16d56-e954-4e9a-b9da-22dffdfa1f24\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672013445@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666981015@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666981015@datadoghq.com\",\"uuid\":\"03e65d16-b7bb-456a-a5da-bf31dffbdf4d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666981015@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675815038@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675815038@datadoghq.com\",\"uuid\":\"0423cfd5-a745-11ed-9567-ba00348e1a7a\",\"email\":\"test-go-create_an_incident_returns_created_response-1675815038@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669335011@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669335011@datadoghq.com\",\"uuid\":\"04c4feaa-1864-4167-a48b-e156181d50d8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669335011@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669248659@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669248659@datadoghq.com\",\"uuid\":\"04f0d8b5-1959-43fb-85b5-782682062c4e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669248659@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673655101@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673655101@datadoghq.com\",\"uuid\":\"05d83a07-93a0-11ed-bf65-7630e111ac00\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673655101@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666743047@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666743047@datadoghq.com\",\"uuid\":\"060c37c0-93a9-48c0-90bc-dee85b66a7c7\",\"email\":\"test-go-create_an_incident_returns_created_response-1666743047@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678925461@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678925461@datadoghq.com\",\"uuid\":\"08f8d3b7-c38f-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1678925461@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670112680@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670112680@datadoghq.com\",\"uuid\":\"09010d4b-7635-4553-a7b9-973f5f9cea5b\",\"email\":\"test-go-create_an_incident_returns_created_response-1670112680@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673655109@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673655109@datadoghq.com\",\"uuid\":\"0a679024-93a0-11ed-aaf8-3230475e674b\",\"email\":\"test-go-create_an_incident_returns_created_response-1673655109@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667434335@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667434335@datadoghq.com\",\"uuid\":\"0ebbf763-be8f-40bb-8ee7-d37b729a5eed\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667434335@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668384644@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668384644@datadoghq.com\",\"uuid\":\"1193cff3-b670-4e08-a535-346105dcaf9f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668384644@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675210330@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675210330@datadoghq.com\",\"uuid\":\"1205474f-a1c5-11ed-b767-5ec4f5b84c10\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675210330@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674691927@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674691927@datadoghq.com\",\"uuid\":\"122c89ad-9d0e-11ed-9f54-862b4cfe184c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674691927@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668643799@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668643799@datadoghq.com\",\"uuid\":\"12d78e1b-0784-46f3-99ac-7e5db2d5c92e\",\"email\":\"test-go-create_an_incident_returns_created_response-1668643799@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671667884@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671667884@datadoghq.com\",\"uuid\":\"1310687d-9adb-47ae-ad7a-066c9e525f8b\",\"email\":\"test-go-create_an_incident_returns_created_response-1671667884@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673741454@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673741454@datadoghq.com\",\"uuid\":\"142ba3fc-9469-11ed-a365-8ec8661800c6\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673741454@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679011809@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679011809@datadoghq.com\",\"uuid\":\"1431aabf-c458-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679011809@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670927771@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670927771@datadoghq.com\",\"uuid\":\"14344412-a7b1-4044-89f7-8139727432f6\",\"email\":\"test-go-create_an_incident_returns_created_response-1670927771@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667261554@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667261554@datadoghq.com\",\"uuid\":\"1608c46d-bee2-46a5-be87-49af2b889db5\",\"email\":\"test-go-create_an_incident_returns_created_response-1667261554@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670929702@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670929702@datadoghq.com\",\"uuid\":\"161217ca-a0b5-418c-b0e5-d16edddd8258\",\"email\":\"test-go-create_an_incident_returns_created_response-1670929702@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675901397@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675901397@datadoghq.com\",\"uuid\":\"1628d4a0-a80e-11ed-af43-4e64a4a39547\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675901397@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670928949@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670928949@datadoghq.com\",\"uuid\":\"16754b18-1887-4f22-ae44-4a86e9bfc749\",\"email\":\"test-go-create_an_incident_returns_created_response-1670928949@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675210337@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675210337@datadoghq.com\",\"uuid\":\"1682f280-a1c5-11ed-ad87-fecda9c428d5\",\"email\":\"test-go-create_an_incident_returns_created_response-1675210337@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674691935@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674691935@datadoghq.com\",\"uuid\":\"16bf2921-9d0e-11ed-aff1-fa6399bf96fd\",\"email\":\"test-go-create_an_incident_returns_created_response-1674691935@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671754258@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671754258@datadoghq.com\",\"uuid\":\"18ada30d-ad3e-4ba2-911d-931233a75aa0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671754258@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679962293@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679962293@datadoghq.com\",\"uuid\":\"18cfb810-ccfd-11ed-a201-de0443f18a2a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679962293@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673741462@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673741462@datadoghq.com\",\"uuid\":\"18e9a7f7-9469-11ed-aaf8-3230475e674b\",\"email\":\"test-go-create_an_incident_returns_created_response-1673741462@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679011819@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679011819@datadoghq.com\",\"uuid\":\"1a8c2817-c458-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1679011819@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675901404@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675901404@datadoghq.com\",\"uuid\":\"1aa50cab-a80e-11ed-bc4c-ea1adbbc0986\",\"email\":\"test-go-create_an_incident_returns_created_response-1675901404@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670285407@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670285407@datadoghq.com\",\"uuid\":\"1bb87a6c-da01-4798-8bd0-5cd9918f641f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670285407@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668903124@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668903124@datadoghq.com\",\"uuid\":\"1bcb111e-ea64-4d60-9b77-ae5e7f22f157\",\"email\":\"test-go-create_an_incident_returns_created_response-1668903124@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668039051@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668039051@datadoghq.com\",\"uuid\":\"1c54a963-17f1-4ee8-a2b0-7fd07c3b2c68\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668039051@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674259871@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674259871@datadoghq.com\",\"uuid\":\"1c631d44-9920-11ed-8c68-2a913616fde8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674259871@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677024542@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677024542@datadoghq.com\",\"uuid\":\"1ce329fb-b245-11ed-8fbc-ca7794d66904\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677024542@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671149452@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671149452@datadoghq.com\",\"uuid\":\"1ebe2367-3eda-464c-9571-edd444620682\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671149452@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676419814@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676419814@datadoghq.com\",\"uuid\":\"1f019dde-acc5-11ed-bcdd-a68779fca942\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676419814@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679962303@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679962303@datadoghq.com\",\"uuid\":\"1f034a5d-ccfd-11ed-aef0-a6405a9b4791\",\"email\":\"test-go-create_an_incident_returns_created_response-1679962303@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672618338@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672618338@datadoghq.com\",\"uuid\":\"1fd5cef4-df5c-4609-be9a-11bf76483cfc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672618338@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666915819@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666915819@datadoghq.com\",\"uuid\":\"20be4a8a-b215-4bc0-b2fa-31c27e0a642b\",\"email\":\"test-go-create_an_incident_returns_created_response-1666915819@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671840707@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671840707@datadoghq.com\",\"uuid\":\"20d2001a-92b4-4d03-a5cb-73617f27b723\",\"email\":\"test-go-create_an_incident_returns_created_response-1671840707@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674259878@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674259878@datadoghq.com\",\"uuid\":\"20dbaf3d-9920-11ed-8c68-2a913616fde8\",\"email\":\"test-go-create_an_incident_returns_created_response-1674259878@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677024549@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677024549@datadoghq.com\",\"uuid\":\"214ed4fd-b245-11ed-8fbc-ca7794d66904\",\"email\":\"test-go-create_an_incident_returns_created_response-1677024549@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676419822@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676419822@datadoghq.com\",\"uuid\":\"2375265b-acc5-11ed-9a7e-46e4eb8f12a7\",\"email\":\"test-go-create_an_incident_returns_created_response-1676419822@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670594546@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670594546@datadoghq.com\",\"uuid\":\"2399be00-e683-4133-aec2-7ab8fe73779e\",\"email\":\"test-go-create_an_incident_returns_created_response-1670594546@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673050262@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673050262@datadoghq.com\",\"uuid\":\"23a293e3-086a-4f8e-8fa6-a2555557309e\",\"email\":\"test-go-create_an_incident_returns_created_response-1673050262@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667175034@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667175034@datadoghq.com\",\"uuid\":\"24f932ba-4cd2-498e-8261-64f6ec161bcb\",\"email\":\"test-go-create_an_incident_returns_created_response-1667175034@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677456630@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677456630@datadoghq.com\",\"uuid\":\"25538030-b633-11ed-827a-8e2840b25db2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677456630@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672013452@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672013452@datadoghq.com\",\"uuid\":\"2593795d-b0f5-46f9-a852-34d3c466ce0a\",\"email\":\"test-go-create_an_incident_returns_created_response-1672013452@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667520677@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667520677@datadoghq.com\",\"uuid\":\"26287ddb-5d1c-400d-96dc-a1d3bb09f880\",\"email\":\"test-go-create_an_incident_returns_created_response-1667520677@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679616573@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679616573@datadoghq.com\",\"uuid\":\"27c16c1b-c9d8-11ed-b840-0ed4b0ca293a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679616573@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676938232@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676938232@datadoghq.com\",\"uuid\":\"281184f3-b17c-11ed-bce8-0a557ccee039\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676938232@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668557513@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668557513@datadoghq.com\",\"uuid\":\"2871bc57-733f-4f85-b3ef-440569202326\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668557513@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668471095@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668471095@datadoghq.com\",\"uuid\":\"289f8508-500c-472e-a9d4-71f30f1cf151\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668471095@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671667877@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671667877@datadoghq.com\",\"uuid\":\"28ae893d-4b70-420d-96dc-f82066a0642f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671667877@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672531830@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672531830@datadoghq.com\",\"uuid\":\"291b8416-a87d-4e56-a93e-9d430d5c4996\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672531830@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677456637@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677456637@datadoghq.com\",\"uuid\":\"29cd6809-b633-11ed-827a-8e2840b25db2\",\"email\":\"test-go-create_an_incident_returns_created_response-1677456637@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678493444@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678493444@datadoghq.com\",\"uuid\":\"2acb4dc0-bfa1-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678493444@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671927057@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671927057@datadoghq.com\",\"uuid\":\"2b0ac046-39c8-4bf4-a00a-deb089bbbc0c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671927057@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679530252@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679530252@datadoghq.com\",\"uuid\":\"2c9256b5-c90f-11ed-a1f3-7afc45c1981c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679530252@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676938239@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676938239@datadoghq.com\",\"uuid\":\"2c977e11-b17c-11ed-bce8-0a557ccee039\",\"email\":\"test-go-create_an_incident_returns_created_response-1676938239@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679616583@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679616583@datadoghq.com\",\"uuid\":\"2d99557e-c9d8-11ed-a171-361a8cacd441\",\"email\":\"test-go-create_an_incident_returns_created_response-1679616583@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672445562@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672445562@datadoghq.com\",\"uuid\":\"2db31432-b497-42b8-80b7-fef85898a2a8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672445562@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668039059@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668039059@datadoghq.com\",\"uuid\":\"2ebfffc1-a7da-4558-a507-038442f7ee79\",\"email\":\"test-go-create_an_incident_returns_created_response-1668039059@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669767030@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669767030@datadoghq.com\",\"uuid\":\"2eca0bd9-db8e-4c5d-91b7-2ccddffd5764\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669767030@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671235865@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671235865@datadoghq.com\",\"uuid\":\"2fc6258a-7492-43c0-accf-24528cbbfea1\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671235865@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669680686@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669680686@datadoghq.com\",\"uuid\":\"302a3d05-c61c-41d8-ad31-8821b764acf7\",\"email\":\"test-go-create_an_incident_returns_created_response-1669680686@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678493454@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678493454@datadoghq.com\",\"uuid\":\"30e3000f-bfa1-11ed-9949-f20a22a554f2\",\"email\":\"test-go-create_an_incident_returns_created_response-1678493454@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676333515@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676333515@datadoghq.com\",\"uuid\":\"30e43861-abfc-11ed-a6fc-0e9b7fe457ae\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676333515@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669680678@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669680678@datadoghq.com\",\"uuid\":\"31ad2923-926d-49af-ad5b-d8b120e6edc8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669680678@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679530263@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679530263@datadoghq.com\",\"uuid\":\"32d40acb-c90f-11ed-a1f3-7afc45c1981c\",\"email\":\"test-go-create_an_incident_returns_created_response-1679530263@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671581470@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671581470@datadoghq.com\",\"uuid\":\"34377484-e597-4d4c-bccf-88e919b6d549\",\"email\":\"test-go-create_an_incident_returns_created_response-1671581470@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667693449@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667693449@datadoghq.com\",\"uuid\":\"34e92512-7c24-4704-816e-4fadc9b5eff7\",\"email\":\"test-go-create_an_incident_returns_created_response-1667693449@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668211888@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668211888@datadoghq.com\",\"uuid\":\"3578dcc8-088a-4320-8c27-7f80f1bba4cb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668211888@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672186272@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672186272@datadoghq.com\",\"uuid\":\"3584000d-6337-4c9e-955e-e25514b83be0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672186272@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676333523@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676333523@datadoghq.com\",\"uuid\":\"35ba7493-abfc-11ed-b5cd-eec9514dd597\",\"email\":\"test-go-create_an_incident_returns_created_response-1676333523@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678579793@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678579793@datadoghq.com\",\"uuid\":\"367e08f8-c06a-11ed-b4e0-566658a732f8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678579793@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671062982@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671062982@datadoghq.com\",\"uuid\":\"3883d9fe-1678-452e-8801-11a374f9fdae\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671062982@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667002244@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667002244@datadoghq.com\",\"uuid\":\"39627294-7a14-4e71-b5ff-5221e68b6fbe\",\"email\":\"test-go-create_an_incident_returns_created_response-1667002244@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671581462@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671581462@datadoghq.com\",\"uuid\":\"3bc8406a-5790-4582-82f5-08e330921b9b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671581462@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668989431@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668989431@datadoghq.com\",\"uuid\":\"3c28c823-158e-46c2-8dce-06f1dace90e8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668989431@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673050254@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673050254@datadoghq.com\",\"uuid\":\"3c7509b1-82af-4d25-b1e5-3e8aaa107f0a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673050254@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678579803@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678579803@datadoghq.com\",\"uuid\":\"3c7f71d2-c06a-11ed-a89b-0ebbb850607d\",\"email\":\"test-go-create_an_incident_returns_created_response-1678579803@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669162240@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669162240@datadoghq.com\",\"uuid\":\"3ce20d84-5e75-45a5-b7b9-971549a50cf4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669162240@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670458180@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670458180@datadoghq.com\",\"uuid\":\"40d8c19a-8c6a-4f54-9444-aba7b6798064\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670458180@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678061409@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678061409@datadoghq.com\",\"uuid\":\"41da9ce5-bbb3-11ed-82a6-028cebedd0cf\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678061409@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673136665@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673136665@datadoghq.com\",\"uuid\":\"426feaae-7bf3-4b2c-bc8c-0c79056d6d8d\",\"email\":\"test-go-create_an_incident_returns_created_response-1673136665@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672099886@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672099886@datadoghq.com\",\"uuid\":\"431624c4-d099-4dfb-b701-33a60bba6ebe\",\"email\":\"test-go-create_an_incident_returns_created_response-1672099886@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669421482@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669421482@datadoghq.com\",\"uuid\":\"442dd264-b729-473b-a51d-4b141068fe3d\",\"email\":\"test-go-create_an_incident_returns_created_response-1669421482@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603297@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603297@datadoghq.com\",\"uuid\":\"446cd2d8-630c-4fe9-8901-fb85bd22426d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603297@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678061417@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678061417@datadoghq.com\",\"uuid\":\"467de14f-bbb3-11ed-82a6-028cebedd0cf\",\"email\":\"test-go-create_an_incident_returns_created_response-1678061417@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668989438@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668989438@datadoghq.com\",\"uuid\":\"46d62900-016b-463c-9fff-c8b4f946ce5c\",\"email\":\"test-go-create_an_incident_returns_created_response-1668989438@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675469405@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675469405@datadoghq.com\",\"uuid\":\"46e3c6ef-a420-11ed-b1f8-56250c47f0b3\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675469405@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670371777@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670371777@datadoghq.com\",\"uuid\":\"48f7337b-3304-46fc-9e88-23b4dc5d24cc\",\"email\":\"test-go-create_an_incident_returns_created_response-1670371777@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670943350@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670943350@datadoghq.com\",\"uuid\":\"4b432133-ba1b-4edc-ab57-c0250963f250\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670943350@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679098230@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679098230@datadoghq.com\",\"uuid\":\"4b5ba977-c521-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679098230@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675469412@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675469412@datadoghq.com\",\"uuid\":\"4b68a1e2-a420-11ed-b1f8-56250c47f0b3\",\"email\":\"test-go-create_an_incident_returns_created_response-1675469412@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668816648@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668816648@datadoghq.com\",\"uuid\":\"4e5cb15e-f18e-43ba-b115-2a4e62736739\",\"email\":\"test-go-create_an_incident_returns_created_response-1668816648@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603851@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603851@datadoghq.com\",\"uuid\":\"4e6b1824-dc1e-4691-8abd-5ffb968da7eb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603851@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669421474@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669421474@datadoghq.com\",\"uuid\":\"4fdb4327-3660-4aeb-b403-7f7939493f27\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669421474@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670458188@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670458188@datadoghq.com\",\"uuid\":\"50d5408a-1894-4173-9fa1-32209009d9b1\",\"email\":\"test-go-create_an_incident_returns_created_response-1670458188@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679098240@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679098240@datadoghq.com\",\"uuid\":\"5141e45c-c521-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-create_an_incident_returns_created_response-1679098240@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675383094@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675383094@datadoghq.com\",\"uuid\":\"520007b9-a357-11ed-acb5-6e0b90178632\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675383094@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670803787@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670803787@datadoghq.com\",\"uuid\":\"521a78f7-573e-4b67-8e2c-d0dd5d91a265\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670803787@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666743039@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666743039@datadoghq.com\",\"uuid\":\"54b84ea9-ae9f-4159-b226-aba3b432a792\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666743039@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674346295@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674346295@datadoghq.com\",\"uuid\":\"551c3a48-99e9-11ed-a607-1684d7f553f6\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674346295@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678147771@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678147771@datadoghq.com\",\"uuid\":\"557fb06e-bc7c-11ed-be39-625d488bce09\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678147771@datadoghq.com\"},{\"name\":\"test-add_commander_to_an_incident_returns_ok_response-1677691218@datadoghq.com\",\"count\":1,\"handle\":\"test-add_commander_to_an_incident_returns_ok_response-1677691218@datadoghq.com\",\"uuid\":\"56afe5b0-b855-11ed-a706-064bc8586212\",\"email\":\"test-add_commander_to_an_incident_returns_ok_response-1677691218@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675383103@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675383103@datadoghq.com\",\"uuid\":\"56d1cddc-a357-11ed-95c6-eefcd7f14d98\",\"email\":\"test-go-create_an_incident_returns_created_response-1675383103@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670929700@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670929700@datadoghq.com\",\"uuid\":\"5705f818-933e-4ef4-818c-615b06f80fd1\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670929700@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668557521@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668557521@datadoghq.com\",\"uuid\":\"577067f0-c41d-4928-8964-0f7725e8cf68\",\"email\":\"test-go-create_an_incident_returns_created_response-1668557521@datadoghq.com\"},{\"name\":\"test-create_an_incident_returns_created_response-1677691220@datadoghq.com\",\"count\":1,\"handle\":\"test-create_an_incident_returns_created_response-1677691220@datadoghq.com\",\"uuid\":\"57e9dbb7-b855-11ed-ab26-8e492650c256\",\"email\":\"test-create_an_incident_returns_created_response-1677691220@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679702983@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679702983@datadoghq.com\",\"uuid\":\"58287ff7-caa1-11ed-81eb-8227c2cf9828\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679702983@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666829448@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666829448@datadoghq.com\",\"uuid\":\"586e086f-1e29-4689-99b6-641c3218b0a8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666829448@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674346302@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674346302@datadoghq.com\",\"uuid\":\"59b0d36c-99e9-11ed-8968-92ec5048e27c\",\"email\":\"test-go-create_an_incident_returns_created_response-1674346302@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667261546@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667261546@datadoghq.com\",\"uuid\":\"59c9cd2e-cd40-4530-ba50-415bce89b133\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667261546@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678147781@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678147781@datadoghq.com\",\"uuid\":\"5b76378d-bc7c-11ed-ba16-0aeab349e953\",\"email\":\"test-go-create_an_incident_returns_created_response-1678147781@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670976638@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670976638@datadoghq.com\",\"uuid\":\"5baf69e4-9bd6-4c76-b552-2bfee88031b5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670976638@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668298265@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668298265@datadoghq.com\",\"uuid\":\"5c4ecf79-7ffb-47ea-9331-687b04ac9df8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668298265@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671840699@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671840699@datadoghq.com\",\"uuid\":\"5ce42d6d-a0b9-4d0f-893b-aa0b8f30ee5c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671840699@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672445570@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672445570@datadoghq.com\",\"uuid\":\"5d11019d-f1dc-468d-a20a-8e64e7af9494\",\"email\":\"test-go-create_an_incident_returns_created_response-1672445570@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670976646@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670976646@datadoghq.com\",\"uuid\":\"5db9c599-b71f-40c6-84d9-8ca8779004e1\",\"email\":\"test-go-create_an_incident_returns_created_response-1670976646@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679702993@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679702993@datadoghq.com\",\"uuid\":\"5e20a7d6-caa1-11ed-b285-a2593f21064b\",\"email\":\"test-go-create_an_incident_returns_created_response-1679702993@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673223078@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673223078@datadoghq.com\",\"uuid\":\"5f3582c4-06d1-43a3-bab9-b7ece49136a4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673223078@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672791107@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672791107@datadoghq.com\",\"uuid\":\"610753d8-8bc4-11ed-94a1-26632eba8bed\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672791107@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677110986@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677110986@datadoghq.com\",\"uuid\":\"614ff267-b30e-11ed-b3d7-ea098e8dc2bb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677110986@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667088640@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667088640@datadoghq.com\",\"uuid\":\"61d88713-957f-4920-8a3b-65f0ccd79b57\",\"email\":\"test-go-create_an_incident_returns_created_response-1667088640@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670026253@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670026253@datadoghq.com\",\"uuid\":\"623452c3-d694-466a-95b9-140a9c44a1ab\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670026253@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672791115@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672791115@datadoghq.com\",\"uuid\":\"65b38b0e-8bc4-11ed-81c7-fed5bfaa3f3d\",\"email\":\"test-go-create_an_incident_returns_created_response-1672791115@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677110993@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677110993@datadoghq.com\",\"uuid\":\"65e049af-b30e-11ed-82a1-e2db47427de5\",\"email\":\"test-go-create_an_incident_returns_created_response-1677110993@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674778401@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674778401@datadoghq.com\",\"uuid\":\"6847d712-9dd7-11ed-967f-12bf3e4c6b0d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674778401@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667520669@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667520669@datadoghq.com\",\"uuid\":\"6887723d-dbde-4969-bba8-e9b3464645ce\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667520669@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678204931@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678204931@datadoghq.com\",\"uuid\":\"6b9e40b1-bd01-11ed-8bd9-4a4655204cc7\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678204931@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667952700@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667952700@datadoghq.com\",\"uuid\":\"6c22fc34-31d7-4085-948b-d862feb447fe\",\"email\":\"test-go-create_an_incident_returns_created_response-1667952700@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676506273@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676506273@datadoghq.com\",\"uuid\":\"6ca38252-ad8e-11ed-9613-3a90352a946f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676506273@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671149459@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671149459@datadoghq.com\",\"uuid\":\"6ccce5fc-d6a8-416d-921b-f883914b67ad\",\"email\":\"test-go-create_an_incident_returns_created_response-1671149459@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674778408@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674778408@datadoghq.com\",\"uuid\":\"6d0c845f-9dd7-11ed-a399-1a75992a86c7\",\"email\":\"test-go-create_an_incident_returns_created_response-1674778408@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669594231@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669594231@datadoghq.com\",\"uuid\":\"6d550b97-297b-43ea-a3dc-85383cf72fba\",\"email\":\"test-go-create_an_incident_returns_created_response-1669594231@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671927065@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671927065@datadoghq.com\",\"uuid\":\"6d7f7052-6ddb-461f-a49f-6cb5fca6b2c8\",\"email\":\"test-go-create_an_incident_returns_created_response-1671927065@datadoghq.com\"},{\"name\":\"test-add_commander_to_an_incident_returns_ok_response-1677691687@datadoghq.com\",\"count\":1,\"handle\":\"test-add_commander_to_an_incident_returns_ok_response-1677691687@datadoghq.com\",\"uuid\":\"6e0e84e3-b856-11ed-ab26-8e492650c256\",\"email\":\"test-add_commander_to_an_incident_returns_ok_response-1677691687@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675987874@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675987874@datadoghq.com\",\"uuid\":\"6ed45bb9-a8d7-11ed-b51e-c2a468ff72a6\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675987874@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670927769@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670927769@datadoghq.com\",\"uuid\":\"6efabec4-24bc-46bd-8f53-e068f03adbf0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670927769@datadoghq.com\"},{\"name\":\"test-create_an_incident_returns_created_response-1677691689@datadoghq.com\",\"count\":1,\"handle\":\"test-create_an_incident_returns_created_response-1677691689@datadoghq.com\",\"uuid\":\"6f41744d-b856-11ed-a706-064bc8586212\",\"email\":\"test-create_an_incident_returns_created_response-1677691689@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670717462@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670717462@datadoghq.com\",\"uuid\":\"70532155-9800-46d9-89ed-bd41347c3dfd\",\"email\":\"test-go-create_an_incident_returns_created_response-1670717462@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676506281@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676506281@datadoghq.com\",\"uuid\":\"713c4001-ad8e-11ed-be7d-0ec0d643006a\",\"email\":\"test-go-create_an_incident_returns_created_response-1676506281@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678204941@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678204941@datadoghq.com\",\"uuid\":\"71cb7181-bd01-11ed-8700-9293738b117d\",\"email\":\"test-go-create_an_incident_returns_created_response-1678204941@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671322271@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671322271@datadoghq.com\",\"uuid\":\"7247d247-e798-4af5-b9ce-7bf786c4d0c7\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671322271@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672359091@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672359091@datadoghq.com\",\"uuid\":\"73546355-1adc-4289-908a-2f6fae7fc9fa\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672359091@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675987882@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675987882@datadoghq.com\",\"uuid\":\"738ccf6d-a8d7-11ed-ad7e-6ed4f1c67dea\",\"email\":\"test-go-create_an_incident_returns_created_response-1675987882@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677543090@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677543090@datadoghq.com\",\"uuid\":\"73a70dc9-b6fc-11ed-a3d7-a2295215c227\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677543090@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669507839@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669507839@datadoghq.com\",\"uuid\":\"7571121d-a654-4df8-9afa-e638f17d53bb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669507839@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674432680@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674432680@datadoghq.com\",\"uuid\":\"76c071c8-9ab2-11ed-8c68-2a913616fde8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674432680@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674864754@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674864754@datadoghq.com\",\"uuid\":\"7715eb6d-9ea0-11ed-8e78-767557a2485a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674864754@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677543098@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677543098@datadoghq.com\",\"uuid\":\"785f915d-b6fc-11ed-ad05-76e4602e1079\",\"email\":\"test-go-create_an_incident_returns_created_response-1677543098@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673395882@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673395882@datadoghq.com\",\"uuid\":\"7ac9b3b9-9144-11ed-82e3-622adeb45fa9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673395882@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674432688@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674432688@datadoghq.com\",\"uuid\":\"7b5907f1-9ab2-11ed-8c68-2a913616fde8\",\"email\":\"test-go-create_an_incident_returns_created_response-1674432688@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672877465@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672877465@datadoghq.com\",\"uuid\":\"7ba05e4d-f9a0-44e2-aa8c-bcda7adac2e5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672877465@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674864762@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674864762@datadoghq.com\",\"uuid\":\"7bc2a11e-9ea0-11ed-8c38-7ad981f4abb4\",\"email\":\"test-go-create_an_incident_returns_created_response-1674864762@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668384652@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668384652@datadoghq.com\",\"uuid\":\"7da5fc01-ccbd-4679-8149-cb22fe402bb3\",\"email\":\"test-go-create_an_incident_returns_created_response-1668384652@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667779824@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667779824@datadoghq.com\",\"uuid\":\"7dd124ba-7343-4882-b700-c44374efa8e3\",\"email\":\"test-go-create_an_incident_returns_created_response-1667779824@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673914292@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673914292@datadoghq.com\",\"uuid\":\"7f3e8ad2-95fb-11ed-b93e-b6681b4e2484\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673914292@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673395889@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673395889@datadoghq.com\",\"uuid\":\"7f7afd0e-9144-11ed-82e3-622adeb45fa9\",\"email\":\"test-go-create_an_incident_returns_created_response-1673395889@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676592635@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676592635@datadoghq.com\",\"uuid\":\"8009c2e2-ae57-11ed-b4cb-a681084bf13a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676592635@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670926105@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670926105@datadoghq.com\",\"uuid\":\"81831280-6cb1-4a01-9dc9-f68b1405f8f6\",\"email\":\"test-go-create_an_incident_returns_created_response-1670926105@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677197369@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677197369@datadoghq.com\",\"uuid\":\"81da5714-b3d7-11ed-97bb-cad2b20710fd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677197369@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678666250@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678666250@datadoghq.com\",\"uuid\":\"82eadb7f-c133-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678666250@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673914300@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673914300@datadoghq.com\",\"uuid\":\"84060fed-95fb-11ed-b93e-b6681b4e2484\",\"email\":\"test-go-create_an_incident_returns_created_response-1673914300@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670199054@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670199054@datadoghq.com\",\"uuid\":\"847f57aa-1b32-4eee-8447-e6eef1f6744f\",\"email\":\"test-go-create_an_incident_returns_created_response-1670199054@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676592642@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676592642@datadoghq.com\",\"uuid\":\"848026b5-ae57-11ed-9ecb-824f74ccf3e4\",\"email\":\"test-go-create_an_incident_returns_created_response-1676592642@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670630968@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670630968@datadoghq.com\",\"uuid\":\"853cce16-d7d3-4bd6-8f99-b1eab0407cf1\",\"email\":\"test-go-create_an_incident_returns_created_response-1670630968@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672099877@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672099877@datadoghq.com\",\"uuid\":\"862d085b-48ce-446e-a74f-ae3538d623f5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672099877@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674951109@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674951109@datadoghq.com\",\"uuid\":\"866af7b6-9f69-11ed-8c38-7ad981f4abb4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674951109@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677197377@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677197377@datadoghq.com\",\"uuid\":\"86a13258-b3d7-11ed-a605-a260cf3212a9\",\"email\":\"test-go-create_an_incident_returns_created_response-1677197377@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673827975@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673827975@datadoghq.com\",\"uuid\":\"86bc89ca-9532-11ed-bf65-7630e111ac00\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673827975@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667434343@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667434343@datadoghq.com\",\"uuid\":\"88c2cdf6-2769-4e68-9503-38d3f166ff1a\",\"email\":\"test-go-create_an_incident_returns_created_response-1667434343@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678666260@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678666260@datadoghq.com\",\"uuid\":\"88ce8004-c133-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1678666260@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679270991@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679270991@datadoghq.com\",\"uuid\":\"89229fdb-c6b3-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679270991@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668643791@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668643791@datadoghq.com\",\"uuid\":\"8a2d2c9d-c478-4a74-94a8-cabb28bd1473\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668643791@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674951116@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674951116@datadoghq.com\",\"uuid\":\"8ae38d89-9f69-11ed-bfa9-f2483e31eab5\",\"email\":\"test-go-create_an_incident_returns_created_response-1674951116@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673827983@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673827983@datadoghq.com\",\"uuid\":\"8b7b570e-9532-11ed-bf65-7630e111ac00\",\"email\":\"test-go-create_an_incident_returns_created_response-1673827983@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676074256@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676074256@datadoghq.com\",\"uuid\":\"8e41e3a8-a9a0-11ed-a060-46b9814ce648\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676074256@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672704719@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672704719@datadoghq.com\",\"uuid\":\"8e85e36f-5ccd-4052-a34e-d7338178914e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672704719@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679271002@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679271002@datadoghq.com\",\"uuid\":\"8f25b885-c6b3-11ed-9949-f20a22a554f2\",\"email\":\"test-go-create_an_incident_returns_created_response-1679271002@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667866310@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667866310@datadoghq.com\",\"uuid\":\"8f8399af-4d57-41a1-91a3-37c29fb62092\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667866310@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670630960@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670630960@datadoghq.com\",\"uuid\":\"8fa60296-198c-4113-8f21-0ba09e4fd83e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670630960@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679789405@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679789405@datadoghq.com\",\"uuid\":\"8fb58f8b-cb6a-11ed-be83-92f82eb96735\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679789405@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666829456@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666829456@datadoghq.com\",\"uuid\":\"91a8dc0a-0c63-4411-b9ab-39ec37dc2eee\",\"email\":\"test-go-create_an_incident_returns_created_response-1666829456@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669939802@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669939802@datadoghq.com\",\"uuid\":\"92c4c4e2-d881-485c-9668-0aa68239c513\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669939802@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676074265@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676074265@datadoghq.com\",\"uuid\":\"936c4650-a9a0-11ed-af98-1a32d7edfd9d\",\"email\":\"test-go-create_an_incident_returns_created_response-1676074265@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667088632@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667088632@datadoghq.com\",\"uuid\":\"93e8df0e-729e-4d2f-b0a4-9495ffb37b06\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667088632@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673482254@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673482254@datadoghq.com\",\"uuid\":\"94c9bf7f-920d-11ed-9cec-222dbf547024\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673482254@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670598792@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670598792@datadoghq.com\",\"uuid\":\"94d92a17-4768-48dd-97b4-ab32fee4e33b\",\"email\":\"test-go-create_an_incident_returns_created_response-1670598792@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669853467@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669853467@datadoghq.com\",\"uuid\":\"94f7179d-40a0-4790-9436-6080eb0db034\",\"email\":\"test-go-create_an_incident_returns_created_response-1669853467@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679789415@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679789415@datadoghq.com\",\"uuid\":\"959ada1b-cb6a-11ed-9f7f-0e85fe61e6ee\",\"email\":\"test-go-create_an_incident_returns_created_response-1679789415@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669075853@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669075853@datadoghq.com\",\"uuid\":\"96796850-b278-4313-a726-9cf5c832fe30\",\"email\":\"test-go-create_an_incident_returns_created_response-1669075853@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676679006@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676679006@datadoghq.com\",\"uuid\":\"99579994-af20-11ed-94c9-462a25af4eaf\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676679006@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673482262@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673482262@datadoghq.com\",\"uuid\":\"995b112e-920d-11ed-9888-e278e4206645\",\"email\":\"test-go-create_an_incident_returns_created_response-1673482262@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670594544@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670594544@datadoghq.com\",\"uuid\":\"9b26b565-e0c1-4777-a693-553a8d5cb243\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670594544@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670285415@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670285415@datadoghq.com\",\"uuid\":\"9b9fe3ac-f73b-43a5-b570-43d156e07ea9\",\"email\":\"test-go-create_an_incident_returns_created_response-1670285415@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670926595@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670926595@datadoghq.com\",\"uuid\":\"9c09fbea-fce4-4c02-9a45-ec845bab938a\",\"email\":\"test-go-create_an_incident_returns_created_response-1670926595@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670544898@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670544898@datadoghq.com\",\"uuid\":\"9c58a1dc-6beb-4390-928e-ed9d95b13b30\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670544898@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667693441@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667693441@datadoghq.com\",\"uuid\":\"9ccf5d51-55b4-43e0-ad79-7819a8d223f0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667693441@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676679013@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676679013@datadoghq.com\",\"uuid\":\"9dd94922-af20-11ed-94c9-462a25af4eaf\",\"email\":\"test-go-create_an_incident_returns_created_response-1676679013@datadoghq.com\"},{\"name\":\"test-add_commander_to_an_incident_returns_ok_response-1675266399@datadoghq.com\",\"count\":1,\"handle\":\"test-add_commander_to_an_incident_returns_ok_response-1675266399@datadoghq.com\",\"uuid\":\"9defa75d-a247-11ed-97de-223323d49fa6\",\"email\":\"test-add_commander_to_an_incident_returns_ok_response-1675266399@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666979690@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666979690@datadoghq.com\",\"uuid\":\"9e072255-5184-44a8-ae5f-a8e70ec5037c\",\"email\":\"test-go-create_an_incident_returns_created_response-1666979690@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678752625@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678752625@datadoghq.com\",\"uuid\":\"9e85bf56-c1fc-11ed-b4e0-566658a732f8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678752625@datadoghq.com\"},{\"name\":\"test-create_an_incident_returns_created_response-1675266400@datadoghq.com\",\"count\":1,\"handle\":\"test-create_an_incident_returns_created_response-1675266400@datadoghq.com\",\"uuid\":\"9ee1d254-a247-11ed-92ef-6ad132878933\",\"email\":\"test-create_an_incident_returns_created_response-1675266400@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668125498@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668125498@datadoghq.com\",\"uuid\":\"9f5a1546-bccf-4b9f-a25f-96fb87bd7bfc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668125498@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669162248@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669162248@datadoghq.com\",\"uuid\":\"9f88a5e0-9842-4fd1-95c7-7f85edad3874\",\"email\":\"test-go-create_an_incident_returns_created_response-1669162248@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666981017@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666981017@datadoghq.com\",\"uuid\":\"a136a629-05cd-4a2f-b925-e1d74c6a69ad\",\"email\":\"test-go-create_an_incident_returns_created_response-1666981017@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670803795@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670803795@datadoghq.com\",\"uuid\":\"a18c9430-e993-488f-8b5c-3ad27997e55c\",\"email\":\"test-go-create_an_incident_returns_created_response-1670803795@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675555889@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675555889@datadoghq.com\",\"uuid\":\"a3644be2-a4e9-11ed-b7fb-1ea641c369ef\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675555889@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672704726@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672704726@datadoghq.com\",\"uuid\":\"a4230eac-f78e-407d-8551-b07c6476622b\",\"email\":\"test-go-create_an_incident_returns_created_response-1672704726@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678752635@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678752635@datadoghq.com\",\"uuid\":\"a4aff885-c1fc-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1678752635@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675555897@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675555897@datadoghq.com\",\"uuid\":\"a813f7f3-a4e9-11ed-9388-1ad521c601b9\",\"email\":\"test-go-create_an_incident_returns_created_response-1675555897@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674087020@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674087020@datadoghq.com\",\"uuid\":\"a96c393b-978d-11ed-b425-4e7b3187c657\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674087020@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669767038@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669767038@datadoghq.com\",\"uuid\":\"a9977d83-cddd-4644-ba02-dc1a86c0293e\",\"email\":\"test-go-create_an_incident_returns_created_response-1669767038@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678234243@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678234243@datadoghq.com\",\"uuid\":\"aabc794c-bd45-11ed-9ea1-9ebf47de1fdb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678234243@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667606997@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667606997@datadoghq.com\",\"uuid\":\"ab5bb1f0-b9b2-43da-bd50-e5ba7315fc29\",\"email\":\"test-go-create_an_incident_returns_created_response-1667606997@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673568622@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673568622@datadoghq.com\",\"uuid\":\"abedb0a5-92d6-11ed-a082-5215624996c0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673568622@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672272649@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672272649@datadoghq.com\",\"uuid\":\"ac484716-4260-4fd9-8288-1d4a6b0d39da\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672272649@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674087028@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674087028@datadoghq.com\",\"uuid\":\"ade2bf85-978d-11ed-b425-4e7b3187c657\",\"email\":\"test-go-create_an_incident_returns_created_response-1674087028@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673568629@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673568629@datadoghq.com\",\"uuid\":\"b0771f90-92d6-11ed-a082-5215624996c0\",\"email\":\"test-go-create_an_incident_returns_created_response-1673568629@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672359099@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672359099@datadoghq.com\",\"uuid\":\"b12b859b-c89a-4023-84e6-2634f93fff00\",\"email\":\"test-go-create_an_incident_returns_created_response-1672359099@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678234254@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678234254@datadoghq.com\",\"uuid\":\"b155e604-bd45-11ed-ba70-22d478e15cef\",\"email\":\"test-go-create_an_incident_returns_created_response-1678234254@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667347843@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667347843@datadoghq.com\",\"uuid\":\"b2f195b3-53b7-4095-bfb8-90538edb12f7\",\"email\":\"test-go-create_an_incident_returns_created_response-1667347843@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677715854@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677715854@datadoghq.com\",\"uuid\":\"b2fc8929-b88e-11ed-8da2-b6d07de5d20c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677715854@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667779816@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667779816@datadoghq.com\",\"uuid\":\"b335a7f4-a66e-41ed-b4aa-982c5b76ffc1\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667779816@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672963863@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672963863@datadoghq.com\",\"uuid\":\"b39fcb21-440b-4bd8-bc55-103259b74a57\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672963863@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670890374@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670890374@datadoghq.com\",\"uuid\":\"b3ccf662-7d0d-4a45-9cb3-5ffcb089012c\",\"email\":\"test-go-create_an_incident_returns_created_response-1670890374@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669594223@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669594223@datadoghq.com\",\"uuid\":\"b4a8f9a4-28a9-4311-a813-8149eb5264f4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669594223@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672963870@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672963870@datadoghq.com\",\"uuid\":\"b631798d-d17b-44ab-af5c-f075df907ddd\",\"email\":\"test-go-create_an_incident_returns_created_response-1672963870@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677715861@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677715861@datadoghq.com\",\"uuid\":\"b768b7b4-b88e-11ed-a132-2aa63a904ba0\",\"email\":\"test-go-create_an_incident_returns_created_response-1677715861@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671408605@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671408605@datadoghq.com\",\"uuid\":\"b7d64361-36fd-4ebd-9438-949f60ec3745\",\"email\":\"test-go-create_an_incident_returns_created_response-1671408605@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670604391@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670604391@datadoghq.com\",\"uuid\":\"b8fa89c4-34f6-4b69-a654-e3671ce743a0\",\"email\":\"test-go-create_an_incident_returns_created_response-1670604391@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668471103@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668471103@datadoghq.com\",\"uuid\":\"b9d64d92-66de-41cc-9164-b83b7b74439f\",\"email\":\"test-go-create_an_incident_returns_created_response-1668471103@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674000722@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674000722@datadoghq.com\",\"uuid\":\"bbd69d76-96c4-11ed-b802-922cd9596b23\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674000722@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669853460@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669853460@datadoghq.com\",\"uuid\":\"bc036552-b05e-4ffd-8dd1-44dbe725a6ec\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669853460@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670544906@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670544906@datadoghq.com\",\"uuid\":\"bcb9456d-8b65-4369-b2c4-49ee5e4c14b7\",\"email\":\"test-go-create_an_incident_returns_created_response-1670544906@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674519128@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674519128@datadoghq.com\",\"uuid\":\"bd7e4c91-9b7b-11ed-882c-9aa2ca31c98c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674519128@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676765396@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676765396@datadoghq.com\",\"uuid\":\"bdc08c5f-afe9-11ed-84e6-a6c768ad21b4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676765396@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667952692@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667952692@datadoghq.com\",\"uuid\":\"be421a73-22de-48d3-be3f-1a269016ff83\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667952692@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675037533@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675037533@datadoghq.com\",\"uuid\":\"bf08166d-a032-11ed-88af-be56a8628f3f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675037533@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674000730@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674000730@datadoghq.com\",\"uuid\":\"c09c4f30-96c4-11ed-9f1c-fe165ba0981c\",\"email\":\"test-go-create_an_incident_returns_created_response-1674000730@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666915811@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666915811@datadoghq.com\",\"uuid\":\"c20da1a9-657e-4b5a-9159-9f4d324f51fc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666915811@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675642269@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675642269@datadoghq.com\",\"uuid\":\"c22b3e65-a5b2-11ed-9388-1ad521c601b9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675642269@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671495039@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671495039@datadoghq.com\",\"uuid\":\"c23885b0-3659-4d47-b5c9-16c0965dc7d9\",\"email\":\"test-go-create_an_incident_returns_created_response-1671495039@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679357416@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679357416@datadoghq.com\",\"uuid\":\"c238d04b-c77c-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679357416@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674519135@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674519135@datadoghq.com\",\"uuid\":\"c23e01c9-9b7b-11ed-8af1-7201c2784402\",\"email\":\"test-go-create_an_incident_returns_created_response-1674519135@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676765404@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676765404@datadoghq.com\",\"uuid\":\"c27df074-afe9-11ed-bce8-0a557ccee039\",\"email\":\"test-go-create_an_incident_returns_created_response-1676765404@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668730249@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668730249@datadoghq.com\",\"uuid\":\"c36f2608-4650-4331-b810-1dc5500c1356\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668730249@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670924666@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670924666@datadoghq.com\",\"uuid\":\"c381f80b-8a88-47bd-9dbe-77720d784a52\",\"email\":\"test-go-create_an_incident_returns_created_response-1670924666@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669075846@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669075846@datadoghq.com\",\"uuid\":\"c39f3031-906f-4679-a817-9b8f072254bb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669075846@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675037541@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675037541@datadoghq.com\",\"uuid\":\"c3e2d867-a032-11ed-88af-be56a8628f3f\",\"email\":\"test-go-create_an_incident_returns_created_response-1675037541@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667002236@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667002236@datadoghq.com\",\"uuid\":\"c567f0fa-6f70-42e3-855e-2ae1d2ed7243\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667002236@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668125506@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668125506@datadoghq.com\",\"uuid\":\"c60a0f7d-3f36-4966-a63f-f1f77dca030a\",\"email\":\"test-go-create_an_incident_returns_created_response-1668125506@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676247007@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676247007@datadoghq.com\",\"uuid\":\"c61f4ec1-ab32-11ed-8972-1eb0f4245ee5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676247007@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675642277@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675642277@datadoghq.com\",\"uuid\":\"c6d4d92c-a5b2-11ed-b7fb-1ea641c369ef\",\"email\":\"test-go-create_an_incident_returns_created_response-1675642277@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668903116@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668903116@datadoghq.com\",\"uuid\":\"c7319ecf-1451-4031-817a-5bef597d5ac9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668903116@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670604389@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670604389@datadoghq.com\",\"uuid\":\"c7b7b86f-5268-4c20-b223-afc7923d54b9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670604389@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679357426@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679357426@datadoghq.com\",\"uuid\":\"c811af38-c77c-11ed-9949-f20a22a554f2\",\"email\":\"test-go-create_an_incident_returns_created_response-1679357426@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673309503@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673309503@datadoghq.com\",\"uuid\":\"c8bbd0d2-53af-4fc0-a392-1c1c0871fb49\",\"email\":\"test-go-create_an_incident_returns_created_response-1673309503@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671754265@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671754265@datadoghq.com\",\"uuid\":\"c8e6753d-801c-40b5-9dd8-c98feae31df9\",\"email\":\"test-go-create_an_incident_returns_created_response-1671754265@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679184770@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679184770@datadoghq.com\",\"uuid\":\"c960ccca-c5ea-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679184770@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926103@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926103@datadoghq.com\",\"uuid\":\"c9f53cd7-2f1e-4491-ae28-796ace9db6fc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926103@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670371766@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670371766@datadoghq.com\",\"uuid\":\"cac0f70c-c327-4965-b9f9-62190c96b0dc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670371766@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676247015@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676247015@datadoghq.com\",\"uuid\":\"caf6ae98-ab32-11ed-bddd-722daf28c490\",\"email\":\"test-go-create_an_incident_returns_created_response-1676247015@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673223085@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673223085@datadoghq.com\",\"uuid\":\"cc0a6e87-ce4b-4313-b0a8-8b40179bcb68\",\"email\":\"test-go-create_an_incident_returns_created_response-1673223085@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671235873@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671235873@datadoghq.com\",\"uuid\":\"cc1891b1-9a95-4af6-98d7-95ac53c4e6ff\",\"email\":\"test-go-create_an_incident_returns_created_response-1671235873@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679184781@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679184781@datadoghq.com\",\"uuid\":\"cf9a8e87-c5ea-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-create_an_incident_returns_created_response-1679184781@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670943352@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670943352@datadoghq.com\",\"uuid\":\"d0330853-c731-4097-a353-fd1014abde80\",\"email\":\"test-go-create_an_incident_returns_created_response-1670943352@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667175027@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667175027@datadoghq.com\",\"uuid\":\"d1d53f95-4adc-4e7b-896b-1e75ba345e9f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667175027@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675728631@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675728631@datadoghq.com\",\"uuid\":\"d5aa246d-a67b-11ed-9567-ba00348e1a7a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675728631@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677370168@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677370168@datadoghq.com\",\"uuid\":\"d654fb42-b569-11ed-827a-8e2840b25db2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677370168@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676851766@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676851766@datadoghq.com\",\"uuid\":\"d6780612-b0b2-11ed-a714-aa504cceab29\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676851766@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672186280@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672186280@datadoghq.com\",\"uuid\":\"d70a12ec-c10f-47dd-9892-cebecfd6ffb0\",\"email\":\"test-go-create_an_incident_returns_created_response-1672186280@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670199046@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670199046@datadoghq.com\",\"uuid\":\"d968eb97-03c1-436e-835f-9ed06d352716\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670199046@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670890367@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670890367@datadoghq.com\",\"uuid\":\"d9a19936-2b5c-4fbc-b802-7a3dbf639c1b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670890367@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675728639@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675728639@datadoghq.com\",\"uuid\":\"da3ac6ee-a67b-11ed-bd1e-766989ec1239\",\"email\":\"test-go-create_an_incident_returns_created_response-1675728639@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677370176@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677370176@datadoghq.com\",\"uuid\":\"dac22963-b569-11ed-a797-c2fe525de487\",\"email\":\"test-go-create_an_incident_returns_created_response-1677370176@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676851774@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676851774@datadoghq.com\",\"uuid\":\"db0404af-b0b2-11ed-84e6-a6c768ad21b4\",\"email\":\"test-go-create_an_incident_returns_created_response-1676851774@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673136657@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673136657@datadoghq.com\",\"uuid\":\"dcbcad43-008c-4c4c-8c35-ee5ade081d9e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673136657@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670026261@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670026261@datadoghq.com\",\"uuid\":\"ddd99aa3-c7e5-4dff-8099-10588153e164\",\"email\":\"test-go-create_an_incident_returns_created_response-1670026261@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671495031@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671495031@datadoghq.com\",\"uuid\":\"de662b96-845c-45b9-a359-b0b763a45a61\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671495031@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670717454@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670717454@datadoghq.com\",\"uuid\":\"def01997-ae71-49bc-93ea-ff9287d606c7\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670717454@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670112672@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670112672@datadoghq.com\",\"uuid\":\"e09cd088-50f3-4a99-8222-0917d760f4fb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670112672@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670924664@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670924664@datadoghq.com\",\"uuid\":\"e0a87080-eb76-45db-9230-ed4ef629b0d2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670924664@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678839065@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678839065@datadoghq.com\",\"uuid\":\"e1073fac-c2c5-11ed-b4e0-566658a732f8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678839065@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668730257@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668730257@datadoghq.com\",\"uuid\":\"e21b3798-5777-4777-919d-e5ff6fce422a\",\"email\":\"test-go-create_an_incident_returns_created_response-1668730257@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667347836@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667347836@datadoghq.com\",\"uuid\":\"e2267bdc-1a12-4210-869e-60d0faa477bd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667347836@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669248667@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669248667@datadoghq.com\",\"uuid\":\"e42f7f54-0e83-4c40-b112-887402a7ba6b\",\"email\":\"test-go-create_an_incident_returns_created_response-1669248667@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669335019@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669335019@datadoghq.com\",\"uuid\":\"e485ea7a-9a64-44dd-a774-d3f31e869f6e\",\"email\":\"test-go-create_an_incident_returns_created_response-1669335019@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673309495@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673309495@datadoghq.com\",\"uuid\":\"e6615793-c00d-45e8-b8d6-ec1c96309d81\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673309495@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669939809@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669939809@datadoghq.com\",\"uuid\":\"e6d0a0d2-e642-4b20-aa66-34ab638f4d9f\",\"email\":\"test-go-create_an_incident_returns_created_response-1669939809@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678839075@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678839075@datadoghq.com\",\"uuid\":\"e7113f68-c2c5-11ed-b4e0-566658a732f8\",\"email\":\"test-go-create_an_incident_returns_created_response-1678839075@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672531837@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672531837@datadoghq.com\",\"uuid\":\"e7403ce3-c0a2-4bae-8823-45a21c310656\",\"email\":\"test-go-create_an_incident_returns_created_response-1672531837@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678320674@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678320674@datadoghq.com\",\"uuid\":\"e7d1ba87-be0e-11ed-be0d-5609971d255a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678320674@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672618346@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672618346@datadoghq.com\",\"uuid\":\"e84ce941-4c3d-4b79-b736-619897785a82\",\"email\":\"test-go-create_an_incident_returns_created_response-1672618346@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668298272@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668298272@datadoghq.com\",\"uuid\":\"e9b00493-1235-49f2-b229-06ee3afc79b0\",\"email\":\"test-go-create_an_incident_returns_created_response-1668298272@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676160739@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676160739@datadoghq.com\",\"uuid\":\"e9f6df6e-aa69-11ed-8972-1eb0f4245ee5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676160739@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677629617@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677629617@datadoghq.com\",\"uuid\":\"e9ffa5e5-b7c5-11ed-a50e-226546b1da54\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677629617@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679443813@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679443813@datadoghq.com\",\"uuid\":\"eb03f9a6-c845-11ed-a1e1-c6385b25b934\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679443813@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678407009@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678407009@datadoghq.com\",\"uuid\":\"eb834f42-bed7-11ed-a89b-0ebbb850607d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678407009@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674605534@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674605534@datadoghq.com\",\"uuid\":\"ebb5a53d-9c44-11ed-97cc-a697d2568caf\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674605534@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669507847@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669507847@datadoghq.com\",\"uuid\":\"ebf0848a-6b21-4736-ad2a-d93daf59fd15\",\"email\":\"test-go-create_an_incident_returns_created_response-1669507847@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671322279@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671322279@datadoghq.com\",\"uuid\":\"ebf23d4b-53c8-467a-bbb0-636c11b3ffee\",\"email\":\"test-go-create_an_incident_returns_created_response-1671322279@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667606989@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667606989@datadoghq.com\",\"uuid\":\"ec1ed77b-1d70-4727-b2ac-f478a37e3b8c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667606989@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678320684@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678320684@datadoghq.com\",\"uuid\":\"edaec5b4-be0e-11ed-be0d-5609971d255a\",\"email\":\"test-go-create_an_incident_returns_created_response-1678320684@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671062990@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671062990@datadoghq.com\",\"uuid\":\"ee1307d6-f262-47be-b312-0f77517487b8\",\"email\":\"test-go-create_an_incident_returns_created_response-1671062990@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679875893@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679875893@datadoghq.com\",\"uuid\":\"ee8bd235-cc33-11ed-b285-a2593f21064b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679875893@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676160746@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676160746@datadoghq.com\",\"uuid\":\"eeac3af0-aa69-11ed-bddd-722daf28c490\",\"email\":\"test-go-create_an_incident_returns_created_response-1676160746@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677629625@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677629625@datadoghq.com\",\"uuid\":\"eeb210e2-b7c5-11ed-8e20-4a014c845df9\",\"email\":\"test-go-create_an_incident_returns_created_response-1677629625@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672272657@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672272657@datadoghq.com\",\"uuid\":\"efc56647-04f9-430b-abcd-78fd73135dc9\",\"email\":\"test-go-create_an_incident_returns_created_response-1672272657@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674605542@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674605542@datadoghq.com\",\"uuid\":\"f090690e-9c44-11ed-bd03-d63a15ea0a5e\",\"email\":\"test-go-create_an_incident_returns_created_response-1674605542@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674173469@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674173469@datadoghq.com\",\"uuid\":\"f1130564-9856-11ed-8928-461f5552e193\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674173469@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679443823@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679443823@datadoghq.com\",\"uuid\":\"f116f34c-c845-11ed-8b17-fe25dd6b2d5d\",\"email\":\"test-go-create_an_incident_returns_created_response-1679443823@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678407019@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678407019@datadoghq.com\",\"uuid\":\"f182abdf-bed7-11ed-b4e0-566658a732f8\",\"email\":\"test-go-create_an_incident_returns_created_response-1678407019@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677283885@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677283885@datadoghq.com\",\"uuid\":\"f185aa8c-b4a0-11ed-a797-c2fe525de487\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677283885@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677974947@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677974947@datadoghq.com\",\"uuid\":\"f24bcc61-bae9-11ed-a3f2-e6671bdc78dd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677974947@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677808304@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677808304@datadoghq.com\",\"uuid\":\"f352f9e3-b965-11ed-b5bf-a606768bc197\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677808304@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679875903@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679875903@datadoghq.com\",\"uuid\":\"f48dd27a-cc33-11ed-9f7f-0e85fe61e6ee\",\"email\":\"test-go-create_an_incident_returns_created_response-1679875903@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675123953@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675123953@datadoghq.com\",\"uuid\":\"f59374fc-a0fb-11ed-a5e8-da207d422d98\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675123953@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674173477@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674173477@datadoghq.com\",\"uuid\":\"f5a1e00e-9856-11ed-a432-b611e40f0c37\",\"email\":\"test-go-create_an_incident_returns_created_response-1674173477@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675296611@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675296611@datadoghq.com\",\"uuid\":\"f5d92ebe-a28d-11ed-b39d-128f55cb4249\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675296611@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677283893@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677283893@datadoghq.com\",\"uuid\":\"f611f5ab-b4a0-11ed-a797-c2fe525de487\",\"email\":\"test-go-create_an_incident_returns_created_response-1677283893@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670598789@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670598789@datadoghq.com\",\"uuid\":\"f6a52e1f-a5fc-4498-b0f2-69fee17a4142\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670598789@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677974954@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677974954@datadoghq.com\",\"uuid\":\"f6c58d1e-bae9-11ed-8f91-4668bdad4d01\",\"email\":\"test-go-create_an_incident_returns_created_response-1677974954@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677808311@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677808311@datadoghq.com\",\"uuid\":\"f7f12039-b965-11ed-b5bf-a606768bc197\",\"email\":\"test-go-create_an_incident_returns_created_response-1677808311@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668211896@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668211896@datadoghq.com\",\"uuid\":\"f8313d55-863c-4872-8f01-5a74e04418d2\",\"email\":\"test-go-create_an_incident_returns_created_response-1668211896@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668816640@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668816640@datadoghq.com\",\"uuid\":\"f92f0fb9-f3fd-42ff-955a-744cc01ee9a4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668816640@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670928947@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670928947@datadoghq.com\",\"uuid\":\"f9e94170-240d-43ed-a3e4-dec65a38531b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670928947@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675123961@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675123961@datadoghq.com\",\"uuid\":\"fa40ced7-a0fb-11ed-a5e3-d6024dc128f7\",\"email\":\"test-go-create_an_incident_returns_created_response-1675123961@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675296619@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675296619@datadoghq.com\",\"uuid\":\"fa6d1a19-a28d-11ed-9c57-8a8107f52a6e\",\"email\":\"test-go-create_an_incident_returns_created_response-1675296619@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677888634@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677888634@datadoghq.com\",\"uuid\":\"fbd2af3f-ba20-11ed-a3f2-e6671bdc78dd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677888634@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670603299@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670603299@datadoghq.com\",\"uuid\":\"fc061455-8536-4ea0-8a7c-d6bd072c5b89\",\"email\":\"test-go-create_an_incident_returns_created_response-1670603299@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671408597@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671408597@datadoghq.com\",\"uuid\":\"fd20bff8-5c0c-4eb2-941b-c0d7669f996a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671408597@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670603854@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670603854@datadoghq.com\",\"uuid\":\"fdef06c9-5a21-44bb-afb4-14b055649e5b\",\"email\":\"test-go-create_an_incident_returns_created_response-1670603854@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667866318@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667866318@datadoghq.com\",\"uuid\":\"fe4f352d-a8b5-435e-a18c-9914eb88c865\",\"email\":\"test-go-create_an_incident_returns_created_response-1667866318@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926593@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926593@datadoghq.com\",\"uuid\":\"ff2e2858-cf28-44c7-98aa-be52cef329be\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926593@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675815030@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675815030@datadoghq.com\",\"uuid\":\"ff9a7c79-a744-11ed-9567-ba00348e1a7a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675815030@datadoghq.com\"}],\"impact\":[{\"name\":\"none\",\"count\":1703}],\"postmortem\":[{\"name\":\"No\",\"count\":1703},{\"name\":\"Yes\",\"count\":0}],\"time_to_resolve\":[{\"name\":\"time_to_resolve\",\"aggregates\":{\"min\":2.0,\"max\":3.0}}],\"state\":[{\"name\":\"active\",\"count\":1360},{\"name\":\"resolved\",\"count\":343},{\"name\":\"stable\",\"count\":0}],\"customer_impacted\":[{\"name\":0,\"count\":1703},{\"name\":true,\"count\":0}],\"fields\":[{\"name\":\"detection_method\",\"facets\":[{\"name\":\"unknown\",\"count\":1703},{\"name\":\"customer\",\"count\":0},{\"name\":\"employee\",\"count\":0},{\"name\":\"monitor\",\"count\":0},{\"name\":\"other\",\"count\":0}]},{\"name\":\"root_cause\",\"facets\":[]},{\"name\":\"services\",\"facets\":[]},{\"name\":\"summary\",\"facets\":[]},{\"name\":\"teams\",\"facets\":[]}],\"created_by\":[{\"name\":\"CI Account\",\"count\":1505,\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"},{\"name\":\"frog@datadoghq.com\",\"count\":198,\"handle\":\"frog@datadoghq.com\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"email\":\"frog@datadoghq.com\"}],\"last_modified_by\":[{\"name\":\"CI Account\",\"count\":1505,\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"},{\"name\":\"frog@datadoghq.com\",\"count\":198,\"handle\":\"frog@datadoghq.com\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"email\":\"frog@datadoghq.com\"}],\"commander\":[{\"name\":\"test-go-create_an_incident_returns_created_response-1677888642@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677888642@datadoghq.com\",\"uuid\":\"00a080f5-ba21-11ed-a3f2-e6671bdc78dd\",\"email\":\"test-go-create_an_incident_returns_created_response-1677888642@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672877473@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672877473@datadoghq.com\",\"uuid\":\"01dc2b21-3194-414a-b8e8-58704603421b\",\"email\":\"test-go-create_an_incident_returns_created_response-1672877473@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678925450@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678925450@datadoghq.com\",\"uuid\":\"02a54dc1-c38f-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678925450@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672013445@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672013445@datadoghq.com\",\"uuid\":\"03e16d56-e954-4e9a-b9da-22dffdfa1f24\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672013445@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666981015@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666981015@datadoghq.com\",\"uuid\":\"03e65d16-b7bb-456a-a5da-bf31dffbdf4d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666981015@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675815038@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675815038@datadoghq.com\",\"uuid\":\"0423cfd5-a745-11ed-9567-ba00348e1a7a\",\"email\":\"test-go-create_an_incident_returns_created_response-1675815038@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669335011@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669335011@datadoghq.com\",\"uuid\":\"04c4feaa-1864-4167-a48b-e156181d50d8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669335011@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669248659@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669248659@datadoghq.com\",\"uuid\":\"04f0d8b5-1959-43fb-85b5-782682062c4e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669248659@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673655101@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673655101@datadoghq.com\",\"uuid\":\"05d83a07-93a0-11ed-bf65-7630e111ac00\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673655101@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666743047@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666743047@datadoghq.com\",\"uuid\":\"060c37c0-93a9-48c0-90bc-dee85b66a7c7\",\"email\":\"test-go-create_an_incident_returns_created_response-1666743047@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678925461@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678925461@datadoghq.com\",\"uuid\":\"08f8d3b7-c38f-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1678925461@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670112680@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670112680@datadoghq.com\",\"uuid\":\"09010d4b-7635-4553-a7b9-973f5f9cea5b\",\"email\":\"test-go-create_an_incident_returns_created_response-1670112680@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673655109@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673655109@datadoghq.com\",\"uuid\":\"0a679024-93a0-11ed-aaf8-3230475e674b\",\"email\":\"test-go-create_an_incident_returns_created_response-1673655109@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667434335@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667434335@datadoghq.com\",\"uuid\":\"0ebbf763-be8f-40bb-8ee7-d37b729a5eed\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667434335@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668384644@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668384644@datadoghq.com\",\"uuid\":\"1193cff3-b670-4e08-a535-346105dcaf9f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668384644@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675210330@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675210330@datadoghq.com\",\"uuid\":\"1205474f-a1c5-11ed-b767-5ec4f5b84c10\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675210330@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674691927@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674691927@datadoghq.com\",\"uuid\":\"122c89ad-9d0e-11ed-9f54-862b4cfe184c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674691927@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668643799@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668643799@datadoghq.com\",\"uuid\":\"12d78e1b-0784-46f3-99ac-7e5db2d5c92e\",\"email\":\"test-go-create_an_incident_returns_created_response-1668643799@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671667884@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671667884@datadoghq.com\",\"uuid\":\"1310687d-9adb-47ae-ad7a-066c9e525f8b\",\"email\":\"test-go-create_an_incident_returns_created_response-1671667884@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673741454@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673741454@datadoghq.com\",\"uuid\":\"142ba3fc-9469-11ed-a365-8ec8661800c6\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673741454@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679011809@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679011809@datadoghq.com\",\"uuid\":\"1431aabf-c458-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679011809@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670927771@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670927771@datadoghq.com\",\"uuid\":\"14344412-a7b1-4044-89f7-8139727432f6\",\"email\":\"test-go-create_an_incident_returns_created_response-1670927771@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667261554@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667261554@datadoghq.com\",\"uuid\":\"1608c46d-bee2-46a5-be87-49af2b889db5\",\"email\":\"test-go-create_an_incident_returns_created_response-1667261554@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670929702@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670929702@datadoghq.com\",\"uuid\":\"161217ca-a0b5-418c-b0e5-d16edddd8258\",\"email\":\"test-go-create_an_incident_returns_created_response-1670929702@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675901397@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675901397@datadoghq.com\",\"uuid\":\"1628d4a0-a80e-11ed-af43-4e64a4a39547\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675901397@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670928949@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670928949@datadoghq.com\",\"uuid\":\"16754b18-1887-4f22-ae44-4a86e9bfc749\",\"email\":\"test-go-create_an_incident_returns_created_response-1670928949@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675210337@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675210337@datadoghq.com\",\"uuid\":\"1682f280-a1c5-11ed-ad87-fecda9c428d5\",\"email\":\"test-go-create_an_incident_returns_created_response-1675210337@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674691935@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674691935@datadoghq.com\",\"uuid\":\"16bf2921-9d0e-11ed-aff1-fa6399bf96fd\",\"email\":\"test-go-create_an_incident_returns_created_response-1674691935@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671754258@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671754258@datadoghq.com\",\"uuid\":\"18ada30d-ad3e-4ba2-911d-931233a75aa0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671754258@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679962293@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679962293@datadoghq.com\",\"uuid\":\"18cfb810-ccfd-11ed-a201-de0443f18a2a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679962293@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673741462@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673741462@datadoghq.com\",\"uuid\":\"18e9a7f7-9469-11ed-aaf8-3230475e674b\",\"email\":\"test-go-create_an_incident_returns_created_response-1673741462@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679011819@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679011819@datadoghq.com\",\"uuid\":\"1a8c2817-c458-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1679011819@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675901404@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675901404@datadoghq.com\",\"uuid\":\"1aa50cab-a80e-11ed-bc4c-ea1adbbc0986\",\"email\":\"test-go-create_an_incident_returns_created_response-1675901404@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670285407@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670285407@datadoghq.com\",\"uuid\":\"1bb87a6c-da01-4798-8bd0-5cd9918f641f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670285407@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668903124@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668903124@datadoghq.com\",\"uuid\":\"1bcb111e-ea64-4d60-9b77-ae5e7f22f157\",\"email\":\"test-go-create_an_incident_returns_created_response-1668903124@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668039051@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668039051@datadoghq.com\",\"uuid\":\"1c54a963-17f1-4ee8-a2b0-7fd07c3b2c68\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668039051@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674259871@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674259871@datadoghq.com\",\"uuid\":\"1c631d44-9920-11ed-8c68-2a913616fde8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674259871@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677024542@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677024542@datadoghq.com\",\"uuid\":\"1ce329fb-b245-11ed-8fbc-ca7794d66904\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677024542@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671149452@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671149452@datadoghq.com\",\"uuid\":\"1ebe2367-3eda-464c-9571-edd444620682\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671149452@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676419814@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676419814@datadoghq.com\",\"uuid\":\"1f019dde-acc5-11ed-bcdd-a68779fca942\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676419814@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679962303@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679962303@datadoghq.com\",\"uuid\":\"1f034a5d-ccfd-11ed-aef0-a6405a9b4791\",\"email\":\"test-go-create_an_incident_returns_created_response-1679962303@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672618338@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672618338@datadoghq.com\",\"uuid\":\"1fd5cef4-df5c-4609-be9a-11bf76483cfc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672618338@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666915819@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666915819@datadoghq.com\",\"uuid\":\"20be4a8a-b215-4bc0-b2fa-31c27e0a642b\",\"email\":\"test-go-create_an_incident_returns_created_response-1666915819@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671840707@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671840707@datadoghq.com\",\"uuid\":\"20d2001a-92b4-4d03-a5cb-73617f27b723\",\"email\":\"test-go-create_an_incident_returns_created_response-1671840707@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674259878@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674259878@datadoghq.com\",\"uuid\":\"20dbaf3d-9920-11ed-8c68-2a913616fde8\",\"email\":\"test-go-create_an_incident_returns_created_response-1674259878@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677024549@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677024549@datadoghq.com\",\"uuid\":\"214ed4fd-b245-11ed-8fbc-ca7794d66904\",\"email\":\"test-go-create_an_incident_returns_created_response-1677024549@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676419822@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676419822@datadoghq.com\",\"uuid\":\"2375265b-acc5-11ed-9a7e-46e4eb8f12a7\",\"email\":\"test-go-create_an_incident_returns_created_response-1676419822@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670594546@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670594546@datadoghq.com\",\"uuid\":\"2399be00-e683-4133-aec2-7ab8fe73779e\",\"email\":\"test-go-create_an_incident_returns_created_response-1670594546@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673050262@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673050262@datadoghq.com\",\"uuid\":\"23a293e3-086a-4f8e-8fa6-a2555557309e\",\"email\":\"test-go-create_an_incident_returns_created_response-1673050262@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667175034@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667175034@datadoghq.com\",\"uuid\":\"24f932ba-4cd2-498e-8261-64f6ec161bcb\",\"email\":\"test-go-create_an_incident_returns_created_response-1667175034@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677456630@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677456630@datadoghq.com\",\"uuid\":\"25538030-b633-11ed-827a-8e2840b25db2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677456630@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672013452@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672013452@datadoghq.com\",\"uuid\":\"2593795d-b0f5-46f9-a852-34d3c466ce0a\",\"email\":\"test-go-create_an_incident_returns_created_response-1672013452@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667520677@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667520677@datadoghq.com\",\"uuid\":\"26287ddb-5d1c-400d-96dc-a1d3bb09f880\",\"email\":\"test-go-create_an_incident_returns_created_response-1667520677@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679616573@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679616573@datadoghq.com\",\"uuid\":\"27c16c1b-c9d8-11ed-b840-0ed4b0ca293a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679616573@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676938232@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676938232@datadoghq.com\",\"uuid\":\"281184f3-b17c-11ed-bce8-0a557ccee039\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676938232@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668557513@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668557513@datadoghq.com\",\"uuid\":\"2871bc57-733f-4f85-b3ef-440569202326\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668557513@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668471095@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668471095@datadoghq.com\",\"uuid\":\"289f8508-500c-472e-a9d4-71f30f1cf151\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668471095@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671667877@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671667877@datadoghq.com\",\"uuid\":\"28ae893d-4b70-420d-96dc-f82066a0642f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671667877@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672531830@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672531830@datadoghq.com\",\"uuid\":\"291b8416-a87d-4e56-a93e-9d430d5c4996\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672531830@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677456637@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677456637@datadoghq.com\",\"uuid\":\"29cd6809-b633-11ed-827a-8e2840b25db2\",\"email\":\"test-go-create_an_incident_returns_created_response-1677456637@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678493444@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678493444@datadoghq.com\",\"uuid\":\"2acb4dc0-bfa1-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678493444@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671927057@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671927057@datadoghq.com\",\"uuid\":\"2b0ac046-39c8-4bf4-a00a-deb089bbbc0c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671927057@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679530252@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679530252@datadoghq.com\",\"uuid\":\"2c9256b5-c90f-11ed-a1f3-7afc45c1981c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679530252@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676938239@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676938239@datadoghq.com\",\"uuid\":\"2c977e11-b17c-11ed-bce8-0a557ccee039\",\"email\":\"test-go-create_an_incident_returns_created_response-1676938239@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679616583@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679616583@datadoghq.com\",\"uuid\":\"2d99557e-c9d8-11ed-a171-361a8cacd441\",\"email\":\"test-go-create_an_incident_returns_created_response-1679616583@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672445562@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672445562@datadoghq.com\",\"uuid\":\"2db31432-b497-42b8-80b7-fef85898a2a8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672445562@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668039059@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668039059@datadoghq.com\",\"uuid\":\"2ebfffc1-a7da-4558-a507-038442f7ee79\",\"email\":\"test-go-create_an_incident_returns_created_response-1668039059@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669767030@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669767030@datadoghq.com\",\"uuid\":\"2eca0bd9-db8e-4c5d-91b7-2ccddffd5764\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669767030@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671235865@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671235865@datadoghq.com\",\"uuid\":\"2fc6258a-7492-43c0-accf-24528cbbfea1\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671235865@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669680686@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669680686@datadoghq.com\",\"uuid\":\"302a3d05-c61c-41d8-ad31-8821b764acf7\",\"email\":\"test-go-create_an_incident_returns_created_response-1669680686@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678493454@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678493454@datadoghq.com\",\"uuid\":\"30e3000f-bfa1-11ed-9949-f20a22a554f2\",\"email\":\"test-go-create_an_incident_returns_created_response-1678493454@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676333515@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676333515@datadoghq.com\",\"uuid\":\"30e43861-abfc-11ed-a6fc-0e9b7fe457ae\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676333515@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669680678@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669680678@datadoghq.com\",\"uuid\":\"31ad2923-926d-49af-ad5b-d8b120e6edc8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669680678@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679530263@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679530263@datadoghq.com\",\"uuid\":\"32d40acb-c90f-11ed-a1f3-7afc45c1981c\",\"email\":\"test-go-create_an_incident_returns_created_response-1679530263@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671581470@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671581470@datadoghq.com\",\"uuid\":\"34377484-e597-4d4c-bccf-88e919b6d549\",\"email\":\"test-go-create_an_incident_returns_created_response-1671581470@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667693449@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667693449@datadoghq.com\",\"uuid\":\"34e92512-7c24-4704-816e-4fadc9b5eff7\",\"email\":\"test-go-create_an_incident_returns_created_response-1667693449@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668211888@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668211888@datadoghq.com\",\"uuid\":\"3578dcc8-088a-4320-8c27-7f80f1bba4cb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668211888@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672186272@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672186272@datadoghq.com\",\"uuid\":\"3584000d-6337-4c9e-955e-e25514b83be0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672186272@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676333523@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676333523@datadoghq.com\",\"uuid\":\"35ba7493-abfc-11ed-b5cd-eec9514dd597\",\"email\":\"test-go-create_an_incident_returns_created_response-1676333523@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678579793@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678579793@datadoghq.com\",\"uuid\":\"367e08f8-c06a-11ed-b4e0-566658a732f8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678579793@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671062982@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671062982@datadoghq.com\",\"uuid\":\"3883d9fe-1678-452e-8801-11a374f9fdae\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671062982@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667002244@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667002244@datadoghq.com\",\"uuid\":\"39627294-7a14-4e71-b5ff-5221e68b6fbe\",\"email\":\"test-go-create_an_incident_returns_created_response-1667002244@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671581462@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671581462@datadoghq.com\",\"uuid\":\"3bc8406a-5790-4582-82f5-08e330921b9b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671581462@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668989431@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668989431@datadoghq.com\",\"uuid\":\"3c28c823-158e-46c2-8dce-06f1dace90e8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668989431@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673050254@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673050254@datadoghq.com\",\"uuid\":\"3c7509b1-82af-4d25-b1e5-3e8aaa107f0a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673050254@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678579803@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678579803@datadoghq.com\",\"uuid\":\"3c7f71d2-c06a-11ed-a89b-0ebbb850607d\",\"email\":\"test-go-create_an_incident_returns_created_response-1678579803@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669162240@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669162240@datadoghq.com\",\"uuid\":\"3ce20d84-5e75-45a5-b7b9-971549a50cf4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669162240@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670458180@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670458180@datadoghq.com\",\"uuid\":\"40d8c19a-8c6a-4f54-9444-aba7b6798064\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670458180@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678061409@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678061409@datadoghq.com\",\"uuid\":\"41da9ce5-bbb3-11ed-82a6-028cebedd0cf\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678061409@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673136665@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673136665@datadoghq.com\",\"uuid\":\"426feaae-7bf3-4b2c-bc8c-0c79056d6d8d\",\"email\":\"test-go-create_an_incident_returns_created_response-1673136665@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672099886@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672099886@datadoghq.com\",\"uuid\":\"431624c4-d099-4dfb-b701-33a60bba6ebe\",\"email\":\"test-go-create_an_incident_returns_created_response-1672099886@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669421482@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669421482@datadoghq.com\",\"uuid\":\"442dd264-b729-473b-a51d-4b141068fe3d\",\"email\":\"test-go-create_an_incident_returns_created_response-1669421482@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603297@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603297@datadoghq.com\",\"uuid\":\"446cd2d8-630c-4fe9-8901-fb85bd22426d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603297@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678061417@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678061417@datadoghq.com\",\"uuid\":\"467de14f-bbb3-11ed-82a6-028cebedd0cf\",\"email\":\"test-go-create_an_incident_returns_created_response-1678061417@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668989438@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668989438@datadoghq.com\",\"uuid\":\"46d62900-016b-463c-9fff-c8b4f946ce5c\",\"email\":\"test-go-create_an_incident_returns_created_response-1668989438@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675469405@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675469405@datadoghq.com\",\"uuid\":\"46e3c6ef-a420-11ed-b1f8-56250c47f0b3\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675469405@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670371777@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670371777@datadoghq.com\",\"uuid\":\"48f7337b-3304-46fc-9e88-23b4dc5d24cc\",\"email\":\"test-go-create_an_incident_returns_created_response-1670371777@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670943350@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670943350@datadoghq.com\",\"uuid\":\"4b432133-ba1b-4edc-ab57-c0250963f250\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670943350@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679098230@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679098230@datadoghq.com\",\"uuid\":\"4b5ba977-c521-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679098230@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675469412@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675469412@datadoghq.com\",\"uuid\":\"4b68a1e2-a420-11ed-b1f8-56250c47f0b3\",\"email\":\"test-go-create_an_incident_returns_created_response-1675469412@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668816648@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668816648@datadoghq.com\",\"uuid\":\"4e5cb15e-f18e-43ba-b115-2a4e62736739\",\"email\":\"test-go-create_an_incident_returns_created_response-1668816648@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603851@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603851@datadoghq.com\",\"uuid\":\"4e6b1824-dc1e-4691-8abd-5ffb968da7eb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603851@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669421474@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669421474@datadoghq.com\",\"uuid\":\"4fdb4327-3660-4aeb-b403-7f7939493f27\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669421474@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670458188@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670458188@datadoghq.com\",\"uuid\":\"50d5408a-1894-4173-9fa1-32209009d9b1\",\"email\":\"test-go-create_an_incident_returns_created_response-1670458188@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679098240@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679098240@datadoghq.com\",\"uuid\":\"5141e45c-c521-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-create_an_incident_returns_created_response-1679098240@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675383094@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675383094@datadoghq.com\",\"uuid\":\"520007b9-a357-11ed-acb5-6e0b90178632\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675383094@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670803787@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670803787@datadoghq.com\",\"uuid\":\"521a78f7-573e-4b67-8e2c-d0dd5d91a265\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670803787@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666743039@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666743039@datadoghq.com\",\"uuid\":\"54b84ea9-ae9f-4159-b226-aba3b432a792\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666743039@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674346295@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674346295@datadoghq.com\",\"uuid\":\"551c3a48-99e9-11ed-a607-1684d7f553f6\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674346295@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678147771@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678147771@datadoghq.com\",\"uuid\":\"557fb06e-bc7c-11ed-be39-625d488bce09\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678147771@datadoghq.com\"},{\"name\":\"test-add_commander_to_an_incident_returns_ok_response-1677691218@datadoghq.com\",\"count\":1,\"handle\":\"test-add_commander_to_an_incident_returns_ok_response-1677691218@datadoghq.com\",\"uuid\":\"56afe5b0-b855-11ed-a706-064bc8586212\",\"email\":\"test-add_commander_to_an_incident_returns_ok_response-1677691218@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675383103@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675383103@datadoghq.com\",\"uuid\":\"56d1cddc-a357-11ed-95c6-eefcd7f14d98\",\"email\":\"test-go-create_an_incident_returns_created_response-1675383103@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670929700@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670929700@datadoghq.com\",\"uuid\":\"5705f818-933e-4ef4-818c-615b06f80fd1\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670929700@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668557521@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668557521@datadoghq.com\",\"uuid\":\"577067f0-c41d-4928-8964-0f7725e8cf68\",\"email\":\"test-go-create_an_incident_returns_created_response-1668557521@datadoghq.com\"},{\"name\":\"test-create_an_incident_returns_created_response-1677691220@datadoghq.com\",\"count\":1,\"handle\":\"test-create_an_incident_returns_created_response-1677691220@datadoghq.com\",\"uuid\":\"57e9dbb7-b855-11ed-ab26-8e492650c256\",\"email\":\"test-create_an_incident_returns_created_response-1677691220@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679702983@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679702983@datadoghq.com\",\"uuid\":\"58287ff7-caa1-11ed-81eb-8227c2cf9828\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679702983@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666829448@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666829448@datadoghq.com\",\"uuid\":\"586e086f-1e29-4689-99b6-641c3218b0a8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666829448@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674346302@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674346302@datadoghq.com\",\"uuid\":\"59b0d36c-99e9-11ed-8968-92ec5048e27c\",\"email\":\"test-go-create_an_incident_returns_created_response-1674346302@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667261546@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667261546@datadoghq.com\",\"uuid\":\"59c9cd2e-cd40-4530-ba50-415bce89b133\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667261546@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678147781@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678147781@datadoghq.com\",\"uuid\":\"5b76378d-bc7c-11ed-ba16-0aeab349e953\",\"email\":\"test-go-create_an_incident_returns_created_response-1678147781@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670976638@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670976638@datadoghq.com\",\"uuid\":\"5baf69e4-9bd6-4c76-b552-2bfee88031b5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670976638@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668298265@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668298265@datadoghq.com\",\"uuid\":\"5c4ecf79-7ffb-47ea-9331-687b04ac9df8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668298265@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671840699@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671840699@datadoghq.com\",\"uuid\":\"5ce42d6d-a0b9-4d0f-893b-aa0b8f30ee5c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671840699@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672445570@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672445570@datadoghq.com\",\"uuid\":\"5d11019d-f1dc-468d-a20a-8e64e7af9494\",\"email\":\"test-go-create_an_incident_returns_created_response-1672445570@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670976646@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670976646@datadoghq.com\",\"uuid\":\"5db9c599-b71f-40c6-84d9-8ca8779004e1\",\"email\":\"test-go-create_an_incident_returns_created_response-1670976646@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679702993@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679702993@datadoghq.com\",\"uuid\":\"5e20a7d6-caa1-11ed-b285-a2593f21064b\",\"email\":\"test-go-create_an_incident_returns_created_response-1679702993@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673223078@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673223078@datadoghq.com\",\"uuid\":\"5f3582c4-06d1-43a3-bab9-b7ece49136a4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673223078@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672791107@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672791107@datadoghq.com\",\"uuid\":\"610753d8-8bc4-11ed-94a1-26632eba8bed\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672791107@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677110986@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677110986@datadoghq.com\",\"uuid\":\"614ff267-b30e-11ed-b3d7-ea098e8dc2bb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677110986@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667088640@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667088640@datadoghq.com\",\"uuid\":\"61d88713-957f-4920-8a3b-65f0ccd79b57\",\"email\":\"test-go-create_an_incident_returns_created_response-1667088640@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670026253@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670026253@datadoghq.com\",\"uuid\":\"623452c3-d694-466a-95b9-140a9c44a1ab\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670026253@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672791115@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672791115@datadoghq.com\",\"uuid\":\"65b38b0e-8bc4-11ed-81c7-fed5bfaa3f3d\",\"email\":\"test-go-create_an_incident_returns_created_response-1672791115@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677110993@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677110993@datadoghq.com\",\"uuid\":\"65e049af-b30e-11ed-82a1-e2db47427de5\",\"email\":\"test-go-create_an_incident_returns_created_response-1677110993@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674778401@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674778401@datadoghq.com\",\"uuid\":\"6847d712-9dd7-11ed-967f-12bf3e4c6b0d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674778401@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667520669@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667520669@datadoghq.com\",\"uuid\":\"6887723d-dbde-4969-bba8-e9b3464645ce\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667520669@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678204931@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678204931@datadoghq.com\",\"uuid\":\"6b9e40b1-bd01-11ed-8bd9-4a4655204cc7\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678204931@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667952700@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667952700@datadoghq.com\",\"uuid\":\"6c22fc34-31d7-4085-948b-d862feb447fe\",\"email\":\"test-go-create_an_incident_returns_created_response-1667952700@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676506273@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676506273@datadoghq.com\",\"uuid\":\"6ca38252-ad8e-11ed-9613-3a90352a946f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676506273@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671149459@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671149459@datadoghq.com\",\"uuid\":\"6ccce5fc-d6a8-416d-921b-f883914b67ad\",\"email\":\"test-go-create_an_incident_returns_created_response-1671149459@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674778408@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674778408@datadoghq.com\",\"uuid\":\"6d0c845f-9dd7-11ed-a399-1a75992a86c7\",\"email\":\"test-go-create_an_incident_returns_created_response-1674778408@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669594231@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669594231@datadoghq.com\",\"uuid\":\"6d550b97-297b-43ea-a3dc-85383cf72fba\",\"email\":\"test-go-create_an_incident_returns_created_response-1669594231@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671927065@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671927065@datadoghq.com\",\"uuid\":\"6d7f7052-6ddb-461f-a49f-6cb5fca6b2c8\",\"email\":\"test-go-create_an_incident_returns_created_response-1671927065@datadoghq.com\"},{\"name\":\"test-add_commander_to_an_incident_returns_ok_response-1677691687@datadoghq.com\",\"count\":1,\"handle\":\"test-add_commander_to_an_incident_returns_ok_response-1677691687@datadoghq.com\",\"uuid\":\"6e0e84e3-b856-11ed-ab26-8e492650c256\",\"email\":\"test-add_commander_to_an_incident_returns_ok_response-1677691687@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675987874@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675987874@datadoghq.com\",\"uuid\":\"6ed45bb9-a8d7-11ed-b51e-c2a468ff72a6\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675987874@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670927769@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670927769@datadoghq.com\",\"uuid\":\"6efabec4-24bc-46bd-8f53-e068f03adbf0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670927769@datadoghq.com\"},{\"name\":\"test-create_an_incident_returns_created_response-1677691689@datadoghq.com\",\"count\":1,\"handle\":\"test-create_an_incident_returns_created_response-1677691689@datadoghq.com\",\"uuid\":\"6f41744d-b856-11ed-a706-064bc8586212\",\"email\":\"test-create_an_incident_returns_created_response-1677691689@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670717462@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670717462@datadoghq.com\",\"uuid\":\"70532155-9800-46d9-89ed-bd41347c3dfd\",\"email\":\"test-go-create_an_incident_returns_created_response-1670717462@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676506281@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676506281@datadoghq.com\",\"uuid\":\"713c4001-ad8e-11ed-be7d-0ec0d643006a\",\"email\":\"test-go-create_an_incident_returns_created_response-1676506281@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678204941@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678204941@datadoghq.com\",\"uuid\":\"71cb7181-bd01-11ed-8700-9293738b117d\",\"email\":\"test-go-create_an_incident_returns_created_response-1678204941@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671322271@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671322271@datadoghq.com\",\"uuid\":\"7247d247-e798-4af5-b9ce-7bf786c4d0c7\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671322271@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672359091@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672359091@datadoghq.com\",\"uuid\":\"73546355-1adc-4289-908a-2f6fae7fc9fa\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672359091@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675987882@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675987882@datadoghq.com\",\"uuid\":\"738ccf6d-a8d7-11ed-ad7e-6ed4f1c67dea\",\"email\":\"test-go-create_an_incident_returns_created_response-1675987882@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677543090@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677543090@datadoghq.com\",\"uuid\":\"73a70dc9-b6fc-11ed-a3d7-a2295215c227\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677543090@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669507839@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669507839@datadoghq.com\",\"uuid\":\"7571121d-a654-4df8-9afa-e638f17d53bb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669507839@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674432680@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674432680@datadoghq.com\",\"uuid\":\"76c071c8-9ab2-11ed-8c68-2a913616fde8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674432680@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674864754@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674864754@datadoghq.com\",\"uuid\":\"7715eb6d-9ea0-11ed-8e78-767557a2485a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674864754@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677543098@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677543098@datadoghq.com\",\"uuid\":\"785f915d-b6fc-11ed-ad05-76e4602e1079\",\"email\":\"test-go-create_an_incident_returns_created_response-1677543098@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673395882@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673395882@datadoghq.com\",\"uuid\":\"7ac9b3b9-9144-11ed-82e3-622adeb45fa9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673395882@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674432688@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674432688@datadoghq.com\",\"uuid\":\"7b5907f1-9ab2-11ed-8c68-2a913616fde8\",\"email\":\"test-go-create_an_incident_returns_created_response-1674432688@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672877465@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672877465@datadoghq.com\",\"uuid\":\"7ba05e4d-f9a0-44e2-aa8c-bcda7adac2e5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672877465@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674864762@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674864762@datadoghq.com\",\"uuid\":\"7bc2a11e-9ea0-11ed-8c38-7ad981f4abb4\",\"email\":\"test-go-create_an_incident_returns_created_response-1674864762@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668384652@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668384652@datadoghq.com\",\"uuid\":\"7da5fc01-ccbd-4679-8149-cb22fe402bb3\",\"email\":\"test-go-create_an_incident_returns_created_response-1668384652@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667779824@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667779824@datadoghq.com\",\"uuid\":\"7dd124ba-7343-4882-b700-c44374efa8e3\",\"email\":\"test-go-create_an_incident_returns_created_response-1667779824@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673914292@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673914292@datadoghq.com\",\"uuid\":\"7f3e8ad2-95fb-11ed-b93e-b6681b4e2484\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673914292@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673395889@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673395889@datadoghq.com\",\"uuid\":\"7f7afd0e-9144-11ed-82e3-622adeb45fa9\",\"email\":\"test-go-create_an_incident_returns_created_response-1673395889@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676592635@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676592635@datadoghq.com\",\"uuid\":\"8009c2e2-ae57-11ed-b4cb-a681084bf13a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676592635@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670926105@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670926105@datadoghq.com\",\"uuid\":\"81831280-6cb1-4a01-9dc9-f68b1405f8f6\",\"email\":\"test-go-create_an_incident_returns_created_response-1670926105@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677197369@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677197369@datadoghq.com\",\"uuid\":\"81da5714-b3d7-11ed-97bb-cad2b20710fd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677197369@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678666250@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678666250@datadoghq.com\",\"uuid\":\"82eadb7f-c133-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678666250@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673914300@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673914300@datadoghq.com\",\"uuid\":\"84060fed-95fb-11ed-b93e-b6681b4e2484\",\"email\":\"test-go-create_an_incident_returns_created_response-1673914300@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670199054@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670199054@datadoghq.com\",\"uuid\":\"847f57aa-1b32-4eee-8447-e6eef1f6744f\",\"email\":\"test-go-create_an_incident_returns_created_response-1670199054@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676592642@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676592642@datadoghq.com\",\"uuid\":\"848026b5-ae57-11ed-9ecb-824f74ccf3e4\",\"email\":\"test-go-create_an_incident_returns_created_response-1676592642@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670630968@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670630968@datadoghq.com\",\"uuid\":\"853cce16-d7d3-4bd6-8f99-b1eab0407cf1\",\"email\":\"test-go-create_an_incident_returns_created_response-1670630968@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672099877@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672099877@datadoghq.com\",\"uuid\":\"862d085b-48ce-446e-a74f-ae3538d623f5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672099877@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674951109@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674951109@datadoghq.com\",\"uuid\":\"866af7b6-9f69-11ed-8c38-7ad981f4abb4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674951109@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677197377@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677197377@datadoghq.com\",\"uuid\":\"86a13258-b3d7-11ed-a605-a260cf3212a9\",\"email\":\"test-go-create_an_incident_returns_created_response-1677197377@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673827975@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673827975@datadoghq.com\",\"uuid\":\"86bc89ca-9532-11ed-bf65-7630e111ac00\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673827975@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667434343@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667434343@datadoghq.com\",\"uuid\":\"88c2cdf6-2769-4e68-9503-38d3f166ff1a\",\"email\":\"test-go-create_an_incident_returns_created_response-1667434343@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678666260@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678666260@datadoghq.com\",\"uuid\":\"88ce8004-c133-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1678666260@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679270991@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679270991@datadoghq.com\",\"uuid\":\"89229fdb-c6b3-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679270991@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668643791@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668643791@datadoghq.com\",\"uuid\":\"8a2d2c9d-c478-4a74-94a8-cabb28bd1473\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668643791@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674951116@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674951116@datadoghq.com\",\"uuid\":\"8ae38d89-9f69-11ed-bfa9-f2483e31eab5\",\"email\":\"test-go-create_an_incident_returns_created_response-1674951116@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673827983@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673827983@datadoghq.com\",\"uuid\":\"8b7b570e-9532-11ed-bf65-7630e111ac00\",\"email\":\"test-go-create_an_incident_returns_created_response-1673827983@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676074256@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676074256@datadoghq.com\",\"uuid\":\"8e41e3a8-a9a0-11ed-a060-46b9814ce648\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676074256@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672704719@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672704719@datadoghq.com\",\"uuid\":\"8e85e36f-5ccd-4052-a34e-d7338178914e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672704719@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679271002@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679271002@datadoghq.com\",\"uuid\":\"8f25b885-c6b3-11ed-9949-f20a22a554f2\",\"email\":\"test-go-create_an_incident_returns_created_response-1679271002@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667866310@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667866310@datadoghq.com\",\"uuid\":\"8f8399af-4d57-41a1-91a3-37c29fb62092\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667866310@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670630960@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670630960@datadoghq.com\",\"uuid\":\"8fa60296-198c-4113-8f21-0ba09e4fd83e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670630960@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679789405@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679789405@datadoghq.com\",\"uuid\":\"8fb58f8b-cb6a-11ed-be83-92f82eb96735\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679789405@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666829456@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666829456@datadoghq.com\",\"uuid\":\"91a8dc0a-0c63-4411-b9ab-39ec37dc2eee\",\"email\":\"test-go-create_an_incident_returns_created_response-1666829456@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669939802@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669939802@datadoghq.com\",\"uuid\":\"92c4c4e2-d881-485c-9668-0aa68239c513\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669939802@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676074265@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676074265@datadoghq.com\",\"uuid\":\"936c4650-a9a0-11ed-af98-1a32d7edfd9d\",\"email\":\"test-go-create_an_incident_returns_created_response-1676074265@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667088632@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667088632@datadoghq.com\",\"uuid\":\"93e8df0e-729e-4d2f-b0a4-9495ffb37b06\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667088632@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673482254@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673482254@datadoghq.com\",\"uuid\":\"94c9bf7f-920d-11ed-9cec-222dbf547024\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673482254@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670598792@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670598792@datadoghq.com\",\"uuid\":\"94d92a17-4768-48dd-97b4-ab32fee4e33b\",\"email\":\"test-go-create_an_incident_returns_created_response-1670598792@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669853467@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669853467@datadoghq.com\",\"uuid\":\"94f7179d-40a0-4790-9436-6080eb0db034\",\"email\":\"test-go-create_an_incident_returns_created_response-1669853467@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679789415@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679789415@datadoghq.com\",\"uuid\":\"959ada1b-cb6a-11ed-9f7f-0e85fe61e6ee\",\"email\":\"test-go-create_an_incident_returns_created_response-1679789415@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669075853@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669075853@datadoghq.com\",\"uuid\":\"96796850-b278-4313-a726-9cf5c832fe30\",\"email\":\"test-go-create_an_incident_returns_created_response-1669075853@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676679006@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676679006@datadoghq.com\",\"uuid\":\"99579994-af20-11ed-94c9-462a25af4eaf\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676679006@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673482262@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673482262@datadoghq.com\",\"uuid\":\"995b112e-920d-11ed-9888-e278e4206645\",\"email\":\"test-go-create_an_incident_returns_created_response-1673482262@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670594544@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670594544@datadoghq.com\",\"uuid\":\"9b26b565-e0c1-4777-a693-553a8d5cb243\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670594544@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670285415@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670285415@datadoghq.com\",\"uuid\":\"9b9fe3ac-f73b-43a5-b570-43d156e07ea9\",\"email\":\"test-go-create_an_incident_returns_created_response-1670285415@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670926595@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670926595@datadoghq.com\",\"uuid\":\"9c09fbea-fce4-4c02-9a45-ec845bab938a\",\"email\":\"test-go-create_an_incident_returns_created_response-1670926595@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670544898@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670544898@datadoghq.com\",\"uuid\":\"9c58a1dc-6beb-4390-928e-ed9d95b13b30\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670544898@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667693441@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667693441@datadoghq.com\",\"uuid\":\"9ccf5d51-55b4-43e0-ad79-7819a8d223f0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667693441@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676679013@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676679013@datadoghq.com\",\"uuid\":\"9dd94922-af20-11ed-94c9-462a25af4eaf\",\"email\":\"test-go-create_an_incident_returns_created_response-1676679013@datadoghq.com\"},{\"name\":\"test-add_commander_to_an_incident_returns_ok_response-1675266399@datadoghq.com\",\"count\":1,\"handle\":\"test-add_commander_to_an_incident_returns_ok_response-1675266399@datadoghq.com\",\"uuid\":\"9defa75d-a247-11ed-97de-223323d49fa6\",\"email\":\"test-add_commander_to_an_incident_returns_ok_response-1675266399@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666979690@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666979690@datadoghq.com\",\"uuid\":\"9e072255-5184-44a8-ae5f-a8e70ec5037c\",\"email\":\"test-go-create_an_incident_returns_created_response-1666979690@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678752625@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678752625@datadoghq.com\",\"uuid\":\"9e85bf56-c1fc-11ed-b4e0-566658a732f8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678752625@datadoghq.com\"},{\"name\":\"test-create_an_incident_returns_created_response-1675266400@datadoghq.com\",\"count\":1,\"handle\":\"test-create_an_incident_returns_created_response-1675266400@datadoghq.com\",\"uuid\":\"9ee1d254-a247-11ed-92ef-6ad132878933\",\"email\":\"test-create_an_incident_returns_created_response-1675266400@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668125498@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668125498@datadoghq.com\",\"uuid\":\"9f5a1546-bccf-4b9f-a25f-96fb87bd7bfc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668125498@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669162248@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669162248@datadoghq.com\",\"uuid\":\"9f88a5e0-9842-4fd1-95c7-7f85edad3874\",\"email\":\"test-go-create_an_incident_returns_created_response-1669162248@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666981017@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666981017@datadoghq.com\",\"uuid\":\"a136a629-05cd-4a2f-b925-e1d74c6a69ad\",\"email\":\"test-go-create_an_incident_returns_created_response-1666981017@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670803795@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670803795@datadoghq.com\",\"uuid\":\"a18c9430-e993-488f-8b5c-3ad27997e55c\",\"email\":\"test-go-create_an_incident_returns_created_response-1670803795@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675555889@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675555889@datadoghq.com\",\"uuid\":\"a3644be2-a4e9-11ed-b7fb-1ea641c369ef\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675555889@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672704726@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672704726@datadoghq.com\",\"uuid\":\"a4230eac-f78e-407d-8551-b07c6476622b\",\"email\":\"test-go-create_an_incident_returns_created_response-1672704726@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678752635@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678752635@datadoghq.com\",\"uuid\":\"a4aff885-c1fc-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1678752635@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675555897@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675555897@datadoghq.com\",\"uuid\":\"a813f7f3-a4e9-11ed-9388-1ad521c601b9\",\"email\":\"test-go-create_an_incident_returns_created_response-1675555897@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674087020@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674087020@datadoghq.com\",\"uuid\":\"a96c393b-978d-11ed-b425-4e7b3187c657\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674087020@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669767038@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669767038@datadoghq.com\",\"uuid\":\"a9977d83-cddd-4644-ba02-dc1a86c0293e\",\"email\":\"test-go-create_an_incident_returns_created_response-1669767038@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678234243@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678234243@datadoghq.com\",\"uuid\":\"aabc794c-bd45-11ed-9ea1-9ebf47de1fdb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678234243@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667606997@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667606997@datadoghq.com\",\"uuid\":\"ab5bb1f0-b9b2-43da-bd50-e5ba7315fc29\",\"email\":\"test-go-create_an_incident_returns_created_response-1667606997@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673568622@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673568622@datadoghq.com\",\"uuid\":\"abedb0a5-92d6-11ed-a082-5215624996c0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673568622@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672272649@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672272649@datadoghq.com\",\"uuid\":\"ac484716-4260-4fd9-8288-1d4a6b0d39da\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672272649@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674087028@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674087028@datadoghq.com\",\"uuid\":\"ade2bf85-978d-11ed-b425-4e7b3187c657\",\"email\":\"test-go-create_an_incident_returns_created_response-1674087028@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673568629@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673568629@datadoghq.com\",\"uuid\":\"b0771f90-92d6-11ed-a082-5215624996c0\",\"email\":\"test-go-create_an_incident_returns_created_response-1673568629@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672359099@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672359099@datadoghq.com\",\"uuid\":\"b12b859b-c89a-4023-84e6-2634f93fff00\",\"email\":\"test-go-create_an_incident_returns_created_response-1672359099@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678234254@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678234254@datadoghq.com\",\"uuid\":\"b155e604-bd45-11ed-ba70-22d478e15cef\",\"email\":\"test-go-create_an_incident_returns_created_response-1678234254@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667347843@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667347843@datadoghq.com\",\"uuid\":\"b2f195b3-53b7-4095-bfb8-90538edb12f7\",\"email\":\"test-go-create_an_incident_returns_created_response-1667347843@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677715854@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677715854@datadoghq.com\",\"uuid\":\"b2fc8929-b88e-11ed-8da2-b6d07de5d20c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677715854@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667779816@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667779816@datadoghq.com\",\"uuid\":\"b335a7f4-a66e-41ed-b4aa-982c5b76ffc1\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667779816@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672963863@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672963863@datadoghq.com\",\"uuid\":\"b39fcb21-440b-4bd8-bc55-103259b74a57\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672963863@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670890374@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670890374@datadoghq.com\",\"uuid\":\"b3ccf662-7d0d-4a45-9cb3-5ffcb089012c\",\"email\":\"test-go-create_an_incident_returns_created_response-1670890374@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669594223@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669594223@datadoghq.com\",\"uuid\":\"b4a8f9a4-28a9-4311-a813-8149eb5264f4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669594223@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672963870@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672963870@datadoghq.com\",\"uuid\":\"b631798d-d17b-44ab-af5c-f075df907ddd\",\"email\":\"test-go-create_an_incident_returns_created_response-1672963870@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677715861@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677715861@datadoghq.com\",\"uuid\":\"b768b7b4-b88e-11ed-a132-2aa63a904ba0\",\"email\":\"test-go-create_an_incident_returns_created_response-1677715861@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671408605@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671408605@datadoghq.com\",\"uuid\":\"b7d64361-36fd-4ebd-9438-949f60ec3745\",\"email\":\"test-go-create_an_incident_returns_created_response-1671408605@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670604391@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670604391@datadoghq.com\",\"uuid\":\"b8fa89c4-34f6-4b69-a654-e3671ce743a0\",\"email\":\"test-go-create_an_incident_returns_created_response-1670604391@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668471103@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668471103@datadoghq.com\",\"uuid\":\"b9d64d92-66de-41cc-9164-b83b7b74439f\",\"email\":\"test-go-create_an_incident_returns_created_response-1668471103@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674000722@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674000722@datadoghq.com\",\"uuid\":\"bbd69d76-96c4-11ed-b802-922cd9596b23\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674000722@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669853460@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669853460@datadoghq.com\",\"uuid\":\"bc036552-b05e-4ffd-8dd1-44dbe725a6ec\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669853460@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670544906@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670544906@datadoghq.com\",\"uuid\":\"bcb9456d-8b65-4369-b2c4-49ee5e4c14b7\",\"email\":\"test-go-create_an_incident_returns_created_response-1670544906@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674519128@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674519128@datadoghq.com\",\"uuid\":\"bd7e4c91-9b7b-11ed-882c-9aa2ca31c98c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674519128@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676765396@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676765396@datadoghq.com\",\"uuid\":\"bdc08c5f-afe9-11ed-84e6-a6c768ad21b4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676765396@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667952692@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667952692@datadoghq.com\",\"uuid\":\"be421a73-22de-48d3-be3f-1a269016ff83\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667952692@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675037533@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675037533@datadoghq.com\",\"uuid\":\"bf08166d-a032-11ed-88af-be56a8628f3f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675037533@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674000730@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674000730@datadoghq.com\",\"uuid\":\"c09c4f30-96c4-11ed-9f1c-fe165ba0981c\",\"email\":\"test-go-create_an_incident_returns_created_response-1674000730@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666915811@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666915811@datadoghq.com\",\"uuid\":\"c20da1a9-657e-4b5a-9159-9f4d324f51fc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666915811@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675642269@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675642269@datadoghq.com\",\"uuid\":\"c22b3e65-a5b2-11ed-9388-1ad521c601b9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675642269@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671495039@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671495039@datadoghq.com\",\"uuid\":\"c23885b0-3659-4d47-b5c9-16c0965dc7d9\",\"email\":\"test-go-create_an_incident_returns_created_response-1671495039@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679357416@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679357416@datadoghq.com\",\"uuid\":\"c238d04b-c77c-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679357416@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674519135@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674519135@datadoghq.com\",\"uuid\":\"c23e01c9-9b7b-11ed-8af1-7201c2784402\",\"email\":\"test-go-create_an_incident_returns_created_response-1674519135@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676765404@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676765404@datadoghq.com\",\"uuid\":\"c27df074-afe9-11ed-bce8-0a557ccee039\",\"email\":\"test-go-create_an_incident_returns_created_response-1676765404@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668730249@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668730249@datadoghq.com\",\"uuid\":\"c36f2608-4650-4331-b810-1dc5500c1356\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668730249@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670924666@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670924666@datadoghq.com\",\"uuid\":\"c381f80b-8a88-47bd-9dbe-77720d784a52\",\"email\":\"test-go-create_an_incident_returns_created_response-1670924666@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669075846@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669075846@datadoghq.com\",\"uuid\":\"c39f3031-906f-4679-a817-9b8f072254bb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669075846@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675037541@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675037541@datadoghq.com\",\"uuid\":\"c3e2d867-a032-11ed-88af-be56a8628f3f\",\"email\":\"test-go-create_an_incident_returns_created_response-1675037541@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667002236@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667002236@datadoghq.com\",\"uuid\":\"c567f0fa-6f70-42e3-855e-2ae1d2ed7243\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667002236@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668125506@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668125506@datadoghq.com\",\"uuid\":\"c60a0f7d-3f36-4966-a63f-f1f77dca030a\",\"email\":\"test-go-create_an_incident_returns_created_response-1668125506@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676247007@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676247007@datadoghq.com\",\"uuid\":\"c61f4ec1-ab32-11ed-8972-1eb0f4245ee5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676247007@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675642277@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675642277@datadoghq.com\",\"uuid\":\"c6d4d92c-a5b2-11ed-b7fb-1ea641c369ef\",\"email\":\"test-go-create_an_incident_returns_created_response-1675642277@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668903116@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668903116@datadoghq.com\",\"uuid\":\"c7319ecf-1451-4031-817a-5bef597d5ac9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668903116@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670604389@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670604389@datadoghq.com\",\"uuid\":\"c7b7b86f-5268-4c20-b223-afc7923d54b9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670604389@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679357426@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679357426@datadoghq.com\",\"uuid\":\"c811af38-c77c-11ed-9949-f20a22a554f2\",\"email\":\"test-go-create_an_incident_returns_created_response-1679357426@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673309503@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673309503@datadoghq.com\",\"uuid\":\"c8bbd0d2-53af-4fc0-a392-1c1c0871fb49\",\"email\":\"test-go-create_an_incident_returns_created_response-1673309503@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671754265@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671754265@datadoghq.com\",\"uuid\":\"c8e6753d-801c-40b5-9dd8-c98feae31df9\",\"email\":\"test-go-create_an_incident_returns_created_response-1671754265@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679184770@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679184770@datadoghq.com\",\"uuid\":\"c960ccca-c5ea-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679184770@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926103@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926103@datadoghq.com\",\"uuid\":\"c9f53cd7-2f1e-4491-ae28-796ace9db6fc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926103@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670371766@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670371766@datadoghq.com\",\"uuid\":\"cac0f70c-c327-4965-b9f9-62190c96b0dc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670371766@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676247015@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676247015@datadoghq.com\",\"uuid\":\"caf6ae98-ab32-11ed-bddd-722daf28c490\",\"email\":\"test-go-create_an_incident_returns_created_response-1676247015@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673223085@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673223085@datadoghq.com\",\"uuid\":\"cc0a6e87-ce4b-4313-b0a8-8b40179bcb68\",\"email\":\"test-go-create_an_incident_returns_created_response-1673223085@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671235873@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671235873@datadoghq.com\",\"uuid\":\"cc1891b1-9a95-4af6-98d7-95ac53c4e6ff\",\"email\":\"test-go-create_an_incident_returns_created_response-1671235873@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679184781@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679184781@datadoghq.com\",\"uuid\":\"cf9a8e87-c5ea-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-create_an_incident_returns_created_response-1679184781@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670943352@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670943352@datadoghq.com\",\"uuid\":\"d0330853-c731-4097-a353-fd1014abde80\",\"email\":\"test-go-create_an_incident_returns_created_response-1670943352@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667175027@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667175027@datadoghq.com\",\"uuid\":\"d1d53f95-4adc-4e7b-896b-1e75ba345e9f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667175027@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675728631@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675728631@datadoghq.com\",\"uuid\":\"d5aa246d-a67b-11ed-9567-ba00348e1a7a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675728631@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677370168@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677370168@datadoghq.com\",\"uuid\":\"d654fb42-b569-11ed-827a-8e2840b25db2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677370168@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676851766@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676851766@datadoghq.com\",\"uuid\":\"d6780612-b0b2-11ed-a714-aa504cceab29\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676851766@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672186280@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672186280@datadoghq.com\",\"uuid\":\"d70a12ec-c10f-47dd-9892-cebecfd6ffb0\",\"email\":\"test-go-create_an_incident_returns_created_response-1672186280@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670199046@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670199046@datadoghq.com\",\"uuid\":\"d968eb97-03c1-436e-835f-9ed06d352716\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670199046@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670890367@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670890367@datadoghq.com\",\"uuid\":\"d9a19936-2b5c-4fbc-b802-7a3dbf639c1b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670890367@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675728639@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675728639@datadoghq.com\",\"uuid\":\"da3ac6ee-a67b-11ed-bd1e-766989ec1239\",\"email\":\"test-go-create_an_incident_returns_created_response-1675728639@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677370176@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677370176@datadoghq.com\",\"uuid\":\"dac22963-b569-11ed-a797-c2fe525de487\",\"email\":\"test-go-create_an_incident_returns_created_response-1677370176@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676851774@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676851774@datadoghq.com\",\"uuid\":\"db0404af-b0b2-11ed-84e6-a6c768ad21b4\",\"email\":\"test-go-create_an_incident_returns_created_response-1676851774@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673136657@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673136657@datadoghq.com\",\"uuid\":\"dcbcad43-008c-4c4c-8c35-ee5ade081d9e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673136657@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670026261@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670026261@datadoghq.com\",\"uuid\":\"ddd99aa3-c7e5-4dff-8099-10588153e164\",\"email\":\"test-go-create_an_incident_returns_created_response-1670026261@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671495031@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671495031@datadoghq.com\",\"uuid\":\"de662b96-845c-45b9-a359-b0b763a45a61\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671495031@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670717454@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670717454@datadoghq.com\",\"uuid\":\"def01997-ae71-49bc-93ea-ff9287d606c7\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670717454@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670112672@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670112672@datadoghq.com\",\"uuid\":\"e09cd088-50f3-4a99-8222-0917d760f4fb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670112672@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670924664@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670924664@datadoghq.com\",\"uuid\":\"e0a87080-eb76-45db-9230-ed4ef629b0d2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670924664@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678839065@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678839065@datadoghq.com\",\"uuid\":\"e1073fac-c2c5-11ed-b4e0-566658a732f8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678839065@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668730257@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668730257@datadoghq.com\",\"uuid\":\"e21b3798-5777-4777-919d-e5ff6fce422a\",\"email\":\"test-go-create_an_incident_returns_created_response-1668730257@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667347836@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667347836@datadoghq.com\",\"uuid\":\"e2267bdc-1a12-4210-869e-60d0faa477bd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667347836@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669248667@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669248667@datadoghq.com\",\"uuid\":\"e42f7f54-0e83-4c40-b112-887402a7ba6b\",\"email\":\"test-go-create_an_incident_returns_created_response-1669248667@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669335019@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669335019@datadoghq.com\",\"uuid\":\"e485ea7a-9a64-44dd-a774-d3f31e869f6e\",\"email\":\"test-go-create_an_incident_returns_created_response-1669335019@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673309495@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673309495@datadoghq.com\",\"uuid\":\"e6615793-c00d-45e8-b8d6-ec1c96309d81\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673309495@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669939809@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669939809@datadoghq.com\",\"uuid\":\"e6d0a0d2-e642-4b20-aa66-34ab638f4d9f\",\"email\":\"test-go-create_an_incident_returns_created_response-1669939809@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678839075@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678839075@datadoghq.com\",\"uuid\":\"e7113f68-c2c5-11ed-b4e0-566658a732f8\",\"email\":\"test-go-create_an_incident_returns_created_response-1678839075@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672531837@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672531837@datadoghq.com\",\"uuid\":\"e7403ce3-c0a2-4bae-8823-45a21c310656\",\"email\":\"test-go-create_an_incident_returns_created_response-1672531837@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678320674@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678320674@datadoghq.com\",\"uuid\":\"e7d1ba87-be0e-11ed-be0d-5609971d255a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678320674@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672618346@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672618346@datadoghq.com\",\"uuid\":\"e84ce941-4c3d-4b79-b736-619897785a82\",\"email\":\"test-go-create_an_incident_returns_created_response-1672618346@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668298272@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668298272@datadoghq.com\",\"uuid\":\"e9b00493-1235-49f2-b229-06ee3afc79b0\",\"email\":\"test-go-create_an_incident_returns_created_response-1668298272@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676160739@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676160739@datadoghq.com\",\"uuid\":\"e9f6df6e-aa69-11ed-8972-1eb0f4245ee5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676160739@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677629617@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677629617@datadoghq.com\",\"uuid\":\"e9ffa5e5-b7c5-11ed-a50e-226546b1da54\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677629617@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679443813@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679443813@datadoghq.com\",\"uuid\":\"eb03f9a6-c845-11ed-a1e1-c6385b25b934\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679443813@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678407009@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678407009@datadoghq.com\",\"uuid\":\"eb834f42-bed7-11ed-a89b-0ebbb850607d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678407009@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674605534@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674605534@datadoghq.com\",\"uuid\":\"ebb5a53d-9c44-11ed-97cc-a697d2568caf\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674605534@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669507847@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669507847@datadoghq.com\",\"uuid\":\"ebf0848a-6b21-4736-ad2a-d93daf59fd15\",\"email\":\"test-go-create_an_incident_returns_created_response-1669507847@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671322279@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671322279@datadoghq.com\",\"uuid\":\"ebf23d4b-53c8-467a-bbb0-636c11b3ffee\",\"email\":\"test-go-create_an_incident_returns_created_response-1671322279@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667606989@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667606989@datadoghq.com\",\"uuid\":\"ec1ed77b-1d70-4727-b2ac-f478a37e3b8c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667606989@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678320684@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678320684@datadoghq.com\",\"uuid\":\"edaec5b4-be0e-11ed-be0d-5609971d255a\",\"email\":\"test-go-create_an_incident_returns_created_response-1678320684@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671062990@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671062990@datadoghq.com\",\"uuid\":\"ee1307d6-f262-47be-b312-0f77517487b8\",\"email\":\"test-go-create_an_incident_returns_created_response-1671062990@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679875893@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679875893@datadoghq.com\",\"uuid\":\"ee8bd235-cc33-11ed-b285-a2593f21064b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679875893@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676160746@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676160746@datadoghq.com\",\"uuid\":\"eeac3af0-aa69-11ed-bddd-722daf28c490\",\"email\":\"test-go-create_an_incident_returns_created_response-1676160746@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677629625@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677629625@datadoghq.com\",\"uuid\":\"eeb210e2-b7c5-11ed-8e20-4a014c845df9\",\"email\":\"test-go-create_an_incident_returns_created_response-1677629625@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672272657@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672272657@datadoghq.com\",\"uuid\":\"efc56647-04f9-430b-abcd-78fd73135dc9\",\"email\":\"test-go-create_an_incident_returns_created_response-1672272657@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674605542@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674605542@datadoghq.com\",\"uuid\":\"f090690e-9c44-11ed-bd03-d63a15ea0a5e\",\"email\":\"test-go-create_an_incident_returns_created_response-1674605542@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674173469@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674173469@datadoghq.com\",\"uuid\":\"f1130564-9856-11ed-8928-461f5552e193\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674173469@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679443823@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679443823@datadoghq.com\",\"uuid\":\"f116f34c-c845-11ed-8b17-fe25dd6b2d5d\",\"email\":\"test-go-create_an_incident_returns_created_response-1679443823@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678407019@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678407019@datadoghq.com\",\"uuid\":\"f182abdf-bed7-11ed-b4e0-566658a732f8\",\"email\":\"test-go-create_an_incident_returns_created_response-1678407019@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677283885@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677283885@datadoghq.com\",\"uuid\":\"f185aa8c-b4a0-11ed-a797-c2fe525de487\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677283885@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677974947@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677974947@datadoghq.com\",\"uuid\":\"f24bcc61-bae9-11ed-a3f2-e6671bdc78dd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677974947@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677808304@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677808304@datadoghq.com\",\"uuid\":\"f352f9e3-b965-11ed-b5bf-a606768bc197\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677808304@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679875903@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679875903@datadoghq.com\",\"uuid\":\"f48dd27a-cc33-11ed-9f7f-0e85fe61e6ee\",\"email\":\"test-go-create_an_incident_returns_created_response-1679875903@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675123953@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675123953@datadoghq.com\",\"uuid\":\"f59374fc-a0fb-11ed-a5e8-da207d422d98\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675123953@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674173477@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674173477@datadoghq.com\",\"uuid\":\"f5a1e00e-9856-11ed-a432-b611e40f0c37\",\"email\":\"test-go-create_an_incident_returns_created_response-1674173477@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675296611@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675296611@datadoghq.com\",\"uuid\":\"f5d92ebe-a28d-11ed-b39d-128f55cb4249\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675296611@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677283893@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677283893@datadoghq.com\",\"uuid\":\"f611f5ab-b4a0-11ed-a797-c2fe525de487\",\"email\":\"test-go-create_an_incident_returns_created_response-1677283893@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670598789@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670598789@datadoghq.com\",\"uuid\":\"f6a52e1f-a5fc-4498-b0f2-69fee17a4142\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670598789@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677974954@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677974954@datadoghq.com\",\"uuid\":\"f6c58d1e-bae9-11ed-8f91-4668bdad4d01\",\"email\":\"test-go-create_an_incident_returns_created_response-1677974954@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677808311@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677808311@datadoghq.com\",\"uuid\":\"f7f12039-b965-11ed-b5bf-a606768bc197\",\"email\":\"test-go-create_an_incident_returns_created_response-1677808311@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668211896@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668211896@datadoghq.com\",\"uuid\":\"f8313d55-863c-4872-8f01-5a74e04418d2\",\"email\":\"test-go-create_an_incident_returns_created_response-1668211896@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668816640@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668816640@datadoghq.com\",\"uuid\":\"f92f0fb9-f3fd-42ff-955a-744cc01ee9a4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668816640@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670928947@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670928947@datadoghq.com\",\"uuid\":\"f9e94170-240d-43ed-a3e4-dec65a38531b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670928947@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675123961@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675123961@datadoghq.com\",\"uuid\":\"fa40ced7-a0fb-11ed-a5e3-d6024dc128f7\",\"email\":\"test-go-create_an_incident_returns_created_response-1675123961@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675296619@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675296619@datadoghq.com\",\"uuid\":\"fa6d1a19-a28d-11ed-9c57-8a8107f52a6e\",\"email\":\"test-go-create_an_incident_returns_created_response-1675296619@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677888634@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677888634@datadoghq.com\",\"uuid\":\"fbd2af3f-ba20-11ed-a3f2-e6671bdc78dd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677888634@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670603299@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670603299@datadoghq.com\",\"uuid\":\"fc061455-8536-4ea0-8a7c-d6bd072c5b89\",\"email\":\"test-go-create_an_incident_returns_created_response-1670603299@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671408597@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671408597@datadoghq.com\",\"uuid\":\"fd20bff8-5c0c-4eb2-941b-c0d7669f996a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671408597@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670603854@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670603854@datadoghq.com\",\"uuid\":\"fdef06c9-5a21-44bb-afb4-14b055649e5b\",\"email\":\"test-go-create_an_incident_returns_created_response-1670603854@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667866318@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667866318@datadoghq.com\",\"uuid\":\"fe4f352d-a8b5-435e-a18c-9914eb88c865\",\"email\":\"test-go-create_an_incident_returns_created_response-1667866318@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926593@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926593@datadoghq.com\",\"uuid\":\"ff2e2858-cf28-44c7-98aa-be52cef329be\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926593@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675815030@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675815030@datadoghq.com\",\"uuid\":\"ff9a7c79-a744-11ed-9567-ba00348e1a7a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675815030@datadoghq.com\"}]},\"incidents\":[{\"data\":{\"type\":\"incidents\",\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[{\"type\":\"incident_integrations\",\"id\":\"11e66957-ce29-5a6c-9a73-fdb1a042d817\"}]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]},\"attachments\":{\"data\":[]}},\"attributes\":{\"fields\":{\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"summary\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"name\":\"CI Account\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}}},\"time_to_internal_response\":0,\"public_id\":128959,\"customer_impact_end\":null,\"customer_impacted\":false,\"detected\":\"2023-03-28T00:12:47+00:00\",\"severity\":\"UNKNOWN\",\"time_to_resolve\":0,\"title\":\"Test-Go-Update_an_existing_incident_integration_metadata_returns_OK_response-1679962367\",\"created_by_uuid\":null,\"time_to_repair\":0,\"customer_impact_start\":null,\"created\":\"2023-03-28T00:12:47+00:00\",\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1679962367,\"end\":null}]}}},\"time_to_detect\":0,\"customer_impact_scope\":\"\",\"modified\":\"2023-03-28T00:12:47+00:00\",\"resolved\":null,\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"name\":\"CI Account\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}}},\"creation_idempotency_key\":null,\"state\":\"active\",\"visibility\":\"organization\",\"commander\":null,\"case_id\":null,\"last_modified_by_uuid\":null,\"notification_handles\":null,\"customer_impact_duration\":0},\"id\":\"a262514b-6262-5be0-a72e-f0afd52b71c7\"}}]},\"relationships\":{\"incidents_relationship\":{\"data\":[{\"type\":\"incidents\",\"id\":\"a262514b-6262-5be0-a72e-f0afd52b71c7\"},{\"type\":\"incidents\",\"id\":\"75ed2002-ea12-51c8-a90f-fc5b733e80cb\"}]}}},\"included\":[{\"type\":\"incidents\",\"id\":\"a262514b-6262-5be0-a72e-f0afd52b71c7\",\"attributes\":{\"public_id\":128959,\"title\":\"Test-Go-Update_an_existing_incident_integration_metadata_returns_OK_response-1679962367\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"name\":\"CI Account\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-03-28T00:12:47+00:00\",\"modified\":\"2023-03-28T00:12:47+00:00\",\"commander\":null,\"detected\":\"2023-03-28T00:12:47+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"name\":\"CI Account\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"fields\":{\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"summary\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1679962367,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[{\"type\":\"incident_integrations\",\"id\":\"11e66957-ce29-5a6c-9a73-fdb1a042d817\"}]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}],\"meta\":{\"pagination\":{\"offset\":2,\"next_offset\":4,\"size\":2}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 28 Mar 2023 07:55:36 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/incidents/search?query=state%3A%28active%20OR%20stable%20OR%20resolved%29&page%5Bsize%5D=2" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incidents_search_results\",\"attributes\":{\"total\":1703,\"facets\":{\"severity\":[{\"name\":\"UNKNOWN\",\"count\":1703},{\"name\":\"SEV-1\",\"count\":0},{\"name\":\"SEV-2\",\"count\":0},{\"name\":\"SEV-3\",\"count\":0},{\"name\":\"SEV-4\",\"count\":0},{\"name\":\"SEV-5\",\"count\":0}],\"time_to_repair\":[{\"name\":\"time_to_repair\",\"aggregates\":{\"min\":null,\"max\":null}}],\"responder\":[{\"name\":\"CI Account\",\"count\":844,\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"},{\"name\":\"frog@datadoghq.com\",\"count\":107,\"handle\":\"frog@datadoghq.com\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"email\":\"frog@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677888642@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677888642@datadoghq.com\",\"uuid\":\"00a080f5-ba21-11ed-a3f2-e6671bdc78dd\",\"email\":\"test-go-create_an_incident_returns_created_response-1677888642@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672877473@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672877473@datadoghq.com\",\"uuid\":\"01dc2b21-3194-414a-b8e8-58704603421b\",\"email\":\"test-go-create_an_incident_returns_created_response-1672877473@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678925450@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678925450@datadoghq.com\",\"uuid\":\"02a54dc1-c38f-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678925450@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672013445@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672013445@datadoghq.com\",\"uuid\":\"03e16d56-e954-4e9a-b9da-22dffdfa1f24\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672013445@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666981015@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666981015@datadoghq.com\",\"uuid\":\"03e65d16-b7bb-456a-a5da-bf31dffbdf4d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666981015@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675815038@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675815038@datadoghq.com\",\"uuid\":\"0423cfd5-a745-11ed-9567-ba00348e1a7a\",\"email\":\"test-go-create_an_incident_returns_created_response-1675815038@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669335011@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669335011@datadoghq.com\",\"uuid\":\"04c4feaa-1864-4167-a48b-e156181d50d8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669335011@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669248659@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669248659@datadoghq.com\",\"uuid\":\"04f0d8b5-1959-43fb-85b5-782682062c4e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669248659@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673655101@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673655101@datadoghq.com\",\"uuid\":\"05d83a07-93a0-11ed-bf65-7630e111ac00\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673655101@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666743047@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666743047@datadoghq.com\",\"uuid\":\"060c37c0-93a9-48c0-90bc-dee85b66a7c7\",\"email\":\"test-go-create_an_incident_returns_created_response-1666743047@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678925461@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678925461@datadoghq.com\",\"uuid\":\"08f8d3b7-c38f-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1678925461@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670112680@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670112680@datadoghq.com\",\"uuid\":\"09010d4b-7635-4553-a7b9-973f5f9cea5b\",\"email\":\"test-go-create_an_incident_returns_created_response-1670112680@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673655109@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673655109@datadoghq.com\",\"uuid\":\"0a679024-93a0-11ed-aaf8-3230475e674b\",\"email\":\"test-go-create_an_incident_returns_created_response-1673655109@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667434335@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667434335@datadoghq.com\",\"uuid\":\"0ebbf763-be8f-40bb-8ee7-d37b729a5eed\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667434335@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668384644@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668384644@datadoghq.com\",\"uuid\":\"1193cff3-b670-4e08-a535-346105dcaf9f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668384644@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675210330@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675210330@datadoghq.com\",\"uuid\":\"1205474f-a1c5-11ed-b767-5ec4f5b84c10\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675210330@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674691927@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674691927@datadoghq.com\",\"uuid\":\"122c89ad-9d0e-11ed-9f54-862b4cfe184c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674691927@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668643799@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668643799@datadoghq.com\",\"uuid\":\"12d78e1b-0784-46f3-99ac-7e5db2d5c92e\",\"email\":\"test-go-create_an_incident_returns_created_response-1668643799@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671667884@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671667884@datadoghq.com\",\"uuid\":\"1310687d-9adb-47ae-ad7a-066c9e525f8b\",\"email\":\"test-go-create_an_incident_returns_created_response-1671667884@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673741454@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673741454@datadoghq.com\",\"uuid\":\"142ba3fc-9469-11ed-a365-8ec8661800c6\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673741454@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679011809@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679011809@datadoghq.com\",\"uuid\":\"1431aabf-c458-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679011809@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670927771@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670927771@datadoghq.com\",\"uuid\":\"14344412-a7b1-4044-89f7-8139727432f6\",\"email\":\"test-go-create_an_incident_returns_created_response-1670927771@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667261554@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667261554@datadoghq.com\",\"uuid\":\"1608c46d-bee2-46a5-be87-49af2b889db5\",\"email\":\"test-go-create_an_incident_returns_created_response-1667261554@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670929702@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670929702@datadoghq.com\",\"uuid\":\"161217ca-a0b5-418c-b0e5-d16edddd8258\",\"email\":\"test-go-create_an_incident_returns_created_response-1670929702@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675901397@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675901397@datadoghq.com\",\"uuid\":\"1628d4a0-a80e-11ed-af43-4e64a4a39547\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675901397@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670928949@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670928949@datadoghq.com\",\"uuid\":\"16754b18-1887-4f22-ae44-4a86e9bfc749\",\"email\":\"test-go-create_an_incident_returns_created_response-1670928949@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675210337@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675210337@datadoghq.com\",\"uuid\":\"1682f280-a1c5-11ed-ad87-fecda9c428d5\",\"email\":\"test-go-create_an_incident_returns_created_response-1675210337@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674691935@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674691935@datadoghq.com\",\"uuid\":\"16bf2921-9d0e-11ed-aff1-fa6399bf96fd\",\"email\":\"test-go-create_an_incident_returns_created_response-1674691935@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671754258@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671754258@datadoghq.com\",\"uuid\":\"18ada30d-ad3e-4ba2-911d-931233a75aa0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671754258@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679962293@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679962293@datadoghq.com\",\"uuid\":\"18cfb810-ccfd-11ed-a201-de0443f18a2a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679962293@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673741462@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673741462@datadoghq.com\",\"uuid\":\"18e9a7f7-9469-11ed-aaf8-3230475e674b\",\"email\":\"test-go-create_an_incident_returns_created_response-1673741462@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679011819@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679011819@datadoghq.com\",\"uuid\":\"1a8c2817-c458-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1679011819@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675901404@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675901404@datadoghq.com\",\"uuid\":\"1aa50cab-a80e-11ed-bc4c-ea1adbbc0986\",\"email\":\"test-go-create_an_incident_returns_created_response-1675901404@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670285407@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670285407@datadoghq.com\",\"uuid\":\"1bb87a6c-da01-4798-8bd0-5cd9918f641f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670285407@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668903124@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668903124@datadoghq.com\",\"uuid\":\"1bcb111e-ea64-4d60-9b77-ae5e7f22f157\",\"email\":\"test-go-create_an_incident_returns_created_response-1668903124@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668039051@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668039051@datadoghq.com\",\"uuid\":\"1c54a963-17f1-4ee8-a2b0-7fd07c3b2c68\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668039051@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674259871@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674259871@datadoghq.com\",\"uuid\":\"1c631d44-9920-11ed-8c68-2a913616fde8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674259871@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677024542@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677024542@datadoghq.com\",\"uuid\":\"1ce329fb-b245-11ed-8fbc-ca7794d66904\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677024542@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671149452@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671149452@datadoghq.com\",\"uuid\":\"1ebe2367-3eda-464c-9571-edd444620682\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671149452@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676419814@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676419814@datadoghq.com\",\"uuid\":\"1f019dde-acc5-11ed-bcdd-a68779fca942\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676419814@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679962303@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679962303@datadoghq.com\",\"uuid\":\"1f034a5d-ccfd-11ed-aef0-a6405a9b4791\",\"email\":\"test-go-create_an_incident_returns_created_response-1679962303@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672618338@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672618338@datadoghq.com\",\"uuid\":\"1fd5cef4-df5c-4609-be9a-11bf76483cfc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672618338@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666915819@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666915819@datadoghq.com\",\"uuid\":\"20be4a8a-b215-4bc0-b2fa-31c27e0a642b\",\"email\":\"test-go-create_an_incident_returns_created_response-1666915819@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671840707@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671840707@datadoghq.com\",\"uuid\":\"20d2001a-92b4-4d03-a5cb-73617f27b723\",\"email\":\"test-go-create_an_incident_returns_created_response-1671840707@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674259878@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674259878@datadoghq.com\",\"uuid\":\"20dbaf3d-9920-11ed-8c68-2a913616fde8\",\"email\":\"test-go-create_an_incident_returns_created_response-1674259878@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677024549@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677024549@datadoghq.com\",\"uuid\":\"214ed4fd-b245-11ed-8fbc-ca7794d66904\",\"email\":\"test-go-create_an_incident_returns_created_response-1677024549@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676419822@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676419822@datadoghq.com\",\"uuid\":\"2375265b-acc5-11ed-9a7e-46e4eb8f12a7\",\"email\":\"test-go-create_an_incident_returns_created_response-1676419822@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670594546@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670594546@datadoghq.com\",\"uuid\":\"2399be00-e683-4133-aec2-7ab8fe73779e\",\"email\":\"test-go-create_an_incident_returns_created_response-1670594546@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673050262@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673050262@datadoghq.com\",\"uuid\":\"23a293e3-086a-4f8e-8fa6-a2555557309e\",\"email\":\"test-go-create_an_incident_returns_created_response-1673050262@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667175034@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667175034@datadoghq.com\",\"uuid\":\"24f932ba-4cd2-498e-8261-64f6ec161bcb\",\"email\":\"test-go-create_an_incident_returns_created_response-1667175034@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677456630@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677456630@datadoghq.com\",\"uuid\":\"25538030-b633-11ed-827a-8e2840b25db2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677456630@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672013452@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672013452@datadoghq.com\",\"uuid\":\"2593795d-b0f5-46f9-a852-34d3c466ce0a\",\"email\":\"test-go-create_an_incident_returns_created_response-1672013452@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667520677@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667520677@datadoghq.com\",\"uuid\":\"26287ddb-5d1c-400d-96dc-a1d3bb09f880\",\"email\":\"test-go-create_an_incident_returns_created_response-1667520677@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679616573@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679616573@datadoghq.com\",\"uuid\":\"27c16c1b-c9d8-11ed-b840-0ed4b0ca293a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679616573@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676938232@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676938232@datadoghq.com\",\"uuid\":\"281184f3-b17c-11ed-bce8-0a557ccee039\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676938232@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668557513@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668557513@datadoghq.com\",\"uuid\":\"2871bc57-733f-4f85-b3ef-440569202326\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668557513@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668471095@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668471095@datadoghq.com\",\"uuid\":\"289f8508-500c-472e-a9d4-71f30f1cf151\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668471095@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671667877@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671667877@datadoghq.com\",\"uuid\":\"28ae893d-4b70-420d-96dc-f82066a0642f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671667877@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672531830@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672531830@datadoghq.com\",\"uuid\":\"291b8416-a87d-4e56-a93e-9d430d5c4996\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672531830@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677456637@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677456637@datadoghq.com\",\"uuid\":\"29cd6809-b633-11ed-827a-8e2840b25db2\",\"email\":\"test-go-create_an_incident_returns_created_response-1677456637@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678493444@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678493444@datadoghq.com\",\"uuid\":\"2acb4dc0-bfa1-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678493444@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671927057@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671927057@datadoghq.com\",\"uuid\":\"2b0ac046-39c8-4bf4-a00a-deb089bbbc0c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671927057@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679530252@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679530252@datadoghq.com\",\"uuid\":\"2c9256b5-c90f-11ed-a1f3-7afc45c1981c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679530252@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676938239@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676938239@datadoghq.com\",\"uuid\":\"2c977e11-b17c-11ed-bce8-0a557ccee039\",\"email\":\"test-go-create_an_incident_returns_created_response-1676938239@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679616583@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679616583@datadoghq.com\",\"uuid\":\"2d99557e-c9d8-11ed-a171-361a8cacd441\",\"email\":\"test-go-create_an_incident_returns_created_response-1679616583@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672445562@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672445562@datadoghq.com\",\"uuid\":\"2db31432-b497-42b8-80b7-fef85898a2a8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672445562@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668039059@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668039059@datadoghq.com\",\"uuid\":\"2ebfffc1-a7da-4558-a507-038442f7ee79\",\"email\":\"test-go-create_an_incident_returns_created_response-1668039059@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669767030@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669767030@datadoghq.com\",\"uuid\":\"2eca0bd9-db8e-4c5d-91b7-2ccddffd5764\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669767030@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671235865@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671235865@datadoghq.com\",\"uuid\":\"2fc6258a-7492-43c0-accf-24528cbbfea1\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671235865@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669680686@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669680686@datadoghq.com\",\"uuid\":\"302a3d05-c61c-41d8-ad31-8821b764acf7\",\"email\":\"test-go-create_an_incident_returns_created_response-1669680686@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678493454@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678493454@datadoghq.com\",\"uuid\":\"30e3000f-bfa1-11ed-9949-f20a22a554f2\",\"email\":\"test-go-create_an_incident_returns_created_response-1678493454@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676333515@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676333515@datadoghq.com\",\"uuid\":\"30e43861-abfc-11ed-a6fc-0e9b7fe457ae\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676333515@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669680678@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669680678@datadoghq.com\",\"uuid\":\"31ad2923-926d-49af-ad5b-d8b120e6edc8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669680678@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679530263@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679530263@datadoghq.com\",\"uuid\":\"32d40acb-c90f-11ed-a1f3-7afc45c1981c\",\"email\":\"test-go-create_an_incident_returns_created_response-1679530263@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671581470@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671581470@datadoghq.com\",\"uuid\":\"34377484-e597-4d4c-bccf-88e919b6d549\",\"email\":\"test-go-create_an_incident_returns_created_response-1671581470@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667693449@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667693449@datadoghq.com\",\"uuid\":\"34e92512-7c24-4704-816e-4fadc9b5eff7\",\"email\":\"test-go-create_an_incident_returns_created_response-1667693449@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668211888@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668211888@datadoghq.com\",\"uuid\":\"3578dcc8-088a-4320-8c27-7f80f1bba4cb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668211888@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672186272@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672186272@datadoghq.com\",\"uuid\":\"3584000d-6337-4c9e-955e-e25514b83be0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672186272@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676333523@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676333523@datadoghq.com\",\"uuid\":\"35ba7493-abfc-11ed-b5cd-eec9514dd597\",\"email\":\"test-go-create_an_incident_returns_created_response-1676333523@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678579793@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678579793@datadoghq.com\",\"uuid\":\"367e08f8-c06a-11ed-b4e0-566658a732f8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678579793@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671062982@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671062982@datadoghq.com\",\"uuid\":\"3883d9fe-1678-452e-8801-11a374f9fdae\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671062982@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667002244@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667002244@datadoghq.com\",\"uuid\":\"39627294-7a14-4e71-b5ff-5221e68b6fbe\",\"email\":\"test-go-create_an_incident_returns_created_response-1667002244@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671581462@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671581462@datadoghq.com\",\"uuid\":\"3bc8406a-5790-4582-82f5-08e330921b9b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671581462@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668989431@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668989431@datadoghq.com\",\"uuid\":\"3c28c823-158e-46c2-8dce-06f1dace90e8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668989431@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673050254@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673050254@datadoghq.com\",\"uuid\":\"3c7509b1-82af-4d25-b1e5-3e8aaa107f0a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673050254@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678579803@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678579803@datadoghq.com\",\"uuid\":\"3c7f71d2-c06a-11ed-a89b-0ebbb850607d\",\"email\":\"test-go-create_an_incident_returns_created_response-1678579803@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669162240@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669162240@datadoghq.com\",\"uuid\":\"3ce20d84-5e75-45a5-b7b9-971549a50cf4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669162240@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670458180@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670458180@datadoghq.com\",\"uuid\":\"40d8c19a-8c6a-4f54-9444-aba7b6798064\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670458180@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678061409@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678061409@datadoghq.com\",\"uuid\":\"41da9ce5-bbb3-11ed-82a6-028cebedd0cf\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678061409@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673136665@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673136665@datadoghq.com\",\"uuid\":\"426feaae-7bf3-4b2c-bc8c-0c79056d6d8d\",\"email\":\"test-go-create_an_incident_returns_created_response-1673136665@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672099886@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672099886@datadoghq.com\",\"uuid\":\"431624c4-d099-4dfb-b701-33a60bba6ebe\",\"email\":\"test-go-create_an_incident_returns_created_response-1672099886@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669421482@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669421482@datadoghq.com\",\"uuid\":\"442dd264-b729-473b-a51d-4b141068fe3d\",\"email\":\"test-go-create_an_incident_returns_created_response-1669421482@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603297@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603297@datadoghq.com\",\"uuid\":\"446cd2d8-630c-4fe9-8901-fb85bd22426d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603297@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678061417@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678061417@datadoghq.com\",\"uuid\":\"467de14f-bbb3-11ed-82a6-028cebedd0cf\",\"email\":\"test-go-create_an_incident_returns_created_response-1678061417@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668989438@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668989438@datadoghq.com\",\"uuid\":\"46d62900-016b-463c-9fff-c8b4f946ce5c\",\"email\":\"test-go-create_an_incident_returns_created_response-1668989438@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675469405@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675469405@datadoghq.com\",\"uuid\":\"46e3c6ef-a420-11ed-b1f8-56250c47f0b3\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675469405@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670371777@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670371777@datadoghq.com\",\"uuid\":\"48f7337b-3304-46fc-9e88-23b4dc5d24cc\",\"email\":\"test-go-create_an_incident_returns_created_response-1670371777@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670943350@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670943350@datadoghq.com\",\"uuid\":\"4b432133-ba1b-4edc-ab57-c0250963f250\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670943350@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679098230@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679098230@datadoghq.com\",\"uuid\":\"4b5ba977-c521-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679098230@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675469412@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675469412@datadoghq.com\",\"uuid\":\"4b68a1e2-a420-11ed-b1f8-56250c47f0b3\",\"email\":\"test-go-create_an_incident_returns_created_response-1675469412@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668816648@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668816648@datadoghq.com\",\"uuid\":\"4e5cb15e-f18e-43ba-b115-2a4e62736739\",\"email\":\"test-go-create_an_incident_returns_created_response-1668816648@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603851@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603851@datadoghq.com\",\"uuid\":\"4e6b1824-dc1e-4691-8abd-5ffb968da7eb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603851@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669421474@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669421474@datadoghq.com\",\"uuid\":\"4fdb4327-3660-4aeb-b403-7f7939493f27\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669421474@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670458188@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670458188@datadoghq.com\",\"uuid\":\"50d5408a-1894-4173-9fa1-32209009d9b1\",\"email\":\"test-go-create_an_incident_returns_created_response-1670458188@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679098240@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679098240@datadoghq.com\",\"uuid\":\"5141e45c-c521-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-create_an_incident_returns_created_response-1679098240@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675383094@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675383094@datadoghq.com\",\"uuid\":\"520007b9-a357-11ed-acb5-6e0b90178632\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675383094@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670803787@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670803787@datadoghq.com\",\"uuid\":\"521a78f7-573e-4b67-8e2c-d0dd5d91a265\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670803787@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666743039@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666743039@datadoghq.com\",\"uuid\":\"54b84ea9-ae9f-4159-b226-aba3b432a792\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666743039@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674346295@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674346295@datadoghq.com\",\"uuid\":\"551c3a48-99e9-11ed-a607-1684d7f553f6\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674346295@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678147771@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678147771@datadoghq.com\",\"uuid\":\"557fb06e-bc7c-11ed-be39-625d488bce09\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678147771@datadoghq.com\"},{\"name\":\"test-add_commander_to_an_incident_returns_ok_response-1677691218@datadoghq.com\",\"count\":1,\"handle\":\"test-add_commander_to_an_incident_returns_ok_response-1677691218@datadoghq.com\",\"uuid\":\"56afe5b0-b855-11ed-a706-064bc8586212\",\"email\":\"test-add_commander_to_an_incident_returns_ok_response-1677691218@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675383103@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675383103@datadoghq.com\",\"uuid\":\"56d1cddc-a357-11ed-95c6-eefcd7f14d98\",\"email\":\"test-go-create_an_incident_returns_created_response-1675383103@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670929700@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670929700@datadoghq.com\",\"uuid\":\"5705f818-933e-4ef4-818c-615b06f80fd1\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670929700@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668557521@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668557521@datadoghq.com\",\"uuid\":\"577067f0-c41d-4928-8964-0f7725e8cf68\",\"email\":\"test-go-create_an_incident_returns_created_response-1668557521@datadoghq.com\"},{\"name\":\"test-create_an_incident_returns_created_response-1677691220@datadoghq.com\",\"count\":1,\"handle\":\"test-create_an_incident_returns_created_response-1677691220@datadoghq.com\",\"uuid\":\"57e9dbb7-b855-11ed-ab26-8e492650c256\",\"email\":\"test-create_an_incident_returns_created_response-1677691220@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679702983@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679702983@datadoghq.com\",\"uuid\":\"58287ff7-caa1-11ed-81eb-8227c2cf9828\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679702983@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666829448@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666829448@datadoghq.com\",\"uuid\":\"586e086f-1e29-4689-99b6-641c3218b0a8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666829448@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674346302@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674346302@datadoghq.com\",\"uuid\":\"59b0d36c-99e9-11ed-8968-92ec5048e27c\",\"email\":\"test-go-create_an_incident_returns_created_response-1674346302@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667261546@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667261546@datadoghq.com\",\"uuid\":\"59c9cd2e-cd40-4530-ba50-415bce89b133\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667261546@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678147781@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678147781@datadoghq.com\",\"uuid\":\"5b76378d-bc7c-11ed-ba16-0aeab349e953\",\"email\":\"test-go-create_an_incident_returns_created_response-1678147781@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670976638@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670976638@datadoghq.com\",\"uuid\":\"5baf69e4-9bd6-4c76-b552-2bfee88031b5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670976638@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668298265@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668298265@datadoghq.com\",\"uuid\":\"5c4ecf79-7ffb-47ea-9331-687b04ac9df8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668298265@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671840699@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671840699@datadoghq.com\",\"uuid\":\"5ce42d6d-a0b9-4d0f-893b-aa0b8f30ee5c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671840699@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672445570@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672445570@datadoghq.com\",\"uuid\":\"5d11019d-f1dc-468d-a20a-8e64e7af9494\",\"email\":\"test-go-create_an_incident_returns_created_response-1672445570@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670976646@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670976646@datadoghq.com\",\"uuid\":\"5db9c599-b71f-40c6-84d9-8ca8779004e1\",\"email\":\"test-go-create_an_incident_returns_created_response-1670976646@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679702993@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679702993@datadoghq.com\",\"uuid\":\"5e20a7d6-caa1-11ed-b285-a2593f21064b\",\"email\":\"test-go-create_an_incident_returns_created_response-1679702993@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673223078@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673223078@datadoghq.com\",\"uuid\":\"5f3582c4-06d1-43a3-bab9-b7ece49136a4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673223078@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672791107@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672791107@datadoghq.com\",\"uuid\":\"610753d8-8bc4-11ed-94a1-26632eba8bed\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672791107@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677110986@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677110986@datadoghq.com\",\"uuid\":\"614ff267-b30e-11ed-b3d7-ea098e8dc2bb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677110986@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667088640@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667088640@datadoghq.com\",\"uuid\":\"61d88713-957f-4920-8a3b-65f0ccd79b57\",\"email\":\"test-go-create_an_incident_returns_created_response-1667088640@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670026253@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670026253@datadoghq.com\",\"uuid\":\"623452c3-d694-466a-95b9-140a9c44a1ab\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670026253@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672791115@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672791115@datadoghq.com\",\"uuid\":\"65b38b0e-8bc4-11ed-81c7-fed5bfaa3f3d\",\"email\":\"test-go-create_an_incident_returns_created_response-1672791115@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677110993@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677110993@datadoghq.com\",\"uuid\":\"65e049af-b30e-11ed-82a1-e2db47427de5\",\"email\":\"test-go-create_an_incident_returns_created_response-1677110993@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674778401@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674778401@datadoghq.com\",\"uuid\":\"6847d712-9dd7-11ed-967f-12bf3e4c6b0d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674778401@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667520669@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667520669@datadoghq.com\",\"uuid\":\"6887723d-dbde-4969-bba8-e9b3464645ce\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667520669@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678204931@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678204931@datadoghq.com\",\"uuid\":\"6b9e40b1-bd01-11ed-8bd9-4a4655204cc7\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678204931@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667952700@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667952700@datadoghq.com\",\"uuid\":\"6c22fc34-31d7-4085-948b-d862feb447fe\",\"email\":\"test-go-create_an_incident_returns_created_response-1667952700@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676506273@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676506273@datadoghq.com\",\"uuid\":\"6ca38252-ad8e-11ed-9613-3a90352a946f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676506273@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671149459@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671149459@datadoghq.com\",\"uuid\":\"6ccce5fc-d6a8-416d-921b-f883914b67ad\",\"email\":\"test-go-create_an_incident_returns_created_response-1671149459@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674778408@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674778408@datadoghq.com\",\"uuid\":\"6d0c845f-9dd7-11ed-a399-1a75992a86c7\",\"email\":\"test-go-create_an_incident_returns_created_response-1674778408@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669594231@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669594231@datadoghq.com\",\"uuid\":\"6d550b97-297b-43ea-a3dc-85383cf72fba\",\"email\":\"test-go-create_an_incident_returns_created_response-1669594231@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671927065@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671927065@datadoghq.com\",\"uuid\":\"6d7f7052-6ddb-461f-a49f-6cb5fca6b2c8\",\"email\":\"test-go-create_an_incident_returns_created_response-1671927065@datadoghq.com\"},{\"name\":\"test-add_commander_to_an_incident_returns_ok_response-1677691687@datadoghq.com\",\"count\":1,\"handle\":\"test-add_commander_to_an_incident_returns_ok_response-1677691687@datadoghq.com\",\"uuid\":\"6e0e84e3-b856-11ed-ab26-8e492650c256\",\"email\":\"test-add_commander_to_an_incident_returns_ok_response-1677691687@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675987874@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675987874@datadoghq.com\",\"uuid\":\"6ed45bb9-a8d7-11ed-b51e-c2a468ff72a6\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675987874@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670927769@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670927769@datadoghq.com\",\"uuid\":\"6efabec4-24bc-46bd-8f53-e068f03adbf0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670927769@datadoghq.com\"},{\"name\":\"test-create_an_incident_returns_created_response-1677691689@datadoghq.com\",\"count\":1,\"handle\":\"test-create_an_incident_returns_created_response-1677691689@datadoghq.com\",\"uuid\":\"6f41744d-b856-11ed-a706-064bc8586212\",\"email\":\"test-create_an_incident_returns_created_response-1677691689@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670717462@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670717462@datadoghq.com\",\"uuid\":\"70532155-9800-46d9-89ed-bd41347c3dfd\",\"email\":\"test-go-create_an_incident_returns_created_response-1670717462@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676506281@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676506281@datadoghq.com\",\"uuid\":\"713c4001-ad8e-11ed-be7d-0ec0d643006a\",\"email\":\"test-go-create_an_incident_returns_created_response-1676506281@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678204941@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678204941@datadoghq.com\",\"uuid\":\"71cb7181-bd01-11ed-8700-9293738b117d\",\"email\":\"test-go-create_an_incident_returns_created_response-1678204941@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671322271@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671322271@datadoghq.com\",\"uuid\":\"7247d247-e798-4af5-b9ce-7bf786c4d0c7\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671322271@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672359091@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672359091@datadoghq.com\",\"uuid\":\"73546355-1adc-4289-908a-2f6fae7fc9fa\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672359091@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675987882@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675987882@datadoghq.com\",\"uuid\":\"738ccf6d-a8d7-11ed-ad7e-6ed4f1c67dea\",\"email\":\"test-go-create_an_incident_returns_created_response-1675987882@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677543090@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677543090@datadoghq.com\",\"uuid\":\"73a70dc9-b6fc-11ed-a3d7-a2295215c227\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677543090@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669507839@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669507839@datadoghq.com\",\"uuid\":\"7571121d-a654-4df8-9afa-e638f17d53bb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669507839@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674432680@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674432680@datadoghq.com\",\"uuid\":\"76c071c8-9ab2-11ed-8c68-2a913616fde8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674432680@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674864754@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674864754@datadoghq.com\",\"uuid\":\"7715eb6d-9ea0-11ed-8e78-767557a2485a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674864754@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677543098@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677543098@datadoghq.com\",\"uuid\":\"785f915d-b6fc-11ed-ad05-76e4602e1079\",\"email\":\"test-go-create_an_incident_returns_created_response-1677543098@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673395882@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673395882@datadoghq.com\",\"uuid\":\"7ac9b3b9-9144-11ed-82e3-622adeb45fa9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673395882@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674432688@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674432688@datadoghq.com\",\"uuid\":\"7b5907f1-9ab2-11ed-8c68-2a913616fde8\",\"email\":\"test-go-create_an_incident_returns_created_response-1674432688@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672877465@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672877465@datadoghq.com\",\"uuid\":\"7ba05e4d-f9a0-44e2-aa8c-bcda7adac2e5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672877465@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674864762@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674864762@datadoghq.com\",\"uuid\":\"7bc2a11e-9ea0-11ed-8c38-7ad981f4abb4\",\"email\":\"test-go-create_an_incident_returns_created_response-1674864762@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668384652@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668384652@datadoghq.com\",\"uuid\":\"7da5fc01-ccbd-4679-8149-cb22fe402bb3\",\"email\":\"test-go-create_an_incident_returns_created_response-1668384652@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667779824@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667779824@datadoghq.com\",\"uuid\":\"7dd124ba-7343-4882-b700-c44374efa8e3\",\"email\":\"test-go-create_an_incident_returns_created_response-1667779824@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673914292@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673914292@datadoghq.com\",\"uuid\":\"7f3e8ad2-95fb-11ed-b93e-b6681b4e2484\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673914292@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673395889@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673395889@datadoghq.com\",\"uuid\":\"7f7afd0e-9144-11ed-82e3-622adeb45fa9\",\"email\":\"test-go-create_an_incident_returns_created_response-1673395889@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676592635@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676592635@datadoghq.com\",\"uuid\":\"8009c2e2-ae57-11ed-b4cb-a681084bf13a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676592635@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670926105@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670926105@datadoghq.com\",\"uuid\":\"81831280-6cb1-4a01-9dc9-f68b1405f8f6\",\"email\":\"test-go-create_an_incident_returns_created_response-1670926105@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677197369@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677197369@datadoghq.com\",\"uuid\":\"81da5714-b3d7-11ed-97bb-cad2b20710fd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677197369@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678666250@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678666250@datadoghq.com\",\"uuid\":\"82eadb7f-c133-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678666250@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673914300@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673914300@datadoghq.com\",\"uuid\":\"84060fed-95fb-11ed-b93e-b6681b4e2484\",\"email\":\"test-go-create_an_incident_returns_created_response-1673914300@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670199054@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670199054@datadoghq.com\",\"uuid\":\"847f57aa-1b32-4eee-8447-e6eef1f6744f\",\"email\":\"test-go-create_an_incident_returns_created_response-1670199054@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676592642@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676592642@datadoghq.com\",\"uuid\":\"848026b5-ae57-11ed-9ecb-824f74ccf3e4\",\"email\":\"test-go-create_an_incident_returns_created_response-1676592642@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670630968@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670630968@datadoghq.com\",\"uuid\":\"853cce16-d7d3-4bd6-8f99-b1eab0407cf1\",\"email\":\"test-go-create_an_incident_returns_created_response-1670630968@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672099877@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672099877@datadoghq.com\",\"uuid\":\"862d085b-48ce-446e-a74f-ae3538d623f5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672099877@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674951109@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674951109@datadoghq.com\",\"uuid\":\"866af7b6-9f69-11ed-8c38-7ad981f4abb4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674951109@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677197377@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677197377@datadoghq.com\",\"uuid\":\"86a13258-b3d7-11ed-a605-a260cf3212a9\",\"email\":\"test-go-create_an_incident_returns_created_response-1677197377@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673827975@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673827975@datadoghq.com\",\"uuid\":\"86bc89ca-9532-11ed-bf65-7630e111ac00\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673827975@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667434343@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667434343@datadoghq.com\",\"uuid\":\"88c2cdf6-2769-4e68-9503-38d3f166ff1a\",\"email\":\"test-go-create_an_incident_returns_created_response-1667434343@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678666260@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678666260@datadoghq.com\",\"uuid\":\"88ce8004-c133-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1678666260@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679270991@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679270991@datadoghq.com\",\"uuid\":\"89229fdb-c6b3-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679270991@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668643791@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668643791@datadoghq.com\",\"uuid\":\"8a2d2c9d-c478-4a74-94a8-cabb28bd1473\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668643791@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674951116@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674951116@datadoghq.com\",\"uuid\":\"8ae38d89-9f69-11ed-bfa9-f2483e31eab5\",\"email\":\"test-go-create_an_incident_returns_created_response-1674951116@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673827983@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673827983@datadoghq.com\",\"uuid\":\"8b7b570e-9532-11ed-bf65-7630e111ac00\",\"email\":\"test-go-create_an_incident_returns_created_response-1673827983@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676074256@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676074256@datadoghq.com\",\"uuid\":\"8e41e3a8-a9a0-11ed-a060-46b9814ce648\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676074256@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672704719@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672704719@datadoghq.com\",\"uuid\":\"8e85e36f-5ccd-4052-a34e-d7338178914e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672704719@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679271002@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679271002@datadoghq.com\",\"uuid\":\"8f25b885-c6b3-11ed-9949-f20a22a554f2\",\"email\":\"test-go-create_an_incident_returns_created_response-1679271002@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667866310@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667866310@datadoghq.com\",\"uuid\":\"8f8399af-4d57-41a1-91a3-37c29fb62092\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667866310@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670630960@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670630960@datadoghq.com\",\"uuid\":\"8fa60296-198c-4113-8f21-0ba09e4fd83e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670630960@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679789405@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679789405@datadoghq.com\",\"uuid\":\"8fb58f8b-cb6a-11ed-be83-92f82eb96735\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679789405@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666829456@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666829456@datadoghq.com\",\"uuid\":\"91a8dc0a-0c63-4411-b9ab-39ec37dc2eee\",\"email\":\"test-go-create_an_incident_returns_created_response-1666829456@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669939802@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669939802@datadoghq.com\",\"uuid\":\"92c4c4e2-d881-485c-9668-0aa68239c513\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669939802@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676074265@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676074265@datadoghq.com\",\"uuid\":\"936c4650-a9a0-11ed-af98-1a32d7edfd9d\",\"email\":\"test-go-create_an_incident_returns_created_response-1676074265@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667088632@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667088632@datadoghq.com\",\"uuid\":\"93e8df0e-729e-4d2f-b0a4-9495ffb37b06\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667088632@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673482254@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673482254@datadoghq.com\",\"uuid\":\"94c9bf7f-920d-11ed-9cec-222dbf547024\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673482254@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670598792@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670598792@datadoghq.com\",\"uuid\":\"94d92a17-4768-48dd-97b4-ab32fee4e33b\",\"email\":\"test-go-create_an_incident_returns_created_response-1670598792@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669853467@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669853467@datadoghq.com\",\"uuid\":\"94f7179d-40a0-4790-9436-6080eb0db034\",\"email\":\"test-go-create_an_incident_returns_created_response-1669853467@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679789415@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679789415@datadoghq.com\",\"uuid\":\"959ada1b-cb6a-11ed-9f7f-0e85fe61e6ee\",\"email\":\"test-go-create_an_incident_returns_created_response-1679789415@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669075853@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669075853@datadoghq.com\",\"uuid\":\"96796850-b278-4313-a726-9cf5c832fe30\",\"email\":\"test-go-create_an_incident_returns_created_response-1669075853@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676679006@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676679006@datadoghq.com\",\"uuid\":\"99579994-af20-11ed-94c9-462a25af4eaf\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676679006@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673482262@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673482262@datadoghq.com\",\"uuid\":\"995b112e-920d-11ed-9888-e278e4206645\",\"email\":\"test-go-create_an_incident_returns_created_response-1673482262@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670594544@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670594544@datadoghq.com\",\"uuid\":\"9b26b565-e0c1-4777-a693-553a8d5cb243\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670594544@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670285415@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670285415@datadoghq.com\",\"uuid\":\"9b9fe3ac-f73b-43a5-b570-43d156e07ea9\",\"email\":\"test-go-create_an_incident_returns_created_response-1670285415@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670926595@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670926595@datadoghq.com\",\"uuid\":\"9c09fbea-fce4-4c02-9a45-ec845bab938a\",\"email\":\"test-go-create_an_incident_returns_created_response-1670926595@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670544898@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670544898@datadoghq.com\",\"uuid\":\"9c58a1dc-6beb-4390-928e-ed9d95b13b30\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670544898@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667693441@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667693441@datadoghq.com\",\"uuid\":\"9ccf5d51-55b4-43e0-ad79-7819a8d223f0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667693441@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676679013@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676679013@datadoghq.com\",\"uuid\":\"9dd94922-af20-11ed-94c9-462a25af4eaf\",\"email\":\"test-go-create_an_incident_returns_created_response-1676679013@datadoghq.com\"},{\"name\":\"test-add_commander_to_an_incident_returns_ok_response-1675266399@datadoghq.com\",\"count\":1,\"handle\":\"test-add_commander_to_an_incident_returns_ok_response-1675266399@datadoghq.com\",\"uuid\":\"9defa75d-a247-11ed-97de-223323d49fa6\",\"email\":\"test-add_commander_to_an_incident_returns_ok_response-1675266399@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666979690@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666979690@datadoghq.com\",\"uuid\":\"9e072255-5184-44a8-ae5f-a8e70ec5037c\",\"email\":\"test-go-create_an_incident_returns_created_response-1666979690@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678752625@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678752625@datadoghq.com\",\"uuid\":\"9e85bf56-c1fc-11ed-b4e0-566658a732f8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678752625@datadoghq.com\"},{\"name\":\"test-create_an_incident_returns_created_response-1675266400@datadoghq.com\",\"count\":1,\"handle\":\"test-create_an_incident_returns_created_response-1675266400@datadoghq.com\",\"uuid\":\"9ee1d254-a247-11ed-92ef-6ad132878933\",\"email\":\"test-create_an_incident_returns_created_response-1675266400@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668125498@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668125498@datadoghq.com\",\"uuid\":\"9f5a1546-bccf-4b9f-a25f-96fb87bd7bfc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668125498@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669162248@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669162248@datadoghq.com\",\"uuid\":\"9f88a5e0-9842-4fd1-95c7-7f85edad3874\",\"email\":\"test-go-create_an_incident_returns_created_response-1669162248@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666981017@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666981017@datadoghq.com\",\"uuid\":\"a136a629-05cd-4a2f-b925-e1d74c6a69ad\",\"email\":\"test-go-create_an_incident_returns_created_response-1666981017@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670803795@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670803795@datadoghq.com\",\"uuid\":\"a18c9430-e993-488f-8b5c-3ad27997e55c\",\"email\":\"test-go-create_an_incident_returns_created_response-1670803795@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675555889@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675555889@datadoghq.com\",\"uuid\":\"a3644be2-a4e9-11ed-b7fb-1ea641c369ef\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675555889@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672704726@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672704726@datadoghq.com\",\"uuid\":\"a4230eac-f78e-407d-8551-b07c6476622b\",\"email\":\"test-go-create_an_incident_returns_created_response-1672704726@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678752635@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678752635@datadoghq.com\",\"uuid\":\"a4aff885-c1fc-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1678752635@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675555897@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675555897@datadoghq.com\",\"uuid\":\"a813f7f3-a4e9-11ed-9388-1ad521c601b9\",\"email\":\"test-go-create_an_incident_returns_created_response-1675555897@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674087020@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674087020@datadoghq.com\",\"uuid\":\"a96c393b-978d-11ed-b425-4e7b3187c657\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674087020@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669767038@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669767038@datadoghq.com\",\"uuid\":\"a9977d83-cddd-4644-ba02-dc1a86c0293e\",\"email\":\"test-go-create_an_incident_returns_created_response-1669767038@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678234243@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678234243@datadoghq.com\",\"uuid\":\"aabc794c-bd45-11ed-9ea1-9ebf47de1fdb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678234243@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667606997@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667606997@datadoghq.com\",\"uuid\":\"ab5bb1f0-b9b2-43da-bd50-e5ba7315fc29\",\"email\":\"test-go-create_an_incident_returns_created_response-1667606997@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673568622@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673568622@datadoghq.com\",\"uuid\":\"abedb0a5-92d6-11ed-a082-5215624996c0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673568622@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672272649@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672272649@datadoghq.com\",\"uuid\":\"ac484716-4260-4fd9-8288-1d4a6b0d39da\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672272649@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674087028@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674087028@datadoghq.com\",\"uuid\":\"ade2bf85-978d-11ed-b425-4e7b3187c657\",\"email\":\"test-go-create_an_incident_returns_created_response-1674087028@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673568629@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673568629@datadoghq.com\",\"uuid\":\"b0771f90-92d6-11ed-a082-5215624996c0\",\"email\":\"test-go-create_an_incident_returns_created_response-1673568629@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672359099@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672359099@datadoghq.com\",\"uuid\":\"b12b859b-c89a-4023-84e6-2634f93fff00\",\"email\":\"test-go-create_an_incident_returns_created_response-1672359099@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678234254@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678234254@datadoghq.com\",\"uuid\":\"b155e604-bd45-11ed-ba70-22d478e15cef\",\"email\":\"test-go-create_an_incident_returns_created_response-1678234254@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667347843@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667347843@datadoghq.com\",\"uuid\":\"b2f195b3-53b7-4095-bfb8-90538edb12f7\",\"email\":\"test-go-create_an_incident_returns_created_response-1667347843@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677715854@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677715854@datadoghq.com\",\"uuid\":\"b2fc8929-b88e-11ed-8da2-b6d07de5d20c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677715854@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667779816@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667779816@datadoghq.com\",\"uuid\":\"b335a7f4-a66e-41ed-b4aa-982c5b76ffc1\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667779816@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672963863@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672963863@datadoghq.com\",\"uuid\":\"b39fcb21-440b-4bd8-bc55-103259b74a57\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672963863@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670890374@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670890374@datadoghq.com\",\"uuid\":\"b3ccf662-7d0d-4a45-9cb3-5ffcb089012c\",\"email\":\"test-go-create_an_incident_returns_created_response-1670890374@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669594223@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669594223@datadoghq.com\",\"uuid\":\"b4a8f9a4-28a9-4311-a813-8149eb5264f4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669594223@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672963870@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672963870@datadoghq.com\",\"uuid\":\"b631798d-d17b-44ab-af5c-f075df907ddd\",\"email\":\"test-go-create_an_incident_returns_created_response-1672963870@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677715861@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677715861@datadoghq.com\",\"uuid\":\"b768b7b4-b88e-11ed-a132-2aa63a904ba0\",\"email\":\"test-go-create_an_incident_returns_created_response-1677715861@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671408605@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671408605@datadoghq.com\",\"uuid\":\"b7d64361-36fd-4ebd-9438-949f60ec3745\",\"email\":\"test-go-create_an_incident_returns_created_response-1671408605@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670604391@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670604391@datadoghq.com\",\"uuid\":\"b8fa89c4-34f6-4b69-a654-e3671ce743a0\",\"email\":\"test-go-create_an_incident_returns_created_response-1670604391@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668471103@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668471103@datadoghq.com\",\"uuid\":\"b9d64d92-66de-41cc-9164-b83b7b74439f\",\"email\":\"test-go-create_an_incident_returns_created_response-1668471103@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674000722@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674000722@datadoghq.com\",\"uuid\":\"bbd69d76-96c4-11ed-b802-922cd9596b23\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674000722@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669853460@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669853460@datadoghq.com\",\"uuid\":\"bc036552-b05e-4ffd-8dd1-44dbe725a6ec\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669853460@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670544906@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670544906@datadoghq.com\",\"uuid\":\"bcb9456d-8b65-4369-b2c4-49ee5e4c14b7\",\"email\":\"test-go-create_an_incident_returns_created_response-1670544906@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674519128@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674519128@datadoghq.com\",\"uuid\":\"bd7e4c91-9b7b-11ed-882c-9aa2ca31c98c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674519128@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676765396@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676765396@datadoghq.com\",\"uuid\":\"bdc08c5f-afe9-11ed-84e6-a6c768ad21b4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676765396@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667952692@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667952692@datadoghq.com\",\"uuid\":\"be421a73-22de-48d3-be3f-1a269016ff83\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667952692@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675037533@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675037533@datadoghq.com\",\"uuid\":\"bf08166d-a032-11ed-88af-be56a8628f3f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675037533@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674000730@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674000730@datadoghq.com\",\"uuid\":\"c09c4f30-96c4-11ed-9f1c-fe165ba0981c\",\"email\":\"test-go-create_an_incident_returns_created_response-1674000730@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666915811@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666915811@datadoghq.com\",\"uuid\":\"c20da1a9-657e-4b5a-9159-9f4d324f51fc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666915811@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675642269@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675642269@datadoghq.com\",\"uuid\":\"c22b3e65-a5b2-11ed-9388-1ad521c601b9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675642269@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671495039@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671495039@datadoghq.com\",\"uuid\":\"c23885b0-3659-4d47-b5c9-16c0965dc7d9\",\"email\":\"test-go-create_an_incident_returns_created_response-1671495039@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679357416@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679357416@datadoghq.com\",\"uuid\":\"c238d04b-c77c-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679357416@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674519135@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674519135@datadoghq.com\",\"uuid\":\"c23e01c9-9b7b-11ed-8af1-7201c2784402\",\"email\":\"test-go-create_an_incident_returns_created_response-1674519135@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676765404@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676765404@datadoghq.com\",\"uuid\":\"c27df074-afe9-11ed-bce8-0a557ccee039\",\"email\":\"test-go-create_an_incident_returns_created_response-1676765404@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668730249@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668730249@datadoghq.com\",\"uuid\":\"c36f2608-4650-4331-b810-1dc5500c1356\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668730249@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670924666@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670924666@datadoghq.com\",\"uuid\":\"c381f80b-8a88-47bd-9dbe-77720d784a52\",\"email\":\"test-go-create_an_incident_returns_created_response-1670924666@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669075846@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669075846@datadoghq.com\",\"uuid\":\"c39f3031-906f-4679-a817-9b8f072254bb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669075846@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675037541@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675037541@datadoghq.com\",\"uuid\":\"c3e2d867-a032-11ed-88af-be56a8628f3f\",\"email\":\"test-go-create_an_incident_returns_created_response-1675037541@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667002236@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667002236@datadoghq.com\",\"uuid\":\"c567f0fa-6f70-42e3-855e-2ae1d2ed7243\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667002236@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668125506@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668125506@datadoghq.com\",\"uuid\":\"c60a0f7d-3f36-4966-a63f-f1f77dca030a\",\"email\":\"test-go-create_an_incident_returns_created_response-1668125506@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676247007@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676247007@datadoghq.com\",\"uuid\":\"c61f4ec1-ab32-11ed-8972-1eb0f4245ee5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676247007@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675642277@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675642277@datadoghq.com\",\"uuid\":\"c6d4d92c-a5b2-11ed-b7fb-1ea641c369ef\",\"email\":\"test-go-create_an_incident_returns_created_response-1675642277@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668903116@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668903116@datadoghq.com\",\"uuid\":\"c7319ecf-1451-4031-817a-5bef597d5ac9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668903116@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670604389@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670604389@datadoghq.com\",\"uuid\":\"c7b7b86f-5268-4c20-b223-afc7923d54b9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670604389@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679357426@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679357426@datadoghq.com\",\"uuid\":\"c811af38-c77c-11ed-9949-f20a22a554f2\",\"email\":\"test-go-create_an_incident_returns_created_response-1679357426@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673309503@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673309503@datadoghq.com\",\"uuid\":\"c8bbd0d2-53af-4fc0-a392-1c1c0871fb49\",\"email\":\"test-go-create_an_incident_returns_created_response-1673309503@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671754265@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671754265@datadoghq.com\",\"uuid\":\"c8e6753d-801c-40b5-9dd8-c98feae31df9\",\"email\":\"test-go-create_an_incident_returns_created_response-1671754265@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679184770@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679184770@datadoghq.com\",\"uuid\":\"c960ccca-c5ea-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679184770@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926103@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926103@datadoghq.com\",\"uuid\":\"c9f53cd7-2f1e-4491-ae28-796ace9db6fc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926103@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670371766@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670371766@datadoghq.com\",\"uuid\":\"cac0f70c-c327-4965-b9f9-62190c96b0dc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670371766@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676247015@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676247015@datadoghq.com\",\"uuid\":\"caf6ae98-ab32-11ed-bddd-722daf28c490\",\"email\":\"test-go-create_an_incident_returns_created_response-1676247015@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673223085@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673223085@datadoghq.com\",\"uuid\":\"cc0a6e87-ce4b-4313-b0a8-8b40179bcb68\",\"email\":\"test-go-create_an_incident_returns_created_response-1673223085@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671235873@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671235873@datadoghq.com\",\"uuid\":\"cc1891b1-9a95-4af6-98d7-95ac53c4e6ff\",\"email\":\"test-go-create_an_incident_returns_created_response-1671235873@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679184781@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679184781@datadoghq.com\",\"uuid\":\"cf9a8e87-c5ea-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-create_an_incident_returns_created_response-1679184781@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670943352@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670943352@datadoghq.com\",\"uuid\":\"d0330853-c731-4097-a353-fd1014abde80\",\"email\":\"test-go-create_an_incident_returns_created_response-1670943352@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667175027@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667175027@datadoghq.com\",\"uuid\":\"d1d53f95-4adc-4e7b-896b-1e75ba345e9f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667175027@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675728631@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675728631@datadoghq.com\",\"uuid\":\"d5aa246d-a67b-11ed-9567-ba00348e1a7a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675728631@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677370168@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677370168@datadoghq.com\",\"uuid\":\"d654fb42-b569-11ed-827a-8e2840b25db2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677370168@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676851766@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676851766@datadoghq.com\",\"uuid\":\"d6780612-b0b2-11ed-a714-aa504cceab29\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676851766@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672186280@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672186280@datadoghq.com\",\"uuid\":\"d70a12ec-c10f-47dd-9892-cebecfd6ffb0\",\"email\":\"test-go-create_an_incident_returns_created_response-1672186280@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670199046@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670199046@datadoghq.com\",\"uuid\":\"d968eb97-03c1-436e-835f-9ed06d352716\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670199046@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670890367@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670890367@datadoghq.com\",\"uuid\":\"d9a19936-2b5c-4fbc-b802-7a3dbf639c1b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670890367@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675728639@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675728639@datadoghq.com\",\"uuid\":\"da3ac6ee-a67b-11ed-bd1e-766989ec1239\",\"email\":\"test-go-create_an_incident_returns_created_response-1675728639@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677370176@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677370176@datadoghq.com\",\"uuid\":\"dac22963-b569-11ed-a797-c2fe525de487\",\"email\":\"test-go-create_an_incident_returns_created_response-1677370176@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676851774@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676851774@datadoghq.com\",\"uuid\":\"db0404af-b0b2-11ed-84e6-a6c768ad21b4\",\"email\":\"test-go-create_an_incident_returns_created_response-1676851774@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673136657@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673136657@datadoghq.com\",\"uuid\":\"dcbcad43-008c-4c4c-8c35-ee5ade081d9e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673136657@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670026261@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670026261@datadoghq.com\",\"uuid\":\"ddd99aa3-c7e5-4dff-8099-10588153e164\",\"email\":\"test-go-create_an_incident_returns_created_response-1670026261@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671495031@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671495031@datadoghq.com\",\"uuid\":\"de662b96-845c-45b9-a359-b0b763a45a61\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671495031@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670717454@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670717454@datadoghq.com\",\"uuid\":\"def01997-ae71-49bc-93ea-ff9287d606c7\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670717454@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670112672@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670112672@datadoghq.com\",\"uuid\":\"e09cd088-50f3-4a99-8222-0917d760f4fb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670112672@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670924664@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670924664@datadoghq.com\",\"uuid\":\"e0a87080-eb76-45db-9230-ed4ef629b0d2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670924664@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678839065@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678839065@datadoghq.com\",\"uuid\":\"e1073fac-c2c5-11ed-b4e0-566658a732f8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678839065@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668730257@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668730257@datadoghq.com\",\"uuid\":\"e21b3798-5777-4777-919d-e5ff6fce422a\",\"email\":\"test-go-create_an_incident_returns_created_response-1668730257@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667347836@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667347836@datadoghq.com\",\"uuid\":\"e2267bdc-1a12-4210-869e-60d0faa477bd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667347836@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669248667@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669248667@datadoghq.com\",\"uuid\":\"e42f7f54-0e83-4c40-b112-887402a7ba6b\",\"email\":\"test-go-create_an_incident_returns_created_response-1669248667@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669335019@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669335019@datadoghq.com\",\"uuid\":\"e485ea7a-9a64-44dd-a774-d3f31e869f6e\",\"email\":\"test-go-create_an_incident_returns_created_response-1669335019@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673309495@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673309495@datadoghq.com\",\"uuid\":\"e6615793-c00d-45e8-b8d6-ec1c96309d81\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673309495@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669939809@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669939809@datadoghq.com\",\"uuid\":\"e6d0a0d2-e642-4b20-aa66-34ab638f4d9f\",\"email\":\"test-go-create_an_incident_returns_created_response-1669939809@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678839075@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678839075@datadoghq.com\",\"uuid\":\"e7113f68-c2c5-11ed-b4e0-566658a732f8\",\"email\":\"test-go-create_an_incident_returns_created_response-1678839075@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672531837@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672531837@datadoghq.com\",\"uuid\":\"e7403ce3-c0a2-4bae-8823-45a21c310656\",\"email\":\"test-go-create_an_incident_returns_created_response-1672531837@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678320674@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678320674@datadoghq.com\",\"uuid\":\"e7d1ba87-be0e-11ed-be0d-5609971d255a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678320674@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672618346@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672618346@datadoghq.com\",\"uuid\":\"e84ce941-4c3d-4b79-b736-619897785a82\",\"email\":\"test-go-create_an_incident_returns_created_response-1672618346@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668298272@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668298272@datadoghq.com\",\"uuid\":\"e9b00493-1235-49f2-b229-06ee3afc79b0\",\"email\":\"test-go-create_an_incident_returns_created_response-1668298272@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676160739@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676160739@datadoghq.com\",\"uuid\":\"e9f6df6e-aa69-11ed-8972-1eb0f4245ee5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676160739@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677629617@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677629617@datadoghq.com\",\"uuid\":\"e9ffa5e5-b7c5-11ed-a50e-226546b1da54\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677629617@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679443813@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679443813@datadoghq.com\",\"uuid\":\"eb03f9a6-c845-11ed-a1e1-c6385b25b934\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679443813@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678407009@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678407009@datadoghq.com\",\"uuid\":\"eb834f42-bed7-11ed-a89b-0ebbb850607d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678407009@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674605534@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674605534@datadoghq.com\",\"uuid\":\"ebb5a53d-9c44-11ed-97cc-a697d2568caf\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674605534@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669507847@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669507847@datadoghq.com\",\"uuid\":\"ebf0848a-6b21-4736-ad2a-d93daf59fd15\",\"email\":\"test-go-create_an_incident_returns_created_response-1669507847@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671322279@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671322279@datadoghq.com\",\"uuid\":\"ebf23d4b-53c8-467a-bbb0-636c11b3ffee\",\"email\":\"test-go-create_an_incident_returns_created_response-1671322279@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667606989@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667606989@datadoghq.com\",\"uuid\":\"ec1ed77b-1d70-4727-b2ac-f478a37e3b8c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667606989@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678320684@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678320684@datadoghq.com\",\"uuid\":\"edaec5b4-be0e-11ed-be0d-5609971d255a\",\"email\":\"test-go-create_an_incident_returns_created_response-1678320684@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671062990@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671062990@datadoghq.com\",\"uuid\":\"ee1307d6-f262-47be-b312-0f77517487b8\",\"email\":\"test-go-create_an_incident_returns_created_response-1671062990@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679875893@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679875893@datadoghq.com\",\"uuid\":\"ee8bd235-cc33-11ed-b285-a2593f21064b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679875893@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676160746@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676160746@datadoghq.com\",\"uuid\":\"eeac3af0-aa69-11ed-bddd-722daf28c490\",\"email\":\"test-go-create_an_incident_returns_created_response-1676160746@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677629625@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677629625@datadoghq.com\",\"uuid\":\"eeb210e2-b7c5-11ed-8e20-4a014c845df9\",\"email\":\"test-go-create_an_incident_returns_created_response-1677629625@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672272657@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672272657@datadoghq.com\",\"uuid\":\"efc56647-04f9-430b-abcd-78fd73135dc9\",\"email\":\"test-go-create_an_incident_returns_created_response-1672272657@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674605542@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674605542@datadoghq.com\",\"uuid\":\"f090690e-9c44-11ed-bd03-d63a15ea0a5e\",\"email\":\"test-go-create_an_incident_returns_created_response-1674605542@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674173469@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674173469@datadoghq.com\",\"uuid\":\"f1130564-9856-11ed-8928-461f5552e193\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674173469@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679443823@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679443823@datadoghq.com\",\"uuid\":\"f116f34c-c845-11ed-8b17-fe25dd6b2d5d\",\"email\":\"test-go-create_an_incident_returns_created_response-1679443823@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678407019@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678407019@datadoghq.com\",\"uuid\":\"f182abdf-bed7-11ed-b4e0-566658a732f8\",\"email\":\"test-go-create_an_incident_returns_created_response-1678407019@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677283885@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677283885@datadoghq.com\",\"uuid\":\"f185aa8c-b4a0-11ed-a797-c2fe525de487\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677283885@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677974947@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677974947@datadoghq.com\",\"uuid\":\"f24bcc61-bae9-11ed-a3f2-e6671bdc78dd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677974947@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677808304@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677808304@datadoghq.com\",\"uuid\":\"f352f9e3-b965-11ed-b5bf-a606768bc197\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677808304@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679875903@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679875903@datadoghq.com\",\"uuid\":\"f48dd27a-cc33-11ed-9f7f-0e85fe61e6ee\",\"email\":\"test-go-create_an_incident_returns_created_response-1679875903@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675123953@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675123953@datadoghq.com\",\"uuid\":\"f59374fc-a0fb-11ed-a5e8-da207d422d98\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675123953@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674173477@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674173477@datadoghq.com\",\"uuid\":\"f5a1e00e-9856-11ed-a432-b611e40f0c37\",\"email\":\"test-go-create_an_incident_returns_created_response-1674173477@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675296611@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675296611@datadoghq.com\",\"uuid\":\"f5d92ebe-a28d-11ed-b39d-128f55cb4249\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675296611@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677283893@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677283893@datadoghq.com\",\"uuid\":\"f611f5ab-b4a0-11ed-a797-c2fe525de487\",\"email\":\"test-go-create_an_incident_returns_created_response-1677283893@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670598789@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670598789@datadoghq.com\",\"uuid\":\"f6a52e1f-a5fc-4498-b0f2-69fee17a4142\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670598789@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677974954@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677974954@datadoghq.com\",\"uuid\":\"f6c58d1e-bae9-11ed-8f91-4668bdad4d01\",\"email\":\"test-go-create_an_incident_returns_created_response-1677974954@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677808311@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677808311@datadoghq.com\",\"uuid\":\"f7f12039-b965-11ed-b5bf-a606768bc197\",\"email\":\"test-go-create_an_incident_returns_created_response-1677808311@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668211896@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668211896@datadoghq.com\",\"uuid\":\"f8313d55-863c-4872-8f01-5a74e04418d2\",\"email\":\"test-go-create_an_incident_returns_created_response-1668211896@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668816640@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668816640@datadoghq.com\",\"uuid\":\"f92f0fb9-f3fd-42ff-955a-744cc01ee9a4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668816640@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670928947@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670928947@datadoghq.com\",\"uuid\":\"f9e94170-240d-43ed-a3e4-dec65a38531b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670928947@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675123961@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675123961@datadoghq.com\",\"uuid\":\"fa40ced7-a0fb-11ed-a5e3-d6024dc128f7\",\"email\":\"test-go-create_an_incident_returns_created_response-1675123961@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675296619@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675296619@datadoghq.com\",\"uuid\":\"fa6d1a19-a28d-11ed-9c57-8a8107f52a6e\",\"email\":\"test-go-create_an_incident_returns_created_response-1675296619@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677888634@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677888634@datadoghq.com\",\"uuid\":\"fbd2af3f-ba20-11ed-a3f2-e6671bdc78dd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677888634@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670603299@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670603299@datadoghq.com\",\"uuid\":\"fc061455-8536-4ea0-8a7c-d6bd072c5b89\",\"email\":\"test-go-create_an_incident_returns_created_response-1670603299@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671408597@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671408597@datadoghq.com\",\"uuid\":\"fd20bff8-5c0c-4eb2-941b-c0d7669f996a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671408597@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670603854@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670603854@datadoghq.com\",\"uuid\":\"fdef06c9-5a21-44bb-afb4-14b055649e5b\",\"email\":\"test-go-create_an_incident_returns_created_response-1670603854@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667866318@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667866318@datadoghq.com\",\"uuid\":\"fe4f352d-a8b5-435e-a18c-9914eb88c865\",\"email\":\"test-go-create_an_incident_returns_created_response-1667866318@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926593@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926593@datadoghq.com\",\"uuid\":\"ff2e2858-cf28-44c7-98aa-be52cef329be\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926593@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675815030@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675815030@datadoghq.com\",\"uuid\":\"ff9a7c79-a744-11ed-9567-ba00348e1a7a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675815030@datadoghq.com\"}],\"impact\":[{\"name\":\"none\",\"count\":1703}],\"postmortem\":[{\"name\":\"No\",\"count\":1703},{\"name\":\"Yes\",\"count\":0}],\"time_to_resolve\":[{\"name\":\"time_to_resolve\",\"aggregates\":{\"min\":2.0,\"max\":3.0}}],\"state\":[{\"name\":\"active\",\"count\":1360},{\"name\":\"resolved\",\"count\":343},{\"name\":\"stable\",\"count\":0}],\"customer_impacted\":[{\"name\":0,\"count\":1703},{\"name\":true,\"count\":0}],\"fields\":[{\"name\":\"detection_method\",\"facets\":[{\"name\":\"unknown\",\"count\":1703},{\"name\":\"customer\",\"count\":0},{\"name\":\"employee\",\"count\":0},{\"name\":\"monitor\",\"count\":0},{\"name\":\"other\",\"count\":0}]},{\"name\":\"root_cause\",\"facets\":[]},{\"name\":\"services\",\"facets\":[]},{\"name\":\"summary\",\"facets\":[]},{\"name\":\"teams\",\"facets\":[]}],\"created_by\":[{\"name\":\"CI Account\",\"count\":1505,\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"},{\"name\":\"frog@datadoghq.com\",\"count\":198,\"handle\":\"frog@datadoghq.com\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"email\":\"frog@datadoghq.com\"}],\"last_modified_by\":[{\"name\":\"CI Account\",\"count\":1505,\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"},{\"name\":\"frog@datadoghq.com\",\"count\":198,\"handle\":\"frog@datadoghq.com\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"email\":\"frog@datadoghq.com\"}],\"commander\":[{\"name\":\"test-go-create_an_incident_returns_created_response-1677888642@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677888642@datadoghq.com\",\"uuid\":\"00a080f5-ba21-11ed-a3f2-e6671bdc78dd\",\"email\":\"test-go-create_an_incident_returns_created_response-1677888642@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672877473@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672877473@datadoghq.com\",\"uuid\":\"01dc2b21-3194-414a-b8e8-58704603421b\",\"email\":\"test-go-create_an_incident_returns_created_response-1672877473@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678925450@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678925450@datadoghq.com\",\"uuid\":\"02a54dc1-c38f-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678925450@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672013445@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672013445@datadoghq.com\",\"uuid\":\"03e16d56-e954-4e9a-b9da-22dffdfa1f24\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672013445@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666981015@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666981015@datadoghq.com\",\"uuid\":\"03e65d16-b7bb-456a-a5da-bf31dffbdf4d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666981015@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675815038@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675815038@datadoghq.com\",\"uuid\":\"0423cfd5-a745-11ed-9567-ba00348e1a7a\",\"email\":\"test-go-create_an_incident_returns_created_response-1675815038@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669335011@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669335011@datadoghq.com\",\"uuid\":\"04c4feaa-1864-4167-a48b-e156181d50d8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669335011@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669248659@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669248659@datadoghq.com\",\"uuid\":\"04f0d8b5-1959-43fb-85b5-782682062c4e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669248659@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673655101@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673655101@datadoghq.com\",\"uuid\":\"05d83a07-93a0-11ed-bf65-7630e111ac00\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673655101@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666743047@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666743047@datadoghq.com\",\"uuid\":\"060c37c0-93a9-48c0-90bc-dee85b66a7c7\",\"email\":\"test-go-create_an_incident_returns_created_response-1666743047@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678925461@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678925461@datadoghq.com\",\"uuid\":\"08f8d3b7-c38f-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1678925461@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670112680@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670112680@datadoghq.com\",\"uuid\":\"09010d4b-7635-4553-a7b9-973f5f9cea5b\",\"email\":\"test-go-create_an_incident_returns_created_response-1670112680@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673655109@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673655109@datadoghq.com\",\"uuid\":\"0a679024-93a0-11ed-aaf8-3230475e674b\",\"email\":\"test-go-create_an_incident_returns_created_response-1673655109@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667434335@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667434335@datadoghq.com\",\"uuid\":\"0ebbf763-be8f-40bb-8ee7-d37b729a5eed\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667434335@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668384644@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668384644@datadoghq.com\",\"uuid\":\"1193cff3-b670-4e08-a535-346105dcaf9f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668384644@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675210330@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675210330@datadoghq.com\",\"uuid\":\"1205474f-a1c5-11ed-b767-5ec4f5b84c10\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675210330@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674691927@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674691927@datadoghq.com\",\"uuid\":\"122c89ad-9d0e-11ed-9f54-862b4cfe184c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674691927@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668643799@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668643799@datadoghq.com\",\"uuid\":\"12d78e1b-0784-46f3-99ac-7e5db2d5c92e\",\"email\":\"test-go-create_an_incident_returns_created_response-1668643799@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671667884@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671667884@datadoghq.com\",\"uuid\":\"1310687d-9adb-47ae-ad7a-066c9e525f8b\",\"email\":\"test-go-create_an_incident_returns_created_response-1671667884@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673741454@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673741454@datadoghq.com\",\"uuid\":\"142ba3fc-9469-11ed-a365-8ec8661800c6\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673741454@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679011809@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679011809@datadoghq.com\",\"uuid\":\"1431aabf-c458-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679011809@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670927771@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670927771@datadoghq.com\",\"uuid\":\"14344412-a7b1-4044-89f7-8139727432f6\",\"email\":\"test-go-create_an_incident_returns_created_response-1670927771@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667261554@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667261554@datadoghq.com\",\"uuid\":\"1608c46d-bee2-46a5-be87-49af2b889db5\",\"email\":\"test-go-create_an_incident_returns_created_response-1667261554@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670929702@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670929702@datadoghq.com\",\"uuid\":\"161217ca-a0b5-418c-b0e5-d16edddd8258\",\"email\":\"test-go-create_an_incident_returns_created_response-1670929702@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675901397@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675901397@datadoghq.com\",\"uuid\":\"1628d4a0-a80e-11ed-af43-4e64a4a39547\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675901397@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670928949@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670928949@datadoghq.com\",\"uuid\":\"16754b18-1887-4f22-ae44-4a86e9bfc749\",\"email\":\"test-go-create_an_incident_returns_created_response-1670928949@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675210337@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675210337@datadoghq.com\",\"uuid\":\"1682f280-a1c5-11ed-ad87-fecda9c428d5\",\"email\":\"test-go-create_an_incident_returns_created_response-1675210337@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674691935@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674691935@datadoghq.com\",\"uuid\":\"16bf2921-9d0e-11ed-aff1-fa6399bf96fd\",\"email\":\"test-go-create_an_incident_returns_created_response-1674691935@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671754258@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671754258@datadoghq.com\",\"uuid\":\"18ada30d-ad3e-4ba2-911d-931233a75aa0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671754258@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679962293@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679962293@datadoghq.com\",\"uuid\":\"18cfb810-ccfd-11ed-a201-de0443f18a2a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679962293@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673741462@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673741462@datadoghq.com\",\"uuid\":\"18e9a7f7-9469-11ed-aaf8-3230475e674b\",\"email\":\"test-go-create_an_incident_returns_created_response-1673741462@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679011819@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679011819@datadoghq.com\",\"uuid\":\"1a8c2817-c458-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1679011819@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675901404@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675901404@datadoghq.com\",\"uuid\":\"1aa50cab-a80e-11ed-bc4c-ea1adbbc0986\",\"email\":\"test-go-create_an_incident_returns_created_response-1675901404@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670285407@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670285407@datadoghq.com\",\"uuid\":\"1bb87a6c-da01-4798-8bd0-5cd9918f641f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670285407@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668903124@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668903124@datadoghq.com\",\"uuid\":\"1bcb111e-ea64-4d60-9b77-ae5e7f22f157\",\"email\":\"test-go-create_an_incident_returns_created_response-1668903124@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668039051@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668039051@datadoghq.com\",\"uuid\":\"1c54a963-17f1-4ee8-a2b0-7fd07c3b2c68\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668039051@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674259871@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674259871@datadoghq.com\",\"uuid\":\"1c631d44-9920-11ed-8c68-2a913616fde8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674259871@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677024542@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677024542@datadoghq.com\",\"uuid\":\"1ce329fb-b245-11ed-8fbc-ca7794d66904\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677024542@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671149452@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671149452@datadoghq.com\",\"uuid\":\"1ebe2367-3eda-464c-9571-edd444620682\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671149452@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676419814@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676419814@datadoghq.com\",\"uuid\":\"1f019dde-acc5-11ed-bcdd-a68779fca942\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676419814@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679962303@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679962303@datadoghq.com\",\"uuid\":\"1f034a5d-ccfd-11ed-aef0-a6405a9b4791\",\"email\":\"test-go-create_an_incident_returns_created_response-1679962303@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672618338@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672618338@datadoghq.com\",\"uuid\":\"1fd5cef4-df5c-4609-be9a-11bf76483cfc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672618338@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666915819@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666915819@datadoghq.com\",\"uuid\":\"20be4a8a-b215-4bc0-b2fa-31c27e0a642b\",\"email\":\"test-go-create_an_incident_returns_created_response-1666915819@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671840707@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671840707@datadoghq.com\",\"uuid\":\"20d2001a-92b4-4d03-a5cb-73617f27b723\",\"email\":\"test-go-create_an_incident_returns_created_response-1671840707@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674259878@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674259878@datadoghq.com\",\"uuid\":\"20dbaf3d-9920-11ed-8c68-2a913616fde8\",\"email\":\"test-go-create_an_incident_returns_created_response-1674259878@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677024549@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677024549@datadoghq.com\",\"uuid\":\"214ed4fd-b245-11ed-8fbc-ca7794d66904\",\"email\":\"test-go-create_an_incident_returns_created_response-1677024549@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676419822@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676419822@datadoghq.com\",\"uuid\":\"2375265b-acc5-11ed-9a7e-46e4eb8f12a7\",\"email\":\"test-go-create_an_incident_returns_created_response-1676419822@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670594546@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670594546@datadoghq.com\",\"uuid\":\"2399be00-e683-4133-aec2-7ab8fe73779e\",\"email\":\"test-go-create_an_incident_returns_created_response-1670594546@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673050262@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673050262@datadoghq.com\",\"uuid\":\"23a293e3-086a-4f8e-8fa6-a2555557309e\",\"email\":\"test-go-create_an_incident_returns_created_response-1673050262@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667175034@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667175034@datadoghq.com\",\"uuid\":\"24f932ba-4cd2-498e-8261-64f6ec161bcb\",\"email\":\"test-go-create_an_incident_returns_created_response-1667175034@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677456630@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677456630@datadoghq.com\",\"uuid\":\"25538030-b633-11ed-827a-8e2840b25db2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677456630@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672013452@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672013452@datadoghq.com\",\"uuid\":\"2593795d-b0f5-46f9-a852-34d3c466ce0a\",\"email\":\"test-go-create_an_incident_returns_created_response-1672013452@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667520677@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667520677@datadoghq.com\",\"uuid\":\"26287ddb-5d1c-400d-96dc-a1d3bb09f880\",\"email\":\"test-go-create_an_incident_returns_created_response-1667520677@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679616573@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679616573@datadoghq.com\",\"uuid\":\"27c16c1b-c9d8-11ed-b840-0ed4b0ca293a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679616573@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676938232@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676938232@datadoghq.com\",\"uuid\":\"281184f3-b17c-11ed-bce8-0a557ccee039\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676938232@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668557513@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668557513@datadoghq.com\",\"uuid\":\"2871bc57-733f-4f85-b3ef-440569202326\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668557513@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668471095@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668471095@datadoghq.com\",\"uuid\":\"289f8508-500c-472e-a9d4-71f30f1cf151\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668471095@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671667877@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671667877@datadoghq.com\",\"uuid\":\"28ae893d-4b70-420d-96dc-f82066a0642f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671667877@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672531830@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672531830@datadoghq.com\",\"uuid\":\"291b8416-a87d-4e56-a93e-9d430d5c4996\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672531830@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677456637@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677456637@datadoghq.com\",\"uuid\":\"29cd6809-b633-11ed-827a-8e2840b25db2\",\"email\":\"test-go-create_an_incident_returns_created_response-1677456637@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678493444@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678493444@datadoghq.com\",\"uuid\":\"2acb4dc0-bfa1-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678493444@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671927057@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671927057@datadoghq.com\",\"uuid\":\"2b0ac046-39c8-4bf4-a00a-deb089bbbc0c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671927057@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679530252@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679530252@datadoghq.com\",\"uuid\":\"2c9256b5-c90f-11ed-a1f3-7afc45c1981c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679530252@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676938239@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676938239@datadoghq.com\",\"uuid\":\"2c977e11-b17c-11ed-bce8-0a557ccee039\",\"email\":\"test-go-create_an_incident_returns_created_response-1676938239@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679616583@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679616583@datadoghq.com\",\"uuid\":\"2d99557e-c9d8-11ed-a171-361a8cacd441\",\"email\":\"test-go-create_an_incident_returns_created_response-1679616583@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672445562@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672445562@datadoghq.com\",\"uuid\":\"2db31432-b497-42b8-80b7-fef85898a2a8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672445562@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668039059@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668039059@datadoghq.com\",\"uuid\":\"2ebfffc1-a7da-4558-a507-038442f7ee79\",\"email\":\"test-go-create_an_incident_returns_created_response-1668039059@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669767030@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669767030@datadoghq.com\",\"uuid\":\"2eca0bd9-db8e-4c5d-91b7-2ccddffd5764\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669767030@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671235865@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671235865@datadoghq.com\",\"uuid\":\"2fc6258a-7492-43c0-accf-24528cbbfea1\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671235865@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669680686@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669680686@datadoghq.com\",\"uuid\":\"302a3d05-c61c-41d8-ad31-8821b764acf7\",\"email\":\"test-go-create_an_incident_returns_created_response-1669680686@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678493454@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678493454@datadoghq.com\",\"uuid\":\"30e3000f-bfa1-11ed-9949-f20a22a554f2\",\"email\":\"test-go-create_an_incident_returns_created_response-1678493454@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676333515@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676333515@datadoghq.com\",\"uuid\":\"30e43861-abfc-11ed-a6fc-0e9b7fe457ae\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676333515@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669680678@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669680678@datadoghq.com\",\"uuid\":\"31ad2923-926d-49af-ad5b-d8b120e6edc8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669680678@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679530263@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679530263@datadoghq.com\",\"uuid\":\"32d40acb-c90f-11ed-a1f3-7afc45c1981c\",\"email\":\"test-go-create_an_incident_returns_created_response-1679530263@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671581470@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671581470@datadoghq.com\",\"uuid\":\"34377484-e597-4d4c-bccf-88e919b6d549\",\"email\":\"test-go-create_an_incident_returns_created_response-1671581470@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667693449@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667693449@datadoghq.com\",\"uuid\":\"34e92512-7c24-4704-816e-4fadc9b5eff7\",\"email\":\"test-go-create_an_incident_returns_created_response-1667693449@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668211888@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668211888@datadoghq.com\",\"uuid\":\"3578dcc8-088a-4320-8c27-7f80f1bba4cb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668211888@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672186272@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672186272@datadoghq.com\",\"uuid\":\"3584000d-6337-4c9e-955e-e25514b83be0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672186272@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676333523@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676333523@datadoghq.com\",\"uuid\":\"35ba7493-abfc-11ed-b5cd-eec9514dd597\",\"email\":\"test-go-create_an_incident_returns_created_response-1676333523@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678579793@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678579793@datadoghq.com\",\"uuid\":\"367e08f8-c06a-11ed-b4e0-566658a732f8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678579793@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671062982@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671062982@datadoghq.com\",\"uuid\":\"3883d9fe-1678-452e-8801-11a374f9fdae\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671062982@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667002244@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667002244@datadoghq.com\",\"uuid\":\"39627294-7a14-4e71-b5ff-5221e68b6fbe\",\"email\":\"test-go-create_an_incident_returns_created_response-1667002244@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671581462@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671581462@datadoghq.com\",\"uuid\":\"3bc8406a-5790-4582-82f5-08e330921b9b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671581462@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668989431@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668989431@datadoghq.com\",\"uuid\":\"3c28c823-158e-46c2-8dce-06f1dace90e8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668989431@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673050254@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673050254@datadoghq.com\",\"uuid\":\"3c7509b1-82af-4d25-b1e5-3e8aaa107f0a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673050254@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678579803@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678579803@datadoghq.com\",\"uuid\":\"3c7f71d2-c06a-11ed-a89b-0ebbb850607d\",\"email\":\"test-go-create_an_incident_returns_created_response-1678579803@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669162240@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669162240@datadoghq.com\",\"uuid\":\"3ce20d84-5e75-45a5-b7b9-971549a50cf4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669162240@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670458180@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670458180@datadoghq.com\",\"uuid\":\"40d8c19a-8c6a-4f54-9444-aba7b6798064\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670458180@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678061409@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678061409@datadoghq.com\",\"uuid\":\"41da9ce5-bbb3-11ed-82a6-028cebedd0cf\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678061409@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673136665@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673136665@datadoghq.com\",\"uuid\":\"426feaae-7bf3-4b2c-bc8c-0c79056d6d8d\",\"email\":\"test-go-create_an_incident_returns_created_response-1673136665@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672099886@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672099886@datadoghq.com\",\"uuid\":\"431624c4-d099-4dfb-b701-33a60bba6ebe\",\"email\":\"test-go-create_an_incident_returns_created_response-1672099886@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669421482@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669421482@datadoghq.com\",\"uuid\":\"442dd264-b729-473b-a51d-4b141068fe3d\",\"email\":\"test-go-create_an_incident_returns_created_response-1669421482@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603297@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603297@datadoghq.com\",\"uuid\":\"446cd2d8-630c-4fe9-8901-fb85bd22426d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603297@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678061417@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678061417@datadoghq.com\",\"uuid\":\"467de14f-bbb3-11ed-82a6-028cebedd0cf\",\"email\":\"test-go-create_an_incident_returns_created_response-1678061417@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668989438@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668989438@datadoghq.com\",\"uuid\":\"46d62900-016b-463c-9fff-c8b4f946ce5c\",\"email\":\"test-go-create_an_incident_returns_created_response-1668989438@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675469405@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675469405@datadoghq.com\",\"uuid\":\"46e3c6ef-a420-11ed-b1f8-56250c47f0b3\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675469405@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670371777@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670371777@datadoghq.com\",\"uuid\":\"48f7337b-3304-46fc-9e88-23b4dc5d24cc\",\"email\":\"test-go-create_an_incident_returns_created_response-1670371777@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670943350@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670943350@datadoghq.com\",\"uuid\":\"4b432133-ba1b-4edc-ab57-c0250963f250\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670943350@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679098230@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679098230@datadoghq.com\",\"uuid\":\"4b5ba977-c521-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679098230@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675469412@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675469412@datadoghq.com\",\"uuid\":\"4b68a1e2-a420-11ed-b1f8-56250c47f0b3\",\"email\":\"test-go-create_an_incident_returns_created_response-1675469412@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668816648@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668816648@datadoghq.com\",\"uuid\":\"4e5cb15e-f18e-43ba-b115-2a4e62736739\",\"email\":\"test-go-create_an_incident_returns_created_response-1668816648@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603851@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603851@datadoghq.com\",\"uuid\":\"4e6b1824-dc1e-4691-8abd-5ffb968da7eb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603851@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669421474@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669421474@datadoghq.com\",\"uuid\":\"4fdb4327-3660-4aeb-b403-7f7939493f27\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669421474@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670458188@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670458188@datadoghq.com\",\"uuid\":\"50d5408a-1894-4173-9fa1-32209009d9b1\",\"email\":\"test-go-create_an_incident_returns_created_response-1670458188@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679098240@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679098240@datadoghq.com\",\"uuid\":\"5141e45c-c521-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-create_an_incident_returns_created_response-1679098240@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675383094@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675383094@datadoghq.com\",\"uuid\":\"520007b9-a357-11ed-acb5-6e0b90178632\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675383094@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670803787@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670803787@datadoghq.com\",\"uuid\":\"521a78f7-573e-4b67-8e2c-d0dd5d91a265\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670803787@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666743039@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666743039@datadoghq.com\",\"uuid\":\"54b84ea9-ae9f-4159-b226-aba3b432a792\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666743039@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674346295@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674346295@datadoghq.com\",\"uuid\":\"551c3a48-99e9-11ed-a607-1684d7f553f6\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674346295@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678147771@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678147771@datadoghq.com\",\"uuid\":\"557fb06e-bc7c-11ed-be39-625d488bce09\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678147771@datadoghq.com\"},{\"name\":\"test-add_commander_to_an_incident_returns_ok_response-1677691218@datadoghq.com\",\"count\":1,\"handle\":\"test-add_commander_to_an_incident_returns_ok_response-1677691218@datadoghq.com\",\"uuid\":\"56afe5b0-b855-11ed-a706-064bc8586212\",\"email\":\"test-add_commander_to_an_incident_returns_ok_response-1677691218@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675383103@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675383103@datadoghq.com\",\"uuid\":\"56d1cddc-a357-11ed-95c6-eefcd7f14d98\",\"email\":\"test-go-create_an_incident_returns_created_response-1675383103@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670929700@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670929700@datadoghq.com\",\"uuid\":\"5705f818-933e-4ef4-818c-615b06f80fd1\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670929700@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668557521@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668557521@datadoghq.com\",\"uuid\":\"577067f0-c41d-4928-8964-0f7725e8cf68\",\"email\":\"test-go-create_an_incident_returns_created_response-1668557521@datadoghq.com\"},{\"name\":\"test-create_an_incident_returns_created_response-1677691220@datadoghq.com\",\"count\":1,\"handle\":\"test-create_an_incident_returns_created_response-1677691220@datadoghq.com\",\"uuid\":\"57e9dbb7-b855-11ed-ab26-8e492650c256\",\"email\":\"test-create_an_incident_returns_created_response-1677691220@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679702983@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679702983@datadoghq.com\",\"uuid\":\"58287ff7-caa1-11ed-81eb-8227c2cf9828\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679702983@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666829448@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666829448@datadoghq.com\",\"uuid\":\"586e086f-1e29-4689-99b6-641c3218b0a8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666829448@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674346302@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674346302@datadoghq.com\",\"uuid\":\"59b0d36c-99e9-11ed-8968-92ec5048e27c\",\"email\":\"test-go-create_an_incident_returns_created_response-1674346302@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667261546@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667261546@datadoghq.com\",\"uuid\":\"59c9cd2e-cd40-4530-ba50-415bce89b133\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667261546@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678147781@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678147781@datadoghq.com\",\"uuid\":\"5b76378d-bc7c-11ed-ba16-0aeab349e953\",\"email\":\"test-go-create_an_incident_returns_created_response-1678147781@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670976638@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670976638@datadoghq.com\",\"uuid\":\"5baf69e4-9bd6-4c76-b552-2bfee88031b5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670976638@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668298265@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668298265@datadoghq.com\",\"uuid\":\"5c4ecf79-7ffb-47ea-9331-687b04ac9df8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668298265@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671840699@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671840699@datadoghq.com\",\"uuid\":\"5ce42d6d-a0b9-4d0f-893b-aa0b8f30ee5c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671840699@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672445570@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672445570@datadoghq.com\",\"uuid\":\"5d11019d-f1dc-468d-a20a-8e64e7af9494\",\"email\":\"test-go-create_an_incident_returns_created_response-1672445570@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670976646@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670976646@datadoghq.com\",\"uuid\":\"5db9c599-b71f-40c6-84d9-8ca8779004e1\",\"email\":\"test-go-create_an_incident_returns_created_response-1670976646@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679702993@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679702993@datadoghq.com\",\"uuid\":\"5e20a7d6-caa1-11ed-b285-a2593f21064b\",\"email\":\"test-go-create_an_incident_returns_created_response-1679702993@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673223078@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673223078@datadoghq.com\",\"uuid\":\"5f3582c4-06d1-43a3-bab9-b7ece49136a4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673223078@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672791107@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672791107@datadoghq.com\",\"uuid\":\"610753d8-8bc4-11ed-94a1-26632eba8bed\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672791107@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677110986@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677110986@datadoghq.com\",\"uuid\":\"614ff267-b30e-11ed-b3d7-ea098e8dc2bb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677110986@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667088640@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667088640@datadoghq.com\",\"uuid\":\"61d88713-957f-4920-8a3b-65f0ccd79b57\",\"email\":\"test-go-create_an_incident_returns_created_response-1667088640@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670026253@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670026253@datadoghq.com\",\"uuid\":\"623452c3-d694-466a-95b9-140a9c44a1ab\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670026253@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672791115@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672791115@datadoghq.com\",\"uuid\":\"65b38b0e-8bc4-11ed-81c7-fed5bfaa3f3d\",\"email\":\"test-go-create_an_incident_returns_created_response-1672791115@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677110993@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677110993@datadoghq.com\",\"uuid\":\"65e049af-b30e-11ed-82a1-e2db47427de5\",\"email\":\"test-go-create_an_incident_returns_created_response-1677110993@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674778401@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674778401@datadoghq.com\",\"uuid\":\"6847d712-9dd7-11ed-967f-12bf3e4c6b0d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674778401@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667520669@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667520669@datadoghq.com\",\"uuid\":\"6887723d-dbde-4969-bba8-e9b3464645ce\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667520669@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678204931@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678204931@datadoghq.com\",\"uuid\":\"6b9e40b1-bd01-11ed-8bd9-4a4655204cc7\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678204931@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667952700@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667952700@datadoghq.com\",\"uuid\":\"6c22fc34-31d7-4085-948b-d862feb447fe\",\"email\":\"test-go-create_an_incident_returns_created_response-1667952700@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676506273@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676506273@datadoghq.com\",\"uuid\":\"6ca38252-ad8e-11ed-9613-3a90352a946f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676506273@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671149459@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671149459@datadoghq.com\",\"uuid\":\"6ccce5fc-d6a8-416d-921b-f883914b67ad\",\"email\":\"test-go-create_an_incident_returns_created_response-1671149459@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674778408@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674778408@datadoghq.com\",\"uuid\":\"6d0c845f-9dd7-11ed-a399-1a75992a86c7\",\"email\":\"test-go-create_an_incident_returns_created_response-1674778408@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669594231@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669594231@datadoghq.com\",\"uuid\":\"6d550b97-297b-43ea-a3dc-85383cf72fba\",\"email\":\"test-go-create_an_incident_returns_created_response-1669594231@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671927065@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671927065@datadoghq.com\",\"uuid\":\"6d7f7052-6ddb-461f-a49f-6cb5fca6b2c8\",\"email\":\"test-go-create_an_incident_returns_created_response-1671927065@datadoghq.com\"},{\"name\":\"test-add_commander_to_an_incident_returns_ok_response-1677691687@datadoghq.com\",\"count\":1,\"handle\":\"test-add_commander_to_an_incident_returns_ok_response-1677691687@datadoghq.com\",\"uuid\":\"6e0e84e3-b856-11ed-ab26-8e492650c256\",\"email\":\"test-add_commander_to_an_incident_returns_ok_response-1677691687@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675987874@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675987874@datadoghq.com\",\"uuid\":\"6ed45bb9-a8d7-11ed-b51e-c2a468ff72a6\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675987874@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670927769@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670927769@datadoghq.com\",\"uuid\":\"6efabec4-24bc-46bd-8f53-e068f03adbf0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670927769@datadoghq.com\"},{\"name\":\"test-create_an_incident_returns_created_response-1677691689@datadoghq.com\",\"count\":1,\"handle\":\"test-create_an_incident_returns_created_response-1677691689@datadoghq.com\",\"uuid\":\"6f41744d-b856-11ed-a706-064bc8586212\",\"email\":\"test-create_an_incident_returns_created_response-1677691689@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670717462@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670717462@datadoghq.com\",\"uuid\":\"70532155-9800-46d9-89ed-bd41347c3dfd\",\"email\":\"test-go-create_an_incident_returns_created_response-1670717462@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676506281@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676506281@datadoghq.com\",\"uuid\":\"713c4001-ad8e-11ed-be7d-0ec0d643006a\",\"email\":\"test-go-create_an_incident_returns_created_response-1676506281@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678204941@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678204941@datadoghq.com\",\"uuid\":\"71cb7181-bd01-11ed-8700-9293738b117d\",\"email\":\"test-go-create_an_incident_returns_created_response-1678204941@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671322271@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671322271@datadoghq.com\",\"uuid\":\"7247d247-e798-4af5-b9ce-7bf786c4d0c7\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671322271@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672359091@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672359091@datadoghq.com\",\"uuid\":\"73546355-1adc-4289-908a-2f6fae7fc9fa\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672359091@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675987882@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675987882@datadoghq.com\",\"uuid\":\"738ccf6d-a8d7-11ed-ad7e-6ed4f1c67dea\",\"email\":\"test-go-create_an_incident_returns_created_response-1675987882@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677543090@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677543090@datadoghq.com\",\"uuid\":\"73a70dc9-b6fc-11ed-a3d7-a2295215c227\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677543090@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669507839@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669507839@datadoghq.com\",\"uuid\":\"7571121d-a654-4df8-9afa-e638f17d53bb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669507839@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674432680@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674432680@datadoghq.com\",\"uuid\":\"76c071c8-9ab2-11ed-8c68-2a913616fde8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674432680@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674864754@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674864754@datadoghq.com\",\"uuid\":\"7715eb6d-9ea0-11ed-8e78-767557a2485a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674864754@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677543098@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677543098@datadoghq.com\",\"uuid\":\"785f915d-b6fc-11ed-ad05-76e4602e1079\",\"email\":\"test-go-create_an_incident_returns_created_response-1677543098@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673395882@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673395882@datadoghq.com\",\"uuid\":\"7ac9b3b9-9144-11ed-82e3-622adeb45fa9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673395882@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674432688@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674432688@datadoghq.com\",\"uuid\":\"7b5907f1-9ab2-11ed-8c68-2a913616fde8\",\"email\":\"test-go-create_an_incident_returns_created_response-1674432688@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672877465@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672877465@datadoghq.com\",\"uuid\":\"7ba05e4d-f9a0-44e2-aa8c-bcda7adac2e5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672877465@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674864762@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674864762@datadoghq.com\",\"uuid\":\"7bc2a11e-9ea0-11ed-8c38-7ad981f4abb4\",\"email\":\"test-go-create_an_incident_returns_created_response-1674864762@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668384652@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668384652@datadoghq.com\",\"uuid\":\"7da5fc01-ccbd-4679-8149-cb22fe402bb3\",\"email\":\"test-go-create_an_incident_returns_created_response-1668384652@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667779824@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667779824@datadoghq.com\",\"uuid\":\"7dd124ba-7343-4882-b700-c44374efa8e3\",\"email\":\"test-go-create_an_incident_returns_created_response-1667779824@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673914292@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673914292@datadoghq.com\",\"uuid\":\"7f3e8ad2-95fb-11ed-b93e-b6681b4e2484\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673914292@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673395889@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673395889@datadoghq.com\",\"uuid\":\"7f7afd0e-9144-11ed-82e3-622adeb45fa9\",\"email\":\"test-go-create_an_incident_returns_created_response-1673395889@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676592635@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676592635@datadoghq.com\",\"uuid\":\"8009c2e2-ae57-11ed-b4cb-a681084bf13a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676592635@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670926105@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670926105@datadoghq.com\",\"uuid\":\"81831280-6cb1-4a01-9dc9-f68b1405f8f6\",\"email\":\"test-go-create_an_incident_returns_created_response-1670926105@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677197369@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677197369@datadoghq.com\",\"uuid\":\"81da5714-b3d7-11ed-97bb-cad2b20710fd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677197369@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678666250@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678666250@datadoghq.com\",\"uuid\":\"82eadb7f-c133-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678666250@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673914300@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673914300@datadoghq.com\",\"uuid\":\"84060fed-95fb-11ed-b93e-b6681b4e2484\",\"email\":\"test-go-create_an_incident_returns_created_response-1673914300@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670199054@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670199054@datadoghq.com\",\"uuid\":\"847f57aa-1b32-4eee-8447-e6eef1f6744f\",\"email\":\"test-go-create_an_incident_returns_created_response-1670199054@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676592642@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676592642@datadoghq.com\",\"uuid\":\"848026b5-ae57-11ed-9ecb-824f74ccf3e4\",\"email\":\"test-go-create_an_incident_returns_created_response-1676592642@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670630968@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670630968@datadoghq.com\",\"uuid\":\"853cce16-d7d3-4bd6-8f99-b1eab0407cf1\",\"email\":\"test-go-create_an_incident_returns_created_response-1670630968@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672099877@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672099877@datadoghq.com\",\"uuid\":\"862d085b-48ce-446e-a74f-ae3538d623f5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672099877@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674951109@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674951109@datadoghq.com\",\"uuid\":\"866af7b6-9f69-11ed-8c38-7ad981f4abb4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674951109@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677197377@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677197377@datadoghq.com\",\"uuid\":\"86a13258-b3d7-11ed-a605-a260cf3212a9\",\"email\":\"test-go-create_an_incident_returns_created_response-1677197377@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673827975@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673827975@datadoghq.com\",\"uuid\":\"86bc89ca-9532-11ed-bf65-7630e111ac00\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673827975@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667434343@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667434343@datadoghq.com\",\"uuid\":\"88c2cdf6-2769-4e68-9503-38d3f166ff1a\",\"email\":\"test-go-create_an_incident_returns_created_response-1667434343@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678666260@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678666260@datadoghq.com\",\"uuid\":\"88ce8004-c133-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1678666260@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679270991@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679270991@datadoghq.com\",\"uuid\":\"89229fdb-c6b3-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679270991@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668643791@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668643791@datadoghq.com\",\"uuid\":\"8a2d2c9d-c478-4a74-94a8-cabb28bd1473\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668643791@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674951116@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674951116@datadoghq.com\",\"uuid\":\"8ae38d89-9f69-11ed-bfa9-f2483e31eab5\",\"email\":\"test-go-create_an_incident_returns_created_response-1674951116@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673827983@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673827983@datadoghq.com\",\"uuid\":\"8b7b570e-9532-11ed-bf65-7630e111ac00\",\"email\":\"test-go-create_an_incident_returns_created_response-1673827983@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676074256@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676074256@datadoghq.com\",\"uuid\":\"8e41e3a8-a9a0-11ed-a060-46b9814ce648\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676074256@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672704719@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672704719@datadoghq.com\",\"uuid\":\"8e85e36f-5ccd-4052-a34e-d7338178914e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672704719@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679271002@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679271002@datadoghq.com\",\"uuid\":\"8f25b885-c6b3-11ed-9949-f20a22a554f2\",\"email\":\"test-go-create_an_incident_returns_created_response-1679271002@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667866310@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667866310@datadoghq.com\",\"uuid\":\"8f8399af-4d57-41a1-91a3-37c29fb62092\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667866310@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670630960@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670630960@datadoghq.com\",\"uuid\":\"8fa60296-198c-4113-8f21-0ba09e4fd83e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670630960@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679789405@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679789405@datadoghq.com\",\"uuid\":\"8fb58f8b-cb6a-11ed-be83-92f82eb96735\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679789405@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666829456@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666829456@datadoghq.com\",\"uuid\":\"91a8dc0a-0c63-4411-b9ab-39ec37dc2eee\",\"email\":\"test-go-create_an_incident_returns_created_response-1666829456@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669939802@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669939802@datadoghq.com\",\"uuid\":\"92c4c4e2-d881-485c-9668-0aa68239c513\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669939802@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676074265@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676074265@datadoghq.com\",\"uuid\":\"936c4650-a9a0-11ed-af98-1a32d7edfd9d\",\"email\":\"test-go-create_an_incident_returns_created_response-1676074265@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667088632@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667088632@datadoghq.com\",\"uuid\":\"93e8df0e-729e-4d2f-b0a4-9495ffb37b06\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667088632@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673482254@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673482254@datadoghq.com\",\"uuid\":\"94c9bf7f-920d-11ed-9cec-222dbf547024\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673482254@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670598792@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670598792@datadoghq.com\",\"uuid\":\"94d92a17-4768-48dd-97b4-ab32fee4e33b\",\"email\":\"test-go-create_an_incident_returns_created_response-1670598792@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669853467@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669853467@datadoghq.com\",\"uuid\":\"94f7179d-40a0-4790-9436-6080eb0db034\",\"email\":\"test-go-create_an_incident_returns_created_response-1669853467@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679789415@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679789415@datadoghq.com\",\"uuid\":\"959ada1b-cb6a-11ed-9f7f-0e85fe61e6ee\",\"email\":\"test-go-create_an_incident_returns_created_response-1679789415@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669075853@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669075853@datadoghq.com\",\"uuid\":\"96796850-b278-4313-a726-9cf5c832fe30\",\"email\":\"test-go-create_an_incident_returns_created_response-1669075853@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676679006@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676679006@datadoghq.com\",\"uuid\":\"99579994-af20-11ed-94c9-462a25af4eaf\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676679006@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673482262@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673482262@datadoghq.com\",\"uuid\":\"995b112e-920d-11ed-9888-e278e4206645\",\"email\":\"test-go-create_an_incident_returns_created_response-1673482262@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670594544@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670594544@datadoghq.com\",\"uuid\":\"9b26b565-e0c1-4777-a693-553a8d5cb243\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670594544@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670285415@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670285415@datadoghq.com\",\"uuid\":\"9b9fe3ac-f73b-43a5-b570-43d156e07ea9\",\"email\":\"test-go-create_an_incident_returns_created_response-1670285415@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670926595@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670926595@datadoghq.com\",\"uuid\":\"9c09fbea-fce4-4c02-9a45-ec845bab938a\",\"email\":\"test-go-create_an_incident_returns_created_response-1670926595@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670544898@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670544898@datadoghq.com\",\"uuid\":\"9c58a1dc-6beb-4390-928e-ed9d95b13b30\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670544898@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667693441@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667693441@datadoghq.com\",\"uuid\":\"9ccf5d51-55b4-43e0-ad79-7819a8d223f0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667693441@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676679013@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676679013@datadoghq.com\",\"uuid\":\"9dd94922-af20-11ed-94c9-462a25af4eaf\",\"email\":\"test-go-create_an_incident_returns_created_response-1676679013@datadoghq.com\"},{\"name\":\"test-add_commander_to_an_incident_returns_ok_response-1675266399@datadoghq.com\",\"count\":1,\"handle\":\"test-add_commander_to_an_incident_returns_ok_response-1675266399@datadoghq.com\",\"uuid\":\"9defa75d-a247-11ed-97de-223323d49fa6\",\"email\":\"test-add_commander_to_an_incident_returns_ok_response-1675266399@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666979690@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666979690@datadoghq.com\",\"uuid\":\"9e072255-5184-44a8-ae5f-a8e70ec5037c\",\"email\":\"test-go-create_an_incident_returns_created_response-1666979690@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678752625@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678752625@datadoghq.com\",\"uuid\":\"9e85bf56-c1fc-11ed-b4e0-566658a732f8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678752625@datadoghq.com\"},{\"name\":\"test-create_an_incident_returns_created_response-1675266400@datadoghq.com\",\"count\":1,\"handle\":\"test-create_an_incident_returns_created_response-1675266400@datadoghq.com\",\"uuid\":\"9ee1d254-a247-11ed-92ef-6ad132878933\",\"email\":\"test-create_an_incident_returns_created_response-1675266400@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668125498@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668125498@datadoghq.com\",\"uuid\":\"9f5a1546-bccf-4b9f-a25f-96fb87bd7bfc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668125498@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669162248@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669162248@datadoghq.com\",\"uuid\":\"9f88a5e0-9842-4fd1-95c7-7f85edad3874\",\"email\":\"test-go-create_an_incident_returns_created_response-1669162248@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666981017@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666981017@datadoghq.com\",\"uuid\":\"a136a629-05cd-4a2f-b925-e1d74c6a69ad\",\"email\":\"test-go-create_an_incident_returns_created_response-1666981017@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670803795@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670803795@datadoghq.com\",\"uuid\":\"a18c9430-e993-488f-8b5c-3ad27997e55c\",\"email\":\"test-go-create_an_incident_returns_created_response-1670803795@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675555889@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675555889@datadoghq.com\",\"uuid\":\"a3644be2-a4e9-11ed-b7fb-1ea641c369ef\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675555889@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672704726@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672704726@datadoghq.com\",\"uuid\":\"a4230eac-f78e-407d-8551-b07c6476622b\",\"email\":\"test-go-create_an_incident_returns_created_response-1672704726@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678752635@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678752635@datadoghq.com\",\"uuid\":\"a4aff885-c1fc-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1678752635@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675555897@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675555897@datadoghq.com\",\"uuid\":\"a813f7f3-a4e9-11ed-9388-1ad521c601b9\",\"email\":\"test-go-create_an_incident_returns_created_response-1675555897@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674087020@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674087020@datadoghq.com\",\"uuid\":\"a96c393b-978d-11ed-b425-4e7b3187c657\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674087020@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669767038@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669767038@datadoghq.com\",\"uuid\":\"a9977d83-cddd-4644-ba02-dc1a86c0293e\",\"email\":\"test-go-create_an_incident_returns_created_response-1669767038@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678234243@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678234243@datadoghq.com\",\"uuid\":\"aabc794c-bd45-11ed-9ea1-9ebf47de1fdb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678234243@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667606997@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667606997@datadoghq.com\",\"uuid\":\"ab5bb1f0-b9b2-43da-bd50-e5ba7315fc29\",\"email\":\"test-go-create_an_incident_returns_created_response-1667606997@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673568622@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673568622@datadoghq.com\",\"uuid\":\"abedb0a5-92d6-11ed-a082-5215624996c0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673568622@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672272649@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672272649@datadoghq.com\",\"uuid\":\"ac484716-4260-4fd9-8288-1d4a6b0d39da\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672272649@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674087028@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674087028@datadoghq.com\",\"uuid\":\"ade2bf85-978d-11ed-b425-4e7b3187c657\",\"email\":\"test-go-create_an_incident_returns_created_response-1674087028@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673568629@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673568629@datadoghq.com\",\"uuid\":\"b0771f90-92d6-11ed-a082-5215624996c0\",\"email\":\"test-go-create_an_incident_returns_created_response-1673568629@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672359099@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672359099@datadoghq.com\",\"uuid\":\"b12b859b-c89a-4023-84e6-2634f93fff00\",\"email\":\"test-go-create_an_incident_returns_created_response-1672359099@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678234254@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678234254@datadoghq.com\",\"uuid\":\"b155e604-bd45-11ed-ba70-22d478e15cef\",\"email\":\"test-go-create_an_incident_returns_created_response-1678234254@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667347843@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667347843@datadoghq.com\",\"uuid\":\"b2f195b3-53b7-4095-bfb8-90538edb12f7\",\"email\":\"test-go-create_an_incident_returns_created_response-1667347843@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677715854@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677715854@datadoghq.com\",\"uuid\":\"b2fc8929-b88e-11ed-8da2-b6d07de5d20c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677715854@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667779816@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667779816@datadoghq.com\",\"uuid\":\"b335a7f4-a66e-41ed-b4aa-982c5b76ffc1\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667779816@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672963863@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672963863@datadoghq.com\",\"uuid\":\"b39fcb21-440b-4bd8-bc55-103259b74a57\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672963863@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670890374@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670890374@datadoghq.com\",\"uuid\":\"b3ccf662-7d0d-4a45-9cb3-5ffcb089012c\",\"email\":\"test-go-create_an_incident_returns_created_response-1670890374@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669594223@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669594223@datadoghq.com\",\"uuid\":\"b4a8f9a4-28a9-4311-a813-8149eb5264f4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669594223@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672963870@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672963870@datadoghq.com\",\"uuid\":\"b631798d-d17b-44ab-af5c-f075df907ddd\",\"email\":\"test-go-create_an_incident_returns_created_response-1672963870@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677715861@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677715861@datadoghq.com\",\"uuid\":\"b768b7b4-b88e-11ed-a132-2aa63a904ba0\",\"email\":\"test-go-create_an_incident_returns_created_response-1677715861@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671408605@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671408605@datadoghq.com\",\"uuid\":\"b7d64361-36fd-4ebd-9438-949f60ec3745\",\"email\":\"test-go-create_an_incident_returns_created_response-1671408605@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670604391@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670604391@datadoghq.com\",\"uuid\":\"b8fa89c4-34f6-4b69-a654-e3671ce743a0\",\"email\":\"test-go-create_an_incident_returns_created_response-1670604391@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668471103@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668471103@datadoghq.com\",\"uuid\":\"b9d64d92-66de-41cc-9164-b83b7b74439f\",\"email\":\"test-go-create_an_incident_returns_created_response-1668471103@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674000722@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674000722@datadoghq.com\",\"uuid\":\"bbd69d76-96c4-11ed-b802-922cd9596b23\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674000722@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669853460@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669853460@datadoghq.com\",\"uuid\":\"bc036552-b05e-4ffd-8dd1-44dbe725a6ec\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669853460@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670544906@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670544906@datadoghq.com\",\"uuid\":\"bcb9456d-8b65-4369-b2c4-49ee5e4c14b7\",\"email\":\"test-go-create_an_incident_returns_created_response-1670544906@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674519128@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674519128@datadoghq.com\",\"uuid\":\"bd7e4c91-9b7b-11ed-882c-9aa2ca31c98c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674519128@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676765396@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676765396@datadoghq.com\",\"uuid\":\"bdc08c5f-afe9-11ed-84e6-a6c768ad21b4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676765396@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667952692@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667952692@datadoghq.com\",\"uuid\":\"be421a73-22de-48d3-be3f-1a269016ff83\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667952692@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675037533@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675037533@datadoghq.com\",\"uuid\":\"bf08166d-a032-11ed-88af-be56a8628f3f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675037533@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674000730@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674000730@datadoghq.com\",\"uuid\":\"c09c4f30-96c4-11ed-9f1c-fe165ba0981c\",\"email\":\"test-go-create_an_incident_returns_created_response-1674000730@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666915811@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666915811@datadoghq.com\",\"uuid\":\"c20da1a9-657e-4b5a-9159-9f4d324f51fc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666915811@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675642269@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675642269@datadoghq.com\",\"uuid\":\"c22b3e65-a5b2-11ed-9388-1ad521c601b9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675642269@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671495039@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671495039@datadoghq.com\",\"uuid\":\"c23885b0-3659-4d47-b5c9-16c0965dc7d9\",\"email\":\"test-go-create_an_incident_returns_created_response-1671495039@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679357416@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679357416@datadoghq.com\",\"uuid\":\"c238d04b-c77c-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679357416@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674519135@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674519135@datadoghq.com\",\"uuid\":\"c23e01c9-9b7b-11ed-8af1-7201c2784402\",\"email\":\"test-go-create_an_incident_returns_created_response-1674519135@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676765404@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676765404@datadoghq.com\",\"uuid\":\"c27df074-afe9-11ed-bce8-0a557ccee039\",\"email\":\"test-go-create_an_incident_returns_created_response-1676765404@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668730249@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668730249@datadoghq.com\",\"uuid\":\"c36f2608-4650-4331-b810-1dc5500c1356\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668730249@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670924666@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670924666@datadoghq.com\",\"uuid\":\"c381f80b-8a88-47bd-9dbe-77720d784a52\",\"email\":\"test-go-create_an_incident_returns_created_response-1670924666@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669075846@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669075846@datadoghq.com\",\"uuid\":\"c39f3031-906f-4679-a817-9b8f072254bb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669075846@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675037541@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675037541@datadoghq.com\",\"uuid\":\"c3e2d867-a032-11ed-88af-be56a8628f3f\",\"email\":\"test-go-create_an_incident_returns_created_response-1675037541@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667002236@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667002236@datadoghq.com\",\"uuid\":\"c567f0fa-6f70-42e3-855e-2ae1d2ed7243\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667002236@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668125506@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668125506@datadoghq.com\",\"uuid\":\"c60a0f7d-3f36-4966-a63f-f1f77dca030a\",\"email\":\"test-go-create_an_incident_returns_created_response-1668125506@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676247007@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676247007@datadoghq.com\",\"uuid\":\"c61f4ec1-ab32-11ed-8972-1eb0f4245ee5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676247007@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675642277@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675642277@datadoghq.com\",\"uuid\":\"c6d4d92c-a5b2-11ed-b7fb-1ea641c369ef\",\"email\":\"test-go-create_an_incident_returns_created_response-1675642277@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668903116@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668903116@datadoghq.com\",\"uuid\":\"c7319ecf-1451-4031-817a-5bef597d5ac9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668903116@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670604389@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670604389@datadoghq.com\",\"uuid\":\"c7b7b86f-5268-4c20-b223-afc7923d54b9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670604389@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679357426@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679357426@datadoghq.com\",\"uuid\":\"c811af38-c77c-11ed-9949-f20a22a554f2\",\"email\":\"test-go-create_an_incident_returns_created_response-1679357426@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673309503@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673309503@datadoghq.com\",\"uuid\":\"c8bbd0d2-53af-4fc0-a392-1c1c0871fb49\",\"email\":\"test-go-create_an_incident_returns_created_response-1673309503@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671754265@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671754265@datadoghq.com\",\"uuid\":\"c8e6753d-801c-40b5-9dd8-c98feae31df9\",\"email\":\"test-go-create_an_incident_returns_created_response-1671754265@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679184770@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679184770@datadoghq.com\",\"uuid\":\"c960ccca-c5ea-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679184770@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926103@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926103@datadoghq.com\",\"uuid\":\"c9f53cd7-2f1e-4491-ae28-796ace9db6fc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926103@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670371766@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670371766@datadoghq.com\",\"uuid\":\"cac0f70c-c327-4965-b9f9-62190c96b0dc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670371766@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676247015@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676247015@datadoghq.com\",\"uuid\":\"caf6ae98-ab32-11ed-bddd-722daf28c490\",\"email\":\"test-go-create_an_incident_returns_created_response-1676247015@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673223085@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673223085@datadoghq.com\",\"uuid\":\"cc0a6e87-ce4b-4313-b0a8-8b40179bcb68\",\"email\":\"test-go-create_an_incident_returns_created_response-1673223085@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671235873@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671235873@datadoghq.com\",\"uuid\":\"cc1891b1-9a95-4af6-98d7-95ac53c4e6ff\",\"email\":\"test-go-create_an_incident_returns_created_response-1671235873@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679184781@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679184781@datadoghq.com\",\"uuid\":\"cf9a8e87-c5ea-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-create_an_incident_returns_created_response-1679184781@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670943352@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670943352@datadoghq.com\",\"uuid\":\"d0330853-c731-4097-a353-fd1014abde80\",\"email\":\"test-go-create_an_incident_returns_created_response-1670943352@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667175027@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667175027@datadoghq.com\",\"uuid\":\"d1d53f95-4adc-4e7b-896b-1e75ba345e9f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667175027@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675728631@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675728631@datadoghq.com\",\"uuid\":\"d5aa246d-a67b-11ed-9567-ba00348e1a7a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675728631@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677370168@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677370168@datadoghq.com\",\"uuid\":\"d654fb42-b569-11ed-827a-8e2840b25db2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677370168@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676851766@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676851766@datadoghq.com\",\"uuid\":\"d6780612-b0b2-11ed-a714-aa504cceab29\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676851766@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672186280@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672186280@datadoghq.com\",\"uuid\":\"d70a12ec-c10f-47dd-9892-cebecfd6ffb0\",\"email\":\"test-go-create_an_incident_returns_created_response-1672186280@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670199046@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670199046@datadoghq.com\",\"uuid\":\"d968eb97-03c1-436e-835f-9ed06d352716\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670199046@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670890367@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670890367@datadoghq.com\",\"uuid\":\"d9a19936-2b5c-4fbc-b802-7a3dbf639c1b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670890367@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675728639@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675728639@datadoghq.com\",\"uuid\":\"da3ac6ee-a67b-11ed-bd1e-766989ec1239\",\"email\":\"test-go-create_an_incident_returns_created_response-1675728639@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677370176@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677370176@datadoghq.com\",\"uuid\":\"dac22963-b569-11ed-a797-c2fe525de487\",\"email\":\"test-go-create_an_incident_returns_created_response-1677370176@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676851774@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676851774@datadoghq.com\",\"uuid\":\"db0404af-b0b2-11ed-84e6-a6c768ad21b4\",\"email\":\"test-go-create_an_incident_returns_created_response-1676851774@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673136657@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673136657@datadoghq.com\",\"uuid\":\"dcbcad43-008c-4c4c-8c35-ee5ade081d9e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673136657@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670026261@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670026261@datadoghq.com\",\"uuid\":\"ddd99aa3-c7e5-4dff-8099-10588153e164\",\"email\":\"test-go-create_an_incident_returns_created_response-1670026261@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671495031@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671495031@datadoghq.com\",\"uuid\":\"de662b96-845c-45b9-a359-b0b763a45a61\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671495031@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670717454@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670717454@datadoghq.com\",\"uuid\":\"def01997-ae71-49bc-93ea-ff9287d606c7\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670717454@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670112672@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670112672@datadoghq.com\",\"uuid\":\"e09cd088-50f3-4a99-8222-0917d760f4fb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670112672@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670924664@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670924664@datadoghq.com\",\"uuid\":\"e0a87080-eb76-45db-9230-ed4ef629b0d2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670924664@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678839065@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678839065@datadoghq.com\",\"uuid\":\"e1073fac-c2c5-11ed-b4e0-566658a732f8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678839065@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668730257@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668730257@datadoghq.com\",\"uuid\":\"e21b3798-5777-4777-919d-e5ff6fce422a\",\"email\":\"test-go-create_an_incident_returns_created_response-1668730257@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667347836@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667347836@datadoghq.com\",\"uuid\":\"e2267bdc-1a12-4210-869e-60d0faa477bd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667347836@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669248667@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669248667@datadoghq.com\",\"uuid\":\"e42f7f54-0e83-4c40-b112-887402a7ba6b\",\"email\":\"test-go-create_an_incident_returns_created_response-1669248667@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669335019@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669335019@datadoghq.com\",\"uuid\":\"e485ea7a-9a64-44dd-a774-d3f31e869f6e\",\"email\":\"test-go-create_an_incident_returns_created_response-1669335019@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673309495@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673309495@datadoghq.com\",\"uuid\":\"e6615793-c00d-45e8-b8d6-ec1c96309d81\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673309495@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669939809@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669939809@datadoghq.com\",\"uuid\":\"e6d0a0d2-e642-4b20-aa66-34ab638f4d9f\",\"email\":\"test-go-create_an_incident_returns_created_response-1669939809@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678839075@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678839075@datadoghq.com\",\"uuid\":\"e7113f68-c2c5-11ed-b4e0-566658a732f8\",\"email\":\"test-go-create_an_incident_returns_created_response-1678839075@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672531837@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672531837@datadoghq.com\",\"uuid\":\"e7403ce3-c0a2-4bae-8823-45a21c310656\",\"email\":\"test-go-create_an_incident_returns_created_response-1672531837@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678320674@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678320674@datadoghq.com\",\"uuid\":\"e7d1ba87-be0e-11ed-be0d-5609971d255a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678320674@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672618346@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672618346@datadoghq.com\",\"uuid\":\"e84ce941-4c3d-4b79-b736-619897785a82\",\"email\":\"test-go-create_an_incident_returns_created_response-1672618346@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668298272@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668298272@datadoghq.com\",\"uuid\":\"e9b00493-1235-49f2-b229-06ee3afc79b0\",\"email\":\"test-go-create_an_incident_returns_created_response-1668298272@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676160739@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676160739@datadoghq.com\",\"uuid\":\"e9f6df6e-aa69-11ed-8972-1eb0f4245ee5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676160739@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677629617@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677629617@datadoghq.com\",\"uuid\":\"e9ffa5e5-b7c5-11ed-a50e-226546b1da54\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677629617@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679443813@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679443813@datadoghq.com\",\"uuid\":\"eb03f9a6-c845-11ed-a1e1-c6385b25b934\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679443813@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678407009@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678407009@datadoghq.com\",\"uuid\":\"eb834f42-bed7-11ed-a89b-0ebbb850607d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678407009@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674605534@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674605534@datadoghq.com\",\"uuid\":\"ebb5a53d-9c44-11ed-97cc-a697d2568caf\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674605534@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669507847@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669507847@datadoghq.com\",\"uuid\":\"ebf0848a-6b21-4736-ad2a-d93daf59fd15\",\"email\":\"test-go-create_an_incident_returns_created_response-1669507847@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671322279@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671322279@datadoghq.com\",\"uuid\":\"ebf23d4b-53c8-467a-bbb0-636c11b3ffee\",\"email\":\"test-go-create_an_incident_returns_created_response-1671322279@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667606989@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667606989@datadoghq.com\",\"uuid\":\"ec1ed77b-1d70-4727-b2ac-f478a37e3b8c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667606989@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678320684@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678320684@datadoghq.com\",\"uuid\":\"edaec5b4-be0e-11ed-be0d-5609971d255a\",\"email\":\"test-go-create_an_incident_returns_created_response-1678320684@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671062990@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671062990@datadoghq.com\",\"uuid\":\"ee1307d6-f262-47be-b312-0f77517487b8\",\"email\":\"test-go-create_an_incident_returns_created_response-1671062990@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679875893@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679875893@datadoghq.com\",\"uuid\":\"ee8bd235-cc33-11ed-b285-a2593f21064b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679875893@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676160746@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676160746@datadoghq.com\",\"uuid\":\"eeac3af0-aa69-11ed-bddd-722daf28c490\",\"email\":\"test-go-create_an_incident_returns_created_response-1676160746@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677629625@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677629625@datadoghq.com\",\"uuid\":\"eeb210e2-b7c5-11ed-8e20-4a014c845df9\",\"email\":\"test-go-create_an_incident_returns_created_response-1677629625@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672272657@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672272657@datadoghq.com\",\"uuid\":\"efc56647-04f9-430b-abcd-78fd73135dc9\",\"email\":\"test-go-create_an_incident_returns_created_response-1672272657@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674605542@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674605542@datadoghq.com\",\"uuid\":\"f090690e-9c44-11ed-bd03-d63a15ea0a5e\",\"email\":\"test-go-create_an_incident_returns_created_response-1674605542@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674173469@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674173469@datadoghq.com\",\"uuid\":\"f1130564-9856-11ed-8928-461f5552e193\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674173469@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679443823@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679443823@datadoghq.com\",\"uuid\":\"f116f34c-c845-11ed-8b17-fe25dd6b2d5d\",\"email\":\"test-go-create_an_incident_returns_created_response-1679443823@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678407019@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678407019@datadoghq.com\",\"uuid\":\"f182abdf-bed7-11ed-b4e0-566658a732f8\",\"email\":\"test-go-create_an_incident_returns_created_response-1678407019@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677283885@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677283885@datadoghq.com\",\"uuid\":\"f185aa8c-b4a0-11ed-a797-c2fe525de487\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677283885@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677974947@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677974947@datadoghq.com\",\"uuid\":\"f24bcc61-bae9-11ed-a3f2-e6671bdc78dd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677974947@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677808304@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677808304@datadoghq.com\",\"uuid\":\"f352f9e3-b965-11ed-b5bf-a606768bc197\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677808304@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679875903@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679875903@datadoghq.com\",\"uuid\":\"f48dd27a-cc33-11ed-9f7f-0e85fe61e6ee\",\"email\":\"test-go-create_an_incident_returns_created_response-1679875903@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675123953@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675123953@datadoghq.com\",\"uuid\":\"f59374fc-a0fb-11ed-a5e8-da207d422d98\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675123953@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674173477@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674173477@datadoghq.com\",\"uuid\":\"f5a1e00e-9856-11ed-a432-b611e40f0c37\",\"email\":\"test-go-create_an_incident_returns_created_response-1674173477@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675296611@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675296611@datadoghq.com\",\"uuid\":\"f5d92ebe-a28d-11ed-b39d-128f55cb4249\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675296611@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677283893@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677283893@datadoghq.com\",\"uuid\":\"f611f5ab-b4a0-11ed-a797-c2fe525de487\",\"email\":\"test-go-create_an_incident_returns_created_response-1677283893@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670598789@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670598789@datadoghq.com\",\"uuid\":\"f6a52e1f-a5fc-4498-b0f2-69fee17a4142\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670598789@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677974954@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677974954@datadoghq.com\",\"uuid\":\"f6c58d1e-bae9-11ed-8f91-4668bdad4d01\",\"email\":\"test-go-create_an_incident_returns_created_response-1677974954@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677808311@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677808311@datadoghq.com\",\"uuid\":\"f7f12039-b965-11ed-b5bf-a606768bc197\",\"email\":\"test-go-create_an_incident_returns_created_response-1677808311@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668211896@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668211896@datadoghq.com\",\"uuid\":\"f8313d55-863c-4872-8f01-5a74e04418d2\",\"email\":\"test-go-create_an_incident_returns_created_response-1668211896@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668816640@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668816640@datadoghq.com\",\"uuid\":\"f92f0fb9-f3fd-42ff-955a-744cc01ee9a4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668816640@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670928947@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670928947@datadoghq.com\",\"uuid\":\"f9e94170-240d-43ed-a3e4-dec65a38531b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670928947@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675123961@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675123961@datadoghq.com\",\"uuid\":\"fa40ced7-a0fb-11ed-a5e3-d6024dc128f7\",\"email\":\"test-go-create_an_incident_returns_created_response-1675123961@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675296619@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675296619@datadoghq.com\",\"uuid\":\"fa6d1a19-a28d-11ed-9c57-8a8107f52a6e\",\"email\":\"test-go-create_an_incident_returns_created_response-1675296619@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677888634@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677888634@datadoghq.com\",\"uuid\":\"fbd2af3f-ba20-11ed-a3f2-e6671bdc78dd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677888634@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670603299@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670603299@datadoghq.com\",\"uuid\":\"fc061455-8536-4ea0-8a7c-d6bd072c5b89\",\"email\":\"test-go-create_an_incident_returns_created_response-1670603299@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671408597@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671408597@datadoghq.com\",\"uuid\":\"fd20bff8-5c0c-4eb2-941b-c0d7669f996a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671408597@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670603854@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670603854@datadoghq.com\",\"uuid\":\"fdef06c9-5a21-44bb-afb4-14b055649e5b\",\"email\":\"test-go-create_an_incident_returns_created_response-1670603854@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667866318@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667866318@datadoghq.com\",\"uuid\":\"fe4f352d-a8b5-435e-a18c-9914eb88c865\",\"email\":\"test-go-create_an_incident_returns_created_response-1667866318@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926593@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926593@datadoghq.com\",\"uuid\":\"ff2e2858-cf28-44c7-98aa-be52cef329be\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926593@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675815030@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675815030@datadoghq.com\",\"uuid\":\"ff9a7c79-a744-11ed-9567-ba00348e1a7a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675815030@datadoghq.com\"}]},\"incidents\":[{\"data\":{\"type\":\"incidents\",\"attributes\":{\"customer_impact_end\":null,\"time_to_detect\":0,\"customer_impact_start\":null,\"created_by_uuid\":null,\"title\":\"Test-Go-Update_an_incident_todo_returns_OK_response-1679962375\",\"non_datadog_creator\":null,\"last_modified_by_uuid\":null,\"state\":\"active\",\"commander\":null,\"case_id\":null,\"creation_idempotency_key\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"summary\":{\"type\":\"textbox\",\"value\":null},\"services\":{\"type\":\"autocomplete\",\"value\":null}},\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"name\":\"CI Account\",\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"},\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"time_to_resolve\":0,\"resolved\":null,\"created\":\"2023-03-28T00:12:55+00:00\",\"time_to_repair\":0,\"customer_impact_scope\":\"\",\"detected\":\"2023-03-28T00:12:55+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"name\":\"CI Account\",\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"},\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1679962375,\"end\":null}]}}},\"public_id\":128961,\"time_to_internal_response\":0,\"modified\":\"2023-03-28T00:12:55+00:00\",\"severity\":\"UNKNOWN\",\"notification_handles\":null,\"visibility\":\"organization\",\"customer_impacted\":false,\"customer_impact_duration\":0},\"relationships\":{\"commander_user\":{\"data\":null},\"responders\":{\"data\":[{\"type\":\"incident_responders\",\"id\":\"fbc19b87-ff03-5b2a-915d-75501ad44917\"}]},\"attachments\":{\"data\":[]},\"impacts\":{\"data\":[]},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"user_defined_fields\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"integrations\":{\"data\":[]}},\"id\":\"aa819dbd-9016-5c31-84c5-48ff15b845cf\"}},{\"data\":{\"type\":\"incidents\",\"attributes\":{\"customer_impact_end\":null,\"time_to_detect\":0,\"customer_impact_start\":null,\"created_by_uuid\":null,\"title\":\"Test-Go-Update_an_existing_incident_returns_OK_response-1679962372-updated\",\"non_datadog_creator\":null,\"last_modified_by_uuid\":null,\"state\":\"resolved\",\"commander\":null,\"case_id\":null,\"creation_idempotency_key\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"resolved\"}},\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"name\":\"CI Account\",\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"},\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"time_to_resolve\":2,\"resolved\":\"2023-03-28T00:12:54+00:00\",\"created\":\"2023-03-28T00:12:52+00:00\",\"time_to_repair\":0,\"customer_impact_scope\":\"\",\"detected\":\"2023-03-28T00:12:52+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"name\":\"CI Account\",\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"},\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":3,\"spans\":[{\"start\":1679962372,\"end\":1679962375}]},\"resolved\":{\"duration\":0,\"spans\":[{\"start\":1679962375,\"end\":null}]}}},\"public_id\":128960,\"time_to_internal_response\":0,\"modified\":\"2023-03-28T00:12:54+00:00\",\"severity\":\"UNKNOWN\",\"notification_handles\":null,\"visibility\":\"organization\",\"customer_impacted\":false,\"customer_impact_duration\":0},\"relationships\":{\"commander_user\":{\"data\":null},\"responders\":{\"data\":[{\"type\":\"incident_responders\",\"id\":\"35badb8c-6ee1-50d5-9ff9-19cacc137d90\"}]},\"attachments\":{\"data\":[]},\"impacts\":{\"data\":[]},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"user_defined_fields\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"integrations\":{\"data\":[]}},\"id\":\"6f648ab1-026d-5e82-a49a-6b88e098b018\"}}]},\"relationships\":{\"incidents_relationship\":{\"data\":[{\"type\":\"incidents\",\"id\":\"aa819dbd-9016-5c31-84c5-48ff15b845cf\"},{\"type\":\"incidents\",\"id\":\"6f648ab1-026d-5e82-a49a-6b88e098b018\"}]}}},\"included\":[{\"type\":\"incidents\",\"id\":\"aa819dbd-9016-5c31-84c5-48ff15b845cf\",\"attributes\":{\"public_id\":128961,\"title\":\"Test-Go-Update_an_incident_todo_returns_OK_response-1679962375\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"name\":\"CI Account\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-03-28T00:12:55+00:00\",\"modified\":\"2023-03-28T00:12:55+00:00\",\"commander\":null,\"detected\":\"2023-03-28T00:12:55+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"name\":\"CI Account\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"summary\":{\"type\":\"textbox\",\"value\":null},\"services\":{\"type\":\"autocomplete\",\"value\":null}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1679962375,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[{\"type\":\"incident_responders\",\"id\":\"fbc19b87-ff03-5b2a-915d-75501ad44917\"}]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"6f648ab1-026d-5e82-a49a-6b88e098b018\",\"attributes\":{\"public_id\":128960,\"title\":\"Test-Go-Update_an_existing_incident_returns_OK_response-1679962372-updated\",\"resolved\":\"2023-03-28T00:12:54+00:00\",\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"name\":\"CI Account\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-03-28T00:12:52+00:00\",\"modified\":\"2023-03-28T00:12:54+00:00\",\"commander\":null,\"detected\":\"2023-03-28T00:12:52+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"name\":\"CI Account\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":2,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"resolved\"}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":3,\"spans\":[{\"start\":1679962372,\"end\":1679962375}]},\"resolved\":{\"duration\":0,\"spans\":[{\"start\":1679962375,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"resolved\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[{\"type\":\"incident_responders\",\"id\":\"35badb8c-6ee1-50d5-9ff9-19cacc137d90\"}]},\"impacts\":{\"data\":[]}}}],\"meta\":{\"pagination\":{\"offset\":0,\"next_offset\":2,\"size\":2}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 28 Mar 2023 07:55:36 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/incidents/search?query=state%3A%28active%20OR%20stable%20OR%20resolved%29&page%5Bsize%5D=2&page%5Boffset%5D=2" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incidents_search_results\",\"attributes\":{\"total\":1703,\"facets\":{\"severity\":[{\"name\":\"UNKNOWN\",\"count\":1703},{\"name\":\"SEV-1\",\"count\":0},{\"name\":\"SEV-2\",\"count\":0},{\"name\":\"SEV-3\",\"count\":0},{\"name\":\"SEV-4\",\"count\":0},{\"name\":\"SEV-5\",\"count\":0}],\"time_to_repair\":[{\"name\":\"time_to_repair\",\"aggregates\":{\"min\":null,\"max\":null}}],\"responder\":[{\"name\":\"CI Account\",\"count\":844,\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"},{\"name\":\"frog@datadoghq.com\",\"count\":107,\"handle\":\"frog@datadoghq.com\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"email\":\"frog@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677888642@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677888642@datadoghq.com\",\"uuid\":\"00a080f5-ba21-11ed-a3f2-e6671bdc78dd\",\"email\":\"test-go-create_an_incident_returns_created_response-1677888642@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672877473@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672877473@datadoghq.com\",\"uuid\":\"01dc2b21-3194-414a-b8e8-58704603421b\",\"email\":\"test-go-create_an_incident_returns_created_response-1672877473@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678925450@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678925450@datadoghq.com\",\"uuid\":\"02a54dc1-c38f-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678925450@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672013445@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672013445@datadoghq.com\",\"uuid\":\"03e16d56-e954-4e9a-b9da-22dffdfa1f24\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672013445@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666981015@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666981015@datadoghq.com\",\"uuid\":\"03e65d16-b7bb-456a-a5da-bf31dffbdf4d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666981015@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675815038@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675815038@datadoghq.com\",\"uuid\":\"0423cfd5-a745-11ed-9567-ba00348e1a7a\",\"email\":\"test-go-create_an_incident_returns_created_response-1675815038@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669335011@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669335011@datadoghq.com\",\"uuid\":\"04c4feaa-1864-4167-a48b-e156181d50d8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669335011@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669248659@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669248659@datadoghq.com\",\"uuid\":\"04f0d8b5-1959-43fb-85b5-782682062c4e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669248659@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673655101@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673655101@datadoghq.com\",\"uuid\":\"05d83a07-93a0-11ed-bf65-7630e111ac00\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673655101@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666743047@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666743047@datadoghq.com\",\"uuid\":\"060c37c0-93a9-48c0-90bc-dee85b66a7c7\",\"email\":\"test-go-create_an_incident_returns_created_response-1666743047@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678925461@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678925461@datadoghq.com\",\"uuid\":\"08f8d3b7-c38f-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1678925461@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670112680@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670112680@datadoghq.com\",\"uuid\":\"09010d4b-7635-4553-a7b9-973f5f9cea5b\",\"email\":\"test-go-create_an_incident_returns_created_response-1670112680@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673655109@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673655109@datadoghq.com\",\"uuid\":\"0a679024-93a0-11ed-aaf8-3230475e674b\",\"email\":\"test-go-create_an_incident_returns_created_response-1673655109@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667434335@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667434335@datadoghq.com\",\"uuid\":\"0ebbf763-be8f-40bb-8ee7-d37b729a5eed\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667434335@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668384644@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668384644@datadoghq.com\",\"uuid\":\"1193cff3-b670-4e08-a535-346105dcaf9f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668384644@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675210330@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675210330@datadoghq.com\",\"uuid\":\"1205474f-a1c5-11ed-b767-5ec4f5b84c10\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675210330@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674691927@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674691927@datadoghq.com\",\"uuid\":\"122c89ad-9d0e-11ed-9f54-862b4cfe184c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674691927@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668643799@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668643799@datadoghq.com\",\"uuid\":\"12d78e1b-0784-46f3-99ac-7e5db2d5c92e\",\"email\":\"test-go-create_an_incident_returns_created_response-1668643799@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671667884@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671667884@datadoghq.com\",\"uuid\":\"1310687d-9adb-47ae-ad7a-066c9e525f8b\",\"email\":\"test-go-create_an_incident_returns_created_response-1671667884@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673741454@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673741454@datadoghq.com\",\"uuid\":\"142ba3fc-9469-11ed-a365-8ec8661800c6\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673741454@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679011809@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679011809@datadoghq.com\",\"uuid\":\"1431aabf-c458-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679011809@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670927771@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670927771@datadoghq.com\",\"uuid\":\"14344412-a7b1-4044-89f7-8139727432f6\",\"email\":\"test-go-create_an_incident_returns_created_response-1670927771@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667261554@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667261554@datadoghq.com\",\"uuid\":\"1608c46d-bee2-46a5-be87-49af2b889db5\",\"email\":\"test-go-create_an_incident_returns_created_response-1667261554@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670929702@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670929702@datadoghq.com\",\"uuid\":\"161217ca-a0b5-418c-b0e5-d16edddd8258\",\"email\":\"test-go-create_an_incident_returns_created_response-1670929702@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675901397@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675901397@datadoghq.com\",\"uuid\":\"1628d4a0-a80e-11ed-af43-4e64a4a39547\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675901397@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670928949@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670928949@datadoghq.com\",\"uuid\":\"16754b18-1887-4f22-ae44-4a86e9bfc749\",\"email\":\"test-go-create_an_incident_returns_created_response-1670928949@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675210337@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675210337@datadoghq.com\",\"uuid\":\"1682f280-a1c5-11ed-ad87-fecda9c428d5\",\"email\":\"test-go-create_an_incident_returns_created_response-1675210337@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674691935@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674691935@datadoghq.com\",\"uuid\":\"16bf2921-9d0e-11ed-aff1-fa6399bf96fd\",\"email\":\"test-go-create_an_incident_returns_created_response-1674691935@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671754258@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671754258@datadoghq.com\",\"uuid\":\"18ada30d-ad3e-4ba2-911d-931233a75aa0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671754258@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679962293@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679962293@datadoghq.com\",\"uuid\":\"18cfb810-ccfd-11ed-a201-de0443f18a2a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679962293@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673741462@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673741462@datadoghq.com\",\"uuid\":\"18e9a7f7-9469-11ed-aaf8-3230475e674b\",\"email\":\"test-go-create_an_incident_returns_created_response-1673741462@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679011819@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679011819@datadoghq.com\",\"uuid\":\"1a8c2817-c458-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1679011819@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675901404@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675901404@datadoghq.com\",\"uuid\":\"1aa50cab-a80e-11ed-bc4c-ea1adbbc0986\",\"email\":\"test-go-create_an_incident_returns_created_response-1675901404@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670285407@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670285407@datadoghq.com\",\"uuid\":\"1bb87a6c-da01-4798-8bd0-5cd9918f641f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670285407@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668903124@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668903124@datadoghq.com\",\"uuid\":\"1bcb111e-ea64-4d60-9b77-ae5e7f22f157\",\"email\":\"test-go-create_an_incident_returns_created_response-1668903124@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668039051@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668039051@datadoghq.com\",\"uuid\":\"1c54a963-17f1-4ee8-a2b0-7fd07c3b2c68\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668039051@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674259871@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674259871@datadoghq.com\",\"uuid\":\"1c631d44-9920-11ed-8c68-2a913616fde8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674259871@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677024542@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677024542@datadoghq.com\",\"uuid\":\"1ce329fb-b245-11ed-8fbc-ca7794d66904\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677024542@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671149452@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671149452@datadoghq.com\",\"uuid\":\"1ebe2367-3eda-464c-9571-edd444620682\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671149452@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676419814@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676419814@datadoghq.com\",\"uuid\":\"1f019dde-acc5-11ed-bcdd-a68779fca942\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676419814@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679962303@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679962303@datadoghq.com\",\"uuid\":\"1f034a5d-ccfd-11ed-aef0-a6405a9b4791\",\"email\":\"test-go-create_an_incident_returns_created_response-1679962303@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672618338@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672618338@datadoghq.com\",\"uuid\":\"1fd5cef4-df5c-4609-be9a-11bf76483cfc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672618338@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666915819@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666915819@datadoghq.com\",\"uuid\":\"20be4a8a-b215-4bc0-b2fa-31c27e0a642b\",\"email\":\"test-go-create_an_incident_returns_created_response-1666915819@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671840707@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671840707@datadoghq.com\",\"uuid\":\"20d2001a-92b4-4d03-a5cb-73617f27b723\",\"email\":\"test-go-create_an_incident_returns_created_response-1671840707@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674259878@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674259878@datadoghq.com\",\"uuid\":\"20dbaf3d-9920-11ed-8c68-2a913616fde8\",\"email\":\"test-go-create_an_incident_returns_created_response-1674259878@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677024549@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677024549@datadoghq.com\",\"uuid\":\"214ed4fd-b245-11ed-8fbc-ca7794d66904\",\"email\":\"test-go-create_an_incident_returns_created_response-1677024549@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676419822@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676419822@datadoghq.com\",\"uuid\":\"2375265b-acc5-11ed-9a7e-46e4eb8f12a7\",\"email\":\"test-go-create_an_incident_returns_created_response-1676419822@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670594546@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670594546@datadoghq.com\",\"uuid\":\"2399be00-e683-4133-aec2-7ab8fe73779e\",\"email\":\"test-go-create_an_incident_returns_created_response-1670594546@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673050262@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673050262@datadoghq.com\",\"uuid\":\"23a293e3-086a-4f8e-8fa6-a2555557309e\",\"email\":\"test-go-create_an_incident_returns_created_response-1673050262@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667175034@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667175034@datadoghq.com\",\"uuid\":\"24f932ba-4cd2-498e-8261-64f6ec161bcb\",\"email\":\"test-go-create_an_incident_returns_created_response-1667175034@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677456630@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677456630@datadoghq.com\",\"uuid\":\"25538030-b633-11ed-827a-8e2840b25db2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677456630@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672013452@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672013452@datadoghq.com\",\"uuid\":\"2593795d-b0f5-46f9-a852-34d3c466ce0a\",\"email\":\"test-go-create_an_incident_returns_created_response-1672013452@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667520677@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667520677@datadoghq.com\",\"uuid\":\"26287ddb-5d1c-400d-96dc-a1d3bb09f880\",\"email\":\"test-go-create_an_incident_returns_created_response-1667520677@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679616573@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679616573@datadoghq.com\",\"uuid\":\"27c16c1b-c9d8-11ed-b840-0ed4b0ca293a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679616573@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676938232@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676938232@datadoghq.com\",\"uuid\":\"281184f3-b17c-11ed-bce8-0a557ccee039\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676938232@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668557513@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668557513@datadoghq.com\",\"uuid\":\"2871bc57-733f-4f85-b3ef-440569202326\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668557513@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668471095@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668471095@datadoghq.com\",\"uuid\":\"289f8508-500c-472e-a9d4-71f30f1cf151\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668471095@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671667877@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671667877@datadoghq.com\",\"uuid\":\"28ae893d-4b70-420d-96dc-f82066a0642f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671667877@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672531830@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672531830@datadoghq.com\",\"uuid\":\"291b8416-a87d-4e56-a93e-9d430d5c4996\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672531830@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677456637@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677456637@datadoghq.com\",\"uuid\":\"29cd6809-b633-11ed-827a-8e2840b25db2\",\"email\":\"test-go-create_an_incident_returns_created_response-1677456637@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678493444@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678493444@datadoghq.com\",\"uuid\":\"2acb4dc0-bfa1-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678493444@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671927057@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671927057@datadoghq.com\",\"uuid\":\"2b0ac046-39c8-4bf4-a00a-deb089bbbc0c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671927057@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679530252@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679530252@datadoghq.com\",\"uuid\":\"2c9256b5-c90f-11ed-a1f3-7afc45c1981c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679530252@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676938239@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676938239@datadoghq.com\",\"uuid\":\"2c977e11-b17c-11ed-bce8-0a557ccee039\",\"email\":\"test-go-create_an_incident_returns_created_response-1676938239@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679616583@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679616583@datadoghq.com\",\"uuid\":\"2d99557e-c9d8-11ed-a171-361a8cacd441\",\"email\":\"test-go-create_an_incident_returns_created_response-1679616583@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672445562@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672445562@datadoghq.com\",\"uuid\":\"2db31432-b497-42b8-80b7-fef85898a2a8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672445562@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668039059@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668039059@datadoghq.com\",\"uuid\":\"2ebfffc1-a7da-4558-a507-038442f7ee79\",\"email\":\"test-go-create_an_incident_returns_created_response-1668039059@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669767030@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669767030@datadoghq.com\",\"uuid\":\"2eca0bd9-db8e-4c5d-91b7-2ccddffd5764\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669767030@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671235865@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671235865@datadoghq.com\",\"uuid\":\"2fc6258a-7492-43c0-accf-24528cbbfea1\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671235865@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669680686@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669680686@datadoghq.com\",\"uuid\":\"302a3d05-c61c-41d8-ad31-8821b764acf7\",\"email\":\"test-go-create_an_incident_returns_created_response-1669680686@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678493454@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678493454@datadoghq.com\",\"uuid\":\"30e3000f-bfa1-11ed-9949-f20a22a554f2\",\"email\":\"test-go-create_an_incident_returns_created_response-1678493454@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676333515@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676333515@datadoghq.com\",\"uuid\":\"30e43861-abfc-11ed-a6fc-0e9b7fe457ae\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676333515@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669680678@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669680678@datadoghq.com\",\"uuid\":\"31ad2923-926d-49af-ad5b-d8b120e6edc8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669680678@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679530263@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679530263@datadoghq.com\",\"uuid\":\"32d40acb-c90f-11ed-a1f3-7afc45c1981c\",\"email\":\"test-go-create_an_incident_returns_created_response-1679530263@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671581470@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671581470@datadoghq.com\",\"uuid\":\"34377484-e597-4d4c-bccf-88e919b6d549\",\"email\":\"test-go-create_an_incident_returns_created_response-1671581470@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667693449@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667693449@datadoghq.com\",\"uuid\":\"34e92512-7c24-4704-816e-4fadc9b5eff7\",\"email\":\"test-go-create_an_incident_returns_created_response-1667693449@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668211888@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668211888@datadoghq.com\",\"uuid\":\"3578dcc8-088a-4320-8c27-7f80f1bba4cb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668211888@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672186272@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672186272@datadoghq.com\",\"uuid\":\"3584000d-6337-4c9e-955e-e25514b83be0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672186272@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676333523@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676333523@datadoghq.com\",\"uuid\":\"35ba7493-abfc-11ed-b5cd-eec9514dd597\",\"email\":\"test-go-create_an_incident_returns_created_response-1676333523@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678579793@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678579793@datadoghq.com\",\"uuid\":\"367e08f8-c06a-11ed-b4e0-566658a732f8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678579793@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671062982@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671062982@datadoghq.com\",\"uuid\":\"3883d9fe-1678-452e-8801-11a374f9fdae\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671062982@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667002244@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667002244@datadoghq.com\",\"uuid\":\"39627294-7a14-4e71-b5ff-5221e68b6fbe\",\"email\":\"test-go-create_an_incident_returns_created_response-1667002244@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671581462@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671581462@datadoghq.com\",\"uuid\":\"3bc8406a-5790-4582-82f5-08e330921b9b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671581462@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668989431@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668989431@datadoghq.com\",\"uuid\":\"3c28c823-158e-46c2-8dce-06f1dace90e8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668989431@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673050254@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673050254@datadoghq.com\",\"uuid\":\"3c7509b1-82af-4d25-b1e5-3e8aaa107f0a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673050254@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678579803@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678579803@datadoghq.com\",\"uuid\":\"3c7f71d2-c06a-11ed-a89b-0ebbb850607d\",\"email\":\"test-go-create_an_incident_returns_created_response-1678579803@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669162240@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669162240@datadoghq.com\",\"uuid\":\"3ce20d84-5e75-45a5-b7b9-971549a50cf4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669162240@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670458180@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670458180@datadoghq.com\",\"uuid\":\"40d8c19a-8c6a-4f54-9444-aba7b6798064\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670458180@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678061409@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678061409@datadoghq.com\",\"uuid\":\"41da9ce5-bbb3-11ed-82a6-028cebedd0cf\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678061409@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673136665@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673136665@datadoghq.com\",\"uuid\":\"426feaae-7bf3-4b2c-bc8c-0c79056d6d8d\",\"email\":\"test-go-create_an_incident_returns_created_response-1673136665@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672099886@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672099886@datadoghq.com\",\"uuid\":\"431624c4-d099-4dfb-b701-33a60bba6ebe\",\"email\":\"test-go-create_an_incident_returns_created_response-1672099886@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669421482@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669421482@datadoghq.com\",\"uuid\":\"442dd264-b729-473b-a51d-4b141068fe3d\",\"email\":\"test-go-create_an_incident_returns_created_response-1669421482@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603297@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603297@datadoghq.com\",\"uuid\":\"446cd2d8-630c-4fe9-8901-fb85bd22426d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603297@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678061417@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678061417@datadoghq.com\",\"uuid\":\"467de14f-bbb3-11ed-82a6-028cebedd0cf\",\"email\":\"test-go-create_an_incident_returns_created_response-1678061417@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668989438@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668989438@datadoghq.com\",\"uuid\":\"46d62900-016b-463c-9fff-c8b4f946ce5c\",\"email\":\"test-go-create_an_incident_returns_created_response-1668989438@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675469405@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675469405@datadoghq.com\",\"uuid\":\"46e3c6ef-a420-11ed-b1f8-56250c47f0b3\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675469405@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670371777@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670371777@datadoghq.com\",\"uuid\":\"48f7337b-3304-46fc-9e88-23b4dc5d24cc\",\"email\":\"test-go-create_an_incident_returns_created_response-1670371777@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670943350@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670943350@datadoghq.com\",\"uuid\":\"4b432133-ba1b-4edc-ab57-c0250963f250\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670943350@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679098230@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679098230@datadoghq.com\",\"uuid\":\"4b5ba977-c521-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679098230@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675469412@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675469412@datadoghq.com\",\"uuid\":\"4b68a1e2-a420-11ed-b1f8-56250c47f0b3\",\"email\":\"test-go-create_an_incident_returns_created_response-1675469412@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668816648@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668816648@datadoghq.com\",\"uuid\":\"4e5cb15e-f18e-43ba-b115-2a4e62736739\",\"email\":\"test-go-create_an_incident_returns_created_response-1668816648@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603851@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603851@datadoghq.com\",\"uuid\":\"4e6b1824-dc1e-4691-8abd-5ffb968da7eb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603851@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669421474@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669421474@datadoghq.com\",\"uuid\":\"4fdb4327-3660-4aeb-b403-7f7939493f27\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669421474@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670458188@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670458188@datadoghq.com\",\"uuid\":\"50d5408a-1894-4173-9fa1-32209009d9b1\",\"email\":\"test-go-create_an_incident_returns_created_response-1670458188@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679098240@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679098240@datadoghq.com\",\"uuid\":\"5141e45c-c521-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-create_an_incident_returns_created_response-1679098240@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675383094@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675383094@datadoghq.com\",\"uuid\":\"520007b9-a357-11ed-acb5-6e0b90178632\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675383094@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670803787@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670803787@datadoghq.com\",\"uuid\":\"521a78f7-573e-4b67-8e2c-d0dd5d91a265\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670803787@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666743039@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666743039@datadoghq.com\",\"uuid\":\"54b84ea9-ae9f-4159-b226-aba3b432a792\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666743039@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674346295@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674346295@datadoghq.com\",\"uuid\":\"551c3a48-99e9-11ed-a607-1684d7f553f6\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674346295@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678147771@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678147771@datadoghq.com\",\"uuid\":\"557fb06e-bc7c-11ed-be39-625d488bce09\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678147771@datadoghq.com\"},{\"name\":\"test-add_commander_to_an_incident_returns_ok_response-1677691218@datadoghq.com\",\"count\":1,\"handle\":\"test-add_commander_to_an_incident_returns_ok_response-1677691218@datadoghq.com\",\"uuid\":\"56afe5b0-b855-11ed-a706-064bc8586212\",\"email\":\"test-add_commander_to_an_incident_returns_ok_response-1677691218@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675383103@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675383103@datadoghq.com\",\"uuid\":\"56d1cddc-a357-11ed-95c6-eefcd7f14d98\",\"email\":\"test-go-create_an_incident_returns_created_response-1675383103@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670929700@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670929700@datadoghq.com\",\"uuid\":\"5705f818-933e-4ef4-818c-615b06f80fd1\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670929700@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668557521@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668557521@datadoghq.com\",\"uuid\":\"577067f0-c41d-4928-8964-0f7725e8cf68\",\"email\":\"test-go-create_an_incident_returns_created_response-1668557521@datadoghq.com\"},{\"name\":\"test-create_an_incident_returns_created_response-1677691220@datadoghq.com\",\"count\":1,\"handle\":\"test-create_an_incident_returns_created_response-1677691220@datadoghq.com\",\"uuid\":\"57e9dbb7-b855-11ed-ab26-8e492650c256\",\"email\":\"test-create_an_incident_returns_created_response-1677691220@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679702983@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679702983@datadoghq.com\",\"uuid\":\"58287ff7-caa1-11ed-81eb-8227c2cf9828\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679702983@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666829448@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666829448@datadoghq.com\",\"uuid\":\"586e086f-1e29-4689-99b6-641c3218b0a8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666829448@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674346302@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674346302@datadoghq.com\",\"uuid\":\"59b0d36c-99e9-11ed-8968-92ec5048e27c\",\"email\":\"test-go-create_an_incident_returns_created_response-1674346302@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667261546@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667261546@datadoghq.com\",\"uuid\":\"59c9cd2e-cd40-4530-ba50-415bce89b133\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667261546@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678147781@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678147781@datadoghq.com\",\"uuid\":\"5b76378d-bc7c-11ed-ba16-0aeab349e953\",\"email\":\"test-go-create_an_incident_returns_created_response-1678147781@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670976638@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670976638@datadoghq.com\",\"uuid\":\"5baf69e4-9bd6-4c76-b552-2bfee88031b5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670976638@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668298265@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668298265@datadoghq.com\",\"uuid\":\"5c4ecf79-7ffb-47ea-9331-687b04ac9df8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668298265@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671840699@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671840699@datadoghq.com\",\"uuid\":\"5ce42d6d-a0b9-4d0f-893b-aa0b8f30ee5c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671840699@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672445570@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672445570@datadoghq.com\",\"uuid\":\"5d11019d-f1dc-468d-a20a-8e64e7af9494\",\"email\":\"test-go-create_an_incident_returns_created_response-1672445570@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670976646@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670976646@datadoghq.com\",\"uuid\":\"5db9c599-b71f-40c6-84d9-8ca8779004e1\",\"email\":\"test-go-create_an_incident_returns_created_response-1670976646@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679702993@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679702993@datadoghq.com\",\"uuid\":\"5e20a7d6-caa1-11ed-b285-a2593f21064b\",\"email\":\"test-go-create_an_incident_returns_created_response-1679702993@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673223078@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673223078@datadoghq.com\",\"uuid\":\"5f3582c4-06d1-43a3-bab9-b7ece49136a4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673223078@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672791107@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672791107@datadoghq.com\",\"uuid\":\"610753d8-8bc4-11ed-94a1-26632eba8bed\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672791107@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677110986@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677110986@datadoghq.com\",\"uuid\":\"614ff267-b30e-11ed-b3d7-ea098e8dc2bb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677110986@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667088640@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667088640@datadoghq.com\",\"uuid\":\"61d88713-957f-4920-8a3b-65f0ccd79b57\",\"email\":\"test-go-create_an_incident_returns_created_response-1667088640@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670026253@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670026253@datadoghq.com\",\"uuid\":\"623452c3-d694-466a-95b9-140a9c44a1ab\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670026253@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672791115@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672791115@datadoghq.com\",\"uuid\":\"65b38b0e-8bc4-11ed-81c7-fed5bfaa3f3d\",\"email\":\"test-go-create_an_incident_returns_created_response-1672791115@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677110993@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677110993@datadoghq.com\",\"uuid\":\"65e049af-b30e-11ed-82a1-e2db47427de5\",\"email\":\"test-go-create_an_incident_returns_created_response-1677110993@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674778401@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674778401@datadoghq.com\",\"uuid\":\"6847d712-9dd7-11ed-967f-12bf3e4c6b0d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674778401@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667520669@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667520669@datadoghq.com\",\"uuid\":\"6887723d-dbde-4969-bba8-e9b3464645ce\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667520669@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678204931@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678204931@datadoghq.com\",\"uuid\":\"6b9e40b1-bd01-11ed-8bd9-4a4655204cc7\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678204931@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667952700@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667952700@datadoghq.com\",\"uuid\":\"6c22fc34-31d7-4085-948b-d862feb447fe\",\"email\":\"test-go-create_an_incident_returns_created_response-1667952700@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676506273@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676506273@datadoghq.com\",\"uuid\":\"6ca38252-ad8e-11ed-9613-3a90352a946f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676506273@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671149459@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671149459@datadoghq.com\",\"uuid\":\"6ccce5fc-d6a8-416d-921b-f883914b67ad\",\"email\":\"test-go-create_an_incident_returns_created_response-1671149459@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674778408@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674778408@datadoghq.com\",\"uuid\":\"6d0c845f-9dd7-11ed-a399-1a75992a86c7\",\"email\":\"test-go-create_an_incident_returns_created_response-1674778408@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669594231@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669594231@datadoghq.com\",\"uuid\":\"6d550b97-297b-43ea-a3dc-85383cf72fba\",\"email\":\"test-go-create_an_incident_returns_created_response-1669594231@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671927065@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671927065@datadoghq.com\",\"uuid\":\"6d7f7052-6ddb-461f-a49f-6cb5fca6b2c8\",\"email\":\"test-go-create_an_incident_returns_created_response-1671927065@datadoghq.com\"},{\"name\":\"test-add_commander_to_an_incident_returns_ok_response-1677691687@datadoghq.com\",\"count\":1,\"handle\":\"test-add_commander_to_an_incident_returns_ok_response-1677691687@datadoghq.com\",\"uuid\":\"6e0e84e3-b856-11ed-ab26-8e492650c256\",\"email\":\"test-add_commander_to_an_incident_returns_ok_response-1677691687@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675987874@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675987874@datadoghq.com\",\"uuid\":\"6ed45bb9-a8d7-11ed-b51e-c2a468ff72a6\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675987874@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670927769@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670927769@datadoghq.com\",\"uuid\":\"6efabec4-24bc-46bd-8f53-e068f03adbf0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670927769@datadoghq.com\"},{\"name\":\"test-create_an_incident_returns_created_response-1677691689@datadoghq.com\",\"count\":1,\"handle\":\"test-create_an_incident_returns_created_response-1677691689@datadoghq.com\",\"uuid\":\"6f41744d-b856-11ed-a706-064bc8586212\",\"email\":\"test-create_an_incident_returns_created_response-1677691689@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670717462@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670717462@datadoghq.com\",\"uuid\":\"70532155-9800-46d9-89ed-bd41347c3dfd\",\"email\":\"test-go-create_an_incident_returns_created_response-1670717462@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676506281@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676506281@datadoghq.com\",\"uuid\":\"713c4001-ad8e-11ed-be7d-0ec0d643006a\",\"email\":\"test-go-create_an_incident_returns_created_response-1676506281@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678204941@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678204941@datadoghq.com\",\"uuid\":\"71cb7181-bd01-11ed-8700-9293738b117d\",\"email\":\"test-go-create_an_incident_returns_created_response-1678204941@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671322271@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671322271@datadoghq.com\",\"uuid\":\"7247d247-e798-4af5-b9ce-7bf786c4d0c7\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671322271@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672359091@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672359091@datadoghq.com\",\"uuid\":\"73546355-1adc-4289-908a-2f6fae7fc9fa\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672359091@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675987882@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675987882@datadoghq.com\",\"uuid\":\"738ccf6d-a8d7-11ed-ad7e-6ed4f1c67dea\",\"email\":\"test-go-create_an_incident_returns_created_response-1675987882@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677543090@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677543090@datadoghq.com\",\"uuid\":\"73a70dc9-b6fc-11ed-a3d7-a2295215c227\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677543090@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669507839@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669507839@datadoghq.com\",\"uuid\":\"7571121d-a654-4df8-9afa-e638f17d53bb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669507839@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674432680@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674432680@datadoghq.com\",\"uuid\":\"76c071c8-9ab2-11ed-8c68-2a913616fde8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674432680@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674864754@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674864754@datadoghq.com\",\"uuid\":\"7715eb6d-9ea0-11ed-8e78-767557a2485a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674864754@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677543098@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677543098@datadoghq.com\",\"uuid\":\"785f915d-b6fc-11ed-ad05-76e4602e1079\",\"email\":\"test-go-create_an_incident_returns_created_response-1677543098@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673395882@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673395882@datadoghq.com\",\"uuid\":\"7ac9b3b9-9144-11ed-82e3-622adeb45fa9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673395882@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674432688@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674432688@datadoghq.com\",\"uuid\":\"7b5907f1-9ab2-11ed-8c68-2a913616fde8\",\"email\":\"test-go-create_an_incident_returns_created_response-1674432688@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672877465@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672877465@datadoghq.com\",\"uuid\":\"7ba05e4d-f9a0-44e2-aa8c-bcda7adac2e5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672877465@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674864762@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674864762@datadoghq.com\",\"uuid\":\"7bc2a11e-9ea0-11ed-8c38-7ad981f4abb4\",\"email\":\"test-go-create_an_incident_returns_created_response-1674864762@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668384652@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668384652@datadoghq.com\",\"uuid\":\"7da5fc01-ccbd-4679-8149-cb22fe402bb3\",\"email\":\"test-go-create_an_incident_returns_created_response-1668384652@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667779824@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667779824@datadoghq.com\",\"uuid\":\"7dd124ba-7343-4882-b700-c44374efa8e3\",\"email\":\"test-go-create_an_incident_returns_created_response-1667779824@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673914292@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673914292@datadoghq.com\",\"uuid\":\"7f3e8ad2-95fb-11ed-b93e-b6681b4e2484\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673914292@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673395889@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673395889@datadoghq.com\",\"uuid\":\"7f7afd0e-9144-11ed-82e3-622adeb45fa9\",\"email\":\"test-go-create_an_incident_returns_created_response-1673395889@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676592635@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676592635@datadoghq.com\",\"uuid\":\"8009c2e2-ae57-11ed-b4cb-a681084bf13a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676592635@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670926105@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670926105@datadoghq.com\",\"uuid\":\"81831280-6cb1-4a01-9dc9-f68b1405f8f6\",\"email\":\"test-go-create_an_incident_returns_created_response-1670926105@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677197369@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677197369@datadoghq.com\",\"uuid\":\"81da5714-b3d7-11ed-97bb-cad2b20710fd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677197369@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678666250@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678666250@datadoghq.com\",\"uuid\":\"82eadb7f-c133-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678666250@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673914300@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673914300@datadoghq.com\",\"uuid\":\"84060fed-95fb-11ed-b93e-b6681b4e2484\",\"email\":\"test-go-create_an_incident_returns_created_response-1673914300@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670199054@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670199054@datadoghq.com\",\"uuid\":\"847f57aa-1b32-4eee-8447-e6eef1f6744f\",\"email\":\"test-go-create_an_incident_returns_created_response-1670199054@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676592642@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676592642@datadoghq.com\",\"uuid\":\"848026b5-ae57-11ed-9ecb-824f74ccf3e4\",\"email\":\"test-go-create_an_incident_returns_created_response-1676592642@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670630968@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670630968@datadoghq.com\",\"uuid\":\"853cce16-d7d3-4bd6-8f99-b1eab0407cf1\",\"email\":\"test-go-create_an_incident_returns_created_response-1670630968@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672099877@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672099877@datadoghq.com\",\"uuid\":\"862d085b-48ce-446e-a74f-ae3538d623f5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672099877@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674951109@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674951109@datadoghq.com\",\"uuid\":\"866af7b6-9f69-11ed-8c38-7ad981f4abb4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674951109@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677197377@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677197377@datadoghq.com\",\"uuid\":\"86a13258-b3d7-11ed-a605-a260cf3212a9\",\"email\":\"test-go-create_an_incident_returns_created_response-1677197377@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673827975@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673827975@datadoghq.com\",\"uuid\":\"86bc89ca-9532-11ed-bf65-7630e111ac00\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673827975@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667434343@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667434343@datadoghq.com\",\"uuid\":\"88c2cdf6-2769-4e68-9503-38d3f166ff1a\",\"email\":\"test-go-create_an_incident_returns_created_response-1667434343@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678666260@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678666260@datadoghq.com\",\"uuid\":\"88ce8004-c133-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1678666260@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679270991@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679270991@datadoghq.com\",\"uuid\":\"89229fdb-c6b3-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679270991@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668643791@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668643791@datadoghq.com\",\"uuid\":\"8a2d2c9d-c478-4a74-94a8-cabb28bd1473\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668643791@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674951116@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674951116@datadoghq.com\",\"uuid\":\"8ae38d89-9f69-11ed-bfa9-f2483e31eab5\",\"email\":\"test-go-create_an_incident_returns_created_response-1674951116@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673827983@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673827983@datadoghq.com\",\"uuid\":\"8b7b570e-9532-11ed-bf65-7630e111ac00\",\"email\":\"test-go-create_an_incident_returns_created_response-1673827983@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676074256@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676074256@datadoghq.com\",\"uuid\":\"8e41e3a8-a9a0-11ed-a060-46b9814ce648\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676074256@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672704719@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672704719@datadoghq.com\",\"uuid\":\"8e85e36f-5ccd-4052-a34e-d7338178914e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672704719@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679271002@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679271002@datadoghq.com\",\"uuid\":\"8f25b885-c6b3-11ed-9949-f20a22a554f2\",\"email\":\"test-go-create_an_incident_returns_created_response-1679271002@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667866310@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667866310@datadoghq.com\",\"uuid\":\"8f8399af-4d57-41a1-91a3-37c29fb62092\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667866310@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670630960@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670630960@datadoghq.com\",\"uuid\":\"8fa60296-198c-4113-8f21-0ba09e4fd83e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670630960@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679789405@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679789405@datadoghq.com\",\"uuid\":\"8fb58f8b-cb6a-11ed-be83-92f82eb96735\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679789405@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666829456@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666829456@datadoghq.com\",\"uuid\":\"91a8dc0a-0c63-4411-b9ab-39ec37dc2eee\",\"email\":\"test-go-create_an_incident_returns_created_response-1666829456@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669939802@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669939802@datadoghq.com\",\"uuid\":\"92c4c4e2-d881-485c-9668-0aa68239c513\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669939802@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676074265@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676074265@datadoghq.com\",\"uuid\":\"936c4650-a9a0-11ed-af98-1a32d7edfd9d\",\"email\":\"test-go-create_an_incident_returns_created_response-1676074265@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667088632@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667088632@datadoghq.com\",\"uuid\":\"93e8df0e-729e-4d2f-b0a4-9495ffb37b06\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667088632@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673482254@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673482254@datadoghq.com\",\"uuid\":\"94c9bf7f-920d-11ed-9cec-222dbf547024\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673482254@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670598792@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670598792@datadoghq.com\",\"uuid\":\"94d92a17-4768-48dd-97b4-ab32fee4e33b\",\"email\":\"test-go-create_an_incident_returns_created_response-1670598792@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669853467@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669853467@datadoghq.com\",\"uuid\":\"94f7179d-40a0-4790-9436-6080eb0db034\",\"email\":\"test-go-create_an_incident_returns_created_response-1669853467@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679789415@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679789415@datadoghq.com\",\"uuid\":\"959ada1b-cb6a-11ed-9f7f-0e85fe61e6ee\",\"email\":\"test-go-create_an_incident_returns_created_response-1679789415@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669075853@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669075853@datadoghq.com\",\"uuid\":\"96796850-b278-4313-a726-9cf5c832fe30\",\"email\":\"test-go-create_an_incident_returns_created_response-1669075853@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676679006@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676679006@datadoghq.com\",\"uuid\":\"99579994-af20-11ed-94c9-462a25af4eaf\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676679006@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673482262@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673482262@datadoghq.com\",\"uuid\":\"995b112e-920d-11ed-9888-e278e4206645\",\"email\":\"test-go-create_an_incident_returns_created_response-1673482262@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670594544@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670594544@datadoghq.com\",\"uuid\":\"9b26b565-e0c1-4777-a693-553a8d5cb243\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670594544@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670285415@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670285415@datadoghq.com\",\"uuid\":\"9b9fe3ac-f73b-43a5-b570-43d156e07ea9\",\"email\":\"test-go-create_an_incident_returns_created_response-1670285415@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670926595@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670926595@datadoghq.com\",\"uuid\":\"9c09fbea-fce4-4c02-9a45-ec845bab938a\",\"email\":\"test-go-create_an_incident_returns_created_response-1670926595@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670544898@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670544898@datadoghq.com\",\"uuid\":\"9c58a1dc-6beb-4390-928e-ed9d95b13b30\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670544898@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667693441@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667693441@datadoghq.com\",\"uuid\":\"9ccf5d51-55b4-43e0-ad79-7819a8d223f0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667693441@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676679013@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676679013@datadoghq.com\",\"uuid\":\"9dd94922-af20-11ed-94c9-462a25af4eaf\",\"email\":\"test-go-create_an_incident_returns_created_response-1676679013@datadoghq.com\"},{\"name\":\"test-add_commander_to_an_incident_returns_ok_response-1675266399@datadoghq.com\",\"count\":1,\"handle\":\"test-add_commander_to_an_incident_returns_ok_response-1675266399@datadoghq.com\",\"uuid\":\"9defa75d-a247-11ed-97de-223323d49fa6\",\"email\":\"test-add_commander_to_an_incident_returns_ok_response-1675266399@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666979690@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666979690@datadoghq.com\",\"uuid\":\"9e072255-5184-44a8-ae5f-a8e70ec5037c\",\"email\":\"test-go-create_an_incident_returns_created_response-1666979690@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678752625@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678752625@datadoghq.com\",\"uuid\":\"9e85bf56-c1fc-11ed-b4e0-566658a732f8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678752625@datadoghq.com\"},{\"name\":\"test-create_an_incident_returns_created_response-1675266400@datadoghq.com\",\"count\":1,\"handle\":\"test-create_an_incident_returns_created_response-1675266400@datadoghq.com\",\"uuid\":\"9ee1d254-a247-11ed-92ef-6ad132878933\",\"email\":\"test-create_an_incident_returns_created_response-1675266400@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668125498@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668125498@datadoghq.com\",\"uuid\":\"9f5a1546-bccf-4b9f-a25f-96fb87bd7bfc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668125498@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669162248@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669162248@datadoghq.com\",\"uuid\":\"9f88a5e0-9842-4fd1-95c7-7f85edad3874\",\"email\":\"test-go-create_an_incident_returns_created_response-1669162248@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666981017@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666981017@datadoghq.com\",\"uuid\":\"a136a629-05cd-4a2f-b925-e1d74c6a69ad\",\"email\":\"test-go-create_an_incident_returns_created_response-1666981017@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670803795@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670803795@datadoghq.com\",\"uuid\":\"a18c9430-e993-488f-8b5c-3ad27997e55c\",\"email\":\"test-go-create_an_incident_returns_created_response-1670803795@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675555889@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675555889@datadoghq.com\",\"uuid\":\"a3644be2-a4e9-11ed-b7fb-1ea641c369ef\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675555889@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672704726@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672704726@datadoghq.com\",\"uuid\":\"a4230eac-f78e-407d-8551-b07c6476622b\",\"email\":\"test-go-create_an_incident_returns_created_response-1672704726@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678752635@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678752635@datadoghq.com\",\"uuid\":\"a4aff885-c1fc-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1678752635@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675555897@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675555897@datadoghq.com\",\"uuid\":\"a813f7f3-a4e9-11ed-9388-1ad521c601b9\",\"email\":\"test-go-create_an_incident_returns_created_response-1675555897@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674087020@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674087020@datadoghq.com\",\"uuid\":\"a96c393b-978d-11ed-b425-4e7b3187c657\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674087020@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669767038@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669767038@datadoghq.com\",\"uuid\":\"a9977d83-cddd-4644-ba02-dc1a86c0293e\",\"email\":\"test-go-create_an_incident_returns_created_response-1669767038@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678234243@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678234243@datadoghq.com\",\"uuid\":\"aabc794c-bd45-11ed-9ea1-9ebf47de1fdb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678234243@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667606997@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667606997@datadoghq.com\",\"uuid\":\"ab5bb1f0-b9b2-43da-bd50-e5ba7315fc29\",\"email\":\"test-go-create_an_incident_returns_created_response-1667606997@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673568622@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673568622@datadoghq.com\",\"uuid\":\"abedb0a5-92d6-11ed-a082-5215624996c0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673568622@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672272649@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672272649@datadoghq.com\",\"uuid\":\"ac484716-4260-4fd9-8288-1d4a6b0d39da\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672272649@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674087028@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674087028@datadoghq.com\",\"uuid\":\"ade2bf85-978d-11ed-b425-4e7b3187c657\",\"email\":\"test-go-create_an_incident_returns_created_response-1674087028@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673568629@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673568629@datadoghq.com\",\"uuid\":\"b0771f90-92d6-11ed-a082-5215624996c0\",\"email\":\"test-go-create_an_incident_returns_created_response-1673568629@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672359099@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672359099@datadoghq.com\",\"uuid\":\"b12b859b-c89a-4023-84e6-2634f93fff00\",\"email\":\"test-go-create_an_incident_returns_created_response-1672359099@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678234254@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678234254@datadoghq.com\",\"uuid\":\"b155e604-bd45-11ed-ba70-22d478e15cef\",\"email\":\"test-go-create_an_incident_returns_created_response-1678234254@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667347843@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667347843@datadoghq.com\",\"uuid\":\"b2f195b3-53b7-4095-bfb8-90538edb12f7\",\"email\":\"test-go-create_an_incident_returns_created_response-1667347843@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677715854@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677715854@datadoghq.com\",\"uuid\":\"b2fc8929-b88e-11ed-8da2-b6d07de5d20c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677715854@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667779816@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667779816@datadoghq.com\",\"uuid\":\"b335a7f4-a66e-41ed-b4aa-982c5b76ffc1\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667779816@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672963863@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672963863@datadoghq.com\",\"uuid\":\"b39fcb21-440b-4bd8-bc55-103259b74a57\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672963863@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670890374@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670890374@datadoghq.com\",\"uuid\":\"b3ccf662-7d0d-4a45-9cb3-5ffcb089012c\",\"email\":\"test-go-create_an_incident_returns_created_response-1670890374@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669594223@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669594223@datadoghq.com\",\"uuid\":\"b4a8f9a4-28a9-4311-a813-8149eb5264f4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669594223@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672963870@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672963870@datadoghq.com\",\"uuid\":\"b631798d-d17b-44ab-af5c-f075df907ddd\",\"email\":\"test-go-create_an_incident_returns_created_response-1672963870@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677715861@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677715861@datadoghq.com\",\"uuid\":\"b768b7b4-b88e-11ed-a132-2aa63a904ba0\",\"email\":\"test-go-create_an_incident_returns_created_response-1677715861@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671408605@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671408605@datadoghq.com\",\"uuid\":\"b7d64361-36fd-4ebd-9438-949f60ec3745\",\"email\":\"test-go-create_an_incident_returns_created_response-1671408605@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670604391@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670604391@datadoghq.com\",\"uuid\":\"b8fa89c4-34f6-4b69-a654-e3671ce743a0\",\"email\":\"test-go-create_an_incident_returns_created_response-1670604391@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668471103@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668471103@datadoghq.com\",\"uuid\":\"b9d64d92-66de-41cc-9164-b83b7b74439f\",\"email\":\"test-go-create_an_incident_returns_created_response-1668471103@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674000722@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674000722@datadoghq.com\",\"uuid\":\"bbd69d76-96c4-11ed-b802-922cd9596b23\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674000722@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669853460@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669853460@datadoghq.com\",\"uuid\":\"bc036552-b05e-4ffd-8dd1-44dbe725a6ec\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669853460@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670544906@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670544906@datadoghq.com\",\"uuid\":\"bcb9456d-8b65-4369-b2c4-49ee5e4c14b7\",\"email\":\"test-go-create_an_incident_returns_created_response-1670544906@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674519128@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674519128@datadoghq.com\",\"uuid\":\"bd7e4c91-9b7b-11ed-882c-9aa2ca31c98c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674519128@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676765396@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676765396@datadoghq.com\",\"uuid\":\"bdc08c5f-afe9-11ed-84e6-a6c768ad21b4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676765396@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667952692@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667952692@datadoghq.com\",\"uuid\":\"be421a73-22de-48d3-be3f-1a269016ff83\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667952692@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675037533@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675037533@datadoghq.com\",\"uuid\":\"bf08166d-a032-11ed-88af-be56a8628f3f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675037533@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674000730@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674000730@datadoghq.com\",\"uuid\":\"c09c4f30-96c4-11ed-9f1c-fe165ba0981c\",\"email\":\"test-go-create_an_incident_returns_created_response-1674000730@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666915811@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666915811@datadoghq.com\",\"uuid\":\"c20da1a9-657e-4b5a-9159-9f4d324f51fc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666915811@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675642269@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675642269@datadoghq.com\",\"uuid\":\"c22b3e65-a5b2-11ed-9388-1ad521c601b9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675642269@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671495039@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671495039@datadoghq.com\",\"uuid\":\"c23885b0-3659-4d47-b5c9-16c0965dc7d9\",\"email\":\"test-go-create_an_incident_returns_created_response-1671495039@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679357416@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679357416@datadoghq.com\",\"uuid\":\"c238d04b-c77c-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679357416@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674519135@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674519135@datadoghq.com\",\"uuid\":\"c23e01c9-9b7b-11ed-8af1-7201c2784402\",\"email\":\"test-go-create_an_incident_returns_created_response-1674519135@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676765404@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676765404@datadoghq.com\",\"uuid\":\"c27df074-afe9-11ed-bce8-0a557ccee039\",\"email\":\"test-go-create_an_incident_returns_created_response-1676765404@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668730249@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668730249@datadoghq.com\",\"uuid\":\"c36f2608-4650-4331-b810-1dc5500c1356\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668730249@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670924666@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670924666@datadoghq.com\",\"uuid\":\"c381f80b-8a88-47bd-9dbe-77720d784a52\",\"email\":\"test-go-create_an_incident_returns_created_response-1670924666@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669075846@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669075846@datadoghq.com\",\"uuid\":\"c39f3031-906f-4679-a817-9b8f072254bb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669075846@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675037541@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675037541@datadoghq.com\",\"uuid\":\"c3e2d867-a032-11ed-88af-be56a8628f3f\",\"email\":\"test-go-create_an_incident_returns_created_response-1675037541@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667002236@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667002236@datadoghq.com\",\"uuid\":\"c567f0fa-6f70-42e3-855e-2ae1d2ed7243\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667002236@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668125506@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668125506@datadoghq.com\",\"uuid\":\"c60a0f7d-3f36-4966-a63f-f1f77dca030a\",\"email\":\"test-go-create_an_incident_returns_created_response-1668125506@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676247007@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676247007@datadoghq.com\",\"uuid\":\"c61f4ec1-ab32-11ed-8972-1eb0f4245ee5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676247007@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675642277@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675642277@datadoghq.com\",\"uuid\":\"c6d4d92c-a5b2-11ed-b7fb-1ea641c369ef\",\"email\":\"test-go-create_an_incident_returns_created_response-1675642277@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668903116@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668903116@datadoghq.com\",\"uuid\":\"c7319ecf-1451-4031-817a-5bef597d5ac9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668903116@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670604389@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670604389@datadoghq.com\",\"uuid\":\"c7b7b86f-5268-4c20-b223-afc7923d54b9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670604389@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679357426@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679357426@datadoghq.com\",\"uuid\":\"c811af38-c77c-11ed-9949-f20a22a554f2\",\"email\":\"test-go-create_an_incident_returns_created_response-1679357426@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673309503@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673309503@datadoghq.com\",\"uuid\":\"c8bbd0d2-53af-4fc0-a392-1c1c0871fb49\",\"email\":\"test-go-create_an_incident_returns_created_response-1673309503@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671754265@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671754265@datadoghq.com\",\"uuid\":\"c8e6753d-801c-40b5-9dd8-c98feae31df9\",\"email\":\"test-go-create_an_incident_returns_created_response-1671754265@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679184770@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679184770@datadoghq.com\",\"uuid\":\"c960ccca-c5ea-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679184770@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926103@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926103@datadoghq.com\",\"uuid\":\"c9f53cd7-2f1e-4491-ae28-796ace9db6fc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926103@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670371766@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670371766@datadoghq.com\",\"uuid\":\"cac0f70c-c327-4965-b9f9-62190c96b0dc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670371766@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676247015@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676247015@datadoghq.com\",\"uuid\":\"caf6ae98-ab32-11ed-bddd-722daf28c490\",\"email\":\"test-go-create_an_incident_returns_created_response-1676247015@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673223085@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673223085@datadoghq.com\",\"uuid\":\"cc0a6e87-ce4b-4313-b0a8-8b40179bcb68\",\"email\":\"test-go-create_an_incident_returns_created_response-1673223085@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671235873@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671235873@datadoghq.com\",\"uuid\":\"cc1891b1-9a95-4af6-98d7-95ac53c4e6ff\",\"email\":\"test-go-create_an_incident_returns_created_response-1671235873@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679184781@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679184781@datadoghq.com\",\"uuid\":\"cf9a8e87-c5ea-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-create_an_incident_returns_created_response-1679184781@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670943352@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670943352@datadoghq.com\",\"uuid\":\"d0330853-c731-4097-a353-fd1014abde80\",\"email\":\"test-go-create_an_incident_returns_created_response-1670943352@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667175027@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667175027@datadoghq.com\",\"uuid\":\"d1d53f95-4adc-4e7b-896b-1e75ba345e9f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667175027@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675728631@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675728631@datadoghq.com\",\"uuid\":\"d5aa246d-a67b-11ed-9567-ba00348e1a7a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675728631@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677370168@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677370168@datadoghq.com\",\"uuid\":\"d654fb42-b569-11ed-827a-8e2840b25db2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677370168@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676851766@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676851766@datadoghq.com\",\"uuid\":\"d6780612-b0b2-11ed-a714-aa504cceab29\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676851766@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672186280@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672186280@datadoghq.com\",\"uuid\":\"d70a12ec-c10f-47dd-9892-cebecfd6ffb0\",\"email\":\"test-go-create_an_incident_returns_created_response-1672186280@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670199046@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670199046@datadoghq.com\",\"uuid\":\"d968eb97-03c1-436e-835f-9ed06d352716\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670199046@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670890367@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670890367@datadoghq.com\",\"uuid\":\"d9a19936-2b5c-4fbc-b802-7a3dbf639c1b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670890367@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675728639@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675728639@datadoghq.com\",\"uuid\":\"da3ac6ee-a67b-11ed-bd1e-766989ec1239\",\"email\":\"test-go-create_an_incident_returns_created_response-1675728639@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677370176@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677370176@datadoghq.com\",\"uuid\":\"dac22963-b569-11ed-a797-c2fe525de487\",\"email\":\"test-go-create_an_incident_returns_created_response-1677370176@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676851774@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676851774@datadoghq.com\",\"uuid\":\"db0404af-b0b2-11ed-84e6-a6c768ad21b4\",\"email\":\"test-go-create_an_incident_returns_created_response-1676851774@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673136657@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673136657@datadoghq.com\",\"uuid\":\"dcbcad43-008c-4c4c-8c35-ee5ade081d9e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673136657@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670026261@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670026261@datadoghq.com\",\"uuid\":\"ddd99aa3-c7e5-4dff-8099-10588153e164\",\"email\":\"test-go-create_an_incident_returns_created_response-1670026261@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671495031@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671495031@datadoghq.com\",\"uuid\":\"de662b96-845c-45b9-a359-b0b763a45a61\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671495031@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670717454@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670717454@datadoghq.com\",\"uuid\":\"def01997-ae71-49bc-93ea-ff9287d606c7\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670717454@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670112672@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670112672@datadoghq.com\",\"uuid\":\"e09cd088-50f3-4a99-8222-0917d760f4fb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670112672@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670924664@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670924664@datadoghq.com\",\"uuid\":\"e0a87080-eb76-45db-9230-ed4ef629b0d2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670924664@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678839065@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678839065@datadoghq.com\",\"uuid\":\"e1073fac-c2c5-11ed-b4e0-566658a732f8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678839065@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668730257@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668730257@datadoghq.com\",\"uuid\":\"e21b3798-5777-4777-919d-e5ff6fce422a\",\"email\":\"test-go-create_an_incident_returns_created_response-1668730257@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667347836@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667347836@datadoghq.com\",\"uuid\":\"e2267bdc-1a12-4210-869e-60d0faa477bd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667347836@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669248667@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669248667@datadoghq.com\",\"uuid\":\"e42f7f54-0e83-4c40-b112-887402a7ba6b\",\"email\":\"test-go-create_an_incident_returns_created_response-1669248667@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669335019@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669335019@datadoghq.com\",\"uuid\":\"e485ea7a-9a64-44dd-a774-d3f31e869f6e\",\"email\":\"test-go-create_an_incident_returns_created_response-1669335019@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673309495@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673309495@datadoghq.com\",\"uuid\":\"e6615793-c00d-45e8-b8d6-ec1c96309d81\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673309495@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669939809@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669939809@datadoghq.com\",\"uuid\":\"e6d0a0d2-e642-4b20-aa66-34ab638f4d9f\",\"email\":\"test-go-create_an_incident_returns_created_response-1669939809@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678839075@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678839075@datadoghq.com\",\"uuid\":\"e7113f68-c2c5-11ed-b4e0-566658a732f8\",\"email\":\"test-go-create_an_incident_returns_created_response-1678839075@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672531837@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672531837@datadoghq.com\",\"uuid\":\"e7403ce3-c0a2-4bae-8823-45a21c310656\",\"email\":\"test-go-create_an_incident_returns_created_response-1672531837@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678320674@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678320674@datadoghq.com\",\"uuid\":\"e7d1ba87-be0e-11ed-be0d-5609971d255a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678320674@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672618346@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672618346@datadoghq.com\",\"uuid\":\"e84ce941-4c3d-4b79-b736-619897785a82\",\"email\":\"test-go-create_an_incident_returns_created_response-1672618346@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668298272@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668298272@datadoghq.com\",\"uuid\":\"e9b00493-1235-49f2-b229-06ee3afc79b0\",\"email\":\"test-go-create_an_incident_returns_created_response-1668298272@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676160739@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676160739@datadoghq.com\",\"uuid\":\"e9f6df6e-aa69-11ed-8972-1eb0f4245ee5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676160739@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677629617@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677629617@datadoghq.com\",\"uuid\":\"e9ffa5e5-b7c5-11ed-a50e-226546b1da54\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677629617@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679443813@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679443813@datadoghq.com\",\"uuid\":\"eb03f9a6-c845-11ed-a1e1-c6385b25b934\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679443813@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678407009@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678407009@datadoghq.com\",\"uuid\":\"eb834f42-bed7-11ed-a89b-0ebbb850607d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678407009@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674605534@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674605534@datadoghq.com\",\"uuid\":\"ebb5a53d-9c44-11ed-97cc-a697d2568caf\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674605534@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669507847@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669507847@datadoghq.com\",\"uuid\":\"ebf0848a-6b21-4736-ad2a-d93daf59fd15\",\"email\":\"test-go-create_an_incident_returns_created_response-1669507847@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671322279@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671322279@datadoghq.com\",\"uuid\":\"ebf23d4b-53c8-467a-bbb0-636c11b3ffee\",\"email\":\"test-go-create_an_incident_returns_created_response-1671322279@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667606989@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667606989@datadoghq.com\",\"uuid\":\"ec1ed77b-1d70-4727-b2ac-f478a37e3b8c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667606989@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678320684@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678320684@datadoghq.com\",\"uuid\":\"edaec5b4-be0e-11ed-be0d-5609971d255a\",\"email\":\"test-go-create_an_incident_returns_created_response-1678320684@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671062990@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671062990@datadoghq.com\",\"uuid\":\"ee1307d6-f262-47be-b312-0f77517487b8\",\"email\":\"test-go-create_an_incident_returns_created_response-1671062990@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679875893@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679875893@datadoghq.com\",\"uuid\":\"ee8bd235-cc33-11ed-b285-a2593f21064b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679875893@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676160746@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676160746@datadoghq.com\",\"uuid\":\"eeac3af0-aa69-11ed-bddd-722daf28c490\",\"email\":\"test-go-create_an_incident_returns_created_response-1676160746@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677629625@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677629625@datadoghq.com\",\"uuid\":\"eeb210e2-b7c5-11ed-8e20-4a014c845df9\",\"email\":\"test-go-create_an_incident_returns_created_response-1677629625@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672272657@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672272657@datadoghq.com\",\"uuid\":\"efc56647-04f9-430b-abcd-78fd73135dc9\",\"email\":\"test-go-create_an_incident_returns_created_response-1672272657@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674605542@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674605542@datadoghq.com\",\"uuid\":\"f090690e-9c44-11ed-bd03-d63a15ea0a5e\",\"email\":\"test-go-create_an_incident_returns_created_response-1674605542@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674173469@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674173469@datadoghq.com\",\"uuid\":\"f1130564-9856-11ed-8928-461f5552e193\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674173469@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679443823@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679443823@datadoghq.com\",\"uuid\":\"f116f34c-c845-11ed-8b17-fe25dd6b2d5d\",\"email\":\"test-go-create_an_incident_returns_created_response-1679443823@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678407019@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678407019@datadoghq.com\",\"uuid\":\"f182abdf-bed7-11ed-b4e0-566658a732f8\",\"email\":\"test-go-create_an_incident_returns_created_response-1678407019@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677283885@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677283885@datadoghq.com\",\"uuid\":\"f185aa8c-b4a0-11ed-a797-c2fe525de487\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677283885@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677974947@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677974947@datadoghq.com\",\"uuid\":\"f24bcc61-bae9-11ed-a3f2-e6671bdc78dd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677974947@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677808304@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677808304@datadoghq.com\",\"uuid\":\"f352f9e3-b965-11ed-b5bf-a606768bc197\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677808304@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679875903@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679875903@datadoghq.com\",\"uuid\":\"f48dd27a-cc33-11ed-9f7f-0e85fe61e6ee\",\"email\":\"test-go-create_an_incident_returns_created_response-1679875903@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675123953@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675123953@datadoghq.com\",\"uuid\":\"f59374fc-a0fb-11ed-a5e8-da207d422d98\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675123953@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674173477@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674173477@datadoghq.com\",\"uuid\":\"f5a1e00e-9856-11ed-a432-b611e40f0c37\",\"email\":\"test-go-create_an_incident_returns_created_response-1674173477@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675296611@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675296611@datadoghq.com\",\"uuid\":\"f5d92ebe-a28d-11ed-b39d-128f55cb4249\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675296611@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677283893@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677283893@datadoghq.com\",\"uuid\":\"f611f5ab-b4a0-11ed-a797-c2fe525de487\",\"email\":\"test-go-create_an_incident_returns_created_response-1677283893@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670598789@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670598789@datadoghq.com\",\"uuid\":\"f6a52e1f-a5fc-4498-b0f2-69fee17a4142\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670598789@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677974954@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677974954@datadoghq.com\",\"uuid\":\"f6c58d1e-bae9-11ed-8f91-4668bdad4d01\",\"email\":\"test-go-create_an_incident_returns_created_response-1677974954@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677808311@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677808311@datadoghq.com\",\"uuid\":\"f7f12039-b965-11ed-b5bf-a606768bc197\",\"email\":\"test-go-create_an_incident_returns_created_response-1677808311@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668211896@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668211896@datadoghq.com\",\"uuid\":\"f8313d55-863c-4872-8f01-5a74e04418d2\",\"email\":\"test-go-create_an_incident_returns_created_response-1668211896@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668816640@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668816640@datadoghq.com\",\"uuid\":\"f92f0fb9-f3fd-42ff-955a-744cc01ee9a4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668816640@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670928947@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670928947@datadoghq.com\",\"uuid\":\"f9e94170-240d-43ed-a3e4-dec65a38531b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670928947@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675123961@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675123961@datadoghq.com\",\"uuid\":\"fa40ced7-a0fb-11ed-a5e3-d6024dc128f7\",\"email\":\"test-go-create_an_incident_returns_created_response-1675123961@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675296619@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675296619@datadoghq.com\",\"uuid\":\"fa6d1a19-a28d-11ed-9c57-8a8107f52a6e\",\"email\":\"test-go-create_an_incident_returns_created_response-1675296619@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677888634@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677888634@datadoghq.com\",\"uuid\":\"fbd2af3f-ba20-11ed-a3f2-e6671bdc78dd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677888634@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670603299@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670603299@datadoghq.com\",\"uuid\":\"fc061455-8536-4ea0-8a7c-d6bd072c5b89\",\"email\":\"test-go-create_an_incident_returns_created_response-1670603299@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671408597@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671408597@datadoghq.com\",\"uuid\":\"fd20bff8-5c0c-4eb2-941b-c0d7669f996a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671408597@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670603854@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670603854@datadoghq.com\",\"uuid\":\"fdef06c9-5a21-44bb-afb4-14b055649e5b\",\"email\":\"test-go-create_an_incident_returns_created_response-1670603854@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667866318@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667866318@datadoghq.com\",\"uuid\":\"fe4f352d-a8b5-435e-a18c-9914eb88c865\",\"email\":\"test-go-create_an_incident_returns_created_response-1667866318@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926593@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926593@datadoghq.com\",\"uuid\":\"ff2e2858-cf28-44c7-98aa-be52cef329be\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926593@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675815030@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675815030@datadoghq.com\",\"uuid\":\"ff9a7c79-a744-11ed-9567-ba00348e1a7a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675815030@datadoghq.com\"}],\"impact\":[{\"name\":\"none\",\"count\":1703}],\"postmortem\":[{\"name\":\"No\",\"count\":1703},{\"name\":\"Yes\",\"count\":0}],\"time_to_resolve\":[{\"name\":\"time_to_resolve\",\"aggregates\":{\"min\":2.0,\"max\":3.0}}],\"state\":[{\"name\":\"active\",\"count\":1360},{\"name\":\"resolved\",\"count\":343},{\"name\":\"stable\",\"count\":0}],\"customer_impacted\":[{\"name\":0,\"count\":1703},{\"name\":true,\"count\":0}],\"fields\":[{\"name\":\"detection_method\",\"facets\":[{\"name\":\"unknown\",\"count\":1703},{\"name\":\"customer\",\"count\":0},{\"name\":\"employee\",\"count\":0},{\"name\":\"monitor\",\"count\":0},{\"name\":\"other\",\"count\":0}]},{\"name\":\"root_cause\",\"facets\":[]},{\"name\":\"services\",\"facets\":[]},{\"name\":\"summary\",\"facets\":[]},{\"name\":\"teams\",\"facets\":[]}],\"created_by\":[{\"name\":\"CI Account\",\"count\":1505,\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"},{\"name\":\"frog@datadoghq.com\",\"count\":198,\"handle\":\"frog@datadoghq.com\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"email\":\"frog@datadoghq.com\"}],\"last_modified_by\":[{\"name\":\"CI Account\",\"count\":1505,\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"},{\"name\":\"frog@datadoghq.com\",\"count\":198,\"handle\":\"frog@datadoghq.com\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"email\":\"frog@datadoghq.com\"}],\"commander\":[{\"name\":\"test-go-create_an_incident_returns_created_response-1677888642@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677888642@datadoghq.com\",\"uuid\":\"00a080f5-ba21-11ed-a3f2-e6671bdc78dd\",\"email\":\"test-go-create_an_incident_returns_created_response-1677888642@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672877473@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672877473@datadoghq.com\",\"uuid\":\"01dc2b21-3194-414a-b8e8-58704603421b\",\"email\":\"test-go-create_an_incident_returns_created_response-1672877473@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678925450@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678925450@datadoghq.com\",\"uuid\":\"02a54dc1-c38f-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678925450@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672013445@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672013445@datadoghq.com\",\"uuid\":\"03e16d56-e954-4e9a-b9da-22dffdfa1f24\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672013445@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666981015@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666981015@datadoghq.com\",\"uuid\":\"03e65d16-b7bb-456a-a5da-bf31dffbdf4d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666981015@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675815038@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675815038@datadoghq.com\",\"uuid\":\"0423cfd5-a745-11ed-9567-ba00348e1a7a\",\"email\":\"test-go-create_an_incident_returns_created_response-1675815038@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669335011@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669335011@datadoghq.com\",\"uuid\":\"04c4feaa-1864-4167-a48b-e156181d50d8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669335011@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669248659@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669248659@datadoghq.com\",\"uuid\":\"04f0d8b5-1959-43fb-85b5-782682062c4e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669248659@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673655101@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673655101@datadoghq.com\",\"uuid\":\"05d83a07-93a0-11ed-bf65-7630e111ac00\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673655101@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666743047@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666743047@datadoghq.com\",\"uuid\":\"060c37c0-93a9-48c0-90bc-dee85b66a7c7\",\"email\":\"test-go-create_an_incident_returns_created_response-1666743047@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678925461@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678925461@datadoghq.com\",\"uuid\":\"08f8d3b7-c38f-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1678925461@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670112680@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670112680@datadoghq.com\",\"uuid\":\"09010d4b-7635-4553-a7b9-973f5f9cea5b\",\"email\":\"test-go-create_an_incident_returns_created_response-1670112680@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673655109@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673655109@datadoghq.com\",\"uuid\":\"0a679024-93a0-11ed-aaf8-3230475e674b\",\"email\":\"test-go-create_an_incident_returns_created_response-1673655109@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667434335@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667434335@datadoghq.com\",\"uuid\":\"0ebbf763-be8f-40bb-8ee7-d37b729a5eed\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667434335@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668384644@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668384644@datadoghq.com\",\"uuid\":\"1193cff3-b670-4e08-a535-346105dcaf9f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668384644@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675210330@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675210330@datadoghq.com\",\"uuid\":\"1205474f-a1c5-11ed-b767-5ec4f5b84c10\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675210330@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674691927@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674691927@datadoghq.com\",\"uuid\":\"122c89ad-9d0e-11ed-9f54-862b4cfe184c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674691927@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668643799@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668643799@datadoghq.com\",\"uuid\":\"12d78e1b-0784-46f3-99ac-7e5db2d5c92e\",\"email\":\"test-go-create_an_incident_returns_created_response-1668643799@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671667884@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671667884@datadoghq.com\",\"uuid\":\"1310687d-9adb-47ae-ad7a-066c9e525f8b\",\"email\":\"test-go-create_an_incident_returns_created_response-1671667884@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673741454@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673741454@datadoghq.com\",\"uuid\":\"142ba3fc-9469-11ed-a365-8ec8661800c6\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673741454@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679011809@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679011809@datadoghq.com\",\"uuid\":\"1431aabf-c458-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679011809@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670927771@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670927771@datadoghq.com\",\"uuid\":\"14344412-a7b1-4044-89f7-8139727432f6\",\"email\":\"test-go-create_an_incident_returns_created_response-1670927771@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667261554@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667261554@datadoghq.com\",\"uuid\":\"1608c46d-bee2-46a5-be87-49af2b889db5\",\"email\":\"test-go-create_an_incident_returns_created_response-1667261554@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670929702@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670929702@datadoghq.com\",\"uuid\":\"161217ca-a0b5-418c-b0e5-d16edddd8258\",\"email\":\"test-go-create_an_incident_returns_created_response-1670929702@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675901397@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675901397@datadoghq.com\",\"uuid\":\"1628d4a0-a80e-11ed-af43-4e64a4a39547\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675901397@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670928949@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670928949@datadoghq.com\",\"uuid\":\"16754b18-1887-4f22-ae44-4a86e9bfc749\",\"email\":\"test-go-create_an_incident_returns_created_response-1670928949@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675210337@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675210337@datadoghq.com\",\"uuid\":\"1682f280-a1c5-11ed-ad87-fecda9c428d5\",\"email\":\"test-go-create_an_incident_returns_created_response-1675210337@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674691935@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674691935@datadoghq.com\",\"uuid\":\"16bf2921-9d0e-11ed-aff1-fa6399bf96fd\",\"email\":\"test-go-create_an_incident_returns_created_response-1674691935@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671754258@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671754258@datadoghq.com\",\"uuid\":\"18ada30d-ad3e-4ba2-911d-931233a75aa0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671754258@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679962293@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679962293@datadoghq.com\",\"uuid\":\"18cfb810-ccfd-11ed-a201-de0443f18a2a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679962293@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673741462@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673741462@datadoghq.com\",\"uuid\":\"18e9a7f7-9469-11ed-aaf8-3230475e674b\",\"email\":\"test-go-create_an_incident_returns_created_response-1673741462@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679011819@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679011819@datadoghq.com\",\"uuid\":\"1a8c2817-c458-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1679011819@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675901404@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675901404@datadoghq.com\",\"uuid\":\"1aa50cab-a80e-11ed-bc4c-ea1adbbc0986\",\"email\":\"test-go-create_an_incident_returns_created_response-1675901404@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670285407@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670285407@datadoghq.com\",\"uuid\":\"1bb87a6c-da01-4798-8bd0-5cd9918f641f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670285407@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668903124@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668903124@datadoghq.com\",\"uuid\":\"1bcb111e-ea64-4d60-9b77-ae5e7f22f157\",\"email\":\"test-go-create_an_incident_returns_created_response-1668903124@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668039051@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668039051@datadoghq.com\",\"uuid\":\"1c54a963-17f1-4ee8-a2b0-7fd07c3b2c68\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668039051@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674259871@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674259871@datadoghq.com\",\"uuid\":\"1c631d44-9920-11ed-8c68-2a913616fde8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674259871@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677024542@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677024542@datadoghq.com\",\"uuid\":\"1ce329fb-b245-11ed-8fbc-ca7794d66904\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677024542@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671149452@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671149452@datadoghq.com\",\"uuid\":\"1ebe2367-3eda-464c-9571-edd444620682\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671149452@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676419814@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676419814@datadoghq.com\",\"uuid\":\"1f019dde-acc5-11ed-bcdd-a68779fca942\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676419814@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679962303@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679962303@datadoghq.com\",\"uuid\":\"1f034a5d-ccfd-11ed-aef0-a6405a9b4791\",\"email\":\"test-go-create_an_incident_returns_created_response-1679962303@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672618338@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672618338@datadoghq.com\",\"uuid\":\"1fd5cef4-df5c-4609-be9a-11bf76483cfc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672618338@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666915819@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666915819@datadoghq.com\",\"uuid\":\"20be4a8a-b215-4bc0-b2fa-31c27e0a642b\",\"email\":\"test-go-create_an_incident_returns_created_response-1666915819@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671840707@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671840707@datadoghq.com\",\"uuid\":\"20d2001a-92b4-4d03-a5cb-73617f27b723\",\"email\":\"test-go-create_an_incident_returns_created_response-1671840707@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674259878@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674259878@datadoghq.com\",\"uuid\":\"20dbaf3d-9920-11ed-8c68-2a913616fde8\",\"email\":\"test-go-create_an_incident_returns_created_response-1674259878@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677024549@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677024549@datadoghq.com\",\"uuid\":\"214ed4fd-b245-11ed-8fbc-ca7794d66904\",\"email\":\"test-go-create_an_incident_returns_created_response-1677024549@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676419822@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676419822@datadoghq.com\",\"uuid\":\"2375265b-acc5-11ed-9a7e-46e4eb8f12a7\",\"email\":\"test-go-create_an_incident_returns_created_response-1676419822@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670594546@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670594546@datadoghq.com\",\"uuid\":\"2399be00-e683-4133-aec2-7ab8fe73779e\",\"email\":\"test-go-create_an_incident_returns_created_response-1670594546@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673050262@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673050262@datadoghq.com\",\"uuid\":\"23a293e3-086a-4f8e-8fa6-a2555557309e\",\"email\":\"test-go-create_an_incident_returns_created_response-1673050262@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667175034@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667175034@datadoghq.com\",\"uuid\":\"24f932ba-4cd2-498e-8261-64f6ec161bcb\",\"email\":\"test-go-create_an_incident_returns_created_response-1667175034@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677456630@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677456630@datadoghq.com\",\"uuid\":\"25538030-b633-11ed-827a-8e2840b25db2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677456630@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672013452@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672013452@datadoghq.com\",\"uuid\":\"2593795d-b0f5-46f9-a852-34d3c466ce0a\",\"email\":\"test-go-create_an_incident_returns_created_response-1672013452@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667520677@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667520677@datadoghq.com\",\"uuid\":\"26287ddb-5d1c-400d-96dc-a1d3bb09f880\",\"email\":\"test-go-create_an_incident_returns_created_response-1667520677@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679616573@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679616573@datadoghq.com\",\"uuid\":\"27c16c1b-c9d8-11ed-b840-0ed4b0ca293a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679616573@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676938232@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676938232@datadoghq.com\",\"uuid\":\"281184f3-b17c-11ed-bce8-0a557ccee039\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676938232@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668557513@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668557513@datadoghq.com\",\"uuid\":\"2871bc57-733f-4f85-b3ef-440569202326\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668557513@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668471095@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668471095@datadoghq.com\",\"uuid\":\"289f8508-500c-472e-a9d4-71f30f1cf151\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668471095@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671667877@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671667877@datadoghq.com\",\"uuid\":\"28ae893d-4b70-420d-96dc-f82066a0642f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671667877@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672531830@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672531830@datadoghq.com\",\"uuid\":\"291b8416-a87d-4e56-a93e-9d430d5c4996\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672531830@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677456637@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677456637@datadoghq.com\",\"uuid\":\"29cd6809-b633-11ed-827a-8e2840b25db2\",\"email\":\"test-go-create_an_incident_returns_created_response-1677456637@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678493444@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678493444@datadoghq.com\",\"uuid\":\"2acb4dc0-bfa1-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678493444@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671927057@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671927057@datadoghq.com\",\"uuid\":\"2b0ac046-39c8-4bf4-a00a-deb089bbbc0c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671927057@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679530252@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679530252@datadoghq.com\",\"uuid\":\"2c9256b5-c90f-11ed-a1f3-7afc45c1981c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679530252@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676938239@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676938239@datadoghq.com\",\"uuid\":\"2c977e11-b17c-11ed-bce8-0a557ccee039\",\"email\":\"test-go-create_an_incident_returns_created_response-1676938239@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679616583@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679616583@datadoghq.com\",\"uuid\":\"2d99557e-c9d8-11ed-a171-361a8cacd441\",\"email\":\"test-go-create_an_incident_returns_created_response-1679616583@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672445562@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672445562@datadoghq.com\",\"uuid\":\"2db31432-b497-42b8-80b7-fef85898a2a8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672445562@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668039059@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668039059@datadoghq.com\",\"uuid\":\"2ebfffc1-a7da-4558-a507-038442f7ee79\",\"email\":\"test-go-create_an_incident_returns_created_response-1668039059@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669767030@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669767030@datadoghq.com\",\"uuid\":\"2eca0bd9-db8e-4c5d-91b7-2ccddffd5764\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669767030@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671235865@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671235865@datadoghq.com\",\"uuid\":\"2fc6258a-7492-43c0-accf-24528cbbfea1\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671235865@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669680686@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669680686@datadoghq.com\",\"uuid\":\"302a3d05-c61c-41d8-ad31-8821b764acf7\",\"email\":\"test-go-create_an_incident_returns_created_response-1669680686@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678493454@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678493454@datadoghq.com\",\"uuid\":\"30e3000f-bfa1-11ed-9949-f20a22a554f2\",\"email\":\"test-go-create_an_incident_returns_created_response-1678493454@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676333515@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676333515@datadoghq.com\",\"uuid\":\"30e43861-abfc-11ed-a6fc-0e9b7fe457ae\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676333515@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669680678@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669680678@datadoghq.com\",\"uuid\":\"31ad2923-926d-49af-ad5b-d8b120e6edc8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669680678@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679530263@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679530263@datadoghq.com\",\"uuid\":\"32d40acb-c90f-11ed-a1f3-7afc45c1981c\",\"email\":\"test-go-create_an_incident_returns_created_response-1679530263@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671581470@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671581470@datadoghq.com\",\"uuid\":\"34377484-e597-4d4c-bccf-88e919b6d549\",\"email\":\"test-go-create_an_incident_returns_created_response-1671581470@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667693449@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667693449@datadoghq.com\",\"uuid\":\"34e92512-7c24-4704-816e-4fadc9b5eff7\",\"email\":\"test-go-create_an_incident_returns_created_response-1667693449@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668211888@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668211888@datadoghq.com\",\"uuid\":\"3578dcc8-088a-4320-8c27-7f80f1bba4cb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668211888@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672186272@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672186272@datadoghq.com\",\"uuid\":\"3584000d-6337-4c9e-955e-e25514b83be0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672186272@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676333523@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676333523@datadoghq.com\",\"uuid\":\"35ba7493-abfc-11ed-b5cd-eec9514dd597\",\"email\":\"test-go-create_an_incident_returns_created_response-1676333523@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678579793@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678579793@datadoghq.com\",\"uuid\":\"367e08f8-c06a-11ed-b4e0-566658a732f8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678579793@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671062982@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671062982@datadoghq.com\",\"uuid\":\"3883d9fe-1678-452e-8801-11a374f9fdae\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671062982@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667002244@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667002244@datadoghq.com\",\"uuid\":\"39627294-7a14-4e71-b5ff-5221e68b6fbe\",\"email\":\"test-go-create_an_incident_returns_created_response-1667002244@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671581462@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671581462@datadoghq.com\",\"uuid\":\"3bc8406a-5790-4582-82f5-08e330921b9b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671581462@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668989431@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668989431@datadoghq.com\",\"uuid\":\"3c28c823-158e-46c2-8dce-06f1dace90e8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668989431@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673050254@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673050254@datadoghq.com\",\"uuid\":\"3c7509b1-82af-4d25-b1e5-3e8aaa107f0a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673050254@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678579803@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678579803@datadoghq.com\",\"uuid\":\"3c7f71d2-c06a-11ed-a89b-0ebbb850607d\",\"email\":\"test-go-create_an_incident_returns_created_response-1678579803@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669162240@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669162240@datadoghq.com\",\"uuid\":\"3ce20d84-5e75-45a5-b7b9-971549a50cf4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669162240@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670458180@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670458180@datadoghq.com\",\"uuid\":\"40d8c19a-8c6a-4f54-9444-aba7b6798064\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670458180@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678061409@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678061409@datadoghq.com\",\"uuid\":\"41da9ce5-bbb3-11ed-82a6-028cebedd0cf\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678061409@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673136665@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673136665@datadoghq.com\",\"uuid\":\"426feaae-7bf3-4b2c-bc8c-0c79056d6d8d\",\"email\":\"test-go-create_an_incident_returns_created_response-1673136665@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672099886@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672099886@datadoghq.com\",\"uuid\":\"431624c4-d099-4dfb-b701-33a60bba6ebe\",\"email\":\"test-go-create_an_incident_returns_created_response-1672099886@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669421482@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669421482@datadoghq.com\",\"uuid\":\"442dd264-b729-473b-a51d-4b141068fe3d\",\"email\":\"test-go-create_an_incident_returns_created_response-1669421482@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603297@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603297@datadoghq.com\",\"uuid\":\"446cd2d8-630c-4fe9-8901-fb85bd22426d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603297@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678061417@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678061417@datadoghq.com\",\"uuid\":\"467de14f-bbb3-11ed-82a6-028cebedd0cf\",\"email\":\"test-go-create_an_incident_returns_created_response-1678061417@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668989438@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668989438@datadoghq.com\",\"uuid\":\"46d62900-016b-463c-9fff-c8b4f946ce5c\",\"email\":\"test-go-create_an_incident_returns_created_response-1668989438@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675469405@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675469405@datadoghq.com\",\"uuid\":\"46e3c6ef-a420-11ed-b1f8-56250c47f0b3\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675469405@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670371777@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670371777@datadoghq.com\",\"uuid\":\"48f7337b-3304-46fc-9e88-23b4dc5d24cc\",\"email\":\"test-go-create_an_incident_returns_created_response-1670371777@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670943350@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670943350@datadoghq.com\",\"uuid\":\"4b432133-ba1b-4edc-ab57-c0250963f250\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670943350@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679098230@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679098230@datadoghq.com\",\"uuid\":\"4b5ba977-c521-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679098230@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675469412@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675469412@datadoghq.com\",\"uuid\":\"4b68a1e2-a420-11ed-b1f8-56250c47f0b3\",\"email\":\"test-go-create_an_incident_returns_created_response-1675469412@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668816648@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668816648@datadoghq.com\",\"uuid\":\"4e5cb15e-f18e-43ba-b115-2a4e62736739\",\"email\":\"test-go-create_an_incident_returns_created_response-1668816648@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603851@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603851@datadoghq.com\",\"uuid\":\"4e6b1824-dc1e-4691-8abd-5ffb968da7eb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670603851@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669421474@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669421474@datadoghq.com\",\"uuid\":\"4fdb4327-3660-4aeb-b403-7f7939493f27\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669421474@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670458188@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670458188@datadoghq.com\",\"uuid\":\"50d5408a-1894-4173-9fa1-32209009d9b1\",\"email\":\"test-go-create_an_incident_returns_created_response-1670458188@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679098240@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679098240@datadoghq.com\",\"uuid\":\"5141e45c-c521-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-create_an_incident_returns_created_response-1679098240@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675383094@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675383094@datadoghq.com\",\"uuid\":\"520007b9-a357-11ed-acb5-6e0b90178632\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675383094@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670803787@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670803787@datadoghq.com\",\"uuid\":\"521a78f7-573e-4b67-8e2c-d0dd5d91a265\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670803787@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666743039@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666743039@datadoghq.com\",\"uuid\":\"54b84ea9-ae9f-4159-b226-aba3b432a792\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666743039@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674346295@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674346295@datadoghq.com\",\"uuid\":\"551c3a48-99e9-11ed-a607-1684d7f553f6\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674346295@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678147771@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678147771@datadoghq.com\",\"uuid\":\"557fb06e-bc7c-11ed-be39-625d488bce09\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678147771@datadoghq.com\"},{\"name\":\"test-add_commander_to_an_incident_returns_ok_response-1677691218@datadoghq.com\",\"count\":1,\"handle\":\"test-add_commander_to_an_incident_returns_ok_response-1677691218@datadoghq.com\",\"uuid\":\"56afe5b0-b855-11ed-a706-064bc8586212\",\"email\":\"test-add_commander_to_an_incident_returns_ok_response-1677691218@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675383103@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675383103@datadoghq.com\",\"uuid\":\"56d1cddc-a357-11ed-95c6-eefcd7f14d98\",\"email\":\"test-go-create_an_incident_returns_created_response-1675383103@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670929700@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670929700@datadoghq.com\",\"uuid\":\"5705f818-933e-4ef4-818c-615b06f80fd1\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670929700@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668557521@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668557521@datadoghq.com\",\"uuid\":\"577067f0-c41d-4928-8964-0f7725e8cf68\",\"email\":\"test-go-create_an_incident_returns_created_response-1668557521@datadoghq.com\"},{\"name\":\"test-create_an_incident_returns_created_response-1677691220@datadoghq.com\",\"count\":1,\"handle\":\"test-create_an_incident_returns_created_response-1677691220@datadoghq.com\",\"uuid\":\"57e9dbb7-b855-11ed-ab26-8e492650c256\",\"email\":\"test-create_an_incident_returns_created_response-1677691220@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679702983@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679702983@datadoghq.com\",\"uuid\":\"58287ff7-caa1-11ed-81eb-8227c2cf9828\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679702983@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666829448@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666829448@datadoghq.com\",\"uuid\":\"586e086f-1e29-4689-99b6-641c3218b0a8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666829448@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674346302@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674346302@datadoghq.com\",\"uuid\":\"59b0d36c-99e9-11ed-8968-92ec5048e27c\",\"email\":\"test-go-create_an_incident_returns_created_response-1674346302@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667261546@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667261546@datadoghq.com\",\"uuid\":\"59c9cd2e-cd40-4530-ba50-415bce89b133\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667261546@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678147781@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678147781@datadoghq.com\",\"uuid\":\"5b76378d-bc7c-11ed-ba16-0aeab349e953\",\"email\":\"test-go-create_an_incident_returns_created_response-1678147781@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670976638@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670976638@datadoghq.com\",\"uuid\":\"5baf69e4-9bd6-4c76-b552-2bfee88031b5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670976638@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668298265@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668298265@datadoghq.com\",\"uuid\":\"5c4ecf79-7ffb-47ea-9331-687b04ac9df8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668298265@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671840699@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671840699@datadoghq.com\",\"uuid\":\"5ce42d6d-a0b9-4d0f-893b-aa0b8f30ee5c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671840699@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672445570@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672445570@datadoghq.com\",\"uuid\":\"5d11019d-f1dc-468d-a20a-8e64e7af9494\",\"email\":\"test-go-create_an_incident_returns_created_response-1672445570@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670976646@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670976646@datadoghq.com\",\"uuid\":\"5db9c599-b71f-40c6-84d9-8ca8779004e1\",\"email\":\"test-go-create_an_incident_returns_created_response-1670976646@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679702993@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679702993@datadoghq.com\",\"uuid\":\"5e20a7d6-caa1-11ed-b285-a2593f21064b\",\"email\":\"test-go-create_an_incident_returns_created_response-1679702993@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673223078@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673223078@datadoghq.com\",\"uuid\":\"5f3582c4-06d1-43a3-bab9-b7ece49136a4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673223078@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672791107@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672791107@datadoghq.com\",\"uuid\":\"610753d8-8bc4-11ed-94a1-26632eba8bed\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672791107@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677110986@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677110986@datadoghq.com\",\"uuid\":\"614ff267-b30e-11ed-b3d7-ea098e8dc2bb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677110986@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667088640@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667088640@datadoghq.com\",\"uuid\":\"61d88713-957f-4920-8a3b-65f0ccd79b57\",\"email\":\"test-go-create_an_incident_returns_created_response-1667088640@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670026253@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670026253@datadoghq.com\",\"uuid\":\"623452c3-d694-466a-95b9-140a9c44a1ab\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670026253@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672791115@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672791115@datadoghq.com\",\"uuid\":\"65b38b0e-8bc4-11ed-81c7-fed5bfaa3f3d\",\"email\":\"test-go-create_an_incident_returns_created_response-1672791115@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677110993@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677110993@datadoghq.com\",\"uuid\":\"65e049af-b30e-11ed-82a1-e2db47427de5\",\"email\":\"test-go-create_an_incident_returns_created_response-1677110993@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674778401@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674778401@datadoghq.com\",\"uuid\":\"6847d712-9dd7-11ed-967f-12bf3e4c6b0d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674778401@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667520669@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667520669@datadoghq.com\",\"uuid\":\"6887723d-dbde-4969-bba8-e9b3464645ce\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667520669@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678204931@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678204931@datadoghq.com\",\"uuid\":\"6b9e40b1-bd01-11ed-8bd9-4a4655204cc7\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678204931@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667952700@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667952700@datadoghq.com\",\"uuid\":\"6c22fc34-31d7-4085-948b-d862feb447fe\",\"email\":\"test-go-create_an_incident_returns_created_response-1667952700@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676506273@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676506273@datadoghq.com\",\"uuid\":\"6ca38252-ad8e-11ed-9613-3a90352a946f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676506273@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671149459@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671149459@datadoghq.com\",\"uuid\":\"6ccce5fc-d6a8-416d-921b-f883914b67ad\",\"email\":\"test-go-create_an_incident_returns_created_response-1671149459@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674778408@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674778408@datadoghq.com\",\"uuid\":\"6d0c845f-9dd7-11ed-a399-1a75992a86c7\",\"email\":\"test-go-create_an_incident_returns_created_response-1674778408@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669594231@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669594231@datadoghq.com\",\"uuid\":\"6d550b97-297b-43ea-a3dc-85383cf72fba\",\"email\":\"test-go-create_an_incident_returns_created_response-1669594231@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671927065@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671927065@datadoghq.com\",\"uuid\":\"6d7f7052-6ddb-461f-a49f-6cb5fca6b2c8\",\"email\":\"test-go-create_an_incident_returns_created_response-1671927065@datadoghq.com\"},{\"name\":\"test-add_commander_to_an_incident_returns_ok_response-1677691687@datadoghq.com\",\"count\":1,\"handle\":\"test-add_commander_to_an_incident_returns_ok_response-1677691687@datadoghq.com\",\"uuid\":\"6e0e84e3-b856-11ed-ab26-8e492650c256\",\"email\":\"test-add_commander_to_an_incident_returns_ok_response-1677691687@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675987874@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675987874@datadoghq.com\",\"uuid\":\"6ed45bb9-a8d7-11ed-b51e-c2a468ff72a6\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675987874@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670927769@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670927769@datadoghq.com\",\"uuid\":\"6efabec4-24bc-46bd-8f53-e068f03adbf0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670927769@datadoghq.com\"},{\"name\":\"test-create_an_incident_returns_created_response-1677691689@datadoghq.com\",\"count\":1,\"handle\":\"test-create_an_incident_returns_created_response-1677691689@datadoghq.com\",\"uuid\":\"6f41744d-b856-11ed-a706-064bc8586212\",\"email\":\"test-create_an_incident_returns_created_response-1677691689@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670717462@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670717462@datadoghq.com\",\"uuid\":\"70532155-9800-46d9-89ed-bd41347c3dfd\",\"email\":\"test-go-create_an_incident_returns_created_response-1670717462@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676506281@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676506281@datadoghq.com\",\"uuid\":\"713c4001-ad8e-11ed-be7d-0ec0d643006a\",\"email\":\"test-go-create_an_incident_returns_created_response-1676506281@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678204941@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678204941@datadoghq.com\",\"uuid\":\"71cb7181-bd01-11ed-8700-9293738b117d\",\"email\":\"test-go-create_an_incident_returns_created_response-1678204941@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671322271@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671322271@datadoghq.com\",\"uuid\":\"7247d247-e798-4af5-b9ce-7bf786c4d0c7\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671322271@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672359091@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672359091@datadoghq.com\",\"uuid\":\"73546355-1adc-4289-908a-2f6fae7fc9fa\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672359091@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675987882@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675987882@datadoghq.com\",\"uuid\":\"738ccf6d-a8d7-11ed-ad7e-6ed4f1c67dea\",\"email\":\"test-go-create_an_incident_returns_created_response-1675987882@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677543090@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677543090@datadoghq.com\",\"uuid\":\"73a70dc9-b6fc-11ed-a3d7-a2295215c227\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677543090@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669507839@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669507839@datadoghq.com\",\"uuid\":\"7571121d-a654-4df8-9afa-e638f17d53bb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669507839@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674432680@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674432680@datadoghq.com\",\"uuid\":\"76c071c8-9ab2-11ed-8c68-2a913616fde8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674432680@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674864754@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674864754@datadoghq.com\",\"uuid\":\"7715eb6d-9ea0-11ed-8e78-767557a2485a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674864754@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677543098@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677543098@datadoghq.com\",\"uuid\":\"785f915d-b6fc-11ed-ad05-76e4602e1079\",\"email\":\"test-go-create_an_incident_returns_created_response-1677543098@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673395882@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673395882@datadoghq.com\",\"uuid\":\"7ac9b3b9-9144-11ed-82e3-622adeb45fa9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673395882@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674432688@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674432688@datadoghq.com\",\"uuid\":\"7b5907f1-9ab2-11ed-8c68-2a913616fde8\",\"email\":\"test-go-create_an_incident_returns_created_response-1674432688@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672877465@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672877465@datadoghq.com\",\"uuid\":\"7ba05e4d-f9a0-44e2-aa8c-bcda7adac2e5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672877465@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674864762@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674864762@datadoghq.com\",\"uuid\":\"7bc2a11e-9ea0-11ed-8c38-7ad981f4abb4\",\"email\":\"test-go-create_an_incident_returns_created_response-1674864762@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668384652@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668384652@datadoghq.com\",\"uuid\":\"7da5fc01-ccbd-4679-8149-cb22fe402bb3\",\"email\":\"test-go-create_an_incident_returns_created_response-1668384652@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667779824@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667779824@datadoghq.com\",\"uuid\":\"7dd124ba-7343-4882-b700-c44374efa8e3\",\"email\":\"test-go-create_an_incident_returns_created_response-1667779824@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673914292@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673914292@datadoghq.com\",\"uuid\":\"7f3e8ad2-95fb-11ed-b93e-b6681b4e2484\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673914292@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673395889@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673395889@datadoghq.com\",\"uuid\":\"7f7afd0e-9144-11ed-82e3-622adeb45fa9\",\"email\":\"test-go-create_an_incident_returns_created_response-1673395889@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676592635@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676592635@datadoghq.com\",\"uuid\":\"8009c2e2-ae57-11ed-b4cb-a681084bf13a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676592635@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670926105@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670926105@datadoghq.com\",\"uuid\":\"81831280-6cb1-4a01-9dc9-f68b1405f8f6\",\"email\":\"test-go-create_an_incident_returns_created_response-1670926105@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677197369@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677197369@datadoghq.com\",\"uuid\":\"81da5714-b3d7-11ed-97bb-cad2b20710fd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677197369@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678666250@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678666250@datadoghq.com\",\"uuid\":\"82eadb7f-c133-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678666250@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673914300@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673914300@datadoghq.com\",\"uuid\":\"84060fed-95fb-11ed-b93e-b6681b4e2484\",\"email\":\"test-go-create_an_incident_returns_created_response-1673914300@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670199054@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670199054@datadoghq.com\",\"uuid\":\"847f57aa-1b32-4eee-8447-e6eef1f6744f\",\"email\":\"test-go-create_an_incident_returns_created_response-1670199054@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676592642@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676592642@datadoghq.com\",\"uuid\":\"848026b5-ae57-11ed-9ecb-824f74ccf3e4\",\"email\":\"test-go-create_an_incident_returns_created_response-1676592642@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670630968@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670630968@datadoghq.com\",\"uuid\":\"853cce16-d7d3-4bd6-8f99-b1eab0407cf1\",\"email\":\"test-go-create_an_incident_returns_created_response-1670630968@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672099877@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672099877@datadoghq.com\",\"uuid\":\"862d085b-48ce-446e-a74f-ae3538d623f5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672099877@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674951109@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674951109@datadoghq.com\",\"uuid\":\"866af7b6-9f69-11ed-8c38-7ad981f4abb4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674951109@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677197377@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677197377@datadoghq.com\",\"uuid\":\"86a13258-b3d7-11ed-a605-a260cf3212a9\",\"email\":\"test-go-create_an_incident_returns_created_response-1677197377@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673827975@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673827975@datadoghq.com\",\"uuid\":\"86bc89ca-9532-11ed-bf65-7630e111ac00\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673827975@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667434343@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667434343@datadoghq.com\",\"uuid\":\"88c2cdf6-2769-4e68-9503-38d3f166ff1a\",\"email\":\"test-go-create_an_incident_returns_created_response-1667434343@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678666260@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678666260@datadoghq.com\",\"uuid\":\"88ce8004-c133-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1678666260@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679270991@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679270991@datadoghq.com\",\"uuid\":\"89229fdb-c6b3-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679270991@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668643791@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668643791@datadoghq.com\",\"uuid\":\"8a2d2c9d-c478-4a74-94a8-cabb28bd1473\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668643791@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674951116@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674951116@datadoghq.com\",\"uuid\":\"8ae38d89-9f69-11ed-bfa9-f2483e31eab5\",\"email\":\"test-go-create_an_incident_returns_created_response-1674951116@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673827983@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673827983@datadoghq.com\",\"uuid\":\"8b7b570e-9532-11ed-bf65-7630e111ac00\",\"email\":\"test-go-create_an_incident_returns_created_response-1673827983@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676074256@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676074256@datadoghq.com\",\"uuid\":\"8e41e3a8-a9a0-11ed-a060-46b9814ce648\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676074256@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672704719@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672704719@datadoghq.com\",\"uuid\":\"8e85e36f-5ccd-4052-a34e-d7338178914e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672704719@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679271002@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679271002@datadoghq.com\",\"uuid\":\"8f25b885-c6b3-11ed-9949-f20a22a554f2\",\"email\":\"test-go-create_an_incident_returns_created_response-1679271002@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667866310@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667866310@datadoghq.com\",\"uuid\":\"8f8399af-4d57-41a1-91a3-37c29fb62092\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667866310@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670630960@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670630960@datadoghq.com\",\"uuid\":\"8fa60296-198c-4113-8f21-0ba09e4fd83e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670630960@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679789405@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679789405@datadoghq.com\",\"uuid\":\"8fb58f8b-cb6a-11ed-be83-92f82eb96735\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679789405@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666829456@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666829456@datadoghq.com\",\"uuid\":\"91a8dc0a-0c63-4411-b9ab-39ec37dc2eee\",\"email\":\"test-go-create_an_incident_returns_created_response-1666829456@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669939802@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669939802@datadoghq.com\",\"uuid\":\"92c4c4e2-d881-485c-9668-0aa68239c513\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669939802@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676074265@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676074265@datadoghq.com\",\"uuid\":\"936c4650-a9a0-11ed-af98-1a32d7edfd9d\",\"email\":\"test-go-create_an_incident_returns_created_response-1676074265@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667088632@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667088632@datadoghq.com\",\"uuid\":\"93e8df0e-729e-4d2f-b0a4-9495ffb37b06\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667088632@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673482254@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673482254@datadoghq.com\",\"uuid\":\"94c9bf7f-920d-11ed-9cec-222dbf547024\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673482254@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670598792@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670598792@datadoghq.com\",\"uuid\":\"94d92a17-4768-48dd-97b4-ab32fee4e33b\",\"email\":\"test-go-create_an_incident_returns_created_response-1670598792@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669853467@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669853467@datadoghq.com\",\"uuid\":\"94f7179d-40a0-4790-9436-6080eb0db034\",\"email\":\"test-go-create_an_incident_returns_created_response-1669853467@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679789415@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679789415@datadoghq.com\",\"uuid\":\"959ada1b-cb6a-11ed-9f7f-0e85fe61e6ee\",\"email\":\"test-go-create_an_incident_returns_created_response-1679789415@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669075853@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669075853@datadoghq.com\",\"uuid\":\"96796850-b278-4313-a726-9cf5c832fe30\",\"email\":\"test-go-create_an_incident_returns_created_response-1669075853@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676679006@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676679006@datadoghq.com\",\"uuid\":\"99579994-af20-11ed-94c9-462a25af4eaf\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676679006@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673482262@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673482262@datadoghq.com\",\"uuid\":\"995b112e-920d-11ed-9888-e278e4206645\",\"email\":\"test-go-create_an_incident_returns_created_response-1673482262@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670594544@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670594544@datadoghq.com\",\"uuid\":\"9b26b565-e0c1-4777-a693-553a8d5cb243\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670594544@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670285415@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670285415@datadoghq.com\",\"uuid\":\"9b9fe3ac-f73b-43a5-b570-43d156e07ea9\",\"email\":\"test-go-create_an_incident_returns_created_response-1670285415@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670926595@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670926595@datadoghq.com\",\"uuid\":\"9c09fbea-fce4-4c02-9a45-ec845bab938a\",\"email\":\"test-go-create_an_incident_returns_created_response-1670926595@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670544898@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670544898@datadoghq.com\",\"uuid\":\"9c58a1dc-6beb-4390-928e-ed9d95b13b30\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670544898@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667693441@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667693441@datadoghq.com\",\"uuid\":\"9ccf5d51-55b4-43e0-ad79-7819a8d223f0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667693441@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676679013@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676679013@datadoghq.com\",\"uuid\":\"9dd94922-af20-11ed-94c9-462a25af4eaf\",\"email\":\"test-go-create_an_incident_returns_created_response-1676679013@datadoghq.com\"},{\"name\":\"test-add_commander_to_an_incident_returns_ok_response-1675266399@datadoghq.com\",\"count\":1,\"handle\":\"test-add_commander_to_an_incident_returns_ok_response-1675266399@datadoghq.com\",\"uuid\":\"9defa75d-a247-11ed-97de-223323d49fa6\",\"email\":\"test-add_commander_to_an_incident_returns_ok_response-1675266399@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666979690@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666979690@datadoghq.com\",\"uuid\":\"9e072255-5184-44a8-ae5f-a8e70ec5037c\",\"email\":\"test-go-create_an_incident_returns_created_response-1666979690@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678752625@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678752625@datadoghq.com\",\"uuid\":\"9e85bf56-c1fc-11ed-b4e0-566658a732f8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678752625@datadoghq.com\"},{\"name\":\"test-create_an_incident_returns_created_response-1675266400@datadoghq.com\",\"count\":1,\"handle\":\"test-create_an_incident_returns_created_response-1675266400@datadoghq.com\",\"uuid\":\"9ee1d254-a247-11ed-92ef-6ad132878933\",\"email\":\"test-create_an_incident_returns_created_response-1675266400@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668125498@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668125498@datadoghq.com\",\"uuid\":\"9f5a1546-bccf-4b9f-a25f-96fb87bd7bfc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668125498@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669162248@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669162248@datadoghq.com\",\"uuid\":\"9f88a5e0-9842-4fd1-95c7-7f85edad3874\",\"email\":\"test-go-create_an_incident_returns_created_response-1669162248@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1666981017@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1666981017@datadoghq.com\",\"uuid\":\"a136a629-05cd-4a2f-b925-e1d74c6a69ad\",\"email\":\"test-go-create_an_incident_returns_created_response-1666981017@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670803795@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670803795@datadoghq.com\",\"uuid\":\"a18c9430-e993-488f-8b5c-3ad27997e55c\",\"email\":\"test-go-create_an_incident_returns_created_response-1670803795@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675555889@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675555889@datadoghq.com\",\"uuid\":\"a3644be2-a4e9-11ed-b7fb-1ea641c369ef\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675555889@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672704726@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672704726@datadoghq.com\",\"uuid\":\"a4230eac-f78e-407d-8551-b07c6476622b\",\"email\":\"test-go-create_an_incident_returns_created_response-1672704726@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678752635@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678752635@datadoghq.com\",\"uuid\":\"a4aff885-c1fc-11ed-a95c-ceabe7e64a8c\",\"email\":\"test-go-create_an_incident_returns_created_response-1678752635@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675555897@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675555897@datadoghq.com\",\"uuid\":\"a813f7f3-a4e9-11ed-9388-1ad521c601b9\",\"email\":\"test-go-create_an_incident_returns_created_response-1675555897@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674087020@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674087020@datadoghq.com\",\"uuid\":\"a96c393b-978d-11ed-b425-4e7b3187c657\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674087020@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669767038@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669767038@datadoghq.com\",\"uuid\":\"a9977d83-cddd-4644-ba02-dc1a86c0293e\",\"email\":\"test-go-create_an_incident_returns_created_response-1669767038@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678234243@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678234243@datadoghq.com\",\"uuid\":\"aabc794c-bd45-11ed-9ea1-9ebf47de1fdb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678234243@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667606997@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667606997@datadoghq.com\",\"uuid\":\"ab5bb1f0-b9b2-43da-bd50-e5ba7315fc29\",\"email\":\"test-go-create_an_incident_returns_created_response-1667606997@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673568622@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673568622@datadoghq.com\",\"uuid\":\"abedb0a5-92d6-11ed-a082-5215624996c0\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673568622@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672272649@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672272649@datadoghq.com\",\"uuid\":\"ac484716-4260-4fd9-8288-1d4a6b0d39da\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672272649@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674087028@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674087028@datadoghq.com\",\"uuid\":\"ade2bf85-978d-11ed-b425-4e7b3187c657\",\"email\":\"test-go-create_an_incident_returns_created_response-1674087028@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673568629@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673568629@datadoghq.com\",\"uuid\":\"b0771f90-92d6-11ed-a082-5215624996c0\",\"email\":\"test-go-create_an_incident_returns_created_response-1673568629@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672359099@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672359099@datadoghq.com\",\"uuid\":\"b12b859b-c89a-4023-84e6-2634f93fff00\",\"email\":\"test-go-create_an_incident_returns_created_response-1672359099@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678234254@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678234254@datadoghq.com\",\"uuid\":\"b155e604-bd45-11ed-ba70-22d478e15cef\",\"email\":\"test-go-create_an_incident_returns_created_response-1678234254@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667347843@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667347843@datadoghq.com\",\"uuid\":\"b2f195b3-53b7-4095-bfb8-90538edb12f7\",\"email\":\"test-go-create_an_incident_returns_created_response-1667347843@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677715854@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677715854@datadoghq.com\",\"uuid\":\"b2fc8929-b88e-11ed-8da2-b6d07de5d20c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677715854@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667779816@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667779816@datadoghq.com\",\"uuid\":\"b335a7f4-a66e-41ed-b4aa-982c5b76ffc1\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667779816@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672963863@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672963863@datadoghq.com\",\"uuid\":\"b39fcb21-440b-4bd8-bc55-103259b74a57\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1672963863@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670890374@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670890374@datadoghq.com\",\"uuid\":\"b3ccf662-7d0d-4a45-9cb3-5ffcb089012c\",\"email\":\"test-go-create_an_incident_returns_created_response-1670890374@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669594223@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669594223@datadoghq.com\",\"uuid\":\"b4a8f9a4-28a9-4311-a813-8149eb5264f4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669594223@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672963870@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672963870@datadoghq.com\",\"uuid\":\"b631798d-d17b-44ab-af5c-f075df907ddd\",\"email\":\"test-go-create_an_incident_returns_created_response-1672963870@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677715861@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677715861@datadoghq.com\",\"uuid\":\"b768b7b4-b88e-11ed-a132-2aa63a904ba0\",\"email\":\"test-go-create_an_incident_returns_created_response-1677715861@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671408605@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671408605@datadoghq.com\",\"uuid\":\"b7d64361-36fd-4ebd-9438-949f60ec3745\",\"email\":\"test-go-create_an_incident_returns_created_response-1671408605@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670604391@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670604391@datadoghq.com\",\"uuid\":\"b8fa89c4-34f6-4b69-a654-e3671ce743a0\",\"email\":\"test-go-create_an_incident_returns_created_response-1670604391@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668471103@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668471103@datadoghq.com\",\"uuid\":\"b9d64d92-66de-41cc-9164-b83b7b74439f\",\"email\":\"test-go-create_an_incident_returns_created_response-1668471103@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674000722@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674000722@datadoghq.com\",\"uuid\":\"bbd69d76-96c4-11ed-b802-922cd9596b23\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674000722@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669853460@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669853460@datadoghq.com\",\"uuid\":\"bc036552-b05e-4ffd-8dd1-44dbe725a6ec\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669853460@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670544906@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670544906@datadoghq.com\",\"uuid\":\"bcb9456d-8b65-4369-b2c4-49ee5e4c14b7\",\"email\":\"test-go-create_an_incident_returns_created_response-1670544906@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674519128@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674519128@datadoghq.com\",\"uuid\":\"bd7e4c91-9b7b-11ed-882c-9aa2ca31c98c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674519128@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676765396@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676765396@datadoghq.com\",\"uuid\":\"bdc08c5f-afe9-11ed-84e6-a6c768ad21b4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676765396@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667952692@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667952692@datadoghq.com\",\"uuid\":\"be421a73-22de-48d3-be3f-1a269016ff83\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667952692@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675037533@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675037533@datadoghq.com\",\"uuid\":\"bf08166d-a032-11ed-88af-be56a8628f3f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675037533@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674000730@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674000730@datadoghq.com\",\"uuid\":\"c09c4f30-96c4-11ed-9f1c-fe165ba0981c\",\"email\":\"test-go-create_an_incident_returns_created_response-1674000730@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666915811@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666915811@datadoghq.com\",\"uuid\":\"c20da1a9-657e-4b5a-9159-9f4d324f51fc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1666915811@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675642269@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675642269@datadoghq.com\",\"uuid\":\"c22b3e65-a5b2-11ed-9388-1ad521c601b9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675642269@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671495039@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671495039@datadoghq.com\",\"uuid\":\"c23885b0-3659-4d47-b5c9-16c0965dc7d9\",\"email\":\"test-go-create_an_incident_returns_created_response-1671495039@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679357416@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679357416@datadoghq.com\",\"uuid\":\"c238d04b-c77c-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679357416@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674519135@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674519135@datadoghq.com\",\"uuid\":\"c23e01c9-9b7b-11ed-8af1-7201c2784402\",\"email\":\"test-go-create_an_incident_returns_created_response-1674519135@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676765404@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676765404@datadoghq.com\",\"uuid\":\"c27df074-afe9-11ed-bce8-0a557ccee039\",\"email\":\"test-go-create_an_incident_returns_created_response-1676765404@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668730249@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668730249@datadoghq.com\",\"uuid\":\"c36f2608-4650-4331-b810-1dc5500c1356\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668730249@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670924666@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670924666@datadoghq.com\",\"uuid\":\"c381f80b-8a88-47bd-9dbe-77720d784a52\",\"email\":\"test-go-create_an_incident_returns_created_response-1670924666@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669075846@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669075846@datadoghq.com\",\"uuid\":\"c39f3031-906f-4679-a817-9b8f072254bb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1669075846@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675037541@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675037541@datadoghq.com\",\"uuid\":\"c3e2d867-a032-11ed-88af-be56a8628f3f\",\"email\":\"test-go-create_an_incident_returns_created_response-1675037541@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667002236@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667002236@datadoghq.com\",\"uuid\":\"c567f0fa-6f70-42e3-855e-2ae1d2ed7243\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667002236@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668125506@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668125506@datadoghq.com\",\"uuid\":\"c60a0f7d-3f36-4966-a63f-f1f77dca030a\",\"email\":\"test-go-create_an_incident_returns_created_response-1668125506@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676247007@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676247007@datadoghq.com\",\"uuid\":\"c61f4ec1-ab32-11ed-8972-1eb0f4245ee5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676247007@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675642277@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675642277@datadoghq.com\",\"uuid\":\"c6d4d92c-a5b2-11ed-b7fb-1ea641c369ef\",\"email\":\"test-go-create_an_incident_returns_created_response-1675642277@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668903116@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668903116@datadoghq.com\",\"uuid\":\"c7319ecf-1451-4031-817a-5bef597d5ac9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668903116@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670604389@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670604389@datadoghq.com\",\"uuid\":\"c7b7b86f-5268-4c20-b223-afc7923d54b9\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670604389@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679357426@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679357426@datadoghq.com\",\"uuid\":\"c811af38-c77c-11ed-9949-f20a22a554f2\",\"email\":\"test-go-create_an_incident_returns_created_response-1679357426@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673309503@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673309503@datadoghq.com\",\"uuid\":\"c8bbd0d2-53af-4fc0-a392-1c1c0871fb49\",\"email\":\"test-go-create_an_incident_returns_created_response-1673309503@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671754265@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671754265@datadoghq.com\",\"uuid\":\"c8e6753d-801c-40b5-9dd8-c98feae31df9\",\"email\":\"test-go-create_an_incident_returns_created_response-1671754265@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679184770@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679184770@datadoghq.com\",\"uuid\":\"c960ccca-c5ea-11ed-9949-f20a22a554f2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679184770@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926103@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926103@datadoghq.com\",\"uuid\":\"c9f53cd7-2f1e-4491-ae28-796ace9db6fc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926103@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670371766@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670371766@datadoghq.com\",\"uuid\":\"cac0f70c-c327-4965-b9f9-62190c96b0dc\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670371766@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676247015@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676247015@datadoghq.com\",\"uuid\":\"caf6ae98-ab32-11ed-bddd-722daf28c490\",\"email\":\"test-go-create_an_incident_returns_created_response-1676247015@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1673223085@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1673223085@datadoghq.com\",\"uuid\":\"cc0a6e87-ce4b-4313-b0a8-8b40179bcb68\",\"email\":\"test-go-create_an_incident_returns_created_response-1673223085@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671235873@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671235873@datadoghq.com\",\"uuid\":\"cc1891b1-9a95-4af6-98d7-95ac53c4e6ff\",\"email\":\"test-go-create_an_incident_returns_created_response-1671235873@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679184781@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679184781@datadoghq.com\",\"uuid\":\"cf9a8e87-c5ea-11ed-b3e8-5aa3effaa08f\",\"email\":\"test-go-create_an_incident_returns_created_response-1679184781@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670943352@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670943352@datadoghq.com\",\"uuid\":\"d0330853-c731-4097-a353-fd1014abde80\",\"email\":\"test-go-create_an_incident_returns_created_response-1670943352@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667175027@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667175027@datadoghq.com\",\"uuid\":\"d1d53f95-4adc-4e7b-896b-1e75ba345e9f\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667175027@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675728631@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675728631@datadoghq.com\",\"uuid\":\"d5aa246d-a67b-11ed-9567-ba00348e1a7a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675728631@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677370168@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677370168@datadoghq.com\",\"uuid\":\"d654fb42-b569-11ed-827a-8e2840b25db2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677370168@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676851766@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676851766@datadoghq.com\",\"uuid\":\"d6780612-b0b2-11ed-a714-aa504cceab29\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676851766@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672186280@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672186280@datadoghq.com\",\"uuid\":\"d70a12ec-c10f-47dd-9892-cebecfd6ffb0\",\"email\":\"test-go-create_an_incident_returns_created_response-1672186280@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670199046@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670199046@datadoghq.com\",\"uuid\":\"d968eb97-03c1-436e-835f-9ed06d352716\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670199046@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670890367@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670890367@datadoghq.com\",\"uuid\":\"d9a19936-2b5c-4fbc-b802-7a3dbf639c1b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670890367@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675728639@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675728639@datadoghq.com\",\"uuid\":\"da3ac6ee-a67b-11ed-bd1e-766989ec1239\",\"email\":\"test-go-create_an_incident_returns_created_response-1675728639@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677370176@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677370176@datadoghq.com\",\"uuid\":\"dac22963-b569-11ed-a797-c2fe525de487\",\"email\":\"test-go-create_an_incident_returns_created_response-1677370176@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676851774@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676851774@datadoghq.com\",\"uuid\":\"db0404af-b0b2-11ed-84e6-a6c768ad21b4\",\"email\":\"test-go-create_an_incident_returns_created_response-1676851774@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673136657@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673136657@datadoghq.com\",\"uuid\":\"dcbcad43-008c-4c4c-8c35-ee5ade081d9e\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673136657@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670026261@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670026261@datadoghq.com\",\"uuid\":\"ddd99aa3-c7e5-4dff-8099-10588153e164\",\"email\":\"test-go-create_an_incident_returns_created_response-1670026261@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671495031@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671495031@datadoghq.com\",\"uuid\":\"de662b96-845c-45b9-a359-b0b763a45a61\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671495031@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670717454@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670717454@datadoghq.com\",\"uuid\":\"def01997-ae71-49bc-93ea-ff9287d606c7\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670717454@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670112672@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670112672@datadoghq.com\",\"uuid\":\"e09cd088-50f3-4a99-8222-0917d760f4fb\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670112672@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670924664@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670924664@datadoghq.com\",\"uuid\":\"e0a87080-eb76-45db-9230-ed4ef629b0d2\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670924664@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678839065@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678839065@datadoghq.com\",\"uuid\":\"e1073fac-c2c5-11ed-b4e0-566658a732f8\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678839065@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668730257@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668730257@datadoghq.com\",\"uuid\":\"e21b3798-5777-4777-919d-e5ff6fce422a\",\"email\":\"test-go-create_an_incident_returns_created_response-1668730257@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667347836@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667347836@datadoghq.com\",\"uuid\":\"e2267bdc-1a12-4210-869e-60d0faa477bd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667347836@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669248667@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669248667@datadoghq.com\",\"uuid\":\"e42f7f54-0e83-4c40-b112-887402a7ba6b\",\"email\":\"test-go-create_an_incident_returns_created_response-1669248667@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669335019@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669335019@datadoghq.com\",\"uuid\":\"e485ea7a-9a64-44dd-a774-d3f31e869f6e\",\"email\":\"test-go-create_an_incident_returns_created_response-1669335019@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673309495@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673309495@datadoghq.com\",\"uuid\":\"e6615793-c00d-45e8-b8d6-ec1c96309d81\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1673309495@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669939809@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669939809@datadoghq.com\",\"uuid\":\"e6d0a0d2-e642-4b20-aa66-34ab638f4d9f\",\"email\":\"test-go-create_an_incident_returns_created_response-1669939809@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678839075@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678839075@datadoghq.com\",\"uuid\":\"e7113f68-c2c5-11ed-b4e0-566658a732f8\",\"email\":\"test-go-create_an_incident_returns_created_response-1678839075@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672531837@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672531837@datadoghq.com\",\"uuid\":\"e7403ce3-c0a2-4bae-8823-45a21c310656\",\"email\":\"test-go-create_an_incident_returns_created_response-1672531837@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678320674@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678320674@datadoghq.com\",\"uuid\":\"e7d1ba87-be0e-11ed-be0d-5609971d255a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678320674@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672618346@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672618346@datadoghq.com\",\"uuid\":\"e84ce941-4c3d-4b79-b736-619897785a82\",\"email\":\"test-go-create_an_incident_returns_created_response-1672618346@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668298272@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668298272@datadoghq.com\",\"uuid\":\"e9b00493-1235-49f2-b229-06ee3afc79b0\",\"email\":\"test-go-create_an_incident_returns_created_response-1668298272@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676160739@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676160739@datadoghq.com\",\"uuid\":\"e9f6df6e-aa69-11ed-8972-1eb0f4245ee5\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1676160739@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677629617@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677629617@datadoghq.com\",\"uuid\":\"e9ffa5e5-b7c5-11ed-a50e-226546b1da54\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677629617@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679443813@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679443813@datadoghq.com\",\"uuid\":\"eb03f9a6-c845-11ed-a1e1-c6385b25b934\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679443813@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678407009@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678407009@datadoghq.com\",\"uuid\":\"eb834f42-bed7-11ed-a89b-0ebbb850607d\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1678407009@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674605534@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674605534@datadoghq.com\",\"uuid\":\"ebb5a53d-9c44-11ed-97cc-a697d2568caf\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674605534@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1669507847@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1669507847@datadoghq.com\",\"uuid\":\"ebf0848a-6b21-4736-ad2a-d93daf59fd15\",\"email\":\"test-go-create_an_incident_returns_created_response-1669507847@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671322279@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671322279@datadoghq.com\",\"uuid\":\"ebf23d4b-53c8-467a-bbb0-636c11b3ffee\",\"email\":\"test-go-create_an_incident_returns_created_response-1671322279@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667606989@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667606989@datadoghq.com\",\"uuid\":\"ec1ed77b-1d70-4727-b2ac-f478a37e3b8c\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1667606989@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678320684@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678320684@datadoghq.com\",\"uuid\":\"edaec5b4-be0e-11ed-be0d-5609971d255a\",\"email\":\"test-go-create_an_incident_returns_created_response-1678320684@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1671062990@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1671062990@datadoghq.com\",\"uuid\":\"ee1307d6-f262-47be-b312-0f77517487b8\",\"email\":\"test-go-create_an_incident_returns_created_response-1671062990@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679875893@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679875893@datadoghq.com\",\"uuid\":\"ee8bd235-cc33-11ed-b285-a2593f21064b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1679875893@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1676160746@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1676160746@datadoghq.com\",\"uuid\":\"eeac3af0-aa69-11ed-bddd-722daf28c490\",\"email\":\"test-go-create_an_incident_returns_created_response-1676160746@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677629625@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677629625@datadoghq.com\",\"uuid\":\"eeb210e2-b7c5-11ed-8e20-4a014c845df9\",\"email\":\"test-go-create_an_incident_returns_created_response-1677629625@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1672272657@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1672272657@datadoghq.com\",\"uuid\":\"efc56647-04f9-430b-abcd-78fd73135dc9\",\"email\":\"test-go-create_an_incident_returns_created_response-1672272657@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674605542@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674605542@datadoghq.com\",\"uuid\":\"f090690e-9c44-11ed-bd03-d63a15ea0a5e\",\"email\":\"test-go-create_an_incident_returns_created_response-1674605542@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674173469@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674173469@datadoghq.com\",\"uuid\":\"f1130564-9856-11ed-8928-461f5552e193\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1674173469@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679443823@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679443823@datadoghq.com\",\"uuid\":\"f116f34c-c845-11ed-8b17-fe25dd6b2d5d\",\"email\":\"test-go-create_an_incident_returns_created_response-1679443823@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1678407019@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1678407019@datadoghq.com\",\"uuid\":\"f182abdf-bed7-11ed-b4e0-566658a732f8\",\"email\":\"test-go-create_an_incident_returns_created_response-1678407019@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677283885@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677283885@datadoghq.com\",\"uuid\":\"f185aa8c-b4a0-11ed-a797-c2fe525de487\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677283885@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677974947@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677974947@datadoghq.com\",\"uuid\":\"f24bcc61-bae9-11ed-a3f2-e6671bdc78dd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677974947@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677808304@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677808304@datadoghq.com\",\"uuid\":\"f352f9e3-b965-11ed-b5bf-a606768bc197\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677808304@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1679875903@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1679875903@datadoghq.com\",\"uuid\":\"f48dd27a-cc33-11ed-9f7f-0e85fe61e6ee\",\"email\":\"test-go-create_an_incident_returns_created_response-1679875903@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675123953@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675123953@datadoghq.com\",\"uuid\":\"f59374fc-a0fb-11ed-a5e8-da207d422d98\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675123953@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1674173477@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1674173477@datadoghq.com\",\"uuid\":\"f5a1e00e-9856-11ed-a432-b611e40f0c37\",\"email\":\"test-go-create_an_incident_returns_created_response-1674173477@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675296611@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675296611@datadoghq.com\",\"uuid\":\"f5d92ebe-a28d-11ed-b39d-128f55cb4249\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675296611@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677283893@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677283893@datadoghq.com\",\"uuid\":\"f611f5ab-b4a0-11ed-a797-c2fe525de487\",\"email\":\"test-go-create_an_incident_returns_created_response-1677283893@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670598789@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670598789@datadoghq.com\",\"uuid\":\"f6a52e1f-a5fc-4498-b0f2-69fee17a4142\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670598789@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677974954@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677974954@datadoghq.com\",\"uuid\":\"f6c58d1e-bae9-11ed-8f91-4668bdad4d01\",\"email\":\"test-go-create_an_incident_returns_created_response-1677974954@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1677808311@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1677808311@datadoghq.com\",\"uuid\":\"f7f12039-b965-11ed-b5bf-a606768bc197\",\"email\":\"test-go-create_an_incident_returns_created_response-1677808311@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1668211896@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1668211896@datadoghq.com\",\"uuid\":\"f8313d55-863c-4872-8f01-5a74e04418d2\",\"email\":\"test-go-create_an_incident_returns_created_response-1668211896@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668816640@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668816640@datadoghq.com\",\"uuid\":\"f92f0fb9-f3fd-42ff-955a-744cc01ee9a4\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1668816640@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670928947@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670928947@datadoghq.com\",\"uuid\":\"f9e94170-240d-43ed-a3e4-dec65a38531b\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670928947@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675123961@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675123961@datadoghq.com\",\"uuid\":\"fa40ced7-a0fb-11ed-a5e3-d6024dc128f7\",\"email\":\"test-go-create_an_incident_returns_created_response-1675123961@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1675296619@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1675296619@datadoghq.com\",\"uuid\":\"fa6d1a19-a28d-11ed-9c57-8a8107f52a6e\",\"email\":\"test-go-create_an_incident_returns_created_response-1675296619@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677888634@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677888634@datadoghq.com\",\"uuid\":\"fbd2af3f-ba20-11ed-a3f2-e6671bdc78dd\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1677888634@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670603299@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670603299@datadoghq.com\",\"uuid\":\"fc061455-8536-4ea0-8a7c-d6bd072c5b89\",\"email\":\"test-go-create_an_incident_returns_created_response-1670603299@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671408597@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671408597@datadoghq.com\",\"uuid\":\"fd20bff8-5c0c-4eb2-941b-c0d7669f996a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1671408597@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1670603854@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1670603854@datadoghq.com\",\"uuid\":\"fdef06c9-5a21-44bb-afb4-14b055649e5b\",\"email\":\"test-go-create_an_incident_returns_created_response-1670603854@datadoghq.com\"},{\"name\":\"test-go-create_an_incident_returns_created_response-1667866318@datadoghq.com\",\"count\":1,\"handle\":\"test-go-create_an_incident_returns_created_response-1667866318@datadoghq.com\",\"uuid\":\"fe4f352d-a8b5-435e-a18c-9914eb88c865\",\"email\":\"test-go-create_an_incident_returns_created_response-1667866318@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926593@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926593@datadoghq.com\",\"uuid\":\"ff2e2858-cf28-44c7-98aa-be52cef329be\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1670926593@datadoghq.com\"},{\"name\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675815030@datadoghq.com\",\"count\":1,\"handle\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675815030@datadoghq.com\",\"uuid\":\"ff9a7c79-a744-11ed-9567-ba00348e1a7a\",\"email\":\"test-go-add_commander_to_an_incident_returns_ok_response-1675815030@datadoghq.com\"}]},\"incidents\":[{\"data\":{\"type\":\"incidents\",\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[{\"type\":\"incident_integrations\",\"id\":\"11e66957-ce29-5a6c-9a73-fdb1a042d817\"}]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]},\"attachments\":{\"data\":[]}},\"attributes\":{\"fields\":{\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"summary\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"}},\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"name\":\"CI Account\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}}},\"time_to_internal_response\":0,\"public_id\":128959,\"customer_impact_end\":null,\"customer_impacted\":false,\"detected\":\"2023-03-28T00:12:47+00:00\",\"severity\":\"UNKNOWN\",\"time_to_resolve\":0,\"title\":\"Test-Go-Update_an_existing_incident_integration_metadata_returns_OK_response-1679962367\",\"created_by_uuid\":null,\"time_to_repair\":0,\"customer_impact_start\":null,\"created\":\"2023-03-28T00:12:47+00:00\",\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1679962367,\"end\":null}]}}},\"time_to_detect\":0,\"customer_impact_scope\":\"\",\"modified\":\"2023-03-28T00:12:47+00:00\",\"resolved\":null,\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"name\":\"CI Account\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}}},\"creation_idempotency_key\":null,\"state\":\"active\",\"visibility\":\"organization\",\"commander\":null,\"case_id\":null,\"last_modified_by_uuid\":null,\"notification_handles\":null,\"customer_impact_duration\":0},\"id\":\"a262514b-6262-5be0-a72e-f0afd52b71c7\"}}]},\"relationships\":{\"incidents_relationship\":{\"data\":[{\"type\":\"incidents\",\"id\":\"a262514b-6262-5be0-a72e-f0afd52b71c7\"},{\"type\":\"incidents\",\"id\":\"75ed2002-ea12-51c8-a90f-fc5b733e80cb\"}]}}},\"included\":[{\"type\":\"incidents\",\"id\":\"a262514b-6262-5be0-a72e-f0afd52b71c7\",\"attributes\":{\"public_id\":128959,\"title\":\"Test-Go-Update_an_existing_incident_integration_metadata_returns_OK_response-1679962367\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"name\":\"CI Account\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-03-28T00:12:47+00:00\",\"modified\":\"2023-03-28T00:12:47+00:00\",\"commander\":null,\"detected\":\"2023-03-28T00:12:47+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"name\":\"CI Account\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"fields\":{\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"summary\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1679962367,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[{\"type\":\"incident_integrations\",\"id\":\"11e66957-ce29-5a6c-9a73-fdb1a042d817\"}]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}],\"meta\":{\"pagination\":{\"offset\":2,\"next_offset\":4,\"size\":2}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 28 Mar 2023 07:55:36 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incidents/Search-for-incidents-returns-OK-response.json b/tests/scenarios/cassettes/v2/incidents/Search-for-incidents-returns-OK-response.json index 1d2fc4fbe..04c238957 100644 --- a/tests/scenarios/cassettes/v2/incidents/Search-for-incidents-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/incidents/Search-for-incidents-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Search_for_incidents_returns_OK_response-1699302337\"},\"type\":\"incidents\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/incidents"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incidents\",\"id\":\"e3d37bc4-d7ee-55f8-87d7-651729afc766\",\"attributes\":{\"public_id\":174814,\"incident_type_uuid\":null,\"title\":\"Test-Search_for_incidents_returns_OK_response-1699302337\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:37.187440+00:00\",\"modified\":\"2023-11-06T20:25:37.187440+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:37.163541+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:37 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/incidents/search?query=state%3A%28active%20OR%20stable%20OR%20resolved%29"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incidents_search_results\",\"attributes\":{\"total\":15,\"facets\":{\"severity\":[{\"name\":\"UNKNOWN\",\"count\":15},{\"name\":\"SEV-1\",\"count\":0},{\"name\":\"SEV-2\",\"count\":0},{\"name\":\"SEV-3\",\"count\":0},{\"name\":\"SEV-4\",\"count\":0},{\"name\":\"SEV-5\",\"count\":0}],\"time_to_repair\":[{\"name\":\"time_to_repair\",\"aggregates\":{\"min\":null,\"max\":null}}],\"visibility\":[{\"name\":\"organization\",\"count\":15}],\"responder\":[{\"name\":\"test-typescript-create_an_incident_returns_created_response-1699043759@datadoghq.com\",\"count\":1,\"handle\":\"test-typescript-create_an_incident_returns_created_response-1699043759@datadoghq.com\",\"uuid\":\"98ebf0b3-7a88-11ee-8d9d-868e8930478f\",\"email\":\"test-typescript-create_an_incident_returns_created_response-1699043759@datadoghq.com\"}],\"impact\":[{\"name\":\"none\",\"count\":15}],\"postmortem\":[{\"name\":\"No\",\"count\":15},{\"name\":\"Yes\",\"count\":0}],\"time_to_resolve\":[{\"name\":\"time_to_resolve\",\"aggregates\":{\"min\":null,\"max\":null}}],\"state\":[{\"name\":\"active\",\"count\":14},{\"name\":\"resolved\",\"count\":1},{\"name\":\"stable\",\"count\":0}],\"customer_impacted\":[{\"name\":0,\"count\":15},{\"name\":true,\"count\":0}],\"fields\":[{\"name\":\"detection_method\",\"facets\":[{\"name\":\"unknown\",\"count\":15},{\"name\":\"customer\",\"count\":0},{\"name\":\"employee\",\"count\":0},{\"name\":\"monitor\",\"count\":0},{\"name\":\"other\",\"count\":0}]},{\"name\":\"root_cause\",\"facets\":[]},{\"name\":\"services\",\"facets\":[]},{\"name\":\"summary\",\"facets\":[]},{\"name\":\"teams\",\"facets\":[]}],\"created_by\":[{\"name\":\"frog@datadoghq.com\",\"count\":15,\"handle\":\"frog@datadoghq.com\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"email\":\"frog@datadoghq.com\"}],\"last_modified_by\":[{\"name\":\"frog@datadoghq.com\",\"count\":15,\"handle\":\"frog@datadoghq.com\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"email\":\"frog@datadoghq.com\"}],\"commander\":[{\"name\":\"test-typescript-create_an_incident_returns_created_response-1699043759@datadoghq.com\",\"count\":1,\"handle\":\"test-typescript-create_an_incident_returns_created_response-1699043759@datadoghq.com\",\"uuid\":\"98ebf0b3-7a88-11ee-8d9d-868e8930478f\",\"email\":\"test-typescript-create_an_incident_returns_created_response-1699043759@datadoghq.com\"}]},\"incidents\":[{\"data\":{\"type\":\"incidents\",\"attributes\":{\"time_to_repair\":0,\"creation_idempotency_key\":null,\"archived\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impacted\":false,\"incident_type_uuid\":null,\"created_by_uuid\":null,\"created\":\"2023-11-03T20:36:03+00:00\",\"time_to_internal_response\":0,\"title\":\"Test-Typescript-Update_an_existing_incident_returns_OK_response-1699043763\",\"last_modified_by_uuid\":null,\"modified\":\"2023-11-03T20:36:03+00:00\",\"customer_impact_end\":null,\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"detected\":\"2023-11-03T20:36:03+00:00\",\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"time_to_resolve\":0,\"time_to_detect\":0,\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043763,\"end\":null}]}}},\"state\":\"active\",\"notification_handles\":null,\"commander\":null,\"customer_impact_duration\":0,\"severity\":\"UNKNOWN\",\"case_id\":null,\"resolved\":null,\"visibility\":\"organization\",\"fields\":{\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"summary\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"services\":{\"type\":\"autocomplete\",\"value\":null}},\"public_id\":174193},\"relationships\":{\"user_defined_fields\":{\"data\":[]},\"attachments\":{\"data\":[]},\"commander_user\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"integrations\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"impacts\":{\"data\":[]},\"responders\":{\"data\":[]}},\"id\":\"96534427-6172-53bf-8cbe-215de5b207e1\"}},{\"data\":{\"type\":\"incidents\",\"attributes\":{\"time_to_repair\":0,\"creation_idempotency_key\":null,\"archived\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impacted\":false,\"incident_type_uuid\":null,\"created_by_uuid\":null,\"created\":\"2023-11-03T20:36:03+00:00\",\"time_to_internal_response\":0,\"title\":\"Test-Typescript-Update_an_incident_todo_returns_OK_response-1699043763\",\"last_modified_by_uuid\":null,\"modified\":\"2023-11-03T20:36:03+00:00\",\"customer_impact_end\":null,\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"detected\":\"2023-11-03T20:36:03+00:00\",\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"time_to_resolve\":0,\"time_to_detect\":0,\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043763,\"end\":null}]}}},\"state\":\"active\",\"notification_handles\":null,\"commander\":null,\"customer_impact_duration\":0,\"severity\":\"UNKNOWN\",\"case_id\":null,\"resolved\":null,\"visibility\":\"organization\",\"fields\":{\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"}},\"public_id\":174194},\"relationships\":{\"user_defined_fields\":{\"data\":[]},\"attachments\":{\"data\":[]},\"commander_user\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"integrations\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"impacts\":{\"data\":[]},\"responders\":{\"data\":[]}},\"id\":\"e729fbb8-4087-5227-8725-11e44fe85b5f\"}},{\"data\":{\"type\":\"incidents\",\"attributes\":{\"time_to_repair\":0,\"creation_idempotency_key\":null,\"archived\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impacted\":false,\"incident_type_uuid\":null,\"created_by_uuid\":null,\"created\":\"2023-11-03T20:36:03+00:00\",\"time_to_internal_response\":0,\"title\":\"Test-Typescript-Update_an_existing_incident_integration_metadata_returns_OK_response-1699043762\",\"last_modified_by_uuid\":null,\"modified\":\"2023-11-03T20:36:03+00:00\",\"customer_impact_end\":null,\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"detected\":\"2023-11-03T20:36:03+00:00\",\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"time_to_resolve\":0,\"time_to_detect\":0,\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043763,\"end\":null}]}}},\"state\":\"active\",\"notification_handles\":null,\"commander\":null,\"customer_impact_duration\":0,\"severity\":\"UNKNOWN\",\"case_id\":null,\"resolved\":null,\"visibility\":\"organization\",\"fields\":{\"summary\":{\"type\":\"textbox\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"}},\"public_id\":174192},\"relationships\":{\"user_defined_fields\":{\"data\":[]},\"attachments\":{\"data\":[]},\"commander_user\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"integrations\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"impacts\":{\"data\":[]},\"responders\":{\"data\":[]}},\"id\":\"5af2ff33-ec8d-50c1-ae0b-77694ea77c89\"}},{\"data\":{\"type\":\"incidents\",\"attributes\":{\"time_to_repair\":0,\"creation_idempotency_key\":null,\"archived\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impacted\":false,\"incident_type_uuid\":null,\"created_by_uuid\":null,\"created\":\"2023-11-03T20:36:02+00:00\",\"time_to_internal_response\":0,\"title\":\"Test-Typescript-Remove_commander_from_an_incident_returns_OK_response-1699043762\",\"last_modified_by_uuid\":null,\"modified\":\"2023-11-03T20:36:02+00:00\",\"customer_impact_end\":null,\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"detected\":\"2023-11-03T20:36:02+00:00\",\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"time_to_resolve\":0,\"time_to_detect\":0,\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043762,\"end\":null}]}}},\"state\":\"active\",\"notification_handles\":null,\"commander\":null,\"customer_impact_duration\":0,\"severity\":\"UNKNOWN\",\"case_id\":null,\"resolved\":null,\"visibility\":\"organization\",\"fields\":{\"services\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"public_id\":174191},\"relationships\":{\"user_defined_fields\":{\"data\":[]},\"attachments\":{\"data\":[]},\"commander_user\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"integrations\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"impacts\":{\"data\":[]},\"responders\":{\"data\":[]}},\"id\":\"68000356-e808-5571-b49a-109e96bc5e08\"}},{\"data\":{\"type\":\"incidents\",\"attributes\":{\"time_to_repair\":0,\"creation_idempotency_key\":null,\"archived\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impacted\":false,\"incident_type_uuid\":null,\"created_by_uuid\":null,\"created\":\"2023-11-03T20:36:02+00:00\",\"time_to_internal_response\":0,\"title\":\"Test-Typescript-Get_incident_integration_metadata_details_returns_OK_response-1699043761\",\"last_modified_by_uuid\":null,\"modified\":\"2023-11-03T20:36:02+00:00\",\"customer_impact_end\":null,\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"detected\":\"2023-11-03T20:36:02+00:00\",\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"time_to_resolve\":0,\"time_to_detect\":0,\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043762,\"end\":null}]}}},\"state\":\"active\",\"notification_handles\":null,\"commander\":null,\"customer_impact_duration\":0,\"severity\":\"UNKNOWN\",\"case_id\":null,\"resolved\":null,\"visibility\":\"organization\",\"fields\":{\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"public_id\":174189},\"relationships\":{\"user_defined_fields\":{\"data\":[]},\"attachments\":{\"data\":[]},\"commander_user\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"integrations\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"impacts\":{\"data\":[]},\"responders\":{\"data\":[]}},\"id\":\"e4b4a761-8426-5e8c-ac41-e151eee07af9\"}},{\"data\":{\"type\":\"incidents\",\"attributes\":{\"time_to_repair\":0,\"creation_idempotency_key\":null,\"archived\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impacted\":false,\"incident_type_uuid\":null,\"created_by_uuid\":null,\"created\":\"2023-11-03T20:36:02+00:00\",\"time_to_internal_response\":0,\"title\":\"Test-Typescript-Get_the_details_of_an_incident_returns_OK_response-1699043762\",\"last_modified_by_uuid\":null,\"modified\":\"2023-11-03T20:36:02+00:00\",\"customer_impact_end\":null,\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"detected\":\"2023-11-03T20:36:02+00:00\",\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"time_to_resolve\":0,\"time_to_detect\":0,\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043762,\"end\":null}]}}},\"state\":\"active\",\"notification_handles\":null,\"commander\":null,\"customer_impact_duration\":0,\"severity\":\"UNKNOWN\",\"case_id\":null,\"resolved\":null,\"visibility\":\"organization\",\"fields\":{\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"}},\"public_id\":174190},\"relationships\":{\"user_defined_fields\":{\"data\":[]},\"attachments\":{\"data\":[]},\"commander_user\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"integrations\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"impacts\":{\"data\":[]},\"responders\":{\"data\":[]}},\"id\":\"e70e2781-1df4-5e93-9210-7c672ff65a8c\"}},{\"data\":{\"type\":\"incidents\",\"attributes\":{\"time_to_repair\":0,\"creation_idempotency_key\":null,\"archived\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impacted\":false,\"incident_type_uuid\":null,\"created_by_uuid\":null,\"created\":\"2023-11-03T20:36:01+00:00\",\"time_to_internal_response\":0,\"title\":\"Test-Typescript-Get_a_list_of_incidents_returns_OK_response-1699043761\",\"last_modified_by_uuid\":null,\"modified\":\"2023-11-03T20:36:01+00:00\",\"customer_impact_end\":null,\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"detected\":\"2023-11-03T20:36:01+00:00\",\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"time_to_resolve\":0,\"time_to_detect\":0,\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043761,\"end\":null}]}}},\"state\":\"active\",\"notification_handles\":null,\"commander\":null,\"customer_impact_duration\":0,\"severity\":\"UNKNOWN\",\"case_id\":null,\"resolved\":null,\"visibility\":\"organization\",\"fields\":{\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"}},\"public_id\":174187},\"relationships\":{\"user_defined_fields\":{\"data\":[]},\"attachments\":{\"data\":[]},\"commander_user\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"integrations\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"impacts\":{\"data\":[]},\"responders\":{\"data\":[]}},\"id\":\"ce870e8d-cd51-5b58-92ef-2dfe01530066\"}},{\"data\":{\"type\":\"incidents\",\"attributes\":{\"time_to_repair\":0,\"creation_idempotency_key\":null,\"archived\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impacted\":false,\"incident_type_uuid\":null,\"created_by_uuid\":null,\"created\":\"2023-11-03T20:36:01+00:00\",\"time_to_internal_response\":0,\"title\":\"Test-Typescript-Get_incident_attachments_returns_OK_response-1699043761\",\"last_modified_by_uuid\":null,\"modified\":\"2023-11-03T20:36:01+00:00\",\"customer_impact_end\":null,\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"detected\":\"2023-11-03T20:36:01+00:00\",\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"time_to_resolve\":0,\"time_to_detect\":0,\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043761,\"end\":null}]}}},\"state\":\"active\",\"notification_handles\":null,\"commander\":null,\"customer_impact_duration\":0,\"severity\":\"UNKNOWN\",\"case_id\":null,\"resolved\":null,\"visibility\":\"organization\",\"fields\":{\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"public_id\":174188},\"relationships\":{\"user_defined_fields\":{\"data\":[]},\"attachments\":{\"data\":[]},\"commander_user\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"integrations\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"impacts\":{\"data\":[]},\"responders\":{\"data\":[]}},\"id\":\"9c68f2c7-256e-5e98-a176-97526fd9d257\"}},{\"data\":{\"type\":\"incidents\",\"attributes\":{\"time_to_repair\":0,\"creation_idempotency_key\":null,\"archived\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impacted\":false,\"incident_type_uuid\":null,\"created_by_uuid\":null,\"created\":\"2023-11-03T20:36:00+00:00\",\"time_to_internal_response\":0,\"title\":\"Test-Typescript-Delete_an_incident_integration_metadata_returns_OK_response-1699043760\",\"last_modified_by_uuid\":null,\"modified\":\"2023-11-03T20:36:00+00:00\",\"customer_impact_end\":null,\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"detected\":\"2023-11-03T20:36:00+00:00\",\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"time_to_resolve\":0,\"time_to_detect\":0,\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043760,\"end\":null}]}}},\"state\":\"active\",\"notification_handles\":null,\"commander\":null,\"customer_impact_duration\":0,\"severity\":\"UNKNOWN\",\"case_id\":null,\"resolved\":null,\"visibility\":\"organization\",\"fields\":{\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"summary\":{\"type\":\"textbox\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"}},\"public_id\":174185},\"relationships\":{\"user_defined_fields\":{\"data\":[]},\"attachments\":{\"data\":[]},\"commander_user\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"integrations\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"impacts\":{\"data\":[]},\"responders\":{\"data\":[]}},\"id\":\"19c70c0d-7e83-5f81-bcd2-75e0f90ee11f\"}},{\"data\":{\"type\":\"incidents\",\"attributes\":{\"time_to_repair\":0,\"creation_idempotency_key\":null,\"archived\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impacted\":false,\"incident_type_uuid\":null,\"created_by_uuid\":null,\"created\":\"2023-11-03T20:36:00+00:00\",\"time_to_internal_response\":0,\"title\":\"Test-Typescript-Delete_an_existing_incident_returns_OK_response-1699043760\",\"last_modified_by_uuid\":null,\"modified\":\"2023-11-03T20:36:00+00:00\",\"customer_impact_end\":null,\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"detected\":\"2023-11-03T20:36:00+00:00\",\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"time_to_resolve\":0,\"time_to_detect\":0,\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043760,\"end\":null}]}}},\"state\":\"active\",\"notification_handles\":null,\"commander\":null,\"customer_impact_duration\":0,\"severity\":\"UNKNOWN\",\"case_id\":null,\"resolved\":null,\"visibility\":\"organization\",\"fields\":{\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"summary\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null}},\"public_id\":174184},\"relationships\":{\"user_defined_fields\":{\"data\":[]},\"attachments\":{\"data\":[]},\"commander_user\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"integrations\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"impacts\":{\"data\":[]},\"responders\":{\"data\":[]}},\"id\":\"1b45d550-12f7-55c8-89ed-826d688d3d1f\"}},{\"data\":{\"type\":\"incidents\",\"attributes\":{\"time_to_repair\":0,\"creation_idempotency_key\":null,\"archived\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impacted\":false,\"incident_type_uuid\":null,\"created_by_uuid\":null,\"created\":\"2023-11-03T20:36:00+00:00\",\"time_to_internal_response\":0,\"title\":\"Test-Typescript-Get_a_list_of_an_incident_s_integration_metadata_returns_OK_response-1699043760\",\"last_modified_by_uuid\":null,\"modified\":\"2023-11-03T20:36:00+00:00\",\"customer_impact_end\":null,\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"detected\":\"2023-11-03T20:36:00+00:00\",\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"time_to_resolve\":0,\"time_to_detect\":0,\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043761,\"end\":null}]}}},\"state\":\"active\",\"notification_handles\":null,\"commander\":null,\"customer_impact_duration\":0,\"severity\":\"UNKNOWN\",\"case_id\":null,\"resolved\":null,\"visibility\":\"organization\",\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"summary\":{\"type\":\"textbox\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null}},\"public_id\":174186},\"relationships\":{\"user_defined_fields\":{\"data\":[]},\"attachments\":{\"data\":[]},\"commander_user\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"integrations\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"impacts\":{\"data\":[]},\"responders\":{\"data\":[]}},\"id\":\"0ddf94c4-47ec-5fbb-8827-101c1b2678e0\"}},{\"data\":{\"type\":\"incidents\",\"attributes\":{\"time_to_repair\":0,\"creation_idempotency_key\":null,\"archived\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impacted\":false,\"incident_type_uuid\":null,\"created_by_uuid\":null,\"created\":\"2023-11-03T20:35:59+00:00\",\"time_to_internal_response\":0,\"title\":\"Test-Typescript-Create_an_incident_returns_CREATED_response-1699043759\",\"last_modified_by_uuid\":null,\"modified\":\"2023-11-03T20:35:59+00:00\",\"customer_impact_end\":null,\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"detected\":\"2023-11-03T20:35:59+00:00\",\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"time_to_resolve\":0,\"time_to_detect\":0,\"field_analytics\":{\"state\":{\"resolved\":{\"duration\":0,\"spans\":[{\"start\":1699043759,\"end\":null}]}}},\"state\":\"resolved\",\"notification_handles\":null,\"commander\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/f7303955721eab35c744ea91afdfe815?s=48&d=retro\",\"uuid\":\"98ebf0b3-7a88-11ee-8d9d-868e8930478f\",\"name\":\"\",\"email\":\"test-typescript-create_an_incident_returns_created_response-1699043759@datadoghq.com\",\"handle\":\"test-typescript-create_an_incident_returns_created_response-1699043759@datadoghq.com\"},\"id\":\"98ebf0b3-7a88-11ee-8d9d-868e8930478f\"}},\"customer_impact_duration\":0,\"severity\":\"UNKNOWN\",\"case_id\":null,\"resolved\":null,\"visibility\":\"organization\",\"fields\":{\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"resolved\"}},\"public_id\":174183},\"relationships\":{\"user_defined_fields\":{\"data\":[]},\"attachments\":{\"data\":[]},\"commander_user\":{\"data\":{\"type\":\"users\",\"id\":\"98ebf0b3-7a88-11ee-8d9d-868e8930478f\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"integrations\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"impacts\":{\"data\":[]},\"responders\":{\"data\":[{\"type\":\"incident_responders\",\"id\":\"598eca3a-47d8-55a8-a2ca-0a95d0b9ec7c\"}]}},\"id\":\"233463fe-28bd-5361-9d14-98e2ac20f328\"}},{\"data\":{\"type\":\"incidents\",\"attributes\":{\"time_to_repair\":0,\"creation_idempotency_key\":null,\"archived\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impacted\":false,\"incident_type_uuid\":null,\"created_by_uuid\":null,\"created\":\"2023-11-03T20:35:59+00:00\",\"time_to_internal_response\":0,\"title\":\"Test-Typescript-Create_an_incident_integration_metadata_returns_CREATED_response-1699043758\",\"last_modified_by_uuid\":null,\"modified\":\"2023-11-03T20:35:59+00:00\",\"customer_impact_end\":null,\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"detected\":\"2023-11-03T20:35:59+00:00\",\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"time_to_resolve\":0,\"time_to_detect\":0,\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043759,\"end\":null}]}}},\"state\":\"active\",\"notification_handles\":null,\"commander\":null,\"customer_impact_duration\":0,\"severity\":\"UNKNOWN\",\"case_id\":null,\"resolved\":null,\"visibility\":\"organization\",\"fields\":{\"summary\":{\"type\":\"textbox\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"}},\"public_id\":174182},\"relationships\":{\"user_defined_fields\":{\"data\":[]},\"attachments\":{\"data\":[]},\"commander_user\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"integrations\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"impacts\":{\"data\":[]},\"responders\":{\"data\":[]}},\"id\":\"40eb208a-c867-5b51-97ee-e8efba340396\"}},{\"data\":{\"type\":\"incidents\",\"attributes\":{\"time_to_repair\":0,\"creation_idempotency_key\":null,\"archived\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impacted\":false,\"incident_type_uuid\":null,\"created_by_uuid\":null,\"created\":\"2023-11-03T20:35:58+00:00\",\"time_to_internal_response\":0,\"title\":\"Test-Typescript-Add_commander_to_an_incident_returns_OK_response-1699043757\",\"last_modified_by_uuid\":null,\"modified\":\"2023-11-03T20:35:58+00:00\",\"customer_impact_end\":null,\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"detected\":\"2023-11-03T20:35:58+00:00\",\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"time_to_resolve\":0,\"time_to_detect\":0,\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043758,\"end\":null}]}}},\"state\":\"active\",\"notification_handles\":null,\"commander\":null,\"customer_impact_duration\":0,\"severity\":\"UNKNOWN\",\"case_id\":null,\"resolved\":null,\"visibility\":\"organization\",\"fields\":{\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"}},\"public_id\":174180},\"relationships\":{\"user_defined_fields\":{\"data\":[]},\"attachments\":{\"data\":[]},\"commander_user\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"integrations\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"impacts\":{\"data\":[]},\"responders\":{\"data\":[]}},\"id\":\"53be4c9b-17c1-5109-9e61-f97804f78df0\"}},{\"data\":{\"type\":\"incidents\",\"attributes\":{\"time_to_repair\":0,\"creation_idempotency_key\":null,\"archived\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impacted\":false,\"incident_type_uuid\":null,\"created_by_uuid\":null,\"created\":\"2023-11-03T20:35:58+00:00\",\"time_to_internal_response\":0,\"title\":\"Test-Typescript-Create_an_incident_attachment_returns_OK_response-1699043758\",\"last_modified_by_uuid\":null,\"modified\":\"2023-11-03T20:35:58+00:00\",\"customer_impact_end\":null,\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"detected\":\"2023-11-03T20:35:58+00:00\",\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"time_to_resolve\":0,\"time_to_detect\":0,\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043758,\"end\":null}]}}},\"state\":\"active\",\"notification_handles\":null,\"commander\":null,\"customer_impact_duration\":0,\"severity\":\"UNKNOWN\",\"case_id\":null,\"resolved\":null,\"visibility\":\"organization\",\"fields\":{\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"}},\"public_id\":174181},\"relationships\":{\"user_defined_fields\":{\"data\":[]},\"attachments\":{\"data\":[]},\"commander_user\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"integrations\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"impacts\":{\"data\":[]},\"responders\":{\"data\":[]}},\"id\":\"a72d6e86-3581-5a0c-9407-7c118a72e3b9\"}}]},\"relationships\":{\"incidents_relationship\":{\"data\":[{\"type\":\"incidents\",\"id\":\"96534427-6172-53bf-8cbe-215de5b207e1\"},{\"type\":\"incidents\",\"id\":\"e729fbb8-4087-5227-8725-11e44fe85b5f\"},{\"type\":\"incidents\",\"id\":\"5af2ff33-ec8d-50c1-ae0b-77694ea77c89\"},{\"type\":\"incidents\",\"id\":\"68000356-e808-5571-b49a-109e96bc5e08\"},{\"type\":\"incidents\",\"id\":\"e4b4a761-8426-5e8c-ac41-e151eee07af9\"},{\"type\":\"incidents\",\"id\":\"e70e2781-1df4-5e93-9210-7c672ff65a8c\"},{\"type\":\"incidents\",\"id\":\"ce870e8d-cd51-5b58-92ef-2dfe01530066\"},{\"type\":\"incidents\",\"id\":\"9c68f2c7-256e-5e98-a176-97526fd9d257\"},{\"type\":\"incidents\",\"id\":\"19c70c0d-7e83-5f81-bcd2-75e0f90ee11f\"},{\"type\":\"incidents\",\"id\":\"1b45d550-12f7-55c8-89ed-826d688d3d1f\"},{\"type\":\"incidents\",\"id\":\"0ddf94c4-47ec-5fbb-8827-101c1b2678e0\"},{\"type\":\"incidents\",\"id\":\"233463fe-28bd-5361-9d14-98e2ac20f328\"},{\"type\":\"incidents\",\"id\":\"40eb208a-c867-5b51-97ee-e8efba340396\"},{\"type\":\"incidents\",\"id\":\"53be4c9b-17c1-5109-9e61-f97804f78df0\"},{\"type\":\"incidents\",\"id\":\"a72d6e86-3581-5a0c-9407-7c118a72e3b9\"}]}}},\"included\":[{\"type\":\"incidents\",\"id\":\"96534427-6172-53bf-8cbe-215de5b207e1\",\"attributes\":{\"public_id\":174193,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Update_an_existing_incident_returns_OK_response-1699043763\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-03T20:36:03+00:00\",\"modified\":\"2023-11-03T20:36:03+00:00\",\"commander\":null,\"detected\":\"2023-11-03T20:36:03+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"summary\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"services\":{\"type\":\"autocomplete\",\"value\":null}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043763,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"e729fbb8-4087-5227-8725-11e44fe85b5f\",\"attributes\":{\"public_id\":174194,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Update_an_incident_todo_returns_OK_response-1699043763\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-03T20:36:03+00:00\",\"modified\":\"2023-11-03T20:36:03+00:00\",\"commander\":null,\"detected\":\"2023-11-03T20:36:03+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043763,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"5af2ff33-ec8d-50c1-ae0b-77694ea77c89\",\"attributes\":{\"public_id\":174192,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Update_an_existing_incident_integration_metadata_returns_OK_response-1699043762\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-03T20:36:03+00:00\",\"modified\":\"2023-11-03T20:36:03+00:00\",\"commander\":null,\"detected\":\"2023-11-03T20:36:03+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"summary\":{\"type\":\"textbox\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043763,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"68000356-e808-5571-b49a-109e96bc5e08\",\"attributes\":{\"public_id\":174191,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Remove_commander_from_an_incident_returns_OK_response-1699043762\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-03T20:36:02+00:00\",\"modified\":\"2023-11-03T20:36:02+00:00\",\"commander\":null,\"detected\":\"2023-11-03T20:36:02+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"services\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043762,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"e4b4a761-8426-5e8c-ac41-e151eee07af9\",\"attributes\":{\"public_id\":174189,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Get_incident_integration_metadata_details_returns_OK_response-1699043761\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-03T20:36:02+00:00\",\"modified\":\"2023-11-03T20:36:02+00:00\",\"commander\":null,\"detected\":\"2023-11-03T20:36:02+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043762,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"e70e2781-1df4-5e93-9210-7c672ff65a8c\",\"attributes\":{\"public_id\":174190,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Get_the_details_of_an_incident_returns_OK_response-1699043762\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-03T20:36:02+00:00\",\"modified\":\"2023-11-03T20:36:02+00:00\",\"commander\":null,\"detected\":\"2023-11-03T20:36:02+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043762,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"ce870e8d-cd51-5b58-92ef-2dfe01530066\",\"attributes\":{\"public_id\":174187,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Get_a_list_of_incidents_returns_OK_response-1699043761\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-03T20:36:01+00:00\",\"modified\":\"2023-11-03T20:36:01+00:00\",\"commander\":null,\"detected\":\"2023-11-03T20:36:01+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043761,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"9c68f2c7-256e-5e98-a176-97526fd9d257\",\"attributes\":{\"public_id\":174188,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Get_incident_attachments_returns_OK_response-1699043761\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-03T20:36:01+00:00\",\"modified\":\"2023-11-03T20:36:01+00:00\",\"commander\":null,\"detected\":\"2023-11-03T20:36:01+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043761,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"19c70c0d-7e83-5f81-bcd2-75e0f90ee11f\",\"attributes\":{\"public_id\":174185,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Delete_an_incident_integration_metadata_returns_OK_response-1699043760\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-03T20:36:00+00:00\",\"modified\":\"2023-11-03T20:36:00+00:00\",\"commander\":null,\"detected\":\"2023-11-03T20:36:00+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"summary\":{\"type\":\"textbox\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043760,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"1b45d550-12f7-55c8-89ed-826d688d3d1f\",\"attributes\":{\"public_id\":174184,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Delete_an_existing_incident_returns_OK_response-1699043760\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-03T20:36:00+00:00\",\"modified\":\"2023-11-03T20:36:00+00:00\",\"commander\":null,\"detected\":\"2023-11-03T20:36:00+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"summary\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043760,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"0ddf94c4-47ec-5fbb-8827-101c1b2678e0\",\"attributes\":{\"public_id\":174186,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Get_a_list_of_an_incident_s_integration_metadata_returns_OK_response-1699043760\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-03T20:36:00+00:00\",\"modified\":\"2023-11-03T20:36:00+00:00\",\"commander\":null,\"detected\":\"2023-11-03T20:36:00+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"summary\":{\"type\":\"textbox\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043761,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"233463fe-28bd-5361-9d14-98e2ac20f328\",\"attributes\":{\"public_id\":174183,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Create_an_incident_returns_CREATED_response-1699043759\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-03T20:35:59+00:00\",\"modified\":\"2023-11-03T20:35:59+00:00\",\"commander\":{\"data\":{\"type\":\"users\",\"id\":\"98ebf0b3-7a88-11ee-8d9d-868e8930478f\",\"attributes\":{\"uuid\":\"98ebf0b3-7a88-11ee-8d9d-868e8930478f\",\"handle\":\"test-typescript-create_an_incident_returns_created_response-1699043759@datadoghq.com\",\"email\":\"test-typescript-create_an_incident_returns_created_response-1699043759@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/f7303955721eab35c744ea91afdfe815?s=48&d=retro\"}}},\"detected\":\"2023-11-03T20:35:59+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"resolved\"}},\"field_analytics\":{\"state\":{\"resolved\":{\"duration\":0,\"spans\":[{\"start\":1699043759,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"resolved\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":{\"type\":\"users\",\"id\":\"98ebf0b3-7a88-11ee-8d9d-868e8930478f\"}},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[{\"type\":\"incident_responders\",\"id\":\"598eca3a-47d8-55a8-a2ca-0a95d0b9ec7c\"}]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"40eb208a-c867-5b51-97ee-e8efba340396\",\"attributes\":{\"public_id\":174182,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Create_an_incident_integration_metadata_returns_CREATED_response-1699043758\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-03T20:35:59+00:00\",\"modified\":\"2023-11-03T20:35:59+00:00\",\"commander\":null,\"detected\":\"2023-11-03T20:35:59+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"summary\":{\"type\":\"textbox\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043759,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"53be4c9b-17c1-5109-9e61-f97804f78df0\",\"attributes\":{\"public_id\":174180,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Add_commander_to_an_incident_returns_OK_response-1699043757\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-03T20:35:58+00:00\",\"modified\":\"2023-11-03T20:35:58+00:00\",\"commander\":null,\"detected\":\"2023-11-03T20:35:58+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043758,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"a72d6e86-3581-5a0c-9407-7c118a72e3b9\",\"attributes\":{\"public_id\":174181,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Create_an_incident_attachment_returns_OK_response-1699043758\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-03T20:35:58+00:00\",\"modified\":\"2023-11-03T20:35:58+00:00\",\"commander\":null,\"detected\":\"2023-11-03T20:35:58+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043758,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}],\"meta\":{\"pagination\":{\"offset\":0,\"next_offset\":15,\"size\":15}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:37 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/e3d37bc4-d7ee-55f8-87d7-651729afc766"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:37 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Search_for_incidents_returns_OK_response-1699302337\"},\"type\":\"incidents\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/incidents" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incidents\",\"id\":\"e3d37bc4-d7ee-55f8-87d7-651729afc766\",\"attributes\":{\"public_id\":174814,\"incident_type_uuid\":null,\"title\":\"Test-Search_for_incidents_returns_OK_response-1699302337\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:37.187440+00:00\",\"modified\":\"2023-11-06T20:25:37.187440+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:37.163541+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:37 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/incidents/search?query=state%3A%28active%20OR%20stable%20OR%20resolved%29" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incidents_search_results\",\"attributes\":{\"total\":15,\"facets\":{\"severity\":[{\"name\":\"UNKNOWN\",\"count\":15},{\"name\":\"SEV-1\",\"count\":0},{\"name\":\"SEV-2\",\"count\":0},{\"name\":\"SEV-3\",\"count\":0},{\"name\":\"SEV-4\",\"count\":0},{\"name\":\"SEV-5\",\"count\":0}],\"time_to_repair\":[{\"name\":\"time_to_repair\",\"aggregates\":{\"min\":null,\"max\":null}}],\"visibility\":[{\"name\":\"organization\",\"count\":15}],\"responder\":[{\"name\":\"test-typescript-create_an_incident_returns_created_response-1699043759@datadoghq.com\",\"count\":1,\"handle\":\"test-typescript-create_an_incident_returns_created_response-1699043759@datadoghq.com\",\"uuid\":\"98ebf0b3-7a88-11ee-8d9d-868e8930478f\",\"email\":\"test-typescript-create_an_incident_returns_created_response-1699043759@datadoghq.com\"}],\"impact\":[{\"name\":\"none\",\"count\":15}],\"postmortem\":[{\"name\":\"No\",\"count\":15},{\"name\":\"Yes\",\"count\":0}],\"time_to_resolve\":[{\"name\":\"time_to_resolve\",\"aggregates\":{\"min\":null,\"max\":null}}],\"state\":[{\"name\":\"active\",\"count\":14},{\"name\":\"resolved\",\"count\":1},{\"name\":\"stable\",\"count\":0}],\"customer_impacted\":[{\"name\":0,\"count\":15},{\"name\":true,\"count\":0}],\"fields\":[{\"name\":\"detection_method\",\"facets\":[{\"name\":\"unknown\",\"count\":15},{\"name\":\"customer\",\"count\":0},{\"name\":\"employee\",\"count\":0},{\"name\":\"monitor\",\"count\":0},{\"name\":\"other\",\"count\":0}]},{\"name\":\"root_cause\",\"facets\":[]},{\"name\":\"services\",\"facets\":[]},{\"name\":\"summary\",\"facets\":[]},{\"name\":\"teams\",\"facets\":[]}],\"created_by\":[{\"name\":\"frog@datadoghq.com\",\"count\":15,\"handle\":\"frog@datadoghq.com\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"email\":\"frog@datadoghq.com\"}],\"last_modified_by\":[{\"name\":\"frog@datadoghq.com\",\"count\":15,\"handle\":\"frog@datadoghq.com\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"email\":\"frog@datadoghq.com\"}],\"commander\":[{\"name\":\"test-typescript-create_an_incident_returns_created_response-1699043759@datadoghq.com\",\"count\":1,\"handle\":\"test-typescript-create_an_incident_returns_created_response-1699043759@datadoghq.com\",\"uuid\":\"98ebf0b3-7a88-11ee-8d9d-868e8930478f\",\"email\":\"test-typescript-create_an_incident_returns_created_response-1699043759@datadoghq.com\"}]},\"incidents\":[{\"data\":{\"type\":\"incidents\",\"attributes\":{\"time_to_repair\":0,\"creation_idempotency_key\":null,\"archived\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impacted\":false,\"incident_type_uuid\":null,\"created_by_uuid\":null,\"created\":\"2023-11-03T20:36:03+00:00\",\"time_to_internal_response\":0,\"title\":\"Test-Typescript-Update_an_existing_incident_returns_OK_response-1699043763\",\"last_modified_by_uuid\":null,\"modified\":\"2023-11-03T20:36:03+00:00\",\"customer_impact_end\":null,\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"detected\":\"2023-11-03T20:36:03+00:00\",\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"time_to_resolve\":0,\"time_to_detect\":0,\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043763,\"end\":null}]}}},\"state\":\"active\",\"notification_handles\":null,\"commander\":null,\"customer_impact_duration\":0,\"severity\":\"UNKNOWN\",\"case_id\":null,\"resolved\":null,\"visibility\":\"organization\",\"fields\":{\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"summary\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"services\":{\"type\":\"autocomplete\",\"value\":null}},\"public_id\":174193},\"relationships\":{\"user_defined_fields\":{\"data\":[]},\"attachments\":{\"data\":[]},\"commander_user\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"integrations\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"impacts\":{\"data\":[]},\"responders\":{\"data\":[]}},\"id\":\"96534427-6172-53bf-8cbe-215de5b207e1\"}},{\"data\":{\"type\":\"incidents\",\"attributes\":{\"time_to_repair\":0,\"creation_idempotency_key\":null,\"archived\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impacted\":false,\"incident_type_uuid\":null,\"created_by_uuid\":null,\"created\":\"2023-11-03T20:36:03+00:00\",\"time_to_internal_response\":0,\"title\":\"Test-Typescript-Update_an_incident_todo_returns_OK_response-1699043763\",\"last_modified_by_uuid\":null,\"modified\":\"2023-11-03T20:36:03+00:00\",\"customer_impact_end\":null,\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"detected\":\"2023-11-03T20:36:03+00:00\",\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"time_to_resolve\":0,\"time_to_detect\":0,\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043763,\"end\":null}]}}},\"state\":\"active\",\"notification_handles\":null,\"commander\":null,\"customer_impact_duration\":0,\"severity\":\"UNKNOWN\",\"case_id\":null,\"resolved\":null,\"visibility\":\"organization\",\"fields\":{\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"}},\"public_id\":174194},\"relationships\":{\"user_defined_fields\":{\"data\":[]},\"attachments\":{\"data\":[]},\"commander_user\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"integrations\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"impacts\":{\"data\":[]},\"responders\":{\"data\":[]}},\"id\":\"e729fbb8-4087-5227-8725-11e44fe85b5f\"}},{\"data\":{\"type\":\"incidents\",\"attributes\":{\"time_to_repair\":0,\"creation_idempotency_key\":null,\"archived\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impacted\":false,\"incident_type_uuid\":null,\"created_by_uuid\":null,\"created\":\"2023-11-03T20:36:03+00:00\",\"time_to_internal_response\":0,\"title\":\"Test-Typescript-Update_an_existing_incident_integration_metadata_returns_OK_response-1699043762\",\"last_modified_by_uuid\":null,\"modified\":\"2023-11-03T20:36:03+00:00\",\"customer_impact_end\":null,\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"detected\":\"2023-11-03T20:36:03+00:00\",\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"time_to_resolve\":0,\"time_to_detect\":0,\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043763,\"end\":null}]}}},\"state\":\"active\",\"notification_handles\":null,\"commander\":null,\"customer_impact_duration\":0,\"severity\":\"UNKNOWN\",\"case_id\":null,\"resolved\":null,\"visibility\":\"organization\",\"fields\":{\"summary\":{\"type\":\"textbox\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"}},\"public_id\":174192},\"relationships\":{\"user_defined_fields\":{\"data\":[]},\"attachments\":{\"data\":[]},\"commander_user\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"integrations\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"impacts\":{\"data\":[]},\"responders\":{\"data\":[]}},\"id\":\"5af2ff33-ec8d-50c1-ae0b-77694ea77c89\"}},{\"data\":{\"type\":\"incidents\",\"attributes\":{\"time_to_repair\":0,\"creation_idempotency_key\":null,\"archived\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impacted\":false,\"incident_type_uuid\":null,\"created_by_uuid\":null,\"created\":\"2023-11-03T20:36:02+00:00\",\"time_to_internal_response\":0,\"title\":\"Test-Typescript-Remove_commander_from_an_incident_returns_OK_response-1699043762\",\"last_modified_by_uuid\":null,\"modified\":\"2023-11-03T20:36:02+00:00\",\"customer_impact_end\":null,\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"detected\":\"2023-11-03T20:36:02+00:00\",\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"time_to_resolve\":0,\"time_to_detect\":0,\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043762,\"end\":null}]}}},\"state\":\"active\",\"notification_handles\":null,\"commander\":null,\"customer_impact_duration\":0,\"severity\":\"UNKNOWN\",\"case_id\":null,\"resolved\":null,\"visibility\":\"organization\",\"fields\":{\"services\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"public_id\":174191},\"relationships\":{\"user_defined_fields\":{\"data\":[]},\"attachments\":{\"data\":[]},\"commander_user\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"integrations\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"impacts\":{\"data\":[]},\"responders\":{\"data\":[]}},\"id\":\"68000356-e808-5571-b49a-109e96bc5e08\"}},{\"data\":{\"type\":\"incidents\",\"attributes\":{\"time_to_repair\":0,\"creation_idempotency_key\":null,\"archived\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impacted\":false,\"incident_type_uuid\":null,\"created_by_uuid\":null,\"created\":\"2023-11-03T20:36:02+00:00\",\"time_to_internal_response\":0,\"title\":\"Test-Typescript-Get_incident_integration_metadata_details_returns_OK_response-1699043761\",\"last_modified_by_uuid\":null,\"modified\":\"2023-11-03T20:36:02+00:00\",\"customer_impact_end\":null,\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"detected\":\"2023-11-03T20:36:02+00:00\",\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"time_to_resolve\":0,\"time_to_detect\":0,\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043762,\"end\":null}]}}},\"state\":\"active\",\"notification_handles\":null,\"commander\":null,\"customer_impact_duration\":0,\"severity\":\"UNKNOWN\",\"case_id\":null,\"resolved\":null,\"visibility\":\"organization\",\"fields\":{\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"public_id\":174189},\"relationships\":{\"user_defined_fields\":{\"data\":[]},\"attachments\":{\"data\":[]},\"commander_user\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"integrations\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"impacts\":{\"data\":[]},\"responders\":{\"data\":[]}},\"id\":\"e4b4a761-8426-5e8c-ac41-e151eee07af9\"}},{\"data\":{\"type\":\"incidents\",\"attributes\":{\"time_to_repair\":0,\"creation_idempotency_key\":null,\"archived\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impacted\":false,\"incident_type_uuid\":null,\"created_by_uuid\":null,\"created\":\"2023-11-03T20:36:02+00:00\",\"time_to_internal_response\":0,\"title\":\"Test-Typescript-Get_the_details_of_an_incident_returns_OK_response-1699043762\",\"last_modified_by_uuid\":null,\"modified\":\"2023-11-03T20:36:02+00:00\",\"customer_impact_end\":null,\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"detected\":\"2023-11-03T20:36:02+00:00\",\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"time_to_resolve\":0,\"time_to_detect\":0,\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043762,\"end\":null}]}}},\"state\":\"active\",\"notification_handles\":null,\"commander\":null,\"customer_impact_duration\":0,\"severity\":\"UNKNOWN\",\"case_id\":null,\"resolved\":null,\"visibility\":\"organization\",\"fields\":{\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"}},\"public_id\":174190},\"relationships\":{\"user_defined_fields\":{\"data\":[]},\"attachments\":{\"data\":[]},\"commander_user\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"integrations\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"impacts\":{\"data\":[]},\"responders\":{\"data\":[]}},\"id\":\"e70e2781-1df4-5e93-9210-7c672ff65a8c\"}},{\"data\":{\"type\":\"incidents\",\"attributes\":{\"time_to_repair\":0,\"creation_idempotency_key\":null,\"archived\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impacted\":false,\"incident_type_uuid\":null,\"created_by_uuid\":null,\"created\":\"2023-11-03T20:36:01+00:00\",\"time_to_internal_response\":0,\"title\":\"Test-Typescript-Get_a_list_of_incidents_returns_OK_response-1699043761\",\"last_modified_by_uuid\":null,\"modified\":\"2023-11-03T20:36:01+00:00\",\"customer_impact_end\":null,\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"detected\":\"2023-11-03T20:36:01+00:00\",\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"time_to_resolve\":0,\"time_to_detect\":0,\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043761,\"end\":null}]}}},\"state\":\"active\",\"notification_handles\":null,\"commander\":null,\"customer_impact_duration\":0,\"severity\":\"UNKNOWN\",\"case_id\":null,\"resolved\":null,\"visibility\":\"organization\",\"fields\":{\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"}},\"public_id\":174187},\"relationships\":{\"user_defined_fields\":{\"data\":[]},\"attachments\":{\"data\":[]},\"commander_user\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"integrations\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"impacts\":{\"data\":[]},\"responders\":{\"data\":[]}},\"id\":\"ce870e8d-cd51-5b58-92ef-2dfe01530066\"}},{\"data\":{\"type\":\"incidents\",\"attributes\":{\"time_to_repair\":0,\"creation_idempotency_key\":null,\"archived\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impacted\":false,\"incident_type_uuid\":null,\"created_by_uuid\":null,\"created\":\"2023-11-03T20:36:01+00:00\",\"time_to_internal_response\":0,\"title\":\"Test-Typescript-Get_incident_attachments_returns_OK_response-1699043761\",\"last_modified_by_uuid\":null,\"modified\":\"2023-11-03T20:36:01+00:00\",\"customer_impact_end\":null,\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"detected\":\"2023-11-03T20:36:01+00:00\",\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"time_to_resolve\":0,\"time_to_detect\":0,\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043761,\"end\":null}]}}},\"state\":\"active\",\"notification_handles\":null,\"commander\":null,\"customer_impact_duration\":0,\"severity\":\"UNKNOWN\",\"case_id\":null,\"resolved\":null,\"visibility\":\"organization\",\"fields\":{\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"public_id\":174188},\"relationships\":{\"user_defined_fields\":{\"data\":[]},\"attachments\":{\"data\":[]},\"commander_user\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"integrations\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"impacts\":{\"data\":[]},\"responders\":{\"data\":[]}},\"id\":\"9c68f2c7-256e-5e98-a176-97526fd9d257\"}},{\"data\":{\"type\":\"incidents\",\"attributes\":{\"time_to_repair\":0,\"creation_idempotency_key\":null,\"archived\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impacted\":false,\"incident_type_uuid\":null,\"created_by_uuid\":null,\"created\":\"2023-11-03T20:36:00+00:00\",\"time_to_internal_response\":0,\"title\":\"Test-Typescript-Delete_an_incident_integration_metadata_returns_OK_response-1699043760\",\"last_modified_by_uuid\":null,\"modified\":\"2023-11-03T20:36:00+00:00\",\"customer_impact_end\":null,\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"detected\":\"2023-11-03T20:36:00+00:00\",\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"time_to_resolve\":0,\"time_to_detect\":0,\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043760,\"end\":null}]}}},\"state\":\"active\",\"notification_handles\":null,\"commander\":null,\"customer_impact_duration\":0,\"severity\":\"UNKNOWN\",\"case_id\":null,\"resolved\":null,\"visibility\":\"organization\",\"fields\":{\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"summary\":{\"type\":\"textbox\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"}},\"public_id\":174185},\"relationships\":{\"user_defined_fields\":{\"data\":[]},\"attachments\":{\"data\":[]},\"commander_user\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"integrations\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"impacts\":{\"data\":[]},\"responders\":{\"data\":[]}},\"id\":\"19c70c0d-7e83-5f81-bcd2-75e0f90ee11f\"}},{\"data\":{\"type\":\"incidents\",\"attributes\":{\"time_to_repair\":0,\"creation_idempotency_key\":null,\"archived\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impacted\":false,\"incident_type_uuid\":null,\"created_by_uuid\":null,\"created\":\"2023-11-03T20:36:00+00:00\",\"time_to_internal_response\":0,\"title\":\"Test-Typescript-Delete_an_existing_incident_returns_OK_response-1699043760\",\"last_modified_by_uuid\":null,\"modified\":\"2023-11-03T20:36:00+00:00\",\"customer_impact_end\":null,\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"detected\":\"2023-11-03T20:36:00+00:00\",\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"time_to_resolve\":0,\"time_to_detect\":0,\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043760,\"end\":null}]}}},\"state\":\"active\",\"notification_handles\":null,\"commander\":null,\"customer_impact_duration\":0,\"severity\":\"UNKNOWN\",\"case_id\":null,\"resolved\":null,\"visibility\":\"organization\",\"fields\":{\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"summary\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null}},\"public_id\":174184},\"relationships\":{\"user_defined_fields\":{\"data\":[]},\"attachments\":{\"data\":[]},\"commander_user\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"integrations\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"impacts\":{\"data\":[]},\"responders\":{\"data\":[]}},\"id\":\"1b45d550-12f7-55c8-89ed-826d688d3d1f\"}},{\"data\":{\"type\":\"incidents\",\"attributes\":{\"time_to_repair\":0,\"creation_idempotency_key\":null,\"archived\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impacted\":false,\"incident_type_uuid\":null,\"created_by_uuid\":null,\"created\":\"2023-11-03T20:36:00+00:00\",\"time_to_internal_response\":0,\"title\":\"Test-Typescript-Get_a_list_of_an_incident_s_integration_metadata_returns_OK_response-1699043760\",\"last_modified_by_uuid\":null,\"modified\":\"2023-11-03T20:36:00+00:00\",\"customer_impact_end\":null,\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"detected\":\"2023-11-03T20:36:00+00:00\",\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"time_to_resolve\":0,\"time_to_detect\":0,\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043761,\"end\":null}]}}},\"state\":\"active\",\"notification_handles\":null,\"commander\":null,\"customer_impact_duration\":0,\"severity\":\"UNKNOWN\",\"case_id\":null,\"resolved\":null,\"visibility\":\"organization\",\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"summary\":{\"type\":\"textbox\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null}},\"public_id\":174186},\"relationships\":{\"user_defined_fields\":{\"data\":[]},\"attachments\":{\"data\":[]},\"commander_user\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"integrations\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"impacts\":{\"data\":[]},\"responders\":{\"data\":[]}},\"id\":\"0ddf94c4-47ec-5fbb-8827-101c1b2678e0\"}},{\"data\":{\"type\":\"incidents\",\"attributes\":{\"time_to_repair\":0,\"creation_idempotency_key\":null,\"archived\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impacted\":false,\"incident_type_uuid\":null,\"created_by_uuid\":null,\"created\":\"2023-11-03T20:35:59+00:00\",\"time_to_internal_response\":0,\"title\":\"Test-Typescript-Create_an_incident_returns_CREATED_response-1699043759\",\"last_modified_by_uuid\":null,\"modified\":\"2023-11-03T20:35:59+00:00\",\"customer_impact_end\":null,\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"detected\":\"2023-11-03T20:35:59+00:00\",\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"time_to_resolve\":0,\"time_to_detect\":0,\"field_analytics\":{\"state\":{\"resolved\":{\"duration\":0,\"spans\":[{\"start\":1699043759,\"end\":null}]}}},\"state\":\"resolved\",\"notification_handles\":null,\"commander\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/f7303955721eab35c744ea91afdfe815?s=48&d=retro\",\"uuid\":\"98ebf0b3-7a88-11ee-8d9d-868e8930478f\",\"name\":\"\",\"email\":\"test-typescript-create_an_incident_returns_created_response-1699043759@datadoghq.com\",\"handle\":\"test-typescript-create_an_incident_returns_created_response-1699043759@datadoghq.com\"},\"id\":\"98ebf0b3-7a88-11ee-8d9d-868e8930478f\"}},\"customer_impact_duration\":0,\"severity\":\"UNKNOWN\",\"case_id\":null,\"resolved\":null,\"visibility\":\"organization\",\"fields\":{\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"resolved\"}},\"public_id\":174183},\"relationships\":{\"user_defined_fields\":{\"data\":[]},\"attachments\":{\"data\":[]},\"commander_user\":{\"data\":{\"type\":\"users\",\"id\":\"98ebf0b3-7a88-11ee-8d9d-868e8930478f\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"integrations\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"impacts\":{\"data\":[]},\"responders\":{\"data\":[{\"type\":\"incident_responders\",\"id\":\"598eca3a-47d8-55a8-a2ca-0a95d0b9ec7c\"}]}},\"id\":\"233463fe-28bd-5361-9d14-98e2ac20f328\"}},{\"data\":{\"type\":\"incidents\",\"attributes\":{\"time_to_repair\":0,\"creation_idempotency_key\":null,\"archived\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impacted\":false,\"incident_type_uuid\":null,\"created_by_uuid\":null,\"created\":\"2023-11-03T20:35:59+00:00\",\"time_to_internal_response\":0,\"title\":\"Test-Typescript-Create_an_incident_integration_metadata_returns_CREATED_response-1699043758\",\"last_modified_by_uuid\":null,\"modified\":\"2023-11-03T20:35:59+00:00\",\"customer_impact_end\":null,\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"detected\":\"2023-11-03T20:35:59+00:00\",\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"time_to_resolve\":0,\"time_to_detect\":0,\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043759,\"end\":null}]}}},\"state\":\"active\",\"notification_handles\":null,\"commander\":null,\"customer_impact_duration\":0,\"severity\":\"UNKNOWN\",\"case_id\":null,\"resolved\":null,\"visibility\":\"organization\",\"fields\":{\"summary\":{\"type\":\"textbox\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"}},\"public_id\":174182},\"relationships\":{\"user_defined_fields\":{\"data\":[]},\"attachments\":{\"data\":[]},\"commander_user\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"integrations\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"impacts\":{\"data\":[]},\"responders\":{\"data\":[]}},\"id\":\"40eb208a-c867-5b51-97ee-e8efba340396\"}},{\"data\":{\"type\":\"incidents\",\"attributes\":{\"time_to_repair\":0,\"creation_idempotency_key\":null,\"archived\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impacted\":false,\"incident_type_uuid\":null,\"created_by_uuid\":null,\"created\":\"2023-11-03T20:35:58+00:00\",\"time_to_internal_response\":0,\"title\":\"Test-Typescript-Add_commander_to_an_incident_returns_OK_response-1699043757\",\"last_modified_by_uuid\":null,\"modified\":\"2023-11-03T20:35:58+00:00\",\"customer_impact_end\":null,\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"detected\":\"2023-11-03T20:35:58+00:00\",\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"time_to_resolve\":0,\"time_to_detect\":0,\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043758,\"end\":null}]}}},\"state\":\"active\",\"notification_handles\":null,\"commander\":null,\"customer_impact_duration\":0,\"severity\":\"UNKNOWN\",\"case_id\":null,\"resolved\":null,\"visibility\":\"organization\",\"fields\":{\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"}},\"public_id\":174180},\"relationships\":{\"user_defined_fields\":{\"data\":[]},\"attachments\":{\"data\":[]},\"commander_user\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"integrations\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"impacts\":{\"data\":[]},\"responders\":{\"data\":[]}},\"id\":\"53be4c9b-17c1-5109-9e61-f97804f78df0\"}},{\"data\":{\"type\":\"incidents\",\"attributes\":{\"time_to_repair\":0,\"creation_idempotency_key\":null,\"archived\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impacted\":false,\"incident_type_uuid\":null,\"created_by_uuid\":null,\"created\":\"2023-11-03T20:35:58+00:00\",\"time_to_internal_response\":0,\"title\":\"Test-Typescript-Create_an_incident_attachment_returns_OK_response-1699043758\",\"last_modified_by_uuid\":null,\"modified\":\"2023-11-03T20:35:58+00:00\",\"customer_impact_end\":null,\"created_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"detected\":\"2023-11-03T20:35:58+00:00\",\"non_datadog_creator\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"attributes\":{\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"name\":\"\",\"email\":\"frog@datadoghq.com\",\"handle\":\"frog@datadoghq.com\"},\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"time_to_resolve\":0,\"time_to_detect\":0,\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043758,\"end\":null}]}}},\"state\":\"active\",\"notification_handles\":null,\"commander\":null,\"customer_impact_duration\":0,\"severity\":\"UNKNOWN\",\"case_id\":null,\"resolved\":null,\"visibility\":\"organization\",\"fields\":{\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"}},\"public_id\":174181},\"relationships\":{\"user_defined_fields\":{\"data\":[]},\"attachments\":{\"data\":[]},\"commander_user\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"integrations\":{\"data\":[]},\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"impacts\":{\"data\":[]},\"responders\":{\"data\":[]}},\"id\":\"a72d6e86-3581-5a0c-9407-7c118a72e3b9\"}}]},\"relationships\":{\"incidents_relationship\":{\"data\":[{\"type\":\"incidents\",\"id\":\"96534427-6172-53bf-8cbe-215de5b207e1\"},{\"type\":\"incidents\",\"id\":\"e729fbb8-4087-5227-8725-11e44fe85b5f\"},{\"type\":\"incidents\",\"id\":\"5af2ff33-ec8d-50c1-ae0b-77694ea77c89\"},{\"type\":\"incidents\",\"id\":\"68000356-e808-5571-b49a-109e96bc5e08\"},{\"type\":\"incidents\",\"id\":\"e4b4a761-8426-5e8c-ac41-e151eee07af9\"},{\"type\":\"incidents\",\"id\":\"e70e2781-1df4-5e93-9210-7c672ff65a8c\"},{\"type\":\"incidents\",\"id\":\"ce870e8d-cd51-5b58-92ef-2dfe01530066\"},{\"type\":\"incidents\",\"id\":\"9c68f2c7-256e-5e98-a176-97526fd9d257\"},{\"type\":\"incidents\",\"id\":\"19c70c0d-7e83-5f81-bcd2-75e0f90ee11f\"},{\"type\":\"incidents\",\"id\":\"1b45d550-12f7-55c8-89ed-826d688d3d1f\"},{\"type\":\"incidents\",\"id\":\"0ddf94c4-47ec-5fbb-8827-101c1b2678e0\"},{\"type\":\"incidents\",\"id\":\"233463fe-28bd-5361-9d14-98e2ac20f328\"},{\"type\":\"incidents\",\"id\":\"40eb208a-c867-5b51-97ee-e8efba340396\"},{\"type\":\"incidents\",\"id\":\"53be4c9b-17c1-5109-9e61-f97804f78df0\"},{\"type\":\"incidents\",\"id\":\"a72d6e86-3581-5a0c-9407-7c118a72e3b9\"}]}}},\"included\":[{\"type\":\"incidents\",\"id\":\"96534427-6172-53bf-8cbe-215de5b207e1\",\"attributes\":{\"public_id\":174193,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Update_an_existing_incident_returns_OK_response-1699043763\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-03T20:36:03+00:00\",\"modified\":\"2023-11-03T20:36:03+00:00\",\"commander\":null,\"detected\":\"2023-11-03T20:36:03+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"summary\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"services\":{\"type\":\"autocomplete\",\"value\":null}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043763,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"e729fbb8-4087-5227-8725-11e44fe85b5f\",\"attributes\":{\"public_id\":174194,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Update_an_incident_todo_returns_OK_response-1699043763\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-03T20:36:03+00:00\",\"modified\":\"2023-11-03T20:36:03+00:00\",\"commander\":null,\"detected\":\"2023-11-03T20:36:03+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043763,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"5af2ff33-ec8d-50c1-ae0b-77694ea77c89\",\"attributes\":{\"public_id\":174192,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Update_an_existing_incident_integration_metadata_returns_OK_response-1699043762\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-03T20:36:03+00:00\",\"modified\":\"2023-11-03T20:36:03+00:00\",\"commander\":null,\"detected\":\"2023-11-03T20:36:03+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"summary\":{\"type\":\"textbox\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043763,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"68000356-e808-5571-b49a-109e96bc5e08\",\"attributes\":{\"public_id\":174191,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Remove_commander_from_an_incident_returns_OK_response-1699043762\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-03T20:36:02+00:00\",\"modified\":\"2023-11-03T20:36:02+00:00\",\"commander\":null,\"detected\":\"2023-11-03T20:36:02+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"services\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043762,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"e4b4a761-8426-5e8c-ac41-e151eee07af9\",\"attributes\":{\"public_id\":174189,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Get_incident_integration_metadata_details_returns_OK_response-1699043761\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-03T20:36:02+00:00\",\"modified\":\"2023-11-03T20:36:02+00:00\",\"commander\":null,\"detected\":\"2023-11-03T20:36:02+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043762,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"e70e2781-1df4-5e93-9210-7c672ff65a8c\",\"attributes\":{\"public_id\":174190,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Get_the_details_of_an_incident_returns_OK_response-1699043762\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-03T20:36:02+00:00\",\"modified\":\"2023-11-03T20:36:02+00:00\",\"commander\":null,\"detected\":\"2023-11-03T20:36:02+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043762,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"ce870e8d-cd51-5b58-92ef-2dfe01530066\",\"attributes\":{\"public_id\":174187,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Get_a_list_of_incidents_returns_OK_response-1699043761\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-03T20:36:01+00:00\",\"modified\":\"2023-11-03T20:36:01+00:00\",\"commander\":null,\"detected\":\"2023-11-03T20:36:01+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043761,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"9c68f2c7-256e-5e98-a176-97526fd9d257\",\"attributes\":{\"public_id\":174188,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Get_incident_attachments_returns_OK_response-1699043761\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-03T20:36:01+00:00\",\"modified\":\"2023-11-03T20:36:01+00:00\",\"commander\":null,\"detected\":\"2023-11-03T20:36:01+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043761,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"19c70c0d-7e83-5f81-bcd2-75e0f90ee11f\",\"attributes\":{\"public_id\":174185,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Delete_an_incident_integration_metadata_returns_OK_response-1699043760\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-03T20:36:00+00:00\",\"modified\":\"2023-11-03T20:36:00+00:00\",\"commander\":null,\"detected\":\"2023-11-03T20:36:00+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"summary\":{\"type\":\"textbox\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043760,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"1b45d550-12f7-55c8-89ed-826d688d3d1f\",\"attributes\":{\"public_id\":174184,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Delete_an_existing_incident_returns_OK_response-1699043760\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-03T20:36:00+00:00\",\"modified\":\"2023-11-03T20:36:00+00:00\",\"commander\":null,\"detected\":\"2023-11-03T20:36:00+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"summary\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043760,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"0ddf94c4-47ec-5fbb-8827-101c1b2678e0\",\"attributes\":{\"public_id\":174186,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Get_a_list_of_an_incident_s_integration_metadata_returns_OK_response-1699043760\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-03T20:36:00+00:00\",\"modified\":\"2023-11-03T20:36:00+00:00\",\"commander\":null,\"detected\":\"2023-11-03T20:36:00+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"summary\":{\"type\":\"textbox\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043761,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"233463fe-28bd-5361-9d14-98e2ac20f328\",\"attributes\":{\"public_id\":174183,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Create_an_incident_returns_CREATED_response-1699043759\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-03T20:35:59+00:00\",\"modified\":\"2023-11-03T20:35:59+00:00\",\"commander\":{\"data\":{\"type\":\"users\",\"id\":\"98ebf0b3-7a88-11ee-8d9d-868e8930478f\",\"attributes\":{\"uuid\":\"98ebf0b3-7a88-11ee-8d9d-868e8930478f\",\"handle\":\"test-typescript-create_an_incident_returns_created_response-1699043759@datadoghq.com\",\"email\":\"test-typescript-create_an_incident_returns_created_response-1699043759@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/f7303955721eab35c744ea91afdfe815?s=48&d=retro\"}}},\"detected\":\"2023-11-03T20:35:59+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"resolved\"}},\"field_analytics\":{\"state\":{\"resolved\":{\"duration\":0,\"spans\":[{\"start\":1699043759,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"resolved\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":{\"type\":\"users\",\"id\":\"98ebf0b3-7a88-11ee-8d9d-868e8930478f\"}},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[{\"type\":\"incident_responders\",\"id\":\"598eca3a-47d8-55a8-a2ca-0a95d0b9ec7c\"}]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"40eb208a-c867-5b51-97ee-e8efba340396\",\"attributes\":{\"public_id\":174182,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Create_an_incident_integration_metadata_returns_CREATED_response-1699043758\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-03T20:35:59+00:00\",\"modified\":\"2023-11-03T20:35:59+00:00\",\"commander\":null,\"detected\":\"2023-11-03T20:35:59+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"summary\":{\"type\":\"textbox\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043759,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"53be4c9b-17c1-5109-9e61-f97804f78df0\",\"attributes\":{\"public_id\":174180,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Add_commander_to_an_incident_returns_OK_response-1699043757\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-03T20:35:58+00:00\",\"modified\":\"2023-11-03T20:35:58+00:00\",\"commander\":null,\"detected\":\"2023-11-03T20:35:58+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043758,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}},{\"type\":\"incidents\",\"id\":\"a72d6e86-3581-5a0c-9407-7c118a72e3b9\",\"attributes\":{\"public_id\":174181,\"incident_type_uuid\":null,\"title\":\"Test-Typescript-Create_an_incident_attachment_returns_OK_response-1699043758\",\"resolved\":null,\"customer_impact_scope\":\"\",\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-03T20:35:58+00:00\",\"modified\":\"2023-11-03T20:35:58+00:00\",\"commander\":null,\"detected\":\"2023-11-03T20:35:58+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":\"\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null},\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"}},\"field_analytics\":{\"state\":{\"active\":{\"duration\":0,\"spans\":[{\"start\":1699043758,\"end\":null}]}}},\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}],\"meta\":{\"pagination\":{\"offset\":0,\"next_offset\":15,\"size\":15}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:37 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/e3d37bc4-d7ee-55f8-87d7-651729afc766" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:37 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incidents/Update-an-existing-incident-integration-metadata-returns-OK-response.json b/tests/scenarios/cassettes/v2/incidents/Update-an-existing-incident-integration-metadata-returns-OK-response.json index ca4c31cd8..1368e3dd2 100644 --- a/tests/scenarios/cassettes/v2/incidents/Update-an-existing-incident-integration-metadata-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/incidents/Update-an-existing-incident-integration-metadata-returns-OK-response.json @@ -1 +1,163 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Update_an_existing_incident_integration_metadata_returns_OK_response-1699302355\"},\"type\":\"incidents\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/incidents"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incidents\",\"id\":\"35b9a115-57c6-50dd-9946-3e93c3dbedc8\",\"attributes\":{\"public_id\":174815,\"incident_type_uuid\":null,\"title\":\"Test-Update_an_existing_incident_integration_metadata_returns_OK_response-1699302355\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:55.934005+00:00\",\"modified\":\"2023-11-06T20:25:55.934005+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:55.923127+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:55 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"incident_id\":\"35b9a115-57c6-50dd-9946-3e93c3dbedc8\",\"integration_type\":1,\"metadata\":{\"channels\":[{\"channel_id\":\"C0123456789\",\"channel_name\":\"#example-channel-name\",\"redirect_url\":\"https://slack.com/app_redirect?channel=C0123456789&team=T01234567\",\"team_id\":\"T01234567\"}]},\"status\":2},\"type\":\"incident_integrations\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/incidents/35b9a115-57c6-50dd-9946-3e93c3dbedc8/relationships/integrations"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incident_integrations\",\"id\":\"b35d3e07-5778-5283-9704-9862a308d863\",\"attributes\":{\"created\":\"2023-11-06T20:25:56.271192+00:00\",\"modified\":\"2023-11-06T20:25:56.271192+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"incident_id\":\"35b9a115-57c6-50dd-9946-3e93c3dbedc8\",\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"status\":3,\"integration_type\":1,\"metadata\":{\"channels\":[{\"channel_id\":\"C0123456789\",\"channel_name\":\"#example-channel-name\",\"redirect_url\":\"https://slack.com/app_redirect?channel=C0123456789&team=T01234567\",\"team_id\":\"T01234567\"}]}},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:55 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"incident_id\":\"35b9a115-57c6-50dd-9946-3e93c3dbedc8\",\"integration_type\":1,\"metadata\":{\"channels\":[{\"channel_id\":\"C0123456789\",\"channel_name\":\"#updated-channel-name\",\"redirect_url\":\"https://slack.com/app_redirect?channel=C0123456789&team=T01234567\",\"team_id\":\"T01234567\"}]}},\"type\":\"incident_integrations\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/incidents/35b9a115-57c6-50dd-9946-3e93c3dbedc8/relationships/integrations/b35d3e07-5778-5283-9704-9862a308d863"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incident_integrations\",\"id\":\"b35d3e07-5778-5283-9704-9862a308d863\",\"attributes\":{\"created\":\"2023-11-06T20:25:56.271192+00:00\",\"modified\":\"2023-11-06T20:25:56.525025+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"incident_id\":\"35b9a115-57c6-50dd-9946-3e93c3dbedc8\",\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"status\":4,\"integration_type\":1,\"metadata\":{\"channels\":[{\"channel_id\":\"C0123456789\",\"channel_name\":\"#updated-channel-name\",\"redirect_url\":\"https://slack.com/app_redirect?channel=C0123456789&team=T01234567\",\"team_id\":\"T01234567\"}]}},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:55 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/35b9a115-57c6-50dd-9946-3e93c3dbedc8/relationships/integrations/b35d3e07-5778-5283-9704-9862a308d863"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:55 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/35b9a115-57c6-50dd-9946-3e93c3dbedc8"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:55 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Update_an_existing_incident_integration_metadata_returns_OK_response-1699302355\"},\"type\":\"incidents\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/incidents" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incidents\",\"id\":\"35b9a115-57c6-50dd-9946-3e93c3dbedc8\",\"attributes\":{\"public_id\":174815,\"incident_type_uuid\":null,\"title\":\"Test-Update_an_existing_incident_integration_metadata_returns_OK_response-1699302355\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:55.934005+00:00\",\"modified\":\"2023-11-06T20:25:55.934005+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:55.923127+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:55 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"incident_id\":\"35b9a115-57c6-50dd-9946-3e93c3dbedc8\",\"integration_type\":1,\"metadata\":{\"channels\":[{\"channel_id\":\"C0123456789\",\"channel_name\":\"#example-channel-name\",\"redirect_url\":\"https://slack.com/app_redirect?channel=C0123456789&team=T01234567\",\"team_id\":\"T01234567\"}]},\"status\":2},\"type\":\"incident_integrations\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/incidents/35b9a115-57c6-50dd-9946-3e93c3dbedc8/relationships/integrations" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incident_integrations\",\"id\":\"b35d3e07-5778-5283-9704-9862a308d863\",\"attributes\":{\"created\":\"2023-11-06T20:25:56.271192+00:00\",\"modified\":\"2023-11-06T20:25:56.271192+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"incident_id\":\"35b9a115-57c6-50dd-9946-3e93c3dbedc8\",\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"status\":3,\"integration_type\":1,\"metadata\":{\"channels\":[{\"channel_id\":\"C0123456789\",\"channel_name\":\"#example-channel-name\",\"redirect_url\":\"https://slack.com/app_redirect?channel=C0123456789&team=T01234567\",\"team_id\":\"T01234567\"}]}},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:55 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"incident_id\":\"35b9a115-57c6-50dd-9946-3e93c3dbedc8\",\"integration_type\":1,\"metadata\":{\"channels\":[{\"channel_id\":\"C0123456789\",\"channel_name\":\"#updated-channel-name\",\"redirect_url\":\"https://slack.com/app_redirect?channel=C0123456789&team=T01234567\",\"team_id\":\"T01234567\"}]}},\"type\":\"incident_integrations\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/incidents/35b9a115-57c6-50dd-9946-3e93c3dbedc8/relationships/integrations/b35d3e07-5778-5283-9704-9862a308d863" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incident_integrations\",\"id\":\"b35d3e07-5778-5283-9704-9862a308d863\",\"attributes\":{\"created\":\"2023-11-06T20:25:56.271192+00:00\",\"modified\":\"2023-11-06T20:25:56.525025+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"incident_id\":\"35b9a115-57c6-50dd-9946-3e93c3dbedc8\",\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"status\":4,\"integration_type\":1,\"metadata\":{\"channels\":[{\"channel_id\":\"C0123456789\",\"channel_name\":\"#updated-channel-name\",\"redirect_url\":\"https://slack.com/app_redirect?channel=C0123456789&team=T01234567\",\"team_id\":\"T01234567\"}]}},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:55 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/35b9a115-57c6-50dd-9946-3e93c3dbedc8/relationships/integrations/b35d3e07-5778-5283-9704-9862a308d863" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:55 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/35b9a115-57c6-50dd-9946-3e93c3dbedc8" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:55 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incidents/Update-an-existing-incident-returns-OK-response.json b/tests/scenarios/cassettes/v2/incidents/Update-an-existing-incident-returns-OK-response.json index 25b253077..8ffbc4907 100644 --- a/tests/scenarios/cassettes/v2/incidents/Update-an-existing-incident-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/incidents/Update-an-existing-incident-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Update_an_existing_incident_returns_OK_response-1699302357\"},\"type\":\"incidents\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/incidents"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incidents\",\"id\":\"035d9c83-698d-50eb-a39f-8c2d7ed135d1\",\"attributes\":{\"public_id\":174816,\"incident_type_uuid\":null,\"title\":\"Test-Update_an_existing_incident_returns_OK_response-1699302357\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:57.231101+00:00\",\"modified\":\"2023-11-06T20:25:57.231101+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:57.220235+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:57 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"fields\":{\"state\":{\"type\":\"dropdown\",\"value\":\"resolved\"}},\"title\":\"Test-Update_an_existing_incident_returns_OK_response-1699302357-updated\"},\"id\":\"035d9c83-698d-50eb-a39f-8c2d7ed135d1\",\"type\":\"incidents\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/incidents/035d9c83-698d-50eb-a39f-8c2d7ed135d1"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incidents\",\"id\":\"035d9c83-698d-50eb-a39f-8c2d7ed135d1\",\"attributes\":{\"public_id\":174816,\"incident_type_uuid\":null,\"title\":\"Test-Update_an_existing_incident_returns_OK_response-1699302357-updated\",\"resolved\":\"2023-11-06T20:25:57.505905+00:00\",\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-06T20:25:57.231101+00:00\",\"modified\":\"2023-11-06T20:25:57.510442+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:57.220235+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"resolved\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"resolved\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[{\"type\":\"incident_responders\",\"id\":\"bcbaea8b-306a-5a8e-b25c-2163bf8caf81\"}]},\"impacts\":{\"data\":[]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:57 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/035d9c83-698d-50eb-a39f-8c2d7ed135d1"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:57 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Update_an_existing_incident_returns_OK_response-1699302357\"},\"type\":\"incidents\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/incidents" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incidents\",\"id\":\"035d9c83-698d-50eb-a39f-8c2d7ed135d1\",\"attributes\":{\"public_id\":174816,\"incident_type_uuid\":null,\"title\":\"Test-Update_an_existing_incident_returns_OK_response-1699302357\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:57.231101+00:00\",\"modified\":\"2023-11-06T20:25:57.231101+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:57.220235+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:57 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"fields\":{\"state\":{\"type\":\"dropdown\",\"value\":\"resolved\"}},\"title\":\"Test-Update_an_existing_incident_returns_OK_response-1699302357-updated\"},\"id\":\"035d9c83-698d-50eb-a39f-8c2d7ed135d1\",\"type\":\"incidents\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/incidents/035d9c83-698d-50eb-a39f-8c2d7ed135d1" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incidents\",\"id\":\"035d9c83-698d-50eb-a39f-8c2d7ed135d1\",\"attributes\":{\"public_id\":174816,\"incident_type_uuid\":null,\"title\":\"Test-Update_an_existing_incident_returns_OK_response-1699302357-updated\",\"resolved\":\"2023-11-06T20:25:57.505905+00:00\",\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created\":\"2023-11-06T20:25:57.231101+00:00\",\"modified\":\"2023-11-06T20:25:57.510442+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:57.220235+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"resolved\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"resolved\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[{\"type\":\"incident_responders\",\"id\":\"bcbaea8b-306a-5a8e-b25c-2163bf8caf81\"}]},\"impacts\":{\"data\":[]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:57 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/035d9c83-698d-50eb-a39f-8c2d7ed135d1" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:57 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/incidents/Update-an-incident-todo-returns-OK-response.json b/tests/scenarios/cassettes/v2/incidents/Update-an-incident-todo-returns-OK-response.json index 35b230c18..d6b9952e8 100644 --- a/tests/scenarios/cassettes/v2/incidents/Update-an-incident-todo-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/incidents/Update-an-incident-todo-returns-OK-response.json @@ -1 +1,163 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Update_an_incident_todo_returns_OK_response-1699302357\"},\"type\":\"incidents\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/incidents"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incidents\",\"id\":\"aac94de7-d203-5171-9c46-ac8e554f1442\",\"attributes\":{\"public_id\":174817,\"incident_type_uuid\":null,\"title\":\"Test-Update_an_incident_todo_returns_OK_response-1699302357\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:58.033003+00:00\",\"modified\":\"2023-11-06T20:25:58.033003+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:58.020584+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:57 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"assignees\":[\"@test.user@test.com\",{\"icon\":\"https://a.slack-edge.com/80588/img/slackbot_48.png\",\"id\":\"USLACKBOT\",\"name\":\"Slackbot\",\"source\":\"slack\"}],\"content\":\"Follow up with customer about the impact they saw.\"},\"type\":\"incident_todos\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/incidents/aac94de7-d203-5171-9c46-ac8e554f1442/relationships/todos"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incident_todos\",\"id\":\"b1fe8268-35cd-5656-b529-a17a34e75c8e\",\"attributes\":{\"created\":\"2023-11-06T20:25:58.387305+00:00\",\"modified\":\"2023-11-06T20:25:58.387305+00:00\",\"completed\":null,\"due_date\":null,\"assignees\":[\"@test.user@test.com\",{\"icon\":\"https://a.slack-edge.com/80588/img/slackbot_48.png\",\"id\":\"USLACKBOT\",\"name\":\"Slackbot\",\"source\":\"slack\"}],\"content\":\"Follow up with customer about the impact they saw.\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"incident_id\":\"aac94de7-d203-5171-9c46-ac8e554f1442\",\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:57 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"assignees\":[\"@test.user@test.com\"],\"completed\":\"2023-03-06T22:00:00.000000+00:00\",\"content\":\"Restore lost data.\",\"due_date\":\"2023-07-10T05:00:00.000000+00:00\"},\"type\":\"incident_todos\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/incidents/aac94de7-d203-5171-9c46-ac8e554f1442/relationships/todos/b1fe8268-35cd-5656-b529-a17a34e75c8e"}, "response": {"body": {"string": "{\"data\":{\"type\":\"incident_todos\",\"id\":\"b1fe8268-35cd-5656-b529-a17a34e75c8e\",\"attributes\":{\"created\":\"2023-11-06T20:25:58.387305+00:00\",\"modified\":\"2023-11-06T20:25:58.907937+00:00\",\"completed\":\"2023-03-06T22:00:00+00:00\",\"due_date\":\"2023-07-10T05:00:00+00:00\",\"assignees\":[\"@test.user@test.com\"],\"content\":\"Restore lost data.\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"incident_id\":\"aac94de7-d203-5171-9c46-ac8e554f1442\",\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:57 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/aac94de7-d203-5171-9c46-ac8e554f1442/relationships/todos/b1fe8268-35cd-5656-b529-a17a34e75c8e"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:57 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/incidents/aac94de7-d203-5171-9c46-ac8e554f1442"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Nov 2023 20:25:57 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"customer_impacted\":false,\"title\":\"Test-Update_an_incident_todo_returns_OK_response-1699302357\"},\"type\":\"incidents\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/incidents" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incidents\",\"id\":\"aac94de7-d203-5171-9c46-ac8e554f1442\",\"attributes\":{\"public_id\":174817,\"incident_type_uuid\":null,\"title\":\"Test-Update_an_incident_todo_returns_OK_response-1699302357\",\"resolved\":null,\"customer_impact_scope\":null,\"customer_impact_start\":null,\"customer_impact_end\":null,\"customer_impacted\":false,\"notification_handles\":null,\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null,\"created\":\"2023-11-06T20:25:58.033003+00:00\",\"modified\":\"2023-11-06T20:25:58.033003+00:00\",\"commander\":null,\"detected\":\"2023-11-06T20:25:58.020584+00:00\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"creation_idempotency_key\":null,\"customer_impact_duration\":0,\"time_to_detect\":0,\"time_to_repair\":0,\"time_to_internal_response\":0,\"time_to_resolve\":0,\"archived\":null,\"fields\":{\"severity\":{\"type\":\"dropdown\",\"value\":\"UNKNOWN\"},\"state\":{\"type\":\"dropdown\",\"value\":\"active\"},\"root_cause\":{\"type\":\"textbox\",\"value\":null},\"detection_method\":{\"type\":\"dropdown\",\"value\":\"unknown\"},\"services\":{\"type\":\"autocomplete\",\"value\":null},\"teams\":{\"type\":\"autocomplete\",\"value\":null},\"summary\":{\"type\":\"textbox\",\"value\":null}},\"field_analytics\":null,\"severity\":\"UNKNOWN\",\"state\":\"active\",\"non_datadog_creator\":null,\"visibility\":\"organization\",\"case_id\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"commander_user\":{\"data\":null},\"user_defined_fields\":{\"data\":[{\"type\":\"user_defined_field\",\"id\":\"ad2b9456-eaec-5bbd-9bae-e502d74e23f8\"},{\"type\":\"user_defined_field\",\"id\":\"299616f7-8acd-5403-886b-991656d6b982\"},{\"type\":\"user_defined_field\",\"id\":\"4148ead2-da45-548e-b6be-8e319bafc425\"},{\"type\":\"user_defined_field\",\"id\":\"66b62f59-48f6-5fee-969a-0886b1db6dcd\"},{\"type\":\"user_defined_field\",\"id\":\"d8a54f16-8b2a-5ab4-87b8-5f0fa575c83e\"},{\"type\":\"user_defined_field\",\"id\":\"623af0a5-f30c-577e-8146-09b8324bdb2d\"},{\"type\":\"user_defined_field\",\"id\":\"ccfc9e6c-f586-58e5-b502-03c466c72e6f\"}]},\"integrations\":{\"data\":[]},\"attachments\":{\"data\":[]},\"responders\":{\"data\":[]},\"impacts\":{\"data\":[]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:57 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"assignees\":[\"@test.user@test.com\",{\"icon\":\"https://a.slack-edge.com/80588/img/slackbot_48.png\",\"id\":\"USLACKBOT\",\"name\":\"Slackbot\",\"source\":\"slack\"}],\"content\":\"Follow up with customer about the impact they saw.\"},\"type\":\"incident_todos\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/incidents/aac94de7-d203-5171-9c46-ac8e554f1442/relationships/todos" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incident_todos\",\"id\":\"b1fe8268-35cd-5656-b529-a17a34e75c8e\",\"attributes\":{\"created\":\"2023-11-06T20:25:58.387305+00:00\",\"modified\":\"2023-11-06T20:25:58.387305+00:00\",\"completed\":null,\"due_date\":null,\"assignees\":[\"@test.user@test.com\",{\"icon\":\"https://a.slack-edge.com/80588/img/slackbot_48.png\",\"id\":\"USLACKBOT\",\"name\":\"Slackbot\",\"source\":\"slack\"}],\"content\":\"Follow up with customer about the impact they saw.\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":null,\"incident_id\":\"aac94de7-d203-5171-9c46-ac8e554f1442\",\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":null},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:57 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"assignees\":[\"@test.user@test.com\"],\"completed\":\"2023-03-06T22:00:00.000000+00:00\",\"content\":\"Restore lost data.\",\"due_date\":\"2023-07-10T05:00:00.000000+00:00\"},\"type\":\"incident_todos\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/incidents/aac94de7-d203-5171-9c46-ac8e554f1442/relationships/todos/b1fe8268-35cd-5656-b529-a17a34e75c8e" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"incident_todos\",\"id\":\"b1fe8268-35cd-5656-b529-a17a34e75c8e\",\"attributes\":{\"created\":\"2023-11-06T20:25:58.387305+00:00\",\"modified\":\"2023-11-06T20:25:58.907937+00:00\",\"completed\":\"2023-03-06T22:00:00+00:00\",\"due_date\":\"2023-07-10T05:00:00+00:00\",\"assignees\":[\"@test.user@test.com\"],\"content\":\"Restore lost data.\",\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"created_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"incident_id\":\"aac94de7-d203-5171-9c46-ac8e554f1442\",\"last_modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"name\":null,\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\"}}},\"last_modified_by_uuid\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"},\"relationships\":{\"created_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"last_modified_by_user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:57 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/aac94de7-d203-5171-9c46-ac8e554f1442/relationships/todos/b1fe8268-35cd-5656-b529-a17a34e75c8e" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:57 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/incidents/aac94de7-d203-5171-9c46-ac8e554f1442" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Nov 2023 20:25:57 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/ip_allowlist/Get-IP-Allowlist-returns-OK-response.json b/tests/scenarios/cassettes/v2/ip_allowlist/Get-IP-Allowlist-returns-OK-response.json index d3cd1ee8e..5edb4d55f 100644 --- a/tests/scenarios/cassettes/v2/ip_allowlist/Get-IP-Allowlist-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/ip_allowlist/Get-IP-Allowlist-returns-OK-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"enabled\":false,\"entries\":[{\"data\":{\"attributes\":{\"cidr_block\":\"127.0.0.1\",\"note\":\"Test-Get_IP_Allowlist_returns_OK_response-1676046412\"},\"type\":\"ip_allowlist_entry\"}},{\"data\":{\"attributes\":{\"cidr_block\":\"0.0.0.0\",\"note\":\"Test-Get_IP_Allowlist_returns_OK_response-1676046412\"},\"type\":\"ip_allowlist_entry\"}}]},\"type\":\"ip_allowlist\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/ip_allowlist"}, "response": {"body": {"string": "{\"data\":{\"type\":\"ip_allowlist\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\",\"attributes\":{\"enabled\":false,\"entries\":[{\"data\":{\"attributes\":{\"note\":\"Test-Get_IP_Allowlist_returns_OK_response-1676046412\",\"created_at\":\"2023-02-10T16:20:06.266709+00:00\",\"modified_at\":\"2023-02-10T16:26:52.418620+00:00\",\"cidr_block\":\"127.0.0.1/32\"},\"type\":\"ip_allowlist_entry\",\"id\":\"deae2f83-f7e0-41a6-89a1-a1708494df30\"}},{\"data\":{\"attributes\":{\"note\":\"Test-Get_IP_Allowlist_returns_OK_response-1676046412\",\"created_at\":\"2023-02-10T16:26:52.422938+00:00\",\"modified_at\":\"2023-02-10T16:26:52.422938+00:00\",\"cidr_block\":\"0.0.0.0/32\"},\"type\":\"ip_allowlist_entry\",\"id\":\"39bb36cd-9b44-489c-80a8-bdf0291617c9\"}}]}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 10 Feb 2023 16:26:52 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/ip_allowlist"}, "response": {"body": {"string": "{\"data\":{\"type\":\"ip_allowlist\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\",\"attributes\":{\"enabled\":false,\"entries\":[{\"data\":{\"attributes\":{\"note\":\"Test-Get_IP_Allowlist_returns_OK_response-1676046412\",\"created_at\":\"2023-02-10T16:26:52.422938+00:00\",\"modified_at\":\"2023-02-10T16:26:52.422938+00:00\",\"cidr_block\":\"0.0.0.0/32\"},\"type\":\"ip_allowlist_entry\",\"id\":\"39bb36cd-9b44-489c-80a8-bdf0291617c9\"}},{\"data\":{\"attributes\":{\"note\":\"Test-Get_IP_Allowlist_returns_OK_response-1676046412\",\"created_at\":\"2023-02-10T16:20:06.266709+00:00\",\"modified_at\":\"2023-02-10T16:26:52.418620+00:00\",\"cidr_block\":\"127.0.0.1/32\"},\"type\":\"ip_allowlist_entry\",\"id\":\"deae2f83-f7e0-41a6-89a1-a1708494df30\"}}]}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 10 Feb 2023 16:26:52 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":false,\"entries\":[{\"data\":{\"attributes\":{\"cidr_block\":\"127.0.0.1\",\"note\":\"Test-Get_IP_Allowlist_returns_OK_response-1676046412\"},\"type\":\"ip_allowlist_entry\"}},{\"data\":{\"attributes\":{\"cidr_block\":\"0.0.0.0\",\"note\":\"Test-Get_IP_Allowlist_returns_OK_response-1676046412\"},\"type\":\"ip_allowlist_entry\"}}]},\"type\":\"ip_allowlist\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/ip_allowlist" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"ip_allowlist\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\",\"attributes\":{\"enabled\":false,\"entries\":[{\"data\":{\"attributes\":{\"note\":\"Test-Get_IP_Allowlist_returns_OK_response-1676046412\",\"created_at\":\"2023-02-10T16:20:06.266709+00:00\",\"modified_at\":\"2023-02-10T16:26:52.418620+00:00\",\"cidr_block\":\"127.0.0.1/32\"},\"type\":\"ip_allowlist_entry\",\"id\":\"deae2f83-f7e0-41a6-89a1-a1708494df30\"}},{\"data\":{\"attributes\":{\"note\":\"Test-Get_IP_Allowlist_returns_OK_response-1676046412\",\"created_at\":\"2023-02-10T16:26:52.422938+00:00\",\"modified_at\":\"2023-02-10T16:26:52.422938+00:00\",\"cidr_block\":\"0.0.0.0/32\"},\"type\":\"ip_allowlist_entry\",\"id\":\"39bb36cd-9b44-489c-80a8-bdf0291617c9\"}}]}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 10 Feb 2023 16:26:52 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/ip_allowlist" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"ip_allowlist\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\",\"attributes\":{\"enabled\":false,\"entries\":[{\"data\":{\"attributes\":{\"note\":\"Test-Get_IP_Allowlist_returns_OK_response-1676046412\",\"created_at\":\"2023-02-10T16:26:52.422938+00:00\",\"modified_at\":\"2023-02-10T16:26:52.422938+00:00\",\"cidr_block\":\"0.0.0.0/32\"},\"type\":\"ip_allowlist_entry\",\"id\":\"39bb36cd-9b44-489c-80a8-bdf0291617c9\"}},{\"data\":{\"attributes\":{\"note\":\"Test-Get_IP_Allowlist_returns_OK_response-1676046412\",\"created_at\":\"2023-02-10T16:20:06.266709+00:00\",\"modified_at\":\"2023-02-10T16:26:52.418620+00:00\",\"cidr_block\":\"127.0.0.1/32\"},\"type\":\"ip_allowlist_entry\",\"id\":\"deae2f83-f7e0-41a6-89a1-a1708494df30\"}}]}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 10 Feb 2023 16:26:52 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/ip_allowlist/Update-IP-Allowlist-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/ip_allowlist/Update-IP-Allowlist-returns-Bad-Request-response.json index 8b1759096..4f365ebcb 100644 --- a/tests/scenarios/cassettes/v2/ip_allowlist/Update-IP-Allowlist-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/ip_allowlist/Update-IP-Allowlist-returns-Bad-Request-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"enabled\":true,\"entries\":[]},\"type\":\"ip_allowlist\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/ip_allowlist"}, "response": {"body": {"string": "{\"errors\":[\"Cannot enable or keep enabled an IP Allowlist without the current IP address in it\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Fri, 10 Feb 2023 16:26:52 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":true,\"entries\":[]},\"type\":\"ip_allowlist\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/ip_allowlist" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Cannot enable or keep enabled an IP Allowlist without the current IP address in it\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Fri, 10 Feb 2023 16:26:52 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/ip_allowlist/Update-IP-Allowlist-returns-OK-response.json b/tests/scenarios/cassettes/v2/ip_allowlist/Update-IP-Allowlist-returns-OK-response.json index 9cd0a51e6..bf3618ffe 100644 --- a/tests/scenarios/cassettes/v2/ip_allowlist/Update-IP-Allowlist-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/ip_allowlist/Update-IP-Allowlist-returns-OK-response.json @@ -1 +1,73 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"enabled\":false,\"entries\":[]},\"type\":\"ip_allowlist\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/ip_allowlist"}, "response": {"body": {"string": "{\"data\":{\"type\":\"ip_allowlist\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\",\"attributes\":{\"enabled\":false,\"entries\":[]}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 10 Feb 2023 16:26:53 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"enabled\":false,\"entries\":[{\"data\":{\"attributes\":{\"cidr_block\":\"127.0.0.1\",\"note\":\"Test-Update_IP_Allowlist_returns_OK_response-1676046413\"},\"type\":\"ip_allowlist_entry\"}}]},\"type\":\"ip_allowlist\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/ip_allowlist"}, "response": {"body": {"string": "{\"data\":{\"type\":\"ip_allowlist\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\",\"attributes\":{\"enabled\":false,\"entries\":[{\"data\":{\"attributes\":{\"note\":\"Test-Update_IP_Allowlist_returns_OK_response-1676046413\",\"created_at\":\"2023-02-10T16:26:53.343754+00:00\",\"modified_at\":\"2023-02-10T16:26:53.343754+00:00\",\"cidr_block\":\"127.0.0.1/32\"},\"type\":\"ip_allowlist_entry\",\"id\":\"41678b10-3555-4dba-abbd-754d294aadc1\"}}]}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 10 Feb 2023 16:26:53 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":false,\"entries\":[]},\"type\":\"ip_allowlist\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/ip_allowlist" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"ip_allowlist\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\",\"attributes\":{\"enabled\":false,\"entries\":[]}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 10 Feb 2023 16:26:53 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":false,\"entries\":[{\"data\":{\"attributes\":{\"cidr_block\":\"127.0.0.1\",\"note\":\"Test-Update_IP_Allowlist_returns_OK_response-1676046413\"},\"type\":\"ip_allowlist_entry\"}}]},\"type\":\"ip_allowlist\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/ip_allowlist" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"ip_allowlist\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\",\"attributes\":{\"enabled\":false,\"entries\":[{\"data\":{\"attributes\":{\"note\":\"Test-Update_IP_Allowlist_returns_OK_response-1676046413\",\"created_at\":\"2023-02-10T16:26:53.343754+00:00\",\"modified_at\":\"2023-02-10T16:26:53.343754+00:00\",\"cidr_block\":\"127.0.0.1/32\"},\"type\":\"ip_allowlist_entry\",\"id\":\"41678b10-3555-4dba-abbd-754d294aadc1\"}}]}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 10 Feb 2023 16:26:53 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/key_management/Create-an-API-key-returns-Created-response.json b/tests/scenarios/cassettes/v2/key_management/Create-an-API-key-returns-Created-response.json index 4ba1cf7df..2205fa129 100644 --- a/tests/scenarios/cassettes/v2/key_management/Create-an-API-key-returns-Created-response.json +++ b/tests/scenarios/cassettes/v2/key_management/Create-an-API-key-returns-Created-response.json @@ -1 +1,63 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_an_API_key_returns_Created_response-1652349120\"},\"type\":\"api_keys\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/api_keys"}, "response": {"body": {"string": "{\"data\":{\"type\":\"api_keys\",\"attributes\":{\"created_at\":\"2022-05-12T09:52:00.698721+00:00\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"last4\":\"xxxx\",\"modified_at\":\"2022-05-12T09:52:00.698721+00:00\",\"name\":\"Test-Create_an_API_key_returns_Created_response-1652349120\"},\"relationships\":{\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}},\"id\":\"f625994a-4ee7-4967-b08c-7067d1f1cdac\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:52:00 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/api_keys/f625994a-4ee7-4967-b08c-7067d1f1cdac"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:52:00 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_an_API_key_returns_Created_response-1652349120\"},\"type\":\"api_keys\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/api_keys" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"api_keys\",\"attributes\":{\"created_at\":\"2022-05-12T09:52:00.698721+00:00\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"last4\":\"xxxx\",\"modified_at\":\"2022-05-12T09:52:00.698721+00:00\",\"name\":\"Test-Create_an_API_key_returns_Created_response-1652349120\"},\"relationships\":{\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}},\"id\":\"f625994a-4ee7-4967-b08c-7067d1f1cdac\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:00 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/api_keys/f625994a-4ee7-4967-b08c-7067d1f1cdac" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:00 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/key_management/Create-an-Application-key-with-scopes-for-current-user-returns-Created-response.json b/tests/scenarios/cassettes/v2/key_management/Create-an-Application-key-with-scopes-for-current-user-returns-Created-response.json index c59733e5c..240fdc91b 100644 --- a/tests/scenarios/cassettes/v2/key_management/Create-an-Application-key-with-scopes-for-current-user-returns-Created-response.json +++ b/tests/scenarios/cassettes/v2/key_management/Create-an-Application-key-with-scopes-for-current-user-returns-Created-response.json @@ -1 +1,63 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_an_Application_key_with_scopes_for_current_user_returns_Created_response-1652349122\",\"scopes\":[\"dashboards_read\",\"dashboards_write\",\"dashboards_public_share\"]},\"type\":\"application_keys\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys"}, "response": {"body": {"string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"aae6e868-4746-46f2-a457-5b39d35b0c30\",\"attributes\":{\"name\":\"Test-Create_an_Application_key_with_scopes_for_current_user_returns_Created_response-1652349122\",\"created_at\":\"2022-05-12T09:52:03.065338+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":[\"dashboards_read\",\"dashboards_write\",\"dashboards_public_share\"]},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:52:02 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys/aae6e868-4746-46f2-a457-5b39d35b0c30"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:52:02 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_an_Application_key_with_scopes_for_current_user_returns_Created_response-1652349122\",\"scopes\":[\"dashboards_read\",\"dashboards_write\",\"dashboards_public_share\"]},\"type\":\"application_keys\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"aae6e868-4746-46f2-a457-5b39d35b0c30\",\"attributes\":{\"name\":\"Test-Create_an_Application_key_with_scopes_for_current_user_returns_Created_response-1652349122\",\"created_at\":\"2022-05-12T09:52:03.065338+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":[\"dashboards_read\",\"dashboards_write\",\"dashboards_public_share\"]},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:02 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys/aae6e868-4746-46f2-a457-5b39d35b0c30" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:02 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/key_management/Create-an-application-key-for-current-user-returns-Created-response.json b/tests/scenarios/cassettes/v2/key_management/Create-an-application-key-for-current-user-returns-Created-response.json index f4c9528cb..77150a999 100644 --- a/tests/scenarios/cassettes/v2/key_management/Create-an-application-key-for-current-user-returns-Created-response.json +++ b/tests/scenarios/cassettes/v2/key_management/Create-an-application-key-for-current-user-returns-Created-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_an_application_key_for_current_user_returns_Created_response-1697464548\"},\"type\":\"application_keys\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys"}, "response": {"body": {"string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"513684db-d430-45bd-8239-0715320c9488\",\"attributes\":{\"name\":\"Test-Create_an_application_key_for_current_user_returns_Created_response-1697464548\",\"created_at\":\"2023-10-16T13:55:49.254647+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 16 Oct 2023 13:55:48 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys/513684db-d430-45bd-8239-0715320c9488"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 16 Oct 2023 13:55:48 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_an_application_key_for_current_user_returns_Created_response-1697464548\"},\"type\":\"application_keys\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"513684db-d430-45bd-8239-0715320c9488\",\"attributes\":{\"name\":\"Test-Create_an_application_key_for_current_user_returns_Created_response-1697464548\",\"created_at\":\"2023-10-16T13:55:49.254647+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 16 Oct 2023 13:55:48 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys/513684db-d430-45bd-8239-0715320c9488" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 16 Oct 2023 13:55:48 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/key_management/Delete-an-API-key-returns-No-Content-response.json b/tests/scenarios/cassettes/v2/key_management/Delete-an-API-key-returns-No-Content-response.json index 171af80af..2be11a878 100644 --- a/tests/scenarios/cassettes/v2/key_management/Delete-an-API-key-returns-No-Content-response.json +++ b/tests/scenarios/cassettes/v2/key_management/Delete-an-API-key-returns-No-Content-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Delete_an_API_key_returns_No_Content_response-1652349123\"},\"type\":\"api_keys\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/api_keys"}, "response": {"body": {"string": "{\"data\":{\"type\":\"api_keys\",\"attributes\":{\"created_at\":\"2022-05-12T09:52:04.306086+00:00\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"last4\":\"xxxx\",\"modified_at\":\"2022-05-12T09:52:04.306086+00:00\",\"name\":\"Test-Delete_an_API_key_returns_No_Content_response-1652349123\"},\"relationships\":{\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}},\"id\":\"67c58c24-e02f-4d1a-9c95-1e01d2544e5a\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:52:03 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/api_keys/67c58c24-e02f-4d1a-9c95-1e01d2544e5a"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:52:03 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/api_keys/67c58c24-e02f-4d1a-9c95-1e01d2544e5a"}, "response": {"body": {"string": "{\"errors\": [\"API key not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 12 May 2022 09:52:03 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Delete_an_API_key_returns_No_Content_response-1652349123\"},\"type\":\"api_keys\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/api_keys" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"api_keys\",\"attributes\":{\"created_at\":\"2022-05-12T09:52:04.306086+00:00\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"last4\":\"xxxx\",\"modified_at\":\"2022-05-12T09:52:04.306086+00:00\",\"name\":\"Test-Delete_an_API_key_returns_No_Content_response-1652349123\"},\"relationships\":{\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}},\"id\":\"67c58c24-e02f-4d1a-9c95-1e01d2544e5a\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:03 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/api_keys/67c58c24-e02f-4d1a-9c95-1e01d2544e5a" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:03 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/api_keys/67c58c24-e02f-4d1a-9c95-1e01d2544e5a" + }, + "response": { + "body": { + "string": "{\"errors\": [\"API key not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:03 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/key_management/Delete-an-application-key-owned-by-current-user-returns-No-Content-response.json b/tests/scenarios/cassettes/v2/key_management/Delete-an-application-key-owned-by-current-user-returns-No-Content-response.json index 2c1a877af..43d2e8485 100644 --- a/tests/scenarios/cassettes/v2/key_management/Delete-an-application-key-owned-by-current-user-returns-No-Content-response.json +++ b/tests/scenarios/cassettes/v2/key_management/Delete-an-application-key-owned-by-current-user-returns-No-Content-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Delete_an_application_key_owned_by_current_user_returns_No_Content_response-1697466191\"},\"type\":\"application_keys\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys"}, "response": {"body": {"string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"be94f6b2-1704-4126-a898-94d65f6f28d8\",\"attributes\":{\"name\":\"Test-Delete_an_application_key_owned_by_current_user_returns_No_Content_response-1697466191\",\"created_at\":\"2023-10-16T14:23:12.034758+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 16 Oct 2023 14:23:11 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys/be94f6b2-1704-4126-a898-94d65f6f28d8"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 16 Oct 2023 14:23:11 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys/be94f6b2-1704-4126-a898-94d65f6f28d8"}, "response": {"body": {"string": "{\"errors\":[\"Application key not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Mon, 16 Oct 2023 14:23:11 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Delete_an_application_key_owned_by_current_user_returns_No_Content_response-1697466191\"},\"type\":\"application_keys\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"be94f6b2-1704-4126-a898-94d65f6f28d8\",\"attributes\":{\"name\":\"Test-Delete_an_application_key_owned_by_current_user_returns_No_Content_response-1697466191\",\"created_at\":\"2023-10-16T14:23:12.034758+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 16 Oct 2023 14:23:11 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys/be94f6b2-1704-4126-a898-94d65f6f28d8" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 16 Oct 2023 14:23:11 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys/be94f6b2-1704-4126-a898-94d65f6f28d8" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Application key not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Mon, 16 Oct 2023 14:23:11 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/key_management/Delete-an-application-key-returns-No-Content-response.json b/tests/scenarios/cassettes/v2/key_management/Delete-an-application-key-returns-No-Content-response.json index 2c079429d..40aeb27f7 100644 --- a/tests/scenarios/cassettes/v2/key_management/Delete-an-application-key-returns-No-Content-response.json +++ b/tests/scenarios/cassettes/v2/key_management/Delete-an-application-key-returns-No-Content-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Delete_an_application_key_returns_No_Content_response-1697462308\"},\"type\":\"application_keys\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys"}, "response": {"body": {"string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"c7a26dee-1619-4ed0-8d1a-0ae4ed94da29\",\"attributes\":{\"name\":\"Test-Delete_an_application_key_returns_No_Content_response-1697462308\",\"created_at\":\"2023-10-16T13:18:29.388862+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 16 Oct 2023 13:18:28 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/application_keys/c7a26dee-1619-4ed0-8d1a-0ae4ed94da29"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 16 Oct 2023 13:18:28 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys/c7a26dee-1619-4ed0-8d1a-0ae4ed94da29"}, "response": {"body": {"string": "{\"errors\":[\"Application key not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Mon, 16 Oct 2023 13:18:28 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Delete_an_application_key_returns_No_Content_response-1697462308\"},\"type\":\"application_keys\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"c7a26dee-1619-4ed0-8d1a-0ae4ed94da29\",\"attributes\":{\"name\":\"Test-Delete_an_application_key_returns_No_Content_response-1697462308\",\"created_at\":\"2023-10-16T13:18:29.388862+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 16 Oct 2023 13:18:28 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/application_keys/c7a26dee-1619-4ed0-8d1a-0ae4ed94da29" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 16 Oct 2023 13:18:28 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys/c7a26dee-1619-4ed0-8d1a-0ae4ed94da29" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Application key not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Mon, 16 Oct 2023 13:18:28 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/key_management/Edit-an-API-key-returns-OK-response.json b/tests/scenarios/cassettes/v2/key_management/Edit-an-API-key-returns-OK-response.json index 2c03b95df..e1a46dda4 100644 --- a/tests/scenarios/cassettes/v2/key_management/Edit-an-API-key-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/key_management/Edit-an-API-key-returns-OK-response.json @@ -1 +1,97 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Edit_an_API_key_returns_OK_response-1652349128\"},\"type\":\"api_keys\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/api_keys"}, "response": {"body": {"string": "{\"data\":{\"type\":\"api_keys\",\"attributes\":{\"created_at\":\"2022-05-12T09:52:08.958834+00:00\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"last4\":\"xxxx\",\"modified_at\":\"2022-05-12T09:52:08.958834+00:00\",\"name\":\"Test-Edit_an_API_key_returns_OK_response-1652349128\"},\"relationships\":{\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}},\"id\":\"929dfb7c-2309-46b4-bdfe-998dc339f2db\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:52:08 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Edit_an_API_key_returns_OK_response-1652349128\"},\"id\":\"929dfb7c-2309-46b4-bdfe-998dc339f2db\",\"type\":\"api_keys\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/api_keys/929dfb7c-2309-46b4-bdfe-998dc339f2db"}, "response": {"body": {"string": "{\"data\":{\"type\":\"api_keys\",\"attributes\":{\"created_at\":\"2022-05-12T09:52:08.958834+00:00\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"last4\":\"xxxx\",\"modified_at\":\"2022-05-12T09:52:08.958834+00:00\",\"name\":\"Test-Edit_an_API_key_returns_OK_response-1652349128\"},\"relationships\":{\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}},\"id\":\"929dfb7c-2309-46b4-bdfe-998dc339f2db\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:08 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/api_keys/929dfb7c-2309-46b4-bdfe-998dc339f2db"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:52:08 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Edit_an_API_key_returns_OK_response-1652349128\"},\"type\":\"api_keys\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/api_keys" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"api_keys\",\"attributes\":{\"created_at\":\"2022-05-12T09:52:08.958834+00:00\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"last4\":\"xxxx\",\"modified_at\":\"2022-05-12T09:52:08.958834+00:00\",\"name\":\"Test-Edit_an_API_key_returns_OK_response-1652349128\"},\"relationships\":{\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}},\"id\":\"929dfb7c-2309-46b4-bdfe-998dc339f2db\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:08 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Edit_an_API_key_returns_OK_response-1652349128\"},\"id\":\"929dfb7c-2309-46b4-bdfe-998dc339f2db\",\"type\":\"api_keys\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/api_keys/929dfb7c-2309-46b4-bdfe-998dc339f2db" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"api_keys\",\"attributes\":{\"created_at\":\"2022-05-12T09:52:08.958834+00:00\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"last4\":\"xxxx\",\"modified_at\":\"2022-05-12T09:52:08.958834+00:00\",\"name\":\"Test-Edit_an_API_key_returns_OK_response-1652349128\"},\"relationships\":{\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}},\"id\":\"929dfb7c-2309-46b4-bdfe-998dc339f2db\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:08 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/api_keys/929dfb7c-2309-46b4-bdfe-998dc339f2db" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:08 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/key_management/Edit-an-application-key-owned-by-current-user-returns-OK-response.json b/tests/scenarios/cassettes/v2/key_management/Edit-an-application-key-owned-by-current-user-returns-OK-response.json index 1def494d2..515c744af 100644 --- a/tests/scenarios/cassettes/v2/key_management/Edit-an-application-key-owned-by-current-user-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/key_management/Edit-an-application-key-owned-by-current-user-returns-OK-response.json @@ -1 +1,97 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Edit_an_application_key_owned_by_current_user_returns_OK_response-1652349129\"},\"type\":\"application_keys\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys"}, "response": {"body": {"string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"30170613-5282-40db-83ae-232895165192\",\"attributes\":{\"name\":\"Test-Edit_an_application_key_owned_by_current_user_returns_OK_response-1652349129\",\"created_at\":\"2022-05-12T09:52:10.475750+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:52:09 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Edit_an_application_key_owned_by_current_user_returns_OK_response-1652349129-updated\"},\"id\":\"30170613-5282-40db-83ae-232895165192\",\"type\":\"application_keys\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys/30170613-5282-40db-83ae-232895165192"}, "response": {"body": {"string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"30170613-5282-40db-83ae-232895165192\",\"attributes\":{\"name\":\"Test-Edit_an_application_key_owned_by_current_user_returns_OK_response-1652349129-updated\",\"created_at\":\"2022-05-12T09:52:10.475750+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:09 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys/30170613-5282-40db-83ae-232895165192"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:52:09 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Edit_an_application_key_owned_by_current_user_returns_OK_response-1652349129\"},\"type\":\"application_keys\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"30170613-5282-40db-83ae-232895165192\",\"attributes\":{\"name\":\"Test-Edit_an_application_key_owned_by_current_user_returns_OK_response-1652349129\",\"created_at\":\"2022-05-12T09:52:10.475750+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:09 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Edit_an_application_key_owned_by_current_user_returns_OK_response-1652349129-updated\"},\"id\":\"30170613-5282-40db-83ae-232895165192\",\"type\":\"application_keys\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys/30170613-5282-40db-83ae-232895165192" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"30170613-5282-40db-83ae-232895165192\",\"attributes\":{\"name\":\"Test-Edit_an_application_key_owned_by_current_user_returns_OK_response-1652349129-updated\",\"created_at\":\"2022-05-12T09:52:10.475750+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:09 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys/30170613-5282-40db-83ae-232895165192" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:09 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/key_management/Edit-an-application-key-returns-OK-response.json b/tests/scenarios/cassettes/v2/key_management/Edit-an-application-key-returns-OK-response.json index 7a0e8855a..93b8ea396 100644 --- a/tests/scenarios/cassettes/v2/key_management/Edit-an-application-key-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/key_management/Edit-an-application-key-returns-OK-response.json @@ -1 +1,97 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Edit_an_application_key_returns_OK_response-1652349131\"},\"type\":\"application_keys\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys"}, "response": {"body": {"string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"27b9bda2-c2e1-46ae-9dea-bfad4fcd5000\",\"attributes\":{\"name\":\"Test-Edit_an_application_key_returns_OK_response-1652349131\",\"created_at\":\"2022-05-12T09:52:12.071707+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:52:11 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Edit_an_application_key_returns_OK_response-1652349131-updated\"},\"id\":\"27b9bda2-c2e1-46ae-9dea-bfad4fcd5000\",\"type\":\"application_keys\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/application_keys/27b9bda2-c2e1-46ae-9dea-bfad4fcd5000"}, "response": {"body": {"string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"27b9bda2-c2e1-46ae-9dea-bfad4fcd5000\",\"attributes\":{\"name\":\"Test-Edit_an_application_key_returns_OK_response-1652349131-updated\",\"created_at\":\"2022-05-12T09:52:12.071707+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:11 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys/27b9bda2-c2e1-46ae-9dea-bfad4fcd5000"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:52:11 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Edit_an_application_key_returns_OK_response-1652349131\"},\"type\":\"application_keys\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"27b9bda2-c2e1-46ae-9dea-bfad4fcd5000\",\"attributes\":{\"name\":\"Test-Edit_an_application_key_returns_OK_response-1652349131\",\"created_at\":\"2022-05-12T09:52:12.071707+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:11 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Edit_an_application_key_returns_OK_response-1652349131-updated\"},\"id\":\"27b9bda2-c2e1-46ae-9dea-bfad4fcd5000\",\"type\":\"application_keys\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/application_keys/27b9bda2-c2e1-46ae-9dea-bfad4fcd5000" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"27b9bda2-c2e1-46ae-9dea-bfad4fcd5000\",\"attributes\":{\"name\":\"Test-Edit_an_application_key_returns_OK_response-1652349131-updated\",\"created_at\":\"2022-05-12T09:52:12.071707+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:11 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys/27b9bda2-c2e1-46ae-9dea-bfad4fcd5000" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:11 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/key_management/Get-API-key-returns-OK-response.json b/tests/scenarios/cassettes/v2/key_management/Get-API-key-returns-OK-response.json index 33dcb287b..fcdadcf76 100644 --- a/tests/scenarios/cassettes/v2/key_management/Get-API-key-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/key_management/Get-API-key-returns-OK-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Get_API_key_returns_OK_response-1652349133\"},\"type\":\"api_keys\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/api_keys"}, "response": {"body": {"string": "{\"data\":{\"type\":\"api_keys\",\"attributes\":{\"created_at\":\"2022-05-12T09:52:13.583089+00:00\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"last4\":\"xxxx\",\"modified_at\":\"2022-05-12T09:52:13.583089+00:00\",\"name\":\"Test-Get_API_key_returns_OK_response-1652349133\"},\"relationships\":{\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}},\"id\":\"d1029ab0-413b-467f-a2a6-1d49238fc386\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:52:13 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/api_keys/d1029ab0-413b-467f-a2a6-1d49238fc386"}, "response": {"body": {"string": "{\"data\":{\"type\":\"api_keys\",\"attributes\":{\"created_at\":\"2022-05-12T09:52:13.583089+00:00\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"last4\":\"xxxx\",\"modified_at\":\"2022-05-12T09:52:13.583089+00:00\",\"name\":\"Test-Get_API_key_returns_OK_response-1652349133\"},\"relationships\":{\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}},\"id\":\"d1029ab0-413b-467f-a2a6-1d49238fc386\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:13 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/api_keys/d1029ab0-413b-467f-a2a6-1d49238fc386"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:52:13 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Get_API_key_returns_OK_response-1652349133\"},\"type\":\"api_keys\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/api_keys" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"api_keys\",\"attributes\":{\"created_at\":\"2022-05-12T09:52:13.583089+00:00\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"last4\":\"xxxx\",\"modified_at\":\"2022-05-12T09:52:13.583089+00:00\",\"name\":\"Test-Get_API_key_returns_OK_response-1652349133\"},\"relationships\":{\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}},\"id\":\"d1029ab0-413b-467f-a2a6-1d49238fc386\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:13 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/api_keys/d1029ab0-413b-467f-a2a6-1d49238fc386" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"api_keys\",\"attributes\":{\"created_at\":\"2022-05-12T09:52:13.583089+00:00\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"last4\":\"xxxx\",\"modified_at\":\"2022-05-12T09:52:13.583089+00:00\",\"name\":\"Test-Get_API_key_returns_OK_response-1652349133\"},\"relationships\":{\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}},\"id\":\"d1029ab0-413b-467f-a2a6-1d49238fc386\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:13 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/api_keys/d1029ab0-413b-467f-a2a6-1d49238fc386" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:13 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/key_management/Get-all-API-keys-returns-OK-response.json b/tests/scenarios/cassettes/v2/key_management/Get-all-API-keys-returns-OK-response.json index cdd50c8ce..bb18f7aa0 100644 --- a/tests/scenarios/cassettes/v2/key_management/Get-all-API-keys-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/key_management/Get-all-API-keys-returns-OK-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Get_all_API_keys_returns_OK_response-1652349134\"},\"type\":\"api_keys\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/api_keys"}, "response": {"body": {"string": "{\"data\":{\"type\":\"api_keys\",\"attributes\":{\"created_at\":\"2022-05-12T09:52:15.135884+00:00\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"last4\":\"xxxx\",\"modified_at\":\"2022-05-12T09:52:15.135884+00:00\",\"name\":\"Test-Get_all_API_keys_returns_OK_response-1652349134\"},\"relationships\":{\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}},\"id\":\"32c723fd-9e78-4b1a-a1dd-fab7fe34e8e8\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:52:14 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/api_keys?filter=Test-Get_all_API_keys_returns_OK_response-1652349134"}, "response": {"body": {"string": "{\"meta\":{\"max_allowed\":200,\"page\":{\"total_filtered_count\":1}},\"data\":[{\"type\":\"api_keys\",\"attributes\":{\"created_at\":\"2022-05-12T09:52:15.135884+00:00\",\"last4\":\"xxxx\",\"modified_at\":\"2022-05-12T09:52:15.135884+00:00\",\"name\":\"Test-Get_all_API_keys_returns_OK_response-1652349134\"},\"relationships\":{\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}},\"id\":\"32c723fd-9e78-4b1a-a1dd-fab7fe34e8e8\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:14 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/api_keys/32c723fd-9e78-4b1a-a1dd-fab7fe34e8e8"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:52:14 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Get_all_API_keys_returns_OK_response-1652349134\"},\"type\":\"api_keys\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/api_keys" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"api_keys\",\"attributes\":{\"created_at\":\"2022-05-12T09:52:15.135884+00:00\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"last4\":\"xxxx\",\"modified_at\":\"2022-05-12T09:52:15.135884+00:00\",\"name\":\"Test-Get_all_API_keys_returns_OK_response-1652349134\"},\"relationships\":{\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}},\"id\":\"32c723fd-9e78-4b1a-a1dd-fab7fe34e8e8\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:14 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/api_keys?filter=Test-Get_all_API_keys_returns_OK_response-1652349134" + }, + "response": { + "body": { + "string": "{\"meta\":{\"max_allowed\":200,\"page\":{\"total_filtered_count\":1}},\"data\":[{\"type\":\"api_keys\",\"attributes\":{\"created_at\":\"2022-05-12T09:52:15.135884+00:00\",\"last4\":\"xxxx\",\"modified_at\":\"2022-05-12T09:52:15.135884+00:00\",\"name\":\"Test-Get_all_API_keys_returns_OK_response-1652349134\"},\"relationships\":{\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"modified_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}},\"id\":\"32c723fd-9e78-4b1a-a1dd-fab7fe34e8e8\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:14 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/api_keys/32c723fd-9e78-4b1a-a1dd-fab7fe34e8e8" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:14 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/key_management/Get-all-application-keys-owned-by-current-user-returns-OK-response.json b/tests/scenarios/cassettes/v2/key_management/Get-all-application-keys-owned-by-current-user-returns-OK-response.json index 3eb93a22b..366252d7a 100644 --- a/tests/scenarios/cassettes/v2/key_management/Get-all-application-keys-owned-by-current-user-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/key_management/Get-all-application-keys-owned-by-current-user-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"application_keys\",\"id\":\"fdcdec64-ca51-4208-a259-0405192c6447\",\"attributes\":{\"name\":\"1PASSWORD_SHARED\",\"created_at\":\"2023-10-03T19:27:33.054116+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"95f088d2-cd5f-4aaa-920d-95a87f5ebd3d\",\"attributes\":{\"name\":\"datadogpy gh\",\"created_at\":\"2023-05-31T17:27:38.214284+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"30b6d66c-d9c9-4d17-a52c-47a46409899d\",\"attributes\":{\"name\":\"Example-Get_all_Application_keys_returns_OK_response_1692972923\",\"created_at\":\"2023-08-25T14:15:23.703248+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"82df708f-76c6-4fbc-a0e0-9048de05a6e9\",\"attributes\":{\"name\":\"foo-application1\",\"created_at\":\"2023-09-18T17:19:29.760324+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"fd73328c-c90a-4453-9e2a-e5d40e918ebe\",\"attributes\":{\"name\":\"luis.valini\",\"created_at\":\"2022-06-21T10:53:15.846482+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"b35e8f9a-a94b-5b20-8ec2-4b76dd2e13e1\",\"attributes\":{\"name\":\"Romain\",\"created_at\":\"2021-04-19T14:01:09.155025+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"6e93352a-06eb-4101-9bd2-59455a0c6e60\",\"attributes\":{\"name\":\"terraform-config\",\"created_at\":\"2021-12-17T20:38:35.465545+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"1460be7f-6ac8-4fe4-968c-c4e37f25641a\",\"attributes\":{\"name\":\"Test-Typescript-Get_all_Application_keys_returns_OK_response-1695640119\",\"created_at\":\"2023-09-25T11:08:39.191668+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"4259f047-940b-447d-ae32-7613d30ce87b\",\"attributes\":{\"name\":\"Test-Typescript-Get_an_application_key_returns_OK_response-1695640119\",\"created_at\":\"2023-09-25T11:08:39.638983+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"ee103caa-e8a3-4a31-b4d9-9d1769c4c678\",\"attributes\":{\"name\":\"Test-Typescript-Get_one_Application_key_owned_by_current_user_returns_OK_response-1695640119\",\"created_at\":\"2023-09-25T11:08:40.104889+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"leak_information\":{\"data\":null}}}],\"meta\":{\"page\":{\"total_filtered_count\":10},\"max_allowed_per_user\":1000}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 16 Oct 2023 13:23:16 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"application_keys\",\"id\":\"fdcdec64-ca51-4208-a259-0405192c6447\",\"attributes\":{\"name\":\"1PASSWORD_SHARED\",\"created_at\":\"2023-10-03T19:27:33.054116+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"95f088d2-cd5f-4aaa-920d-95a87f5ebd3d\",\"attributes\":{\"name\":\"datadogpy gh\",\"created_at\":\"2023-05-31T17:27:38.214284+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"30b6d66c-d9c9-4d17-a52c-47a46409899d\",\"attributes\":{\"name\":\"Example-Get_all_Application_keys_returns_OK_response_1692972923\",\"created_at\":\"2023-08-25T14:15:23.703248+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"82df708f-76c6-4fbc-a0e0-9048de05a6e9\",\"attributes\":{\"name\":\"foo-application1\",\"created_at\":\"2023-09-18T17:19:29.760324+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"fd73328c-c90a-4453-9e2a-e5d40e918ebe\",\"attributes\":{\"name\":\"luis.valini\",\"created_at\":\"2022-06-21T10:53:15.846482+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"b35e8f9a-a94b-5b20-8ec2-4b76dd2e13e1\",\"attributes\":{\"name\":\"Romain\",\"created_at\":\"2021-04-19T14:01:09.155025+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"6e93352a-06eb-4101-9bd2-59455a0c6e60\",\"attributes\":{\"name\":\"terraform-config\",\"created_at\":\"2021-12-17T20:38:35.465545+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"1460be7f-6ac8-4fe4-968c-c4e37f25641a\",\"attributes\":{\"name\":\"Test-Typescript-Get_all_Application_keys_returns_OK_response-1695640119\",\"created_at\":\"2023-09-25T11:08:39.191668+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"4259f047-940b-447d-ae32-7613d30ce87b\",\"attributes\":{\"name\":\"Test-Typescript-Get_an_application_key_returns_OK_response-1695640119\",\"created_at\":\"2023-09-25T11:08:39.638983+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"ee103caa-e8a3-4a31-b4d9-9d1769c4c678\",\"attributes\":{\"name\":\"Test-Typescript-Get_one_Application_key_owned_by_current_user_returns_OK_response-1695640119\",\"created_at\":\"2023-09-25T11:08:40.104889+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"leak_information\":{\"data\":null}}}],\"meta\":{\"page\":{\"total_filtered_count\":10},\"max_allowed_per_user\":1000}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 16 Oct 2023 13:23:16 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/key_management/Get-all-application-keys-returns-OK-response.json b/tests/scenarios/cassettes/v2/key_management/Get-all-application-keys-returns-OK-response.json index 7aa19ffe1..e63871db0 100644 --- a/tests/scenarios/cassettes/v2/key_management/Get-all-application-keys-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/key_management/Get-all-application-keys-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Get_all_application_keys_returns_OK_response-1697462916\"},\"type\":\"application_keys\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys"}, "response": {"body": {"string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"6104cd8c-fb93-4799-b2f9-6bc65effe94b\",\"attributes\":{\"name\":\"Test-Get_all_application_keys_returns_OK_response-1697462916\",\"created_at\":\"2023-10-16T13:28:36.659625+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 16 Oct 2023 13:28:36 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/application_keys"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"application_keys\",\"id\":\"fdcdec64-ca51-4208-a259-0405192c6447\",\"attributes\":{\"name\":\"1PASSWORD_SHARED\",\"created_at\":\"2023-10-03T19:27:33.054116+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"1af44bbc-b4f7-44be-a7da-e6b01227f87b\",\"attributes\":{\"name\":\"anton\",\"created_at\":\"2023-01-13T18:28:47.292864+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"79762769-9352-11ed-a082-5215624996c0\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"f5aa63c8-2623-43c1-8b6b-a05276589f47\",\"attributes\":{\"name\":\"Azure Integrations - Datadog Managed - kevin.zou@datadoghq.com\",\"created_at\":\"2023-09-14T21:02:41.220686+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"d5bf7f0a-19b0-11ed-b0df-da7ad0900002\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"2e7607a6-0589-506d-a2eb-031267b12758\",\"attributes\":{\"name\":\"datadog-api-client-go azp\",\"created_at\":\"2021-04-15T15:51:25.012740+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"9550d220-6483-515b-a59c-fb1985ab84af\",\"attributes\":{\"name\":\"datadog-api-client-java azp\",\"created_at\":\"2021-04-15T15:51:06.920975+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"b6c79d32-2a4a-5549-b2d2-f9ca9da5533b\",\"attributes\":{\"name\":\"datadog-api-client-python azp\",\"created_at\":\"2021-04-16T12:36:45.731594+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"3ca848d1-0392-5776-955a-8e46d9bfc1c9\",\"attributes\":{\"name\":\"datadog-api-client-ruby azp\",\"created_at\":\"2021-04-16T07:37:26.812295+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"cdc6cacf-b958-50f7-8a50-bdf3e5b003f4\",\"attributes\":{\"name\":\"datadog-api-client-typescript azp\",\"created_at\":\"2021-04-16T07:52:35.988358+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"85c63381-6392-57db-ab31-2e4772882785\",\"attributes\":{\"name\":\"datadog-api-spec gh\",\"created_at\":\"2021-04-16T11:21:35.770268+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"c35ac549-a8b3-4093-985f-2731bbdbbcd4\",\"attributes\":{\"name\":\"datadog-api-spec Live Validation\",\"created_at\":\"2023-10-04T14:20:53.771922+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"e0c5cf11-00a7-5937-bd91-af665c665af9\",\"attributes\":{\"name\":\"datadog-cloudformation-resources ci\",\"created_at\":\"2021-07-05T15:06:46.010096+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"95f088d2-cd5f-4aaa-920d-95a87f5ebd3d\",\"attributes\":{\"name\":\"datadogpy gh\",\"created_at\":\"2023-05-31T17:27:38.214284+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"59944611-3c53-4f7d-861e-69fd2803263c\",\"attributes\":{\"name\":\"Example-Edit_an_app_key_owned_by_this_service_account_returns_OK_response_1692972901-updated\",\"created_at\":\"2023-08-25T14:15:02.734245+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"c8032247-4351-11ee-8617-0201a2edc5cd\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"30b6d66c-d9c9-4d17-a52c-47a46409899d\",\"attributes\":{\"name\":\"Example-Get_all_Application_keys_returns_OK_response_1692972923\",\"created_at\":\"2023-08-25T14:15:23.703248+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"82df708f-76c6-4fbc-a0e0-9048de05a6e9\",\"attributes\":{\"name\":\"foo-application1\",\"created_at\":\"2023-09-18T17:19:29.760324+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"b231bb6d-e3ee-5fa4-969d-03fea7293d15\",\"attributes\":{\"name\":\"Get app keys\",\"created_at\":\"2021-05-25T09:40:46.767264+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"797166d1-b70f-499d-95dd-be8db25ed7ef\",\"attributes\":{\"name\":\"HantingTestAppKey\",\"created_at\":\"2023-07-17T14:23:52.051345+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"b72434a1-b8ed-11ed-b3c2-da447d6968cb\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"666a9e06-0a49-51aa-9f3a-6d4954d38b9f\",\"attributes\":{\"name\":\"Hippo\",\"created_at\":\"2021-04-15T14:19:16.368956+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"35d26b5f-eba0-11e9-a77a-876976ea2f77\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"bedbcfc2-a1f5-53f4-8da0-912dad42be59\",\"attributes\":{\"name\":\"Jiri\",\"created_at\":\"2021-04-16T10:07:24.951636+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"9a56dfbc-009f-11ea-a77b-0b2eff7a464c\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"f06fcae4-eb55-459b-b73f-f017cca38769\",\"attributes\":{\"name\":\"KevinZou\",\"created_at\":\"2023-01-13T21:25:14.138198+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"d5bf7f0a-19b0-11ed-b0df-da7ad0900002\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"fd73328c-c90a-4453-9e2a-e5d40e918ebe\",\"attributes\":{\"name\":\"luis.valini\",\"created_at\":\"2022-06-21T10:53:15.846482+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"3c6c59a9-9f8b-40ad-b7ef-c0f3f1939d57\",\"attributes\":{\"name\":\"pcf-remote-config\",\"created_at\":\"2023-08-02T12:22:46.372973+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"ee9fbb8c-7b52-11eb-9634-da7ad0900002\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"b35e8f9a-a94b-5b20-8ec2-4b76dd2e13e1\",\"attributes\":{\"name\":\"Romain\",\"created_at\":\"2021-04-19T14:01:09.155025+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"589462a7-d1c9-559c-bbda-578b76475cb5\",\"attributes\":{\"name\":\"Sherzod\",\"created_at\":\"2021-04-22T13:21:12.318791+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"6018c832-80a7-11ea-93dd-43183212bc7a\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"14a8e601-703f-4d5c-989c-956599aec3bd\",\"attributes\":{\"name\":\"temporarykey\",\"created_at\":\"2023-03-20T18:39:14.113273+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"d5bf7f0a-19b0-11ed-b0df-da7ad0900002\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"6e93352a-06eb-4101-9bd2-59455a0c6e60\",\"attributes\":{\"name\":\"terraform-config\",\"created_at\":\"2021-12-17T20:38:35.465545+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"180e1ea3-5079-5fb3-a3d2-3a79ebad9f30\",\"attributes\":{\"name\":\"terraform-provider-datadog azp\",\"created_at\":\"2021-04-15T15:33:01.766357+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"cfc2bdbc-1013-4e59-8dc0-c4ac9bff7fe1\",\"attributes\":{\"name\":\"terraform-provider-datadog github-actions\",\"created_at\":\"2022-01-27T21:24:12.483638+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"6104cd8c-fb93-4799-b2f9-6bc65effe94b\",\"attributes\":{\"name\":\"Test-Get_all_application_keys_returns_OK_response-1697462916\",\"created_at\":\"2023-10-16T13:28:36.659625+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"1460be7f-6ac8-4fe4-968c-c4e37f25641a\",\"attributes\":{\"name\":\"Test-Typescript-Get_all_Application_keys_returns_OK_response-1695640119\",\"created_at\":\"2023-09-25T11:08:39.191668+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"4259f047-940b-447d-ae32-7613d30ce87b\",\"attributes\":{\"name\":\"Test-Typescript-Get_an_application_key_returns_OK_response-1695640119\",\"created_at\":\"2023-09-25T11:08:39.638983+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"ee103caa-e8a3-4a31-b4d9-9d1769c4c678\",\"attributes\":{\"name\":\"Test-Typescript-Get_one_Application_key_owned_by_current_user_returns_OK_response-1695640119\",\"created_at\":\"2023-09-25T11:08:40.104889+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}}],\"meta\":{\"page\":{\"total_filtered_count\":32},\"max_allowed_per_user\":1000}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 16 Oct 2023 13:28:36 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys/6104cd8c-fb93-4799-b2f9-6bc65effe94b"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 16 Oct 2023 13:28:36 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Get_all_application_keys_returns_OK_response-1697462916\"},\"type\":\"application_keys\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"6104cd8c-fb93-4799-b2f9-6bc65effe94b\",\"attributes\":{\"name\":\"Test-Get_all_application_keys_returns_OK_response-1697462916\",\"created_at\":\"2023-10-16T13:28:36.659625+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 16 Oct 2023 13:28:36 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/application_keys" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"application_keys\",\"id\":\"fdcdec64-ca51-4208-a259-0405192c6447\",\"attributes\":{\"name\":\"1PASSWORD_SHARED\",\"created_at\":\"2023-10-03T19:27:33.054116+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"1af44bbc-b4f7-44be-a7da-e6b01227f87b\",\"attributes\":{\"name\":\"anton\",\"created_at\":\"2023-01-13T18:28:47.292864+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"79762769-9352-11ed-a082-5215624996c0\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"f5aa63c8-2623-43c1-8b6b-a05276589f47\",\"attributes\":{\"name\":\"Azure Integrations - Datadog Managed - kevin.zou@datadoghq.com\",\"created_at\":\"2023-09-14T21:02:41.220686+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"d5bf7f0a-19b0-11ed-b0df-da7ad0900002\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"2e7607a6-0589-506d-a2eb-031267b12758\",\"attributes\":{\"name\":\"datadog-api-client-go azp\",\"created_at\":\"2021-04-15T15:51:25.012740+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"9550d220-6483-515b-a59c-fb1985ab84af\",\"attributes\":{\"name\":\"datadog-api-client-java azp\",\"created_at\":\"2021-04-15T15:51:06.920975+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"b6c79d32-2a4a-5549-b2d2-f9ca9da5533b\",\"attributes\":{\"name\":\"datadog-api-client-python azp\",\"created_at\":\"2021-04-16T12:36:45.731594+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"3ca848d1-0392-5776-955a-8e46d9bfc1c9\",\"attributes\":{\"name\":\"datadog-api-client-ruby azp\",\"created_at\":\"2021-04-16T07:37:26.812295+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"cdc6cacf-b958-50f7-8a50-bdf3e5b003f4\",\"attributes\":{\"name\":\"datadog-api-client-typescript azp\",\"created_at\":\"2021-04-16T07:52:35.988358+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"85c63381-6392-57db-ab31-2e4772882785\",\"attributes\":{\"name\":\"datadog-api-spec gh\",\"created_at\":\"2021-04-16T11:21:35.770268+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"c35ac549-a8b3-4093-985f-2731bbdbbcd4\",\"attributes\":{\"name\":\"datadog-api-spec Live Validation\",\"created_at\":\"2023-10-04T14:20:53.771922+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"e0c5cf11-00a7-5937-bd91-af665c665af9\",\"attributes\":{\"name\":\"datadog-cloudformation-resources ci\",\"created_at\":\"2021-07-05T15:06:46.010096+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"95f088d2-cd5f-4aaa-920d-95a87f5ebd3d\",\"attributes\":{\"name\":\"datadogpy gh\",\"created_at\":\"2023-05-31T17:27:38.214284+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"59944611-3c53-4f7d-861e-69fd2803263c\",\"attributes\":{\"name\":\"Example-Edit_an_app_key_owned_by_this_service_account_returns_OK_response_1692972901-updated\",\"created_at\":\"2023-08-25T14:15:02.734245+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"c8032247-4351-11ee-8617-0201a2edc5cd\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"30b6d66c-d9c9-4d17-a52c-47a46409899d\",\"attributes\":{\"name\":\"Example-Get_all_Application_keys_returns_OK_response_1692972923\",\"created_at\":\"2023-08-25T14:15:23.703248+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"82df708f-76c6-4fbc-a0e0-9048de05a6e9\",\"attributes\":{\"name\":\"foo-application1\",\"created_at\":\"2023-09-18T17:19:29.760324+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"b231bb6d-e3ee-5fa4-969d-03fea7293d15\",\"attributes\":{\"name\":\"Get app keys\",\"created_at\":\"2021-05-25T09:40:46.767264+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"797166d1-b70f-499d-95dd-be8db25ed7ef\",\"attributes\":{\"name\":\"HantingTestAppKey\",\"created_at\":\"2023-07-17T14:23:52.051345+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"b72434a1-b8ed-11ed-b3c2-da447d6968cb\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"666a9e06-0a49-51aa-9f3a-6d4954d38b9f\",\"attributes\":{\"name\":\"Hippo\",\"created_at\":\"2021-04-15T14:19:16.368956+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"35d26b5f-eba0-11e9-a77a-876976ea2f77\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"bedbcfc2-a1f5-53f4-8da0-912dad42be59\",\"attributes\":{\"name\":\"Jiri\",\"created_at\":\"2021-04-16T10:07:24.951636+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"9a56dfbc-009f-11ea-a77b-0b2eff7a464c\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"f06fcae4-eb55-459b-b73f-f017cca38769\",\"attributes\":{\"name\":\"KevinZou\",\"created_at\":\"2023-01-13T21:25:14.138198+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"d5bf7f0a-19b0-11ed-b0df-da7ad0900002\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"fd73328c-c90a-4453-9e2a-e5d40e918ebe\",\"attributes\":{\"name\":\"luis.valini\",\"created_at\":\"2022-06-21T10:53:15.846482+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"3c6c59a9-9f8b-40ad-b7ef-c0f3f1939d57\",\"attributes\":{\"name\":\"pcf-remote-config\",\"created_at\":\"2023-08-02T12:22:46.372973+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"ee9fbb8c-7b52-11eb-9634-da7ad0900002\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"b35e8f9a-a94b-5b20-8ec2-4b76dd2e13e1\",\"attributes\":{\"name\":\"Romain\",\"created_at\":\"2021-04-19T14:01:09.155025+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"589462a7-d1c9-559c-bbda-578b76475cb5\",\"attributes\":{\"name\":\"Sherzod\",\"created_at\":\"2021-04-22T13:21:12.318791+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"6018c832-80a7-11ea-93dd-43183212bc7a\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"14a8e601-703f-4d5c-989c-956599aec3bd\",\"attributes\":{\"name\":\"temporarykey\",\"created_at\":\"2023-03-20T18:39:14.113273+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"d5bf7f0a-19b0-11ed-b0df-da7ad0900002\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"6e93352a-06eb-4101-9bd2-59455a0c6e60\",\"attributes\":{\"name\":\"terraform-config\",\"created_at\":\"2021-12-17T20:38:35.465545+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"180e1ea3-5079-5fb3-a3d2-3a79ebad9f30\",\"attributes\":{\"name\":\"terraform-provider-datadog azp\",\"created_at\":\"2021-04-15T15:33:01.766357+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"cfc2bdbc-1013-4e59-8dc0-c4ac9bff7fe1\",\"attributes\":{\"name\":\"terraform-provider-datadog github-actions\",\"created_at\":\"2022-01-27T21:24:12.483638+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"6104cd8c-fb93-4799-b2f9-6bc65effe94b\",\"attributes\":{\"name\":\"Test-Get_all_application_keys_returns_OK_response-1697462916\",\"created_at\":\"2023-10-16T13:28:36.659625+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"1460be7f-6ac8-4fe4-968c-c4e37f25641a\",\"attributes\":{\"name\":\"Test-Typescript-Get_all_Application_keys_returns_OK_response-1695640119\",\"created_at\":\"2023-09-25T11:08:39.191668+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"4259f047-940b-447d-ae32-7613d30ce87b\",\"attributes\":{\"name\":\"Test-Typescript-Get_an_application_key_returns_OK_response-1695640119\",\"created_at\":\"2023-09-25T11:08:39.638983+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}},{\"type\":\"application_keys\",\"id\":\"ee103caa-e8a3-4a31-b4d9-9d1769c4c678\",\"attributes\":{\"name\":\"Test-Typescript-Get_one_Application_key_owned_by_current_user_returns_OK_response-1695640119\",\"created_at\":\"2023-09-25T11:08:40.104889+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}}],\"meta\":{\"page\":{\"total_filtered_count\":32},\"max_allowed_per_user\":1000}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 16 Oct 2023 13:28:36 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys/6104cd8c-fb93-4799-b2f9-6bc65effe94b" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 16 Oct 2023 13:28:36 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/key_management/Get-an-application-key-returns-OK-response.json b/tests/scenarios/cassettes/v2/key_management/Get-an-application-key-returns-OK-response.json index 87713f459..ff61a0833 100644 --- a/tests/scenarios/cassettes/v2/key_management/Get-an-application-key-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/key_management/Get-an-application-key-returns-OK-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Get_an_application_key_returns_OK_response-1652349139\"},\"type\":\"application_keys\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys"}, "response": {"body": {"string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"17d9fa70-2830-450c-904b-0720d93722a9\",\"attributes\":{\"name\":\"Test-Get_an_application_key_returns_OK_response-1652349139\",\"created_at\":\"2022-05-12T09:52:20.054892+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:52:19 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/application_keys/17d9fa70-2830-450c-904b-0720d93722a9"}, "response": {"body": {"string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"17d9fa70-2830-450c-904b-0720d93722a9\",\"attributes\":{\"name\":\"Test-Get_an_application_key_returns_OK_response-1652349139\",\"created_at\":\"2022-05-12T09:52:20.054892+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:19 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys/17d9fa70-2830-450c-904b-0720d93722a9"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:52:19 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Get_an_application_key_returns_OK_response-1652349139\"},\"type\":\"application_keys\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"17d9fa70-2830-450c-904b-0720d93722a9\",\"attributes\":{\"name\":\"Test-Get_an_application_key_returns_OK_response-1652349139\",\"created_at\":\"2022-05-12T09:52:20.054892+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:19 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/application_keys/17d9fa70-2830-450c-904b-0720d93722a9" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"17d9fa70-2830-450c-904b-0720d93722a9\",\"attributes\":{\"name\":\"Test-Get_an_application_key_returns_OK_response-1652349139\",\"created_at\":\"2022-05-12T09:52:20.054892+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:19 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys/17d9fa70-2830-450c-904b-0720d93722a9" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:19 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/key_management/Get-one-Application-key-owned-by-current-user-returns-OK-response.json b/tests/scenarios/cassettes/v2/key_management/Get-one-Application-key-owned-by-current-user-returns-OK-response.json index 4c7d4b18d..e2748e75a 100644 --- a/tests/scenarios/cassettes/v2/key_management/Get-one-Application-key-owned-by-current-user-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/key_management/Get-one-Application-key-owned-by-current-user-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Get_one_application_key_owned_by_current_user_returns_OK_response-1697462503\"},\"type\":\"application_keys\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys"}, "response": {"body": {"string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"577b3f55-23d8-44a9-b15c-adff216bbdd0\",\"attributes\":{\"name\":\"Test-Get_one_application_key_owned_by_current_user_returns_OK_response-1697462503\",\"created_at\":\"2023-10-16T13:21:43.802416+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 16 Oct 2023 13:21:43 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys/577b3f55-23d8-44a9-b15c-adff216bbdd0"}, "response": {"body": {"string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"577b3f55-23d8-44a9-b15c-adff216bbdd0\",\"attributes\":{\"name\":\"Test-Get_one_application_key_owned_by_current_user_returns_OK_response-1697462503\",\"created_at\":\"2023-10-16T13:21:43.802416+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}},\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"roles\":{\"data\":[{\"type\":\"roles\",\"id\":\"667cbd82-c7d1-11ec-aad8-da7ad0900002\"},{\"type\":\"roles\",\"id\":\"94172442-be03-11e9-a77a-3b7612558ac1\"}]}}},{\"type\":\"roles\",\"id\":\"667cbd82-c7d1-11ec-aad8-da7ad0900002\",\"attributes\":{\"name\":\"abc\",\"created_at\":\"2022-04-29T15:31:12.318318+00:00\",\"modified_at\":\"2022-04-29T15:31:12.389973+00:00\"}},{\"type\":\"roles\",\"id\":\"94172442-be03-11e9-a77a-3b7612558ac1\",\"attributes\":{\"name\":\"Datadog Admin Role\",\"created_at\":\"2019-08-13T19:50:19.022791+00:00\",\"modified_at\":\"2019-08-13T19:50:19.022791+00:00\"}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 16 Oct 2023 13:21:43 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys/577b3f55-23d8-44a9-b15c-adff216bbdd0"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 16 Oct 2023 13:21:43 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Get_one_application_key_owned_by_current_user_returns_OK_response-1697462503\"},\"type\":\"application_keys\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"577b3f55-23d8-44a9-b15c-adff216bbdd0\",\"attributes\":{\"name\":\"Test-Get_one_application_key_owned_by_current_user_returns_OK_response-1697462503\",\"created_at\":\"2023-10-16T13:21:43.802416+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 16 Oct 2023 13:21:43 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys/577b3f55-23d8-44a9-b15c-adff216bbdd0" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"577b3f55-23d8-44a9-b15c-adff216bbdd0\",\"attributes\":{\"name\":\"Test-Get_one_application_key_owned_by_current_user_returns_OK_response-1697462503\",\"created_at\":\"2023-10-16T13:21:43.802416+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}},\"leak_information\":{\"data\":null}}},\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"created_at\":\"2019-10-02T08:15:39.795051+00:00\",\"modified_at\":\"2020-06-15T12:33:12.884459+00:00\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"roles\":{\"data\":[{\"type\":\"roles\",\"id\":\"667cbd82-c7d1-11ec-aad8-da7ad0900002\"},{\"type\":\"roles\",\"id\":\"94172442-be03-11e9-a77a-3b7612558ac1\"}]}}},{\"type\":\"roles\",\"id\":\"667cbd82-c7d1-11ec-aad8-da7ad0900002\",\"attributes\":{\"name\":\"abc\",\"created_at\":\"2022-04-29T15:31:12.318318+00:00\",\"modified_at\":\"2022-04-29T15:31:12.389973+00:00\"}},{\"type\":\"roles\",\"id\":\"94172442-be03-11e9-a77a-3b7612558ac1\",\"attributes\":{\"name\":\"Datadog Admin Role\",\"created_at\":\"2019-08-13T19:50:19.022791+00:00\",\"modified_at\":\"2019-08-13T19:50:19.022791+00:00\"}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 16 Oct 2023 13:21:43 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/current_user/application_keys/577b3f55-23d8-44a9-b15c-adff216bbdd0" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 16 Oct 2023 13:21:43 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs/Aggregate-compute-events-returns-OK-response.json b/tests/scenarios/cassettes/v2/logs/Aggregate-compute-events-returns-OK-response.json index 320efbb5a..0d6fdca81 100644 --- a/tests/scenarios/cassettes/v2/logs/Aggregate-compute-events-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/logs/Aggregate-compute-events-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"compute\":[{\"aggregation\":\"count\",\"interval\":\"5m\",\"type\":\"timeseries\"}],\"filter\":{\"from\":\"now-15m\",\"indexes\":[\"main\"],\"query\":\"*\",\"to\":\"now\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/logs/analytics/aggregate"}, "response": {"body": {"string": "{\"meta\":{\"status\":\"done\",\"request_id\":\"pddv1ChZ0Y2dJQVlDMVJOYWlYcjNJcDZfSnNnIiwKHJISw_RInEtZkOv0RnvMfFE5pDSf1A5hU7Jf6FISDPKeDBOH5N-0CxRhGA\",\"elapsed\":3},\"data\":{\"buckets\":[{\"computes\":{\"c0\":[{\"value\":1,\"time\":\"2022-01-06T00:40:00.000Z\"},{\"value\":1,\"time\":\"2022-01-06T00:50:00.000Z\"}]},\"by\":{}}]}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:51:50 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"compute\":[{\"aggregation\":\"count\",\"interval\":\"5m\",\"type\":\"timeseries\"}],\"filter\":{\"from\":\"now-15m\",\"indexes\":[\"main\"],\"query\":\"*\",\"to\":\"now\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/logs/analytics/aggregate" + }, + "response": { + "body": { + "string": "{\"meta\":{\"status\":\"done\",\"request_id\":\"pddv1ChZ0Y2dJQVlDMVJOYWlYcjNJcDZfSnNnIiwKHJISw_RInEtZkOv0RnvMfFE5pDSf1A5hU7Jf6FISDPKeDBOH5N-0CxRhGA\",\"elapsed\":3},\"data\":{\"buckets\":[{\"computes\":{\"c0\":[{\"value\":1,\"time\":\"2022-01-06T00:40:00.000Z\"},{\"value\":1,\"time\":\"2022-01-06T00:50:00.000Z\"}]},\"by\":{}}]}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:51:50 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs/Aggregate-compute-events-with-group-by-returns-OK-response.json b/tests/scenarios/cassettes/v2/logs/Aggregate-compute-events-with-group-by-returns-OK-response.json index 95d469458..0f4f4e1b7 100644 --- a/tests/scenarios/cassettes/v2/logs/Aggregate-compute-events-with-group-by-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/logs/Aggregate-compute-events-with-group-by-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"compute\":[{\"aggregation\":\"count\",\"interval\":\"5m\",\"type\":\"timeseries\"}],\"filter\":{\"from\":\"now-15m\",\"indexes\":[\"main\"],\"query\":\"*\",\"to\":\"now\"},\"group_by\":[{\"facet\":\"host\",\"missing\":\"miss\",\"sort\":{\"aggregation\":\"pc90\",\"metric\":\"@duration\",\"order\":\"asc\",\"type\":\"measure\"},\"total\":\"recall\"}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/logs/analytics/aggregate"}, "response": {"body": {"string": "{\"meta\":{\"status\":\"done\",\"request_id\":\"pddv1ChZjajVGdnloOFRydURjT01RakZPRGJRIiwKHAubHcvWGIRKaJwUb1Qgc-peEYojhMk6Z3opAHYSDOMLcdT0IUoqNWaYdA\",\"elapsed\":10},\"data\":{\"buckets\":[{\"computes\":{\"c0\":[{\"value\":28,\"time\":\"2022-02-23T10:40:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:45:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:50:00.000Z\"},{\"value\":42,\"time\":\"2022-02-23T10:55:00.000Z\"}]},\"by\":{\"host\":\"07266d86-ec5b-40cb-4060-e4d9\"}},{\"computes\":{\"c0\":[{\"value\":32,\"time\":\"2022-02-23T10:40:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:45:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:50:00.000Z\"},{\"value\":40,\"time\":\"2022-02-23T10:55:00.000Z\"}]},\"by\":{\"host\":\"4a5a50c3-5d34-4009-74aa-38d8\"}},{\"computes\":{\"c0\":[{\"value\":28,\"time\":\"2022-02-23T10:40:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:45:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:50:00.000Z\"},{\"value\":44,\"time\":\"2022-02-23T10:55:00.000Z\"}]},\"by\":{\"host\":\"3a1410f9-5b3b-44a8-52bc-5269\"}},{\"computes\":{\"c0\":[{\"value\":32,\"time\":\"2022-02-23T10:40:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:45:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:50:00.000Z\"},{\"value\":42,\"time\":\"2022-02-23T10:55:00.000Z\"}]},\"by\":{\"host\":\"e17b600e-a2cf-4d23-4eb2-e648\"}},{\"computes\":{\"c0\":[{\"value\":28,\"time\":\"2022-02-23T10:40:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:45:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:50:00.000Z\"},{\"value\":44,\"time\":\"2022-02-23T10:55:00.000Z\"}]},\"by\":{\"host\":\"3a6c8709-df68-49b2-5992-351d\"}},{\"computes\":{\"c0\":[{\"value\":28,\"time\":\"2022-02-23T10:40:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:45:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:50:00.000Z\"},{\"value\":42,\"time\":\"2022-02-23T10:55:00.000Z\"}]},\"by\":{\"host\":\"f301493f-d994-4237-4a99-b382\"}},{\"computes\":{\"c0\":[{\"value\":28,\"time\":\"2022-02-23T10:40:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:45:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:50:00.000Z\"},{\"value\":42,\"time\":\"2022-02-23T10:55:00.000Z\"}]},\"by\":{\"host\":\"4d77dd12-b3be-41fd-753b-fcbb\"}},{\"computes\":{\"c0\":[{\"value\":32,\"time\":\"2022-02-23T10:40:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:45:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:50:00.000Z\"},{\"value\":40,\"time\":\"2022-02-23T10:55:00.000Z\"}]},\"by\":{\"host\":\"2961e831-36b5-4c2b-5853-b6d5\"}},{\"computes\":{\"c0\":[{\"value\":32,\"time\":\"2022-02-23T10:40:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:45:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:50:00.000Z\"},{\"value\":42,\"time\":\"2022-02-23T10:55:00.000Z\"}]},\"by\":{\"host\":\"cec04667-4f47-4d64-4bf1-b449\"}},{\"computes\":{\"c0\":[{\"value\":32,\"time\":\"2022-02-23T10:40:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:45:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:50:00.000Z\"},{\"value\":42,\"time\":\"2022-02-23T10:55:00.000Z\"}]},\"by\":{\"host\":\"352e5c4f-9d7d-4b5e-414f-4199\"}},{\"computes\":{\"c0\":[{\"value\":332,\"time\":\"2022-02-23T10:40:00.000Z\"},{\"value\":880,\"time\":\"2022-02-23T10:45:00.000Z\"},{\"value\":880,\"time\":\"2022-02-23T10:50:00.000Z\"},{\"value\":460,\"time\":\"2022-02-23T10:55:00.000Z\"}]},\"by\":{\"host\":\"recall\"}}]}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 23 Feb 2022 10:58:05 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"compute\":[{\"aggregation\":\"count\",\"interval\":\"5m\",\"type\":\"timeseries\"}],\"filter\":{\"from\":\"now-15m\",\"indexes\":[\"main\"],\"query\":\"*\",\"to\":\"now\"},\"group_by\":[{\"facet\":\"host\",\"missing\":\"miss\",\"sort\":{\"aggregation\":\"pc90\",\"metric\":\"@duration\",\"order\":\"asc\",\"type\":\"measure\"},\"total\":\"recall\"}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/logs/analytics/aggregate" + }, + "response": { + "body": { + "string": "{\"meta\":{\"status\":\"done\",\"request_id\":\"pddv1ChZjajVGdnloOFRydURjT01RakZPRGJRIiwKHAubHcvWGIRKaJwUb1Qgc-peEYojhMk6Z3opAHYSDOMLcdT0IUoqNWaYdA\",\"elapsed\":10},\"data\":{\"buckets\":[{\"computes\":{\"c0\":[{\"value\":28,\"time\":\"2022-02-23T10:40:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:45:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:50:00.000Z\"},{\"value\":42,\"time\":\"2022-02-23T10:55:00.000Z\"}]},\"by\":{\"host\":\"07266d86-ec5b-40cb-4060-e4d9\"}},{\"computes\":{\"c0\":[{\"value\":32,\"time\":\"2022-02-23T10:40:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:45:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:50:00.000Z\"},{\"value\":40,\"time\":\"2022-02-23T10:55:00.000Z\"}]},\"by\":{\"host\":\"4a5a50c3-5d34-4009-74aa-38d8\"}},{\"computes\":{\"c0\":[{\"value\":28,\"time\":\"2022-02-23T10:40:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:45:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:50:00.000Z\"},{\"value\":44,\"time\":\"2022-02-23T10:55:00.000Z\"}]},\"by\":{\"host\":\"3a1410f9-5b3b-44a8-52bc-5269\"}},{\"computes\":{\"c0\":[{\"value\":32,\"time\":\"2022-02-23T10:40:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:45:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:50:00.000Z\"},{\"value\":42,\"time\":\"2022-02-23T10:55:00.000Z\"}]},\"by\":{\"host\":\"e17b600e-a2cf-4d23-4eb2-e648\"}},{\"computes\":{\"c0\":[{\"value\":28,\"time\":\"2022-02-23T10:40:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:45:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:50:00.000Z\"},{\"value\":44,\"time\":\"2022-02-23T10:55:00.000Z\"}]},\"by\":{\"host\":\"3a6c8709-df68-49b2-5992-351d\"}},{\"computes\":{\"c0\":[{\"value\":28,\"time\":\"2022-02-23T10:40:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:45:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:50:00.000Z\"},{\"value\":42,\"time\":\"2022-02-23T10:55:00.000Z\"}]},\"by\":{\"host\":\"f301493f-d994-4237-4a99-b382\"}},{\"computes\":{\"c0\":[{\"value\":28,\"time\":\"2022-02-23T10:40:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:45:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:50:00.000Z\"},{\"value\":42,\"time\":\"2022-02-23T10:55:00.000Z\"}]},\"by\":{\"host\":\"4d77dd12-b3be-41fd-753b-fcbb\"}},{\"computes\":{\"c0\":[{\"value\":32,\"time\":\"2022-02-23T10:40:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:45:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:50:00.000Z\"},{\"value\":40,\"time\":\"2022-02-23T10:55:00.000Z\"}]},\"by\":{\"host\":\"2961e831-36b5-4c2b-5853-b6d5\"}},{\"computes\":{\"c0\":[{\"value\":32,\"time\":\"2022-02-23T10:40:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:45:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:50:00.000Z\"},{\"value\":42,\"time\":\"2022-02-23T10:55:00.000Z\"}]},\"by\":{\"host\":\"cec04667-4f47-4d64-4bf1-b449\"}},{\"computes\":{\"c0\":[{\"value\":32,\"time\":\"2022-02-23T10:40:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:45:00.000Z\"},{\"value\":80,\"time\":\"2022-02-23T10:50:00.000Z\"},{\"value\":42,\"time\":\"2022-02-23T10:55:00.000Z\"}]},\"by\":{\"host\":\"352e5c4f-9d7d-4b5e-414f-4199\"}},{\"computes\":{\"c0\":[{\"value\":332,\"time\":\"2022-02-23T10:40:00.000Z\"},{\"value\":880,\"time\":\"2022-02-23T10:45:00.000Z\"},{\"value\":880,\"time\":\"2022-02-23T10:50:00.000Z\"},{\"value\":460,\"time\":\"2022-02-23T10:55:00.000Z\"}]},\"by\":{\"host\":\"recall\"}}]}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 23 Feb 2022 10:58:05 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs/Aggregate-events-returns-OK-response.json b/tests/scenarios/cassettes/v2/logs/Aggregate-events-returns-OK-response.json index d399b12ae..c6b5fa764 100644 --- a/tests/scenarios/cassettes/v2/logs/Aggregate-events-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/logs/Aggregate-events-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"filter\":{\"from\":\"now-15m\",\"indexes\":[\"main\"],\"query\":\"*\",\"to\":\"now\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/logs/analytics/aggregate"}, "response": {"body": {"string": "{\"meta\":{\"status\":\"done\",\"request_id\":\"pddv1ChZqNnEtQ2hTU1M5dTYxbWtrUGtBMGFBIi0KHVny0iHoClVAOb_xrSWcwl_hHz3QjhOb8cLTslhGEgz4EiXPOZ8kQFQe2Zw\",\"elapsed\":5},\"data\":{\"buckets\":[{\"computes\":{\"c0\":2},\"by\":{}}]}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:51:50 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"filter\":{\"from\":\"now-15m\",\"indexes\":[\"main\"],\"query\":\"*\",\"to\":\"now\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/logs/analytics/aggregate" + }, + "response": { + "body": { + "string": "{\"meta\":{\"status\":\"done\",\"request_id\":\"pddv1ChZqNnEtQ2hTU1M5dTYxbWtrUGtBMGFBIi0KHVny0iHoClVAOb_xrSWcwl_hHz3QjhOb8cLTslhGEgz4EiXPOZ8kQFQe2Zw\",\"elapsed\":5},\"data\":{\"buckets\":[{\"computes\":{\"c0\":2},\"by\":{}}]}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:51:50 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs/Get-a-list-of-logs-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v2/logs/Get-a-list-of-logs-returns-OK-response-with-pagination.json index 6bd1d21b6..499aeb84d 100644 --- a/tests/scenarios/cassettes/v2/logs/Get-a-list-of-logs-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v2/logs/Get-a-list-of-logs-returns-OK-response-with-pagination.json @@ -1 +1,61 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/logs/events?page%5Blimit%5D=2"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFkTDlRUW1jT2g2Z0FBQUFCQldVRmtUQzFPUzBGQlFucExkREpLZFZOYVlrTjNRVVEifQ\"}},\"data\":[{\"attributes\":{\"status\":\"info\",\"timestamp\":\"2022-04-12T09:51:55.414Z\",\"host\":\"fe74f1c9-b3bb-45a9-6610-ea12\",\"message\":\"- -> /\",\"tags\":[\"source:sinatra\",\"env:integrations-lab\",\"source:sinatra\",\"application_id:a7bebd67-1991-4e9e-8d44-399acf2f13e8\",\"application_name:logs-backend-demo\",\"cf_instance_ip:10.0.40.5\",\"env:integrations-lab\",\"instance_index:0\",\"space_name:system\",\"uri:logs-backend-demo.apps.integrations-lab.devenv.dog\",\"datadog.pipelines:false\"]},\"type\":\"log\",\"id\":\"AQAAAYAdL9QWY-VoZwAAAABBWUFkTDlZNEFBQ3RpUllvSWd4TWlRQUQ\"},{\"attributes\":{\"status\":\"info\",\"timestamp\":\"2022-04-12T09:51:55.408Z\",\"host\":\"59fe9540-24f4-48c4-4fc4-1c34\",\"message\":\"- -> /\",\"tags\":[\"source:sinatra\",\"env:integrations-lab\",\"source:sinatra\",\"application_id:41256269-671b-4d79-91d5-3bf848376425\",\"application_name:test-space-org-cc\",\"cf_instance_ip:10.0.40.11\",\"env:integrations-lab\",\"instance_index:1\",\"space_name:datadog-application-monitoring-space\",\"uri:test-space-org-cc.apps.integrations-lab.devenv.dog\",\"datadog.pipelines:false\"]},\"type\":\"log\",\"id\":\"AQAAAYAdL9QQmcOh6gAAAABBWUFkTC1OS0FBQnpLdDJKdVNaYkN3QUQ\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/logs/events?page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFkTDlRUW1jT2g2Z0FBQUFCQldVRmtUQzFPUzBGQlFucExkREpLZFZOYVlrTjNRVVEifQ&page%5Blimit%5D=2\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 12 Apr 2022 09:52:05 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/logs/events?page%5Blimit%5D=2&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFkTDlRUW1jT2g2Z0FBQUFCQldVRmtUQzFPUzBGQlFucExkREpLZFZOYVlrTjNRVVEifQ"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFkTDlKNG1jT2g2QUFBQUFCQldVRmtUQzFPUzBGQlFucExkREpLZFZOYVlrTjNRVUkifQ\"}},\"data\":[{\"attributes\":{\"status\":\"ok\",\"tags\":[\"source:sinatra\",\"env:integrations-lab\",\"source:sinatra\",\"application_id:a7bebd67-1991-4e9e-8d44-399acf2f13e8\",\"application_name:logs-backend-demo\",\"cf_instance_ip:10.0.40.5\",\"env:integrations-lab\",\"instance_index:0\",\"space_name:system\",\"uri:logs-backend-demo.apps.integrations-lab.devenv.dog\"],\"timestamp\":\"2022-04-12T09:51:55.000Z\",\"host\":\"fe74f1c9-b3bb-45a9-6610-ea12\",\"attributes\":{\"duration\":1800000.0,\"http\":{\"url_details\":{\"path\":\"/\"},\"status_category\":\"OK\",\"url\":\"/\",\"status_code\":200,\"version\":\"1.1\",\"method\":\"GET\"},\"network\":{\"client\":{\"ip\":\"169.254.0.1\"},\"bytes_written\":117},\"date_access\":1649757115000},\"message\":\"169.254.0.1 - - [12/Apr/2022:09:51:55 +0000] \\\"GET / HTTP/1.1\\\" 200 117 0.0018\"},\"type\":\"log\",\"id\":\"AQAAAYAdL9J4Y-VoZQAAAABBWUFkTDlZNEFBQ3RpUllvSWd4TWlRQUI\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/logs/events?page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFkTDlKNG1jT2g2QUFBQUFCQldVRmtUQzFPUzBGQlFucExkREpLZFZOYVlrTjNRVUkifQ&page%5Blimit%5D=2\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 12 Apr 2022 09:52:05 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/logs/events?page%5Blimit%5D=2" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFkTDlRUW1jT2g2Z0FBQUFCQldVRmtUQzFPUzBGQlFucExkREpLZFZOYVlrTjNRVVEifQ\"}},\"data\":[{\"attributes\":{\"status\":\"info\",\"timestamp\":\"2022-04-12T09:51:55.414Z\",\"host\":\"fe74f1c9-b3bb-45a9-6610-ea12\",\"message\":\"- -> /\",\"tags\":[\"source:sinatra\",\"env:integrations-lab\",\"source:sinatra\",\"application_id:a7bebd67-1991-4e9e-8d44-399acf2f13e8\",\"application_name:logs-backend-demo\",\"cf_instance_ip:10.0.40.5\",\"env:integrations-lab\",\"instance_index:0\",\"space_name:system\",\"uri:logs-backend-demo.apps.integrations-lab.devenv.dog\",\"datadog.pipelines:false\"]},\"type\":\"log\",\"id\":\"AQAAAYAdL9QWY-VoZwAAAABBWUFkTDlZNEFBQ3RpUllvSWd4TWlRQUQ\"},{\"attributes\":{\"status\":\"info\",\"timestamp\":\"2022-04-12T09:51:55.408Z\",\"host\":\"59fe9540-24f4-48c4-4fc4-1c34\",\"message\":\"- -> /\",\"tags\":[\"source:sinatra\",\"env:integrations-lab\",\"source:sinatra\",\"application_id:41256269-671b-4d79-91d5-3bf848376425\",\"application_name:test-space-org-cc\",\"cf_instance_ip:10.0.40.11\",\"env:integrations-lab\",\"instance_index:1\",\"space_name:datadog-application-monitoring-space\",\"uri:test-space-org-cc.apps.integrations-lab.devenv.dog\",\"datadog.pipelines:false\"]},\"type\":\"log\",\"id\":\"AQAAAYAdL9QQmcOh6gAAAABBWUFkTC1OS0FBQnpLdDJKdVNaYkN3QUQ\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/logs/events?page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFkTDlRUW1jT2g2Z0FBQUFCQldVRmtUQzFPUzBGQlFucExkREpLZFZOYVlrTjNRVVEifQ&page%5Blimit%5D=2\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 12 Apr 2022 09:52:05 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/logs/events?page%5Blimit%5D=2&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFkTDlRUW1jT2g2Z0FBQUFCQldVRmtUQzFPUzBGQlFucExkREpLZFZOYVlrTjNRVVEifQ" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFkTDlKNG1jT2g2QUFBQUFCQldVRmtUQzFPUzBGQlFucExkREpLZFZOYVlrTjNRVUkifQ\"}},\"data\":[{\"attributes\":{\"status\":\"ok\",\"tags\":[\"source:sinatra\",\"env:integrations-lab\",\"source:sinatra\",\"application_id:a7bebd67-1991-4e9e-8d44-399acf2f13e8\",\"application_name:logs-backend-demo\",\"cf_instance_ip:10.0.40.5\",\"env:integrations-lab\",\"instance_index:0\",\"space_name:system\",\"uri:logs-backend-demo.apps.integrations-lab.devenv.dog\"],\"timestamp\":\"2022-04-12T09:51:55.000Z\",\"host\":\"fe74f1c9-b3bb-45a9-6610-ea12\",\"attributes\":{\"duration\":1800000.0,\"http\":{\"url_details\":{\"path\":\"/\"},\"status_category\":\"OK\",\"url\":\"/\",\"status_code\":200,\"version\":\"1.1\",\"method\":\"GET\"},\"network\":{\"client\":{\"ip\":\"169.254.0.1\"},\"bytes_written\":117},\"date_access\":1649757115000},\"message\":\"169.254.0.1 - - [12/Apr/2022:09:51:55 +0000] \\\"GET / HTTP/1.1\\\" 200 117 0.0018\"},\"type\":\"log\",\"id\":\"AQAAAYAdL9J4Y-VoZQAAAABBWUFkTDlZNEFBQ3RpUllvSWd4TWlRQUI\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/logs/events?page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFkTDlKNG1jT2g2QUFBQUFCQldVRmtUQzFPUzBGQlFucExkREpLZFZOYVlrTjNRVUkifQ&page%5Blimit%5D=2\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 12 Apr 2022 09:52:05 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs/Get-a-quick-list-of-logs-returns-OK-response.json b/tests/scenarios/cassettes/v2/logs/Get-a-quick-list-of-logs-returns-OK-response.json index 2c5c3a1ca..3d3f40670 100644 --- a/tests/scenarios/cassettes/v2/logs/Get-a-quick-list-of-logs-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/logs/Get-a-quick-list-of-logs-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/logs/events?filter%5Bquery%5D=datadog-agent&filter%5Bindexes%5D=main&filter%5Bfrom%5D=2020-09-17T11%3A48%3A36%2B01%3A00&filter%5Bto%5D=2020-09-17T12%3A48%3A36%2B01%3A00&page%5Blimit%5D=5"}, "response": {"body": {"string": "{\"data\":[],\"meta\":{\"elapsed\":0,\"request_id\":\"pddv1ChZVZjdFSUNKdlM3LVBKNXNPcjR6R1hnIiwKHP4qJC1KWavJCGIvcezlUg3AhhLxU4JfitQ_QFESDFVjhmcEEEIN8NN7KA\",\"status\":\"done\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 05 Jul 2023 20:27:06 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/logs/events?filter%5Bquery%5D=datadog-agent&filter%5Bindexes%5D=main&filter%5Bfrom%5D=2020-09-17T11%3A48%3A36%2B01%3A00&filter%5Bto%5D=2020-09-17T12%3A48%3A36%2B01%3A00&page%5Blimit%5D=5" + }, + "response": { + "body": { + "string": "{\"data\":[],\"meta\":{\"elapsed\":0,\"request_id\":\"pddv1ChZVZjdFSUNKdlM3LVBKNXNPcjR6R1hnIiwKHP4qJC1KWavJCGIvcezlUg3AhhLxU4JfitQ_QFESDFVjhmcEEEIN8NN7KA\",\"status\":\"done\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 05 Jul 2023 20:27:06 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs/Search-logs-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v2/logs/Search-logs-returns-OK-response-with-pagination.json index f9c97e83c..43d272fef 100644 --- a/tests/scenarios/cassettes/v2/logs/Search-logs-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v2/logs/Search-logs-returns-OK-response-with-pagination.json @@ -1 +1,73 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"filter\":{\"from\":\"now-15m\",\"indexes\":[\"main\"],\"to\":\"now\"},\"options\":{\"timezone\":\"GMT\"},\"page\":{\"limit\":2},\"sort\":\"timestamp\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/logs/events/search"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFaZGJvSjdkR3dOZ0FBQUFCQldVRmFaR0p5TVVGQlEwczRPRU4zWW1aMVVESlJRVUUifQ\"}},\"data\":[{\"attributes\":{\"status\":\"ok\",\"tags\":[\"source:sinatra\",\"env:integrations-lab\",\"source:sinatra\",\"application_id:41256269-671b-4d79-91d5-3bf848376425\",\"application_name:test-space-org-cc\",\"cf_instance_ip:10.0.40.5\",\"env:integrations-lab\",\"instance_index:0\",\"space_name:datadog-application-monitoring-space\",\"uri:test-space-org-cc.apps.integrations-lab.devenv.dog\"],\"timestamp\":\"2022-04-11T16:29:47.000Z\",\"host\":\"05f9b9df-ae45-4c8b-66bf-e24c\",\"attributes\":{\"duration\":2700000.0,\"http\":{\"url_details\":{\"path\":\"/\"},\"status_category\":\"OK\",\"url\":\"/\",\"status_code\":200,\"version\":\"1.1\",\"method\":\"GET\"},\"network\":{\"client\":{\"ip\":\"169.254.0.1\"},\"bytes_written\":117},\"date_access\":1649694587000},\"message\":\"169.254.0.1 - - [11/Apr/2022:16:29:47 +0000] \\\"GET / HTTP/1.1\\\" 200 117 0.0027\"},\"type\":\"log\",\"id\":\"AQAAAYAZdbh47dGwNwAAAABBWUFaZGJyMUFBQ0s4OEN3YmZ1UDJRQUI\"},{\"attributes\":{\"status\":\"info\",\"timestamp\":\"2022-04-11T16:29:47.401Z\",\"host\":\"05f9b9df-ae45-4c8b-66bf-e24c\",\"message\":\"I, [2022-04-11T16:29:47.400621 #14] INFO -- : Index page hit\",\"tags\":[\"source:sinatra\",\"env:integrations-lab\",\"source:sinatra\",\"application_id:41256269-671b-4d79-91d5-3bf848376425\",\"application_name:test-space-org-cc\",\"cf_instance_ip:10.0.40.5\",\"env:integrations-lab\",\"instance_index:0\",\"space_name:datadog-application-monitoring-space\",\"uri:test-space-org-cc.apps.integrations-lab.devenv.dog\",\"datadog.pipelines:false\"]},\"type\":\"log\",\"id\":\"AQAAAYAZdboJ7dGwNgAAAABBWUFaZGJyMUFBQ0s4OEN3YmZ1UDJRQUE\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/logs/events?sort=timestamp&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFaZGJvSjdkR3dOZ0FBQUFCQldVRmFaR0p5TVVGQlEwczRPRU4zWW1aMVVESlJRVUUifQ&filter%5Bfrom%5D=now-15m&filter%5Bindexes%5D=main&page%5Blimit%5D=2\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 11 Apr 2022 16:44:42 GMT"}, {"request": {"body": {"string": "{\"filter\":{\"from\":\"now-15m\",\"indexes\":[\"main\"],\"to\":\"now\"},\"options\":{\"timezone\":\"GMT\"},\"page\":{\"cursor\":\"eyJhZnRlciI6IkFRQUFBWUFaZGJvSjdkR3dOZ0FBQUFCQldVRmFaR0p5TVVGQlEwczRPRU4zWW1aMVVESlJRVUUifQ\",\"limit\":2},\"sort\":\"timestamp\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/logs/events/search"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFaZGJvSzdkR3dPUUFBQUFCQldVRmFaR0p5TVVGQlEwczRPRU4zWW1aMVVESlJRVVEifQ\"}},\"data\":[{\"attributes\":{\"status\":\"info\",\"timestamp\":\"2022-04-11T16:29:47.402Z\",\"host\":\"05f9b9df-ae45-4c8b-66bf-e24c\",\"message\":\"169.254.0.1 - - [11/Apr/2022:16:29:47 UTC] \\\"GET / HTTP/1.1\\\" 200 117\",\"tags\":[\"source:sinatra\",\"env:integrations-lab\",\"source:sinatra\",\"application_id:41256269-671b-4d79-91d5-3bf848376425\",\"application_name:test-space-org-cc\",\"cf_instance_ip:10.0.40.5\",\"env:integrations-lab\",\"instance_index:0\",\"space_name:datadog-application-monitoring-space\",\"uri:test-space-org-cc.apps.integrations-lab.devenv.dog\",\"datadog.pipelines:false\"]},\"type\":\"log\",\"id\":\"AQAAAYAZdboK7dGwOAAAAABBWUFaZGJyMUFBQ0s4OEN3YmZ1UDJRQUM\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/logs/events?sort=timestamp&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFaZGJvSzdkR3dPUUFBQUFCQldVRmFaR0p5TVVGQlEwczRPRU4zWW1aMVVESlJRVVEifQ&filter%5Bfrom%5D=now-15m&filter%5Bindexes%5D=main&page%5Blimit%5D=2\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 11 Apr 2022 16:44:42 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"filter\":{\"from\":\"now-15m\",\"indexes\":[\"main\"],\"to\":\"now\"},\"options\":{\"timezone\":\"GMT\"},\"page\":{\"limit\":2},\"sort\":\"timestamp\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/logs/events/search" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFaZGJvSjdkR3dOZ0FBQUFCQldVRmFaR0p5TVVGQlEwczRPRU4zWW1aMVVESlJRVUUifQ\"}},\"data\":[{\"attributes\":{\"status\":\"ok\",\"tags\":[\"source:sinatra\",\"env:integrations-lab\",\"source:sinatra\",\"application_id:41256269-671b-4d79-91d5-3bf848376425\",\"application_name:test-space-org-cc\",\"cf_instance_ip:10.0.40.5\",\"env:integrations-lab\",\"instance_index:0\",\"space_name:datadog-application-monitoring-space\",\"uri:test-space-org-cc.apps.integrations-lab.devenv.dog\"],\"timestamp\":\"2022-04-11T16:29:47.000Z\",\"host\":\"05f9b9df-ae45-4c8b-66bf-e24c\",\"attributes\":{\"duration\":2700000.0,\"http\":{\"url_details\":{\"path\":\"/\"},\"status_category\":\"OK\",\"url\":\"/\",\"status_code\":200,\"version\":\"1.1\",\"method\":\"GET\"},\"network\":{\"client\":{\"ip\":\"169.254.0.1\"},\"bytes_written\":117},\"date_access\":1649694587000},\"message\":\"169.254.0.1 - - [11/Apr/2022:16:29:47 +0000] \\\"GET / HTTP/1.1\\\" 200 117 0.0027\"},\"type\":\"log\",\"id\":\"AQAAAYAZdbh47dGwNwAAAABBWUFaZGJyMUFBQ0s4OEN3YmZ1UDJRQUI\"},{\"attributes\":{\"status\":\"info\",\"timestamp\":\"2022-04-11T16:29:47.401Z\",\"host\":\"05f9b9df-ae45-4c8b-66bf-e24c\",\"message\":\"I, [2022-04-11T16:29:47.400621 #14] INFO -- : Index page hit\",\"tags\":[\"source:sinatra\",\"env:integrations-lab\",\"source:sinatra\",\"application_id:41256269-671b-4d79-91d5-3bf848376425\",\"application_name:test-space-org-cc\",\"cf_instance_ip:10.0.40.5\",\"env:integrations-lab\",\"instance_index:0\",\"space_name:datadog-application-monitoring-space\",\"uri:test-space-org-cc.apps.integrations-lab.devenv.dog\",\"datadog.pipelines:false\"]},\"type\":\"log\",\"id\":\"AQAAAYAZdboJ7dGwNgAAAABBWUFaZGJyMUFBQ0s4OEN3YmZ1UDJRQUE\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/logs/events?sort=timestamp&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFaZGJvSjdkR3dOZ0FBQUFCQldVRmFaR0p5TVVGQlEwczRPRU4zWW1aMVVESlJRVUUifQ&filter%5Bfrom%5D=now-15m&filter%5Bindexes%5D=main&page%5Blimit%5D=2\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 11 Apr 2022 16:44:42 GMT" + }, + { + "request": { + "body": { + "string": "{\"filter\":{\"from\":\"now-15m\",\"indexes\":[\"main\"],\"to\":\"now\"},\"options\":{\"timezone\":\"GMT\"},\"page\":{\"cursor\":\"eyJhZnRlciI6IkFRQUFBWUFaZGJvSjdkR3dOZ0FBQUFCQldVRmFaR0p5TVVGQlEwczRPRU4zWW1aMVVESlJRVUUifQ\",\"limit\":2},\"sort\":\"timestamp\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/logs/events/search" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFaZGJvSzdkR3dPUUFBQUFCQldVRmFaR0p5TVVGQlEwczRPRU4zWW1aMVVESlJRVVEifQ\"}},\"data\":[{\"attributes\":{\"status\":\"info\",\"timestamp\":\"2022-04-11T16:29:47.402Z\",\"host\":\"05f9b9df-ae45-4c8b-66bf-e24c\",\"message\":\"169.254.0.1 - - [11/Apr/2022:16:29:47 UTC] \\\"GET / HTTP/1.1\\\" 200 117\",\"tags\":[\"source:sinatra\",\"env:integrations-lab\",\"source:sinatra\",\"application_id:41256269-671b-4d79-91d5-3bf848376425\",\"application_name:test-space-org-cc\",\"cf_instance_ip:10.0.40.5\",\"env:integrations-lab\",\"instance_index:0\",\"space_name:datadog-application-monitoring-space\",\"uri:test-space-org-cc.apps.integrations-lab.devenv.dog\",\"datadog.pipelines:false\"]},\"type\":\"log\",\"id\":\"AQAAAYAZdboK7dGwOAAAAABBWUFaZGJyMUFBQ0s4OEN3YmZ1UDJRQUM\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/logs/events?sort=timestamp&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFaZGJvSzdkR3dPUUFBQUFCQldVRmFaR0p5TVVGQlEwczRPRU4zWW1aMVVESlJRVVEifQ&filter%5Bfrom%5D=now-15m&filter%5Bindexes%5D=main&page%5Blimit%5D=2\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 11 Apr 2022 16:44:42 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs/Search-logs-returns-OK-response.json b/tests/scenarios/cassettes/v2/logs/Search-logs-returns-OK-response.json index d511d8ffd..0ccd99bee 100644 --- a/tests/scenarios/cassettes/v2/logs/Search-logs-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/logs/Search-logs-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"filter\":{\"from\":\"2020-09-17T11:48:36+01:00\",\"indexes\":[\"main\"],\"query\":\"datadog-agent\",\"to\":\"2020-09-17T12:48:36+01:00\"},\"page\":{\"limit\":5},\"sort\":\"timestamp\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/logs/events/search"}, "response": {"body": {"string": "{\"data\":[]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:51:50 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"filter\":{\"from\":\"2020-09-17T11:48:36+01:00\",\"indexes\":[\"main\"],\"query\":\"datadog-agent\",\"to\":\"2020-09-17T12:48:36+01:00\"},\"page\":{\"limit\":5},\"sort\":\"timestamp\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/logs/events/search" + }, + "response": { + "body": { + "string": "{\"data\":[]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:51:50 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs/Send-logs-returns-Request-accepted-for-processing-always-202-empty-JSON-response.json b/tests/scenarios/cassettes/v2/logs/Send-logs-returns-Request-accepted-for-processing-always-202-empty-JSON-response.json index 91689e9aa..08c6d2375 100644 --- a/tests/scenarios/cassettes/v2/logs/Send-logs-returns-Request-accepted-for-processing-always-202-empty-JSON-response.json +++ b/tests/scenarios/cassettes/v2/logs/Send-logs-returns-Request-accepted-for-processing-always-202-empty-JSON-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "[{\"ddsource\":\"nginx\",\"ddtags\":\"env:staging,version:5.1\",\"hostname\":\"i-012345678\",\"message\":\"2019-11-19T14:37:58,995 INFO [process.name][20081] Hello World\",\"service\":\"payment\",\"status\":\"info\"}]", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://http-intake.logs.datadoghq.com/api/v2/logs"}, "response": {"body": {"string": "{}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 202, "message": "Accepted"}}, "recorded_at": "Thu, 13 Apr 2023 18:28:45 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "[{\"ddsource\":\"nginx\",\"ddtags\":\"env:staging,version:5.1\",\"hostname\":\"i-012345678\",\"message\":\"2019-11-19T14:37:58,995 INFO [process.name][20081] Hello World\",\"service\":\"payment\",\"status\":\"info\"}]", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://http-intake.logs.datadoghq.com/api/v2/logs" + }, + "response": { + "body": { + "string": "{}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 202, + "message": "Accepted" + } + }, + "recorded_at": "Thu, 13 Apr 2023 18:28:45 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_custom_destinations/Create-a-Basic-HTTP-custom-destination-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/logs_custom_destinations/Create-a-Basic-HTTP-custom-destination-returns-OK-response.frozen new file mode 100644 index 000000000..14b4198db --- /dev/null +++ b/tests/scenarios/cassettes/v2/logs_custom_destinations/Create-a-Basic-HTTP-custom-destination-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-03-12T09:20:07.582Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_custom_destinations/Create-a-Basic-HTTP-custom-destination-returns-OK-response.json b/tests/scenarios/cassettes/v2/logs_custom_destinations/Create-a-Basic-HTTP-custom-destination-returns-OK-response.json new file mode 100644 index 000000000..96cd86704 --- /dev/null +++ b/tests/scenarios/cassettes/v2/logs_custom_destinations/Create-a-Basic-HTTP-custom-destination-returns-OK-response.json @@ -0,0 +1,67 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":false,\"forward_tags\":false,\"forward_tags_restriction_list\":[\"datacenter\",\"host\"],\"forward_tags_restriction_list_type\":\"ALLOW_LIST\",\"forwarder_destination\":{\"auth\":{\"password\":\"datadog-custom-destination-password\",\"type\":\"basic\",\"username\":\"datadog-custom-destination-username\"},\"endpoint\":\"https://example.com\",\"type\":\"http\"},\"name\":\"Nginx logs\",\"query\":\"source:nginx\"},\"type\":\"custom_destination\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/logs/config/custom-destinations" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"9608c7d6-8ea4-4487-88da-ab7620dd000c\",\"attributes\":{\"name\":\"Nginx logs\",\"query\":\"source:nginx\",\"enabled\":false,\"forwarder_destination\":{\"endpoint\":\"https://example.com\",\"auth\":{\"type\":\"basic\"},\"type\":\"http\"},\"forward_tags_restriction_list_type\":\"ALLOW_LIST\",\"forward_tags_restriction_list\":[\"datacenter\",\"host\"],\"forward_tags\":false},\"type\":\"custom_destination\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 12 Mar 2024 09:20:07 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/logs/config/custom-destinations/9608c7d6-8ea4-4487-88da-ab7620dd000c" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Tue, 12 Mar 2024 09:20:07 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_custom_destinations/Create-a-Custom-Header-HTTP-custom-destination-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/logs_custom_destinations/Create-a-Custom-Header-HTTP-custom-destination-returns-OK-response.frozen new file mode 100644 index 000000000..884ab65f4 --- /dev/null +++ b/tests/scenarios/cassettes/v2/logs_custom_destinations/Create-a-Custom-Header-HTTP-custom-destination-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-03-12T09:20:08.664Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_custom_destinations/Create-a-Custom-Header-HTTP-custom-destination-returns-OK-response.json b/tests/scenarios/cassettes/v2/logs_custom_destinations/Create-a-Custom-Header-HTTP-custom-destination-returns-OK-response.json new file mode 100644 index 000000000..592b35578 --- /dev/null +++ b/tests/scenarios/cassettes/v2/logs_custom_destinations/Create-a-Custom-Header-HTTP-custom-destination-returns-OK-response.json @@ -0,0 +1,67 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":false,\"forward_tags\":false,\"forward_tags_restriction_list\":[\"datacenter\",\"host\"],\"forward_tags_restriction_list_type\":\"ALLOW_LIST\",\"forwarder_destination\":{\"auth\":{\"header_name\":\"MY-AUTHENTICATION-HEADER\",\"header_value\":\"my-secret\",\"type\":\"custom_header\"},\"endpoint\":\"https://example.com\",\"type\":\"http\"},\"name\":\"Nginx logs\",\"query\":\"source:nginx\"},\"type\":\"custom_destination\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/logs/config/custom-destinations" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"b522ed5a-3fab-47f4-a828-d34bd5632656\",\"attributes\":{\"name\":\"Nginx logs\",\"query\":\"source:nginx\",\"enabled\":false,\"forwarder_destination\":{\"endpoint\":\"https://example.com\",\"auth\":{\"header_name\":\"MY-AUTHENTICATION-HEADER\",\"type\":\"custom_header\"},\"type\":\"http\"},\"forward_tags_restriction_list_type\":\"ALLOW_LIST\",\"forward_tags_restriction_list\":[\"datacenter\",\"host\"],\"forward_tags\":false},\"type\":\"custom_destination\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 12 Mar 2024 09:20:08 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/logs/config/custom-destinations/b522ed5a-3fab-47f4-a828-d34bd5632656" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Tue, 12 Mar 2024 09:20:08 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_custom_destinations/Create-a-Splunk-custom-destination-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/logs_custom_destinations/Create-a-Splunk-custom-destination-returns-OK-response.frozen new file mode 100644 index 000000000..79246244e --- /dev/null +++ b/tests/scenarios/cassettes/v2/logs_custom_destinations/Create-a-Splunk-custom-destination-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-03-12T09:20:09.499Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_custom_destinations/Create-a-Splunk-custom-destination-returns-OK-response.json b/tests/scenarios/cassettes/v2/logs_custom_destinations/Create-a-Splunk-custom-destination-returns-OK-response.json new file mode 100644 index 000000000..e1b05a882 --- /dev/null +++ b/tests/scenarios/cassettes/v2/logs_custom_destinations/Create-a-Splunk-custom-destination-returns-OK-response.json @@ -0,0 +1,67 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":false,\"forward_tags\":false,\"forward_tags_restriction_list\":[\"datacenter\",\"host\"],\"forward_tags_restriction_list_type\":\"ALLOW_LIST\",\"forwarder_destination\":{\"access_token\":\"my-access-token\",\"endpoint\":\"https://example.com\",\"type\":\"splunk_hec\"},\"name\":\"Nginx logs\",\"query\":\"source:nginx\"},\"type\":\"custom_destination\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/logs/config/custom-destinations" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"dcdf0ca2-b06a-4b75-8b07-0ba1987bd2fe\",\"attributes\":{\"name\":\"Nginx logs\",\"query\":\"source:nginx\",\"enabled\":false,\"forwarder_destination\":{\"endpoint\":\"https://example.com\",\"type\":\"splunk_hec\"},\"forward_tags_restriction_list_type\":\"ALLOW_LIST\",\"forward_tags_restriction_list\":[\"datacenter\",\"host\"],\"forward_tags\":false},\"type\":\"custom_destination\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 12 Mar 2024 09:20:09 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/logs/config/custom-destinations/dcdf0ca2-b06a-4b75-8b07-0ba1987bd2fe" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Tue, 12 Mar 2024 09:20:09 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_custom_destinations/Create-a-custom-destination-returns-Bad-Request-response.frozen b/tests/scenarios/cassettes/v2/logs_custom_destinations/Create-a-custom-destination-returns-Bad-Request-response.frozen new file mode 100644 index 000000000..8f6df3cca --- /dev/null +++ b/tests/scenarios/cassettes/v2/logs_custom_destinations/Create-a-custom-destination-returns-Bad-Request-response.frozen @@ -0,0 +1 @@ +2024-03-12T09:20:10.485Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_custom_destinations/Create-a-custom-destination-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/logs_custom_destinations/Create-a-custom-destination-returns-Bad-Request-response.json new file mode 100644 index 000000000..87e791593 --- /dev/null +++ b/tests/scenarios/cassettes/v2/logs_custom_destinations/Create-a-custom-destination-returns-Bad-Request-response.json @@ -0,0 +1,39 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Nginx logs\"},\"type\":\"custom_destination\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/logs/config/custom-destinations" + }, + "response": { + "body": { + "string": "{\"errors\":[\"The parameter 'forwarder_destination' is required\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Tue, 12 Mar 2024 09:20:10 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_custom_destinations/Create-an-Elasticsearch-custom-destination-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/logs_custom_destinations/Create-an-Elasticsearch-custom-destination-returns-OK-response.frozen new file mode 100644 index 000000000..9f38ea9f8 --- /dev/null +++ b/tests/scenarios/cassettes/v2/logs_custom_destinations/Create-an-Elasticsearch-custom-destination-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-03-12T09:20:10.813Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_custom_destinations/Create-an-Elasticsearch-custom-destination-returns-OK-response.json b/tests/scenarios/cassettes/v2/logs_custom_destinations/Create-an-Elasticsearch-custom-destination-returns-OK-response.json new file mode 100644 index 000000000..b88993451 --- /dev/null +++ b/tests/scenarios/cassettes/v2/logs_custom_destinations/Create-an-Elasticsearch-custom-destination-returns-OK-response.json @@ -0,0 +1,67 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":false,\"forward_tags\":false,\"forward_tags_restriction_list\":[\"datacenter\",\"host\"],\"forward_tags_restriction_list_type\":\"ALLOW_LIST\",\"forwarder_destination\":{\"auth\":{\"password\":\"my-password\",\"username\":\"my-username\"},\"endpoint\":\"https://example.com\",\"index_name\":\"nginx-logs\",\"index_rotation\":\"yyyy-MM-dd\",\"type\":\"elasticsearch\"},\"name\":\"Nginx logs\",\"query\":\"source:nginx\"},\"type\":\"custom_destination\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/logs/config/custom-destinations" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"922dba96-00c4-49fb-969c-aabf48a3d5c3\",\"attributes\":{\"name\":\"Nginx logs\",\"query\":\"source:nginx\",\"enabled\":false,\"forwarder_destination\":{\"index_name\":\"nginx-logs\",\"index_rotation\":\"yyyy-MM-dd\",\"endpoint\":\"https://example.com\",\"auth\":{},\"type\":\"elasticsearch\"},\"forward_tags_restriction_list_type\":\"ALLOW_LIST\",\"forward_tags_restriction_list\":[\"datacenter\",\"host\"],\"forward_tags\":false},\"type\":\"custom_destination\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 12 Mar 2024 09:20:10 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/logs/config/custom-destinations/922dba96-00c4-49fb-969c-aabf48a3d5c3" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Tue, 12 Mar 2024 09:20:10 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_custom_destinations/Delete-a-custom-destination-returns-Not-Found-response.frozen b/tests/scenarios/cassettes/v2/logs_custom_destinations/Delete-a-custom-destination-returns-Not-Found-response.frozen new file mode 100644 index 000000000..a66cf2905 --- /dev/null +++ b/tests/scenarios/cassettes/v2/logs_custom_destinations/Delete-a-custom-destination-returns-Not-Found-response.frozen @@ -0,0 +1 @@ +2024-03-12T09:20:11.769Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_custom_destinations/Delete-a-custom-destination-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/logs_custom_destinations/Delete-a-custom-destination-returns-Not-Found-response.json new file mode 100644 index 000000000..e965daa16 --- /dev/null +++ b/tests/scenarios/cassettes/v2/logs_custom_destinations/Delete-a-custom-destination-returns-Not-Found-response.json @@ -0,0 +1,33 @@ +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/logs/config/custom-destinations/does-not-exist" + }, + "response": { + "body": { + "string": "{\"errors\":[\"NotFound\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Tue, 12 Mar 2024 09:20:11 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_custom_destinations/Delete-a-custom-destination-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/logs_custom_destinations/Delete-a-custom-destination-returns-OK-response.frozen new file mode 100644 index 000000000..118be029f --- /dev/null +++ b/tests/scenarios/cassettes/v2/logs_custom_destinations/Delete-a-custom-destination-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-03-12T09:20:12.109Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_custom_destinations/Delete-a-custom-destination-returns-OK-response.json b/tests/scenarios/cassettes/v2/logs_custom_destinations/Delete-a-custom-destination-returns-OK-response.json new file mode 100644 index 000000000..5795412af --- /dev/null +++ b/tests/scenarios/cassettes/v2/logs_custom_destinations/Delete-a-custom-destination-returns-OK-response.json @@ -0,0 +1,95 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":false,\"forward_tags\":false,\"forward_tags_restriction_list\":[\"host\"],\"forward_tags_restriction_list_type\":\"BLOCK_LIST\",\"forwarder_destination\":{\"auth\":{\"password\":\"my-password\",\"type\":\"basic\",\"username\":\"my-username\"},\"endpoint\":\"https://example.com\",\"type\":\"http\"},\"name\":\"Test-Delete_a_custom_destination_returns_OK_response-1710235212\",\"query\":\"source:nginx\"},\"type\":\"custom_destination\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/logs/config/custom-destinations" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"596bb741-53be-49c6-939d-b5d4d9307689\",\"attributes\":{\"name\":\"Test-Delete_a_custom_destination_returns_OK_response-1710235212\",\"query\":\"source:nginx\",\"enabled\":false,\"forwarder_destination\":{\"endpoint\":\"https://example.com\",\"auth\":{\"type\":\"basic\"},\"type\":\"http\"},\"forward_tags_restriction_list_type\":\"BLOCK_LIST\",\"forward_tags_restriction_list\":[\"host\"],\"forward_tags\":false},\"type\":\"custom_destination\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 12 Mar 2024 09:20:12 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/logs/config/custom-destinations/596bb741-53be-49c6-939d-b5d4d9307689" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Tue, 12 Mar 2024 09:20:12 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/logs/config/custom-destinations/596bb741-53be-49c6-939d-b5d4d9307689" + }, + "response": { + "body": { + "string": "{\"errors\":[\"NotFound\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Tue, 12 Mar 2024 09:20:12 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_custom_destinations/Get-a-custom-destination-returns-Not-Found-response.frozen b/tests/scenarios/cassettes/v2/logs_custom_destinations/Get-a-custom-destination-returns-Not-Found-response.frozen new file mode 100644 index 000000000..f247a8b5e --- /dev/null +++ b/tests/scenarios/cassettes/v2/logs_custom_destinations/Get-a-custom-destination-returns-Not-Found-response.frozen @@ -0,0 +1 @@ +2024-03-12T09:20:13.398Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_custom_destinations/Get-a-custom-destination-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/logs_custom_destinations/Get-a-custom-destination-returns-Not-Found-response.json new file mode 100644 index 000000000..7575365eb --- /dev/null +++ b/tests/scenarios/cassettes/v2/logs_custom_destinations/Get-a-custom-destination-returns-Not-Found-response.json @@ -0,0 +1,33 @@ +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/logs/config/custom-destinations/does-not-exist" + }, + "response": { + "body": { + "string": "{\"errors\":[\"NotFound\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Tue, 12 Mar 2024 09:20:13 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_custom_destinations/Get-a-custom-destination-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/logs_custom_destinations/Get-a-custom-destination-returns-OK-response.frozen new file mode 100644 index 000000000..1d60a3751 --- /dev/null +++ b/tests/scenarios/cassettes/v2/logs_custom_destinations/Get-a-custom-destination-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-03-12T09:20:13.821Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_custom_destinations/Get-a-custom-destination-returns-OK-response.json b/tests/scenarios/cassettes/v2/logs_custom_destinations/Get-a-custom-destination-returns-OK-response.json new file mode 100644 index 000000000..81f7e6757 --- /dev/null +++ b/tests/scenarios/cassettes/v2/logs_custom_destinations/Get-a-custom-destination-returns-OK-response.json @@ -0,0 +1,95 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":false,\"forward_tags\":false,\"forward_tags_restriction_list\":[\"host\"],\"forward_tags_restriction_list_type\":\"BLOCK_LIST\",\"forwarder_destination\":{\"auth\":{\"password\":\"my-password\",\"type\":\"basic\",\"username\":\"my-username\"},\"endpoint\":\"https://example.com\",\"type\":\"http\"},\"name\":\"Test-Get_a_custom_destination_returns_OK_response-1710235213\",\"query\":\"source:nginx\"},\"type\":\"custom_destination\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/logs/config/custom-destinations" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"13e3f7e6-307e-4a91-a269-e016da18efc5\",\"attributes\":{\"name\":\"Test-Get_a_custom_destination_returns_OK_response-1710235213\",\"query\":\"source:nginx\",\"enabled\":false,\"forwarder_destination\":{\"endpoint\":\"https://example.com\",\"auth\":{\"type\":\"basic\"},\"type\":\"http\"},\"forward_tags_restriction_list_type\":\"BLOCK_LIST\",\"forward_tags_restriction_list\":[\"host\"],\"forward_tags\":false},\"type\":\"custom_destination\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 12 Mar 2024 09:20:13 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/logs/config/custom-destinations/13e3f7e6-307e-4a91-a269-e016da18efc5" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"13e3f7e6-307e-4a91-a269-e016da18efc5\",\"attributes\":{\"name\":\"Test-Get_a_custom_destination_returns_OK_response-1710235213\",\"query\":\"source:nginx\",\"enabled\":false,\"forwarder_destination\":{\"endpoint\":\"https://example.com\",\"auth\":{\"type\":\"basic\"},\"type\":\"http\"},\"forward_tags_restriction_list_type\":\"BLOCK_LIST\",\"forward_tags_restriction_list\":[\"host\"],\"forward_tags\":false},\"type\":\"custom_destination\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 12 Mar 2024 09:20:13 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/logs/config/custom-destinations/13e3f7e6-307e-4a91-a269-e016da18efc5" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Tue, 12 Mar 2024 09:20:13 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_custom_destinations/Get-all-custom-destinations-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/logs_custom_destinations/Get-all-custom-destinations-returns-OK-response.frozen new file mode 100644 index 000000000..65faf1870 --- /dev/null +++ b/tests/scenarios/cassettes/v2/logs_custom_destinations/Get-all-custom-destinations-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-03-12T09:20:15.085Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_custom_destinations/Get-all-custom-destinations-returns-OK-response.json b/tests/scenarios/cassettes/v2/logs_custom_destinations/Get-all-custom-destinations-returns-OK-response.json new file mode 100644 index 000000000..279066329 --- /dev/null +++ b/tests/scenarios/cassettes/v2/logs_custom_destinations/Get-all-custom-destinations-returns-OK-response.json @@ -0,0 +1,95 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":false,\"forward_tags\":false,\"forward_tags_restriction_list\":[\"host\"],\"forward_tags_restriction_list_type\":\"BLOCK_LIST\",\"forwarder_destination\":{\"auth\":{\"password\":\"my-password\",\"type\":\"basic\",\"username\":\"my-username\"},\"endpoint\":\"https://example.com\",\"type\":\"http\"},\"name\":\"Test-Get_all_custom_destinations_returns_OK_response-1710235215\",\"query\":\"source:nginx\"},\"type\":\"custom_destination\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/logs/config/custom-destinations" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"85883e0f-b010-4b8b-816d-a629600a4d0a\",\"attributes\":{\"name\":\"Test-Get_all_custom_destinations_returns_OK_response-1710235215\",\"query\":\"source:nginx\",\"enabled\":false,\"forwarder_destination\":{\"endpoint\":\"https://example.com\",\"auth\":{\"type\":\"basic\"},\"type\":\"http\"},\"forward_tags_restriction_list_type\":\"BLOCK_LIST\",\"forward_tags_restriction_list\":[\"host\"],\"forward_tags\":false},\"type\":\"custom_destination\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 12 Mar 2024 09:20:15 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/logs/config/custom-destinations" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"85883e0f-b010-4b8b-816d-a629600a4d0a\",\"attributes\":{\"name\":\"Test-Get_all_custom_destinations_returns_OK_response-1710235215\",\"query\":\"source:nginx\",\"enabled\":false,\"forwarder_destination\":{\"endpoint\":\"https://example.com\",\"auth\":{\"type\":\"basic\"},\"type\":\"http\"},\"forward_tags_restriction_list_type\":\"BLOCK_LIST\",\"forward_tags_restriction_list\":[\"host\"],\"forward_tags\":false},\"type\":\"custom_destination\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 12 Mar 2024 09:20:15 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/logs/config/custom-destinations/85883e0f-b010-4b8b-816d-a629600a4d0a" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Tue, 12 Mar 2024 09:20:15 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_custom_destinations/Update-a-custom-destination-returns-Bad-Request-response.frozen b/tests/scenarios/cassettes/v2/logs_custom_destinations/Update-a-custom-destination-returns-Bad-Request-response.frozen new file mode 100644 index 000000000..131ba9254 --- /dev/null +++ b/tests/scenarios/cassettes/v2/logs_custom_destinations/Update-a-custom-destination-returns-Bad-Request-response.frozen @@ -0,0 +1 @@ +2024-03-12T09:20:16.332Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_custom_destinations/Update-a-custom-destination-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/logs_custom_destinations/Update-a-custom-destination-returns-Bad-Request-response.json new file mode 100644 index 000000000..fdb108e2e --- /dev/null +++ b/tests/scenarios/cassettes/v2/logs_custom_destinations/Update-a-custom-destination-returns-Bad-Request-response.json @@ -0,0 +1,101 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":false,\"forward_tags\":false,\"forward_tags_restriction_list\":[\"host\"],\"forward_tags_restriction_list_type\":\"BLOCK_LIST\",\"forwarder_destination\":{\"auth\":{\"password\":\"my-password\",\"type\":\"basic\",\"username\":\"my-username\"},\"endpoint\":\"https://example.com\",\"type\":\"http\"},\"name\":\"Test-Update_a_custom_destination_returns_Bad_Request_response-1710235216\",\"query\":\"source:nginx\"},\"type\":\"custom_destination\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/logs/config/custom-destinations" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"0f1b60fc-4671-4bd5-834b-bc86c8a5065b\",\"attributes\":{\"name\":\"Test-Update_a_custom_destination_returns_Bad_Request_response-1710235216\",\"query\":\"source:nginx\",\"enabled\":false,\"forwarder_destination\":{\"endpoint\":\"https://example.com\",\"auth\":{\"type\":\"basic\"},\"type\":\"http\"},\"forward_tags_restriction_list_type\":\"BLOCK_LIST\",\"forward_tags_restriction_list\":[\"host\"],\"forward_tags\":false},\"type\":\"custom_destination\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 12 Mar 2024 09:20:16 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"forward_tags_restriction_list_type\":\"this_list_type_does_not_exist\"},\"id\":\"0f1b60fc-4671-4bd5-834b-bc86c8a5065b\",\"type\":\"custom_destination\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/logs/config/custom-destinations/0f1b60fc-4671-4bd5-834b-bc86c8a5065b" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Internal error\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Tue, 12 Mar 2024 09:20:16 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/logs/config/custom-destinations/0f1b60fc-4671-4bd5-834b-bc86c8a5065b" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Tue, 12 Mar 2024 09:20:16 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_custom_destinations/Update-a-custom-destination-returns-Not-Found-response.frozen b/tests/scenarios/cassettes/v2/logs_custom_destinations/Update-a-custom-destination-returns-Not-Found-response.frozen new file mode 100644 index 000000000..9b964d6ef --- /dev/null +++ b/tests/scenarios/cassettes/v2/logs_custom_destinations/Update-a-custom-destination-returns-Not-Found-response.frozen @@ -0,0 +1 @@ +2024-03-12T09:20:17.628Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_custom_destinations/Update-a-custom-destination-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/logs_custom_destinations/Update-a-custom-destination-returns-Not-Found-response.json new file mode 100644 index 000000000..969fff5a2 --- /dev/null +++ b/tests/scenarios/cassettes/v2/logs_custom_destinations/Update-a-custom-destination-returns-Not-Found-response.json @@ -0,0 +1,39 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":false,\"forward_tags\":false,\"forward_tags_restriction_list\":[\"datacenter\",\"host\"],\"forward_tags_restriction_list_type\":\"ALLOW_LIST\",\"forwarder_destination\":{\"auth\":{\"password\":\"datadog-custom-destination-password\",\"type\":\"basic\",\"username\":\"datadog-custom-destination-username\"},\"endpoint\":\"https://example.com\",\"type\":\"http\"},\"name\":\"Nginx logs\",\"query\":\"source:nginx\"},\"id\":\"id-from-non-existing-custom-destination\",\"type\":\"custom_destination\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/logs/config/custom-destinations/id-from-non-existing-custom-destination" + }, + "response": { + "body": { + "string": "{\"errors\":[\"NotFound\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Tue, 12 Mar 2024 09:20:17 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_custom_destinations/Update-a-custom-destination-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/logs_custom_destinations/Update-a-custom-destination-returns-OK-response.frozen new file mode 100644 index 000000000..800d78eaa --- /dev/null +++ b/tests/scenarios/cassettes/v2/logs_custom_destinations/Update-a-custom-destination-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-04-05T19:31:41.540Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_custom_destinations/Update-a-custom-destination-returns-OK-response.json b/tests/scenarios/cassettes/v2/logs_custom_destinations/Update-a-custom-destination-returns-OK-response.json new file mode 100644 index 000000000..1c48d8fec --- /dev/null +++ b/tests/scenarios/cassettes/v2/logs_custom_destinations/Update-a-custom-destination-returns-OK-response.json @@ -0,0 +1,101 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":false,\"forward_tags\":false,\"forward_tags_restriction_list\":[\"host\"],\"forward_tags_restriction_list_type\":\"BLOCK_LIST\",\"forwarder_destination\":{\"auth\":{\"password\":\"my-password\",\"type\":\"basic\",\"username\":\"my-username\"},\"endpoint\":\"https://example.com\",\"type\":\"http\"},\"name\":\"Test-Update_a_custom_destination_returns_OK_response-1712345501\",\"query\":\"source:nginx\"},\"type\":\"custom_destination\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/logs/config/custom-destinations" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"60f4b01e-7853-4d48-8f6d-b98802dca889\",\"attributes\":{\"name\":\"Test-Update_a_custom_destination_returns_OK_response-1712345501\",\"query\":\"source:nginx\",\"enabled\":false,\"forwarder_destination\":{\"endpoint\":\"https://example.com\",\"auth\":{\"type\":\"basic\"},\"type\":\"http\"},\"forward_tags_restriction_list_type\":\"BLOCK_LIST\",\"forward_tags_restriction_list\":[\"host\"],\"forward_tags\":false},\"type\":\"custom_destination\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 05 Apr 2024 19:31:41 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":false,\"forward_tags\":false,\"forward_tags_restriction_list_type\":\"BLOCK_LIST\",\"name\":\"Nginx logs (Updated)\",\"query\":\"source:nginx\"},\"id\":\"60f4b01e-7853-4d48-8f6d-b98802dca889\",\"type\":\"custom_destination\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/logs/config/custom-destinations/60f4b01e-7853-4d48-8f6d-b98802dca889" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"60f4b01e-7853-4d48-8f6d-b98802dca889\",\"attributes\":{\"name\":\"Nginx logs (Updated)\",\"query\":\"source:nginx\",\"enabled\":false,\"forwarder_destination\":{\"endpoint\":\"https://example.com\",\"auth\":{\"type\":\"basic\"},\"type\":\"http\"},\"forward_tags_restriction_list_type\":\"BLOCK_LIST\",\"forward_tags_restriction_list\":[\"host\"],\"forward_tags\":false},\"type\":\"custom_destination\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 05 Apr 2024 19:31:41 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/logs/config/custom-destinations/60f4b01e-7853-4d48-8f6d-b98802dca889" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Fri, 05 Apr 2024 19:31:41 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_metrics/Create-a-log-based-metric-returns-OK-response.json b/tests/scenarios/cassettes/v2/logs_metrics/Create-a-log-based-metric-returns-OK-response.json index 3702a062a..83abe56e3 100644 --- a/tests/scenarios/cassettes/v2/logs_metrics/Create-a-log-based-metric-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/logs_metrics/Create-a-log-based-metric-returns-OK-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"compute\":{\"aggregation_type\":\"distribution\",\"include_percentiles\":true,\"path\":\"@duration\"}},\"id\":\"TestCreatealogbasedmetricreturnsOKresponse1686138855\",\"type\":\"logs_metrics\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics"}, "response": {"body": {"string": "{\"data\":{\"id\":\"TestCreatealogbasedmetricreturnsOKresponse1686138855\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 07 Jun 2023 11:54:15 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics/TestCreatealogbasedmetricreturnsOKresponse1686138855"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 07 Jun 2023 11:54:15 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"compute\":{\"aggregation_type\":\"distribution\",\"include_percentiles\":true,\"path\":\"@duration\"}},\"id\":\"TestCreatealogbasedmetricreturnsOKresponse1686138855\",\"type\":\"logs_metrics\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"TestCreatealogbasedmetricreturnsOKresponse1686138855\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 07 Jun 2023 11:54:15 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics/TestCreatealogbasedmetricreturnsOKresponse1686138855" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 07 Jun 2023 11:54:15 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_metrics/Delete-a-log-based-metric-returns-OK-response.json b/tests/scenarios/cassettes/v2/logs_metrics/Delete-a-log-based-metric-returns-OK-response.json index 7b7953277..e20069cd0 100644 --- a/tests/scenarios/cassettes/v2/logs_metrics/Delete-a-log-based-metric-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/logs_metrics/Delete-a-log-based-metric-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"compute\":{\"aggregation_type\":\"count\"},\"filter\":{\"query\":\"source:Test-Delete_a_log_based_metric_returns_OK_response-1681838831\"}},\"id\":\"Test-Delete_a_log_based_metric_returns_OK_response-1681838831\",\"type\":\"logs_metrics\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics"}, "response": {"body": {"string": "{\"data\":{\"id\":\"Test_Delete_a_log_based_metric_returns_OK_response_1681838831\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Delete_a_log_based_metric_returns_OK_response-1681838831\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 18 Apr 2023 17:27:11 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics/Test_Delete_a_log_based_metric_returns_OK_response_1681838831"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Tue, 18 Apr 2023 17:27:11 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics/Test_Delete_a_log_based_metric_returns_OK_response_1681838831"}, "response": {"body": {"string": "{\"errors\":[\"not_found(Metric with name 'Test_Delete_a_log_based_metric_returns_OK_response_1681838831' not found)\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Tue, 18 Apr 2023 17:27:11 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"compute\":{\"aggregation_type\":\"count\"},\"filter\":{\"query\":\"source:Test-Delete_a_log_based_metric_returns_OK_response-1681838831\"}},\"id\":\"Test-Delete_a_log_based_metric_returns_OK_response-1681838831\",\"type\":\"logs_metrics\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"Test_Delete_a_log_based_metric_returns_OK_response_1681838831\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Delete_a_log_based_metric_returns_OK_response-1681838831\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 18 Apr 2023 17:27:11 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics/Test_Delete_a_log_based_metric_returns_OK_response_1681838831" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Tue, 18 Apr 2023 17:27:11 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics/Test_Delete_a_log_based_metric_returns_OK_response_1681838831" + }, + "response": { + "body": { + "string": "{\"errors\":[\"not_found(Metric with name 'Test_Delete_a_log_based_metric_returns_OK_response_1681838831' not found)\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Tue, 18 Apr 2023 17:27:11 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_metrics/Get-a-log-based-metric-returns-OK-response.json b/tests/scenarios/cassettes/v2/logs_metrics/Get-a-log-based-metric-returns-OK-response.json index fffc3d6c2..28d2e1a50 100644 --- a/tests/scenarios/cassettes/v2/logs_metrics/Get-a-log-based-metric-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/logs_metrics/Get-a-log-based-metric-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"compute\":{\"aggregation_type\":\"count\"},\"filter\":{\"query\":\"source:Test-Get_a_log_based_metric_returns_OK_response-1686139084\"}},\"id\":\"Test-Get_a_log_based_metric_returns_OK_response-1686139084\",\"type\":\"logs_metrics\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics"}, "response": {"body": {"string": "{\"data\":{\"id\":\"Test_Get_a_log_based_metric_returns_OK_response_1686139084\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_a_log_based_metric_returns_OK_response-1686139084\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 07 Jun 2023 11:58:04 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics/Test_Get_a_log_based_metric_returns_OK_response_1686139084"}, "response": {"body": {"string": "{\"data\":{\"id\":\"Test_Get_a_log_based_metric_returns_OK_response_1686139084\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_a_log_based_metric_returns_OK_response-1686139084\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 07 Jun 2023 11:58:04 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics/Test_Get_a_log_based_metric_returns_OK_response_1686139084"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 07 Jun 2023 11:58:04 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"compute\":{\"aggregation_type\":\"count\"},\"filter\":{\"query\":\"source:Test-Get_a_log_based_metric_returns_OK_response-1686139084\"}},\"id\":\"Test-Get_a_log_based_metric_returns_OK_response-1686139084\",\"type\":\"logs_metrics\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"Test_Get_a_log_based_metric_returns_OK_response_1686139084\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_a_log_based_metric_returns_OK_response-1686139084\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 07 Jun 2023 11:58:04 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics/Test_Get_a_log_based_metric_returns_OK_response_1686139084" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"Test_Get_a_log_based_metric_returns_OK_response_1686139084\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_a_log_based_metric_returns_OK_response-1686139084\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 07 Jun 2023 11:58:04 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics/Test_Get_a_log_based_metric_returns_OK_response_1686139084" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 07 Jun 2023 11:58:04 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_metrics/Get-all-log-based-metrics-returns-OK-response.json b/tests/scenarios/cassettes/v2/logs_metrics/Get-all-log-based-metrics-returns-OK-response.json index e3643c70f..33357346a 100644 --- a/tests/scenarios/cassettes/v2/logs_metrics/Get-all-log-based-metrics-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/logs_metrics/Get-all-log-based-metrics-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"compute\":{\"aggregation_type\":\"count\"},\"filter\":{\"query\":\"source:Test-Get_all_log_based_metrics_returns_OK_response-1686139121\"}},\"id\":\"Test-Get_all_log_based_metrics_returns_OK_response-1686139121\",\"type\":\"logs_metrics\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics"}, "response": {"body": {"string": "{\"data\":{\"id\":\"Test_Get_all_log_based_metrics_returns_OK_response_1686139121\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_all_log_based_metrics_returns_OK_response-1686139121\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 07 Jun 2023 11:58:41 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"datadog_api_client_python_test_create_a_logbased_metric_returns_ok_response_1607014407.161855\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"go_Feature_Logs_Metrics_Scenario_Get_all_log_based_metrics_returns_OK_response_37807_1608735831\",\"attributes\":{\"filter\":{\"query\":\"source:go-Feature_Logs_Metrics-Scenario_Get_all_log_based_metrics_returns__OK__response-37807-1608735831\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"mlb.to.delete.5\",\"attributes\":{\"filter\":{\"query\":\"service:test\"},\"group_by\":[{\"path\":\"@status\",\"tag_name\":\"status\"}],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":false}},\"type\":\"logs_metrics\"},{\"id\":\"mlb.to.delete.7\",\"attributes\":{\"filter\":{\"query\":\"service:test\"},\"group_by\":[{\"path\":\"@status\",\"tag_name\":\"status\"}],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"tf_TestAccDatadogLogsMetric_import_local_1612175492\",\"attributes\":{\"filter\":{\"query\":\"service:test\"},\"group_by\":[{\"path\":\"@my.status\",\"tag_name\":\"status\"},{\"path\":\"service\",\"tag_name\":\"service\"}],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":false}},\"type\":\"logs_metrics\"},{\"id\":\"Typescript_Create_a_log_based_metric_returns_OK_response_1613674902.961\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Typescript_Get_a_log_based_metric_returns_OK_response_1613674904.843\",\"attributes\":{\"filter\":{\"query\":\"source:Typescript-Get_a_log_based_metric_returns_OK_response-1613674904.843\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Typescript_Get_all_log_based_metrics_returns_OK_response_1613674905.893\",\"attributes\":{\"filter\":{\"query\":\"source:Typescript-Get_all_log_based_metrics_returns_OK_response-1613674905.893\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Typescript_Update_a_log_based_metric_returns_OK_response_1613674907.023\",\"attributes\":{\"filter\":{\"query\":\"source:Typescript-Update_a_log_based_metric_returns_OK_response-1613674907.023-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Typescript_Create_a_log_based_metric_returns_OK_response_1613675381.562\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Typescript_Get_a_log_based_metric_returns_OK_response_1613675383.575\",\"attributes\":{\"filter\":{\"query\":\"source:Typescript-Get_a_log_based_metric_returns_OK_response-1613675383.575\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Typescript_Get_all_log_based_metrics_returns_OK_response_1613675384.642\",\"attributes\":{\"filter\":{\"query\":\"source:Typescript-Get_all_log_based_metrics_returns_OK_response-1613675384.642\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Typescript_Update_a_log_based_metric_returns_OK_response_1613675386.161\",\"attributes\":{\"filter\":{\"query\":\"source:Typescript-Update_a_log_based_metric_returns_OK_response-1613675386.161-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Typescript_Create_a_log_based_metric_returns_OK_response_1614072176.745\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Typescript_Delete_a_log_based_metric_returns_OK_response_1614072181.786\",\"attributes\":{\"filter\":{\"query\":\"source:Typescript-Delete_a_log_based_metric_returns_OK_response-1614072181.786\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Typescript_Get_all_log_based_metrics_returns_OK_response_1614072193.929\",\"attributes\":{\"filter\":{\"query\":\"source:Typescript-Get_all_log_based_metrics_returns_OK_response-1614072193.929\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Typescript_Get_all_log_based_metrics_returns_OK_response_1614073795.81\",\"attributes\":{\"filter\":{\"query\":\"source:Typescript-Get_all_log_based_metrics_returns_OK_response-1614073795.81\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"ruby_Update_a_log_based_metric_returns_OK_response_1614194424\",\"attributes\":{\"filter\":{\"query\":\"source:ruby-Update_a_log_based_metric_returns_OK_response-1614194424-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"datadog_api_client_python_test_create_a_logbased_metric_returns_ok_response_1608595661.620162\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"datadog_api_client_python_test_delete_a_logbased_metric_returns_ok_response_1608595670.983057\",\"attributes\":{\"filter\":{\"query\":\"source:datadog-api-client-python-test_delete_a_logbased_metric_returns_ok_response-1608595670.983057\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"datadog_api_client_python_test_get_a_logbased_metric_returns_ok_response_1608595669.067374\",\"attributes\":{\"filter\":{\"query\":\"source:datadog-api-client-python-test_get_a_logbased_metric_returns_ok_response-1608595669.067374\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"datadog_api_client_python_test_get_all_logbased_metrics_returns_ok_response_1608595675.324394\",\"attributes\":{\"filter\":{\"query\":\"source:datadog-api-client-python-test_get_all_logbased_metrics_returns_ok_response-1608595675.324394\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Typescript_Create_a_log_based_metric_returns_OK_response_1614896593.355\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"datadog_api_client_python_test_update_a_logbased_metric_returns_ok_response_1608595673.013269\",\"attributes\":{\"filter\":{\"query\":\"source:datadog-api-client-python-test_update_a_logbased_metric_returns_ok_response-1608595673.013269\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Typescript_Create_a_log_based_metric_returns_OK_response_1616149774.73\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"go_Feature_Logs_Metrics_Scenario_Get_all_log_based_metrics_returns_OK_response_54239_1616717117\",\"attributes\":{\"filter\":{\"query\":\"source:go-Feature_Logs_Metrics-Scenario_Get_all_log_based_metrics_returns__OK__response-54239-1616717117\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"datadog_api_client_python_test_create_a_logbased_metric_returns_ok_response_1617014547.984513\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"datadog_api_client_python_test_create_a_logbased_metric_returns_ok_response_1617189622.037749\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"datadog_api_client_python_test_create_a_logbased_metric_returns_ok_response_1617190464.536072\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Typescript_Get_all_log_based_metrics_returns_OK_response_1617197330.21\",\"attributes\":{\"filter\":{\"query\":\"source:Typescript-Get_all_log_based_metrics_returns_OK_response-1617197330.21\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"go_Feature_Logs_Metrics_Scenario_Get_all_log_based_metrics_returns_OK_response_57310_1617968823\",\"attributes\":{\"filter\":{\"query\":\"source:go-Feature_Logs_Metrics-Scenario_Get_all_log_based_metrics_returns__OK__response-57310-1617968823\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"ruby_Create_a_log_based_metric_returns_OK_response_1617976084\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"ruby_Get_a_log_based_metric_returns_OK_response_1617980078\",\"attributes\":{\"filter\":{\"query\":\"source:ruby-Get_a_log_based_metric_returns_OK_response-1617980078\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Delete_a_log_based_metric_returns_OK_response_1618220982\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Delete_a_log_based_metric_returns_OK_response-1618220982\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"datadog_api_client_python_test_get_all_logbased_metrics_returns_ok_response_1618226967.951386\",\"attributes\":{\"filter\":{\"query\":\"source:datadog-api-client-python-test_get_all_logbased_metrics_returns_ok_response-1618226967.951386\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1618245179\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1618245179\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Java_Create_a_log_based_metric_returns_OK_response_1618407299\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Java_Get_a_log_based_metric_returns_OK_response_1618418141\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Java-Get_a_log_based_metric_returns_OK_response-1618418141\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Java_Delete_a_log_based_metric_returns_OK_response_1618580126\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Java-Delete_a_log_based_metric_returns_OK_response-1618580126\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Python_Get_a_log_based_metric_returns_OK_response_1618828162\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Python-Get_a_log_based_metric_returns_OK_response-1618828162\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Create_a_log_based_metric_returns_OK_response_1618831542\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Python_Get_all_log_based_metrics_returns_OK_response_1618835641\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Python-Get_all_log_based_metrics_returns_OK_response-1618835641\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1618835641\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1618835641\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Go_Update_a_log_based_metric_returns_OK_response_1618840619\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Go-Update_a_log_based_metric_returns_OK_response-1618840619\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Ruby_Get_all_log_based_metrics_returns_OK_response_1619689433\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Ruby-Get_all_log_based_metrics_returns_OK_response-1619689433\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Python_Update_a_log_based_metric_returns_OK_response_1619711301\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Python-Update_a_log_based_metric_returns_OK_response-1619711301\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Ruby_Update_a_log_based_metric_returns_OK_response_1620930847\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Ruby-Update_a_log_based_metric_returns_OK_response-1620930847\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Java_Update_a_log_based_metric_returns_OK_response_1626363689\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Java-Update_a_log_based_metric_returns_OK_response-1626363689\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Java_Update_a_log_based_metric_returns_OK_response_1628583537\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Java-Update_a_log_based_metric_returns_OK_response-1628583537-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Delete_a_log_based_metric_returns_OK_response_1631884323\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Delete_a_log_based_metric_returns_OK_response-1631884323\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Update_a_log_based_metric_returns_OK_response_1631884326\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1631884326\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_a_log_based_metric_returns_OK_response_1631884330\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_a_log_based_metric_returns_OK_response-1631884330\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_all_log_based_metrics_returns_OK_response_1631884333\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_all_log_based_metrics_returns_OK_response-1631884333\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Update_a_log_based_metric_returns_OK_response_1631884446\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1631884446\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Delete_a_log_based_metric_returns_OK_response_1631884451\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Delete_a_log_based_metric_returns_OK_response-1631884451\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_all_log_based_metrics_returns_OK_response_1631884452\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_all_log_based_metrics_returns_OK_response-1631884452\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_a_log_based_metric_returns_OK_response_1631884457\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_a_log_based_metric_returns_OK_response-1631884457\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_all_log_based_metrics_returns_OK_response_1631884657\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_all_log_based_metrics_returns_OK_response-1631884657\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_a_log_based_metric_returns_OK_response_1631884663\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_a_log_based_metric_returns_OK_response-1631884663\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Delete_a_log_based_metric_returns_OK_response_1631884664\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Delete_a_log_based_metric_returns_OK_response-1631884664\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Update_a_log_based_metric_returns_OK_response_1631884670\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1631884670\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Update_a_log_based_metric_returns_OK_response_1631884723\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1631884723\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Delete_a_log_based_metric_returns_OK_response_1631884727\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Delete_a_log_based_metric_returns_OK_response-1631884727\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_all_log_based_metrics_returns_OK_response_1631884729\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_all_log_based_metrics_returns_OK_response-1631884729\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_a_log_based_metric_returns_OK_response_1631884731\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_a_log_based_metric_returns_OK_response-1631884731\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Python_Delete_a_log_based_metric_returns_OK_response_1631886015\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Python-Delete_a_log_based_metric_returns_OK_response-1631886015\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Python_Update_a_log_based_metric_returns_OK_response_1631886022\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Python-Update_a_log_based_metric_returns_OK_response-1631886022\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Python_Get_all_log_based_metrics_returns_OK_response_1631886029\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Python-Get_all_log_based_metrics_returns_OK_response-1631886029\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Python_Get_a_log_based_metric_returns_OK_response_1631886036\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Python-Get_a_log_based_metric_returns_OK_response-1631886036\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Delete_a_log_based_metric_returns_OK_response_1632133176\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Delete_a_log_based_metric_returns_OK_response-1632133176\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632328087\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632817303\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632817303\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632817303\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632817304\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632817304\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632817304\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632817304-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632820224\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632820225\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632820225\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632820225\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632820225\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632820225\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632820225-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632820425\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632820426\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632820426\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632820426\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632820426\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632820427\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632820427-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632821189\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632821190\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632821190\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632821191\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632821191\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632821192\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632821192-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632821487\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632821488\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632821488\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632821488\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632821488\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632821488\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632821488-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632824835\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632824837\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632824837\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632824838\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632824838\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632824838\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632824838-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632826421\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632826422\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632826422\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632826423\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632826423\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632826423\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632826423-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632827387\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632827389\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632827389\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632827390\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632827390\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632827391\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632827391-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632828986\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632828987\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632828987\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632828987\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632828987\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632828987\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632828987-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632832883\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632832884\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632832884\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632832884\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632832884\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632832885\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632832885-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632833151\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632833152\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632833152\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632833152\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632833152\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632833152\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632833152-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632836431\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632836432\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632836432\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632836432\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632836432\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632836433\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632836433-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632839523\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632839523\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632839523\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632839523\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632839523\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632839524\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632839524-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632839540\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632839544\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632839544\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632839545\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632839545\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632839545\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632839545-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632839741\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632839742\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632839742\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632839742\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632839742\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632839743\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632839743-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632841151\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632841152\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632841152\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632841153\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632841153\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632841153\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632841153-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632842468\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632842469\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632842469\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632842469\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632842469\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632843061\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632843062\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632843062\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632843063\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632843063\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632843063\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632843063-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632844008\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632844008\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632844008\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632844009\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632844009\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632844009\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632844009-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632844127\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632844127\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632844127\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632844127\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632844127\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632844128\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632844128-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632846619\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632846621\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632846621\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632846622\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632846622\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632846622\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632846622-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632847587\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632847588\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632847588\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632847589\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632847589-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632848076\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632848077\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632848077\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632848078\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632848078\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632848079\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632848079-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632848436\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632848437\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632848437\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632848438\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632848438\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632848438\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632848438-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632848876\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632848878\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632848878\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632848878\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632848878\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632848878\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632848878-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632849661\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632849663\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632849663\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632849664\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632849664\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632849665\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632849665-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632849879\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632849880\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632849880\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632849880\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632849880\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632849881\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632849881-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632851109\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632851110\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632851110\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632851111\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632851111\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632851112\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632851112-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632888511\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632888512\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632888512\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632888512\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632888512\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632888513\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632888513-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632898971\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632898972\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632898972\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632898972\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632898972\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632898973\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632898973-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632899187\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632899188\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632899188\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632899188\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632899188\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632899188\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632899188-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632902887\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632902887\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632902887\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632902887\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632902887\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632902887-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632903468\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632903469\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632903469\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632903470\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632903470\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632903470\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632903470-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632904020\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632904020\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632904020\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632904021\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632904021\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632904021\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632904021-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632907313\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632907313\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632907313\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632907314\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632907314\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632907314\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632907314-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632907331\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632907331\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632907333\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632907333\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632907333\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632907333-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632908380\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632908381\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632908381\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632908382\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632908382\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632908382\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632908382-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632909874\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632909875\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632909875\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632909876\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632909876\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632909877\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632909877-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632910728\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632910729\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632910729\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632910730\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632910730\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632910731\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632910731-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632913792\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632913794\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632913794\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632913794\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632913794\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632913795\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632913795-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632918172\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632918173\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632918173\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632918174\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632918174\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632918174\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632918174-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632919344\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632919345\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632919345\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632919345\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632919345\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632919345\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632919345-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632919560\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632919561\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632919561\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632919561\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632919561\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632919562\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632919562-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632921859\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632921860\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632921860\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632921860\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632921860\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632921861\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632921861-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632922194\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632922195\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632922195\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632922195\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632922195\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632922195\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632922195-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632928242\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632928243\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632928243\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632928243\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632928243\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632928243\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632928243-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Go_Get_a_log_based_metric_returns_OK_response_1632929648\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Go-Get_a_log_based_metric_returns_OK_response-1632929648\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632933825\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632933826\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632933826\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632933827\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632933827\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632933828\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632933828-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632974958\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632974959\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632974959\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632974959\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632974959\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632974959\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632974959-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632986079\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632986079\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632986079\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632986080\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632986080\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632986080\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632986080-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632989750\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632989751\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632989751\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632989751\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632989751\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632989751\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632989751-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632997303\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632997304\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632997304\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632997304\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632997304\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632997304\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632997304-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633000123\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1633000124\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1633000124\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1633000125\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1633000125\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1633000126\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1633000126-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633003782\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1633003783\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1633003783\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1633003784\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1633003784\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1633003784\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1633003784-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633004062\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1633004062\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1633004062\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1633004063\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1633004063\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1633004063\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1633004063-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633006696\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1633006696\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1633006696\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1633006697\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1633006697\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1633006697\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1633006697-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633007533\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1633007534\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1633007534\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1633007534\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1633007534\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1633007535\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1633007535-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633011091\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1633011092\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1633011092\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1633011093\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1633011093\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1633011094\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1633011094-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633011226\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1633011227\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1633011227\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1633011228\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1633011228\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1633011229\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1633011229-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633015432\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1633015433\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1633015433\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1633015434\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1633015434\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1633015435\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1633015435-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Go_Create_a_log_based_metric_returns_OK_response_1634316108\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Go_Get_all_log_based_metrics_returns_OK_response_1636639366\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Go-Get_all_log_based_metrics_returns_OK_response-1636639366\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Ruby_Update_a_log_based_metric_returns_OK_response_1636639366\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Ruby-Update_a_log_based_metric_returns_OK_response-1636639366\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Create_a_log_based_metric_returns_OK_response_1618491718\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[{\"path\":\"source\",\"tag_name\":\"source\"},{\"path\":\"status\",\"tag_name\":\"status\"}],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Create_a_log_based_metric_returns_OK_response_1637063323\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_a_log_based_metric_returns_OK_response_1637063324\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_a_log_based_metric_returns_OK_response-1637063324\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_all_log_based_metrics_returns_OK_response_1637063324\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_all_log_based_metrics_returns_OK_response-1637063324\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Update_a_log_based_metric_returns_OK_response_1637063325\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1637063325-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Create_a_log_based_metric_returns_OK_response_1637070501\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_a_log_based_metric_returns_OK_response_1637070502\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_a_log_based_metric_returns_OK_response-1637070502\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_all_log_based_metrics_returns_OK_response_1637070503\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_all_log_based_metrics_returns_OK_response-1637070503\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Update_a_log_based_metric_returns_OK_response_1637070505\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1637070505-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Create_a_log_based_metric_returns_OK_response_1637077938\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_a_log_based_metric_returns_OK_response_1637077940\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_a_log_based_metric_returns_OK_response-1637077940\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_all_log_based_metrics_returns_OK_response_1637077941\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_all_log_based_metrics_returns_OK_response-1637077941\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Update_a_log_based_metric_returns_OK_response_1637077942\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1637077942-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Create_a_log_based_metric_returns_OK_response_1637078452\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_a_log_based_metric_returns_OK_response_1637078453\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_a_log_based_metric_returns_OK_response-1637078453\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_all_log_based_metrics_returns_OK_response_1637078454\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_all_log_based_metrics_returns_OK_response-1637078454\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Update_a_log_based_metric_returns_OK_response_1637078455\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1637078455-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Update_a_log_based_metric_returns_OK_response_1637140745\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1637140745-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Delete_a_log_based_metric_returns_OK_response_1618491719\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Delete_a_log_based_metric_returns_OK_response-1618491719\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_a_log_based_metric_returns_OK_response_1618491721\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_a_log_based_metric_returns_OK_response-1618491721\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_all_log_based_metrics_returns_OK_response_1618491725\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_all_log_based_metrics_returns_OK_response-1618491725\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Create_a_log_based_metric_returns_OK_response_1637141184\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_a_log_based_metric_returns_OK_response_1637141185\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_a_log_based_metric_returns_OK_response-1637141185\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_all_log_based_metrics_returns_OK_response_1637141186\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_all_log_based_metrics_returns_OK_response-1637141186\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Update_a_log_based_metric_returns_OK_response_1637141187\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1637141187-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Python_Get_a_log_based_metric_returns_OK_response_1638987050\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Python-Get_a_log_based_metric_returns_OK_response-1638987050\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Python_Get_all_log_based_metrics_returns_OK_response_1638987051\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Python-Get_all_log_based_metrics_returns_OK_response-1638987051\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Python_Delete_a_log_based_metric_returns_OK_response_1638987052\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Python-Delete_a_log_based_metric_returns_OK_response-1638987052\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Python_Update_a_log_based_metric_returns_OK_response_1638987054\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Python-Update_a_log_based_metric_returns_OK_response-1638987054\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Python_Create_a_log_based_metric_returns_OK_response_1638987055\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1640112763\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Create_a_log_based_metric_returns_OK_response_1640112922\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1642756658\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Delete_a_log_based_metric_returns_OK_response_1642756658\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Delete_a_log_based_metric_returns_OK_response-1642756658\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1642756658\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1642756658\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1642756659\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1642756659\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1642756659\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1642756659\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1651997960\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Delete_a_log_based_metric_returns_OK_response_1651997961\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Delete_a_log_based_metric_returns_OK_response-1651997961\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1651997962\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1651997962\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1651997962\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1651997962\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1651997963\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1651997963-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1657945126\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1657945126-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Example_Create_a_log_based_metric_returns_OK_response_1665705374\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Example_Update_a_log_based_metric_returns_OK_response_1665705415\",\"attributes\":{\"filter\":{\"query\":\"source:Example-Update_a_log_based_metric_returns_OK_response_1665705415-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"tf_TestAccDatadogLogsMetric_Basic_local_1669398403\",\"attributes\":{\"filter\":{\"query\":\"service:test\"},\"group_by\":[{\"path\":\"@my.status\",\"tag_name\":\"status\"},{\"path\":\"service\",\"tag_name\":\"service\"}],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":false}},\"type\":\"logs_metrics\"},{\"id\":\"Example_Get_all_log_based_metrics_returns_OK_response_1670255553\",\"attributes\":{\"filter\":{\"query\":\"source:Example-Get_all_log_based_metrics_returns_OK_response_1670255553\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Example_Get_a_log_based_metric_returns_OK_response_1671998052\",\"attributes\":{\"filter\":{\"query\":\"source:Example-Get_a_log_based_metric_returns_OK_response_1671998052\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Go_Update_a_log_based_metric_returns_OK_response_1674173548\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Go-Update_a_log_based_metric_returns_OK_response-1674173548\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Ruby_Update_a_log_based_metric_returns_OK_response_1674182066\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Ruby-Update_a_log_based_metric_returns_OK_response-1674182066\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Java_Update_a_log_based_metric_returns_OK_response_1674184712\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Java-Update_a_log_based_metric_returns_OK_response-1674184712\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1674188253\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1674188253\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1674213689\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1674213689\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Update_a_log_based_metric_returns_OK_response_1674221306\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1674221306\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"TestCreatealogbasedmetricreturnsOKresponse1677856551\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Delete_a_log_based_metric_returns_OK_response_1677856552\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Delete_a_log_based_metric_returns_OK_response-1677856552\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_a_log_based_metric_returns_OK_response_1677856552\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_a_log_based_metric_returns_OK_response-1677856552\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_all_log_based_metrics_returns_OK_response_1677856553\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_all_log_based_metrics_returns_OK_response-1677856553\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Update_a_log_based_metric_returns_OK_response_1677856554\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1677856554\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Update_a_log_based_metric_with_include_percentiles_field_returns_OK_response_1677856555\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_with_include_percentiles_field_returns_OK_response-1677856555\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1680236286\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1680236286\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Go_Update_a_log_based_metric_with_include_percentiles_field_returns_OK_response_1680308028\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Go-Update_a_log_based_metric_with_include_percentiles_field_returns_OK_response-1680308028\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":false}},\"type\":\"logs_metrics\"},{\"id\":\"ExampleLogsMetric\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"},{\"id\":\"ExampleLogsMetric0\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"},{\"id\":\"ExampleLogsMetric1\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"},{\"id\":\"ExampleLogsMetric2\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"},{\"id\":\"ExampleLogsMetric3\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"},{\"id\":\"ExampleLogsMetric4\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"},{\"id\":\"ExampleLogsMetric5\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"},{\"id\":\"ExampleLogsMetric6\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"},{\"id\":\"ExampleLogsMetric7\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"},{\"id\":\"ExampleLogsMetric8\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"},{\"id\":\"ExampleLogsMetric9\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"},{\"id\":\"ExampleLogsMetric10\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"},{\"id\":\"ExampleLogsMetric11\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_all_log_based_metrics_returns_OK_response_1686139121\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_all_log_based_metrics_returns_OK_response-1686139121\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 07 Jun 2023 11:58:41 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics/Test_Get_all_log_based_metrics_returns_OK_response_1686139121"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 07 Jun 2023 11:58:41 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"compute\":{\"aggregation_type\":\"count\"},\"filter\":{\"query\":\"source:Test-Get_all_log_based_metrics_returns_OK_response-1686139121\"}},\"id\":\"Test-Get_all_log_based_metrics_returns_OK_response-1686139121\",\"type\":\"logs_metrics\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"Test_Get_all_log_based_metrics_returns_OK_response_1686139121\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_all_log_based_metrics_returns_OK_response-1686139121\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 07 Jun 2023 11:58:41 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"datadog_api_client_python_test_create_a_logbased_metric_returns_ok_response_1607014407.161855\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"go_Feature_Logs_Metrics_Scenario_Get_all_log_based_metrics_returns_OK_response_37807_1608735831\",\"attributes\":{\"filter\":{\"query\":\"source:go-Feature_Logs_Metrics-Scenario_Get_all_log_based_metrics_returns__OK__response-37807-1608735831\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"mlb.to.delete.5\",\"attributes\":{\"filter\":{\"query\":\"service:test\"},\"group_by\":[{\"path\":\"@status\",\"tag_name\":\"status\"}],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":false}},\"type\":\"logs_metrics\"},{\"id\":\"mlb.to.delete.7\",\"attributes\":{\"filter\":{\"query\":\"service:test\"},\"group_by\":[{\"path\":\"@status\",\"tag_name\":\"status\"}],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"tf_TestAccDatadogLogsMetric_import_local_1612175492\",\"attributes\":{\"filter\":{\"query\":\"service:test\"},\"group_by\":[{\"path\":\"@my.status\",\"tag_name\":\"status\"},{\"path\":\"service\",\"tag_name\":\"service\"}],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":false}},\"type\":\"logs_metrics\"},{\"id\":\"Typescript_Create_a_log_based_metric_returns_OK_response_1613674902.961\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Typescript_Get_a_log_based_metric_returns_OK_response_1613674904.843\",\"attributes\":{\"filter\":{\"query\":\"source:Typescript-Get_a_log_based_metric_returns_OK_response-1613674904.843\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Typescript_Get_all_log_based_metrics_returns_OK_response_1613674905.893\",\"attributes\":{\"filter\":{\"query\":\"source:Typescript-Get_all_log_based_metrics_returns_OK_response-1613674905.893\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Typescript_Update_a_log_based_metric_returns_OK_response_1613674907.023\",\"attributes\":{\"filter\":{\"query\":\"source:Typescript-Update_a_log_based_metric_returns_OK_response-1613674907.023-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Typescript_Create_a_log_based_metric_returns_OK_response_1613675381.562\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Typescript_Get_a_log_based_metric_returns_OK_response_1613675383.575\",\"attributes\":{\"filter\":{\"query\":\"source:Typescript-Get_a_log_based_metric_returns_OK_response-1613675383.575\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Typescript_Get_all_log_based_metrics_returns_OK_response_1613675384.642\",\"attributes\":{\"filter\":{\"query\":\"source:Typescript-Get_all_log_based_metrics_returns_OK_response-1613675384.642\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Typescript_Update_a_log_based_metric_returns_OK_response_1613675386.161\",\"attributes\":{\"filter\":{\"query\":\"source:Typescript-Update_a_log_based_metric_returns_OK_response-1613675386.161-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Typescript_Create_a_log_based_metric_returns_OK_response_1614072176.745\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Typescript_Delete_a_log_based_metric_returns_OK_response_1614072181.786\",\"attributes\":{\"filter\":{\"query\":\"source:Typescript-Delete_a_log_based_metric_returns_OK_response-1614072181.786\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Typescript_Get_all_log_based_metrics_returns_OK_response_1614072193.929\",\"attributes\":{\"filter\":{\"query\":\"source:Typescript-Get_all_log_based_metrics_returns_OK_response-1614072193.929\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Typescript_Get_all_log_based_metrics_returns_OK_response_1614073795.81\",\"attributes\":{\"filter\":{\"query\":\"source:Typescript-Get_all_log_based_metrics_returns_OK_response-1614073795.81\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"ruby_Update_a_log_based_metric_returns_OK_response_1614194424\",\"attributes\":{\"filter\":{\"query\":\"source:ruby-Update_a_log_based_metric_returns_OK_response-1614194424-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"datadog_api_client_python_test_create_a_logbased_metric_returns_ok_response_1608595661.620162\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"datadog_api_client_python_test_delete_a_logbased_metric_returns_ok_response_1608595670.983057\",\"attributes\":{\"filter\":{\"query\":\"source:datadog-api-client-python-test_delete_a_logbased_metric_returns_ok_response-1608595670.983057\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"datadog_api_client_python_test_get_a_logbased_metric_returns_ok_response_1608595669.067374\",\"attributes\":{\"filter\":{\"query\":\"source:datadog-api-client-python-test_get_a_logbased_metric_returns_ok_response-1608595669.067374\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"datadog_api_client_python_test_get_all_logbased_metrics_returns_ok_response_1608595675.324394\",\"attributes\":{\"filter\":{\"query\":\"source:datadog-api-client-python-test_get_all_logbased_metrics_returns_ok_response-1608595675.324394\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Typescript_Create_a_log_based_metric_returns_OK_response_1614896593.355\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"datadog_api_client_python_test_update_a_logbased_metric_returns_ok_response_1608595673.013269\",\"attributes\":{\"filter\":{\"query\":\"source:datadog-api-client-python-test_update_a_logbased_metric_returns_ok_response-1608595673.013269\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Typescript_Create_a_log_based_metric_returns_OK_response_1616149774.73\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"go_Feature_Logs_Metrics_Scenario_Get_all_log_based_metrics_returns_OK_response_54239_1616717117\",\"attributes\":{\"filter\":{\"query\":\"source:go-Feature_Logs_Metrics-Scenario_Get_all_log_based_metrics_returns__OK__response-54239-1616717117\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"datadog_api_client_python_test_create_a_logbased_metric_returns_ok_response_1617014547.984513\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"datadog_api_client_python_test_create_a_logbased_metric_returns_ok_response_1617189622.037749\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"datadog_api_client_python_test_create_a_logbased_metric_returns_ok_response_1617190464.536072\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Typescript_Get_all_log_based_metrics_returns_OK_response_1617197330.21\",\"attributes\":{\"filter\":{\"query\":\"source:Typescript-Get_all_log_based_metrics_returns_OK_response-1617197330.21\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"go_Feature_Logs_Metrics_Scenario_Get_all_log_based_metrics_returns_OK_response_57310_1617968823\",\"attributes\":{\"filter\":{\"query\":\"source:go-Feature_Logs_Metrics-Scenario_Get_all_log_based_metrics_returns__OK__response-57310-1617968823\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"ruby_Create_a_log_based_metric_returns_OK_response_1617976084\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"ruby_Get_a_log_based_metric_returns_OK_response_1617980078\",\"attributes\":{\"filter\":{\"query\":\"source:ruby-Get_a_log_based_metric_returns_OK_response-1617980078\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Delete_a_log_based_metric_returns_OK_response_1618220982\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Delete_a_log_based_metric_returns_OK_response-1618220982\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"datadog_api_client_python_test_get_all_logbased_metrics_returns_ok_response_1618226967.951386\",\"attributes\":{\"filter\":{\"query\":\"source:datadog-api-client-python-test_get_all_logbased_metrics_returns_ok_response-1618226967.951386\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1618245179\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1618245179\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Java_Create_a_log_based_metric_returns_OK_response_1618407299\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Java_Get_a_log_based_metric_returns_OK_response_1618418141\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Java-Get_a_log_based_metric_returns_OK_response-1618418141\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Java_Delete_a_log_based_metric_returns_OK_response_1618580126\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Java-Delete_a_log_based_metric_returns_OK_response-1618580126\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Python_Get_a_log_based_metric_returns_OK_response_1618828162\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Python-Get_a_log_based_metric_returns_OK_response-1618828162\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Create_a_log_based_metric_returns_OK_response_1618831542\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Python_Get_all_log_based_metrics_returns_OK_response_1618835641\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Python-Get_all_log_based_metrics_returns_OK_response-1618835641\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1618835641\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1618835641\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Go_Update_a_log_based_metric_returns_OK_response_1618840619\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Go-Update_a_log_based_metric_returns_OK_response-1618840619\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Ruby_Get_all_log_based_metrics_returns_OK_response_1619689433\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Ruby-Get_all_log_based_metrics_returns_OK_response-1619689433\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Python_Update_a_log_based_metric_returns_OK_response_1619711301\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Python-Update_a_log_based_metric_returns_OK_response-1619711301\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Ruby_Update_a_log_based_metric_returns_OK_response_1620930847\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Ruby-Update_a_log_based_metric_returns_OK_response-1620930847\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Java_Update_a_log_based_metric_returns_OK_response_1626363689\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Java-Update_a_log_based_metric_returns_OK_response-1626363689\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Java_Update_a_log_based_metric_returns_OK_response_1628583537\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Java-Update_a_log_based_metric_returns_OK_response-1628583537-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Delete_a_log_based_metric_returns_OK_response_1631884323\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Delete_a_log_based_metric_returns_OK_response-1631884323\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Update_a_log_based_metric_returns_OK_response_1631884326\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1631884326\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_a_log_based_metric_returns_OK_response_1631884330\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_a_log_based_metric_returns_OK_response-1631884330\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_all_log_based_metrics_returns_OK_response_1631884333\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_all_log_based_metrics_returns_OK_response-1631884333\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Update_a_log_based_metric_returns_OK_response_1631884446\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1631884446\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Delete_a_log_based_metric_returns_OK_response_1631884451\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Delete_a_log_based_metric_returns_OK_response-1631884451\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_all_log_based_metrics_returns_OK_response_1631884452\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_all_log_based_metrics_returns_OK_response-1631884452\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_a_log_based_metric_returns_OK_response_1631884457\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_a_log_based_metric_returns_OK_response-1631884457\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_all_log_based_metrics_returns_OK_response_1631884657\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_all_log_based_metrics_returns_OK_response-1631884657\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_a_log_based_metric_returns_OK_response_1631884663\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_a_log_based_metric_returns_OK_response-1631884663\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Delete_a_log_based_metric_returns_OK_response_1631884664\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Delete_a_log_based_metric_returns_OK_response-1631884664\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Update_a_log_based_metric_returns_OK_response_1631884670\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1631884670\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Update_a_log_based_metric_returns_OK_response_1631884723\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1631884723\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Delete_a_log_based_metric_returns_OK_response_1631884727\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Delete_a_log_based_metric_returns_OK_response-1631884727\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_all_log_based_metrics_returns_OK_response_1631884729\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_all_log_based_metrics_returns_OK_response-1631884729\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_a_log_based_metric_returns_OK_response_1631884731\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_a_log_based_metric_returns_OK_response-1631884731\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Python_Delete_a_log_based_metric_returns_OK_response_1631886015\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Python-Delete_a_log_based_metric_returns_OK_response-1631886015\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Python_Update_a_log_based_metric_returns_OK_response_1631886022\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Python-Update_a_log_based_metric_returns_OK_response-1631886022\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Python_Get_all_log_based_metrics_returns_OK_response_1631886029\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Python-Get_all_log_based_metrics_returns_OK_response-1631886029\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Python_Get_a_log_based_metric_returns_OK_response_1631886036\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Python-Get_a_log_based_metric_returns_OK_response-1631886036\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Delete_a_log_based_metric_returns_OK_response_1632133176\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Delete_a_log_based_metric_returns_OK_response-1632133176\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632328087\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632817303\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632817303\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632817303\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632817304\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632817304\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632817304\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632817304-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632820224\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632820225\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632820225\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632820225\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632820225\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632820225\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632820225-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632820425\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632820426\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632820426\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632820426\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632820426\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632820427\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632820427-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632821189\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632821190\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632821190\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632821191\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632821191\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632821192\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632821192-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632821487\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632821488\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632821488\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632821488\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632821488\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632821488\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632821488-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632824835\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632824837\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632824837\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632824838\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632824838\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632824838\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632824838-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632826421\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632826422\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632826422\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632826423\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632826423\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632826423\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632826423-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632827387\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632827389\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632827389\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632827390\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632827390\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632827391\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632827391-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632828986\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632828987\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632828987\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632828987\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632828987\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632828987\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632828987-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632832883\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632832884\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632832884\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632832884\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632832884\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632832885\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632832885-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632833151\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632833152\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632833152\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632833152\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632833152\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632833152\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632833152-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632836431\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632836432\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632836432\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632836432\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632836432\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632836433\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632836433-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632839523\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632839523\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632839523\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632839523\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632839523\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632839524\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632839524-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632839540\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632839544\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632839544\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632839545\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632839545\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632839545\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632839545-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632839741\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632839742\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632839742\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632839742\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632839742\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632839743\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632839743-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632841151\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632841152\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632841152\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632841153\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632841153\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632841153\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632841153-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632842468\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632842469\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632842469\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632842469\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632842469\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632843061\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632843062\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632843062\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632843063\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632843063\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632843063\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632843063-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632844008\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632844008\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632844008\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632844009\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632844009\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632844009\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632844009-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632844127\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632844127\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632844127\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632844127\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632844127\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632844128\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632844128-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632846619\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632846621\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632846621\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632846622\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632846622\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632846622\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632846622-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632847587\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632847588\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632847588\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632847589\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632847589-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632848076\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632848077\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632848077\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632848078\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632848078\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632848079\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632848079-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632848436\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632848437\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632848437\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632848438\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632848438\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632848438\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632848438-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632848876\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632848878\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632848878\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632848878\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632848878\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632848878\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632848878-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632849661\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632849663\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632849663\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632849664\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632849664\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632849665\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632849665-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632849879\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632849880\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632849880\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632849880\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632849880\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632849881\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632849881-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632851109\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632851110\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632851110\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632851111\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632851111\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632851112\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632851112-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632888511\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632888512\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632888512\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632888512\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632888512\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632888513\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632888513-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632898971\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632898972\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632898972\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632898972\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632898972\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632898973\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632898973-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632899187\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632899188\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632899188\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632899188\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632899188\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632899188\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632899188-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632902887\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632902887\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632902887\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632902887\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632902887\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632902887-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632903468\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632903469\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632903469\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632903470\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632903470\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632903470\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632903470-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632904020\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632904020\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632904020\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632904021\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632904021\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632904021\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632904021-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632907313\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632907313\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632907313\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632907314\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632907314\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632907314\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632907314-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632907331\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632907331\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632907333\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632907333\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632907333\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632907333-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632908380\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632908381\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632908381\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632908382\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632908382\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632908382\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632908382-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632909874\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632909875\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632909875\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632909876\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632909876\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632909877\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632909877-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632910728\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632910729\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632910729\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632910730\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632910730\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632910731\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632910731-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632913792\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632913794\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632913794\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632913794\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632913794\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632913795\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632913795-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632918172\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632918173\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632918173\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632918174\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632918174\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632918174\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632918174-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632919344\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632919345\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632919345\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632919345\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632919345\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632919345\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632919345-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632919560\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632919561\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632919561\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632919561\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632919561\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632919562\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632919562-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632921859\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632921860\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632921860\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632921860\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632921860\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632921861\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632921861-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632922194\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632922195\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632922195\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632922195\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632922195\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632922195\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632922195-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632928242\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632928243\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632928243\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632928243\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632928243\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632928243\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632928243-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Go_Get_a_log_based_metric_returns_OK_response_1632929648\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Go-Get_a_log_based_metric_returns_OK_response-1632929648\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632933825\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632933826\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632933826\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632933827\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632933827\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632933828\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632933828-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632974958\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632974959\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632974959\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632974959\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632974959\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632974959\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632974959-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632986079\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632986079\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632986079\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632986080\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632986080\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632986080\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632986080-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632989750\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632989751\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632989751\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632989751\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632989751\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632989751\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632989751-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1632997303\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1632997304\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1632997304\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1632997304\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1632997304\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1632997304\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1632997304-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633000123\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1633000124\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1633000124\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1633000125\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1633000125\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1633000126\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1633000126-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633003782\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1633003783\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1633003783\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1633003784\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1633003784\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1633003784\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1633003784-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633004062\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1633004062\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1633004062\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1633004063\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1633004063\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1633004063\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1633004063-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633006696\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1633006696\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1633006696\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1633006697\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1633006697\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1633006697\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1633006697-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633007533\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1633007534\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1633007534\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1633007534\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1633007534\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1633007535\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1633007535-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633011091\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1633011092\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1633011092\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1633011093\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1633011093\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1633011094\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1633011094-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633011226\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1633011227\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1633011227\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1633011228\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1633011228\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1633011229\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1633011229-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1633015432\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1633015433\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1633015433\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1633015434\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1633015434\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1633015435\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1633015435-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Go_Create_a_log_based_metric_returns_OK_response_1634316108\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Go_Get_all_log_based_metrics_returns_OK_response_1636639366\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Go-Get_all_log_based_metrics_returns_OK_response-1636639366\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Ruby_Update_a_log_based_metric_returns_OK_response_1636639366\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Ruby-Update_a_log_based_metric_returns_OK_response-1636639366\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Create_a_log_based_metric_returns_OK_response_1618491718\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[{\"path\":\"source\",\"tag_name\":\"source\"},{\"path\":\"status\",\"tag_name\":\"status\"}],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Create_a_log_based_metric_returns_OK_response_1637063323\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_a_log_based_metric_returns_OK_response_1637063324\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_a_log_based_metric_returns_OK_response-1637063324\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_all_log_based_metrics_returns_OK_response_1637063324\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_all_log_based_metrics_returns_OK_response-1637063324\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Update_a_log_based_metric_returns_OK_response_1637063325\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1637063325-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Create_a_log_based_metric_returns_OK_response_1637070501\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_a_log_based_metric_returns_OK_response_1637070502\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_a_log_based_metric_returns_OK_response-1637070502\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_all_log_based_metrics_returns_OK_response_1637070503\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_all_log_based_metrics_returns_OK_response-1637070503\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Update_a_log_based_metric_returns_OK_response_1637070505\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1637070505-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Create_a_log_based_metric_returns_OK_response_1637077938\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_a_log_based_metric_returns_OK_response_1637077940\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_a_log_based_metric_returns_OK_response-1637077940\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_all_log_based_metrics_returns_OK_response_1637077941\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_all_log_based_metrics_returns_OK_response-1637077941\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Update_a_log_based_metric_returns_OK_response_1637077942\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1637077942-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Create_a_log_based_metric_returns_OK_response_1637078452\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_a_log_based_metric_returns_OK_response_1637078453\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_a_log_based_metric_returns_OK_response-1637078453\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_all_log_based_metrics_returns_OK_response_1637078454\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_all_log_based_metrics_returns_OK_response-1637078454\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Update_a_log_based_metric_returns_OK_response_1637078455\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1637078455-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Update_a_log_based_metric_returns_OK_response_1637140745\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1637140745-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Delete_a_log_based_metric_returns_OK_response_1618491719\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Delete_a_log_based_metric_returns_OK_response-1618491719\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_a_log_based_metric_returns_OK_response_1618491721\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_a_log_based_metric_returns_OK_response-1618491721\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_all_log_based_metrics_returns_OK_response_1618491725\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_all_log_based_metrics_returns_OK_response-1618491725\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Create_a_log_based_metric_returns_OK_response_1637141184\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_a_log_based_metric_returns_OK_response_1637141185\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_a_log_based_metric_returns_OK_response-1637141185\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_all_log_based_metrics_returns_OK_response_1637141186\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_all_log_based_metrics_returns_OK_response-1637141186\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Update_a_log_based_metric_returns_OK_response_1637141187\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1637141187-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Python_Get_a_log_based_metric_returns_OK_response_1638987050\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Python-Get_a_log_based_metric_returns_OK_response-1638987050\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Python_Get_all_log_based_metrics_returns_OK_response_1638987051\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Python-Get_all_log_based_metrics_returns_OK_response-1638987051\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Python_Delete_a_log_based_metric_returns_OK_response_1638987052\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Python-Delete_a_log_based_metric_returns_OK_response-1638987052\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Python_Update_a_log_based_metric_returns_OK_response_1638987054\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Python-Update_a_log_based_metric_returns_OK_response-1638987054\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Python_Create_a_log_based_metric_returns_OK_response_1638987055\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1640112763\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Create_a_log_based_metric_returns_OK_response_1640112922\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1642756658\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Delete_a_log_based_metric_returns_OK_response_1642756658\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Delete_a_log_based_metric_returns_OK_response-1642756658\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1642756658\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1642756658\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1642756659\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1642756659\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1642756659\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1642756659\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Create_a_log_based_metric_returns_OK_response_1651997960\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Delete_a_log_based_metric_returns_OK_response_1651997961\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Delete_a_log_based_metric_returns_OK_response-1651997961\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1651997962\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1651997962\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_all_log_based_metrics_returns_OK_response_1651997962\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_all_log_based_metrics_returns_OK_response-1651997962\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1651997963\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1651997963-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1657945126\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1657945126-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Example_Create_a_log_based_metric_returns_OK_response_1665705374\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Example_Update_a_log_based_metric_returns_OK_response_1665705415\",\"attributes\":{\"filter\":{\"query\":\"source:Example-Update_a_log_based_metric_returns_OK_response_1665705415-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"tf_TestAccDatadogLogsMetric_Basic_local_1669398403\",\"attributes\":{\"filter\":{\"query\":\"service:test\"},\"group_by\":[{\"path\":\"@my.status\",\"tag_name\":\"status\"},{\"path\":\"service\",\"tag_name\":\"service\"}],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":false}},\"type\":\"logs_metrics\"},{\"id\":\"Example_Get_all_log_based_metrics_returns_OK_response_1670255553\",\"attributes\":{\"filter\":{\"query\":\"source:Example-Get_all_log_based_metrics_returns_OK_response_1670255553\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Example_Get_a_log_based_metric_returns_OK_response_1671998052\",\"attributes\":{\"filter\":{\"query\":\"source:Example-Get_a_log_based_metric_returns_OK_response_1671998052\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Go_Update_a_log_based_metric_returns_OK_response_1674173548\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Go-Update_a_log_based_metric_returns_OK_response-1674173548\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Ruby_Update_a_log_based_metric_returns_OK_response_1674182066\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Ruby-Update_a_log_based_metric_returns_OK_response-1674182066\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Java_Update_a_log_based_metric_returns_OK_response_1674184712\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Java-Update_a_log_based_metric_returns_OK_response-1674184712\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1674188253\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1674188253\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Update_a_log_based_metric_returns_OK_response_1674213689\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Update_a_log_based_metric_returns_OK_response-1674213689\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Update_a_log_based_metric_returns_OK_response_1674221306\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1674221306\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"TestCreatealogbasedmetricreturnsOKresponse1677856551\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Delete_a_log_based_metric_returns_OK_response_1677856552\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Delete_a_log_based_metric_returns_OK_response-1677856552\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_a_log_based_metric_returns_OK_response_1677856552\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_a_log_based_metric_returns_OK_response-1677856552\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_all_log_based_metrics_returns_OK_response_1677856553\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_all_log_based_metrics_returns_OK_response-1677856553\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Update_a_log_based_metric_returns_OK_response_1677856554\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1677856554\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Update_a_log_based_metric_with_include_percentiles_field_returns_OK_response_1677856555\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_with_include_percentiles_field_returns_OK_response-1677856555\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Typescript_Get_a_log_based_metric_returns_OK_response_1680236286\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Typescript-Get_a_log_based_metric_returns_OK_response-1680236286\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Go_Update_a_log_based_metric_with_include_percentiles_field_returns_OK_response_1680308028\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Go-Update_a_log_based_metric_with_include_percentiles_field_returns_OK_response-1680308028\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":false}},\"type\":\"logs_metrics\"},{\"id\":\"ExampleLogsMetric\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"},{\"id\":\"ExampleLogsMetric0\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"},{\"id\":\"ExampleLogsMetric1\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"},{\"id\":\"ExampleLogsMetric2\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"},{\"id\":\"ExampleLogsMetric3\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"},{\"id\":\"ExampleLogsMetric4\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"},{\"id\":\"ExampleLogsMetric5\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"},{\"id\":\"ExampleLogsMetric6\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"},{\"id\":\"ExampleLogsMetric7\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"},{\"id\":\"ExampleLogsMetric8\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"},{\"id\":\"ExampleLogsMetric9\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"},{\"id\":\"ExampleLogsMetric10\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"},{\"id\":\"ExampleLogsMetric11\",\"attributes\":{\"filter\":{\"query\":\"*\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"},{\"id\":\"Test_Get_all_log_based_metrics_returns_OK_response_1686139121\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_all_log_based_metrics_returns_OK_response-1686139121\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 07 Jun 2023 11:58:41 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics/Test_Get_all_log_based_metrics_returns_OK_response_1686139121" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 07 Jun 2023 11:58:41 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_metrics/Update-a-log-based-metric-returns-OK-response.json b/tests/scenarios/cassettes/v2/logs_metrics/Update-a-log-based-metric-returns-OK-response.json index a1dd8cb98..b50477788 100644 --- a/tests/scenarios/cassettes/v2/logs_metrics/Update-a-log-based-metric-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/logs_metrics/Update-a-log-based-metric-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"compute\":{\"aggregation_type\":\"count\"},\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1686138930\"}},\"id\":\"Test-Update_a_log_based_metric_returns_OK_response-1686138930\",\"type\":\"logs_metrics\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics"}, "response": {"body": {"string": "{\"data\":{\"id\":\"Test_Update_a_log_based_metric_returns_OK_response_1686138930\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1686138930\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 07 Jun 2023 11:55:30 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1686138930-updated\"}},\"type\":\"logs_metrics\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics/Test_Update_a_log_based_metric_returns_OK_response_1686138930"}, "response": {"body": {"string": "{\"data\":{\"id\":\"Test_Update_a_log_based_metric_returns_OK_response_1686138930\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1686138930-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 07 Jun 2023 11:55:30 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics/Test_Update_a_log_based_metric_returns_OK_response_1686138930"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 07 Jun 2023 11:55:30 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"compute\":{\"aggregation_type\":\"count\"},\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1686138930\"}},\"id\":\"Test-Update_a_log_based_metric_returns_OK_response-1686138930\",\"type\":\"logs_metrics\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"Test_Update_a_log_based_metric_returns_OK_response_1686138930\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1686138930\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 07 Jun 2023 11:55:30 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1686138930-updated\"}},\"type\":\"logs_metrics\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics/Test_Update_a_log_based_metric_returns_OK_response_1686138930" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"Test_Update_a_log_based_metric_returns_OK_response_1686138930\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_returns_OK_response-1686138930-updated\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"count\"}},\"type\":\"logs_metrics\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 07 Jun 2023 11:55:30 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics/Test_Update_a_log_based_metric_returns_OK_response_1686138930" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 07 Jun 2023 11:55:30 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/logs_metrics/Update-a-log-based-metric-with-include-percentiles-field-returns-OK-response.json b/tests/scenarios/cassettes/v2/logs_metrics/Update-a-log-based-metric-with-include-percentiles-field-returns-OK-response.json index 1d9e86c2b..e755a1060 100644 --- a/tests/scenarios/cassettes/v2/logs_metrics/Update-a-log-based-metric-with-include-percentiles-field-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/logs_metrics/Update-a-log-based-metric-with-include-percentiles-field-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"compute\":{\"aggregation_type\":\"distribution\",\"include_percentiles\":true,\"path\":\"@duration\"},\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_with_include_percentiles_field_returns_OK_response-1686138962\"}},\"id\":\"Test-Update_a_log_based_metric_with_include_percentiles_field_returns_OK_response-1686138962\",\"type\":\"logs_metrics\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics"}, "response": {"body": {"string": "{\"data\":{\"id\":\"Test_Update_a_log_based_metric_with_include_percentiles_field_returns_OK_response_1686138962\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_with_include_percentiles_field_returns_OK_response-1686138962\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 07 Jun 2023 11:56:02 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"compute\":{\"include_percentiles\":false}},\"type\":\"logs_metrics\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics/Test_Update_a_log_based_metric_with_include_percentiles_field_returns_OK_response_1686138962"}, "response": {"body": {"string": "{\"data\":{\"id\":\"Test_Update_a_log_based_metric_with_include_percentiles_field_returns_OK_response_1686138962\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_with_include_percentiles_field_returns_OK_response-1686138962\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":false}},\"type\":\"logs_metrics\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 07 Jun 2023 11:56:02 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics/Test_Update_a_log_based_metric_with_include_percentiles_field_returns_OK_response_1686138962"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 07 Jun 2023 11:56:02 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"compute\":{\"aggregation_type\":\"distribution\",\"include_percentiles\":true,\"path\":\"@duration\"},\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_with_include_percentiles_field_returns_OK_response-1686138962\"}},\"id\":\"Test-Update_a_log_based_metric_with_include_percentiles_field_returns_OK_response-1686138962\",\"type\":\"logs_metrics\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"Test_Update_a_log_based_metric_with_include_percentiles_field_returns_OK_response_1686138962\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_with_include_percentiles_field_returns_OK_response-1686138962\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":true}},\"type\":\"logs_metrics\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 07 Jun 2023 11:56:02 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"compute\":{\"include_percentiles\":false}},\"type\":\"logs_metrics\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics/Test_Update_a_log_based_metric_with_include_percentiles_field_returns_OK_response_1686138962" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"Test_Update_a_log_based_metric_with_include_percentiles_field_returns_OK_response_1686138962\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_log_based_metric_with_include_percentiles_field_returns_OK_response-1686138962\"},\"group_by\":[],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":false}},\"type\":\"logs_metrics\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 07 Jun 2023 11:56:02 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/logs/config/metrics/Test_Update_a_log_based_metric_with_include_percentiles_field_returns_OK_response_1686138962" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 07 Jun 2023 11:56:02 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/metrics/Configure-tags-for-multiple-metrics-returns-Accepted-response.json b/tests/scenarios/cassettes/v2/metrics/Configure-tags-for-multiple-metrics-returns-Accepted-response.json index b34ffd338..392707292 100644 --- a/tests/scenarios/cassettes/v2/metrics/Configure-tags-for-multiple-metrics-returns-Accepted-response.json +++ b/tests/scenarios/cassettes/v2/metrics/Configure-tags-for-multiple-metrics-returns-Accepted-response.json @@ -1 +1,131 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"Test-Configure_tags_for_multiple_metrics_returns_Accepted_response-1701962406@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/users"}, "response": {"body": {"string": "{\"data\":{\"type\":\"users\",\"id\":\"1a6aac59-9514-11ee-8d56-0adb1a638a47\",\"attributes\":{\"name\":null,\"handle\":\"test-configure_tags_for_multiple_metrics_returns_accepted_response-1701962406@datadoghq.com\",\"created_at\":\"2023-12-07T15:20:07.014747+00:00\",\"modified_at\":\"2023-12-07T15:20:07.014747+00:00\",\"email\":\"test-configure_tags_for_multiple_metrics_returns_accepted_response-1701962406@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/0a707b27174d49cd592ec7a4fc13bc4d?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"3386799c-00cc-11ea-a77b-eb0f88a49e0f\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 07 Dec 2023 15:20:06 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"emails\":[\"test-configure_tags_for_multiple_metrics_returns_accepted_response-1701962406@datadoghq.com\"],\"tags\":[\"test\",\"testconfiguretagsformultiplemetricsreturnsacceptedresponse1701962406\"]},\"id\":\"system.load.1\",\"type\":\"metric_bulk_configure_tags\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/metrics/config/bulk-tags"}, "response": {"body": {"string": "{\"data\":{\"type\":\"metric_bulk_configure_tags\",\"id\":\"system.load.1\",\"attributes\":{\"tags\":[\"test\",\"testconfiguretagsformultiplemetricsreturnsacceptedresponse1701962406\"],\"emails\":[\"test-configure_tags_for_multiple_metrics_returns_accepted_response-1701962406@datadoghq.com\"],\"status\":\"Accepted\",\"exclude_tags_mode\":null}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 202, "message": "Accepted"}}, "recorded_at": "Thu, 07 Dec 2023 15:20:06 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"emails\":[\"test-configure_tags_for_multiple_metrics_returns_accepted_response-1701962406@datadoghq.com\"]},\"id\":\"system.load.1\",\"type\":\"metric_bulk_configure_tags\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/metrics/config/bulk-tags"}, "response": {"body": {"string": "{\"data\":{\"type\":\"metric_bulk_configure_tags\",\"id\":\"system.load.1\",\"attributes\":{\"emails\":[\"test-configure_tags_for_multiple_metrics_returns_accepted_response-1701962406@datadoghq.com\"],\"status\":\"Accepted\"}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 202, "message": "Accepted"}}, "recorded_at": "Thu, 07 Dec 2023 15:20:06 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/users/1a6aac59-9514-11ee-8d56-0adb1a638a47"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 07 Dec 2023 15:20:06 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"email\":\"Test-Configure_tags_for_multiple_metrics_returns_Accepted_response-1701962406@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/users" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"users\",\"id\":\"1a6aac59-9514-11ee-8d56-0adb1a638a47\",\"attributes\":{\"name\":null,\"handle\":\"test-configure_tags_for_multiple_metrics_returns_accepted_response-1701962406@datadoghq.com\",\"created_at\":\"2023-12-07T15:20:07.014747+00:00\",\"modified_at\":\"2023-12-07T15:20:07.014747+00:00\",\"email\":\"test-configure_tags_for_multiple_metrics_returns_accepted_response-1701962406@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/0a707b27174d49cd592ec7a4fc13bc4d?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"3386799c-00cc-11ea-a77b-eb0f88a49e0f\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 07 Dec 2023 15:20:06 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"emails\":[\"test-configure_tags_for_multiple_metrics_returns_accepted_response-1701962406@datadoghq.com\"],\"tags\":[\"test\",\"testconfiguretagsformultiplemetricsreturnsacceptedresponse1701962406\"]},\"id\":\"system.load.1\",\"type\":\"metric_bulk_configure_tags\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/metrics/config/bulk-tags" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"metric_bulk_configure_tags\",\"id\":\"system.load.1\",\"attributes\":{\"tags\":[\"test\",\"testconfiguretagsformultiplemetricsreturnsacceptedresponse1701962406\"],\"emails\":[\"test-configure_tags_for_multiple_metrics_returns_accepted_response-1701962406@datadoghq.com\"],\"status\":\"Accepted\",\"exclude_tags_mode\":null}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 202, + "message": "Accepted" + } + }, + "recorded_at": "Thu, 07 Dec 2023 15:20:06 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"emails\":[\"test-configure_tags_for_multiple_metrics_returns_accepted_response-1701962406@datadoghq.com\"]},\"id\":\"system.load.1\",\"type\":\"metric_bulk_configure_tags\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/metrics/config/bulk-tags" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"metric_bulk_configure_tags\",\"id\":\"system.load.1\",\"attributes\":{\"emails\":[\"test-configure_tags_for_multiple_metrics_returns_accepted_response-1701962406@datadoghq.com\"],\"status\":\"Accepted\"}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 202, + "message": "Accepted" + } + }, + "recorded_at": "Thu, 07 Dec 2023 15:20:06 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/users/1a6aac59-9514-11ee-8d56-0adb1a638a47" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 07 Dec 2023 15:20:06 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/metrics/Create-a-tag-configuration-returns-Created-response.json b/tests/scenarios/cassettes/v2/metrics/Create-a-tag-configuration-returns-Created-response.json index f626b81cf..da55662b4 100644 --- a/tests/scenarios/cassettes/v2/metrics/Create-a-tag-configuration-returns-Created-response.json +++ b/tests/scenarios/cassettes/v2/metrics/Create-a-tag-configuration-returns-Created-response.json @@ -1 +1,97 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"series\":[{\"metric\":\"TestCreateatagconfigurationreturnsCreatedresponse1652354850\",\"points\":[[1652354850,1.1]],\"tags\":[\"test:ExampleSubmitmetricsreturnsPayloadacceptedresponse\"],\"type\":\"gauge\"}]}", "encoding": null}, "headers": {"Accept": ["text/json, application/json"], "Content-Type": ["text/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/series"}, "response": {"body": {"string": "{\"status\": \"ok\"}", "encoding": null}, "headers": {"Content-Type": ["text/json"]}, "status": {"code": 202, "message": "Accepted"}}, "recorded_at": "Thu, 12 May 2022 11:27:30 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"metric_type\":\"gauge\",\"tags\":[\"app\",\"datacenter\"]},\"id\":\"TestCreateatagconfigurationreturnsCreatedresponse1652354850\",\"type\":\"manage_tags\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/metrics/TestCreateatagconfigurationreturnsCreatedresponse1652354850/tags"}, "response": {"body": {"string": "{\"data\":{\"type\":\"manage_tags\",\"id\":\"TestCreateatagconfigurationreturnsCreatedresponse1652354850\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"created_at\":\"2022-05-12T11:27:35.411959+00:00\",\"modified_at\":\"2022-05-12T11:27:35.411959+00:00\",\"metric_type\":\"gauge\",\"aggregations\":[{\"space\":\"avg\",\"time\":\"avg\"}]}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 11:27:30 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/metrics/TestCreateatagconfigurationreturnsCreatedresponse1652354850/tags"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 11:27:30 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"series\":[{\"metric\":\"TestCreateatagconfigurationreturnsCreatedresponse1652354850\",\"points\":[[1652354850,1.1]],\"tags\":[\"test:ExampleSubmitmetricsreturnsPayloadacceptedresponse\"],\"type\":\"gauge\"}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "text/json, application/json" + ], + "Content-Type": [ + "text/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/series" + }, + "response": { + "body": { + "string": "{\"status\": \"ok\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/json" + ] + }, + "status": { + "code": 202, + "message": "Accepted" + } + }, + "recorded_at": "Thu, 12 May 2022 11:27:30 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"metric_type\":\"gauge\",\"tags\":[\"app\",\"datacenter\"]},\"id\":\"TestCreateatagconfigurationreturnsCreatedresponse1652354850\",\"type\":\"manage_tags\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/metrics/TestCreateatagconfigurationreturnsCreatedresponse1652354850/tags" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"manage_tags\",\"id\":\"TestCreateatagconfigurationreturnsCreatedresponse1652354850\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"created_at\":\"2022-05-12T11:27:35.411959+00:00\",\"modified_at\":\"2022-05-12T11:27:35.411959+00:00\",\"metric_type\":\"gauge\",\"aggregations\":[{\"space\":\"avg\",\"time\":\"avg\"}]}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 11:27:30 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/metrics/TestCreateatagconfigurationreturnsCreatedresponse1652354850/tags" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 11:27:30 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/metrics/Delete-a-tag-configuration-returns-No-Content-response.json b/tests/scenarios/cassettes/v2/metrics/Delete-a-tag-configuration-returns-No-Content-response.json index 5dc06a409..79d11e85a 100644 --- a/tests/scenarios/cassettes/v2/metrics/Delete-a-tag-configuration-returns-No-Content-response.json +++ b/tests/scenarios/cassettes/v2/metrics/Delete-a-tag-configuration-returns-No-Content-response.json @@ -1 +1,125 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"series\":[{\"metric\":\"TestDeleteatagconfigurationreturnsNoContentresponse1652354788\",\"points\":[[1652354788,1.1]],\"tags\":[\"test:ExampleSubmitmetricsreturnsPayloadacceptedresponse\"],\"type\":\"gauge\"}]}", "encoding": null}, "headers": {"Accept": ["text/json, application/json"], "Content-Type": ["text/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/series"}, "response": {"body": {"string": "{\"status\": \"ok\"}", "encoding": null}, "headers": {"Content-Type": ["text/json"]}, "status": {"code": 202, "message": "Accepted"}}, "recorded_at": "Thu, 12 May 2022 11:26:28 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"metric_type\":\"gauge\",\"tags\":[\"app\",\"datacenter\",\"TestDeleteatagconfigurationreturnsNoContentresponse1652354788\"]},\"id\":\"TestDeleteatagconfigurationreturnsNoContentresponse1652354788\",\"type\":\"manage_tags\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/metrics/TestDeleteatagconfigurationreturnsNoContentresponse1652354788/tags"}, "response": {"body": {"string": "{\"data\":{\"type\":\"manage_tags\",\"id\":\"TestDeleteatagconfigurationreturnsNoContentresponse1652354788\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestDeleteatagconfigurationreturnsNoContentresponse1652354788\"],\"created_at\":\"2022-05-12T11:26:33.849417+00:00\",\"modified_at\":\"2022-05-12T11:26:33.849417+00:00\",\"metric_type\":\"gauge\",\"aggregations\":[{\"space\":\"avg\",\"time\":\"avg\"}]}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 11:26:28 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/metrics/TestDeleteatagconfigurationreturnsNoContentresponse1652354788/tags"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 11:26:28 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/metrics/TestDeleteatagconfigurationreturnsNoContentresponse1652354788/tags"}, "response": {"body": {"string": "{\"errors\": [\"TestDeleteatagconfigurationreturnsNoContentresponse1652354788 not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 12 May 2022 11:26:28 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"series\":[{\"metric\":\"TestDeleteatagconfigurationreturnsNoContentresponse1652354788\",\"points\":[[1652354788,1.1]],\"tags\":[\"test:ExampleSubmitmetricsreturnsPayloadacceptedresponse\"],\"type\":\"gauge\"}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "text/json, application/json" + ], + "Content-Type": [ + "text/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/series" + }, + "response": { + "body": { + "string": "{\"status\": \"ok\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/json" + ] + }, + "status": { + "code": 202, + "message": "Accepted" + } + }, + "recorded_at": "Thu, 12 May 2022 11:26:28 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"metric_type\":\"gauge\",\"tags\":[\"app\",\"datacenter\",\"TestDeleteatagconfigurationreturnsNoContentresponse1652354788\"]},\"id\":\"TestDeleteatagconfigurationreturnsNoContentresponse1652354788\",\"type\":\"manage_tags\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/metrics/TestDeleteatagconfigurationreturnsNoContentresponse1652354788/tags" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"manage_tags\",\"id\":\"TestDeleteatagconfigurationreturnsNoContentresponse1652354788\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestDeleteatagconfigurationreturnsNoContentresponse1652354788\"],\"created_at\":\"2022-05-12T11:26:33.849417+00:00\",\"modified_at\":\"2022-05-12T11:26:33.849417+00:00\",\"metric_type\":\"gauge\",\"aggregations\":[{\"space\":\"avg\",\"time\":\"avg\"}]}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 11:26:28 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/metrics/TestDeleteatagconfigurationreturnsNoContentresponse1652354788/tags" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 11:26:28 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/metrics/TestDeleteatagconfigurationreturnsNoContentresponse1652354788/tags" + }, + "response": { + "body": { + "string": "{\"errors\": [\"TestDeleteatagconfigurationreturnsNoContentresponse1652354788 not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 12 May 2022 11:26:28 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/metrics/Get-a-list-of-metrics-with-a-tag-filter-returns-Success-response.json b/tests/scenarios/cassettes/v2/metrics/Get-a-list-of-metrics-with-a-tag-filter-returns-Success-response.json index 4d099f74d..a1bdd9c07 100644 --- a/tests/scenarios/cassettes/v2/metrics/Get-a-list-of-metrics-with-a-tag-filter-returns-Success-response.json +++ b/tests/scenarios/cassettes/v2/metrics/Get-a-list-of-metrics-with-a-tag-filter-returns-Success-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/metrics?filter%5Btags%5D=TestGetalistofmetricswithatagfilterreturnsSuccessresponse1662033550"}, "response": {"body": {"string": "{\"data\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 01 Sep 2022 11:59:10 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/metrics?filter%5Btags%5D=TestGetalistofmetricswithatagfilterreturnsSuccessresponse1662033550" + }, + "response": { + "body": { + "string": "{\"data\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 01 Sep 2022 11:59:10 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/metrics/Get-a-list-of-metrics-with-configured-filter-returns-Success-response.json b/tests/scenarios/cassettes/v2/metrics/Get-a-list-of-metrics-with-configured-filter-returns-Success-response.json index d9a89dd69..008f8356c 100644 --- a/tests/scenarios/cassettes/v2/metrics/Get-a-list-of-metrics-with-configured-filter-returns-Success-response.json +++ b/tests/scenarios/cassettes/v2/metrics/Get-a-list-of-metrics-with-configured-filter-returns-Success-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/metrics?filter%5Bconfigured%5D=true"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"manage_tags\",\"id\":\"test.metric.1\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"created_at\":\"2022-03-24T18:23:55.957002+00:00\",\"modified_at\":\"2022-03-28T14:34:32.618807+00:00\",\"metric_type\":\"gauge\",\"aggregations\":[{\"space\":\"avg\",\"time\":\"avg\"}]}},{\"type\":\"manage_tags\",\"id\":\"foo\",\"attributes\":{\"tags\":[\"datacenter\",\"sport\"],\"created_at\":\"2021-10-27T12:35:56.242671+00:00\",\"modified_at\":\"2021-10-27T12:41:22.413540+00:00\",\"metric_type\":\"count\",\"aggregations\":[{\"space\":\"sum\",\"time\":\"sum\"}]}},{\"type\":\"manage_tags\",\"id\":\"ExampleListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1653177320\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"ExampleListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1653177320\"],\"created_at\":\"2022-05-21T23:55:28.435000+00:00\",\"modified_at\":\"2022-05-21T23:55:28.435000+00:00\",\"metric_type\":\"gauge\",\"aggregations\":[{\"space\":\"avg\",\"time\":\"avg\"}]}},{\"type\":\"manage_tags\",\"id\":\"javaCreateatagconfigu1617241053\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-04-01T01:37:34.078032+00:00\",\"modified_at\":\"2021-05-07T09:02:37.581544+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"rubyCreateatagconfigurationreturnsCreatedresponse1616498653\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-23T11:24:13.435931+00:00\",\"modified_at\":\"2021-03-23T11:24:13.435931+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestRubyListtagsbymetricnamereturnsSuccessresponse1618241083\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestRubyListtagsbymetricnamereturnsSuccessresponse1618241083\"],\"include_percentiles\":false,\"created_at\":\"2021-04-12T15:24:43.937851+00:00\",\"modified_at\":\"2021-04-12T15:24:43.937851+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioCreateaTagConfigurationreturnsCreatedresponse462771613138431\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-02-12T14:00:32.059033+00:00\",\"modified_at\":\"2021-02-12T14:00:32.059033+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioDeleteaTagConfigurationreturnsNoContentresponse462771613138432\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioDeleteaTagConfigurationreturnsNoContentresponse462771613138432\"],\"include_percentiles\":false,\"created_at\":\"2021-02-12T14:00:32.286794+00:00\",\"modified_at\":\"2021-02-12T14:00:32.286794+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListTagConfigurationbyNamereturnsSuccessresponse462771613138432\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioListTagConfigurationbyNamereturnsSuccessresponse462771613138432\"],\"include_percentiles\":false,\"created_at\":\"2021-02-12T14:00:32.668585+00:00\",\"modified_at\":\"2021-02-12T14:00:32.668585+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListTagConfigurationsreturnsSuccessresponse462771613138432\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioListTagConfigurationsreturnsSuccessresponse462771613138432\"],\"include_percentiles\":false,\"created_at\":\"2021-02-12T14:00:32.953685+00:00\",\"modified_at\":\"2021-02-12T14:00:32.953685+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioUpdateaTagConfigurationreturnsOKresponse462771613138437\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioUpdateaTagConfigurationreturnsOKresponse462771613138437\"],\"include_percentiles\":false,\"created_at\":\"2021-02-12T14:00:37.707422+00:00\",\"modified_at\":\"2021-02-12T14:00:37.707422+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestcreateatagconfigurationreturnscreatedresponse1613308647656458\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-02-14T13:17:28.200159+00:00\",\"modified_at\":\"2021-02-14T13:17:28.200159+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaDeleteaTagConfigu1613601517\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaDeleteaTagConfigu1613601517\"],\"include_percentiles\":false,\"created_at\":\"2021-02-17T22:38:38.226434+00:00\",\"modified_at\":\"2021-02-17T22:38:38.226434+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListTagConfigurationbyNamereturnsSuccessresponse1613674911438\",\"attributes\":{\"tags\":[\"TypescriptListTagConfigurationbyNamereturnsSuccessresponse1613674911438\",\"app\",\"datacenter\"],\"include_percentiles\":false,\"created_at\":\"2021-02-18T19:01:51.701561+00:00\",\"modified_at\":\"2021-02-18T19:01:51.701561+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptCreateaTagConfigurationreturnsCreatedresponse1613674910068\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-02-18T19:01:50.346751+00:00\",\"modified_at\":\"2021-02-18T19:01:50.346751+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListTagConfigurationsreturnsSuccessresponse1613674912224\",\"attributes\":{\"tags\":[\"TypescriptListTagConfigurationsreturnsSuccessresponse1613674912224\",\"app\",\"datacenter\"],\"include_percentiles\":false,\"created_at\":\"2021-02-18T19:01:52.489744+00:00\",\"modified_at\":\"2021-02-18T19:01:52.489744+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptUpdateaTagConfigurationreturnsOKresponse1613674918621\",\"attributes\":{\"tags\":[\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-02-18T19:01:58.909298+00:00\",\"modified_at\":\"2021-02-18T19:01:59.239616+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptCreateaTagConfigurationreturnsCreatedresponse1613675388888\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-02-18T19:09:49.157042+00:00\",\"modified_at\":\"2021-02-18T19:09:49.157042+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptUpdateaTagConfigurationreturnsOKresponse1613675398177\",\"attributes\":{\"tags\":[\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-02-18T19:09:58.429942+00:00\",\"modified_at\":\"2021-02-18T19:09:58.778902+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListTagConfigurationsreturnsSuccessresponse1613675391059\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListTagConfigurationsreturnsSuccessresponse1613675391059\"],\"include_percentiles\":false,\"created_at\":\"2021-02-18T19:09:51.329650+00:00\",\"modified_at\":\"2021-02-18T19:09:51.329650+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListTagConfigurationbyNamereturnsSuccessresponse1613675390193\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListTagConfigurationbyNamereturnsSuccessresponse1613675390193\"],\"include_percentiles\":false,\"created_at\":\"2021-02-18T19:09:50.468784+00:00\",\"modified_at\":\"2021-02-18T19:09:50.468784+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptDeleteaTagConfigurationreturnsNoContentresponse1613676227224\",\"attributes\":{\"tags\":[\"datacenter\",\"TypescriptDeleteaTagConfigurationreturnsNoContentresponse1613676227224\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-02-18T19:23:47.510239+00:00\",\"modified_at\":\"2021-02-18T19:23:47.510239+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaUpdateaTagConfigu1613983335\",\"attributes\":{\"tags\":[\"javaUpdateaTagConfigu1613983335\",\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-02-22T08:42:15.339339+00:00\",\"modified_at\":\"2021-02-22T08:42:15.339339+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestupdateatagconfigurationreturnsokresponse1613983337447904\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestupdateatagconfigurationreturnsokresponse1613983337447904\"],\"include_percentiles\":false,\"created_at\":\"2021-02-22T08:42:17.877627+00:00\",\"modified_at\":\"2021-02-22T08:42:17.877627+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptCreateaTagConfigurationreturnsCreatedresponse1613983377189\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-02-22T08:42:57.496771+00:00\",\"modified_at\":\"2021-02-22T08:42:57.496771+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListTagConfigurationbyNamereturnsSuccessresponse489431614557161\",\"attributes\":{\"tags\":[\"goFeatureMetricsScenarioListTagConfigurationbyNamereturnsSuccessresponse489431614557161\",\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-01T00:06:01.798862+00:00\",\"modified_at\":\"2021-03-01T00:06:01.798862+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaUpdateaTagConfigu1614290498\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaUpdateaTagConfigu1614290498\"],\"include_percentiles\":false,\"created_at\":\"2021-02-25T22:01:38.735081+00:00\",\"modified_at\":\"2021-02-25T22:01:38.735081+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaUpdateaTagConfigu1614648774\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaUpdateaTagConfigu1614648774\"],\"include_percentiles\":false,\"created_at\":\"2021-03-02T01:32:55.019781+00:00\",\"modified_at\":\"2021-03-02T01:32:55.019781+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestupdateatagconfigurationreturnsokresponse1612987674596336\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestupdateatagconfigurationreturnsokresponse1612987674596336\"],\"include_percentiles\":false,\"created_at\":\"2021-02-10T20:07:54.979797+00:00\",\"modified_at\":\"2021-03-03T22:28:32.386290+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestcreateatagconfigurationreturnscreatedresponse1612987679233002\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-02-10T20:07:59.516348+00:00\",\"modified_at\":\"2021-03-03T20:42:09.521631+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestlisttagconfigurationsreturnssuccessresponse1612987675260358\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestlisttagconfigurationsreturnssuccessresponse1612987675260358\"],\"include_percentiles\":false,\"created_at\":\"2021-02-10T20:07:55.559669+00:00\",\"modified_at\":\"2021-03-03T20:45:46.030871+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptUpdateaTagConfigurationreturnsOKresponse1614821029942\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptUpdateaTagConfigurationreturnsOKresponse1614821029942\"],\"include_percentiles\":false,\"created_at\":\"2021-03-04T01:23:50.307273+00:00\",\"modified_at\":\"2021-03-04T01:23:50.307273+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestlisttagsbymetricnamereturnssuccessresponse1614632066664577\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestlisttagsbymetricnamereturnssuccessresponse1614632066664577\"],\"include_percentiles\":false,\"created_at\":\"2021-03-01T20:54:26.950587+00:00\",\"modified_at\":\"2021-03-03T19:53:57.601421+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestdeleteatagconfigurationreturnsnocontentresponse1612987678724128\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestdeleteatagconfigurationreturnsnocontentresponse1612987678724128\"],\"include_percentiles\":false,\"created_at\":\"2021-02-10T20:07:59.011905+00:00\",\"modified_at\":\"2021-03-03T19:54:03.012021+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaUpdateaTagConfigu1614907949\",\"attributes\":{\"tags\":[\"javaUpdateaTagConfigu1614907949\",\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-05T01:32:29.891018+00:00\",\"modified_at\":\"2021-03-05T01:32:29.891018+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaListTagConfigurati1614907942\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaListTagConfigurati1614907942\"],\"include_percentiles\":false,\"created_at\":\"2021-03-05T01:32:22.257630+00:00\",\"modified_at\":\"2021-03-05T01:32:22.779595+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaCreateaTagConfigu1614907941\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-05T01:32:21.472249+00:00\",\"modified_at\":\"2021-03-05T01:32:21.472249+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaDeleteaTagConfigu1614907941\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaDeleteaTagConfigu1614907941\"],\"include_percentiles\":false,\"created_at\":\"2021-03-05T01:32:21.840312+00:00\",\"modified_at\":\"2021-03-05T01:32:21.840312+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestlistdistinctmetricvolumesbymetricnamereturnssuccessresponse1614877824877072\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestlistdistinctmetricvolumesbymetricnamereturnssuccessresponse1614877824877072\"],\"include_percentiles\":false,\"created_at\":\"2021-03-04T17:10:25.408162+00:00\",\"modified_at\":\"2021-03-04T18:03:35.564866+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestlisttagsbymetricnamereturnssuccessresponse161487782309652\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestlisttagsbymetricnamereturnssuccessresponse161487782309652\"],\"include_percentiles\":false,\"created_at\":\"2021-03-04T17:10:23.841708+00:00\",\"modified_at\":\"2021-03-04T18:03:25.853564+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestdeleteatagconfigurationreturnsnocontentresponse1614878558721298\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestdeleteatagconfigurationreturnsnocontentresponse1614878558721298\"],\"include_percentiles\":false,\"created_at\":\"2021-03-04T17:22:39.122261+00:00\",\"modified_at\":\"2021-03-04T18:03:33.352006+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestlisttagconfigurationbynamereturnssuccessresponse1612987679647768\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestlisttagconfigurationbynamereturnssuccessresponse1612987679647768\"],\"include_percentiles\":false,\"created_at\":\"2021-02-10T20:07:59.946457+00:00\",\"modified_at\":\"2021-03-04T09:39:37.370474+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaListtagsbymetric1614962335\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaListtagsbymetric1614962335\"],\"include_percentiles\":false,\"created_at\":\"2021-03-05T16:38:55.946186+00:00\",\"modified_at\":\"2021-03-05T16:38:55.946186+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaUpdateatagconfigu1614962336\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaUpdateatagconfigu1614962336\"],\"include_percentiles\":false,\"created_at\":\"2021-03-05T16:38:56.440191+00:00\",\"modified_at\":\"2021-03-05T16:38:56.440191+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaListtagsbymetric1614984109\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaListtagsbymetric1614984109\"],\"include_percentiles\":false,\"created_at\":\"2021-03-05T22:41:50.029868+00:00\",\"modified_at\":\"2021-03-05T22:41:50.029868+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse505431615205163\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse505431615205163\"],\"include_percentiles\":false,\"created_at\":\"2021-03-08T12:06:03.965736+00:00\",\"modified_at\":\"2021-03-08T12:06:03.965736+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaCreateatagconfigu1615195320\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-08T09:22:00.581891+00:00\",\"modified_at\":\"2021-03-08T09:22:00.581891+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaListdistinctmetric1615195322\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaListdistinctmetric1615195322\"],\"include_percentiles\":false,\"created_at\":\"2021-03-08T09:22:02.640568+00:00\",\"modified_at\":\"2021-03-08T09:22:02.640568+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaDeleteatagconfigu1615195321\",\"attributes\":{\"tags\":[\"javaDeleteatagconfigu1615195321\",\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-08T09:22:01.374349+00:00\",\"modified_at\":\"2021-03-08T09:22:01.374349+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaListtagconfigurati1615195323\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaListtagconfigurati1615195323\"],\"include_percentiles\":false,\"created_at\":\"2021-03-08T09:22:03.733804+00:00\",\"modified_at\":\"2021-03-08T09:22:03.733804+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaListtagconfigurati1615195324\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaListtagconfigurati1615195324\"],\"include_percentiles\":false,\"created_at\":\"2021-03-08T09:22:04.847552+00:00\",\"modified_at\":\"2021-03-08T09:22:04.847552+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaListtagsbymetric1615195329\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaListtagsbymetric1615195329\"],\"include_percentiles\":false,\"created_at\":\"2021-03-08T09:22:10.192146+00:00\",\"modified_at\":\"2021-03-08T09:22:10.192146+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaUpdateatagconfigu1615195330\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaUpdateatagconfigu1615195330\"],\"include_percentiles\":false,\"created_at\":\"2021-03-08T09:22:11.353873+00:00\",\"modified_at\":\"2021-03-08T09:22:11.353873+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1615241008139\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1615241008139\"],\"include_percentiles\":false,\"created_at\":\"2021-03-08T22:03:28.250137+00:00\",\"modified_at\":\"2021-03-08T22:03:28.250137+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestRubyListtagconfigurationsreturnsSuccessresponse1618243860\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestRubyListtagconfigurationsreturnsSuccessresponse1618243860\"],\"include_percentiles\":false,\"created_at\":\"2021-04-12T16:11:00.453385+00:00\",\"modified_at\":\"2021-04-12T16:11:00.453385+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse507811615269834\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse507811615269834\"],\"include_percentiles\":false,\"created_at\":\"2021-03-09T06:03:55.035011+00:00\",\"modified_at\":\"2021-03-09T06:03:55.035011+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaListtagconfigurati1615289582\",\"attributes\":{\"tags\":[\"javaListtagconfigurati1615289582\",\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-09T11:33:02.415435+00:00\",\"modified_at\":\"2021-03-09T11:33:02.415435+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse511141615397094\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse511141615397094\"],\"include_percentiles\":false,\"created_at\":\"2021-03-10T17:24:54.232169+00:00\",\"modified_at\":\"2021-03-10T17:24:54.232169+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListtagsbymetricnamereturnsSuccessresponse511141615397093\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioListtagsbymetricnamereturnsSuccessresponse511141615397093\"],\"include_percentiles\":false,\"created_at\":\"2021-03-10T17:24:53.773142+00:00\",\"modified_at\":\"2021-03-10T17:24:53.773142+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"rubyListtagsbymetricnamereturnsSuccessresponse1615600096\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"rubyListtagsbymetricnamereturnsSuccessresponse1615600096\"],\"include_percentiles\":false,\"created_at\":\"2021-03-13T01:48:16.706740+00:00\",\"modified_at\":\"2021-03-13T01:48:16.706740+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"rubyUpdateatagconfigurationreturnsOKresponse1615600097\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"rubyUpdateatagconfigurationreturnsOKresponse1615600097\"],\"include_percentiles\":false,\"created_at\":\"2021-03-13T01:48:17.311123+00:00\",\"modified_at\":\"2021-03-13T01:48:17.311123+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagsbymetricnamereturnsSuccessresponse1615641825358\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListtagsbymetricnamereturnsSuccessresponse1615641825358\"],\"include_percentiles\":false,\"created_at\":\"2021-03-13T13:23:45.714258+00:00\",\"modified_at\":\"2021-03-13T13:23:45.714258+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptUpdateatagconfigurationreturnsOKresponse1615728221108\",\"attributes\":{\"tags\":[\"datacenter\",\"TypescriptUpdateatagconfigurationreturnsOKresponse1615728221108\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-14T13:23:41.436621+00:00\",\"modified_at\":\"2021-03-14T13:23:41.436621+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagsbymetricnamereturnsSuccessresponse1615728219671\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListtagsbymetricnamereturnsSuccessresponse1615728219671\"],\"include_percentiles\":false,\"created_at\":\"2021-03-14T13:23:40.016425+00:00\",\"modified_at\":\"2021-03-14T13:23:40.016425+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1615901000076\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1615901000076\"],\"include_percentiles\":false,\"created_at\":\"2021-03-16T13:23:20.213657+00:00\",\"modified_at\":\"2021-03-16T13:23:20.213657+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptDeleteatagconfigurationreturnsNoContentresponse1615900999594\",\"attributes\":{\"tags\":[\"datacenter\",\"TypescriptDeleteatagconfigurationreturnsNoContentresponse1615900999594\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-16T13:23:19.703100+00:00\",\"modified_at\":\"2021-03-16T13:23:19.703100+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagconfigurationsreturnsSuccessresponse1615901001052\",\"attributes\":{\"tags\":[\"datacenter\",\"TypescriptListtagconfigurationsreturnsSuccessresponse1615901001052\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-16T13:23:21.193223+00:00\",\"modified_at\":\"2021-03-16T13:23:21.193223+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptCreateatagconfigurationreturnsCreatedresponse1615900999263\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-16T13:23:19.393024+00:00\",\"modified_at\":\"2021-03-16T13:23:19.393024+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagconfigurationbynamereturnsSuccessresponse1615901000614\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListtagconfigurationbynamereturnsSuccessresponse1615901000614\"],\"include_percentiles\":false,\"created_at\":\"2021-03-16T13:23:20.718208+00:00\",\"modified_at\":\"2021-03-16T13:23:20.718208+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagsbymetricnamereturnsSuccessresponse1615901006889\",\"attributes\":{\"tags\":[\"datacenter\",\"TypescriptListtagsbymetricnamereturnsSuccessresponse1615901006889\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-16T13:23:27.006017+00:00\",\"modified_at\":\"2021-03-16T13:23:27.006017+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptUpdateatagconfigurationreturnsOKresponse1615901007411\",\"attributes\":{\"tags\":[\"datacenter\",\"TypescriptUpdateatagconfigurationreturnsOKresponse1615901007411\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-16T13:23:27.541142+00:00\",\"modified_at\":\"2021-03-16T13:23:27.541142+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListdistinctmetricvolumesbymetricnamereturnsSuccessresponse519741615886584\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioListdistinctmetricvolumesbymetricnamereturnsSuccessresponse519741615886584\"],\"include_percentiles\":false,\"created_at\":\"2021-03-16T09:23:04.506963+00:00\",\"modified_at\":\"2021-03-16T09:23:04.506963+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioDeleteatagconfigurationreturnsNoContentresponse519741615886584\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioDeleteatagconfigurationreturnsNoContentresponse519741615886584\"],\"include_percentiles\":false,\"created_at\":\"2021-03-16T09:23:04.173080+00:00\",\"modified_at\":\"2021-03-16T09:23:04.173080+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListtagconfigurationsreturnsSuccessresponse519741615886585\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioListtagconfigurationsreturnsSuccessresponse519741615886585\"],\"include_percentiles\":false,\"created_at\":\"2021-03-16T09:23:05.166846+00:00\",\"modified_at\":\"2021-03-16T09:23:05.166846+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioCreateatagconfigurationreturnsCreatedresponse519741615886583\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-16T09:23:03.873546+00:00\",\"modified_at\":\"2021-03-16T09:23:03.873546+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListtagconfigurationbynamereturnsSuccessresponse519741615886584\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioListtagconfigurationbynamereturnsSuccessresponse519741615886584\"],\"include_percentiles\":false,\"created_at\":\"2021-03-16T09:23:04.833632+00:00\",\"modified_at\":\"2021-03-16T09:23:04.833632+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListtagsbymetricnamereturnsSuccessresponse519741615886593\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioListtagsbymetricnamereturnsSuccessresponse519741615886593\"],\"include_percentiles\":false,\"created_at\":\"2021-03-16T09:23:13.154433+00:00\",\"modified_at\":\"2021-03-16T09:23:13.154433+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse519741615886593\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse519741615886593\"],\"include_percentiles\":false,\"created_at\":\"2021-03-16T09:23:13.517437+00:00\",\"modified_at\":\"2021-03-16T09:23:13.517437+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptCreateatagconfigurationreturnsCreatedresponse1615998271598\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-17T16:24:31.959292+00:00\",\"modified_at\":\"2021-03-17T16:24:31.959292+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagconfigurationbynamereturnsSuccessresponse1616160199767\",\"attributes\":{\"tags\":[\"TypescriptListtagconfigurationbynamereturnsSuccessresponse1616160199767\",\"app\",\"datacenter\"],\"include_percentiles\":false,\"created_at\":\"2021-03-19T13:23:19.857702+00:00\",\"modified_at\":\"2021-03-19T13:23:19.857702+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagsbymetricnamereturnsSuccessresponse161616020553\",\"attributes\":{\"tags\":[\"TypescriptListtagsbymetricnamereturnsSuccessresponse161616020553\",\"app\",\"datacenter\"],\"include_percentiles\":false,\"created_at\":\"2021-03-19T13:23:25.631513+00:00\",\"modified_at\":\"2021-03-19T13:23:25.631513+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagconfigurationsreturnsSuccessresponse1616160200146\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListtagconfigurationsreturnsSuccessresponse1616160200146\"],\"include_percentiles\":false,\"created_at\":\"2021-03-19T13:23:20.232463+00:00\",\"modified_at\":\"2021-03-19T13:23:20.232463+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptCreateatagconfigurationreturnsCreatedresponse1616160198595\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-19T13:23:18.718201+00:00\",\"modified_at\":\"2021-03-19T13:23:18.718201+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptDeleteatagconfigurationreturnsNoContentresponse1616160198921\",\"attributes\":{\"tags\":[\"datacenter\",\"TypescriptDeleteatagconfigurationreturnsNoContentresponse1616160198921\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-19T13:23:19.038247+00:00\",\"modified_at\":\"2021-03-19T13:23:19.038247+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1616160199415\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1616160199415\"],\"include_percentiles\":false,\"created_at\":\"2021-03-19T13:23:19.493780+00:00\",\"modified_at\":\"2021-03-19T13:23:19.493780+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptUpdateatagconfigurationreturnsOKresponse1616160205992\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptUpdateatagconfigurationreturnsOKresponse1616160205992\"],\"include_percentiles\":false,\"created_at\":\"2021-03-19T13:23:26.079138+00:00\",\"modified_at\":\"2021-03-19T13:23:26.079138+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptDeleteatagconfigurationreturnsNoContentresponse1615998272487\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptDeleteatagconfigurationreturnsNoContentresponse1615998272487\"],\"include_percentiles\":false,\"created_at\":\"2021-03-17T16:24:32.839382+00:00\",\"modified_at\":\"2021-03-17T16:24:32.839382+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptCreateatagconfigurationreturnsCreatedresponse1616149776487\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-19T10:29:36.901071+00:00\",\"modified_at\":\"2021-03-19T10:29:36.901071+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptUpdateatagconfigurationreturnsOKresponse161628985592\",\"attributes\":{\"tags\":[\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-21T01:24:16.278639+00:00\",\"modified_at\":\"2021-03-21T01:24:16.826616+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestlisttagconfigurationbynamereturnssuccessresponse1616085123642229\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestlisttagconfigurationbynamereturnssuccessresponse1616085123642229\"],\"include_percentiles\":false,\"created_at\":\"2021-03-18T16:32:03.966633+00:00\",\"modified_at\":\"2021-03-18T16:32:03.966633+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestlistdistinctmetricvolumesbymetricnamereturnssuccessresponse1616085131743281\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestlistdistinctmetricvolumesbymetricnamereturnssuccessresponse1616085131743281\"],\"include_percentiles\":false,\"created_at\":\"2021-03-18T16:32:12.060863+00:00\",\"modified_at\":\"2021-03-18T16:32:12.060863+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestlisttagsbymetricnamereturnssuccessresponse1616085146387336\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestlisttagsbymetricnamereturnssuccessresponse1616085146387336\"],\"include_percentiles\":false,\"created_at\":\"2021-03-18T16:32:26.695646+00:00\",\"modified_at\":\"2021-03-18T16:32:26.695646+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestupdateatagconfigurationreturnsokresponse1616085149782964\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestupdateatagconfigurationreturnsokresponse1616085149782964\"],\"include_percentiles\":false,\"created_at\":\"2021-03-18T16:32:30.080251+00:00\",\"modified_at\":\"2021-03-18T16:32:30.080251+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse537181616565902\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse537181616565902\"],\"include_percentiles\":false,\"created_at\":\"2021-03-24T06:05:02.364811+00:00\",\"modified_at\":\"2021-03-24T06:05:02.364811+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListtagsbymetricnamereturnsSuccessresponse537181616565901\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioListtagsbymetricnamereturnsSuccessresponse537181616565901\"],\"include_percentiles\":false,\"created_at\":\"2021-03-24T06:05:01.875172+00:00\",\"modified_at\":\"2021-03-24T06:05:01.875172+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioDeleteatagconfigurationreturnsNoContentresponse537181616565893\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioDeleteatagconfigurationreturnsNoContentresponse537181616565893\"],\"include_percentiles\":false,\"created_at\":\"2021-03-24T06:04:53.937128+00:00\",\"modified_at\":\"2021-03-24T06:04:53.937128+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListtagconfigurationsreturnsSuccessresponse537181616565895\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioListtagconfigurationsreturnsSuccessresponse537181616565895\"],\"include_percentiles\":false,\"created_at\":\"2021-03-24T06:04:55.311874+00:00\",\"modified_at\":\"2021-03-24T06:04:55.311874+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioCreateatagconfigurationreturnsCreatedresponse537181616565893\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-24T06:04:53.604451+00:00\",\"modified_at\":\"2021-03-24T06:04:53.604451+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListdistinctmetricvolumesbymetricnamereturnsSuccessresponse537181616565894\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioListdistinctmetricvolumesbymetricnamereturnsSuccessresponse537181616565894\"],\"include_percentiles\":false,\"created_at\":\"2021-03-24T06:04:54.427149+00:00\",\"modified_at\":\"2021-03-24T06:04:54.427149+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListtagconfigurationbynamereturnsSuccessresponse537181616565894\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioListtagconfigurationbynamereturnsSuccessresponse537181616565894\"],\"include_percentiles\":false,\"created_at\":\"2021-03-24T06:04:54.866614+00:00\",\"modified_at\":\"2021-03-24T06:04:54.866614+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptCreateatagconfigurationreturnsCreatedresponse161641942819\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-22T13:23:48.550450+00:00\",\"modified_at\":\"2021-03-22T13:23:48.550450+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagsbymetricnamereturnsSuccessresponse1616419438471\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListtagsbymetricnamereturnsSuccessresponse1616419438471\"],\"include_percentiles\":false,\"created_at\":\"2021-03-22T13:23:58.847497+00:00\",\"modified_at\":\"2021-03-22T13:23:58.847497+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1616419430386\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1616419430386\"],\"include_percentiles\":false,\"created_at\":\"2021-03-22T13:23:50.744154+00:00\",\"modified_at\":\"2021-03-22T13:23:50.744154+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptDeleteatagconfigurationreturnsNoContentresponse1616419429059\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptDeleteatagconfigurationreturnsNoContentresponse1616419429059\"],\"include_percentiles\":false,\"created_at\":\"2021-03-22T13:23:49.434641+00:00\",\"modified_at\":\"2021-03-22T13:23:49.434641+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagconfigurationbynamereturnsSuccessresponse161641943169\",\"attributes\":{\"tags\":[\"TypescriptListtagconfigurationbynamereturnsSuccessresponse161641943169\",\"app\",\"datacenter\"],\"include_percentiles\":false,\"created_at\":\"2021-03-22T13:23:52.032469+00:00\",\"modified_at\":\"2021-03-22T13:23:52.032469+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagconfigurationsreturnsSuccessresponse1616419432884\",\"attributes\":{\"tags\":[\"datacenter\",\"TypescriptListtagconfigurationsreturnsSuccessresponse1616419432884\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-22T13:23:53.144380+00:00\",\"modified_at\":\"2021-03-22T13:23:53.144380+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListtagsbymetricnamereturnsSuccessresponse532071616436253\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioListtagsbymetricnamereturnsSuccessresponse532071616436253\"],\"include_percentiles\":false,\"created_at\":\"2021-03-22T18:04:13.105380+00:00\",\"modified_at\":\"2021-03-22T18:04:13.105380+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse532071616436253\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse532071616436253\"],\"include_percentiles\":false,\"created_at\":\"2021-03-22T18:04:13.474151+00:00\",\"modified_at\":\"2021-03-22T18:04:13.474151+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestlistdistinctmetricvolumesbymetricnamereturnssuccessresponse1616671077838552\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestlistdistinctmetricvolumesbymetricnamereturnssuccessresponse1616671077838552\"],\"include_percentiles\":false,\"created_at\":\"2021-03-25T11:17:58.568334+00:00\",\"modified_at\":\"2021-03-25T11:17:58.568334+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestdeleteatagconfigurationreturnsnocontentresponse1616752499902025\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestdeleteatagconfigurationreturnsnocontentresponse1616752499902025\"],\"include_percentiles\":false,\"created_at\":\"2021-03-26T09:55:00.209674+00:00\",\"modified_at\":\"2021-03-26T09:55:00.209674+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestlisttagsbymetricnamereturnssuccessresponse1616492360346493\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestlisttagsbymetricnamereturnssuccessresponse1616492360346493\"],\"include_percentiles\":false,\"created_at\":\"2021-03-23T09:39:20.746200+00:00\",\"modified_at\":\"2021-03-23T09:39:20.746200+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptCreateatagconfigurationreturnsCreatedresponse1616495055838\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-23T10:24:16.190783+00:00\",\"modified_at\":\"2021-03-23T10:24:16.190783+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"rubyListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1616498654\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"rubyListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1616498654\"],\"include_percentiles\":false,\"created_at\":\"2021-03-23T11:24:14.161383+00:00\",\"modified_at\":\"2021-03-23T11:24:14.161383+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"rubyListtagconfigurationbynamereturnsSuccessresponse1616498654\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"rubyListtagconfigurationbynamereturnsSuccessresponse1616498654\"],\"include_percentiles\":false,\"created_at\":\"2021-03-23T11:24:14.567372+00:00\",\"modified_at\":\"2021-03-23T11:24:14.567372+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"rubyDeleteatagconfigurationreturnsNoContentresponse1616498653\",\"attributes\":{\"tags\":[\"rubyDeleteatagconfigurationreturnsNoContentresponse1616498653\",\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-23T11:24:13.744787+00:00\",\"modified_at\":\"2021-03-23T11:24:13.744787+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptCreateatagconfigurationreturnsCreatedresponse1616894650949\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-28T01:24:11.315850+00:00\",\"modified_at\":\"2021-03-28T01:24:11.315850+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"rubyCreateatagconfigurationreturnsCreatedresponse1617010239\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-29T09:30:39.277788+00:00\",\"modified_at\":\"2021-03-29T09:30:39.277788+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagconfigurationbynamereturnsSuccessresponse1616840650426\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListtagconfigurationbynamereturnsSuccessresponse1616840650426\"],\"include_percentiles\":false,\"created_at\":\"2021-03-27T10:24:10.771619+00:00\",\"modified_at\":\"2021-03-27T10:24:10.771619+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"rubyCreateatagconfigurationreturnsCreatedresponse1617013073\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-29T10:17:53.426838+00:00\",\"modified_at\":\"2021-03-29T10:17:53.426838+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"rubyListtagconfigurationsreturnsSuccessresponse1617013912\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"rubyListtagconfigurationsreturnsSuccessresponse1617013912\"],\"include_percentiles\":false,\"created_at\":\"2021-03-29T10:31:52.652432+00:00\",\"modified_at\":\"2021-03-29T10:31:52.652432+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestcreateatagconfigurationreturnscreatedresponse1617014589345712\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-29T10:43:09.860304+00:00\",\"modified_at\":\"2021-03-29T10:43:09.860304+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListtagsbymetricnamereturnsSuccessresponse549511617084343\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioListtagsbymetricnamereturnsSuccessresponse549511617084343\"],\"include_percentiles\":false,\"created_at\":\"2021-03-30T06:05:43.124191+00:00\",\"modified_at\":\"2021-03-30T06:05:43.124191+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse549511617084343\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse549511617084343\"],\"include_percentiles\":false,\"created_at\":\"2021-03-30T06:05:43.601969+00:00\",\"modified_at\":\"2021-03-30T06:05:43.601969+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestcreateatagconfigurationreturnscreatedresponse1617190497075142\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-31T11:34:57.312061+00:00\",\"modified_at\":\"2021-03-31T11:34:57.312061+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"rubyCreateatagconfigurationreturnsCreatedresponse1618116460\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-04-11T04:47:40.938028+00:00\",\"modified_at\":\"2021-04-11T04:47:40.938028+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptCreateatagconfigurationreturnsCreatedresponse1617197102302\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-31T13:25:02.713019+00:00\",\"modified_at\":\"2021-03-31T13:25:02.713019+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListtagconfigurationsreturnsSuccessresponse553521617208533\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioListtagconfigurationsreturnsSuccessresponse553521617208533\"],\"include_percentiles\":false,\"created_at\":\"2021-03-31T16:35:33.822570+00:00\",\"modified_at\":\"2021-03-31T16:35:33.822570+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptUpdateatagconfigurationreturnsOKresponse1617110622671\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptUpdateatagconfigurationreturnsOKresponse1617110622671\"],\"include_percentiles\":false,\"created_at\":\"2021-03-30T13:23:42.813575+00:00\",\"modified_at\":\"2021-03-30T13:23:42.813575+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagsbymetricnamereturnsSuccessresponse161711062218\",\"attributes\":{\"tags\":[\"TypescriptListtagsbymetricnamereturnsSuccessresponse161711062218\",\"app\",\"datacenter\"],\"include_percentiles\":false,\"created_at\":\"2021-03-30T13:23:42.290454+00:00\",\"modified_at\":\"2021-03-30T13:23:42.290454+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestcreateatagconfigurationreturnscreatedresponse1617189605290728\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-31T11:20:05.512669+00:00\",\"modified_at\":\"2021-03-31T11:20:05.512669+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListtagsbymetricnamereturnsSuccessresponse550921617127471\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioListtagsbymetricnamereturnsSuccessresponse550921617127471\"],\"include_percentiles\":false,\"created_at\":\"2021-03-30T18:04:31.348364+00:00\",\"modified_at\":\"2021-03-30T18:04:31.348364+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse550921617127471\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse550921617127471\"],\"include_percentiles\":false,\"created_at\":\"2021-03-30T18:04:31.750754+00:00\",\"modified_at\":\"2021-03-30T18:04:31.750754+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaListdistinctmetric1617241055\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaListdistinctmetric1617241055\"],\"include_percentiles\":false,\"created_at\":\"2021-04-01T01:37:35.979950+00:00\",\"modified_at\":\"2021-04-01T01:37:35.979950+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaListtagconfigurati1617241056\",\"attributes\":{\"tags\":[\"javaListtagconfigurati1617241056\",\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-04-01T01:37:37.187124+00:00\",\"modified_at\":\"2021-04-01T01:37:37.187124+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaListtagconfigurati1617241057\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaListtagconfigurati1617241057\"],\"include_percentiles\":false,\"created_at\":\"2021-04-01T01:37:38.337846+00:00\",\"modified_at\":\"2021-04-01T01:37:38.337846+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaListtagsbymetric1617241065\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaListtagsbymetric1617241065\"],\"include_percentiles\":false,\"created_at\":\"2021-04-01T01:37:46.167234+00:00\",\"modified_at\":\"2021-04-01T01:37:46.167234+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagconfigurationsreturnsSuccessresponse1617629121895\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListtagconfigurationsreturnsSuccessresponse1617629121895\"],\"include_percentiles\":false,\"created_at\":\"2021-04-05T13:25:22.245313+00:00\",\"modified_at\":\"2021-04-05T13:25:22.245313+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1617629119345\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1617629119345\"],\"include_percentiles\":false,\"created_at\":\"2021-04-05T13:25:19.715171+00:00\",\"modified_at\":\"2021-04-05T13:25:19.715171+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptDeleteatagconfigurationreturnsNoContentresponse1617629117988\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptDeleteatagconfigurationreturnsNoContentresponse1617629117988\"],\"include_percentiles\":false,\"created_at\":\"2021-04-05T13:25:18.355397+00:00\",\"modified_at\":\"2021-04-05T13:25:18.355397+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagconfigurationbynamereturnsSuccessresponse1617629120639\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListtagconfigurationbynamereturnsSuccessresponse1617629120639\"],\"include_percentiles\":false,\"created_at\":\"2021-04-05T13:25:20.999352+00:00\",\"modified_at\":\"2021-04-05T13:25:20.999352+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagsbymetricnamereturnsSuccessresponse1617629131797\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListtagsbymetricnamereturnsSuccessresponse1617629131797\"],\"include_percentiles\":false,\"created_at\":\"2021-04-05T13:25:32.056313+00:00\",\"modified_at\":\"2021-04-05T13:25:32.056313+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"rubyDeleteatagconfigurationreturnsNoContentresponse1617414463\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"rubyDeleteatagconfigurationreturnsNoContentresponse1617414463\"],\"include_percentiles\":false,\"created_at\":\"2021-04-03T01:47:43.121903+00:00\",\"modified_at\":\"2021-04-03T01:47:43.121903+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptCreateatagconfigurationreturnsCreatedresponse161776946527\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-04-07T04:24:25.610201+00:00\",\"modified_at\":\"2021-04-07T04:24:25.610201+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"tf_TestAccDatadogMetricTagConfiguration_import_57079_1617883575\",\"attributes\":{\"tags\":[\"datacenter\",\"sport\"],\"include_percentiles\":false,\"created_at\":\"2021-04-08T12:06:15.682733+00:00\",\"modified_at\":\"2021-04-08T12:06:15.682733+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"tf_TestAccDatadogMetricTagConfiguration_Basic_57079_1617883576\",\"attributes\":{\"tags\":[\"datacenter\",\"sport\"],\"include_percentiles\":false,\"created_at\":\"2021-04-08T12:06:16.328512+00:00\",\"modified_at\":\"2021-04-08T12:06:16.328512+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"rubyListtagconfigurationbynamereturnsSuccessresponse1617878848\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"rubyListtagconfigurationbynamereturnsSuccessresponse1617878848\"],\"include_percentiles\":false,\"created_at\":\"2021-04-08T10:47:28.651054+00:00\",\"modified_at\":\"2021-04-08T10:47:28.651054+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestJavaListtagconfigurationsreturnsSuccessresponse1618245205\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestJavaListtagconfigurationsreturnsSuccessresponse1618245205\"],\"include_percentiles\":false,\"created_at\":\"2021-04-12T16:33:26.065648+00:00\",\"modified_at\":\"2021-04-12T16:33:26.065648+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestJavaListtagconfigurationsreturnsSuccessresponse1618245209\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestJavaListtagconfigurationsreturnsSuccessresponse1618245209\"],\"include_percentiles\":false,\"created_at\":\"2021-04-12T16:33:29.921161+00:00\",\"modified_at\":\"2021-04-12T16:33:29.921161+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestGoUpdateatagconfigurationreturnsOKresponse1618245210\",\"attributes\":{\"tags\":[\"TestGoUpdateatagconfigurationreturnsOKresponse1618245210\",\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-04-12T16:33:30.912740+00:00\",\"modified_at\":\"2021-04-12T16:33:30.912740+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestListtagsbymetricnamereturnsSuccessresponse1618083821\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestListtagsbymetricnamereturnsSuccessresponse1618083821\"],\"include_percentiles\":false,\"created_at\":\"2021-04-10T19:43:42.330061+00:00\",\"modified_at\":\"2021-04-10T19:43:42.330061+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestRubyUpdateatagconfigurationreturnsOKresponse1618477782\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestRubyUpdateatagconfigurationreturnsOKresponse1618477782\"],\"include_percentiles\":false,\"created_at\":\"2021-04-15T09:09:42.695934+00:00\",\"modified_at\":\"2021-04-15T09:09:42.695934+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestTypescriptUpdateatagconfigurationreturnsOKresponse1618576969\",\"attributes\":{\"tags\":[\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-04-16T12:42:49.127510+00:00\",\"modified_at\":\"2021-04-16T12:42:49.222085+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestPythonListtagconfigurationsreturnsSuccessresponse1618576965\",\"attributes\":{\"tags\":[\"TestPythonListtagconfigurationsreturnsSuccessresponse1618576965\",\"app\",\"datacenter\"],\"include_percentiles\":false,\"created_at\":\"2021-04-16T12:42:45.376840+00:00\",\"modified_at\":\"2021-04-16T12:42:45.376840+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestTypescriptUpdateatagconfigurationreturnsOKresponse1618828174\",\"attributes\":{\"tags\":[\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-04-19T10:29:34.758064+00:00\",\"modified_at\":\"2021-04-19T10:29:34.863258+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestPythonListtagconfigurationsreturnsSuccessresponse1618828169\",\"attributes\":{\"tags\":[\"TestPythonListtagconfigurationsreturnsSuccessresponse1618828169\",\"app\",\"datacenter\"],\"include_percentiles\":false,\"created_at\":\"2021-04-19T10:29:28.829677+00:00\",\"modified_at\":\"2021-04-19T10:29:28.829677+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestGoListtagconfigurationsreturnsSuccessresponse1618835558\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestGoListtagconfigurationsreturnsSuccessresponse1618835558\"],\"include_percentiles\":false,\"created_at\":\"2021-04-19T12:32:38.361429+00:00\",\"modified_at\":\"2021-04-19T12:32:38.361429+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestTypescriptListtagsbymetricnamereturnsSuccessresponse1618817102\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestTypescriptListtagsbymetricnamereturnsSuccessresponse1618817102\"],\"include_percentiles\":false,\"created_at\":\"2021-04-19T07:25:02.613361+00:00\",\"modified_at\":\"2021-04-19T07:25:02.613361+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestPythonListtagconfigurationbynamereturnsSuccessresponse1618831533\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestPythonListtagconfigurationbynamereturnsSuccessresponse1618831533\"],\"include_percentiles\":false,\"created_at\":\"2021-04-19T11:25:33.764565+00:00\",\"modified_at\":\"2021-04-19T11:25:33.764565+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestPythonListtagconfigurationbynamereturnsSuccessresponse1618827476\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestPythonListtagconfigurationbynamereturnsSuccessresponse1618827476\"],\"include_percentiles\":false,\"created_at\":\"2021-04-19T10:17:56.919641+00:00\",\"modified_at\":\"2021-04-19T10:17:56.919641+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestJavaListtagsbymetricnamereturnsSuccessresponse1618861041\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestJavaListtagsbymetricnamereturnsSuccessresponse1618861041\"],\"include_percentiles\":false,\"created_at\":\"2021-04-19T19:37:21.909413+00:00\",\"modified_at\":\"2021-04-19T19:37:21.909413+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestRubyListtagconfigurationbynamereturnsSuccessresponse1618883262\",\"attributes\":{\"tags\":[\"TestRubyListtagconfigurationbynamereturnsSuccessresponse1618883262\",\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-04-20T01:47:42.978537+00:00\",\"modified_at\":\"2021-04-20T01:47:42.978537+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestJavaListtagconfigurationbynamereturnsSuccessresponse1619096218\",\"attributes\":{\"tags\":[\"TestJavaListtagconfigurationbynamereturnsSuccessresponse1619096218\",\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-04-22T12:56:58.362386+00:00\",\"modified_at\":\"2021-04-22T12:56:58.362386+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestPythonCreateatagconfigurationreturnsCreatedresponse1619097915\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-04-22T13:25:31.443839+00:00\",\"modified_at\":\"2021-04-22T13:25:31.443839+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestTypescriptListtagsbymetricnamereturnsSuccessresponse1619097911\",\"attributes\":{\"tags\":[\"TestTypescriptListtagsbymetricnamereturnsSuccessresponse1619097911\",\"app\",\"datacenter\"],\"include_percentiles\":false,\"created_at\":\"2021-04-22T13:25:11.404186+00:00\",\"modified_at\":\"2021-04-22T13:25:11.404186+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestTypescriptListtagconfigurationsreturnsSuccessresponse1619096210\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestTypescriptListtagconfigurationsreturnsSuccessresponse1619096210\"],\"include_percentiles\":false,\"created_at\":\"2021-04-22T12:56:51.186137+00:00\",\"modified_at\":\"2021-04-22T12:56:51.186137+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestJavaListtagsbymetricnamereturnsSuccessresponse1619131204\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestJavaListtagsbymetricnamereturnsSuccessresponse1619131204\"],\"include_percentiles\":false,\"created_at\":\"2021-04-22T22:40:04.866275+00:00\",\"modified_at\":\"2021-04-22T22:40:04.866275+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestJavaListtagconfigurationsreturnsSuccessresponse1619175153\",\"attributes\":{\"tags\":[\"datacenter\",\"TestJavaListtagconfigurationsreturnsSuccessresponse1619175153\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-04-23T10:52:33.873612+00:00\",\"modified_at\":\"2021-04-23T10:52:33.873612+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestTypescriptListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1619175155\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestTypescriptListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1619175155\"],\"include_percentiles\":false,\"created_at\":\"2021-04-23T10:52:35.693831+00:00\",\"modified_at\":\"2021-04-23T10:52:35.693831+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestJavaListtagconfigurationbynamereturnsSuccessresponse1619282121\",\"attributes\":{\"tags\":[\"TestJavaListtagconfigurationbynamereturnsSuccessresponse1619282121\",\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-04-24T16:35:22.034065+00:00\",\"modified_at\":\"2021-04-24T16:35:22.034065+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestRubyCreateatagconfigurationreturnsCreatedresponse1619228878\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-04-24T01:47:59.109548+00:00\",\"modified_at\":\"2021-04-24T01:47:59.109548+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestRubyDeleteatagconfigurationreturnsNoContentresponse1619228879\",\"attributes\":{\"tags\":[\"TestRubyDeleteatagconfigurationreturnsNoContentresponse1619228879\",\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-04-24T01:47:59.465861+00:00\",\"modified_at\":\"2021-04-24T01:47:59.465861+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestRubyUpdateatagconfigurationreturnsOKresponse1619228888\",\"attributes\":{\"tags\":[\"TestRubyUpdateatagconfigurationreturnsOKresponse1619228888\",\"app\",\"datacenter\"],\"include_percentiles\":false,\"created_at\":\"2021-04-24T01:48:08.955735+00:00\",\"modified_at\":\"2021-04-24T01:48:08.955735+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestRubyListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1619228879\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestRubyListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1619228879\"],\"include_percentiles\":false,\"created_at\":\"2021-04-24T01:47:59.924705+00:00\",\"modified_at\":\"2021-04-24T01:47:59.924705+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestRubyListtagconfigurationbynamereturnsSuccessresponse1619228880\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestRubyListtagconfigurationbynamereturnsSuccessresponse1619228880\"],\"include_percentiles\":false,\"created_at\":\"2021-04-24T01:48:00.601042+00:00\",\"modified_at\":\"2021-04-24T01:48:00.601042+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestRubyListtagsbymetricnamereturnsSuccessresponse1619228888\",\"attributes\":{\"tags\":[\"TestRubyListtagsbymetricnamereturnsSuccessresponse1619228888\",\"app\",\"datacenter\"],\"include_percentiles\":false,\"created_at\":\"2021-04-24T01:48:08.489900+00:00\",\"modified_at\":\"2021-04-24T01:48:08.489900+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestPythonCreateatagconfigurationreturnsCreatedresponse1619421459\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-04-26T07:17:40.163589+00:00\",\"modified_at\":\"2021-04-26T07:17:40.163589+00:00\",\"metric_type\":\"distribution\"}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 01 Sep 2022 11:59:49 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/metrics?filter%5Bconfigured%5D=true" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"manage_tags\",\"id\":\"test.metric.1\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"created_at\":\"2022-03-24T18:23:55.957002+00:00\",\"modified_at\":\"2022-03-28T14:34:32.618807+00:00\",\"metric_type\":\"gauge\",\"aggregations\":[{\"space\":\"avg\",\"time\":\"avg\"}]}},{\"type\":\"manage_tags\",\"id\":\"foo\",\"attributes\":{\"tags\":[\"datacenter\",\"sport\"],\"created_at\":\"2021-10-27T12:35:56.242671+00:00\",\"modified_at\":\"2021-10-27T12:41:22.413540+00:00\",\"metric_type\":\"count\",\"aggregations\":[{\"space\":\"sum\",\"time\":\"sum\"}]}},{\"type\":\"manage_tags\",\"id\":\"ExampleListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1653177320\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"ExampleListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1653177320\"],\"created_at\":\"2022-05-21T23:55:28.435000+00:00\",\"modified_at\":\"2022-05-21T23:55:28.435000+00:00\",\"metric_type\":\"gauge\",\"aggregations\":[{\"space\":\"avg\",\"time\":\"avg\"}]}},{\"type\":\"manage_tags\",\"id\":\"javaCreateatagconfigu1617241053\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-04-01T01:37:34.078032+00:00\",\"modified_at\":\"2021-05-07T09:02:37.581544+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"rubyCreateatagconfigurationreturnsCreatedresponse1616498653\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-23T11:24:13.435931+00:00\",\"modified_at\":\"2021-03-23T11:24:13.435931+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestRubyListtagsbymetricnamereturnsSuccessresponse1618241083\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestRubyListtagsbymetricnamereturnsSuccessresponse1618241083\"],\"include_percentiles\":false,\"created_at\":\"2021-04-12T15:24:43.937851+00:00\",\"modified_at\":\"2021-04-12T15:24:43.937851+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioCreateaTagConfigurationreturnsCreatedresponse462771613138431\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-02-12T14:00:32.059033+00:00\",\"modified_at\":\"2021-02-12T14:00:32.059033+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioDeleteaTagConfigurationreturnsNoContentresponse462771613138432\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioDeleteaTagConfigurationreturnsNoContentresponse462771613138432\"],\"include_percentiles\":false,\"created_at\":\"2021-02-12T14:00:32.286794+00:00\",\"modified_at\":\"2021-02-12T14:00:32.286794+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListTagConfigurationbyNamereturnsSuccessresponse462771613138432\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioListTagConfigurationbyNamereturnsSuccessresponse462771613138432\"],\"include_percentiles\":false,\"created_at\":\"2021-02-12T14:00:32.668585+00:00\",\"modified_at\":\"2021-02-12T14:00:32.668585+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListTagConfigurationsreturnsSuccessresponse462771613138432\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioListTagConfigurationsreturnsSuccessresponse462771613138432\"],\"include_percentiles\":false,\"created_at\":\"2021-02-12T14:00:32.953685+00:00\",\"modified_at\":\"2021-02-12T14:00:32.953685+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioUpdateaTagConfigurationreturnsOKresponse462771613138437\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioUpdateaTagConfigurationreturnsOKresponse462771613138437\"],\"include_percentiles\":false,\"created_at\":\"2021-02-12T14:00:37.707422+00:00\",\"modified_at\":\"2021-02-12T14:00:37.707422+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestcreateatagconfigurationreturnscreatedresponse1613308647656458\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-02-14T13:17:28.200159+00:00\",\"modified_at\":\"2021-02-14T13:17:28.200159+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaDeleteaTagConfigu1613601517\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaDeleteaTagConfigu1613601517\"],\"include_percentiles\":false,\"created_at\":\"2021-02-17T22:38:38.226434+00:00\",\"modified_at\":\"2021-02-17T22:38:38.226434+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListTagConfigurationbyNamereturnsSuccessresponse1613674911438\",\"attributes\":{\"tags\":[\"TypescriptListTagConfigurationbyNamereturnsSuccessresponse1613674911438\",\"app\",\"datacenter\"],\"include_percentiles\":false,\"created_at\":\"2021-02-18T19:01:51.701561+00:00\",\"modified_at\":\"2021-02-18T19:01:51.701561+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptCreateaTagConfigurationreturnsCreatedresponse1613674910068\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-02-18T19:01:50.346751+00:00\",\"modified_at\":\"2021-02-18T19:01:50.346751+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListTagConfigurationsreturnsSuccessresponse1613674912224\",\"attributes\":{\"tags\":[\"TypescriptListTagConfigurationsreturnsSuccessresponse1613674912224\",\"app\",\"datacenter\"],\"include_percentiles\":false,\"created_at\":\"2021-02-18T19:01:52.489744+00:00\",\"modified_at\":\"2021-02-18T19:01:52.489744+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptUpdateaTagConfigurationreturnsOKresponse1613674918621\",\"attributes\":{\"tags\":[\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-02-18T19:01:58.909298+00:00\",\"modified_at\":\"2021-02-18T19:01:59.239616+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptCreateaTagConfigurationreturnsCreatedresponse1613675388888\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-02-18T19:09:49.157042+00:00\",\"modified_at\":\"2021-02-18T19:09:49.157042+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptUpdateaTagConfigurationreturnsOKresponse1613675398177\",\"attributes\":{\"tags\":[\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-02-18T19:09:58.429942+00:00\",\"modified_at\":\"2021-02-18T19:09:58.778902+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListTagConfigurationsreturnsSuccessresponse1613675391059\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListTagConfigurationsreturnsSuccessresponse1613675391059\"],\"include_percentiles\":false,\"created_at\":\"2021-02-18T19:09:51.329650+00:00\",\"modified_at\":\"2021-02-18T19:09:51.329650+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListTagConfigurationbyNamereturnsSuccessresponse1613675390193\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListTagConfigurationbyNamereturnsSuccessresponse1613675390193\"],\"include_percentiles\":false,\"created_at\":\"2021-02-18T19:09:50.468784+00:00\",\"modified_at\":\"2021-02-18T19:09:50.468784+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptDeleteaTagConfigurationreturnsNoContentresponse1613676227224\",\"attributes\":{\"tags\":[\"datacenter\",\"TypescriptDeleteaTagConfigurationreturnsNoContentresponse1613676227224\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-02-18T19:23:47.510239+00:00\",\"modified_at\":\"2021-02-18T19:23:47.510239+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaUpdateaTagConfigu1613983335\",\"attributes\":{\"tags\":[\"javaUpdateaTagConfigu1613983335\",\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-02-22T08:42:15.339339+00:00\",\"modified_at\":\"2021-02-22T08:42:15.339339+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestupdateatagconfigurationreturnsokresponse1613983337447904\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestupdateatagconfigurationreturnsokresponse1613983337447904\"],\"include_percentiles\":false,\"created_at\":\"2021-02-22T08:42:17.877627+00:00\",\"modified_at\":\"2021-02-22T08:42:17.877627+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptCreateaTagConfigurationreturnsCreatedresponse1613983377189\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-02-22T08:42:57.496771+00:00\",\"modified_at\":\"2021-02-22T08:42:57.496771+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListTagConfigurationbyNamereturnsSuccessresponse489431614557161\",\"attributes\":{\"tags\":[\"goFeatureMetricsScenarioListTagConfigurationbyNamereturnsSuccessresponse489431614557161\",\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-01T00:06:01.798862+00:00\",\"modified_at\":\"2021-03-01T00:06:01.798862+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaUpdateaTagConfigu1614290498\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaUpdateaTagConfigu1614290498\"],\"include_percentiles\":false,\"created_at\":\"2021-02-25T22:01:38.735081+00:00\",\"modified_at\":\"2021-02-25T22:01:38.735081+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaUpdateaTagConfigu1614648774\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaUpdateaTagConfigu1614648774\"],\"include_percentiles\":false,\"created_at\":\"2021-03-02T01:32:55.019781+00:00\",\"modified_at\":\"2021-03-02T01:32:55.019781+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestupdateatagconfigurationreturnsokresponse1612987674596336\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestupdateatagconfigurationreturnsokresponse1612987674596336\"],\"include_percentiles\":false,\"created_at\":\"2021-02-10T20:07:54.979797+00:00\",\"modified_at\":\"2021-03-03T22:28:32.386290+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestcreateatagconfigurationreturnscreatedresponse1612987679233002\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-02-10T20:07:59.516348+00:00\",\"modified_at\":\"2021-03-03T20:42:09.521631+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestlisttagconfigurationsreturnssuccessresponse1612987675260358\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestlisttagconfigurationsreturnssuccessresponse1612987675260358\"],\"include_percentiles\":false,\"created_at\":\"2021-02-10T20:07:55.559669+00:00\",\"modified_at\":\"2021-03-03T20:45:46.030871+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptUpdateaTagConfigurationreturnsOKresponse1614821029942\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptUpdateaTagConfigurationreturnsOKresponse1614821029942\"],\"include_percentiles\":false,\"created_at\":\"2021-03-04T01:23:50.307273+00:00\",\"modified_at\":\"2021-03-04T01:23:50.307273+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestlisttagsbymetricnamereturnssuccessresponse1614632066664577\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestlisttagsbymetricnamereturnssuccessresponse1614632066664577\"],\"include_percentiles\":false,\"created_at\":\"2021-03-01T20:54:26.950587+00:00\",\"modified_at\":\"2021-03-03T19:53:57.601421+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestdeleteatagconfigurationreturnsnocontentresponse1612987678724128\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestdeleteatagconfigurationreturnsnocontentresponse1612987678724128\"],\"include_percentiles\":false,\"created_at\":\"2021-02-10T20:07:59.011905+00:00\",\"modified_at\":\"2021-03-03T19:54:03.012021+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaUpdateaTagConfigu1614907949\",\"attributes\":{\"tags\":[\"javaUpdateaTagConfigu1614907949\",\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-05T01:32:29.891018+00:00\",\"modified_at\":\"2021-03-05T01:32:29.891018+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaListTagConfigurati1614907942\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaListTagConfigurati1614907942\"],\"include_percentiles\":false,\"created_at\":\"2021-03-05T01:32:22.257630+00:00\",\"modified_at\":\"2021-03-05T01:32:22.779595+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaCreateaTagConfigu1614907941\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-05T01:32:21.472249+00:00\",\"modified_at\":\"2021-03-05T01:32:21.472249+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaDeleteaTagConfigu1614907941\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaDeleteaTagConfigu1614907941\"],\"include_percentiles\":false,\"created_at\":\"2021-03-05T01:32:21.840312+00:00\",\"modified_at\":\"2021-03-05T01:32:21.840312+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestlistdistinctmetricvolumesbymetricnamereturnssuccessresponse1614877824877072\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestlistdistinctmetricvolumesbymetricnamereturnssuccessresponse1614877824877072\"],\"include_percentiles\":false,\"created_at\":\"2021-03-04T17:10:25.408162+00:00\",\"modified_at\":\"2021-03-04T18:03:35.564866+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestlisttagsbymetricnamereturnssuccessresponse161487782309652\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestlisttagsbymetricnamereturnssuccessresponse161487782309652\"],\"include_percentiles\":false,\"created_at\":\"2021-03-04T17:10:23.841708+00:00\",\"modified_at\":\"2021-03-04T18:03:25.853564+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestdeleteatagconfigurationreturnsnocontentresponse1614878558721298\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestdeleteatagconfigurationreturnsnocontentresponse1614878558721298\"],\"include_percentiles\":false,\"created_at\":\"2021-03-04T17:22:39.122261+00:00\",\"modified_at\":\"2021-03-04T18:03:33.352006+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestlisttagconfigurationbynamereturnssuccessresponse1612987679647768\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestlisttagconfigurationbynamereturnssuccessresponse1612987679647768\"],\"include_percentiles\":false,\"created_at\":\"2021-02-10T20:07:59.946457+00:00\",\"modified_at\":\"2021-03-04T09:39:37.370474+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaListtagsbymetric1614962335\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaListtagsbymetric1614962335\"],\"include_percentiles\":false,\"created_at\":\"2021-03-05T16:38:55.946186+00:00\",\"modified_at\":\"2021-03-05T16:38:55.946186+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaUpdateatagconfigu1614962336\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaUpdateatagconfigu1614962336\"],\"include_percentiles\":false,\"created_at\":\"2021-03-05T16:38:56.440191+00:00\",\"modified_at\":\"2021-03-05T16:38:56.440191+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaListtagsbymetric1614984109\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaListtagsbymetric1614984109\"],\"include_percentiles\":false,\"created_at\":\"2021-03-05T22:41:50.029868+00:00\",\"modified_at\":\"2021-03-05T22:41:50.029868+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse505431615205163\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse505431615205163\"],\"include_percentiles\":false,\"created_at\":\"2021-03-08T12:06:03.965736+00:00\",\"modified_at\":\"2021-03-08T12:06:03.965736+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaCreateatagconfigu1615195320\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-08T09:22:00.581891+00:00\",\"modified_at\":\"2021-03-08T09:22:00.581891+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaListdistinctmetric1615195322\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaListdistinctmetric1615195322\"],\"include_percentiles\":false,\"created_at\":\"2021-03-08T09:22:02.640568+00:00\",\"modified_at\":\"2021-03-08T09:22:02.640568+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaDeleteatagconfigu1615195321\",\"attributes\":{\"tags\":[\"javaDeleteatagconfigu1615195321\",\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-08T09:22:01.374349+00:00\",\"modified_at\":\"2021-03-08T09:22:01.374349+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaListtagconfigurati1615195323\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaListtagconfigurati1615195323\"],\"include_percentiles\":false,\"created_at\":\"2021-03-08T09:22:03.733804+00:00\",\"modified_at\":\"2021-03-08T09:22:03.733804+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaListtagconfigurati1615195324\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaListtagconfigurati1615195324\"],\"include_percentiles\":false,\"created_at\":\"2021-03-08T09:22:04.847552+00:00\",\"modified_at\":\"2021-03-08T09:22:04.847552+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaListtagsbymetric1615195329\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaListtagsbymetric1615195329\"],\"include_percentiles\":false,\"created_at\":\"2021-03-08T09:22:10.192146+00:00\",\"modified_at\":\"2021-03-08T09:22:10.192146+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaUpdateatagconfigu1615195330\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaUpdateatagconfigu1615195330\"],\"include_percentiles\":false,\"created_at\":\"2021-03-08T09:22:11.353873+00:00\",\"modified_at\":\"2021-03-08T09:22:11.353873+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1615241008139\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1615241008139\"],\"include_percentiles\":false,\"created_at\":\"2021-03-08T22:03:28.250137+00:00\",\"modified_at\":\"2021-03-08T22:03:28.250137+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestRubyListtagconfigurationsreturnsSuccessresponse1618243860\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestRubyListtagconfigurationsreturnsSuccessresponse1618243860\"],\"include_percentiles\":false,\"created_at\":\"2021-04-12T16:11:00.453385+00:00\",\"modified_at\":\"2021-04-12T16:11:00.453385+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse507811615269834\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse507811615269834\"],\"include_percentiles\":false,\"created_at\":\"2021-03-09T06:03:55.035011+00:00\",\"modified_at\":\"2021-03-09T06:03:55.035011+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaListtagconfigurati1615289582\",\"attributes\":{\"tags\":[\"javaListtagconfigurati1615289582\",\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-09T11:33:02.415435+00:00\",\"modified_at\":\"2021-03-09T11:33:02.415435+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse511141615397094\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse511141615397094\"],\"include_percentiles\":false,\"created_at\":\"2021-03-10T17:24:54.232169+00:00\",\"modified_at\":\"2021-03-10T17:24:54.232169+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListtagsbymetricnamereturnsSuccessresponse511141615397093\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioListtagsbymetricnamereturnsSuccessresponse511141615397093\"],\"include_percentiles\":false,\"created_at\":\"2021-03-10T17:24:53.773142+00:00\",\"modified_at\":\"2021-03-10T17:24:53.773142+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"rubyListtagsbymetricnamereturnsSuccessresponse1615600096\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"rubyListtagsbymetricnamereturnsSuccessresponse1615600096\"],\"include_percentiles\":false,\"created_at\":\"2021-03-13T01:48:16.706740+00:00\",\"modified_at\":\"2021-03-13T01:48:16.706740+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"rubyUpdateatagconfigurationreturnsOKresponse1615600097\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"rubyUpdateatagconfigurationreturnsOKresponse1615600097\"],\"include_percentiles\":false,\"created_at\":\"2021-03-13T01:48:17.311123+00:00\",\"modified_at\":\"2021-03-13T01:48:17.311123+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagsbymetricnamereturnsSuccessresponse1615641825358\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListtagsbymetricnamereturnsSuccessresponse1615641825358\"],\"include_percentiles\":false,\"created_at\":\"2021-03-13T13:23:45.714258+00:00\",\"modified_at\":\"2021-03-13T13:23:45.714258+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptUpdateatagconfigurationreturnsOKresponse1615728221108\",\"attributes\":{\"tags\":[\"datacenter\",\"TypescriptUpdateatagconfigurationreturnsOKresponse1615728221108\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-14T13:23:41.436621+00:00\",\"modified_at\":\"2021-03-14T13:23:41.436621+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagsbymetricnamereturnsSuccessresponse1615728219671\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListtagsbymetricnamereturnsSuccessresponse1615728219671\"],\"include_percentiles\":false,\"created_at\":\"2021-03-14T13:23:40.016425+00:00\",\"modified_at\":\"2021-03-14T13:23:40.016425+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1615901000076\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1615901000076\"],\"include_percentiles\":false,\"created_at\":\"2021-03-16T13:23:20.213657+00:00\",\"modified_at\":\"2021-03-16T13:23:20.213657+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptDeleteatagconfigurationreturnsNoContentresponse1615900999594\",\"attributes\":{\"tags\":[\"datacenter\",\"TypescriptDeleteatagconfigurationreturnsNoContentresponse1615900999594\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-16T13:23:19.703100+00:00\",\"modified_at\":\"2021-03-16T13:23:19.703100+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagconfigurationsreturnsSuccessresponse1615901001052\",\"attributes\":{\"tags\":[\"datacenter\",\"TypescriptListtagconfigurationsreturnsSuccessresponse1615901001052\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-16T13:23:21.193223+00:00\",\"modified_at\":\"2021-03-16T13:23:21.193223+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptCreateatagconfigurationreturnsCreatedresponse1615900999263\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-16T13:23:19.393024+00:00\",\"modified_at\":\"2021-03-16T13:23:19.393024+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagconfigurationbynamereturnsSuccessresponse1615901000614\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListtagconfigurationbynamereturnsSuccessresponse1615901000614\"],\"include_percentiles\":false,\"created_at\":\"2021-03-16T13:23:20.718208+00:00\",\"modified_at\":\"2021-03-16T13:23:20.718208+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagsbymetricnamereturnsSuccessresponse1615901006889\",\"attributes\":{\"tags\":[\"datacenter\",\"TypescriptListtagsbymetricnamereturnsSuccessresponse1615901006889\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-16T13:23:27.006017+00:00\",\"modified_at\":\"2021-03-16T13:23:27.006017+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptUpdateatagconfigurationreturnsOKresponse1615901007411\",\"attributes\":{\"tags\":[\"datacenter\",\"TypescriptUpdateatagconfigurationreturnsOKresponse1615901007411\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-16T13:23:27.541142+00:00\",\"modified_at\":\"2021-03-16T13:23:27.541142+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListdistinctmetricvolumesbymetricnamereturnsSuccessresponse519741615886584\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioListdistinctmetricvolumesbymetricnamereturnsSuccessresponse519741615886584\"],\"include_percentiles\":false,\"created_at\":\"2021-03-16T09:23:04.506963+00:00\",\"modified_at\":\"2021-03-16T09:23:04.506963+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioDeleteatagconfigurationreturnsNoContentresponse519741615886584\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioDeleteatagconfigurationreturnsNoContentresponse519741615886584\"],\"include_percentiles\":false,\"created_at\":\"2021-03-16T09:23:04.173080+00:00\",\"modified_at\":\"2021-03-16T09:23:04.173080+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListtagconfigurationsreturnsSuccessresponse519741615886585\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioListtagconfigurationsreturnsSuccessresponse519741615886585\"],\"include_percentiles\":false,\"created_at\":\"2021-03-16T09:23:05.166846+00:00\",\"modified_at\":\"2021-03-16T09:23:05.166846+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioCreateatagconfigurationreturnsCreatedresponse519741615886583\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-16T09:23:03.873546+00:00\",\"modified_at\":\"2021-03-16T09:23:03.873546+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListtagconfigurationbynamereturnsSuccessresponse519741615886584\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioListtagconfigurationbynamereturnsSuccessresponse519741615886584\"],\"include_percentiles\":false,\"created_at\":\"2021-03-16T09:23:04.833632+00:00\",\"modified_at\":\"2021-03-16T09:23:04.833632+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListtagsbymetricnamereturnsSuccessresponse519741615886593\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioListtagsbymetricnamereturnsSuccessresponse519741615886593\"],\"include_percentiles\":false,\"created_at\":\"2021-03-16T09:23:13.154433+00:00\",\"modified_at\":\"2021-03-16T09:23:13.154433+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse519741615886593\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse519741615886593\"],\"include_percentiles\":false,\"created_at\":\"2021-03-16T09:23:13.517437+00:00\",\"modified_at\":\"2021-03-16T09:23:13.517437+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptCreateatagconfigurationreturnsCreatedresponse1615998271598\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-17T16:24:31.959292+00:00\",\"modified_at\":\"2021-03-17T16:24:31.959292+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagconfigurationbynamereturnsSuccessresponse1616160199767\",\"attributes\":{\"tags\":[\"TypescriptListtagconfigurationbynamereturnsSuccessresponse1616160199767\",\"app\",\"datacenter\"],\"include_percentiles\":false,\"created_at\":\"2021-03-19T13:23:19.857702+00:00\",\"modified_at\":\"2021-03-19T13:23:19.857702+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagsbymetricnamereturnsSuccessresponse161616020553\",\"attributes\":{\"tags\":[\"TypescriptListtagsbymetricnamereturnsSuccessresponse161616020553\",\"app\",\"datacenter\"],\"include_percentiles\":false,\"created_at\":\"2021-03-19T13:23:25.631513+00:00\",\"modified_at\":\"2021-03-19T13:23:25.631513+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagconfigurationsreturnsSuccessresponse1616160200146\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListtagconfigurationsreturnsSuccessresponse1616160200146\"],\"include_percentiles\":false,\"created_at\":\"2021-03-19T13:23:20.232463+00:00\",\"modified_at\":\"2021-03-19T13:23:20.232463+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptCreateatagconfigurationreturnsCreatedresponse1616160198595\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-19T13:23:18.718201+00:00\",\"modified_at\":\"2021-03-19T13:23:18.718201+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptDeleteatagconfigurationreturnsNoContentresponse1616160198921\",\"attributes\":{\"tags\":[\"datacenter\",\"TypescriptDeleteatagconfigurationreturnsNoContentresponse1616160198921\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-19T13:23:19.038247+00:00\",\"modified_at\":\"2021-03-19T13:23:19.038247+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1616160199415\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1616160199415\"],\"include_percentiles\":false,\"created_at\":\"2021-03-19T13:23:19.493780+00:00\",\"modified_at\":\"2021-03-19T13:23:19.493780+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptUpdateatagconfigurationreturnsOKresponse1616160205992\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptUpdateatagconfigurationreturnsOKresponse1616160205992\"],\"include_percentiles\":false,\"created_at\":\"2021-03-19T13:23:26.079138+00:00\",\"modified_at\":\"2021-03-19T13:23:26.079138+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptDeleteatagconfigurationreturnsNoContentresponse1615998272487\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptDeleteatagconfigurationreturnsNoContentresponse1615998272487\"],\"include_percentiles\":false,\"created_at\":\"2021-03-17T16:24:32.839382+00:00\",\"modified_at\":\"2021-03-17T16:24:32.839382+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptCreateatagconfigurationreturnsCreatedresponse1616149776487\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-19T10:29:36.901071+00:00\",\"modified_at\":\"2021-03-19T10:29:36.901071+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptUpdateatagconfigurationreturnsOKresponse161628985592\",\"attributes\":{\"tags\":[\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-21T01:24:16.278639+00:00\",\"modified_at\":\"2021-03-21T01:24:16.826616+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestlisttagconfigurationbynamereturnssuccessresponse1616085123642229\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestlisttagconfigurationbynamereturnssuccessresponse1616085123642229\"],\"include_percentiles\":false,\"created_at\":\"2021-03-18T16:32:03.966633+00:00\",\"modified_at\":\"2021-03-18T16:32:03.966633+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestlistdistinctmetricvolumesbymetricnamereturnssuccessresponse1616085131743281\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestlistdistinctmetricvolumesbymetricnamereturnssuccessresponse1616085131743281\"],\"include_percentiles\":false,\"created_at\":\"2021-03-18T16:32:12.060863+00:00\",\"modified_at\":\"2021-03-18T16:32:12.060863+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestlisttagsbymetricnamereturnssuccessresponse1616085146387336\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestlisttagsbymetricnamereturnssuccessresponse1616085146387336\"],\"include_percentiles\":false,\"created_at\":\"2021-03-18T16:32:26.695646+00:00\",\"modified_at\":\"2021-03-18T16:32:26.695646+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestupdateatagconfigurationreturnsokresponse1616085149782964\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestupdateatagconfigurationreturnsokresponse1616085149782964\"],\"include_percentiles\":false,\"created_at\":\"2021-03-18T16:32:30.080251+00:00\",\"modified_at\":\"2021-03-18T16:32:30.080251+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse537181616565902\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse537181616565902\"],\"include_percentiles\":false,\"created_at\":\"2021-03-24T06:05:02.364811+00:00\",\"modified_at\":\"2021-03-24T06:05:02.364811+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListtagsbymetricnamereturnsSuccessresponse537181616565901\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioListtagsbymetricnamereturnsSuccessresponse537181616565901\"],\"include_percentiles\":false,\"created_at\":\"2021-03-24T06:05:01.875172+00:00\",\"modified_at\":\"2021-03-24T06:05:01.875172+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioDeleteatagconfigurationreturnsNoContentresponse537181616565893\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioDeleteatagconfigurationreturnsNoContentresponse537181616565893\"],\"include_percentiles\":false,\"created_at\":\"2021-03-24T06:04:53.937128+00:00\",\"modified_at\":\"2021-03-24T06:04:53.937128+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListtagconfigurationsreturnsSuccessresponse537181616565895\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioListtagconfigurationsreturnsSuccessresponse537181616565895\"],\"include_percentiles\":false,\"created_at\":\"2021-03-24T06:04:55.311874+00:00\",\"modified_at\":\"2021-03-24T06:04:55.311874+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioCreateatagconfigurationreturnsCreatedresponse537181616565893\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-24T06:04:53.604451+00:00\",\"modified_at\":\"2021-03-24T06:04:53.604451+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListdistinctmetricvolumesbymetricnamereturnsSuccessresponse537181616565894\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioListdistinctmetricvolumesbymetricnamereturnsSuccessresponse537181616565894\"],\"include_percentiles\":false,\"created_at\":\"2021-03-24T06:04:54.427149+00:00\",\"modified_at\":\"2021-03-24T06:04:54.427149+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListtagconfigurationbynamereturnsSuccessresponse537181616565894\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioListtagconfigurationbynamereturnsSuccessresponse537181616565894\"],\"include_percentiles\":false,\"created_at\":\"2021-03-24T06:04:54.866614+00:00\",\"modified_at\":\"2021-03-24T06:04:54.866614+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptCreateatagconfigurationreturnsCreatedresponse161641942819\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-22T13:23:48.550450+00:00\",\"modified_at\":\"2021-03-22T13:23:48.550450+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagsbymetricnamereturnsSuccessresponse1616419438471\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListtagsbymetricnamereturnsSuccessresponse1616419438471\"],\"include_percentiles\":false,\"created_at\":\"2021-03-22T13:23:58.847497+00:00\",\"modified_at\":\"2021-03-22T13:23:58.847497+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1616419430386\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1616419430386\"],\"include_percentiles\":false,\"created_at\":\"2021-03-22T13:23:50.744154+00:00\",\"modified_at\":\"2021-03-22T13:23:50.744154+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptDeleteatagconfigurationreturnsNoContentresponse1616419429059\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptDeleteatagconfigurationreturnsNoContentresponse1616419429059\"],\"include_percentiles\":false,\"created_at\":\"2021-03-22T13:23:49.434641+00:00\",\"modified_at\":\"2021-03-22T13:23:49.434641+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagconfigurationbynamereturnsSuccessresponse161641943169\",\"attributes\":{\"tags\":[\"TypescriptListtagconfigurationbynamereturnsSuccessresponse161641943169\",\"app\",\"datacenter\"],\"include_percentiles\":false,\"created_at\":\"2021-03-22T13:23:52.032469+00:00\",\"modified_at\":\"2021-03-22T13:23:52.032469+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagconfigurationsreturnsSuccessresponse1616419432884\",\"attributes\":{\"tags\":[\"datacenter\",\"TypescriptListtagconfigurationsreturnsSuccessresponse1616419432884\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-22T13:23:53.144380+00:00\",\"modified_at\":\"2021-03-22T13:23:53.144380+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListtagsbymetricnamereturnsSuccessresponse532071616436253\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioListtagsbymetricnamereturnsSuccessresponse532071616436253\"],\"include_percentiles\":false,\"created_at\":\"2021-03-22T18:04:13.105380+00:00\",\"modified_at\":\"2021-03-22T18:04:13.105380+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse532071616436253\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse532071616436253\"],\"include_percentiles\":false,\"created_at\":\"2021-03-22T18:04:13.474151+00:00\",\"modified_at\":\"2021-03-22T18:04:13.474151+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestlistdistinctmetricvolumesbymetricnamereturnssuccessresponse1616671077838552\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestlistdistinctmetricvolumesbymetricnamereturnssuccessresponse1616671077838552\"],\"include_percentiles\":false,\"created_at\":\"2021-03-25T11:17:58.568334+00:00\",\"modified_at\":\"2021-03-25T11:17:58.568334+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestdeleteatagconfigurationreturnsnocontentresponse1616752499902025\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestdeleteatagconfigurationreturnsnocontentresponse1616752499902025\"],\"include_percentiles\":false,\"created_at\":\"2021-03-26T09:55:00.209674+00:00\",\"modified_at\":\"2021-03-26T09:55:00.209674+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestlisttagsbymetricnamereturnssuccessresponse1616492360346493\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"datadogapiclientpythontestlisttagsbymetricnamereturnssuccessresponse1616492360346493\"],\"include_percentiles\":false,\"created_at\":\"2021-03-23T09:39:20.746200+00:00\",\"modified_at\":\"2021-03-23T09:39:20.746200+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptCreateatagconfigurationreturnsCreatedresponse1616495055838\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-23T10:24:16.190783+00:00\",\"modified_at\":\"2021-03-23T10:24:16.190783+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"rubyListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1616498654\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"rubyListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1616498654\"],\"include_percentiles\":false,\"created_at\":\"2021-03-23T11:24:14.161383+00:00\",\"modified_at\":\"2021-03-23T11:24:14.161383+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"rubyListtagconfigurationbynamereturnsSuccessresponse1616498654\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"rubyListtagconfigurationbynamereturnsSuccessresponse1616498654\"],\"include_percentiles\":false,\"created_at\":\"2021-03-23T11:24:14.567372+00:00\",\"modified_at\":\"2021-03-23T11:24:14.567372+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"rubyDeleteatagconfigurationreturnsNoContentresponse1616498653\",\"attributes\":{\"tags\":[\"rubyDeleteatagconfigurationreturnsNoContentresponse1616498653\",\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-23T11:24:13.744787+00:00\",\"modified_at\":\"2021-03-23T11:24:13.744787+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptCreateatagconfigurationreturnsCreatedresponse1616894650949\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-28T01:24:11.315850+00:00\",\"modified_at\":\"2021-03-28T01:24:11.315850+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"rubyCreateatagconfigurationreturnsCreatedresponse1617010239\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-29T09:30:39.277788+00:00\",\"modified_at\":\"2021-03-29T09:30:39.277788+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagconfigurationbynamereturnsSuccessresponse1616840650426\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListtagconfigurationbynamereturnsSuccessresponse1616840650426\"],\"include_percentiles\":false,\"created_at\":\"2021-03-27T10:24:10.771619+00:00\",\"modified_at\":\"2021-03-27T10:24:10.771619+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"rubyCreateatagconfigurationreturnsCreatedresponse1617013073\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-29T10:17:53.426838+00:00\",\"modified_at\":\"2021-03-29T10:17:53.426838+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"rubyListtagconfigurationsreturnsSuccessresponse1617013912\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"rubyListtagconfigurationsreturnsSuccessresponse1617013912\"],\"include_percentiles\":false,\"created_at\":\"2021-03-29T10:31:52.652432+00:00\",\"modified_at\":\"2021-03-29T10:31:52.652432+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestcreateatagconfigurationreturnscreatedresponse1617014589345712\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-29T10:43:09.860304+00:00\",\"modified_at\":\"2021-03-29T10:43:09.860304+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListtagsbymetricnamereturnsSuccessresponse549511617084343\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioListtagsbymetricnamereturnsSuccessresponse549511617084343\"],\"include_percentiles\":false,\"created_at\":\"2021-03-30T06:05:43.124191+00:00\",\"modified_at\":\"2021-03-30T06:05:43.124191+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse549511617084343\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse549511617084343\"],\"include_percentiles\":false,\"created_at\":\"2021-03-30T06:05:43.601969+00:00\",\"modified_at\":\"2021-03-30T06:05:43.601969+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestcreateatagconfigurationreturnscreatedresponse1617190497075142\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-31T11:34:57.312061+00:00\",\"modified_at\":\"2021-03-31T11:34:57.312061+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"rubyCreateatagconfigurationreturnsCreatedresponse1618116460\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-04-11T04:47:40.938028+00:00\",\"modified_at\":\"2021-04-11T04:47:40.938028+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptCreateatagconfigurationreturnsCreatedresponse1617197102302\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-31T13:25:02.713019+00:00\",\"modified_at\":\"2021-03-31T13:25:02.713019+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListtagconfigurationsreturnsSuccessresponse553521617208533\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioListtagconfigurationsreturnsSuccessresponse553521617208533\"],\"include_percentiles\":false,\"created_at\":\"2021-03-31T16:35:33.822570+00:00\",\"modified_at\":\"2021-03-31T16:35:33.822570+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptUpdateatagconfigurationreturnsOKresponse1617110622671\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptUpdateatagconfigurationreturnsOKresponse1617110622671\"],\"include_percentiles\":false,\"created_at\":\"2021-03-30T13:23:42.813575+00:00\",\"modified_at\":\"2021-03-30T13:23:42.813575+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagsbymetricnamereturnsSuccessresponse161711062218\",\"attributes\":{\"tags\":[\"TypescriptListtagsbymetricnamereturnsSuccessresponse161711062218\",\"app\",\"datacenter\"],\"include_percentiles\":false,\"created_at\":\"2021-03-30T13:23:42.290454+00:00\",\"modified_at\":\"2021-03-30T13:23:42.290454+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"datadogapiclientpythontestcreateatagconfigurationreturnscreatedresponse1617189605290728\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-03-31T11:20:05.512669+00:00\",\"modified_at\":\"2021-03-31T11:20:05.512669+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioListtagsbymetricnamereturnsSuccessresponse550921617127471\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioListtagsbymetricnamereturnsSuccessresponse550921617127471\"],\"include_percentiles\":false,\"created_at\":\"2021-03-30T18:04:31.348364+00:00\",\"modified_at\":\"2021-03-30T18:04:31.348364+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse550921617127471\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"goFeatureMetricsScenarioUpdateatagconfigurationreturnsOKresponse550921617127471\"],\"include_percentiles\":false,\"created_at\":\"2021-03-30T18:04:31.750754+00:00\",\"modified_at\":\"2021-03-30T18:04:31.750754+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaListdistinctmetric1617241055\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaListdistinctmetric1617241055\"],\"include_percentiles\":false,\"created_at\":\"2021-04-01T01:37:35.979950+00:00\",\"modified_at\":\"2021-04-01T01:37:35.979950+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaListtagconfigurati1617241056\",\"attributes\":{\"tags\":[\"javaListtagconfigurati1617241056\",\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-04-01T01:37:37.187124+00:00\",\"modified_at\":\"2021-04-01T01:37:37.187124+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaListtagconfigurati1617241057\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaListtagconfigurati1617241057\"],\"include_percentiles\":false,\"created_at\":\"2021-04-01T01:37:38.337846+00:00\",\"modified_at\":\"2021-04-01T01:37:38.337846+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"javaListtagsbymetric1617241065\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"javaListtagsbymetric1617241065\"],\"include_percentiles\":false,\"created_at\":\"2021-04-01T01:37:46.167234+00:00\",\"modified_at\":\"2021-04-01T01:37:46.167234+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagconfigurationsreturnsSuccessresponse1617629121895\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListtagconfigurationsreturnsSuccessresponse1617629121895\"],\"include_percentiles\":false,\"created_at\":\"2021-04-05T13:25:22.245313+00:00\",\"modified_at\":\"2021-04-05T13:25:22.245313+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1617629119345\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1617629119345\"],\"include_percentiles\":false,\"created_at\":\"2021-04-05T13:25:19.715171+00:00\",\"modified_at\":\"2021-04-05T13:25:19.715171+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptDeleteatagconfigurationreturnsNoContentresponse1617629117988\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptDeleteatagconfigurationreturnsNoContentresponse1617629117988\"],\"include_percentiles\":false,\"created_at\":\"2021-04-05T13:25:18.355397+00:00\",\"modified_at\":\"2021-04-05T13:25:18.355397+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagconfigurationbynamereturnsSuccessresponse1617629120639\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListtagconfigurationbynamereturnsSuccessresponse1617629120639\"],\"include_percentiles\":false,\"created_at\":\"2021-04-05T13:25:20.999352+00:00\",\"modified_at\":\"2021-04-05T13:25:20.999352+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptListtagsbymetricnamereturnsSuccessresponse1617629131797\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TypescriptListtagsbymetricnamereturnsSuccessresponse1617629131797\"],\"include_percentiles\":false,\"created_at\":\"2021-04-05T13:25:32.056313+00:00\",\"modified_at\":\"2021-04-05T13:25:32.056313+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"rubyDeleteatagconfigurationreturnsNoContentresponse1617414463\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"rubyDeleteatagconfigurationreturnsNoContentresponse1617414463\"],\"include_percentiles\":false,\"created_at\":\"2021-04-03T01:47:43.121903+00:00\",\"modified_at\":\"2021-04-03T01:47:43.121903+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TypescriptCreateatagconfigurationreturnsCreatedresponse161776946527\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-04-07T04:24:25.610201+00:00\",\"modified_at\":\"2021-04-07T04:24:25.610201+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"tf_TestAccDatadogMetricTagConfiguration_import_57079_1617883575\",\"attributes\":{\"tags\":[\"datacenter\",\"sport\"],\"include_percentiles\":false,\"created_at\":\"2021-04-08T12:06:15.682733+00:00\",\"modified_at\":\"2021-04-08T12:06:15.682733+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"tf_TestAccDatadogMetricTagConfiguration_Basic_57079_1617883576\",\"attributes\":{\"tags\":[\"datacenter\",\"sport\"],\"include_percentiles\":false,\"created_at\":\"2021-04-08T12:06:16.328512+00:00\",\"modified_at\":\"2021-04-08T12:06:16.328512+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"rubyListtagconfigurationbynamereturnsSuccessresponse1617878848\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"rubyListtagconfigurationbynamereturnsSuccessresponse1617878848\"],\"include_percentiles\":false,\"created_at\":\"2021-04-08T10:47:28.651054+00:00\",\"modified_at\":\"2021-04-08T10:47:28.651054+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestJavaListtagconfigurationsreturnsSuccessresponse1618245205\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestJavaListtagconfigurationsreturnsSuccessresponse1618245205\"],\"include_percentiles\":false,\"created_at\":\"2021-04-12T16:33:26.065648+00:00\",\"modified_at\":\"2021-04-12T16:33:26.065648+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestJavaListtagconfigurationsreturnsSuccessresponse1618245209\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestJavaListtagconfigurationsreturnsSuccessresponse1618245209\"],\"include_percentiles\":false,\"created_at\":\"2021-04-12T16:33:29.921161+00:00\",\"modified_at\":\"2021-04-12T16:33:29.921161+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestGoUpdateatagconfigurationreturnsOKresponse1618245210\",\"attributes\":{\"tags\":[\"TestGoUpdateatagconfigurationreturnsOKresponse1618245210\",\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-04-12T16:33:30.912740+00:00\",\"modified_at\":\"2021-04-12T16:33:30.912740+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestListtagsbymetricnamereturnsSuccessresponse1618083821\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestListtagsbymetricnamereturnsSuccessresponse1618083821\"],\"include_percentiles\":false,\"created_at\":\"2021-04-10T19:43:42.330061+00:00\",\"modified_at\":\"2021-04-10T19:43:42.330061+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestRubyUpdateatagconfigurationreturnsOKresponse1618477782\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestRubyUpdateatagconfigurationreturnsOKresponse1618477782\"],\"include_percentiles\":false,\"created_at\":\"2021-04-15T09:09:42.695934+00:00\",\"modified_at\":\"2021-04-15T09:09:42.695934+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestTypescriptUpdateatagconfigurationreturnsOKresponse1618576969\",\"attributes\":{\"tags\":[\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-04-16T12:42:49.127510+00:00\",\"modified_at\":\"2021-04-16T12:42:49.222085+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestPythonListtagconfigurationsreturnsSuccessresponse1618576965\",\"attributes\":{\"tags\":[\"TestPythonListtagconfigurationsreturnsSuccessresponse1618576965\",\"app\",\"datacenter\"],\"include_percentiles\":false,\"created_at\":\"2021-04-16T12:42:45.376840+00:00\",\"modified_at\":\"2021-04-16T12:42:45.376840+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestTypescriptUpdateatagconfigurationreturnsOKresponse1618828174\",\"attributes\":{\"tags\":[\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-04-19T10:29:34.758064+00:00\",\"modified_at\":\"2021-04-19T10:29:34.863258+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestPythonListtagconfigurationsreturnsSuccessresponse1618828169\",\"attributes\":{\"tags\":[\"TestPythonListtagconfigurationsreturnsSuccessresponse1618828169\",\"app\",\"datacenter\"],\"include_percentiles\":false,\"created_at\":\"2021-04-19T10:29:28.829677+00:00\",\"modified_at\":\"2021-04-19T10:29:28.829677+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestGoListtagconfigurationsreturnsSuccessresponse1618835558\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestGoListtagconfigurationsreturnsSuccessresponse1618835558\"],\"include_percentiles\":false,\"created_at\":\"2021-04-19T12:32:38.361429+00:00\",\"modified_at\":\"2021-04-19T12:32:38.361429+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestTypescriptListtagsbymetricnamereturnsSuccessresponse1618817102\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestTypescriptListtagsbymetricnamereturnsSuccessresponse1618817102\"],\"include_percentiles\":false,\"created_at\":\"2021-04-19T07:25:02.613361+00:00\",\"modified_at\":\"2021-04-19T07:25:02.613361+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestPythonListtagconfigurationbynamereturnsSuccessresponse1618831533\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestPythonListtagconfigurationbynamereturnsSuccessresponse1618831533\"],\"include_percentiles\":false,\"created_at\":\"2021-04-19T11:25:33.764565+00:00\",\"modified_at\":\"2021-04-19T11:25:33.764565+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestPythonListtagconfigurationbynamereturnsSuccessresponse1618827476\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestPythonListtagconfigurationbynamereturnsSuccessresponse1618827476\"],\"include_percentiles\":false,\"created_at\":\"2021-04-19T10:17:56.919641+00:00\",\"modified_at\":\"2021-04-19T10:17:56.919641+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestJavaListtagsbymetricnamereturnsSuccessresponse1618861041\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestJavaListtagsbymetricnamereturnsSuccessresponse1618861041\"],\"include_percentiles\":false,\"created_at\":\"2021-04-19T19:37:21.909413+00:00\",\"modified_at\":\"2021-04-19T19:37:21.909413+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestRubyListtagconfigurationbynamereturnsSuccessresponse1618883262\",\"attributes\":{\"tags\":[\"TestRubyListtagconfigurationbynamereturnsSuccessresponse1618883262\",\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-04-20T01:47:42.978537+00:00\",\"modified_at\":\"2021-04-20T01:47:42.978537+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestJavaListtagconfigurationbynamereturnsSuccessresponse1619096218\",\"attributes\":{\"tags\":[\"TestJavaListtagconfigurationbynamereturnsSuccessresponse1619096218\",\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-04-22T12:56:58.362386+00:00\",\"modified_at\":\"2021-04-22T12:56:58.362386+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestPythonCreateatagconfigurationreturnsCreatedresponse1619097915\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-04-22T13:25:31.443839+00:00\",\"modified_at\":\"2021-04-22T13:25:31.443839+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestTypescriptListtagsbymetricnamereturnsSuccessresponse1619097911\",\"attributes\":{\"tags\":[\"TestTypescriptListtagsbymetricnamereturnsSuccessresponse1619097911\",\"app\",\"datacenter\"],\"include_percentiles\":false,\"created_at\":\"2021-04-22T13:25:11.404186+00:00\",\"modified_at\":\"2021-04-22T13:25:11.404186+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestTypescriptListtagconfigurationsreturnsSuccessresponse1619096210\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestTypescriptListtagconfigurationsreturnsSuccessresponse1619096210\"],\"include_percentiles\":false,\"created_at\":\"2021-04-22T12:56:51.186137+00:00\",\"modified_at\":\"2021-04-22T12:56:51.186137+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestJavaListtagsbymetricnamereturnsSuccessresponse1619131204\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestJavaListtagsbymetricnamereturnsSuccessresponse1619131204\"],\"include_percentiles\":false,\"created_at\":\"2021-04-22T22:40:04.866275+00:00\",\"modified_at\":\"2021-04-22T22:40:04.866275+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestJavaListtagconfigurationsreturnsSuccessresponse1619175153\",\"attributes\":{\"tags\":[\"datacenter\",\"TestJavaListtagconfigurationsreturnsSuccessresponse1619175153\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-04-23T10:52:33.873612+00:00\",\"modified_at\":\"2021-04-23T10:52:33.873612+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestTypescriptListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1619175155\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestTypescriptListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1619175155\"],\"include_percentiles\":false,\"created_at\":\"2021-04-23T10:52:35.693831+00:00\",\"modified_at\":\"2021-04-23T10:52:35.693831+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestJavaListtagconfigurationbynamereturnsSuccessresponse1619282121\",\"attributes\":{\"tags\":[\"TestJavaListtagconfigurationbynamereturnsSuccessresponse1619282121\",\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-04-24T16:35:22.034065+00:00\",\"modified_at\":\"2021-04-24T16:35:22.034065+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestRubyCreateatagconfigurationreturnsCreatedresponse1619228878\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-04-24T01:47:59.109548+00:00\",\"modified_at\":\"2021-04-24T01:47:59.109548+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestRubyDeleteatagconfigurationreturnsNoContentresponse1619228879\",\"attributes\":{\"tags\":[\"TestRubyDeleteatagconfigurationreturnsNoContentresponse1619228879\",\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-04-24T01:47:59.465861+00:00\",\"modified_at\":\"2021-04-24T01:47:59.465861+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestRubyUpdateatagconfigurationreturnsOKresponse1619228888\",\"attributes\":{\"tags\":[\"TestRubyUpdateatagconfigurationreturnsOKresponse1619228888\",\"app\",\"datacenter\"],\"include_percentiles\":false,\"created_at\":\"2021-04-24T01:48:08.955735+00:00\",\"modified_at\":\"2021-04-24T01:48:08.955735+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestRubyListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1619228879\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestRubyListdistinctmetricvolumesbymetricnamereturnsSuccessresponse1619228879\"],\"include_percentiles\":false,\"created_at\":\"2021-04-24T01:47:59.924705+00:00\",\"modified_at\":\"2021-04-24T01:47:59.924705+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestRubyListtagconfigurationbynamereturnsSuccessresponse1619228880\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestRubyListtagconfigurationbynamereturnsSuccessresponse1619228880\"],\"include_percentiles\":false,\"created_at\":\"2021-04-24T01:48:00.601042+00:00\",\"modified_at\":\"2021-04-24T01:48:00.601042+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestRubyListtagsbymetricnamereturnsSuccessresponse1619228888\",\"attributes\":{\"tags\":[\"TestRubyListtagsbymetricnamereturnsSuccessresponse1619228888\",\"app\",\"datacenter\"],\"include_percentiles\":false,\"created_at\":\"2021-04-24T01:48:08.489900+00:00\",\"modified_at\":\"2021-04-24T01:48:08.489900+00:00\",\"metric_type\":\"distribution\"}},{\"type\":\"manage_tags\",\"id\":\"TestPythonCreateatagconfigurationreturnsCreatedresponse1619421459\",\"attributes\":{\"tags\":[\"datacenter\",\"app\"],\"include_percentiles\":false,\"created_at\":\"2021-04-26T07:17:40.163589+00:00\",\"modified_at\":\"2021-04-26T07:17:40.163589+00:00\",\"metric_type\":\"distribution\"}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 01 Sep 2022 11:59:49 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/metrics/List-active-tags-and-aggregations-returns-Success-response.json b/tests/scenarios/cassettes/v2/metrics/List-active-tags-and-aggregations-returns-Success-response.json index 66db111ae..1c3235eb8 100644 --- a/tests/scenarios/cassettes/v2/metrics/List-active-tags-and-aggregations-returns-Success-response.json +++ b/tests/scenarios/cassettes/v2/metrics/List-active-tags-and-aggregations-returns-Success-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"series\":[{\"metric\":\"static_test_metric_donotdelete\",\"points\":[[1685976245,1.1]],\"tags\":[\"test:static_test_metric_donotdelete\"],\"type\":\"gauge\"}]}", "encoding": null}, "headers": {"Accept": ["text/json, application/json"], "Content-Type": ["text/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/series"}, "response": {"body": {"string": "{\"status\": \"ok\"}", "encoding": null}, "headers": {"Content-Type": ["text/json"]}, "status": {"code": 202, "message": "Accepted"}}, "recorded_at": "Mon, 05 Jun 2023 14:44:05 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/metrics/static_test_metric_donotdelete/active-configurations"}, "response": {"body": {"string": "{\"data\":{\"type\":\"actively_queried_configurations\",\"id\":\"static_test_metric_donotdelete\",\"attributes\":{\"active_tags\":[],\"active_aggregations\":[]}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 05 Jun 2023 14:44:05 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"series\":[{\"metric\":\"static_test_metric_donotdelete\",\"points\":[[1685976245,1.1]],\"tags\":[\"test:static_test_metric_donotdelete\"],\"type\":\"gauge\"}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "text/json, application/json" + ], + "Content-Type": [ + "text/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/series" + }, + "response": { + "body": { + "string": "{\"status\": \"ok\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/json" + ] + }, + "status": { + "code": 202, + "message": "Accepted" + } + }, + "recorded_at": "Mon, 05 Jun 2023 14:44:05 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/metrics/static_test_metric_donotdelete/active-configurations" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"actively_queried_configurations\",\"id\":\"static_test_metric_donotdelete\",\"attributes\":{\"active_tags\":[],\"active_aggregations\":[]}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 05 Jun 2023 14:44:05 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/metrics/List-distinct-metric-volumes-by-metric-name-returns-Success-response.json b/tests/scenarios/cassettes/v2/metrics/List-distinct-metric-volumes-by-metric-name-returns-Success-response.json index 2794cc295..a5fedd8bb 100644 --- a/tests/scenarios/cassettes/v2/metrics/List-distinct-metric-volumes-by-metric-name-returns-Success-response.json +++ b/tests/scenarios/cassettes/v2/metrics/List-distinct-metric-volumes-by-metric-name-returns-Success-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"series\":[{\"metric\":\"static_test_metric_donotdelete\",\"points\":[[1685718947,1.1]],\"tags\":[\"test:static_test_metric_donotdelete\"],\"type\":\"gauge\"}]}", "encoding": null}, "headers": {"Accept": ["text/json, application/json"], "Content-Type": ["text/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/series"}, "response": {"body": {"string": "{\"status\": \"ok\"}", "encoding": null}, "headers": {"Content-Type": ["text/json"]}, "status": {"code": 202, "message": "Accepted"}}, "recorded_at": "Fri, 02 Jun 2023 15:15:47 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/metrics/static_test_metric_donotdelete/volumes"}, "response": {"body": {"string": "{\"data\":{\"type\":\"metric_volumes\",\"id\":\"static_test_metric_donotdelete\",\"attributes\":{\"indexed_volume\":1,\"ingested_volume\":1}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 02 Jun 2023 15:15:47 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"series\":[{\"metric\":\"static_test_metric_donotdelete\",\"points\":[[1685718947,1.1]],\"tags\":[\"test:static_test_metric_donotdelete\"],\"type\":\"gauge\"}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "text/json, application/json" + ], + "Content-Type": [ + "text/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/series" + }, + "response": { + "body": { + "string": "{\"status\": \"ok\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/json" + ] + }, + "status": { + "code": 202, + "message": "Accepted" + } + }, + "recorded_at": "Fri, 02 Jun 2023 15:15:47 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/metrics/static_test_metric_donotdelete/volumes" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"metric_volumes\",\"id\":\"static_test_metric_donotdelete\",\"attributes\":{\"indexed_volume\":1,\"ingested_volume\":1}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 02 Jun 2023 15:15:47 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/metrics/List-tag-configuration-by-name-returns-Success-response.json b/tests/scenarios/cassettes/v2/metrics/List-tag-configuration-by-name-returns-Success-response.json index 11c100fd6..32d0f9647 100644 --- a/tests/scenarios/cassettes/v2/metrics/List-tag-configuration-by-name-returns-Success-response.json +++ b/tests/scenarios/cassettes/v2/metrics/List-tag-configuration-by-name-returns-Success-response.json @@ -1 +1,125 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"series\":[{\"metric\":\"TestListtagconfigurationbynamereturnsSuccessresponse1652354693\",\"points\":[[1652354693,1.1]],\"tags\":[\"test:ExampleSubmitmetricsreturnsPayloadacceptedresponse\"],\"type\":\"gauge\"}]}", "encoding": null}, "headers": {"Accept": ["text/json, application/json"], "Content-Type": ["text/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/series"}, "response": {"body": {"string": "{\"status\": \"ok\"}", "encoding": null}, "headers": {"Content-Type": ["text/json"]}, "status": {"code": 202, "message": "Accepted"}}, "recorded_at": "Thu, 12 May 2022 11:24:53 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"metric_type\":\"gauge\",\"tags\":[\"app\",\"datacenter\",\"TestListtagconfigurationbynamereturnsSuccessresponse1652354693\"]},\"id\":\"TestListtagconfigurationbynamereturnsSuccessresponse1652354693\",\"type\":\"manage_tags\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/metrics/TestListtagconfigurationbynamereturnsSuccessresponse1652354693/tags"}, "response": {"body": {"string": "{\"data\":{\"type\":\"manage_tags\",\"id\":\"TestListtagconfigurationbynamereturnsSuccessresponse1652354693\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestListtagconfigurationbynamereturnsSuccessresponse1652354693\"],\"created_at\":\"2022-05-12T11:24:57.972878+00:00\",\"modified_at\":\"2022-05-12T11:24:57.972878+00:00\",\"metric_type\":\"gauge\",\"aggregations\":[{\"space\":\"avg\",\"time\":\"avg\"}]}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 11:24:53 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/metrics/TestListtagconfigurationbynamereturnsSuccessresponse1652354693/tags"}, "response": {"body": {"string": "{\"data\":{\"type\":\"manage_tags\",\"id\":\"TestListtagconfigurationbynamereturnsSuccessresponse1652354693\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestListtagconfigurationbynamereturnsSuccessresponse1652354693\"],\"created_at\":\"2022-05-12T11:24:57.972878+00:00\",\"modified_at\":\"2022-05-12T11:24:57.972878+00:00\",\"metric_type\":\"gauge\",\"aggregations\":[{\"space\":\"avg\",\"time\":\"avg\"}]}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 11:24:53 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/metrics/TestListtagconfigurationbynamereturnsSuccessresponse1652354693/tags"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 11:24:53 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"series\":[{\"metric\":\"TestListtagconfigurationbynamereturnsSuccessresponse1652354693\",\"points\":[[1652354693,1.1]],\"tags\":[\"test:ExampleSubmitmetricsreturnsPayloadacceptedresponse\"],\"type\":\"gauge\"}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "text/json, application/json" + ], + "Content-Type": [ + "text/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/series" + }, + "response": { + "body": { + "string": "{\"status\": \"ok\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/json" + ] + }, + "status": { + "code": 202, + "message": "Accepted" + } + }, + "recorded_at": "Thu, 12 May 2022 11:24:53 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"metric_type\":\"gauge\",\"tags\":[\"app\",\"datacenter\",\"TestListtagconfigurationbynamereturnsSuccessresponse1652354693\"]},\"id\":\"TestListtagconfigurationbynamereturnsSuccessresponse1652354693\",\"type\":\"manage_tags\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/metrics/TestListtagconfigurationbynamereturnsSuccessresponse1652354693/tags" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"manage_tags\",\"id\":\"TestListtagconfigurationbynamereturnsSuccessresponse1652354693\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestListtagconfigurationbynamereturnsSuccessresponse1652354693\"],\"created_at\":\"2022-05-12T11:24:57.972878+00:00\",\"modified_at\":\"2022-05-12T11:24:57.972878+00:00\",\"metric_type\":\"gauge\",\"aggregations\":[{\"space\":\"avg\",\"time\":\"avg\"}]}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 11:24:53 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/metrics/TestListtagconfigurationbynamereturnsSuccessresponse1652354693/tags" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"manage_tags\",\"id\":\"TestListtagconfigurationbynamereturnsSuccessresponse1652354693\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestListtagconfigurationbynamereturnsSuccessresponse1652354693\"],\"created_at\":\"2022-05-12T11:24:57.972878+00:00\",\"modified_at\":\"2022-05-12T11:24:57.972878+00:00\",\"metric_type\":\"gauge\",\"aggregations\":[{\"space\":\"avg\",\"time\":\"avg\"}]}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 11:24:53 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/metrics/TestListtagconfigurationbynamereturnsSuccessresponse1652354693/tags" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 11:24:53 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/metrics/List-tags-by-metric-name-returns-Success-response.json b/tests/scenarios/cassettes/v2/metrics/List-tags-by-metric-name-returns-Success-response.json index 2c0ab3d04..ac743c22e 100644 --- a/tests/scenarios/cassettes/v2/metrics/List-tags-by-metric-name-returns-Success-response.json +++ b/tests/scenarios/cassettes/v2/metrics/List-tags-by-metric-name-returns-Success-response.json @@ -1 +1,125 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"series\":[{\"metric\":\"TestListtagsbymetricnamereturnsSuccessresponse1652354618\",\"points\":[[1652354618,1.1]],\"tags\":[\"test:ExampleSubmitmetricsreturnsPayloadacceptedresponse\"],\"type\":\"gauge\"}]}", "encoding": null}, "headers": {"Accept": ["text/json, application/json"], "Content-Type": ["text/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/series"}, "response": {"body": {"string": "{\"status\": \"ok\"}", "encoding": null}, "headers": {"Content-Type": ["text/json"]}, "status": {"code": 202, "message": "Accepted"}}, "recorded_at": "Thu, 12 May 2022 11:23:38 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"metric_type\":\"gauge\",\"tags\":[\"app\",\"datacenter\",\"TestListtagsbymetricnamereturnsSuccessresponse1652354618\"]},\"id\":\"TestListtagsbymetricnamereturnsSuccessresponse1652354618\",\"type\":\"manage_tags\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/metrics/TestListtagsbymetricnamereturnsSuccessresponse1652354618/tags"}, "response": {"body": {"string": "{\"data\":{\"type\":\"manage_tags\",\"id\":\"TestListtagsbymetricnamereturnsSuccessresponse1652354618\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestListtagsbymetricnamereturnsSuccessresponse1652354618\"],\"created_at\":\"2022-05-12T11:23:43.466946+00:00\",\"modified_at\":\"2022-05-12T11:23:43.466946+00:00\",\"metric_type\":\"gauge\",\"aggregations\":[{\"space\":\"avg\",\"time\":\"avg\"}]}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 11:23:38 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/metrics/TestListtagsbymetricnamereturnsSuccessresponse1652354618/all-tags"}, "response": {"body": {"string": "{\"data\":{\"type\":\"metrics\",\"id\":\"TestListtagsbymetricnamereturnsSuccessresponse1652354618\",\"attributes\":{\"tags\":[]}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 11:23:38 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/metrics/TestListtagsbymetricnamereturnsSuccessresponse1652354618/tags"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 11:23:38 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"series\":[{\"metric\":\"TestListtagsbymetricnamereturnsSuccessresponse1652354618\",\"points\":[[1652354618,1.1]],\"tags\":[\"test:ExampleSubmitmetricsreturnsPayloadacceptedresponse\"],\"type\":\"gauge\"}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "text/json, application/json" + ], + "Content-Type": [ + "text/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/series" + }, + "response": { + "body": { + "string": "{\"status\": \"ok\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/json" + ] + }, + "status": { + "code": 202, + "message": "Accepted" + } + }, + "recorded_at": "Thu, 12 May 2022 11:23:38 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"metric_type\":\"gauge\",\"tags\":[\"app\",\"datacenter\",\"TestListtagsbymetricnamereturnsSuccessresponse1652354618\"]},\"id\":\"TestListtagsbymetricnamereturnsSuccessresponse1652354618\",\"type\":\"manage_tags\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/metrics/TestListtagsbymetricnamereturnsSuccessresponse1652354618/tags" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"manage_tags\",\"id\":\"TestListtagsbymetricnamereturnsSuccessresponse1652354618\",\"attributes\":{\"tags\":[\"datacenter\",\"app\",\"TestListtagsbymetricnamereturnsSuccessresponse1652354618\"],\"created_at\":\"2022-05-12T11:23:43.466946+00:00\",\"modified_at\":\"2022-05-12T11:23:43.466946+00:00\",\"metric_type\":\"gauge\",\"aggregations\":[{\"space\":\"avg\",\"time\":\"avg\"}]}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 11:23:38 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/metrics/TestListtagsbymetricnamereturnsSuccessresponse1652354618/all-tags" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"metrics\",\"id\":\"TestListtagsbymetricnamereturnsSuccessresponse1652354618\",\"attributes\":{\"tags\":[]}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 11:23:38 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/metrics/TestListtagsbymetricnamereturnsSuccessresponse1652354618/tags" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 11:23:38 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/metrics/Related-Assets-to-a-Metric-returns-Success-response.frozen b/tests/scenarios/cassettes/v2/metrics/Related-Assets-to-a-Metric-returns-Success-response.frozen new file mode 100644 index 000000000..a7312811c --- /dev/null +++ b/tests/scenarios/cassettes/v2/metrics/Related-Assets-to-a-Metric-returns-Success-response.frozen @@ -0,0 +1 @@ +2024-02-28T15:57:55.633Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/metrics/Related-Assets-to-a-Metric-returns-Success-response.json b/tests/scenarios/cassettes/v2/metrics/Related-Assets-to-a-Metric-returns-Success-response.json new file mode 100644 index 000000000..08133a471 --- /dev/null +++ b/tests/scenarios/cassettes/v2/metrics/Related-Assets-to-a-Metric-returns-Success-response.json @@ -0,0 +1,33 @@ +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/metrics/system.cpu.user/assets" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"system.cpu.user\",\"type\":\"metrics\",\"relationships\":{\"dashboards\":{\"data\":[{\"id\":\"d5e-dpd-umy\",\"type\":\"dashboards\"},{\"id\":\"884-jxj-d7f\",\"type\":\"dashboards\"},{\"id\":\"kqz-yw2-egk\",\"type\":\"dashboards\"},{\"id\":\"43b-kw6-vqr\",\"type\":\"dashboards\"},{\"id\":\"3bd-yi5-t9f\",\"type\":\"dashboards\"},{\"id\":\"zfd-a24-thy\",\"type\":\"dashboards\"},{\"id\":\"5qr-399-8wz\",\"type\":\"dashboards\"},{\"id\":\"zst-bcm-gq6\",\"type\":\"dashboards\"},{\"id\":\"ytd-nd3-bxu\",\"type\":\"dashboards\"},{\"id\":\"7dp-46c-6tr\",\"type\":\"dashboards\"},{\"id\":\"ug4-a8z-jva\",\"type\":\"dashboards\"},{\"id\":\"89p-5x9-mfp\",\"type\":\"dashboards\"},{\"id\":\"unw-hwk-68w\",\"type\":\"dashboards\"},{\"id\":\"2m8-ht3-7kf\",\"type\":\"dashboards\"},{\"id\":\"eq3-r74-a85\",\"type\":\"dashboards\"},{\"id\":\"8yn-6s7-pue\",\"type\":\"dashboards\"},{\"id\":\"b6n-8j5-2iz\",\"type\":\"dashboards\"},{\"id\":\"4j8-nbn-4gi\",\"type\":\"dashboards\"},{\"id\":\"tpx-f7m-z57\",\"type\":\"dashboards\"},{\"id\":\"xfe-kap-e5y\",\"type\":\"dashboards\"},{\"id\":\"5tp-tr6-93q\",\"type\":\"dashboards\"},{\"id\":\"6md-r2g-kxc\",\"type\":\"dashboards\"},{\"id\":\"neh-3bi-sgi\",\"type\":\"dashboards\"},{\"id\":\"63v-49e-a7d\",\"type\":\"dashboards\"},{\"id\":\"8w6-777-dbc\",\"type\":\"dashboards\"},{\"id\":\"bgp-uee-rt3\",\"type\":\"dashboards\"},{\"id\":\"p8w-deq-k6x\",\"type\":\"dashboards\"},{\"id\":\"f4a-76m-nbn\",\"type\":\"dashboards\"},{\"id\":\"9km-gj8-2rj\",\"type\":\"dashboards\"},{\"id\":\"deh-2pa-jv8\",\"type\":\"dashboards\"}]},\"monitors\":{\"data\":[]},\"notebooks\":{\"data\":[{\"id\":\"4758632\",\"type\":\"notebooks\"}]},\"slos\":{\"data\":[]}}},\"included\":[{\"id\":\"d5e-dpd-umy\",\"type\":\"dashboards\",\"attributes\":{\"popularity\":0,\"title\":\"Cloud Foundry - Infrastructure Overview\"}},{\"id\":\"884-jxj-d7f\",\"type\":\"dashboards\",\"attributes\":{\"popularity\":0,\"title\":\"Cloud Foundry - Infrastructure Overview\"}},{\"id\":\"kqz-yw2-egk\",\"type\":\"dashboards\",\"attributes\":{\"popularity\":0,\"title\":\"PCF Nozzle Testing (cloned)\"}},{\"id\":\"43b-kw6-vqr\",\"type\":\"dashboards\",\"attributes\":{\"popularity\":0,\"title\":\"Cloud Foundry - Overview (cloned)\"}},{\"id\":\"3bd-yi5-t9f\",\"type\":\"dashboards\",\"attributes\":{\"popularity\":0,\"title\":\"Cloud Foundry - Overview (cloned)\"}},{\"id\":\"zfd-a24-thy\",\"type\":\"dashboards\",\"attributes\":{\"popularity\":0,\"title\":\"PCF Cloud Controller\"}},{\"id\":\"5qr-399-8wz\",\"type\":\"dashboards\",\"attributes\":{\"popularity\":0,\"title\":\"Example-Create_a_new_dashboard_with_formulas_and_functions_scatterplot_widget_1708538631\"}},{\"id\":\"zst-bcm-gq6\",\"type\":\"dashboards\",\"attributes\":{\"popularity\":0,\"title\":\"Ordered Layout Dashboard\"}},{\"id\":\"ytd-nd3-bxu\",\"type\":\"dashboards\",\"attributes\":{\"popularity\":0,\"title\":\"\"}},{\"id\":\"7dp-46c-6tr\",\"type\":\"dashboards\",\"attributes\":{\"popularity\":0,\"title\":\"\"}},{\"id\":\"ug4-a8z-jva\",\"type\":\"dashboards\",\"attributes\":{\"popularity\":0,\"title\":\"\"}},{\"id\":\"89p-5x9-mfp\",\"type\":\"dashboards\",\"attributes\":{\"popularity\":0,\"title\":\"\"}},{\"id\":\"unw-hwk-68w\",\"type\":\"dashboards\",\"attributes\":{\"popularity\":0,\"title\":\"\"}},{\"id\":\"2m8-ht3-7kf\",\"type\":\"dashboards\",\"attributes\":{\"popularity\":0,\"title\":\"\"}},{\"id\":\"eq3-r74-a85\",\"type\":\"dashboards\",\"attributes\":{\"popularity\":0,\"title\":\"\"}},{\"id\":\"8yn-6s7-pue\",\"type\":\"dashboards\",\"attributes\":{\"popularity\":0,\"title\":\"\"}},{\"id\":\"b6n-8j5-2iz\",\"type\":\"dashboards\",\"attributes\":{\"popularity\":0,\"title\":\"Cloud Foundry - Overview (cloned) (cloned)\"}},{\"id\":\"4j8-nbn-4gi\",\"type\":\"dashboards\",\"attributes\":{\"popularity\":0,\"title\":\"\"}},{\"id\":\"tpx-f7m-z57\",\"type\":\"dashboards\",\"attributes\":{\"popularity\":0,\"title\":\"{{ unique }}\"}},{\"id\":\"xfe-kap-e5y\",\"type\":\"dashboards\",\"attributes\":{\"popularity\":0,\"title\":\"\"}},{\"id\":\"5tp-tr6-93q\",\"type\":\"dashboards\",\"attributes\":{\"popularity\":0,\"title\":\"\"}},{\"id\":\"6md-r2g-kxc\",\"type\":\"dashboards\",\"attributes\":{\"popularity\":0,\"title\":\"\"}},{\"id\":\"neh-3bi-sgi\",\"type\":\"dashboards\",\"attributes\":{\"popularity\":0,\"title\":\"\"}},{\"id\":\"63v-49e-a7d\",\"type\":\"dashboards\",\"attributes\":{\"popularity\":0,\"title\":\"sarah test\"}},{\"id\":\"8w6-777-dbc\",\"type\":\"dashboards\",\"attributes\":{\"popularity\":0,\"title\":\"\"}},{\"id\":\"bgp-uee-rt3\",\"type\":\"dashboards\",\"attributes\":{\"popularity\":0,\"title\":\"\"}},{\"id\":\"p8w-deq-k6x\",\"type\":\"dashboards\",\"attributes\":{\"popularity\":0,\"title\":\"CRP-176\"}},{\"id\":\"f4a-76m-nbn\",\"type\":\"dashboards\",\"attributes\":{\"popularity\":0,\"title\":\"Hippolyte's Screenboard Fri, Apr 16, 10:20:54 am\"}},{\"id\":\"9km-gj8-2rj\",\"type\":\"dashboards\",\"attributes\":{\"popularity\":0,\"title\":\"Hippolyte's Screenboard Fri, Apr 16, 10:20:54 am\"}},{\"id\":\"deh-2pa-jv8\",\"type\":\"dashboards\",\"attributes\":{\"popularity\":0,\"title\":\"Hippolyte's Timeboard Wed, Mar 3, 10:57:28 am\"}},{\"id\":\"4758632\",\"type\":\"notebooks\",\"attributes\":{\"title\":\"PCF Container Usage Attribution\"}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 28 Feb 2024 15:57:55 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/metrics/Scalar-cross-product-query-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/metrics/Scalar-cross-product-query-returns-Bad-Request-response.json index 664a55e20..76a05d8b5 100644 --- a/tests/scenarios/cassettes/v2/metrics/Scalar-cross-product-query-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/metrics/Scalar-cross-product-query-returns-Bad-Request-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a+b\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1568899800000,\"queries\":[{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"a\",\"query\":\"avg:system.cpu.user{*}\"}],\"to\":1568923200000},\"type\":\"scalar_request\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/query/scalar"}, "response": {"body": {"string": "{\"errors\":[\"Queries ending outside the retention date are invalid\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Wed, 21 Dec 2022 11:14:00 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a+b\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1568899800000,\"queries\":[{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"a\",\"query\":\"avg:system.cpu.user{*}\"}],\"to\":1568923200000},\"type\":\"scalar_request\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/query/scalar" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Queries ending outside the retention date are invalid\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Wed, 21 Dec 2022 11:14:00 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/metrics/Scalar-cross-product-query-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/metrics/Scalar-cross-product-query-returns-OK-response.frozen index 224b8d84a..45d76d7dd 100644 --- a/tests/scenarios/cassettes/v2/metrics/Scalar-cross-product-query-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v2/metrics/Scalar-cross-product-query-returns-OK-response.frozen @@ -1 +1 @@ -2022-12-21T11:14:01.142Z \ No newline at end of file +2024-03-25T19:28:00.854Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/metrics/Scalar-cross-product-query-returns-OK-response.json b/tests/scenarios/cassettes/v2/metrics/Scalar-cross-product-query-returns-OK-response.json index 3ef1eed42..ba0aae3fc 100644 --- a/tests/scenarios/cassettes/v2/metrics/Scalar-cross-product-query-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/metrics/Scalar-cross-product-query-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1671612804000,\"queries\":[{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"a\",\"query\":\"avg:system.cpu.user{*}\"}],\"to\":1671620004000},\"type\":\"scalar_request\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/query/scalar"}, "response": {"body": {"string": "{\"data\":{\"type\":\"scalar_response\",\"attributes\":{\"columns\":[{\"name\":\"a\",\"values\":[5.173633659114822],\"type\":\"number\",\"meta\":{\"unit\":[{\"scale_factor\":1.0,\"id\":17,\"name\":\"percent\",\"plural\":\"percent\",\"family\":\"percentage\",\"short_name\":\"%\"},null]}}]}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 21 Dec 2022 11:14:01 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1711391280000,\"queries\":[{\"aggregator\":\"avg\",\"data_source\":\"metrics\",\"name\":\"a\",\"query\":\"avg:system.cpu.user{*}\"}],\"to\":1711394880000},\"type\":\"scalar_request\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/query/scalar" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"scalar_response\",\"attributes\":{\"columns\":[{\"values\":[6.368151928283307],\"name\":\"a\",\"meta\":{\"unit\":[{\"short_name\":\"%\",\"id\":17,\"plural\":\"percent\",\"name\":\"percent\",\"family\":\"percentage\",\"scale_factor\":1.0},null]},\"type\":\"number\"}]}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 25 Mar 2024 19:28:00 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/metrics/Submit-metrics-returns-Payload-accepted-response.json b/tests/scenarios/cassettes/v2/metrics/Submit-metrics-returns-Payload-accepted-response.json index 37bd5bd91..b9619d504 100644 --- a/tests/scenarios/cassettes/v2/metrics/Submit-metrics-returns-Payload-accepted-response.json +++ b/tests/scenarios/cassettes/v2/metrics/Submit-metrics-returns-Payload-accepted-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"series\":[{\"metric\":\"system.load.1\",\"points\":[{\"timestamp\":1657662336,\"value\":0.7}],\"resources\":[{\"name\":\"dummyhost\",\"type\":\"host\"}],\"type\":0}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/series"}, "response": {"body": {"string": "{\"errors\":[]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 202, "message": "Accepted"}}, "recorded_at": "Tue, 12 Jul 2022 21:45:36 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"series\":[{\"metric\":\"system.load.1\",\"points\":[{\"timestamp\":1657662336,\"value\":0.7}],\"resources\":[{\"name\":\"dummyhost\",\"type\":\"host\"}],\"type\":0}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/series" + }, + "response": { + "body": { + "string": "{\"errors\":[]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 202, + "message": "Accepted" + } + }, + "recorded_at": "Tue, 12 Jul 2022 21:45:36 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/metrics/Tag-Configuration-Cardinality-Estimator-returns-Success-response.json b/tests/scenarios/cassettes/v2/metrics/Tag-Configuration-Cardinality-Estimator-returns-Success-response.json index 1ceaff850..cf76bc10b 100644 --- a/tests/scenarios/cassettes/v2/metrics/Tag-Configuration-Cardinality-Estimator-returns-Success-response.json +++ b/tests/scenarios/cassettes/v2/metrics/Tag-Configuration-Cardinality-Estimator-returns-Success-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/metrics/system.cpu.idle/estimate?filter%5Bgroups%5D=app%2Chost&filter%5Bnum_aggregations%5D=4"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"estimated_output_series\":68,\"estimate_type\":\"count_or_gauge\",\"estimated_at\":\"2022-05-14T09:31:28.108179Z\"},\"type\":\"metric_cardinality_estimate\",\"id\":\"system.cpu.idle\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 16 May 2022 16:31:27 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/metrics/system.cpu.idle/estimate?filter%5Bgroups%5D=app%2Chost&filter%5Bnum_aggregations%5D=4" + }, + "response": { + "body": { + "string": "{\"data\":{\"attributes\":{\"estimated_output_series\":68,\"estimate_type\":\"count_or_gauge\",\"estimated_at\":\"2022-05-14T09:31:28.108179Z\"},\"type\":\"metric_cardinality_estimate\",\"id\":\"system.cpu.idle\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 16 May 2022 16:31:27 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/metrics/Timeseries-cross-product-query-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/metrics/Timeseries-cross-product-query-returns-Bad-Request-response.json index f62f3db90..f8085941e 100644 --- a/tests/scenarios/cassettes/v2/metrics/Timeseries-cross-product-query-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/metrics/Timeseries-cross-product-query-returns-Bad-Request-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a+b\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1671617641,\"interval\":5000,\"queries\":[{\"data_source\":\"metrics\",\"query\":\"avg:system.cpu.user{*}\"}],\"to\":1671621241},\"type\":\"timeseries_rquest\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/query/timeseries"}, "response": {"body": {"string": "{\"errors\":[\"API input validation failed: Invalid type. Expected \\\"timeseries_request\\\".\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Wed, 21 Dec 2022 11:14:01 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a+b\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1671617641,\"interval\":5000,\"queries\":[{\"data_source\":\"metrics\",\"query\":\"avg:system.cpu.user{*}\"}],\"to\":1671621241},\"type\":\"timeseries_rquest\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/query/timeseries" + }, + "response": { + "body": { + "string": "{\"errors\":[\"API input validation failed: Invalid type. Expected \\\"timeseries_request\\\".\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Wed, 21 Dec 2022 11:14:01 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/metrics/Timeseries-cross-product-query-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/metrics/Timeseries-cross-product-query-returns-OK-response.frozen index 5bdb3c10f..3cfd00936 100644 --- a/tests/scenarios/cassettes/v2/metrics/Timeseries-cross-product-query-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v2/metrics/Timeseries-cross-product-query-returns-OK-response.frozen @@ -1 +1 @@ -2022-12-21T11:14:01.814Z \ No newline at end of file +2024-04-01T14:20:01.994Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/metrics/Timeseries-cross-product-query-returns-OK-response.json b/tests/scenarios/cassettes/v2/metrics/Timeseries-cross-product-query-returns-OK-response.json index 53d04a8e0..dac1e232f 100644 --- a/tests/scenarios/cassettes/v2/metrics/Timeseries-cross-product-query-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/metrics/Timeseries-cross-product-query-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1671612804000,\"interval\":5000,\"queries\":[{\"data_source\":\"metrics\",\"name\":\"a\",\"query\":\"avg:system.cpu.user{*}\"}],\"to\":1671620004000},\"type\":\"timeseries_request\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/query/timeseries"}, "response": {"body": {"string": "{\"data\":{\"type\":\"timeseries_response\",\"attributes\":{\"values\":[[4.511036,4.452697,4.412659,4.518245,4.687136,4.97308,5.192443,5.394637,5.340696,4.967064,4.986722,5.222986,5.654652,5.309001,5.166451,5.10007,5.363234,5.198181,4.985549,4.732672,4.596457,4.438161,4.440617,4.417017,4.460995,4.388007,4.407114,4.396247,4.463179,4.556415,4.706282,4.841254,4.834313,4.969147,5.022375,5.204864,4.885128,5.136058,5.385709,5.960689,5.565356,5.246903,4.899752,4.89686,4.872231,4.843359,5.013687,4.84587,4.641045,4.316564,4.259839,4.286675,4.351473,4.486833,4.577294,4.745868,4.705028,4.661034,4.471036,4.442686,4.648083,5.242174,5.852524,6.096846,5.89139,5.560238,5.280996,4.862933,4.709248,4.623006,4.860077,4.935585,5.022714,5.029523,4.788869,4.585691,4.341339,4.392719,4.404215,4.68485,4.762513,4.861116,4.615962,4.537305,4.396546,4.354968,4.328285,4.607015,5.543913,6.324773,6.792496,7.220547,6.606063,5.876218,5.871163,5.78849,5.905384,5.90785,6.120763,6.309492,6.454408,6.166451,5.863357,5.795657,5.884391,5.989054,5.812381,5.704644,5.556254,5.478115,5.505722,5.60674,6.059316,6.338839,6.711452,6.735411,6.865414,6.90191,6.756111,6.526661,6.100718,5.87628,5.748863,5.757181,5.722193,5.932041,6.204195,6.685102,6.549346,6.337531,5.916065,5.809077,5.712645,5.624461,5.609235,5.663688,5.853015,5.902995,5.914612,6.256064,6.687142,7.191397,6.847396,6.486767,6.206287,6.328331,6.46251,6.206348,5.929493,5.680556,5.661752,5.797259,6.048074,6.290369,6.501473,6.405154,6.309052,5.99345,5.866646,5.775236,5.92197,5.930556,5.906912,5.884151,6.011508,6.121853,6.39136,6.543824,6.756647,6.35429,6.0619,6.013092,6.279459,6.557457,6.311731,6.210523,5.947832,5.862253,5.738994,5.956962,6.252644,6.373787,6.300842,6.234464,6.376188,6.240802,6.092113,5.74307,5.68881,5.591538,6.218279,6.730657,7.310558,6.723645,6.249439,5.753847,5.758291,5.734797,5.933901,6.279562,6.520173,6.370642,6.201029,6.106782,6.112661,5.918345,5.965812,6.068902,6.358401,5.119474,5.134993,5.013521,4.778848,4.535078,4.507003,4.597434,4.656196,4.967201,5.331067,5.783775,5.319137,4.889232,4.395338,4.502716,4.490939,4.684735,4.821445,5.037191,5.007238,4.953504,4.945898,4.866694,4.819154,4.764052,4.819065,4.745362,4.831931,4.931988,5.21707,4.966855,4.702029,4.854507,5.347428,5.893627,5.386981,4.955269,4.470617,4.596507,4.521039,4.462105,4.346769,4.390456,4.519676,4.678632,4.852548,5.094638,5.299293,5.37353,5.054819,4.66616,4.420079,4.38882,4.519663,4.774763,5.069079,5.221413,4.927594,4.634475,4.909238,5.491882,6.046457,5.631336,5.062027,4.481505,4.341841,4.332686,4.364885,4.448851,4.572952,4.751025,4.902067,4.904094,5.054718,5.090399,5.254011,4.913755,4.751565,4.463131,4.463551,4.378909,4.649447,4.923694,5.6018,5.903531,6.186827,5.836629,5.377205,4.888724,4.536856,4.40555,4.363478,4.431734,4.545142,4.598567,4.695658,4.685236,4.679584,4.532542,4.445523,4.632351,4.974624,5.250778,5.07555,4.798842,4.620069,4.536116,4.457244,4.604563,4.840088,5.766038,6.303143,6.802655,6.091143,5.328086,4.642865,4.450604,4.476219,4.449314,4.629411,4.735648,4.865296,4.685488,4.51912,4.315168,4.350158,4.360299,4.571845,4.709814,4.902212,5.001238,5.028215,5.084393,4.820687,5.052605,5.28559,5.715299,5.603917,5.55135,5.576788,5.450727,5.078365,4.679194,4.674274,4.750762,4.798283,4.627874,4.535463,4.437021,4.466878,4.454509,4.491398,4.488202,4.494882,4.55218,4.543842,4.570604,4.697906,4.977783,5.215616,5.077405,5.413667,5.827774,6.409674,5.830352,5.430387,5.057747,5.445663,5.304086,5.155742,4.682481,4.497533,4.296956,4.310508,4.31634,4.375265,4.413491,4.458567,4.471268,4.39949,4.354437,4.342085,4.469582,4.563571,4.77724,5.132156,5.460429,5.638983,5.607113,5.687771,5.619198,5.360052,5.266902,5.285339,5.48854,5.203703,4.971474,4.666843,4.555747,4.40484,4.354661,4.353139,4.397763,4.369454,4.398596,4.43654,4.548555,4.556558,4.459109,4.368599,4.31658,4.492293,5.099936,5.773344,6.509406,6.340683,6.058546,5.237316,4.795722,4.701339,4.939245,5.249865,5.095241,4.927081,4.730854,4.643312,4.5614,4.439782,4.407931,4.405545,4.507572,4.545492,4.477086,4.380839,4.299001,4.341577,5.604058,5.766157,5.924093,6.431079,6.771484,7.294038,7.10321,7.014538,6.532796,6.284576,6.21839,6.226662,6.353135,6.177565,6.098286,5.951891,5.796254,5.661725,5.637161,5.689067,5.648374,5.564126,5.559261,5.662602,5.660762,5.650876,5.651624,6.41184,7.040154,7.567294,6.793774,6.159532,5.770742,6.113773,6.399101,6.543671,6.549843,6.707259,6.57199,6.418717,6.139889,6.142233,6.228013,6.106845,5.859366,5.618063,5.611779,5.729061,5.712502,5.660427,5.623323,5.807494,5.906427,5.905664,6.240026,6.689505,7.181008,6.755872,6.284999,5.894045,5.932816,5.963972,6.125965,6.264631,6.555714,6.41868,6.400609,6.342607,6.363507,6.368072,6.020383,6.116022,6.075169,6.304079,5.997817,5.926331,5.835736,5.891495,6.224173,6.571082,6.98461,6.704984,6.448813,6.206686,6.137743,5.95096,5.734213,5.579123,5.550976,5.84681,6.207702,6.46903,6.184917,5.960549,6.08436,6.368466,6.486024,6.146055,5.958414,5.985733,6.072375,6.015133,5.767673,5.64189,5.590981,6.234506,6.886698,7.54875,7.055817,6.521776,5.957623,5.813814,5.677685,5.602713,5.673723,5.745898,5.842411,5.957794,6.047446,6.123755,6.040006,6.257737,6.292998,6.548829,6.36445,6.243616,5.961898,5.768549,5.632522,5.800672,6.087605,6.397678,6.604807,6.72822,6.816733,6.330082,5.933997,5.614503,5.733362,5.767461,5.642726,5.566482,5.53098,5.69419,5.690981,5.74126,5.95255,6.364493,6.861884,6.769757,6.550781,6.22468,6.218283,6.221438,5.983002,5.777493,6.236155,6.917476,7.551833,6.874846,5.03724,4.431195,4.541074,4.577274,4.479928,4.413132,4.38909,4.489487,4.408067,4.381461,4.394746,4.636141,4.749196,5.006414,5.137766,5.463718,5.387333,5.3072,5.29074,5.3804,5.764801,5.838204,5.966061,5.967326,5.911563,5.945886,5.458721,5.137591,4.634298,4.542561,4.4042,4.421751,4.301151,4.328716,4.37357,4.63648,4.76866,4.788025,4.641315,4.548089,4.700453,4.909737,5.083664,5.063394,5.06239,5.222026,5.203851,5.766587,6.339293,7.148687,6.738301,6.094441,5.289414,5.141527,4.828282,4.65933,4.355831,4.35543,4.379142,4.59293,4.713009,4.713887,4.576071,4.482119,4.433541,4.413563,4.399436,4.526244,4.706011,4.884732,5.069787,5.325227,5.544574,5.43909,5.56328,5.789192,6.097385,5.646025,5.325857,5.145808,5.289327,5.302399,5.347059,5.557595,5.401509,5.109009,4.749572,4.642069,4.622322,4.570128,4.56531,4.554197,4.600152,4.614564,4.633111,4.669017,4.759874,5.144207,5.960851,6.683971,6.757185,5.874296,5.065982,4.596848,4.488963,4.410002,4.403799,4.641694,5.060071,5.335161,5.423871,5.331915,5.316386,5.358,5.093657,4.843664,4.62796,4.608533,4.525216,4.362327,4.319978,4.423956,4.692335,4.820373,4.980927,5.518366,6.163841,6.607748,5.936241,5.27836,4.616486,4.686,4.729623,4.818991,4.730467,4.586487,4.427772,4.325053,4.554597,4.875824,5.256654,5.209429,5.079156,4.835285,4.635874,4.535398,4.639349,4.813136,4.811499,5.057662,5.295994,5.837526,5.554467,5.34481,5.038404,5.181465,5.283583,5.033609,4.727632,4.436047,4.40415,4.400332,4.350948,4.314592,4.347252,4.535038,4.695051,4.738912,4.818852,4.961932,5.281096,5.172995,4.916344,4.518263,4.376344,4.374166,4.828422,5.339736,5.945168,5.679431,5.352809,5.038977,5.182376,5.350026,5.070155,4.736487,4.416676,4.416178,4.480411,4.515826,4.52491,4.474684,4.523715,4.643881,4.808741,5.119445,5.259779,5.527601,5.241716,5.084799,4.971889,5.232194,5.531652,6.685176,6.594271,6.378665,6.036106,5.749025,5.808157,6.080423,6.412563,6.294321,6.215258,6.025452,5.89444,5.693119,5.571756,5.603598,5.68151,5.692337,5.562277,5.55869,5.857507,6.29602,6.405064,6.114436,5.839327,6.396238,7.000285,7.477303,6.723237,6.070666,5.49394,5.519553,5.573955,5.82986,6.112589,6.354534,6.31873,6.196888,6.104198,5.999645,5.950351,5.829921,5.686605,5.681302,5.699959,5.846128,5.645393,5.755449,5.91268,6.662886,6.95588,7.11596,6.802511,6.591513,6.438332,6.099304,5.820275,5.568072,5.630495,5.694073,5.845307,5.912643,5.98479,6.082166,6.25045,6.398362,6.104982,5.823612,5.552764,5.622212,5.577602,5.622981,5.698252,5.900581,6.182465,6.322807,6.879799,7.188691,7.575777,6.944885,6.332597,5.738734,5.726838,5.731537,5.696529,5.585202,5.606314,5.76105,5.967555,6.023276,6.086462,6.190188,6.382263,6.231862,6.011573,5.81893,5.89358,6.005905,6.020039,5.924513,5.954029,6.218235,6.546941,6.86891,7.068611,7.290977,7.051559,6.550897,6.011635,5.76731,5.717968,5.721631,5.75174,5.780763,5.681889,5.629537,5.586623,5.930293,6.201426,6.514922,6.416912,6.369352,6.235789,6.073721,5.847272,5.686301,5.666934,6.20975,6.838556,7.481553,7.10064,6.74616,6.363331,6.426738,6.149344,5.933233,5.797128,5.764722,5.594668,5.453125,5.472548,5.625085,5.647283,5.639621,5.837096,6.222168,6.555405,6.567566,6.413279,6.259412,5.993273,5.836282,5.718845,5.876219,6.359873,6.913569,7.312316,6.855393,6.49938,6.249611,6.488738,6.220029,5.826509,5.468172,5.509878,5.668124,5.651684,5.55219,5.480868,5.776867,6.050206,6.320538,6.179636,4.832263,4.775748,4.913662,5.042063,4.886298,5.267017,5.664358,6.190853,5.599437,5.063675,4.609602,4.731749,4.929136,4.990367,5.075219,4.809662,4.699379,4.448029,4.453063,4.464069,4.778076,4.968893,5.026659,4.742275,4.509446,4.349922,4.318112,4.333597,4.712625,5.149869,5.538111,5.250051,5.430985,5.646023,6.171322,5.641228,5.005292,4.269737,4.127678,4.457571,4.924372,5.234745,4.960325,4.707864,4.7212,4.849351,4.856047,4.659763,4.515796,4.40401,4.28801,4.248618,4.343867,4.510173,4.653705,4.873166,5.475965,6.089268,6.458531,6.113302,5.659335,5.043469,4.646805,4.404469,4.426382,4.430821,4.625457,4.844742,5.305028,5.334793,5.238127,5.017317,4.845061,4.712686,4.480259,4.34903,4.303095,4.392626,4.520331,4.550567,4.490779,4.421446,4.612996,5.418715,6.130108,6.557769,5.906486,5.391859,4.76831,4.541351,4.300085,4.28724,4.507887,4.844942,5.067092,5.194992,5.148974,5.109309,4.936994,4.584296,4.385518,4.339996,4.555223,4.600138,4.552129,4.459152,4.490483,4.895494,5.176983,5.367816,5.214093,5.243578,5.553901,5.520566,5.466149,4.951061,4.903601,4.728387,4.690531,4.591224,4.694436,4.82881,4.816989,4.753052,4.823508,5.033822,5.009298,4.840712,4.586339,4.497735,4.521818,4.616727,4.592391,4.390049,4.754736,5.292695,5.990752,5.433798,4.874551,4.609329,6.273603,6.622937,6.406608,6.098107,5.859874,5.761692,5.699095,5.738033,5.928273,6.042024,6.212206,6.283889,6.348515,6.03773,5.856465,5.746708,5.760088,5.574866,5.629056,5.842481,6.212418,6.332498,6.486201,6.673879,6.637943,6.410638,6.228425,6.204078,6.251118,6.120688,6.104847,6.117011,6.128335,6.039968,6.024517,5.996286,5.954031,6.080514,6.325126,6.629632,6.330814,5.879413,5.487668,5.475292,5.606567,6.086079,6.551131,7.044473,6.717788,6.373728,5.90751,5.788284,5.637395,5.605675,5.691471,5.83554,6.151315,6.386746,6.631715,6.344835,6.018192,5.681254,5.689872,5.777793,6.025317,6.133933,6.277648,6.077327,5.987568,5.864989,5.897015,5.98555,6.432356,6.84112,7.113095,6.589542,6.094027,5.623514,5.522933,5.456934,5.553226,5.835291,6.116502,6.442473,6.487873,6.536535,6.249372,6.118733,5.884059,5.657973,5.46341,5.645555,6.014105,6.221535,6.082907,5.97792,6.605409,7.116229,7.513281,6.776364,6.196296,5.634951,5.539648,5.487374,5.53557,5.779974,6.000779,6.112113,5.928658,5.783382,5.959631,6.315152,6.542625,6.299304,6.056088,5.939025,5.911343,5.733488,5.715221,5.846496,6.276358,6.51246,6.639074,6.968599,7.038584,7.128989,6.333121,5.844307,5.497183,5.800551,6.030352,6.103949,5.898767,5.765905,5.739806,5.842296,5.810825,5.774666,5.799678,5.960618,6.175287,6.215175,6.210616,5.967476,5.942759,6.008709,6.133901,6.629062,7.094273,7.601003,7.124397,6.381531,5.775035,5.7209,4.618646,4.612236,4.580121,4.631924,4.788916,4.869726,4.725961,4.426403,4.237035,4.238751,4.471406,4.54099,4.569971,4.736883,5.111344,5.468716,5.242926,4.910903,4.614703,4.604205,5.102441,5.794475,6.579083,6.378665,5.659266,4.851441,4.604152,4.706479,4.903261,4.915074,4.758218,4.438578,4.282497,4.296713,4.442762,4.42422,4.385566,4.367747,4.581674,4.708094,5.002209,5.118579,5.276625,4.994579,5.199706,5.425813,5.857754,5.575338,5.553697,5.519307,5.695908,5.392566,5.153951,4.928129,4.781003,4.505271,4.340054,4.348453,4.475752,4.443477,4.347478,4.295168,4.46318,4.659531,4.704127,4.582243,4.42392,4.515223,4.646424,4.810829,4.866754,5.535652,6.181608,6.558875,6.119795,5.939606,6.024731,6.10155,5.729936,5.191755,4.855069,4.62908,4.539812,4.356187,4.290331,4.258751,4.495982,4.627023,4.629326,4.46164,4.345039,4.251476,4.158577,4.137362,4.384953,5.127785,5.811248,6.339538,6.152728,5.970296,5.531606,5.285539,5.13868,5.059199,4.957679,4.80036,4.814019,4.810097,4.646634,4.485126,4.562479,4.681973,4.686368,4.531101,4.45098,4.408121,4.303228,4.210933,4.199395,4.301117,4.404,4.451049,5.035731,5.597682,6.472714,6.319295,6.139632,5.306536,4.89893,4.676551,4.774042,4.779566,4.770472,4.846208,5.208855,5.144842,4.951127,4.499941,4.32453,4.165687,4.121568,4.111922,4.260117,4.414244,4.572062,4.55377,4.760701,4.939656,5.236439,5.326482,5.35259,5.469586,5.378005,5.429631,5.295584,5.132135,4.957289,4.726218,4.830203,5.014876,5.241954,5.275216,4.94524,4.624836,4.357895,4.32174,4.437574,4.585687,4.677603,4.605942,4.486562,4.446988,4.528397,5.148481,5.659672,6.001403,5.476604,5.043609,4.896314,4.843518,4.862955,4.859315,5.257259,5.43781,5.181337,4.718804,4.696636,4.893918,5.129713,4.867492,4.772701,4.730195,4.764529,4.633799,4.434671,4.385646,4.439964,4.737586,4.931165,4.992294,5.18201,5.429843,5.799209,5.203428,4.704732,4.292338,4.712125,4.914683,5.164046,5.13062,5.254577,6.20602,5.900201,5.838758,6.136142,6.539876,6.490473,6.320498,6.029799,5.849631,5.778629,5.792266,5.814994,5.671524,6.11667,6.634235,7.313299,6.785364,6.318054,5.851944,6.03558,6.030941,5.90854,5.67218,5.566682,5.763776,6.014838,6.306039,6.289419,6.315688,6.387644,6.371196,6.253278,6.054117,6.075445,6.191639,6.123509,5.884337,5.702941,5.645145,5.737004,6.137232,6.651602,7.18268,6.894427,6.427788,5.844523,5.630892,5.536274,5.460717,5.399471,5.384941,5.684967,6.076944,6.346145,6.300043,6.171566,6.270923,6.272039,6.331771,6.232373,6.17044,6.134211,5.890281,5.784696,6.129036,6.758892,7.419302,7.064726,6.499073,5.79491,5.597523,5.56562,5.57104,5.530379,5.483724,5.568086,5.757489,5.865048,5.904134,5.830992,5.84393,6.067724,6.376209,6.61588,6.245042,5.901773,5.832324,6.173587,6.410851,6.245492,6.097784,6.682907,7.287409,7.77155,6.909144,6.205196,5.524181,5.471934,5.425607,5.530089,5.717283,5.864346,5.833852,5.721153,5.648504,5.694641,5.802921,5.806947,5.936552,6.068029,6.303821,6.19461,5.977509,6.05355,6.274451,7.21223,7.568562,7.899143,7.156186,6.614372,6.072601,5.802854,5.645036,5.636112,5.830003,5.917967,5.864038,5.729806,5.70113,5.749439,5.841068,5.777667,5.583263,5.450398,5.449781,5.784586,5.938633,6.145093,6.134809,6.431945,6.731871,6.793005,7.092693,7.301103,7.672924,7.025567,6.260767,5.63989,5.668738,5.772637,5.738042,5.645429,5.666463,5.790594,4.649319,4.62785,4.439407]],\"times\":[1671612300000,1671612305000,1671612310000,1671612315000,1671612320000,1671612325000,1671612330000,1671612335000,1671612340000,1671612345000,1671612350000,1671612355000,1671612360000,1671612365000,1671612370000,1671612375000,1671612380000,1671612385000,1671612390000,1671612395000,1671612400000,1671612405000,1671612410000,1671612415000,1671612420000,1671612425000,1671612430000,1671612435000,1671612440000,1671612445000,1671612450000,1671612455000,1671612460000,1671612465000,1671612470000,1671612475000,1671612480000,1671612485000,1671612490000,1671612495000,1671612500000,1671612505000,1671612510000,1671612515000,1671612520000,1671612525000,1671612530000,1671612535000,1671612540000,1671612545000,1671612550000,1671612555000,1671612560000,1671612565000,1671612570000,1671612575000,1671612580000,1671612585000,1671612590000,1671612595000,1671612600000,1671612605000,1671612610000,1671612615000,1671612620000,1671612625000,1671612630000,1671612635000,1671612640000,1671612645000,1671612650000,1671612655000,1671612660000,1671612665000,1671612670000,1671612675000,1671612680000,1671612685000,1671612690000,1671612695000,1671612700000,1671612705000,1671612710000,1671612715000,1671612720000,1671612725000,1671612730000,1671612735000,1671612740000,1671612745000,1671612750000,1671612755000,1671612760000,1671612765000,1671612770000,1671612775000,1671612780000,1671612785000,1671612790000,1671612795000,1671612800000,1671612805000,1671612810000,1671612815000,1671612820000,1671612825000,1671612830000,1671612835000,1671612840000,1671612845000,1671612850000,1671612855000,1671612860000,1671612865000,1671612870000,1671612875000,1671612880000,1671612885000,1671612890000,1671612895000,1671612900000,1671612905000,1671612910000,1671612915000,1671612920000,1671612925000,1671612930000,1671612935000,1671612940000,1671612945000,1671612950000,1671612955000,1671612960000,1671612965000,1671612970000,1671612975000,1671612980000,1671612985000,1671612990000,1671612995000,1671613000000,1671613005000,1671613010000,1671613015000,1671613020000,1671613025000,1671613030000,1671613035000,1671613040000,1671613045000,1671613050000,1671613055000,1671613060000,1671613065000,1671613070000,1671613075000,1671613080000,1671613085000,1671613090000,1671613095000,1671613100000,1671613105000,1671613110000,1671613115000,1671613120000,1671613125000,1671613130000,1671613135000,1671613140000,1671613145000,1671613150000,1671613155000,1671613160000,1671613165000,1671613170000,1671613175000,1671613180000,1671613185000,1671613190000,1671613195000,1671613200000,1671613205000,1671613210000,1671613215000,1671613220000,1671613225000,1671613230000,1671613235000,1671613240000,1671613245000,1671613250000,1671613255000,1671613260000,1671613265000,1671613270000,1671613275000,1671613280000,1671613285000,1671613290000,1671613295000,1671613300000,1671613305000,1671613310000,1671613315000,1671613320000,1671613325000,1671613330000,1671613335000,1671613340000,1671613345000,1671613350000,1671613355000,1671613360000,1671613365000,1671613370000,1671613375000,1671613380000,1671613385000,1671613390000,1671613395000,1671613400000,1671613405000,1671613410000,1671613415000,1671613420000,1671613425000,1671613430000,1671613435000,1671613440000,1671613445000,1671613450000,1671613455000,1671613460000,1671613465000,1671613470000,1671613475000,1671613480000,1671613485000,1671613490000,1671613495000,1671613500000,1671613505000,1671613510000,1671613515000,1671613520000,1671613525000,1671613530000,1671613535000,1671613540000,1671613545000,1671613550000,1671613555000,1671613560000,1671613565000,1671613570000,1671613575000,1671613580000,1671613585000,1671613590000,1671613595000,1671613600000,1671613605000,1671613610000,1671613615000,1671613620000,1671613625000,1671613630000,1671613635000,1671613640000,1671613645000,1671613650000,1671613655000,1671613660000,1671613665000,1671613670000,1671613675000,1671613680000,1671613685000,1671613690000,1671613695000,1671613700000,1671613705000,1671613710000,1671613715000,1671613720000,1671613725000,1671613730000,1671613735000,1671613740000,1671613745000,1671613750000,1671613755000,1671613760000,1671613765000,1671613770000,1671613775000,1671613780000,1671613785000,1671613790000,1671613795000,1671613800000,1671613805000,1671613810000,1671613815000,1671613820000,1671613825000,1671613830000,1671613835000,1671613840000,1671613845000,1671613850000,1671613855000,1671613860000,1671613865000,1671613870000,1671613875000,1671613880000,1671613885000,1671613890000,1671613895000,1671613900000,1671613905000,1671613910000,1671613915000,1671613920000,1671613925000,1671613930000,1671613935000,1671613940000,1671613945000,1671613950000,1671613955000,1671613960000,1671613965000,1671613970000,1671613975000,1671613980000,1671613985000,1671613990000,1671613995000,1671614000000,1671614005000,1671614010000,1671614015000,1671614020000,1671614025000,1671614030000,1671614035000,1671614040000,1671614045000,1671614050000,1671614055000,1671614060000,1671614065000,1671614070000,1671614075000,1671614080000,1671614085000,1671614090000,1671614095000,1671614100000,1671614105000,1671614110000,1671614115000,1671614120000,1671614125000,1671614130000,1671614135000,1671614140000,1671614145000,1671614150000,1671614155000,1671614160000,1671614165000,1671614170000,1671614175000,1671614180000,1671614185000,1671614190000,1671614195000,1671614200000,1671614205000,1671614210000,1671614215000,1671614220000,1671614225000,1671614230000,1671614235000,1671614240000,1671614245000,1671614250000,1671614255000,1671614260000,1671614265000,1671614270000,1671614275000,1671614280000,1671614285000,1671614290000,1671614295000,1671614300000,1671614305000,1671614310000,1671614315000,1671614320000,1671614325000,1671614330000,1671614335000,1671614340000,1671614345000,1671614350000,1671614355000,1671614360000,1671614365000,1671614370000,1671614375000,1671614380000,1671614385000,1671614390000,1671614395000,1671614400000,1671614405000,1671614410000,1671614415000,1671614420000,1671614425000,1671614430000,1671614435000,1671614440000,1671614445000,1671614450000,1671614455000,1671614460000,1671614465000,1671614470000,1671614475000,1671614480000,1671614485000,1671614490000,1671614495000,1671614500000,1671614505000,1671614510000,1671614515000,1671614520000,1671614525000,1671614530000,1671614535000,1671614540000,1671614545000,1671614550000,1671614555000,1671614560000,1671614565000,1671614570000,1671614575000,1671614580000,1671614585000,1671614590000,1671614595000,1671614600000,1671614605000,1671614610000,1671614615000,1671614620000,1671614625000,1671614630000,1671614635000,1671614640000,1671614645000,1671614650000,1671614655000,1671614660000,1671614665000,1671614670000,1671614675000,1671614680000,1671614685000,1671614690000,1671614695000,1671614700000,1671614705000,1671614710000,1671614715000,1671614720000,1671614725000,1671614730000,1671614735000,1671614740000,1671614745000,1671614750000,1671614755000,1671614760000,1671614765000,1671614770000,1671614775000,1671614780000,1671614785000,1671614790000,1671614795000,1671614800000,1671614805000,1671614810000,1671614815000,1671614820000,1671614825000,1671614830000,1671614835000,1671614840000,1671614845000,1671614850000,1671614855000,1671614860000,1671614865000,1671614870000,1671614875000,1671614880000,1671614885000,1671614890000,1671614895000,1671614900000,1671614905000,1671614910000,1671614915000,1671614920000,1671614925000,1671614930000,1671614935000,1671614940000,1671614945000,1671614950000,1671614955000,1671614960000,1671614965000,1671614970000,1671614975000,1671614980000,1671614985000,1671614990000,1671614995000,1671615000000,1671615005000,1671615010000,1671615015000,1671615020000,1671615025000,1671615030000,1671615035000,1671615040000,1671615045000,1671615050000,1671615055000,1671615060000,1671615065000,1671615070000,1671615075000,1671615080000,1671615085000,1671615090000,1671615095000,1671615100000,1671615105000,1671615110000,1671615115000,1671615120000,1671615125000,1671615130000,1671615135000,1671615140000,1671615145000,1671615150000,1671615155000,1671615160000,1671615165000,1671615170000,1671615175000,1671615180000,1671615185000,1671615190000,1671615195000,1671615200000,1671615205000,1671615210000,1671615215000,1671615220000,1671615225000,1671615230000,1671615235000,1671615240000,1671615245000,1671615250000,1671615255000,1671615260000,1671615265000,1671615270000,1671615275000,1671615280000,1671615285000,1671615290000,1671615295000,1671615300000,1671615305000,1671615310000,1671615315000,1671615320000,1671615325000,1671615330000,1671615335000,1671615340000,1671615345000,1671615350000,1671615355000,1671615360000,1671615365000,1671615370000,1671615375000,1671615380000,1671615385000,1671615390000,1671615395000,1671615400000,1671615405000,1671615410000,1671615415000,1671615420000,1671615425000,1671615430000,1671615435000,1671615440000,1671615445000,1671615450000,1671615455000,1671615460000,1671615465000,1671615470000,1671615475000,1671615480000,1671615485000,1671615490000,1671615495000,1671615500000,1671615505000,1671615510000,1671615515000,1671615520000,1671615525000,1671615530000,1671615535000,1671615540000,1671615545000,1671615550000,1671615555000,1671615560000,1671615565000,1671615570000,1671615575000,1671615580000,1671615585000,1671615590000,1671615595000,1671615600000,1671615605000,1671615610000,1671615615000,1671615620000,1671615625000,1671615630000,1671615635000,1671615640000,1671615645000,1671615650000,1671615655000,1671615660000,1671615665000,1671615670000,1671615675000,1671615680000,1671615685000,1671615690000,1671615695000,1671615700000,1671615705000,1671615710000,1671615715000,1671615720000,1671615725000,1671615730000,1671615735000,1671615740000,1671615745000,1671615750000,1671615755000,1671615760000,1671615765000,1671615770000,1671615775000,1671615780000,1671615785000,1671615790000,1671615795000,1671615800000,1671615805000,1671615810000,1671615815000,1671615820000,1671615825000,1671615830000,1671615835000,1671615840000,1671615845000,1671615850000,1671615855000,1671615860000,1671615865000,1671615870000,1671615875000,1671615880000,1671615885000,1671615890000,1671615895000,1671615900000,1671615905000,1671615910000,1671615915000,1671615920000,1671615925000,1671615930000,1671615935000,1671615940000,1671615945000,1671615950000,1671615955000,1671615960000,1671615965000,1671615970000,1671615975000,1671615980000,1671615985000,1671615990000,1671615995000,1671616000000,1671616005000,1671616010000,1671616015000,1671616020000,1671616025000,1671616030000,1671616035000,1671616040000,1671616045000,1671616050000,1671616055000,1671616060000,1671616065000,1671616070000,1671616075000,1671616080000,1671616085000,1671616090000,1671616095000,1671616100000,1671616105000,1671616110000,1671616115000,1671616120000,1671616125000,1671616130000,1671616135000,1671616140000,1671616145000,1671616150000,1671616155000,1671616160000,1671616165000,1671616170000,1671616175000,1671616180000,1671616185000,1671616190000,1671616195000,1671616200000,1671616205000,1671616210000,1671616215000,1671616220000,1671616225000,1671616230000,1671616235000,1671616240000,1671616245000,1671616250000,1671616255000,1671616260000,1671616265000,1671616270000,1671616275000,1671616280000,1671616285000,1671616290000,1671616295000,1671616300000,1671616305000,1671616310000,1671616315000,1671616320000,1671616325000,1671616330000,1671616335000,1671616340000,1671616345000,1671616350000,1671616355000,1671616360000,1671616365000,1671616370000,1671616375000,1671616380000,1671616385000,1671616390000,1671616395000,1671616400000,1671616405000,1671616410000,1671616415000,1671616420000,1671616425000,1671616430000,1671616435000,1671616440000,1671616445000,1671616450000,1671616455000,1671616460000,1671616465000,1671616470000,1671616475000,1671616480000,1671616485000,1671616490000,1671616495000,1671616500000,1671616505000,1671616510000,1671616515000,1671616520000,1671616525000,1671616530000,1671616535000,1671616540000,1671616545000,1671616550000,1671616555000,1671616560000,1671616565000,1671616570000,1671616575000,1671616580000,1671616585000,1671616590000,1671616595000,1671616600000,1671616605000,1671616610000,1671616615000,1671616620000,1671616625000,1671616630000,1671616635000,1671616640000,1671616645000,1671616650000,1671616655000,1671616660000,1671616665000,1671616670000,1671616675000,1671616680000,1671616685000,1671616690000,1671616695000,1671616700000,1671616705000,1671616710000,1671616715000,1671616720000,1671616725000,1671616730000,1671616735000,1671616740000,1671616745000,1671616750000,1671616755000,1671616760000,1671616765000,1671616770000,1671616775000,1671616780000,1671616785000,1671616790000,1671616795000,1671616800000,1671616805000,1671616810000,1671616815000,1671616820000,1671616825000,1671616830000,1671616835000,1671616840000,1671616845000,1671616850000,1671616855000,1671616860000,1671616865000,1671616870000,1671616875000,1671616880000,1671616885000,1671616890000,1671616895000,1671616900000,1671616905000,1671616910000,1671616915000,1671616920000,1671616925000,1671616930000,1671616935000,1671616940000,1671616945000,1671616950000,1671616955000,1671616960000,1671616965000,1671616970000,1671616975000,1671616980000,1671616985000,1671616990000,1671616995000,1671617000000,1671617005000,1671617010000,1671617015000,1671617020000,1671617025000,1671617030000,1671617035000,1671617040000,1671617045000,1671617050000,1671617055000,1671617060000,1671617065000,1671617070000,1671617075000,1671617080000,1671617085000,1671617090000,1671617095000,1671617100000,1671617105000,1671617110000,1671617115000,1671617120000,1671617125000,1671617130000,1671617135000,1671617140000,1671617145000,1671617150000,1671617155000,1671617160000,1671617165000,1671617170000,1671617175000,1671617180000,1671617185000,1671617190000,1671617195000,1671617200000,1671617205000,1671617210000,1671617215000,1671617220000,1671617225000,1671617230000,1671617235000,1671617240000,1671617245000,1671617250000,1671617255000,1671617260000,1671617265000,1671617270000,1671617275000,1671617280000,1671617285000,1671617290000,1671617295000,1671617300000,1671617305000,1671617310000,1671617315000,1671617320000,1671617325000,1671617330000,1671617335000,1671617340000,1671617345000,1671617350000,1671617355000,1671617360000,1671617365000,1671617370000,1671617375000,1671617380000,1671617385000,1671617390000,1671617395000,1671617400000,1671617405000,1671617410000,1671617415000,1671617420000,1671617425000,1671617430000,1671617435000,1671617440000,1671617445000,1671617450000,1671617455000,1671617460000,1671617465000,1671617470000,1671617475000,1671617480000,1671617485000,1671617490000,1671617495000,1671617500000,1671617505000,1671617510000,1671617515000,1671617520000,1671617525000,1671617530000,1671617535000,1671617540000,1671617545000,1671617550000,1671617555000,1671617560000,1671617565000,1671617570000,1671617575000,1671617580000,1671617585000,1671617590000,1671617595000,1671617600000,1671617605000,1671617610000,1671617615000,1671617620000,1671617625000,1671617630000,1671617635000,1671617640000,1671617645000,1671617650000,1671617655000,1671617660000,1671617665000,1671617670000,1671617675000,1671617680000,1671617685000,1671617690000,1671617695000,1671617700000,1671617705000,1671617710000,1671617715000,1671617720000,1671617725000,1671617730000,1671617735000,1671617740000,1671617745000,1671617750000,1671617755000,1671617760000,1671617765000,1671617770000,1671617775000,1671617780000,1671617785000,1671617790000,1671617795000,1671617800000,1671617805000,1671617810000,1671617815000,1671617820000,1671617825000,1671617830000,1671617835000,1671617840000,1671617845000,1671617850000,1671617855000,1671617860000,1671617865000,1671617870000,1671617875000,1671617880000,1671617885000,1671617890000,1671617895000,1671617900000,1671617905000,1671617910000,1671617915000,1671617920000,1671617925000,1671617930000,1671617935000,1671617940000,1671617945000,1671617950000,1671617955000,1671617960000,1671617965000,1671617970000,1671617975000,1671617980000,1671617985000,1671617990000,1671617995000,1671618000000,1671618005000,1671618010000,1671618015000,1671618020000,1671618025000,1671618030000,1671618035000,1671618040000,1671618045000,1671618050000,1671618055000,1671618060000,1671618065000,1671618070000,1671618075000,1671618080000,1671618085000,1671618090000,1671618095000,1671618100000,1671618105000,1671618110000,1671618115000,1671618120000,1671618125000,1671618130000,1671618135000,1671618140000,1671618145000,1671618150000,1671618155000,1671618160000,1671618165000,1671618170000,1671618175000,1671618180000,1671618185000,1671618190000,1671618195000,1671618200000,1671618205000,1671618210000,1671618215000,1671618220000,1671618225000,1671618230000,1671618235000,1671618240000,1671618245000,1671618250000,1671618255000,1671618260000,1671618265000,1671618270000,1671618275000,1671618280000,1671618285000,1671618290000,1671618295000,1671618300000,1671618305000,1671618310000,1671618315000,1671618320000,1671618325000,1671618330000,1671618335000,1671618340000,1671618345000,1671618350000,1671618355000,1671618360000,1671618365000,1671618370000,1671618375000,1671618380000,1671618385000,1671618390000,1671618395000,1671618400000,1671618405000,1671618410000,1671618415000,1671618420000,1671618425000,1671618430000,1671618435000,1671618440000,1671618445000,1671618450000,1671618455000,1671618460000,1671618465000,1671618470000,1671618475000,1671618480000,1671618485000,1671618490000,1671618495000,1671618500000,1671618505000,1671618510000,1671618515000,1671618520000,1671618525000,1671618530000,1671618535000,1671618540000,1671618545000,1671618550000,1671618555000,1671618560000,1671618565000,1671618570000,1671618575000,1671618580000,1671618585000,1671618590000,1671618595000,1671618600000,1671618605000,1671618610000,1671618615000,1671618620000,1671618625000,1671618630000,1671618635000,1671618640000,1671618645000,1671618650000,1671618655000,1671618660000,1671618665000,1671618670000,1671618675000,1671618680000,1671618685000,1671618690000,1671618695000,1671618700000,1671618705000,1671618710000,1671618715000,1671618720000,1671618725000,1671618730000,1671618735000,1671618740000,1671618745000,1671618750000,1671618755000,1671618760000,1671618765000,1671618770000,1671618775000,1671618780000,1671618785000,1671618790000,1671618795000,1671618800000,1671618805000,1671618810000,1671618815000,1671618820000,1671618825000,1671618830000,1671618835000,1671618840000,1671618845000,1671618850000,1671618855000,1671618860000,1671618865000,1671618870000,1671618875000,1671618880000,1671618885000,1671618890000,1671618895000,1671618900000,1671618905000,1671618910000,1671618915000,1671618920000,1671618925000,1671618930000,1671618935000,1671618940000,1671618945000,1671618950000,1671618955000,1671618960000,1671618965000,1671618970000,1671618975000,1671618980000,1671618985000,1671618990000,1671618995000,1671619000000,1671619005000,1671619010000,1671619015000,1671619020000,1671619025000,1671619030000,1671619035000,1671619040000,1671619045000,1671619050000,1671619055000,1671619060000,1671619065000,1671619070000,1671619075000,1671619080000,1671619085000,1671619090000,1671619095000,1671619100000,1671619105000,1671619110000,1671619115000,1671619120000,1671619125000,1671619130000,1671619135000,1671619140000,1671619145000,1671619150000,1671619155000,1671619160000,1671619165000,1671619170000,1671619175000,1671619180000,1671619185000,1671619190000,1671619195000,1671619200000,1671619205000,1671619210000,1671619215000,1671619220000,1671619225000,1671619230000,1671619235000,1671619240000,1671619245000,1671619250000,1671619255000,1671619260000,1671619265000,1671619270000,1671619275000,1671619280000,1671619285000,1671619290000,1671619295000,1671619300000,1671619305000,1671619310000,1671619315000,1671619320000,1671619325000,1671619330000,1671619335000,1671619340000,1671619345000,1671619350000,1671619355000,1671619360000,1671619365000,1671619370000,1671619375000,1671619380000,1671619385000,1671619390000,1671619395000,1671619400000,1671619405000,1671619410000,1671619415000,1671619420000,1671619425000,1671619430000,1671619435000,1671619440000,1671619445000,1671619450000,1671619455000,1671619460000,1671619465000,1671619470000,1671619475000,1671619480000,1671619485000,1671619490000,1671619495000,1671619500000,1671619505000,1671619510000,1671619515000,1671619520000,1671619525000,1671619530000,1671619535000,1671619540000,1671619545000,1671619550000,1671619555000,1671619560000,1671619565000,1671619570000,1671619575000,1671619580000,1671619585000,1671619590000,1671619595000,1671619600000,1671619605000,1671619610000,1671619615000,1671619620000,1671619625000,1671619630000,1671619635000,1671619640000,1671619645000,1671619650000,1671619655000,1671619660000,1671619665000,1671619670000,1671619675000,1671619680000,1671619685000,1671619690000,1671619695000,1671619700000,1671619705000,1671619710000,1671619715000,1671619720000,1671619725000,1671619730000,1671619735000,1671619740000,1671619745000,1671619750000,1671619755000,1671619760000,1671619765000,1671619770000,1671619775000,1671619780000,1671619785000,1671619790000,1671619795000,1671619800000,1671619805000,1671619810000,1671619815000,1671619820000,1671619825000,1671619830000,1671619835000,1671619840000,1671619845000,1671619850000,1671619855000,1671619860000,1671619865000,1671619870000,1671619875000,1671619880000,1671619885000,1671619890000,1671619895000,1671619900000,1671619905000,1671619910000,1671619915000,1671619920000,1671619925000,1671619930000,1671619935000,1671619940000,1671619945000,1671619950000,1671619955000,1671619960000,1671619965000,1671619970000,1671619975000,1671619980000,1671619985000,1671619990000,1671619995000,1671620000000,1671620005000,1671620010000,1671620015000,1671620020000,1671620025000,1671620030000,1671620035000,1671620040000,1671620045000,1671620050000,1671620055000,1671620060000,1671620065000,1671620070000,1671620075000,1671620080000,1671620085000,1671620090000,1671620095000,1671620100000,1671620105000,1671620110000,1671620115000,1671620120000,1671620125000,1671620130000,1671620135000,1671620140000,1671620145000,1671620150000,1671620155000,1671620160000,1671620165000,1671620170000,1671620175000,1671620180000,1671620185000,1671620190000,1671620195000,1671620200000,1671620205000,1671620210000,1671620215000,1671620220000,1671620225000,1671620230000,1671620235000,1671620240000,1671620245000,1671620250000,1671620255000,1671620260000,1671620265000,1671620270000,1671620275000,1671620280000,1671620285000,1671620290000,1671620295000,1671620300000,1671620305000,1671620310000,1671620315000,1671620320000,1671620325000,1671620330000,1671620335000,1671620340000,1671620345000,1671620350000,1671620355000,1671620360000,1671620365000,1671620370000,1671620375000,1671620380000,1671620385000,1671620390000,1671620395000,1671620400000,1671620405000,1671620410000,1671620415000,1671620420000,1671620425000,1671620430000,1671620435000,1671620440000,1671620445000,1671620450000,1671620455000,1671620460000,1671620465000,1671620470000,1671620475000,1671620480000,1671620485000,1671620490000,1671620495000,1671620500000,1671620505000],\"series\":[{\"query_index\":0,\"unit\":[{\"plural\":\"percent\",\"scale_factor\":1.0,\"id\":17,\"short_name\":\"%\",\"family\":\"percentage\",\"name\":\"percent\"},null],\"group_tags\":[]}]}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 21 Dec 2022 11:14:01 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1711977601000,\"interval\":5000,\"queries\":[{\"data_source\":\"metrics\",\"name\":\"a\",\"query\":\"avg:datadog.estimated_usage.metrics.custom{*}\"}],\"to\":1711981201000},\"type\":\"timeseries_request\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/query/timeseries" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"0\",\"type\":\"timeseries_response\",\"attributes\":{\"series\":[{\"group_tags\":[],\"query_index\":0,\"unit\":null}],\"times\":[1711977645000,1711977705000,1711980225000],\"values\":[[1,1,87]]}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 01 Apr 2024 14:20:01 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/metrics/Update-a-tag-configuration-returns-OK-response.json b/tests/scenarios/cassettes/v2/metrics/Update-a-tag-configuration-returns-OK-response.json index f7a513c7a..822197af2 100644 --- a/tests/scenarios/cassettes/v2/metrics/Update-a-tag-configuration-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/metrics/Update-a-tag-configuration-returns-OK-response.json @@ -1 +1,131 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"series\":[{\"metric\":\"TestUpdateatagconfigurationreturnsOKresponse1652354372\",\"points\":[[1652354372,1.1]],\"tags\":[\"test:ExampleSubmitmetricsreturnsPayloadacceptedresponse\"],\"type\":\"gauge\"}]}", "encoding": null}, "headers": {"Accept": ["text/json, application/json"], "Content-Type": ["text/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v1/series"}, "response": {"body": {"string": "{\"status\": \"ok\"}", "encoding": null}, "headers": {"Content-Type": ["text/json"]}, "status": {"code": 202, "message": "Accepted"}}, "recorded_at": "Thu, 12 May 2022 11:19:32 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"metric_type\":\"gauge\",\"tags\":[\"app\",\"datacenter\",\"TestUpdateatagconfigurationreturnsOKresponse1652354372\"]},\"id\":\"TestUpdateatagconfigurationreturnsOKresponse1652354372\",\"type\":\"manage_tags\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/metrics/TestUpdateatagconfigurationreturnsOKresponse1652354372/tags"}, "response": {"body": {"string": "{\"data\":{\"type\":\"manage_tags\",\"id\":\"TestUpdateatagconfigurationreturnsOKresponse1652354372\",\"attributes\":{\"tags\":[\"datacenter\",\"TestUpdateatagconfigurationreturnsOKresponse1652354372\",\"app\"],\"created_at\":\"2022-05-12T11:19:33.257425+00:00\",\"modified_at\":\"2022-05-12T11:19:33.257425+00:00\",\"metric_type\":\"gauge\",\"aggregations\":[{\"space\":\"avg\",\"time\":\"avg\"}]}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 11:19:32 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"tags\":[\"app\"]},\"id\":\"TestUpdateatagconfigurationreturnsOKresponse1652354372\",\"type\":\"manage_tags\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/metrics/TestUpdateatagconfigurationreturnsOKresponse1652354372/tags"}, "response": {"body": {"string": "{\"data\":{\"type\":\"manage_tags\",\"id\":\"TestUpdateatagconfigurationreturnsOKresponse1652354372\",\"attributes\":{\"tags\":[\"app\"],\"created_at\":\"2022-05-12T11:19:33.257425+00:00\",\"modified_at\":\"2022-05-12T11:19:33.820520+00:00\",\"metric_type\":\"gauge\",\"aggregations\":[{\"space\":\"avg\",\"time\":\"avg\"}]}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 11:19:32 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/metrics/TestUpdateatagconfigurationreturnsOKresponse1652354372/tags"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 11:19:32 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"series\":[{\"metric\":\"TestUpdateatagconfigurationreturnsOKresponse1652354372\",\"points\":[[1652354372,1.1]],\"tags\":[\"test:ExampleSubmitmetricsreturnsPayloadacceptedresponse\"],\"type\":\"gauge\"}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "text/json, application/json" + ], + "Content-Type": [ + "text/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/series" + }, + "response": { + "body": { + "string": "{\"status\": \"ok\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/json" + ] + }, + "status": { + "code": 202, + "message": "Accepted" + } + }, + "recorded_at": "Thu, 12 May 2022 11:19:32 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"metric_type\":\"gauge\",\"tags\":[\"app\",\"datacenter\",\"TestUpdateatagconfigurationreturnsOKresponse1652354372\"]},\"id\":\"TestUpdateatagconfigurationreturnsOKresponse1652354372\",\"type\":\"manage_tags\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/metrics/TestUpdateatagconfigurationreturnsOKresponse1652354372/tags" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"manage_tags\",\"id\":\"TestUpdateatagconfigurationreturnsOKresponse1652354372\",\"attributes\":{\"tags\":[\"datacenter\",\"TestUpdateatagconfigurationreturnsOKresponse1652354372\",\"app\"],\"created_at\":\"2022-05-12T11:19:33.257425+00:00\",\"modified_at\":\"2022-05-12T11:19:33.257425+00:00\",\"metric_type\":\"gauge\",\"aggregations\":[{\"space\":\"avg\",\"time\":\"avg\"}]}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 11:19:32 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"tags\":[\"app\"]},\"id\":\"TestUpdateatagconfigurationreturnsOKresponse1652354372\",\"type\":\"manage_tags\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/metrics/TestUpdateatagconfigurationreturnsOKresponse1652354372/tags" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"manage_tags\",\"id\":\"TestUpdateatagconfigurationreturnsOKresponse1652354372\",\"attributes\":{\"tags\":[\"app\"],\"created_at\":\"2022-05-12T11:19:33.257425+00:00\",\"modified_at\":\"2022-05-12T11:19:33.820520+00:00\",\"metric_type\":\"gauge\",\"aggregations\":[{\"space\":\"avg\",\"time\":\"avg\"}]}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 11:19:32 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/metrics/TestUpdateatagconfigurationreturnsOKresponse1652354372/tags" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 11:19:32 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/monitors/Create-a-monitor-configuration-policy-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/monitors/Create-a-monitor-configuration-policy-returns-Bad-Request-response.json index 8acda3dda..45f0d5133 100644 --- a/tests/scenarios/cassettes/v2/monitors/Create-a-monitor-configuration-policy-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/monitors/Create-a-monitor-configuration-policy-returns-Bad-Request-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"policy\":{\"tag_key\":\"datacenter\",\"tag_key_required\":true,\"valid_tag_values\":[\"prod\",\"staging\"]},\"policy_type\":\"INVALID\"},\"type\":\"monitor-config-policy\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/monitor/policy"}, "response": {"body": {"string": "{\"errors\":[\"Value of parameter 'policy_type' should be any of these ['tag']\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Thu, 27 Apr 2023 20:34:58 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"policy\":{\"tag_key\":\"datacenter\",\"tag_key_required\":true,\"valid_tag_values\":[\"prod\",\"staging\"]},\"policy_type\":\"INVALID\"},\"type\":\"monitor-config-policy\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/monitor/policy" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Value of parameter 'policy_type' should be any of these ['tag']\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Thu, 27 Apr 2023 20:34:58 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/monitors/Create-a-monitor-configuration-policy-returns-OK-response.json b/tests/scenarios/cassettes/v2/monitors/Create-a-monitor-configuration-policy-returns-OK-response.json index 35779bb16..b00098fef 100644 --- a/tests/scenarios/cassettes/v2/monitors/Create-a-monitor-configuration-policy-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/monitors/Create-a-monitor-configuration-policy-returns-OK-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"policy\":{\"tag_key\":\"testcreateamonitorconfigurationpolicyreturnsokresponse1682627699\",\"tag_key_required\":false,\"valid_tag_values\":[\"prod\",\"staging\"]},\"policy_type\":\"tag\"},\"type\":\"monitor-config-policy\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/monitor/policy"}, "response": {"body": {"string": "{\"data\":{\"type\":\"monitor-config-policy\",\"id\":\"fabd0b6e-e53a-11ed-a07b-da7ad0900002\",\"attributes\":{\"policy\":{\"valid_tag_values\":[\"prod\",\"staging\"],\"tag_key_required\":false,\"tag_key\":\"testcreateamonitorconfigurationpolicyreturnsokresponse1682627699\"},\"policy_type\":\"tag\"}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 27 Apr 2023 20:34:59 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/monitor/policy/fabd0b6e-e53a-11ed-a07b-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 27 Apr 2023 20:34:59 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"policy\":{\"tag_key\":\"testcreateamonitorconfigurationpolicyreturnsokresponse1682627699\",\"tag_key_required\":false,\"valid_tag_values\":[\"prod\",\"staging\"]},\"policy_type\":\"tag\"},\"type\":\"monitor-config-policy\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/monitor/policy" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"monitor-config-policy\",\"id\":\"fabd0b6e-e53a-11ed-a07b-da7ad0900002\",\"attributes\":{\"policy\":{\"valid_tag_values\":[\"prod\",\"staging\"],\"tag_key_required\":false,\"tag_key\":\"testcreateamonitorconfigurationpolicyreturnsokresponse1682627699\"},\"policy_type\":\"tag\"}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 27 Apr 2023 20:34:59 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/monitor/policy/fabd0b6e-e53a-11ed-a07b-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 27 Apr 2023 20:34:59 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/monitors/Delete-a-monitor-configuration-policy-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/monitors/Delete-a-monitor-configuration-policy-returns-Bad-Request-response.json index 51ad265cb..bc248e366 100644 --- a/tests/scenarios/cassettes/v2/monitors/Delete-a-monitor-configuration-policy-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/monitors/Delete-a-monitor-configuration-policy-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/monitor/policy/INVALID_UUID"}, "response": {"body": {"string": "{\"errors\":[\"Invalid URL param: policy_id must be an uuid\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Thu, 27 Apr 2023 20:34:59 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/monitor/policy/INVALID_UUID" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Invalid URL param: policy_id must be an uuid\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Thu, 27 Apr 2023 20:34:59 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/monitors/Delete-a-monitor-configuration-policy-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/monitors/Delete-a-monitor-configuration-policy-returns-Not-Found-response.json index 4ea669141..110483695 100644 --- a/tests/scenarios/cassettes/v2/monitors/Delete-a-monitor-configuration-policy-returns-Not-Found-response.json +++ b/tests/scenarios/cassettes/v2/monitors/Delete-a-monitor-configuration-policy-returns-Not-Found-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/monitor/policy/00000000-0000-1234-0000-000000000000"}, "response": {"body": {"string": "{\"errors\":[\"Monitor config policy not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 27 Apr 2023 20:35:00 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/monitor/policy/00000000-0000-1234-0000-000000000000" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Monitor config policy not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 27 Apr 2023 20:35:00 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/monitors/Delete-a-monitor-configuration-policy-returns-OK-response.json b/tests/scenarios/cassettes/v2/monitors/Delete-a-monitor-configuration-policy-returns-OK-response.json index ac2c597f6..0cf883b94 100644 --- a/tests/scenarios/cassettes/v2/monitors/Delete-a-monitor-configuration-policy-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/monitors/Delete-a-monitor-configuration-policy-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"policy\":{\"tag_key\":\"testdeleteamonitorconfigurationpolicyreturnsokresponse1682627700\",\"tag_key_required\":false,\"valid_tag_values\":[\"prod\",\"staging\"]},\"policy_type\":\"tag\"},\"type\":\"monitor-config-policy\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/monitor/policy"}, "response": {"body": {"string": "{\"data\":{\"type\":\"monitor-config-policy\",\"attributes\":{\"policy_type\":\"tag\",\"policy\":{\"tag_key_required\":false,\"tag_key\":\"testdeleteamonitorconfigurationpolicyreturnsokresponse1682627700\",\"valid_tag_values\":[\"prod\",\"staging\"]}},\"id\":\"fb4a2490-e53a-11ed-a5db-da7ad0900002\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 27 Apr 2023 20:35:00 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/monitor/policy/fb4a2490-e53a-11ed-a5db-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 27 Apr 2023 20:35:00 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/monitor/policy/fb4a2490-e53a-11ed-a5db-da7ad0900002"}, "response": {"body": {"string": "{\"errors\":[\"Monitor config policy not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 27 Apr 2023 20:35:00 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"policy\":{\"tag_key\":\"testdeleteamonitorconfigurationpolicyreturnsokresponse1682627700\",\"tag_key_required\":false,\"valid_tag_values\":[\"prod\",\"staging\"]},\"policy_type\":\"tag\"},\"type\":\"monitor-config-policy\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/monitor/policy" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"monitor-config-policy\",\"attributes\":{\"policy_type\":\"tag\",\"policy\":{\"tag_key_required\":false,\"tag_key\":\"testdeleteamonitorconfigurationpolicyreturnsokresponse1682627700\",\"valid_tag_values\":[\"prod\",\"staging\"]}},\"id\":\"fb4a2490-e53a-11ed-a5db-da7ad0900002\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 27 Apr 2023 20:35:00 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/monitor/policy/fb4a2490-e53a-11ed-a5db-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 27 Apr 2023 20:35:00 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/monitor/policy/fb4a2490-e53a-11ed-a5db-da7ad0900002" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Monitor config policy not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 27 Apr 2023 20:35:00 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/monitors/Edit-a-monitor-configuration-policy-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/monitors/Edit-a-monitor-configuration-policy-returns-Not-Found-response.json index 712c87d9e..8fb8473c6 100644 --- a/tests/scenarios/cassettes/v2/monitors/Edit-a-monitor-configuration-policy-returns-Not-Found-response.json +++ b/tests/scenarios/cassettes/v2/monitors/Edit-a-monitor-configuration-policy-returns-Not-Found-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"policy\":{\"tag_key\":\"datacenter\",\"tag_key_required\":false,\"valid_tag_values\":[\"prod\",\"staging\"]},\"policy_type\":\"tag\"},\"id\":\"00000000-0000-1234-0000-000000000000\",\"type\":\"monitor-config-policy\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/monitor/policy/00000000-0000-1234-0000-000000000000"}, "response": {"body": {"string": "{\"errors\":[\"Monitor configuration policy not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 27 Apr 2023 20:35:01 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"policy\":{\"tag_key\":\"datacenter\",\"tag_key_required\":false,\"valid_tag_values\":[\"prod\",\"staging\"]},\"policy_type\":\"tag\"},\"id\":\"00000000-0000-1234-0000-000000000000\",\"type\":\"monitor-config-policy\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/monitor/policy/00000000-0000-1234-0000-000000000000" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Monitor configuration policy not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 27 Apr 2023 20:35:01 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/monitors/Edit-a-monitor-configuration-policy-returns-OK-response.json b/tests/scenarios/cassettes/v2/monitors/Edit-a-monitor-configuration-policy-returns-OK-response.json index eecd71c2d..8a4091590 100644 --- a/tests/scenarios/cassettes/v2/monitors/Edit-a-monitor-configuration-policy-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/monitors/Edit-a-monitor-configuration-policy-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"policy\":{\"tag_key\":\"testeditamonitorconfigurationpolicyreturnsokresponse1682627701\",\"tag_key_required\":false,\"valid_tag_values\":[\"prod\",\"staging\"]},\"policy_type\":\"tag\"},\"type\":\"monitor-config-policy\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/monitor/policy"}, "response": {"body": {"string": "{\"data\":{\"type\":\"monitor-config-policy\",\"id\":\"fbdb67de-e53a-11ed-9e4a-da7ad0900002\",\"attributes\":{\"policy\":{\"valid_tag_values\":[\"prod\",\"staging\"],\"tag_key_required\":false,\"tag_key\":\"testeditamonitorconfigurationpolicyreturnsokresponse1682627701\"},\"policy_type\":\"tag\"}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 27 Apr 2023 20:35:01 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"policy\":{\"tag_key\":\"testeditamonitorconfigurationpolicyreturnsokresponse1682627701\",\"tag_key_required\":false,\"valid_tag_values\":[\"prod\",\"staging\"]},\"policy_type\":\"tag\"},\"id\":\"fbdb67de-e53a-11ed-9e4a-da7ad0900002\",\"type\":\"monitor-config-policy\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/monitor/policy/fbdb67de-e53a-11ed-9e4a-da7ad0900002"}, "response": {"body": {"string": "{\"data\":{\"type\":\"monitor-config-policy\",\"attributes\":{\"policy_type\":\"tag\",\"policy\":{\"valid_tag_values\":[\"prod\",\"staging\"],\"tag_key\":\"testeditamonitorconfigurationpolicyreturnsokresponse1682627701\",\"tag_key_required\":false}},\"id\":\"fbdb67de-e53a-11ed-9e4a-da7ad0900002\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 27 Apr 2023 20:35:01 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/monitor/policy/fbdb67de-e53a-11ed-9e4a-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 27 Apr 2023 20:35:01 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"policy\":{\"tag_key\":\"testeditamonitorconfigurationpolicyreturnsokresponse1682627701\",\"tag_key_required\":false,\"valid_tag_values\":[\"prod\",\"staging\"]},\"policy_type\":\"tag\"},\"type\":\"monitor-config-policy\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/monitor/policy" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"monitor-config-policy\",\"id\":\"fbdb67de-e53a-11ed-9e4a-da7ad0900002\",\"attributes\":{\"policy\":{\"valid_tag_values\":[\"prod\",\"staging\"],\"tag_key_required\":false,\"tag_key\":\"testeditamonitorconfigurationpolicyreturnsokresponse1682627701\"},\"policy_type\":\"tag\"}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 27 Apr 2023 20:35:01 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"policy\":{\"tag_key\":\"testeditamonitorconfigurationpolicyreturnsokresponse1682627701\",\"tag_key_required\":false,\"valid_tag_values\":[\"prod\",\"staging\"]},\"policy_type\":\"tag\"},\"id\":\"fbdb67de-e53a-11ed-9e4a-da7ad0900002\",\"type\":\"monitor-config-policy\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/monitor/policy/fbdb67de-e53a-11ed-9e4a-da7ad0900002" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"monitor-config-policy\",\"attributes\":{\"policy_type\":\"tag\",\"policy\":{\"valid_tag_values\":[\"prod\",\"staging\"],\"tag_key\":\"testeditamonitorconfigurationpolicyreturnsokresponse1682627701\",\"tag_key_required\":false}},\"id\":\"fbdb67de-e53a-11ed-9e4a-da7ad0900002\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 27 Apr 2023 20:35:01 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/monitor/policy/fbdb67de-e53a-11ed-9e4a-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 27 Apr 2023 20:35:01 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/monitors/Edit-a-monitor-configuration-policy-returns-Unprocessable-Entity-response.json b/tests/scenarios/cassettes/v2/monitors/Edit-a-monitor-configuration-policy-returns-Unprocessable-Entity-response.json index a3bcad840..3e3c3e9ff 100644 --- a/tests/scenarios/cassettes/v2/monitors/Edit-a-monitor-configuration-policy-returns-Unprocessable-Entity-response.json +++ b/tests/scenarios/cassettes/v2/monitors/Edit-a-monitor-configuration-policy-returns-Unprocessable-Entity-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"policy\":{\"tag_key\":\"testeditamonitorconfigurationpolicyreturnsunprocessableentityresponse1682627701\",\"tag_key_required\":false,\"valid_tag_values\":[\"prod\",\"staging\"]},\"policy_type\":\"tag\"},\"type\":\"monitor-config-policy\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/monitor/policy"}, "response": {"body": {"string": "{\"data\":{\"type\":\"monitor-config-policy\",\"attributes\":{\"policy\":{\"tag_key\":\"testeditamonitorconfigurationpolicyreturnsunprocessableentityresponse1682627701\",\"tag_key_required\":false,\"valid_tag_values\":[\"prod\",\"staging\"]},\"policy_type\":\"tag\"},\"id\":\"fc38f7f0-e53a-11ed-947f-da7ad0900002\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 27 Apr 2023 20:35:01 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"policy\":{\"tag_key\":\"testeditamonitorconfigurationpolicyreturnsunprocessableentityresponse1682627701\",\"tag_key_required\":false,\"valid_tag_values\":[\"prod\",\"staging\"]},\"policy_type\":\"tag\"},\"id\":\"00000000-0000-1234-0000-000000000000\",\"type\":\"monitor-config-policy\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/monitor/policy/fc38f7f0-e53a-11ed-947f-da7ad0900002"}, "response": {"body": {"string": "{\"errors\":[\"Policy id in request body does not match id in URL param\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 422, "message": "Unprocessable Entity"}}, "recorded_at": "Thu, 27 Apr 2023 20:35:01 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/monitor/policy/fc38f7f0-e53a-11ed-947f-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 27 Apr 2023 20:35:01 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"policy\":{\"tag_key\":\"testeditamonitorconfigurationpolicyreturnsunprocessableentityresponse1682627701\",\"tag_key_required\":false,\"valid_tag_values\":[\"prod\",\"staging\"]},\"policy_type\":\"tag\"},\"type\":\"monitor-config-policy\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/monitor/policy" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"monitor-config-policy\",\"attributes\":{\"policy\":{\"tag_key\":\"testeditamonitorconfigurationpolicyreturnsunprocessableentityresponse1682627701\",\"tag_key_required\":false,\"valid_tag_values\":[\"prod\",\"staging\"]},\"policy_type\":\"tag\"},\"id\":\"fc38f7f0-e53a-11ed-947f-da7ad0900002\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 27 Apr 2023 20:35:01 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"policy\":{\"tag_key\":\"testeditamonitorconfigurationpolicyreturnsunprocessableentityresponse1682627701\",\"tag_key_required\":false,\"valid_tag_values\":[\"prod\",\"staging\"]},\"policy_type\":\"tag\"},\"id\":\"00000000-0000-1234-0000-000000000000\",\"type\":\"monitor-config-policy\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/monitor/policy/fc38f7f0-e53a-11ed-947f-da7ad0900002" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Policy id in request body does not match id in URL param\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 422, + "message": "Unprocessable Entity" + } + }, + "recorded_at": "Thu, 27 Apr 2023 20:35:01 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/monitor/policy/fc38f7f0-e53a-11ed-947f-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 27 Apr 2023 20:35:01 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/monitors/Get-a-monitor-configuration-policy-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/monitors/Get-a-monitor-configuration-policy-returns-Not-Found-response.json index be6d6d3fe..73dc32adf 100644 --- a/tests/scenarios/cassettes/v2/monitors/Get-a-monitor-configuration-policy-returns-Not-Found-response.json +++ b/tests/scenarios/cassettes/v2/monitors/Get-a-monitor-configuration-policy-returns-Not-Found-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/monitor/policy/12340000-0000-0000-0000-000000000000"}, "response": {"body": {"string": "{\"errors\":[\"Monitor configuration policy not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 27 Apr 2023 20:35:02 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/monitor/policy/12340000-0000-0000-0000-000000000000" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Monitor configuration policy not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 27 Apr 2023 20:35:02 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/monitors/Get-a-monitor-configuration-policy-returns-OK-response.json b/tests/scenarios/cassettes/v2/monitors/Get-a-monitor-configuration-policy-returns-OK-response.json index 4ffb978c5..658236c9d 100644 --- a/tests/scenarios/cassettes/v2/monitors/Get-a-monitor-configuration-policy-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/monitors/Get-a-monitor-configuration-policy-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"policy\":{\"tag_key\":\"testgetamonitorconfigurationpolicyreturnsokresponse1682627702\",\"tag_key_required\":false,\"valid_tag_values\":[\"prod\",\"staging\"]},\"policy_type\":\"tag\"},\"type\":\"monitor-config-policy\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/monitor/policy"}, "response": {"body": {"string": "{\"data\":{\"type\":\"monitor-config-policy\",\"attributes\":{\"policy_type\":\"tag\",\"policy\":{\"tag_key\":\"testgetamonitorconfigurationpolicyreturnsokresponse1682627702\",\"valid_tag_values\":[\"prod\",\"staging\"],\"tag_key_required\":false}},\"id\":\"fcd6f8ec-e53a-11ed-8b5f-da7ad0900002\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 27 Apr 2023 20:35:02 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/monitor/policy/fcd6f8ec-e53a-11ed-8b5f-da7ad0900002"}, "response": {"body": {"string": "{\"data\":{\"type\":\"monitor-config-policy\",\"attributes\":{\"policy_type\":\"tag\",\"policy\":{\"tag_key_required\":false,\"tag_key\":\"testgetamonitorconfigurationpolicyreturnsokresponse1682627702\",\"valid_tag_values\":[\"prod\",\"staging\"]}},\"id\":\"fcd6f8ec-e53a-11ed-8b5f-da7ad0900002\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 27 Apr 2023 20:35:02 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/monitor/policy/fcd6f8ec-e53a-11ed-8b5f-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 27 Apr 2023 20:35:02 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"policy\":{\"tag_key\":\"testgetamonitorconfigurationpolicyreturnsokresponse1682627702\",\"tag_key_required\":false,\"valid_tag_values\":[\"prod\",\"staging\"]},\"policy_type\":\"tag\"},\"type\":\"monitor-config-policy\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/monitor/policy" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"monitor-config-policy\",\"attributes\":{\"policy_type\":\"tag\",\"policy\":{\"tag_key\":\"testgetamonitorconfigurationpolicyreturnsokresponse1682627702\",\"valid_tag_values\":[\"prod\",\"staging\"],\"tag_key_required\":false}},\"id\":\"fcd6f8ec-e53a-11ed-8b5f-da7ad0900002\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 27 Apr 2023 20:35:02 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/monitor/policy/fcd6f8ec-e53a-11ed-8b5f-da7ad0900002" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"monitor-config-policy\",\"attributes\":{\"policy_type\":\"tag\",\"policy\":{\"tag_key_required\":false,\"tag_key\":\"testgetamonitorconfigurationpolicyreturnsokresponse1682627702\",\"valid_tag_values\":[\"prod\",\"staging\"]}},\"id\":\"fcd6f8ec-e53a-11ed-8b5f-da7ad0900002\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 27 Apr 2023 20:35:02 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/monitor/policy/fcd6f8ec-e53a-11ed-8b5f-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 27 Apr 2023 20:35:02 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/monitors/Get-all-monitor-configuration-policies-returns-OK-response.json b/tests/scenarios/cassettes/v2/monitors/Get-all-monitor-configuration-policies-returns-OK-response.json index 6270730ba..236c3b473 100644 --- a/tests/scenarios/cassettes/v2/monitors/Get-all-monitor-configuration-policies-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/monitors/Get-all-monitor-configuration-policies-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"policy\":{\"tag_key\":\"testgetallmonitorconfigurationpoliciesreturnsokresponse1682627703\",\"tag_key_required\":false,\"valid_tag_values\":[\"prod\",\"staging\"]},\"policy_type\":\"tag\"},\"type\":\"monitor-config-policy\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/monitor/policy"}, "response": {"body": {"string": "{\"data\":{\"type\":\"monitor-config-policy\",\"attributes\":{\"policy\":{\"valid_tag_values\":[\"prod\",\"staging\"],\"tag_key_required\":false,\"tag_key\":\"testgetallmonitorconfigurationpoliciesreturnsokresponse1682627703\"},\"policy_type\":\"tag\"},\"id\":\"fd3bfd14-e53a-11ed-975d-da7ad0900002\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 27 Apr 2023 20:35:03 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/monitor/policy"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"monitor-config-policy\",\"id\":\"fd3bfd14-e53a-11ed-975d-da7ad0900002\",\"attributes\":{\"policy\":{\"valid_tag_values\":[\"prod\",\"staging\"],\"tag_key_required\":false,\"tag_key\":\"testgetallmonitorconfigurationpoliciesreturnsokresponse1682627703\"},\"policy_type\":\"tag\"}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 27 Apr 2023 20:35:03 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/monitor/policy/fd3bfd14-e53a-11ed-975d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 27 Apr 2023 20:35:03 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"policy\":{\"tag_key\":\"testgetallmonitorconfigurationpoliciesreturnsokresponse1682627703\",\"tag_key_required\":false,\"valid_tag_values\":[\"prod\",\"staging\"]},\"policy_type\":\"tag\"},\"type\":\"monitor-config-policy\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/monitor/policy" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"monitor-config-policy\",\"attributes\":{\"policy\":{\"valid_tag_values\":[\"prod\",\"staging\"],\"tag_key_required\":false,\"tag_key\":\"testgetallmonitorconfigurationpoliciesreturnsokresponse1682627703\"},\"policy_type\":\"tag\"},\"id\":\"fd3bfd14-e53a-11ed-975d-da7ad0900002\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 27 Apr 2023 20:35:03 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/monitor/policy" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"monitor-config-policy\",\"id\":\"fd3bfd14-e53a-11ed-975d-da7ad0900002\",\"attributes\":{\"policy\":{\"valid_tag_values\":[\"prod\",\"staging\"],\"tag_key_required\":false,\"tag_key\":\"testgetallmonitorconfigurationpoliciesreturnsokresponse1682627703\"},\"policy_type\":\"tag\"}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 27 Apr 2023 20:35:03 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/monitor/policy/fd3bfd14-e53a-11ed-975d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 27 Apr 2023 20:35:03 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/okta_integration/Add-Okta-account-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/okta_integration/Add-Okta-account-returns-OK-response.frozen index 04e51eb1c..4be31559b 100644 --- a/tests/scenarios/cassettes/v2/okta_integration/Add-Okta-account-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v2/okta_integration/Add-Okta-account-returns-OK-response.frozen @@ -1 +1 @@ -2023-11-21T16:59:43.805Z \ No newline at end of file +2024-01-29T14:58:52.386Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/okta_integration/Add-Okta-account-returns-OK-response.json b/tests/scenarios/cassettes/v2/okta_integration/Add-Okta-account-returns-OK-response.json index 01e456a66..67defb559 100644 --- a/tests/scenarios/cassettes/v2/okta_integration/Add-Okta-account-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/okta_integration/Add-Okta-account-returns-OK-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"auth_method\":\"oauth\",\"client_id\":\"client_id\",\"client_secret\":\"client_secret\",\"domain\":\"https://example.okta.com/\",\"name\":\"Okta_Prod\"},\"id\":\"f749daaf-682e-4208-a38d-c9b43162c609\",\"type\":\"okta-accounts\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integrations/okta/accounts"}, "response": {"body": {"string": "{\"data\":{\"type\":\"okta-accounts\",\"attributes\":{\"domain\":\"https://example.okta.com/\",\"client_id\":\"client_id\",\"auth_method\":\"oauth\",\"name\":\"Okta_Prod\"},\"id\":\"6330b376-d352-4a06-a169-107002bd6e6c\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Tue, 21 Nov 2023 16:59:43 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integrations/okta/accounts/6330b376-d352-4a06-a169-107002bd6e6c"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Tue, 21 Nov 2023 16:59:43 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"auth_method\":\"oauth\",\"client_id\":\"client_id\",\"client_secret\":\"client_secret\",\"domain\":\"https://example.okta.com/\",\"name\":\"testaddoktaaccountreturnsokresponse1706540332\"},\"id\":\"f749daaf-682e-4208-a38d-c9b43162c609\",\"type\":\"okta-accounts\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integrations/okta/accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"okta-accounts\",\"attributes\":{\"auth_method\":\"oauth\",\"client_id\":\"client_id\",\"domain\":\"https://example.okta.com/\",\"name\":\"testaddoktaaccountreturnsokresponse1706540332\"},\"id\":\"1e62be98-94ab-403d-9491-98b7fbf9a7de\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 29 Jan 2024 14:58:52 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integrations/okta/accounts/1e62be98-94ab-403d-9491-98b7fbf9a7de" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 29 Jan 2024 14:58:52 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/okta_integration/Get-Okta-account-returns-OK-response.json b/tests/scenarios/cassettes/v2/okta_integration/Get-Okta-account-returns-OK-response.json index c06883869..215510601 100644 --- a/tests/scenarios/cassettes/v2/okta_integration/Get-Okta-account-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/okta_integration/Get-Okta-account-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"auth_method\":\"oauth\",\"client_id\":\"fakeclientid\",\"client_secret\":\"fakeclientsecret\",\"domain\":\"https://dev-test.okta.com/\",\"name\":\"testgetoktaaccountreturnsokresponse1700585984\"},\"type\":\"okta-accounts\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integrations/okta/accounts"}, "response": {"body": {"string": "{\"data\":{\"type\":\"okta-accounts\",\"attributes\":{\"client_id\":\"fakeclientid\",\"auth_method\":\"oauth\",\"domain\":\"https://dev-test.okta.com/\",\"name\":\"testgetoktaaccountreturnsokresponse1700585984\"},\"id\":\"2bf39935-f5c8-46b1-b41b-eda0b4bd2e78\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Tue, 21 Nov 2023 16:59:44 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/integrations/okta/accounts/2bf39935-f5c8-46b1-b41b-eda0b4bd2e78"}, "response": {"body": {"string": "{\"data\":{\"type\":\"okta-accounts\",\"attributes\":{\"client_id\":\"fakeclientid\",\"auth_method\":\"oauth\",\"domain\":\"https://dev-test.okta.com/\",\"name\":\"testgetoktaaccountreturnsokresponse1700585984\"},\"id\":\"2bf39935-f5c8-46b1-b41b-eda0b4bd2e78\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 21 Nov 2023 16:59:44 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integrations/okta/accounts/2bf39935-f5c8-46b1-b41b-eda0b4bd2e78"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Tue, 21 Nov 2023 16:59:44 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"auth_method\":\"oauth\",\"client_id\":\"fakeclientid\",\"client_secret\":\"fakeclientsecret\",\"domain\":\"https://dev-test.okta.com/\",\"name\":\"testgetoktaaccountreturnsokresponse1700585984\"},\"type\":\"okta-accounts\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integrations/okta/accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"okta-accounts\",\"attributes\":{\"client_id\":\"fakeclientid\",\"auth_method\":\"oauth\",\"domain\":\"https://dev-test.okta.com/\",\"name\":\"testgetoktaaccountreturnsokresponse1700585984\"},\"id\":\"2bf39935-f5c8-46b1-b41b-eda0b4bd2e78\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Tue, 21 Nov 2023 16:59:44 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/integrations/okta/accounts/2bf39935-f5c8-46b1-b41b-eda0b4bd2e78" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"okta-accounts\",\"attributes\":{\"client_id\":\"fakeclientid\",\"auth_method\":\"oauth\",\"domain\":\"https://dev-test.okta.com/\",\"name\":\"testgetoktaaccountreturnsokresponse1700585984\"},\"id\":\"2bf39935-f5c8-46b1-b41b-eda0b4bd2e78\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 21 Nov 2023 16:59:44 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integrations/okta/accounts/2bf39935-f5c8-46b1-b41b-eda0b4bd2e78" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Tue, 21 Nov 2023 16:59:44 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/okta_integration/List-Okta-accounts-returns-OK-response.json b/tests/scenarios/cassettes/v2/okta_integration/List-Okta-accounts-returns-OK-response.json index 0b20ef495..93be0532b 100644 --- a/tests/scenarios/cassettes/v2/okta_integration/List-Okta-accounts-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/okta_integration/List-Okta-accounts-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"auth_method\":\"oauth\",\"client_id\":\"fakeclientid\",\"client_secret\":\"fakeclientsecret\",\"domain\":\"https://dev-test.okta.com/\",\"name\":\"testlistoktaaccountsreturnsokresponse1700585986\"},\"type\":\"okta-accounts\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integrations/okta/accounts"}, "response": {"body": {"string": "{\"data\":{\"type\":\"okta-accounts\",\"attributes\":{\"client_id\":\"fakeclientid\",\"name\":\"testlistoktaaccountsreturnsokresponse1700585986\",\"auth_method\":\"oauth\",\"domain\":\"https://dev-test.okta.com/\"},\"id\":\"a5e9a04b-ac5b-4a5c-a4d5-c697deb232aa\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Tue, 21 Nov 2023 16:59:46 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/integrations/okta/accounts"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"okta-accounts\",\"attributes\":{\"name\":\"testoktapublicupdateaccountreturnsokresponse1699978854\",\"auth_method\":\"oauth\",\"domain\":\"https://example.okta.com/\",\"client_id\":\"client_id\"},\"id\":\"9637ddf0-4f5e-4adb-89b0-72b7c843116f\"},{\"type\":\"okta-accounts\",\"attributes\":{\"name\":\"testoktapublicupdateaccountreturnsokresponse1699978979\",\"auth_method\":\"oauth\",\"domain\":\"https://example.okta.com/\",\"client_id\":\"client_id\"},\"id\":\"199e06bf-6805-403c-8b97-34c10f526485\"},{\"type\":\"okta-accounts\",\"attributes\":{\"name\":\"testoktapublicupdateaccountreturnsokresponse1699989540\",\"auth_method\":\"oauth\",\"domain\":\"https://example.okta.com/\",\"client_id\":\"client_id\"},\"id\":\"2770caff-0eb2-4edf-b3dd-63b42d706c79\"},{\"type\":\"okta-accounts\",\"attributes\":{\"name\":\"testoktapublicupdateaccountreturnsokresponse1699990165\",\"auth_method\":\"oauth\",\"domain\":\"https://example.okta.com/\",\"client_id\":\"client_id\"},\"id\":\"ee163be4-1a6d-466e-ba9d-539e5c505645\"},{\"type\":\"okta-accounts\",\"attributes\":{\"name\":\"testupdateoktaaccountreturnsokresponse1700585947\",\"auth_method\":\"oauth\",\"domain\":\"https://example.okta.com/\",\"client_id\":\"client_id\"},\"id\":\"474f2d62-fb47-40fc-a201-f0c59c90d3e3\"},{\"type\":\"okta-accounts\",\"attributes\":{\"name\":\"testlistoktaaccountsreturnsokresponse1700585986\",\"auth_method\":\"oauth\",\"domain\":\"https://dev-test.okta.com/\",\"client_id\":\"fakeclientid\"},\"id\":\"a5e9a04b-ac5b-4a5c-a4d5-c697deb232aa\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 21 Nov 2023 16:59:46 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integrations/okta/accounts/a5e9a04b-ac5b-4a5c-a4d5-c697deb232aa"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Tue, 21 Nov 2023 16:59:46 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"auth_method\":\"oauth\",\"client_id\":\"fakeclientid\",\"client_secret\":\"fakeclientsecret\",\"domain\":\"https://dev-test.okta.com/\",\"name\":\"testlistoktaaccountsreturnsokresponse1700585986\"},\"type\":\"okta-accounts\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integrations/okta/accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"okta-accounts\",\"attributes\":{\"client_id\":\"fakeclientid\",\"name\":\"testlistoktaaccountsreturnsokresponse1700585986\",\"auth_method\":\"oauth\",\"domain\":\"https://dev-test.okta.com/\"},\"id\":\"a5e9a04b-ac5b-4a5c-a4d5-c697deb232aa\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Tue, 21 Nov 2023 16:59:46 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/integrations/okta/accounts" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"okta-accounts\",\"attributes\":{\"name\":\"testoktapublicupdateaccountreturnsokresponse1699978854\",\"auth_method\":\"oauth\",\"domain\":\"https://example.okta.com/\",\"client_id\":\"client_id\"},\"id\":\"9637ddf0-4f5e-4adb-89b0-72b7c843116f\"},{\"type\":\"okta-accounts\",\"attributes\":{\"name\":\"testoktapublicupdateaccountreturnsokresponse1699978979\",\"auth_method\":\"oauth\",\"domain\":\"https://example.okta.com/\",\"client_id\":\"client_id\"},\"id\":\"199e06bf-6805-403c-8b97-34c10f526485\"},{\"type\":\"okta-accounts\",\"attributes\":{\"name\":\"testoktapublicupdateaccountreturnsokresponse1699989540\",\"auth_method\":\"oauth\",\"domain\":\"https://example.okta.com/\",\"client_id\":\"client_id\"},\"id\":\"2770caff-0eb2-4edf-b3dd-63b42d706c79\"},{\"type\":\"okta-accounts\",\"attributes\":{\"name\":\"testoktapublicupdateaccountreturnsokresponse1699990165\",\"auth_method\":\"oauth\",\"domain\":\"https://example.okta.com/\",\"client_id\":\"client_id\"},\"id\":\"ee163be4-1a6d-466e-ba9d-539e5c505645\"},{\"type\":\"okta-accounts\",\"attributes\":{\"name\":\"testupdateoktaaccountreturnsokresponse1700585947\",\"auth_method\":\"oauth\",\"domain\":\"https://example.okta.com/\",\"client_id\":\"client_id\"},\"id\":\"474f2d62-fb47-40fc-a201-f0c59c90d3e3\"},{\"type\":\"okta-accounts\",\"attributes\":{\"name\":\"testlistoktaaccountsreturnsokresponse1700585986\",\"auth_method\":\"oauth\",\"domain\":\"https://dev-test.okta.com/\",\"client_id\":\"fakeclientid\"},\"id\":\"a5e9a04b-ac5b-4a5c-a4d5-c697deb232aa\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 21 Nov 2023 16:59:46 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integrations/okta/accounts/a5e9a04b-ac5b-4a5c-a4d5-c697deb232aa" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Tue, 21 Nov 2023 16:59:46 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/okta_integration/Update-Okta-account-returns-OK-response.json b/tests/scenarios/cassettes/v2/okta_integration/Update-Okta-account-returns-OK-response.json index 35a8d6ba7..d3ac56d39 100644 --- a/tests/scenarios/cassettes/v2/okta_integration/Update-Okta-account-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/okta_integration/Update-Okta-account-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"auth_method\":\"oauth\",\"client_id\":\"fakeclientid\",\"client_secret\":\"fakeclientsecret\",\"domain\":\"https://dev-test.okta.com/\",\"name\":\"testupdateoktaaccountreturnsokresponse1700585987\"},\"type\":\"okta-accounts\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integrations/okta/accounts"}, "response": {"body": {"string": "{\"data\":{\"type\":\"okta-accounts\",\"attributes\":{\"domain\":\"https://dev-test.okta.com/\",\"auth_method\":\"oauth\",\"client_id\":\"fakeclientid\",\"name\":\"testupdateoktaaccountreturnsokresponse1700585987\"},\"id\":\"c847a349-9687-4b80-8b0f-996e0e75f73e\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Tue, 21 Nov 2023 16:59:47 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"auth_method\":\"oauth\",\"client_id\":\"client_id\",\"client_secret\":\"client_secret\",\"domain\":\"https://example.okta.com/\"},\"type\":\"okta-accounts\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/integrations/okta/accounts/c847a349-9687-4b80-8b0f-996e0e75f73e"}, "response": {"body": {"string": "{\"data\":{\"type\":\"okta-accounts\",\"id\":\"7343985f-6e86-4327-8792-538b4c9b38e9\",\"attributes\":{\"auth_method\":\"oauth\",\"client_id\":\"client_id\",\"domain\":\"https://example.okta.com/\",\"name\":\"testupdateoktaaccountreturnsokresponse1700585987\"}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 21 Nov 2023 16:59:47 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integrations/okta/accounts/c847a349-9687-4b80-8b0f-996e0e75f73e"}, "response": {"body": {"string": "{\"errors\":[\"Unknown error occurred: \"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Tue, 21 Nov 2023 16:59:47 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"auth_method\":\"oauth\",\"client_id\":\"fakeclientid\",\"client_secret\":\"fakeclientsecret\",\"domain\":\"https://dev-test.okta.com/\",\"name\":\"testupdateoktaaccountreturnsokresponse1700585987\"},\"type\":\"okta-accounts\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integrations/okta/accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"okta-accounts\",\"attributes\":{\"domain\":\"https://dev-test.okta.com/\",\"auth_method\":\"oauth\",\"client_id\":\"fakeclientid\",\"name\":\"testupdateoktaaccountreturnsokresponse1700585987\"},\"id\":\"c847a349-9687-4b80-8b0f-996e0e75f73e\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Tue, 21 Nov 2023 16:59:47 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"auth_method\":\"oauth\",\"client_id\":\"client_id\",\"client_secret\":\"client_secret\",\"domain\":\"https://example.okta.com/\"},\"type\":\"okta-accounts\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/integrations/okta/accounts/c847a349-9687-4b80-8b0f-996e0e75f73e" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"okta-accounts\",\"id\":\"7343985f-6e86-4327-8792-538b4c9b38e9\",\"attributes\":{\"auth_method\":\"oauth\",\"client_id\":\"client_id\",\"domain\":\"https://example.okta.com/\",\"name\":\"testupdateoktaaccountreturnsokresponse1700585987\"}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 21 Nov 2023 16:59:47 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integrations/okta/accounts/c847a349-9687-4b80-8b0f-996e0e75f73e" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Unknown error occurred: \"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Tue, 21 Nov 2023 16:59:47 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/opsgenie_integration/Create-a-new-service-object-returns-CREATED-response.json b/tests/scenarios/cassettes/v2/opsgenie_integration/Create-a-new-service-object-returns-CREATED-response.json index 20b12d599..5d3c5f72f 100644 --- a/tests/scenarios/cassettes/v2/opsgenie_integration/Create-a-new-service-object-returns-CREATED-response.json +++ b/tests/scenarios/cassettes/v2/opsgenie_integration/Create-a-new-service-object-returns-CREATED-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_a_new_service_object_returns_CREATED_response-1653590938\",\"opsgenie_api_key\":\"00000000-0000-0000-0000-000000000000\",\"region\":\"us\"},\"type\":\"opsgenie-service\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integration/opsgenie/services"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"custom_url\":null,\"region\":\"us\",\"name\":\"Test-Create_a_new_service_object_returns_CREATED_response-1653590938\"},\"type\":\"opsgenie-service\",\"id\":\"0dcb43af-f233-4cda-b260-37e97e12f66f\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 26 May 2022 18:48:58 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integration/opsgenie/services/0dcb43af-f233-4cda-b260-37e97e12f66f"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 26 May 2022 18:48:58 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_a_new_service_object_returns_CREATED_response-1653590938\",\"opsgenie_api_key\":\"00000000-0000-0000-0000-000000000000\",\"region\":\"us\"},\"type\":\"opsgenie-service\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integration/opsgenie/services" + }, + "response": { + "body": { + "string": "{\"data\":{\"attributes\":{\"custom_url\":null,\"region\":\"us\",\"name\":\"Test-Create_a_new_service_object_returns_CREATED_response-1653590938\"},\"type\":\"opsgenie-service\",\"id\":\"0dcb43af-f233-4cda-b260-37e97e12f66f\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 26 May 2022 18:48:58 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integration/opsgenie/services/0dcb43af-f233-4cda-b260-37e97e12f66f" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 26 May 2022 18:48:58 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/opsgenie_integration/Delete-a-single-service-object-returns-OK-response.json b/tests/scenarios/cassettes/v2/opsgenie_integration/Delete-a-single-service-object-returns-OK-response.json index 87f230ca0..bd48c8176 100644 --- a/tests/scenarios/cassettes/v2/opsgenie_integration/Delete-a-single-service-object-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/opsgenie_integration/Delete-a-single-service-object-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Delete_a_single_service_object_returns_OK_response-1655132327\",\"opsgenie_api_key\":\"00000000-0000-0000-0000-000000000000\",\"region\":\"us\"},\"type\":\"opsgenie-service\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integration/opsgenie/services"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"region\":\"us\",\"name\":\"Test-Delete_a_single_service_object_returns_OK_response-1655132327\",\"custom_url\":null},\"type\":\"opsgenie-service\",\"id\":\"78050750-0312-400d-ad80-161ea7900931\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 13 Jun 2022 14:58:47 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integration/opsgenie/services/78050750-0312-400d-ad80-161ea7900931"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 13 Jun 2022 14:58:47 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integration/opsgenie/services/78050750-0312-400d-ad80-161ea7900931"}, "response": {"body": {"string": "{\"errors\":[\"Service not found.\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Mon, 13 Jun 2022 14:58:47 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Delete_a_single_service_object_returns_OK_response-1655132327\",\"opsgenie_api_key\":\"00000000-0000-0000-0000-000000000000\",\"region\":\"us\"},\"type\":\"opsgenie-service\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integration/opsgenie/services" + }, + "response": { + "body": { + "string": "{\"data\":{\"attributes\":{\"region\":\"us\",\"name\":\"Test-Delete_a_single_service_object_returns_OK_response-1655132327\",\"custom_url\":null},\"type\":\"opsgenie-service\",\"id\":\"78050750-0312-400d-ad80-161ea7900931\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 13 Jun 2022 14:58:47 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integration/opsgenie/services/78050750-0312-400d-ad80-161ea7900931" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 13 Jun 2022 14:58:47 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integration/opsgenie/services/78050750-0312-400d-ad80-161ea7900931" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Service not found.\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Mon, 13 Jun 2022 14:58:47 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/opsgenie_integration/Get-a-single-service-object-returns-OK-response.json b/tests/scenarios/cassettes/v2/opsgenie_integration/Get-a-single-service-object-returns-OK-response.json index 7cd275600..a4dc75ce2 100644 --- a/tests/scenarios/cassettes/v2/opsgenie_integration/Get-a-single-service-object-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/opsgenie_integration/Get-a-single-service-object-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Get_a_single_service_object_returns_OK_response-1655132327\",\"opsgenie_api_key\":\"00000000-0000-0000-0000-000000000000\",\"region\":\"us\"},\"type\":\"opsgenie-service\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integration/opsgenie/services"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"region\":\"us\",\"name\":\"Test-Get_a_single_service_object_returns_OK_response-1655132327\",\"custom_url\":null},\"type\":\"opsgenie-service\",\"id\":\"3ca2db9d-e088-47d1-9bfe-b88463c23f2d\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 13 Jun 2022 14:58:47 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/integration/opsgenie/services/3ca2db9d-e088-47d1-9bfe-b88463c23f2d"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"region\":\"us\",\"name\":\"Test-Get_a_single_service_object_returns_OK_response-1655132327\",\"custom_url\":null},\"type\":\"opsgenie-service\",\"id\":\"3ca2db9d-e088-47d1-9bfe-b88463c23f2d\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 13 Jun 2022 14:58:47 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integration/opsgenie/services/3ca2db9d-e088-47d1-9bfe-b88463c23f2d"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 13 Jun 2022 14:58:47 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Get_a_single_service_object_returns_OK_response-1655132327\",\"opsgenie_api_key\":\"00000000-0000-0000-0000-000000000000\",\"region\":\"us\"},\"type\":\"opsgenie-service\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integration/opsgenie/services" + }, + "response": { + "body": { + "string": "{\"data\":{\"attributes\":{\"region\":\"us\",\"name\":\"Test-Get_a_single_service_object_returns_OK_response-1655132327\",\"custom_url\":null},\"type\":\"opsgenie-service\",\"id\":\"3ca2db9d-e088-47d1-9bfe-b88463c23f2d\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 13 Jun 2022 14:58:47 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/integration/opsgenie/services/3ca2db9d-e088-47d1-9bfe-b88463c23f2d" + }, + "response": { + "body": { + "string": "{\"data\":{\"attributes\":{\"region\":\"us\",\"name\":\"Test-Get_a_single_service_object_returns_OK_response-1655132327\",\"custom_url\":null},\"type\":\"opsgenie-service\",\"id\":\"3ca2db9d-e088-47d1-9bfe-b88463c23f2d\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 13 Jun 2022 14:58:47 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integration/opsgenie/services/3ca2db9d-e088-47d1-9bfe-b88463c23f2d" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 13 Jun 2022 14:58:47 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/opsgenie_integration/Get-all-service-objects-returns-OK-response.json b/tests/scenarios/cassettes/v2/opsgenie_integration/Get-all-service-objects-returns-OK-response.json index ff5aa9ddc..a61c1308c 100644 --- a/tests/scenarios/cassettes/v2/opsgenie_integration/Get-all-service-objects-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/opsgenie_integration/Get-all-service-objects-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Get_all_service_objects_returns_OK_response-1655132328\",\"opsgenie_api_key\":\"00000000-0000-0000-0000-000000000000\",\"region\":\"us\"},\"type\":\"opsgenie-service\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integration/opsgenie/services"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"region\":\"us\",\"name\":\"Test-Get_all_service_objects_returns_OK_response-1655132328\",\"custom_url\":null},\"type\":\"opsgenie-service\",\"id\":\"337861b6-ed46-4c66-b4a0-32d7a4ba94b9\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 13 Jun 2022 14:58:48 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/integration/opsgenie/services"}, "response": {"body": {"string": "{\"data\":[{\"attributes\":{\"region\":\"us\",\"name\":\"Test-Get_all_service_objects_returns_OK_response-1655132328\",\"custom_url\":null},\"type\":\"opsgenie-service\",\"id\":\"337861b6-ed46-4c66-b4a0-32d7a4ba94b9\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 13 Jun 2022 14:58:48 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integration/opsgenie/services/337861b6-ed46-4c66-b4a0-32d7a4ba94b9"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 13 Jun 2022 14:58:48 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Get_all_service_objects_returns_OK_response-1655132328\",\"opsgenie_api_key\":\"00000000-0000-0000-0000-000000000000\",\"region\":\"us\"},\"type\":\"opsgenie-service\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integration/opsgenie/services" + }, + "response": { + "body": { + "string": "{\"data\":{\"attributes\":{\"region\":\"us\",\"name\":\"Test-Get_all_service_objects_returns_OK_response-1655132328\",\"custom_url\":null},\"type\":\"opsgenie-service\",\"id\":\"337861b6-ed46-4c66-b4a0-32d7a4ba94b9\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 13 Jun 2022 14:58:48 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/integration/opsgenie/services" + }, + "response": { + "body": { + "string": "{\"data\":[{\"attributes\":{\"region\":\"us\",\"name\":\"Test-Get_all_service_objects_returns_OK_response-1655132328\",\"custom_url\":null},\"type\":\"opsgenie-service\",\"id\":\"337861b6-ed46-4c66-b4a0-32d7a4ba94b9\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 13 Jun 2022 14:58:48 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integration/opsgenie/services/337861b6-ed46-4c66-b4a0-32d7a4ba94b9" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 13 Jun 2022 14:58:48 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/opsgenie_integration/Update-a-single-service-object-returns-OK-response.json b/tests/scenarios/cassettes/v2/opsgenie_integration/Update-a-single-service-object-returns-OK-response.json index 0a0680250..6d96ac7db 100644 --- a/tests/scenarios/cassettes/v2/opsgenie_integration/Update-a-single-service-object-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/opsgenie_integration/Update-a-single-service-object-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Update_a_single_service_object_returns_OK_response-1654804626\",\"opsgenie_api_key\":\"00000000-0000-0000-0000-000000000000\",\"region\":\"us\"},\"type\":\"opsgenie-service\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/integration/opsgenie/services"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"region\":\"us\",\"name\":\"Test-Update_a_single_service_object_returns_OK_response-1654804626\",\"custom_url\":null},\"type\":\"opsgenie-service\",\"id\":\"0b04ddfb-b00a-4243-baed-33ff1bff0909\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 09 Jun 2022 19:57:06 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Update_a_single_service_object_returns_OK_response-1654804626--updated\",\"opsgenie_api_key\":\"00000000-0000-0000-0000-000000000000\",\"region\":\"eu\"},\"id\":\"0b04ddfb-b00a-4243-baed-33ff1bff0909\",\"type\":\"opsgenie-service\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/integration/opsgenie/services/0b04ddfb-b00a-4243-baed-33ff1bff0909"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"region\":\"eu\",\"name\":\"Test-Update_a_single_service_object_returns_OK_response-1654804626--updated\",\"custom_url\":null},\"type\":\"opsgenie-service\",\"id\":\"0b04ddfb-b00a-4243-baed-33ff1bff0909\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 09 Jun 2022 19:57:06 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/integration/opsgenie/services/0b04ddfb-b00a-4243-baed-33ff1bff0909"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 09 Jun 2022 19:57:06 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Update_a_single_service_object_returns_OK_response-1654804626\",\"opsgenie_api_key\":\"00000000-0000-0000-0000-000000000000\",\"region\":\"us\"},\"type\":\"opsgenie-service\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/integration/opsgenie/services" + }, + "response": { + "body": { + "string": "{\"data\":{\"attributes\":{\"region\":\"us\",\"name\":\"Test-Update_a_single_service_object_returns_OK_response-1654804626\",\"custom_url\":null},\"type\":\"opsgenie-service\",\"id\":\"0b04ddfb-b00a-4243-baed-33ff1bff0909\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 09 Jun 2022 19:57:06 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Update_a_single_service_object_returns_OK_response-1654804626--updated\",\"opsgenie_api_key\":\"00000000-0000-0000-0000-000000000000\",\"region\":\"eu\"},\"id\":\"0b04ddfb-b00a-4243-baed-33ff1bff0909\",\"type\":\"opsgenie-service\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/integration/opsgenie/services/0b04ddfb-b00a-4243-baed-33ff1bff0909" + }, + "response": { + "body": { + "string": "{\"data\":{\"attributes\":{\"region\":\"eu\",\"name\":\"Test-Update_a_single_service_object_returns_OK_response-1654804626--updated\",\"custom_url\":null},\"type\":\"opsgenie-service\",\"id\":\"0b04ddfb-b00a-4243-baed-33ff1bff0909\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 09 Jun 2022 19:57:06 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/integration/opsgenie/services/0b04ddfb-b00a-4243-baed-33ff1bff0909" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 09 Jun 2022 19:57:06 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/organizations/Upload-IdP-metadata-returns-Bad-Request-caused-by-either-malformed-XML-or-invalid-SAML-IdP-metadata-response.json b/tests/scenarios/cassettes/v2/organizations/Upload-IdP-metadata-returns-Bad-Request-caused-by-either-malformed-XML-or-invalid-SAML-IdP-metadata-response.json index cd69b54fd..97b485a6f 100644 --- a/tests/scenarios/cassettes/v2/organizations/Upload-IdP-metadata-returns-Bad-Request-caused-by-either-malformed-XML-or-invalid-SAML-IdP-metadata-response.json +++ b/tests/scenarios/cassettes/v2/organizations/Upload-IdP-metadata-returns-Bad-Request-caused-by-either-malformed-XML-or-invalid-SAML-IdP-metadata-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nContent-Disposition: form-data; name=\"idp_file\"; filename=\"invalid_idp_metadata.xml\"\r\nContent-Type: application/xml\r\n\r\n\ni am > bad xml\n\r\n--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx--\r\n", "encoding": null}, "headers": {"Accept": ["*/*"], "Content-Type": ["multipart/form-data; boundary=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/saml_configurations/idp_metadata"}, "response": {"body": {"string": "{\"errors\": [\"Invalid metadata\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Thu, 12 May 2022 09:52:32 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nContent-Disposition: form-data; name=\"idp_file\"; filename=\"invalid_idp_metadata.xml\"\r\nContent-Type: application/xml\r\n\r\n\ni am > bad xml\n\r\n--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx--\r\n", + "encoding": null + }, + "headers": { + "Accept": [ + "*/*" + ], + "Content-Type": [ + "multipart/form-data; boundary=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/saml_configurations/idp_metadata" + }, + "response": { + "body": { + "string": "{\"errors\": [\"Invalid metadata\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:32 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/organizations/Upload-IdP-metadata-returns-OK-response.json b/tests/scenarios/cassettes/v2/organizations/Upload-IdP-metadata-returns-OK-response.json index 6aac4022f..a52266f2f 100644 --- a/tests/scenarios/cassettes/v2/organizations/Upload-IdP-metadata-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/organizations/Upload-IdP-metadata-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nContent-Disposition: form-data; name=\"idp_file\"; filename=\"valid_idp_metadata.xml\"\r\nContent-Type: application/xml\r\n\r\n\n\n \n \n \n \n MIIC8jCCAlugAwIBAgIJAJHg2V5J31I8MA0GCSqGSIb3DQEBBQUAMFoxCzAJBgNV\n BAYTAlNFMQ0wCwYDVQQHEwRVbWVhMRgwFgYDVQQKEw9VbWVhIFVuaXZlcnNpdHkx\n EDAOBgNVBAsTB0lUIFVuaXQxEDAOBgNVBAMTB1Rlc3QgU1AwHhcNMDkxMDI2MTMz\n MTE1WhcNMTAxMDI2MTMzMTE1WjBaMQswCQYDVQQGEwJTRTENMAsGA1UEBxMEVW1l\n YTEYMBYGA1UEChMPVW1lYSBVbml2ZXJzaXR5MRAwDgYDVQQLEwdJVCBVbml0MRAw\n DgYDVQQDEwdUZXN0IFNQMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkJWP7\n bwOxtH+E15VTaulNzVQ/0cSbM5G7abqeqSNSs0l0veHr6/ROgW96ZeQ57fzVy2MC\n FiQRw2fzBs0n7leEmDJyVVtBTavYlhAVXDNa3stgvh43qCfLx+clUlOvtnsoMiiR\n mo7qf0BoPKTj7c0uLKpDpEbAHQT4OF1HRYVxMwIDAQABo4G/MIG8MB0GA1UdDgQW\n BBQ7RgbMJFDGRBu9o3tDQDuSoBy7JjCBjAYDVR0jBIGEMIGBgBQ7RgbMJFDGRBu9\n o3tDQDuSoBy7JqFepFwwWjELMAkGA1UEBhMCU0UxDTALBgNVBAcTBFVtZWExGDAW\n BgNVBAoTD1VtZWEgVW5pdmVyc2l0eTEQMA4GA1UECxMHSVQgVW5pdDEQMA4GA1UE\n AxMHVGVzdCBTUIIJAJHg2V5J31I8MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEF\n BQADgYEAMuRwwXRnsiyWzmRikpwinnhTmbooKm5TINPE7A7gSQ710RxioQePPhZO\n zkM27NnHTrCe2rBVg0EGz7QTd1JIwLPvgoj4VTi/fSha/tXrYUaqc9AqU1kWI4WN\n +vffBGQ09mo+6CffuFTZYeOhzP/2stAPwCTU4kxEoiy0KpZMANI=\n \n \n \n \n \n \n \n MIIC8jCCAlugAwIBAgIJAJHg2V5J31I8MA0GCSqGSIb3DQEBBQUAMFoxCzAJBgNV\n BAYTAlNFMQ0wCwYDVQQHEwRVbWVhMRgwFgYDVQQKEw9VbWVhIFVuaXZlcnNpdHkx\n EDAOBgNVBAsTB0lUIFVuaXQxEDAOBgNVBAMTB1Rlc3QgU1AwHhcNMDkxMDI2MTMz\n MTE1WhcNMTAxMDI2MTMzMTE1WjBaMQswCQYDVQQGEwJTRTENMAsGA1UEBxMEVW1l\n YTEYMBYGA1UEChMPVW1lYSBVbml2ZXJzaXR5MRAwDgYDVQQLEwdJVCBVbml0MRAw\n DgYDVQQDEwdUZXN0IFNQMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkJWP7\n bwOxtH+E15VTaulNzVQ/0cSbM5G7abqeqSNSs0l0veHr6/ROgW96ZeQ57fzVy2MC\n FiQRw2fzBs0n7leEmDJyVVtBTavYlhAVXDNa3stgvh43qCfLx+clUlOvtnsoMiiR\n mo7qf0BoPKTj7c0uLKpDpEbAHQT4OF1HRYVxMwIDAQABo4G/MIG8MB0GA1UdDgQW\n BBQ7RgbMJFDGRBu9o3tDQDuSoBy7JjCBjAYDVR0jBIGEMIGBgBQ7RgbMJFDGRBu9\n o3tDQDuSoBy7JqFepFwwWjELMAkGA1UEBhMCU0UxDTALBgNVBAcTBFVtZWExGDAW\n BgNVBAoTD1VtZWEgVW5pdmVyc2l0eTEQMA4GA1UECxMHSVQgVW5pdDEQMA4GA1UE\n AxMHVGVzdCBTUIIJAJHg2V5J31I8MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEF\n BQADgYEAMuRwwXRnsiyWzmRikpwinnhTmbooKm5TINPE7A7gSQ710RxioQePPhZO\n zkM27NnHTrCe2rBVg0EGz7QTd1JIwLPvgoj4VTi/fSha/tXrYUaqc9AqU1kWI4WN\n +vffBGQ09mo+6CffuFTZYeOhzP/2stAPwCTU4kxEoiy0KpZMANI=\n \n \n \n \n \n \n \n \n \n \n \n urn:oasis:names:tc:SAML:2.0:nameid-format:transient\n urn:oasis:names:tc:SAML:2.0:nameid-format:persistent\n \n \n \n \n \n \n \n \n \n \n \n MIIC8jCCAlugAwIBAgIJAJHg2V5J31I8MA0GCSqGSIb3DQEBBQUAMFoxCzAJBgNV\n BAYTAlNFMQ0wCwYDVQQHEwRVbWVhMRgwFgYDVQQKEw9VbWVhIFVuaXZlcnNpdHkx\n EDAOBgNVBAsTB0lUIFVuaXQxEDAOBgNVBAMTB1Rlc3QgU1AwHhcNMDkxMDI2MTMz\n MTE1WhcNMTAxMDI2MTMzMTE1WjBaMQswCQYDVQQGEwJTRTENMAsGA1UEBxMEVW1l\n YTEYMBYGA1UEChMPVW1lYSBVbml2ZXJzaXR5MRAwDgYDVQQLEwdJVCBVbml0MRAw\n DgYDVQQDEwdUZXN0IFNQMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkJWP7\n bwOxtH+E15VTaulNzVQ/0cSbM5G7abqeqSNSs0l0veHr6/ROgW96ZeQ57fzVy2MC\n FiQRw2fzBs0n7leEmDJyVVtBTavYlhAVXDNa3stgvh43qCfLx+clUlOvtnsoMiiR\n mo7qf0BoPKTj7c0uLKpDpEbAHQT4OF1HRYVxMwIDAQABo4G/MIG8MB0GA1UdDgQW\n BBQ7RgbMJFDGRBu9o3tDQDuSoBy7JjCBjAYDVR0jBIGEMIGBgBQ7RgbMJFDGRBu9\n o3tDQDuSoBy7JqFepFwwWjELMAkGA1UEBhMCU0UxDTALBgNVBAcTBFVtZWExGDAW\n BgNVBAoTD1VtZWEgVW5pdmVyc2l0eTEQMA4GA1UECxMHSVQgVW5pdDEQMA4GA1UE\n AxMHVGVzdCBTUIIJAJHg2V5J31I8MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEF\n BQADgYEAMuRwwXRnsiyWzmRikpwinnhTmbooKm5TINPE7A7gSQ710RxioQePPhZO\n zkM27NnHTrCe2rBVg0EGz7QTd1JIwLPvgoj4VTi/fSha/tXrYUaqc9AqU1kWI4WN\n +vffBGQ09mo+6CffuFTZYeOhzP/2stAPwCTU4kxEoiy0KpZMANI=\n \n \n \n \n \n \n \n MIIC8jCCAlugAwIBAgIJAJHg2V5J31I8MA0GCSqGSIb3DQEBBQUAMFoxCzAJBgNV\n BAYTAlNFMQ0wCwYDVQQHEwRVbWVhMRgwFgYDVQQKEw9VbWVhIFVuaXZlcnNpdHkx\n EDAOBgNVBAsTB0lUIFVuaXQxEDAOBgNVBAMTB1Rlc3QgU1AwHhcNMDkxMDI2MTMz\n MTE1WhcNMTAxMDI2MTMzMTE1WjBaMQswCQYDVQQGEwJTRTENMAsGA1UEBxMEVW1l\n YTEYMBYGA1UEChMPVW1lYSBVbml2ZXJzaXR5MRAwDgYDVQQLEwdJVCBVbml0MRAw\n DgYDVQQDEwdUZXN0IFNQMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkJWP7\n bwOxtH+E15VTaulNzVQ/0cSbM5G7abqeqSNSs0l0veHr6/ROgW96ZeQ57fzVy2MC\n FiQRw2fzBs0n7leEmDJyVVtBTavYlhAVXDNa3stgvh43qCfLx+clUlOvtnsoMiiR\n mo7qf0BoPKTj7c0uLKpDpEbAHQT4OF1HRYVxMwIDAQABo4G/MIG8MB0GA1UdDgQW\n BBQ7RgbMJFDGRBu9o3tDQDuSoBy7JjCBjAYDVR0jBIGEMIGBgBQ7RgbMJFDGRBu9\n o3tDQDuSoBy7JqFepFwwWjELMAkGA1UEBhMCU0UxDTALBgNVBAcTBFVtZWExGDAW\n BgNVBAoTD1VtZWEgVW5pdmVyc2l0eTEQMA4GA1UECxMHSVQgVW5pdDEQMA4GA1UE\n AxMHVGVzdCBTUIIJAJHg2V5J31I8MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEF\n BQADgYEAMuRwwXRnsiyWzmRikpwinnhTmbooKm5TINPE7A7gSQ710RxioQePPhZO\n zkM27NnHTrCe2rBVg0EGz7QTd1JIwLPvgoj4VTi/fSha/tXrYUaqc9AqU1kWI4WN\n +vffBGQ09mo+6CffuFTZYeOhzP/2stAPwCTU4kxEoiy0KpZMANI=\n \n \n \n \n \n \n \n \n \n \n MIIC8jCCAlugAwIBAgIJAJHg2V5J31I8MA0GCSqGSIb3DQEBBQUAMFoxCzAJBgNV\n BAYTAlNFMQ0wCwYDVQQHEwRVbWVhMRgwFgYDVQQKEw9VbWVhIFVuaXZlcnNpdHkx\n EDAOBgNVBAsTB0lUIFVuaXQxEDAOBgNVBAMTB1Rlc3QgU1AwHhcNMDkxMDI2MTMz\n MTE1WhcNMTAxMDI2MTMzMTE1WjBaMQswCQYDVQQGEwJTRTENMAsGA1UEBxMEVW1l\n YTEYMBYGA1UEChMPVW1lYSBVbml2ZXJzaXR5MRAwDgYDVQQLEwdJVCBVbml0MRAw\n DgYDVQQDEwdUZXN0IFNQMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkJWP7\n bwOxtH+E15VTaulNzVQ/0cSbM5G7abqeqSNSs0l0veHr6/ROgW96ZeQ57fzVy2MC\n FiQRw2fzBs0n7leEmDJyVVtBTavYlhAVXDNa3stgvh43qCfLx+clUlOvtnsoMiiR\n mo7qf0BoPKTj7c0uLKpDpEbAHQT4OF1HRYVxMwIDAQABo4G/MIG8MB0GA1UdDgQW\n BBQ7RgbMJFDGRBu9o3tDQDuSoBy7JjCBjAYDVR0jBIGEMIGBgBQ7RgbMJFDGRBu9\n o3tDQDuSoBy7JqFepFwwWjELMAkGA1UEBhMCU0UxDTALBgNVBAcTBFVtZWExGDAW\n BgNVBAoTD1VtZWEgVW5pdmVyc2l0eTEQMA4GA1UECxMHSVQgVW5pdDEQMA4GA1UE\n AxMHVGVzdCBTUIIJAJHg2V5J31I8MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEF\n BQADgYEAMuRwwXRnsiyWzmRikpwinnhTmbooKm5TINPE7A7gSQ710RxioQePPhZO\n zkM27NnHTrCe2rBVg0EGz7QTd1JIwLPvgoj4VTi/fSha/tXrYUaqc9AqU1kWI4WN\n +vffBGQ09mo+6CffuFTZYeOhzP/2stAPwCTU4kxEoiy0KpZMANI=\n \n \n \n \n \n \n \n MIIC8jCCAlugAwIBAgIJAJHg2V5J31I8MA0GCSqGSIb3DQEBBQUAMFoxCzAJBgNV\n BAYTAlNFMQ0wCwYDVQQHEwRVbWVhMRgwFgYDVQQKEw9VbWVhIFVuaXZlcnNpdHkx\n EDAOBgNVBAsTB0lUIFVuaXQxEDAOBgNVBAMTB1Rlc3QgU1AwHhcNMDkxMDI2MTMz\n MTE1WhcNMTAxMDI2MTMzMTE1WjBaMQswCQYDVQQGEwJTRTENMAsGA1UEBxMEVW1l\n YTEYMBYGA1UEChMPVW1lYSBVbml2ZXJzaXR5MRAwDgYDVQQLEwdJVCBVbml0MRAw\n DgYDVQQDEwdUZXN0IFNQMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkJWP7\n bwOxtH+E15VTaulNzVQ/0cSbM5G7abqeqSNSs0l0veHr6/ROgW96ZeQ57fzVy2MC\n FiQRw2fzBs0n7leEmDJyVVtBTavYlhAVXDNa3stgvh43qCfLx+clUlOvtnsoMiiR\n mo7qf0BoPKTj7c0uLKpDpEbAHQT4OF1HRYVxMwIDAQABo4G/MIG8MB0GA1UdDgQW\n BBQ7RgbMJFDGRBu9o3tDQDuSoBy7JjCBjAYDVR0jBIGEMIGBgBQ7RgbMJFDGRBu9\n o3tDQDuSoBy7JqFepFwwWjELMAkGA1UEBhMCU0UxDTALBgNVBAcTBFVtZWExGDAW\n BgNVBAoTD1VtZWEgVW5pdmVyc2l0eTEQMA4GA1UECxMHSVQgVW5pdDEQMA4GA1UE\n AxMHVGVzdCBTUIIJAJHg2V5J31I8MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEF\n BQADgYEAMuRwwXRnsiyWzmRikpwinnhTmbooKm5TINPE7A7gSQ710RxioQePPhZO\n zkM27NnHTrCe2rBVg0EGz7QTd1JIwLPvgoj4VTi/fSha/tXrYUaqc9AqU1kWI4WN\n +vffBGQ09mo+6CffuFTZYeOhzP/2stAPwCTU4kxEoiy0KpZMANI=\n \n \n \n \n \n urn:oasis:names:tc:SAML:2.0:nameid-format:transient\n urn:oasis:names:tc:SAML:2.0:nameid-format:persistent\n \n \n Rolands Identiteter\n Rolands Identiteter\n http://www.example.com\n \n \n Roland\n Hedberg\n technical@example.com\n \n \n Support\n support@example.com\n \n\n\r\n--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx--\r\n", "encoding": null}, "headers": {"Accept": ["*/*"], "Content-Type": ["multipart/form-data; boundary=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/saml_configurations/idp_metadata"}, "response": {"body": {"string": "{\"data\":{\"type\":\"saml_configurations\",\"id\":\"86ce4823-31da-445b-8cb1-3f535c8c3686\",\"attributes\":{\"entity_id\":\"https://app.datadoghq.com/account/saml/metadata.xml\",\"assertion_consumer_service\":[\"https://frog.datadoghq.com/account/saml/assertion\"],\"created_at\":\"2022-03-21T13:04:08.689835+00:00\",\"idp_initiated\":false,\"jit_domains\":[],\"sso_url\":null,\"modified_at\":\"2022-04-11T13:21:55.620272+00:00\"}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:33 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nContent-Disposition: form-data; name=\"idp_file\"; filename=\"valid_idp_metadata.xml\"\r\nContent-Type: application/xml\r\n\r\n\n\n \n \n \n \n MIIC8jCCAlugAwIBAgIJAJHg2V5J31I8MA0GCSqGSIb3DQEBBQUAMFoxCzAJBgNV\n BAYTAlNFMQ0wCwYDVQQHEwRVbWVhMRgwFgYDVQQKEw9VbWVhIFVuaXZlcnNpdHkx\n EDAOBgNVBAsTB0lUIFVuaXQxEDAOBgNVBAMTB1Rlc3QgU1AwHhcNMDkxMDI2MTMz\n MTE1WhcNMTAxMDI2MTMzMTE1WjBaMQswCQYDVQQGEwJTRTENMAsGA1UEBxMEVW1l\n YTEYMBYGA1UEChMPVW1lYSBVbml2ZXJzaXR5MRAwDgYDVQQLEwdJVCBVbml0MRAw\n DgYDVQQDEwdUZXN0IFNQMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkJWP7\n bwOxtH+E15VTaulNzVQ/0cSbM5G7abqeqSNSs0l0veHr6/ROgW96ZeQ57fzVy2MC\n FiQRw2fzBs0n7leEmDJyVVtBTavYlhAVXDNa3stgvh43qCfLx+clUlOvtnsoMiiR\n mo7qf0BoPKTj7c0uLKpDpEbAHQT4OF1HRYVxMwIDAQABo4G/MIG8MB0GA1UdDgQW\n BBQ7RgbMJFDGRBu9o3tDQDuSoBy7JjCBjAYDVR0jBIGEMIGBgBQ7RgbMJFDGRBu9\n o3tDQDuSoBy7JqFepFwwWjELMAkGA1UEBhMCU0UxDTALBgNVBAcTBFVtZWExGDAW\n BgNVBAoTD1VtZWEgVW5pdmVyc2l0eTEQMA4GA1UECxMHSVQgVW5pdDEQMA4GA1UE\n AxMHVGVzdCBTUIIJAJHg2V5J31I8MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEF\n BQADgYEAMuRwwXRnsiyWzmRikpwinnhTmbooKm5TINPE7A7gSQ710RxioQePPhZO\n zkM27NnHTrCe2rBVg0EGz7QTd1JIwLPvgoj4VTi/fSha/tXrYUaqc9AqU1kWI4WN\n +vffBGQ09mo+6CffuFTZYeOhzP/2stAPwCTU4kxEoiy0KpZMANI=\n \n \n \n \n \n \n \n MIIC8jCCAlugAwIBAgIJAJHg2V5J31I8MA0GCSqGSIb3DQEBBQUAMFoxCzAJBgNV\n BAYTAlNFMQ0wCwYDVQQHEwRVbWVhMRgwFgYDVQQKEw9VbWVhIFVuaXZlcnNpdHkx\n EDAOBgNVBAsTB0lUIFVuaXQxEDAOBgNVBAMTB1Rlc3QgU1AwHhcNMDkxMDI2MTMz\n MTE1WhcNMTAxMDI2MTMzMTE1WjBaMQswCQYDVQQGEwJTRTENMAsGA1UEBxMEVW1l\n YTEYMBYGA1UEChMPVW1lYSBVbml2ZXJzaXR5MRAwDgYDVQQLEwdJVCBVbml0MRAw\n DgYDVQQDEwdUZXN0IFNQMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkJWP7\n bwOxtH+E15VTaulNzVQ/0cSbM5G7abqeqSNSs0l0veHr6/ROgW96ZeQ57fzVy2MC\n FiQRw2fzBs0n7leEmDJyVVtBTavYlhAVXDNa3stgvh43qCfLx+clUlOvtnsoMiiR\n mo7qf0BoPKTj7c0uLKpDpEbAHQT4OF1HRYVxMwIDAQABo4G/MIG8MB0GA1UdDgQW\n BBQ7RgbMJFDGRBu9o3tDQDuSoBy7JjCBjAYDVR0jBIGEMIGBgBQ7RgbMJFDGRBu9\n o3tDQDuSoBy7JqFepFwwWjELMAkGA1UEBhMCU0UxDTALBgNVBAcTBFVtZWExGDAW\n BgNVBAoTD1VtZWEgVW5pdmVyc2l0eTEQMA4GA1UECxMHSVQgVW5pdDEQMA4GA1UE\n AxMHVGVzdCBTUIIJAJHg2V5J31I8MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEF\n BQADgYEAMuRwwXRnsiyWzmRikpwinnhTmbooKm5TINPE7A7gSQ710RxioQePPhZO\n zkM27NnHTrCe2rBVg0EGz7QTd1JIwLPvgoj4VTi/fSha/tXrYUaqc9AqU1kWI4WN\n +vffBGQ09mo+6CffuFTZYeOhzP/2stAPwCTU4kxEoiy0KpZMANI=\n \n \n \n \n \n \n \n \n \n \n \n urn:oasis:names:tc:SAML:2.0:nameid-format:transient\n urn:oasis:names:tc:SAML:2.0:nameid-format:persistent\n \n \n \n \n \n \n \n \n \n \n \n MIIC8jCCAlugAwIBAgIJAJHg2V5J31I8MA0GCSqGSIb3DQEBBQUAMFoxCzAJBgNV\n BAYTAlNFMQ0wCwYDVQQHEwRVbWVhMRgwFgYDVQQKEw9VbWVhIFVuaXZlcnNpdHkx\n EDAOBgNVBAsTB0lUIFVuaXQxEDAOBgNVBAMTB1Rlc3QgU1AwHhcNMDkxMDI2MTMz\n MTE1WhcNMTAxMDI2MTMzMTE1WjBaMQswCQYDVQQGEwJTRTENMAsGA1UEBxMEVW1l\n YTEYMBYGA1UEChMPVW1lYSBVbml2ZXJzaXR5MRAwDgYDVQQLEwdJVCBVbml0MRAw\n DgYDVQQDEwdUZXN0IFNQMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkJWP7\n bwOxtH+E15VTaulNzVQ/0cSbM5G7abqeqSNSs0l0veHr6/ROgW96ZeQ57fzVy2MC\n FiQRw2fzBs0n7leEmDJyVVtBTavYlhAVXDNa3stgvh43qCfLx+clUlOvtnsoMiiR\n mo7qf0BoPKTj7c0uLKpDpEbAHQT4OF1HRYVxMwIDAQABo4G/MIG8MB0GA1UdDgQW\n BBQ7RgbMJFDGRBu9o3tDQDuSoBy7JjCBjAYDVR0jBIGEMIGBgBQ7RgbMJFDGRBu9\n o3tDQDuSoBy7JqFepFwwWjELMAkGA1UEBhMCU0UxDTALBgNVBAcTBFVtZWExGDAW\n BgNVBAoTD1VtZWEgVW5pdmVyc2l0eTEQMA4GA1UECxMHSVQgVW5pdDEQMA4GA1UE\n AxMHVGVzdCBTUIIJAJHg2V5J31I8MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEF\n BQADgYEAMuRwwXRnsiyWzmRikpwinnhTmbooKm5TINPE7A7gSQ710RxioQePPhZO\n zkM27NnHTrCe2rBVg0EGz7QTd1JIwLPvgoj4VTi/fSha/tXrYUaqc9AqU1kWI4WN\n +vffBGQ09mo+6CffuFTZYeOhzP/2stAPwCTU4kxEoiy0KpZMANI=\n \n \n \n \n \n \n \n MIIC8jCCAlugAwIBAgIJAJHg2V5J31I8MA0GCSqGSIb3DQEBBQUAMFoxCzAJBgNV\n BAYTAlNFMQ0wCwYDVQQHEwRVbWVhMRgwFgYDVQQKEw9VbWVhIFVuaXZlcnNpdHkx\n EDAOBgNVBAsTB0lUIFVuaXQxEDAOBgNVBAMTB1Rlc3QgU1AwHhcNMDkxMDI2MTMz\n MTE1WhcNMTAxMDI2MTMzMTE1WjBaMQswCQYDVQQGEwJTRTENMAsGA1UEBxMEVW1l\n YTEYMBYGA1UEChMPVW1lYSBVbml2ZXJzaXR5MRAwDgYDVQQLEwdJVCBVbml0MRAw\n DgYDVQQDEwdUZXN0IFNQMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkJWP7\n bwOxtH+E15VTaulNzVQ/0cSbM5G7abqeqSNSs0l0veHr6/ROgW96ZeQ57fzVy2MC\n FiQRw2fzBs0n7leEmDJyVVtBTavYlhAVXDNa3stgvh43qCfLx+clUlOvtnsoMiiR\n mo7qf0BoPKTj7c0uLKpDpEbAHQT4OF1HRYVxMwIDAQABo4G/MIG8MB0GA1UdDgQW\n BBQ7RgbMJFDGRBu9o3tDQDuSoBy7JjCBjAYDVR0jBIGEMIGBgBQ7RgbMJFDGRBu9\n o3tDQDuSoBy7JqFepFwwWjELMAkGA1UEBhMCU0UxDTALBgNVBAcTBFVtZWExGDAW\n BgNVBAoTD1VtZWEgVW5pdmVyc2l0eTEQMA4GA1UECxMHSVQgVW5pdDEQMA4GA1UE\n AxMHVGVzdCBTUIIJAJHg2V5J31I8MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEF\n BQADgYEAMuRwwXRnsiyWzmRikpwinnhTmbooKm5TINPE7A7gSQ710RxioQePPhZO\n zkM27NnHTrCe2rBVg0EGz7QTd1JIwLPvgoj4VTi/fSha/tXrYUaqc9AqU1kWI4WN\n +vffBGQ09mo+6CffuFTZYeOhzP/2stAPwCTU4kxEoiy0KpZMANI=\n \n \n \n \n \n \n \n \n \n \n MIIC8jCCAlugAwIBAgIJAJHg2V5J31I8MA0GCSqGSIb3DQEBBQUAMFoxCzAJBgNV\n BAYTAlNFMQ0wCwYDVQQHEwRVbWVhMRgwFgYDVQQKEw9VbWVhIFVuaXZlcnNpdHkx\n EDAOBgNVBAsTB0lUIFVuaXQxEDAOBgNVBAMTB1Rlc3QgU1AwHhcNMDkxMDI2MTMz\n MTE1WhcNMTAxMDI2MTMzMTE1WjBaMQswCQYDVQQGEwJTRTENMAsGA1UEBxMEVW1l\n YTEYMBYGA1UEChMPVW1lYSBVbml2ZXJzaXR5MRAwDgYDVQQLEwdJVCBVbml0MRAw\n DgYDVQQDEwdUZXN0IFNQMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkJWP7\n bwOxtH+E15VTaulNzVQ/0cSbM5G7abqeqSNSs0l0veHr6/ROgW96ZeQ57fzVy2MC\n FiQRw2fzBs0n7leEmDJyVVtBTavYlhAVXDNa3stgvh43qCfLx+clUlOvtnsoMiiR\n mo7qf0BoPKTj7c0uLKpDpEbAHQT4OF1HRYVxMwIDAQABo4G/MIG8MB0GA1UdDgQW\n BBQ7RgbMJFDGRBu9o3tDQDuSoBy7JjCBjAYDVR0jBIGEMIGBgBQ7RgbMJFDGRBu9\n o3tDQDuSoBy7JqFepFwwWjELMAkGA1UEBhMCU0UxDTALBgNVBAcTBFVtZWExGDAW\n BgNVBAoTD1VtZWEgVW5pdmVyc2l0eTEQMA4GA1UECxMHSVQgVW5pdDEQMA4GA1UE\n AxMHVGVzdCBTUIIJAJHg2V5J31I8MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEF\n BQADgYEAMuRwwXRnsiyWzmRikpwinnhTmbooKm5TINPE7A7gSQ710RxioQePPhZO\n zkM27NnHTrCe2rBVg0EGz7QTd1JIwLPvgoj4VTi/fSha/tXrYUaqc9AqU1kWI4WN\n +vffBGQ09mo+6CffuFTZYeOhzP/2stAPwCTU4kxEoiy0KpZMANI=\n \n \n \n \n \n \n \n MIIC8jCCAlugAwIBAgIJAJHg2V5J31I8MA0GCSqGSIb3DQEBBQUAMFoxCzAJBgNV\n BAYTAlNFMQ0wCwYDVQQHEwRVbWVhMRgwFgYDVQQKEw9VbWVhIFVuaXZlcnNpdHkx\n EDAOBgNVBAsTB0lUIFVuaXQxEDAOBgNVBAMTB1Rlc3QgU1AwHhcNMDkxMDI2MTMz\n MTE1WhcNMTAxMDI2MTMzMTE1WjBaMQswCQYDVQQGEwJTRTENMAsGA1UEBxMEVW1l\n YTEYMBYGA1UEChMPVW1lYSBVbml2ZXJzaXR5MRAwDgYDVQQLEwdJVCBVbml0MRAw\n DgYDVQQDEwdUZXN0IFNQMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkJWP7\n bwOxtH+E15VTaulNzVQ/0cSbM5G7abqeqSNSs0l0veHr6/ROgW96ZeQ57fzVy2MC\n FiQRw2fzBs0n7leEmDJyVVtBTavYlhAVXDNa3stgvh43qCfLx+clUlOvtnsoMiiR\n mo7qf0BoPKTj7c0uLKpDpEbAHQT4OF1HRYVxMwIDAQABo4G/MIG8MB0GA1UdDgQW\n BBQ7RgbMJFDGRBu9o3tDQDuSoBy7JjCBjAYDVR0jBIGEMIGBgBQ7RgbMJFDGRBu9\n o3tDQDuSoBy7JqFepFwwWjELMAkGA1UEBhMCU0UxDTALBgNVBAcTBFVtZWExGDAW\n BgNVBAoTD1VtZWEgVW5pdmVyc2l0eTEQMA4GA1UECxMHSVQgVW5pdDEQMA4GA1UE\n AxMHVGVzdCBTUIIJAJHg2V5J31I8MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEF\n BQADgYEAMuRwwXRnsiyWzmRikpwinnhTmbooKm5TINPE7A7gSQ710RxioQePPhZO\n zkM27NnHTrCe2rBVg0EGz7QTd1JIwLPvgoj4VTi/fSha/tXrYUaqc9AqU1kWI4WN\n +vffBGQ09mo+6CffuFTZYeOhzP/2stAPwCTU4kxEoiy0KpZMANI=\n \n \n \n \n \n urn:oasis:names:tc:SAML:2.0:nameid-format:transient\n urn:oasis:names:tc:SAML:2.0:nameid-format:persistent\n \n \n Rolands Identiteter\n Rolands Identiteter\n http://www.example.com\n \n \n Roland\n Hedberg\n technical@example.com\n \n \n Support\n support@example.com\n \n\n\r\n--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx--\r\n", + "encoding": null + }, + "headers": { + "Accept": [ + "*/*" + ], + "Content-Type": [ + "multipart/form-data; boundary=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/saml_configurations/idp_metadata" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"saml_configurations\",\"id\":\"86ce4823-31da-445b-8cb1-3f535c8c3686\",\"attributes\":{\"entity_id\":\"https://app.datadoghq.com/account/saml/metadata.xml\",\"assertion_consumer_service\":[\"https://frog.datadoghq.com/account/saml/assertion\"],\"created_at\":\"2022-03-21T13:04:08.689835+00:00\",\"idp_initiated\":false,\"jit_domains\":[],\"sso_url\":null,\"modified_at\":\"2022-04-11T13:21:55.620272+00:00\"}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:33 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/powerpack/Create-a-new-powerpack-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/powerpack/Create-a-new-powerpack-returns-Bad-Request-response.json index 41f50691e..fad30b332 100644 --- a/tests/scenarios/cassettes/v2/powerpack/Create-a-new-powerpack-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/powerpack/Create-a-new-powerpack-returns-Bad-Request-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"description\":\"Powerpack for ABC\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"type\":\"group1\",\"widgets\":[]}},\"name\":\"Sample Powerpack\",\"tags\":[\"tag:foo1\"],\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"test\"}]},\"type\":\"powerpack\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/powerpacks"}, "response": {"body": {"string": "{\"errors\":[\"Invalid group widget for powerpack. Error: 'group1' is not one of ['group']\\n\\nFailed validating 'enum' in schema['properties']['type']:\\n {'enum': ['group']}\\n\\nOn instance['type']:\\n 'group1'.\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Thu, 05 Oct 2023 15:56:23 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"Powerpack for ABC\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"type\":\"group1\",\"widgets\":[]}},\"name\":\"Sample Powerpack\",\"tags\":[\"tag:foo1\"],\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"test\"}]},\"type\":\"powerpack\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/powerpacks" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Invalid group widget for powerpack. Error: 'group1' is not one of ['group']\\n\\nFailed validating 'enum' in schema['properties']['type']:\\n {'enum': ['group']}\\n\\nOn instance['type']:\\n 'group1'.\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Thu, 05 Oct 2023 15:56:23 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/powerpack/Create-a-new-powerpack-returns-OK-response.json b/tests/scenarios/cassettes/v2/powerpack/Create-a-new-powerpack-returns-OK-response.json index afcad2e78..96550c991 100644 --- a/tests/scenarios/cassettes/v2/powerpack/Create-a-new-powerpack-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/powerpack/Create-a-new-powerpack-returns-OK-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"}}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"name\":\"Test-Create_a_new_powerpack_returns_OK_response-1698172330\",\"tags\":[\"tag:sample\"],\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}]},\"type\":\"powerpack\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/powerpacks"}, "response": {"body": {"string": "{\"data\":{\"type\":\"powerpack\",\"id\":\"a5892a4e-729b-11ee-8449-da7ad0900002\",\"attributes\":{\"name\":\"Test-Create_a_new_powerpack_returns_OK_response-1698172330\",\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"},\"id\":2803120731030485}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}],\"tags\":[\"tag:sample\"]},\"relationships\":{\"author\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"name\":\"CI Account\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 24 Oct 2023 18:32:10 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/powerpacks/a5892a4e-729b-11ee-8449-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Tue, 24 Oct 2023 18:32:10 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"}}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"name\":\"Test-Create_a_new_powerpack_returns_OK_response-1698172330\",\"tags\":[\"tag:sample\"],\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}]},\"type\":\"powerpack\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/powerpacks" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"powerpack\",\"id\":\"a5892a4e-729b-11ee-8449-da7ad0900002\",\"attributes\":{\"name\":\"Test-Create_a_new_powerpack_returns_OK_response-1698172330\",\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"},\"id\":2803120731030485}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}],\"tags\":[\"tag:sample\"]},\"relationships\":{\"author\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"name\":\"CI Account\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 24 Oct 2023 18:32:10 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/powerpacks/a5892a4e-729b-11ee-8449-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Tue, 24 Oct 2023 18:32:10 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/powerpack/Create-a-new-powerpack-with-missing-group-widget-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/powerpack/Create-a-new-powerpack-with-missing-group-widget-returns-Bad-Request-response.json index 977336adf..46b0f122f 100644 --- a/tests/scenarios/cassettes/v2/powerpack/Create-a-new-powerpack-with-missing-group-widget-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/powerpack/Create-a-new-powerpack-with-missing-group-widget-returns-Bad-Request-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"description\":\"Sample powerpack\",\"name\":\"Sample Powerpack\",\"tags\":[\"tag:sample\"],\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}]},\"type\":\"powerpack\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/powerpacks"}, "response": {"body": {"string": "{\"errors\":[\"API input validation failed: {'group_widget': ['Missing data for required field.']}\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Wed, 04 Oct 2023 19:18:49 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"Sample powerpack\",\"name\":\"Sample Powerpack\",\"tags\":[\"tag:sample\"],\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}]},\"type\":\"powerpack\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/powerpacks" + }, + "response": { + "body": { + "string": "{\"errors\":[\"API input validation failed: {'group_widget': ['Missing data for required field.']}\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Wed, 04 Oct 2023 19:18:49 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/powerpack/Delete-a-powerpack-returns-OK-response.json b/tests/scenarios/cassettes/v2/powerpack/Delete-a-powerpack-returns-OK-response.json index 031e003cd..e5d2fda4c 100644 --- a/tests/scenarios/cassettes/v2/powerpack/Delete-a-powerpack-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/powerpack/Delete-a-powerpack-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"}}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"name\":\"Test-Delete_a_powerpack_returns_OK_response-1698172332\",\"tags\":[\"tag:sample\"],\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}]},\"type\":\"powerpack\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/powerpacks"}, "response": {"body": {"string": "{\"data\":{\"type\":\"powerpack\",\"id\":\"a5f45260-729b-11ee-a369-da7ad0900002\",\"attributes\":{\"name\":\"Test-Delete_a_powerpack_returns_OK_response-1698172332\",\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"},\"id\":6498721107839400}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}],\"tags\":[\"tag:sample\"]},\"relationships\":{\"author\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"name\":\"CI Account\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 24 Oct 2023 18:32:12 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/powerpacks/a5f45260-729b-11ee-a369-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Tue, 24 Oct 2023 18:32:12 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/powerpacks/a5f45260-729b-11ee-a369-da7ad0900002"}, "response": {"body": {"string": "{\"errors\":[\"Powerpack with ID a5f45260-729b-11ee-a369-da7ad0900002 not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Tue, 24 Oct 2023 18:32:12 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"}}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"name\":\"Test-Delete_a_powerpack_returns_OK_response-1698172332\",\"tags\":[\"tag:sample\"],\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}]},\"type\":\"powerpack\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/powerpacks" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"powerpack\",\"id\":\"a5f45260-729b-11ee-a369-da7ad0900002\",\"attributes\":{\"name\":\"Test-Delete_a_powerpack_returns_OK_response-1698172332\",\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"},\"id\":6498721107839400}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}],\"tags\":[\"tag:sample\"]},\"relationships\":{\"author\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"name\":\"CI Account\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 24 Oct 2023 18:32:12 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/powerpacks/a5f45260-729b-11ee-a369-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Tue, 24 Oct 2023 18:32:12 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/powerpacks/a5f45260-729b-11ee-a369-da7ad0900002" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Powerpack with ID a5f45260-729b-11ee-a369-da7ad0900002 not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Tue, 24 Oct 2023 18:32:12 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/powerpack/Delete-a-powerpack-returns-Powerpack-Not-Found-response.json b/tests/scenarios/cassettes/v2/powerpack/Delete-a-powerpack-returns-Powerpack-Not-Found-response.json index bff412dae..72fd5a621 100644 --- a/tests/scenarios/cassettes/v2/powerpack/Delete-a-powerpack-returns-Powerpack-Not-Found-response.json +++ b/tests/scenarios/cassettes/v2/powerpack/Delete-a-powerpack-returns-Powerpack-Not-Found-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/powerpacks/made-up-id"}, "response": {"body": {"string": "{\"errors\":[\"Powerpack has invalid UUID made-up-id not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Tue, 19 Sep 2023 20:34:20 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/powerpacks/made-up-id" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Powerpack has invalid UUID made-up-id not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Tue, 19 Sep 2023 20:34:20 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/powerpack/Get-a-Powerpack-returns-OK-response.json b/tests/scenarios/cassettes/v2/powerpack/Get-a-Powerpack-returns-OK-response.json index 323e8989f..fd3482abd 100644 --- a/tests/scenarios/cassettes/v2/powerpack/Get-a-Powerpack-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/powerpack/Get-a-Powerpack-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"}}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"name\":\"Test-Get_a_Powerpack_returns_OK_response-1698172332\",\"tags\":[\"tag:sample\"],\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}]},\"type\":\"powerpack\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/powerpacks"}, "response": {"body": {"string": "{\"data\":{\"type\":\"powerpack\",\"id\":\"a62886de-729b-11ee-b0c9-da7ad0900002\",\"attributes\":{\"name\":\"Test-Get_a_Powerpack_returns_OK_response-1698172332\",\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"},\"id\":1686767504601483}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}],\"tags\":[\"tag:sample\"]},\"relationships\":{\"author\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"name\":\"CI Account\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 24 Oct 2023 18:32:12 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/powerpacks/a62886de-729b-11ee-b0c9-da7ad0900002"}, "response": {"body": {"string": "{\"data\":{\"type\":\"powerpack\",\"id\":\"a62886de-729b-11ee-b0c9-da7ad0900002\",\"attributes\":{\"name\":\"Test-Get_a_Powerpack_returns_OK_response-1698172332\",\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"},\"id\":1686767504601483}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}],\"tags\":[\"tag:sample\"]},\"relationships\":{\"author\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"name\":\"CI Account\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 24 Oct 2023 18:32:12 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/powerpacks/a62886de-729b-11ee-b0c9-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Tue, 24 Oct 2023 18:32:12 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"}}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"name\":\"Test-Get_a_Powerpack_returns_OK_response-1698172332\",\"tags\":[\"tag:sample\"],\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}]},\"type\":\"powerpack\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/powerpacks" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"powerpack\",\"id\":\"a62886de-729b-11ee-b0c9-da7ad0900002\",\"attributes\":{\"name\":\"Test-Get_a_Powerpack_returns_OK_response-1698172332\",\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"},\"id\":1686767504601483}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}],\"tags\":[\"tag:sample\"]},\"relationships\":{\"author\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"name\":\"CI Account\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 24 Oct 2023 18:32:12 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/powerpacks/a62886de-729b-11ee-b0c9-da7ad0900002" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"powerpack\",\"id\":\"a62886de-729b-11ee-b0c9-da7ad0900002\",\"attributes\":{\"name\":\"Test-Get_a_Powerpack_returns_OK_response-1698172332\",\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"},\"id\":1686767504601483}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}],\"tags\":[\"tag:sample\"]},\"relationships\":{\"author\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"name\":\"CI Account\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 24 Oct 2023 18:32:12 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/powerpacks/a62886de-729b-11ee-b0c9-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Tue, 24 Oct 2023 18:32:12 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/powerpack/Get-a-Powerpack-returns-Powerpack-Not-Found-response.json b/tests/scenarios/cassettes/v2/powerpack/Get-a-Powerpack-returns-Powerpack-Not-Found-response.json index 029a6b829..b159edd18 100644 --- a/tests/scenarios/cassettes/v2/powerpack/Get-a-Powerpack-returns-Powerpack-Not-Found-response.json +++ b/tests/scenarios/cassettes/v2/powerpack/Get-a-Powerpack-returns-Powerpack-Not-Found-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/powerpacks/made-up-id"}, "response": {"body": {"string": "{\"errors\":[\"Powerpack has invalid UUID made-up-id not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Wed, 11 Oct 2023 15:48:56 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/powerpacks/made-up-id" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Powerpack has invalid UUID made-up-id not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Wed, 11 Oct 2023 15:48:56 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/powerpack/Get-all-powerpacks-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v2/powerpack/Get-all-powerpacks-returns-OK-response-with-pagination.json index 38496f56d..c2da7a6f8 100644 --- a/tests/scenarios/cassettes/v2/powerpack/Get-all-powerpacks-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v2/powerpack/Get-all-powerpacks-returns-OK-response-with-pagination.json @@ -1 +1,61 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/powerpacks?page%5Blimit%5D=2"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"powerpack\",\"id\":\"d1938042-686b-11ee-9d56-da7ad0900002\",\"attributes\":{\"name\":\"Test-Get_all_powerpacks_returns_OK_response_with_pagination-1697052278\",\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"},\"id\":4216761608837044}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0}},\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}],\"tags\":[\"tag:sample\"]},\"relationships\":{\"author\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}},{\"type\":\"powerpack\",\"id\":\"cabb74fa-686b-11ee-8326-da7ad0900002\",\"attributes\":{\"name\":\"another powerpack\",\"description\":\"\",\"group_widget\":{\"layout\":{\"x\":0,\"y\":0,\"width\":4,\"height\":3},\"definition\":{\"title\":\"another powerpack\",\"type\":\"group\",\"layout_type\":\"ordered\",\"widgets\":[{\"layout\":{\"x\":0,\"y\":0,\"width\":2,\"height\":2},\"definition\":{\"type\":\"note\",\"content\":\"its just a ***test***\",\"background_color\":\"white\",\"font_size\":\"36\",\"text_align\":\"center\",\"vertical_align\":\"center\",\"show_tick\":false,\"tick_pos\":\"50%\",\"tick_edge\":\"left\",\"has_padding\":true},\"id\":2265811261450092}]}},\"template_variables\":[],\"tags\":[\"tag:display\"]},\"relationships\":{\"author\":{\"data\":{\"type\":\"users\",\"id\":\"d5bf7f0a-19b0-11ed-b0df-da7ad0900002\"}}}}],\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"email\":\"frog@datadoghq.com\"}},{\"type\":\"users\",\"id\":\"d5bf7f0a-19b0-11ed-b0df-da7ad0900002\",\"attributes\":{\"name\":\"Kevin Zou\",\"email\":\"kevin.zou@datadoghq.com\"}}],\"meta\":{\"pagination\":{\"offset\":0,\"first_offset\":0,\"prev_offset\":0,\"next_offset\":2,\"last_offset\":null,\"limit\":2,\"type\":\"offset_limit\"}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/powerpacks?page%5Blimit%5D=2\",\"last\":null,\"next\":\"https://api.datadoghq.com/api/v2/powerpacks?page[offset]=2&page[limit]=2\",\"prev\":null,\"first\":\"https://api.datadoghq.com/api/v2/powerpacks?page[offset]=0&page[limit]=2\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 11 Oct 2023 19:24:38 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/powerpacks?page%5Blimit%5D=2&page%5Boffset%5D=2"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"powerpack\",\"id\":\"7d77332e-6865-11ee-a8bf-da7ad0900002\",\"attributes\":{\"name\":\"\",\"description\":\"Test Powerpack 2\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Powerpack Test\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test test test\",\"type\":\"note\"},\"id\":887637664261479}]}},\"template_variables\":null,\"tags\":[]},\"relationships\":{\"author\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}],\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"email\":\"frog@datadoghq.com\"}}],\"meta\":{\"pagination\":{\"offset\":2,\"first_offset\":0,\"prev_offset\":0,\"next_offset\":4,\"last_offset\":null,\"limit\":2,\"type\":\"offset_limit\"}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/powerpacks?page%5Blimit%5D=2&page%5Boffset%5D=2\",\"last\":null,\"next\":\"https://api.datadoghq.com/api/v2/powerpacks?page[offset]=4&page[limit]=2\",\"prev\":\"https://api.datadoghq.com/api/v2/powerpacks?page[offset]=0&page[limit]=2\",\"first\":\"https://api.datadoghq.com/api/v2/powerpacks?page[offset]=0&page[limit]=2\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 11 Oct 2023 19:24:38 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/powerpacks?page%5Blimit%5D=2" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"powerpack\",\"id\":\"d1938042-686b-11ee-9d56-da7ad0900002\",\"attributes\":{\"name\":\"Test-Get_all_powerpacks_returns_OK_response_with_pagination-1697052278\",\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"},\"id\":4216761608837044}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0}},\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}],\"tags\":[\"tag:sample\"]},\"relationships\":{\"author\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}},{\"type\":\"powerpack\",\"id\":\"cabb74fa-686b-11ee-8326-da7ad0900002\",\"attributes\":{\"name\":\"another powerpack\",\"description\":\"\",\"group_widget\":{\"layout\":{\"x\":0,\"y\":0,\"width\":4,\"height\":3},\"definition\":{\"title\":\"another powerpack\",\"type\":\"group\",\"layout_type\":\"ordered\",\"widgets\":[{\"layout\":{\"x\":0,\"y\":0,\"width\":2,\"height\":2},\"definition\":{\"type\":\"note\",\"content\":\"its just a ***test***\",\"background_color\":\"white\",\"font_size\":\"36\",\"text_align\":\"center\",\"vertical_align\":\"center\",\"show_tick\":false,\"tick_pos\":\"50%\",\"tick_edge\":\"left\",\"has_padding\":true},\"id\":2265811261450092}]}},\"template_variables\":[],\"tags\":[\"tag:display\"]},\"relationships\":{\"author\":{\"data\":{\"type\":\"users\",\"id\":\"d5bf7f0a-19b0-11ed-b0df-da7ad0900002\"}}}}],\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"email\":\"frog@datadoghq.com\"}},{\"type\":\"users\",\"id\":\"d5bf7f0a-19b0-11ed-b0df-da7ad0900002\",\"attributes\":{\"name\":\"Kevin Zou\",\"email\":\"kevin.zou@datadoghq.com\"}}],\"meta\":{\"pagination\":{\"offset\":0,\"first_offset\":0,\"prev_offset\":0,\"next_offset\":2,\"last_offset\":null,\"limit\":2,\"type\":\"offset_limit\"}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/powerpacks?page%5Blimit%5D=2\",\"last\":null,\"next\":\"https://api.datadoghq.com/api/v2/powerpacks?page[offset]=2&page[limit]=2\",\"prev\":null,\"first\":\"https://api.datadoghq.com/api/v2/powerpacks?page[offset]=0&page[limit]=2\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 11 Oct 2023 19:24:38 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/powerpacks?page%5Blimit%5D=2&page%5Boffset%5D=2" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"powerpack\",\"id\":\"7d77332e-6865-11ee-a8bf-da7ad0900002\",\"attributes\":{\"name\":\"\",\"description\":\"Test Powerpack 2\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Powerpack Test\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test test test\",\"type\":\"note\"},\"id\":887637664261479}]}},\"template_variables\":null,\"tags\":[]},\"relationships\":{\"author\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}],\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"email\":\"frog@datadoghq.com\"}}],\"meta\":{\"pagination\":{\"offset\":2,\"first_offset\":0,\"prev_offset\":0,\"next_offset\":4,\"last_offset\":null,\"limit\":2,\"type\":\"offset_limit\"}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/powerpacks?page%5Blimit%5D=2&page%5Boffset%5D=2\",\"last\":null,\"next\":\"https://api.datadoghq.com/api/v2/powerpacks?page[offset]=4&page[limit]=2\",\"prev\":\"https://api.datadoghq.com/api/v2/powerpacks?page[offset]=0&page[limit]=2\",\"first\":\"https://api.datadoghq.com/api/v2/powerpacks?page[offset]=0&page[limit]=2\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 11 Oct 2023 19:24:38 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/powerpack/Get-all-powerpacks-returns-OK-response.json b/tests/scenarios/cassettes/v2/powerpack/Get-all-powerpacks-returns-OK-response.json index 470c7732f..87603cafd 100644 --- a/tests/scenarios/cassettes/v2/powerpack/Get-all-powerpacks-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/powerpack/Get-all-powerpacks-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"}}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"name\":\"Test-Get_all_powerpacks_returns_OK_response-1698172333\",\"tags\":[\"tag:sample\"],\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}]},\"type\":\"powerpack\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/powerpacks"}, "response": {"body": {"string": "{\"data\":{\"type\":\"powerpack\",\"id\":\"a65cae1e-729b-11ee-9a94-da7ad0900002\",\"attributes\":{\"name\":\"Test-Get_all_powerpacks_returns_OK_response-1698172333\",\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"},\"id\":8966066562910324}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}],\"tags\":[\"tag:sample\"]},\"relationships\":{\"author\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"name\":\"CI Account\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 24 Oct 2023 18:32:13 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/powerpacks?page%5Blimit%5D=1000"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"powerpack\",\"id\":\"cabb74fa-686b-11ee-8326-da7ad0900002\",\"attributes\":{\"name\":\"another powerpack\",\"description\":\"\",\"group_widget\":{\"layout\":{\"x\":0,\"y\":0,\"width\":4,\"height\":3},\"definition\":{\"title\":\"another powerpack\",\"type\":\"group\",\"layout_type\":\"ordered\",\"widgets\":[{\"layout\":{\"x\":0,\"y\":0,\"width\":2,\"height\":2},\"definition\":{\"type\":\"note\",\"content\":\"its just a ***test***\",\"background_color\":\"white\",\"font_size\":\"36\",\"text_align\":\"center\",\"vertical_align\":\"center\",\"show_tick\":false,\"tick_pos\":\"50%\",\"tick_edge\":\"left\",\"has_padding\":true},\"id\":2265811261450092}]}},\"template_variables\":[],\"tags\":[\"tag:display\"]},\"relationships\":{\"author\":{\"data\":{\"type\":\"users\",\"id\":\"d5bf7f0a-19b0-11ed-b0df-da7ad0900002\"}}}},{\"type\":\"powerpack\",\"id\":\"a65cae1e-729b-11ee-9a94-da7ad0900002\",\"attributes\":{\"name\":\"Test-Get_all_powerpacks_returns_OK_response-1698172333\",\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"},\"id\":8966066562910324}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}],\"tags\":[\"tag:sample\"]},\"relationships\":{\"author\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}}}},{\"type\":\"powerpack\",\"id\":\"66a92bf4-7209-11ee-af46-da7ad0900002\",\"attributes\":{\"name\":\"Sample Powerpack\",\"description\":\"Test Powerpack 2\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"event_size\":\"l\",\"query\":\"*\",\"title\":\"Widget Title\",\"title_align\":\"right\",\"title_size\":\"16\",\"type\":\"event_stream\"},\"id\":5277269296927835}]}},\"template_variables\":[{\"defaults\":[\"defaults\"],\"name\":\"datacenter\"}],\"tags\":[\"tag:foo1\",\"tag:foo2\"]},\"relationships\":{\"author\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}],\"included\":[{\"type\":\"users\",\"id\":\"d5bf7f0a-19b0-11ed-b0df-da7ad0900002\",\"attributes\":{\"name\":\"Kevin Zou\",\"email\":\"kevin.zou@datadoghq.com\"}},{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"name\":\"CI Account\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"}},{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"email\":\"frog@datadoghq.com\"}}],\"meta\":{\"pagination\":{\"offset\":0,\"first_offset\":0,\"prev_offset\":0,\"next_offset\":1000,\"last_offset\":null,\"limit\":1000,\"type\":\"offset_limit\"}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/powerpacks?page%5Blimit%5D=1000\",\"last\":null,\"next\":\"https://api.datadoghq.com/api/v2/powerpacks?page[offset]=1000&page[limit]=1000\",\"prev\":null,\"first\":\"https://api.datadoghq.com/api/v2/powerpacks?page[offset]=0&page[limit]=1000\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 24 Oct 2023 18:32:13 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/powerpacks/a65cae1e-729b-11ee-9a94-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Tue, 24 Oct 2023 18:32:13 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"}}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"name\":\"Test-Get_all_powerpacks_returns_OK_response-1698172333\",\"tags\":[\"tag:sample\"],\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}]},\"type\":\"powerpack\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/powerpacks" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"powerpack\",\"id\":\"a65cae1e-729b-11ee-9a94-da7ad0900002\",\"attributes\":{\"name\":\"Test-Get_all_powerpacks_returns_OK_response-1698172333\",\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"},\"id\":8966066562910324}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}],\"tags\":[\"tag:sample\"]},\"relationships\":{\"author\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"name\":\"CI Account\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 24 Oct 2023 18:32:13 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/powerpacks?page%5Blimit%5D=1000" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"powerpack\",\"id\":\"cabb74fa-686b-11ee-8326-da7ad0900002\",\"attributes\":{\"name\":\"another powerpack\",\"description\":\"\",\"group_widget\":{\"layout\":{\"x\":0,\"y\":0,\"width\":4,\"height\":3},\"definition\":{\"title\":\"another powerpack\",\"type\":\"group\",\"layout_type\":\"ordered\",\"widgets\":[{\"layout\":{\"x\":0,\"y\":0,\"width\":2,\"height\":2},\"definition\":{\"type\":\"note\",\"content\":\"its just a ***test***\",\"background_color\":\"white\",\"font_size\":\"36\",\"text_align\":\"center\",\"vertical_align\":\"center\",\"show_tick\":false,\"tick_pos\":\"50%\",\"tick_edge\":\"left\",\"has_padding\":true},\"id\":2265811261450092}]}},\"template_variables\":[],\"tags\":[\"tag:display\"]},\"relationships\":{\"author\":{\"data\":{\"type\":\"users\",\"id\":\"d5bf7f0a-19b0-11ed-b0df-da7ad0900002\"}}}},{\"type\":\"powerpack\",\"id\":\"a65cae1e-729b-11ee-9a94-da7ad0900002\",\"attributes\":{\"name\":\"Test-Get_all_powerpacks_returns_OK_response-1698172333\",\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"},\"id\":8966066562910324}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}],\"tags\":[\"tag:sample\"]},\"relationships\":{\"author\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}}}},{\"type\":\"powerpack\",\"id\":\"66a92bf4-7209-11ee-af46-da7ad0900002\",\"attributes\":{\"name\":\"Sample Powerpack\",\"description\":\"Test Powerpack 2\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"event_size\":\"l\",\"query\":\"*\",\"title\":\"Widget Title\",\"title_align\":\"right\",\"title_size\":\"16\",\"type\":\"event_stream\"},\"id\":5277269296927835}]}},\"template_variables\":[{\"defaults\":[\"defaults\"],\"name\":\"datacenter\"}],\"tags\":[\"tag:foo1\",\"tag:foo2\"]},\"relationships\":{\"author\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}],\"included\":[{\"type\":\"users\",\"id\":\"d5bf7f0a-19b0-11ed-b0df-da7ad0900002\",\"attributes\":{\"name\":\"Kevin Zou\",\"email\":\"kevin.zou@datadoghq.com\"}},{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"name\":\"CI Account\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"}},{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"email\":\"frog@datadoghq.com\"}}],\"meta\":{\"pagination\":{\"offset\":0,\"first_offset\":0,\"prev_offset\":0,\"next_offset\":1000,\"last_offset\":null,\"limit\":1000,\"type\":\"offset_limit\"}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/powerpacks?page%5Blimit%5D=1000\",\"last\":null,\"next\":\"https://api.datadoghq.com/api/v2/powerpacks?page[offset]=1000&page[limit]=1000\",\"prev\":null,\"first\":\"https://api.datadoghq.com/api/v2/powerpacks?page[offset]=0&page[limit]=1000\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 24 Oct 2023 18:32:13 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/powerpacks/a65cae1e-729b-11ee-9a94-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Tue, 24 Oct 2023 18:32:13 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/powerpack/Update-a-powerpack-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/powerpack/Update-a-powerpack-returns-Bad-Request-response.json index 1db101430..1bb0ec6ec 100644 --- a/tests/scenarios/cassettes/v2/powerpack/Update-a-powerpack-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/powerpack/Update-a-powerpack-returns-Bad-Request-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"}}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"name\":\"Test-Update_a_powerpack_returns_Bad_Request_response-1698172333\",\"tags\":[\"tag:sample\"],\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}]},\"type\":\"powerpack\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/powerpacks"}, "response": {"body": {"string": "{\"data\":{\"type\":\"powerpack\",\"id\":\"a68dc724-729b-11ee-aa5b-da7ad0900002\",\"attributes\":{\"name\":\"Test-Update_a_powerpack_returns_Bad_Request_response-1698172333\",\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"},\"id\":3206637304594094}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}],\"tags\":[\"tag:sample\"]},\"relationships\":{\"author\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"name\":\"CI Account\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 24 Oct 2023 18:32:13 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"type\":\"group1\",\"widgets\":[]}},\"name\":\"Sample Powerpack\",\"tags\":[\"tag:sample\"],\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}]},\"type\":\"powerpack\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/powerpacks/a68dc724-729b-11ee-aa5b-da7ad0900002"}, "response": {"body": {"string": "{\"errors\":[\"Invalid group widget for powerpack. Error: 'group1' is not one of ['group']\\n\\nFailed validating 'enum' in schema['properties']['type']:\\n {'enum': ['group']}\\n\\nOn instance['type']:\\n 'group1'.\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Tue, 24 Oct 2023 18:32:13 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/powerpacks/a68dc724-729b-11ee-aa5b-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Tue, 24 Oct 2023 18:32:13 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"}}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"name\":\"Test-Update_a_powerpack_returns_Bad_Request_response-1698172333\",\"tags\":[\"tag:sample\"],\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}]},\"type\":\"powerpack\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/powerpacks" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"powerpack\",\"id\":\"a68dc724-729b-11ee-aa5b-da7ad0900002\",\"attributes\":{\"name\":\"Test-Update_a_powerpack_returns_Bad_Request_response-1698172333\",\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"},\"id\":3206637304594094}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}],\"tags\":[\"tag:sample\"]},\"relationships\":{\"author\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"name\":\"CI Account\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 24 Oct 2023 18:32:13 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"type\":\"group1\",\"widgets\":[]}},\"name\":\"Sample Powerpack\",\"tags\":[\"tag:sample\"],\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}]},\"type\":\"powerpack\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/powerpacks/a68dc724-729b-11ee-aa5b-da7ad0900002" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Invalid group widget for powerpack. Error: 'group1' is not one of ['group']\\n\\nFailed validating 'enum' in schema['properties']['type']:\\n {'enum': ['group']}\\n\\nOn instance['type']:\\n 'group1'.\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Tue, 24 Oct 2023 18:32:13 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/powerpacks/a68dc724-729b-11ee-aa5b-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Tue, 24 Oct 2023 18:32:13 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/powerpack/Update-a-powerpack-returns-OK-response.json b/tests/scenarios/cassettes/v2/powerpack/Update-a-powerpack-returns-OK-response.json index ac81477d3..294fdded6 100644 --- a/tests/scenarios/cassettes/v2/powerpack/Update-a-powerpack-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/powerpack/Update-a-powerpack-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"}}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"name\":\"Test-Update_a_powerpack_returns_OK_response-1698172333\",\"tags\":[\"tag:sample\"],\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}]},\"type\":\"powerpack\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/powerpacks"}, "response": {"body": {"string": "{\"data\":{\"type\":\"powerpack\",\"id\":\"a6d282b0-729b-11ee-a89e-da7ad0900002\",\"attributes\":{\"name\":\"Test-Update_a_powerpack_returns_OK_response-1698172333\",\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"},\"id\":4388958017557503}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}],\"tags\":[\"tag:sample\"]},\"relationships\":{\"author\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"name\":\"CI Account\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 24 Oct 2023 18:32:13 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"}}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"name\":\"Test-Update_a_powerpack_returns_OK_response-1698172333\",\"tags\":[\"tag:sample\"],\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}]},\"type\":\"powerpack\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/powerpacks/a6d282b0-729b-11ee-a89e-da7ad0900002"}, "response": {"body": {"string": "{\"data\":{\"type\":\"powerpack\",\"id\":\"a6d282b0-729b-11ee-a89e-da7ad0900002\",\"attributes\":{\"name\":\"Test-Update_a_powerpack_returns_OK_response-1698172333\",\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"},\"id\":3224344873217279}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}],\"tags\":[\"tag:sample\"]},\"relationships\":{\"author\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"name\":\"CI Account\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 24 Oct 2023 18:32:13 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/powerpacks/a6d282b0-729b-11ee-a89e-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Tue, 24 Oct 2023 18:32:13 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"}}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"name\":\"Test-Update_a_powerpack_returns_OK_response-1698172333\",\"tags\":[\"tag:sample\"],\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}]},\"type\":\"powerpack\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/powerpacks" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"powerpack\",\"id\":\"a6d282b0-729b-11ee-a89e-da7ad0900002\",\"attributes\":{\"name\":\"Test-Update_a_powerpack_returns_OK_response-1698172333\",\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"},\"id\":4388958017557503}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}],\"tags\":[\"tag:sample\"]},\"relationships\":{\"author\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"name\":\"CI Account\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 24 Oct 2023 18:32:13 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"}}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"name\":\"Test-Update_a_powerpack_returns_OK_response-1698172333\",\"tags\":[\"tag:sample\"],\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}]},\"type\":\"powerpack\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/powerpacks/a6d282b0-729b-11ee-a89e-da7ad0900002" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"powerpack\",\"id\":\"a6d282b0-729b-11ee-a89e-da7ad0900002\",\"attributes\":{\"name\":\"Test-Update_a_powerpack_returns_OK_response-1698172333\",\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"},\"id\":3224344873217279}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}],\"tags\":[\"tag:sample\"]},\"relationships\":{\"author\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"name\":\"CI Account\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 24 Oct 2023 18:32:13 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/powerpacks/a6d282b0-729b-11ee-a89e-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Tue, 24 Oct 2023 18:32:13 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/powerpack/Update-a-powerpack-returns-Powerpack-Not-Found-response.json b/tests/scenarios/cassettes/v2/powerpack/Update-a-powerpack-returns-Powerpack-Not-Found-response.json index f21e17658..6f3074ffe 100644 --- a/tests/scenarios/cassettes/v2/powerpack/Update-a-powerpack-returns-Powerpack-Not-Found-response.json +++ b/tests/scenarios/cassettes/v2/powerpack/Update-a-powerpack-returns-Powerpack-Not-Found-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"}}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"name\":\"Test-Update_a_powerpack_returns_Powerpack_Not_Found_response-1698172334\",\"tags\":[\"tag:sample\"],\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}]},\"type\":\"powerpack\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/powerpacks/made-up-id"}, "response": {"body": {"string": "{\"errors\":[\"Powerpack has invalid UUID made-up-id not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Tue, 24 Oct 2023 18:32:14 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"Sample powerpack\",\"group_widget\":{\"definition\":{\"layout_type\":\"ordered\",\"show_title\":true,\"title\":\"Sample Powerpack\",\"type\":\"group\",\"widgets\":[{\"definition\":{\"content\":\"test\",\"type\":\"note\"}}]},\"layout\":{\"height\":3,\"width\":12,\"x\":0,\"y\":0},\"live_span\":\"1h\"},\"name\":\"Test-Update_a_powerpack_returns_Powerpack_Not_Found_response-1698172334\",\"tags\":[\"tag:sample\"],\"template_variables\":[{\"defaults\":[\"*\"],\"name\":\"sample\"}]},\"type\":\"powerpack\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/powerpacks/made-up-id" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Powerpack has invalid UUID made-up-id not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Tue, 24 Oct 2023 18:32:14 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/processes/Get-all-processes-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v2/processes/Get-all-processes-returns-OK-response-with-pagination.json index 01b32d18d..ecadf5cff 100644 --- a/tests/scenarios/cassettes/v2/processes/Get-all-processes-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v2/processes/Get-all-processes-returns-OK-response-with-pagination.json @@ -1 +1,61 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/processes?page%5Blimit%5D=2"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"after\":\"08d5e26c7701000015e90400e5e520dead28b74b286076a0f80d8947\",\"size\":2}},\"data\":[{\"type\":\"process\",\"id\":\"15e904006bbd513e4da3b8270bedd386f3edea60\",\"attributes\":{\"cmdline\":\"/lib/systemd/systemd --switched-root --system --deserialize 22\",\"timestamp\":\"2022-04-11T15:49:04\",\"start\":\"2021-02-04T11:51:47\",\"user\":\"root\",\"pid\":1,\"ppid\":0,\"host\":\"pks-db-0\",\"tags\":[\"bosh_address:10.0.40.20\",\"bosh_az:us-central1-a\",\"bosh_deployment:pivotal-container-service-2db99f13c503d2c4afac\",\"bosh_id:bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"bosh_index:0\",\"bosh_ip:10.0.40.20\",\"bosh_job:pks-db\",\"bosh_name:pks-db\",\"cloudfoundry\",\"created_at:2021-02-04t11:51:58z\",\"deployment:pivotal-container-service-2db99f13c503d2c4afac\",\"director:p-bosh\",\"id:bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"index:0\",\"index:bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"instance-id:3455194630398042407\",\"instance-type:custom-2-8192\",\"instance_group:pks-db\",\"internal-hostname:vm-5b9ee0e7-a9ec-424a-5233-b4497c6a8873.c.datadog-integrations-lab.internal\",\"ip:10.0.40.20\",\"job:pks-db\",\"name:pks-db/bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-pivotal-container-service-2db99f13c503d2c4afac\",\"p-bosh-pivotal-container-service-2db99f13c503d2c4afac-pks-db\",\"pcf-vms\",\"pivotal-container-service-2db99f13c503d2c4afac\",\"pivotal-container-service-2db99f13c503d2c4afac-pks-db\",\"pks-db\",\"project:datadog-integrations-lab\",\"user_data:_server_:_name_:_vm-5b9ee0e7-a9ec-424a-5233-b4497c6a8873_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-a\",\"host:pks-db-0\",\"user:root\",\"command:systemd\",\"state_zombie:false\"]}},{\"type\":\"process\",\"id\":\"15e90400e5e520dead28b74b286076a0f80d8947\",\"attributes\":{\"cmdline\":\"/lib/systemd/systemd-journald\",\"timestamp\":\"2022-04-11T15:39:24\",\"start\":\"2021-02-04T11:52:21\",\"user\":\"root\",\"pid\":311,\"ppid\":1,\"host\":\"pks-db-0\",\"tags\":[\"bosh_address:10.0.40.20\",\"bosh_az:us-central1-a\",\"bosh_deployment:pivotal-container-service-2db99f13c503d2c4afac\",\"bosh_id:bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"bosh_index:0\",\"bosh_ip:10.0.40.20\",\"bosh_job:pks-db\",\"bosh_name:pks-db\",\"cloudfoundry\",\"created_at:2021-02-04t11:51:58z\",\"deployment:pivotal-container-service-2db99f13c503d2c4afac\",\"director:p-bosh\",\"id:bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"index:0\",\"index:bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"instance-id:3455194630398042407\",\"instance-type:custom-2-8192\",\"instance_group:pks-db\",\"internal-hostname:vm-5b9ee0e7-a9ec-424a-5233-b4497c6a8873.c.datadog-integrations-lab.internal\",\"ip:10.0.40.20\",\"job:pks-db\",\"name:pks-db/bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-pivotal-container-service-2db99f13c503d2c4afac\",\"p-bosh-pivotal-container-service-2db99f13c503d2c4afac-pks-db\",\"pcf-vms\",\"pivotal-container-service-2db99f13c503d2c4afac\",\"pivotal-container-service-2db99f13c503d2c4afac-pks-db\",\"pks-db\",\"project:datadog-integrations-lab\",\"user_data:_server_:_name_:_vm-5b9ee0e7-a9ec-424a-5233-b4497c6a8873_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-a\",\"host:pks-db-0\",\"user:root\",\"command:systemd-journald\",\"state_zombie:false\"]}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 11 Apr 2022 15:53:14 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/processes?page%5Blimit%5D=2&page%5Bcursor%5D=08d5e26c7701000015e90400e5e520dead28b74b286076a0f80d8947"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"after\":\"78ece26c7701000015e90400ecda56b600e21f012357ad716ee71ca9\",\"size\":1}},\"data\":[{\"type\":\"process\",\"id\":\"15e904008c339409221953da5a4366c80260ba76\",\"attributes\":{\"cmdline\":\"/lib/systemd/systemd-udevd\",\"timestamp\":\"2022-04-11T15:44:44\",\"start\":\"2021-02-04T11:52:21\",\"user\":\"root\",\"pid\":343,\"ppid\":1,\"host\":\"pks-db-0\",\"tags\":[\"bosh_address:10.0.40.20\",\"bosh_az:us-central1-a\",\"bosh_deployment:pivotal-container-service-2db99f13c503d2c4afac\",\"bosh_id:bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"bosh_index:0\",\"bosh_ip:10.0.40.20\",\"bosh_job:pks-db\",\"bosh_name:pks-db\",\"cloudfoundry\",\"created_at:2021-02-04t11:51:58z\",\"deployment:pivotal-container-service-2db99f13c503d2c4afac\",\"director:p-bosh\",\"id:bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"index:0\",\"index:bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"instance-id:3455194630398042407\",\"instance-type:custom-2-8192\",\"instance_group:pks-db\",\"internal-hostname:vm-5b9ee0e7-a9ec-424a-5233-b4497c6a8873.c.datadog-integrations-lab.internal\",\"ip:10.0.40.20\",\"job:pks-db\",\"name:pks-db/bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-pivotal-container-service-2db99f13c503d2c4afac\",\"p-bosh-pivotal-container-service-2db99f13c503d2c4afac-pks-db\",\"pcf-vms\",\"pivotal-container-service-2db99f13c503d2c4afac\",\"pivotal-container-service-2db99f13c503d2c4afac-pks-db\",\"pks-db\",\"project:datadog-integrations-lab\",\"user_data:_server_:_name_:_vm-5b9ee0e7-a9ec-424a-5233-b4497c6a8873_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-a\",\"host:pks-db-0\",\"user:root\",\"command:systemd-udevd\",\"state_zombie:false\"]}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 11 Apr 2022 15:53:14 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/processes?page%5Blimit%5D=2" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"after\":\"08d5e26c7701000015e90400e5e520dead28b74b286076a0f80d8947\",\"size\":2}},\"data\":[{\"type\":\"process\",\"id\":\"15e904006bbd513e4da3b8270bedd386f3edea60\",\"attributes\":{\"cmdline\":\"/lib/systemd/systemd --switched-root --system --deserialize 22\",\"timestamp\":\"2022-04-11T15:49:04\",\"start\":\"2021-02-04T11:51:47\",\"user\":\"root\",\"pid\":1,\"ppid\":0,\"host\":\"pks-db-0\",\"tags\":[\"bosh_address:10.0.40.20\",\"bosh_az:us-central1-a\",\"bosh_deployment:pivotal-container-service-2db99f13c503d2c4afac\",\"bosh_id:bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"bosh_index:0\",\"bosh_ip:10.0.40.20\",\"bosh_job:pks-db\",\"bosh_name:pks-db\",\"cloudfoundry\",\"created_at:2021-02-04t11:51:58z\",\"deployment:pivotal-container-service-2db99f13c503d2c4afac\",\"director:p-bosh\",\"id:bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"index:0\",\"index:bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"instance-id:3455194630398042407\",\"instance-type:custom-2-8192\",\"instance_group:pks-db\",\"internal-hostname:vm-5b9ee0e7-a9ec-424a-5233-b4497c6a8873.c.datadog-integrations-lab.internal\",\"ip:10.0.40.20\",\"job:pks-db\",\"name:pks-db/bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-pivotal-container-service-2db99f13c503d2c4afac\",\"p-bosh-pivotal-container-service-2db99f13c503d2c4afac-pks-db\",\"pcf-vms\",\"pivotal-container-service-2db99f13c503d2c4afac\",\"pivotal-container-service-2db99f13c503d2c4afac-pks-db\",\"pks-db\",\"project:datadog-integrations-lab\",\"user_data:_server_:_name_:_vm-5b9ee0e7-a9ec-424a-5233-b4497c6a8873_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-a\",\"host:pks-db-0\",\"user:root\",\"command:systemd\",\"state_zombie:false\"]}},{\"type\":\"process\",\"id\":\"15e90400e5e520dead28b74b286076a0f80d8947\",\"attributes\":{\"cmdline\":\"/lib/systemd/systemd-journald\",\"timestamp\":\"2022-04-11T15:39:24\",\"start\":\"2021-02-04T11:52:21\",\"user\":\"root\",\"pid\":311,\"ppid\":1,\"host\":\"pks-db-0\",\"tags\":[\"bosh_address:10.0.40.20\",\"bosh_az:us-central1-a\",\"bosh_deployment:pivotal-container-service-2db99f13c503d2c4afac\",\"bosh_id:bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"bosh_index:0\",\"bosh_ip:10.0.40.20\",\"bosh_job:pks-db\",\"bosh_name:pks-db\",\"cloudfoundry\",\"created_at:2021-02-04t11:51:58z\",\"deployment:pivotal-container-service-2db99f13c503d2c4afac\",\"director:p-bosh\",\"id:bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"index:0\",\"index:bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"instance-id:3455194630398042407\",\"instance-type:custom-2-8192\",\"instance_group:pks-db\",\"internal-hostname:vm-5b9ee0e7-a9ec-424a-5233-b4497c6a8873.c.datadog-integrations-lab.internal\",\"ip:10.0.40.20\",\"job:pks-db\",\"name:pks-db/bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-pivotal-container-service-2db99f13c503d2c4afac\",\"p-bosh-pivotal-container-service-2db99f13c503d2c4afac-pks-db\",\"pcf-vms\",\"pivotal-container-service-2db99f13c503d2c4afac\",\"pivotal-container-service-2db99f13c503d2c4afac-pks-db\",\"pks-db\",\"project:datadog-integrations-lab\",\"user_data:_server_:_name_:_vm-5b9ee0e7-a9ec-424a-5233-b4497c6a8873_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-a\",\"host:pks-db-0\",\"user:root\",\"command:systemd-journald\",\"state_zombie:false\"]}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 11 Apr 2022 15:53:14 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/processes?page%5Blimit%5D=2&page%5Bcursor%5D=08d5e26c7701000015e90400e5e520dead28b74b286076a0f80d8947" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"after\":\"78ece26c7701000015e90400ecda56b600e21f012357ad716ee71ca9\",\"size\":1}},\"data\":[{\"type\":\"process\",\"id\":\"15e904008c339409221953da5a4366c80260ba76\",\"attributes\":{\"cmdline\":\"/lib/systemd/systemd-udevd\",\"timestamp\":\"2022-04-11T15:44:44\",\"start\":\"2021-02-04T11:52:21\",\"user\":\"root\",\"pid\":343,\"ppid\":1,\"host\":\"pks-db-0\",\"tags\":[\"bosh_address:10.0.40.20\",\"bosh_az:us-central1-a\",\"bosh_deployment:pivotal-container-service-2db99f13c503d2c4afac\",\"bosh_id:bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"bosh_index:0\",\"bosh_ip:10.0.40.20\",\"bosh_job:pks-db\",\"bosh_name:pks-db\",\"cloudfoundry\",\"created_at:2021-02-04t11:51:58z\",\"deployment:pivotal-container-service-2db99f13c503d2c4afac\",\"director:p-bosh\",\"id:bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"index:0\",\"index:bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"instance-id:3455194630398042407\",\"instance-type:custom-2-8192\",\"instance_group:pks-db\",\"internal-hostname:vm-5b9ee0e7-a9ec-424a-5233-b4497c6a8873.c.datadog-integrations-lab.internal\",\"ip:10.0.40.20\",\"job:pks-db\",\"name:pks-db/bc9e93b6-fb2e-4adc-a4a7-f23a70dbe681\",\"numeric_project_id:116803814856\",\"p-bosh\",\"p-bosh-pivotal-container-service-2db99f13c503d2c4afac\",\"p-bosh-pivotal-container-service-2db99f13c503d2c4afac-pks-db\",\"pcf-vms\",\"pivotal-container-service-2db99f13c503d2c4afac\",\"pivotal-container-service-2db99f13c503d2c4afac-pks-db\",\"pks-db\",\"project:datadog-integrations-lab\",\"user_data:_server_:_name_:_vm-5b9ee0e7-a9ec-424a-5233-b4497c6a8873_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_169.254.169.254\",\"zone:us-central1-a\",\"host:pks-db-0\",\"user:root\",\"command:systemd-udevd\",\"state_zombie:false\"]}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 11 Apr 2022 15:53:14 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/processes/Get-all-processes-returns-OK-response.json b/tests/scenarios/cassettes/v2/processes/Get-all-processes-returns-OK-response.json index 391300040..88ba85125 100644 --- a/tests/scenarios/cassettes/v2/processes/Get-all-processes-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/processes/Get-all-processes-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/processes?search=process-agent&tags=testing%3Atrue&page%5Blimit%5D=2"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"after\":\"\",\"size\":0}},\"data\":[]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:51:51 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/processes?search=process-agent&tags=testing%3Atrue&page%5Blimit%5D=2" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"after\":\"\",\"size\":0}},\"data\":[]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:51:51 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/restriction_policies/Delete-a-restriction-policy-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/restriction_policies/Delete-a-restriction-policy-returns-Bad-Request-response.json index 5490c4bce..c9aeda5cf 100644 --- a/tests/scenarios/cassettes/v2/restriction_policies/Delete-a-restriction-policy-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/restriction_policies/Delete-a-restriction-policy-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/restriction_policy/malformed"}, "response": {"body": {"string": "{\"errors\":[\"Invalid resource: 'malformed' is not in a valid format\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Tue, 14 Feb 2023 03:05:45 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/restriction_policy/malformed" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Invalid resource: 'malformed' is not in a valid format\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Tue, 14 Feb 2023 03:05:45 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/restriction_policies/Delete-a-restriction-policy-returns-No-Content-response.json b/tests/scenarios/cassettes/v2/restriction_policies/Delete-a-restriction-policy-returns-No-Content-response.json index bdcf1f4ea..be252df05 100644 --- a/tests/scenarios/cassettes/v2/restriction_policies/Delete-a-restriction-policy-returns-No-Content-response.json +++ b/tests/scenarios/cassettes/v2/restriction_policies/Delete-a-restriction-policy-returns-No-Content-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/restriction_policy/dashboard%3Atest-delete"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Mar 2023 18:17:17 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/restriction_policy/dashboard%3Atest-delete" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Mar 2023 18:17:17 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/restriction_policies/Get-a-restriction-policy-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/restriction_policies/Get-a-restriction-policy-returns-Bad-Request-response.json index 24424115c..cf8d0fff5 100644 --- a/tests/scenarios/cassettes/v2/restriction_policies/Get-a-restriction-policy-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/restriction_policies/Get-a-restriction-policy-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/restriction_policy/malformed"}, "response": {"body": {"string": "{\"errors\":[\"Invalid resource: 'malformed' is not in a valid format\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Wed, 08 Feb 2023 21:43:23 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/restriction_policy/malformed" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Invalid resource: 'malformed' is not in a valid format\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Wed, 08 Feb 2023 21:43:23 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/restriction_policies/Get-a-restriction-policy-returns-OK-response.json b/tests/scenarios/cassettes/v2/restriction_policies/Get-a-restriction-policy-returns-OK-response.json index 63d78acb0..ff7448973 100644 --- a/tests/scenarios/cassettes/v2/restriction_policies/Get-a-restriction-policy-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/restriction_policies/Get-a-restriction-policy-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/restriction_policy/dashboard%3Atest-get"}, "response": {"body": {"string": "{\"data\":{\"type\":\"restriction_policy\",\"id\":\"dashboard:test-get\",\"attributes\":{\"bindings\":[]}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 06 Mar 2023 18:17:18 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/restriction_policy/dashboard%3Atest-get" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"restriction_policy\",\"id\":\"dashboard:test-get\",\"attributes\":{\"bindings\":[]}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 06 Mar 2023 18:17:18 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/restriction_policies/Update-a-restriction-policy-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/restriction_policies/Update-a-restriction-policy-returns-Bad-Request-response.json index 429ca342b..f44ff5bce 100644 --- a/tests/scenarios/cassettes/v2/restriction_policies/Update-a-restriction-policy-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/restriction_policies/Update-a-restriction-policy-returns-Bad-Request-response.json @@ -1 +1,193 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Update_a_restriction_policy_returns_Bad_Request_response-1676406317\"},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles"}, "response": {"body": {"string": "{\"data\":{\"type\":\"roles\",\"id\":\"b27c878a-aca5-11ed-bc84-da7ad0900002\",\"attributes\":{\"name\":\"Test-Update_a_restriction_policy_returns_Bad_Request_response-1676406317\",\"created_at\":\"2023-02-14T20:25:18.243844+00:00\",\"modified_at\":\"2023-02-14T20:25:18.273486+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5ad874-7aff-11ed-a5cd-da7ad0900002\"}]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 14 Feb 2023 20:25:17 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"Test-Update_a_restriction_policy_returns_Bad_Request_response-1676406317@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/users"}, "response": {"body": {"string": "{\"data\":{\"type\":\"users\",\"id\":\"b2ca0a63-aca5-11ed-ad1d-9ae79f61138a\",\"attributes\":{\"name\":null,\"handle\":\"test-update_a_restriction_policy_returns_bad_request_response-1676406317@datadoghq.com\",\"created_at\":\"2023-02-14T20:25:18.752610+00:00\",\"modified_at\":\"2023-02-14T20:25:18.755273+00:00\",\"email\":\"test-update_a_restriction_policy_returns_bad_request_response-1676406317@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/80e45e7eec806ce0d10b973473d8c014?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Tue, 14 Feb 2023 20:25:17 GMT"}, {"request": {"body": {"string": "{\"data\":{\"id\":\"b2ca0a63-aca5-11ed-ad1d-9ae79f61138a\",\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles/b27c878a-aca5-11ed-bc84-da7ad0900002/users"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"users\",\"id\":\"b2ca0a63-aca5-11ed-ad1d-9ae79f61138a\",\"attributes\":{\"name\":null,\"handle\":\"test-update_a_restriction_policy_returns_bad_request_response-1676406317@datadoghq.com\",\"created_at\":\"2023-02-14T20:25:18.752610+00:00\",\"modified_at\":\"2023-02-14T20:25:18.755273+00:00\",\"email\":\"test-update_a_restriction_policy_returns_bad_request_response-1676406317@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/80e45e7eec806ce0d10b973473d8c014?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[{\"type\":\"roles\",\"id\":\"b27c878a-aca5-11ed-bc84-da7ad0900002\"}]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}],\"meta\":{\"page\":{\"total_count\":1}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 14 Feb 2023 20:25:17 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"bindings\":[{\"principals\":[\"org:4dee724d-00cc-11ea-a77b-570c9d03c6c5\"],\"relation\":\"editor\"}]},\"id\":\"dashboard:abc-def-ghi\",\"type\":\"restriction_policy\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/restriction_policy/malformed"}, "response": {"body": {"string": "{\"errors\":[\"Invalid resource: 'malformed' is not in a valid format\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Tue, 14 Feb 2023 20:25:17 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/users/b2ca0a63-aca5-11ed-ad1d-9ae79f61138a"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Tue, 14 Feb 2023 20:25:17 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/b27c878a-aca5-11ed-bc84-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Tue, 14 Feb 2023 20:25:17 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Update_a_restriction_policy_returns_Bad_Request_response-1676406317\"},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"roles\",\"id\":\"b27c878a-aca5-11ed-bc84-da7ad0900002\",\"attributes\":{\"name\":\"Test-Update_a_restriction_policy_returns_Bad_Request_response-1676406317\",\"created_at\":\"2023-02-14T20:25:18.243844+00:00\",\"modified_at\":\"2023-02-14T20:25:18.273486+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5ad874-7aff-11ed-a5cd-da7ad0900002\"}]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 14 Feb 2023 20:25:17 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"email\":\"Test-Update_a_restriction_policy_returns_Bad_Request_response-1676406317@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/users" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"users\",\"id\":\"b2ca0a63-aca5-11ed-ad1d-9ae79f61138a\",\"attributes\":{\"name\":null,\"handle\":\"test-update_a_restriction_policy_returns_bad_request_response-1676406317@datadoghq.com\",\"created_at\":\"2023-02-14T20:25:18.752610+00:00\",\"modified_at\":\"2023-02-14T20:25:18.755273+00:00\",\"email\":\"test-update_a_restriction_policy_returns_bad_request_response-1676406317@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/80e45e7eec806ce0d10b973473d8c014?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Tue, 14 Feb 2023 20:25:17 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"id\":\"b2ca0a63-aca5-11ed-ad1d-9ae79f61138a\",\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles/b27c878a-aca5-11ed-bc84-da7ad0900002/users" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"users\",\"id\":\"b2ca0a63-aca5-11ed-ad1d-9ae79f61138a\",\"attributes\":{\"name\":null,\"handle\":\"test-update_a_restriction_policy_returns_bad_request_response-1676406317@datadoghq.com\",\"created_at\":\"2023-02-14T20:25:18.752610+00:00\",\"modified_at\":\"2023-02-14T20:25:18.755273+00:00\",\"email\":\"test-update_a_restriction_policy_returns_bad_request_response-1676406317@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/80e45e7eec806ce0d10b973473d8c014?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[{\"type\":\"roles\",\"id\":\"b27c878a-aca5-11ed-bc84-da7ad0900002\"}]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}],\"meta\":{\"page\":{\"total_count\":1}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 14 Feb 2023 20:25:17 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"bindings\":[{\"principals\":[\"org:4dee724d-00cc-11ea-a77b-570c9d03c6c5\"],\"relation\":\"editor\"}]},\"id\":\"dashboard:abc-def-ghi\",\"type\":\"restriction_policy\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/restriction_policy/malformed" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Invalid resource: 'malformed' is not in a valid format\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Tue, 14 Feb 2023 20:25:17 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/users/b2ca0a63-aca5-11ed-ad1d-9ae79f61138a" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Tue, 14 Feb 2023 20:25:17 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/b27c878a-aca5-11ed-bc84-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Tue, 14 Feb 2023 20:25:17 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/restriction_policies/Update-a-restriction-policy-returns-OK-response.json b/tests/scenarios/cassettes/v2/restriction_policies/Update-a-restriction-policy-returns-OK-response.json index f40a5ed10..9c08b9652 100644 --- a/tests/scenarios/cassettes/v2/restriction_policies/Update-a-restriction-policy-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/restriction_policies/Update-a-restriction-policy-returns-OK-response.json @@ -1 +1,193 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Update_a_restriction_policy_returns_OK_response-1678126638\"},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles"}, "response": {"body": {"string": "{\"data\":{\"type\":\"roles\",\"id\":\"2186776c-bc4b-11ed-ac0f-da7ad0900002\",\"attributes\":{\"name\":\"Test-Update_a_restriction_policy_returns_OK_response-1678126638\",\"created_at\":\"2023-03-06T18:17:18.938117+00:00\",\"modified_at\":\"2023-03-06T18:17:18.971241+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5ad874-7aff-11ed-a5cd-da7ad0900002\"}]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 06 Mar 2023 18:17:18 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"Test-Update_a_restriction_policy_returns_OK_response-1678126638@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/users"}, "response": {"body": {"string": "{\"data\":{\"type\":\"users\",\"id\":\"21b46718-bc4b-11ed-a2f5-764440ef0bc1\",\"attributes\":{\"name\":null,\"handle\":\"test-update_a_restriction_policy_returns_ok_response-1678126638@datadoghq.com\",\"created_at\":\"2023-03-06T18:17:19.240151+00:00\",\"modified_at\":\"2023-03-06T18:17:19.244292+00:00\",\"email\":\"test-update_a_restriction_policy_returns_ok_response-1678126638@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/aedbf1acbf22049a33e6e48c70252b04?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 06 Mar 2023 18:17:18 GMT"}, {"request": {"body": {"string": "{\"data\":{\"id\":\"21b46718-bc4b-11ed-a2f5-764440ef0bc1\",\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles/2186776c-bc4b-11ed-ac0f-da7ad0900002/users"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"users\",\"id\":\"21b46718-bc4b-11ed-a2f5-764440ef0bc1\",\"attributes\":{\"name\":null,\"handle\":\"test-update_a_restriction_policy_returns_ok_response-1678126638@datadoghq.com\",\"created_at\":\"2023-03-06T18:17:19.240151+00:00\",\"modified_at\":\"2023-03-06T18:17:19.244292+00:00\",\"email\":\"test-update_a_restriction_policy_returns_ok_response-1678126638@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/aedbf1acbf22049a33e6e48c70252b04?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[{\"type\":\"roles\",\"id\":\"2186776c-bc4b-11ed-ac0f-da7ad0900002\"}]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}],\"meta\":{\"page\":{\"total_count\":1}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 06 Mar 2023 18:17:18 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"bindings\":[{\"principals\":[\"org:4dee724d-00cc-11ea-a77b-570c9d03c6c5\"],\"relation\":\"editor\"}]},\"id\":\"dashboard:test-update\",\"type\":\"restriction_policy\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/restriction_policy/dashboard%3Atest-update"}, "response": {"body": {"string": "{\"data\":{\"type\":\"restriction_policy\",\"id\":\"dashboard:test-update\",\"attributes\":{\"bindings\":[{\"relation\":\"editor\",\"principals\":[\"org:4dee724d-00cc-11ea-a77b-570c9d03c6c5\"]}]}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 06 Mar 2023 18:17:18 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/users/21b46718-bc4b-11ed-a2f5-764440ef0bc1"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Mar 2023 18:17:18 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/2186776c-bc4b-11ed-ac0f-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 06 Mar 2023 18:17:18 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Update_a_restriction_policy_returns_OK_response-1678126638\"},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"roles\",\"id\":\"2186776c-bc4b-11ed-ac0f-da7ad0900002\",\"attributes\":{\"name\":\"Test-Update_a_restriction_policy_returns_OK_response-1678126638\",\"created_at\":\"2023-03-06T18:17:18.938117+00:00\",\"modified_at\":\"2023-03-06T18:17:18.971241+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5ad874-7aff-11ed-a5cd-da7ad0900002\"}]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 06 Mar 2023 18:17:18 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"email\":\"Test-Update_a_restriction_policy_returns_OK_response-1678126638@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/users" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"users\",\"id\":\"21b46718-bc4b-11ed-a2f5-764440ef0bc1\",\"attributes\":{\"name\":null,\"handle\":\"test-update_a_restriction_policy_returns_ok_response-1678126638@datadoghq.com\",\"created_at\":\"2023-03-06T18:17:19.240151+00:00\",\"modified_at\":\"2023-03-06T18:17:19.244292+00:00\",\"email\":\"test-update_a_restriction_policy_returns_ok_response-1678126638@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/aedbf1acbf22049a33e6e48c70252b04?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 06 Mar 2023 18:17:18 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"id\":\"21b46718-bc4b-11ed-a2f5-764440ef0bc1\",\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles/2186776c-bc4b-11ed-ac0f-da7ad0900002/users" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"users\",\"id\":\"21b46718-bc4b-11ed-a2f5-764440ef0bc1\",\"attributes\":{\"name\":null,\"handle\":\"test-update_a_restriction_policy_returns_ok_response-1678126638@datadoghq.com\",\"created_at\":\"2023-03-06T18:17:19.240151+00:00\",\"modified_at\":\"2023-03-06T18:17:19.244292+00:00\",\"email\":\"test-update_a_restriction_policy_returns_ok_response-1678126638@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/aedbf1acbf22049a33e6e48c70252b04?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[{\"type\":\"roles\",\"id\":\"2186776c-bc4b-11ed-ac0f-da7ad0900002\"}]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}],\"meta\":{\"page\":{\"total_count\":1}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 06 Mar 2023 18:17:18 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"bindings\":[{\"principals\":[\"org:4dee724d-00cc-11ea-a77b-570c9d03c6c5\"],\"relation\":\"editor\"}]},\"id\":\"dashboard:test-update\",\"type\":\"restriction_policy\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/restriction_policy/dashboard%3Atest-update" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"restriction_policy\",\"id\":\"dashboard:test-update\",\"attributes\":{\"bindings\":[{\"relation\":\"editor\",\"principals\":[\"org:4dee724d-00cc-11ea-a77b-570c9d03c6c5\"]}]}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 06 Mar 2023 18:17:18 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/users/21b46718-bc4b-11ed-a2f5-764440ef0bc1" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Mar 2023 18:17:18 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/2186776c-bc4b-11ed-ac0f-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 06 Mar 2023 18:17:18 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/roles/Add-a-user-to-a-role-returns-OK-response.json b/tests/scenarios/cassettes/v2/roles/Add-a-user-to-a-role-returns-OK-response.json index a4ab0472a..38f275ac4 100644 --- a/tests/scenarios/cassettes/v2/roles/Add-a-user-to-a-role-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/roles/Add-a-user-to-a-role-returns-OK-response.json @@ -1 +1,155 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Add_a_user_to_a_role_returns_OK_response-1652349154\"},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles"}, "response": {"body": {"string": "{\"data\":{\"type\":\"roles\",\"id\":\"3fdd7736-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Add_a_user_to_a_role_returns_OK_response-1652349154\",\"created_at\":\"2022-05-12T09:52:35.122733+00:00\",\"modified_at\":\"2022-05-12T09:52:35.185756+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:34 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"Test-Add_a_user_to_a_role_returns_OK_response-1652349154@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/users"}, "response": {"body": {"string": "{\"data\":{\"type\":\"users\",\"id\":\"4029e0ee-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":null,\"handle\":\"test-add_a_user_to_a_role_returns_ok_response-1652349154@datadoghq.com\",\"created_at\":\"2022-05-12T09:52:35.620596+00:00\",\"modified_at\":\"2022-05-12T09:52:35.671108+00:00\",\"email\":\"test-add_a_user_to_a_role_returns_ok_response-1652349154@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/52c0438135b57a777a2f1ec09acfded3?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:52:34 GMT"}, {"request": {"body": {"string": "{\"data\":{\"id\":\"4029e0ee-d1d9-11ec-ad3d-da7ad0900002\",\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles/3fdd7736-d1d9-11ec-ad3d-da7ad0900002/users"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"total_count\":1}},\"data\":[{\"type\":\"users\",\"id\":\"4029e0ee-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":null,\"handle\":\"test-add_a_user_to_a_role_returns_ok_response-1652349154@datadoghq.com\",\"created_at\":\"2022-05-12T09:52:35.620596+00:00\",\"modified_at\":\"2022-05-12T09:52:35.671108+00:00\",\"email\":\"test-add_a_user_to_a_role_returns_ok_response-1652349154@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/52c0438135b57a777a2f1ec09acfded3?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[{\"type\":\"roles\",\"id\":\"3fdd7736-d1d9-11ec-ad3d-da7ad0900002\"}]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:34 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/users/4029e0ee-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:52:34 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/3fdd7736-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:52:34 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Add_a_user_to_a_role_returns_OK_response-1652349154\"},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"roles\",\"id\":\"3fdd7736-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Add_a_user_to_a_role_returns_OK_response-1652349154\",\"created_at\":\"2022-05-12T09:52:35.122733+00:00\",\"modified_at\":\"2022-05-12T09:52:35.185756+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:34 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"email\":\"Test-Add_a_user_to_a_role_returns_OK_response-1652349154@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/users" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"users\",\"id\":\"4029e0ee-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":null,\"handle\":\"test-add_a_user_to_a_role_returns_ok_response-1652349154@datadoghq.com\",\"created_at\":\"2022-05-12T09:52:35.620596+00:00\",\"modified_at\":\"2022-05-12T09:52:35.671108+00:00\",\"email\":\"test-add_a_user_to_a_role_returns_ok_response-1652349154@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/52c0438135b57a777a2f1ec09acfded3?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:34 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"id\":\"4029e0ee-d1d9-11ec-ad3d-da7ad0900002\",\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles/3fdd7736-d1d9-11ec-ad3d-da7ad0900002/users" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"total_count\":1}},\"data\":[{\"type\":\"users\",\"id\":\"4029e0ee-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":null,\"handle\":\"test-add_a_user_to_a_role_returns_ok_response-1652349154@datadoghq.com\",\"created_at\":\"2022-05-12T09:52:35.620596+00:00\",\"modified_at\":\"2022-05-12T09:52:35.671108+00:00\",\"email\":\"test-add_a_user_to_a_role_returns_ok_response-1652349154@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/52c0438135b57a777a2f1ec09acfded3?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[{\"type\":\"roles\",\"id\":\"3fdd7736-d1d9-11ec-ad3d-da7ad0900002\"}]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:34 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/users/4029e0ee-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:34 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/3fdd7736-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:34 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/roles/Create-a-new-role-by-cloning-an-existing-role-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/roles/Create-a-new-role-by-cloning-an-existing-role-returns-Bad-Request-response.json index 0562a4340..78a05a56e 100644 --- a/tests/scenarios/cassettes/v2/roles/Create-a-new-role-by-cloning-an-existing-role-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/roles/Create-a-new-role-by-cloning-an-existing-role-returns-Bad-Request-response.json @@ -1 +1,97 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_a_new_role_by_cloning_an_existing_role_returns_Bad_Request_response-1652349157\"},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles"}, "response": {"body": {"string": "{\"data\":{\"type\":\"roles\",\"id\":\"416935ae-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Create_a_new_role_by_cloning_an_existing_role_returns_Bad_Request_response-1652349157\",\"created_at\":\"2022-05-12T09:52:37.715539+00:00\",\"modified_at\":\"2022-05-12T09:52:37.778432+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:37 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\" \"},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles/416935ae-d1d9-11ec-ad3d-da7ad0900002/clone"}, "response": {"body": {"string": "{\"errors\": [\"Role names cannot be only whitespace\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Thu, 12 May 2022 09:52:37 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/416935ae-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:52:37 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_a_new_role_by_cloning_an_existing_role_returns_Bad_Request_response-1652349157\"},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"roles\",\"id\":\"416935ae-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Create_a_new_role_by_cloning_an_existing_role_returns_Bad_Request_response-1652349157\",\"created_at\":\"2022-05-12T09:52:37.715539+00:00\",\"modified_at\":\"2022-05-12T09:52:37.778432+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:37 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\" \"},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles/416935ae-d1d9-11ec-ad3d-da7ad0900002/clone" + }, + "response": { + "body": { + "string": "{\"errors\": [\"Role names cannot be only whitespace\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:37 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/416935ae-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:37 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/roles/Create-a-new-role-by-cloning-an-existing-role-returns-Conflict-response.json b/tests/scenarios/cassettes/v2/roles/Create-a-new-role-by-cloning-an-existing-role-returns-Conflict-response.json index 99c0dc030..2edeba36f 100644 --- a/tests/scenarios/cassettes/v2/roles/Create-a-new-role-by-cloning-an-existing-role-returns-Conflict-response.json +++ b/tests/scenarios/cassettes/v2/roles/Create-a-new-role-by-cloning-an-existing-role-returns-Conflict-response.json @@ -1 +1,97 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_a_new_role_by_cloning_an_existing_role_returns_Conflict_response-1652349158\"},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles"}, "response": {"body": {"string": "{\"data\":{\"type\":\"roles\",\"id\":\"42519ea2-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Create_a_new_role_by_cloning_an_existing_role_returns_Conflict_response-1652349158\",\"created_at\":\"2022-05-12T09:52:39.238726+00:00\",\"modified_at\":\"2022-05-12T09:52:39.302013+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:38 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_a_new_role_by_cloning_an_existing_role_returns_Conflict_response-1652349158\"},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles/42519ea2-d1d9-11ec-ad3d-da7ad0900002/clone"}, "response": {"body": {"string": "{\"errors\": [\"A role with the same name already exists\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 409, "message": "Conflict"}}, "recorded_at": "Thu, 12 May 2022 09:52:38 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/42519ea2-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:52:38 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_a_new_role_by_cloning_an_existing_role_returns_Conflict_response-1652349158\"},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"roles\",\"id\":\"42519ea2-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Create_a_new_role_by_cloning_an_existing_role_returns_Conflict_response-1652349158\",\"created_at\":\"2022-05-12T09:52:39.238726+00:00\",\"modified_at\":\"2022-05-12T09:52:39.302013+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:38 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_a_new_role_by_cloning_an_existing_role_returns_Conflict_response-1652349158\"},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles/42519ea2-d1d9-11ec-ad3d-da7ad0900002/clone" + }, + "response": { + "body": { + "string": "{\"errors\": [\"A role with the same name already exists\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 409, + "message": "Conflict" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:38 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/42519ea2-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:38 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/roles/Create-a-new-role-by-cloning-an-existing-role-returns-OK-response.json b/tests/scenarios/cassettes/v2/roles/Create-a-new-role-by-cloning-an-existing-role-returns-OK-response.json index 2fb2076a5..42cde8de2 100644 --- a/tests/scenarios/cassettes/v2/roles/Create-a-new-role-by-cloning-an-existing-role-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/roles/Create-a-new-role-by-cloning-an-existing-role-returns-OK-response.json @@ -1 +1,121 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_a_new_role_by_cloning_an_existing_role_returns_OK_response-1652349160\"},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles"}, "response": {"body": {"string": "{\"data\":{\"type\":\"roles\",\"id\":\"436017a6-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Create_a_new_role_by_cloning_an_existing_role_returns_OK_response-1652349160\",\"created_at\":\"2022-05-12T09:52:41.011684+00:00\",\"modified_at\":\"2022-05-12T09:52:41.081616+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:40 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_a_new_role_by_cloning_an_existing_role_returns_OK_response-1652349160 clone\"},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles/436017a6-d1d9-11ec-ad3d-da7ad0900002/clone"}, "response": {"body": {"string": "{\"data\":{\"type\":\"roles\",\"id\":\"43c71ad2-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Create_a_new_role_by_cloning_an_existing_role_returns_OK_response-1652349160 clone\",\"created_at\":\"2022-05-12T09:52:41.686533+00:00\",\"modified_at\":\"2022-05-12T09:52:41.738002+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:40 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/43c71ad2-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:52:40 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/436017a6-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:52:40 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_a_new_role_by_cloning_an_existing_role_returns_OK_response-1652349160\"},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"roles\",\"id\":\"436017a6-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Create_a_new_role_by_cloning_an_existing_role_returns_OK_response-1652349160\",\"created_at\":\"2022-05-12T09:52:41.011684+00:00\",\"modified_at\":\"2022-05-12T09:52:41.081616+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:40 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_a_new_role_by_cloning_an_existing_role_returns_OK_response-1652349160 clone\"},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles/436017a6-d1d9-11ec-ad3d-da7ad0900002/clone" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"roles\",\"id\":\"43c71ad2-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Create_a_new_role_by_cloning_an_existing_role_returns_OK_response-1652349160 clone\",\"created_at\":\"2022-05-12T09:52:41.686533+00:00\",\"modified_at\":\"2022-05-12T09:52:41.738002+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:40 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/43c71ad2-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:40 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/436017a6-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:40 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/roles/Create-role-returns-OK-response.json b/tests/scenarios/cassettes/v2/roles/Create-role-returns-OK-response.json index 64d9bca9c..8f974122f 100644 --- a/tests/scenarios/cassettes/v2/roles/Create-role-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/roles/Create-role-returns-OK-response.json @@ -1 +1,63 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_role_returns_OK_response-1652349162\"},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles"}, "response": {"body": {"string": "{\"data\":{\"type\":\"roles\",\"id\":\"44c8b5ee-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Create_role_returns_OK_response-1652349162\",\"created_at\":\"2022-05-12T09:52:43.374397+00:00\",\"modified_at\":\"2022-05-12T09:52:43.421394+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:42 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/44c8b5ee-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:52:42 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_role_returns_OK_response-1652349162\"},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"roles\",\"id\":\"44c8b5ee-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Create_role_returns_OK_response-1652349162\",\"created_at\":\"2022-05-12T09:52:43.374397+00:00\",\"modified_at\":\"2022-05-12T09:52:43.421394+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:42 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/44c8b5ee-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:42 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/roles/Delete-role-returns-OK-response.json b/tests/scenarios/cassettes/v2/roles/Delete-role-returns-OK-response.json index 5dd05c7ac..17532594d 100644 --- a/tests/scenarios/cassettes/v2/roles/Delete-role-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/roles/Delete-role-returns-OK-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Delete_role_returns_OK_response-1652349164\"},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles"}, "response": {"body": {"string": "{\"data\":{\"type\":\"roles\",\"id\":\"458463ac-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Delete_role_returns_OK_response-1652349164\",\"created_at\":\"2022-05-12T09:52:44.604665+00:00\",\"modified_at\":\"2022-05-12T09:52:44.680814+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:44 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/458463ac-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:52:44 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/458463ac-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "{\"errors\": [\"458463ac-d1d9-11ec-ad3d-da7ad0900002 not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 12 May 2022 09:52:44 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Delete_role_returns_OK_response-1652349164\"},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"roles\",\"id\":\"458463ac-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Delete_role_returns_OK_response-1652349164\",\"created_at\":\"2022-05-12T09:52:44.604665+00:00\",\"modified_at\":\"2022-05-12T09:52:44.680814+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:44 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/458463ac-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:44 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/458463ac-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "{\"errors\": [\"458463ac-d1d9-11ec-ad3d-da7ad0900002 not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:44 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/roles/Get-a-role-returns-OK-response.json b/tests/scenarios/cassettes/v2/roles/Get-a-role-returns-OK-response.json index e6c1cc4c1..98df7b63a 100644 --- a/tests/scenarios/cassettes/v2/roles/Get-a-role-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/roles/Get-a-role-returns-OK-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Get_a_role_returns_OK_response-1652349165\"},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles"}, "response": {"body": {"string": "{\"data\":{\"type\":\"roles\",\"id\":\"466885b4-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Get_a_role_returns_OK_response-1652349165\",\"created_at\":\"2022-05-12T09:52:46.100371+00:00\",\"modified_at\":\"2022-05-12T09:52:46.212685+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:45 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/roles/466885b4-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "{\"data\":{\"type\":\"roles\",\"id\":\"466885b4-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Get_a_role_returns_OK_response-1652349165\",\"created_at\":\"2022-05-12T09:52:46.100371+00:00\",\"modified_at\":\"2022-05-12T09:52:46.212685+00:00\",\"user_count\":0},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:45 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/466885b4-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:52:45 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Get_a_role_returns_OK_response-1652349165\"},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"roles\",\"id\":\"466885b4-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Get_a_role_returns_OK_response-1652349165\",\"created_at\":\"2022-05-12T09:52:46.100371+00:00\",\"modified_at\":\"2022-05-12T09:52:46.212685+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:45 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/roles/466885b4-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"roles\",\"id\":\"466885b4-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Get_a_role_returns_OK_response-1652349165\",\"created_at\":\"2022-05-12T09:52:46.100371+00:00\",\"modified_at\":\"2022-05-12T09:52:46.212685+00:00\",\"user_count\":0},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:45 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/466885b4-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:45 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/roles/Get-all-users-of-a-role-returns-OK-response.json b/tests/scenarios/cassettes/v2/roles/Get-all-users-of-a-role-returns-OK-response.json index 5524862d6..ba9092d78 100644 --- a/tests/scenarios/cassettes/v2/roles/Get-all-users-of-a-role-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/roles/Get-all-users-of-a-role-returns-OK-response.json @@ -1 +1,183 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Get_all_users_of_a_role_returns_OK_response-1652349167\"},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles"}, "response": {"body": {"string": "{\"data\":{\"type\":\"roles\",\"id\":\"474eac06-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Get_all_users_of_a_role_returns_OK_response-1652349167\",\"created_at\":\"2022-05-12T09:52:47.608064+00:00\",\"modified_at\":\"2022-05-12T09:52:47.653784+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:47 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"Test-Get_all_users_of_a_role_returns_OK_response-1652349167@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/users"}, "response": {"body": {"string": "{\"data\":{\"type\":\"users\",\"id\":\"4798bdaa-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":null,\"handle\":\"test-get_all_users_of_a_role_returns_ok_response-1652349167@datadoghq.com\",\"created_at\":\"2022-05-12T09:52:48.092980+00:00\",\"modified_at\":\"2022-05-12T09:52:48.142985+00:00\",\"email\":\"test-get_all_users_of_a_role_returns_ok_response-1652349167@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/3dbaff4435479cd8daaeb6227c1b4406?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:52:47 GMT"}, {"request": {"body": {"string": "{\"data\":{\"id\":\"4798bdaa-d1d9-11ec-ad3d-da7ad0900002\",\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles/474eac06-d1d9-11ec-ad3d-da7ad0900002/users"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"total_count\":1}},\"data\":[{\"type\":\"users\",\"id\":\"4798bdaa-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":null,\"handle\":\"test-get_all_users_of_a_role_returns_ok_response-1652349167@datadoghq.com\",\"created_at\":\"2022-05-12T09:52:48.092980+00:00\",\"modified_at\":\"2022-05-12T09:52:48.142985+00:00\",\"email\":\"test-get_all_users_of_a_role_returns_ok_response-1652349167@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/3dbaff4435479cd8daaeb6227c1b4406?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[{\"type\":\"roles\",\"id\":\"474eac06-d1d9-11ec-ad3d-da7ad0900002\"}]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:47 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/roles/474eac06-d1d9-11ec-ad3d-da7ad0900002/users"}, "response": {"body": {"string": "{\"included\":[{\"type\":\"roles\",\"id\":\"474eac06-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Get_all_users_of_a_role_returns_OK_response-1652349167\",\"created_at\":\"2022-05-12T09:52:47.608064+00:00\",\"modified_at\":\"2022-05-12T09:52:47.653784+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}],\"meta\":{\"page\":{\"total_filtered_count\":1,\"total_count\":1}},\"data\":[{\"type\":\"users\",\"id\":\"4798bdaa-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":null,\"handle\":\"test-get_all_users_of_a_role_returns_ok_response-1652349167@datadoghq.com\",\"created_at\":\"2022-05-12T09:52:48.092980+00:00\",\"modified_at\":\"2022-05-12T09:52:48.142985+00:00\",\"email\":\"test-get_all_users_of_a_role_returns_ok_response-1652349167@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/3dbaff4435479cd8daaeb6227c1b4406?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[{\"type\":\"roles\",\"id\":\"474eac06-d1d9-11ec-ad3d-da7ad0900002\"}]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:47 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/users/4798bdaa-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:52:47 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/474eac06-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:52:47 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Get_all_users_of_a_role_returns_OK_response-1652349167\"},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"roles\",\"id\":\"474eac06-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Get_all_users_of_a_role_returns_OK_response-1652349167\",\"created_at\":\"2022-05-12T09:52:47.608064+00:00\",\"modified_at\":\"2022-05-12T09:52:47.653784+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:47 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"email\":\"Test-Get_all_users_of_a_role_returns_OK_response-1652349167@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/users" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"users\",\"id\":\"4798bdaa-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":null,\"handle\":\"test-get_all_users_of_a_role_returns_ok_response-1652349167@datadoghq.com\",\"created_at\":\"2022-05-12T09:52:48.092980+00:00\",\"modified_at\":\"2022-05-12T09:52:48.142985+00:00\",\"email\":\"test-get_all_users_of_a_role_returns_ok_response-1652349167@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/3dbaff4435479cd8daaeb6227c1b4406?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:47 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"id\":\"4798bdaa-d1d9-11ec-ad3d-da7ad0900002\",\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles/474eac06-d1d9-11ec-ad3d-da7ad0900002/users" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"total_count\":1}},\"data\":[{\"type\":\"users\",\"id\":\"4798bdaa-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":null,\"handle\":\"test-get_all_users_of_a_role_returns_ok_response-1652349167@datadoghq.com\",\"created_at\":\"2022-05-12T09:52:48.092980+00:00\",\"modified_at\":\"2022-05-12T09:52:48.142985+00:00\",\"email\":\"test-get_all_users_of_a_role_returns_ok_response-1652349167@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/3dbaff4435479cd8daaeb6227c1b4406?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[{\"type\":\"roles\",\"id\":\"474eac06-d1d9-11ec-ad3d-da7ad0900002\"}]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:47 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/roles/474eac06-d1d9-11ec-ad3d-da7ad0900002/users" + }, + "response": { + "body": { + "string": "{\"included\":[{\"type\":\"roles\",\"id\":\"474eac06-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Get_all_users_of_a_role_returns_OK_response-1652349167\",\"created_at\":\"2022-05-12T09:52:47.608064+00:00\",\"modified_at\":\"2022-05-12T09:52:47.653784+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}],\"meta\":{\"page\":{\"total_filtered_count\":1,\"total_count\":1}},\"data\":[{\"type\":\"users\",\"id\":\"4798bdaa-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":null,\"handle\":\"test-get_all_users_of_a_role_returns_ok_response-1652349167@datadoghq.com\",\"created_at\":\"2022-05-12T09:52:48.092980+00:00\",\"modified_at\":\"2022-05-12T09:52:48.142985+00:00\",\"email\":\"test-get_all_users_of_a_role_returns_ok_response-1652349167@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/3dbaff4435479cd8daaeb6227c1b4406?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[{\"type\":\"roles\",\"id\":\"474eac06-d1d9-11ec-ad3d-da7ad0900002\"}]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:47 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/users/4798bdaa-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:47 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/474eac06-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:47 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/roles/Grant-permission-to-a-role-returns-OK-response.json b/tests/scenarios/cassettes/v2/roles/Grant-permission-to-a-role-returns-OK-response.json index e142e4f6e..5cad7423b 100644 --- a/tests/scenarios/cassettes/v2/roles/Grant-permission-to-a-role-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/roles/Grant-permission-to-a-role-returns-OK-response.json @@ -1 +1,125 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Grant_permission_to_a_role_returns_OK_response-1652349170\"},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles"}, "response": {"body": {"string": "{\"data\":{\"type\":\"roles\",\"id\":\"490d52ea-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Grant_permission_to_a_role_returns_OK_response-1652349170\",\"created_at\":\"2022-05-12T09:52:50.535223+00:00\",\"modified_at\":\"2022-05-12T09:52:50.598726+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:50 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/permissions"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"attributes\":{\"name\":\"admin\",\"display_name\":\"Privileged Access\",\"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.\",\"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\":\"View and edit components in your Datadog organization that do not have explicitly defined permissions. This includes configuring integrations (from the UI), SLOs, events, most facets, and saved views.\",\"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\":\"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. Restrictions are limited to the Log Management product.\",\"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\":\"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.\",\"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\",\"description\":\"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\":\"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\":\"Add and change log pipeline configurations, including the ability to grant the Logs Write Processors permission to other roles, for some or all pipelines.\",\"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\":\"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 Write Archives\",\"description\":\"Add and edit Log Archives.\",\"created\":\"2018-10-31T13:40:29.040786+00:00\",\"group_name\":\"Logs\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"979df720-aed7-11e9-99c6-a7eb8373165a\",\"attributes\":{\"name\":\"logs_generate_metrics\",\"display_name\":\"Logs Generate Metrics\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"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 Public Share\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"Edit, 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 Downtime\",\"description\":\"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\":\"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.\",\"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 Read Archives\",\"description\":\"Read Log 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\":\"Security Rules Read\",\"description\":\"Read Detection Rules.\",\"created\":\"2020-06-09T13:52:25.279909+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7b516476-aa58-11ea-95e2-93718cd56369\",\"attributes\":{\"name\":\"security_monitoring_rules_write\",\"display_name\":\"Security Rules Write\",\"description\":\"Create and edit Detection Rules.\",\"created\":\"2020-06-09T13:52:39.099413+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"80de1ec0-aa58-11ea-95e2-aff381626d5d\",\"attributes\":{\"name\":\"security_monitoring_signals_read\",\"display_name\":\"Security Signals Read\",\"description\":\"View Security Signals.\",\"created\":\"2020-06-09T13:52:48.410398+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"58b412cc-ff6d-11eb-bc9c-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_signals_write\",\"display_name\":\"Security Signals Write\",\"description\":\"Modify Security Signals.\",\"created\":\"2021-08-17T15:11:06.963503+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"9ac1d8cc-e707-11ea-aa2d-73d37e989a9d\",\"attributes\":{\"name\":\"user_access_invite\",\"display_name\":\"User Access Invite\",\"description\":\"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\":\"User Access Manage\",\"description\":\"Disable users, manage user roles, manage SAML-to-role mappings, and configure logs restriction queries.\",\"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 App Keys\",\"description\":\"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\":\"Org App Keys Read\",\"description\":\"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\":\"Org App Keys Write\",\"description\":\"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\":\"Synthetics Private Location Read\",\"description\":\"View, search, and use in tests the list of available private locations.\",\"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\":\"Synthetics Private Location Write\",\"description\":\"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 Read\",\"description\":\"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 Edit\",\"description\":\"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 Read\",\"description\":\"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 Edit\",\"description\":\"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\":\"Metric Tags Write\",\"description\":\"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 Write Historical View\",\"description\":\"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 Read\",\"description\":\"View Audit Logs in your organization.\",\"created\":\"2020-09-17T20:20:10.834252+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"372896c4-f923-11ea-adbc-4fecd107156d\",\"attributes\":{\"name\":\"api_keys_read\",\"display_name\":\"API Keys Read\",\"description\":\"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 Write\",\"description\":\"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\":\"Synthetics Global Variable Read\",\"description\":\"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\":\"Synthetics Global Variable Write\",\"description\":\"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\":\"Synthetics Read\",\"description\":\"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\":\"Synthetics Write\",\"description\":\"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\":\"Synthetics Default Settings Read\",\"description\":\"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\":\"Synthetics Default Settings Write\",\"description\":\"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 Write Facets\",\"description\":\"Create or edit Log 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 Account Write\",\"description\":\"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\",\"description\":\"Use the Integrations APIs to configure integrations. In order to configure integrations from the UI, a user must have Standard Access instead.\",\"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\",\"description\":\"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\":\"APM Retention Filter Read\",\"description\":\"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\":\"APM Retention Filter Write\",\"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.\",\"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\":\"APM Service Ingest Read\",\"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.\",\"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\":\"APM Service Ingest Write\",\"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.\",\"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\":\"APM Apdex Manage Write\",\"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.\",\"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\":\"APM Tag Management Write\",\"description\":\"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\":\"APM Primary Operation Write\",\"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.\",\"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 Write\",\"description\":\"Configure Audit Logs in your organization.\",\"created\":\"2020-12-01T19:18:39.866516+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"8106300a-54f7-11eb-8cbc-7781a434a67b\",\"attributes\":{\"name\":\"rum_apps_write\",\"display_name\":\"RUM Apps Write\",\"description\":\"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 Read\",\"description\":\"View Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.394971+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7d-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_write\",\"display_name\":\"Data Scanner Write\",\"description\":\"Edit Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.398584+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\",\"attributes\":{\"name\":\"org_management\",\"display_name\":\"Org Management\",\"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 & unsubscribing from apps in the marketplace.\",\"created\":\"2021-04-23T17:51:12.187340+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 Read\",\"description\":\"Read Security Filters.\",\"created\":\"2021-05-10T08:56:23.676833+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"98b984f5-b16d-11eb-a2c6-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_filters_write\",\"display_name\":\"Security Filters Write\",\"description\":\"Create, edit, and delete Security Filters.\",\"created\":\"2021-05-10T08:56:23.680551+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incident Read\",\"description\":\"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\":\"Incident Write\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"Configure Incidents 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 Read\",\"description\":\"View Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.595771+00:00\",\"group_name\":\"Cloud Security Platform\",\"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 Write\",\"description\":\"Edit Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.598808+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"RUM Session Replay Read\",\"description\":\"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\":\"Security Notification Rules Read\",\"description\":\"Read Notification Rules.\",\"created\":\"2021-09-16T08:26:27.366789+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"c95412b9-16c7-11ec-85c0-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_notification_profiles_write\",\"display_name\":\"Security Notification Rules Write\",\"description\":\"Create, edit, and delete Notification Rules.\",\"created\":\"2021-09-16T08:26:27.369359+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"26c79920-1703-11ec-85d2-da7ad0900002\",\"attributes\":{\"name\":\"apm_generate_metrics\",\"display_name\":\"APM Generate Metrics\",\"description\":\"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\":\"APM Pipelines Write\",\"description\":\"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\":\"APM Pipelines Read\",\"description\":\"View APM pipeline configurations.\",\"created\":\"2021-12-07T11:26:43.807269+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb4-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_read\",\"display_name\":\"Pipeline Configurations Read\",\"description\":\"View pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.956827+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb5-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_write\",\"display_name\":\"Pipeline Configurations Write\",\"description\":\"Create, edit, and delete pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.960833+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7a89ec40-8b69-11ec-812d-da7ad0900002\",\"attributes\":{\"name\":\"incidents_private_global_access\",\"display_name\":\"Private Incidents Global Access\",\"description\":\"Access all private incidents in Datadog, even when not added as a responder.\",\"created\":\"2022-02-11T18:36:08.531989+00:00\",\"group_name\":\"Incidents\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"b6bf9ac7-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_write\",\"display_name\":\"Notebooks Write\",\"description\":\"Create and change notebooks.\",\"created\":\"2022-03-02T18:51:05.044683+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"2108215e-b9b4-11ec-958e-da7ad0900002\",\"attributes\":{\"name\":\"rum_generate_metrics\",\"display_name\":\"RUM Generate Metrics\",\"description\":\"Create custom metrics from RUM events.\",\"created\":\"2022-04-11T16:26:24.106645+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:50 GMT"}, {"request": {"body": {"string": "{\"data\":{\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"type\":\"permissions\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles/490d52ea-d1d9-11ec-ad3d-da7ad0900002/permissions"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"attributes\":{\"name\":\"admin\",\"display_name\":\"Privileged Access\",\"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.\",\"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\":\"View and edit components in your Datadog organization that do not have explicitly defined permissions. This includes configuring integrations (from the UI), SLOs, events, most facets, and saved views.\",\"created\":\"2018-10-19T15:35:23.756736+00:00\",\"group_name\":\"General\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\",\"attributes\":{\"name\":\"dashboards_read\",\"display_name\":\"Dashboards Read\",\"description\":\"View dashboards.\",\"created\":\"2019-09-10T14:39:51.955175+00:00\",\"group_name\":\"Dashboards\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\",\"attributes\":{\"name\":\"monitors_read\",\"display_name\":\"Monitors Read\",\"description\":\"View monitors.\",\"created\":\"2019-09-16T18:39:07.744297+00:00\",\"group_name\":\"Monitors\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\",\"attributes\":{\"name\":\"apm_read\",\"display_name\":\"APM Read\",\"description\":\"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\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\",\"attributes\":{\"name\":\"org_management\",\"display_name\":\"Org Management\",\"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 & unsubscribing from apps in the marketplace.\",\"created\":\"2021-04-23T17:51:12.187340+00:00\",\"group_name\":\"Access Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incident Read\",\"description\":\"View incidents in Datadog.\",\"created\":\"2021-06-22T15:11:09.255499+00:00\",\"group_name\":\"Incidents\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\",\"attributes\":{\"name\":\"appsec_event_rule_read\",\"display_name\":\"Application Security Event Rules Read\",\"description\":\"View Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.595771+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:50 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/490d52ea-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:52:50 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Grant_permission_to_a_role_returns_OK_response-1652349170\"},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"roles\",\"id\":\"490d52ea-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Grant_permission_to_a_role_returns_OK_response-1652349170\",\"created_at\":\"2022-05-12T09:52:50.535223+00:00\",\"modified_at\":\"2022-05-12T09:52:50.598726+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:50 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/permissions" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"attributes\":{\"name\":\"admin\",\"display_name\":\"Privileged Access\",\"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.\",\"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\":\"View and edit components in your Datadog organization that do not have explicitly defined permissions. This includes configuring integrations (from the UI), SLOs, events, most facets, and saved views.\",\"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\":\"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. Restrictions are limited to the Log Management product.\",\"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\":\"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.\",\"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\",\"description\":\"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\":\"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\":\"Add and change log pipeline configurations, including the ability to grant the Logs Write Processors permission to other roles, for some or all pipelines.\",\"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\":\"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 Write Archives\",\"description\":\"Add and edit Log Archives.\",\"created\":\"2018-10-31T13:40:29.040786+00:00\",\"group_name\":\"Logs\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"979df720-aed7-11e9-99c6-a7eb8373165a\",\"attributes\":{\"name\":\"logs_generate_metrics\",\"display_name\":\"Logs Generate Metrics\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"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 Public Share\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"Edit, 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 Downtime\",\"description\":\"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\":\"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.\",\"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 Read Archives\",\"description\":\"Read Log 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\":\"Security Rules Read\",\"description\":\"Read Detection Rules.\",\"created\":\"2020-06-09T13:52:25.279909+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7b516476-aa58-11ea-95e2-93718cd56369\",\"attributes\":{\"name\":\"security_monitoring_rules_write\",\"display_name\":\"Security Rules Write\",\"description\":\"Create and edit Detection Rules.\",\"created\":\"2020-06-09T13:52:39.099413+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"80de1ec0-aa58-11ea-95e2-aff381626d5d\",\"attributes\":{\"name\":\"security_monitoring_signals_read\",\"display_name\":\"Security Signals Read\",\"description\":\"View Security Signals.\",\"created\":\"2020-06-09T13:52:48.410398+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"58b412cc-ff6d-11eb-bc9c-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_signals_write\",\"display_name\":\"Security Signals Write\",\"description\":\"Modify Security Signals.\",\"created\":\"2021-08-17T15:11:06.963503+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"9ac1d8cc-e707-11ea-aa2d-73d37e989a9d\",\"attributes\":{\"name\":\"user_access_invite\",\"display_name\":\"User Access Invite\",\"description\":\"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\":\"User Access Manage\",\"description\":\"Disable users, manage user roles, manage SAML-to-role mappings, and configure logs restriction queries.\",\"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 App Keys\",\"description\":\"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\":\"Org App Keys Read\",\"description\":\"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\":\"Org App Keys Write\",\"description\":\"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\":\"Synthetics Private Location Read\",\"description\":\"View, search, and use in tests the list of available private locations.\",\"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\":\"Synthetics Private Location Write\",\"description\":\"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 Read\",\"description\":\"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 Edit\",\"description\":\"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 Read\",\"description\":\"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 Edit\",\"description\":\"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\":\"Metric Tags Write\",\"description\":\"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 Write Historical View\",\"description\":\"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 Read\",\"description\":\"View Audit Logs in your organization.\",\"created\":\"2020-09-17T20:20:10.834252+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"372896c4-f923-11ea-adbc-4fecd107156d\",\"attributes\":{\"name\":\"api_keys_read\",\"display_name\":\"API Keys Read\",\"description\":\"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 Write\",\"description\":\"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\":\"Synthetics Global Variable Read\",\"description\":\"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\":\"Synthetics Global Variable Write\",\"description\":\"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\":\"Synthetics Read\",\"description\":\"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\":\"Synthetics Write\",\"description\":\"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\":\"Synthetics Default Settings Read\",\"description\":\"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\":\"Synthetics Default Settings Write\",\"description\":\"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 Write Facets\",\"description\":\"Create or edit Log 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 Account Write\",\"description\":\"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\",\"description\":\"Use the Integrations APIs to configure integrations. In order to configure integrations from the UI, a user must have Standard Access instead.\",\"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\",\"description\":\"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\":\"APM Retention Filter Read\",\"description\":\"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\":\"APM Retention Filter Write\",\"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.\",\"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\":\"APM Service Ingest Read\",\"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.\",\"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\":\"APM Service Ingest Write\",\"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.\",\"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\":\"APM Apdex Manage Write\",\"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.\",\"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\":\"APM Tag Management Write\",\"description\":\"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\":\"APM Primary Operation Write\",\"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.\",\"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 Write\",\"description\":\"Configure Audit Logs in your organization.\",\"created\":\"2020-12-01T19:18:39.866516+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"8106300a-54f7-11eb-8cbc-7781a434a67b\",\"attributes\":{\"name\":\"rum_apps_write\",\"display_name\":\"RUM Apps Write\",\"description\":\"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 Read\",\"description\":\"View Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.394971+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7d-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_write\",\"display_name\":\"Data Scanner Write\",\"description\":\"Edit Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.398584+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\",\"attributes\":{\"name\":\"org_management\",\"display_name\":\"Org Management\",\"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 & unsubscribing from apps in the marketplace.\",\"created\":\"2021-04-23T17:51:12.187340+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 Read\",\"description\":\"Read Security Filters.\",\"created\":\"2021-05-10T08:56:23.676833+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"98b984f5-b16d-11eb-a2c6-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_filters_write\",\"display_name\":\"Security Filters Write\",\"description\":\"Create, edit, and delete Security Filters.\",\"created\":\"2021-05-10T08:56:23.680551+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incident Read\",\"description\":\"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\":\"Incident Write\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"Configure Incidents 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 Read\",\"description\":\"View Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.595771+00:00\",\"group_name\":\"Cloud Security Platform\",\"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 Write\",\"description\":\"Edit Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.598808+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"RUM Session Replay Read\",\"description\":\"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\":\"Security Notification Rules Read\",\"description\":\"Read Notification Rules.\",\"created\":\"2021-09-16T08:26:27.366789+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"c95412b9-16c7-11ec-85c0-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_notification_profiles_write\",\"display_name\":\"Security Notification Rules Write\",\"description\":\"Create, edit, and delete Notification Rules.\",\"created\":\"2021-09-16T08:26:27.369359+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"26c79920-1703-11ec-85d2-da7ad0900002\",\"attributes\":{\"name\":\"apm_generate_metrics\",\"display_name\":\"APM Generate Metrics\",\"description\":\"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\":\"APM Pipelines Write\",\"description\":\"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\":\"APM Pipelines Read\",\"description\":\"View APM pipeline configurations.\",\"created\":\"2021-12-07T11:26:43.807269+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb4-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_read\",\"display_name\":\"Pipeline Configurations Read\",\"description\":\"View pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.956827+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb5-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_write\",\"display_name\":\"Pipeline Configurations Write\",\"description\":\"Create, edit, and delete pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.960833+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7a89ec40-8b69-11ec-812d-da7ad0900002\",\"attributes\":{\"name\":\"incidents_private_global_access\",\"display_name\":\"Private Incidents Global Access\",\"description\":\"Access all private incidents in Datadog, even when not added as a responder.\",\"created\":\"2022-02-11T18:36:08.531989+00:00\",\"group_name\":\"Incidents\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"b6bf9ac7-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_write\",\"display_name\":\"Notebooks Write\",\"description\":\"Create and change notebooks.\",\"created\":\"2022-03-02T18:51:05.044683+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"2108215e-b9b4-11ec-958e-da7ad0900002\",\"attributes\":{\"name\":\"rum_generate_metrics\",\"display_name\":\"RUM Generate Metrics\",\"description\":\"Create custom metrics from RUM events.\",\"created\":\"2022-04-11T16:26:24.106645+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:50 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"type\":\"permissions\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles/490d52ea-d1d9-11ec-ad3d-da7ad0900002/permissions" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"attributes\":{\"name\":\"admin\",\"display_name\":\"Privileged Access\",\"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.\",\"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\":\"View and edit components in your Datadog organization that do not have explicitly defined permissions. This includes configuring integrations (from the UI), SLOs, events, most facets, and saved views.\",\"created\":\"2018-10-19T15:35:23.756736+00:00\",\"group_name\":\"General\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\",\"attributes\":{\"name\":\"dashboards_read\",\"display_name\":\"Dashboards Read\",\"description\":\"View dashboards.\",\"created\":\"2019-09-10T14:39:51.955175+00:00\",\"group_name\":\"Dashboards\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\",\"attributes\":{\"name\":\"monitors_read\",\"display_name\":\"Monitors Read\",\"description\":\"View monitors.\",\"created\":\"2019-09-16T18:39:07.744297+00:00\",\"group_name\":\"Monitors\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\",\"attributes\":{\"name\":\"apm_read\",\"display_name\":\"APM Read\",\"description\":\"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\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\",\"attributes\":{\"name\":\"org_management\",\"display_name\":\"Org Management\",\"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 & unsubscribing from apps in the marketplace.\",\"created\":\"2021-04-23T17:51:12.187340+00:00\",\"group_name\":\"Access Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incident Read\",\"description\":\"View incidents in Datadog.\",\"created\":\"2021-06-22T15:11:09.255499+00:00\",\"group_name\":\"Incidents\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\",\"attributes\":{\"name\":\"appsec_event_rule_read\",\"display_name\":\"Application Security Event Rules Read\",\"description\":\"View Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.595771+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:50 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/490d52ea-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:50 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/roles/List-permissions-for-a-role-returns-OK-response.json b/tests/scenarios/cassettes/v2/roles/List-permissions-for-a-role-returns-OK-response.json index e554696de..08d8173ea 100644 --- a/tests/scenarios/cassettes/v2/roles/List-permissions-for-a-role-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/roles/List-permissions-for-a-role-returns-OK-response.json @@ -1 +1,153 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-List_permissions_for_a_role_returns_OK_response-1652349172\"},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles"}, "response": {"body": {"string": "{\"data\":{\"type\":\"roles\",\"id\":\"4a66ce5a-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-List_permissions_for_a_role_returns_OK_response-1652349172\",\"created_at\":\"2022-05-12T09:52:52.799503+00:00\",\"modified_at\":\"2022-05-12T09:52:52.871034+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:52 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/permissions"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"attributes\":{\"name\":\"admin\",\"display_name\":\"Privileged Access\",\"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.\",\"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\":\"View and edit components in your Datadog organization that do not have explicitly defined permissions. This includes configuring integrations (from the UI), SLOs, events, most facets, and saved views.\",\"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\":\"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. Restrictions are limited to the Log Management product.\",\"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\":\"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.\",\"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\",\"description\":\"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\":\"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\":\"Add and change log pipeline configurations, including the ability to grant the Logs Write Processors permission to other roles, for some or all pipelines.\",\"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\":\"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 Write Archives\",\"description\":\"Add and edit Log Archives.\",\"created\":\"2018-10-31T13:40:29.040786+00:00\",\"group_name\":\"Logs\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"979df720-aed7-11e9-99c6-a7eb8373165a\",\"attributes\":{\"name\":\"logs_generate_metrics\",\"display_name\":\"Logs Generate Metrics\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"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 Public Share\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"Edit, 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 Downtime\",\"description\":\"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\":\"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.\",\"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 Read Archives\",\"description\":\"Read Log 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\":\"Security Rules Read\",\"description\":\"Read Detection Rules.\",\"created\":\"2020-06-09T13:52:25.279909+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7b516476-aa58-11ea-95e2-93718cd56369\",\"attributes\":{\"name\":\"security_monitoring_rules_write\",\"display_name\":\"Security Rules Write\",\"description\":\"Create and edit Detection Rules.\",\"created\":\"2020-06-09T13:52:39.099413+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"80de1ec0-aa58-11ea-95e2-aff381626d5d\",\"attributes\":{\"name\":\"security_monitoring_signals_read\",\"display_name\":\"Security Signals Read\",\"description\":\"View Security Signals.\",\"created\":\"2020-06-09T13:52:48.410398+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"58b412cc-ff6d-11eb-bc9c-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_signals_write\",\"display_name\":\"Security Signals Write\",\"description\":\"Modify Security Signals.\",\"created\":\"2021-08-17T15:11:06.963503+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"9ac1d8cc-e707-11ea-aa2d-73d37e989a9d\",\"attributes\":{\"name\":\"user_access_invite\",\"display_name\":\"User Access Invite\",\"description\":\"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\":\"User Access Manage\",\"description\":\"Disable users, manage user roles, manage SAML-to-role mappings, and configure logs restriction queries.\",\"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 App Keys\",\"description\":\"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\":\"Org App Keys Read\",\"description\":\"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\":\"Org App Keys Write\",\"description\":\"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\":\"Synthetics Private Location Read\",\"description\":\"View, search, and use in tests the list of available private locations.\",\"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\":\"Synthetics Private Location Write\",\"description\":\"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 Read\",\"description\":\"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 Edit\",\"description\":\"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 Read\",\"description\":\"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 Edit\",\"description\":\"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\":\"Metric Tags Write\",\"description\":\"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 Write Historical View\",\"description\":\"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 Read\",\"description\":\"View Audit Logs in your organization.\",\"created\":\"2020-09-17T20:20:10.834252+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"372896c4-f923-11ea-adbc-4fecd107156d\",\"attributes\":{\"name\":\"api_keys_read\",\"display_name\":\"API Keys Read\",\"description\":\"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 Write\",\"description\":\"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\":\"Synthetics Global Variable Read\",\"description\":\"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\":\"Synthetics Global Variable Write\",\"description\":\"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\":\"Synthetics Read\",\"description\":\"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\":\"Synthetics Write\",\"description\":\"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\":\"Synthetics Default Settings Read\",\"description\":\"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\":\"Synthetics Default Settings Write\",\"description\":\"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 Write Facets\",\"description\":\"Create or edit Log 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 Account Write\",\"description\":\"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\",\"description\":\"Use the Integrations APIs to configure integrations. In order to configure integrations from the UI, a user must have Standard Access instead.\",\"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\",\"description\":\"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\":\"APM Retention Filter Read\",\"description\":\"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\":\"APM Retention Filter Write\",\"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.\",\"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\":\"APM Service Ingest Read\",\"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.\",\"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\":\"APM Service Ingest Write\",\"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.\",\"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\":\"APM Apdex Manage Write\",\"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.\",\"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\":\"APM Tag Management Write\",\"description\":\"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\":\"APM Primary Operation Write\",\"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.\",\"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 Write\",\"description\":\"Configure Audit Logs in your organization.\",\"created\":\"2020-12-01T19:18:39.866516+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"8106300a-54f7-11eb-8cbc-7781a434a67b\",\"attributes\":{\"name\":\"rum_apps_write\",\"display_name\":\"RUM Apps Write\",\"description\":\"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 Read\",\"description\":\"View Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.394971+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7d-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_write\",\"display_name\":\"Data Scanner Write\",\"description\":\"Edit Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.398584+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\",\"attributes\":{\"name\":\"org_management\",\"display_name\":\"Org Management\",\"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 & unsubscribing from apps in the marketplace.\",\"created\":\"2021-04-23T17:51:12.187340+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 Read\",\"description\":\"Read Security Filters.\",\"created\":\"2021-05-10T08:56:23.676833+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"98b984f5-b16d-11eb-a2c6-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_filters_write\",\"display_name\":\"Security Filters Write\",\"description\":\"Create, edit, and delete Security Filters.\",\"created\":\"2021-05-10T08:56:23.680551+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incident Read\",\"description\":\"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\":\"Incident Write\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"Configure Incidents 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 Read\",\"description\":\"View Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.595771+00:00\",\"group_name\":\"Cloud Security Platform\",\"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 Write\",\"description\":\"Edit Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.598808+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"RUM Session Replay Read\",\"description\":\"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\":\"Security Notification Rules Read\",\"description\":\"Read Notification Rules.\",\"created\":\"2021-09-16T08:26:27.366789+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"c95412b9-16c7-11ec-85c0-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_notification_profiles_write\",\"display_name\":\"Security Notification Rules Write\",\"description\":\"Create, edit, and delete Notification Rules.\",\"created\":\"2021-09-16T08:26:27.369359+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"26c79920-1703-11ec-85d2-da7ad0900002\",\"attributes\":{\"name\":\"apm_generate_metrics\",\"display_name\":\"APM Generate Metrics\",\"description\":\"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\":\"APM Pipelines Write\",\"description\":\"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\":\"APM Pipelines Read\",\"description\":\"View APM pipeline configurations.\",\"created\":\"2021-12-07T11:26:43.807269+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb4-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_read\",\"display_name\":\"Pipeline Configurations Read\",\"description\":\"View pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.956827+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb5-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_write\",\"display_name\":\"Pipeline Configurations Write\",\"description\":\"Create, edit, and delete pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.960833+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7a89ec40-8b69-11ec-812d-da7ad0900002\",\"attributes\":{\"name\":\"incidents_private_global_access\",\"display_name\":\"Private Incidents Global Access\",\"description\":\"Access all private incidents in Datadog, even when not added as a responder.\",\"created\":\"2022-02-11T18:36:08.531989+00:00\",\"group_name\":\"Incidents\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"b6bf9ac7-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_write\",\"display_name\":\"Notebooks Write\",\"description\":\"Create and change notebooks.\",\"created\":\"2022-03-02T18:51:05.044683+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"2108215e-b9b4-11ec-958e-da7ad0900002\",\"attributes\":{\"name\":\"rum_generate_metrics\",\"display_name\":\"RUM Generate Metrics\",\"description\":\"Create custom metrics from RUM events.\",\"created\":\"2022-04-11T16:26:24.106645+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:52 GMT"}, {"request": {"body": {"string": "{\"data\":{\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"type\":\"permissions\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles/4a66ce5a-d1d9-11ec-ad3d-da7ad0900002/permissions"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"attributes\":{\"name\":\"admin\",\"display_name\":\"Privileged Access\",\"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.\",\"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\":\"View and edit components in your Datadog organization that do not have explicitly defined permissions. This includes configuring integrations (from the UI), SLOs, events, most facets, and saved views.\",\"created\":\"2018-10-19T15:35:23.756736+00:00\",\"group_name\":\"General\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\",\"attributes\":{\"name\":\"dashboards_read\",\"display_name\":\"Dashboards Read\",\"description\":\"View dashboards.\",\"created\":\"2019-09-10T14:39:51.955175+00:00\",\"group_name\":\"Dashboards\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\",\"attributes\":{\"name\":\"monitors_read\",\"display_name\":\"Monitors Read\",\"description\":\"View monitors.\",\"created\":\"2019-09-16T18:39:07.744297+00:00\",\"group_name\":\"Monitors\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\",\"attributes\":{\"name\":\"apm_read\",\"display_name\":\"APM Read\",\"description\":\"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\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\",\"attributes\":{\"name\":\"org_management\",\"display_name\":\"Org Management\",\"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 & unsubscribing from apps in the marketplace.\",\"created\":\"2021-04-23T17:51:12.187340+00:00\",\"group_name\":\"Access Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incident Read\",\"description\":\"View incidents in Datadog.\",\"created\":\"2021-06-22T15:11:09.255499+00:00\",\"group_name\":\"Incidents\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\",\"attributes\":{\"name\":\"appsec_event_rule_read\",\"display_name\":\"Application Security Event Rules Read\",\"description\":\"View Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.595771+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:52 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/roles/4a66ce5a-d1d9-11ec-ad3d-da7ad0900002/permissions"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"attributes\":{\"name\":\"admin\",\"display_name\":\"Privileged Access\",\"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.\",\"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\":\"View and edit components in your Datadog organization that do not have explicitly defined permissions. This includes configuring integrations (from the UI), SLOs, events, most facets, and saved views.\",\"created\":\"2018-10-19T15:35:23.756736+00:00\",\"group_name\":\"General\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\",\"attributes\":{\"name\":\"dashboards_read\",\"display_name\":\"Dashboards Read\",\"description\":\"View dashboards.\",\"created\":\"2019-09-10T14:39:51.955175+00:00\",\"group_name\":\"Dashboards\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\",\"attributes\":{\"name\":\"monitors_read\",\"display_name\":\"Monitors Read\",\"description\":\"View monitors.\",\"created\":\"2019-09-16T18:39:07.744297+00:00\",\"group_name\":\"Monitors\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\",\"attributes\":{\"name\":\"apm_read\",\"display_name\":\"APM Read\",\"description\":\"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\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\",\"attributes\":{\"name\":\"org_management\",\"display_name\":\"Org Management\",\"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 & unsubscribing from apps in the marketplace.\",\"created\":\"2021-04-23T17:51:12.187340+00:00\",\"group_name\":\"Access Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incident Read\",\"description\":\"View incidents in Datadog.\",\"created\":\"2021-06-22T15:11:09.255499+00:00\",\"group_name\":\"Incidents\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\",\"attributes\":{\"name\":\"appsec_event_rule_read\",\"display_name\":\"Application Security Event Rules Read\",\"description\":\"View Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.595771+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:52 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/4a66ce5a-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:52:52 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-List_permissions_for_a_role_returns_OK_response-1652349172\"},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"roles\",\"id\":\"4a66ce5a-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-List_permissions_for_a_role_returns_OK_response-1652349172\",\"created_at\":\"2022-05-12T09:52:52.799503+00:00\",\"modified_at\":\"2022-05-12T09:52:52.871034+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:52 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/permissions" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"attributes\":{\"name\":\"admin\",\"display_name\":\"Privileged Access\",\"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.\",\"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\":\"View and edit components in your Datadog organization that do not have explicitly defined permissions. This includes configuring integrations (from the UI), SLOs, events, most facets, and saved views.\",\"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\":\"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. Restrictions are limited to the Log Management product.\",\"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\":\"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.\",\"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\",\"description\":\"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\":\"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\":\"Add and change log pipeline configurations, including the ability to grant the Logs Write Processors permission to other roles, for some or all pipelines.\",\"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\":\"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 Write Archives\",\"description\":\"Add and edit Log Archives.\",\"created\":\"2018-10-31T13:40:29.040786+00:00\",\"group_name\":\"Logs\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"979df720-aed7-11e9-99c6-a7eb8373165a\",\"attributes\":{\"name\":\"logs_generate_metrics\",\"display_name\":\"Logs Generate Metrics\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"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 Public Share\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"Edit, 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 Downtime\",\"description\":\"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\":\"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.\",\"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 Read Archives\",\"description\":\"Read Log 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\":\"Security Rules Read\",\"description\":\"Read Detection Rules.\",\"created\":\"2020-06-09T13:52:25.279909+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7b516476-aa58-11ea-95e2-93718cd56369\",\"attributes\":{\"name\":\"security_monitoring_rules_write\",\"display_name\":\"Security Rules Write\",\"description\":\"Create and edit Detection Rules.\",\"created\":\"2020-06-09T13:52:39.099413+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"80de1ec0-aa58-11ea-95e2-aff381626d5d\",\"attributes\":{\"name\":\"security_monitoring_signals_read\",\"display_name\":\"Security Signals Read\",\"description\":\"View Security Signals.\",\"created\":\"2020-06-09T13:52:48.410398+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"58b412cc-ff6d-11eb-bc9c-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_signals_write\",\"display_name\":\"Security Signals Write\",\"description\":\"Modify Security Signals.\",\"created\":\"2021-08-17T15:11:06.963503+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"9ac1d8cc-e707-11ea-aa2d-73d37e989a9d\",\"attributes\":{\"name\":\"user_access_invite\",\"display_name\":\"User Access Invite\",\"description\":\"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\":\"User Access Manage\",\"description\":\"Disable users, manage user roles, manage SAML-to-role mappings, and configure logs restriction queries.\",\"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 App Keys\",\"description\":\"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\":\"Org App Keys Read\",\"description\":\"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\":\"Org App Keys Write\",\"description\":\"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\":\"Synthetics Private Location Read\",\"description\":\"View, search, and use in tests the list of available private locations.\",\"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\":\"Synthetics Private Location Write\",\"description\":\"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 Read\",\"description\":\"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 Edit\",\"description\":\"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 Read\",\"description\":\"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 Edit\",\"description\":\"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\":\"Metric Tags Write\",\"description\":\"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 Write Historical View\",\"description\":\"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 Read\",\"description\":\"View Audit Logs in your organization.\",\"created\":\"2020-09-17T20:20:10.834252+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"372896c4-f923-11ea-adbc-4fecd107156d\",\"attributes\":{\"name\":\"api_keys_read\",\"display_name\":\"API Keys Read\",\"description\":\"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 Write\",\"description\":\"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\":\"Synthetics Global Variable Read\",\"description\":\"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\":\"Synthetics Global Variable Write\",\"description\":\"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\":\"Synthetics Read\",\"description\":\"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\":\"Synthetics Write\",\"description\":\"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\":\"Synthetics Default Settings Read\",\"description\":\"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\":\"Synthetics Default Settings Write\",\"description\":\"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 Write Facets\",\"description\":\"Create or edit Log 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 Account Write\",\"description\":\"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\",\"description\":\"Use the Integrations APIs to configure integrations. In order to configure integrations from the UI, a user must have Standard Access instead.\",\"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\",\"description\":\"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\":\"APM Retention Filter Read\",\"description\":\"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\":\"APM Retention Filter Write\",\"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.\",\"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\":\"APM Service Ingest Read\",\"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.\",\"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\":\"APM Service Ingest Write\",\"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.\",\"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\":\"APM Apdex Manage Write\",\"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.\",\"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\":\"APM Tag Management Write\",\"description\":\"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\":\"APM Primary Operation Write\",\"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.\",\"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 Write\",\"description\":\"Configure Audit Logs in your organization.\",\"created\":\"2020-12-01T19:18:39.866516+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"8106300a-54f7-11eb-8cbc-7781a434a67b\",\"attributes\":{\"name\":\"rum_apps_write\",\"display_name\":\"RUM Apps Write\",\"description\":\"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 Read\",\"description\":\"View Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.394971+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7d-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_write\",\"display_name\":\"Data Scanner Write\",\"description\":\"Edit Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.398584+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\",\"attributes\":{\"name\":\"org_management\",\"display_name\":\"Org Management\",\"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 & unsubscribing from apps in the marketplace.\",\"created\":\"2021-04-23T17:51:12.187340+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 Read\",\"description\":\"Read Security Filters.\",\"created\":\"2021-05-10T08:56:23.676833+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"98b984f5-b16d-11eb-a2c6-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_filters_write\",\"display_name\":\"Security Filters Write\",\"description\":\"Create, edit, and delete Security Filters.\",\"created\":\"2021-05-10T08:56:23.680551+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incident Read\",\"description\":\"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\":\"Incident Write\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"Configure Incidents 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 Read\",\"description\":\"View Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.595771+00:00\",\"group_name\":\"Cloud Security Platform\",\"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 Write\",\"description\":\"Edit Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.598808+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"RUM Session Replay Read\",\"description\":\"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\":\"Security Notification Rules Read\",\"description\":\"Read Notification Rules.\",\"created\":\"2021-09-16T08:26:27.366789+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"c95412b9-16c7-11ec-85c0-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_notification_profiles_write\",\"display_name\":\"Security Notification Rules Write\",\"description\":\"Create, edit, and delete Notification Rules.\",\"created\":\"2021-09-16T08:26:27.369359+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"26c79920-1703-11ec-85d2-da7ad0900002\",\"attributes\":{\"name\":\"apm_generate_metrics\",\"display_name\":\"APM Generate Metrics\",\"description\":\"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\":\"APM Pipelines Write\",\"description\":\"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\":\"APM Pipelines Read\",\"description\":\"View APM pipeline configurations.\",\"created\":\"2021-12-07T11:26:43.807269+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb4-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_read\",\"display_name\":\"Pipeline Configurations Read\",\"description\":\"View pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.956827+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb5-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_write\",\"display_name\":\"Pipeline Configurations Write\",\"description\":\"Create, edit, and delete pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.960833+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7a89ec40-8b69-11ec-812d-da7ad0900002\",\"attributes\":{\"name\":\"incidents_private_global_access\",\"display_name\":\"Private Incidents Global Access\",\"description\":\"Access all private incidents in Datadog, even when not added as a responder.\",\"created\":\"2022-02-11T18:36:08.531989+00:00\",\"group_name\":\"Incidents\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"b6bf9ac7-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_write\",\"display_name\":\"Notebooks Write\",\"description\":\"Create and change notebooks.\",\"created\":\"2022-03-02T18:51:05.044683+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"2108215e-b9b4-11ec-958e-da7ad0900002\",\"attributes\":{\"name\":\"rum_generate_metrics\",\"display_name\":\"RUM Generate Metrics\",\"description\":\"Create custom metrics from RUM events.\",\"created\":\"2022-04-11T16:26:24.106645+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:52 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"type\":\"permissions\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles/4a66ce5a-d1d9-11ec-ad3d-da7ad0900002/permissions" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"attributes\":{\"name\":\"admin\",\"display_name\":\"Privileged Access\",\"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.\",\"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\":\"View and edit components in your Datadog organization that do not have explicitly defined permissions. This includes configuring integrations (from the UI), SLOs, events, most facets, and saved views.\",\"created\":\"2018-10-19T15:35:23.756736+00:00\",\"group_name\":\"General\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\",\"attributes\":{\"name\":\"dashboards_read\",\"display_name\":\"Dashboards Read\",\"description\":\"View dashboards.\",\"created\":\"2019-09-10T14:39:51.955175+00:00\",\"group_name\":\"Dashboards\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\",\"attributes\":{\"name\":\"monitors_read\",\"display_name\":\"Monitors Read\",\"description\":\"View monitors.\",\"created\":\"2019-09-16T18:39:07.744297+00:00\",\"group_name\":\"Monitors\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\",\"attributes\":{\"name\":\"apm_read\",\"display_name\":\"APM Read\",\"description\":\"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\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\",\"attributes\":{\"name\":\"org_management\",\"display_name\":\"Org Management\",\"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 & unsubscribing from apps in the marketplace.\",\"created\":\"2021-04-23T17:51:12.187340+00:00\",\"group_name\":\"Access Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incident Read\",\"description\":\"View incidents in Datadog.\",\"created\":\"2021-06-22T15:11:09.255499+00:00\",\"group_name\":\"Incidents\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\",\"attributes\":{\"name\":\"appsec_event_rule_read\",\"display_name\":\"Application Security Event Rules Read\",\"description\":\"View Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.595771+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:52 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/roles/4a66ce5a-d1d9-11ec-ad3d-da7ad0900002/permissions" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"attributes\":{\"name\":\"admin\",\"display_name\":\"Privileged Access\",\"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.\",\"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\":\"View and edit components in your Datadog organization that do not have explicitly defined permissions. This includes configuring integrations (from the UI), SLOs, events, most facets, and saved views.\",\"created\":\"2018-10-19T15:35:23.756736+00:00\",\"group_name\":\"General\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\",\"attributes\":{\"name\":\"dashboards_read\",\"display_name\":\"Dashboards Read\",\"description\":\"View dashboards.\",\"created\":\"2019-09-10T14:39:51.955175+00:00\",\"group_name\":\"Dashboards\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\",\"attributes\":{\"name\":\"monitors_read\",\"display_name\":\"Monitors Read\",\"description\":\"View monitors.\",\"created\":\"2019-09-16T18:39:07.744297+00:00\",\"group_name\":\"Monitors\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\",\"attributes\":{\"name\":\"apm_read\",\"display_name\":\"APM Read\",\"description\":\"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\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\",\"attributes\":{\"name\":\"org_management\",\"display_name\":\"Org Management\",\"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 & unsubscribing from apps in the marketplace.\",\"created\":\"2021-04-23T17:51:12.187340+00:00\",\"group_name\":\"Access Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incident Read\",\"description\":\"View incidents in Datadog.\",\"created\":\"2021-06-22T15:11:09.255499+00:00\",\"group_name\":\"Incidents\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\",\"attributes\":{\"name\":\"appsec_event_rule_read\",\"display_name\":\"Application Security Event Rules Read\",\"description\":\"View Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.595771+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:52 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/4a66ce5a-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:52 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/roles/List-permissions-returns-OK-response.json b/tests/scenarios/cassettes/v2/roles/List-permissions-returns-OK-response.json index 643a0b521..f8124bc16 100644 --- a/tests/scenarios/cassettes/v2/roles/List-permissions-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/roles/List-permissions-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/permissions"}, "response": {"body": {"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 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}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:52:01 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/permissions" + }, + "response": { + "body": { + "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 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}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:52:01 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/roles/List-roles-returns-OK-response.json b/tests/scenarios/cassettes/v2/roles/List-roles-returns-OK-response.json index f28496f40..2a6bc6df5 100644 --- a/tests/scenarios/cassettes/v2/roles/List-roles-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/roles/List-roles-returns-OK-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-List_roles_returns_OK_response-1652349174\"},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles"}, "response": {"body": {"string": "{\"data\":{\"type\":\"roles\",\"id\":\"4bed0a96-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-List_roles_returns_OK_response-1652349174\",\"created_at\":\"2022-05-12T09:52:55.356883+00:00\",\"modified_at\":\"2022-05-12T09:52:55.420991+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:54 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/roles?filter=Test-List_roles_returns_OK_response-1652349174"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"total_filtered_count\":1,\"total_count\":4376}},\"data\":[{\"type\":\"roles\",\"id\":\"4bed0a96-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-List_roles_returns_OK_response-1652349174\",\"created_at\":\"2022-05-12T09:52:55.356883+00:00\",\"modified_at\":\"2022-05-12T09:52:55.420991+00:00\",\"user_count\":0},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:54 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/4bed0a96-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:52:54 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-List_roles_returns_OK_response-1652349174\"},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"roles\",\"id\":\"4bed0a96-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-List_roles_returns_OK_response-1652349174\",\"created_at\":\"2022-05-12T09:52:55.356883+00:00\",\"modified_at\":\"2022-05-12T09:52:55.420991+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:54 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/roles?filter=Test-List_roles_returns_OK_response-1652349174" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"total_filtered_count\":1,\"total_count\":4376}},\"data\":[{\"type\":\"roles\",\"id\":\"4bed0a96-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-List_roles_returns_OK_response-1652349174\",\"created_at\":\"2022-05-12T09:52:55.356883+00:00\",\"modified_at\":\"2022-05-12T09:52:55.420991+00:00\",\"user_count\":0},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:54 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/4bed0a96-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:54 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/roles/Remove-a-user-from-a-role-returns-OK-response.json b/tests/scenarios/cassettes/v2/roles/Remove-a-user-from-a-role-returns-OK-response.json index 5e112feae..e87ae3c8b 100644 --- a/tests/scenarios/cassettes/v2/roles/Remove-a-user-from-a-role-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/roles/Remove-a-user-from-a-role-returns-OK-response.json @@ -1 +1,189 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Remove_a_user_from_a_role_returns_OK_response-1652349176\"},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles"}, "response": {"body": {"string": "{\"data\":{\"type\":\"roles\",\"id\":\"4cd4ef1e-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Remove_a_user_from_a_role_returns_OK_response-1652349176\",\"created_at\":\"2022-05-12T09:52:56.877176+00:00\",\"modified_at\":\"2022-05-12T09:52:56.929241+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:56 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"Test-Remove_a_user_from_a_role_returns_OK_response-1652349176@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/users"}, "response": {"body": {"string": "{\"data\":{\"type\":\"users\",\"id\":\"4d2043ce-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":null,\"handle\":\"test-remove_a_user_from_a_role_returns_ok_response-1652349176@datadoghq.com\",\"created_at\":\"2022-05-12T09:52:57.369469+00:00\",\"modified_at\":\"2022-05-12T09:52:57.419917+00:00\",\"email\":\"test-remove_a_user_from_a_role_returns_ok_response-1652349176@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/261d7f502028b16119eab34d384cc3fb?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:52:56 GMT"}, {"request": {"body": {"string": "{\"data\":{\"id\":\"4d2043ce-d1d9-11ec-ad3d-da7ad0900002\",\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles/4cd4ef1e-d1d9-11ec-ad3d-da7ad0900002/users"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"total_count\":1}},\"data\":[{\"type\":\"users\",\"id\":\"4d2043ce-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":null,\"handle\":\"test-remove_a_user_from_a_role_returns_ok_response-1652349176@datadoghq.com\",\"created_at\":\"2022-05-12T09:52:57.369469+00:00\",\"modified_at\":\"2022-05-12T09:52:57.419917+00:00\",\"email\":\"test-remove_a_user_from_a_role_returns_ok_response-1652349176@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/261d7f502028b16119eab34d384cc3fb?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[{\"type\":\"roles\",\"id\":\"4cd4ef1e-d1d9-11ec-ad3d-da7ad0900002\"}]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:56 GMT"}, {"request": {"body": {"string": "{\"data\":{\"id\":\"4d2043ce-d1d9-11ec-ad3d-da7ad0900002\",\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/4cd4ef1e-d1d9-11ec-ad3d-da7ad0900002/users"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"total_count\":0}},\"data\":[]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:56 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/users/4d2043ce-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:52:56 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/4cd4ef1e-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:52:56 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Remove_a_user_from_a_role_returns_OK_response-1652349176\"},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"roles\",\"id\":\"4cd4ef1e-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Remove_a_user_from_a_role_returns_OK_response-1652349176\",\"created_at\":\"2022-05-12T09:52:56.877176+00:00\",\"modified_at\":\"2022-05-12T09:52:56.929241+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:56 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"email\":\"Test-Remove_a_user_from_a_role_returns_OK_response-1652349176@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/users" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"users\",\"id\":\"4d2043ce-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":null,\"handle\":\"test-remove_a_user_from_a_role_returns_ok_response-1652349176@datadoghq.com\",\"created_at\":\"2022-05-12T09:52:57.369469+00:00\",\"modified_at\":\"2022-05-12T09:52:57.419917+00:00\",\"email\":\"test-remove_a_user_from_a_role_returns_ok_response-1652349176@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/261d7f502028b16119eab34d384cc3fb?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:56 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"id\":\"4d2043ce-d1d9-11ec-ad3d-da7ad0900002\",\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles/4cd4ef1e-d1d9-11ec-ad3d-da7ad0900002/users" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"total_count\":1}},\"data\":[{\"type\":\"users\",\"id\":\"4d2043ce-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":null,\"handle\":\"test-remove_a_user_from_a_role_returns_ok_response-1652349176@datadoghq.com\",\"created_at\":\"2022-05-12T09:52:57.369469+00:00\",\"modified_at\":\"2022-05-12T09:52:57.419917+00:00\",\"email\":\"test-remove_a_user_from_a_role_returns_ok_response-1652349176@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/261d7f502028b16119eab34d384cc3fb?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[{\"type\":\"roles\",\"id\":\"4cd4ef1e-d1d9-11ec-ad3d-da7ad0900002\"}]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:56 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"id\":\"4d2043ce-d1d9-11ec-ad3d-da7ad0900002\",\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/4cd4ef1e-d1d9-11ec-ad3d-da7ad0900002/users" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"total_count\":0}},\"data\":[]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:56 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/users/4d2043ce-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:56 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/4cd4ef1e-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:56 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/roles/Revoke-permission-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/roles/Revoke-permission-returns-Bad-Request-response.json index a962a1de2..25bc844d3 100644 --- a/tests/scenarios/cassettes/v2/roles/Revoke-permission-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/roles/Revoke-permission-returns-Bad-Request-response.json @@ -1 +1,125 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Revoke_permission_returns_Bad_Request_response-1652349179\"},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles"}, "response": {"body": {"string": "{\"data\":{\"type\":\"roles\",\"id\":\"4e9847ba-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Revoke_permission_returns_Bad_Request_response-1652349179\",\"created_at\":\"2022-05-12T09:52:59.834597+00:00\",\"modified_at\":\"2022-05-12T09:52:59.881343+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:59 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/permissions"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"attributes\":{\"name\":\"admin\",\"display_name\":\"Privileged Access\",\"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.\",\"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\":\"View and edit components in your Datadog organization that do not have explicitly defined permissions. This includes configuring integrations (from the UI), SLOs, events, most facets, and saved views.\",\"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\":\"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. Restrictions are limited to the Log Management product.\",\"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\":\"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.\",\"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\",\"description\":\"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\":\"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\":\"Add and change log pipeline configurations, including the ability to grant the Logs Write Processors permission to other roles, for some or all pipelines.\",\"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\":\"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 Write Archives\",\"description\":\"Add and edit Log Archives.\",\"created\":\"2018-10-31T13:40:29.040786+00:00\",\"group_name\":\"Logs\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"979df720-aed7-11e9-99c6-a7eb8373165a\",\"attributes\":{\"name\":\"logs_generate_metrics\",\"display_name\":\"Logs Generate Metrics\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"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 Public Share\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"Edit, 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 Downtime\",\"description\":\"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\":\"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.\",\"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 Read Archives\",\"description\":\"Read Log 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\":\"Security Rules Read\",\"description\":\"Read Detection Rules.\",\"created\":\"2020-06-09T13:52:25.279909+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7b516476-aa58-11ea-95e2-93718cd56369\",\"attributes\":{\"name\":\"security_monitoring_rules_write\",\"display_name\":\"Security Rules Write\",\"description\":\"Create and edit Detection Rules.\",\"created\":\"2020-06-09T13:52:39.099413+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"80de1ec0-aa58-11ea-95e2-aff381626d5d\",\"attributes\":{\"name\":\"security_monitoring_signals_read\",\"display_name\":\"Security Signals Read\",\"description\":\"View Security Signals.\",\"created\":\"2020-06-09T13:52:48.410398+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"58b412cc-ff6d-11eb-bc9c-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_signals_write\",\"display_name\":\"Security Signals Write\",\"description\":\"Modify Security Signals.\",\"created\":\"2021-08-17T15:11:06.963503+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"9ac1d8cc-e707-11ea-aa2d-73d37e989a9d\",\"attributes\":{\"name\":\"user_access_invite\",\"display_name\":\"User Access Invite\",\"description\":\"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\":\"User Access Manage\",\"description\":\"Disable users, manage user roles, manage SAML-to-role mappings, and configure logs restriction queries.\",\"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 App Keys\",\"description\":\"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\":\"Org App Keys Read\",\"description\":\"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\":\"Org App Keys Write\",\"description\":\"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\":\"Synthetics Private Location Read\",\"description\":\"View, search, and use in tests the list of available private locations.\",\"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\":\"Synthetics Private Location Write\",\"description\":\"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 Read\",\"description\":\"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 Edit\",\"description\":\"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 Read\",\"description\":\"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 Edit\",\"description\":\"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\":\"Metric Tags Write\",\"description\":\"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 Write Historical View\",\"description\":\"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 Read\",\"description\":\"View Audit Logs in your organization.\",\"created\":\"2020-09-17T20:20:10.834252+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"372896c4-f923-11ea-adbc-4fecd107156d\",\"attributes\":{\"name\":\"api_keys_read\",\"display_name\":\"API Keys Read\",\"description\":\"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 Write\",\"description\":\"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\":\"Synthetics Global Variable Read\",\"description\":\"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\":\"Synthetics Global Variable Write\",\"description\":\"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\":\"Synthetics Read\",\"description\":\"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\":\"Synthetics Write\",\"description\":\"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\":\"Synthetics Default Settings Read\",\"description\":\"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\":\"Synthetics Default Settings Write\",\"description\":\"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 Write Facets\",\"description\":\"Create or edit Log 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 Account Write\",\"description\":\"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\",\"description\":\"Use the Integrations APIs to configure integrations. In order to configure integrations from the UI, a user must have Standard Access instead.\",\"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\",\"description\":\"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\":\"APM Retention Filter Read\",\"description\":\"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\":\"APM Retention Filter Write\",\"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.\",\"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\":\"APM Service Ingest Read\",\"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.\",\"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\":\"APM Service Ingest Write\",\"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.\",\"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\":\"APM Apdex Manage Write\",\"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.\",\"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\":\"APM Tag Management Write\",\"description\":\"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\":\"APM Primary Operation Write\",\"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.\",\"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 Write\",\"description\":\"Configure Audit Logs in your organization.\",\"created\":\"2020-12-01T19:18:39.866516+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"8106300a-54f7-11eb-8cbc-7781a434a67b\",\"attributes\":{\"name\":\"rum_apps_write\",\"display_name\":\"RUM Apps Write\",\"description\":\"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 Read\",\"description\":\"View Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.394971+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7d-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_write\",\"display_name\":\"Data Scanner Write\",\"description\":\"Edit Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.398584+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\",\"attributes\":{\"name\":\"org_management\",\"display_name\":\"Org Management\",\"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 & unsubscribing from apps in the marketplace.\",\"created\":\"2021-04-23T17:51:12.187340+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 Read\",\"description\":\"Read Security Filters.\",\"created\":\"2021-05-10T08:56:23.676833+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"98b984f5-b16d-11eb-a2c6-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_filters_write\",\"display_name\":\"Security Filters Write\",\"description\":\"Create, edit, and delete Security Filters.\",\"created\":\"2021-05-10T08:56:23.680551+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incident Read\",\"description\":\"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\":\"Incident Write\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"Configure Incidents 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 Read\",\"description\":\"View Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.595771+00:00\",\"group_name\":\"Cloud Security Platform\",\"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 Write\",\"description\":\"Edit Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.598808+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"RUM Session Replay Read\",\"description\":\"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\":\"Security Notification Rules Read\",\"description\":\"Read Notification Rules.\",\"created\":\"2021-09-16T08:26:27.366789+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"c95412b9-16c7-11ec-85c0-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_notification_profiles_write\",\"display_name\":\"Security Notification Rules Write\",\"description\":\"Create, edit, and delete Notification Rules.\",\"created\":\"2021-09-16T08:26:27.369359+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"26c79920-1703-11ec-85d2-da7ad0900002\",\"attributes\":{\"name\":\"apm_generate_metrics\",\"display_name\":\"APM Generate Metrics\",\"description\":\"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\":\"APM Pipelines Write\",\"description\":\"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\":\"APM Pipelines Read\",\"description\":\"View APM pipeline configurations.\",\"created\":\"2021-12-07T11:26:43.807269+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb4-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_read\",\"display_name\":\"Pipeline Configurations Read\",\"description\":\"View pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.956827+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb5-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_write\",\"display_name\":\"Pipeline Configurations Write\",\"description\":\"Create, edit, and delete pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.960833+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7a89ec40-8b69-11ec-812d-da7ad0900002\",\"attributes\":{\"name\":\"incidents_private_global_access\",\"display_name\":\"Private Incidents Global Access\",\"description\":\"Access all private incidents in Datadog, even when not added as a responder.\",\"created\":\"2022-02-11T18:36:08.531989+00:00\",\"group_name\":\"Incidents\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"b6bf9ac7-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_write\",\"display_name\":\"Notebooks Write\",\"description\":\"Create and change notebooks.\",\"created\":\"2022-03-02T18:51:05.044683+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"2108215e-b9b4-11ec-958e-da7ad0900002\",\"attributes\":{\"name\":\"rum_generate_metrics\",\"display_name\":\"RUM Generate Metrics\",\"description\":\"Create custom metrics from RUM events.\",\"created\":\"2022-04-11T16:26:24.106645+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:52:59 GMT"}, {"request": {"body": {"string": "{\"data\":{\"id\":\"11111111-dead-beef-dead-ffffffffffff\",\"type\":\"permissions\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/4e9847ba-d1d9-11ec-ad3d-da7ad0900002/permissions"}, "response": {"body": {"string": "{\"errors\": [\"Invalid permission id: 11111111-dead-beef-dead-ffffffffffff\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Thu, 12 May 2022 09:52:59 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/4e9847ba-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:52:59 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Revoke_permission_returns_Bad_Request_response-1652349179\"},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"roles\",\"id\":\"4e9847ba-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Revoke_permission_returns_Bad_Request_response-1652349179\",\"created_at\":\"2022-05-12T09:52:59.834597+00:00\",\"modified_at\":\"2022-05-12T09:52:59.881343+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:59 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/permissions" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"attributes\":{\"name\":\"admin\",\"display_name\":\"Privileged Access\",\"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.\",\"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\":\"View and edit components in your Datadog organization that do not have explicitly defined permissions. This includes configuring integrations (from the UI), SLOs, events, most facets, and saved views.\",\"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\":\"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. Restrictions are limited to the Log Management product.\",\"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\":\"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.\",\"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\",\"description\":\"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\":\"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\":\"Add and change log pipeline configurations, including the ability to grant the Logs Write Processors permission to other roles, for some or all pipelines.\",\"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\":\"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 Write Archives\",\"description\":\"Add and edit Log Archives.\",\"created\":\"2018-10-31T13:40:29.040786+00:00\",\"group_name\":\"Logs\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"979df720-aed7-11e9-99c6-a7eb8373165a\",\"attributes\":{\"name\":\"logs_generate_metrics\",\"display_name\":\"Logs Generate Metrics\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"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 Public Share\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"Edit, 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 Downtime\",\"description\":\"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\":\"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.\",\"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 Read Archives\",\"description\":\"Read Log 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\":\"Security Rules Read\",\"description\":\"Read Detection Rules.\",\"created\":\"2020-06-09T13:52:25.279909+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7b516476-aa58-11ea-95e2-93718cd56369\",\"attributes\":{\"name\":\"security_monitoring_rules_write\",\"display_name\":\"Security Rules Write\",\"description\":\"Create and edit Detection Rules.\",\"created\":\"2020-06-09T13:52:39.099413+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"80de1ec0-aa58-11ea-95e2-aff381626d5d\",\"attributes\":{\"name\":\"security_monitoring_signals_read\",\"display_name\":\"Security Signals Read\",\"description\":\"View Security Signals.\",\"created\":\"2020-06-09T13:52:48.410398+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"58b412cc-ff6d-11eb-bc9c-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_signals_write\",\"display_name\":\"Security Signals Write\",\"description\":\"Modify Security Signals.\",\"created\":\"2021-08-17T15:11:06.963503+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"9ac1d8cc-e707-11ea-aa2d-73d37e989a9d\",\"attributes\":{\"name\":\"user_access_invite\",\"display_name\":\"User Access Invite\",\"description\":\"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\":\"User Access Manage\",\"description\":\"Disable users, manage user roles, manage SAML-to-role mappings, and configure logs restriction queries.\",\"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 App Keys\",\"description\":\"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\":\"Org App Keys Read\",\"description\":\"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\":\"Org App Keys Write\",\"description\":\"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\":\"Synthetics Private Location Read\",\"description\":\"View, search, and use in tests the list of available private locations.\",\"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\":\"Synthetics Private Location Write\",\"description\":\"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 Read\",\"description\":\"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 Edit\",\"description\":\"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 Read\",\"description\":\"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 Edit\",\"description\":\"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\":\"Metric Tags Write\",\"description\":\"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 Write Historical View\",\"description\":\"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 Read\",\"description\":\"View Audit Logs in your organization.\",\"created\":\"2020-09-17T20:20:10.834252+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"372896c4-f923-11ea-adbc-4fecd107156d\",\"attributes\":{\"name\":\"api_keys_read\",\"display_name\":\"API Keys Read\",\"description\":\"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 Write\",\"description\":\"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\":\"Synthetics Global Variable Read\",\"description\":\"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\":\"Synthetics Global Variable Write\",\"description\":\"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\":\"Synthetics Read\",\"description\":\"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\":\"Synthetics Write\",\"description\":\"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\":\"Synthetics Default Settings Read\",\"description\":\"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\":\"Synthetics Default Settings Write\",\"description\":\"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 Write Facets\",\"description\":\"Create or edit Log 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 Account Write\",\"description\":\"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\",\"description\":\"Use the Integrations APIs to configure integrations. In order to configure integrations from the UI, a user must have Standard Access instead.\",\"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\",\"description\":\"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\":\"APM Retention Filter Read\",\"description\":\"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\":\"APM Retention Filter Write\",\"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.\",\"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\":\"APM Service Ingest Read\",\"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.\",\"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\":\"APM Service Ingest Write\",\"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.\",\"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\":\"APM Apdex Manage Write\",\"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.\",\"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\":\"APM Tag Management Write\",\"description\":\"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\":\"APM Primary Operation Write\",\"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.\",\"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 Write\",\"description\":\"Configure Audit Logs in your organization.\",\"created\":\"2020-12-01T19:18:39.866516+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"8106300a-54f7-11eb-8cbc-7781a434a67b\",\"attributes\":{\"name\":\"rum_apps_write\",\"display_name\":\"RUM Apps Write\",\"description\":\"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 Read\",\"description\":\"View Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.394971+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7d-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_write\",\"display_name\":\"Data Scanner Write\",\"description\":\"Edit Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.398584+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\",\"attributes\":{\"name\":\"org_management\",\"display_name\":\"Org Management\",\"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 & unsubscribing from apps in the marketplace.\",\"created\":\"2021-04-23T17:51:12.187340+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 Read\",\"description\":\"Read Security Filters.\",\"created\":\"2021-05-10T08:56:23.676833+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"98b984f5-b16d-11eb-a2c6-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_filters_write\",\"display_name\":\"Security Filters Write\",\"description\":\"Create, edit, and delete Security Filters.\",\"created\":\"2021-05-10T08:56:23.680551+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incident Read\",\"description\":\"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\":\"Incident Write\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"Configure Incidents 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 Read\",\"description\":\"View Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.595771+00:00\",\"group_name\":\"Cloud Security Platform\",\"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 Write\",\"description\":\"Edit Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.598808+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"RUM Session Replay Read\",\"description\":\"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\":\"Security Notification Rules Read\",\"description\":\"Read Notification Rules.\",\"created\":\"2021-09-16T08:26:27.366789+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"c95412b9-16c7-11ec-85c0-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_notification_profiles_write\",\"display_name\":\"Security Notification Rules Write\",\"description\":\"Create, edit, and delete Notification Rules.\",\"created\":\"2021-09-16T08:26:27.369359+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"26c79920-1703-11ec-85d2-da7ad0900002\",\"attributes\":{\"name\":\"apm_generate_metrics\",\"display_name\":\"APM Generate Metrics\",\"description\":\"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\":\"APM Pipelines Write\",\"description\":\"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\":\"APM Pipelines Read\",\"description\":\"View APM pipeline configurations.\",\"created\":\"2021-12-07T11:26:43.807269+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb4-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_read\",\"display_name\":\"Pipeline Configurations Read\",\"description\":\"View pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.956827+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb5-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_write\",\"display_name\":\"Pipeline Configurations Write\",\"description\":\"Create, edit, and delete pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.960833+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7a89ec40-8b69-11ec-812d-da7ad0900002\",\"attributes\":{\"name\":\"incidents_private_global_access\",\"display_name\":\"Private Incidents Global Access\",\"description\":\"Access all private incidents in Datadog, even when not added as a responder.\",\"created\":\"2022-02-11T18:36:08.531989+00:00\",\"group_name\":\"Incidents\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"b6bf9ac7-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_write\",\"display_name\":\"Notebooks Write\",\"description\":\"Create and change notebooks.\",\"created\":\"2022-03-02T18:51:05.044683+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"2108215e-b9b4-11ec-958e-da7ad0900002\",\"attributes\":{\"name\":\"rum_generate_metrics\",\"display_name\":\"RUM Generate Metrics\",\"description\":\"Create custom metrics from RUM events.\",\"created\":\"2022-04-11T16:26:24.106645+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:59 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"id\":\"11111111-dead-beef-dead-ffffffffffff\",\"type\":\"permissions\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/4e9847ba-d1d9-11ec-ad3d-da7ad0900002/permissions" + }, + "response": { + "body": { + "string": "{\"errors\": [\"Invalid permission id: 11111111-dead-beef-dead-ffffffffffff\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:59 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/4e9847ba-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:52:59 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/roles/Revoke-permission-returns-Not-found-response.json b/tests/scenarios/cassettes/v2/roles/Revoke-permission-returns-Not-found-response.json index b3a339e04..46f737fad 100644 --- a/tests/scenarios/cassettes/v2/roles/Revoke-permission-returns-Not-found-response.json +++ b/tests/scenarios/cassettes/v2/roles/Revoke-permission-returns-Not-found-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/permissions"}, "response": {"body": {"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 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}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 06 Jan 2022 00:52:05 GMT"}, {"request": {"body": {"string": "{\"data\":{\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"type\":\"permissions\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/00000000-dead-beef-dead-ffffffffffff/permissions"}, "response": {"body": {"string": "{\"errors\":[\"Missing Role 00000000-dead-beef-dead-ffffffffffff not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 06 Jan 2022 00:52:05 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/permissions" + }, + "response": { + "body": { + "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 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}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:52:05 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"type\":\"permissions\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/00000000-dead-beef-dead-ffffffffffff/permissions" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Missing Role 00000000-dead-beef-dead-ffffffffffff not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:52:05 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/roles/Revoke-permission-returns-OK-response.json b/tests/scenarios/cassettes/v2/roles/Revoke-permission-returns-OK-response.json index e129d47b0..987a2b74c 100644 --- a/tests/scenarios/cassettes/v2/roles/Revoke-permission-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/roles/Revoke-permission-returns-OK-response.json @@ -1 +1,159 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Revoke_permission_returns_OK_response-1652349181\"},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles"}, "response": {"body": {"string": "{\"data\":{\"type\":\"roles\",\"id\":\"4fc503c6-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Revoke_permission_returns_OK_response-1652349181\",\"created_at\":\"2022-05-12T09:53:01.806050+00:00\",\"modified_at\":\"2022-05-12T09:53:01.871847+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:53:01 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/permissions"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"attributes\":{\"name\":\"admin\",\"display_name\":\"Privileged Access\",\"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.\",\"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\":\"View and edit components in your Datadog organization that do not have explicitly defined permissions. This includes configuring integrations (from the UI), SLOs, events, most facets, and saved views.\",\"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\":\"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. Restrictions are limited to the Log Management product.\",\"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\":\"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.\",\"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\",\"description\":\"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\":\"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\":\"Add and change log pipeline configurations, including the ability to grant the Logs Write Processors permission to other roles, for some or all pipelines.\",\"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\":\"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 Write Archives\",\"description\":\"Add and edit Log Archives.\",\"created\":\"2018-10-31T13:40:29.040786+00:00\",\"group_name\":\"Logs\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"979df720-aed7-11e9-99c6-a7eb8373165a\",\"attributes\":{\"name\":\"logs_generate_metrics\",\"display_name\":\"Logs Generate Metrics\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"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 Public Share\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"Edit, 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 Downtime\",\"description\":\"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\":\"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.\",\"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 Read Archives\",\"description\":\"Read Log 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\":\"Security Rules Read\",\"description\":\"Read Detection Rules.\",\"created\":\"2020-06-09T13:52:25.279909+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7b516476-aa58-11ea-95e2-93718cd56369\",\"attributes\":{\"name\":\"security_monitoring_rules_write\",\"display_name\":\"Security Rules Write\",\"description\":\"Create and edit Detection Rules.\",\"created\":\"2020-06-09T13:52:39.099413+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"80de1ec0-aa58-11ea-95e2-aff381626d5d\",\"attributes\":{\"name\":\"security_monitoring_signals_read\",\"display_name\":\"Security Signals Read\",\"description\":\"View Security Signals.\",\"created\":\"2020-06-09T13:52:48.410398+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"58b412cc-ff6d-11eb-bc9c-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_signals_write\",\"display_name\":\"Security Signals Write\",\"description\":\"Modify Security Signals.\",\"created\":\"2021-08-17T15:11:06.963503+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"9ac1d8cc-e707-11ea-aa2d-73d37e989a9d\",\"attributes\":{\"name\":\"user_access_invite\",\"display_name\":\"User Access Invite\",\"description\":\"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\":\"User Access Manage\",\"description\":\"Disable users, manage user roles, manage SAML-to-role mappings, and configure logs restriction queries.\",\"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 App Keys\",\"description\":\"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\":\"Org App Keys Read\",\"description\":\"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\":\"Org App Keys Write\",\"description\":\"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\":\"Synthetics Private Location Read\",\"description\":\"View, search, and use in tests the list of available private locations.\",\"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\":\"Synthetics Private Location Write\",\"description\":\"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 Read\",\"description\":\"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 Edit\",\"description\":\"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 Read\",\"description\":\"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 Edit\",\"description\":\"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\":\"Metric Tags Write\",\"description\":\"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 Write Historical View\",\"description\":\"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 Read\",\"description\":\"View Audit Logs in your organization.\",\"created\":\"2020-09-17T20:20:10.834252+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"372896c4-f923-11ea-adbc-4fecd107156d\",\"attributes\":{\"name\":\"api_keys_read\",\"display_name\":\"API Keys Read\",\"description\":\"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 Write\",\"description\":\"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\":\"Synthetics Global Variable Read\",\"description\":\"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\":\"Synthetics Global Variable Write\",\"description\":\"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\":\"Synthetics Read\",\"description\":\"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\":\"Synthetics Write\",\"description\":\"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\":\"Synthetics Default Settings Read\",\"description\":\"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\":\"Synthetics Default Settings Write\",\"description\":\"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 Write Facets\",\"description\":\"Create or edit Log 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 Account Write\",\"description\":\"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\",\"description\":\"Use the Integrations APIs to configure integrations. In order to configure integrations from the UI, a user must have Standard Access instead.\",\"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\",\"description\":\"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\":\"APM Retention Filter Read\",\"description\":\"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\":\"APM Retention Filter Write\",\"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.\",\"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\":\"APM Service Ingest Read\",\"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.\",\"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\":\"APM Service Ingest Write\",\"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.\",\"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\":\"APM Apdex Manage Write\",\"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.\",\"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\":\"APM Tag Management Write\",\"description\":\"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\":\"APM Primary Operation Write\",\"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.\",\"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 Write\",\"description\":\"Configure Audit Logs in your organization.\",\"created\":\"2020-12-01T19:18:39.866516+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"8106300a-54f7-11eb-8cbc-7781a434a67b\",\"attributes\":{\"name\":\"rum_apps_write\",\"display_name\":\"RUM Apps Write\",\"description\":\"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 Read\",\"description\":\"View Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.394971+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7d-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_write\",\"display_name\":\"Data Scanner Write\",\"description\":\"Edit Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.398584+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\",\"attributes\":{\"name\":\"org_management\",\"display_name\":\"Org Management\",\"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 & unsubscribing from apps in the marketplace.\",\"created\":\"2021-04-23T17:51:12.187340+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 Read\",\"description\":\"Read Security Filters.\",\"created\":\"2021-05-10T08:56:23.676833+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"98b984f5-b16d-11eb-a2c6-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_filters_write\",\"display_name\":\"Security Filters Write\",\"description\":\"Create, edit, and delete Security Filters.\",\"created\":\"2021-05-10T08:56:23.680551+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incident Read\",\"description\":\"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\":\"Incident Write\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"Configure Incidents 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 Read\",\"description\":\"View Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.595771+00:00\",\"group_name\":\"Cloud Security Platform\",\"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 Write\",\"description\":\"Edit Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.598808+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"RUM Session Replay Read\",\"description\":\"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\":\"Security Notification Rules Read\",\"description\":\"Read Notification Rules.\",\"created\":\"2021-09-16T08:26:27.366789+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"c95412b9-16c7-11ec-85c0-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_notification_profiles_write\",\"display_name\":\"Security Notification Rules Write\",\"description\":\"Create, edit, and delete Notification Rules.\",\"created\":\"2021-09-16T08:26:27.369359+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"26c79920-1703-11ec-85d2-da7ad0900002\",\"attributes\":{\"name\":\"apm_generate_metrics\",\"display_name\":\"APM Generate Metrics\",\"description\":\"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\":\"APM Pipelines Write\",\"description\":\"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\":\"APM Pipelines Read\",\"description\":\"View APM pipeline configurations.\",\"created\":\"2021-12-07T11:26:43.807269+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb4-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_read\",\"display_name\":\"Pipeline Configurations Read\",\"description\":\"View pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.956827+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb5-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_write\",\"display_name\":\"Pipeline Configurations Write\",\"description\":\"Create, edit, and delete pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.960833+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7a89ec40-8b69-11ec-812d-da7ad0900002\",\"attributes\":{\"name\":\"incidents_private_global_access\",\"display_name\":\"Private Incidents Global Access\",\"description\":\"Access all private incidents in Datadog, even when not added as a responder.\",\"created\":\"2022-02-11T18:36:08.531989+00:00\",\"group_name\":\"Incidents\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"b6bf9ac7-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_write\",\"display_name\":\"Notebooks Write\",\"description\":\"Create and change notebooks.\",\"created\":\"2022-03-02T18:51:05.044683+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"2108215e-b9b4-11ec-958e-da7ad0900002\",\"attributes\":{\"name\":\"rum_generate_metrics\",\"display_name\":\"RUM Generate Metrics\",\"description\":\"Create custom metrics from RUM events.\",\"created\":\"2022-04-11T16:26:24.106645+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:53:01 GMT"}, {"request": {"body": {"string": "{\"data\":{\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"type\":\"permissions\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles/4fc503c6-d1d9-11ec-ad3d-da7ad0900002/permissions"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"attributes\":{\"name\":\"admin\",\"display_name\":\"Privileged Access\",\"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.\",\"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\":\"View and edit components in your Datadog organization that do not have explicitly defined permissions. This includes configuring integrations (from the UI), SLOs, events, most facets, and saved views.\",\"created\":\"2018-10-19T15:35:23.756736+00:00\",\"group_name\":\"General\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\",\"attributes\":{\"name\":\"dashboards_read\",\"display_name\":\"Dashboards Read\",\"description\":\"View dashboards.\",\"created\":\"2019-09-10T14:39:51.955175+00:00\",\"group_name\":\"Dashboards\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\",\"attributes\":{\"name\":\"monitors_read\",\"display_name\":\"Monitors Read\",\"description\":\"View monitors.\",\"created\":\"2019-09-16T18:39:07.744297+00:00\",\"group_name\":\"Monitors\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\",\"attributes\":{\"name\":\"apm_read\",\"display_name\":\"APM Read\",\"description\":\"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\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\",\"attributes\":{\"name\":\"org_management\",\"display_name\":\"Org Management\",\"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 & unsubscribing from apps in the marketplace.\",\"created\":\"2021-04-23T17:51:12.187340+00:00\",\"group_name\":\"Access Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incident Read\",\"description\":\"View incidents in Datadog.\",\"created\":\"2021-06-22T15:11:09.255499+00:00\",\"group_name\":\"Incidents\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\",\"attributes\":{\"name\":\"appsec_event_rule_read\",\"display_name\":\"Application Security Event Rules Read\",\"description\":\"View Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.595771+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:53:01 GMT"}, {"request": {"body": {"string": "{\"data\":{\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"type\":\"permissions\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/4fc503c6-d1d9-11ec-ad3d-da7ad0900002/permissions"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"permissions\",\"id\":\"984d2f00-d3b4-11e8-a200-bb47109e9987\",\"attributes\":{\"name\":\"standard\",\"display_name\":\"Standard Access\",\"description\":\"View and edit components in your Datadog organization that do not have explicitly defined permissions. This includes configuring integrations (from the UI), SLOs, events, most facets, and saved views.\",\"created\":\"2018-10-19T15:35:23.756736+00:00\",\"group_name\":\"General\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\",\"attributes\":{\"name\":\"dashboards_read\",\"display_name\":\"Dashboards Read\",\"description\":\"View dashboards.\",\"created\":\"2019-09-10T14:39:51.955175+00:00\",\"group_name\":\"Dashboards\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\",\"attributes\":{\"name\":\"monitors_read\",\"display_name\":\"Monitors Read\",\"description\":\"View monitors.\",\"created\":\"2019-09-16T18:39:07.744297+00:00\",\"group_name\":\"Monitors\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\",\"attributes\":{\"name\":\"apm_read\",\"display_name\":\"APM Read\",\"description\":\"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\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\",\"attributes\":{\"name\":\"org_management\",\"display_name\":\"Org Management\",\"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 & unsubscribing from apps in the marketplace.\",\"created\":\"2021-04-23T17:51:12.187340+00:00\",\"group_name\":\"Access Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incident Read\",\"description\":\"View incidents in Datadog.\",\"created\":\"2021-06-22T15:11:09.255499+00:00\",\"group_name\":\"Incidents\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\",\"attributes\":{\"name\":\"appsec_event_rule_read\",\"display_name\":\"Application Security Event Rules Read\",\"description\":\"View Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.595771+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:53:01 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/4fc503c6-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:53:01 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Revoke_permission_returns_OK_response-1652349181\"},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"roles\",\"id\":\"4fc503c6-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Test-Revoke_permission_returns_OK_response-1652349181\",\"created_at\":\"2022-05-12T09:53:01.806050+00:00\",\"modified_at\":\"2022-05-12T09:53:01.871847+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"}]}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:01 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/permissions" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"attributes\":{\"name\":\"admin\",\"display_name\":\"Privileged Access\",\"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.\",\"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\":\"View and edit components in your Datadog organization that do not have explicitly defined permissions. This includes configuring integrations (from the UI), SLOs, events, most facets, and saved views.\",\"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\":\"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. Restrictions are limited to the Log Management product.\",\"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\":\"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.\",\"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\",\"description\":\"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\":\"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\":\"Add and change log pipeline configurations, including the ability to grant the Logs Write Processors permission to other roles, for some or all pipelines.\",\"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\":\"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 Write Archives\",\"description\":\"Add and edit Log Archives.\",\"created\":\"2018-10-31T13:40:29.040786+00:00\",\"group_name\":\"Logs\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"979df720-aed7-11e9-99c6-a7eb8373165a\",\"attributes\":{\"name\":\"logs_generate_metrics\",\"display_name\":\"Logs Generate Metrics\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"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 Public Share\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"Edit, 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 Downtime\",\"description\":\"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\":\"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.\",\"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 Read Archives\",\"description\":\"Read Log 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\":\"Security Rules Read\",\"description\":\"Read Detection Rules.\",\"created\":\"2020-06-09T13:52:25.279909+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7b516476-aa58-11ea-95e2-93718cd56369\",\"attributes\":{\"name\":\"security_monitoring_rules_write\",\"display_name\":\"Security Rules Write\",\"description\":\"Create and edit Detection Rules.\",\"created\":\"2020-06-09T13:52:39.099413+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"80de1ec0-aa58-11ea-95e2-aff381626d5d\",\"attributes\":{\"name\":\"security_monitoring_signals_read\",\"display_name\":\"Security Signals Read\",\"description\":\"View Security Signals.\",\"created\":\"2020-06-09T13:52:48.410398+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"58b412cc-ff6d-11eb-bc9c-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_signals_write\",\"display_name\":\"Security Signals Write\",\"description\":\"Modify Security Signals.\",\"created\":\"2021-08-17T15:11:06.963503+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"9ac1d8cc-e707-11ea-aa2d-73d37e989a9d\",\"attributes\":{\"name\":\"user_access_invite\",\"display_name\":\"User Access Invite\",\"description\":\"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\":\"User Access Manage\",\"description\":\"Disable users, manage user roles, manage SAML-to-role mappings, and configure logs restriction queries.\",\"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 App Keys\",\"description\":\"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\":\"Org App Keys Read\",\"description\":\"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\":\"Org App Keys Write\",\"description\":\"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\":\"Synthetics Private Location Read\",\"description\":\"View, search, and use in tests the list of available private locations.\",\"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\":\"Synthetics Private Location Write\",\"description\":\"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 Read\",\"description\":\"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 Edit\",\"description\":\"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 Read\",\"description\":\"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 Edit\",\"description\":\"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\":\"Metric Tags Write\",\"description\":\"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 Write Historical View\",\"description\":\"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 Read\",\"description\":\"View Audit Logs in your organization.\",\"created\":\"2020-09-17T20:20:10.834252+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"372896c4-f923-11ea-adbc-4fecd107156d\",\"attributes\":{\"name\":\"api_keys_read\",\"display_name\":\"API Keys Read\",\"description\":\"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 Write\",\"description\":\"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\":\"Synthetics Global Variable Read\",\"description\":\"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\":\"Synthetics Global Variable Write\",\"description\":\"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\":\"Synthetics Read\",\"description\":\"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\":\"Synthetics Write\",\"description\":\"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\":\"Synthetics Default Settings Read\",\"description\":\"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\":\"Synthetics Default Settings Write\",\"description\":\"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 Write Facets\",\"description\":\"Create or edit Log 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 Account Write\",\"description\":\"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\",\"description\":\"Use the Integrations APIs to configure integrations. In order to configure integrations from the UI, a user must have Standard Access instead.\",\"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\",\"description\":\"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\":\"APM Retention Filter Read\",\"description\":\"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\":\"APM Retention Filter Write\",\"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.\",\"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\":\"APM Service Ingest Read\",\"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.\",\"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\":\"APM Service Ingest Write\",\"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.\",\"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\":\"APM Apdex Manage Write\",\"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.\",\"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\":\"APM Tag Management Write\",\"description\":\"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\":\"APM Primary Operation Write\",\"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.\",\"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 Write\",\"description\":\"Configure Audit Logs in your organization.\",\"created\":\"2020-12-01T19:18:39.866516+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"8106300a-54f7-11eb-8cbc-7781a434a67b\",\"attributes\":{\"name\":\"rum_apps_write\",\"display_name\":\"RUM Apps Write\",\"description\":\"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 Read\",\"description\":\"View Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.394971+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7d-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_write\",\"display_name\":\"Data Scanner Write\",\"description\":\"Edit Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.398584+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\",\"attributes\":{\"name\":\"org_management\",\"display_name\":\"Org Management\",\"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 & unsubscribing from apps in the marketplace.\",\"created\":\"2021-04-23T17:51:12.187340+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 Read\",\"description\":\"Read Security Filters.\",\"created\":\"2021-05-10T08:56:23.676833+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"98b984f5-b16d-11eb-a2c6-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_filters_write\",\"display_name\":\"Security Filters Write\",\"description\":\"Create, edit, and delete Security Filters.\",\"created\":\"2021-05-10T08:56:23.680551+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incident Read\",\"description\":\"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\":\"Incident Write\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"Configure Incidents 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 Read\",\"description\":\"View Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.595771+00:00\",\"group_name\":\"Cloud Security Platform\",\"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 Write\",\"description\":\"Edit Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.598808+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"RUM Session Replay Read\",\"description\":\"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\":\"Security Notification Rules Read\",\"description\":\"Read Notification Rules.\",\"created\":\"2021-09-16T08:26:27.366789+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"c95412b9-16c7-11ec-85c0-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_notification_profiles_write\",\"display_name\":\"Security Notification Rules Write\",\"description\":\"Create, edit, and delete Notification Rules.\",\"created\":\"2021-09-16T08:26:27.369359+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"26c79920-1703-11ec-85d2-da7ad0900002\",\"attributes\":{\"name\":\"apm_generate_metrics\",\"display_name\":\"APM Generate Metrics\",\"description\":\"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\":\"APM Pipelines Write\",\"description\":\"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\":\"APM Pipelines Read\",\"description\":\"View APM pipeline configurations.\",\"created\":\"2021-12-07T11:26:43.807269+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb4-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_read\",\"display_name\":\"Pipeline Configurations Read\",\"description\":\"View pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.956827+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb5-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_write\",\"display_name\":\"Pipeline Configurations Write\",\"description\":\"Create, edit, and delete pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.960833+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7a89ec40-8b69-11ec-812d-da7ad0900002\",\"attributes\":{\"name\":\"incidents_private_global_access\",\"display_name\":\"Private Incidents Global Access\",\"description\":\"Access all private incidents in Datadog, even when not added as a responder.\",\"created\":\"2022-02-11T18:36:08.531989+00:00\",\"group_name\":\"Incidents\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"b6bf9ac7-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_write\",\"display_name\":\"Notebooks Write\",\"description\":\"Create and change notebooks.\",\"created\":\"2022-03-02T18:51:05.044683+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"2108215e-b9b4-11ec-958e-da7ad0900002\",\"attributes\":{\"name\":\"rum_generate_metrics\",\"display_name\":\"RUM Generate Metrics\",\"description\":\"Create custom metrics from RUM events.\",\"created\":\"2022-04-11T16:26:24.106645+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:01 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"type\":\"permissions\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles/4fc503c6-d1d9-11ec-ad3d-da7ad0900002/permissions" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"attributes\":{\"name\":\"admin\",\"display_name\":\"Privileged Access\",\"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.\",\"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\":\"View and edit components in your Datadog organization that do not have explicitly defined permissions. This includes configuring integrations (from the UI), SLOs, events, most facets, and saved views.\",\"created\":\"2018-10-19T15:35:23.756736+00:00\",\"group_name\":\"General\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\",\"attributes\":{\"name\":\"dashboards_read\",\"display_name\":\"Dashboards Read\",\"description\":\"View dashboards.\",\"created\":\"2019-09-10T14:39:51.955175+00:00\",\"group_name\":\"Dashboards\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\",\"attributes\":{\"name\":\"monitors_read\",\"display_name\":\"Monitors Read\",\"description\":\"View monitors.\",\"created\":\"2019-09-16T18:39:07.744297+00:00\",\"group_name\":\"Monitors\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\",\"attributes\":{\"name\":\"apm_read\",\"display_name\":\"APM Read\",\"description\":\"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\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\",\"attributes\":{\"name\":\"org_management\",\"display_name\":\"Org Management\",\"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 & unsubscribing from apps in the marketplace.\",\"created\":\"2021-04-23T17:51:12.187340+00:00\",\"group_name\":\"Access Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incident Read\",\"description\":\"View incidents in Datadog.\",\"created\":\"2021-06-22T15:11:09.255499+00:00\",\"group_name\":\"Incidents\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\",\"attributes\":{\"name\":\"appsec_event_rule_read\",\"display_name\":\"Application Security Event Rules Read\",\"description\":\"View Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.595771+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:01 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"type\":\"permissions\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/4fc503c6-d1d9-11ec-ad3d-da7ad0900002/permissions" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"permissions\",\"id\":\"984d2f00-d3b4-11e8-a200-bb47109e9987\",\"attributes\":{\"name\":\"standard\",\"display_name\":\"Standard Access\",\"description\":\"View and edit components in your Datadog organization that do not have explicitly defined permissions. This includes configuring integrations (from the UI), SLOs, events, most facets, and saved views.\",\"created\":\"2018-10-19T15:35:23.756736+00:00\",\"group_name\":\"General\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\",\"attributes\":{\"name\":\"dashboards_read\",\"display_name\":\"Dashboards Read\",\"description\":\"View dashboards.\",\"created\":\"2019-09-10T14:39:51.955175+00:00\",\"group_name\":\"Dashboards\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\",\"attributes\":{\"name\":\"monitors_read\",\"display_name\":\"Monitors Read\",\"description\":\"View monitors.\",\"created\":\"2019-09-16T18:39:07.744297+00:00\",\"group_name\":\"Monitors\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\",\"attributes\":{\"name\":\"apm_read\",\"display_name\":\"APM Read\",\"description\":\"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\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\",\"attributes\":{\"name\":\"org_management\",\"display_name\":\"Org Management\",\"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 & unsubscribing from apps in the marketplace.\",\"created\":\"2021-04-23T17:51:12.187340+00:00\",\"group_name\":\"Access Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incident Read\",\"description\":\"View incidents in Datadog.\",\"created\":\"2021-06-22T15:11:09.255499+00:00\",\"group_name\":\"Incidents\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\",\"attributes\":{\"name\":\"appsec_event_rule_read\",\"display_name\":\"Application Security Event Rules Read\",\"description\":\"View Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.595771+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:01 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/4fc503c6-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:01 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/roles/Update-a-role-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/roles/Update-a-role-returns-Bad-Request-response.json index 9490dc396..7bae1ab5d 100644 --- a/tests/scenarios/cassettes/v2/roles/Update-a-role-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/roles/Update-a-role-returns-Bad-Request-response.json @@ -1 +1,129 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Update_a_role_returns_Bad_Request_response-1661551042\"},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles"}, "response": {"body": {"string": "{\"data\":{\"type\":\"roles\",\"id\":\"10475ae6-258a-11ed-b455-da7ad0900002\",\"attributes\":{\"name\":\"Test-Update_a_role_returns_Bad_Request_response-1661551042\",\"created_at\":\"2022-08-26T21:57:22.716898+00:00\",\"modified_at\":\"2022-08-26T21:57:22.941930+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\"}]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 26 Aug 2022 21:57:22 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/permissions"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"attributes\":{\"name\":\"admin\",\"display_name\":\"Privileged Access\",\"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.\",\"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\":\"View and edit components in your Datadog organization that do not have explicitly defined permissions. This includes configuring some integrations (from the UI), events, most facets, and saved views. In order to configure integrations from the UI, a user must also have Integrations API.\",\"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\":\"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. Restrictions are limited to the Log Management product.\",\"created\":\"2018-10-31T13:39:19.727450+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"62cc036c-dd12-11e8-9e54-db9995643092\",\"attributes\":{\"name\":\"logs_modify_indexes\",\"display_name\":\"Logs Modify Indexes\",\"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.\",\"created\":\"2018-10-31T13:39:27.148615+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6f66600e-dd12-11e8-9e55-7f30fbb45e73\",\"attributes\":{\"name\":\"logs_live_tail\",\"display_name\":\"Logs Live Tail\",\"description\":\"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\":\"Log Management\",\"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\":\"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\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"811ac4ca-dd12-11e8-9e57-676a7f0beef9\",\"attributes\":{\"name\":\"logs_write_pipelines\",\"display_name\":\"Logs Write Pipelines\",\"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.\",\"created\":\"2018-10-31T13:40:17.996379+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"84aa3ae4-dd12-11e8-9e58-a373a514ccd0\",\"attributes\":{\"name\":\"logs_write_processors\",\"display_name\":\"Logs Write Processors\",\"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.\",\"created\":\"2018-10-31T13:40:23.969725+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"87b00304-dd12-11e8-9e59-cbeb5f71f72f\",\"attributes\":{\"name\":\"logs_write_archives\",\"display_name\":\"Logs Write Archives\",\"description\":\"Add and edit Log Archives.\",\"created\":\"2018-10-31T13:40:29.040786+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"979df720-aed7-11e9-99c6-a7eb8373165a\",\"attributes\":{\"name\":\"logs_generate_metrics\",\"display_name\":\"Logs Generate Metrics\",\"description\":\"Create custom metrics from logs.\",\"created\":\"2019-07-25T12:27:39.640758+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\",\"attributes\":{\"name\":\"dashboards_read\",\"display_name\":\"Dashboards Read\",\"description\":\"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 Write\",\"description\":\"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 Public Share\",\"description\":\"Generate public and authenticated links 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 Read\",\"description\":\"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 Write\",\"description\":\"Edit, 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 Downtime\",\"description\":\"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\":\"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.\",\"created\":\"2020-04-06T16:24:35.989108+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b382b982-8535-11ea-93de-2bf1bdf20798\",\"attributes\":{\"name\":\"logs_read_archives\",\"display_name\":\"Logs Read Archives\",\"description\":\"Read Log Archives location and use it for rehydration.\",\"created\":\"2020-04-23T07:40:27.966133+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7314eb20-aa58-11ea-95e2-6fb6e4a451d5\",\"attributes\":{\"name\":\"security_monitoring_rules_read\",\"display_name\":\"Security Rules Read\",\"description\":\"Read Detection Rules.\",\"created\":\"2020-06-09T13:52:25.279909+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7b516476-aa58-11ea-95e2-93718cd56369\",\"attributes\":{\"name\":\"security_monitoring_rules_write\",\"display_name\":\"Security Rules Write\",\"description\":\"Create and edit Detection Rules.\",\"created\":\"2020-06-09T13:52:39.099413+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"80de1ec0-aa58-11ea-95e2-aff381626d5d\",\"attributes\":{\"name\":\"security_monitoring_signals_read\",\"display_name\":\"Security Signals Read\",\"description\":\"View Security Signals.\",\"created\":\"2020-06-09T13:52:48.410398+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"58b412cc-ff6d-11eb-bc9c-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_signals_write\",\"display_name\":\"Security Signals Write\",\"description\":\"Modify Security Signals.\",\"created\":\"2021-08-17T15:11:06.963503+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"9ac1d8cc-e707-11ea-aa2d-73d37e989a9d\",\"attributes\":{\"name\":\"user_access_invite\",\"display_name\":\"User Access Invite\",\"description\":\"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\":\"User Access Manage\",\"description\":\"Disable users, manage user roles, manage SAML-to-role mappings, and configure logs restriction queries.\",\"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 App Keys\",\"description\":\"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\":\"Org App Keys Read\",\"description\":\"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\":\"Org App Keys Write\",\"description\":\"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\":\"Synthetics Private Location Read\",\"description\":\"View, search, and use Synthetics private locations.\",\"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\":\"Synthetics Private Location Write\",\"description\":\"Create and delete private locations in addition to having access to 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 Read\",\"description\":\"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 Edit\",\"description\":\"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 Read\",\"description\":\"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 Edit\",\"description\":\"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\":\"Metric Tags Write\",\"description\":\"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 Write Historical View\",\"description\":\"Rehydrate logs from Archives.\",\"created\":\"2020-09-16T08:38:44.242076+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"2fbdac76-f923-11ea-adbc-07f3823e2b43\",\"attributes\":{\"name\":\"audit_logs_read\",\"display_name\":\"Audit Trail Read\",\"description\":\"View Audit Trail in your organization.\",\"created\":\"2020-09-17T20:20:10.834252+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"372896c4-f923-11ea-adbc-4fecd107156d\",\"attributes\":{\"name\":\"api_keys_read\",\"display_name\":\"API Keys Read\",\"description\":\"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 Write\",\"description\":\"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\":\"Synthetics Global Variable Read\",\"description\":\"View, search, and use Synthetics global variables.\",\"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\":\"Synthetics Global Variable Write\",\"description\":\"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\":\"Synthetics Read\",\"description\":\"List and view configured Synthetic tests and test results.\",\"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\":\"Synthetics Write\",\"description\":\"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\":\"Synthetics Default Settings Read\",\"description\":\"View the default settings for Synthetic 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\":\"Synthetics Default Settings Write\",\"description\":\"Edit the default settings for Synthetic 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 Write Facets\",\"description\":\"Create or edit Log Facets.\",\"created\":\"2020-10-14T12:40:20.271908+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"a42e94b2-1476-11eb-bd08-efda28c04248\",\"attributes\":{\"name\":\"service_account_write\",\"display_name\":\"Service Account Write\",\"description\":\"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\",\"description\":\"Use the Integrations APIs to configure integrations. In order to configure integrations from the UI, a user must also have Standard Access.\",\"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\",\"description\":\"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\":\"APM Retention Filter Read\",\"description\":\"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\":\"APM Retention Filter Write\",\"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.\",\"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\":\"APM Service Ingest Read\",\"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.\",\"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\":\"APM Service Ingest Write\",\"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.\",\"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\":\"APM Apdex Manage Write\",\"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.\",\"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\":\"APM Tag Management Write\",\"description\":\"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\":\"APM Primary Operation Write\",\"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.\",\"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 Trail Write\",\"description\":\"Configure Audit Trail in your organization.\",\"created\":\"2020-12-01T19:18:39.866516+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"8106300a-54f7-11eb-8cbc-7781a434a67b\",\"attributes\":{\"name\":\"rum_apps_write\",\"display_name\":\"RUM Apps Write\",\"description\":\"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\":\"edfd5e74-801f-11eb-96d8-da7ad0900002\",\"attributes\":{\"name\":\"debugger_write\",\"display_name\":\"Live Debugger Write Configuration\",\"description\":\"Edit Live Debugger configuration.\",\"created\":\"2021-03-08T15:06:59.006815+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"edfd5e75-801f-11eb-96d8-da7ad0900002\",\"attributes\":{\"name\":\"debugger_read\",\"display_name\":\"Live Debugger Read Configuration\",\"description\":\"View Live Debugger configuration.\",\"created\":\"2021-03-08T15:06:59.010517+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7c-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_read\",\"display_name\":\"Data Scanner Read\",\"description\":\"View Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.394971+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7d-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_write\",\"display_name\":\"Data Scanner Write\",\"description\":\"Edit Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.398584+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\",\"attributes\":{\"name\":\"org_management\",\"display_name\":\"Org Management\",\"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 & unsubscribing from apps in the marketplace.\",\"created\":\"2021-04-23T17:51:12.187340+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 Read\",\"description\":\"Read Security Filters.\",\"created\":\"2021-05-10T08:56:23.676833+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"98b984f5-b16d-11eb-a2c6-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_filters_write\",\"display_name\":\"Security Filters Write\",\"description\":\"Create, edit, and delete Security Filters.\",\"created\":\"2021-05-10T08:56:23.680551+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incident Read\",\"description\":\"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\":\"Incident Write\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"Configure Incidents 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 Read\",\"description\":\"View Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.595771+00:00\",\"group_name\":\"Cloud Security Platform\",\"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 Write\",\"description\":\"Edit Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.598808+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"RUM Session Replay Read\",\"description\":\"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\":\"Security Notification Rules Read\",\"description\":\"Read Notification Rules.\",\"created\":\"2021-09-16T08:26:27.366789+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"c95412b9-16c7-11ec-85c0-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_notification_profiles_write\",\"display_name\":\"Security Notification Rules Write\",\"description\":\"Create, edit, and delete Notification Rules.\",\"created\":\"2021-09-16T08:26:27.369359+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"26c79920-1703-11ec-85d2-da7ad0900002\",\"attributes\":{\"name\":\"apm_generate_metrics\",\"display_name\":\"APM Generate Metrics\",\"description\":\"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\":\"APM Pipelines Write\",\"description\":\"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\":\"APM Pipelines Read\",\"description\":\"View APM pipeline configurations.\",\"created\":\"2021-12-07T11:26:43.807269+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb4-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_read\",\"display_name\":\"Pipeline Configurations Read\",\"description\":\"View pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.956827+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb5-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_write\",\"display_name\":\"Pipeline Configurations Write\",\"description\":\"Create, edit, and delete pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.960833+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7a89ec40-8b69-11ec-812d-da7ad0900002\",\"attributes\":{\"name\":\"incidents_private_global_access\",\"display_name\":\"Private Incidents Global Access\",\"description\":\"Access all private incidents in Datadog, even when not added as a responder.\",\"created\":\"2022-02-11T18:36:08.531989+00:00\",\"group_name\":\"Incidents\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"b6bf9ac7-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_write\",\"display_name\":\"Notebooks Write\",\"description\":\"Create and change notebooks.\",\"created\":\"2022-03-02T18:51:05.044683+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"2108215e-b9b4-11ec-958e-da7ad0900002\",\"attributes\":{\"name\":\"rum_generate_metrics\",\"display_name\":\"RUM Generate Metrics\",\"description\":\"Create custom metrics from RUM events.\",\"created\":\"2022-04-11T16:26:24.106645+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1afff448-d5e9-11ec-ae37-da7ad0900002\",\"attributes\":{\"name\":\"usage_notifications_read\",\"display_name\":\"Usage Notifications Read\",\"description\":\"Receive notifications and view currently configured notification settings.\",\"created\":\"2022-05-17T13:56:09.870985+00:00\",\"group_name\":\"Billing and Usage\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1afff449-d5e9-11ec-ae37-da7ad0900002\",\"attributes\":{\"name\":\"usage_notifications_write\",\"display_name\":\"Usage Notifications Write\",\"description\":\"Receive notifications and configure notification settings.\",\"created\":\"2022-05-17T13:56:09.876124+00:00\",\"group_name\":\"Billing and Usage\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c87d3da-e5c5-11ec-b1d6-da7ad0900002\",\"attributes\":{\"name\":\"generate_dashboard_reports\",\"display_name\":\"Dashboards Report Write\",\"description\":\"Schedule custom reports from a dashboard. These reports will display any viewable data regardless of any granular restrictions (restriction queries, scoped indexes) applied to the report's creator.\",\"created\":\"2022-06-06T18:21:03.378896+00:00\",\"group_name\":\"Dashboards\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_read\",\"display_name\":\"SLOs Read\",\"description\":\"View SLOs and status corrections.\",\"created\":\"2022-06-08T16:20:55.142591+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"f8e941d0-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_write\",\"display_name\":\"SLOs Write\",\"description\":\"Create, edit, and delete SLOs.\",\"created\":\"2022-06-08T16:20:55.143869+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f8e941ce-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_corrections\",\"display_name\":\"SLOs Status Corrections\",\"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.\",\"created\":\"2022-06-08T16:20:55.139410+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"ee68fba9-173a-11ed-b00b-da7ad0900002\",\"attributes\":{\"name\":\"apm_service_catalog_write\",\"display_name\":\"Service Catalog Write\",\"description\":\"Add, modify, and delete service catalog definitions when those definitions are maintained by Datadog.\",\"created\":\"2022-08-08T16:55:39.377188+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"ee68fba8-173a-11ed-b00b-da7ad0900002\",\"attributes\":{\"name\":\"apm_service_catalog_read\",\"display_name\":\"Service Catalog Read\",\"description\":\"View service catalog and service definitions.\",\"created\":\"2022-08-08T16:55:39.374377+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6be119a6-1cd8-11ed-b185-da7ad0900002\",\"attributes\":{\"name\":\"watchdog_insights_read\",\"display_name\":\"Watchdog Insights Read\",\"description\":\"View Watchdog Insights.\",\"created\":\"2022-08-15T20:25:36.677197+00:00\",\"group_name\":\"Watchdog\",\"display_type\":\"read\",\"restricted\":false}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 26 Aug 2022 21:57:22 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Update_a_role_returns_Bad_Request_response-1661551042-updated\"},\"id\":\"10475ae6-258a-11ed-b455-da7ad0900002\",\"relationships\":{\"permissions\":{\"data\":[{\"id\":\"11111111-dead-beef-dead-ffffffffffff\",\"type\":\"permissions\"}]}},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/roles/10475ae6-258a-11ed-b455-da7ad0900002"}, "response": {"body": {"string": "{\"errors\":[\"Invalid input \"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Fri, 26 Aug 2022 21:57:22 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/10475ae6-258a-11ed-b455-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Fri, 26 Aug 2022 21:57:22 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Update_a_role_returns_Bad_Request_response-1661551042\"},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"roles\",\"id\":\"10475ae6-258a-11ed-b455-da7ad0900002\",\"attributes\":{\"name\":\"Test-Update_a_role_returns_Bad_Request_response-1661551042\",\"created_at\":\"2022-08-26T21:57:22.716898+00:00\",\"modified_at\":\"2022-08-26T21:57:22.941930+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\"}]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Aug 2022 21:57:22 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/permissions" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"attributes\":{\"name\":\"admin\",\"display_name\":\"Privileged Access\",\"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.\",\"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\":\"View and edit components in your Datadog organization that do not have explicitly defined permissions. This includes configuring some integrations (from the UI), events, most facets, and saved views. In order to configure integrations from the UI, a user must also have Integrations API.\",\"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\":\"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. Restrictions are limited to the Log Management product.\",\"created\":\"2018-10-31T13:39:19.727450+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"62cc036c-dd12-11e8-9e54-db9995643092\",\"attributes\":{\"name\":\"logs_modify_indexes\",\"display_name\":\"Logs Modify Indexes\",\"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.\",\"created\":\"2018-10-31T13:39:27.148615+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6f66600e-dd12-11e8-9e55-7f30fbb45e73\",\"attributes\":{\"name\":\"logs_live_tail\",\"display_name\":\"Logs Live Tail\",\"description\":\"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\":\"Log Management\",\"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\":\"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\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"811ac4ca-dd12-11e8-9e57-676a7f0beef9\",\"attributes\":{\"name\":\"logs_write_pipelines\",\"display_name\":\"Logs Write Pipelines\",\"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.\",\"created\":\"2018-10-31T13:40:17.996379+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"84aa3ae4-dd12-11e8-9e58-a373a514ccd0\",\"attributes\":{\"name\":\"logs_write_processors\",\"display_name\":\"Logs Write Processors\",\"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.\",\"created\":\"2018-10-31T13:40:23.969725+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"87b00304-dd12-11e8-9e59-cbeb5f71f72f\",\"attributes\":{\"name\":\"logs_write_archives\",\"display_name\":\"Logs Write Archives\",\"description\":\"Add and edit Log Archives.\",\"created\":\"2018-10-31T13:40:29.040786+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"979df720-aed7-11e9-99c6-a7eb8373165a\",\"attributes\":{\"name\":\"logs_generate_metrics\",\"display_name\":\"Logs Generate Metrics\",\"description\":\"Create custom metrics from logs.\",\"created\":\"2019-07-25T12:27:39.640758+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\",\"attributes\":{\"name\":\"dashboards_read\",\"display_name\":\"Dashboards Read\",\"description\":\"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 Write\",\"description\":\"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 Public Share\",\"description\":\"Generate public and authenticated links 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 Read\",\"description\":\"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 Write\",\"description\":\"Edit, 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 Downtime\",\"description\":\"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\":\"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.\",\"created\":\"2020-04-06T16:24:35.989108+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b382b982-8535-11ea-93de-2bf1bdf20798\",\"attributes\":{\"name\":\"logs_read_archives\",\"display_name\":\"Logs Read Archives\",\"description\":\"Read Log Archives location and use it for rehydration.\",\"created\":\"2020-04-23T07:40:27.966133+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7314eb20-aa58-11ea-95e2-6fb6e4a451d5\",\"attributes\":{\"name\":\"security_monitoring_rules_read\",\"display_name\":\"Security Rules Read\",\"description\":\"Read Detection Rules.\",\"created\":\"2020-06-09T13:52:25.279909+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7b516476-aa58-11ea-95e2-93718cd56369\",\"attributes\":{\"name\":\"security_monitoring_rules_write\",\"display_name\":\"Security Rules Write\",\"description\":\"Create and edit Detection Rules.\",\"created\":\"2020-06-09T13:52:39.099413+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"80de1ec0-aa58-11ea-95e2-aff381626d5d\",\"attributes\":{\"name\":\"security_monitoring_signals_read\",\"display_name\":\"Security Signals Read\",\"description\":\"View Security Signals.\",\"created\":\"2020-06-09T13:52:48.410398+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"58b412cc-ff6d-11eb-bc9c-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_signals_write\",\"display_name\":\"Security Signals Write\",\"description\":\"Modify Security Signals.\",\"created\":\"2021-08-17T15:11:06.963503+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"9ac1d8cc-e707-11ea-aa2d-73d37e989a9d\",\"attributes\":{\"name\":\"user_access_invite\",\"display_name\":\"User Access Invite\",\"description\":\"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\":\"User Access Manage\",\"description\":\"Disable users, manage user roles, manage SAML-to-role mappings, and configure logs restriction queries.\",\"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 App Keys\",\"description\":\"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\":\"Org App Keys Read\",\"description\":\"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\":\"Org App Keys Write\",\"description\":\"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\":\"Synthetics Private Location Read\",\"description\":\"View, search, and use Synthetics private locations.\",\"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\":\"Synthetics Private Location Write\",\"description\":\"Create and delete private locations in addition to having access to 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 Read\",\"description\":\"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 Edit\",\"description\":\"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 Read\",\"description\":\"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 Edit\",\"description\":\"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\":\"Metric Tags Write\",\"description\":\"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 Write Historical View\",\"description\":\"Rehydrate logs from Archives.\",\"created\":\"2020-09-16T08:38:44.242076+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"2fbdac76-f923-11ea-adbc-07f3823e2b43\",\"attributes\":{\"name\":\"audit_logs_read\",\"display_name\":\"Audit Trail Read\",\"description\":\"View Audit Trail in your organization.\",\"created\":\"2020-09-17T20:20:10.834252+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"372896c4-f923-11ea-adbc-4fecd107156d\",\"attributes\":{\"name\":\"api_keys_read\",\"display_name\":\"API Keys Read\",\"description\":\"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 Write\",\"description\":\"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\":\"Synthetics Global Variable Read\",\"description\":\"View, search, and use Synthetics global variables.\",\"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\":\"Synthetics Global Variable Write\",\"description\":\"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\":\"Synthetics Read\",\"description\":\"List and view configured Synthetic tests and test results.\",\"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\":\"Synthetics Write\",\"description\":\"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\":\"Synthetics Default Settings Read\",\"description\":\"View the default settings for Synthetic 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\":\"Synthetics Default Settings Write\",\"description\":\"Edit the default settings for Synthetic 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 Write Facets\",\"description\":\"Create or edit Log Facets.\",\"created\":\"2020-10-14T12:40:20.271908+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"a42e94b2-1476-11eb-bd08-efda28c04248\",\"attributes\":{\"name\":\"service_account_write\",\"display_name\":\"Service Account Write\",\"description\":\"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\",\"description\":\"Use the Integrations APIs to configure integrations. In order to configure integrations from the UI, a user must also have Standard Access.\",\"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\",\"description\":\"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\":\"APM Retention Filter Read\",\"description\":\"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\":\"APM Retention Filter Write\",\"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.\",\"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\":\"APM Service Ingest Read\",\"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.\",\"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\":\"APM Service Ingest Write\",\"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.\",\"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\":\"APM Apdex Manage Write\",\"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.\",\"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\":\"APM Tag Management Write\",\"description\":\"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\":\"APM Primary Operation Write\",\"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.\",\"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 Trail Write\",\"description\":\"Configure Audit Trail in your organization.\",\"created\":\"2020-12-01T19:18:39.866516+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"8106300a-54f7-11eb-8cbc-7781a434a67b\",\"attributes\":{\"name\":\"rum_apps_write\",\"display_name\":\"RUM Apps Write\",\"description\":\"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\":\"edfd5e74-801f-11eb-96d8-da7ad0900002\",\"attributes\":{\"name\":\"debugger_write\",\"display_name\":\"Live Debugger Write Configuration\",\"description\":\"Edit Live Debugger configuration.\",\"created\":\"2021-03-08T15:06:59.006815+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"edfd5e75-801f-11eb-96d8-da7ad0900002\",\"attributes\":{\"name\":\"debugger_read\",\"display_name\":\"Live Debugger Read Configuration\",\"description\":\"View Live Debugger configuration.\",\"created\":\"2021-03-08T15:06:59.010517+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7c-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_read\",\"display_name\":\"Data Scanner Read\",\"description\":\"View Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.394971+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7d-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_write\",\"display_name\":\"Data Scanner Write\",\"description\":\"Edit Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.398584+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\",\"attributes\":{\"name\":\"org_management\",\"display_name\":\"Org Management\",\"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 & unsubscribing from apps in the marketplace.\",\"created\":\"2021-04-23T17:51:12.187340+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 Read\",\"description\":\"Read Security Filters.\",\"created\":\"2021-05-10T08:56:23.676833+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"98b984f5-b16d-11eb-a2c6-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_filters_write\",\"display_name\":\"Security Filters Write\",\"description\":\"Create, edit, and delete Security Filters.\",\"created\":\"2021-05-10T08:56:23.680551+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incident Read\",\"description\":\"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\":\"Incident Write\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"Configure Incidents 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 Read\",\"description\":\"View Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.595771+00:00\",\"group_name\":\"Cloud Security Platform\",\"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 Write\",\"description\":\"Edit Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.598808+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"RUM Session Replay Read\",\"description\":\"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\":\"Security Notification Rules Read\",\"description\":\"Read Notification Rules.\",\"created\":\"2021-09-16T08:26:27.366789+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"c95412b9-16c7-11ec-85c0-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_notification_profiles_write\",\"display_name\":\"Security Notification Rules Write\",\"description\":\"Create, edit, and delete Notification Rules.\",\"created\":\"2021-09-16T08:26:27.369359+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"26c79920-1703-11ec-85d2-da7ad0900002\",\"attributes\":{\"name\":\"apm_generate_metrics\",\"display_name\":\"APM Generate Metrics\",\"description\":\"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\":\"APM Pipelines Write\",\"description\":\"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\":\"APM Pipelines Read\",\"description\":\"View APM pipeline configurations.\",\"created\":\"2021-12-07T11:26:43.807269+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb4-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_read\",\"display_name\":\"Pipeline Configurations Read\",\"description\":\"View pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.956827+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb5-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_write\",\"display_name\":\"Pipeline Configurations Write\",\"description\":\"Create, edit, and delete pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.960833+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7a89ec40-8b69-11ec-812d-da7ad0900002\",\"attributes\":{\"name\":\"incidents_private_global_access\",\"display_name\":\"Private Incidents Global Access\",\"description\":\"Access all private incidents in Datadog, even when not added as a responder.\",\"created\":\"2022-02-11T18:36:08.531989+00:00\",\"group_name\":\"Incidents\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"b6bf9ac7-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_write\",\"display_name\":\"Notebooks Write\",\"description\":\"Create and change notebooks.\",\"created\":\"2022-03-02T18:51:05.044683+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"2108215e-b9b4-11ec-958e-da7ad0900002\",\"attributes\":{\"name\":\"rum_generate_metrics\",\"display_name\":\"RUM Generate Metrics\",\"description\":\"Create custom metrics from RUM events.\",\"created\":\"2022-04-11T16:26:24.106645+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1afff448-d5e9-11ec-ae37-da7ad0900002\",\"attributes\":{\"name\":\"usage_notifications_read\",\"display_name\":\"Usage Notifications Read\",\"description\":\"Receive notifications and view currently configured notification settings.\",\"created\":\"2022-05-17T13:56:09.870985+00:00\",\"group_name\":\"Billing and Usage\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1afff449-d5e9-11ec-ae37-da7ad0900002\",\"attributes\":{\"name\":\"usage_notifications_write\",\"display_name\":\"Usage Notifications Write\",\"description\":\"Receive notifications and configure notification settings.\",\"created\":\"2022-05-17T13:56:09.876124+00:00\",\"group_name\":\"Billing and Usage\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c87d3da-e5c5-11ec-b1d6-da7ad0900002\",\"attributes\":{\"name\":\"generate_dashboard_reports\",\"display_name\":\"Dashboards Report Write\",\"description\":\"Schedule custom reports from a dashboard. These reports will display any viewable data regardless of any granular restrictions (restriction queries, scoped indexes) applied to the report's creator.\",\"created\":\"2022-06-06T18:21:03.378896+00:00\",\"group_name\":\"Dashboards\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_read\",\"display_name\":\"SLOs Read\",\"description\":\"View SLOs and status corrections.\",\"created\":\"2022-06-08T16:20:55.142591+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"f8e941d0-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_write\",\"display_name\":\"SLOs Write\",\"description\":\"Create, edit, and delete SLOs.\",\"created\":\"2022-06-08T16:20:55.143869+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f8e941ce-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_corrections\",\"display_name\":\"SLOs Status Corrections\",\"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.\",\"created\":\"2022-06-08T16:20:55.139410+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"ee68fba9-173a-11ed-b00b-da7ad0900002\",\"attributes\":{\"name\":\"apm_service_catalog_write\",\"display_name\":\"Service Catalog Write\",\"description\":\"Add, modify, and delete service catalog definitions when those definitions are maintained by Datadog.\",\"created\":\"2022-08-08T16:55:39.377188+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"ee68fba8-173a-11ed-b00b-da7ad0900002\",\"attributes\":{\"name\":\"apm_service_catalog_read\",\"display_name\":\"Service Catalog Read\",\"description\":\"View service catalog and service definitions.\",\"created\":\"2022-08-08T16:55:39.374377+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6be119a6-1cd8-11ed-b185-da7ad0900002\",\"attributes\":{\"name\":\"watchdog_insights_read\",\"display_name\":\"Watchdog Insights Read\",\"description\":\"View Watchdog Insights.\",\"created\":\"2022-08-15T20:25:36.677197+00:00\",\"group_name\":\"Watchdog\",\"display_type\":\"read\",\"restricted\":false}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Aug 2022 21:57:22 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Update_a_role_returns_Bad_Request_response-1661551042-updated\"},\"id\":\"10475ae6-258a-11ed-b455-da7ad0900002\",\"relationships\":{\"permissions\":{\"data\":[{\"id\":\"11111111-dead-beef-dead-ffffffffffff\",\"type\":\"permissions\"}]}},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/roles/10475ae6-258a-11ed-b455-da7ad0900002" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Invalid input \"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Fri, 26 Aug 2022 21:57:22 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/10475ae6-258a-11ed-b455-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Fri, 26 Aug 2022 21:57:22 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/roles/Update-a-role-returns-Bad-Role-ID-response.json b/tests/scenarios/cassettes/v2/roles/Update-a-role-returns-Bad-Role-ID-response.json index b55451190..e9998fdef 100644 --- a/tests/scenarios/cassettes/v2/roles/Update-a-role-returns-Bad-Role-ID-response.json +++ b/tests/scenarios/cassettes/v2/roles/Update-a-role-returns-Bad-Role-ID-response.json @@ -1 +1,129 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Update_a_role_returns_Bad_Role_ID_response-1661551043\"},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles"}, "response": {"body": {"string": "{\"data\":{\"type\":\"roles\",\"id\":\"10f8f24c-258a-11ed-b455-da7ad0900002\",\"attributes\":{\"name\":\"Test-Update_a_role_returns_Bad_Role_ID_response-1661551043\",\"created_at\":\"2022-08-26T21:57:23.881058+00:00\",\"modified_at\":\"2022-08-26T21:57:23.958066+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\"}]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 26 Aug 2022 21:57:23 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/permissions"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"attributes\":{\"name\":\"admin\",\"display_name\":\"Privileged Access\",\"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.\",\"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\":\"View and edit components in your Datadog organization that do not have explicitly defined permissions. This includes configuring some integrations (from the UI), events, most facets, and saved views. In order to configure integrations from the UI, a user must also have Integrations API.\",\"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\":\"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. Restrictions are limited to the Log Management product.\",\"created\":\"2018-10-31T13:39:19.727450+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"62cc036c-dd12-11e8-9e54-db9995643092\",\"attributes\":{\"name\":\"logs_modify_indexes\",\"display_name\":\"Logs Modify Indexes\",\"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.\",\"created\":\"2018-10-31T13:39:27.148615+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6f66600e-dd12-11e8-9e55-7f30fbb45e73\",\"attributes\":{\"name\":\"logs_live_tail\",\"display_name\":\"Logs Live Tail\",\"description\":\"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\":\"Log Management\",\"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\":\"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\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"811ac4ca-dd12-11e8-9e57-676a7f0beef9\",\"attributes\":{\"name\":\"logs_write_pipelines\",\"display_name\":\"Logs Write Pipelines\",\"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.\",\"created\":\"2018-10-31T13:40:17.996379+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"84aa3ae4-dd12-11e8-9e58-a373a514ccd0\",\"attributes\":{\"name\":\"logs_write_processors\",\"display_name\":\"Logs Write Processors\",\"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.\",\"created\":\"2018-10-31T13:40:23.969725+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"87b00304-dd12-11e8-9e59-cbeb5f71f72f\",\"attributes\":{\"name\":\"logs_write_archives\",\"display_name\":\"Logs Write Archives\",\"description\":\"Add and edit Log Archives.\",\"created\":\"2018-10-31T13:40:29.040786+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"979df720-aed7-11e9-99c6-a7eb8373165a\",\"attributes\":{\"name\":\"logs_generate_metrics\",\"display_name\":\"Logs Generate Metrics\",\"description\":\"Create custom metrics from logs.\",\"created\":\"2019-07-25T12:27:39.640758+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\",\"attributes\":{\"name\":\"dashboards_read\",\"display_name\":\"Dashboards Read\",\"description\":\"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 Write\",\"description\":\"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 Public Share\",\"description\":\"Generate public and authenticated links 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 Read\",\"description\":\"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 Write\",\"description\":\"Edit, 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 Downtime\",\"description\":\"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\":\"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.\",\"created\":\"2020-04-06T16:24:35.989108+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b382b982-8535-11ea-93de-2bf1bdf20798\",\"attributes\":{\"name\":\"logs_read_archives\",\"display_name\":\"Logs Read Archives\",\"description\":\"Read Log Archives location and use it for rehydration.\",\"created\":\"2020-04-23T07:40:27.966133+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7314eb20-aa58-11ea-95e2-6fb6e4a451d5\",\"attributes\":{\"name\":\"security_monitoring_rules_read\",\"display_name\":\"Security Rules Read\",\"description\":\"Read Detection Rules.\",\"created\":\"2020-06-09T13:52:25.279909+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7b516476-aa58-11ea-95e2-93718cd56369\",\"attributes\":{\"name\":\"security_monitoring_rules_write\",\"display_name\":\"Security Rules Write\",\"description\":\"Create and edit Detection Rules.\",\"created\":\"2020-06-09T13:52:39.099413+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"80de1ec0-aa58-11ea-95e2-aff381626d5d\",\"attributes\":{\"name\":\"security_monitoring_signals_read\",\"display_name\":\"Security Signals Read\",\"description\":\"View Security Signals.\",\"created\":\"2020-06-09T13:52:48.410398+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"58b412cc-ff6d-11eb-bc9c-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_signals_write\",\"display_name\":\"Security Signals Write\",\"description\":\"Modify Security Signals.\",\"created\":\"2021-08-17T15:11:06.963503+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"9ac1d8cc-e707-11ea-aa2d-73d37e989a9d\",\"attributes\":{\"name\":\"user_access_invite\",\"display_name\":\"User Access Invite\",\"description\":\"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\":\"User Access Manage\",\"description\":\"Disable users, manage user roles, manage SAML-to-role mappings, and configure logs restriction queries.\",\"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 App Keys\",\"description\":\"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\":\"Org App Keys Read\",\"description\":\"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\":\"Org App Keys Write\",\"description\":\"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\":\"Synthetics Private Location Read\",\"description\":\"View, search, and use Synthetics private locations.\",\"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\":\"Synthetics Private Location Write\",\"description\":\"Create and delete private locations in addition to having access to 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 Read\",\"description\":\"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 Edit\",\"description\":\"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 Read\",\"description\":\"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 Edit\",\"description\":\"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\":\"Metric Tags Write\",\"description\":\"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 Write Historical View\",\"description\":\"Rehydrate logs from Archives.\",\"created\":\"2020-09-16T08:38:44.242076+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"2fbdac76-f923-11ea-adbc-07f3823e2b43\",\"attributes\":{\"name\":\"audit_logs_read\",\"display_name\":\"Audit Trail Read\",\"description\":\"View Audit Trail in your organization.\",\"created\":\"2020-09-17T20:20:10.834252+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"372896c4-f923-11ea-adbc-4fecd107156d\",\"attributes\":{\"name\":\"api_keys_read\",\"display_name\":\"API Keys Read\",\"description\":\"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 Write\",\"description\":\"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\":\"Synthetics Global Variable Read\",\"description\":\"View, search, and use Synthetics global variables.\",\"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\":\"Synthetics Global Variable Write\",\"description\":\"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\":\"Synthetics Read\",\"description\":\"List and view configured Synthetic tests and test results.\",\"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\":\"Synthetics Write\",\"description\":\"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\":\"Synthetics Default Settings Read\",\"description\":\"View the default settings for Synthetic 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\":\"Synthetics Default Settings Write\",\"description\":\"Edit the default settings for Synthetic 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 Write Facets\",\"description\":\"Create or edit Log Facets.\",\"created\":\"2020-10-14T12:40:20.271908+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"a42e94b2-1476-11eb-bd08-efda28c04248\",\"attributes\":{\"name\":\"service_account_write\",\"display_name\":\"Service Account Write\",\"description\":\"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\",\"description\":\"Use the Integrations APIs to configure integrations. In order to configure integrations from the UI, a user must also have Standard Access.\",\"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\",\"description\":\"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\":\"APM Retention Filter Read\",\"description\":\"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\":\"APM Retention Filter Write\",\"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.\",\"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\":\"APM Service Ingest Read\",\"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.\",\"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\":\"APM Service Ingest Write\",\"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.\",\"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\":\"APM Apdex Manage Write\",\"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.\",\"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\":\"APM Tag Management Write\",\"description\":\"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\":\"APM Primary Operation Write\",\"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.\",\"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 Trail Write\",\"description\":\"Configure Audit Trail in your organization.\",\"created\":\"2020-12-01T19:18:39.866516+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"8106300a-54f7-11eb-8cbc-7781a434a67b\",\"attributes\":{\"name\":\"rum_apps_write\",\"display_name\":\"RUM Apps Write\",\"description\":\"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\":\"edfd5e74-801f-11eb-96d8-da7ad0900002\",\"attributes\":{\"name\":\"debugger_write\",\"display_name\":\"Live Debugger Write Configuration\",\"description\":\"Edit Live Debugger configuration.\",\"created\":\"2021-03-08T15:06:59.006815+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"edfd5e75-801f-11eb-96d8-da7ad0900002\",\"attributes\":{\"name\":\"debugger_read\",\"display_name\":\"Live Debugger Read Configuration\",\"description\":\"View Live Debugger configuration.\",\"created\":\"2021-03-08T15:06:59.010517+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7c-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_read\",\"display_name\":\"Data Scanner Read\",\"description\":\"View Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.394971+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7d-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_write\",\"display_name\":\"Data Scanner Write\",\"description\":\"Edit Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.398584+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\",\"attributes\":{\"name\":\"org_management\",\"display_name\":\"Org Management\",\"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 & unsubscribing from apps in the marketplace.\",\"created\":\"2021-04-23T17:51:12.187340+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 Read\",\"description\":\"Read Security Filters.\",\"created\":\"2021-05-10T08:56:23.676833+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"98b984f5-b16d-11eb-a2c6-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_filters_write\",\"display_name\":\"Security Filters Write\",\"description\":\"Create, edit, and delete Security Filters.\",\"created\":\"2021-05-10T08:56:23.680551+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incident Read\",\"description\":\"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\":\"Incident Write\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"Configure Incidents 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 Read\",\"description\":\"View Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.595771+00:00\",\"group_name\":\"Cloud Security Platform\",\"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 Write\",\"description\":\"Edit Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.598808+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"RUM Session Replay Read\",\"description\":\"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\":\"Security Notification Rules Read\",\"description\":\"Read Notification Rules.\",\"created\":\"2021-09-16T08:26:27.366789+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"c95412b9-16c7-11ec-85c0-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_notification_profiles_write\",\"display_name\":\"Security Notification Rules Write\",\"description\":\"Create, edit, and delete Notification Rules.\",\"created\":\"2021-09-16T08:26:27.369359+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"26c79920-1703-11ec-85d2-da7ad0900002\",\"attributes\":{\"name\":\"apm_generate_metrics\",\"display_name\":\"APM Generate Metrics\",\"description\":\"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\":\"APM Pipelines Write\",\"description\":\"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\":\"APM Pipelines Read\",\"description\":\"View APM pipeline configurations.\",\"created\":\"2021-12-07T11:26:43.807269+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb4-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_read\",\"display_name\":\"Pipeline Configurations Read\",\"description\":\"View pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.956827+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb5-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_write\",\"display_name\":\"Pipeline Configurations Write\",\"description\":\"Create, edit, and delete pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.960833+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7a89ec40-8b69-11ec-812d-da7ad0900002\",\"attributes\":{\"name\":\"incidents_private_global_access\",\"display_name\":\"Private Incidents Global Access\",\"description\":\"Access all private incidents in Datadog, even when not added as a responder.\",\"created\":\"2022-02-11T18:36:08.531989+00:00\",\"group_name\":\"Incidents\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"b6bf9ac7-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_write\",\"display_name\":\"Notebooks Write\",\"description\":\"Create and change notebooks.\",\"created\":\"2022-03-02T18:51:05.044683+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"2108215e-b9b4-11ec-958e-da7ad0900002\",\"attributes\":{\"name\":\"rum_generate_metrics\",\"display_name\":\"RUM Generate Metrics\",\"description\":\"Create custom metrics from RUM events.\",\"created\":\"2022-04-11T16:26:24.106645+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1afff448-d5e9-11ec-ae37-da7ad0900002\",\"attributes\":{\"name\":\"usage_notifications_read\",\"display_name\":\"Usage Notifications Read\",\"description\":\"Receive notifications and view currently configured notification settings.\",\"created\":\"2022-05-17T13:56:09.870985+00:00\",\"group_name\":\"Billing and Usage\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1afff449-d5e9-11ec-ae37-da7ad0900002\",\"attributes\":{\"name\":\"usage_notifications_write\",\"display_name\":\"Usage Notifications Write\",\"description\":\"Receive notifications and configure notification settings.\",\"created\":\"2022-05-17T13:56:09.876124+00:00\",\"group_name\":\"Billing and Usage\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c87d3da-e5c5-11ec-b1d6-da7ad0900002\",\"attributes\":{\"name\":\"generate_dashboard_reports\",\"display_name\":\"Dashboards Report Write\",\"description\":\"Schedule custom reports from a dashboard. These reports will display any viewable data regardless of any granular restrictions (restriction queries, scoped indexes) applied to the report's creator.\",\"created\":\"2022-06-06T18:21:03.378896+00:00\",\"group_name\":\"Dashboards\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_read\",\"display_name\":\"SLOs Read\",\"description\":\"View SLOs and status corrections.\",\"created\":\"2022-06-08T16:20:55.142591+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"f8e941d0-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_write\",\"display_name\":\"SLOs Write\",\"description\":\"Create, edit, and delete SLOs.\",\"created\":\"2022-06-08T16:20:55.143869+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f8e941ce-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_corrections\",\"display_name\":\"SLOs Status Corrections\",\"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.\",\"created\":\"2022-06-08T16:20:55.139410+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"ee68fba9-173a-11ed-b00b-da7ad0900002\",\"attributes\":{\"name\":\"apm_service_catalog_write\",\"display_name\":\"Service Catalog Write\",\"description\":\"Add, modify, and delete service catalog definitions when those definitions are maintained by Datadog.\",\"created\":\"2022-08-08T16:55:39.377188+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"ee68fba8-173a-11ed-b00b-da7ad0900002\",\"attributes\":{\"name\":\"apm_service_catalog_read\",\"display_name\":\"Service Catalog Read\",\"description\":\"View service catalog and service definitions.\",\"created\":\"2022-08-08T16:55:39.374377+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6be119a6-1cd8-11ed-b185-da7ad0900002\",\"attributes\":{\"name\":\"watchdog_insights_read\",\"display_name\":\"Watchdog Insights Read\",\"description\":\"View Watchdog Insights.\",\"created\":\"2022-08-15T20:25:36.677197+00:00\",\"group_name\":\"Watchdog\",\"display_type\":\"read\",\"restricted\":false}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 26 Aug 2022 21:57:23 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Update_a_role_returns_Bad_Role_ID_response-1661551043-updated\"},\"id\":\"00000000-dead-beef-dead-ffffffffffff\",\"relationships\":{\"permissions\":{\"data\":[{\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"type\":\"permissions\"}]}},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/roles/10f8f24c-258a-11ed-b455-da7ad0900002"}, "response": {"body": {"string": "{\"errors\":[\"The id attribute in the request body does not match the role_id in the URL\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 422, "message": "Unprocessable Entity"}}, "recorded_at": "Fri, 26 Aug 2022 21:57:23 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/10f8f24c-258a-11ed-b455-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Fri, 26 Aug 2022 21:57:23 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Update_a_role_returns_Bad_Role_ID_response-1661551043\"},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"roles\",\"id\":\"10f8f24c-258a-11ed-b455-da7ad0900002\",\"attributes\":{\"name\":\"Test-Update_a_role_returns_Bad_Role_ID_response-1661551043\",\"created_at\":\"2022-08-26T21:57:23.881058+00:00\",\"modified_at\":\"2022-08-26T21:57:23.958066+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\"}]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Aug 2022 21:57:23 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/permissions" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"attributes\":{\"name\":\"admin\",\"display_name\":\"Privileged Access\",\"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.\",\"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\":\"View and edit components in your Datadog organization that do not have explicitly defined permissions. This includes configuring some integrations (from the UI), events, most facets, and saved views. In order to configure integrations from the UI, a user must also have Integrations API.\",\"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\":\"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. Restrictions are limited to the Log Management product.\",\"created\":\"2018-10-31T13:39:19.727450+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"62cc036c-dd12-11e8-9e54-db9995643092\",\"attributes\":{\"name\":\"logs_modify_indexes\",\"display_name\":\"Logs Modify Indexes\",\"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.\",\"created\":\"2018-10-31T13:39:27.148615+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6f66600e-dd12-11e8-9e55-7f30fbb45e73\",\"attributes\":{\"name\":\"logs_live_tail\",\"display_name\":\"Logs Live Tail\",\"description\":\"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\":\"Log Management\",\"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\":\"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\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"811ac4ca-dd12-11e8-9e57-676a7f0beef9\",\"attributes\":{\"name\":\"logs_write_pipelines\",\"display_name\":\"Logs Write Pipelines\",\"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.\",\"created\":\"2018-10-31T13:40:17.996379+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"84aa3ae4-dd12-11e8-9e58-a373a514ccd0\",\"attributes\":{\"name\":\"logs_write_processors\",\"display_name\":\"Logs Write Processors\",\"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.\",\"created\":\"2018-10-31T13:40:23.969725+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"87b00304-dd12-11e8-9e59-cbeb5f71f72f\",\"attributes\":{\"name\":\"logs_write_archives\",\"display_name\":\"Logs Write Archives\",\"description\":\"Add and edit Log Archives.\",\"created\":\"2018-10-31T13:40:29.040786+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"979df720-aed7-11e9-99c6-a7eb8373165a\",\"attributes\":{\"name\":\"logs_generate_metrics\",\"display_name\":\"Logs Generate Metrics\",\"description\":\"Create custom metrics from logs.\",\"created\":\"2019-07-25T12:27:39.640758+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\",\"attributes\":{\"name\":\"dashboards_read\",\"display_name\":\"Dashboards Read\",\"description\":\"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 Write\",\"description\":\"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 Public Share\",\"description\":\"Generate public and authenticated links 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 Read\",\"description\":\"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 Write\",\"description\":\"Edit, 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 Downtime\",\"description\":\"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\":\"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.\",\"created\":\"2020-04-06T16:24:35.989108+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b382b982-8535-11ea-93de-2bf1bdf20798\",\"attributes\":{\"name\":\"logs_read_archives\",\"display_name\":\"Logs Read Archives\",\"description\":\"Read Log Archives location and use it for rehydration.\",\"created\":\"2020-04-23T07:40:27.966133+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7314eb20-aa58-11ea-95e2-6fb6e4a451d5\",\"attributes\":{\"name\":\"security_monitoring_rules_read\",\"display_name\":\"Security Rules Read\",\"description\":\"Read Detection Rules.\",\"created\":\"2020-06-09T13:52:25.279909+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7b516476-aa58-11ea-95e2-93718cd56369\",\"attributes\":{\"name\":\"security_monitoring_rules_write\",\"display_name\":\"Security Rules Write\",\"description\":\"Create and edit Detection Rules.\",\"created\":\"2020-06-09T13:52:39.099413+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"80de1ec0-aa58-11ea-95e2-aff381626d5d\",\"attributes\":{\"name\":\"security_monitoring_signals_read\",\"display_name\":\"Security Signals Read\",\"description\":\"View Security Signals.\",\"created\":\"2020-06-09T13:52:48.410398+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"58b412cc-ff6d-11eb-bc9c-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_signals_write\",\"display_name\":\"Security Signals Write\",\"description\":\"Modify Security Signals.\",\"created\":\"2021-08-17T15:11:06.963503+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"9ac1d8cc-e707-11ea-aa2d-73d37e989a9d\",\"attributes\":{\"name\":\"user_access_invite\",\"display_name\":\"User Access Invite\",\"description\":\"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\":\"User Access Manage\",\"description\":\"Disable users, manage user roles, manage SAML-to-role mappings, and configure logs restriction queries.\",\"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 App Keys\",\"description\":\"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\":\"Org App Keys Read\",\"description\":\"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\":\"Org App Keys Write\",\"description\":\"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\":\"Synthetics Private Location Read\",\"description\":\"View, search, and use Synthetics private locations.\",\"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\":\"Synthetics Private Location Write\",\"description\":\"Create and delete private locations in addition to having access to 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 Read\",\"description\":\"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 Edit\",\"description\":\"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 Read\",\"description\":\"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 Edit\",\"description\":\"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\":\"Metric Tags Write\",\"description\":\"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 Write Historical View\",\"description\":\"Rehydrate logs from Archives.\",\"created\":\"2020-09-16T08:38:44.242076+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"2fbdac76-f923-11ea-adbc-07f3823e2b43\",\"attributes\":{\"name\":\"audit_logs_read\",\"display_name\":\"Audit Trail Read\",\"description\":\"View Audit Trail in your organization.\",\"created\":\"2020-09-17T20:20:10.834252+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"372896c4-f923-11ea-adbc-4fecd107156d\",\"attributes\":{\"name\":\"api_keys_read\",\"display_name\":\"API Keys Read\",\"description\":\"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 Write\",\"description\":\"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\":\"Synthetics Global Variable Read\",\"description\":\"View, search, and use Synthetics global variables.\",\"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\":\"Synthetics Global Variable Write\",\"description\":\"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\":\"Synthetics Read\",\"description\":\"List and view configured Synthetic tests and test results.\",\"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\":\"Synthetics Write\",\"description\":\"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\":\"Synthetics Default Settings Read\",\"description\":\"View the default settings for Synthetic 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\":\"Synthetics Default Settings Write\",\"description\":\"Edit the default settings for Synthetic 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 Write Facets\",\"description\":\"Create or edit Log Facets.\",\"created\":\"2020-10-14T12:40:20.271908+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"a42e94b2-1476-11eb-bd08-efda28c04248\",\"attributes\":{\"name\":\"service_account_write\",\"display_name\":\"Service Account Write\",\"description\":\"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\",\"description\":\"Use the Integrations APIs to configure integrations. In order to configure integrations from the UI, a user must also have Standard Access.\",\"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\",\"description\":\"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\":\"APM Retention Filter Read\",\"description\":\"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\":\"APM Retention Filter Write\",\"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.\",\"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\":\"APM Service Ingest Read\",\"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.\",\"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\":\"APM Service Ingest Write\",\"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.\",\"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\":\"APM Apdex Manage Write\",\"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.\",\"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\":\"APM Tag Management Write\",\"description\":\"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\":\"APM Primary Operation Write\",\"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.\",\"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 Trail Write\",\"description\":\"Configure Audit Trail in your organization.\",\"created\":\"2020-12-01T19:18:39.866516+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"8106300a-54f7-11eb-8cbc-7781a434a67b\",\"attributes\":{\"name\":\"rum_apps_write\",\"display_name\":\"RUM Apps Write\",\"description\":\"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\":\"edfd5e74-801f-11eb-96d8-da7ad0900002\",\"attributes\":{\"name\":\"debugger_write\",\"display_name\":\"Live Debugger Write Configuration\",\"description\":\"Edit Live Debugger configuration.\",\"created\":\"2021-03-08T15:06:59.006815+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"edfd5e75-801f-11eb-96d8-da7ad0900002\",\"attributes\":{\"name\":\"debugger_read\",\"display_name\":\"Live Debugger Read Configuration\",\"description\":\"View Live Debugger configuration.\",\"created\":\"2021-03-08T15:06:59.010517+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7c-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_read\",\"display_name\":\"Data Scanner Read\",\"description\":\"View Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.394971+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7d-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_write\",\"display_name\":\"Data Scanner Write\",\"description\":\"Edit Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.398584+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\",\"attributes\":{\"name\":\"org_management\",\"display_name\":\"Org Management\",\"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 & unsubscribing from apps in the marketplace.\",\"created\":\"2021-04-23T17:51:12.187340+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 Read\",\"description\":\"Read Security Filters.\",\"created\":\"2021-05-10T08:56:23.676833+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"98b984f5-b16d-11eb-a2c6-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_filters_write\",\"display_name\":\"Security Filters Write\",\"description\":\"Create, edit, and delete Security Filters.\",\"created\":\"2021-05-10T08:56:23.680551+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incident Read\",\"description\":\"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\":\"Incident Write\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"Configure Incidents 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 Read\",\"description\":\"View Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.595771+00:00\",\"group_name\":\"Cloud Security Platform\",\"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 Write\",\"description\":\"Edit Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.598808+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"RUM Session Replay Read\",\"description\":\"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\":\"Security Notification Rules Read\",\"description\":\"Read Notification Rules.\",\"created\":\"2021-09-16T08:26:27.366789+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"c95412b9-16c7-11ec-85c0-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_notification_profiles_write\",\"display_name\":\"Security Notification Rules Write\",\"description\":\"Create, edit, and delete Notification Rules.\",\"created\":\"2021-09-16T08:26:27.369359+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"26c79920-1703-11ec-85d2-da7ad0900002\",\"attributes\":{\"name\":\"apm_generate_metrics\",\"display_name\":\"APM Generate Metrics\",\"description\":\"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\":\"APM Pipelines Write\",\"description\":\"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\":\"APM Pipelines Read\",\"description\":\"View APM pipeline configurations.\",\"created\":\"2021-12-07T11:26:43.807269+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb4-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_read\",\"display_name\":\"Pipeline Configurations Read\",\"description\":\"View pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.956827+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb5-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_write\",\"display_name\":\"Pipeline Configurations Write\",\"description\":\"Create, edit, and delete pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.960833+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7a89ec40-8b69-11ec-812d-da7ad0900002\",\"attributes\":{\"name\":\"incidents_private_global_access\",\"display_name\":\"Private Incidents Global Access\",\"description\":\"Access all private incidents in Datadog, even when not added as a responder.\",\"created\":\"2022-02-11T18:36:08.531989+00:00\",\"group_name\":\"Incidents\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"b6bf9ac7-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_write\",\"display_name\":\"Notebooks Write\",\"description\":\"Create and change notebooks.\",\"created\":\"2022-03-02T18:51:05.044683+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"2108215e-b9b4-11ec-958e-da7ad0900002\",\"attributes\":{\"name\":\"rum_generate_metrics\",\"display_name\":\"RUM Generate Metrics\",\"description\":\"Create custom metrics from RUM events.\",\"created\":\"2022-04-11T16:26:24.106645+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1afff448-d5e9-11ec-ae37-da7ad0900002\",\"attributes\":{\"name\":\"usage_notifications_read\",\"display_name\":\"Usage Notifications Read\",\"description\":\"Receive notifications and view currently configured notification settings.\",\"created\":\"2022-05-17T13:56:09.870985+00:00\",\"group_name\":\"Billing and Usage\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1afff449-d5e9-11ec-ae37-da7ad0900002\",\"attributes\":{\"name\":\"usage_notifications_write\",\"display_name\":\"Usage Notifications Write\",\"description\":\"Receive notifications and configure notification settings.\",\"created\":\"2022-05-17T13:56:09.876124+00:00\",\"group_name\":\"Billing and Usage\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c87d3da-e5c5-11ec-b1d6-da7ad0900002\",\"attributes\":{\"name\":\"generate_dashboard_reports\",\"display_name\":\"Dashboards Report Write\",\"description\":\"Schedule custom reports from a dashboard. These reports will display any viewable data regardless of any granular restrictions (restriction queries, scoped indexes) applied to the report's creator.\",\"created\":\"2022-06-06T18:21:03.378896+00:00\",\"group_name\":\"Dashboards\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_read\",\"display_name\":\"SLOs Read\",\"description\":\"View SLOs and status corrections.\",\"created\":\"2022-06-08T16:20:55.142591+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"f8e941d0-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_write\",\"display_name\":\"SLOs Write\",\"description\":\"Create, edit, and delete SLOs.\",\"created\":\"2022-06-08T16:20:55.143869+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f8e941ce-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_corrections\",\"display_name\":\"SLOs Status Corrections\",\"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.\",\"created\":\"2022-06-08T16:20:55.139410+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"ee68fba9-173a-11ed-b00b-da7ad0900002\",\"attributes\":{\"name\":\"apm_service_catalog_write\",\"display_name\":\"Service Catalog Write\",\"description\":\"Add, modify, and delete service catalog definitions when those definitions are maintained by Datadog.\",\"created\":\"2022-08-08T16:55:39.377188+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"ee68fba8-173a-11ed-b00b-da7ad0900002\",\"attributes\":{\"name\":\"apm_service_catalog_read\",\"display_name\":\"Service Catalog Read\",\"description\":\"View service catalog and service definitions.\",\"created\":\"2022-08-08T16:55:39.374377+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6be119a6-1cd8-11ed-b185-da7ad0900002\",\"attributes\":{\"name\":\"watchdog_insights_read\",\"display_name\":\"Watchdog Insights Read\",\"description\":\"View Watchdog Insights.\",\"created\":\"2022-08-15T20:25:36.677197+00:00\",\"group_name\":\"Watchdog\",\"display_type\":\"read\",\"restricted\":false}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Aug 2022 21:57:23 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Update_a_role_returns_Bad_Role_ID_response-1661551043-updated\"},\"id\":\"00000000-dead-beef-dead-ffffffffffff\",\"relationships\":{\"permissions\":{\"data\":[{\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"type\":\"permissions\"}]}},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/roles/10f8f24c-258a-11ed-b455-da7ad0900002" + }, + "response": { + "body": { + "string": "{\"errors\":[\"The id attribute in the request body does not match the role_id in the URL\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 422, + "message": "Unprocessable Entity" + } + }, + "recorded_at": "Fri, 26 Aug 2022 21:57:23 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/10f8f24c-258a-11ed-b455-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Fri, 26 Aug 2022 21:57:23 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/roles/Update-a-role-returns-Not-found-response.json b/tests/scenarios/cassettes/v2/roles/Update-a-role-returns-Not-found-response.json index b8105e469..927fadfdb 100644 --- a/tests/scenarios/cassettes/v2/roles/Update-a-role-returns-Not-found-response.json +++ b/tests/scenarios/cassettes/v2/roles/Update-a-role-returns-Not-found-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/permissions"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"attributes\":{\"name\":\"admin\",\"display_name\":\"Privileged Access\",\"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.\",\"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\":\"View and edit components in your Datadog organization that do not have explicitly defined permissions. This includes configuring some integrations (from the UI), events, most facets, and saved views. In order to configure integrations from the UI, a user must also have Integrations API.\",\"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\":\"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. Restrictions are limited to the Log Management product.\",\"created\":\"2018-10-31T13:39:19.727450+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"62cc036c-dd12-11e8-9e54-db9995643092\",\"attributes\":{\"name\":\"logs_modify_indexes\",\"display_name\":\"Logs Modify Indexes\",\"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.\",\"created\":\"2018-10-31T13:39:27.148615+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6f66600e-dd12-11e8-9e55-7f30fbb45e73\",\"attributes\":{\"name\":\"logs_live_tail\",\"display_name\":\"Logs Live Tail\",\"description\":\"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\":\"Log Management\",\"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\":\"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\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"811ac4ca-dd12-11e8-9e57-676a7f0beef9\",\"attributes\":{\"name\":\"logs_write_pipelines\",\"display_name\":\"Logs Write Pipelines\",\"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.\",\"created\":\"2018-10-31T13:40:17.996379+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"84aa3ae4-dd12-11e8-9e58-a373a514ccd0\",\"attributes\":{\"name\":\"logs_write_processors\",\"display_name\":\"Logs Write Processors\",\"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.\",\"created\":\"2018-10-31T13:40:23.969725+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"87b00304-dd12-11e8-9e59-cbeb5f71f72f\",\"attributes\":{\"name\":\"logs_write_archives\",\"display_name\":\"Logs Write Archives\",\"description\":\"Add and edit Log Archives.\",\"created\":\"2018-10-31T13:40:29.040786+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"979df720-aed7-11e9-99c6-a7eb8373165a\",\"attributes\":{\"name\":\"logs_generate_metrics\",\"display_name\":\"Logs Generate Metrics\",\"description\":\"Create custom metrics from logs.\",\"created\":\"2019-07-25T12:27:39.640758+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\",\"attributes\":{\"name\":\"dashboards_read\",\"display_name\":\"Dashboards Read\",\"description\":\"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 Write\",\"description\":\"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 Public Share\",\"description\":\"Generate public and authenticated links 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 Read\",\"description\":\"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 Write\",\"description\":\"Edit, 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 Downtime\",\"description\":\"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\":\"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.\",\"created\":\"2020-04-06T16:24:35.989108+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b382b982-8535-11ea-93de-2bf1bdf20798\",\"attributes\":{\"name\":\"logs_read_archives\",\"display_name\":\"Logs Read Archives\",\"description\":\"Read Log Archives location and use it for rehydration.\",\"created\":\"2020-04-23T07:40:27.966133+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7314eb20-aa58-11ea-95e2-6fb6e4a451d5\",\"attributes\":{\"name\":\"security_monitoring_rules_read\",\"display_name\":\"Security Rules Read\",\"description\":\"Read Detection Rules.\",\"created\":\"2020-06-09T13:52:25.279909+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7b516476-aa58-11ea-95e2-93718cd56369\",\"attributes\":{\"name\":\"security_monitoring_rules_write\",\"display_name\":\"Security Rules Write\",\"description\":\"Create and edit Detection Rules.\",\"created\":\"2020-06-09T13:52:39.099413+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"80de1ec0-aa58-11ea-95e2-aff381626d5d\",\"attributes\":{\"name\":\"security_monitoring_signals_read\",\"display_name\":\"Security Signals Read\",\"description\":\"View Security Signals.\",\"created\":\"2020-06-09T13:52:48.410398+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"58b412cc-ff6d-11eb-bc9c-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_signals_write\",\"display_name\":\"Security Signals Write\",\"description\":\"Modify Security Signals.\",\"created\":\"2021-08-17T15:11:06.963503+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"9ac1d8cc-e707-11ea-aa2d-73d37e989a9d\",\"attributes\":{\"name\":\"user_access_invite\",\"display_name\":\"User Access Invite\",\"description\":\"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\":\"User Access Manage\",\"description\":\"Disable users, manage user roles, manage SAML-to-role mappings, and configure logs restriction queries.\",\"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 App Keys\",\"description\":\"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\":\"Org App Keys Read\",\"description\":\"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\":\"Org App Keys Write\",\"description\":\"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\":\"Synthetics Private Location Read\",\"description\":\"View, search, and use Synthetics private locations.\",\"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\":\"Synthetics Private Location Write\",\"description\":\"Create and delete private locations in addition to having access to 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 Read\",\"description\":\"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 Edit\",\"description\":\"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 Read\",\"description\":\"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 Edit\",\"description\":\"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\":\"Metric Tags Write\",\"description\":\"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 Write Historical View\",\"description\":\"Rehydrate logs from Archives.\",\"created\":\"2020-09-16T08:38:44.242076+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"2fbdac76-f923-11ea-adbc-07f3823e2b43\",\"attributes\":{\"name\":\"audit_logs_read\",\"display_name\":\"Audit Trail Read\",\"description\":\"View Audit Trail in your organization.\",\"created\":\"2020-09-17T20:20:10.834252+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"372896c4-f923-11ea-adbc-4fecd107156d\",\"attributes\":{\"name\":\"api_keys_read\",\"display_name\":\"API Keys Read\",\"description\":\"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 Write\",\"description\":\"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\":\"Synthetics Global Variable Read\",\"description\":\"View, search, and use Synthetics global variables.\",\"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\":\"Synthetics Global Variable Write\",\"description\":\"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\":\"Synthetics Read\",\"description\":\"List and view configured Synthetic tests and test results.\",\"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\":\"Synthetics Write\",\"description\":\"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\":\"Synthetics Default Settings Read\",\"description\":\"View the default settings for Synthetic 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\":\"Synthetics Default Settings Write\",\"description\":\"Edit the default settings for Synthetic 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 Write Facets\",\"description\":\"Create or edit Log Facets.\",\"created\":\"2020-10-14T12:40:20.271908+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"a42e94b2-1476-11eb-bd08-efda28c04248\",\"attributes\":{\"name\":\"service_account_write\",\"display_name\":\"Service Account Write\",\"description\":\"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\",\"description\":\"Use the Integrations APIs to configure integrations. In order to configure integrations from the UI, a user must also have Standard Access.\",\"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\",\"description\":\"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\":\"APM Retention Filter Read\",\"description\":\"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\":\"APM Retention Filter Write\",\"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.\",\"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\":\"APM Service Ingest Read\",\"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.\",\"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\":\"APM Service Ingest Write\",\"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.\",\"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\":\"APM Apdex Manage Write\",\"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.\",\"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\":\"APM Tag Management Write\",\"description\":\"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\":\"APM Primary Operation Write\",\"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.\",\"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 Trail Write\",\"description\":\"Configure Audit Trail in your organization.\",\"created\":\"2020-12-01T19:18:39.866516+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"8106300a-54f7-11eb-8cbc-7781a434a67b\",\"attributes\":{\"name\":\"rum_apps_write\",\"display_name\":\"RUM Apps Write\",\"description\":\"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\":\"edfd5e74-801f-11eb-96d8-da7ad0900002\",\"attributes\":{\"name\":\"debugger_write\",\"display_name\":\"Live Debugger Write Configuration\",\"description\":\"Edit Live Debugger configuration.\",\"created\":\"2021-03-08T15:06:59.006815+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"edfd5e75-801f-11eb-96d8-da7ad0900002\",\"attributes\":{\"name\":\"debugger_read\",\"display_name\":\"Live Debugger Read Configuration\",\"description\":\"View Live Debugger configuration.\",\"created\":\"2021-03-08T15:06:59.010517+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7c-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_read\",\"display_name\":\"Data Scanner Read\",\"description\":\"View Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.394971+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7d-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_write\",\"display_name\":\"Data Scanner Write\",\"description\":\"Edit Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.398584+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\",\"attributes\":{\"name\":\"org_management\",\"display_name\":\"Org Management\",\"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 & unsubscribing from apps in the marketplace.\",\"created\":\"2021-04-23T17:51:12.187340+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 Read\",\"description\":\"Read Security Filters.\",\"created\":\"2021-05-10T08:56:23.676833+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"98b984f5-b16d-11eb-a2c6-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_filters_write\",\"display_name\":\"Security Filters Write\",\"description\":\"Create, edit, and delete Security Filters.\",\"created\":\"2021-05-10T08:56:23.680551+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incident Read\",\"description\":\"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\":\"Incident Write\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"Configure Incidents 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 Read\",\"description\":\"View Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.595771+00:00\",\"group_name\":\"Cloud Security Platform\",\"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 Write\",\"description\":\"Edit Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.598808+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"RUM Session Replay Read\",\"description\":\"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\":\"Security Notification Rules Read\",\"description\":\"Read Notification Rules.\",\"created\":\"2021-09-16T08:26:27.366789+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"c95412b9-16c7-11ec-85c0-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_notification_profiles_write\",\"display_name\":\"Security Notification Rules Write\",\"description\":\"Create, edit, and delete Notification Rules.\",\"created\":\"2021-09-16T08:26:27.369359+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"26c79920-1703-11ec-85d2-da7ad0900002\",\"attributes\":{\"name\":\"apm_generate_metrics\",\"display_name\":\"APM Generate Metrics\",\"description\":\"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\":\"APM Pipelines Write\",\"description\":\"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\":\"APM Pipelines Read\",\"description\":\"View APM pipeline configurations.\",\"created\":\"2021-12-07T11:26:43.807269+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb4-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_read\",\"display_name\":\"Pipeline Configurations Read\",\"description\":\"View pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.956827+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb5-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_write\",\"display_name\":\"Pipeline Configurations Write\",\"description\":\"Create, edit, and delete pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.960833+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7a89ec40-8b69-11ec-812d-da7ad0900002\",\"attributes\":{\"name\":\"incidents_private_global_access\",\"display_name\":\"Private Incidents Global Access\",\"description\":\"Access all private incidents in Datadog, even when not added as a responder.\",\"created\":\"2022-02-11T18:36:08.531989+00:00\",\"group_name\":\"Incidents\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"b6bf9ac7-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_write\",\"display_name\":\"Notebooks Write\",\"description\":\"Create and change notebooks.\",\"created\":\"2022-03-02T18:51:05.044683+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"2108215e-b9b4-11ec-958e-da7ad0900002\",\"attributes\":{\"name\":\"rum_generate_metrics\",\"display_name\":\"RUM Generate Metrics\",\"description\":\"Create custom metrics from RUM events.\",\"created\":\"2022-04-11T16:26:24.106645+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1afff448-d5e9-11ec-ae37-da7ad0900002\",\"attributes\":{\"name\":\"usage_notifications_read\",\"display_name\":\"Usage Notifications Read\",\"description\":\"Receive notifications and view currently configured notification settings.\",\"created\":\"2022-05-17T13:56:09.870985+00:00\",\"group_name\":\"Billing and Usage\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1afff449-d5e9-11ec-ae37-da7ad0900002\",\"attributes\":{\"name\":\"usage_notifications_write\",\"display_name\":\"Usage Notifications Write\",\"description\":\"Receive notifications and configure notification settings.\",\"created\":\"2022-05-17T13:56:09.876124+00:00\",\"group_name\":\"Billing and Usage\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c87d3da-e5c5-11ec-b1d6-da7ad0900002\",\"attributes\":{\"name\":\"generate_dashboard_reports\",\"display_name\":\"Dashboards Report Write\",\"description\":\"Schedule custom reports from a dashboard. These reports will display any viewable data regardless of any granular restrictions (restriction queries, scoped indexes) applied to the report's creator.\",\"created\":\"2022-06-06T18:21:03.378896+00:00\",\"group_name\":\"Dashboards\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_read\",\"display_name\":\"SLOs Read\",\"description\":\"View SLOs and status corrections.\",\"created\":\"2022-06-08T16:20:55.142591+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"f8e941d0-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_write\",\"display_name\":\"SLOs Write\",\"description\":\"Create, edit, and delete SLOs.\",\"created\":\"2022-06-08T16:20:55.143869+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f8e941ce-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_corrections\",\"display_name\":\"SLOs Status Corrections\",\"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.\",\"created\":\"2022-06-08T16:20:55.139410+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"ee68fba9-173a-11ed-b00b-da7ad0900002\",\"attributes\":{\"name\":\"apm_service_catalog_write\",\"display_name\":\"Service Catalog Write\",\"description\":\"Add, modify, and delete service catalog definitions when those definitions are maintained by Datadog.\",\"created\":\"2022-08-08T16:55:39.377188+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"ee68fba8-173a-11ed-b00b-da7ad0900002\",\"attributes\":{\"name\":\"apm_service_catalog_read\",\"display_name\":\"Service Catalog Read\",\"description\":\"View service catalog and service definitions.\",\"created\":\"2022-08-08T16:55:39.374377+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6be119a6-1cd8-11ed-b185-da7ad0900002\",\"attributes\":{\"name\":\"watchdog_insights_read\",\"display_name\":\"Watchdog Insights Read\",\"description\":\"View Watchdog Insights.\",\"created\":\"2022-08-15T20:25:36.677197+00:00\",\"group_name\":\"Watchdog\",\"display_type\":\"read\",\"restricted\":false}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 26 Aug 2022 21:57:24 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"updated\"},\"id\":\"00000000-dead-beef-dead-ffffffffffff\",\"relationships\":{\"permissions\":{\"data\":[{\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"type\":\"permissions\"}]}},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/roles/00000000-dead-beef-dead-ffffffffffff"}, "response": {"body": {"string": "{\"errors\":[\"00000000-dead-beef-dead-ffffffffffff not found\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Fri, 26 Aug 2022 21:57:24 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/permissions" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"attributes\":{\"name\":\"admin\",\"display_name\":\"Privileged Access\",\"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.\",\"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\":\"View and edit components in your Datadog organization that do not have explicitly defined permissions. This includes configuring some integrations (from the UI), events, most facets, and saved views. In order to configure integrations from the UI, a user must also have Integrations API.\",\"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\":\"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. Restrictions are limited to the Log Management product.\",\"created\":\"2018-10-31T13:39:19.727450+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"62cc036c-dd12-11e8-9e54-db9995643092\",\"attributes\":{\"name\":\"logs_modify_indexes\",\"display_name\":\"Logs Modify Indexes\",\"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.\",\"created\":\"2018-10-31T13:39:27.148615+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6f66600e-dd12-11e8-9e55-7f30fbb45e73\",\"attributes\":{\"name\":\"logs_live_tail\",\"display_name\":\"Logs Live Tail\",\"description\":\"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\":\"Log Management\",\"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\":\"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\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"811ac4ca-dd12-11e8-9e57-676a7f0beef9\",\"attributes\":{\"name\":\"logs_write_pipelines\",\"display_name\":\"Logs Write Pipelines\",\"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.\",\"created\":\"2018-10-31T13:40:17.996379+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"84aa3ae4-dd12-11e8-9e58-a373a514ccd0\",\"attributes\":{\"name\":\"logs_write_processors\",\"display_name\":\"Logs Write Processors\",\"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.\",\"created\":\"2018-10-31T13:40:23.969725+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"87b00304-dd12-11e8-9e59-cbeb5f71f72f\",\"attributes\":{\"name\":\"logs_write_archives\",\"display_name\":\"Logs Write Archives\",\"description\":\"Add and edit Log Archives.\",\"created\":\"2018-10-31T13:40:29.040786+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"979df720-aed7-11e9-99c6-a7eb8373165a\",\"attributes\":{\"name\":\"logs_generate_metrics\",\"display_name\":\"Logs Generate Metrics\",\"description\":\"Create custom metrics from logs.\",\"created\":\"2019-07-25T12:27:39.640758+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\",\"attributes\":{\"name\":\"dashboards_read\",\"display_name\":\"Dashboards Read\",\"description\":\"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 Write\",\"description\":\"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 Public Share\",\"description\":\"Generate public and authenticated links 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 Read\",\"description\":\"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 Write\",\"description\":\"Edit, 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 Downtime\",\"description\":\"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\":\"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.\",\"created\":\"2020-04-06T16:24:35.989108+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b382b982-8535-11ea-93de-2bf1bdf20798\",\"attributes\":{\"name\":\"logs_read_archives\",\"display_name\":\"Logs Read Archives\",\"description\":\"Read Log Archives location and use it for rehydration.\",\"created\":\"2020-04-23T07:40:27.966133+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7314eb20-aa58-11ea-95e2-6fb6e4a451d5\",\"attributes\":{\"name\":\"security_monitoring_rules_read\",\"display_name\":\"Security Rules Read\",\"description\":\"Read Detection Rules.\",\"created\":\"2020-06-09T13:52:25.279909+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7b516476-aa58-11ea-95e2-93718cd56369\",\"attributes\":{\"name\":\"security_monitoring_rules_write\",\"display_name\":\"Security Rules Write\",\"description\":\"Create and edit Detection Rules.\",\"created\":\"2020-06-09T13:52:39.099413+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"80de1ec0-aa58-11ea-95e2-aff381626d5d\",\"attributes\":{\"name\":\"security_monitoring_signals_read\",\"display_name\":\"Security Signals Read\",\"description\":\"View Security Signals.\",\"created\":\"2020-06-09T13:52:48.410398+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"58b412cc-ff6d-11eb-bc9c-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_signals_write\",\"display_name\":\"Security Signals Write\",\"description\":\"Modify Security Signals.\",\"created\":\"2021-08-17T15:11:06.963503+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"9ac1d8cc-e707-11ea-aa2d-73d37e989a9d\",\"attributes\":{\"name\":\"user_access_invite\",\"display_name\":\"User Access Invite\",\"description\":\"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\":\"User Access Manage\",\"description\":\"Disable users, manage user roles, manage SAML-to-role mappings, and configure logs restriction queries.\",\"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 App Keys\",\"description\":\"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\":\"Org App Keys Read\",\"description\":\"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\":\"Org App Keys Write\",\"description\":\"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\":\"Synthetics Private Location Read\",\"description\":\"View, search, and use Synthetics private locations.\",\"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\":\"Synthetics Private Location Write\",\"description\":\"Create and delete private locations in addition to having access to 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 Read\",\"description\":\"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 Edit\",\"description\":\"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 Read\",\"description\":\"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 Edit\",\"description\":\"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\":\"Metric Tags Write\",\"description\":\"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 Write Historical View\",\"description\":\"Rehydrate logs from Archives.\",\"created\":\"2020-09-16T08:38:44.242076+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"2fbdac76-f923-11ea-adbc-07f3823e2b43\",\"attributes\":{\"name\":\"audit_logs_read\",\"display_name\":\"Audit Trail Read\",\"description\":\"View Audit Trail in your organization.\",\"created\":\"2020-09-17T20:20:10.834252+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"372896c4-f923-11ea-adbc-4fecd107156d\",\"attributes\":{\"name\":\"api_keys_read\",\"display_name\":\"API Keys Read\",\"description\":\"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 Write\",\"description\":\"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\":\"Synthetics Global Variable Read\",\"description\":\"View, search, and use Synthetics global variables.\",\"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\":\"Synthetics Global Variable Write\",\"description\":\"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\":\"Synthetics Read\",\"description\":\"List and view configured Synthetic tests and test results.\",\"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\":\"Synthetics Write\",\"description\":\"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\":\"Synthetics Default Settings Read\",\"description\":\"View the default settings for Synthetic 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\":\"Synthetics Default Settings Write\",\"description\":\"Edit the default settings for Synthetic 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 Write Facets\",\"description\":\"Create or edit Log Facets.\",\"created\":\"2020-10-14T12:40:20.271908+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"a42e94b2-1476-11eb-bd08-efda28c04248\",\"attributes\":{\"name\":\"service_account_write\",\"display_name\":\"Service Account Write\",\"description\":\"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\",\"description\":\"Use the Integrations APIs to configure integrations. In order to configure integrations from the UI, a user must also have Standard Access.\",\"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\",\"description\":\"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\":\"APM Retention Filter Read\",\"description\":\"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\":\"APM Retention Filter Write\",\"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.\",\"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\":\"APM Service Ingest Read\",\"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.\",\"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\":\"APM Service Ingest Write\",\"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.\",\"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\":\"APM Apdex Manage Write\",\"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.\",\"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\":\"APM Tag Management Write\",\"description\":\"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\":\"APM Primary Operation Write\",\"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.\",\"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 Trail Write\",\"description\":\"Configure Audit Trail in your organization.\",\"created\":\"2020-12-01T19:18:39.866516+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"8106300a-54f7-11eb-8cbc-7781a434a67b\",\"attributes\":{\"name\":\"rum_apps_write\",\"display_name\":\"RUM Apps Write\",\"description\":\"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\":\"edfd5e74-801f-11eb-96d8-da7ad0900002\",\"attributes\":{\"name\":\"debugger_write\",\"display_name\":\"Live Debugger Write Configuration\",\"description\":\"Edit Live Debugger configuration.\",\"created\":\"2021-03-08T15:06:59.006815+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"edfd5e75-801f-11eb-96d8-da7ad0900002\",\"attributes\":{\"name\":\"debugger_read\",\"display_name\":\"Live Debugger Read Configuration\",\"description\":\"View Live Debugger configuration.\",\"created\":\"2021-03-08T15:06:59.010517+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7c-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_read\",\"display_name\":\"Data Scanner Read\",\"description\":\"View Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.394971+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7d-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_write\",\"display_name\":\"Data Scanner Write\",\"description\":\"Edit Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.398584+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\",\"attributes\":{\"name\":\"org_management\",\"display_name\":\"Org Management\",\"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 & unsubscribing from apps in the marketplace.\",\"created\":\"2021-04-23T17:51:12.187340+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 Read\",\"description\":\"Read Security Filters.\",\"created\":\"2021-05-10T08:56:23.676833+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"98b984f5-b16d-11eb-a2c6-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_filters_write\",\"display_name\":\"Security Filters Write\",\"description\":\"Create, edit, and delete Security Filters.\",\"created\":\"2021-05-10T08:56:23.680551+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incident Read\",\"description\":\"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\":\"Incident Write\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"Configure Incidents 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 Read\",\"description\":\"View Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.595771+00:00\",\"group_name\":\"Cloud Security Platform\",\"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 Write\",\"description\":\"Edit Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.598808+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"RUM Session Replay Read\",\"description\":\"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\":\"Security Notification Rules Read\",\"description\":\"Read Notification Rules.\",\"created\":\"2021-09-16T08:26:27.366789+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"c95412b9-16c7-11ec-85c0-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_notification_profiles_write\",\"display_name\":\"Security Notification Rules Write\",\"description\":\"Create, edit, and delete Notification Rules.\",\"created\":\"2021-09-16T08:26:27.369359+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"26c79920-1703-11ec-85d2-da7ad0900002\",\"attributes\":{\"name\":\"apm_generate_metrics\",\"display_name\":\"APM Generate Metrics\",\"description\":\"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\":\"APM Pipelines Write\",\"description\":\"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\":\"APM Pipelines Read\",\"description\":\"View APM pipeline configurations.\",\"created\":\"2021-12-07T11:26:43.807269+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb4-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_read\",\"display_name\":\"Pipeline Configurations Read\",\"description\":\"View pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.956827+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb5-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_write\",\"display_name\":\"Pipeline Configurations Write\",\"description\":\"Create, edit, and delete pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.960833+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7a89ec40-8b69-11ec-812d-da7ad0900002\",\"attributes\":{\"name\":\"incidents_private_global_access\",\"display_name\":\"Private Incidents Global Access\",\"description\":\"Access all private incidents in Datadog, even when not added as a responder.\",\"created\":\"2022-02-11T18:36:08.531989+00:00\",\"group_name\":\"Incidents\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"b6bf9ac7-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_write\",\"display_name\":\"Notebooks Write\",\"description\":\"Create and change notebooks.\",\"created\":\"2022-03-02T18:51:05.044683+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"2108215e-b9b4-11ec-958e-da7ad0900002\",\"attributes\":{\"name\":\"rum_generate_metrics\",\"display_name\":\"RUM Generate Metrics\",\"description\":\"Create custom metrics from RUM events.\",\"created\":\"2022-04-11T16:26:24.106645+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1afff448-d5e9-11ec-ae37-da7ad0900002\",\"attributes\":{\"name\":\"usage_notifications_read\",\"display_name\":\"Usage Notifications Read\",\"description\":\"Receive notifications and view currently configured notification settings.\",\"created\":\"2022-05-17T13:56:09.870985+00:00\",\"group_name\":\"Billing and Usage\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1afff449-d5e9-11ec-ae37-da7ad0900002\",\"attributes\":{\"name\":\"usage_notifications_write\",\"display_name\":\"Usage Notifications Write\",\"description\":\"Receive notifications and configure notification settings.\",\"created\":\"2022-05-17T13:56:09.876124+00:00\",\"group_name\":\"Billing and Usage\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c87d3da-e5c5-11ec-b1d6-da7ad0900002\",\"attributes\":{\"name\":\"generate_dashboard_reports\",\"display_name\":\"Dashboards Report Write\",\"description\":\"Schedule custom reports from a dashboard. These reports will display any viewable data regardless of any granular restrictions (restriction queries, scoped indexes) applied to the report's creator.\",\"created\":\"2022-06-06T18:21:03.378896+00:00\",\"group_name\":\"Dashboards\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_read\",\"display_name\":\"SLOs Read\",\"description\":\"View SLOs and status corrections.\",\"created\":\"2022-06-08T16:20:55.142591+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"f8e941d0-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_write\",\"display_name\":\"SLOs Write\",\"description\":\"Create, edit, and delete SLOs.\",\"created\":\"2022-06-08T16:20:55.143869+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f8e941ce-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_corrections\",\"display_name\":\"SLOs Status Corrections\",\"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.\",\"created\":\"2022-06-08T16:20:55.139410+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"ee68fba9-173a-11ed-b00b-da7ad0900002\",\"attributes\":{\"name\":\"apm_service_catalog_write\",\"display_name\":\"Service Catalog Write\",\"description\":\"Add, modify, and delete service catalog definitions when those definitions are maintained by Datadog.\",\"created\":\"2022-08-08T16:55:39.377188+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"ee68fba8-173a-11ed-b00b-da7ad0900002\",\"attributes\":{\"name\":\"apm_service_catalog_read\",\"display_name\":\"Service Catalog Read\",\"description\":\"View service catalog and service definitions.\",\"created\":\"2022-08-08T16:55:39.374377+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6be119a6-1cd8-11ed-b185-da7ad0900002\",\"attributes\":{\"name\":\"watchdog_insights_read\",\"display_name\":\"Watchdog Insights Read\",\"description\":\"View Watchdog Insights.\",\"created\":\"2022-08-15T20:25:36.677197+00:00\",\"group_name\":\"Watchdog\",\"display_type\":\"read\",\"restricted\":false}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Aug 2022 21:57:24 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"updated\"},\"id\":\"00000000-dead-beef-dead-ffffffffffff\",\"relationships\":{\"permissions\":{\"data\":[{\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"type\":\"permissions\"}]}},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/roles/00000000-dead-beef-dead-ffffffffffff" + }, + "response": { + "body": { + "string": "{\"errors\":[\"00000000-dead-beef-dead-ffffffffffff not found\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Fri, 26 Aug 2022 21:57:24 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/roles/Update-a-role-returns-OK-response.json b/tests/scenarios/cassettes/v2/roles/Update-a-role-returns-OK-response.json index 0c224a0b4..4d115eaef 100644 --- a/tests/scenarios/cassettes/v2/roles/Update-a-role-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/roles/Update-a-role-returns-OK-response.json @@ -1 +1,129 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Update_a_role_returns_OK_response-1661551044\"},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles"}, "response": {"body": {"string": "{\"data\":{\"type\":\"roles\",\"id\":\"11727e1e-258a-11ed-b455-da7ad0900002\",\"attributes\":{\"name\":\"Test-Update_a_role_returns_OK_response-1661551044\",\"created_at\":\"2022-08-26T21:57:24.677764+00:00\",\"modified_at\":\"2022-08-26T21:57:24.748094+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\"}]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 26 Aug 2022 21:57:24 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/permissions"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"attributes\":{\"name\":\"admin\",\"display_name\":\"Privileged Access\",\"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.\",\"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\":\"View and edit components in your Datadog organization that do not have explicitly defined permissions. This includes configuring some integrations (from the UI), events, most facets, and saved views. In order to configure integrations from the UI, a user must also have Integrations API.\",\"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\":\"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. Restrictions are limited to the Log Management product.\",\"created\":\"2018-10-31T13:39:19.727450+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"62cc036c-dd12-11e8-9e54-db9995643092\",\"attributes\":{\"name\":\"logs_modify_indexes\",\"display_name\":\"Logs Modify Indexes\",\"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.\",\"created\":\"2018-10-31T13:39:27.148615+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6f66600e-dd12-11e8-9e55-7f30fbb45e73\",\"attributes\":{\"name\":\"logs_live_tail\",\"display_name\":\"Logs Live Tail\",\"description\":\"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\":\"Log Management\",\"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\":\"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\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"811ac4ca-dd12-11e8-9e57-676a7f0beef9\",\"attributes\":{\"name\":\"logs_write_pipelines\",\"display_name\":\"Logs Write Pipelines\",\"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.\",\"created\":\"2018-10-31T13:40:17.996379+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"84aa3ae4-dd12-11e8-9e58-a373a514ccd0\",\"attributes\":{\"name\":\"logs_write_processors\",\"display_name\":\"Logs Write Processors\",\"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.\",\"created\":\"2018-10-31T13:40:23.969725+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"87b00304-dd12-11e8-9e59-cbeb5f71f72f\",\"attributes\":{\"name\":\"logs_write_archives\",\"display_name\":\"Logs Write Archives\",\"description\":\"Add and edit Log Archives.\",\"created\":\"2018-10-31T13:40:29.040786+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"979df720-aed7-11e9-99c6-a7eb8373165a\",\"attributes\":{\"name\":\"logs_generate_metrics\",\"display_name\":\"Logs Generate Metrics\",\"description\":\"Create custom metrics from logs.\",\"created\":\"2019-07-25T12:27:39.640758+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\",\"attributes\":{\"name\":\"dashboards_read\",\"display_name\":\"Dashboards Read\",\"description\":\"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 Write\",\"description\":\"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 Public Share\",\"description\":\"Generate public and authenticated links 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 Read\",\"description\":\"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 Write\",\"description\":\"Edit, 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 Downtime\",\"description\":\"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\":\"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.\",\"created\":\"2020-04-06T16:24:35.989108+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b382b982-8535-11ea-93de-2bf1bdf20798\",\"attributes\":{\"name\":\"logs_read_archives\",\"display_name\":\"Logs Read Archives\",\"description\":\"Read Log Archives location and use it for rehydration.\",\"created\":\"2020-04-23T07:40:27.966133+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7314eb20-aa58-11ea-95e2-6fb6e4a451d5\",\"attributes\":{\"name\":\"security_monitoring_rules_read\",\"display_name\":\"Security Rules Read\",\"description\":\"Read Detection Rules.\",\"created\":\"2020-06-09T13:52:25.279909+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7b516476-aa58-11ea-95e2-93718cd56369\",\"attributes\":{\"name\":\"security_monitoring_rules_write\",\"display_name\":\"Security Rules Write\",\"description\":\"Create and edit Detection Rules.\",\"created\":\"2020-06-09T13:52:39.099413+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"80de1ec0-aa58-11ea-95e2-aff381626d5d\",\"attributes\":{\"name\":\"security_monitoring_signals_read\",\"display_name\":\"Security Signals Read\",\"description\":\"View Security Signals.\",\"created\":\"2020-06-09T13:52:48.410398+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"58b412cc-ff6d-11eb-bc9c-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_signals_write\",\"display_name\":\"Security Signals Write\",\"description\":\"Modify Security Signals.\",\"created\":\"2021-08-17T15:11:06.963503+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"9ac1d8cc-e707-11ea-aa2d-73d37e989a9d\",\"attributes\":{\"name\":\"user_access_invite\",\"display_name\":\"User Access Invite\",\"description\":\"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\":\"User Access Manage\",\"description\":\"Disable users, manage user roles, manage SAML-to-role mappings, and configure logs restriction queries.\",\"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 App Keys\",\"description\":\"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\":\"Org App Keys Read\",\"description\":\"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\":\"Org App Keys Write\",\"description\":\"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\":\"Synthetics Private Location Read\",\"description\":\"View, search, and use Synthetics private locations.\",\"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\":\"Synthetics Private Location Write\",\"description\":\"Create and delete private locations in addition to having access to 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 Read\",\"description\":\"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 Edit\",\"description\":\"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 Read\",\"description\":\"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 Edit\",\"description\":\"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\":\"Metric Tags Write\",\"description\":\"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 Write Historical View\",\"description\":\"Rehydrate logs from Archives.\",\"created\":\"2020-09-16T08:38:44.242076+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"2fbdac76-f923-11ea-adbc-07f3823e2b43\",\"attributes\":{\"name\":\"audit_logs_read\",\"display_name\":\"Audit Trail Read\",\"description\":\"View Audit Trail in your organization.\",\"created\":\"2020-09-17T20:20:10.834252+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"372896c4-f923-11ea-adbc-4fecd107156d\",\"attributes\":{\"name\":\"api_keys_read\",\"display_name\":\"API Keys Read\",\"description\":\"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 Write\",\"description\":\"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\":\"Synthetics Global Variable Read\",\"description\":\"View, search, and use Synthetics global variables.\",\"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\":\"Synthetics Global Variable Write\",\"description\":\"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\":\"Synthetics Read\",\"description\":\"List and view configured Synthetic tests and test results.\",\"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\":\"Synthetics Write\",\"description\":\"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\":\"Synthetics Default Settings Read\",\"description\":\"View the default settings for Synthetic 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\":\"Synthetics Default Settings Write\",\"description\":\"Edit the default settings for Synthetic 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 Write Facets\",\"description\":\"Create or edit Log Facets.\",\"created\":\"2020-10-14T12:40:20.271908+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"a42e94b2-1476-11eb-bd08-efda28c04248\",\"attributes\":{\"name\":\"service_account_write\",\"display_name\":\"Service Account Write\",\"description\":\"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\",\"description\":\"Use the Integrations APIs to configure integrations. In order to configure integrations from the UI, a user must also have Standard Access.\",\"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\",\"description\":\"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\":\"APM Retention Filter Read\",\"description\":\"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\":\"APM Retention Filter Write\",\"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.\",\"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\":\"APM Service Ingest Read\",\"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.\",\"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\":\"APM Service Ingest Write\",\"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.\",\"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\":\"APM Apdex Manage Write\",\"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.\",\"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\":\"APM Tag Management Write\",\"description\":\"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\":\"APM Primary Operation Write\",\"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.\",\"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 Trail Write\",\"description\":\"Configure Audit Trail in your organization.\",\"created\":\"2020-12-01T19:18:39.866516+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"8106300a-54f7-11eb-8cbc-7781a434a67b\",\"attributes\":{\"name\":\"rum_apps_write\",\"display_name\":\"RUM Apps Write\",\"description\":\"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\":\"edfd5e74-801f-11eb-96d8-da7ad0900002\",\"attributes\":{\"name\":\"debugger_write\",\"display_name\":\"Live Debugger Write Configuration\",\"description\":\"Edit Live Debugger configuration.\",\"created\":\"2021-03-08T15:06:59.006815+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"edfd5e75-801f-11eb-96d8-da7ad0900002\",\"attributes\":{\"name\":\"debugger_read\",\"display_name\":\"Live Debugger Read Configuration\",\"description\":\"View Live Debugger configuration.\",\"created\":\"2021-03-08T15:06:59.010517+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7c-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_read\",\"display_name\":\"Data Scanner Read\",\"description\":\"View Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.394971+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7d-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_write\",\"display_name\":\"Data Scanner Write\",\"description\":\"Edit Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.398584+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\",\"attributes\":{\"name\":\"org_management\",\"display_name\":\"Org Management\",\"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 & unsubscribing from apps in the marketplace.\",\"created\":\"2021-04-23T17:51:12.187340+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 Read\",\"description\":\"Read Security Filters.\",\"created\":\"2021-05-10T08:56:23.676833+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"98b984f5-b16d-11eb-a2c6-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_filters_write\",\"display_name\":\"Security Filters Write\",\"description\":\"Create, edit, and delete Security Filters.\",\"created\":\"2021-05-10T08:56:23.680551+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incident Read\",\"description\":\"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\":\"Incident Write\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"Configure Incidents 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 Read\",\"description\":\"View Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.595771+00:00\",\"group_name\":\"Cloud Security Platform\",\"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 Write\",\"description\":\"Edit Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.598808+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"RUM Session Replay Read\",\"description\":\"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\":\"Security Notification Rules Read\",\"description\":\"Read Notification Rules.\",\"created\":\"2021-09-16T08:26:27.366789+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"c95412b9-16c7-11ec-85c0-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_notification_profiles_write\",\"display_name\":\"Security Notification Rules Write\",\"description\":\"Create, edit, and delete Notification Rules.\",\"created\":\"2021-09-16T08:26:27.369359+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"26c79920-1703-11ec-85d2-da7ad0900002\",\"attributes\":{\"name\":\"apm_generate_metrics\",\"display_name\":\"APM Generate Metrics\",\"description\":\"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\":\"APM Pipelines Write\",\"description\":\"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\":\"APM Pipelines Read\",\"description\":\"View APM pipeline configurations.\",\"created\":\"2021-12-07T11:26:43.807269+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb4-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_read\",\"display_name\":\"Pipeline Configurations Read\",\"description\":\"View pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.956827+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb5-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_write\",\"display_name\":\"Pipeline Configurations Write\",\"description\":\"Create, edit, and delete pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.960833+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7a89ec40-8b69-11ec-812d-da7ad0900002\",\"attributes\":{\"name\":\"incidents_private_global_access\",\"display_name\":\"Private Incidents Global Access\",\"description\":\"Access all private incidents in Datadog, even when not added as a responder.\",\"created\":\"2022-02-11T18:36:08.531989+00:00\",\"group_name\":\"Incidents\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"b6bf9ac7-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_write\",\"display_name\":\"Notebooks Write\",\"description\":\"Create and change notebooks.\",\"created\":\"2022-03-02T18:51:05.044683+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"2108215e-b9b4-11ec-958e-da7ad0900002\",\"attributes\":{\"name\":\"rum_generate_metrics\",\"display_name\":\"RUM Generate Metrics\",\"description\":\"Create custom metrics from RUM events.\",\"created\":\"2022-04-11T16:26:24.106645+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1afff448-d5e9-11ec-ae37-da7ad0900002\",\"attributes\":{\"name\":\"usage_notifications_read\",\"display_name\":\"Usage Notifications Read\",\"description\":\"Receive notifications and view currently configured notification settings.\",\"created\":\"2022-05-17T13:56:09.870985+00:00\",\"group_name\":\"Billing and Usage\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1afff449-d5e9-11ec-ae37-da7ad0900002\",\"attributes\":{\"name\":\"usage_notifications_write\",\"display_name\":\"Usage Notifications Write\",\"description\":\"Receive notifications and configure notification settings.\",\"created\":\"2022-05-17T13:56:09.876124+00:00\",\"group_name\":\"Billing and Usage\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c87d3da-e5c5-11ec-b1d6-da7ad0900002\",\"attributes\":{\"name\":\"generate_dashboard_reports\",\"display_name\":\"Dashboards Report Write\",\"description\":\"Schedule custom reports from a dashboard. These reports will display any viewable data regardless of any granular restrictions (restriction queries, scoped indexes) applied to the report's creator.\",\"created\":\"2022-06-06T18:21:03.378896+00:00\",\"group_name\":\"Dashboards\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_read\",\"display_name\":\"SLOs Read\",\"description\":\"View SLOs and status corrections.\",\"created\":\"2022-06-08T16:20:55.142591+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"f8e941d0-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_write\",\"display_name\":\"SLOs Write\",\"description\":\"Create, edit, and delete SLOs.\",\"created\":\"2022-06-08T16:20:55.143869+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f8e941ce-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_corrections\",\"display_name\":\"SLOs Status Corrections\",\"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.\",\"created\":\"2022-06-08T16:20:55.139410+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"ee68fba9-173a-11ed-b00b-da7ad0900002\",\"attributes\":{\"name\":\"apm_service_catalog_write\",\"display_name\":\"Service Catalog Write\",\"description\":\"Add, modify, and delete service catalog definitions when those definitions are maintained by Datadog.\",\"created\":\"2022-08-08T16:55:39.377188+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"ee68fba8-173a-11ed-b00b-da7ad0900002\",\"attributes\":{\"name\":\"apm_service_catalog_read\",\"display_name\":\"Service Catalog Read\",\"description\":\"View service catalog and service definitions.\",\"created\":\"2022-08-08T16:55:39.374377+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6be119a6-1cd8-11ed-b185-da7ad0900002\",\"attributes\":{\"name\":\"watchdog_insights_read\",\"display_name\":\"Watchdog Insights Read\",\"description\":\"View Watchdog Insights.\",\"created\":\"2022-08-15T20:25:36.677197+00:00\",\"group_name\":\"Watchdog\",\"display_type\":\"read\",\"restricted\":false}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 26 Aug 2022 21:57:24 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Update_a_role_returns_OK_response-1661551044-updated\"},\"id\":\"11727e1e-258a-11ed-b455-da7ad0900002\",\"relationships\":{\"permissions\":{\"data\":[{\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"type\":\"permissions\"}]}},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/roles/11727e1e-258a-11ed-b455-da7ad0900002"}, "response": {"body": {"string": "{\"data\":{\"type\":\"roles\",\"id\":\"11727e1e-258a-11ed-b455-da7ad0900002\",\"attributes\":{\"name\":\"Test-Update_a_role_returns_OK_response-1661551044-updated\",\"created_at\":\"2022-08-26T21:57:24.677764+00:00\",\"modified_at\":\"2022-08-26T21:57:25.093346+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\"},{\"type\":\"permissions\",\"id\":\"984d2f00-d3b4-11e8-a200-bb47109e9987\"},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\"}]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 26 Aug 2022 21:57:24 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/11727e1e-258a-11ed-b455-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Fri, 26 Aug 2022 21:57:24 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Update_a_role_returns_OK_response-1661551044\"},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"roles\",\"id\":\"11727e1e-258a-11ed-b455-da7ad0900002\",\"attributes\":{\"name\":\"Test-Update_a_role_returns_OK_response-1661551044\",\"created_at\":\"2022-08-26T21:57:24.677764+00:00\",\"modified_at\":\"2022-08-26T21:57:24.748094+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\"}]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Aug 2022 21:57:24 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/permissions" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"attributes\":{\"name\":\"admin\",\"display_name\":\"Privileged Access\",\"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.\",\"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\":\"View and edit components in your Datadog organization that do not have explicitly defined permissions. This includes configuring some integrations (from the UI), events, most facets, and saved views. In order to configure integrations from the UI, a user must also have Integrations API.\",\"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\":\"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. Restrictions are limited to the Log Management product.\",\"created\":\"2018-10-31T13:39:19.727450+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"62cc036c-dd12-11e8-9e54-db9995643092\",\"attributes\":{\"name\":\"logs_modify_indexes\",\"display_name\":\"Logs Modify Indexes\",\"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.\",\"created\":\"2018-10-31T13:39:27.148615+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6f66600e-dd12-11e8-9e55-7f30fbb45e73\",\"attributes\":{\"name\":\"logs_live_tail\",\"display_name\":\"Logs Live Tail\",\"description\":\"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\":\"Log Management\",\"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\":\"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\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"811ac4ca-dd12-11e8-9e57-676a7f0beef9\",\"attributes\":{\"name\":\"logs_write_pipelines\",\"display_name\":\"Logs Write Pipelines\",\"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.\",\"created\":\"2018-10-31T13:40:17.996379+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"84aa3ae4-dd12-11e8-9e58-a373a514ccd0\",\"attributes\":{\"name\":\"logs_write_processors\",\"display_name\":\"Logs Write Processors\",\"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.\",\"created\":\"2018-10-31T13:40:23.969725+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"87b00304-dd12-11e8-9e59-cbeb5f71f72f\",\"attributes\":{\"name\":\"logs_write_archives\",\"display_name\":\"Logs Write Archives\",\"description\":\"Add and edit Log Archives.\",\"created\":\"2018-10-31T13:40:29.040786+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"979df720-aed7-11e9-99c6-a7eb8373165a\",\"attributes\":{\"name\":\"logs_generate_metrics\",\"display_name\":\"Logs Generate Metrics\",\"description\":\"Create custom metrics from logs.\",\"created\":\"2019-07-25T12:27:39.640758+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\",\"attributes\":{\"name\":\"dashboards_read\",\"display_name\":\"Dashboards Read\",\"description\":\"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 Write\",\"description\":\"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 Public Share\",\"description\":\"Generate public and authenticated links 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 Read\",\"description\":\"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 Write\",\"description\":\"Edit, 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 Downtime\",\"description\":\"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\":\"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.\",\"created\":\"2020-04-06T16:24:35.989108+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b382b982-8535-11ea-93de-2bf1bdf20798\",\"attributes\":{\"name\":\"logs_read_archives\",\"display_name\":\"Logs Read Archives\",\"description\":\"Read Log Archives location and use it for rehydration.\",\"created\":\"2020-04-23T07:40:27.966133+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7314eb20-aa58-11ea-95e2-6fb6e4a451d5\",\"attributes\":{\"name\":\"security_monitoring_rules_read\",\"display_name\":\"Security Rules Read\",\"description\":\"Read Detection Rules.\",\"created\":\"2020-06-09T13:52:25.279909+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7b516476-aa58-11ea-95e2-93718cd56369\",\"attributes\":{\"name\":\"security_monitoring_rules_write\",\"display_name\":\"Security Rules Write\",\"description\":\"Create and edit Detection Rules.\",\"created\":\"2020-06-09T13:52:39.099413+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"80de1ec0-aa58-11ea-95e2-aff381626d5d\",\"attributes\":{\"name\":\"security_monitoring_signals_read\",\"display_name\":\"Security Signals Read\",\"description\":\"View Security Signals.\",\"created\":\"2020-06-09T13:52:48.410398+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"58b412cc-ff6d-11eb-bc9c-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_signals_write\",\"display_name\":\"Security Signals Write\",\"description\":\"Modify Security Signals.\",\"created\":\"2021-08-17T15:11:06.963503+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"9ac1d8cc-e707-11ea-aa2d-73d37e989a9d\",\"attributes\":{\"name\":\"user_access_invite\",\"display_name\":\"User Access Invite\",\"description\":\"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\":\"User Access Manage\",\"description\":\"Disable users, manage user roles, manage SAML-to-role mappings, and configure logs restriction queries.\",\"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 App Keys\",\"description\":\"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\":\"Org App Keys Read\",\"description\":\"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\":\"Org App Keys Write\",\"description\":\"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\":\"Synthetics Private Location Read\",\"description\":\"View, search, and use Synthetics private locations.\",\"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\":\"Synthetics Private Location Write\",\"description\":\"Create and delete private locations in addition to having access to 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 Read\",\"description\":\"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 Edit\",\"description\":\"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 Read\",\"description\":\"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 Edit\",\"description\":\"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\":\"Metric Tags Write\",\"description\":\"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 Write Historical View\",\"description\":\"Rehydrate logs from Archives.\",\"created\":\"2020-09-16T08:38:44.242076+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"2fbdac76-f923-11ea-adbc-07f3823e2b43\",\"attributes\":{\"name\":\"audit_logs_read\",\"display_name\":\"Audit Trail Read\",\"description\":\"View Audit Trail in your organization.\",\"created\":\"2020-09-17T20:20:10.834252+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"372896c4-f923-11ea-adbc-4fecd107156d\",\"attributes\":{\"name\":\"api_keys_read\",\"display_name\":\"API Keys Read\",\"description\":\"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 Write\",\"description\":\"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\":\"Synthetics Global Variable Read\",\"description\":\"View, search, and use Synthetics global variables.\",\"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\":\"Synthetics Global Variable Write\",\"description\":\"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\":\"Synthetics Read\",\"description\":\"List and view configured Synthetic tests and test results.\",\"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\":\"Synthetics Write\",\"description\":\"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\":\"Synthetics Default Settings Read\",\"description\":\"View the default settings for Synthetic 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\":\"Synthetics Default Settings Write\",\"description\":\"Edit the default settings for Synthetic 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 Write Facets\",\"description\":\"Create or edit Log Facets.\",\"created\":\"2020-10-14T12:40:20.271908+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"a42e94b2-1476-11eb-bd08-efda28c04248\",\"attributes\":{\"name\":\"service_account_write\",\"display_name\":\"Service Account Write\",\"description\":\"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\",\"description\":\"Use the Integrations APIs to configure integrations. In order to configure integrations from the UI, a user must also have Standard Access.\",\"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\",\"description\":\"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\":\"APM Retention Filter Read\",\"description\":\"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\":\"APM Retention Filter Write\",\"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.\",\"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\":\"APM Service Ingest Read\",\"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.\",\"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\":\"APM Service Ingest Write\",\"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.\",\"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\":\"APM Apdex Manage Write\",\"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.\",\"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\":\"APM Tag Management Write\",\"description\":\"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\":\"APM Primary Operation Write\",\"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.\",\"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 Trail Write\",\"description\":\"Configure Audit Trail in your organization.\",\"created\":\"2020-12-01T19:18:39.866516+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"8106300a-54f7-11eb-8cbc-7781a434a67b\",\"attributes\":{\"name\":\"rum_apps_write\",\"display_name\":\"RUM Apps Write\",\"description\":\"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\":\"edfd5e74-801f-11eb-96d8-da7ad0900002\",\"attributes\":{\"name\":\"debugger_write\",\"display_name\":\"Live Debugger Write Configuration\",\"description\":\"Edit Live Debugger configuration.\",\"created\":\"2021-03-08T15:06:59.006815+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"edfd5e75-801f-11eb-96d8-da7ad0900002\",\"attributes\":{\"name\":\"debugger_read\",\"display_name\":\"Live Debugger Read Configuration\",\"description\":\"View Live Debugger configuration.\",\"created\":\"2021-03-08T15:06:59.010517+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7c-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_read\",\"display_name\":\"Data Scanner Read\",\"description\":\"View Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.394971+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7d-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_write\",\"display_name\":\"Data Scanner Write\",\"description\":\"Edit Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.398584+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\",\"attributes\":{\"name\":\"org_management\",\"display_name\":\"Org Management\",\"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 & unsubscribing from apps in the marketplace.\",\"created\":\"2021-04-23T17:51:12.187340+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 Read\",\"description\":\"Read Security Filters.\",\"created\":\"2021-05-10T08:56:23.676833+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"98b984f5-b16d-11eb-a2c6-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_filters_write\",\"display_name\":\"Security Filters Write\",\"description\":\"Create, edit, and delete Security Filters.\",\"created\":\"2021-05-10T08:56:23.680551+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incident Read\",\"description\":\"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\":\"Incident Write\",\"description\":\"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 Read\",\"description\":\"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 Write\",\"description\":\"Configure Incidents 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 Read\",\"description\":\"View Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.595771+00:00\",\"group_name\":\"Cloud Security Platform\",\"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 Write\",\"description\":\"Edit Application Security Event Rules.\",\"created\":\"2021-07-19T13:31:15.598808+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"RUM Session Replay Read\",\"description\":\"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\":\"Security Notification Rules Read\",\"description\":\"Read Notification Rules.\",\"created\":\"2021-09-16T08:26:27.366789+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"c95412b9-16c7-11ec-85c0-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_notification_profiles_write\",\"display_name\":\"Security Notification Rules Write\",\"description\":\"Create, edit, and delete Notification Rules.\",\"created\":\"2021-09-16T08:26:27.369359+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"26c79920-1703-11ec-85d2-da7ad0900002\",\"attributes\":{\"name\":\"apm_generate_metrics\",\"display_name\":\"APM Generate Metrics\",\"description\":\"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\":\"APM Pipelines Write\",\"description\":\"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\":\"APM Pipelines Read\",\"description\":\"View APM pipeline configurations.\",\"created\":\"2021-12-07T11:26:43.807269+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb4-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_read\",\"display_name\":\"Pipeline Configurations Read\",\"description\":\"View pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.956827+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb5-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_write\",\"display_name\":\"Pipeline Configurations Write\",\"description\":\"Create, edit, and delete pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.960833+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7a89ec40-8b69-11ec-812d-da7ad0900002\",\"attributes\":{\"name\":\"incidents_private_global_access\",\"display_name\":\"Private Incidents Global Access\",\"description\":\"Access all private incidents in Datadog, even when not added as a responder.\",\"created\":\"2022-02-11T18:36:08.531989+00:00\",\"group_name\":\"Incidents\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"b6bf9ac7-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_write\",\"display_name\":\"Notebooks Write\",\"description\":\"Create and change notebooks.\",\"created\":\"2022-03-02T18:51:05.044683+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"2108215e-b9b4-11ec-958e-da7ad0900002\",\"attributes\":{\"name\":\"rum_generate_metrics\",\"display_name\":\"RUM Generate Metrics\",\"description\":\"Create custom metrics from RUM events.\",\"created\":\"2022-04-11T16:26:24.106645+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1afff448-d5e9-11ec-ae37-da7ad0900002\",\"attributes\":{\"name\":\"usage_notifications_read\",\"display_name\":\"Usage Notifications Read\",\"description\":\"Receive notifications and view currently configured notification settings.\",\"created\":\"2022-05-17T13:56:09.870985+00:00\",\"group_name\":\"Billing and Usage\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1afff449-d5e9-11ec-ae37-da7ad0900002\",\"attributes\":{\"name\":\"usage_notifications_write\",\"display_name\":\"Usage Notifications Write\",\"description\":\"Receive notifications and configure notification settings.\",\"created\":\"2022-05-17T13:56:09.876124+00:00\",\"group_name\":\"Billing and Usage\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c87d3da-e5c5-11ec-b1d6-da7ad0900002\",\"attributes\":{\"name\":\"generate_dashboard_reports\",\"display_name\":\"Dashboards Report Write\",\"description\":\"Schedule custom reports from a dashboard. These reports will display any viewable data regardless of any granular restrictions (restriction queries, scoped indexes) applied to the report's creator.\",\"created\":\"2022-06-06T18:21:03.378896+00:00\",\"group_name\":\"Dashboards\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_read\",\"display_name\":\"SLOs Read\",\"description\":\"View SLOs and status corrections.\",\"created\":\"2022-06-08T16:20:55.142591+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"f8e941d0-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_write\",\"display_name\":\"SLOs Write\",\"description\":\"Create, edit, and delete SLOs.\",\"created\":\"2022-06-08T16:20:55.143869+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f8e941ce-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_corrections\",\"display_name\":\"SLOs Status Corrections\",\"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.\",\"created\":\"2022-06-08T16:20:55.139410+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"ee68fba9-173a-11ed-b00b-da7ad0900002\",\"attributes\":{\"name\":\"apm_service_catalog_write\",\"display_name\":\"Service Catalog Write\",\"description\":\"Add, modify, and delete service catalog definitions when those definitions are maintained by Datadog.\",\"created\":\"2022-08-08T16:55:39.377188+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"ee68fba8-173a-11ed-b00b-da7ad0900002\",\"attributes\":{\"name\":\"apm_service_catalog_read\",\"display_name\":\"Service Catalog Read\",\"description\":\"View service catalog and service definitions.\",\"created\":\"2022-08-08T16:55:39.374377+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6be119a6-1cd8-11ed-b185-da7ad0900002\",\"attributes\":{\"name\":\"watchdog_insights_read\",\"display_name\":\"Watchdog Insights Read\",\"description\":\"View Watchdog Insights.\",\"created\":\"2022-08-15T20:25:36.677197+00:00\",\"group_name\":\"Watchdog\",\"display_type\":\"read\",\"restricted\":false}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Aug 2022 21:57:24 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Update_a_role_returns_OK_response-1661551044-updated\"},\"id\":\"11727e1e-258a-11ed-b455-da7ad0900002\",\"relationships\":{\"permissions\":{\"data\":[{\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"type\":\"permissions\"}]}},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/roles/11727e1e-258a-11ed-b455-da7ad0900002" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"roles\",\"id\":\"11727e1e-258a-11ed-b455-da7ad0900002\",\"attributes\":{\"name\":\"Test-Update_a_role_returns_OK_response-1661551044-updated\",\"created_at\":\"2022-08-26T21:57:24.677764+00:00\",\"modified_at\":\"2022-08-26T21:57:25.093346+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\"},{\"type\":\"permissions\",\"id\":\"984d2f00-d3b4-11e8-a200-bb47109e9987\"},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\"}]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Aug 2022 21:57:24 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/11727e1e-258a-11ed-b455-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Fri, 26 Aug 2022 21:57:24 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/rum/Aggregate-RUM-events-returns-OK-response.json b/tests/scenarios/cassettes/v2/rum/Aggregate-RUM-events-returns-OK-response.json index 3c7c45033..f67b5709a 100644 --- a/tests/scenarios/cassettes/v2/rum/Aggregate-RUM-events-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/rum/Aggregate-RUM-events-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"compute\":[{\"aggregation\":\"pc90\",\"metric\":\"@view.time_spent\",\"type\":\"total\"}],\"filter\":{\"from\":\"now-15m\",\"query\":\"@type:view AND @session.type:user\",\"to\":\"now\"},\"group_by\":[{\"facet\":\"@view.time_spent\",\"limit\":10,\"total\":false}],\"options\":{\"timezone\":\"GMT\"},\"page\":{\"limit\":25}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/rum/analytics/aggregate"}, "response": {"body": {"string": "{\"meta\":{\"status\":\"done\",\"request_id\":\"pddv1ChZyS2R0R2cwbFNTR3dXWHE0T1V4SkV3IiwKHO-LyxpZr85euhVxgr_zcJZpbjq-uQVUzkFlD0ISDPnlZXRCg4-gaoMc2w\",\"elapsed\":0},\"data\":{\"buckets\":[]}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 28 Mar 2022 15:06:36 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"compute\":[{\"aggregation\":\"pc90\",\"metric\":\"@view.time_spent\",\"type\":\"total\"}],\"filter\":{\"from\":\"now-15m\",\"query\":\"@type:view AND @session.type:user\",\"to\":\"now\"},\"group_by\":[{\"facet\":\"@view.time_spent\",\"limit\":10,\"total\":false}],\"options\":{\"timezone\":\"GMT\"},\"page\":{\"limit\":25}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/rum/analytics/aggregate" + }, + "response": { + "body": { + "string": "{\"meta\":{\"status\":\"done\",\"request_id\":\"pddv1ChZyS2R0R2cwbFNTR3dXWHE0T1V4SkV3IiwKHO-LyxpZr85euhVxgr_zcJZpbjq-uQVUzkFlD0ISDPnlZXRCg4-gaoMc2w\",\"elapsed\":0},\"data\":{\"buckets\":[]}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 28 Mar 2022 15:06:36 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/rum/Create-a-new-RUM-application-returns-OK-response.json b/tests/scenarios/cassettes/v2/rum/Create-a-new-RUM-application-returns-OK-response.json index 89590738b..9780ee623 100644 --- a/tests/scenarios/cassettes/v2/rum/Create-a-new-RUM-application-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/rum/Create-a-new-RUM-application-returns-OK-response.json @@ -1 +1,63 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"test-rum-2b75921f066af13d\",\"type\":\"ios\"},\"type\":\"rum_application_create\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/rum/applications"}, "response": {"body": {"string": "{\"data\":{\"type\":\"rum_application\",\"id\":\"40e84dc3-03d2-4839-83c0-929248f0b18c\",\"attributes\":{\"type\":\"ios\",\"application_id\":\"40e84dc3-03d2-4839-83c0-929248f0b18c\",\"is_active\":false,\"org_id\":321813,\"updated_at\":1693328714224,\"name\":\"test-rum-2b75921f066af13d\",\"updated_by_handle\":\"frog@datadoghq.com\",\"hash\":\"pube38c4c6cfb13be706c9f90c6c949e507\",\"client_token\":\"pube38c4c6cfb13be706c9f90c6c949e507\",\"created_at\":1693328714224,\"created_by_handle\":\"frog@datadoghq.com\"}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 29 Aug 2023 17:05:14 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/rum/applications/40e84dc3-03d2-4839-83c0-929248f0b18c"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Tue, 29 Aug 2023 17:05:14 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"test-rum-2b75921f066af13d\",\"type\":\"ios\"},\"type\":\"rum_application_create\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/rum/applications" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"rum_application\",\"id\":\"40e84dc3-03d2-4839-83c0-929248f0b18c\",\"attributes\":{\"type\":\"ios\",\"application_id\":\"40e84dc3-03d2-4839-83c0-929248f0b18c\",\"is_active\":false,\"org_id\":321813,\"updated_at\":1693328714224,\"name\":\"test-rum-2b75921f066af13d\",\"updated_by_handle\":\"frog@datadoghq.com\",\"hash\":\"pube38c4c6cfb13be706c9f90c6c949e507\",\"client_token\":\"pube38c4c6cfb13be706c9f90c6c949e507\",\"created_at\":1693328714224,\"created_by_handle\":\"frog@datadoghq.com\"}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 29 Aug 2023 17:05:14 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/rum/applications/40e84dc3-03d2-4839-83c0-929248f0b18c" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Tue, 29 Aug 2023 17:05:14 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/rum/Delete-a-RUM-application-returns-No-Content-response.json b/tests/scenarios/cassettes/v2/rum/Delete-a-RUM-application-returns-No-Content-response.json index e0c264780..d015b9ba9 100644 --- a/tests/scenarios/cassettes/v2/rum/Delete-a-RUM-application-returns-No-Content-response.json +++ b/tests/scenarios/cassettes/v2/rum/Delete-a-RUM-application-returns-No-Content-response.json @@ -1 +1,87 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"test_name_create\",\"type\":\"browser\"},\"type\":\"rum_application_create\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/rum/applications"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"updated_by_handle\":\"frog@datadoghq.com\",\"application_id\":\"cae2b3d1-9ea1-4321-8506-725cc4242f6f\",\"name\":\"test_name_create\",\"created_by_handle\":\"frog@datadoghq.com\",\"created_at\":1670264413962,\"org_id\":321813,\"updated_at\":1670264413962,\"is_active\":false,\"hash\":\"pub147f190fd98caeffebcb3bc3130879bf\",\"client_token\":\"pub147f190fd98caeffebcb3bc3130879bf\",\"type\":\"browser\"},\"type\":\"rum_application\",\"id\":\"cae2b3d1-9ea1-4321-8506-725cc4242f6f\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 05 Dec 2022 18:20:13 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/rum/applications/cae2b3d1-9ea1-4321-8506-725cc4242f6f"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 05 Dec 2022 18:20:13 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/rum/applications/cae2b3d1-9ea1-4321-8506-725cc4242f6f"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 05 Dec 2022 18:20:13 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"test_name_create\",\"type\":\"browser\"},\"type\":\"rum_application_create\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/rum/applications" + }, + "response": { + "body": { + "string": "{\"data\":{\"attributes\":{\"updated_by_handle\":\"frog@datadoghq.com\",\"application_id\":\"cae2b3d1-9ea1-4321-8506-725cc4242f6f\",\"name\":\"test_name_create\",\"created_by_handle\":\"frog@datadoghq.com\",\"created_at\":1670264413962,\"org_id\":321813,\"updated_at\":1670264413962,\"is_active\":false,\"hash\":\"pub147f190fd98caeffebcb3bc3130879bf\",\"client_token\":\"pub147f190fd98caeffebcb3bc3130879bf\",\"type\":\"browser\"},\"type\":\"rum_application\",\"id\":\"cae2b3d1-9ea1-4321-8506-725cc4242f6f\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 05 Dec 2022 18:20:13 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/rum/applications/cae2b3d1-9ea1-4321-8506-725cc4242f6f" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 05 Dec 2022 18:20:13 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/rum/applications/cae2b3d1-9ea1-4321-8506-725cc4242f6f" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 05 Dec 2022 18:20:13 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/rum/Delete-a-RUM-application-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/rum/Delete-a-RUM-application-returns-Not-Found-response.json index c7a7b750b..2afd11b30 100644 --- a/tests/scenarios/cassettes/v2/rum/Delete-a-RUM-application-returns-Not-Found-response.json +++ b/tests/scenarios/cassettes/v2/rum/Delete-a-RUM-application-returns-Not-Found-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/rum/applications/abcde-12345"}, "response": {"body": {"string": "{\"errors\":[\"Application Not Found not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Mon, 05 Dec 2022 18:19:50 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/rum/applications/abcde-12345" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Application Not Found not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Mon, 05 Dec 2022 18:19:50 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/rum/Get-a-RUM-application-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/rum/Get-a-RUM-application-returns-Not-Found-response.json index f3446380c..023933921 100644 --- a/tests/scenarios/cassettes/v2/rum/Get-a-RUM-application-returns-Not-Found-response.json +++ b/tests/scenarios/cassettes/v2/rum/Get-a-RUM-application-returns-Not-Found-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/rum/applications/abcd1234-0000-0000-abcd-1234abcd5678"}, "response": {"body": {"string": "{\"errors\":[\"Application Not Found not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Mon, 05 Dec 2022 18:19:57 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/rum/applications/abcd1234-0000-0000-abcd-1234abcd5678" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Application Not Found not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Mon, 05 Dec 2022 18:19:57 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/rum/Get-a-RUM-application-returns-OK-response.json b/tests/scenarios/cassettes/v2/rum/Get-a-RUM-application-returns-OK-response.json index d7191d560..fe3690f08 100644 --- a/tests/scenarios/cassettes/v2/rum/Get-a-RUM-application-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/rum/Get-a-RUM-application-returns-OK-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"test_name_create\",\"type\":\"browser\"},\"type\":\"rum_application_create\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/rum/applications"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"updated_by_handle\":\"frog@datadoghq.com\",\"application_id\":\"f29b9fed-bb0a-422a-8279-33036c2cec51\",\"name\":\"test_name_create\",\"created_by_handle\":\"frog@datadoghq.com\",\"created_at\":1670264380961,\"org_id\":321813,\"updated_at\":1670264380961,\"is_active\":false,\"hash\":\"pub937cab71d02024eb28c796162a479a56\",\"client_token\":\"pub937cab71d02024eb28c796162a479a56\",\"type\":\"browser\"},\"type\":\"rum_application\",\"id\":\"f29b9fed-bb0a-422a-8279-33036c2cec51\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 05 Dec 2022 18:19:40 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/rum/applications/f29b9fed-bb0a-422a-8279-33036c2cec51"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"updated_by_handle\":\"frog@datadoghq.com\",\"application_id\":\"f29b9fed-bb0a-422a-8279-33036c2cec51\",\"name\":\"test_name_create\",\"created_by_handle\":\"frog@datadoghq.com\",\"created_at\":1670264380961,\"org_id\":321813,\"updated_at\":1670264380961,\"is_active\":false,\"hash\":\"pub937cab71d02024eb28c796162a479a56\",\"client_token\":\"pub937cab71d02024eb28c796162a479a56\",\"type\":\"browser\"},\"type\":\"rum_application\",\"id\":\"f29b9fed-bb0a-422a-8279-33036c2cec51\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 05 Dec 2022 18:19:40 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/rum/applications/f29b9fed-bb0a-422a-8279-33036c2cec51"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 05 Dec 2022 18:19:40 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"test_name_create\",\"type\":\"browser\"},\"type\":\"rum_application_create\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/rum/applications" + }, + "response": { + "body": { + "string": "{\"data\":{\"attributes\":{\"updated_by_handle\":\"frog@datadoghq.com\",\"application_id\":\"f29b9fed-bb0a-422a-8279-33036c2cec51\",\"name\":\"test_name_create\",\"created_by_handle\":\"frog@datadoghq.com\",\"created_at\":1670264380961,\"org_id\":321813,\"updated_at\":1670264380961,\"is_active\":false,\"hash\":\"pub937cab71d02024eb28c796162a479a56\",\"client_token\":\"pub937cab71d02024eb28c796162a479a56\",\"type\":\"browser\"},\"type\":\"rum_application\",\"id\":\"f29b9fed-bb0a-422a-8279-33036c2cec51\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 05 Dec 2022 18:19:40 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/rum/applications/f29b9fed-bb0a-422a-8279-33036c2cec51" + }, + "response": { + "body": { + "string": "{\"data\":{\"attributes\":{\"updated_by_handle\":\"frog@datadoghq.com\",\"application_id\":\"f29b9fed-bb0a-422a-8279-33036c2cec51\",\"name\":\"test_name_create\",\"created_by_handle\":\"frog@datadoghq.com\",\"created_at\":1670264380961,\"org_id\":321813,\"updated_at\":1670264380961,\"is_active\":false,\"hash\":\"pub937cab71d02024eb28c796162a479a56\",\"client_token\":\"pub937cab71d02024eb28c796162a479a56\",\"type\":\"browser\"},\"type\":\"rum_application\",\"id\":\"f29b9fed-bb0a-422a-8279-33036c2cec51\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 05 Dec 2022 18:19:40 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/rum/applications/f29b9fed-bb0a-422a-8279-33036c2cec51" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 05 Dec 2022 18:19:40 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/rum/Get-a-list-of-RUM-events-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v2/rum/Get-a-list-of-RUM-events-returns-OK-response-with-pagination.json index e12b77f1f..3df95c64e 100644 --- a/tests/scenarios/cassettes/v2/rum/Get-a-list-of-RUM-events-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v2/rum/Get-a-list-of-RUM-events-returns-OK-response-with-pagination.json @@ -1 +1,61 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/rum/events?page%5Blimit%5D=2"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFkTzNLZnB6Zm5nQUFBQUFCQldVRmtUek5TVjBGQlEyOXBOa3BoY2sxZmRVMW5RVU0ifQ\"}},\"data\":[{\"attributes\":{\"attributes\":{\"resource\":{\"first_byte\":{\"duration\":210600000,\"start\":1500000},\"url\":\"https://example.com/something\",\"status_code\":200,\"provider\":{\"domain\":\"datadoghq.com\",\"type\":\"first party\",\"name\":\"unknown\"},\"id\":\"bd12c722-d1fd-4af6-888a-fdd255eff318\",\"download\":{\"duration\":300000,\"start\":212100000},\"url_host\":\"example.com\",\"url_scheme\":\"https\",\"duration\":212400000,\"url_path_group\":\"/something\",\"url_path\":\"/something\",\"type\":\"xhr\",\"method\":\"POST\",\"size\":4107},\"service\":\"web-ui\",\"os\":{\"version\":\"10.15.7\",\"name\":\"Mac OS X\",\"version_major\":\"10\"},\"_dd\":{\"trace_id\":\"4461593448038214218\",\"format_version\":2,\"span_id\":\"2615287548010540048\"},\"application\":{\"id\":\"ac8218cf-498b-4d33-bd44-151095959547\"},\"session\":{\"ip\":\"52.17.186.3\",\"has_replay\":true,\"plan\":\"replay\",\"useragent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36\",\"type\":\"user\",\"id\":\"0a64704e-ab4a-44e6-971f-12598c0c6964\"},\"usr\":{\"is_datadog_employee\":false,\"email\":\"alice.doe@example.com\",\"org_id\":94691,\"name\":\"Alice Doe\",\"id\":\"1586212\"},\"context\":{\"browser_storage_api\":{\"usage\":0,\"quota\":299977904946},\"navbar_display_type\":\"side-small\",\"app_type\":\"python-static-spa\",\"org_id\":94691,\"screen\":{\"height\":1080.0,\"width\":1920.0,\"window_height\":946.0,\"window_width\":1920.0,\"pixel_ratio\":1.0},\"browser_test\":false,\"datadog_version\":\"35.7643717\",\"theme\":\"light\",\"usr\":{\"handle\":\"alice.doe@example.com\",\"id\":\"1586212\"},\"device\":{\"cookie_id\":\"id\"},\"page_load_status\":\"loaded_once\",\"dashboard\":{\"reflowType\":\"fixed\",\"dashboardSize\":{\"right\":1920,\"bottom\":103.5,\"top\":87.5,\"height\":16.0,\"width\":1854,\"left\":50.0},\"isHighDensityLayout\":false,\"title\":\"Eco Driving / Driver Efficiency\",\"isHighDensityEnabled\":false,\"dashType\":\"custom_timeboard\",\"isSPA\":true,\"layoutType\":\"ordered\",\"isPublicDashboard\":false,\"widgetCount\":83.0,\"isTvMode\":false,\"id\":\"3ik-gwn-p5b\"}},\"type\":\"resource\",\"device\":{\"model\":\"Mac\",\"type\":\"Desktop\",\"name\":\"Mac\",\"brand\":\"Apple\"},\"browser\":{\"version\":\"99.0.4844.84\",\"name\":\"Chrome\",\"version_major\":\"99\"},\"geo\":{\"city\":\"Dublin\",\"country_iso_code\":\"IE\",\"country\":\"Ireland\",\"continent_code\":\"EU\",\"country_subdivision\":\"Leinster\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[0.1234,1.234],\"continent\":\"Europe\"},\"view\":{\"url_path\":\"/dashboard/xxx\",\"name\":\"/dashboard/:screenId(/:screenName)\",\"url\":\"https://app.datadoghq.com/dashboad/xxx?fullscreen_end_ts=1649692509728&fullscreen_paused=false&fullscreen_section=overview&fullscreen_start_ts=1649087709728&fullscreen_widget=743246&from_ts=1649153072626&to_ts=1649757872626&live=true\",\"referrer\":\"\",\"url_host\":\"app.datadoghq.com\",\"url_scheme\":\"https\",\"url_path_group\":\"/dashboard/?\",\"url_query\":{\"fullscreen_widget\":\"743246\",\"to_ts\":\"1649757872626\",\"fullscreen_section\":\"overview\",\"fullscreen_end_ts\":\"1649692509728\",\"fullscreen_start_ts\":\"1649087709728\",\"from_ts\":\"1649153072626\",\"live\":\"true\",\"fullscreen_paused\":\"false\"},\"id\":\"b1c5b7e1-42a6-4382-a8e2-a101db88a7c6\"}},\"tags\":[\"sdk_version:4.7.1_d78dfe50c99519039ccc0b5bd0ca4b68b01003b1\",\"datacenter:main.env\",\"source:browser\",\"env:prod\",\"version:35.7643717\",\"env:prod\",\"sdk_version:4.7.1_d78dfe50c99519039ccc0b5bd0ca4b68b01003b1\",\"datacenter:main.env\",\"source:browser\",\"service:web-ui\",\"version:35.7643717\"],\"service\":\"web-ui\",\"timestamp\":\"2022-04-12T10:04:37.029Z\"},\"type\":\"rum\",\"id\":\"AQAAAYAdO3MlOKUnZwAAAABBWUFkTzNTQUFBRHRjcnpYcC1kNUhnQUU\"},{\"attributes\":{\"attributes\":{\"resource\":{\"url\":\"https://static.datadoghq.com/static/c/single-page-app_LogsFavorites.493d30ca539726b7fc61.min.js\",\"url_scheme\":\"https\",\"url_host\":\"static.datadoghq.com\",\"provider\":{\"domain\":\"datadoghq.com\",\"type\":\"unknown\",\"name\":\"unknown\"},\"duration\":12600000,\"url_path_group\":\"/static/c/?\",\"url_path\":\"/static/c/single-page-app_LogsFavorites.493d30ca539726b7fc61.min.js\",\"type\":\"js\",\"id\":\"80939f26-8972-4d49-9108-f37fe0a732af\"},\"service\":\"web-ui\",\"os\":{\"version\":\"10.15.7\",\"name\":\"Mac OS X\",\"version_major\":\"10\"},\"_dd\":{\"format_version\":2},\"application\":{\"id\":\"ac8218cf-498b-4d33-bd44-151095959547\"},\"session\":{\"ip\":\"18.171.9.38\",\"plan\":\"replay\",\"type\":\"user\",\"id\":\"c842a0cc-0717-41ed-9319-53806b57eefc\",\"useragent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36\"},\"usr\":{\"is_datadog_employee\":false,\"email\":\"john.doe@example.com\",\"org_id\":1000000111,\"name\":\"john.doe@example.com\",\"id\":\"1000344937\"},\"context\":{\"browser_storage_api\":{\"usage\":0,\"quota\":299977904946},\"navbar_display_type\":\"side\",\"app_type\":\"python-static-spa\",\"org_id\":1000000111,\"screen\":{\"height\":960.0,\"width\":1536.0,\"window_height\":739.0,\"window_width\":1536.0,\"pixel_ratio\":2.0},\"browser_test\":false,\"datadog_version\":\"35.7643717\",\"theme\":\"light\",\"usr\":{\"handle\":\"john.doe@example.com\",\"id\":\"1000344937\"}},\"type\":\"resource\",\"device\":{\"model\":\"Mac\",\"type\":\"Desktop\",\"name\":\"Mac\",\"brand\":\"Apple\"},\"browser\":{\"version\":\"100.0.4896.75\",\"name\":\"Chrome\",\"version_major\":\"100\"},\"geo\":{\"city\":\"London\",\"country_iso_code\":\"GB\",\"country\":\"United Kingdom\",\"continent_code\":\"EU\",\"country_subdivision\":\"England\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[0.1234,1.234],\"continent\":\"Europe\"},\"view\":{\"name\":\"/monitors/:id/edit\",\"url\":\"https://example.datadoghq.eu/monitors/12345/edit\",\"referrer\":\"https://example.datadoghq.eu/monitors/12345?from_ts=1649720111217&to_ts=1649736027006&eval_ts=1649736027006\",\"url_host\":\"example.datadoghq.eu\",\"url_scheme\":\"https\",\"url_path_group\":\"/monitors/?/edit\",\"url_path\":\"/monitors/12345/edit\",\"id\":\"c29e0f27-30aa-4e13-b4b9-4eddc396684b\"}},\"tags\":[\"sdk_version:4.7.1\",\"datacenter:split.env\",\"source:browser\",\"env:prod\",\"version:35.7643717\",\"env:prod\",\"sdk_version:4.7.1\",\"datacenter:split.env\",\"source:browser\",\"version:35.7643717\",\"service:web-ui\"],\"service\":\"web-ui\",\"timestamp\":\"2022-04-12T10:04:36.895Z\"},\"type\":\"rum\",\"id\":\"AQAAAYAdO3KfpzfngAAAAABBWUFkTzNSV0FBQ29pNkphck1fdU1nQUM\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/rum/events?page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFkTzNLZnB6Zm5nQUFBQUFCQldVRmtUek5TVjBGQlEyOXBOa3BoY2sxZmRVMW5RVU0ifQ&page%5Blimit%5D=2\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 12 Apr 2022 10:04:40 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/rum/events?page%5Blimit%5D=2&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFkTzNLZnB6Zm5nQUFBQUFCQldVRmtUek5TVjBGQlEyOXBOa3BoY2sxZmRVMW5RVU0ifQ"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFkTzNLYXN2VDNLd0FBQUFCQldVRmtUek5UVFVGQlFrOXRiRkZaY3kwNGFVcDNRVWMifQ\"}},\"data\":[{\"attributes\":{\"attributes\":{\"resource\":{\"url\":\"https://static.datadoghq.com/static/c/single-page-app_NotebookFavorites.2f9e47e4ed9212539194.min.js\",\"url_scheme\":\"https\",\"url_host\":\"static.datadoghq.com\",\"provider\":{\"domain\":\"datadoghq.com\",\"type\":\"unknown\",\"name\":\"unknown\"},\"duration\":19000000,\"url_path_group\":\"/static/c/?\",\"url_path\":\"/static/c/single-page-app_NotebookFavorites.2f9e47e4ed9212539194.min.js\",\"type\":\"js\",\"id\":\"889b6e2e-ebfe-4a46-9207-4dd4ceb097a7\"},\"service\":\"web-ui\",\"os\":{\"version\":\"10.15.7\",\"name\":\"Mac OS X\",\"version_major\":\"10\"},\"_dd\":{\"format_version\":2},\"application\":{\"id\":\"ac8218cf-498b-4d33-bd44-151095959547\"},\"session\":{\"ip\":\"18.171.9.38\",\"plan\":\"replay\",\"type\":\"user\",\"id\":\"c842a0cc-0717-41ed-9319-53806b57eefc\",\"useragent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36\"},\"usr\":{\"is_datadog_employee\":false,\"email\":\"john.doe@example.com\",\"org_id\":1000000111,\"name\":\"john.doe@example.com\",\"id\":\"1000344937\"},\"context\":{\"browser_storage_api\":{\"usage\":0,\"quota\":299977904946},\"navbar_display_type\":\"side\",\"app_type\":\"python-static-spa\",\"org_id\":1000000111,\"screen\":{\"height\":960.0,\"width\":1536.0,\"window_height\":739.0,\"window_width\":1536.0,\"pixel_ratio\":2.0},\"browser_test\":false,\"datadog_version\":\"35.7643717\",\"theme\":\"light\",\"usr\":{\"handle\":\"john.doe@example.com\",\"id\":\"1000344937\"}},\"type\":\"resource\",\"device\":{\"model\":\"Mac\",\"type\":\"Desktop\",\"name\":\"Mac\",\"brand\":\"Apple\"},\"browser\":{\"version\":\"100.0.4896.75\",\"name\":\"Chrome\",\"version_major\":\"100\"},\"geo\":{\"city\":\"London\",\"country_iso_code\":\"GB\",\"country\":\"United Kingdom\",\"continent_code\":\"EU\",\"country_subdivision\":\"England\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[0.1234,1.234],\"continent\":\"Europe\"},\"view\":{\"name\":\"/monitors/:id/edit\",\"url\":\"https://example.datadoghq.eu/monitors/12345/edit\",\"referrer\":\"https://example.datadoghq.eu/monitors/12345?from_ts=1649720111217&to_ts=1649736027006&eval_ts=1649736027006\",\"url_host\":\"example.datadoghq.eu\",\"url_scheme\":\"https\",\"url_path_group\":\"/monitors/?/edit\",\"url_path\":\"/monitors/12345/edit\",\"id\":\"c29e0f27-30aa-4e13-b4b9-4eddc396684b\"}},\"tags\":[\"sdk_version:4.7.1\",\"datacenter:split.env\",\"source:browser\",\"env:prod\",\"version:35.7643717\",\"env:prod\",\"sdk_version:4.7.1\",\"datacenter:split.env\",\"source:browser\",\"version:35.7643717\",\"service:web-ui\"],\"service\":\"web-ui\",\"timestamp\":\"2022-04-12T10:04:36.894Z\"},\"type\":\"rum\",\"id\":\"AQAAAYAdO3KepzfnfwAAAABBWUFkTzNSV0FBQ29pNkphck1fdU1nQUI\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/rum/events?page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFkTzNLYXN2VDNLd0FBQUFCQldVRmtUek5UVFVGQlFrOXRiRkZaY3kwNGFVcDNRVWMifQ&page%5Blimit%5D=2\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 12 Apr 2022 10:04:40 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/rum/events?page%5Blimit%5D=2" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFkTzNLZnB6Zm5nQUFBQUFCQldVRmtUek5TVjBGQlEyOXBOa3BoY2sxZmRVMW5RVU0ifQ\"}},\"data\":[{\"attributes\":{\"attributes\":{\"resource\":{\"first_byte\":{\"duration\":210600000,\"start\":1500000},\"url\":\"https://example.com/something\",\"status_code\":200,\"provider\":{\"domain\":\"datadoghq.com\",\"type\":\"first party\",\"name\":\"unknown\"},\"id\":\"bd12c722-d1fd-4af6-888a-fdd255eff318\",\"download\":{\"duration\":300000,\"start\":212100000},\"url_host\":\"example.com\",\"url_scheme\":\"https\",\"duration\":212400000,\"url_path_group\":\"/something\",\"url_path\":\"/something\",\"type\":\"xhr\",\"method\":\"POST\",\"size\":4107},\"service\":\"web-ui\",\"os\":{\"version\":\"10.15.7\",\"name\":\"Mac OS X\",\"version_major\":\"10\"},\"_dd\":{\"trace_id\":\"4461593448038214218\",\"format_version\":2,\"span_id\":\"2615287548010540048\"},\"application\":{\"id\":\"ac8218cf-498b-4d33-bd44-151095959547\"},\"session\":{\"ip\":\"52.17.186.3\",\"has_replay\":true,\"plan\":\"replay\",\"useragent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36\",\"type\":\"user\",\"id\":\"0a64704e-ab4a-44e6-971f-12598c0c6964\"},\"usr\":{\"is_datadog_employee\":false,\"email\":\"alice.doe@example.com\",\"org_id\":94691,\"name\":\"Alice Doe\",\"id\":\"1586212\"},\"context\":{\"browser_storage_api\":{\"usage\":0,\"quota\":299977904946},\"navbar_display_type\":\"side-small\",\"app_type\":\"python-static-spa\",\"org_id\":94691,\"screen\":{\"height\":1080.0,\"width\":1920.0,\"window_height\":946.0,\"window_width\":1920.0,\"pixel_ratio\":1.0},\"browser_test\":false,\"datadog_version\":\"35.7643717\",\"theme\":\"light\",\"usr\":{\"handle\":\"alice.doe@example.com\",\"id\":\"1586212\"},\"device\":{\"cookie_id\":\"id\"},\"page_load_status\":\"loaded_once\",\"dashboard\":{\"reflowType\":\"fixed\",\"dashboardSize\":{\"right\":1920,\"bottom\":103.5,\"top\":87.5,\"height\":16.0,\"width\":1854,\"left\":50.0},\"isHighDensityLayout\":false,\"title\":\"Eco Driving / Driver Efficiency\",\"isHighDensityEnabled\":false,\"dashType\":\"custom_timeboard\",\"isSPA\":true,\"layoutType\":\"ordered\",\"isPublicDashboard\":false,\"widgetCount\":83.0,\"isTvMode\":false,\"id\":\"3ik-gwn-p5b\"}},\"type\":\"resource\",\"device\":{\"model\":\"Mac\",\"type\":\"Desktop\",\"name\":\"Mac\",\"brand\":\"Apple\"},\"browser\":{\"version\":\"99.0.4844.84\",\"name\":\"Chrome\",\"version_major\":\"99\"},\"geo\":{\"city\":\"Dublin\",\"country_iso_code\":\"IE\",\"country\":\"Ireland\",\"continent_code\":\"EU\",\"country_subdivision\":\"Leinster\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[0.1234,1.234],\"continent\":\"Europe\"},\"view\":{\"url_path\":\"/dashboard/xxx\",\"name\":\"/dashboard/:screenId(/:screenName)\",\"url\":\"https://app.datadoghq.com/dashboad/xxx?fullscreen_end_ts=1649692509728&fullscreen_paused=false&fullscreen_section=overview&fullscreen_start_ts=1649087709728&fullscreen_widget=743246&from_ts=1649153072626&to_ts=1649757872626&live=true\",\"referrer\":\"\",\"url_host\":\"app.datadoghq.com\",\"url_scheme\":\"https\",\"url_path_group\":\"/dashboard/?\",\"url_query\":{\"fullscreen_widget\":\"743246\",\"to_ts\":\"1649757872626\",\"fullscreen_section\":\"overview\",\"fullscreen_end_ts\":\"1649692509728\",\"fullscreen_start_ts\":\"1649087709728\",\"from_ts\":\"1649153072626\",\"live\":\"true\",\"fullscreen_paused\":\"false\"},\"id\":\"b1c5b7e1-42a6-4382-a8e2-a101db88a7c6\"}},\"tags\":[\"sdk_version:4.7.1_d78dfe50c99519039ccc0b5bd0ca4b68b01003b1\",\"datacenter:main.env\",\"source:browser\",\"env:prod\",\"version:35.7643717\",\"env:prod\",\"sdk_version:4.7.1_d78dfe50c99519039ccc0b5bd0ca4b68b01003b1\",\"datacenter:main.env\",\"source:browser\",\"service:web-ui\",\"version:35.7643717\"],\"service\":\"web-ui\",\"timestamp\":\"2022-04-12T10:04:37.029Z\"},\"type\":\"rum\",\"id\":\"AQAAAYAdO3MlOKUnZwAAAABBWUFkTzNTQUFBRHRjcnpYcC1kNUhnQUU\"},{\"attributes\":{\"attributes\":{\"resource\":{\"url\":\"https://static.datadoghq.com/static/c/single-page-app_LogsFavorites.493d30ca539726b7fc61.min.js\",\"url_scheme\":\"https\",\"url_host\":\"static.datadoghq.com\",\"provider\":{\"domain\":\"datadoghq.com\",\"type\":\"unknown\",\"name\":\"unknown\"},\"duration\":12600000,\"url_path_group\":\"/static/c/?\",\"url_path\":\"/static/c/single-page-app_LogsFavorites.493d30ca539726b7fc61.min.js\",\"type\":\"js\",\"id\":\"80939f26-8972-4d49-9108-f37fe0a732af\"},\"service\":\"web-ui\",\"os\":{\"version\":\"10.15.7\",\"name\":\"Mac OS X\",\"version_major\":\"10\"},\"_dd\":{\"format_version\":2},\"application\":{\"id\":\"ac8218cf-498b-4d33-bd44-151095959547\"},\"session\":{\"ip\":\"18.171.9.38\",\"plan\":\"replay\",\"type\":\"user\",\"id\":\"c842a0cc-0717-41ed-9319-53806b57eefc\",\"useragent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36\"},\"usr\":{\"is_datadog_employee\":false,\"email\":\"john.doe@example.com\",\"org_id\":1000000111,\"name\":\"john.doe@example.com\",\"id\":\"1000344937\"},\"context\":{\"browser_storage_api\":{\"usage\":0,\"quota\":299977904946},\"navbar_display_type\":\"side\",\"app_type\":\"python-static-spa\",\"org_id\":1000000111,\"screen\":{\"height\":960.0,\"width\":1536.0,\"window_height\":739.0,\"window_width\":1536.0,\"pixel_ratio\":2.0},\"browser_test\":false,\"datadog_version\":\"35.7643717\",\"theme\":\"light\",\"usr\":{\"handle\":\"john.doe@example.com\",\"id\":\"1000344937\"}},\"type\":\"resource\",\"device\":{\"model\":\"Mac\",\"type\":\"Desktop\",\"name\":\"Mac\",\"brand\":\"Apple\"},\"browser\":{\"version\":\"100.0.4896.75\",\"name\":\"Chrome\",\"version_major\":\"100\"},\"geo\":{\"city\":\"London\",\"country_iso_code\":\"GB\",\"country\":\"United Kingdom\",\"continent_code\":\"EU\",\"country_subdivision\":\"England\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[0.1234,1.234],\"continent\":\"Europe\"},\"view\":{\"name\":\"/monitors/:id/edit\",\"url\":\"https://example.datadoghq.eu/monitors/12345/edit\",\"referrer\":\"https://example.datadoghq.eu/monitors/12345?from_ts=1649720111217&to_ts=1649736027006&eval_ts=1649736027006\",\"url_host\":\"example.datadoghq.eu\",\"url_scheme\":\"https\",\"url_path_group\":\"/monitors/?/edit\",\"url_path\":\"/monitors/12345/edit\",\"id\":\"c29e0f27-30aa-4e13-b4b9-4eddc396684b\"}},\"tags\":[\"sdk_version:4.7.1\",\"datacenter:split.env\",\"source:browser\",\"env:prod\",\"version:35.7643717\",\"env:prod\",\"sdk_version:4.7.1\",\"datacenter:split.env\",\"source:browser\",\"version:35.7643717\",\"service:web-ui\"],\"service\":\"web-ui\",\"timestamp\":\"2022-04-12T10:04:36.895Z\"},\"type\":\"rum\",\"id\":\"AQAAAYAdO3KfpzfngAAAAABBWUFkTzNSV0FBQ29pNkphck1fdU1nQUM\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/rum/events?page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFkTzNLZnB6Zm5nQUFBQUFCQldVRmtUek5TVjBGQlEyOXBOa3BoY2sxZmRVMW5RVU0ifQ&page%5Blimit%5D=2\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 12 Apr 2022 10:04:40 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/rum/events?page%5Blimit%5D=2&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFkTzNLZnB6Zm5nQUFBQUFCQldVRmtUek5TVjBGQlEyOXBOa3BoY2sxZmRVMW5RVU0ifQ" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFkTzNLYXN2VDNLd0FBQUFCQldVRmtUek5UVFVGQlFrOXRiRkZaY3kwNGFVcDNRVWMifQ\"}},\"data\":[{\"attributes\":{\"attributes\":{\"resource\":{\"url\":\"https://static.datadoghq.com/static/c/single-page-app_NotebookFavorites.2f9e47e4ed9212539194.min.js\",\"url_scheme\":\"https\",\"url_host\":\"static.datadoghq.com\",\"provider\":{\"domain\":\"datadoghq.com\",\"type\":\"unknown\",\"name\":\"unknown\"},\"duration\":19000000,\"url_path_group\":\"/static/c/?\",\"url_path\":\"/static/c/single-page-app_NotebookFavorites.2f9e47e4ed9212539194.min.js\",\"type\":\"js\",\"id\":\"889b6e2e-ebfe-4a46-9207-4dd4ceb097a7\"},\"service\":\"web-ui\",\"os\":{\"version\":\"10.15.7\",\"name\":\"Mac OS X\",\"version_major\":\"10\"},\"_dd\":{\"format_version\":2},\"application\":{\"id\":\"ac8218cf-498b-4d33-bd44-151095959547\"},\"session\":{\"ip\":\"18.171.9.38\",\"plan\":\"replay\",\"type\":\"user\",\"id\":\"c842a0cc-0717-41ed-9319-53806b57eefc\",\"useragent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36\"},\"usr\":{\"is_datadog_employee\":false,\"email\":\"john.doe@example.com\",\"org_id\":1000000111,\"name\":\"john.doe@example.com\",\"id\":\"1000344937\"},\"context\":{\"browser_storage_api\":{\"usage\":0,\"quota\":299977904946},\"navbar_display_type\":\"side\",\"app_type\":\"python-static-spa\",\"org_id\":1000000111,\"screen\":{\"height\":960.0,\"width\":1536.0,\"window_height\":739.0,\"window_width\":1536.0,\"pixel_ratio\":2.0},\"browser_test\":false,\"datadog_version\":\"35.7643717\",\"theme\":\"light\",\"usr\":{\"handle\":\"john.doe@example.com\",\"id\":\"1000344937\"}},\"type\":\"resource\",\"device\":{\"model\":\"Mac\",\"type\":\"Desktop\",\"name\":\"Mac\",\"brand\":\"Apple\"},\"browser\":{\"version\":\"100.0.4896.75\",\"name\":\"Chrome\",\"version_major\":\"100\"},\"geo\":{\"city\":\"London\",\"country_iso_code\":\"GB\",\"country\":\"United Kingdom\",\"continent_code\":\"EU\",\"country_subdivision\":\"England\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[0.1234,1.234],\"continent\":\"Europe\"},\"view\":{\"name\":\"/monitors/:id/edit\",\"url\":\"https://example.datadoghq.eu/monitors/12345/edit\",\"referrer\":\"https://example.datadoghq.eu/monitors/12345?from_ts=1649720111217&to_ts=1649736027006&eval_ts=1649736027006\",\"url_host\":\"example.datadoghq.eu\",\"url_scheme\":\"https\",\"url_path_group\":\"/monitors/?/edit\",\"url_path\":\"/monitors/12345/edit\",\"id\":\"c29e0f27-30aa-4e13-b4b9-4eddc396684b\"}},\"tags\":[\"sdk_version:4.7.1\",\"datacenter:split.env\",\"source:browser\",\"env:prod\",\"version:35.7643717\",\"env:prod\",\"sdk_version:4.7.1\",\"datacenter:split.env\",\"source:browser\",\"version:35.7643717\",\"service:web-ui\"],\"service\":\"web-ui\",\"timestamp\":\"2022-04-12T10:04:36.894Z\"},\"type\":\"rum\",\"id\":\"AQAAAYAdO3KepzfnfwAAAABBWUFkTzNSV0FBQ29pNkphck1fdU1nQUI\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/rum/events?page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFkTzNLYXN2VDNLd0FBQUFCQldVRmtUek5UVFVGQlFrOXRiRkZaY3kwNGFVcDNRVWMifQ&page%5Blimit%5D=2\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 12 Apr 2022 10:04:40 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/rum/Get-a-list-of-RUM-events-returns-OK-response.json b/tests/scenarios/cassettes/v2/rum/Get-a-list-of-RUM-events-returns-OK-response.json index ba0c056ff..8b7eb2866 100644 --- a/tests/scenarios/cassettes/v2/rum/Get-a-list-of-RUM-events-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/rum/Get-a-list-of-RUM-events-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/rum/events"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWDlHSkJicGxualRjd0FBQUFCQldEbEhTa05WVUVGQlJFOUllV0YyVjBWM1dEbEJRVVkifQ\"}},\"data\":[{\"attributes\":{\"attributes\":{\"synthetics\":{\"injected\":false,\"test_id\":\"5t9-c7b-efd\",\"result_id\":\"7134547544592416761\"},\"resource\":{\"url\":\"https://datadoghq.dev/browser-sdk-test-playground/index.js\",\"url_scheme\":\"https\",\"url_host\":\"datadoghq.dev\",\"provider\":{\"domain\":\"datadoghq.dev\",\"type\":\"first party\",\"name\":\"unknown\"},\"duration\":0,\"url_path_group\":\"/browser-sdk-test-playground/index.js\",\"url_path\":\"/browser-sdk-test-playground/index.js\",\"type\":\"js\",\"id\":\"687cf2c1-c604-491e-8f27-a716a66b843d\"},\"geo\":{\"city\":\"Seoul\",\"country_iso_code\":\"KR\",\"country\":\"South Korea\",\"continent_code\":\"AS\",\"country_subdivision\":\"Seoul\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[126.9784,37.566],\"continent\":\"Asia\"},\"_dd\":{\"format_version\":2},\"application\":{\"id\":\"6ae18142-192f-4582-9633-95121c2a01d7\"},\"session\":{\"ip\":\"13.209.118.42\",\"plan\":\"replay\",\"type\":\"synthetics\",\"id\":\"eabb14f7-9c85-4ef4-a456-674988dd69b1\",\"useragent\":\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/95.0.1020.9 DatadogSynthetics\"},\"type\":\"resource\",\"device\":{\"type\":\"Desktop\",\"name\":\"Other\"},\"browser\":{\"version\":\"95.0.1020.9\",\"name\":\"Edge\",\"version_major\":\"95\"},\"os\":{\"name\":\"Linux\"},\"view\":{\"url_path\":\"/browser-sdk-test-playground/index.html\",\"name\":\"/browser-sdk-test-playground/index.html\",\"url\":\"https://datadoghq.dev/browser-sdk-test-playground/index.html?client_token=pub8c6977b707967b0b502ba8b3c233a24d&application_id=6ae18142-192f-4582-9633-95121c2a01d7&site=datadoghq.com\",\"referrer\":\"\",\"url_host\":\"datadoghq.dev\",\"url_scheme\":\"https\",\"url_path_group\":\"/browser-sdk-test-playground/index.html\",\"url_query\":{\"client_token\":\"pub8c6977b707967b0b502ba8b3c233a24d\",\"application_id\":\"6ae18142-192f-4582-9633-95121c2a01d7\",\"site\":\"datadoghq.com\"},\"id\":\"5fb26a33-6a61-4ed2-948e-485b5bd41968\"}},\"tags\":[\"sdk_version:4.5.0\",\"source:browser\",\"source:browser\",\"sdk_version:4.5.0\"],\"timestamp\":\"2022-03-01T15:40:48.160Z\"},\"type\":\"rum\",\"id\":\"AQAAAX9GJCSgMJBBKAAAAABBWDlHSkNVUEFBQ1dNeGtGSUE5SnhBQUQ\"},{\"attributes\":{\"attributes\":{\"synthetics\":{\"injected\":false,\"test_id\":\"5t9-c7b-efd\",\"result_id\":\"7134547544592416761\"},\"resource\":{\"url\":\"https://www.datadoghq-browser-agent.com/datadog-rum-v4.js\",\"url_scheme\":\"https\",\"url_host\":\"www.datadoghq-browser-agent.com\",\"provider\":{\"domain\":\"datadoghq-browser-agent.com\",\"type\":\"unknown\",\"name\":\"unknown\"},\"duration\":0,\"url_path_group\":\"/?\",\"url_path\":\"/datadog-rum-v4.js\",\"type\":\"js\",\"id\":\"2495bcd6-d3a6-4f6e-ad10-1fb9ac62af2c\"},\"geo\":{\"city\":\"Seoul\",\"country_iso_code\":\"KR\",\"country\":\"South Korea\",\"continent_code\":\"AS\",\"country_subdivision\":\"Seoul\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[126.9784,37.566],\"continent\":\"Asia\"},\"_dd\":{\"format_version\":2},\"application\":{\"id\":\"6ae18142-192f-4582-9633-95121c2a01d7\"},\"session\":{\"ip\":\"13.209.118.42\",\"plan\":\"replay\",\"type\":\"synthetics\",\"id\":\"eabb14f7-9c85-4ef4-a456-674988dd69b1\",\"useragent\":\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/95.0.1020.9 DatadogSynthetics\"},\"type\":\"resource\",\"device\":{\"type\":\"Desktop\",\"name\":\"Other\"},\"browser\":{\"version\":\"95.0.1020.9\",\"name\":\"Edge\",\"version_major\":\"95\"},\"os\":{\"name\":\"Linux\"},\"view\":{\"url_path\":\"/browser-sdk-test-playground/index.html\",\"name\":\"/browser-sdk-test-playground/index.html\",\"url\":\"https://datadoghq.dev/browser-sdk-test-playground/index.html?client_token=pub8c6977b707967b0b502ba8b3c233a24d&application_id=6ae18142-192f-4582-9633-95121c2a01d7&site=datadoghq.com\",\"referrer\":\"\",\"url_host\":\"datadoghq.dev\",\"url_scheme\":\"https\",\"url_path_group\":\"/browser-sdk-test-playground/index.html\",\"url_query\":{\"client_token\":\"pub8c6977b707967b0b502ba8b3c233a24d\",\"application_id\":\"6ae18142-192f-4582-9633-95121c2a01d7\",\"site\":\"datadoghq.com\"},\"id\":\"5fb26a33-6a61-4ed2-948e-485b5bd41968\"}},\"tags\":[\"sdk_version:4.5.0\",\"source:browser\",\"source:browser\",\"sdk_version:4.5.0\"],\"timestamp\":\"2022-03-01T15:40:48.160Z\"},\"type\":\"rum\",\"id\":\"AQAAAX9GJCSgMJBBJwAAAABBWDlHSkNVUEFBQ1dNeGtGSUE5SnhBQUM\"},{\"attributes\":{\"attributes\":{\"synthetics\":{\"injected\":false,\"test_id\":\"5t9-c7b-efd\",\"result_id\":\"7134547544592416761\"},\"resource\":{\"url\":\"https://www.datadoghq-browser-agent.com/datadog-logs-v4.js\",\"url_scheme\":\"https\",\"url_host\":\"www.datadoghq-browser-agent.com\",\"provider\":{\"domain\":\"datadoghq-browser-agent.com\",\"type\":\"unknown\",\"name\":\"unknown\"},\"duration\":0,\"url_path_group\":\"/?\",\"url_path\":\"/datadog-logs-v4.js\",\"type\":\"js\",\"id\":\"2a5a3b68-2b2a-477a-8f95-4a5a2fd6542a\"},\"geo\":{\"city\":\"Seoul\",\"country_iso_code\":\"KR\",\"country\":\"South Korea\",\"continent_code\":\"AS\",\"country_subdivision\":\"Seoul\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[126.9784,37.566],\"continent\":\"Asia\"},\"_dd\":{\"format_version\":2},\"application\":{\"id\":\"6ae18142-192f-4582-9633-95121c2a01d7\"},\"session\":{\"ip\":\"13.209.118.42\",\"plan\":\"replay\",\"type\":\"synthetics\",\"id\":\"eabb14f7-9c85-4ef4-a456-674988dd69b1\",\"useragent\":\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/95.0.1020.9 DatadogSynthetics\"},\"type\":\"resource\",\"device\":{\"type\":\"Desktop\",\"name\":\"Other\"},\"browser\":{\"version\":\"95.0.1020.9\",\"name\":\"Edge\",\"version_major\":\"95\"},\"os\":{\"name\":\"Linux\"},\"view\":{\"url_path\":\"/browser-sdk-test-playground/index.html\",\"name\":\"/browser-sdk-test-playground/index.html\",\"url\":\"https://datadoghq.dev/browser-sdk-test-playground/index.html?client_token=pub8c6977b707967b0b502ba8b3c233a24d&application_id=6ae18142-192f-4582-9633-95121c2a01d7&site=datadoghq.com\",\"referrer\":\"\",\"url_host\":\"datadoghq.dev\",\"url_scheme\":\"https\",\"url_path_group\":\"/browser-sdk-test-playground/index.html\",\"url_query\":{\"client_token\":\"pub8c6977b707967b0b502ba8b3c233a24d\",\"application_id\":\"6ae18142-192f-4582-9633-95121c2a01d7\",\"site\":\"datadoghq.com\"},\"id\":\"5fb26a33-6a61-4ed2-948e-485b5bd41968\"}},\"tags\":[\"sdk_version:4.5.0\",\"source:browser\",\"source:browser\",\"sdk_version:4.5.0\"],\"timestamp\":\"2022-03-01T15:40:48.160Z\"},\"type\":\"rum\",\"id\":\"AQAAAX9GJCSgMJBBJgAAAABBWDlHSkNVUEFBQ1dNeGtGSUE5SnhBQUI\"},{\"attributes\":{\"attributes\":{\"synthetics\":{\"injected\":false,\"test_id\":\"5t9-c7b-efd\",\"result_id\":\"7134547544592416761\"},\"resource\":{\"redirect\":{\"duration\":0,\"start\":0},\"url_path\":\"/browser-sdk-test-playground/index.html\",\"first_byte\":{\"duration\":197000000,\"start\":2100000},\"url\":\"https://datadoghq.dev/browser-sdk-test-playground/index.html?client_token=pub8c6977b707967b0b502ba8b3c233a24d&application_id=6ae18142-192f-4582-9633-95121c2a01d7&site=datadoghq.com\",\"url_scheme\":\"https\",\"download\":{\"duration\":1000000,\"start\":199100000},\"url_host\":\"datadoghq.dev\",\"provider\":{\"domain\":\"datadoghq.dev\",\"type\":\"first party\",\"name\":\"unknown\"},\"duration\":200100000,\"url_path_group\":\"/browser-sdk-test-playground/index.html\",\"url_query\":{\"client_token\":\"pub8c6977b707967b0b502ba8b3c233a24d\",\"application_id\":\"6ae18142-192f-4582-9633-95121c2a01d7\",\"site\":\"datadoghq.com\"},\"type\":\"document\",\"id\":\"50459577-b909-404b-85fe-e1002dd57b7c\",\"size\":460},\"geo\":{\"city\":\"Seoul\",\"country_iso_code\":\"KR\",\"country\":\"South Korea\",\"continent_code\":\"AS\",\"country_subdivision\":\"Seoul\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[126.9784,37.566],\"continent\":\"Asia\"},\"_dd\":{\"format_version\":2},\"application\":{\"id\":\"6ae18142-192f-4582-9633-95121c2a01d7\"},\"session\":{\"ip\":\"13.209.118.42\",\"plan\":\"replay\",\"type\":\"synthetics\",\"id\":\"eabb14f7-9c85-4ef4-a456-674988dd69b1\",\"useragent\":\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/95.0.1020.9 DatadogSynthetics\"},\"type\":\"resource\",\"device\":{\"type\":\"Desktop\",\"name\":\"Other\"},\"browser\":{\"version\":\"95.0.1020.9\",\"name\":\"Edge\",\"version_major\":\"95\"},\"os\":{\"name\":\"Linux\"},\"view\":{\"url_path\":\"/browser-sdk-test-playground/index.html\",\"name\":\"/browser-sdk-test-playground/index.html\",\"url\":\"https://datadoghq.dev/browser-sdk-test-playground/index.html?client_token=pub8c6977b707967b0b502ba8b3c233a24d&application_id=6ae18142-192f-4582-9633-95121c2a01d7&site=datadoghq.com\",\"referrer\":\"\",\"url_host\":\"datadoghq.dev\",\"url_scheme\":\"https\",\"url_path_group\":\"/browser-sdk-test-playground/index.html\",\"url_query\":{\"client_token\":\"pub8c6977b707967b0b502ba8b3c233a24d\",\"application_id\":\"6ae18142-192f-4582-9633-95121c2a01d7\",\"site\":\"datadoghq.com\"},\"id\":\"5fb26a33-6a61-4ed2-948e-485b5bd41968\"}},\"tags\":[\"sdk_version:4.5.0\",\"source:browser\",\"source:browser\",\"sdk_version:4.5.0\"],\"timestamp\":\"2022-03-01T15:40:47.946Z\"},\"type\":\"rum\",\"id\":\"AQAAAX9GJCPKMJBBJQAAAABBWDlHSkNVUEFBQ1dNeGtGSUE5SnhBQUE\"},{\"attributes\":{\"attributes\":{\"synthetics\":{\"test_id\":\"5t9-c7b-efd\",\"result_id\":\"7134547544592416761\"},\"os\":{\"name\":\"Linux\"},\"_dd\":{\"format_version\":2},\"application\":{\"id\":\"6ae18142-192f-4582-9633-95121c2a01d7\"},\"session\":{\"ip\":\"13.209.118.42\",\"plan\":\"replay\",\"type\":\"synthetics\",\"id\":\"eabb14f7-9c85-4ef4-a456-674988dd69b1\",\"useragent\":\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/95.0.1020.9 DatadogSynthetics\"},\"context\":{\"test_playground\":true},\"type\":\"view\",\"device\":{\"type\":\"Desktop\",\"name\":\"Other\"},\"browser\":{\"version\":\"95.0.1020.9\",\"name\":\"Edge\",\"version_major\":\"95\"},\"geo\":{\"city\":\"Seoul\",\"country_iso_code\":\"KR\",\"country\":\"South Korea\",\"continent_code\":\"AS\",\"country_subdivision\":\"Seoul\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[126.9784,37.566],\"continent\":\"Asia\"},\"view\":{\"url_scheme\":\"https\",\"load_event\":230500000,\"time_spent\":325000000,\"largest_contentful_paint\":239899000,\"id\":\"5fb26a33-6a61-4ed2-948e-485b5bd41968\",\"dom_interactive\":221200000,\"dom_content_loaded\":230100000,\"url_host\":\"datadoghq.dev\",\"loading_type\":\"initial_load\",\"url_path_group\":\"/browser-sdk-test-playground/index.html\",\"is_active\":true,\"first_contentful_paint\":239900000,\"cumulative_layout_shift\":0.0,\"url_path\":\"/browser-sdk-test-playground/index.html\",\"in_foreground_periods\":[{\"duration\":97500000,\"start\":227500000}],\"resource\":{\"count\":4},\"name\":\"/browser-sdk-test-playground/index.html\",\"url\":\"https://datadoghq.dev/browser-sdk-test-playground/index.html?client_token=pub8c6977b707967b0b502ba8b3c233a24d&application_id=6ae18142-192f-4582-9633-95121c2a01d7&site=datadoghq.com\",\"error\":{\"count\":0},\"action\":{\"count\":0},\"url_query\":{\"client_token\":\"pub8c6977b707967b0b502ba8b3c233a24d\",\"application_id\":\"6ae18142-192f-4582-9633-95121c2a01d7\",\"site\":\"datadoghq.com\"},\"dom_complete\":230500000,\"long_task\":{\"count\":0}}},\"tags\":[\"sdk_version:4.5.0\",\"source:browser\",\"source:browser\",\"sdk_version:4.5.0\"],\"timestamp\":\"2022-03-01T15:40:47.946Z\"},\"type\":\"rum\",\"id\":\"AQAAAX9GJCPK-3PnLgAAAABydl81ZmIyNmEzMy02YTYxLTRlZDItOTQ4ZS00ODViNWJkNDE5Njg\"},{\"attributes\":{\"attributes\":{\"synthetics\":{\"injected\":false,\"test_id\":\"5t9-c7b-efd\",\"result_id\":\"7134547544592416761\"},\"geo\":{\"city\":\"Seoul\",\"country_iso_code\":\"KR\",\"country\":\"South Korea\",\"continent_code\":\"AS\",\"country_subdivision\":\"Seoul\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[126.9784,37.566],\"continent\":\"Asia\"},\"_dd\":{\"format_version\":2},\"application\":{\"id\":\"6ae18142-192f-4582-9633-95121c2a01d7\"},\"session\":{\"ip\":\"13.209.118.42\",\"plan\":\"replay\",\"type\":\"synthetics\",\"id\":\"eabb14f7-9c85-4ef4-a456-674988dd69b1\",\"useragent\":\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/95.0.1020.9 DatadogSynthetics\"},\"device\":{\"type\":\"Desktop\",\"name\":\"Other\"},\"context\":{\"cart\":{\"currency\":\"$\",\"amount\":42,\"nb_items\":2,\"items\":[\"socks\",\"t-shirt\"]},\"test_playground\":true},\"type\":\"action\",\"action\":{\"target\":{\"name\":\"checkout\"},\"type\":\"custom\",\"name\":\"checkout\",\"id\":\"ab0a2069-f42f-4a1e-9527-958ce84066c3\"},\"browser\":{\"version\":\"95.0.1020.9\",\"name\":\"Edge\",\"version_major\":\"95\"},\"os\":{\"name\":\"Linux\"},\"view\":{\"url_path\":\"/browser-sdk-test-playground/index.html\",\"name\":\"/browser-sdk-test-playground/index.html\",\"in_foreground\":true,\"url\":\"https://datadoghq.dev/browser-sdk-test-playground/index.html?client_token=pub8c6977b707967b0b502ba8b3c233a24d&application_id=6ae18142-192f-4582-9633-95121c2a01d7&site=datadoghq.com\",\"referrer\":\"https://datadoghq.dev/browser-sdk-test-playground/?client_token=pub8c6977b707967b0b502ba8b3c233a24d&application_id=6ae18142-192f-4582-9633-95121c2a01d7&site=datadoghq.com\",\"url_host\":\"datadoghq.dev\",\"url_scheme\":\"https\",\"url_path_group\":\"/browser-sdk-test-playground/index.html\",\"url_query\":{\"client_token\":\"pub8c6977b707967b0b502ba8b3c233a24d\",\"application_id\":\"6ae18142-192f-4582-9633-95121c2a01d7\",\"site\":\"datadoghq.com\"},\"id\":\"7a3209cb-8b72-4acb-9bec-051331c41679\"}},\"tags\":[\"sdk_version:4.5.0\",\"source:browser\",\"source:browser\",\"sdk_version:4.5.0\"],\"timestamp\":\"2022-03-01T15:40:47.047Z\"},\"type\":\"rum\",\"id\":\"AQAAAX9GJCBHlnjTdQAAAABBWDlHSkNVUEFBRE9IeWF2V0V3WDlBQUg\"},{\"attributes\":{\"attributes\":{\"synthetics\":{\"injected\":false,\"test_id\":\"5t9-c7b-efd\",\"result_id\":\"7134547544592416761\"},\"geo\":{\"city\":\"Seoul\",\"country_iso_code\":\"KR\",\"country\":\"South Korea\",\"continent_code\":\"AS\",\"country_subdivision\":\"Seoul\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[126.9784,37.566],\"continent\":\"Asia\"},\"_dd\":{\"format_version\":2},\"long_task\":{\"duration\":201000000,\"id\":\"9ce3077a-8377-4e0a-817d-9d8ad46f8886\"},\"application\":{\"id\":\"6ae18142-192f-4582-9633-95121c2a01d7\"},\"session\":{\"ip\":\"13.209.118.42\",\"plan\":\"replay\",\"type\":\"synthetics\",\"id\":\"eabb14f7-9c85-4ef4-a456-674988dd69b1\",\"useragent\":\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/95.0.1020.9 DatadogSynthetics\"},\"context\":{\"test_playground\":true},\"type\":\"long_task\",\"device\":{\"type\":\"Desktop\",\"name\":\"Other\"},\"browser\":{\"version\":\"95.0.1020.9\",\"name\":\"Edge\",\"version_major\":\"95\"},\"os\":{\"name\":\"Linux\"},\"view\":{\"url_path\":\"/browser-sdk-test-playground/index.html\",\"name\":\"/browser-sdk-test-playground/index.html\",\"url\":\"https://datadoghq.dev/browser-sdk-test-playground/index.html?client_token=pub8c6977b707967b0b502ba8b3c233a24d&application_id=6ae18142-192f-4582-9633-95121c2a01d7&site=datadoghq.com\",\"referrer\":\"https://datadoghq.dev/browser-sdk-test-playground/?client_token=pub8c6977b707967b0b502ba8b3c233a24d&application_id=6ae18142-192f-4582-9633-95121c2a01d7&site=datadoghq.com\",\"url_host\":\"datadoghq.dev\",\"url_scheme\":\"https\",\"url_path_group\":\"/browser-sdk-test-playground/index.html\",\"url_query\":{\"client_token\":\"pub8c6977b707967b0b502ba8b3c233a24d\",\"application_id\":\"6ae18142-192f-4582-9633-95121c2a01d7\",\"site\":\"datadoghq.com\"},\"id\":\"7a3209cb-8b72-4acb-9bec-051331c41679\"}},\"tags\":[\"sdk_version:4.5.0\",\"source:browser\",\"source:browser\",\"sdk_version:4.5.0\"],\"timestamp\":\"2022-03-01T15:40:46.131Z\"},\"type\":\"rum\",\"id\":\"AQAAAX9GJByzlnjTdAAAAABBWDlHSkNVUEFBRE9IeWF2V0V3WDlBQUc\"},{\"attributes\":{\"attributes\":{\"synthetics\":{\"test_id\":\"5t9-c7b-efd\",\"result_id\":\"7134547544592416761\"},\"os\":{\"name\":\"Linux\"},\"_dd\":{},\"application\":{\"id\":\"6ae18142-192f-4582-9633-95121c2a01d7\"},\"session\":{\"resource\":{\"count\":9},\"last_view\":{\"url_path\":\"/browser-sdk-test-playground/index.html\",\"name\":\"/browser-sdk-test-playground/index.html\",\"url_scheme\":\"https\",\"url_host\":\"datadoghq.dev\",\"url_path_group\":\"/browser-sdk-test-playground/index.html\",\"url_query\":{\"client_token\":\"pub8c6977b707967b0b502ba8b3c233a24d\",\"application_id\":\"6ae18142-192f-4582-9633-95121c2a01d7\",\"site\":\"datadoghq.com\"},\"id\":\"5fb26a33-6a61-4ed2-948e-485b5bd41968\"},\"initial_view\":{\"url_path\":\"/browser-sdk-test-playground\",\"name\":\"/browser-sdk-test-playground\",\"url_scheme\":\"https\",\"url_host\":\"datadoghq.dev\",\"url_path_group\":\"/browser-sdk-test-playground\",\"url_query\":{\"client_token\":\"pub8c6977b707967b0b502ba8b3c233a24d\",\"application_id\":\"6ae18142-192f-4582-9633-95121c2a01d7\",\"site\":\"datadoghq.com\"},\"id\":\"30be1cb7-c054-4bd5-8495-e75f4395a11f\"},\"ip\":\"13.209.118.42\",\"is_active\":false,\"time_spent\":9889000000,\"plan\":\"replay\",\"error\":{\"count\":0},\"action\":{\"count\":2},\"crash\":{\"count\":0},\"view\":{\"count\":3},\"type\":\"synthetics\",\"id\":\"eabb14f7-9c85-4ef4-a456-674988dd69b1\",\"long_task\":{\"count\":1}},\"context\":{\"test_playground\":true},\"type\":\"session\",\"device\":{\"type\":\"Desktop\",\"name\":\"Other\"},\"geo\":{\"city\":\"Seoul\",\"country_iso_code\":\"KR\",\"country\":\"South Korea\",\"continent_code\":\"AS\",\"country_subdivision\":\"Seoul\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[126.9784,37.566],\"continent\":\"Asia\"},\"browser\":{\"version\":\"95.0.1020.9\",\"name\":\"Edge\",\"version_major\":\"95\"}},\"tags\":[\"sdk_version:4.5.0\",\"source:browser\",\"source:browser\",\"sdk_version:4.5.0\"],\"timestamp\":\"2022-03-01T15:40:45.416Z\"},\"type\":\"rum\",\"id\":\"AQAAAX9GJBno8ypUDwAAAAByc19lYWJiMTRmNy05Yzg1LTRlZjQtYTQ1Ni02NzQ5ODhkZDY5YjE\"},{\"attributes\":{\"attributes\":{\"synthetics\":{\"test_id\":\"5t9-c7b-efd\",\"result_id\":\"7134547544592416761\"},\"os\":{\"name\":\"Linux\"},\"_dd\":{\"format_version\":2},\"application\":{\"id\":\"6ae18142-192f-4582-9633-95121c2a01d7\"},\"session\":{\"ip\":\"13.209.118.42\",\"plan\":\"replay\",\"type\":\"synthetics\",\"id\":\"eabb14f7-9c85-4ef4-a456-674988dd69b1\",\"useragent\":\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/95.0.1020.9 DatadogSynthetics\"},\"context\":{\"test_playground\":true},\"type\":\"view\",\"device\":{\"type\":\"Desktop\",\"name\":\"Other\"},\"browser\":{\"version\":\"95.0.1020.9\",\"name\":\"Edge\",\"version_major\":\"95\"},\"geo\":{\"city\":\"Seoul\",\"country_iso_code\":\"KR\",\"country\":\"South Korea\",\"continent_code\":\"AS\",\"country_subdivision\":\"Seoul\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[126.9784,37.566],\"continent\":\"Asia\"},\"view\":{\"time_spent\":2855000000,\"url_path\":\"/browser-sdk-test-playground/index.html\",\"resource\":{\"count\":0},\"name\":\"/browser-sdk-test-playground/index.html\",\"referrer\":\"https://datadoghq.dev/browser-sdk-test-playground/?client_token=pub8c6977b707967b0b502ba8b3c233a24d&application_id=6ae18142-192f-4582-9633-95121c2a01d7&site=datadoghq.com\",\"url\":\"https://datadoghq.dev/browser-sdk-test-playground/index.html?client_token=pub8c6977b707967b0b502ba8b3c233a24d&application_id=6ae18142-192f-4582-9633-95121c2a01d7&site=datadoghq.com\",\"url_scheme\":\"https\",\"loading_type\":\"route_change\",\"is_active\":true,\"id\":\"7a3209cb-8b72-4acb-9bec-051331c41679\",\"cumulative_layout_shift\":0.0,\"url_host\":\"datadoghq.dev\",\"error\":{\"count\":0},\"action\":{\"count\":1},\"url_path_group\":\"/browser-sdk-test-playground/index.html\",\"url_query\":{\"client_token\":\"pub8c6977b707967b0b502ba8b3c233a24d\",\"application_id\":\"6ae18142-192f-4582-9633-95121c2a01d7\",\"site\":\"datadoghq.com\"},\"in_foreground_periods\":[{\"duration\":2855000000,\"start\":0}],\"long_task\":{\"count\":1}}},\"tags\":[\"sdk_version:4.5.0\",\"source:browser\",\"source:browser\",\"sdk_version:4.5.0\"],\"timestamp\":\"2022-03-01T15:40:45.416Z\"},\"type\":\"rum\",\"id\":\"AQAAAX9GJBnovHzOAwAAAABydl83YTMyMDljYi04YjcyLTRhY2ItOWJlYy0wNTEzMzFjNDE2Nzk\"},{\"attributes\":{\"attributes\":{\"synthetics\":{\"injected\":false,\"test_id\":\"5t9-c7b-efd\",\"result_id\":\"7134547544592416761\"},\"geo\":{\"city\":\"Seoul\",\"country_iso_code\":\"KR\",\"country\":\"South Korea\",\"continent_code\":\"AS\",\"country_subdivision\":\"Seoul\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[126.9784,37.566],\"continent\":\"Asia\"},\"_dd\":{\"format_version\":2},\"application\":{\"id\":\"6ae18142-192f-4582-9633-95121c2a01d7\"},\"session\":{\"ip\":\"13.209.118.42\",\"plan\":\"replay\",\"type\":\"synthetics\",\"id\":\"eabb14f7-9c85-4ef4-a456-674988dd69b1\",\"useragent\":\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/95.0.1020.9 DatadogSynthetics\"},\"device\":{\"type\":\"Desktop\",\"name\":\"Other\"},\"context\":{\"test_playground\":true},\"type\":\"action\",\"action\":{\"resource\":{\"count\":1},\"name\":\"click on Make a fetch request\",\"type\":\"click\",\"target\":{\"name\":\"Make a fetch request\"},\"error\":{\"count\":0},\"loading_time\":92000000,\"id\":\"e1144cbc-f8bc-448d-8117-17453a5eeff4\",\"long_task\":{\"count\":0}},\"browser\":{\"version\":\"95.0.1020.9\",\"name\":\"Edge\",\"version_major\":\"95\"},\"os\":{\"name\":\"Linux\"},\"view\":{\"url_path\":\"/browser-sdk-test-playground\",\"name\":\"/browser-sdk-test-playground\",\"in_foreground\":true,\"url\":\"https://datadoghq.dev/browser-sdk-test-playground/?client_token=pub8c6977b707967b0b502ba8b3c233a24d&application_id=6ae18142-192f-4582-9633-95121c2a01d7&site=datadoghq.com\",\"referrer\":\"\",\"url_host\":\"datadoghq.dev\",\"url_scheme\":\"https\",\"url_path_group\":\"/browser-sdk-test-playground\",\"url_query\":{\"client_token\":\"pub8c6977b707967b0b502ba8b3c233a24d\",\"application_id\":\"6ae18142-192f-4582-9633-95121c2a01d7\",\"site\":\"datadoghq.com\"},\"id\":\"30be1cb7-c054-4bd5-8495-e75f4395a11f\"}},\"tags\":[\"sdk_version:4.5.0\",\"source:browser\",\"source:browser\",\"sdk_version:4.5.0\"],\"timestamp\":\"2022-03-01T15:40:44.649Z\"},\"type\":\"rum\",\"id\":\"AQAAAX9GJBbplnjTcwAAAABBWDlHSkNVUEFBRE9IeWF2V0V3WDlBQUY\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/rum/events?page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWDlHSkJicGxualRjd0FBQUFCQldEbEhTa05WVUVGQlJFOUllV0YyVjBWM1dEbEJRVVkifQ\"}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 01 Mar 2022 15:54:29 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/rum/events" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWDlHSkJicGxualRjd0FBQUFCQldEbEhTa05WVUVGQlJFOUllV0YyVjBWM1dEbEJRVVkifQ\"}},\"data\":[{\"attributes\":{\"attributes\":{\"synthetics\":{\"injected\":false,\"test_id\":\"5t9-c7b-efd\",\"result_id\":\"7134547544592416761\"},\"resource\":{\"url\":\"https://datadoghq.dev/browser-sdk-test-playground/index.js\",\"url_scheme\":\"https\",\"url_host\":\"datadoghq.dev\",\"provider\":{\"domain\":\"datadoghq.dev\",\"type\":\"first party\",\"name\":\"unknown\"},\"duration\":0,\"url_path_group\":\"/browser-sdk-test-playground/index.js\",\"url_path\":\"/browser-sdk-test-playground/index.js\",\"type\":\"js\",\"id\":\"687cf2c1-c604-491e-8f27-a716a66b843d\"},\"geo\":{\"city\":\"Seoul\",\"country_iso_code\":\"KR\",\"country\":\"South Korea\",\"continent_code\":\"AS\",\"country_subdivision\":\"Seoul\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[126.9784,37.566],\"continent\":\"Asia\"},\"_dd\":{\"format_version\":2},\"application\":{\"id\":\"6ae18142-192f-4582-9633-95121c2a01d7\"},\"session\":{\"ip\":\"13.209.118.42\",\"plan\":\"replay\",\"type\":\"synthetics\",\"id\":\"eabb14f7-9c85-4ef4-a456-674988dd69b1\",\"useragent\":\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/95.0.1020.9 DatadogSynthetics\"},\"type\":\"resource\",\"device\":{\"type\":\"Desktop\",\"name\":\"Other\"},\"browser\":{\"version\":\"95.0.1020.9\",\"name\":\"Edge\",\"version_major\":\"95\"},\"os\":{\"name\":\"Linux\"},\"view\":{\"url_path\":\"/browser-sdk-test-playground/index.html\",\"name\":\"/browser-sdk-test-playground/index.html\",\"url\":\"https://datadoghq.dev/browser-sdk-test-playground/index.html?client_token=pub8c6977b707967b0b502ba8b3c233a24d&application_id=6ae18142-192f-4582-9633-95121c2a01d7&site=datadoghq.com\",\"referrer\":\"\",\"url_host\":\"datadoghq.dev\",\"url_scheme\":\"https\",\"url_path_group\":\"/browser-sdk-test-playground/index.html\",\"url_query\":{\"client_token\":\"pub8c6977b707967b0b502ba8b3c233a24d\",\"application_id\":\"6ae18142-192f-4582-9633-95121c2a01d7\",\"site\":\"datadoghq.com\"},\"id\":\"5fb26a33-6a61-4ed2-948e-485b5bd41968\"}},\"tags\":[\"sdk_version:4.5.0\",\"source:browser\",\"source:browser\",\"sdk_version:4.5.0\"],\"timestamp\":\"2022-03-01T15:40:48.160Z\"},\"type\":\"rum\",\"id\":\"AQAAAX9GJCSgMJBBKAAAAABBWDlHSkNVUEFBQ1dNeGtGSUE5SnhBQUQ\"},{\"attributes\":{\"attributes\":{\"synthetics\":{\"injected\":false,\"test_id\":\"5t9-c7b-efd\",\"result_id\":\"7134547544592416761\"},\"resource\":{\"url\":\"https://www.datadoghq-browser-agent.com/datadog-rum-v4.js\",\"url_scheme\":\"https\",\"url_host\":\"www.datadoghq-browser-agent.com\",\"provider\":{\"domain\":\"datadoghq-browser-agent.com\",\"type\":\"unknown\",\"name\":\"unknown\"},\"duration\":0,\"url_path_group\":\"/?\",\"url_path\":\"/datadog-rum-v4.js\",\"type\":\"js\",\"id\":\"2495bcd6-d3a6-4f6e-ad10-1fb9ac62af2c\"},\"geo\":{\"city\":\"Seoul\",\"country_iso_code\":\"KR\",\"country\":\"South Korea\",\"continent_code\":\"AS\",\"country_subdivision\":\"Seoul\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[126.9784,37.566],\"continent\":\"Asia\"},\"_dd\":{\"format_version\":2},\"application\":{\"id\":\"6ae18142-192f-4582-9633-95121c2a01d7\"},\"session\":{\"ip\":\"13.209.118.42\",\"plan\":\"replay\",\"type\":\"synthetics\",\"id\":\"eabb14f7-9c85-4ef4-a456-674988dd69b1\",\"useragent\":\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/95.0.1020.9 DatadogSynthetics\"},\"type\":\"resource\",\"device\":{\"type\":\"Desktop\",\"name\":\"Other\"},\"browser\":{\"version\":\"95.0.1020.9\",\"name\":\"Edge\",\"version_major\":\"95\"},\"os\":{\"name\":\"Linux\"},\"view\":{\"url_path\":\"/browser-sdk-test-playground/index.html\",\"name\":\"/browser-sdk-test-playground/index.html\",\"url\":\"https://datadoghq.dev/browser-sdk-test-playground/index.html?client_token=pub8c6977b707967b0b502ba8b3c233a24d&application_id=6ae18142-192f-4582-9633-95121c2a01d7&site=datadoghq.com\",\"referrer\":\"\",\"url_host\":\"datadoghq.dev\",\"url_scheme\":\"https\",\"url_path_group\":\"/browser-sdk-test-playground/index.html\",\"url_query\":{\"client_token\":\"pub8c6977b707967b0b502ba8b3c233a24d\",\"application_id\":\"6ae18142-192f-4582-9633-95121c2a01d7\",\"site\":\"datadoghq.com\"},\"id\":\"5fb26a33-6a61-4ed2-948e-485b5bd41968\"}},\"tags\":[\"sdk_version:4.5.0\",\"source:browser\",\"source:browser\",\"sdk_version:4.5.0\"],\"timestamp\":\"2022-03-01T15:40:48.160Z\"},\"type\":\"rum\",\"id\":\"AQAAAX9GJCSgMJBBJwAAAABBWDlHSkNVUEFBQ1dNeGtGSUE5SnhBQUM\"},{\"attributes\":{\"attributes\":{\"synthetics\":{\"injected\":false,\"test_id\":\"5t9-c7b-efd\",\"result_id\":\"7134547544592416761\"},\"resource\":{\"url\":\"https://www.datadoghq-browser-agent.com/datadog-logs-v4.js\",\"url_scheme\":\"https\",\"url_host\":\"www.datadoghq-browser-agent.com\",\"provider\":{\"domain\":\"datadoghq-browser-agent.com\",\"type\":\"unknown\",\"name\":\"unknown\"},\"duration\":0,\"url_path_group\":\"/?\",\"url_path\":\"/datadog-logs-v4.js\",\"type\":\"js\",\"id\":\"2a5a3b68-2b2a-477a-8f95-4a5a2fd6542a\"},\"geo\":{\"city\":\"Seoul\",\"country_iso_code\":\"KR\",\"country\":\"South Korea\",\"continent_code\":\"AS\",\"country_subdivision\":\"Seoul\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[126.9784,37.566],\"continent\":\"Asia\"},\"_dd\":{\"format_version\":2},\"application\":{\"id\":\"6ae18142-192f-4582-9633-95121c2a01d7\"},\"session\":{\"ip\":\"13.209.118.42\",\"plan\":\"replay\",\"type\":\"synthetics\",\"id\":\"eabb14f7-9c85-4ef4-a456-674988dd69b1\",\"useragent\":\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/95.0.1020.9 DatadogSynthetics\"},\"type\":\"resource\",\"device\":{\"type\":\"Desktop\",\"name\":\"Other\"},\"browser\":{\"version\":\"95.0.1020.9\",\"name\":\"Edge\",\"version_major\":\"95\"},\"os\":{\"name\":\"Linux\"},\"view\":{\"url_path\":\"/browser-sdk-test-playground/index.html\",\"name\":\"/browser-sdk-test-playground/index.html\",\"url\":\"https://datadoghq.dev/browser-sdk-test-playground/index.html?client_token=pub8c6977b707967b0b502ba8b3c233a24d&application_id=6ae18142-192f-4582-9633-95121c2a01d7&site=datadoghq.com\",\"referrer\":\"\",\"url_host\":\"datadoghq.dev\",\"url_scheme\":\"https\",\"url_path_group\":\"/browser-sdk-test-playground/index.html\",\"url_query\":{\"client_token\":\"pub8c6977b707967b0b502ba8b3c233a24d\",\"application_id\":\"6ae18142-192f-4582-9633-95121c2a01d7\",\"site\":\"datadoghq.com\"},\"id\":\"5fb26a33-6a61-4ed2-948e-485b5bd41968\"}},\"tags\":[\"sdk_version:4.5.0\",\"source:browser\",\"source:browser\",\"sdk_version:4.5.0\"],\"timestamp\":\"2022-03-01T15:40:48.160Z\"},\"type\":\"rum\",\"id\":\"AQAAAX9GJCSgMJBBJgAAAABBWDlHSkNVUEFBQ1dNeGtGSUE5SnhBQUI\"},{\"attributes\":{\"attributes\":{\"synthetics\":{\"injected\":false,\"test_id\":\"5t9-c7b-efd\",\"result_id\":\"7134547544592416761\"},\"resource\":{\"redirect\":{\"duration\":0,\"start\":0},\"url_path\":\"/browser-sdk-test-playground/index.html\",\"first_byte\":{\"duration\":197000000,\"start\":2100000},\"url\":\"https://datadoghq.dev/browser-sdk-test-playground/index.html?client_token=pub8c6977b707967b0b502ba8b3c233a24d&application_id=6ae18142-192f-4582-9633-95121c2a01d7&site=datadoghq.com\",\"url_scheme\":\"https\",\"download\":{\"duration\":1000000,\"start\":199100000},\"url_host\":\"datadoghq.dev\",\"provider\":{\"domain\":\"datadoghq.dev\",\"type\":\"first party\",\"name\":\"unknown\"},\"duration\":200100000,\"url_path_group\":\"/browser-sdk-test-playground/index.html\",\"url_query\":{\"client_token\":\"pub8c6977b707967b0b502ba8b3c233a24d\",\"application_id\":\"6ae18142-192f-4582-9633-95121c2a01d7\",\"site\":\"datadoghq.com\"},\"type\":\"document\",\"id\":\"50459577-b909-404b-85fe-e1002dd57b7c\",\"size\":460},\"geo\":{\"city\":\"Seoul\",\"country_iso_code\":\"KR\",\"country\":\"South Korea\",\"continent_code\":\"AS\",\"country_subdivision\":\"Seoul\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[126.9784,37.566],\"continent\":\"Asia\"},\"_dd\":{\"format_version\":2},\"application\":{\"id\":\"6ae18142-192f-4582-9633-95121c2a01d7\"},\"session\":{\"ip\":\"13.209.118.42\",\"plan\":\"replay\",\"type\":\"synthetics\",\"id\":\"eabb14f7-9c85-4ef4-a456-674988dd69b1\",\"useragent\":\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/95.0.1020.9 DatadogSynthetics\"},\"type\":\"resource\",\"device\":{\"type\":\"Desktop\",\"name\":\"Other\"},\"browser\":{\"version\":\"95.0.1020.9\",\"name\":\"Edge\",\"version_major\":\"95\"},\"os\":{\"name\":\"Linux\"},\"view\":{\"url_path\":\"/browser-sdk-test-playground/index.html\",\"name\":\"/browser-sdk-test-playground/index.html\",\"url\":\"https://datadoghq.dev/browser-sdk-test-playground/index.html?client_token=pub8c6977b707967b0b502ba8b3c233a24d&application_id=6ae18142-192f-4582-9633-95121c2a01d7&site=datadoghq.com\",\"referrer\":\"\",\"url_host\":\"datadoghq.dev\",\"url_scheme\":\"https\",\"url_path_group\":\"/browser-sdk-test-playground/index.html\",\"url_query\":{\"client_token\":\"pub8c6977b707967b0b502ba8b3c233a24d\",\"application_id\":\"6ae18142-192f-4582-9633-95121c2a01d7\",\"site\":\"datadoghq.com\"},\"id\":\"5fb26a33-6a61-4ed2-948e-485b5bd41968\"}},\"tags\":[\"sdk_version:4.5.0\",\"source:browser\",\"source:browser\",\"sdk_version:4.5.0\"],\"timestamp\":\"2022-03-01T15:40:47.946Z\"},\"type\":\"rum\",\"id\":\"AQAAAX9GJCPKMJBBJQAAAABBWDlHSkNVUEFBQ1dNeGtGSUE5SnhBQUE\"},{\"attributes\":{\"attributes\":{\"synthetics\":{\"test_id\":\"5t9-c7b-efd\",\"result_id\":\"7134547544592416761\"},\"os\":{\"name\":\"Linux\"},\"_dd\":{\"format_version\":2},\"application\":{\"id\":\"6ae18142-192f-4582-9633-95121c2a01d7\"},\"session\":{\"ip\":\"13.209.118.42\",\"plan\":\"replay\",\"type\":\"synthetics\",\"id\":\"eabb14f7-9c85-4ef4-a456-674988dd69b1\",\"useragent\":\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/95.0.1020.9 DatadogSynthetics\"},\"context\":{\"test_playground\":true},\"type\":\"view\",\"device\":{\"type\":\"Desktop\",\"name\":\"Other\"},\"browser\":{\"version\":\"95.0.1020.9\",\"name\":\"Edge\",\"version_major\":\"95\"},\"geo\":{\"city\":\"Seoul\",\"country_iso_code\":\"KR\",\"country\":\"South Korea\",\"continent_code\":\"AS\",\"country_subdivision\":\"Seoul\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[126.9784,37.566],\"continent\":\"Asia\"},\"view\":{\"url_scheme\":\"https\",\"load_event\":230500000,\"time_spent\":325000000,\"largest_contentful_paint\":239899000,\"id\":\"5fb26a33-6a61-4ed2-948e-485b5bd41968\",\"dom_interactive\":221200000,\"dom_content_loaded\":230100000,\"url_host\":\"datadoghq.dev\",\"loading_type\":\"initial_load\",\"url_path_group\":\"/browser-sdk-test-playground/index.html\",\"is_active\":true,\"first_contentful_paint\":239900000,\"cumulative_layout_shift\":0.0,\"url_path\":\"/browser-sdk-test-playground/index.html\",\"in_foreground_periods\":[{\"duration\":97500000,\"start\":227500000}],\"resource\":{\"count\":4},\"name\":\"/browser-sdk-test-playground/index.html\",\"url\":\"https://datadoghq.dev/browser-sdk-test-playground/index.html?client_token=pub8c6977b707967b0b502ba8b3c233a24d&application_id=6ae18142-192f-4582-9633-95121c2a01d7&site=datadoghq.com\",\"error\":{\"count\":0},\"action\":{\"count\":0},\"url_query\":{\"client_token\":\"pub8c6977b707967b0b502ba8b3c233a24d\",\"application_id\":\"6ae18142-192f-4582-9633-95121c2a01d7\",\"site\":\"datadoghq.com\"},\"dom_complete\":230500000,\"long_task\":{\"count\":0}}},\"tags\":[\"sdk_version:4.5.0\",\"source:browser\",\"source:browser\",\"sdk_version:4.5.0\"],\"timestamp\":\"2022-03-01T15:40:47.946Z\"},\"type\":\"rum\",\"id\":\"AQAAAX9GJCPK-3PnLgAAAABydl81ZmIyNmEzMy02YTYxLTRlZDItOTQ4ZS00ODViNWJkNDE5Njg\"},{\"attributes\":{\"attributes\":{\"synthetics\":{\"injected\":false,\"test_id\":\"5t9-c7b-efd\",\"result_id\":\"7134547544592416761\"},\"geo\":{\"city\":\"Seoul\",\"country_iso_code\":\"KR\",\"country\":\"South Korea\",\"continent_code\":\"AS\",\"country_subdivision\":\"Seoul\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[126.9784,37.566],\"continent\":\"Asia\"},\"_dd\":{\"format_version\":2},\"application\":{\"id\":\"6ae18142-192f-4582-9633-95121c2a01d7\"},\"session\":{\"ip\":\"13.209.118.42\",\"plan\":\"replay\",\"type\":\"synthetics\",\"id\":\"eabb14f7-9c85-4ef4-a456-674988dd69b1\",\"useragent\":\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/95.0.1020.9 DatadogSynthetics\"},\"device\":{\"type\":\"Desktop\",\"name\":\"Other\"},\"context\":{\"cart\":{\"currency\":\"$\",\"amount\":42,\"nb_items\":2,\"items\":[\"socks\",\"t-shirt\"]},\"test_playground\":true},\"type\":\"action\",\"action\":{\"target\":{\"name\":\"checkout\"},\"type\":\"custom\",\"name\":\"checkout\",\"id\":\"ab0a2069-f42f-4a1e-9527-958ce84066c3\"},\"browser\":{\"version\":\"95.0.1020.9\",\"name\":\"Edge\",\"version_major\":\"95\"},\"os\":{\"name\":\"Linux\"},\"view\":{\"url_path\":\"/browser-sdk-test-playground/index.html\",\"name\":\"/browser-sdk-test-playground/index.html\",\"in_foreground\":true,\"url\":\"https://datadoghq.dev/browser-sdk-test-playground/index.html?client_token=pub8c6977b707967b0b502ba8b3c233a24d&application_id=6ae18142-192f-4582-9633-95121c2a01d7&site=datadoghq.com\",\"referrer\":\"https://datadoghq.dev/browser-sdk-test-playground/?client_token=pub8c6977b707967b0b502ba8b3c233a24d&application_id=6ae18142-192f-4582-9633-95121c2a01d7&site=datadoghq.com\",\"url_host\":\"datadoghq.dev\",\"url_scheme\":\"https\",\"url_path_group\":\"/browser-sdk-test-playground/index.html\",\"url_query\":{\"client_token\":\"pub8c6977b707967b0b502ba8b3c233a24d\",\"application_id\":\"6ae18142-192f-4582-9633-95121c2a01d7\",\"site\":\"datadoghq.com\"},\"id\":\"7a3209cb-8b72-4acb-9bec-051331c41679\"}},\"tags\":[\"sdk_version:4.5.0\",\"source:browser\",\"source:browser\",\"sdk_version:4.5.0\"],\"timestamp\":\"2022-03-01T15:40:47.047Z\"},\"type\":\"rum\",\"id\":\"AQAAAX9GJCBHlnjTdQAAAABBWDlHSkNVUEFBRE9IeWF2V0V3WDlBQUg\"},{\"attributes\":{\"attributes\":{\"synthetics\":{\"injected\":false,\"test_id\":\"5t9-c7b-efd\",\"result_id\":\"7134547544592416761\"},\"geo\":{\"city\":\"Seoul\",\"country_iso_code\":\"KR\",\"country\":\"South Korea\",\"continent_code\":\"AS\",\"country_subdivision\":\"Seoul\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[126.9784,37.566],\"continent\":\"Asia\"},\"_dd\":{\"format_version\":2},\"long_task\":{\"duration\":201000000,\"id\":\"9ce3077a-8377-4e0a-817d-9d8ad46f8886\"},\"application\":{\"id\":\"6ae18142-192f-4582-9633-95121c2a01d7\"},\"session\":{\"ip\":\"13.209.118.42\",\"plan\":\"replay\",\"type\":\"synthetics\",\"id\":\"eabb14f7-9c85-4ef4-a456-674988dd69b1\",\"useragent\":\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/95.0.1020.9 DatadogSynthetics\"},\"context\":{\"test_playground\":true},\"type\":\"long_task\",\"device\":{\"type\":\"Desktop\",\"name\":\"Other\"},\"browser\":{\"version\":\"95.0.1020.9\",\"name\":\"Edge\",\"version_major\":\"95\"},\"os\":{\"name\":\"Linux\"},\"view\":{\"url_path\":\"/browser-sdk-test-playground/index.html\",\"name\":\"/browser-sdk-test-playground/index.html\",\"url\":\"https://datadoghq.dev/browser-sdk-test-playground/index.html?client_token=pub8c6977b707967b0b502ba8b3c233a24d&application_id=6ae18142-192f-4582-9633-95121c2a01d7&site=datadoghq.com\",\"referrer\":\"https://datadoghq.dev/browser-sdk-test-playground/?client_token=pub8c6977b707967b0b502ba8b3c233a24d&application_id=6ae18142-192f-4582-9633-95121c2a01d7&site=datadoghq.com\",\"url_host\":\"datadoghq.dev\",\"url_scheme\":\"https\",\"url_path_group\":\"/browser-sdk-test-playground/index.html\",\"url_query\":{\"client_token\":\"pub8c6977b707967b0b502ba8b3c233a24d\",\"application_id\":\"6ae18142-192f-4582-9633-95121c2a01d7\",\"site\":\"datadoghq.com\"},\"id\":\"7a3209cb-8b72-4acb-9bec-051331c41679\"}},\"tags\":[\"sdk_version:4.5.0\",\"source:browser\",\"source:browser\",\"sdk_version:4.5.0\"],\"timestamp\":\"2022-03-01T15:40:46.131Z\"},\"type\":\"rum\",\"id\":\"AQAAAX9GJByzlnjTdAAAAABBWDlHSkNVUEFBRE9IeWF2V0V3WDlBQUc\"},{\"attributes\":{\"attributes\":{\"synthetics\":{\"test_id\":\"5t9-c7b-efd\",\"result_id\":\"7134547544592416761\"},\"os\":{\"name\":\"Linux\"},\"_dd\":{},\"application\":{\"id\":\"6ae18142-192f-4582-9633-95121c2a01d7\"},\"session\":{\"resource\":{\"count\":9},\"last_view\":{\"url_path\":\"/browser-sdk-test-playground/index.html\",\"name\":\"/browser-sdk-test-playground/index.html\",\"url_scheme\":\"https\",\"url_host\":\"datadoghq.dev\",\"url_path_group\":\"/browser-sdk-test-playground/index.html\",\"url_query\":{\"client_token\":\"pub8c6977b707967b0b502ba8b3c233a24d\",\"application_id\":\"6ae18142-192f-4582-9633-95121c2a01d7\",\"site\":\"datadoghq.com\"},\"id\":\"5fb26a33-6a61-4ed2-948e-485b5bd41968\"},\"initial_view\":{\"url_path\":\"/browser-sdk-test-playground\",\"name\":\"/browser-sdk-test-playground\",\"url_scheme\":\"https\",\"url_host\":\"datadoghq.dev\",\"url_path_group\":\"/browser-sdk-test-playground\",\"url_query\":{\"client_token\":\"pub8c6977b707967b0b502ba8b3c233a24d\",\"application_id\":\"6ae18142-192f-4582-9633-95121c2a01d7\",\"site\":\"datadoghq.com\"},\"id\":\"30be1cb7-c054-4bd5-8495-e75f4395a11f\"},\"ip\":\"13.209.118.42\",\"is_active\":false,\"time_spent\":9889000000,\"plan\":\"replay\",\"error\":{\"count\":0},\"action\":{\"count\":2},\"crash\":{\"count\":0},\"view\":{\"count\":3},\"type\":\"synthetics\",\"id\":\"eabb14f7-9c85-4ef4-a456-674988dd69b1\",\"long_task\":{\"count\":1}},\"context\":{\"test_playground\":true},\"type\":\"session\",\"device\":{\"type\":\"Desktop\",\"name\":\"Other\"},\"geo\":{\"city\":\"Seoul\",\"country_iso_code\":\"KR\",\"country\":\"South Korea\",\"continent_code\":\"AS\",\"country_subdivision\":\"Seoul\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[126.9784,37.566],\"continent\":\"Asia\"},\"browser\":{\"version\":\"95.0.1020.9\",\"name\":\"Edge\",\"version_major\":\"95\"}},\"tags\":[\"sdk_version:4.5.0\",\"source:browser\",\"source:browser\",\"sdk_version:4.5.0\"],\"timestamp\":\"2022-03-01T15:40:45.416Z\"},\"type\":\"rum\",\"id\":\"AQAAAX9GJBno8ypUDwAAAAByc19lYWJiMTRmNy05Yzg1LTRlZjQtYTQ1Ni02NzQ5ODhkZDY5YjE\"},{\"attributes\":{\"attributes\":{\"synthetics\":{\"test_id\":\"5t9-c7b-efd\",\"result_id\":\"7134547544592416761\"},\"os\":{\"name\":\"Linux\"},\"_dd\":{\"format_version\":2},\"application\":{\"id\":\"6ae18142-192f-4582-9633-95121c2a01d7\"},\"session\":{\"ip\":\"13.209.118.42\",\"plan\":\"replay\",\"type\":\"synthetics\",\"id\":\"eabb14f7-9c85-4ef4-a456-674988dd69b1\",\"useragent\":\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/95.0.1020.9 DatadogSynthetics\"},\"context\":{\"test_playground\":true},\"type\":\"view\",\"device\":{\"type\":\"Desktop\",\"name\":\"Other\"},\"browser\":{\"version\":\"95.0.1020.9\",\"name\":\"Edge\",\"version_major\":\"95\"},\"geo\":{\"city\":\"Seoul\",\"country_iso_code\":\"KR\",\"country\":\"South Korea\",\"continent_code\":\"AS\",\"country_subdivision\":\"Seoul\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[126.9784,37.566],\"continent\":\"Asia\"},\"view\":{\"time_spent\":2855000000,\"url_path\":\"/browser-sdk-test-playground/index.html\",\"resource\":{\"count\":0},\"name\":\"/browser-sdk-test-playground/index.html\",\"referrer\":\"https://datadoghq.dev/browser-sdk-test-playground/?client_token=pub8c6977b707967b0b502ba8b3c233a24d&application_id=6ae18142-192f-4582-9633-95121c2a01d7&site=datadoghq.com\",\"url\":\"https://datadoghq.dev/browser-sdk-test-playground/index.html?client_token=pub8c6977b707967b0b502ba8b3c233a24d&application_id=6ae18142-192f-4582-9633-95121c2a01d7&site=datadoghq.com\",\"url_scheme\":\"https\",\"loading_type\":\"route_change\",\"is_active\":true,\"id\":\"7a3209cb-8b72-4acb-9bec-051331c41679\",\"cumulative_layout_shift\":0.0,\"url_host\":\"datadoghq.dev\",\"error\":{\"count\":0},\"action\":{\"count\":1},\"url_path_group\":\"/browser-sdk-test-playground/index.html\",\"url_query\":{\"client_token\":\"pub8c6977b707967b0b502ba8b3c233a24d\",\"application_id\":\"6ae18142-192f-4582-9633-95121c2a01d7\",\"site\":\"datadoghq.com\"},\"in_foreground_periods\":[{\"duration\":2855000000,\"start\":0}],\"long_task\":{\"count\":1}}},\"tags\":[\"sdk_version:4.5.0\",\"source:browser\",\"source:browser\",\"sdk_version:4.5.0\"],\"timestamp\":\"2022-03-01T15:40:45.416Z\"},\"type\":\"rum\",\"id\":\"AQAAAX9GJBnovHzOAwAAAABydl83YTMyMDljYi04YjcyLTRhY2ItOWJlYy0wNTEzMzFjNDE2Nzk\"},{\"attributes\":{\"attributes\":{\"synthetics\":{\"injected\":false,\"test_id\":\"5t9-c7b-efd\",\"result_id\":\"7134547544592416761\"},\"geo\":{\"city\":\"Seoul\",\"country_iso_code\":\"KR\",\"country\":\"South Korea\",\"continent_code\":\"AS\",\"country_subdivision\":\"Seoul\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[126.9784,37.566],\"continent\":\"Asia\"},\"_dd\":{\"format_version\":2},\"application\":{\"id\":\"6ae18142-192f-4582-9633-95121c2a01d7\"},\"session\":{\"ip\":\"13.209.118.42\",\"plan\":\"replay\",\"type\":\"synthetics\",\"id\":\"eabb14f7-9c85-4ef4-a456-674988dd69b1\",\"useragent\":\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/95.0.1020.9 DatadogSynthetics\"},\"device\":{\"type\":\"Desktop\",\"name\":\"Other\"},\"context\":{\"test_playground\":true},\"type\":\"action\",\"action\":{\"resource\":{\"count\":1},\"name\":\"click on Make a fetch request\",\"type\":\"click\",\"target\":{\"name\":\"Make a fetch request\"},\"error\":{\"count\":0},\"loading_time\":92000000,\"id\":\"e1144cbc-f8bc-448d-8117-17453a5eeff4\",\"long_task\":{\"count\":0}},\"browser\":{\"version\":\"95.0.1020.9\",\"name\":\"Edge\",\"version_major\":\"95\"},\"os\":{\"name\":\"Linux\"},\"view\":{\"url_path\":\"/browser-sdk-test-playground\",\"name\":\"/browser-sdk-test-playground\",\"in_foreground\":true,\"url\":\"https://datadoghq.dev/browser-sdk-test-playground/?client_token=pub8c6977b707967b0b502ba8b3c233a24d&application_id=6ae18142-192f-4582-9633-95121c2a01d7&site=datadoghq.com\",\"referrer\":\"\",\"url_host\":\"datadoghq.dev\",\"url_scheme\":\"https\",\"url_path_group\":\"/browser-sdk-test-playground\",\"url_query\":{\"client_token\":\"pub8c6977b707967b0b502ba8b3c233a24d\",\"application_id\":\"6ae18142-192f-4582-9633-95121c2a01d7\",\"site\":\"datadoghq.com\"},\"id\":\"30be1cb7-c054-4bd5-8495-e75f4395a11f\"}},\"tags\":[\"sdk_version:4.5.0\",\"source:browser\",\"source:browser\",\"sdk_version:4.5.0\"],\"timestamp\":\"2022-03-01T15:40:44.649Z\"},\"type\":\"rum\",\"id\":\"AQAAAX9GJBbplnjTcwAAAABBWDlHSkNVUEFBRE9IeWF2V0V3WDlBQUY\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/rum/events?page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWDlHSkJicGxualRjd0FBQUFCQldEbEhTa05WVUVGQlJFOUllV0YyVjBWM1dEbEJRVVkifQ\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 01 Mar 2022 15:54:29 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/rum/List-all-the-RUM-applications-returns-OK-response.json b/tests/scenarios/cassettes/v2/rum/List-all-the-RUM-applications-returns-OK-response.json index dad76fb1f..b162d0505 100644 --- a/tests/scenarios/cassettes/v2/rum/List-all-the-RUM-applications-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/rum/List-all-the-RUM-applications-returns-OK-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"test_name_create\",\"type\":\"browser\"},\"type\":\"rum_application_create\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/rum/applications"}, "response": {"body": {"string": "{\"data\":{\"type\":\"rum_application\",\"attributes\":{\"created_at\":1682521614038,\"name\":\"test_name_create\",\"created_by_handle\":\"frog@datadoghq.com\",\"client_token\":\"pubff23c7e6c6c57b70c583c62de78b489e\",\"updated_at\":1682521614038,\"type\":\"browser\",\"updated_by_handle\":\"frog@datadoghq.com\",\"org_id\":321813,\"is_active\":false,\"application_id\":\"e3f183bb-e9ca-436a-959b-f0c14d87964e\",\"hash\":\"pubff23c7e6c6c57b70c583c62de78b489e\"},\"id\":\"e3f183bb-e9ca-436a-959b-f0c14d87964e\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 26 Apr 2023 15:06:53 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/rum/applications"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"rum_application\",\"attributes\":{\"name\":\"S8-integration-tests\",\"application_id\":\"6ae18142-192f-4582-9633-95121c2a01d7\",\"created_at\":1646148352095,\"updated_at\":1646148434414,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":true,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"6ae18142-192f-4582-9633-95121c2a01d7\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"Synthetic Tests Default Application\",\"application_id\":\"ce9843b0-7a45-453c-a831-55dd15f85141\",\"created_at\":1648568515456,\"updated_at\":1648568515456,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":true,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"ce9843b0-7a45-453c-a831-55dd15f85141\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"75409dfd-ed1f-4aaa-870c-a1995617759d\",\"created_at\":1659957021947,\"updated_at\":1659957021947,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"75409dfd-ed1f-4aaa-870c-a1995617759d\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"8b7e70d1-e1b3-4dab-8fef-b84cfa456034\",\"created_at\":1659973414924,\"updated_at\":1659973414924,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"8b7e70d1-e1b3-4dab-8fef-b84cfa456034\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"47197ca2-7928-47a4-9faf-03c9fa102a09\",\"created_at\":1659974528332,\"updated_at\":1659974528332,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"47197ca2-7928-47a4-9faf-03c9fa102a09\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"9ef071c4-7cf1-42d7-be01-e8580c2bcf27\",\"created_at\":1660044946415,\"updated_at\":1660044946415,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"9ef071c4-7cf1-42d7-be01-e8580c2bcf27\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"378aef40-a8cb-4814-a2e1-ccb50b3a23f2\",\"created_at\":1660044946362,\"updated_at\":1660044946362,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"378aef40-a8cb-4814-a2e1-ccb50b3a23f2\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"3c9c1aa1-a598-45f2-b2b7-a230207e7f1c\",\"created_at\":1660044946419,\"updated_at\":1660044946419,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"3c9c1aa1-a598-45f2-b2b7-a230207e7f1c\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"fa512528-30db-49e6-8c66-9754ba8e3ec3\",\"created_at\":1660044948396,\"updated_at\":1660044948396,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"fa512528-30db-49e6-8c66-9754ba8e3ec3\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"851e960a-11a9-4f08-922e-66e91abb3458\",\"created_at\":1660059345786,\"updated_at\":1660059345786,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"851e960a-11a9-4f08-922e-66e91abb3458\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"e029f343-8583-4c5b-9d2b-c6caebbae92c\",\"created_at\":1660059346080,\"updated_at\":1660059346080,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"e029f343-8583-4c5b-9d2b-c6caebbae92c\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"76331338-d82d-4f24-9a60-73aa7dc4faf5\",\"created_at\":1660073745808,\"updated_at\":1660073745808,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"76331338-d82d-4f24-9a60-73aa7dc4faf5\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"b2fe60e4-57ae-4747-8898-2238bfacf476\",\"created_at\":1660073745810,\"updated_at\":1660073745810,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"b2fe60e4-57ae-4747-8898-2238bfacf476\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"b96b1364-6529-4a36-8e49-757582864ed0\",\"created_at\":1660073745796,\"updated_at\":1660073745796,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"b96b1364-6529-4a36-8e49-757582864ed0\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"56b931f1-5a5a-4e43-8ef4-d507158d9cdd\",\"created_at\":1660073747751,\"updated_at\":1660073747751,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"56b931f1-5a5a-4e43-8ef4-d507158d9cdd\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"8f6149eb-96bf-4af8-a1eb-c68299f7bd50\",\"created_at\":1660088145808,\"updated_at\":1660088145808,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"8f6149eb-96bf-4af8-a1eb-c68299f7bd50\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"7520eb39-735d-4cc2-9bab-85a869f69f16\",\"created_at\":1660090257434,\"updated_at\":1660090257434,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"7520eb39-735d-4cc2-9bab-85a869f69f16\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"482ffa43-4fa7-47c1-85b2-24309d1e0891\",\"created_at\":1660099210994,\"updated_at\":1660099210994,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"482ffa43-4fa7-47c1-85b2-24309d1e0891\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"e7da146b-cd3f-4320-aab8-970e6fc0e9c8\",\"created_at\":1660102397031,\"updated_at\":1660102397031,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"e7da146b-cd3f-4320-aab8-970e6fc0e9c8\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"ea558b12-f9e7-41b2-b371-4264bb43330e\",\"created_at\":1660102545812,\"updated_at\":1660102545812,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"ea558b12-f9e7-41b2-b371-4264bb43330e\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"6381793e-58c7-4339-9e12-852fe30734b5\",\"created_at\":1660102545818,\"updated_at\":1660102545818,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"6381793e-58c7-4339-9e12-852fe30734b5\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"c6211384-da70-484a-9f67-3b24fedf65b3\",\"created_at\":1660102546387,\"updated_at\":1660102546387,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"c6211384-da70-484a-9f67-3b24fedf65b3\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"edba05b7-b482-4563-b671-c3d85fe90922\",\"created_at\":1660102547767,\"updated_at\":1660102547767,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"edba05b7-b482-4563-b671-c3d85fe90922\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"cbe8f0b9-9149-41e0-896b-4d4a378913fe\",\"created_at\":1660105021425,\"updated_at\":1660105021425,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"cbe8f0b9-9149-41e0-896b-4d4a378913fe\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"e665a2fa-be1e-44a9-b9ad-68240094fb84\",\"created_at\":1660145745812,\"updated_at\":1660145745812,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"e665a2fa-be1e-44a9-b9ad-68240094fb84\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"d1799f6e-5c5c-47eb-bc60-7a5bd1d82777\",\"created_at\":1660145745812,\"updated_at\":1660145745812,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"d1799f6e-5c5c-47eb-bc60-7a5bd1d82777\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"a64c8ddd-0604-47c8-b8a4-3e159b8e404b\",\"created_at\":1660145747296,\"updated_at\":1660145747296,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"a64c8ddd-0604-47c8-b8a4-3e159b8e404b\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"39ca1320-d01f-4c8e-968d-b13b7435f332\",\"created_at\":1660148828459,\"updated_at\":1660148828459,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"browser\"},\"id\":\"39ca1320-d01f-4c8e-968d-b13b7435f332\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"540e28cc-e709-4f95-8577-62ea5331d0d2\",\"created_at\":1660160145839,\"updated_at\":1660160145839,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"540e28cc-e709-4f95-8577-62ea5331d0d2\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"dca1c15d-e64a-4723-8979-cc29e05f6043\",\"created_at\":1660174545825,\"updated_at\":1660174545825,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"dca1c15d-e64a-4723-8979-cc29e05f6043\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"8eda01f0-5482-480b-bf8f-b4bceaf7f355\",\"created_at\":1660181772746,\"updated_at\":1660181772746,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"8eda01f0-5482-480b-bf8f-b4bceaf7f355\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"37e23699-d1b6-4d18-9c69-d93afadc219c\",\"created_at\":1660186209340,\"updated_at\":1660186209340,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"37e23699-d1b6-4d18-9c69-d93afadc219c\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"776de905-1da5-467b-a14f-6071c88af547\",\"created_at\":1660188945808,\"updated_at\":1660188945808,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"776de905-1da5-467b-a14f-6071c88af547\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"5d931ec0-04e3-47ce-8e84-2a6170d716c5\",\"created_at\":1660191508737,\"updated_at\":1660191508737,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"5d931ec0-04e3-47ce-8e84-2a6170d716c5\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"4460334c-f372-4afb-9d38-573ad7360201\",\"created_at\":1660203345808,\"updated_at\":1660203345808,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"4460334c-f372-4afb-9d38-573ad7360201\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"dbdd8be1-8a7a-472a-9c4f-7af16145108c\",\"created_at\":1660232145819,\"updated_at\":1660232145819,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"dbdd8be1-8a7a-472a-9c4f-7af16145108c\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"b5a99625-1c37-42c5-8668-0f9d2a233fb8\",\"created_at\":1660278222639,\"updated_at\":1660278222639,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"b5a99625-1c37-42c5-8668-0f9d2a233fb8\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"8688b5f8-9a0b-4d57-9fb5-0240e4807d96\",\"created_at\":1660304145826,\"updated_at\":1660304145826,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"8688b5f8-9a0b-4d57-9fb5-0240e4807d96\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"76b362e8-ac5d-4e63-b86a-70af4d9cfa0a\",\"created_at\":1660304146352,\"updated_at\":1660304146352,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"76b362e8-ac5d-4e63-b86a-70af4d9cfa0a\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"d311c74c-69e6-4da0-a4ed-381ce2d60221\",\"created_at\":1660318545822,\"updated_at\":1660318545822,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"d311c74c-69e6-4da0-a4ed-381ce2d60221\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"56a26a03-ac3e-43e6-94b9-f1bb3d049aec\",\"created_at\":1660318547019,\"updated_at\":1660318547019,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"56a26a03-ac3e-43e6-94b9-f1bb3d049aec\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"0ed6d540-5932-48d5-815c-ce67eae4fd71\",\"created_at\":1660332946367,\"updated_at\":1660332946367,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"0ed6d540-5932-48d5-815c-ce67eae4fd71\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"6a1d67fb-a2ef-443d-b681-873570c695f3\",\"created_at\":1660332946389,\"updated_at\":1660332946389,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"6a1d67fb-a2ef-443d-b681-873570c695f3\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"35bef5c5-c499-43a2-8f36-7d9fbe1dd700\",\"created_at\":1660332946058,\"updated_at\":1660332946058,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"35bef5c5-c499-43a2-8f36-7d9fbe1dd700\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"0e5f7a49-3eb5-4dd3-9bac-295fd36a9599\",\"created_at\":1660347345811,\"updated_at\":1660347345811,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"0e5f7a49-3eb5-4dd3-9bac-295fd36a9599\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"4e343e76-040e-4683-8946-6a2c569c0187\",\"created_at\":1660347346372,\"updated_at\":1660347346372,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"4e343e76-040e-4683-8946-6a2c569c0187\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"4542e564-dda0-45f4-86b8-dad922aefa2f\",\"created_at\":1660361745855,\"updated_at\":1660361745855,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"4542e564-dda0-45f4-86b8-dad922aefa2f\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"06888f1f-6a75-4889-a7e9-f91b05fa7d03\",\"created_at\":1660361746047,\"updated_at\":1660361746047,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"06888f1f-6a75-4889-a7e9-f91b05fa7d03\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"84e61a2e-9867-4737-918d-2de3ab96ece9\",\"created_at\":1660361746055,\"updated_at\":1660361746055,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"84e61a2e-9867-4737-918d-2de3ab96ece9\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"1500dfa3-171f-4421-8dd2-c7befd30eb61\",\"created_at\":1660376145825,\"updated_at\":1660376145825,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"1500dfa3-171f-4421-8dd2-c7befd30eb61\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"a38ac531-15f8-42fa-b74d-c92deb9f7f02\",\"created_at\":1660390546043,\"updated_at\":1660390546043,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"a38ac531-15f8-42fa-b74d-c92deb9f7f02\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"7e35995b-1e5f-4425-9fc8-cda43ef15528\",\"created_at\":1660390546770,\"updated_at\":1660390546770,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"7e35995b-1e5f-4425-9fc8-cda43ef15528\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"3a5fa009-668d-497c-b44a-bdb41a1dce38\",\"created_at\":1660404945869,\"updated_at\":1660404945869,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"3a5fa009-668d-497c-b44a-bdb41a1dce38\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"e57d1f64-476d-4507-b492-32db4f11466d\",\"created_at\":1660404946099,\"updated_at\":1660404946099,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"e57d1f64-476d-4507-b492-32db4f11466d\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"d94d23c5-d26d-4739-8a73-7c8ebeb344a1\",\"created_at\":1660404948230,\"updated_at\":1660404948230,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"d94d23c5-d26d-4739-8a73-7c8ebeb344a1\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"c03034ec-f36f-46f5-8c05-b80bb1eab689\",\"created_at\":1660433745832,\"updated_at\":1660433745832,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"c03034ec-f36f-46f5-8c05-b80bb1eab689\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"ac55c580-0330-4415-9c0e-7f7c5e7de7aa\",\"created_at\":1660433746065,\"updated_at\":1660433746065,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"ac55c580-0330-4415-9c0e-7f7c5e7de7aa\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"55247966-a2bb-4b22-ab6b-cf4a4e1363fb\",\"created_at\":1660448145817,\"updated_at\":1660448145817,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"55247966-a2bb-4b22-ab6b-cf4a4e1363fb\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"974a5d92-baa5-4b0c-b8c6-7678e70b4eb7\",\"created_at\":1660448146107,\"updated_at\":1660448146107,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"974a5d92-baa5-4b0c-b8c6-7678e70b4eb7\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"f41e1a4e-9fab-490e-8d8e-9abfdca0d845\",\"created_at\":1660448148076,\"updated_at\":1660448148076,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"f41e1a4e-9fab-490e-8d8e-9abfdca0d845\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"6557e133-e85f-4d78-ace0-a44842028c21\",\"created_at\":1660462546356,\"updated_at\":1660462546356,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"6557e133-e85f-4d78-ace0-a44842028c21\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"233a1ed3-b6e2-4dd1-9a68-de4acc7dcaf9\",\"created_at\":1660462546048,\"updated_at\":1660462546048,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"233a1ed3-b6e2-4dd1-9a68-de4acc7dcaf9\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"8fd43c29-b5e8-4c98-a97a-74c0c6b1b5d0\",\"created_at\":1660476945855,\"updated_at\":1660476945855,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"8fd43c29-b5e8-4c98-a97a-74c0c6b1b5d0\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"30fa03e4-8750-43d6-b62a-7c03562302d1\",\"created_at\":1660476946389,\"updated_at\":1660476946389,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"30fa03e4-8750-43d6-b62a-7c03562302d1\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"c2deb2f2-6625-4ac9-925f-f11a6925b0b3\",\"created_at\":1660491346055,\"updated_at\":1660491346055,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"c2deb2f2-6625-4ac9-925f-f11a6925b0b3\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"f8dbcbf2-17f2-4023-b8a5-daa82d84d767\",\"created_at\":1660505745835,\"updated_at\":1660505745835,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"f8dbcbf2-17f2-4023-b8a5-daa82d84d767\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"ae1c27aa-b401-41e0-b4ca-d705ed4804c0\",\"created_at\":1660520145807,\"updated_at\":1660520145807,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"ae1c27aa-b401-41e0-b4ca-d705ed4804c0\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"f6f4f7eb-b439-449c-9dc3-83e0dcae589e\",\"created_at\":1660534546373,\"updated_at\":1660534546373,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"f6f4f7eb-b439-449c-9dc3-83e0dcae589e\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"7aeea425-767d-4800-becb-9cb9247badc2\",\"created_at\":1660534546066,\"updated_at\":1660534546066,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"7aeea425-767d-4800-becb-9cb9247badc2\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"552ee6e6-521d-44e0-9cf2-4b278f872aab\",\"created_at\":1660534548129,\"updated_at\":1660534548129,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"552ee6e6-521d-44e0-9cf2-4b278f872aab\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"35128a7f-390f-4e73-997c-b9af0615148b\",\"created_at\":1660538388266,\"updated_at\":1660538388266,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"35128a7f-390f-4e73-997c-b9af0615148b\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"aac10bed-5a78-4d69-80d3-c0adac3af1a7\",\"created_at\":1660563345819,\"updated_at\":1660563345819,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"aac10bed-5a78-4d69-80d3-c0adac3af1a7\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"6a8b8d79-1e91-417a-977b-e7785c23de85\",\"created_at\":1660563345824,\"updated_at\":1660563345824,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"6a8b8d79-1e91-417a-977b-e7785c23de85\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"3bfd1064-bcec-4bfb-85e2-307e10ddc708\",\"created_at\":1660563347131,\"updated_at\":1660563347131,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"3bfd1064-bcec-4bfb-85e2-307e10ddc708\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"fbed08d4-bab7-44a0-aa6c-7034714d1cff\",\"created_at\":1660635345818,\"updated_at\":1660635345818,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"fbed08d4-bab7-44a0-aa6c-7034714d1cff\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"3ded5236-68e2-4435-a289-e2ef770b5d8c\",\"created_at\":1660635346603,\"updated_at\":1660635346603,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"3ded5236-68e2-4435-a289-e2ef770b5d8c\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"0c45c859-f384-406c-8ce9-ddbfe1ebc26f\",\"created_at\":1660649746565,\"updated_at\":1660649746565,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"0c45c859-f384-406c-8ce9-ddbfe1ebc26f\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"45f97407-e946-422c-b399-87a19eaa1ed6\",\"created_at\":1665630244022,\"updated_at\":1665630244022,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"45f97407-e946-422c-b399-87a19eaa1ed6\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"b2a3067c-df23-4985-8fdd-c1c064a1e2ae\",\"created_at\":1666380880808,\"updated_at\":1666380880808,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"b2a3067c-df23-4985-8fdd-c1c064a1e2ae\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"e56a6eb2-c022-493d-a500-8510665c3b66\",\"created_at\":1666610744214,\"updated_at\":1666610744214,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"e56a6eb2-c022-493d-a500-8510665c3b66\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"c9939c78-49d2-4630-8195-da6c764a146a\",\"created_at\":1666913857015,\"updated_at\":1666913857015,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"c9939c78-49d2-4630-8195-da6c764a146a\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"cd42fe18-30dc-4040-82c5-748508d02c7b\",\"created_at\":1667101056843,\"updated_at\":1667101056843,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"cd42fe18-30dc-4040-82c5-748508d02c7b\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"de2e12a7-67c5-4972-b088-2a97083ece0e\",\"created_at\":1667302066717,\"updated_at\":1667302066717,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"de2e12a7-67c5-4972-b088-2a97083ece0e\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"5f66d498-606f-439b-b29c-2eb17f2097c0\",\"created_at\":1667403456820,\"updated_at\":1667403456820,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"5f66d498-606f-439b-b29c-2eb17f2097c0\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"e5484120-61c4-4e3e-be88-6e7dde381231\",\"created_at\":1667616654369,\"updated_at\":1667616654369,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"browser\"},\"id\":\"e5484120-61c4-4e3e-be88-6e7dde381231\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"0a234537-933b-4a63-8587-212f18586de3\",\"created_at\":1668166480808,\"updated_at\":1668166480808,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"0a234537-933b-4a63-8587-212f18586de3\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"a2417a2c-6dfe-448f-91dd-1a37df73321e\",\"created_at\":1668425300958,\"updated_at\":1668425300958,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"a2417a2c-6dfe-448f-91dd-1a37df73321e\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"a3a43618-db54-423c-b9a0-94ef9cc33717\",\"created_at\":1668483456726,\"updated_at\":1668483456726,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"a3a43618-db54-423c-b9a0-94ef9cc33717\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1668700778\",\"application_id\":\"60ecb641-bc3c-41be-8ec0-9c3141898731\",\"created_at\":1668700779357,\"updated_at\":1668700779357,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"60ecb641-bc3c-41be-8ec0-9c3141898731\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1668700787\",\"application_id\":\"36eeade4-7fcf-489f-88c4-cf2ace24ab8a\",\"created_at\":1668700788821,\"updated_at\":1668700788821,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"36eeade4-7fcf-489f-88c4-cf2ace24ab8a\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1668701336\",\"application_id\":\"c83f6723-7c9a-41fe-a865-0e18e0844610\",\"created_at\":1668701337413,\"updated_at\":1668701337413,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"c83f6723-7c9a-41fe-a865-0e18e0844610\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1668701539\",\"application_id\":\"6d258d2e-b9ed-48ae-9c86-c76de610bbc7\",\"created_at\":1668701539911,\"updated_at\":1668701539911,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"6d258d2e-b9ed-48ae-9c86-c76de610bbc7\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"9c5adb19-a88d-4b1f-93d1-0761f82389b0\",\"created_at\":1669004657261,\"updated_at\":1669004657261,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"9c5adb19-a88d-4b1f-93d1-0761f82389b0\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"4e5f8a74-ade7-499f-a7d9-116484b77e14\",\"created_at\":1669599877410,\"updated_at\":1669599877410,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"browser\"},\"id\":\"4e5f8a74-ade7-499f-a7d9-116484b77e14\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"fe78a807-6d38-494f-99bd-f67ae2e8fcf7\",\"created_at\":1669678480844,\"updated_at\":1669678480844,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"fe78a807-6d38-494f-99bd-f67ae2e8fcf7\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"c2b1ba9c-d171-4180-acf8-a9db205ae711\",\"created_at\":1669695490299,\"updated_at\":1669695490299,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"c2b1ba9c-d171-4180-acf8-a9db205ae711\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"351e0c29-8b82-4185-886b-e8d280e9b46e\",\"created_at\":1669721109042,\"updated_at\":1669721109042,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"351e0c29-8b82-4185-886b-e8d280e9b46e\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"5b963005-7c26-4353-a4ea-a6182eb9d43f\",\"created_at\":1669782312311,\"updated_at\":1669782312311,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"5b963005-7c26-4353-a4ea-a6182eb9d43f\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"687054b5-c183-4d4d-8328-d6dad5ed71dc\",\"created_at\":1669969512318,\"updated_at\":1669969512318,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"687054b5-c183-4d4d-8328-d6dad5ed71dc\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"27f6e211-b1b3-4644-9e5a-25e90ed7ec0e\",\"created_at\":1670203989821,\"updated_at\":1670203989821,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"browser\"},\"id\":\"27f6e211-b1b3-4644-9e5a-25e90ed7ec0e\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"b45fccd9-198c-43d8-8a2b-8e07798d509b\",\"created_at\":1670412118211,\"updated_at\":1670412118211,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"b45fccd9-198c-43d8-8a2b-8e07798d509b\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670445029\",\"application_id\":\"8540b2fd-1c47-4467-84dd-2bf9bb39b0ce\",\"created_at\":1670445029816,\"updated_at\":1670445029816,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"react-native\"},\"id\":\"8540b2fd-1c47-4467-84dd-2bf9bb39b0ce\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670445039\",\"application_id\":\"7fb4e58d-7350-4950-a858-a6b92901f4fa\",\"created_at\":1670445040384,\"updated_at\":1670445040384,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"react-native\"},\"id\":\"7fb4e58d-7350-4950-a858-a6b92901f4fa\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670445039\",\"application_id\":\"131fa2aa-2413-408b-b882-9e494d59967f\",\"created_at\":1670445040385,\"updated_at\":1670445040385,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"131fa2aa-2413-408b-b882-9e494d59967f\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670445043\",\"application_id\":\"82935ded-b4d1-4d26-be12-b6becac4ca86\",\"created_at\":1670445045355,\"updated_at\":1670445045355,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"82935ded-b4d1-4d26-be12-b6becac4ca86\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670602792-extra\",\"application_id\":\"aeb7a741-bb5a-44af-a4a0-6ac346205872\",\"created_at\":1670602793732,\"updated_at\":1670602793732,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"aeb7a741-bb5a-44af-a4a0-6ac346205872\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670602803\",\"application_id\":\"9a02cf5e-14b7-4d4f-a149-2a16dbee3337\",\"created_at\":1670602804481,\"updated_at\":1670602804481,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"9a02cf5e-14b7-4d4f-a149-2a16dbee3337\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670602809-extra\",\"application_id\":\"769c8588-260a-497a-b5ae-e1a3d788ab83\",\"created_at\":1670602810887,\"updated_at\":1670602810887,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"769c8588-260a-497a-b5ae-e1a3d788ab83\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670602934\",\"application_id\":\"f762b46c-1272-4cf0-b0e1-eea023314754\",\"created_at\":1670602935624,\"updated_at\":1670602935624,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"react-native\"},\"id\":\"f762b46c-1272-4cf0-b0e1-eea023314754\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670603187\",\"application_id\":\"d9159200-04ca-4e13-bda1-4fbcdc635969\",\"created_at\":1670603189503,\"updated_at\":1670603189503,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"react-native\"},\"id\":\"d9159200-04ca-4e13-bda1-4fbcdc635969\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670603433\",\"application_id\":\"de015e11-8504-4c2c-8f21-a99360ba4ac9\",\"created_at\":1670603434771,\"updated_at\":1670603434771,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"react-native\"},\"id\":\"de015e11-8504-4c2c-8f21-a99360ba4ac9\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670607050\",\"application_id\":\"22fa7324-e51e-403f-8c7d-84b0777f49e3\",\"created_at\":1670607055368,\"updated_at\":1670607055368,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"react-native\"},\"id\":\"22fa7324-e51e-403f-8c7d-84b0777f49e3\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670607065\",\"application_id\":\"38305abf-498a-4150-83d7-f33332bb4dce\",\"created_at\":1670607068519,\"updated_at\":1670607068519,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"38305abf-498a-4150-83d7-f33332bb4dce\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670607105\",\"application_id\":\"2b3de4ed-1cc1-46f1-be76-3e252883a8b3\",\"created_at\":1670607109879,\"updated_at\":1670607109879,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"react-native\"},\"id\":\"2b3de4ed-1cc1-46f1-be76-3e252883a8b3\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670607117\",\"application_id\":\"390bd691-b0a0-4f1f-abe6-4db5df7d7be8\",\"created_at\":1670607121937,\"updated_at\":1670607121937,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"react-native\"},\"id\":\"390bd691-b0a0-4f1f-abe6-4db5df7d7be8\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670607522\",\"application_id\":\"19006c58-3fd9-4cf7-8ebe-c8b27e55a5c8\",\"created_at\":1670607525852,\"updated_at\":1670607525852,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"19006c58-3fd9-4cf7-8ebe-c8b27e55a5c8\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"awoooooooo\",\"application_id\":\"88e86bcc-6d0a-4a3c-942f-55314a6f03bd\",\"created_at\":1670608490405,\"updated_at\":1670608490405,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"88e86bcc-6d0a-4a3c-942f-55314a6f03bd\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670609671\",\"application_id\":\"a57d8138-d9a3-4194-ad5b-5b80a6b78155\",\"created_at\":1670609672381,\"updated_at\":1670609672381,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"a57d8138-d9a3-4194-ad5b-5b80a6b78155\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670609677\",\"application_id\":\"2672eb48-c139-4d6c-b9d0-9c644385b805\",\"created_at\":1670609678393,\"updated_at\":1670609678393,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"2672eb48-c139-4d6c-b9d0-9c644385b805\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670609709\",\"application_id\":\"30521dbf-96f5-44ee-9c8a-240b8878ef6d\",\"created_at\":1670609710310,\"updated_at\":1670609710310,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"30521dbf-96f5-44ee-9c8a-240b8878ef6d\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670609716\",\"application_id\":\"964ea218-decf-4855-9170-9bdbb14d51c4\",\"created_at\":1670609717578,\"updated_at\":1670609717578,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"964ea218-decf-4855-9170-9bdbb14d51c4\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670609744\",\"application_id\":\"5efa4285-1445-4775-8846-843e0e69317b\",\"created_at\":1670609745210,\"updated_at\":1670609745210,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"5efa4285-1445-4775-8846-843e0e69317b\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670609749\",\"application_id\":\"e7c35c3d-8102-4474-bf85-025bd20ca9a5\",\"created_at\":1670609750986,\"updated_at\":1670609750986,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"e7c35c3d-8102-4474-bf85-025bd20ca9a5\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670609758\",\"application_id\":\"4553f649-1a41-42b8-805c-7dfb6ea60e4b\",\"created_at\":1670609759194,\"updated_at\":1670609759194,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"4553f649-1a41-42b8-805c-7dfb6ea60e4b\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670609804\",\"application_id\":\"d7f9859d-50ba-46a2-814c-7bba2a86d403\",\"created_at\":1670609806140,\"updated_at\":1670609806140,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"d7f9859d-50ba-46a2-814c-7bba2a86d403\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670609811\",\"application_id\":\"78c88e85-259e-40d0-8530-7cd339d134b2\",\"created_at\":1670609812441,\"updated_at\":1670609812441,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"78c88e85-259e-40d0-8530-7cd339d134b2\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670609823\",\"application_id\":\"d0eef680-82d6-45f0-a31f-3e590076d1ab\",\"created_at\":1670609824965,\"updated_at\":1670609824965,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"d0eef680-82d6-45f0-a31f-3e590076d1ab\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670609830\",\"application_id\":\"b1278fb6-bb84-4216-9cf8-313e28e9810b\",\"created_at\":1670609832241,\"updated_at\":1670609832241,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"b1278fb6-bb84-4216-9cf8-313e28e9810b\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1670609860\",\"application_id\":\"0d90235b-3e40-491f-9065-fd5a6359d370\",\"created_at\":1670609861673,\"updated_at\":1670609861673,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"0d90235b-3e40-491f-9065-fd5a6359d370\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1670609867\",\"application_id\":\"b51f123a-0c97-4c9f-a759-be8bc05c23ab\",\"created_at\":1670609868510,\"updated_at\":1670609868510,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"b51f123a-0c97-4c9f-a759-be8bc05c23ab\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1670609874\",\"application_id\":\"5d75faef-f412-4c54-b689-4423effeefe4\",\"created_at\":1670609875476,\"updated_at\":1670609875476,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"5d75faef-f412-4c54-b689-4423effeefe4\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1670609884\",\"application_id\":\"09d85130-dcf9-48ab-a89b-f160a07ecd11\",\"created_at\":1670609885608,\"updated_at\":1670609885608,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"09d85130-dcf9-48ab-a89b-f160a07ecd11\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1670610118\",\"application_id\":\"b6f659c5-447a-4c8d-bd0f-cc7742173285\",\"created_at\":1670610119766,\"updated_at\":1670610119766,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"b6f659c5-447a-4c8d-bd0f-cc7742173285\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1670610614\",\"application_id\":\"d24f8c06-dade-4665-a671-d0a9fdc4dd53\",\"created_at\":1670610615913,\"updated_at\":1670610615913,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"d24f8c06-dade-4665-a671-d0a9fdc4dd53\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1670610622\",\"application_id\":\"707f61dd-629b-4c13-81ad-c03f9a695f08\",\"created_at\":1670610623817,\"updated_at\":1670610623817,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"707f61dd-629b-4c13-81ad-c03f9a695f08\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1670610622\",\"application_id\":\"d2c2e3d2-1ab0-46b8-8f6b-1ffdf84bb0ef\",\"created_at\":1670610623821,\"updated_at\":1670610623821,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"d2c2e3d2-1ab0-46b8-8f6b-1ffdf84bb0ef\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1670610949\",\"application_id\":\"fde0a20b-706b-4976-9cd8-3ec75e551a9c\",\"created_at\":1670610950603,\"updated_at\":1670610950603,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"fde0a20b-706b-4976-9cd8-3ec75e551a9c\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670611545-extra\",\"application_id\":\"e603b3c7-995c-4a59-a29d-ef2a5c863f77\",\"created_at\":1670611547231,\"updated_at\":1670611547231,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"e603b3c7-995c-4a59-a29d-ef2a5c863f77\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670611559\",\"application_id\":\"a0e71761-53b4-4b3f-9d42-a309a7e3b0ef\",\"created_at\":1670611560452,\"updated_at\":1670611560452,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"a0e71761-53b4-4b3f-9d42-a309a7e3b0ef\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670611566-extra\",\"application_id\":\"02c58702-93c8-4631-912d-9984d6703096\",\"created_at\":1670611567553,\"updated_at\":1670611567553,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"02c58702-93c8-4631-912d-9984d6703096\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670611579\",\"application_id\":\"e0f947ec-dca5-4c5e-991f-109a85aaad0e\",\"created_at\":1670611580665,\"updated_at\":1670611580665,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"e0f947ec-dca5-4c5e-991f-109a85aaad0e\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1670611583\",\"application_id\":\"64ac0551-a575-48be-88d2-4fd1c1f59f59\",\"created_at\":1670611584375,\"updated_at\":1670611584375,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"64ac0551-a575-48be-88d2-4fd1c1f59f59\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670611588\",\"application_id\":\"205abf49-718b-42a3-a37a-0d7971878018\",\"created_at\":1670611588654,\"updated_at\":1670611588654,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"205abf49-718b-42a3-a37a-0d7971878018\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670611605\",\"application_id\":\"bb3f2d62-fd70-4fed-af4a-8be1bb7bff2f\",\"created_at\":1670611606492,\"updated_at\":1670611606492,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"bb3f2d62-fd70-4fed-af4a-8be1bb7bff2f\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670611613\",\"application_id\":\"0c9f1149-6c43-433d-9c42-dbb41fbffc2d\",\"created_at\":1670611614258,\"updated_at\":1670611614258,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"0c9f1149-6c43-433d-9c42-dbb41fbffc2d\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670612238\",\"application_id\":\"3522cd96-fb84-425f-b41f-2252f63acee6\",\"created_at\":1670612239352,\"updated_at\":1670612239352,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"3522cd96-fb84-425f-b41f-2252f63acee6\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670612343-extra\",\"application_id\":\"c89b704f-9aec-4039-bb51-19d6ac7db61e\",\"created_at\":1670612345071,\"updated_at\":1670612345071,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"c89b704f-9aec-4039-bb51-19d6ac7db61e\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1670612348\",\"application_id\":\"55ebc7ae-600a-4505-af4b-0bcfee1d59d7\",\"created_at\":1670612349456,\"updated_at\":1670612349456,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"55ebc7ae-600a-4505-af4b-0bcfee1d59d7\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670612356-extra\",\"application_id\":\"3e76ed6c-dece-472f-9708-ae000bfac127\",\"created_at\":1670612357850,\"updated_at\":1670612357850,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"3e76ed6c-dece-472f-9708-ae000bfac127\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670612369-extra\",\"application_id\":\"19118c95-6ee1-4f35-980f-61125a504592\",\"created_at\":1670612370292,\"updated_at\":1670612370292,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"19118c95-6ee1-4f35-980f-61125a504592\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670613559-extra\",\"application_id\":\"588bbf47-1602-4c2e-9fd8-1316d46672d9\",\"created_at\":1670613561001,\"updated_at\":1670613561001,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"588bbf47-1602-4c2e-9fd8-1316d46672d9\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670613566-extra\",\"application_id\":\"97697920-e99d-4ae4-acc1-647824d45c95\",\"created_at\":1670613567839,\"updated_at\":1670613567839,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"97697920-e99d-4ae4-acc1-647824d45c95\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670613574\",\"application_id\":\"bafb45fb-564b-4cb7-8af3-6b77e6d14ea6\",\"created_at\":1670613575607,\"updated_at\":1670613575607,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"bafb45fb-564b-4cb7-8af3-6b77e6d14ea6\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670613846\",\"application_id\":\"3db8c381-4955-4288-b6d8-8fa95ac58767\",\"created_at\":1670613848200,\"updated_at\":1670613848200,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"3db8c381-4955-4288-b6d8-8fa95ac58767\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670613853-extra\",\"application_id\":\"f919c288-1465-4006-a4ab-9ce898f64eca\",\"created_at\":1670613855203,\"updated_at\":1670613855203,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"f919c288-1465-4006-a4ab-9ce898f64eca\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1670613858\",\"application_id\":\"91365af4-2999-4971-898a-a46caa4e5d78\",\"created_at\":1670613858881,\"updated_at\":1670613858881,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"91365af4-2999-4971-898a-a46caa4e5d78\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670613864-extra\",\"application_id\":\"62a65a08-6eea-4623-aa69-12c45cf4337d\",\"created_at\":1670613865870,\"updated_at\":1670613865870,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"62a65a08-6eea-4623-aa69-12c45cf4337d\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670613877-extra\",\"application_id\":\"06607ac1-4125-4c38-9048-210db4f0cbe9\",\"created_at\":1670613878944,\"updated_at\":1670613878944,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"06607ac1-4125-4c38-9048-210db4f0cbe9\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670614195\",\"application_id\":\"8b5b1bbb-dd66-496f-830c-885aca3e03ed\",\"created_at\":1670614196795,\"updated_at\":1670614196795,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"8b5b1bbb-dd66-496f-830c-885aca3e03ed\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"%[1]s\",\"application_id\":\"dabf7733-4407-4946-acab-db2c1e1f18ab\",\"created_at\":1670614440577,\"updated_at\":1670614440577,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"dabf7733-4407-4946-acab-db2c1e1f18ab\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670615213\",\"application_id\":\"3dbed94c-e013-42db-9cb6-a8ed2c4283bd\",\"created_at\":1670615215123,\"updated_at\":1670615215123,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"3dbed94c-e013-42db-9cb6-a8ed2c4283bd\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670615267-extra\",\"application_id\":\"a02e6fdb-5666-4f9b-a93c-a592a0413ada\",\"created_at\":1670615269073,\"updated_at\":1670615269073,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"a02e6fdb-5666-4f9b-a93c-a592a0413ada\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670615451\",\"application_id\":\"81a883c0-ac9d-4186-9f4e-90c503d595d0\",\"created_at\":1670615452768,\"updated_at\":1670615452768,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"81a883c0-ac9d-4186-9f4e-90c503d595d0\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670615465-extra\",\"application_id\":\"77c50c2d-a750-4ae7-be36-9ca553943ef8\",\"created_at\":1670615466271,\"updated_at\":1670615466271,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"77c50c2d-a750-4ae7-be36-9ca553943ef8\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670615677\",\"application_id\":\"31979592-c0d6-459e-a45e-9e6709473ee9\",\"created_at\":1670615678809,\"updated_at\":1670615678809,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"31979592-c0d6-459e-a45e-9e6709473ee9\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670615751\",\"application_id\":\"0cdda419-d6ec-4ff2-8c72-11a7d82d4abb\",\"created_at\":1670615752500,\"updated_at\":1670615752500,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"0cdda419-d6ec-4ff2-8c72-11a7d82d4abb\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"bb0df436-76d7-4dd9-8d7d-695a25caaa74\",\"created_at\":1670617512353,\"updated_at\":1670617512353,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"bb0df436-76d7-4dd9-8d7d-695a25caaa74\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"496cce41-08ee-4f06-8b7b-819f5aa2ac71\",\"created_at\":1670631912304,\"updated_at\":1670631912304,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"496cce41-08ee-4f06-8b7b-819f5aa2ac71\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"b2a3ac93-afda-4591-bc0b-3d69c662829c\",\"created_at\":1671416875915,\"updated_at\":1671416875915,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"browser\"},\"id\":\"b2a3ac93-afda-4591-bc0b-3d69c662829c\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"eb4ff1ec-437d-40c7-b67a-d0b9dc379955\",\"created_at\":1671589769303,\"updated_at\":1671589769303,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"browser\"},\"id\":\"eb4ff1ec-437d-40c7-b67a-d0b9dc379955\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"3b8cd819-44ff-4aeb-90da-80acd960ff86\",\"created_at\":1671754427764,\"updated_at\":1671754427764,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"3b8cd819-44ff-4aeb-90da-80acd960ff86\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"cc927feb-32d2-4742-8d96-1d40751aa9f7\",\"created_at\":1671812712268,\"updated_at\":1671812712268,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"cc927feb-32d2-4742-8d96-1d40751aa9f7\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"85972310-923c-4326-b5bc-2997850f32bb\",\"created_at\":1671956712261,\"updated_at\":1671956712261,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"85972310-923c-4326-b5bc-2997850f32bb\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"5111d787-b35f-4303-8f4b-f46a3e105c29\",\"created_at\":1672400256827,\"updated_at\":1672400256827,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"5111d787-b35f-4303-8f4b-f46a3e105c29\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"47f51217-fe32-4ee2-9b39-7ae1ce25e41b\",\"created_at\":1672443456831,\"updated_at\":1672443456831,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"47f51217-fe32-4ee2-9b39-7ae1ce25e41b\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"ed46807a-4df7-40b6-a96e-8403d35b773f\",\"created_at\":1672719631884,\"updated_at\":1672719631884,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"ed46807a-4df7-40b6-a96e-8403d35b773f\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"c8c476c8-7261-4ee4-991b-1348ecc47a1b\",\"created_at\":1672861101850,\"updated_at\":1672861101850,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"c8c476c8-7261-4ee4-991b-1348ecc47a1b\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"82045143-0678-4202-94d1-6e74a53ae3ea\",\"created_at\":1673105901792,\"updated_at\":1673105901792,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"82045143-0678-4202-94d1-6e74a53ae3ea\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"34f0754f-9064-49cd-9a68-31790987899f\",\"created_at\":1673422701792,\"updated_at\":1673422701792,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"34f0754f-9064-49cd-9a68-31790987899f\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"205d3bba-8bb3-4ba5-aed7-d9bc94692f6e\",\"created_at\":1673493707904,\"updated_at\":1673493707904,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"browser\"},\"id\":\"205d3bba-8bb3-4ba5-aed7-d9bc94692f6e\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"4878ef7b-856f-4bce-a467-8a7f7135ec96\",\"created_at\":1673595456871,\"updated_at\":1673595456871,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"4878ef7b-856f-4bce-a467-8a7f7135ec96\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"50cd8550-580f-491c-86ba-a7cca2ea46f7\",\"created_at\":1673614456864,\"updated_at\":1673614456864,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"50cd8550-580f-491c-86ba-a7cca2ea46f7\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"0062eeca-cc64-4c44-ac81-6e62d937fafb\",\"created_at\":1673614458817,\"updated_at\":1673614458817,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"0062eeca-cc64-4c44-ac81-6e62d937fafb\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"d783acfd-c7f1-4c1c-a13d-b6acd9d2e703\",\"created_at\":1673672056522,\"updated_at\":1673672056522,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"d783acfd-c7f1-4c1c-a13d-b6acd9d2e703\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"2674407d-5e8c-4c9e-868a-620a082d012e\",\"created_at\":1673750077617,\"updated_at\":1673750077617,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"browser\"},\"id\":\"2674407d-5e8c-4c9e-868a-620a082d012e\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"036160fd-39dd-4d0c-9d57-23ddecfb3d17\",\"created_at\":1674075241477,\"updated_at\":1674075241477,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"036160fd-39dd-4d0c-9d57-23ddecfb3d17\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"d479d2cc-a523-4829-8798-2462a10aacb4\",\"created_at\":1674694441981,\"updated_at\":1674694441981,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"d479d2cc-a523-4829-8798-2462a10aacb4\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"accb24e8-4e23-4b31-9e2a-60ddfca7f284\",\"created_at\":1674795256386,\"updated_at\":1674795256386,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"accb24e8-4e23-4b31-9e2a-60ddfca7f284\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"d2b2159a-2f92-470c-aed7-302ec4b8b945\",\"created_at\":1674824041985,\"updated_at\":1674824041985,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"d2b2159a-2f92-470c-aed7-302ec4b8b945\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"19efcd5a-f4aa-45c6-bd65-caae57ad7563\",\"created_at\":1674953641417,\"updated_at\":1674953641417,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"19efcd5a-f4aa-45c6-bd65-caae57ad7563\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"3f247c24-83ac-45dc-9715-1173f08b6f04\",\"created_at\":1674966085171,\"updated_at\":1674966085171,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"browser\"},\"id\":\"3f247c24-83ac-45dc-9715-1173f08b6f04\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"e12666b4-e084-42e9-ad05-09426ab35af4\",\"created_at\":1674996856687,\"updated_at\":1674996856687,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"e12666b4-e084-42e9-ad05-09426ab35af4\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"4cf55ecc-78ba-4375-8cc0-67895a8a73f7\",\"created_at\":1675988085389,\"updated_at\":1675988085389,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"4cf55ecc-78ba-4375-8cc0-67895a8a73f7\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"fb1429f8-3895-44c6-8bd7-bf2f52c73398\",\"created_at\":1677856591758,\"updated_at\":1677856591758,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"fb1429f8-3895-44c6-8bd7-bf2f52c73398\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"7fc3122b-482f-4825-95d5-43727f3ec11b\",\"created_at\":1677856591253,\"updated_at\":1677856591253,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"7fc3122b-482f-4825-95d5-43727f3ec11b\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"1b706662-2c00-4baf-bb28-1e5d2cd324bc\",\"created_at\":1677856593124,\"updated_at\":1677856593124,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"1b706662-2c00-4baf-bb28-1e5d2cd324bc\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"481162b5-40ad-47bd-97a3-5488b899cb97\",\"created_at\":1677856595017,\"updated_at\":1677856595017,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"481162b5-40ad-47bd-97a3-5488b899cb97\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"33c64d13-9d4d-4180-8770-310fcc4cc9af\",\"created_at\":1677856595458,\"updated_at\":1677856595458,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"33c64d13-9d4d-4180-8770-310fcc4cc9af\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"c135b68e-acc1-4fe9-bf41-a688fad3181a\",\"created_at\":1680927645972,\"updated_at\":1680927645972,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"browser\"},\"id\":\"c135b68e-acc1-4fe9-bf41-a688fad3181a\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1681316791\",\"application_id\":\"6c806e62-8ba9-4f58-a29b-d4b1fa26dc6c\",\"created_at\":1681316792320,\"updated_at\":1681316792320,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"6c806e62-8ba9-4f58-a29b-d4b1fa26dc6c\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1681316791\",\"application_id\":\"7f8dff50-1ae2-49d1-b4b5-1e64f4cc7ad3\",\"created_at\":1681316792589,\"updated_at\":1681316792589,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"android\"},\"id\":\"7f8dff50-1ae2-49d1-b4b5-1e64f4cc7ad3\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1681316792\",\"application_id\":\"4b79a94d-3ab1-4b4a-981d-ae6d4b8b9052\",\"created_at\":1681316793013,\"updated_at\":1681316793013,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"4b79a94d-3ab1-4b4a-981d-ae6d4b8b9052\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1681316792-extra\",\"application_id\":\"00c37067-8059-453c-9672-b0ffb37f0d2e\",\"created_at\":1681316793012,\"updated_at\":1681316793012,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"android\"},\"id\":\"00c37067-8059-453c-9672-b0ffb37f0d2e\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"e3f183bb-e9ca-436a-959b-f0c14d87964e\",\"created_at\":1682521614038,\"updated_at\":1682521614038,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"e3f183bb-e9ca-436a-959b-f0c14d87964e\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 26 Apr 2023 15:06:53 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/rum/applications/e3f183bb-e9ca-436a-959b-f0c14d87964e"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 26 Apr 2023 15:06:53 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"test_name_create\",\"type\":\"browser\"},\"type\":\"rum_application_create\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/rum/applications" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"rum_application\",\"attributes\":{\"created_at\":1682521614038,\"name\":\"test_name_create\",\"created_by_handle\":\"frog@datadoghq.com\",\"client_token\":\"pubff23c7e6c6c57b70c583c62de78b489e\",\"updated_at\":1682521614038,\"type\":\"browser\",\"updated_by_handle\":\"frog@datadoghq.com\",\"org_id\":321813,\"is_active\":false,\"application_id\":\"e3f183bb-e9ca-436a-959b-f0c14d87964e\",\"hash\":\"pubff23c7e6c6c57b70c583c62de78b489e\"},\"id\":\"e3f183bb-e9ca-436a-959b-f0c14d87964e\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 26 Apr 2023 15:06:53 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/rum/applications" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"rum_application\",\"attributes\":{\"name\":\"S8-integration-tests\",\"application_id\":\"6ae18142-192f-4582-9633-95121c2a01d7\",\"created_at\":1646148352095,\"updated_at\":1646148434414,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":true,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"6ae18142-192f-4582-9633-95121c2a01d7\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"Synthetic Tests Default Application\",\"application_id\":\"ce9843b0-7a45-453c-a831-55dd15f85141\",\"created_at\":1648568515456,\"updated_at\":1648568515456,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":true,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"ce9843b0-7a45-453c-a831-55dd15f85141\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"75409dfd-ed1f-4aaa-870c-a1995617759d\",\"created_at\":1659957021947,\"updated_at\":1659957021947,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"75409dfd-ed1f-4aaa-870c-a1995617759d\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"8b7e70d1-e1b3-4dab-8fef-b84cfa456034\",\"created_at\":1659973414924,\"updated_at\":1659973414924,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"8b7e70d1-e1b3-4dab-8fef-b84cfa456034\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"47197ca2-7928-47a4-9faf-03c9fa102a09\",\"created_at\":1659974528332,\"updated_at\":1659974528332,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"47197ca2-7928-47a4-9faf-03c9fa102a09\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"9ef071c4-7cf1-42d7-be01-e8580c2bcf27\",\"created_at\":1660044946415,\"updated_at\":1660044946415,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"9ef071c4-7cf1-42d7-be01-e8580c2bcf27\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"378aef40-a8cb-4814-a2e1-ccb50b3a23f2\",\"created_at\":1660044946362,\"updated_at\":1660044946362,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"378aef40-a8cb-4814-a2e1-ccb50b3a23f2\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"3c9c1aa1-a598-45f2-b2b7-a230207e7f1c\",\"created_at\":1660044946419,\"updated_at\":1660044946419,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"3c9c1aa1-a598-45f2-b2b7-a230207e7f1c\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"fa512528-30db-49e6-8c66-9754ba8e3ec3\",\"created_at\":1660044948396,\"updated_at\":1660044948396,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"fa512528-30db-49e6-8c66-9754ba8e3ec3\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"851e960a-11a9-4f08-922e-66e91abb3458\",\"created_at\":1660059345786,\"updated_at\":1660059345786,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"851e960a-11a9-4f08-922e-66e91abb3458\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"e029f343-8583-4c5b-9d2b-c6caebbae92c\",\"created_at\":1660059346080,\"updated_at\":1660059346080,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"e029f343-8583-4c5b-9d2b-c6caebbae92c\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"76331338-d82d-4f24-9a60-73aa7dc4faf5\",\"created_at\":1660073745808,\"updated_at\":1660073745808,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"76331338-d82d-4f24-9a60-73aa7dc4faf5\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"b2fe60e4-57ae-4747-8898-2238bfacf476\",\"created_at\":1660073745810,\"updated_at\":1660073745810,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"b2fe60e4-57ae-4747-8898-2238bfacf476\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"b96b1364-6529-4a36-8e49-757582864ed0\",\"created_at\":1660073745796,\"updated_at\":1660073745796,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"b96b1364-6529-4a36-8e49-757582864ed0\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"56b931f1-5a5a-4e43-8ef4-d507158d9cdd\",\"created_at\":1660073747751,\"updated_at\":1660073747751,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"56b931f1-5a5a-4e43-8ef4-d507158d9cdd\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"8f6149eb-96bf-4af8-a1eb-c68299f7bd50\",\"created_at\":1660088145808,\"updated_at\":1660088145808,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"8f6149eb-96bf-4af8-a1eb-c68299f7bd50\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"7520eb39-735d-4cc2-9bab-85a869f69f16\",\"created_at\":1660090257434,\"updated_at\":1660090257434,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"7520eb39-735d-4cc2-9bab-85a869f69f16\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"482ffa43-4fa7-47c1-85b2-24309d1e0891\",\"created_at\":1660099210994,\"updated_at\":1660099210994,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"482ffa43-4fa7-47c1-85b2-24309d1e0891\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"e7da146b-cd3f-4320-aab8-970e6fc0e9c8\",\"created_at\":1660102397031,\"updated_at\":1660102397031,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"e7da146b-cd3f-4320-aab8-970e6fc0e9c8\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"ea558b12-f9e7-41b2-b371-4264bb43330e\",\"created_at\":1660102545812,\"updated_at\":1660102545812,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"ea558b12-f9e7-41b2-b371-4264bb43330e\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"6381793e-58c7-4339-9e12-852fe30734b5\",\"created_at\":1660102545818,\"updated_at\":1660102545818,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"6381793e-58c7-4339-9e12-852fe30734b5\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"c6211384-da70-484a-9f67-3b24fedf65b3\",\"created_at\":1660102546387,\"updated_at\":1660102546387,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"c6211384-da70-484a-9f67-3b24fedf65b3\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"edba05b7-b482-4563-b671-c3d85fe90922\",\"created_at\":1660102547767,\"updated_at\":1660102547767,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"edba05b7-b482-4563-b671-c3d85fe90922\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"cbe8f0b9-9149-41e0-896b-4d4a378913fe\",\"created_at\":1660105021425,\"updated_at\":1660105021425,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"cbe8f0b9-9149-41e0-896b-4d4a378913fe\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"e665a2fa-be1e-44a9-b9ad-68240094fb84\",\"created_at\":1660145745812,\"updated_at\":1660145745812,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"e665a2fa-be1e-44a9-b9ad-68240094fb84\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"d1799f6e-5c5c-47eb-bc60-7a5bd1d82777\",\"created_at\":1660145745812,\"updated_at\":1660145745812,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"d1799f6e-5c5c-47eb-bc60-7a5bd1d82777\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"a64c8ddd-0604-47c8-b8a4-3e159b8e404b\",\"created_at\":1660145747296,\"updated_at\":1660145747296,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"a64c8ddd-0604-47c8-b8a4-3e159b8e404b\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"39ca1320-d01f-4c8e-968d-b13b7435f332\",\"created_at\":1660148828459,\"updated_at\":1660148828459,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"browser\"},\"id\":\"39ca1320-d01f-4c8e-968d-b13b7435f332\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"540e28cc-e709-4f95-8577-62ea5331d0d2\",\"created_at\":1660160145839,\"updated_at\":1660160145839,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"540e28cc-e709-4f95-8577-62ea5331d0d2\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"dca1c15d-e64a-4723-8979-cc29e05f6043\",\"created_at\":1660174545825,\"updated_at\":1660174545825,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"dca1c15d-e64a-4723-8979-cc29e05f6043\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"8eda01f0-5482-480b-bf8f-b4bceaf7f355\",\"created_at\":1660181772746,\"updated_at\":1660181772746,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"8eda01f0-5482-480b-bf8f-b4bceaf7f355\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"37e23699-d1b6-4d18-9c69-d93afadc219c\",\"created_at\":1660186209340,\"updated_at\":1660186209340,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"37e23699-d1b6-4d18-9c69-d93afadc219c\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"776de905-1da5-467b-a14f-6071c88af547\",\"created_at\":1660188945808,\"updated_at\":1660188945808,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"776de905-1da5-467b-a14f-6071c88af547\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"5d931ec0-04e3-47ce-8e84-2a6170d716c5\",\"created_at\":1660191508737,\"updated_at\":1660191508737,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"5d931ec0-04e3-47ce-8e84-2a6170d716c5\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"4460334c-f372-4afb-9d38-573ad7360201\",\"created_at\":1660203345808,\"updated_at\":1660203345808,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"4460334c-f372-4afb-9d38-573ad7360201\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"dbdd8be1-8a7a-472a-9c4f-7af16145108c\",\"created_at\":1660232145819,\"updated_at\":1660232145819,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"dbdd8be1-8a7a-472a-9c4f-7af16145108c\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"b5a99625-1c37-42c5-8668-0f9d2a233fb8\",\"created_at\":1660278222639,\"updated_at\":1660278222639,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"b5a99625-1c37-42c5-8668-0f9d2a233fb8\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"8688b5f8-9a0b-4d57-9fb5-0240e4807d96\",\"created_at\":1660304145826,\"updated_at\":1660304145826,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"8688b5f8-9a0b-4d57-9fb5-0240e4807d96\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"76b362e8-ac5d-4e63-b86a-70af4d9cfa0a\",\"created_at\":1660304146352,\"updated_at\":1660304146352,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"76b362e8-ac5d-4e63-b86a-70af4d9cfa0a\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"d311c74c-69e6-4da0-a4ed-381ce2d60221\",\"created_at\":1660318545822,\"updated_at\":1660318545822,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"d311c74c-69e6-4da0-a4ed-381ce2d60221\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"56a26a03-ac3e-43e6-94b9-f1bb3d049aec\",\"created_at\":1660318547019,\"updated_at\":1660318547019,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"56a26a03-ac3e-43e6-94b9-f1bb3d049aec\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"0ed6d540-5932-48d5-815c-ce67eae4fd71\",\"created_at\":1660332946367,\"updated_at\":1660332946367,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"0ed6d540-5932-48d5-815c-ce67eae4fd71\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"6a1d67fb-a2ef-443d-b681-873570c695f3\",\"created_at\":1660332946389,\"updated_at\":1660332946389,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"6a1d67fb-a2ef-443d-b681-873570c695f3\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"35bef5c5-c499-43a2-8f36-7d9fbe1dd700\",\"created_at\":1660332946058,\"updated_at\":1660332946058,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"35bef5c5-c499-43a2-8f36-7d9fbe1dd700\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"0e5f7a49-3eb5-4dd3-9bac-295fd36a9599\",\"created_at\":1660347345811,\"updated_at\":1660347345811,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"0e5f7a49-3eb5-4dd3-9bac-295fd36a9599\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"4e343e76-040e-4683-8946-6a2c569c0187\",\"created_at\":1660347346372,\"updated_at\":1660347346372,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"4e343e76-040e-4683-8946-6a2c569c0187\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"4542e564-dda0-45f4-86b8-dad922aefa2f\",\"created_at\":1660361745855,\"updated_at\":1660361745855,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"4542e564-dda0-45f4-86b8-dad922aefa2f\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"06888f1f-6a75-4889-a7e9-f91b05fa7d03\",\"created_at\":1660361746047,\"updated_at\":1660361746047,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"06888f1f-6a75-4889-a7e9-f91b05fa7d03\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"84e61a2e-9867-4737-918d-2de3ab96ece9\",\"created_at\":1660361746055,\"updated_at\":1660361746055,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"84e61a2e-9867-4737-918d-2de3ab96ece9\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"1500dfa3-171f-4421-8dd2-c7befd30eb61\",\"created_at\":1660376145825,\"updated_at\":1660376145825,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"1500dfa3-171f-4421-8dd2-c7befd30eb61\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"a38ac531-15f8-42fa-b74d-c92deb9f7f02\",\"created_at\":1660390546043,\"updated_at\":1660390546043,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"a38ac531-15f8-42fa-b74d-c92deb9f7f02\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"7e35995b-1e5f-4425-9fc8-cda43ef15528\",\"created_at\":1660390546770,\"updated_at\":1660390546770,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"7e35995b-1e5f-4425-9fc8-cda43ef15528\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"3a5fa009-668d-497c-b44a-bdb41a1dce38\",\"created_at\":1660404945869,\"updated_at\":1660404945869,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"3a5fa009-668d-497c-b44a-bdb41a1dce38\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"e57d1f64-476d-4507-b492-32db4f11466d\",\"created_at\":1660404946099,\"updated_at\":1660404946099,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"e57d1f64-476d-4507-b492-32db4f11466d\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"d94d23c5-d26d-4739-8a73-7c8ebeb344a1\",\"created_at\":1660404948230,\"updated_at\":1660404948230,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"d94d23c5-d26d-4739-8a73-7c8ebeb344a1\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"c03034ec-f36f-46f5-8c05-b80bb1eab689\",\"created_at\":1660433745832,\"updated_at\":1660433745832,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"c03034ec-f36f-46f5-8c05-b80bb1eab689\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"ac55c580-0330-4415-9c0e-7f7c5e7de7aa\",\"created_at\":1660433746065,\"updated_at\":1660433746065,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"ac55c580-0330-4415-9c0e-7f7c5e7de7aa\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"55247966-a2bb-4b22-ab6b-cf4a4e1363fb\",\"created_at\":1660448145817,\"updated_at\":1660448145817,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"55247966-a2bb-4b22-ab6b-cf4a4e1363fb\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"974a5d92-baa5-4b0c-b8c6-7678e70b4eb7\",\"created_at\":1660448146107,\"updated_at\":1660448146107,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"974a5d92-baa5-4b0c-b8c6-7678e70b4eb7\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"f41e1a4e-9fab-490e-8d8e-9abfdca0d845\",\"created_at\":1660448148076,\"updated_at\":1660448148076,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"f41e1a4e-9fab-490e-8d8e-9abfdca0d845\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"6557e133-e85f-4d78-ace0-a44842028c21\",\"created_at\":1660462546356,\"updated_at\":1660462546356,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"6557e133-e85f-4d78-ace0-a44842028c21\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"233a1ed3-b6e2-4dd1-9a68-de4acc7dcaf9\",\"created_at\":1660462546048,\"updated_at\":1660462546048,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"233a1ed3-b6e2-4dd1-9a68-de4acc7dcaf9\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"8fd43c29-b5e8-4c98-a97a-74c0c6b1b5d0\",\"created_at\":1660476945855,\"updated_at\":1660476945855,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"8fd43c29-b5e8-4c98-a97a-74c0c6b1b5d0\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"30fa03e4-8750-43d6-b62a-7c03562302d1\",\"created_at\":1660476946389,\"updated_at\":1660476946389,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"30fa03e4-8750-43d6-b62a-7c03562302d1\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"c2deb2f2-6625-4ac9-925f-f11a6925b0b3\",\"created_at\":1660491346055,\"updated_at\":1660491346055,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"c2deb2f2-6625-4ac9-925f-f11a6925b0b3\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"f8dbcbf2-17f2-4023-b8a5-daa82d84d767\",\"created_at\":1660505745835,\"updated_at\":1660505745835,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"f8dbcbf2-17f2-4023-b8a5-daa82d84d767\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"ae1c27aa-b401-41e0-b4ca-d705ed4804c0\",\"created_at\":1660520145807,\"updated_at\":1660520145807,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"ae1c27aa-b401-41e0-b4ca-d705ed4804c0\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"f6f4f7eb-b439-449c-9dc3-83e0dcae589e\",\"created_at\":1660534546373,\"updated_at\":1660534546373,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"f6f4f7eb-b439-449c-9dc3-83e0dcae589e\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"7aeea425-767d-4800-becb-9cb9247badc2\",\"created_at\":1660534546066,\"updated_at\":1660534546066,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"7aeea425-767d-4800-becb-9cb9247badc2\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"552ee6e6-521d-44e0-9cf2-4b278f872aab\",\"created_at\":1660534548129,\"updated_at\":1660534548129,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"552ee6e6-521d-44e0-9cf2-4b278f872aab\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"35128a7f-390f-4e73-997c-b9af0615148b\",\"created_at\":1660538388266,\"updated_at\":1660538388266,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"35128a7f-390f-4e73-997c-b9af0615148b\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"aac10bed-5a78-4d69-80d3-c0adac3af1a7\",\"created_at\":1660563345819,\"updated_at\":1660563345819,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"aac10bed-5a78-4d69-80d3-c0adac3af1a7\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"6a8b8d79-1e91-417a-977b-e7785c23de85\",\"created_at\":1660563345824,\"updated_at\":1660563345824,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"6a8b8d79-1e91-417a-977b-e7785c23de85\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"3bfd1064-bcec-4bfb-85e2-307e10ddc708\",\"created_at\":1660563347131,\"updated_at\":1660563347131,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"3bfd1064-bcec-4bfb-85e2-307e10ddc708\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"fbed08d4-bab7-44a0-aa6c-7034714d1cff\",\"created_at\":1660635345818,\"updated_at\":1660635345818,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"fbed08d4-bab7-44a0-aa6c-7034714d1cff\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"3ded5236-68e2-4435-a289-e2ef770b5d8c\",\"created_at\":1660635346603,\"updated_at\":1660635346603,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"3ded5236-68e2-4435-a289-e2ef770b5d8c\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"0c45c859-f384-406c-8ce9-ddbfe1ebc26f\",\"created_at\":1660649746565,\"updated_at\":1660649746565,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"0c45c859-f384-406c-8ce9-ddbfe1ebc26f\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"45f97407-e946-422c-b399-87a19eaa1ed6\",\"created_at\":1665630244022,\"updated_at\":1665630244022,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"45f97407-e946-422c-b399-87a19eaa1ed6\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"b2a3067c-df23-4985-8fdd-c1c064a1e2ae\",\"created_at\":1666380880808,\"updated_at\":1666380880808,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"b2a3067c-df23-4985-8fdd-c1c064a1e2ae\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"e56a6eb2-c022-493d-a500-8510665c3b66\",\"created_at\":1666610744214,\"updated_at\":1666610744214,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"e56a6eb2-c022-493d-a500-8510665c3b66\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"c9939c78-49d2-4630-8195-da6c764a146a\",\"created_at\":1666913857015,\"updated_at\":1666913857015,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"c9939c78-49d2-4630-8195-da6c764a146a\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"cd42fe18-30dc-4040-82c5-748508d02c7b\",\"created_at\":1667101056843,\"updated_at\":1667101056843,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"cd42fe18-30dc-4040-82c5-748508d02c7b\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"de2e12a7-67c5-4972-b088-2a97083ece0e\",\"created_at\":1667302066717,\"updated_at\":1667302066717,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"de2e12a7-67c5-4972-b088-2a97083ece0e\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"5f66d498-606f-439b-b29c-2eb17f2097c0\",\"created_at\":1667403456820,\"updated_at\":1667403456820,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"5f66d498-606f-439b-b29c-2eb17f2097c0\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"e5484120-61c4-4e3e-be88-6e7dde381231\",\"created_at\":1667616654369,\"updated_at\":1667616654369,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"browser\"},\"id\":\"e5484120-61c4-4e3e-be88-6e7dde381231\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"0a234537-933b-4a63-8587-212f18586de3\",\"created_at\":1668166480808,\"updated_at\":1668166480808,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"0a234537-933b-4a63-8587-212f18586de3\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"a2417a2c-6dfe-448f-91dd-1a37df73321e\",\"created_at\":1668425300958,\"updated_at\":1668425300958,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"a2417a2c-6dfe-448f-91dd-1a37df73321e\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"a3a43618-db54-423c-b9a0-94ef9cc33717\",\"created_at\":1668483456726,\"updated_at\":1668483456726,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"a3a43618-db54-423c-b9a0-94ef9cc33717\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1668700778\",\"application_id\":\"60ecb641-bc3c-41be-8ec0-9c3141898731\",\"created_at\":1668700779357,\"updated_at\":1668700779357,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"60ecb641-bc3c-41be-8ec0-9c3141898731\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1668700787\",\"application_id\":\"36eeade4-7fcf-489f-88c4-cf2ace24ab8a\",\"created_at\":1668700788821,\"updated_at\":1668700788821,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"36eeade4-7fcf-489f-88c4-cf2ace24ab8a\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1668701336\",\"application_id\":\"c83f6723-7c9a-41fe-a865-0e18e0844610\",\"created_at\":1668701337413,\"updated_at\":1668701337413,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"c83f6723-7c9a-41fe-a865-0e18e0844610\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1668701539\",\"application_id\":\"6d258d2e-b9ed-48ae-9c86-c76de610bbc7\",\"created_at\":1668701539911,\"updated_at\":1668701539911,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"6d258d2e-b9ed-48ae-9c86-c76de610bbc7\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"9c5adb19-a88d-4b1f-93d1-0761f82389b0\",\"created_at\":1669004657261,\"updated_at\":1669004657261,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"9c5adb19-a88d-4b1f-93d1-0761f82389b0\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"4e5f8a74-ade7-499f-a7d9-116484b77e14\",\"created_at\":1669599877410,\"updated_at\":1669599877410,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"browser\"},\"id\":\"4e5f8a74-ade7-499f-a7d9-116484b77e14\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"fe78a807-6d38-494f-99bd-f67ae2e8fcf7\",\"created_at\":1669678480844,\"updated_at\":1669678480844,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"fe78a807-6d38-494f-99bd-f67ae2e8fcf7\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"c2b1ba9c-d171-4180-acf8-a9db205ae711\",\"created_at\":1669695490299,\"updated_at\":1669695490299,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"c2b1ba9c-d171-4180-acf8-a9db205ae711\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"351e0c29-8b82-4185-886b-e8d280e9b46e\",\"created_at\":1669721109042,\"updated_at\":1669721109042,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"351e0c29-8b82-4185-886b-e8d280e9b46e\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"5b963005-7c26-4353-a4ea-a6182eb9d43f\",\"created_at\":1669782312311,\"updated_at\":1669782312311,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"5b963005-7c26-4353-a4ea-a6182eb9d43f\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"687054b5-c183-4d4d-8328-d6dad5ed71dc\",\"created_at\":1669969512318,\"updated_at\":1669969512318,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"687054b5-c183-4d4d-8328-d6dad5ed71dc\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"27f6e211-b1b3-4644-9e5a-25e90ed7ec0e\",\"created_at\":1670203989821,\"updated_at\":1670203989821,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"browser\"},\"id\":\"27f6e211-b1b3-4644-9e5a-25e90ed7ec0e\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"b45fccd9-198c-43d8-8a2b-8e07798d509b\",\"created_at\":1670412118211,\"updated_at\":1670412118211,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"b45fccd9-198c-43d8-8a2b-8e07798d509b\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670445029\",\"application_id\":\"8540b2fd-1c47-4467-84dd-2bf9bb39b0ce\",\"created_at\":1670445029816,\"updated_at\":1670445029816,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"react-native\"},\"id\":\"8540b2fd-1c47-4467-84dd-2bf9bb39b0ce\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670445039\",\"application_id\":\"7fb4e58d-7350-4950-a858-a6b92901f4fa\",\"created_at\":1670445040384,\"updated_at\":1670445040384,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"react-native\"},\"id\":\"7fb4e58d-7350-4950-a858-a6b92901f4fa\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670445039\",\"application_id\":\"131fa2aa-2413-408b-b882-9e494d59967f\",\"created_at\":1670445040385,\"updated_at\":1670445040385,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"131fa2aa-2413-408b-b882-9e494d59967f\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670445043\",\"application_id\":\"82935ded-b4d1-4d26-be12-b6becac4ca86\",\"created_at\":1670445045355,\"updated_at\":1670445045355,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"82935ded-b4d1-4d26-be12-b6becac4ca86\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670602792-extra\",\"application_id\":\"aeb7a741-bb5a-44af-a4a0-6ac346205872\",\"created_at\":1670602793732,\"updated_at\":1670602793732,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"aeb7a741-bb5a-44af-a4a0-6ac346205872\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670602803\",\"application_id\":\"9a02cf5e-14b7-4d4f-a149-2a16dbee3337\",\"created_at\":1670602804481,\"updated_at\":1670602804481,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"9a02cf5e-14b7-4d4f-a149-2a16dbee3337\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670602809-extra\",\"application_id\":\"769c8588-260a-497a-b5ae-e1a3d788ab83\",\"created_at\":1670602810887,\"updated_at\":1670602810887,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"769c8588-260a-497a-b5ae-e1a3d788ab83\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670602934\",\"application_id\":\"f762b46c-1272-4cf0-b0e1-eea023314754\",\"created_at\":1670602935624,\"updated_at\":1670602935624,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"react-native\"},\"id\":\"f762b46c-1272-4cf0-b0e1-eea023314754\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670603187\",\"application_id\":\"d9159200-04ca-4e13-bda1-4fbcdc635969\",\"created_at\":1670603189503,\"updated_at\":1670603189503,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"react-native\"},\"id\":\"d9159200-04ca-4e13-bda1-4fbcdc635969\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670603433\",\"application_id\":\"de015e11-8504-4c2c-8f21-a99360ba4ac9\",\"created_at\":1670603434771,\"updated_at\":1670603434771,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"react-native\"},\"id\":\"de015e11-8504-4c2c-8f21-a99360ba4ac9\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670607050\",\"application_id\":\"22fa7324-e51e-403f-8c7d-84b0777f49e3\",\"created_at\":1670607055368,\"updated_at\":1670607055368,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"react-native\"},\"id\":\"22fa7324-e51e-403f-8c7d-84b0777f49e3\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670607065\",\"application_id\":\"38305abf-498a-4150-83d7-f33332bb4dce\",\"created_at\":1670607068519,\"updated_at\":1670607068519,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"38305abf-498a-4150-83d7-f33332bb4dce\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670607105\",\"application_id\":\"2b3de4ed-1cc1-46f1-be76-3e252883a8b3\",\"created_at\":1670607109879,\"updated_at\":1670607109879,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"react-native\"},\"id\":\"2b3de4ed-1cc1-46f1-be76-3e252883a8b3\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670607117\",\"application_id\":\"390bd691-b0a0-4f1f-abe6-4db5df7d7be8\",\"created_at\":1670607121937,\"updated_at\":1670607121937,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"react-native\"},\"id\":\"390bd691-b0a0-4f1f-abe6-4db5df7d7be8\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670607522\",\"application_id\":\"19006c58-3fd9-4cf7-8ebe-c8b27e55a5c8\",\"created_at\":1670607525852,\"updated_at\":1670607525852,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"19006c58-3fd9-4cf7-8ebe-c8b27e55a5c8\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"awoooooooo\",\"application_id\":\"88e86bcc-6d0a-4a3c-942f-55314a6f03bd\",\"created_at\":1670608490405,\"updated_at\":1670608490405,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"88e86bcc-6d0a-4a3c-942f-55314a6f03bd\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670609671\",\"application_id\":\"a57d8138-d9a3-4194-ad5b-5b80a6b78155\",\"created_at\":1670609672381,\"updated_at\":1670609672381,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"a57d8138-d9a3-4194-ad5b-5b80a6b78155\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670609677\",\"application_id\":\"2672eb48-c139-4d6c-b9d0-9c644385b805\",\"created_at\":1670609678393,\"updated_at\":1670609678393,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"2672eb48-c139-4d6c-b9d0-9c644385b805\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670609709\",\"application_id\":\"30521dbf-96f5-44ee-9c8a-240b8878ef6d\",\"created_at\":1670609710310,\"updated_at\":1670609710310,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"30521dbf-96f5-44ee-9c8a-240b8878ef6d\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670609716\",\"application_id\":\"964ea218-decf-4855-9170-9bdbb14d51c4\",\"created_at\":1670609717578,\"updated_at\":1670609717578,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"964ea218-decf-4855-9170-9bdbb14d51c4\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670609744\",\"application_id\":\"5efa4285-1445-4775-8846-843e0e69317b\",\"created_at\":1670609745210,\"updated_at\":1670609745210,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"5efa4285-1445-4775-8846-843e0e69317b\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670609749\",\"application_id\":\"e7c35c3d-8102-4474-bf85-025bd20ca9a5\",\"created_at\":1670609750986,\"updated_at\":1670609750986,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"e7c35c3d-8102-4474-bf85-025bd20ca9a5\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670609758\",\"application_id\":\"4553f649-1a41-42b8-805c-7dfb6ea60e4b\",\"created_at\":1670609759194,\"updated_at\":1670609759194,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"4553f649-1a41-42b8-805c-7dfb6ea60e4b\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670609804\",\"application_id\":\"d7f9859d-50ba-46a2-814c-7bba2a86d403\",\"created_at\":1670609806140,\"updated_at\":1670609806140,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"d7f9859d-50ba-46a2-814c-7bba2a86d403\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670609811\",\"application_id\":\"78c88e85-259e-40d0-8530-7cd339d134b2\",\"created_at\":1670609812441,\"updated_at\":1670609812441,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"78c88e85-259e-40d0-8530-7cd339d134b2\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670609823\",\"application_id\":\"d0eef680-82d6-45f0-a31f-3e590076d1ab\",\"created_at\":1670609824965,\"updated_at\":1670609824965,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"d0eef680-82d6-45f0-a31f-3e590076d1ab\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670609830\",\"application_id\":\"b1278fb6-bb84-4216-9cf8-313e28e9810b\",\"created_at\":1670609832241,\"updated_at\":1670609832241,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"b1278fb6-bb84-4216-9cf8-313e28e9810b\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1670609860\",\"application_id\":\"0d90235b-3e40-491f-9065-fd5a6359d370\",\"created_at\":1670609861673,\"updated_at\":1670609861673,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"0d90235b-3e40-491f-9065-fd5a6359d370\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1670609867\",\"application_id\":\"b51f123a-0c97-4c9f-a759-be8bc05c23ab\",\"created_at\":1670609868510,\"updated_at\":1670609868510,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"b51f123a-0c97-4c9f-a759-be8bc05c23ab\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1670609874\",\"application_id\":\"5d75faef-f412-4c54-b689-4423effeefe4\",\"created_at\":1670609875476,\"updated_at\":1670609875476,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"5d75faef-f412-4c54-b689-4423effeefe4\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1670609884\",\"application_id\":\"09d85130-dcf9-48ab-a89b-f160a07ecd11\",\"created_at\":1670609885608,\"updated_at\":1670609885608,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"09d85130-dcf9-48ab-a89b-f160a07ecd11\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1670610118\",\"application_id\":\"b6f659c5-447a-4c8d-bd0f-cc7742173285\",\"created_at\":1670610119766,\"updated_at\":1670610119766,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"b6f659c5-447a-4c8d-bd0f-cc7742173285\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1670610614\",\"application_id\":\"d24f8c06-dade-4665-a671-d0a9fdc4dd53\",\"created_at\":1670610615913,\"updated_at\":1670610615913,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"d24f8c06-dade-4665-a671-d0a9fdc4dd53\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1670610622\",\"application_id\":\"707f61dd-629b-4c13-81ad-c03f9a695f08\",\"created_at\":1670610623817,\"updated_at\":1670610623817,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"707f61dd-629b-4c13-81ad-c03f9a695f08\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1670610622\",\"application_id\":\"d2c2e3d2-1ab0-46b8-8f6b-1ffdf84bb0ef\",\"created_at\":1670610623821,\"updated_at\":1670610623821,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"d2c2e3d2-1ab0-46b8-8f6b-1ffdf84bb0ef\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1670610949\",\"application_id\":\"fde0a20b-706b-4976-9cd8-3ec75e551a9c\",\"created_at\":1670610950603,\"updated_at\":1670610950603,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"fde0a20b-706b-4976-9cd8-3ec75e551a9c\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670611545-extra\",\"application_id\":\"e603b3c7-995c-4a59-a29d-ef2a5c863f77\",\"created_at\":1670611547231,\"updated_at\":1670611547231,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"e603b3c7-995c-4a59-a29d-ef2a5c863f77\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670611559\",\"application_id\":\"a0e71761-53b4-4b3f-9d42-a309a7e3b0ef\",\"created_at\":1670611560452,\"updated_at\":1670611560452,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"a0e71761-53b4-4b3f-9d42-a309a7e3b0ef\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670611566-extra\",\"application_id\":\"02c58702-93c8-4631-912d-9984d6703096\",\"created_at\":1670611567553,\"updated_at\":1670611567553,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"02c58702-93c8-4631-912d-9984d6703096\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670611579\",\"application_id\":\"e0f947ec-dca5-4c5e-991f-109a85aaad0e\",\"created_at\":1670611580665,\"updated_at\":1670611580665,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"e0f947ec-dca5-4c5e-991f-109a85aaad0e\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1670611583\",\"application_id\":\"64ac0551-a575-48be-88d2-4fd1c1f59f59\",\"created_at\":1670611584375,\"updated_at\":1670611584375,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"64ac0551-a575-48be-88d2-4fd1c1f59f59\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670611588\",\"application_id\":\"205abf49-718b-42a3-a37a-0d7971878018\",\"created_at\":1670611588654,\"updated_at\":1670611588654,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"205abf49-718b-42a3-a37a-0d7971878018\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670611605\",\"application_id\":\"bb3f2d62-fd70-4fed-af4a-8be1bb7bff2f\",\"created_at\":1670611606492,\"updated_at\":1670611606492,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"bb3f2d62-fd70-4fed-af4a-8be1bb7bff2f\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670611613\",\"application_id\":\"0c9f1149-6c43-433d-9c42-dbb41fbffc2d\",\"created_at\":1670611614258,\"updated_at\":1670611614258,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"0c9f1149-6c43-433d-9c42-dbb41fbffc2d\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceErrorMultiple-local-1670612238\",\"application_id\":\"3522cd96-fb84-425f-b41f-2252f63acee6\",\"created_at\":1670612239352,\"updated_at\":1670612239352,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"3522cd96-fb84-425f-b41f-2252f63acee6\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670612343-extra\",\"application_id\":\"c89b704f-9aec-4039-bb51-19d6ac7db61e\",\"created_at\":1670612345071,\"updated_at\":1670612345071,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"c89b704f-9aec-4039-bb51-19d6ac7db61e\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1670612348\",\"application_id\":\"55ebc7ae-600a-4505-af4b-0bcfee1d59d7\",\"created_at\":1670612349456,\"updated_at\":1670612349456,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"55ebc7ae-600a-4505-af4b-0bcfee1d59d7\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670612356-extra\",\"application_id\":\"3e76ed6c-dece-472f-9708-ae000bfac127\",\"created_at\":1670612357850,\"updated_at\":1670612357850,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"3e76ed6c-dece-472f-9708-ae000bfac127\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670612369-extra\",\"application_id\":\"19118c95-6ee1-4f35-980f-61125a504592\",\"created_at\":1670612370292,\"updated_at\":1670612370292,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"19118c95-6ee1-4f35-980f-61125a504592\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670613559-extra\",\"application_id\":\"588bbf47-1602-4c2e-9fd8-1316d46672d9\",\"created_at\":1670613561001,\"updated_at\":1670613561001,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"588bbf47-1602-4c2e-9fd8-1316d46672d9\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670613566-extra\",\"application_id\":\"97697920-e99d-4ae4-acc1-647824d45c95\",\"created_at\":1670613567839,\"updated_at\":1670613567839,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"97697920-e99d-4ae4-acc1-647824d45c95\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670613574\",\"application_id\":\"bafb45fb-564b-4cb7-8af3-6b77e6d14ea6\",\"created_at\":1670613575607,\"updated_at\":1670613575607,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"bafb45fb-564b-4cb7-8af3-6b77e6d14ea6\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670613846\",\"application_id\":\"3db8c381-4955-4288-b6d8-8fa95ac58767\",\"created_at\":1670613848200,\"updated_at\":1670613848200,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"3db8c381-4955-4288-b6d8-8fa95ac58767\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670613853-extra\",\"application_id\":\"f919c288-1465-4006-a4ab-9ce898f64eca\",\"created_at\":1670613855203,\"updated_at\":1670613855203,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"f919c288-1465-4006-a4ab-9ce898f64eca\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1670613858\",\"application_id\":\"91365af4-2999-4971-898a-a46caa4e5d78\",\"created_at\":1670613858881,\"updated_at\":1670613858881,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"91365af4-2999-4971-898a-a46caa4e5d78\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670613864-extra\",\"application_id\":\"62a65a08-6eea-4623-aa69-12c45cf4337d\",\"created_at\":1670613865870,\"updated_at\":1670613865870,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"62a65a08-6eea-4623-aa69-12c45cf4337d\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670613877-extra\",\"application_id\":\"06607ac1-4125-4c38-9048-210db4f0cbe9\",\"created_at\":1670613878944,\"updated_at\":1670613878944,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"06607ac1-4125-4c38-9048-210db4f0cbe9\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670614195\",\"application_id\":\"8b5b1bbb-dd66-496f-830c-885aca3e03ed\",\"created_at\":1670614196795,\"updated_at\":1670614196795,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"8b5b1bbb-dd66-496f-830c-885aca3e03ed\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"%[1]s\",\"application_id\":\"dabf7733-4407-4946-acab-db2c1e1f18ab\",\"created_at\":1670614440577,\"updated_at\":1670614440577,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"dabf7733-4407-4946-acab-db2c1e1f18ab\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670615213\",\"application_id\":\"3dbed94c-e013-42db-9cb6-a8ed2c4283bd\",\"created_at\":1670615215123,\"updated_at\":1670615215123,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"3dbed94c-e013-42db-9cb6-a8ed2c4283bd\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670615267-extra\",\"application_id\":\"a02e6fdb-5666-4f9b-a93c-a592a0413ada\",\"created_at\":1670615269073,\"updated_at\":1670615269073,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"a02e6fdb-5666-4f9b-a93c-a592a0413ada\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670615451\",\"application_id\":\"81a883c0-ac9d-4186-9f4e-90c503d595d0\",\"created_at\":1670615452768,\"updated_at\":1670615452768,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"81a883c0-ac9d-4186-9f4e-90c503d595d0\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670615465-extra\",\"application_id\":\"77c50c2d-a750-4ae7-be36-9ca553943ef8\",\"created_at\":1670615466271,\"updated_at\":1670615466271,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"77c50c2d-a750-4ae7-be36-9ca553943ef8\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670615677\",\"application_id\":\"31979592-c0d6-459e-a45e-9e6709473ee9\",\"created_at\":1670615678809,\"updated_at\":1670615678809,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"31979592-c0d6-459e-a45e-9e6709473ee9\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1670615751\",\"application_id\":\"0cdda419-d6ec-4ff2-8c72-11a7d82d4abb\",\"created_at\":1670615752500,\"updated_at\":1670615752500,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"0cdda419-d6ec-4ff2-8c72-11a7d82d4abb\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"bb0df436-76d7-4dd9-8d7d-695a25caaa74\",\"created_at\":1670617512353,\"updated_at\":1670617512353,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"bb0df436-76d7-4dd9-8d7d-695a25caaa74\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"496cce41-08ee-4f06-8b7b-819f5aa2ac71\",\"created_at\":1670631912304,\"updated_at\":1670631912304,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"496cce41-08ee-4f06-8b7b-819f5aa2ac71\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"b2a3ac93-afda-4591-bc0b-3d69c662829c\",\"created_at\":1671416875915,\"updated_at\":1671416875915,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"browser\"},\"id\":\"b2a3ac93-afda-4591-bc0b-3d69c662829c\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"eb4ff1ec-437d-40c7-b67a-d0b9dc379955\",\"created_at\":1671589769303,\"updated_at\":1671589769303,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"browser\"},\"id\":\"eb4ff1ec-437d-40c7-b67a-d0b9dc379955\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"3b8cd819-44ff-4aeb-90da-80acd960ff86\",\"created_at\":1671754427764,\"updated_at\":1671754427764,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"3b8cd819-44ff-4aeb-90da-80acd960ff86\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"cc927feb-32d2-4742-8d96-1d40751aa9f7\",\"created_at\":1671812712268,\"updated_at\":1671812712268,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"cc927feb-32d2-4742-8d96-1d40751aa9f7\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"85972310-923c-4326-b5bc-2997850f32bb\",\"created_at\":1671956712261,\"updated_at\":1671956712261,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"85972310-923c-4326-b5bc-2997850f32bb\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"5111d787-b35f-4303-8f4b-f46a3e105c29\",\"created_at\":1672400256827,\"updated_at\":1672400256827,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"5111d787-b35f-4303-8f4b-f46a3e105c29\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"47f51217-fe32-4ee2-9b39-7ae1ce25e41b\",\"created_at\":1672443456831,\"updated_at\":1672443456831,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"47f51217-fe32-4ee2-9b39-7ae1ce25e41b\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"ed46807a-4df7-40b6-a96e-8403d35b773f\",\"created_at\":1672719631884,\"updated_at\":1672719631884,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"ed46807a-4df7-40b6-a96e-8403d35b773f\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"c8c476c8-7261-4ee4-991b-1348ecc47a1b\",\"created_at\":1672861101850,\"updated_at\":1672861101850,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"c8c476c8-7261-4ee4-991b-1348ecc47a1b\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"82045143-0678-4202-94d1-6e74a53ae3ea\",\"created_at\":1673105901792,\"updated_at\":1673105901792,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"82045143-0678-4202-94d1-6e74a53ae3ea\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"34f0754f-9064-49cd-9a68-31790987899f\",\"created_at\":1673422701792,\"updated_at\":1673422701792,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"34f0754f-9064-49cd-9a68-31790987899f\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"205d3bba-8bb3-4ba5-aed7-d9bc94692f6e\",\"created_at\":1673493707904,\"updated_at\":1673493707904,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"browser\"},\"id\":\"205d3bba-8bb3-4ba5-aed7-d9bc94692f6e\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"4878ef7b-856f-4bce-a467-8a7f7135ec96\",\"created_at\":1673595456871,\"updated_at\":1673595456871,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"4878ef7b-856f-4bce-a467-8a7f7135ec96\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"50cd8550-580f-491c-86ba-a7cca2ea46f7\",\"created_at\":1673614456864,\"updated_at\":1673614456864,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"50cd8550-580f-491c-86ba-a7cca2ea46f7\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"0062eeca-cc64-4c44-ac81-6e62d937fafb\",\"created_at\":1673614458817,\"updated_at\":1673614458817,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"0062eeca-cc64-4c44-ac81-6e62d937fafb\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"d783acfd-c7f1-4c1c-a13d-b6acd9d2e703\",\"created_at\":1673672056522,\"updated_at\":1673672056522,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"d783acfd-c7f1-4c1c-a13d-b6acd9d2e703\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"2674407d-5e8c-4c9e-868a-620a082d012e\",\"created_at\":1673750077617,\"updated_at\":1673750077617,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"browser\"},\"id\":\"2674407d-5e8c-4c9e-868a-620a082d012e\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"036160fd-39dd-4d0c-9d57-23ddecfb3d17\",\"created_at\":1674075241477,\"updated_at\":1674075241477,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"036160fd-39dd-4d0c-9d57-23ddecfb3d17\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"d479d2cc-a523-4829-8798-2462a10aacb4\",\"created_at\":1674694441981,\"updated_at\":1674694441981,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"d479d2cc-a523-4829-8798-2462a10aacb4\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"accb24e8-4e23-4b31-9e2a-60ddfca7f284\",\"created_at\":1674795256386,\"updated_at\":1674795256386,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"accb24e8-4e23-4b31-9e2a-60ddfca7f284\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"d2b2159a-2f92-470c-aed7-302ec4b8b945\",\"created_at\":1674824041985,\"updated_at\":1674824041985,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"d2b2159a-2f92-470c-aed7-302ec4b8b945\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"19efcd5a-f4aa-45c6-bd65-caae57ad7563\",\"created_at\":1674953641417,\"updated_at\":1674953641417,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"19efcd5a-f4aa-45c6-bd65-caae57ad7563\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"3f247c24-83ac-45dc-9715-1173f08b6f04\",\"created_at\":1674966085171,\"updated_at\":1674966085171,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"browser\"},\"id\":\"3f247c24-83ac-45dc-9715-1173f08b6f04\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"e12666b4-e084-42e9-ad05-09426ab35af4\",\"created_at\":1674996856687,\"updated_at\":1674996856687,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"e12666b4-e084-42e9-ad05-09426ab35af4\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"4cf55ecc-78ba-4375-8cc0-67895a8a73f7\",\"created_at\":1675988085389,\"updated_at\":1675988085389,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"ios\"},\"id\":\"4cf55ecc-78ba-4375-8cc0-67895a8a73f7\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"fb1429f8-3895-44c6-8bd7-bf2f52c73398\",\"created_at\":1677856591758,\"updated_at\":1677856591758,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"fb1429f8-3895-44c6-8bd7-bf2f52c73398\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"my_new_rum_application\",\"application_id\":\"7fc3122b-482f-4825-95d5-43727f3ec11b\",\"created_at\":1677856591253,\"updated_at\":1677856591253,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"ios\"},\"id\":\"7fc3122b-482f-4825-95d5-43727f3ec11b\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"1b706662-2c00-4baf-bb28-1e5d2cd324bc\",\"created_at\":1677856593124,\"updated_at\":1677856593124,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"1b706662-2c00-4baf-bb28-1e5d2cd324bc\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"481162b5-40ad-47bd-97a3-5488b899cb97\",\"created_at\":1677856595017,\"updated_at\":1677856595017,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"481162b5-40ad-47bd-97a3-5488b899cb97\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"33c64d13-9d4d-4180-8770-310fcc4cc9af\",\"created_at\":1677856595458,\"updated_at\":1677856595458,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"33c64d13-9d4d-4180-8770-310fcc4cc9af\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"c135b68e-acc1-4fe9-bf41-a688fad3181a\",\"created_at\":1680927645972,\"updated_at\":1680927645972,\"org_id\":321813,\"created_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"is_active\":false,\"updated_by_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"browser\"},\"id\":\"c135b68e-acc1-4fe9-bf41-a688fad3181a\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1681316791\",\"application_id\":\"6c806e62-8ba9-4f58-a29b-d4b1fa26dc6c\",\"created_at\":1681316792320,\"updated_at\":1681316792320,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"6c806e62-8ba9-4f58-a29b-d4b1fa26dc6c\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceIDFilter-local-1681316791\",\"application_id\":\"7f8dff50-1ae2-49d1-b4b5-1e64f4cc7ad3\",\"created_at\":1681316792589,\"updated_at\":1681316792589,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"android\"},\"id\":\"7f8dff50-1ae2-49d1-b4b5-1e64f4cc7ad3\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1681316792\",\"application_id\":\"4b79a94d-3ab1-4b4a-981d-ae6d4b8b9052\",\"created_at\":1681316793013,\"updated_at\":1681316793013,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"4b79a94d-3ab1-4b4a-981d-ae6d4b8b9052\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"tf-TestAccDatadogRUMApplicationDatasourceNameFilter-local-1681316792-extra\",\"application_id\":\"00c37067-8059-453c-9672-b0ffb37f0d2e\",\"created_at\":1681316793012,\"updated_at\":1681316793012,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"android\"},\"id\":\"00c37067-8059-453c-9672-b0ffb37f0d2e\"},{\"type\":\"rum_application\",\"attributes\":{\"name\":\"test_name_create\",\"application_id\":\"e3f183bb-e9ca-436a-959b-f0c14d87964e\",\"created_at\":1682521614038,\"updated_at\":1682521614038,\"org_id\":321813,\"created_by_handle\":\"frog@datadoghq.com\",\"is_active\":false,\"updated_by_handle\":\"frog@datadoghq.com\",\"type\":\"browser\"},\"id\":\"e3f183bb-e9ca-436a-959b-f0c14d87964e\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 26 Apr 2023 15:06:53 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/rum/applications/e3f183bb-e9ca-436a-959b-f0c14d87964e" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 26 Apr 2023 15:06:53 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/rum/Search-RUM-events-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v2/rum/Search-RUM-events-returns-OK-response-with-pagination.json index 21576bd77..a5111d003 100644 --- a/tests/scenarios/cassettes/v2/rum/Search-RUM-events-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v2/rum/Search-RUM-events-returns-OK-response-with-pagination.json @@ -1 +1,73 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"filter\":{\"from\":\"now-15m\",\"query\":\"@type:session AND @session.type:user\",\"to\":\"now\"},\"options\":{\"time_offset\":0,\"timezone\":\"GMT\"},\"page\":{\"limit\":2},\"sort\":\"timestamp\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/rum/events/search"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFkeXBJYXB1d21Sd0FBQUFCeWMxOWlNVGcxTW1Fd1l5MDROV0V5TFRRNFlqWXRZak0wTnkxbVpUSXhN\"}},\"data\":[{\"attributes\":{\"attributes\":{\"resource\":{\"first_byte\":{\"duration\":210600000,\"start\":1500000},\"url\":\"https://example.com/something\",\"status_code\":200,\"provider\":{\"domain\":\"datadoghq.com\",\"type\":\"first party\",\"name\":\"unknown\"},\"id\":\"bd12c722-d1fd-4af6-888a-fdd255eff318\",\"download\":{\"duration\":300000,\"start\":212100000},\"url_host\":\"example.com\",\"url_scheme\":\"https\",\"duration\":212400000,\"url_path_group\":\"/something\",\"url_path\":\"/something\",\"type\":\"xhr\",\"method\":\"POST\",\"size\":4107},\"service\":\"web-ui\",\"os\":{\"version\":\"10.15.7\",\"name\":\"Mac OS X\",\"version_major\":\"10\"},\"_dd\":{\"trace_id\":\"4461593448038214218\",\"format_version\":2,\"span_id\":\"2615287548010540048\"},\"application\":{\"id\":\"ac8218cf-498b-4d33-bd44-151095959547\"},\"session\":{\"ip\":\"52.17.186.3\",\"has_replay\":true,\"plan\":\"replay\",\"useragent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36\",\"type\":\"user\",\"id\":\"0a64704e-ab4a-44e6-971f-12598c0c6964\"},\"usr\":{\"is_datadog_employee\":false,\"email\":\"alice.doe@example.com\",\"org_id\":94691,\"name\":\"Alice Doe\",\"id\":\"1586212\"},\"context\":{\"browser_storage_api\":{\"usage\":0,\"quota\":299977904946},\"navbar_display_type\":\"side-small\",\"app_type\":\"python-static-spa\",\"org_id\":94691,\"screen\":{\"height\":1080.0,\"width\":1920.0,\"window_height\":946.0,\"window_width\":1920.0,\"pixel_ratio\":1.0},\"browser_test\":false,\"datadog_version\":\"35.7643717\",\"theme\":\"light\",\"usr\":{\"handle\":\"alice.doe@example.com\",\"id\":\"1586212\"},\"device\":{\"cookie_id\":\"id\"},\"page_load_status\":\"loaded_once\",\"dashboard\":{\"reflowType\":\"fixed\",\"dashboardSize\":{\"right\":1920,\"bottom\":103.5,\"top\":87.5,\"height\":16.0,\"width\":1854,\"left\":50.0},\"isHighDensityLayout\":false,\"title\":\"Eco Driving / Driver Efficiency\",\"isHighDensityEnabled\":false,\"dashType\":\"custom_timeboard\",\"isSPA\":true,\"layoutType\":\"ordered\",\"isPublicDashboard\":false,\"widgetCount\":83.0,\"isTvMode\":false,\"id\":\"3ik-gwn-p5b\"}},\"type\":\"resource\",\"device\":{\"model\":\"Mac\",\"type\":\"Desktop\",\"name\":\"Mac\",\"brand\":\"Apple\"},\"browser\":{\"version\":\"99.0.4844.84\",\"name\":\"Chrome\",\"version_major\":\"99\"},\"geo\":{\"city\":\"Dublin\",\"country_iso_code\":\"IE\",\"country\":\"Ireland\",\"continent_code\":\"EU\",\"country_subdivision\":\"Leinster\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[0.1234,1.234],\"continent\":\"Europe\"},\"view\":{\"url_path\":\"/dashboard/xxx\",\"name\":\"/dashboard/:screenId(/:screenName)\",\"url\":\"https://app.datadoghq.com/dashboad/xxx?fullscreen_end_ts=1649692509728&fullscreen_paused=false&fullscreen_section=overview&fullscreen_start_ts=1649087709728&fullscreen_widget=743246&from_ts=1649153072626&to_ts=1649757872626&live=true\",\"referrer\":\"\",\"url_host\":\"app.datadoghq.com\",\"url_scheme\":\"https\",\"url_path_group\":\"/dashboard/?\",\"url_query\":{\"fullscreen_widget\":\"743246\",\"to_ts\":\"1649757872626\",\"fullscreen_section\":\"overview\",\"fullscreen_end_ts\":\"1649692509728\",\"fullscreen_start_ts\":\"1649087709728\",\"from_ts\":\"1649153072626\",\"live\":\"true\",\"fullscreen_paused\":\"false\"},\"id\":\"b1c5b7e1-42a6-4382-a8e2-a101db88a7c6\"}},\"tags\":[\"sdk_version:4.7.1_d78dfe50c99519039ccc0b5bd0ca4b68b01003b1\",\"datacenter:main.env\",\"source:browser\",\"env:prod\",\"version:35.7643717\",\"env:prod\",\"sdk_version:4.7.1_d78dfe50c99519039ccc0b5bd0ca4b68b01003b1\",\"datacenter:main.env\",\"source:browser\",\"service:web-ui\",\"version:35.7643717\"],\"service\":\"web-ui\",\"timestamp\":\"2022-04-12T10:04:37.029Z\"},\"type\":\"rum\",\"id\":\"AQAAAYAdO3MlOKUnZwAAAABBWUFkTzNTQUFBRHRjcnpYcC1kNUhnQUU\"},{\"attributes\":{\"attributes\":{\"resource\":{\"url\":\"https://static.datadoghq.com/static/c/single-page-app_LogsFavorites.493d30ca539726b7fc61.min.js\",\"url_scheme\":\"https\",\"url_host\":\"static.datadoghq.com\",\"provider\":{\"domain\":\"datadoghq.com\",\"type\":\"unknown\",\"name\":\"unknown\"},\"duration\":12600000,\"url_path_group\":\"/static/c/?\",\"url_path\":\"/static/c/single-page-app_LogsFavorites.493d30ca539726b7fc61.min.js\",\"type\":\"js\",\"id\":\"80939f26-8972-4d49-9108-f37fe0a732af\"},\"service\":\"web-ui\",\"os\":{\"version\":\"10.15.7\",\"name\":\"Mac OS X\",\"version_major\":\"10\"},\"_dd\":{\"format_version\":2},\"application\":{\"id\":\"ac8218cf-498b-4d33-bd44-151095959547\"},\"session\":{\"ip\":\"18.171.9.38\",\"plan\":\"replay\",\"type\":\"user\",\"id\":\"c842a0cc-0717-41ed-9319-53806b57eefc\",\"useragent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36\"},\"usr\":{\"is_datadog_employee\":false,\"email\":\"john.doe@example.com\",\"org_id\":1000000111,\"name\":\"john.doe@example.com\",\"id\":\"1000344937\"},\"context\":{\"browser_storage_api\":{\"usage\":0,\"quota\":299977904946},\"navbar_display_type\":\"side\",\"app_type\":\"python-static-spa\",\"org_id\":1000000111,\"screen\":{\"height\":960.0,\"width\":1536.0,\"window_height\":739.0,\"window_width\":1536.0,\"pixel_ratio\":2.0},\"browser_test\":false,\"datadog_version\":\"35.7643717\",\"theme\":\"light\",\"usr\":{\"handle\":\"john.doe@example.com\",\"id\":\"1000344937\"}},\"type\":\"resource\",\"device\":{\"model\":\"Mac\",\"type\":\"Desktop\",\"name\":\"Mac\",\"brand\":\"Apple\"},\"browser\":{\"version\":\"100.0.4896.75\",\"name\":\"Chrome\",\"version_major\":\"100\"},\"geo\":{\"city\":\"London\",\"country_iso_code\":\"GB\",\"country\":\"United Kingdom\",\"continent_code\":\"EU\",\"country_subdivision\":\"England\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[0.1234,1.234],\"continent\":\"Europe\"},\"view\":{\"name\":\"/monitors/:id/edit\",\"url\":\"https://example.datadoghq.eu/monitors/12345/edit\",\"referrer\":\"https://example.datadoghq.eu/monitors/12345?from_ts=1649720111217&to_ts=1649736027006&eval_ts=1649736027006\",\"url_host\":\"example.datadoghq.eu\",\"url_scheme\":\"https\",\"url_path_group\":\"/monitors/?/edit\",\"url_path\":\"/monitors/12345/edit\",\"id\":\"c29e0f27-30aa-4e13-b4b9-4eddc396684b\"}},\"tags\":[\"sdk_version:4.7.1\",\"datacenter:split.env\",\"source:browser\",\"env:prod\",\"version:35.7643717\",\"env:prod\",\"sdk_version:4.7.1\",\"datacenter:split.env\",\"source:browser\",\"version:35.7643717\",\"service:web-ui\"],\"service\":\"web-ui\",\"timestamp\":\"2022-04-12T10:04:36.895Z\"},\"type\":\"rum\",\"id\":\"AQAAAYAdO3KfpzfngAAAAABBWUFkTzNSV0FBQ29pNkphck1fdU1nQUM\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/rum/events?page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFkTzNLZnB6Zm5nQUFBQUFCQldVRmtUek5TVjBGQlEyOXBOa3BoY2sxZmRVMW5RVU0ifQ&page%5Blimit%5D=2\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 12 Apr 2022 12:55:55 GMT"}, {"request": {"body": {"string": "{\"filter\":{\"from\":\"now-15m\",\"query\":\"@type:session AND @session.type:user\",\"to\":\"now\"},\"options\":{\"time_offset\":0,\"timezone\":\"GMT\"},\"page\":{\"cursor\":\"eyJhZnRlciI6IkFRQUFBWUFkeXBJYXB1d21Sd0FBQUFCeWMxOWlNVGcxTW1Fd1l5MDROV0V5TFRRNFlqWXRZak0wTnkxbVpUSXhN\",\"limit\":2},\"sort\":\"timestamp\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/rum/events/search"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFkTzNLYXN2VDNLd0FBQUFCQldVRmtUek5UVFVGQlFrOXRiRkZaY3kwNGFVcDNRVWMifQ\"}},\"data\":[{\"attributes\":{\"attributes\":{\"resource\":{\"url\":\"https://static.datadoghq.com/static/c/single-page-app_NotebookFavorites.2f9e47e4ed9212539194.min.js\",\"url_scheme\":\"https\",\"url_host\":\"static.datadoghq.com\",\"provider\":{\"domain\":\"datadoghq.com\",\"type\":\"unknown\",\"name\":\"unknown\"},\"duration\":19000000,\"url_path_group\":\"/static/c/?\",\"url_path\":\"/static/c/single-page-app_NotebookFavorites.2f9e47e4ed9212539194.min.js\",\"type\":\"js\",\"id\":\"889b6e2e-ebfe-4a46-9207-4dd4ceb097a7\"},\"service\":\"web-ui\",\"os\":{\"version\":\"10.15.7\",\"name\":\"Mac OS X\",\"version_major\":\"10\"},\"_dd\":{\"format_version\":2},\"application\":{\"id\":\"ac8218cf-498b-4d33-bd44-151095959547\"},\"session\":{\"ip\":\"18.171.9.38\",\"plan\":\"replay\",\"type\":\"user\",\"id\":\"c842a0cc-0717-41ed-9319-53806b57eefc\",\"useragent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36\"},\"usr\":{\"is_datadog_employee\":false,\"email\":\"john.doe@example.com\",\"org_id\":1000000111,\"name\":\"john.doe@example.com\",\"id\":\"1000344937\"},\"context\":{\"browser_storage_api\":{\"usage\":0,\"quota\":299977904946},\"navbar_display_type\":\"side\",\"app_type\":\"python-static-spa\",\"org_id\":1000000111,\"screen\":{\"height\":960.0,\"width\":1536.0,\"window_height\":739.0,\"window_width\":1536.0,\"pixel_ratio\":2.0},\"browser_test\":false,\"datadog_version\":\"35.7643717\",\"theme\":\"light\",\"usr\":{\"handle\":\"john.doe@example.com\",\"id\":\"1000344937\"}},\"type\":\"resource\",\"device\":{\"model\":\"Mac\",\"type\":\"Desktop\",\"name\":\"Mac\",\"brand\":\"Apple\"},\"browser\":{\"version\":\"100.0.4896.75\",\"name\":\"Chrome\",\"version_major\":\"100\"},\"geo\":{\"city\":\"London\",\"country_iso_code\":\"GB\",\"country\":\"United Kingdom\",\"continent_code\":\"EU\",\"country_subdivision\":\"England\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[0.1234,1.234],\"continent\":\"Europe\"},\"view\":{\"name\":\"/monitors/:id/edit\",\"url\":\"https://example.datadoghq.eu/monitors/12345/edit\",\"referrer\":\"https://example.datadoghq.eu/monitors/12345?from_ts=1649720111217&to_ts=1649736027006&eval_ts=1649736027006\",\"url_host\":\"example.datadoghq.eu\",\"url_scheme\":\"https\",\"url_path_group\":\"/monitors/?/edit\",\"url_path\":\"/monitors/12345/edit\",\"id\":\"c29e0f27-30aa-4e13-b4b9-4eddc396684b\"}},\"tags\":[\"sdk_version:4.7.1\",\"datacenter:split.env\",\"source:browser\",\"env:prod\",\"version:35.7643717\",\"env:prod\",\"sdk_version:4.7.1\",\"datacenter:split.env\",\"source:browser\",\"version:35.7643717\",\"service:web-ui\"],\"service\":\"web-ui\",\"timestamp\":\"2022-04-12T10:04:36.894Z\"},\"type\":\"rum\",\"id\":\"AQAAAYAdO3KepzfnfwAAAABBWUFkTzNSV0FBQ29pNkphck1fdU1nQUI\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/rum/events?page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFkTzNLYXN2VDNLd0FBQUFCQldVRmtUek5UVFVGQlFrOXRiRkZaY3kwNGFVcDNRVWMifQ&page%5Blimit%5D=2\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 12 Apr 2022 12:55:55 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"filter\":{\"from\":\"now-15m\",\"query\":\"@type:session AND @session.type:user\",\"to\":\"now\"},\"options\":{\"time_offset\":0,\"timezone\":\"GMT\"},\"page\":{\"limit\":2},\"sort\":\"timestamp\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/rum/events/search" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFkeXBJYXB1d21Sd0FBQUFCeWMxOWlNVGcxTW1Fd1l5MDROV0V5TFRRNFlqWXRZak0wTnkxbVpUSXhN\"}},\"data\":[{\"attributes\":{\"attributes\":{\"resource\":{\"first_byte\":{\"duration\":210600000,\"start\":1500000},\"url\":\"https://example.com/something\",\"status_code\":200,\"provider\":{\"domain\":\"datadoghq.com\",\"type\":\"first party\",\"name\":\"unknown\"},\"id\":\"bd12c722-d1fd-4af6-888a-fdd255eff318\",\"download\":{\"duration\":300000,\"start\":212100000},\"url_host\":\"example.com\",\"url_scheme\":\"https\",\"duration\":212400000,\"url_path_group\":\"/something\",\"url_path\":\"/something\",\"type\":\"xhr\",\"method\":\"POST\",\"size\":4107},\"service\":\"web-ui\",\"os\":{\"version\":\"10.15.7\",\"name\":\"Mac OS X\",\"version_major\":\"10\"},\"_dd\":{\"trace_id\":\"4461593448038214218\",\"format_version\":2,\"span_id\":\"2615287548010540048\"},\"application\":{\"id\":\"ac8218cf-498b-4d33-bd44-151095959547\"},\"session\":{\"ip\":\"52.17.186.3\",\"has_replay\":true,\"plan\":\"replay\",\"useragent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36\",\"type\":\"user\",\"id\":\"0a64704e-ab4a-44e6-971f-12598c0c6964\"},\"usr\":{\"is_datadog_employee\":false,\"email\":\"alice.doe@example.com\",\"org_id\":94691,\"name\":\"Alice Doe\",\"id\":\"1586212\"},\"context\":{\"browser_storage_api\":{\"usage\":0,\"quota\":299977904946},\"navbar_display_type\":\"side-small\",\"app_type\":\"python-static-spa\",\"org_id\":94691,\"screen\":{\"height\":1080.0,\"width\":1920.0,\"window_height\":946.0,\"window_width\":1920.0,\"pixel_ratio\":1.0},\"browser_test\":false,\"datadog_version\":\"35.7643717\",\"theme\":\"light\",\"usr\":{\"handle\":\"alice.doe@example.com\",\"id\":\"1586212\"},\"device\":{\"cookie_id\":\"id\"},\"page_load_status\":\"loaded_once\",\"dashboard\":{\"reflowType\":\"fixed\",\"dashboardSize\":{\"right\":1920,\"bottom\":103.5,\"top\":87.5,\"height\":16.0,\"width\":1854,\"left\":50.0},\"isHighDensityLayout\":false,\"title\":\"Eco Driving / Driver Efficiency\",\"isHighDensityEnabled\":false,\"dashType\":\"custom_timeboard\",\"isSPA\":true,\"layoutType\":\"ordered\",\"isPublicDashboard\":false,\"widgetCount\":83.0,\"isTvMode\":false,\"id\":\"3ik-gwn-p5b\"}},\"type\":\"resource\",\"device\":{\"model\":\"Mac\",\"type\":\"Desktop\",\"name\":\"Mac\",\"brand\":\"Apple\"},\"browser\":{\"version\":\"99.0.4844.84\",\"name\":\"Chrome\",\"version_major\":\"99\"},\"geo\":{\"city\":\"Dublin\",\"country_iso_code\":\"IE\",\"country\":\"Ireland\",\"continent_code\":\"EU\",\"country_subdivision\":\"Leinster\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[0.1234,1.234],\"continent\":\"Europe\"},\"view\":{\"url_path\":\"/dashboard/xxx\",\"name\":\"/dashboard/:screenId(/:screenName)\",\"url\":\"https://app.datadoghq.com/dashboad/xxx?fullscreen_end_ts=1649692509728&fullscreen_paused=false&fullscreen_section=overview&fullscreen_start_ts=1649087709728&fullscreen_widget=743246&from_ts=1649153072626&to_ts=1649757872626&live=true\",\"referrer\":\"\",\"url_host\":\"app.datadoghq.com\",\"url_scheme\":\"https\",\"url_path_group\":\"/dashboard/?\",\"url_query\":{\"fullscreen_widget\":\"743246\",\"to_ts\":\"1649757872626\",\"fullscreen_section\":\"overview\",\"fullscreen_end_ts\":\"1649692509728\",\"fullscreen_start_ts\":\"1649087709728\",\"from_ts\":\"1649153072626\",\"live\":\"true\",\"fullscreen_paused\":\"false\"},\"id\":\"b1c5b7e1-42a6-4382-a8e2-a101db88a7c6\"}},\"tags\":[\"sdk_version:4.7.1_d78dfe50c99519039ccc0b5bd0ca4b68b01003b1\",\"datacenter:main.env\",\"source:browser\",\"env:prod\",\"version:35.7643717\",\"env:prod\",\"sdk_version:4.7.1_d78dfe50c99519039ccc0b5bd0ca4b68b01003b1\",\"datacenter:main.env\",\"source:browser\",\"service:web-ui\",\"version:35.7643717\"],\"service\":\"web-ui\",\"timestamp\":\"2022-04-12T10:04:37.029Z\"},\"type\":\"rum\",\"id\":\"AQAAAYAdO3MlOKUnZwAAAABBWUFkTzNTQUFBRHRjcnpYcC1kNUhnQUU\"},{\"attributes\":{\"attributes\":{\"resource\":{\"url\":\"https://static.datadoghq.com/static/c/single-page-app_LogsFavorites.493d30ca539726b7fc61.min.js\",\"url_scheme\":\"https\",\"url_host\":\"static.datadoghq.com\",\"provider\":{\"domain\":\"datadoghq.com\",\"type\":\"unknown\",\"name\":\"unknown\"},\"duration\":12600000,\"url_path_group\":\"/static/c/?\",\"url_path\":\"/static/c/single-page-app_LogsFavorites.493d30ca539726b7fc61.min.js\",\"type\":\"js\",\"id\":\"80939f26-8972-4d49-9108-f37fe0a732af\"},\"service\":\"web-ui\",\"os\":{\"version\":\"10.15.7\",\"name\":\"Mac OS X\",\"version_major\":\"10\"},\"_dd\":{\"format_version\":2},\"application\":{\"id\":\"ac8218cf-498b-4d33-bd44-151095959547\"},\"session\":{\"ip\":\"18.171.9.38\",\"plan\":\"replay\",\"type\":\"user\",\"id\":\"c842a0cc-0717-41ed-9319-53806b57eefc\",\"useragent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36\"},\"usr\":{\"is_datadog_employee\":false,\"email\":\"john.doe@example.com\",\"org_id\":1000000111,\"name\":\"john.doe@example.com\",\"id\":\"1000344937\"},\"context\":{\"browser_storage_api\":{\"usage\":0,\"quota\":299977904946},\"navbar_display_type\":\"side\",\"app_type\":\"python-static-spa\",\"org_id\":1000000111,\"screen\":{\"height\":960.0,\"width\":1536.0,\"window_height\":739.0,\"window_width\":1536.0,\"pixel_ratio\":2.0},\"browser_test\":false,\"datadog_version\":\"35.7643717\",\"theme\":\"light\",\"usr\":{\"handle\":\"john.doe@example.com\",\"id\":\"1000344937\"}},\"type\":\"resource\",\"device\":{\"model\":\"Mac\",\"type\":\"Desktop\",\"name\":\"Mac\",\"brand\":\"Apple\"},\"browser\":{\"version\":\"100.0.4896.75\",\"name\":\"Chrome\",\"version_major\":\"100\"},\"geo\":{\"city\":\"London\",\"country_iso_code\":\"GB\",\"country\":\"United Kingdom\",\"continent_code\":\"EU\",\"country_subdivision\":\"England\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[0.1234,1.234],\"continent\":\"Europe\"},\"view\":{\"name\":\"/monitors/:id/edit\",\"url\":\"https://example.datadoghq.eu/monitors/12345/edit\",\"referrer\":\"https://example.datadoghq.eu/monitors/12345?from_ts=1649720111217&to_ts=1649736027006&eval_ts=1649736027006\",\"url_host\":\"example.datadoghq.eu\",\"url_scheme\":\"https\",\"url_path_group\":\"/monitors/?/edit\",\"url_path\":\"/monitors/12345/edit\",\"id\":\"c29e0f27-30aa-4e13-b4b9-4eddc396684b\"}},\"tags\":[\"sdk_version:4.7.1\",\"datacenter:split.env\",\"source:browser\",\"env:prod\",\"version:35.7643717\",\"env:prod\",\"sdk_version:4.7.1\",\"datacenter:split.env\",\"source:browser\",\"version:35.7643717\",\"service:web-ui\"],\"service\":\"web-ui\",\"timestamp\":\"2022-04-12T10:04:36.895Z\"},\"type\":\"rum\",\"id\":\"AQAAAYAdO3KfpzfngAAAAABBWUFkTzNSV0FBQ29pNkphck1fdU1nQUM\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/rum/events?page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFkTzNLZnB6Zm5nQUFBQUFCQldVRmtUek5TVjBGQlEyOXBOa3BoY2sxZmRVMW5RVU0ifQ&page%5Blimit%5D=2\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 12 Apr 2022 12:55:55 GMT" + }, + { + "request": { + "body": { + "string": "{\"filter\":{\"from\":\"now-15m\",\"query\":\"@type:session AND @session.type:user\",\"to\":\"now\"},\"options\":{\"time_offset\":0,\"timezone\":\"GMT\"},\"page\":{\"cursor\":\"eyJhZnRlciI6IkFRQUFBWUFkeXBJYXB1d21Sd0FBQUFCeWMxOWlNVGcxTW1Fd1l5MDROV0V5TFRRNFlqWXRZak0wTnkxbVpUSXhN\",\"limit\":2},\"sort\":\"timestamp\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/rum/events/search" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFkTzNLYXN2VDNLd0FBQUFCQldVRmtUek5UVFVGQlFrOXRiRkZaY3kwNGFVcDNRVWMifQ\"}},\"data\":[{\"attributes\":{\"attributes\":{\"resource\":{\"url\":\"https://static.datadoghq.com/static/c/single-page-app_NotebookFavorites.2f9e47e4ed9212539194.min.js\",\"url_scheme\":\"https\",\"url_host\":\"static.datadoghq.com\",\"provider\":{\"domain\":\"datadoghq.com\",\"type\":\"unknown\",\"name\":\"unknown\"},\"duration\":19000000,\"url_path_group\":\"/static/c/?\",\"url_path\":\"/static/c/single-page-app_NotebookFavorites.2f9e47e4ed9212539194.min.js\",\"type\":\"js\",\"id\":\"889b6e2e-ebfe-4a46-9207-4dd4ceb097a7\"},\"service\":\"web-ui\",\"os\":{\"version\":\"10.15.7\",\"name\":\"Mac OS X\",\"version_major\":\"10\"},\"_dd\":{\"format_version\":2},\"application\":{\"id\":\"ac8218cf-498b-4d33-bd44-151095959547\"},\"session\":{\"ip\":\"18.171.9.38\",\"plan\":\"replay\",\"type\":\"user\",\"id\":\"c842a0cc-0717-41ed-9319-53806b57eefc\",\"useragent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36\"},\"usr\":{\"is_datadog_employee\":false,\"email\":\"john.doe@example.com\",\"org_id\":1000000111,\"name\":\"john.doe@example.com\",\"id\":\"1000344937\"},\"context\":{\"browser_storage_api\":{\"usage\":0,\"quota\":299977904946},\"navbar_display_type\":\"side\",\"app_type\":\"python-static-spa\",\"org_id\":1000000111,\"screen\":{\"height\":960.0,\"width\":1536.0,\"window_height\":739.0,\"window_width\":1536.0,\"pixel_ratio\":2.0},\"browser_test\":false,\"datadog_version\":\"35.7643717\",\"theme\":\"light\",\"usr\":{\"handle\":\"john.doe@example.com\",\"id\":\"1000344937\"}},\"type\":\"resource\",\"device\":{\"model\":\"Mac\",\"type\":\"Desktop\",\"name\":\"Mac\",\"brand\":\"Apple\"},\"browser\":{\"version\":\"100.0.4896.75\",\"name\":\"Chrome\",\"version_major\":\"100\"},\"geo\":{\"city\":\"London\",\"country_iso_code\":\"GB\",\"country\":\"United Kingdom\",\"continent_code\":\"EU\",\"country_subdivision\":\"England\",\"as\":{\"domain\":\"amazon.com\",\"type\":\"hosting\",\"name\":\"Amazon.com, Inc.\"},\"location\":[0.1234,1.234],\"continent\":\"Europe\"},\"view\":{\"name\":\"/monitors/:id/edit\",\"url\":\"https://example.datadoghq.eu/monitors/12345/edit\",\"referrer\":\"https://example.datadoghq.eu/monitors/12345?from_ts=1649720111217&to_ts=1649736027006&eval_ts=1649736027006\",\"url_host\":\"example.datadoghq.eu\",\"url_scheme\":\"https\",\"url_path_group\":\"/monitors/?/edit\",\"url_path\":\"/monitors/12345/edit\",\"id\":\"c29e0f27-30aa-4e13-b4b9-4eddc396684b\"}},\"tags\":[\"sdk_version:4.7.1\",\"datacenter:split.env\",\"source:browser\",\"env:prod\",\"version:35.7643717\",\"env:prod\",\"sdk_version:4.7.1\",\"datacenter:split.env\",\"source:browser\",\"version:35.7643717\",\"service:web-ui\"],\"service\":\"web-ui\",\"timestamp\":\"2022-04-12T10:04:36.894Z\"},\"type\":\"rum\",\"id\":\"AQAAAYAdO3KepzfnfwAAAABBWUFkTzNSV0FBQ29pNkphck1fdU1nQUI\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/rum/events?page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFkTzNLYXN2VDNLd0FBQUFCQldVRmtUek5UVFVGQlFrOXRiRkZaY3kwNGFVcDNRVWMifQ&page%5Blimit%5D=2\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 12 Apr 2022 12:55:55 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/rum/Search-RUM-events-returns-OK-response.json b/tests/scenarios/cassettes/v2/rum/Search-RUM-events-returns-OK-response.json index 726c6274a..1cb451b01 100644 --- a/tests/scenarios/cassettes/v2/rum/Search-RUM-events-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/rum/Search-RUM-events-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"filter\":{\"from\":\"now-15m\",\"query\":\"@type:session AND @session.type:user\",\"to\":\"now\"},\"options\":{\"time_offset\":0,\"timezone\":\"GMT\"},\"page\":{\"limit\":25},\"sort\":\"timestamp\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/rum/events/search"}, "response": {"body": {"string": "{\"data\":[]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 07 Mar 2022 15:46:56 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"filter\":{\"from\":\"now-15m\",\"query\":\"@type:session AND @session.type:user\",\"to\":\"now\"},\"options\":{\"time_offset\":0,\"timezone\":\"GMT\"},\"page\":{\"limit\":25},\"sort\":\"timestamp\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/rum/events/search" + }, + "response": { + "body": { + "string": "{\"data\":[]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 07 Mar 2022 15:46:56 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/rum/Update-a-RUM-application-returns-OK-response.json b/tests/scenarios/cassettes/v2/rum/Update-a-RUM-application-returns-OK-response.json index bd5579201..d4b7d9558 100644 --- a/tests/scenarios/cassettes/v2/rum/Update-a-RUM-application-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/rum/Update-a-RUM-application-returns-OK-response.json @@ -1 +1,97 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"test_name_create\",\"type\":\"browser\"},\"type\":\"rum_application_create\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/rum/applications"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"updated_by_handle\":\"frog@datadoghq.com\",\"application_id\":\"198f4147-44c5-4e15-bfc6-4e05b2a5405d\",\"name\":\"test_name_create\",\"created_by_handle\":\"frog@datadoghq.com\",\"created_at\":1670264362971,\"org_id\":321813,\"updated_at\":1670264362971,\"is_active\":false,\"hash\":\"pub8d34eedc19fcba1c90fd9da19541e888\",\"client_token\":\"pub8d34eedc19fcba1c90fd9da19541e888\",\"type\":\"browser\"},\"type\":\"rum_application\",\"id\":\"198f4147-44c5-4e15-bfc6-4e05b2a5405d\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 05 Dec 2022 18:19:22 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"updated_name_for_my_existing_rum_application\",\"type\":\"browser\"},\"id\":\"198f4147-44c5-4e15-bfc6-4e05b2a5405d\",\"type\":\"rum_application_update\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/rum/applications/198f4147-44c5-4e15-bfc6-4e05b2a5405d"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"updated_by_handle\":\"frog@datadoghq.com\",\"application_id\":\"198f4147-44c5-4e15-bfc6-4e05b2a5405d\",\"name\":\"updated_name_for_my_existing_rum_application\",\"created_by_handle\":\"frog@datadoghq.com\",\"created_at\":1670264362971,\"org_id\":321813,\"updated_at\":1670264364245,\"is_active\":false,\"hash\":\"pub8d34eedc19fcba1c90fd9da19541e888\",\"client_token\":\"pub8d34eedc19fcba1c90fd9da19541e888\",\"type\":\"browser\"},\"type\":\"rum_application\",\"id\":\"198f4147-44c5-4e15-bfc6-4e05b2a5405d\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 05 Dec 2022 18:19:22 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/rum/applications/198f4147-44c5-4e15-bfc6-4e05b2a5405d"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 05 Dec 2022 18:19:22 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"test_name_create\",\"type\":\"browser\"},\"type\":\"rum_application_create\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/rum/applications" + }, + "response": { + "body": { + "string": "{\"data\":{\"attributes\":{\"updated_by_handle\":\"frog@datadoghq.com\",\"application_id\":\"198f4147-44c5-4e15-bfc6-4e05b2a5405d\",\"name\":\"test_name_create\",\"created_by_handle\":\"frog@datadoghq.com\",\"created_at\":1670264362971,\"org_id\":321813,\"updated_at\":1670264362971,\"is_active\":false,\"hash\":\"pub8d34eedc19fcba1c90fd9da19541e888\",\"client_token\":\"pub8d34eedc19fcba1c90fd9da19541e888\",\"type\":\"browser\"},\"type\":\"rum_application\",\"id\":\"198f4147-44c5-4e15-bfc6-4e05b2a5405d\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 05 Dec 2022 18:19:22 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"updated_name_for_my_existing_rum_application\",\"type\":\"browser\"},\"id\":\"198f4147-44c5-4e15-bfc6-4e05b2a5405d\",\"type\":\"rum_application_update\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/rum/applications/198f4147-44c5-4e15-bfc6-4e05b2a5405d" + }, + "response": { + "body": { + "string": "{\"data\":{\"attributes\":{\"updated_by_handle\":\"frog@datadoghq.com\",\"application_id\":\"198f4147-44c5-4e15-bfc6-4e05b2a5405d\",\"name\":\"updated_name_for_my_existing_rum_application\",\"created_by_handle\":\"frog@datadoghq.com\",\"created_at\":1670264362971,\"org_id\":321813,\"updated_at\":1670264364245,\"is_active\":false,\"hash\":\"pub8d34eedc19fcba1c90fd9da19541e888\",\"client_token\":\"pub8d34eedc19fcba1c90fd9da19541e888\",\"type\":\"browser\"},\"type\":\"rum_application\",\"id\":\"198f4147-44c5-4e15-bfc6-4e05b2a5405d\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 05 Dec 2022 18:19:22 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/rum/applications/198f4147-44c5-4e15-bfc6-4e05b2a5405d" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 05 Dec 2022 18:19:22 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/rum/Update-a-RUM-application-returns-Unprocessable-Entity-response.json b/tests/scenarios/cassettes/v2/rum/Update-a-RUM-application-returns-Unprocessable-Entity-response.json index bcee094b7..d431f0a6d 100644 --- a/tests/scenarios/cassettes/v2/rum/Update-a-RUM-application-returns-Unprocessable-Entity-response.json +++ b/tests/scenarios/cassettes/v2/rum/Update-a-RUM-application-returns-Unprocessable-Entity-response.json @@ -1 +1,97 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"test_name_create\",\"type\":\"browser\"},\"type\":\"rum_application_create\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/rum/applications"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"updated_by_handle\":\"frog@datadoghq.com\",\"application_id\":\"fdf8b82d-d289-408c-9e57-561abf7cd7c4\",\"name\":\"test_name_create\",\"created_by_handle\":\"frog@datadoghq.com\",\"created_at\":1670264354633,\"org_id\":321813,\"updated_at\":1670264354633,\"is_active\":false,\"hash\":\"pub0e8c306f38224753217726072c10be16\",\"client_token\":\"pub0e8c306f38224753217726072c10be16\",\"type\":\"browser\"},\"type\":\"rum_application\",\"id\":\"fdf8b82d-d289-408c-9e57-561abf7cd7c4\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 05 Dec 2022 18:19:14 GMT"}, {"request": {"body": {"string": "{\"data\":{\"id\":\"this_id_will_not_match\",\"type\":\"rum_application_update\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/rum/applications/fdf8b82d-d289-408c-9e57-561abf7cd7c4"}, "response": {"body": {"string": "{\"errors\":[\"The id attribute in the request body does not match the id in the URL\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 422, "message": "Unprocessable Entity"}}, "recorded_at": "Mon, 05 Dec 2022 18:19:14 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/rum/applications/fdf8b82d-d289-408c-9e57-561abf7cd7c4"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 05 Dec 2022 18:19:14 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"test_name_create\",\"type\":\"browser\"},\"type\":\"rum_application_create\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/rum/applications" + }, + "response": { + "body": { + "string": "{\"data\":{\"attributes\":{\"updated_by_handle\":\"frog@datadoghq.com\",\"application_id\":\"fdf8b82d-d289-408c-9e57-561abf7cd7c4\",\"name\":\"test_name_create\",\"created_by_handle\":\"frog@datadoghq.com\",\"created_at\":1670264354633,\"org_id\":321813,\"updated_at\":1670264354633,\"is_active\":false,\"hash\":\"pub0e8c306f38224753217726072c10be16\",\"client_token\":\"pub0e8c306f38224753217726072c10be16\",\"type\":\"browser\"},\"type\":\"rum_application\",\"id\":\"fdf8b82d-d289-408c-9e57-561abf7cd7c4\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 05 Dec 2022 18:19:14 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"id\":\"this_id_will_not_match\",\"type\":\"rum_application_update\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/rum/applications/fdf8b82d-d289-408c-9e57-561abf7cd7c4" + }, + "response": { + "body": { + "string": "{\"errors\":[\"The id attribute in the request body does not match the id in the URL\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 422, + "message": "Unprocessable Entity" + } + }, + "recorded_at": "Mon, 05 Dec 2022 18:19:14 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/rum/applications/fdf8b82d-d289-408c-9e57-561abf7cd7c4" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 05 Dec 2022 18:19:14 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Change-the-related-incidents-of-a-security-signal-returns-OK-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Change-the-related-incidents-of-a-security-signal-returns-OK-response.json index 302c91cfc..742312a6f 100644 --- a/tests/scenarios/cassettes/v2/security_monitoring/Change-the-related-incidents-of-a-security-signal-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/security_monitoring/Change-the-related-incidents-of-a-security-signal-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"incident_ids\":[2066]}}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/signals/AQAAAYG1bl5K4HuUewAAAABBWUcxYmw1S0FBQmt2RmhRN0V4ZUVnQUE/incidents"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"incident_ids\":[2066],\"state_update_user\":{\"handle\":\"bernard.le+synthetics@datadoghq.com\",\"uuid\":\"2514d32c-0719-11eb-b643-63faf7d5e1bd\",\"name\":null,\"id\":2115689,\"icon\":\"https://secure.gravatar.com/avatar/ae546a62b5816be30cc23792a69bd9ee?s=48&d=retro\"},\"assignee\":{\"id\":-1,\"name\":\"Unassigned\",\"uuid\":\"\"},\"state\":\"open\",\"archive_reason\":\"none\",\"state_update_timestamp\":1657118864546},\"type\":\"signal_metadata\",\"id\":\"AQAAAYG1bl5K4HuUewAAAABBWUcxYmw1S0FBQmt2RmhRN0V4ZUVnQUE\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 06 Jul 2022 14:48:57 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"incident_ids\":[2066]}}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/signals/AQAAAYG1bl5K4HuUewAAAABBWUcxYmw1S0FBQmt2RmhRN0V4ZUVnQUE/incidents" + }, + "response": { + "body": { + "string": "{\"data\":{\"attributes\":{\"incident_ids\":[2066],\"state_update_user\":{\"handle\":\"bernard.le+synthetics@datadoghq.com\",\"uuid\":\"2514d32c-0719-11eb-b643-63faf7d5e1bd\",\"name\":null,\"id\":2115689,\"icon\":\"https://secure.gravatar.com/avatar/ae546a62b5816be30cc23792a69bd9ee?s=48&d=retro\"},\"assignee\":{\"id\":-1,\"name\":\"Unassigned\",\"uuid\":\"\"},\"state\":\"open\",\"archive_reason\":\"none\",\"state_update_timestamp\":1657118864546},\"type\":\"signal_metadata\",\"id\":\"AQAAAYG1bl5K4HuUewAAAABBWUcxYmw1S0FBQmt2RmhRN0V4ZUVnQUE\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 06 Jul 2022 14:48:57 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Change-the-triage-state-of-a-security-signal-returns-OK-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Change-the-triage-state-of-a-security-signal-returns-OK-response.json index e08c1e75e..421b032eb 100644 --- a/tests/scenarios/cassettes/v2/security_monitoring/Change-the-triage-state-of-a-security-signal-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/security_monitoring/Change-the-triage-state-of-a-security-signal-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"archive_reason\":\"none\",\"state\":\"open\"}}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/signals/AQAAAYG1bl5K4HuUewAAAABBWUcxYmw1S0FBQmt2RmhRN0V4ZUVnQUE/state"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"incident_ids\":[2066],\"state_update_user\":{\"handle\":\"bernard.le+synthetics@datadoghq.com\",\"uuid\":\"2514d32c-0719-11eb-b643-63faf7d5e1bd\",\"name\":null,\"id\":2115689,\"icon\":\"https://secure.gravatar.com/avatar/ae546a62b5816be30cc23792a69bd9ee?s=48&d=retro\"},\"assignee\":{\"id\":-1,\"name\":\"Unassigned\",\"uuid\":\"\"},\"state\":\"open\",\"archive_reason\":\"none\",\"state_update_timestamp\":1657118941005},\"type\":\"signal_metadata\",\"id\":\"AQAAAYG1bl5K4HuUewAAAABBWUcxYmw1S0FBQmt2RmhRN0V4ZUVnQUE\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 06 Jul 2022 14:49:00 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"archive_reason\":\"none\",\"state\":\"open\"}}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/signals/AQAAAYG1bl5K4HuUewAAAABBWUcxYmw1S0FBQmt2RmhRN0V4ZUVnQUE/state" + }, + "response": { + "body": { + "string": "{\"data\":{\"attributes\":{\"incident_ids\":[2066],\"state_update_user\":{\"handle\":\"bernard.le+synthetics@datadoghq.com\",\"uuid\":\"2514d32c-0719-11eb-b643-63faf7d5e1bd\",\"name\":null,\"id\":2115689,\"icon\":\"https://secure.gravatar.com/avatar/ae546a62b5816be30cc23792a69bd9ee?s=48&d=retro\"},\"assignee\":{\"id\":-1,\"name\":\"Unassigned\",\"uuid\":\"\"},\"state\":\"open\",\"archive_reason\":\"none\",\"state_update_timestamp\":1657118941005},\"type\":\"signal_metadata\",\"id\":\"AQAAAYG1bl5K4HuUewAAAABBWUcxYmw1S0FBQmt2RmhRN0V4ZUVnQUE\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 06 Jul 2022 14:49:00 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Create-a-cloud-configuration-rule-returns-OK-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Create-a-cloud-configuration-rule-returns-OK-response.json index 2a8ce5ebc..71c6fcd68 100644 --- a/tests/scenarios/cassettes/v2/security_monitoring/Create-a-cloud-configuration-rule-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/security_monitoring/Create-a-cloud-configuration-rule-returns-OK-response.json @@ -1 +1,63 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"cases\":[{\"notifications\":[\"channel\"],\"status\":\"info\"}],\"complianceSignalOptions\":{\"userActivationStatus\":true,\"userGroupByFields\":[\"@account_id\"]},\"filters\":[{\"action\":\"require\",\"query\":\"resource_id:helo*\"},{\"action\":\"suppress\",\"query\":\"control:helo*\"}],\"isEnabled\":false,\"message\":\"ddd\",\"name\":\"Test-Create_a_cloud_configuration_rule_returns_OK_response-1693482688_cloud\",\"options\":{\"complianceRuleOptions\":{\"complexRule\":false,\"regoRule\":{\"policy\":\"package datadog\\n\\nimport data.datadog.output as dd_output\\n\\nimport future.keywords.contains\\nimport future.keywords.if\\nimport future.keywords.in\\n\\nmilliseconds_in_a_day := ((1000 * 60) * 60) * 24\\n\\neval(iam_service_account_key) = \\\"skip\\\" if {\\n\\tiam_service_account_key.disabled\\n} else = \\\"pass\\\" if {\\n\\t(iam_service_account_key.resource_seen_at / milliseconds_in_a_day) - (iam_service_account_key.valid_after_time / milliseconds_in_a_day) <= 90\\n} else = \\\"fail\\\"\\n\\n# This part remains unchanged for all rules\\nresults contains result if {\\n\\tsome resource in input.resources[input.main_resource_type]\\n\\tresult := dd_output.format(resource, eval(resource))\\n}\\n\",\"resourceTypes\":[\"gcp_compute_disk\"]},\"resourceType\":\"gcp_compute_disk\"}},\"tags\":[\"my:tag\"],\"type\":\"cloud_configuration\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules"}, "response": {"body": {"string": "{\"id\":\"m0o-cza-uq9\",\"version\":1,\"name\":\"Test-Create_a_cloud_configuration_rule_returns_OK_response-1693482688_cloud\",\"createdAt\":1693482689435,\"creationAuthorId\":1445416,\"isDefault\":false,\"isEnabled\":false,\"isDeleted\":false,\"isDeprecated\":false,\"queries\":[{\"query\":\"resource_type:gcp_compute_disk\",\"groupByFields\":[\"resource_type\",\"resource_id\"],\"distinctFields\":[],\"aggregation\":\"count\",\"name\":\"a\"}],\"options\":{\"keepAlive\":21600,\"maxSignalDuration\":86400,\"detectionMethod\":\"threshold\",\"evaluationWindow\":7200,\"complianceRuleOptions\":{\"resourceType\":\"gcp_compute_disk\",\"regoRule\":{\"policy\":\"package datadog\\n\\nimport data.datadog.output as dd_output\\n\\nimport future.keywords.contains\\nimport future.keywords.if\\nimport future.keywords.in\\n\\nmilliseconds_in_a_day := ((1000 * 60) * 60) * 24\\n\\neval(iam_service_account_key) = \\\"skip\\\" if {\\n\\tiam_service_account_key.disabled\\n} else = \\\"pass\\\" if {\\n\\t(iam_service_account_key.resource_seen_at / milliseconds_in_a_day) - (iam_service_account_key.valid_after_time / milliseconds_in_a_day) <= 90\\n} else = \\\"fail\\\"\\n\\n# This part remains unchanged for all rules\\nresults contains result if {\\n\\tsome resource in input.resources[input.main_resource_type]\\n\\tresult := dd_output.format(resource, eval(resource))\\n}\\n\",\"resourceTypes\":[\"gcp_compute_disk\"]},\"complexRule\":false}},\"complianceSignalOptions\":{\"defaultActivationStatus\":null,\"defaultGroupByFields\":null,\"userActivationStatus\":true,\"userGroupByFields\":[\"@account_id\"]},\"cases\":[{\"name\":\"\",\"status\":\"info\",\"notifications\":[\"channel\"],\"condition\":\"a > 0\"}],\"message\":\"ddd\",\"tags\":[\"my:tag\"],\"hasExtendedTitle\":true,\"type\":\"cloud_configuration\",\"filters\":[{\"action\":\"require\",\"query\":\"resource_id:helo*\"},{\"action\":\"suppress\",\"query\":\"control:helo*\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 31 Aug 2023 11:51:28 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/m0o-cza-uq9"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 31 Aug 2023 11:51:28 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"cases\":[{\"notifications\":[\"channel\"],\"status\":\"info\"}],\"complianceSignalOptions\":{\"userActivationStatus\":true,\"userGroupByFields\":[\"@account_id\"]},\"filters\":[{\"action\":\"require\",\"query\":\"resource_id:helo*\"},{\"action\":\"suppress\",\"query\":\"control:helo*\"}],\"isEnabled\":false,\"message\":\"ddd\",\"name\":\"Test-Create_a_cloud_configuration_rule_returns_OK_response-1693482688_cloud\",\"options\":{\"complianceRuleOptions\":{\"complexRule\":false,\"regoRule\":{\"policy\":\"package datadog\\n\\nimport data.datadog.output as dd_output\\n\\nimport future.keywords.contains\\nimport future.keywords.if\\nimport future.keywords.in\\n\\nmilliseconds_in_a_day := ((1000 * 60) * 60) * 24\\n\\neval(iam_service_account_key) = \\\"skip\\\" if {\\n\\tiam_service_account_key.disabled\\n} else = \\\"pass\\\" if {\\n\\t(iam_service_account_key.resource_seen_at / milliseconds_in_a_day) - (iam_service_account_key.valid_after_time / milliseconds_in_a_day) <= 90\\n} else = \\\"fail\\\"\\n\\n# This part remains unchanged for all rules\\nresults contains result if {\\n\\tsome resource in input.resources[input.main_resource_type]\\n\\tresult := dd_output.format(resource, eval(resource))\\n}\\n\",\"resourceTypes\":[\"gcp_compute_disk\"]},\"resourceType\":\"gcp_compute_disk\"}},\"tags\":[\"my:tag\"],\"type\":\"cloud_configuration\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules" + }, + "response": { + "body": { + "string": "{\"id\":\"m0o-cza-uq9\",\"version\":1,\"name\":\"Test-Create_a_cloud_configuration_rule_returns_OK_response-1693482688_cloud\",\"createdAt\":1693482689435,\"creationAuthorId\":1445416,\"isDefault\":false,\"isEnabled\":false,\"isDeleted\":false,\"isDeprecated\":false,\"queries\":[{\"query\":\"resource_type:gcp_compute_disk\",\"groupByFields\":[\"resource_type\",\"resource_id\"],\"distinctFields\":[],\"aggregation\":\"count\",\"name\":\"a\"}],\"options\":{\"keepAlive\":21600,\"maxSignalDuration\":86400,\"detectionMethod\":\"threshold\",\"evaluationWindow\":7200,\"complianceRuleOptions\":{\"resourceType\":\"gcp_compute_disk\",\"regoRule\":{\"policy\":\"package datadog\\n\\nimport data.datadog.output as dd_output\\n\\nimport future.keywords.contains\\nimport future.keywords.if\\nimport future.keywords.in\\n\\nmilliseconds_in_a_day := ((1000 * 60) * 60) * 24\\n\\neval(iam_service_account_key) = \\\"skip\\\" if {\\n\\tiam_service_account_key.disabled\\n} else = \\\"pass\\\" if {\\n\\t(iam_service_account_key.resource_seen_at / milliseconds_in_a_day) - (iam_service_account_key.valid_after_time / milliseconds_in_a_day) <= 90\\n} else = \\\"fail\\\"\\n\\n# This part remains unchanged for all rules\\nresults contains result if {\\n\\tsome resource in input.resources[input.main_resource_type]\\n\\tresult := dd_output.format(resource, eval(resource))\\n}\\n\",\"resourceTypes\":[\"gcp_compute_disk\"]},\"complexRule\":false}},\"complianceSignalOptions\":{\"defaultActivationStatus\":null,\"defaultGroupByFields\":null,\"userActivationStatus\":true,\"userGroupByFields\":[\"@account_id\"]},\"cases\":[{\"name\":\"\",\"status\":\"info\",\"notifications\":[\"channel\"],\"condition\":\"a > 0\"}],\"message\":\"ddd\",\"tags\":[\"my:tag\"],\"hasExtendedTitle\":true,\"type\":\"cloud_configuration\",\"filters\":[{\"action\":\"require\",\"query\":\"resource_id:helo*\"},{\"action\":\"suppress\",\"query\":\"control:helo*\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 31 Aug 2023 11:51:28 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/m0o-cza-uq9" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 31 Aug 2023 11:51:28 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Create-a-detection-rule-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Create-a-detection-rule-returns-Bad-Request-response.json index df172e75a..c8bae06e4 100644 --- a/tests/scenarios/cassettes/v2/security_monitoring/Create-a-detection-rule-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/security_monitoring/Create-a-detection-rule-returns-Bad-Request-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"cases\":[{\"status\":\"info\"}],\"isEnabled\":true,\"message\":\"Test rule\",\"name\":\"Test-Create_a_detection_rule_returns_Bad_Request_response-1666186593\",\"options\":{},\"queries\":[{\"query\":\"\"}],\"tags\":[]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules"}, "response": {"body": {"string": "{\"errors\":[\"Internal error\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Wed, 19 Oct 2022 13:36:33 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"cases\":[{\"status\":\"info\"}],\"isEnabled\":true,\"message\":\"Test rule\",\"name\":\"Test-Create_a_detection_rule_returns_Bad_Request_response-1666186593\",\"options\":{},\"queries\":[{\"query\":\"\"}],\"tags\":[]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Internal error\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Wed, 19 Oct 2022 13:36:33 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Create-a-detection-rule-returns-OK-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Create-a-detection-rule-returns-OK-response.json index a910c2bc6..8400d8810 100644 --- a/tests/scenarios/cassettes/v2/security_monitoring/Create-a-detection-rule-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/security_monitoring/Create-a-detection-rule-returns-OK-response.json @@ -1 +1,63 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"cases\":[{\"condition\":\"a > 0\",\"name\":\"\",\"notifications\":[],\"status\":\"info\"}],\"filters\":[],\"isEnabled\":true,\"message\":\"Test rule\",\"name\":\"Test-Create_a_detection_rule_returns_OK_response-1666186593\",\"options\":{\"evaluationWindow\":900,\"keepAlive\":3600,\"maxSignalDuration\":86400},\"queries\":[{\"aggregation\":\"count\",\"distinctFields\":[],\"groupByFields\":[],\"metric\":\"\",\"query\":\"@test:true\"}],\"tags\":[],\"type\":\"log_detection\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules"}, "response": {"body": {"string": "{\"creationAuthorId\":1445416,\"tags\":[],\"isEnabled\":true,\"hasExtendedTitle\":false,\"message\":\"Test rule\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":900,\"maxSignalDuration\":86400,\"keepAlive\":3600},\"version\":1,\"createdAt\":1666186594041,\"filters\":[],\"queries\":[{\"query\":\"@test:true\",\"groupByFields\":[],\"aggregation\":\"count\",\"name\":\"\",\"distinctFields\":[]}],\"isDeleted\":false,\"cases\":[{\"status\":\"info\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"type\":\"log_detection\",\"id\":\"2zr-mrk-aq9\",\"isDefault\":false,\"name\":\"Test-Create_a_detection_rule_returns_OK_response-1666186593\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 19 Oct 2022 13:36:33 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/2zr-mrk-aq9"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 19 Oct 2022 13:36:33 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"cases\":[{\"condition\":\"a > 0\",\"name\":\"\",\"notifications\":[],\"status\":\"info\"}],\"filters\":[],\"isEnabled\":true,\"message\":\"Test rule\",\"name\":\"Test-Create_a_detection_rule_returns_OK_response-1666186593\",\"options\":{\"evaluationWindow\":900,\"keepAlive\":3600,\"maxSignalDuration\":86400},\"queries\":[{\"aggregation\":\"count\",\"distinctFields\":[],\"groupByFields\":[],\"metric\":\"\",\"query\":\"@test:true\"}],\"tags\":[],\"type\":\"log_detection\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules" + }, + "response": { + "body": { + "string": "{\"creationAuthorId\":1445416,\"tags\":[],\"isEnabled\":true,\"hasExtendedTitle\":false,\"message\":\"Test rule\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":900,\"maxSignalDuration\":86400,\"keepAlive\":3600},\"version\":1,\"createdAt\":1666186594041,\"filters\":[],\"queries\":[{\"query\":\"@test:true\",\"groupByFields\":[],\"aggregation\":\"count\",\"name\":\"\",\"distinctFields\":[]}],\"isDeleted\":false,\"cases\":[{\"status\":\"info\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"type\":\"log_detection\",\"id\":\"2zr-mrk-aq9\",\"isDefault\":false,\"name\":\"Test-Create_a_detection_rule_returns_OK_response-1666186593\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 19 Oct 2022 13:36:33 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/2zr-mrk-aq9" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 19 Oct 2022 13:36:33 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Create-a-detection-rule-with-detection-method-third-party-returns-OK-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Create-a-detection-rule-with-detection-method-third-party-returns-OK-response.json index b4e9c24cd..f97e1480a 100644 --- a/tests/scenarios/cassettes/v2/security_monitoring/Create-a-detection-rule-with-detection-method-third-party-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/security_monitoring/Create-a-detection-rule-with-detection-method-third-party-returns-OK-response.json @@ -1 +1,63 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"cases\":[],\"isEnabled\":true,\"message\":\"This is a third party rule\",\"name\":\"Test-Create_a_detection_rule_with_detection_method_third_party_returns_OK_response-1704294474\",\"options\":{\"detectionMethod\":\"third_party\",\"keepAlive\":0,\"maxSignalDuration\":0,\"thirdPartyRuleOptions\":{\"defaultStatus\":\"info\",\"rootQueries\":[{\"groupByFields\":[\"instance-id\"],\"query\":\"source:guardduty @details.alertType:*EC2*\"},{\"groupByFields\":[],\"query\":\"source:guardduty\"}]}},\"queries\":[],\"thirdPartyCases\":[{\"name\":\"high\",\"query\":\"status:error\",\"status\":\"high\"},{\"name\":\"low\",\"query\":\"status:info\",\"status\":\"low\"}],\"type\":\"log_detection\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules"}, "response": {"body": {"string": "{\"id\":\"ut1-s7a-0kn\",\"version\":1,\"name\":\"Test-Create_a_detection_rule_with_detection_method_third_party_returns_OK_response-1704294474\",\"createdAt\":1704294474748,\"creationAuthorId\":1445416,\"isDefault\":false,\"isPartner\":false,\"isEnabled\":true,\"isDeleted\":false,\"isDeprecated\":false,\"queries\":[{\"query\":\"status:error\",\"groupByFields\":[],\"hasOptionalGroupByFields\":false,\"distinctFields\":[],\"aggregation\":\"none\",\"name\":\"\"},{\"query\":\"status:info\",\"groupByFields\":[],\"hasOptionalGroupByFields\":false,\"distinctFields\":[],\"aggregation\":\"none\",\"name\":\"\"}],\"options\":{\"keepAlive\":0,\"maxSignalDuration\":0,\"detectionMethod\":\"third_party\",\"evaluationWindow\":0,\"thirdPartyRuleOptions\":{\"defaultStatus\":\"info\",\"defaultNotifications\":[],\"rootQueries\":[{\"query\":\"source:guardduty @details.alertType:*EC2*\",\"groupByFields\":[\"instance-id\"]},{\"query\":\"source:guardduty\",\"groupByFields\":[]}]}},\"cases\":[{\"name\":\"high\",\"status\":\"high\",\"notifications\":[]},{\"name\":\"low\",\"status\":\"low\",\"notifications\":[]}],\"message\":\"This is a third party rule\",\"tags\":[],\"hasExtendedTitle\":false,\"type\":\"log_detection\",\"filters\":[],\"thirdPartyCases\":[{\"name\":\"high\",\"status\":\"high\",\"notifications\":[],\"query\":\"status:error\"},{\"name\":\"low\",\"status\":\"low\",\"notifications\":[],\"query\":\"status:info\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 03 Jan 2024 15:07:54 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/ut1-s7a-0kn"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 03 Jan 2024 15:07:54 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"cases\":[],\"isEnabled\":true,\"message\":\"This is a third party rule\",\"name\":\"Test-Create_a_detection_rule_with_detection_method_third_party_returns_OK_response-1704294474\",\"options\":{\"detectionMethod\":\"third_party\",\"keepAlive\":0,\"maxSignalDuration\":0,\"thirdPartyRuleOptions\":{\"defaultStatus\":\"info\",\"rootQueries\":[{\"groupByFields\":[\"instance-id\"],\"query\":\"source:guardduty @details.alertType:*EC2*\"},{\"groupByFields\":[],\"query\":\"source:guardduty\"}]}},\"queries\":[],\"thirdPartyCases\":[{\"name\":\"high\",\"query\":\"status:error\",\"status\":\"high\"},{\"name\":\"low\",\"query\":\"status:info\",\"status\":\"low\"}],\"type\":\"log_detection\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules" + }, + "response": { + "body": { + "string": "{\"id\":\"ut1-s7a-0kn\",\"version\":1,\"name\":\"Test-Create_a_detection_rule_with_detection_method_third_party_returns_OK_response-1704294474\",\"createdAt\":1704294474748,\"creationAuthorId\":1445416,\"isDefault\":false,\"isPartner\":false,\"isEnabled\":true,\"isDeleted\":false,\"isDeprecated\":false,\"queries\":[{\"query\":\"status:error\",\"groupByFields\":[],\"hasOptionalGroupByFields\":false,\"distinctFields\":[],\"aggregation\":\"none\",\"name\":\"\"},{\"query\":\"status:info\",\"groupByFields\":[],\"hasOptionalGroupByFields\":false,\"distinctFields\":[],\"aggregation\":\"none\",\"name\":\"\"}],\"options\":{\"keepAlive\":0,\"maxSignalDuration\":0,\"detectionMethod\":\"third_party\",\"evaluationWindow\":0,\"thirdPartyRuleOptions\":{\"defaultStatus\":\"info\",\"defaultNotifications\":[],\"rootQueries\":[{\"query\":\"source:guardduty @details.alertType:*EC2*\",\"groupByFields\":[\"instance-id\"]},{\"query\":\"source:guardduty\",\"groupByFields\":[]}]}},\"cases\":[{\"name\":\"high\",\"status\":\"high\",\"notifications\":[]},{\"name\":\"low\",\"status\":\"low\",\"notifications\":[]}],\"message\":\"This is a third party rule\",\"tags\":[],\"hasExtendedTitle\":false,\"type\":\"log_detection\",\"filters\":[],\"thirdPartyCases\":[{\"name\":\"high\",\"status\":\"high\",\"notifications\":[],\"query\":\"status:error\"},{\"name\":\"low\",\"status\":\"low\",\"notifications\":[],\"query\":\"status:info\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 03 Jan 2024 15:07:54 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/ut1-s7a-0kn" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 03 Jan 2024 15:07:54 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Create-a-detection-rule-with-type-impossible-travel-returns-OK-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Create-a-detection-rule-with-type-impossible-travel-returns-OK-response.json index bd51830c2..dfc4fd4c9 100644 --- a/tests/scenarios/cassettes/v2/security_monitoring/Create-a-detection-rule-with-type-impossible-travel-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/security_monitoring/Create-a-detection-rule-with-type-impossible-travel-returns-OK-response.json @@ -1 +1,63 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"cases\":[{\"name\":\"\",\"notifications\":[],\"status\":\"info\"}],\"filters\":[],\"hasExtendedTitle\":true,\"isEnabled\":true,\"message\":\"test\",\"name\":\"Test-Create_a_detection_rule_with_type_impossible_travel_returns_OK_response-1666186594\",\"options\":{\"detectionMethod\":\"impossible_travel\",\"evaluationWindow\":900,\"impossibleTravelOptions\":{\"baselineUserLocations\":false},\"keepAlive\":3600,\"maxSignalDuration\":86400},\"queries\":[{\"aggregation\":\"geo_data\",\"distinctFields\":[],\"groupByFields\":[\"@usr.id\"],\"metric\":\"@network.client.geoip\",\"query\":\"*\"}],\"tags\":[],\"type\":\"log_detection\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules"}, "response": {"body": {"string": "{\"creationAuthorId\":1445416,\"tags\":[],\"isEnabled\":true,\"hasExtendedTitle\":true,\"message\":\"test\",\"options\":{\"impossibleTravelOptions\":{\"baselineUserLocations\":false},\"detectionMethod\":\"impossible_travel\",\"evaluationWindow\":900,\"maxSignalDuration\":86400,\"keepAlive\":3600},\"version\":1,\"createdAt\":1666186594819,\"filters\":[],\"queries\":[{\"distinctFields\":[],\"name\":\"\",\"metric\":\"@network.client.geoip\",\"aggregation\":\"geo_data\",\"metrics\":[\"@network.client.geoip\"],\"groupByFields\":[\"@usr.id\"],\"query\":\"*\"}],\"isDeleted\":false,\"cases\":[{\"status\":\"info\",\"notifications\":[],\"name\":\"\"}],\"type\":\"log_detection\",\"id\":\"hrr-a7c-wzl\",\"isDefault\":false,\"name\":\"Test-Create_a_detection_rule_with_type_impossible_travel_returns_OK_response-1666186594\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 19 Oct 2022 13:36:34 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/hrr-a7c-wzl"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 19 Oct 2022 13:36:34 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"cases\":[{\"name\":\"\",\"notifications\":[],\"status\":\"info\"}],\"filters\":[],\"hasExtendedTitle\":true,\"isEnabled\":true,\"message\":\"test\",\"name\":\"Test-Create_a_detection_rule_with_type_impossible_travel_returns_OK_response-1666186594\",\"options\":{\"detectionMethod\":\"impossible_travel\",\"evaluationWindow\":900,\"impossibleTravelOptions\":{\"baselineUserLocations\":false},\"keepAlive\":3600,\"maxSignalDuration\":86400},\"queries\":[{\"aggregation\":\"geo_data\",\"distinctFields\":[],\"groupByFields\":[\"@usr.id\"],\"metric\":\"@network.client.geoip\",\"query\":\"*\"}],\"tags\":[],\"type\":\"log_detection\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules" + }, + "response": { + "body": { + "string": "{\"creationAuthorId\":1445416,\"tags\":[],\"isEnabled\":true,\"hasExtendedTitle\":true,\"message\":\"test\",\"options\":{\"impossibleTravelOptions\":{\"baselineUserLocations\":false},\"detectionMethod\":\"impossible_travel\",\"evaluationWindow\":900,\"maxSignalDuration\":86400,\"keepAlive\":3600},\"version\":1,\"createdAt\":1666186594819,\"filters\":[],\"queries\":[{\"distinctFields\":[],\"name\":\"\",\"metric\":\"@network.client.geoip\",\"aggregation\":\"geo_data\",\"metrics\":[\"@network.client.geoip\"],\"groupByFields\":[\"@usr.id\"],\"query\":\"*\"}],\"isDeleted\":false,\"cases\":[{\"status\":\"info\",\"notifications\":[],\"name\":\"\"}],\"type\":\"log_detection\",\"id\":\"hrr-a7c-wzl\",\"isDefault\":false,\"name\":\"Test-Create_a_detection_rule_with_type_impossible_travel_returns_OK_response-1666186594\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 19 Oct 2022 13:36:34 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/hrr-a7c-wzl" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 19 Oct 2022 13:36:34 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Create-a-detection-rule-with-type-signal-correlation-returns-OK-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Create-a-detection-rule-with-type-signal-correlation-returns-OK-response.json index e9fbce1ee..521d3677d 100644 --- a/tests/scenarios/cassettes/v2/security_monitoring/Create-a-detection-rule-with-type-signal-correlation-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/security_monitoring/Create-a-detection-rule-with-type-signal-correlation-returns-OK-response.json @@ -1 +1,179 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"cases\":[{\"condition\":\"a > 0\",\"name\":\"\",\"notifications\":[],\"status\":\"info\"}],\"filters\":[],\"isEnabled\":true,\"message\":\"Test rule\",\"name\":\"Test-Create_a_detection_rule_with_type_signal_correlation_returns_OK_response-1666186595\",\"options\":{\"evaluationWindow\":900,\"keepAlive\":3600,\"maxSignalDuration\":86400},\"queries\":[{\"aggregation\":\"count\",\"distinctFields\":[],\"groupByFields\":[],\"metrics\":[],\"query\":\"@test:true\"}],\"tags\":[],\"type\":\"log_detection\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules"}, "response": {"body": {"string": "{\"creationAuthorId\":1445416,\"tags\":[],\"isEnabled\":true,\"hasExtendedTitle\":false,\"message\":\"Test rule\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":900,\"maxSignalDuration\":86400,\"keepAlive\":3600},\"version\":1,\"createdAt\":1666186595990,\"filters\":[],\"queries\":[{\"query\":\"@test:true\",\"groupByFields\":[],\"aggregation\":\"count\",\"name\":\"\",\"distinctFields\":[]}],\"isDeleted\":false,\"cases\":[{\"status\":\"info\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"type\":\"log_detection\",\"id\":\"jkf-59u-hro\",\"isDefault\":false,\"name\":\"Test-Create_a_detection_rule_with_type_signal_correlation_returns_OK_response-1666186595\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 19 Oct 2022 13:36:35 GMT"}, {"request": {"body": {"string": "{\"cases\":[{\"condition\":\"a > 0\",\"name\":\"\",\"notifications\":[],\"status\":\"info\"}],\"filters\":[],\"isEnabled\":true,\"message\":\"Test rule Bis\",\"name\":\"Test-Create_a_detection_rule_with_type_signal_correlation_returns_OK_response-1666186595_bis\",\"options\":{\"evaluationWindow\":900,\"keepAlive\":3600,\"maxSignalDuration\":86400},\"queries\":[{\"aggregation\":\"count\",\"distinctFields\":[],\"groupByFields\":[],\"metrics\":[],\"query\":\"@test:false\"}],\"tags\":[],\"type\":\"log_detection\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules"}, "response": {"body": {"string": "{\"creationAuthorId\":1445416,\"tags\":[],\"isEnabled\":true,\"hasExtendedTitle\":false,\"message\":\"Test rule Bis\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":900,\"maxSignalDuration\":86400,\"keepAlive\":3600},\"version\":1,\"createdAt\":1666186596355,\"filters\":[],\"queries\":[{\"query\":\"@test:false\",\"groupByFields\":[],\"aggregation\":\"count\",\"name\":\"\",\"distinctFields\":[]}],\"isDeleted\":false,\"cases\":[{\"status\":\"info\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"type\":\"log_detection\",\"id\":\"kmj-xjs-f9o\",\"isDefault\":false,\"name\":\"Test-Create_a_detection_rule_with_type_signal_correlation_returns_OK_response-1666186595_bis\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 19 Oct 2022 13:36:35 GMT"}, {"request": {"body": {"string": "{\"cases\":[{\"condition\":\"a > 0 && b > 0\",\"name\":\"\",\"notifications\":[],\"status\":\"info\"}],\"filters\":[],\"isEnabled\":true,\"message\":\"Test signal correlation rule\",\"name\":\"Test-Create_a_detection_rule_with_type_signal_correlation_returns_OK_response-1666186595_signal_rule\",\"options\":{\"evaluationWindow\":900,\"keepAlive\":3600,\"maxSignalDuration\":86400},\"queries\":[{\"aggregation\":\"event_count\",\"correlatedByFields\":[\"host\"],\"correlatedQueryIndex\":1,\"ruleId\":\"jkf-59u-hro\"},{\"aggregation\":\"event_count\",\"correlatedByFields\":[\"host\"],\"ruleId\":\"kmj-xjs-f9o\"}],\"tags\":[],\"type\":\"signal_correlation\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules"}, "response": {"body": {"string": "{\"creationAuthorId\":1445416,\"tags\":[],\"isEnabled\":true,\"hasExtendedTitle\":false,\"message\":\"Test signal correlation rule\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":900,\"maxSignalDuration\":86400,\"keepAlive\":3600},\"version\":1,\"createdAt\":1666186596743,\"filters\":[],\"queries\":[{\"distinctFields\":[],\"correlatedByFields\":[\"host\"],\"name\":\"\",\"ruleId\":\"jkf-59u-hro\",\"aggregation\":\"event_count\",\"groupByFields\":[],\"correlatedQueryIndex\":1},{\"distinctFields\":[],\"correlatedByFields\":[\"host\"],\"name\":\"\",\"ruleId\":\"kmj-xjs-f9o\",\"aggregation\":\"event_count\",\"groupByFields\":[]}],\"isDeleted\":false,\"cases\":[{\"status\":\"info\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0 && b > 0\"}],\"type\":\"signal_correlation\",\"id\":\"gk5-nwf-mfq\",\"isDefault\":false,\"name\":\"Test-Create_a_detection_rule_with_type_signal_correlation_returns_OK_response-1666186595_signal_rule\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 19 Oct 2022 13:36:35 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/gk5-nwf-mfq"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 19 Oct 2022 13:36:35 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/kmj-xjs-f9o"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 19 Oct 2022 13:36:35 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/jkf-59u-hro"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 19 Oct 2022 13:36:35 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"cases\":[{\"condition\":\"a > 0\",\"name\":\"\",\"notifications\":[],\"status\":\"info\"}],\"filters\":[],\"isEnabled\":true,\"message\":\"Test rule\",\"name\":\"Test-Create_a_detection_rule_with_type_signal_correlation_returns_OK_response-1666186595\",\"options\":{\"evaluationWindow\":900,\"keepAlive\":3600,\"maxSignalDuration\":86400},\"queries\":[{\"aggregation\":\"count\",\"distinctFields\":[],\"groupByFields\":[],\"metrics\":[],\"query\":\"@test:true\"}],\"tags\":[],\"type\":\"log_detection\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules" + }, + "response": { + "body": { + "string": "{\"creationAuthorId\":1445416,\"tags\":[],\"isEnabled\":true,\"hasExtendedTitle\":false,\"message\":\"Test rule\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":900,\"maxSignalDuration\":86400,\"keepAlive\":3600},\"version\":1,\"createdAt\":1666186595990,\"filters\":[],\"queries\":[{\"query\":\"@test:true\",\"groupByFields\":[],\"aggregation\":\"count\",\"name\":\"\",\"distinctFields\":[]}],\"isDeleted\":false,\"cases\":[{\"status\":\"info\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"type\":\"log_detection\",\"id\":\"jkf-59u-hro\",\"isDefault\":false,\"name\":\"Test-Create_a_detection_rule_with_type_signal_correlation_returns_OK_response-1666186595\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 19 Oct 2022 13:36:35 GMT" + }, + { + "request": { + "body": { + "string": "{\"cases\":[{\"condition\":\"a > 0\",\"name\":\"\",\"notifications\":[],\"status\":\"info\"}],\"filters\":[],\"isEnabled\":true,\"message\":\"Test rule Bis\",\"name\":\"Test-Create_a_detection_rule_with_type_signal_correlation_returns_OK_response-1666186595_bis\",\"options\":{\"evaluationWindow\":900,\"keepAlive\":3600,\"maxSignalDuration\":86400},\"queries\":[{\"aggregation\":\"count\",\"distinctFields\":[],\"groupByFields\":[],\"metrics\":[],\"query\":\"@test:false\"}],\"tags\":[],\"type\":\"log_detection\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules" + }, + "response": { + "body": { + "string": "{\"creationAuthorId\":1445416,\"tags\":[],\"isEnabled\":true,\"hasExtendedTitle\":false,\"message\":\"Test rule Bis\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":900,\"maxSignalDuration\":86400,\"keepAlive\":3600},\"version\":1,\"createdAt\":1666186596355,\"filters\":[],\"queries\":[{\"query\":\"@test:false\",\"groupByFields\":[],\"aggregation\":\"count\",\"name\":\"\",\"distinctFields\":[]}],\"isDeleted\":false,\"cases\":[{\"status\":\"info\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"type\":\"log_detection\",\"id\":\"kmj-xjs-f9o\",\"isDefault\":false,\"name\":\"Test-Create_a_detection_rule_with_type_signal_correlation_returns_OK_response-1666186595_bis\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 19 Oct 2022 13:36:35 GMT" + }, + { + "request": { + "body": { + "string": "{\"cases\":[{\"condition\":\"a > 0 && b > 0\",\"name\":\"\",\"notifications\":[],\"status\":\"info\"}],\"filters\":[],\"isEnabled\":true,\"message\":\"Test signal correlation rule\",\"name\":\"Test-Create_a_detection_rule_with_type_signal_correlation_returns_OK_response-1666186595_signal_rule\",\"options\":{\"evaluationWindow\":900,\"keepAlive\":3600,\"maxSignalDuration\":86400},\"queries\":[{\"aggregation\":\"event_count\",\"correlatedByFields\":[\"host\"],\"correlatedQueryIndex\":1,\"ruleId\":\"jkf-59u-hro\"},{\"aggregation\":\"event_count\",\"correlatedByFields\":[\"host\"],\"ruleId\":\"kmj-xjs-f9o\"}],\"tags\":[],\"type\":\"signal_correlation\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules" + }, + "response": { + "body": { + "string": "{\"creationAuthorId\":1445416,\"tags\":[],\"isEnabled\":true,\"hasExtendedTitle\":false,\"message\":\"Test signal correlation rule\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":900,\"maxSignalDuration\":86400,\"keepAlive\":3600},\"version\":1,\"createdAt\":1666186596743,\"filters\":[],\"queries\":[{\"distinctFields\":[],\"correlatedByFields\":[\"host\"],\"name\":\"\",\"ruleId\":\"jkf-59u-hro\",\"aggregation\":\"event_count\",\"groupByFields\":[],\"correlatedQueryIndex\":1},{\"distinctFields\":[],\"correlatedByFields\":[\"host\"],\"name\":\"\",\"ruleId\":\"kmj-xjs-f9o\",\"aggregation\":\"event_count\",\"groupByFields\":[]}],\"isDeleted\":false,\"cases\":[{\"status\":\"info\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0 && b > 0\"}],\"type\":\"signal_correlation\",\"id\":\"gk5-nwf-mfq\",\"isDefault\":false,\"name\":\"Test-Create_a_detection_rule_with_type_signal_correlation_returns_OK_response-1666186595_signal_rule\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 19 Oct 2022 13:36:35 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/gk5-nwf-mfq" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 19 Oct 2022 13:36:35 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/kmj-xjs-f9o" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 19 Oct 2022 13:36:35 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/jkf-59u-hro" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 19 Oct 2022 13:36:35 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Create-a-detection-rule-with-type-workload-security-returns-OK-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Create-a-detection-rule-with-type-workload-security-returns-OK-response.json index 60256542a..a2809f73d 100644 --- a/tests/scenarios/cassettes/v2/security_monitoring/Create-a-detection-rule-with-type-workload-security-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/security_monitoring/Create-a-detection-rule-with-type-workload-security-returns-OK-response.json @@ -1 +1,63 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"cases\":[{\"condition\":\"a > 0\",\"name\":\"\",\"notifications\":[],\"status\":\"info\"}],\"filters\":[],\"isEnabled\":true,\"message\":\"Test rule\",\"name\":\"Test-Create_a_detection_rule_with_type_workload_security_returns_OK_response-1666186597\",\"options\":{\"evaluationWindow\":900,\"keepAlive\":3600,\"maxSignalDuration\":86400},\"queries\":[{\"aggregation\":\"count\",\"distinctFields\":[],\"groupByFields\":[],\"metric\":\"\",\"query\":\"@test:true\"}],\"tags\":[],\"type\":\"workload_security\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules"}, "response": {"body": {"string": "{\"creationAuthorId\":1445416,\"tags\":[],\"isEnabled\":true,\"hasExtendedTitle\":false,\"message\":\"Test rule\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":900,\"maxSignalDuration\":86400,\"keepAlive\":3600},\"version\":1,\"createdAt\":1666186598320,\"filters\":[],\"queries\":[{\"query\":\"@test:true\",\"groupByFields\":[],\"aggregation\":\"count\",\"name\":\"\",\"distinctFields\":[]}],\"isDeleted\":false,\"cases\":[{\"status\":\"info\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"type\":\"workload_security\",\"id\":\"qcx-gg3-5ut\",\"isDefault\":false,\"name\":\"Test-Create_a_detection_rule_with_type_workload_security_returns_OK_response-1666186597\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 19 Oct 2022 13:36:37 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/qcx-gg3-5ut"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 19 Oct 2022 13:36:37 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"cases\":[{\"condition\":\"a > 0\",\"name\":\"\",\"notifications\":[],\"status\":\"info\"}],\"filters\":[],\"isEnabled\":true,\"message\":\"Test rule\",\"name\":\"Test-Create_a_detection_rule_with_type_workload_security_returns_OK_response-1666186597\",\"options\":{\"evaluationWindow\":900,\"keepAlive\":3600,\"maxSignalDuration\":86400},\"queries\":[{\"aggregation\":\"count\",\"distinctFields\":[],\"groupByFields\":[],\"metric\":\"\",\"query\":\"@test:true\"}],\"tags\":[],\"type\":\"workload_security\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules" + }, + "response": { + "body": { + "string": "{\"creationAuthorId\":1445416,\"tags\":[],\"isEnabled\":true,\"hasExtendedTitle\":false,\"message\":\"Test rule\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":900,\"maxSignalDuration\":86400,\"keepAlive\":3600},\"version\":1,\"createdAt\":1666186598320,\"filters\":[],\"queries\":[{\"query\":\"@test:true\",\"groupByFields\":[],\"aggregation\":\"count\",\"name\":\"\",\"distinctFields\":[]}],\"isDeleted\":false,\"cases\":[{\"status\":\"info\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"type\":\"workload_security\",\"id\":\"qcx-gg3-5ut\",\"isDefault\":false,\"name\":\"Test-Create_a_detection_rule_with_type_workload_security_returns_OK_response-1666186597\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 19 Oct 2022 13:36:37 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/qcx-gg3-5ut" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 19 Oct 2022 13:36:37 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Create-a-security-filter-returns-OK-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Create-a-security-filter-returns-OK-response.json index 10c3d5058..fd0cc8b84 100644 --- a/tests/scenarios/cassettes/v2/security_monitoring/Create-a-security-filter-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/security_monitoring/Create-a-security-filter-returns-OK-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"exclusion_filters\":[{\"name\":\"Exclude staging\",\"query\":\"source:staging\"}],\"filtered_data_type\":\"logs\",\"is_enabled\":true,\"name\":\"Test-Create_a_security_filter_returns_OK_response-1666186599\",\"query\":\"service:TestCreateasecurityfilterreturnsOKresponse1666186599\"},\"type\":\"security_filters\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/security_filters"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Create_a_security_filter_returns_OK_response-1666186599\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestCreateasecurityfilterreturnsOKresponse1666186599\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"n8l-koa-vuo\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 19 Oct 2022 13:36:39 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/security_filters/n8l-koa-vuo"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 19 Oct 2022 13:36:39 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"exclusion_filters\":[{\"name\":\"Exclude staging\",\"query\":\"source:staging\"}],\"filtered_data_type\":\"logs\",\"is_enabled\":true,\"name\":\"Test-Create_a_security_filter_returns_OK_response-1666186599\",\"query\":\"service:TestCreateasecurityfilterreturnsOKresponse1666186599\"},\"type\":\"security_filters\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/security_filters" + }, + "response": { + "body": { + "string": "{\"data\":{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Create_a_security_filter_returns_OK_response-1666186599\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestCreateasecurityfilterreturnsOKresponse1666186599\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"n8l-koa-vuo\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 19 Oct 2022 13:36:39 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/security_filters/n8l-koa-vuo" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 19 Oct 2022 13:36:39 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Create-a-suppression-rule-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/security_monitoring/Create-a-suppression-rule-returns-OK-response.frozen new file mode 100644 index 000000000..cc25655a1 --- /dev/null +++ b/tests/scenarios/cassettes/v2/security_monitoring/Create-a-suppression-rule-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-01-11T10:06:23.179Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Create-a-suppression-rule-returns-OK-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Create-a-suppression-rule-returns-OK-response.json new file mode 100644 index 000000000..fee6f5fd5 --- /dev/null +++ b/tests/scenarios/cassettes/v2/security_monitoring/Create-a-suppression-rule-returns-OK-response.json @@ -0,0 +1,67 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"This rule suppresses low-severity signals in staging environments.\",\"enabled\":true,\"expiration_date\":1703187336000,\"name\":\"Test-Create_a_suppression_rule_returns_OK_response-1704967583\",\"rule_query\":\"type:log_detection source:cloudtrail\",\"suppression_query\":\"env:staging status:low\"},\"type\":\"suppressions\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"5sx-nhj-htc\",\"attributes\":{\"name\":\"Test-Create_a_suppression_rule_returns_OK_response-1704967583\",\"enabled\":true,\"description\":\"This rule suppresses low-severity signals in staging environments.\",\"rule_query\":\"type:log_detection source:cloudtrail\",\"suppression_query\":\"env:staging status:low\",\"expiration_date\":1703187336000,\"version\":1,\"creation_date\":1704967583506,\"update_date\":1704967583506,\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\"},\"updater\":{\"name\":null,\"handle\":\"frog@datadoghq.com\"}},\"type\":\"suppressions\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 11 Jan 2024 10:06:23 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions/5sx-nhj-htc" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 11 Jan 2024 10:06:23 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Delete-a-security-filter-returns-No-Content-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Delete-a-security-filter-returns-No-Content-response.json index 0f1a05edd..06b51c695 100644 --- a/tests/scenarios/cassettes/v2/security_monitoring/Delete-a-security-filter-returns-No-Content-response.json +++ b/tests/scenarios/cassettes/v2/security_monitoring/Delete-a-security-filter-returns-No-Content-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"exclusion_filters\":[{\"name\":\"Exclude logs from staging\",\"query\":\"source:staging\"}],\"filtered_data_type\":\"logs\",\"is_enabled\":true,\"name\":\"Test-Delete_a_security_filter_returns_No_Content_response-1666186600\",\"query\":\"service:TestDeleteasecurityfilterreturnsNoContentresponse1666186600\"},\"type\":\"security_filters\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/security_filters"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Delete_a_security_filter_returns_No_Content_response-1666186600\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestDeleteasecurityfilterreturnsNoContentresponse1666186600\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"874-kvc-vus\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 19 Oct 2022 13:36:40 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/security_filters/874-kvc-vus"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 19 Oct 2022 13:36:40 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/security_filters/874-kvc-vus"}, "response": {"body": {"string": "{\"errors\":[\"not_found(Security filter with id '874-kvc-vus' not found)\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Wed, 19 Oct 2022 13:36:40 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"exclusion_filters\":[{\"name\":\"Exclude logs from staging\",\"query\":\"source:staging\"}],\"filtered_data_type\":\"logs\",\"is_enabled\":true,\"name\":\"Test-Delete_a_security_filter_returns_No_Content_response-1666186600\",\"query\":\"service:TestDeleteasecurityfilterreturnsNoContentresponse1666186600\"},\"type\":\"security_filters\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/security_filters" + }, + "response": { + "body": { + "string": "{\"data\":{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Delete_a_security_filter_returns_No_Content_response-1666186600\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestDeleteasecurityfilterreturnsNoContentresponse1666186600\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"874-kvc-vus\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 19 Oct 2022 13:36:40 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/security_filters/874-kvc-vus" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 19 Oct 2022 13:36:40 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/security_filters/874-kvc-vus" + }, + "response": { + "body": { + "string": "{\"errors\":[\"not_found(Security filter with id '874-kvc-vus' not found)\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Wed, 19 Oct 2022 13:36:40 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Delete-a-suppression-rule-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/security_monitoring/Delete-a-suppression-rule-returns-OK-response.frozen new file mode 100644 index 000000000..b989f5be0 --- /dev/null +++ b/tests/scenarios/cassettes/v2/security_monitoring/Delete-a-suppression-rule-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-01-11T10:06:25.411Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Delete-a-suppression-rule-returns-OK-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Delete-a-suppression-rule-returns-OK-response.json new file mode 100644 index 000000000..538b8d6fd --- /dev/null +++ b/tests/scenarios/cassettes/v2/security_monitoring/Delete-a-suppression-rule-returns-OK-response.json @@ -0,0 +1,95 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"Test-Delete_a_suppression_rule_returns_OK_response-1704967585\",\"enabled\":true,\"name\":\"Test-Delete_a_suppression_rule_returns_OK_response-1704967585\",\"rule_query\":\"source:cloudtrail\",\"suppression_query\":\"env:test\"},\"type\":\"suppressions\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"kpz-5gs-wn9\",\"attributes\":{\"name\":\"Test-Delete_a_suppression_rule_returns_OK_response-1704967585\",\"enabled\":true,\"description\":\"Test-Delete_a_suppression_rule_returns_OK_response-1704967585\",\"rule_query\":\"source:cloudtrail\",\"suppression_query\":\"env:test\",\"version\":1,\"creation_date\":1704967585721,\"update_date\":1704967585721,\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\"},\"updater\":{\"name\":null,\"handle\":\"frog@datadoghq.com\"}},\"type\":\"suppressions\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 11 Jan 2024 10:06:25 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions/kpz-5gs-wn9" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 11 Jan 2024 10:06:25 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions/kpz-5gs-wn9" + }, + "response": { + "body": { + "string": "{\"errors\":[\"not_found(Suppression with ID kpz-5gs-wn9 not found)\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 11 Jan 2024 10:06:25 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Delete-an-existing-rule-returns-OK-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Delete-an-existing-rule-returns-OK-response.json index cbde901ae..d9429f34c 100644 --- a/tests/scenarios/cassettes/v2/security_monitoring/Delete-an-existing-rule-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/security_monitoring/Delete-an-existing-rule-returns-OK-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"cases\":[{\"condition\":\"a > 0\",\"name\":\"\",\"notifications\":[],\"status\":\"info\"}],\"filters\":[],\"isEnabled\":true,\"message\":\"Test rule\",\"name\":\"Test-Delete_an_existing_rule_returns_OK_response-1666186603\",\"options\":{\"evaluationWindow\":900,\"keepAlive\":3600,\"maxSignalDuration\":86400},\"queries\":[{\"aggregation\":\"count\",\"distinctFields\":[],\"groupByFields\":[],\"metrics\":[],\"query\":\"@test:true\"}],\"tags\":[],\"type\":\"log_detection\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules"}, "response": {"body": {"string": "{\"creationAuthorId\":1445416,\"tags\":[],\"isEnabled\":true,\"hasExtendedTitle\":false,\"message\":\"Test rule\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":900,\"maxSignalDuration\":86400,\"keepAlive\":3600},\"version\":1,\"createdAt\":1666186603386,\"filters\":[],\"queries\":[{\"query\":\"@test:true\",\"groupByFields\":[],\"aggregation\":\"count\",\"name\":\"\",\"distinctFields\":[]}],\"isDeleted\":false,\"cases\":[{\"status\":\"info\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"type\":\"log_detection\",\"id\":\"fn5-38d-3q5\",\"isDefault\":false,\"name\":\"Test-Delete_an_existing_rule_returns_OK_response-1666186603\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 19 Oct 2022 13:36:43 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/fn5-38d-3q5"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 19 Oct 2022 13:36:43 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/fn5-38d-3q5"}, "response": {"body": {"string": "{\"errors\":[\"Threat detection rule not found: fn5-38d-3q5\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Wed, 19 Oct 2022 13:36:43 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"cases\":[{\"condition\":\"a > 0\",\"name\":\"\",\"notifications\":[],\"status\":\"info\"}],\"filters\":[],\"isEnabled\":true,\"message\":\"Test rule\",\"name\":\"Test-Delete_an_existing_rule_returns_OK_response-1666186603\",\"options\":{\"evaluationWindow\":900,\"keepAlive\":3600,\"maxSignalDuration\":86400},\"queries\":[{\"aggregation\":\"count\",\"distinctFields\":[],\"groupByFields\":[],\"metrics\":[],\"query\":\"@test:true\"}],\"tags\":[],\"type\":\"log_detection\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules" + }, + "response": { + "body": { + "string": "{\"creationAuthorId\":1445416,\"tags\":[],\"isEnabled\":true,\"hasExtendedTitle\":false,\"message\":\"Test rule\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":900,\"maxSignalDuration\":86400,\"keepAlive\":3600},\"version\":1,\"createdAt\":1666186603386,\"filters\":[],\"queries\":[{\"query\":\"@test:true\",\"groupByFields\":[],\"aggregation\":\"count\",\"name\":\"\",\"distinctFields\":[]}],\"isDeleted\":false,\"cases\":[{\"status\":\"info\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"type\":\"log_detection\",\"id\":\"fn5-38d-3q5\",\"isDefault\":false,\"name\":\"Test-Delete_an_existing_rule_returns_OK_response-1666186603\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 19 Oct 2022 13:36:43 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/fn5-38d-3q5" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 19 Oct 2022 13:36:43 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/fn5-38d-3q5" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Threat detection rule not found: fn5-38d-3q5\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Wed, 19 Oct 2022 13:36:43 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Get-a-cloud-configuration-rule-s-details-returns-OK-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Get-a-cloud-configuration-rule-s-details-returns-OK-response.json index 64c2cda05..b69e31454 100644 --- a/tests/scenarios/cassettes/v2/security_monitoring/Get-a-cloud-configuration-rule-s-details-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/security_monitoring/Get-a-cloud-configuration-rule-s-details-returns-OK-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"cases\":[{\"notifications\":[\"channel\"],\"status\":\"info\"}],\"complianceSignalOptions\":{\"userActivationStatus\":true,\"userGroupByFields\":[\"@account_id\"]},\"isEnabled\":false,\"message\":\"Cloud configuration rule\",\"name\":\"Test-Get_a_cloud_configuration_rule_s_details_returns_OK_response-1693483107_cloud\",\"options\":{\"complianceRuleOptions\":{\"complexRule\":false,\"regoRule\":{\"policy\":\"package datadog\\n\\nimport data.datadog.output as dd_output\\n\\nimport future.keywords.contains\\nimport future.keywords.if\\nimport future.keywords.in\\n\\nmilliseconds_in_a_day := ((1000 * 60) * 60) * 24\\n\\neval(iam_service_account_key) = \\\"skip\\\" if {\\n\\tiam_service_account_key.disabled\\n} else = \\\"pass\\\" if {\\n\\t(iam_service_account_key.resource_seen_at / milliseconds_in_a_day) - (iam_service_account_key.valid_after_time / milliseconds_in_a_day) <= 90\\n} else = \\\"fail\\\"\\n\\n# This part remains unchanged for all rules\\nresults contains result if {\\n\\tsome resource in input.resources[input.main_resource_type]\\n\\tresult := dd_output.format(resource, eval(resource))\\n}\\n\",\"resourceTypes\":[\"gcp_compute_disk\"]},\"resourceType\":\"gcp_compute_disk\"}},\"tags\":[\"a:tag\"],\"type\":\"cloud_configuration\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules"}, "response": {"body": {"string": "{\"id\":\"ijx-ftp-oew\",\"version\":1,\"name\":\"Test-Get_a_cloud_configuration_rule_s_details_returns_OK_response-1693483107_cloud\",\"createdAt\":1693483108023,\"creationAuthorId\":1445416,\"isDefault\":false,\"isEnabled\":false,\"isDeleted\":false,\"isDeprecated\":false,\"queries\":[{\"query\":\"resource_type:gcp_compute_disk\",\"groupByFields\":[\"resource_type\",\"resource_id\"],\"distinctFields\":[],\"aggregation\":\"count\",\"name\":\"a\"}],\"options\":{\"keepAlive\":21600,\"maxSignalDuration\":86400,\"detectionMethod\":\"threshold\",\"evaluationWindow\":7200,\"complianceRuleOptions\":{\"resourceType\":\"gcp_compute_disk\",\"regoRule\":{\"policy\":\"package datadog\\n\\nimport data.datadog.output as dd_output\\n\\nimport future.keywords.contains\\nimport future.keywords.if\\nimport future.keywords.in\\n\\nmilliseconds_in_a_day := ((1000 * 60) * 60) * 24\\n\\neval(iam_service_account_key) = \\\"skip\\\" if {\\n\\tiam_service_account_key.disabled\\n} else = \\\"pass\\\" if {\\n\\t(iam_service_account_key.resource_seen_at / milliseconds_in_a_day) - (iam_service_account_key.valid_after_time / milliseconds_in_a_day) <= 90\\n} else = \\\"fail\\\"\\n\\n# This part remains unchanged for all rules\\nresults contains result if {\\n\\tsome resource in input.resources[input.main_resource_type]\\n\\tresult := dd_output.format(resource, eval(resource))\\n}\\n\",\"resourceTypes\":[\"gcp_compute_disk\"]},\"complexRule\":false}},\"complianceSignalOptions\":{\"defaultActivationStatus\":null,\"defaultGroupByFields\":null,\"userActivationStatus\":true,\"userGroupByFields\":[\"@account_id\"]},\"cases\":[{\"name\":\"\",\"status\":\"info\",\"notifications\":[\"channel\"],\"condition\":\"a > 0\"}],\"message\":\"Cloud configuration rule\",\"tags\":[\"a:tag\"],\"hasExtendedTitle\":true,\"type\":\"cloud_configuration\",\"filters\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 31 Aug 2023 11:58:27 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/ijx-ftp-oew"}, "response": {"body": {"string": "{\"id\":\"ijx-ftp-oew\",\"version\":1,\"name\":\"Test-Get_a_cloud_configuration_rule_s_details_returns_OK_response-1693483107_cloud\",\"createdAt\":1693483108023,\"creationAuthorId\":1445416,\"isDefault\":false,\"isEnabled\":false,\"isDeleted\":false,\"isDeprecated\":false,\"queries\":[{\"query\":\"resource_type:gcp_compute_disk\",\"groupByFields\":[\"resource_type\",\"resource_id\"],\"distinctFields\":[],\"aggregation\":\"count\",\"name\":\"a\"}],\"options\":{\"keepAlive\":21600,\"maxSignalDuration\":86400,\"detectionMethod\":\"threshold\",\"evaluationWindow\":7200,\"complianceRuleOptions\":{\"resourceType\":\"gcp_compute_disk\",\"regoRule\":{\"policy\":\"package datadog\\n\\nimport data.datadog.output as dd_output\\n\\nimport future.keywords.contains\\nimport future.keywords.if\\nimport future.keywords.in\\n\\nmilliseconds_in_a_day := ((1000 * 60) * 60) * 24\\n\\neval(iam_service_account_key) = \\\"skip\\\" if {\\n\\tiam_service_account_key.disabled\\n} else = \\\"pass\\\" if {\\n\\t(iam_service_account_key.resource_seen_at / milliseconds_in_a_day) - (iam_service_account_key.valid_after_time / milliseconds_in_a_day) <= 90\\n} else = \\\"fail\\\"\\n\\n# This part remains unchanged for all rules\\nresults contains result if {\\n\\tsome resource in input.resources[input.main_resource_type]\\n\\tresult := dd_output.format(resource, eval(resource))\\n}\\n\",\"resourceTypes\":[\"gcp_compute_disk\"]},\"complexRule\":false}},\"complianceSignalOptions\":{\"defaultActivationStatus\":null,\"defaultGroupByFields\":null,\"userActivationStatus\":true,\"userGroupByFields\":[\"@account_id\"]},\"cases\":[{\"name\":\"\",\"status\":\"info\",\"notifications\":[\"channel\"],\"condition\":\"a > 0\"}],\"message\":\"Cloud configuration rule\",\"tags\":[\"a:tag\"],\"hasExtendedTitle\":true,\"type\":\"cloud_configuration\",\"filters\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 31 Aug 2023 11:58:27 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/ijx-ftp-oew"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 31 Aug 2023 11:58:27 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"cases\":[{\"notifications\":[\"channel\"],\"status\":\"info\"}],\"complianceSignalOptions\":{\"userActivationStatus\":true,\"userGroupByFields\":[\"@account_id\"]},\"isEnabled\":false,\"message\":\"Cloud configuration rule\",\"name\":\"Test-Get_a_cloud_configuration_rule_s_details_returns_OK_response-1693483107_cloud\",\"options\":{\"complianceRuleOptions\":{\"complexRule\":false,\"regoRule\":{\"policy\":\"package datadog\\n\\nimport data.datadog.output as dd_output\\n\\nimport future.keywords.contains\\nimport future.keywords.if\\nimport future.keywords.in\\n\\nmilliseconds_in_a_day := ((1000 * 60) * 60) * 24\\n\\neval(iam_service_account_key) = \\\"skip\\\" if {\\n\\tiam_service_account_key.disabled\\n} else = \\\"pass\\\" if {\\n\\t(iam_service_account_key.resource_seen_at / milliseconds_in_a_day) - (iam_service_account_key.valid_after_time / milliseconds_in_a_day) <= 90\\n} else = \\\"fail\\\"\\n\\n# This part remains unchanged for all rules\\nresults contains result if {\\n\\tsome resource in input.resources[input.main_resource_type]\\n\\tresult := dd_output.format(resource, eval(resource))\\n}\\n\",\"resourceTypes\":[\"gcp_compute_disk\"]},\"resourceType\":\"gcp_compute_disk\"}},\"tags\":[\"a:tag\"],\"type\":\"cloud_configuration\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules" + }, + "response": { + "body": { + "string": "{\"id\":\"ijx-ftp-oew\",\"version\":1,\"name\":\"Test-Get_a_cloud_configuration_rule_s_details_returns_OK_response-1693483107_cloud\",\"createdAt\":1693483108023,\"creationAuthorId\":1445416,\"isDefault\":false,\"isEnabled\":false,\"isDeleted\":false,\"isDeprecated\":false,\"queries\":[{\"query\":\"resource_type:gcp_compute_disk\",\"groupByFields\":[\"resource_type\",\"resource_id\"],\"distinctFields\":[],\"aggregation\":\"count\",\"name\":\"a\"}],\"options\":{\"keepAlive\":21600,\"maxSignalDuration\":86400,\"detectionMethod\":\"threshold\",\"evaluationWindow\":7200,\"complianceRuleOptions\":{\"resourceType\":\"gcp_compute_disk\",\"regoRule\":{\"policy\":\"package datadog\\n\\nimport data.datadog.output as dd_output\\n\\nimport future.keywords.contains\\nimport future.keywords.if\\nimport future.keywords.in\\n\\nmilliseconds_in_a_day := ((1000 * 60) * 60) * 24\\n\\neval(iam_service_account_key) = \\\"skip\\\" if {\\n\\tiam_service_account_key.disabled\\n} else = \\\"pass\\\" if {\\n\\t(iam_service_account_key.resource_seen_at / milliseconds_in_a_day) - (iam_service_account_key.valid_after_time / milliseconds_in_a_day) <= 90\\n} else = \\\"fail\\\"\\n\\n# This part remains unchanged for all rules\\nresults contains result if {\\n\\tsome resource in input.resources[input.main_resource_type]\\n\\tresult := dd_output.format(resource, eval(resource))\\n}\\n\",\"resourceTypes\":[\"gcp_compute_disk\"]},\"complexRule\":false}},\"complianceSignalOptions\":{\"defaultActivationStatus\":null,\"defaultGroupByFields\":null,\"userActivationStatus\":true,\"userGroupByFields\":[\"@account_id\"]},\"cases\":[{\"name\":\"\",\"status\":\"info\",\"notifications\":[\"channel\"],\"condition\":\"a > 0\"}],\"message\":\"Cloud configuration rule\",\"tags\":[\"a:tag\"],\"hasExtendedTitle\":true,\"type\":\"cloud_configuration\",\"filters\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 31 Aug 2023 11:58:27 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/ijx-ftp-oew" + }, + "response": { + "body": { + "string": "{\"id\":\"ijx-ftp-oew\",\"version\":1,\"name\":\"Test-Get_a_cloud_configuration_rule_s_details_returns_OK_response-1693483107_cloud\",\"createdAt\":1693483108023,\"creationAuthorId\":1445416,\"isDefault\":false,\"isEnabled\":false,\"isDeleted\":false,\"isDeprecated\":false,\"queries\":[{\"query\":\"resource_type:gcp_compute_disk\",\"groupByFields\":[\"resource_type\",\"resource_id\"],\"distinctFields\":[],\"aggregation\":\"count\",\"name\":\"a\"}],\"options\":{\"keepAlive\":21600,\"maxSignalDuration\":86400,\"detectionMethod\":\"threshold\",\"evaluationWindow\":7200,\"complianceRuleOptions\":{\"resourceType\":\"gcp_compute_disk\",\"regoRule\":{\"policy\":\"package datadog\\n\\nimport data.datadog.output as dd_output\\n\\nimport future.keywords.contains\\nimport future.keywords.if\\nimport future.keywords.in\\n\\nmilliseconds_in_a_day := ((1000 * 60) * 60) * 24\\n\\neval(iam_service_account_key) = \\\"skip\\\" if {\\n\\tiam_service_account_key.disabled\\n} else = \\\"pass\\\" if {\\n\\t(iam_service_account_key.resource_seen_at / milliseconds_in_a_day) - (iam_service_account_key.valid_after_time / milliseconds_in_a_day) <= 90\\n} else = \\\"fail\\\"\\n\\n# This part remains unchanged for all rules\\nresults contains result if {\\n\\tsome resource in input.resources[input.main_resource_type]\\n\\tresult := dd_output.format(resource, eval(resource))\\n}\\n\",\"resourceTypes\":[\"gcp_compute_disk\"]},\"complexRule\":false}},\"complianceSignalOptions\":{\"defaultActivationStatus\":null,\"defaultGroupByFields\":null,\"userActivationStatus\":true,\"userGroupByFields\":[\"@account_id\"]},\"cases\":[{\"name\":\"\",\"status\":\"info\",\"notifications\":[\"channel\"],\"condition\":\"a > 0\"}],\"message\":\"Cloud configuration rule\",\"tags\":[\"a:tag\"],\"hasExtendedTitle\":true,\"type\":\"cloud_configuration\",\"filters\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 31 Aug 2023 11:58:27 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/ijx-ftp-oew" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 31 Aug 2023 11:58:27 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Get-a-finding-returns-OK-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Get-a-finding-returns-OK-response.json index a45a34274..cd02b2314 100644 --- a/tests/scenarios/cassettes/v2/security_monitoring/Get-a-finding-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/security_monitoring/Get-a-finding-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/posture_management/findings/AgAAAYd59gjghzF52gAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFCRTRvV1lFeEo4SlFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz"}, "response": {"body": {"string": "{\"data\":{\"id\":\"AgAAAYd59gjghzF52gAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFCRTRvV1lFeEo4SlFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"detailed_finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"message\":\"%%%\\n## Description\\n\\nUpdate your ACL permission to remove `WRITE_ACP` and `FULL_CONTROL` accesses for authenticated and unauthenticated public users.\\n\\n## Rationale\\n\\n`WRITE_ACP` access gives any authenticated AWS accounts or IAM users or unauthenticated users READ and WRITE Access Control List (ACL) permissions. `FULL_CONTROL` encompasses `WRITE_ACP` so whenever `WRITE_ACP` and `FULL_CONTROL` permissions are granted to any AWS `Authenticated User` or `Unauthenticated User`, it grants administrative access to view, upload, modify and delete S3 objects without restriction, which can lead to potential data loss or unintended charges on your AWS bill.\\n\\n\\n## Remediation\\n\\n### From the console:\\n\\nFollow the [Configuring ACLs: Using the S3 console to set ACL permissions for a bucket][1] docs to remove `WRITE_ACP` or `FULL_CONTROL` access and update ACL permissions.\\n\\n### From the command line:\\n\\n1. Run `put-bucket-acl` with your [bucket name and ACL][2] to `private`.\\n\\n ```\\n aws s3api put-bucket-acl\\n --bucket your-s3-bucket-name\\n --acl private\\n ```\\n\\n[1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/managing-acls.html\\n[2]: https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-acl.html#synopsis\\n\\n%%%\",\"mute\":{\"muted\":false},\"resource\":\"dd-chaos-cloud-xuxu-eu-north-1\",\"resource_configuration\":{\"account_id\":\"013910733512\",\"bucket_arn\":\"arn:aws:s3:::dd-chaos-cloud-xuxu-eu-north-1\",\"bucket_policy_statement\":[{\"account_id\":\"013910733512\",\"bucket_arn\":\"arn:aws:s3:::dd-chaos-cloud-xuxu-eu-north-1\",\"condition\":{},\"policy_principal\":{\"principal\":\"*\"},\"statement_action\":[\"s3:*\"],\"statement_effect\":\"Deny\",\"statement_has_condition\":true,\"statement_id\":1,\"statement_resource\":[\"arn:aws:s3:::dd-chaos-cloud-xuxu-eu-north-1/*\"],\"statement_sid\":\"DefaultPolicy\"}],\"creation_date\":1594937050000,\"name\":\"dd-chaos-cloud-xuxu-eu-north-1\",\"owner\":{\"id\":\"704bba538dc5e0b23934c261108592d6222088d0c4c2fa2ba90f0ed7d03a6efb\"},\"policy_status\":{\"is_public\":false},\"public_access_block_configuration\":{\"block_public_acls\":false,\"block_public_policy\":false,\"ignore_public_acls\":false,\"restrict_public_buckets\":true},\"resource_type\":\"aws_s3_bucket\",\"server_side_encryption_configuration\":{\"rules\":[{\"apply_server_side_encryption_by_default\":{\"sse_algorithm\":\"AES256\"},\"bucket_key_enabled\":false}]}},\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"region:eu-north-1\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}}}", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 13 Apr 2023 14:31:03 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/posture_management/findings/AgAAAYd59gjghzF52gAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFCRTRvV1lFeEo4SlFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"AgAAAYd59gjghzF52gAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFCRTRvV1lFeEo4SlFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"detailed_finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"message\":\"%%%\\n## Description\\n\\nUpdate your ACL permission to remove `WRITE_ACP` and `FULL_CONTROL` accesses for authenticated and unauthenticated public users.\\n\\n## Rationale\\n\\n`WRITE_ACP` access gives any authenticated AWS accounts or IAM users or unauthenticated users READ and WRITE Access Control List (ACL) permissions. `FULL_CONTROL` encompasses `WRITE_ACP` so whenever `WRITE_ACP` and `FULL_CONTROL` permissions are granted to any AWS `Authenticated User` or `Unauthenticated User`, it grants administrative access to view, upload, modify and delete S3 objects without restriction, which can lead to potential data loss or unintended charges on your AWS bill.\\n\\n\\n## Remediation\\n\\n### From the console:\\n\\nFollow the [Configuring ACLs: Using the S3 console to set ACL permissions for a bucket][1] docs to remove `WRITE_ACP` or `FULL_CONTROL` access and update ACL permissions.\\n\\n### From the command line:\\n\\n1. Run `put-bucket-acl` with your [bucket name and ACL][2] to `private`.\\n\\n ```\\n aws s3api put-bucket-acl\\n --bucket your-s3-bucket-name\\n --acl private\\n ```\\n\\n[1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/managing-acls.html\\n[2]: https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-acl.html#synopsis\\n\\n%%%\",\"mute\":{\"muted\":false},\"resource\":\"dd-chaos-cloud-xuxu-eu-north-1\",\"resource_configuration\":{\"account_id\":\"013910733512\",\"bucket_arn\":\"arn:aws:s3:::dd-chaos-cloud-xuxu-eu-north-1\",\"bucket_policy_statement\":[{\"account_id\":\"013910733512\",\"bucket_arn\":\"arn:aws:s3:::dd-chaos-cloud-xuxu-eu-north-1\",\"condition\":{},\"policy_principal\":{\"principal\":\"*\"},\"statement_action\":[\"s3:*\"],\"statement_effect\":\"Deny\",\"statement_has_condition\":true,\"statement_id\":1,\"statement_resource\":[\"arn:aws:s3:::dd-chaos-cloud-xuxu-eu-north-1/*\"],\"statement_sid\":\"DefaultPolicy\"}],\"creation_date\":1594937050000,\"name\":\"dd-chaos-cloud-xuxu-eu-north-1\",\"owner\":{\"id\":\"704bba538dc5e0b23934c261108592d6222088d0c4c2fa2ba90f0ed7d03a6efb\"},\"policy_status\":{\"is_public\":false},\"public_access_block_configuration\":{\"block_public_acls\":false,\"block_public_policy\":false,\"ignore_public_acls\":false,\"restrict_public_buckets\":true},\"resource_type\":\"aws_s3_bucket\",\"server_side_encryption_configuration\":{\"rules\":[{\"apply_server_side_encryption_by_default\":{\"sse_algorithm\":\"AES256\"},\"bucket_key_enabled\":false}]}},\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"region:eu-north-1\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 13 Apr 2023 14:31:03 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Get-a-list-of-security-signals-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v2/security_monitoring/Get-a-list-of-security-signals-returns-OK-response-with-pagination.json index cbc442bc0..f8df041a4 100644 --- a/tests/scenarios/cassettes/v2/security_monitoring/Get-a-list-of-security-signals-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v2/security_monitoring/Get-a-list-of-security-signals-returns-OK-response-with-pagination.json @@ -1 +1,73 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"filter\":{\"from\":\"2022-04-13T11:17:57.080Z\",\"query\":\"security:attack status:high\",\"to\":\"2022-04-13T11:32:57.080Z\"},\"page\":{\"limit\":2},\"sort\":\"timestamp\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/signals/search"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFlRFg2UlExTW1SUUFBQUFCQldVRmxSRmcyVWtGQlJEWk9ObWg0UkhOSU9HRjNRVUUifQ\"}},\"data\":[{\"attributes\":{\"status\":\"high\",\"service\":[\"\"],\"tags\":[\"security:attack\",\"kube_cluster_name:drampa\",\"technique:t1556-modify-authentication-process\",\"source:runtime-security-agent\",\"env:prod\",\"tactic:ta0003-persistence\",\"fim:true\",\"technique:t1556-modify-authentication-process\",\"source:runtime-security-agent\",\"security:attack\",\"tactic:ta0003-persistence\",\"datacenter:edge-us3.foo.bar\",\"env:prod\",\"type:open\",\"rule_id:pam_modification_utimes\",\"team:groupa\",\"kube_node_role:compute\",\"type:chmod\",\"agent_support_urgency:high\",\"cluster_name:drampa\",\"kube_cluster_name:drampa\",\"site:corpo1.com\",\"rule_id:pam_modification_chmod\",\"rule_id:pam_modification_open\",\"type:utimes\",\"ng_local_storage:false\",\"instance_type:c5.xlarge\",\"cpu_arch:amd64\",\"ng_cluster_autoscaler:true\",\"kube_node_role:groupa-api-ng\"],\"timestamp\":\"2022-04-12T13:54:02.099Z\",\"host\":\"i-0439f25d8385802b8\",\"attributes\":{\"status\":\"info\",\"entities\":[\"host:i-0439f25d8385802b8\",\"@usr.id:root\"],\"hostname\":\"i-0439f25d8385802b8\",\"relatedLogsQueryUrl\":\"/logs?query=%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_utimes%29+host%3A%22i-0439f25d8385802b8%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_chown%29+host%3A%22i-0439f25d8385802b8%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_chmod%29+host%3A%22i-0439f25d8385802b8%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_link%29+host%3A%22i-0439f25d8385802b8%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_open%29+host%3A%22i-0439f25d8385802b8%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_unlink%29+host%3A%22i-0439f25d8385802b8%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_rename%29+host%3A%22i-0439f25d8385802b8%22%29&from_ts=1649770439000&to_ts=1649858339000&live=false&integration_id=security_monitoring&integration_short_name=security_investigation\",\"file\":{\"path\":[\"/etc/pam.conf\",\"/etc/pam.d/common-password\",\"/etc/pam.d/common-account\",\"/etc/pam.d/common-session-noninteractive\",\"/etc/pam.d/common-session\",\"/etc/pam.d/chpasswd\",\"/etc/pam.d/chfn\",\"/etc/pam.d/common-auth\",\"/etc/pam.d/chsh\"],\"flags\":[\"O_TRUNC\",\"O_WRONLY\",\"O_CREAT\",\"O_CLOEXEC\"],\"name\":[\"pam.conf\",\"chfn\",\"common-session-noninteractive\",\"chsh\",\"common-password\",\"common-auth\",\"common-session\",\"common-account\",\"chpasswd\"]},\"internal_id\":\"xgh-dfy-ywf-19-AYAeDXzzAACtiRYoIqxh0gAN--1754712357\",\"workflow\":{\"events_matched\":31,\"rule\":{\"defaultRuleVersion\":19,\"type\":\"Workload Security\",\"defaultRuleId\":\"tz1-6vg-1yz\",\"detectionMethod\":\"threshold\",\"version\":19,\"isDefaultRule\":true,\"id\":\"xgh-dfy-ywf\",\"name\":\"PAM Configuration Files Modification\"},\"high_cardinality\":{\"attributes\":[],\"tags\":[]},\"first_seen\":\"2022-04-12T13:53:59.000Z\",\"triage\":{\"assignee\":{\"name\":\"Unassigned\",\"id\":-1},\"state\":\"open\",\"incidentIds\":[],\"updater\":{\"handle\":\"\",\"name\":\"\"},\"creator\":{\"handle\":\"\",\"name\":\"\"}},\"last_seen\":\"2022-04-12T13:53:59.000Z\"},\"process\":{\"executable\":{\"path\":\"/usr/local/bin/containerd\",\"name\":\"containerd\"},\"args\":\"info\",\"pid\":683,\"parent\":{\"executable\":{\"path\":\"/usr/lib/systemd/systemd\",\"name\":\"systemd\"},\"comm\":\"systemd\"}},\"groupByPaths\":[\"host\"],\"title\":\"PAM Configuration Files Modification - pam_modification\",\"agent\":{\"version\":\"7.35.0\",\"rule_id\":[\"pam_modification_utimes\",\"pam_modification_open\",\"pam_modification_chmod\"],\"policy_version\":\"1.4.3\"},\"triggeringRuleCase\":{\"status\":\"high\",\"name\":\"pam_modification\",\"condition\":\"pam_modification_chmod > 0 || pam_modification_chown > 0 || pam_modification_link > 0 || pam_modification_rename > 0 || pam_modification_open > 0 || pam_modification_unlink > 0 || pam_modification_utimes > 0\"},\"service\":\"\",\"usr\":{\"id\":\"root\"},\"samples\":[{\"eventId\":\"AQAAAYAeDXDn_e1ZxAAAAABBWUFlRFh6ekFBQ3RpUllvSXF4aDBnQWY\",\"content\":{\"status\":\"info\",\"service\":\"\",\"tags\":[\"source:runtime-security-agent\",\"type:chmod\",\"rule_id:pam_modification_chmod\",\"agent_support_urgency:high\",\"cluster_name:drampa\",\"cpu_arch:amd64\",\"datacenter:edge-us3.foo.bar\",\"env:prod\",\"instance_type:c5.xlarge\",\"kube_cluster_name:drampa\",\"kube_node_role:compute\",\"kube_node_role:groupa-api-ng\",\"ng_cluster_autoscaler:true\",\"ng_local_storage:false\",\"site:datadoghq.com\",\"team:groupa\"],\"timestamp\":\"2022-04-12T13:53:59.015Z\",\"ingest_size_in_bytes\":7702,\"custom\":{\"status\":\"info\",\"service\":\"\",\"title\":\"PAM may have been modified without authorization\",\"process\":{\"executable\":{\"group\":\"root\",\"name\":\"containerd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-17T09:32:05.508169636Z\",\"modification_time\":\"2021-10-06T12:45:08Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/local/bin/containerd\",\"inode\":1181,\"uid\":0},\"ancestors\":[{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:33Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:33Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}}],\"group\":\"root\",\"uid\":0,\"parent\":{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:33Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:33Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}},\"argv0\":\"--log-level\",\"exec_time\":\"2022-04-12T13:51:40Z\",\"args\":[\"info\"],\"pid\":683,\"gid\":0,\"comm\":\"containerd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:40Z\",\"tid\":2976,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"},\"ppid\":1},\"timestamp\":1649771639015,\"hostname\":\"i-0439f25d8385802b8\",\"agent\":{\"policy_name\":\"default.policy\",\"rule_id\":\"pam_modification_chmod\",\"version\":\"7.35.0\",\"policy_version\":\"1.4.3\"},\"usr\":{\"group\":\"root\",\"id\":\"root\"},\"file\":{\"change_time\":\"2022-04-12T13:53:52.770147011Z\",\"group\":\"root\",\"uid\":0,\"mount_id\":1443,\"user\":\"root\",\"destination\":{\"gid\":0,\"mode\":420,\"uid\":0},\"modification_time\":\"2022-04-12T13:53:52.770147011Z\",\"gid\":0,\"mode\":33188,\"filesystem\":\"ext4\",\"path\":\"/etc/pam.d/common-auth\",\"inode\":1543473,\"name\":\"common-auth\"},\"date\":\"2022-04-12T13:53:52.569968893Z\",\"evt\":{\"category\":\"File Activity\",\"outcome\":\"Success\",\"name\":\"chmod\"}},\"source\":\"runtime-security-agent\",\"host\":\"i-0439f25d8385802b8\",\"tiebreaker\":-34776636,\"host_id\":7252574590},\"queryIndex\":0,\"trackKey\":{\"orgId\":2,\"type\":\"logs\"},\"id\":\"AYAeDXzzAACtiRYoIqxh0gAf\"},{\"eventId\":\"AQAAAYAeDXDl_e1ZsgAAAABBWUFlRFh6ekFBQ3RpUllvSXF4aDBnQU4\",\"content\":{\"status\":\"info\",\"service\":\"\",\"tags\":[\"type:open\",\"source:runtime-security-agent\",\"rule_id:pam_modification_open\",\"agent_support_urgency:high\",\"cluster_name:drampa\",\"cpu_arch:amd64\",\"datacenter:edge-us3.foo.bar\",\"env:prod\",\"instance_type:c5.xlarge\",\"kube_cluster_name:drampa\",\"kube_node_role:compute\",\"kube_node_role:groupa-api-ng\",\"ng_cluster_autoscaler:true\",\"ng_local_storage:false\",\"site:datadoghq.com\",\"team:groupa\"],\"timestamp\":\"2022-04-12T13:53:59.013Z\",\"ingest_size_in_bytes\":7747,\"custom\":{\"status\":\"info\",\"service\":\"\",\"title\":\"PAM may have been modified without authorization\",\"process\":{\"executable\":{\"group\":\"root\",\"name\":\"containerd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-17T09:32:05.508169636Z\",\"modification_time\":\"2021-10-06T12:45:08Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/local/bin/containerd\",\"inode\":1181,\"uid\":0},\"ancestors\":[{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:33Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:33Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}}],\"group\":\"root\",\"uid\":0,\"parent\":{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:33Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:33Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}},\"argv0\":\"--log-level\",\"exec_time\":\"2022-04-12T13:51:40Z\",\"args\":[\"info\"],\"pid\":683,\"gid\":0,\"comm\":\"containerd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:40Z\",\"tid\":2976,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"},\"ppid\":1},\"timestamp\":1649771639013,\"hostname\":\"i-0439f25d8385802b8\",\"agent\":{\"policy_name\":\"default.policy\",\"rule_id\":\"pam_modification_open\",\"version\":\"7.35.0\",\"policy_version\":\"1.4.3\"},\"usr\":{\"group\":\"root\",\"id\":\"root\"},\"file\":{\"change_time\":\"2022-04-12T13:53:52.770147011Z\",\"group\":\"root\",\"uid\":0,\"mount_id\":1443,\"user\":\"root\",\"destination\":{\"gid\":0,\"mode\":420,\"uid\":0},\"modification_time\":\"2022-04-12T13:53:52.770147011Z\",\"gid\":0,\"flags\":[\"O_CLOEXEC\",\"O_CREAT\",\"O_TRUNC\",\"O_WRONLY\"],\"mode\":33188,\"filesystem\":\"ext4\",\"path\":\"/etc/pam.d/chfn\",\"inode\":1543469,\"name\":\"chfn\"},\"date\":\"2022-04-12T13:53:52.569082817Z\",\"evt\":{\"category\":\"File Activity\",\"outcome\":\"Success\",\"name\":\"open\"}},\"source\":\"runtime-security-agent\",\"host\":\"i-0439f25d8385802b8\",\"tiebreaker\":-34776654,\"host_id\":7252574590},\"queryIndex\":4,\"trackKey\":{\"orgId\":2,\"type\":\"logs\"},\"id\":\"AYAeDXzzAACtiRYoIqxh0gAN\"}],\"queries\":[{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":16,\"distinctValues\":[],\"value\":16.0},\"name\":\"pam_modification_chmod\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_chmod)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_chown\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_chown)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_link\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_link)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_rename\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_rename)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":8,\"distinctValues\":[],\"value\":8.0},\"name\":\"pam_modification_open\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_open)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_unlink\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_unlink)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":7,\"distinctValues\":[],\"value\":7.0},\"name\":\"pam_modification_utimes\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_utimes)\",\"groupByPaths\":[\"host\"]}],\"evt\":{\"category\":\"File Activity\",\"outcome\":\"Success\",\"name\":[\"chmod\",\"open\",\"utimes\"]}},\"message\":\"%%%\\n## Goal\\nDetect modifications to `pam.d` directory.\\n\\n## Strategy\\nLinux Pluggable Authentication Modules (PAM) provide authentication for applications and services. Authentication modules in the PAM system are setup and configured under the `/etc/pam.d/` directory. An attacker may attempt to modify or add an authentication module in PAM in order to bypass the authentication process, or reveal system credentials.\\n\\n## Triage and response\\n1. Check to see what changes were made to `/etc/pam.d/`.\\n2. Check whether the changes were a part of known system-setup or maintenance.\\n3. If these changes were unauthorized, roll back the host in question to a known good PAM configuration, or replace the system with a known-good system image.\\n\\n%%%\"},\"type\":\"signal\",\"id\":\"AQAAAYAeDXzzSJUmQwAAAABBWUFlRFh6ekFBQnpOV2hGMTdVRzF3QUE\"},{\"attributes\":{\"status\":\"high\",\"service\":[\"\"],\"tags\":[\"security:attack\",\"technique:t1556-modify-authentication-process\",\"source:runtime-security-agent\",\"tactic:ta0003-persistence\",\"fim:true\",\"technique:t1556-modify-authentication-process\",\"source:runtime-security-agent\",\"security:attack\",\"tactic:ta0003-persistence\",\"type:utimes\",\"type:open\",\"rule_id:pam_modification_utimes\",\"type:chmod\",\"rule_id:pam_modification_chmod\",\"rule_id:pam_modification_open\"],\"timestamp\":\"2022-04-12T13:54:02.513Z\",\"host\":\"i-07e829490e315fe9e\",\"attributes\":{\"status\":\"info\",\"entities\":[\"host:i-07e829490e315fe9e\",\"@usr.id:root\"],\"hostname\":\"i-07e829490e315fe9e\",\"relatedLogsQueryUrl\":\"/logs?query=%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_utimes%29+host%3A%22i-07e829490e315fe9e%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_chown%29+host%3A%22i-07e829490e315fe9e%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_chmod%29+host%3A%22i-07e829490e315fe9e%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_link%29+host%3A%22i-07e829490e315fe9e%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_open%29+host%3A%22i-07e829490e315fe9e%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_unlink%29+host%3A%22i-07e829490e315fe9e%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_rename%29+host%3A%22i-07e829490e315fe9e%22%29&from_ts=1649770441000&to_ts=1649858341000&live=false&integration_id=security_monitoring&integration_short_name=security_investigation\",\"file\":{\"flags\":[\"O_TRUNC\",\"O_WRONLY\",\"O_CLOEXEC\",\"O_CREAT\"]},\"internal_id\":\"xgh-dfy-ywf-19-AYAeDX6RAAASN8tjA-_jFwAN-1632335100\",\"workflow\":{\"events_matched\":41,\"rule\":{\"defaultRuleVersion\":19,\"type\":\"Workload Security\",\"defaultRuleId\":\"tz1-6vg-1yz\",\"detectionMethod\":\"threshold\",\"version\":19,\"isDefaultRule\":true,\"id\":\"xgh-dfy-ywf\",\"name\":\"PAM Configuration Files Modification\"},\"high_cardinality\":{\"attributes\":[\"@file.path\",\"@file.name\"],\"tags\":[]},\"first_seen\":\"2022-04-12T13:54:01.000Z\",\"triage\":{\"assignee\":{\"name\":\"Unassigned\",\"id\":-1},\"state\":\"open\",\"incidentIds\":[],\"updater\":{\"handle\":\"\",\"name\":\"\"},\"creator\":{\"handle\":\"\",\"name\":\"\"}},\"last_seen\":\"2022-04-12T13:54:01.000Z\"},\"process\":{\"executable\":{\"path\":\"/usr/local/bin/containerd\",\"name\":\"containerd\"},\"args\":\"info\",\"pid\":692,\"parent\":{\"executable\":{\"path\":\"/usr/lib/systemd/systemd\",\"name\":\"systemd\"},\"comm\":\"systemd\"}},\"groupByPaths\":[\"host\"],\"title\":\"PAM Configuration Files Modification - pam_modification\",\"agent\":{\"version\":\"7.35.0\",\"rule_id\":[\"pam_modification_utimes\",\"pam_modification_open\",\"pam_modification_chmod\"],\"policy_version\":\"1.4.3\"},\"triggeringRuleCase\":{\"status\":\"high\",\"name\":\"pam_modification\",\"condition\":\"pam_modification_chmod > 0 || pam_modification_chown > 0 || pam_modification_link > 0 || pam_modification_rename > 0 || pam_modification_open > 0 || pam_modification_unlink > 0 || pam_modification_utimes > 0\"},\"service\":\"\",\"usr\":{\"id\":\"root\"},\"samples\":[{\"eventId\":\"AQAAAYAeDXmP3Bju3wAAAABBWUFlRFg2UkFBQVNOOHRqQS1fakZ3QWo\",\"content\":{\"status\":\"info\",\"service\":\"\",\"tags\":[\"source:runtime-security-agent\",\"type:chmod\",\"rule_id:pam_modification_chmod\"],\"timestamp\":\"2022-04-12T13:54:01.231Z\",\"ingest_size_in_bytes\":7693,\"custom\":{\"status\":\"info\",\"service\":\"\",\"title\":\"PAM may have been modified without authorization\",\"process\":{\"executable\":{\"group\":\"root\",\"name\":\"containerd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-17T09:32:05.508169636Z\",\"modification_time\":\"2021-10-06T12:45:08Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/local/bin/containerd\",\"inode\":1181,\"uid\":0},\"ancestors\":[{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:46Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:46Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}}],\"group\":\"root\",\"uid\":0,\"parent\":{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:46Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:46Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}},\"argv0\":\"--log-level\",\"exec_time\":\"2022-04-12T13:51:53Z\",\"args\":[\"info\"],\"pid\":692,\"gid\":0,\"comm\":\"containerd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:53Z\",\"tid\":935,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"},\"ppid\":1},\"timestamp\":1649771641231,\"hostname\":\"i-07e829490e315fe9e\",\"agent\":{\"policy_name\":\"default.policy\",\"rule_id\":\"pam_modification_chmod\",\"version\":\"7.35.0\",\"policy_version\":\"1.4.3\"},\"usr\":{\"group\":\"root\",\"id\":\"root\"},\"file\":{\"change_time\":\"2022-04-12T13:53:54.973243639Z\",\"group\":\"root\",\"uid\":0,\"mount_id\":1444,\"user\":\"root\",\"destination\":{\"gid\":0,\"mode\":420,\"uid\":0},\"modification_time\":\"2022-04-12T13:53:54.973243639Z\",\"gid\":0,\"mode\":33188,\"filesystem\":\"ext4\",\"path\":\"/etc/pam.d/runuser\",\"inode\":1542342,\"name\":\"runuser\"},\"date\":\"2022-04-12T13:53:54.650254404Z\",\"evt\":{\"category\":\"File Activity\",\"outcome\":\"Success\",\"name\":\"chmod\"}},\"source\":\"runtime-security-agent\",\"host\":\"i-07e829490e315fe9e\",\"tiebreaker\":-602345761,\"host_id\":7252584032},\"queryIndex\":0,\"trackKey\":{\"orgId\":2,\"type\":\"logs\"},\"id\":\"AYAeDX6RAAASN8tjA-_jFwAj\"},{\"eventId\":\"AQAAAYAeDXmO3BjuyQAAAABBWUFlRFg2UkFBQVNOOHRqQS1fakZ3QU4\",\"content\":{\"status\":\"info\",\"service\":\"\",\"tags\":[\"type:open\",\"source:runtime-security-agent\",\"rule_id:pam_modification_open\"],\"timestamp\":\"2022-04-12T13:54:01.230Z\",\"ingest_size_in_bytes\":7796,\"custom\":{\"status\":\"info\",\"service\":\"\",\"title\":\"PAM may have been modified without authorization\",\"process\":{\"executable\":{\"group\":\"root\",\"name\":\"containerd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-17T09:32:05.508169636Z\",\"modification_time\":\"2021-10-06T12:45:08Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/local/bin/containerd\",\"inode\":1181,\"uid\":0},\"ancestors\":[{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:46Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:46Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}}],\"group\":\"root\",\"uid\":0,\"parent\":{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:46Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:46Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}},\"argv0\":\"--log-level\",\"exec_time\":\"2022-04-12T13:51:53Z\",\"args\":[\"info\"],\"pid\":692,\"gid\":0,\"comm\":\"containerd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:53Z\",\"tid\":935,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"},\"ppid\":1},\"timestamp\":1649771641230,\"hostname\":\"i-07e829490e315fe9e\",\"agent\":{\"policy_name\":\"default.policy\",\"rule_id\":\"pam_modification_open\",\"version\":\"7.35.0\",\"policy_version\":\"1.4.3\"},\"usr\":{\"group\":\"root\",\"id\":\"root\"},\"file\":{\"change_time\":\"2022-04-12T13:53:54.973243639Z\",\"group\":\"root\",\"uid\":0,\"mount_id\":1444,\"user\":\"root\",\"destination\":{\"gid\":0,\"mode\":420,\"uid\":0},\"modification_time\":\"2022-04-12T13:53:54.973243639Z\",\"gid\":0,\"flags\":[\"O_CLOEXEC\",\"O_CREAT\",\"O_TRUNC\",\"O_WRONLY\"],\"mode\":33188,\"filesystem\":\"ext4\",\"path\":\"/etc/pam.d/common-session-noninteractive\",\"inode\":1542337,\"name\":\"common-session-noninteractive\"},\"date\":\"2022-04-12T13:53:54.649642196Z\",\"evt\":{\"category\":\"File Activity\",\"outcome\":\"Success\",\"name\":\"open\"}},\"source\":\"runtime-security-agent\",\"host\":\"i-07e829490e315fe9e\",\"tiebreaker\":-602345783,\"host_id\":7252584032},\"queryIndex\":4,\"trackKey\":{\"orgId\":2,\"type\":\"logs\"},\"id\":\"AYAeDX6RAAASN8tjA-_jFwAN\"}],\"queries\":[{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":20,\"distinctValues\":[],\"value\":20.0},\"name\":\"pam_modification_chmod\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_chmod)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_chown\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_chown)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_link\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_link)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_rename\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_rename)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":11,\"distinctValues\":[],\"value\":11.0},\"name\":\"pam_modification_open\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_open)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_unlink\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_unlink)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":10,\"distinctValues\":[],\"value\":10.0},\"name\":\"pam_modification_utimes\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_utimes)\",\"groupByPaths\":[\"host\"]}],\"evt\":{\"category\":\"File Activity\",\"outcome\":\"Success\",\"name\":[\"chmod\",\"open\",\"utimes\"]}},\"message\":\"%%%\\n## Goal\\nDetect modifications to `pam.d` directory.\\n\\n## Strategy\\nLinux Pluggable Authentication Modules (PAM) provide authentication for applications and services. Authentication modules in the PAM system are setup and configured under the `/etc/pam.d/` directory. An attacker may attempt to modify or add an authentication module in PAM in order to bypass the authentication process, or reveal system credentials.\\n\\n## Triage and response\\n1. Check to see what changes were made to `/etc/pam.d/`.\\n2. Check whether the changes were a part of known system-setup or maintenance.\\n3. If these changes were unauthorized, roll back the host in question to a known good PAM configuration, or replace the system with a known-good system image.\\n\\n%%%\"},\"type\":\"signal\",\"id\":\"AQAAAYAeDX6RQ1MmRQAAAABBWUFlRFg2UkFBRDZONmh4RHNIOGF3QUE\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/security_monitoring/signals?sort=timestamp&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFlRFg2UlExTW1SUUFBQUFCQldVRmxSRmcyVWtGQlJEWk9ObWg0UkhOSU9HRjNRVUUifQ&filter%5Bfrom%5D=now-15m&filter%5Bquery%5D=security%3Aattack+status%3Ahigh&page%5Blimit%5D=2\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 13 Apr 2022 11:32:57 GMT"}, {"request": {"body": {"string": "{\"filter\":{\"from\":\"2022-04-13T11:17:57.080Z\",\"query\":\"security:attack status:high\",\"to\":\"2022-04-13T11:32:57.080Z\"},\"page\":{\"cursor\":\"eyJhZnRlciI6IkFRQUFBWUFlRFg2UlExTW1SUUFBQUFCQldVRmxSRmcyVWtGQlJEWk9ObWg0UkhOSU9HRjNRVUUifQ\",\"limit\":2},\"sort\":\"timestamp\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/signals/search"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFlRGFHZENMd21QZ0FBQUFCQldVRmxSR0ZIWkVGQlJFa3lkakpuYjFCSmF6Um5RVUUifQ\"}},\"data\":[{\"attributes\":{\"status\":\"high\",\"service\":[\"route53\"],\"tags\":[\"security:attack\",\"instance-id:i-001d8edd861c028cb\",\"kube_cluster_name:spam\",\"technique:t1552-unsecured-credentials\",\"source:route53\",\"env:prod\",\"tactic:ta0006-credential-access\",\"technique:t1552-unsecured-credentials\",\"source:route53\",\"tactic:ta0006-credential-access\",\"security:attack\",\"name:logs-general_event-workloads-16cpu-32gb-v1\",\"cost_isolation_id:netflow-shopify\",\"admission.corpo1.com/mutate-pods:true\",\"kernel:none\",\"k8s.io/cluster-autoscaler/node-template/resources/memory:30432360858\",\"account:prod\",\"k8s.io/cluster-autoscaler/node-template/resources/ephemeral-storage:18747532246\",\"agent_support_urgency:high\",\"security-group:sg-035e4410c7cbfcad1\",\"security-group-name:common\",\"kube_node_role:event-workloads-16cpu-32gb-v1\",\"availability-zone:us-east-1b\",\"role:kube-node\",\"admission.datadoghq.com/validate-pods:true\",\"subscription:paid\",\"forwarder_version:3.41.0\",\"vpc:vpc-4b00eb31\",\"cost_product:netflow\",\"app.kubernetes.io/managed-by:helm\",\"nodegroups.datadoghq.com/name:event-workloads-16cpu-32gb-v1\",\"instance-type:c6i.4xlarge\",\"cost_customer:shopify\",\"admission.datadoghq.com/validate-services:true\",\"kube_cluster_name:spam\",\"k8s.io/cluster-autoscaler/node-template/label/chart_name:logs-nodegroups\",\"nodegroup:logs-general_event-workloads-16cpu-32gb-v1\",\"forwardername:datadog-forwarder-prod-org-2\",\"k8s.io/cluster-autoscaler/node-template/resources/cpu:15900m\",\"kubernetes.io/cluster/spam:owned\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.datadoghq.com/namespace:logs-general\",\"security-group:sg-ca164381\",\"nodegroups.datadoghq.com/namespace:logs-general\",\"nodegroups.datadoghq.com/cluster-autoscaler:true\",\"kube_node_role:compute\",\"k8s.io/cluster-autoscaler/node-template/label/team:logs\",\"aws_account:464622532012\",\"site:datadoghq.com\",\"chart_name:logs-nodegroups\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.datadoghq.com/local-storage:false\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.datadoghq.com/name:event-workloads-16cpu-32gb-v1\",\"kubernetes_cluster:spam\",\"env:prod\",\"cost_service:workload-backup\",\"image:ami-075fcd3f2baa396f5\",\"instance-id:i-001d8edd861c028cb\",\"k8s.io/cluster-autoscaler/enabled:yes\",\"kube_node_role:event-workloads-16cpu-32gb\",\"region:us-east-1\",\"ng_local_storage:false\",\"team:logs\",\"autoscaling_group:us1-foo.bar-spam-k8s-ng-asg-36e15503eaab\",\"hash:91f8\",\"cpu_arch:amd64\",\"ng_cluster_autoscaler:true\",\"app.kubernetes.io/name:logs-nodegroups\",\"iam_profile:us1-foo.bar-parent8/us1-foo.bar-spam-kube-node-kubernetes-node-low-trust\",\"security-group-name:us1-foo.bar-spam-k8s-node\",\"dd_compute_k8s_platform_version:v5-14-8\",\"forwarder_memorysize:1024\",\"has_detected_ip:true\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.datadoghq.com/cluster-autoscaler:true\",\"daemonset-profile.datadoghq.com/cilium-agent:large-v1\",\"cost_group:indexing\",\"cost_team:networks\",\"cluster_name:spam\",\"cost_subservice:logs-backup\",\"k8s.io/cluster-autoscaler/node-template/taint/node:event-workloads-16cpu-32gb:noschedule\",\"instance_type:c6i.4xlarge\",\"k8s.io/cluster-autoscaler/node-template/resources/pods:160\",\"k8s.io/cluster-autoscaler/node-template/label/daemonset-profile.datadoghq.com/cilium-agent:large-v1\",\"security_group_name:us1-foo.bar-spam-k8s-node\",\"datacenter:us1.foo.bar\",\"sourcecategory:aws\",\"nodegroups.datadoghq.com/local-storage:false\",\"security_group_name:common\"],\"timestamp\":\"2022-04-12T13:54:11.485Z\",\"host\":\"i-001d8edd861c028cb\",\"attributes\":{\"relatedLogsQueryUrl\":\"/logs?query=source%3Aroute53+%40answers.Rdata%3A169.254.169.254+-%40route53_edge_location%3A*+instance-id%3A%22i-001d8edd861c028cb%22&from_ts=1649770258000&to_ts=1649858158000&live=false&integration_id=security_monitoring&integration_short_name=security_investigation\",\"samples\":[{\"eventId\":\"AQAAAYAeGG1YthMNxQAAAABBWUFlR2huNkFBQzVSdVc0VldqMU53RV8\",\"content\":{\"status\":\"info\",\"__dd\":{\"online_archive\":true},\"service\":\"route53\",\"tags\":[\"forwardername:datadog-forwarder-prod-org-2\",\"source:route53\",\"forwarder_version:3.41.0\",\"sourcecategory:aws\",\"forwarder_memorysize:1024\",\"agent_support_urgency:high\",\"chart_name:logs-nodegroups\",\"cluster_name:spam\",\"cpu_arch:amd64\",\"datacenter:us1.foo.bar\",\"env:prod\",\"instance_type:c6i.4xlarge\",\"kube_cluster_name:spam\",\"kube_node_role:compute\",\"kube_node_role:event-workloads-16cpu-32gb\",\"kube_node_role:event-workloads-16cpu-32gb-v1\",\"ng_cluster_autoscaler:true\",\"ng_local_storage:false\",\"site:datadoghq.com\",\"team:logs\",\"account:prod\",\"admission.datadoghq.com/mutate-pods:true\",\"admission.datadoghq.com/validate-pods:true\",\"admission.datadoghq.com/validate-services:true\",\"app.kubernetes.io/managed-by:helm\",\"app.kubernetes.io/name:logs-nodegroups\",\"auto-discovery.cluster-autoscaler.k8s.io/spam\",\"autoscaling_group:us1-foo.bar-spam-k8s-ng-asg-36e15503eaab\",\"availability-zone:us-east-1b\",\"cost_customer:shopify\",\"cost_group:indexing\",\"cost_isolation_id:netflow-shopify\",\"cost_product:netflow\",\"cost_service:workload-backup\",\"cost_subservice:logs-backup\",\"cost_team:networks\",\"daemonset-profile.datadoghq.com/cilium-agent:large-v1\",\"dd_compute_k8s_platform_version:v5-14-8\",\"hash:91f8\",\"iam_profile:us1-foo.bar-parent8/us1-foo.bar-spam-kube-node-kubernetes-node-low-trust\",\"image:ami-075fcd3f2baa396f5\",\"instance-type:c6i.4xlarge\",\"k8s.io/cluster-autoscaler/enabled:yes\",\"k8s.io/cluster-autoscaler/node-template/label/chart_name:logs-nodegroups\",\"k8s.io/cluster-autoscaler/node-template/label/daemonset-profile.datadoghq.com/cilium-agent:large-v1\",\"k8s.io/cluster-autoscaler/node-template/label/node-role.kubernetes.io/compute\",\"k8s.io/cluster-autoscaler/node-template/label/node-role.kubernetes.io/event-workloads-16cpu-32gb\",\"k8s.io/cluster-autoscaler/node-template/label/node-role.kubernetes.io/event-workloads-16cpu-32gb-v1\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.datadoghq.com/cluster-autoscaler:true\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.datadoghq.com/local-storage:false\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.datadoghq.com/name:event-workloads-16cpu-32gb-v1\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.datadoghq.com/namespace:logs-general\",\"k8s.io/cluster-autoscaler/node-template/label/team:logs\",\"k8s.io/cluster-autoscaler/node-template/resources/cpu:15900m\",\"k8s.io/cluster-autoscaler/node-template/resources/ephemeral-storage:18747532246\",\"k8s.io/cluster-autoscaler/node-template/resources/memory:30432360858\",\"k8s.io/cluster-autoscaler/node-template/resources/pods:160\",\"k8s.io/cluster-autoscaler/node-template/taint/node:event-workloads-16cpu-32gb:noschedule\",\"kernel:none\",\"kubernetes.io/cluster/spam:owned\",\"kubernetes_cluster:spam\",\"name:logs-general_event-workloads-16cpu-32gb-v1\",\"node-role.kubernetes.io/compute\",\"node-role.kubernetes.io/event-workloads-16cpu-32gb\",\"node-role.kubernetes.io/event-workloads-16cpu-32gb-v1\",\"nodegroup:logs-general_event-workloads-16cpu-32gb-v1\",\"nodegroups.datadoghq.com/cluster-autoscaler:true\",\"nodegroups.datadoghq.com/local-storage:false\",\"nodegroups.datadoghq.com/name:event-workloads-16cpu-32gb-v1\",\"nodegroups.datadoghq.com/namespace:logs-general\",\"region:us-east-1\",\"role:kube-node\",\"security-group-name:common\",\"security-group-name:us1-foo.bar-spam-k8s-node\",\"security-group:sg-035e4410c7cbfcad1\",\"security-group:sg-ca164381\",\"security_group_name:common\",\"security_group_name:us1-foo.bar-spam-k8s-node\",\"subscription:paid\",\"instance-id:i-001d8edd861c028cb\",\"vpc:vpc-4b00eb31\",\"aws_account:464622532012\",\"has_detected_ip:true\"],\"timestamp\":\"2022-04-12T14:05:59.000Z\",\"ingest_size_in_bytes\":1037,\"custom\":{\"network\":{\"ip\":{\"list\":[\"10.59.175.16\",\"169.254.169.254\"]},\"client\":{\"geoip\":{},\"port\":\"57050\",\"ip\":\"10.59.175.16\"}},\"service\":\"route53\",\"title\":\"Address record lookup for instance-data.ec2.internal. from 10.59.175.16\",\"aws\":{\"s3\":{\"bucket\":\"datadog-dns-logs-us1-datadog-blue\",\"key\":\"AWSLogs/464622532012/vpcdnsquerylogs/vpc-4b00eb31/2022/04/12/vpc-4b00eb31_vpcdnsquerylogs_464622532012_20220412T1405Z_25118f19.log.gz\"},\"function_version\":\"$LATEST\",\"invoked_function_arn\":\"arn:aws:lambda:us-east-1:013910733512:function:datadog-forwarder-prod-org-2\"},\"answers\":[{\"Type\":\"A\",\"Class\":\"IN\",\"Rdata\":\"169.254.169.254\"}],\"host\":\"i-001d8edd861c028cb\",\"version\":\"1.100000\",\"srcids\":{},\"dns\":{\"flags\":{\"rcode\":\"NOERROR\"},\"question\":{\"type_description\":\"Address record\",\"type\":\"A\",\"name\":\"instance-data.ec2.internal.\",\"class\":\"IN\"},\"transport\":\"UDP\"},\"query_timestamp\":\"2022-04-12T14:05:59Z\"},\"source\":\"route53\",\"host\":\"i-001d8edd861c028cb\",\"tiebreaker\":-1240265275,\"host_id\":7195649243},\"queryIndex\":0,\"trackKey\":{\"orgId\":2,\"type\":\"logs\"},\"id\":\"AYAeGhn6AAC5RuW4VWj1NwE_\"}],\"internal_id\":\"z4y-148-fv6-4-AYAeDaGdAAAeViZd58O0SwBo--587970340\",\"title\":\"EC2 instance resolved a suspicious AWS metadata DNS query\",\"triggeringRuleCase\":{\"status\":\"high\",\"name\":\"\",\"condition\":\"domain_resolve_to_metadata_ip > 0\"},\"groupByPaths\":[\"tags.instance-id\"],\"workflow\":{\"events_matched\":1,\"rule\":{\"defaultRuleVersion\":8,\"type\":\"Log Detection\",\"defaultRuleId\":\"8c5-34f-fa2\",\"detectionMethod\":\"threshold\",\"version\":13,\"isDefaultRule\":true,\"id\":\"z4y-148-fv6\",\"name\":\"EC2 instance resolved a suspicious AWS metadata DNS query\"},\"high_cardinality\":{\"attributes\":[],\"tags\":[]},\"first_seen\":\"2022-04-12T13:50:58.000Z\",\"triage\":{\"assignee\":{\"id\":-1},\"state\":\"open\",\"incidentIds\":[],\"updater\":{\"handle\":\"\",\"name\":\"\"},\"creator\":{\"handle\":\"\",\"name\":\"\"}},\"last_seen\":\"2022-04-12T14:05:59.000Z\"},\"aws\":{\"s3\":{\"bucket\":\"datadog-dns-logs-us1-datadog-blue\"},\"invoked_function_arn\":\"arn:aws:lambda:us-east-1:013910733512:function:datadog-forwarder-prod-org-2\"},\"entities\":[\"host:i-001d8edd861c028cb\",\"@network.client.ip:10.59.175.16\",\"@dns.question.name:instance-data.ec2.internal.\"],\"host\":\"i-001d8edd861c028cb\",\"service\":\"route53\",\"dns\":{\"flags\":{\"rcode\":\"NOERROR\"},\"question\":{\"type_description\":\"Address record\",\"type\":\"A\",\"name\":\"instance-data.ec2.internal.\",\"class\":\"IN\"}},\"queries\":[{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":2,\"distinctValues\":[],\"value\":2.0},\"name\":\"domain_resolve_to_metadata_ip\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"source:route53 @answers.Rdata:169.254.169.254 -@route53_edge_location:*\",\"groupByPaths\":[\"tags.instance-id\"]}],\"network\":{\"client\":{\"ip\":\"10.59.175.16\"}}},\"message\":\"%%%\\n## Goal\\nDetect when a requested domain resolves to the AWS Metadata IP (169.254.169.254).\\n\\n## Strategy\\nInspect the Route 53 logs and determine if the response data for a DNS request matches the AWS Metadata IP (169.254.169.254). This could indicate an attacker is attempting to steal your credentials from the AWS metadata service.\\n\\n## Triage and response\\n1. Determine which instance is associated with the DNS request.\\n2. Determine whether the domain name which was requested (`dns.question.name`) should be permitted. If not, conduct an investigation and determine what requested the domain and determine if the AWS metadata credentials were accessed by an attacker.\\n\\n%%%\"},\"type\":\"signal\",\"id\":\"AQAAAYAeDaGdCLwmPQAAAABBWUFlRGFHZEFBQ3R3QXBJcFc0dEVBQUE\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/security_monitoring/signals?sort=timestamp&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFlRGFHZENMd21QZ0FBQUFCQldVRmxSR0ZIWkVGQlJFa3lkakpuYjFCSmF6Um5RVUUifQ&filter%5Bfrom%5D=now-15m&filter%5Bquery%5D=security%3Aattack+status%3Ahigh&page%5Blimit%5D=2\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 13 Apr 2022 11:32:57 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"filter\":{\"from\":\"2022-04-13T11:17:57.080Z\",\"query\":\"security:attack status:high\",\"to\":\"2022-04-13T11:32:57.080Z\"},\"page\":{\"limit\":2},\"sort\":\"timestamp\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/signals/search" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFlRFg2UlExTW1SUUFBQUFCQldVRmxSRmcyVWtGQlJEWk9ObWg0UkhOSU9HRjNRVUUifQ\"}},\"data\":[{\"attributes\":{\"status\":\"high\",\"service\":[\"\"],\"tags\":[\"security:attack\",\"kube_cluster_name:drampa\",\"technique:t1556-modify-authentication-process\",\"source:runtime-security-agent\",\"env:prod\",\"tactic:ta0003-persistence\",\"fim:true\",\"technique:t1556-modify-authentication-process\",\"source:runtime-security-agent\",\"security:attack\",\"tactic:ta0003-persistence\",\"datacenter:edge-us3.foo.bar\",\"env:prod\",\"type:open\",\"rule_id:pam_modification_utimes\",\"team:groupa\",\"kube_node_role:compute\",\"type:chmod\",\"agent_support_urgency:high\",\"cluster_name:drampa\",\"kube_cluster_name:drampa\",\"site:corpo1.com\",\"rule_id:pam_modification_chmod\",\"rule_id:pam_modification_open\",\"type:utimes\",\"ng_local_storage:false\",\"instance_type:c5.xlarge\",\"cpu_arch:amd64\",\"ng_cluster_autoscaler:true\",\"kube_node_role:groupa-api-ng\"],\"timestamp\":\"2022-04-12T13:54:02.099Z\",\"host\":\"i-0439f25d8385802b8\",\"attributes\":{\"status\":\"info\",\"entities\":[\"host:i-0439f25d8385802b8\",\"@usr.id:root\"],\"hostname\":\"i-0439f25d8385802b8\",\"relatedLogsQueryUrl\":\"/logs?query=%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_utimes%29+host%3A%22i-0439f25d8385802b8%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_chown%29+host%3A%22i-0439f25d8385802b8%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_chmod%29+host%3A%22i-0439f25d8385802b8%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_link%29+host%3A%22i-0439f25d8385802b8%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_open%29+host%3A%22i-0439f25d8385802b8%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_unlink%29+host%3A%22i-0439f25d8385802b8%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_rename%29+host%3A%22i-0439f25d8385802b8%22%29&from_ts=1649770439000&to_ts=1649858339000&live=false&integration_id=security_monitoring&integration_short_name=security_investigation\",\"file\":{\"path\":[\"/etc/pam.conf\",\"/etc/pam.d/common-password\",\"/etc/pam.d/common-account\",\"/etc/pam.d/common-session-noninteractive\",\"/etc/pam.d/common-session\",\"/etc/pam.d/chpasswd\",\"/etc/pam.d/chfn\",\"/etc/pam.d/common-auth\",\"/etc/pam.d/chsh\"],\"flags\":[\"O_TRUNC\",\"O_WRONLY\",\"O_CREAT\",\"O_CLOEXEC\"],\"name\":[\"pam.conf\",\"chfn\",\"common-session-noninteractive\",\"chsh\",\"common-password\",\"common-auth\",\"common-session\",\"common-account\",\"chpasswd\"]},\"internal_id\":\"xgh-dfy-ywf-19-AYAeDXzzAACtiRYoIqxh0gAN--1754712357\",\"workflow\":{\"events_matched\":31,\"rule\":{\"defaultRuleVersion\":19,\"type\":\"Workload Security\",\"defaultRuleId\":\"tz1-6vg-1yz\",\"detectionMethod\":\"threshold\",\"version\":19,\"isDefaultRule\":true,\"id\":\"xgh-dfy-ywf\",\"name\":\"PAM Configuration Files Modification\"},\"high_cardinality\":{\"attributes\":[],\"tags\":[]},\"first_seen\":\"2022-04-12T13:53:59.000Z\",\"triage\":{\"assignee\":{\"name\":\"Unassigned\",\"id\":-1},\"state\":\"open\",\"incidentIds\":[],\"updater\":{\"handle\":\"\",\"name\":\"\"},\"creator\":{\"handle\":\"\",\"name\":\"\"}},\"last_seen\":\"2022-04-12T13:53:59.000Z\"},\"process\":{\"executable\":{\"path\":\"/usr/local/bin/containerd\",\"name\":\"containerd\"},\"args\":\"info\",\"pid\":683,\"parent\":{\"executable\":{\"path\":\"/usr/lib/systemd/systemd\",\"name\":\"systemd\"},\"comm\":\"systemd\"}},\"groupByPaths\":[\"host\"],\"title\":\"PAM Configuration Files Modification - pam_modification\",\"agent\":{\"version\":\"7.35.0\",\"rule_id\":[\"pam_modification_utimes\",\"pam_modification_open\",\"pam_modification_chmod\"],\"policy_version\":\"1.4.3\"},\"triggeringRuleCase\":{\"status\":\"high\",\"name\":\"pam_modification\",\"condition\":\"pam_modification_chmod > 0 || pam_modification_chown > 0 || pam_modification_link > 0 || pam_modification_rename > 0 || pam_modification_open > 0 || pam_modification_unlink > 0 || pam_modification_utimes > 0\"},\"service\":\"\",\"usr\":{\"id\":\"root\"},\"samples\":[{\"eventId\":\"AQAAAYAeDXDn_e1ZxAAAAABBWUFlRFh6ekFBQ3RpUllvSXF4aDBnQWY\",\"content\":{\"status\":\"info\",\"service\":\"\",\"tags\":[\"source:runtime-security-agent\",\"type:chmod\",\"rule_id:pam_modification_chmod\",\"agent_support_urgency:high\",\"cluster_name:drampa\",\"cpu_arch:amd64\",\"datacenter:edge-us3.foo.bar\",\"env:prod\",\"instance_type:c5.xlarge\",\"kube_cluster_name:drampa\",\"kube_node_role:compute\",\"kube_node_role:groupa-api-ng\",\"ng_cluster_autoscaler:true\",\"ng_local_storage:false\",\"site:datadoghq.com\",\"team:groupa\"],\"timestamp\":\"2022-04-12T13:53:59.015Z\",\"ingest_size_in_bytes\":7702,\"custom\":{\"status\":\"info\",\"service\":\"\",\"title\":\"PAM may have been modified without authorization\",\"process\":{\"executable\":{\"group\":\"root\",\"name\":\"containerd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-17T09:32:05.508169636Z\",\"modification_time\":\"2021-10-06T12:45:08Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/local/bin/containerd\",\"inode\":1181,\"uid\":0},\"ancestors\":[{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:33Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:33Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}}],\"group\":\"root\",\"uid\":0,\"parent\":{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:33Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:33Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}},\"argv0\":\"--log-level\",\"exec_time\":\"2022-04-12T13:51:40Z\",\"args\":[\"info\"],\"pid\":683,\"gid\":0,\"comm\":\"containerd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:40Z\",\"tid\":2976,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"},\"ppid\":1},\"timestamp\":1649771639015,\"hostname\":\"i-0439f25d8385802b8\",\"agent\":{\"policy_name\":\"default.policy\",\"rule_id\":\"pam_modification_chmod\",\"version\":\"7.35.0\",\"policy_version\":\"1.4.3\"},\"usr\":{\"group\":\"root\",\"id\":\"root\"},\"file\":{\"change_time\":\"2022-04-12T13:53:52.770147011Z\",\"group\":\"root\",\"uid\":0,\"mount_id\":1443,\"user\":\"root\",\"destination\":{\"gid\":0,\"mode\":420,\"uid\":0},\"modification_time\":\"2022-04-12T13:53:52.770147011Z\",\"gid\":0,\"mode\":33188,\"filesystem\":\"ext4\",\"path\":\"/etc/pam.d/common-auth\",\"inode\":1543473,\"name\":\"common-auth\"},\"date\":\"2022-04-12T13:53:52.569968893Z\",\"evt\":{\"category\":\"File Activity\",\"outcome\":\"Success\",\"name\":\"chmod\"}},\"source\":\"runtime-security-agent\",\"host\":\"i-0439f25d8385802b8\",\"tiebreaker\":-34776636,\"host_id\":7252574590},\"queryIndex\":0,\"trackKey\":{\"orgId\":2,\"type\":\"logs\"},\"id\":\"AYAeDXzzAACtiRYoIqxh0gAf\"},{\"eventId\":\"AQAAAYAeDXDl_e1ZsgAAAABBWUFlRFh6ekFBQ3RpUllvSXF4aDBnQU4\",\"content\":{\"status\":\"info\",\"service\":\"\",\"tags\":[\"type:open\",\"source:runtime-security-agent\",\"rule_id:pam_modification_open\",\"agent_support_urgency:high\",\"cluster_name:drampa\",\"cpu_arch:amd64\",\"datacenter:edge-us3.foo.bar\",\"env:prod\",\"instance_type:c5.xlarge\",\"kube_cluster_name:drampa\",\"kube_node_role:compute\",\"kube_node_role:groupa-api-ng\",\"ng_cluster_autoscaler:true\",\"ng_local_storage:false\",\"site:datadoghq.com\",\"team:groupa\"],\"timestamp\":\"2022-04-12T13:53:59.013Z\",\"ingest_size_in_bytes\":7747,\"custom\":{\"status\":\"info\",\"service\":\"\",\"title\":\"PAM may have been modified without authorization\",\"process\":{\"executable\":{\"group\":\"root\",\"name\":\"containerd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-17T09:32:05.508169636Z\",\"modification_time\":\"2021-10-06T12:45:08Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/local/bin/containerd\",\"inode\":1181,\"uid\":0},\"ancestors\":[{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:33Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:33Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}}],\"group\":\"root\",\"uid\":0,\"parent\":{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:33Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:33Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}},\"argv0\":\"--log-level\",\"exec_time\":\"2022-04-12T13:51:40Z\",\"args\":[\"info\"],\"pid\":683,\"gid\":0,\"comm\":\"containerd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:40Z\",\"tid\":2976,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"},\"ppid\":1},\"timestamp\":1649771639013,\"hostname\":\"i-0439f25d8385802b8\",\"agent\":{\"policy_name\":\"default.policy\",\"rule_id\":\"pam_modification_open\",\"version\":\"7.35.0\",\"policy_version\":\"1.4.3\"},\"usr\":{\"group\":\"root\",\"id\":\"root\"},\"file\":{\"change_time\":\"2022-04-12T13:53:52.770147011Z\",\"group\":\"root\",\"uid\":0,\"mount_id\":1443,\"user\":\"root\",\"destination\":{\"gid\":0,\"mode\":420,\"uid\":0},\"modification_time\":\"2022-04-12T13:53:52.770147011Z\",\"gid\":0,\"flags\":[\"O_CLOEXEC\",\"O_CREAT\",\"O_TRUNC\",\"O_WRONLY\"],\"mode\":33188,\"filesystem\":\"ext4\",\"path\":\"/etc/pam.d/chfn\",\"inode\":1543469,\"name\":\"chfn\"},\"date\":\"2022-04-12T13:53:52.569082817Z\",\"evt\":{\"category\":\"File Activity\",\"outcome\":\"Success\",\"name\":\"open\"}},\"source\":\"runtime-security-agent\",\"host\":\"i-0439f25d8385802b8\",\"tiebreaker\":-34776654,\"host_id\":7252574590},\"queryIndex\":4,\"trackKey\":{\"orgId\":2,\"type\":\"logs\"},\"id\":\"AYAeDXzzAACtiRYoIqxh0gAN\"}],\"queries\":[{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":16,\"distinctValues\":[],\"value\":16.0},\"name\":\"pam_modification_chmod\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_chmod)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_chown\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_chown)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_link\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_link)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_rename\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_rename)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":8,\"distinctValues\":[],\"value\":8.0},\"name\":\"pam_modification_open\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_open)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_unlink\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_unlink)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":7,\"distinctValues\":[],\"value\":7.0},\"name\":\"pam_modification_utimes\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_utimes)\",\"groupByPaths\":[\"host\"]}],\"evt\":{\"category\":\"File Activity\",\"outcome\":\"Success\",\"name\":[\"chmod\",\"open\",\"utimes\"]}},\"message\":\"%%%\\n## Goal\\nDetect modifications to `pam.d` directory.\\n\\n## Strategy\\nLinux Pluggable Authentication Modules (PAM) provide authentication for applications and services. Authentication modules in the PAM system are setup and configured under the `/etc/pam.d/` directory. An attacker may attempt to modify or add an authentication module in PAM in order to bypass the authentication process, or reveal system credentials.\\n\\n## Triage and response\\n1. Check to see what changes were made to `/etc/pam.d/`.\\n2. Check whether the changes were a part of known system-setup or maintenance.\\n3. If these changes were unauthorized, roll back the host in question to a known good PAM configuration, or replace the system with a known-good system image.\\n\\n%%%\"},\"type\":\"signal\",\"id\":\"AQAAAYAeDXzzSJUmQwAAAABBWUFlRFh6ekFBQnpOV2hGMTdVRzF3QUE\"},{\"attributes\":{\"status\":\"high\",\"service\":[\"\"],\"tags\":[\"security:attack\",\"technique:t1556-modify-authentication-process\",\"source:runtime-security-agent\",\"tactic:ta0003-persistence\",\"fim:true\",\"technique:t1556-modify-authentication-process\",\"source:runtime-security-agent\",\"security:attack\",\"tactic:ta0003-persistence\",\"type:utimes\",\"type:open\",\"rule_id:pam_modification_utimes\",\"type:chmod\",\"rule_id:pam_modification_chmod\",\"rule_id:pam_modification_open\"],\"timestamp\":\"2022-04-12T13:54:02.513Z\",\"host\":\"i-07e829490e315fe9e\",\"attributes\":{\"status\":\"info\",\"entities\":[\"host:i-07e829490e315fe9e\",\"@usr.id:root\"],\"hostname\":\"i-07e829490e315fe9e\",\"relatedLogsQueryUrl\":\"/logs?query=%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_utimes%29+host%3A%22i-07e829490e315fe9e%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_chown%29+host%3A%22i-07e829490e315fe9e%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_chmod%29+host%3A%22i-07e829490e315fe9e%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_link%29+host%3A%22i-07e829490e315fe9e%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_open%29+host%3A%22i-07e829490e315fe9e%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_unlink%29+host%3A%22i-07e829490e315fe9e%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_rename%29+host%3A%22i-07e829490e315fe9e%22%29&from_ts=1649770441000&to_ts=1649858341000&live=false&integration_id=security_monitoring&integration_short_name=security_investigation\",\"file\":{\"flags\":[\"O_TRUNC\",\"O_WRONLY\",\"O_CLOEXEC\",\"O_CREAT\"]},\"internal_id\":\"xgh-dfy-ywf-19-AYAeDX6RAAASN8tjA-_jFwAN-1632335100\",\"workflow\":{\"events_matched\":41,\"rule\":{\"defaultRuleVersion\":19,\"type\":\"Workload Security\",\"defaultRuleId\":\"tz1-6vg-1yz\",\"detectionMethod\":\"threshold\",\"version\":19,\"isDefaultRule\":true,\"id\":\"xgh-dfy-ywf\",\"name\":\"PAM Configuration Files Modification\"},\"high_cardinality\":{\"attributes\":[\"@file.path\",\"@file.name\"],\"tags\":[]},\"first_seen\":\"2022-04-12T13:54:01.000Z\",\"triage\":{\"assignee\":{\"name\":\"Unassigned\",\"id\":-1},\"state\":\"open\",\"incidentIds\":[],\"updater\":{\"handle\":\"\",\"name\":\"\"},\"creator\":{\"handle\":\"\",\"name\":\"\"}},\"last_seen\":\"2022-04-12T13:54:01.000Z\"},\"process\":{\"executable\":{\"path\":\"/usr/local/bin/containerd\",\"name\":\"containerd\"},\"args\":\"info\",\"pid\":692,\"parent\":{\"executable\":{\"path\":\"/usr/lib/systemd/systemd\",\"name\":\"systemd\"},\"comm\":\"systemd\"}},\"groupByPaths\":[\"host\"],\"title\":\"PAM Configuration Files Modification - pam_modification\",\"agent\":{\"version\":\"7.35.0\",\"rule_id\":[\"pam_modification_utimes\",\"pam_modification_open\",\"pam_modification_chmod\"],\"policy_version\":\"1.4.3\"},\"triggeringRuleCase\":{\"status\":\"high\",\"name\":\"pam_modification\",\"condition\":\"pam_modification_chmod > 0 || pam_modification_chown > 0 || pam_modification_link > 0 || pam_modification_rename > 0 || pam_modification_open > 0 || pam_modification_unlink > 0 || pam_modification_utimes > 0\"},\"service\":\"\",\"usr\":{\"id\":\"root\"},\"samples\":[{\"eventId\":\"AQAAAYAeDXmP3Bju3wAAAABBWUFlRFg2UkFBQVNOOHRqQS1fakZ3QWo\",\"content\":{\"status\":\"info\",\"service\":\"\",\"tags\":[\"source:runtime-security-agent\",\"type:chmod\",\"rule_id:pam_modification_chmod\"],\"timestamp\":\"2022-04-12T13:54:01.231Z\",\"ingest_size_in_bytes\":7693,\"custom\":{\"status\":\"info\",\"service\":\"\",\"title\":\"PAM may have been modified without authorization\",\"process\":{\"executable\":{\"group\":\"root\",\"name\":\"containerd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-17T09:32:05.508169636Z\",\"modification_time\":\"2021-10-06T12:45:08Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/local/bin/containerd\",\"inode\":1181,\"uid\":0},\"ancestors\":[{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:46Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:46Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}}],\"group\":\"root\",\"uid\":0,\"parent\":{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:46Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:46Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}},\"argv0\":\"--log-level\",\"exec_time\":\"2022-04-12T13:51:53Z\",\"args\":[\"info\"],\"pid\":692,\"gid\":0,\"comm\":\"containerd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:53Z\",\"tid\":935,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"},\"ppid\":1},\"timestamp\":1649771641231,\"hostname\":\"i-07e829490e315fe9e\",\"agent\":{\"policy_name\":\"default.policy\",\"rule_id\":\"pam_modification_chmod\",\"version\":\"7.35.0\",\"policy_version\":\"1.4.3\"},\"usr\":{\"group\":\"root\",\"id\":\"root\"},\"file\":{\"change_time\":\"2022-04-12T13:53:54.973243639Z\",\"group\":\"root\",\"uid\":0,\"mount_id\":1444,\"user\":\"root\",\"destination\":{\"gid\":0,\"mode\":420,\"uid\":0},\"modification_time\":\"2022-04-12T13:53:54.973243639Z\",\"gid\":0,\"mode\":33188,\"filesystem\":\"ext4\",\"path\":\"/etc/pam.d/runuser\",\"inode\":1542342,\"name\":\"runuser\"},\"date\":\"2022-04-12T13:53:54.650254404Z\",\"evt\":{\"category\":\"File Activity\",\"outcome\":\"Success\",\"name\":\"chmod\"}},\"source\":\"runtime-security-agent\",\"host\":\"i-07e829490e315fe9e\",\"tiebreaker\":-602345761,\"host_id\":7252584032},\"queryIndex\":0,\"trackKey\":{\"orgId\":2,\"type\":\"logs\"},\"id\":\"AYAeDX6RAAASN8tjA-_jFwAj\"},{\"eventId\":\"AQAAAYAeDXmO3BjuyQAAAABBWUFlRFg2UkFBQVNOOHRqQS1fakZ3QU4\",\"content\":{\"status\":\"info\",\"service\":\"\",\"tags\":[\"type:open\",\"source:runtime-security-agent\",\"rule_id:pam_modification_open\"],\"timestamp\":\"2022-04-12T13:54:01.230Z\",\"ingest_size_in_bytes\":7796,\"custom\":{\"status\":\"info\",\"service\":\"\",\"title\":\"PAM may have been modified without authorization\",\"process\":{\"executable\":{\"group\":\"root\",\"name\":\"containerd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-17T09:32:05.508169636Z\",\"modification_time\":\"2021-10-06T12:45:08Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/local/bin/containerd\",\"inode\":1181,\"uid\":0},\"ancestors\":[{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:46Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:46Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}}],\"group\":\"root\",\"uid\":0,\"parent\":{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:46Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:46Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}},\"argv0\":\"--log-level\",\"exec_time\":\"2022-04-12T13:51:53Z\",\"args\":[\"info\"],\"pid\":692,\"gid\":0,\"comm\":\"containerd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:53Z\",\"tid\":935,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"},\"ppid\":1},\"timestamp\":1649771641230,\"hostname\":\"i-07e829490e315fe9e\",\"agent\":{\"policy_name\":\"default.policy\",\"rule_id\":\"pam_modification_open\",\"version\":\"7.35.0\",\"policy_version\":\"1.4.3\"},\"usr\":{\"group\":\"root\",\"id\":\"root\"},\"file\":{\"change_time\":\"2022-04-12T13:53:54.973243639Z\",\"group\":\"root\",\"uid\":0,\"mount_id\":1444,\"user\":\"root\",\"destination\":{\"gid\":0,\"mode\":420,\"uid\":0},\"modification_time\":\"2022-04-12T13:53:54.973243639Z\",\"gid\":0,\"flags\":[\"O_CLOEXEC\",\"O_CREAT\",\"O_TRUNC\",\"O_WRONLY\"],\"mode\":33188,\"filesystem\":\"ext4\",\"path\":\"/etc/pam.d/common-session-noninteractive\",\"inode\":1542337,\"name\":\"common-session-noninteractive\"},\"date\":\"2022-04-12T13:53:54.649642196Z\",\"evt\":{\"category\":\"File Activity\",\"outcome\":\"Success\",\"name\":\"open\"}},\"source\":\"runtime-security-agent\",\"host\":\"i-07e829490e315fe9e\",\"tiebreaker\":-602345783,\"host_id\":7252584032},\"queryIndex\":4,\"trackKey\":{\"orgId\":2,\"type\":\"logs\"},\"id\":\"AYAeDX6RAAASN8tjA-_jFwAN\"}],\"queries\":[{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":20,\"distinctValues\":[],\"value\":20.0},\"name\":\"pam_modification_chmod\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_chmod)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_chown\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_chown)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_link\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_link)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_rename\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_rename)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":11,\"distinctValues\":[],\"value\":11.0},\"name\":\"pam_modification_open\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_open)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_unlink\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_unlink)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":10,\"distinctValues\":[],\"value\":10.0},\"name\":\"pam_modification_utimes\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_utimes)\",\"groupByPaths\":[\"host\"]}],\"evt\":{\"category\":\"File Activity\",\"outcome\":\"Success\",\"name\":[\"chmod\",\"open\",\"utimes\"]}},\"message\":\"%%%\\n## Goal\\nDetect modifications to `pam.d` directory.\\n\\n## Strategy\\nLinux Pluggable Authentication Modules (PAM) provide authentication for applications and services. Authentication modules in the PAM system are setup and configured under the `/etc/pam.d/` directory. An attacker may attempt to modify or add an authentication module in PAM in order to bypass the authentication process, or reveal system credentials.\\n\\n## Triage and response\\n1. Check to see what changes were made to `/etc/pam.d/`.\\n2. Check whether the changes were a part of known system-setup or maintenance.\\n3. If these changes were unauthorized, roll back the host in question to a known good PAM configuration, or replace the system with a known-good system image.\\n\\n%%%\"},\"type\":\"signal\",\"id\":\"AQAAAYAeDX6RQ1MmRQAAAABBWUFlRFg2UkFBRDZONmh4RHNIOGF3QUE\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/security_monitoring/signals?sort=timestamp&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFlRFg2UlExTW1SUUFBQUFCQldVRmxSRmcyVWtGQlJEWk9ObWg0UkhOSU9HRjNRVUUifQ&filter%5Bfrom%5D=now-15m&filter%5Bquery%5D=security%3Aattack+status%3Ahigh&page%5Blimit%5D=2\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 13 Apr 2022 11:32:57 GMT" + }, + { + "request": { + "body": { + "string": "{\"filter\":{\"from\":\"2022-04-13T11:17:57.080Z\",\"query\":\"security:attack status:high\",\"to\":\"2022-04-13T11:32:57.080Z\"},\"page\":{\"cursor\":\"eyJhZnRlciI6IkFRQUFBWUFlRFg2UlExTW1SUUFBQUFCQldVRmxSRmcyVWtGQlJEWk9ObWg0UkhOSU9HRjNRVUUifQ\",\"limit\":2},\"sort\":\"timestamp\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/signals/search" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFlRGFHZENMd21QZ0FBQUFCQldVRmxSR0ZIWkVGQlJFa3lkakpuYjFCSmF6Um5RVUUifQ\"}},\"data\":[{\"attributes\":{\"status\":\"high\",\"service\":[\"route53\"],\"tags\":[\"security:attack\",\"instance-id:i-001d8edd861c028cb\",\"kube_cluster_name:spam\",\"technique:t1552-unsecured-credentials\",\"source:route53\",\"env:prod\",\"tactic:ta0006-credential-access\",\"technique:t1552-unsecured-credentials\",\"source:route53\",\"tactic:ta0006-credential-access\",\"security:attack\",\"name:logs-general_event-workloads-16cpu-32gb-v1\",\"cost_isolation_id:netflow-shopify\",\"admission.corpo1.com/mutate-pods:true\",\"kernel:none\",\"k8s.io/cluster-autoscaler/node-template/resources/memory:30432360858\",\"account:prod\",\"k8s.io/cluster-autoscaler/node-template/resources/ephemeral-storage:18747532246\",\"agent_support_urgency:high\",\"security-group:sg-035e4410c7cbfcad1\",\"security-group-name:common\",\"kube_node_role:event-workloads-16cpu-32gb-v1\",\"availability-zone:us-east-1b\",\"role:kube-node\",\"admission.datadoghq.com/validate-pods:true\",\"subscription:paid\",\"forwarder_version:3.41.0\",\"vpc:vpc-4b00eb31\",\"cost_product:netflow\",\"app.kubernetes.io/managed-by:helm\",\"nodegroups.datadoghq.com/name:event-workloads-16cpu-32gb-v1\",\"instance-type:c6i.4xlarge\",\"cost_customer:shopify\",\"admission.datadoghq.com/validate-services:true\",\"kube_cluster_name:spam\",\"k8s.io/cluster-autoscaler/node-template/label/chart_name:logs-nodegroups\",\"nodegroup:logs-general_event-workloads-16cpu-32gb-v1\",\"forwardername:datadog-forwarder-prod-org-2\",\"k8s.io/cluster-autoscaler/node-template/resources/cpu:15900m\",\"kubernetes.io/cluster/spam:owned\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.datadoghq.com/namespace:logs-general\",\"security-group:sg-ca164381\",\"nodegroups.datadoghq.com/namespace:logs-general\",\"nodegroups.datadoghq.com/cluster-autoscaler:true\",\"kube_node_role:compute\",\"k8s.io/cluster-autoscaler/node-template/label/team:logs\",\"aws_account:464622532012\",\"site:datadoghq.com\",\"chart_name:logs-nodegroups\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.datadoghq.com/local-storage:false\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.datadoghq.com/name:event-workloads-16cpu-32gb-v1\",\"kubernetes_cluster:spam\",\"env:prod\",\"cost_service:workload-backup\",\"image:ami-075fcd3f2baa396f5\",\"instance-id:i-001d8edd861c028cb\",\"k8s.io/cluster-autoscaler/enabled:yes\",\"kube_node_role:event-workloads-16cpu-32gb\",\"region:us-east-1\",\"ng_local_storage:false\",\"team:logs\",\"autoscaling_group:us1-foo.bar-spam-k8s-ng-asg-36e15503eaab\",\"hash:91f8\",\"cpu_arch:amd64\",\"ng_cluster_autoscaler:true\",\"app.kubernetes.io/name:logs-nodegroups\",\"iam_profile:us1-foo.bar-parent8/us1-foo.bar-spam-kube-node-kubernetes-node-low-trust\",\"security-group-name:us1-foo.bar-spam-k8s-node\",\"dd_compute_k8s_platform_version:v5-14-8\",\"forwarder_memorysize:1024\",\"has_detected_ip:true\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.datadoghq.com/cluster-autoscaler:true\",\"daemonset-profile.datadoghq.com/cilium-agent:large-v1\",\"cost_group:indexing\",\"cost_team:networks\",\"cluster_name:spam\",\"cost_subservice:logs-backup\",\"k8s.io/cluster-autoscaler/node-template/taint/node:event-workloads-16cpu-32gb:noschedule\",\"instance_type:c6i.4xlarge\",\"k8s.io/cluster-autoscaler/node-template/resources/pods:160\",\"k8s.io/cluster-autoscaler/node-template/label/daemonset-profile.datadoghq.com/cilium-agent:large-v1\",\"security_group_name:us1-foo.bar-spam-k8s-node\",\"datacenter:us1.foo.bar\",\"sourcecategory:aws\",\"nodegroups.datadoghq.com/local-storage:false\",\"security_group_name:common\"],\"timestamp\":\"2022-04-12T13:54:11.485Z\",\"host\":\"i-001d8edd861c028cb\",\"attributes\":{\"relatedLogsQueryUrl\":\"/logs?query=source%3Aroute53+%40answers.Rdata%3A169.254.169.254+-%40route53_edge_location%3A*+instance-id%3A%22i-001d8edd861c028cb%22&from_ts=1649770258000&to_ts=1649858158000&live=false&integration_id=security_monitoring&integration_short_name=security_investigation\",\"samples\":[{\"eventId\":\"AQAAAYAeGG1YthMNxQAAAABBWUFlR2huNkFBQzVSdVc0VldqMU53RV8\",\"content\":{\"status\":\"info\",\"__dd\":{\"online_archive\":true},\"service\":\"route53\",\"tags\":[\"forwardername:datadog-forwarder-prod-org-2\",\"source:route53\",\"forwarder_version:3.41.0\",\"sourcecategory:aws\",\"forwarder_memorysize:1024\",\"agent_support_urgency:high\",\"chart_name:logs-nodegroups\",\"cluster_name:spam\",\"cpu_arch:amd64\",\"datacenter:us1.foo.bar\",\"env:prod\",\"instance_type:c6i.4xlarge\",\"kube_cluster_name:spam\",\"kube_node_role:compute\",\"kube_node_role:event-workloads-16cpu-32gb\",\"kube_node_role:event-workloads-16cpu-32gb-v1\",\"ng_cluster_autoscaler:true\",\"ng_local_storage:false\",\"site:datadoghq.com\",\"team:logs\",\"account:prod\",\"admission.datadoghq.com/mutate-pods:true\",\"admission.datadoghq.com/validate-pods:true\",\"admission.datadoghq.com/validate-services:true\",\"app.kubernetes.io/managed-by:helm\",\"app.kubernetes.io/name:logs-nodegroups\",\"auto-discovery.cluster-autoscaler.k8s.io/spam\",\"autoscaling_group:us1-foo.bar-spam-k8s-ng-asg-36e15503eaab\",\"availability-zone:us-east-1b\",\"cost_customer:shopify\",\"cost_group:indexing\",\"cost_isolation_id:netflow-shopify\",\"cost_product:netflow\",\"cost_service:workload-backup\",\"cost_subservice:logs-backup\",\"cost_team:networks\",\"daemonset-profile.datadoghq.com/cilium-agent:large-v1\",\"dd_compute_k8s_platform_version:v5-14-8\",\"hash:91f8\",\"iam_profile:us1-foo.bar-parent8/us1-foo.bar-spam-kube-node-kubernetes-node-low-trust\",\"image:ami-075fcd3f2baa396f5\",\"instance-type:c6i.4xlarge\",\"k8s.io/cluster-autoscaler/enabled:yes\",\"k8s.io/cluster-autoscaler/node-template/label/chart_name:logs-nodegroups\",\"k8s.io/cluster-autoscaler/node-template/label/daemonset-profile.datadoghq.com/cilium-agent:large-v1\",\"k8s.io/cluster-autoscaler/node-template/label/node-role.kubernetes.io/compute\",\"k8s.io/cluster-autoscaler/node-template/label/node-role.kubernetes.io/event-workloads-16cpu-32gb\",\"k8s.io/cluster-autoscaler/node-template/label/node-role.kubernetes.io/event-workloads-16cpu-32gb-v1\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.datadoghq.com/cluster-autoscaler:true\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.datadoghq.com/local-storage:false\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.datadoghq.com/name:event-workloads-16cpu-32gb-v1\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.datadoghq.com/namespace:logs-general\",\"k8s.io/cluster-autoscaler/node-template/label/team:logs\",\"k8s.io/cluster-autoscaler/node-template/resources/cpu:15900m\",\"k8s.io/cluster-autoscaler/node-template/resources/ephemeral-storage:18747532246\",\"k8s.io/cluster-autoscaler/node-template/resources/memory:30432360858\",\"k8s.io/cluster-autoscaler/node-template/resources/pods:160\",\"k8s.io/cluster-autoscaler/node-template/taint/node:event-workloads-16cpu-32gb:noschedule\",\"kernel:none\",\"kubernetes.io/cluster/spam:owned\",\"kubernetes_cluster:spam\",\"name:logs-general_event-workloads-16cpu-32gb-v1\",\"node-role.kubernetes.io/compute\",\"node-role.kubernetes.io/event-workloads-16cpu-32gb\",\"node-role.kubernetes.io/event-workloads-16cpu-32gb-v1\",\"nodegroup:logs-general_event-workloads-16cpu-32gb-v1\",\"nodegroups.datadoghq.com/cluster-autoscaler:true\",\"nodegroups.datadoghq.com/local-storage:false\",\"nodegroups.datadoghq.com/name:event-workloads-16cpu-32gb-v1\",\"nodegroups.datadoghq.com/namespace:logs-general\",\"region:us-east-1\",\"role:kube-node\",\"security-group-name:common\",\"security-group-name:us1-foo.bar-spam-k8s-node\",\"security-group:sg-035e4410c7cbfcad1\",\"security-group:sg-ca164381\",\"security_group_name:common\",\"security_group_name:us1-foo.bar-spam-k8s-node\",\"subscription:paid\",\"instance-id:i-001d8edd861c028cb\",\"vpc:vpc-4b00eb31\",\"aws_account:464622532012\",\"has_detected_ip:true\"],\"timestamp\":\"2022-04-12T14:05:59.000Z\",\"ingest_size_in_bytes\":1037,\"custom\":{\"network\":{\"ip\":{\"list\":[\"10.59.175.16\",\"169.254.169.254\"]},\"client\":{\"geoip\":{},\"port\":\"57050\",\"ip\":\"10.59.175.16\"}},\"service\":\"route53\",\"title\":\"Address record lookup for instance-data.ec2.internal. from 10.59.175.16\",\"aws\":{\"s3\":{\"bucket\":\"datadog-dns-logs-us1-datadog-blue\",\"key\":\"AWSLogs/464622532012/vpcdnsquerylogs/vpc-4b00eb31/2022/04/12/vpc-4b00eb31_vpcdnsquerylogs_464622532012_20220412T1405Z_25118f19.log.gz\"},\"function_version\":\"$LATEST\",\"invoked_function_arn\":\"arn:aws:lambda:us-east-1:013910733512:function:datadog-forwarder-prod-org-2\"},\"answers\":[{\"Type\":\"A\",\"Class\":\"IN\",\"Rdata\":\"169.254.169.254\"}],\"host\":\"i-001d8edd861c028cb\",\"version\":\"1.100000\",\"srcids\":{},\"dns\":{\"flags\":{\"rcode\":\"NOERROR\"},\"question\":{\"type_description\":\"Address record\",\"type\":\"A\",\"name\":\"instance-data.ec2.internal.\",\"class\":\"IN\"},\"transport\":\"UDP\"},\"query_timestamp\":\"2022-04-12T14:05:59Z\"},\"source\":\"route53\",\"host\":\"i-001d8edd861c028cb\",\"tiebreaker\":-1240265275,\"host_id\":7195649243},\"queryIndex\":0,\"trackKey\":{\"orgId\":2,\"type\":\"logs\"},\"id\":\"AYAeGhn6AAC5RuW4VWj1NwE_\"}],\"internal_id\":\"z4y-148-fv6-4-AYAeDaGdAAAeViZd58O0SwBo--587970340\",\"title\":\"EC2 instance resolved a suspicious AWS metadata DNS query\",\"triggeringRuleCase\":{\"status\":\"high\",\"name\":\"\",\"condition\":\"domain_resolve_to_metadata_ip > 0\"},\"groupByPaths\":[\"tags.instance-id\"],\"workflow\":{\"events_matched\":1,\"rule\":{\"defaultRuleVersion\":8,\"type\":\"Log Detection\",\"defaultRuleId\":\"8c5-34f-fa2\",\"detectionMethod\":\"threshold\",\"version\":13,\"isDefaultRule\":true,\"id\":\"z4y-148-fv6\",\"name\":\"EC2 instance resolved a suspicious AWS metadata DNS query\"},\"high_cardinality\":{\"attributes\":[],\"tags\":[]},\"first_seen\":\"2022-04-12T13:50:58.000Z\",\"triage\":{\"assignee\":{\"id\":-1},\"state\":\"open\",\"incidentIds\":[],\"updater\":{\"handle\":\"\",\"name\":\"\"},\"creator\":{\"handle\":\"\",\"name\":\"\"}},\"last_seen\":\"2022-04-12T14:05:59.000Z\"},\"aws\":{\"s3\":{\"bucket\":\"datadog-dns-logs-us1-datadog-blue\"},\"invoked_function_arn\":\"arn:aws:lambda:us-east-1:013910733512:function:datadog-forwarder-prod-org-2\"},\"entities\":[\"host:i-001d8edd861c028cb\",\"@network.client.ip:10.59.175.16\",\"@dns.question.name:instance-data.ec2.internal.\"],\"host\":\"i-001d8edd861c028cb\",\"service\":\"route53\",\"dns\":{\"flags\":{\"rcode\":\"NOERROR\"},\"question\":{\"type_description\":\"Address record\",\"type\":\"A\",\"name\":\"instance-data.ec2.internal.\",\"class\":\"IN\"}},\"queries\":[{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":2,\"distinctValues\":[],\"value\":2.0},\"name\":\"domain_resolve_to_metadata_ip\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"source:route53 @answers.Rdata:169.254.169.254 -@route53_edge_location:*\",\"groupByPaths\":[\"tags.instance-id\"]}],\"network\":{\"client\":{\"ip\":\"10.59.175.16\"}}},\"message\":\"%%%\\n## Goal\\nDetect when a requested domain resolves to the AWS Metadata IP (169.254.169.254).\\n\\n## Strategy\\nInspect the Route 53 logs and determine if the response data for a DNS request matches the AWS Metadata IP (169.254.169.254). This could indicate an attacker is attempting to steal your credentials from the AWS metadata service.\\n\\n## Triage and response\\n1. Determine which instance is associated with the DNS request.\\n2. Determine whether the domain name which was requested (`dns.question.name`) should be permitted. If not, conduct an investigation and determine what requested the domain and determine if the AWS metadata credentials were accessed by an attacker.\\n\\n%%%\"},\"type\":\"signal\",\"id\":\"AQAAAYAeDaGdCLwmPQAAAABBWUFlRGFHZEFBQ3R3QXBJcFc0dEVBQUE\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/security_monitoring/signals?sort=timestamp&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFlRGFHZENMd21QZ0FBQUFCQldVRmxSR0ZIWkVGQlJFa3lkakpuYjFCSmF6Um5RVUUifQ&filter%5Bfrom%5D=now-15m&filter%5Bquery%5D=security%3Aattack+status%3Ahigh&page%5Blimit%5D=2\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 13 Apr 2022 11:32:57 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Get-a-quick-list-of-security-signals-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v2/security_monitoring/Get-a-quick-list-of-security-signals-returns-OK-response-with-pagination.json index 75db9d9fd..b99f2aecd 100644 --- a/tests/scenarios/cassettes/v2/security_monitoring/Get-a-quick-list-of-security-signals-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v2/security_monitoring/Get-a-quick-list-of-security-signals-returns-OK-response-with-pagination.json @@ -1 +1,61 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/signals?page%5Blimit%5D=2"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFlZHdCbC1Wd21VZ0FBQUFCQldVRmxaSGRDYkVGQlFXRkpURGgxTlZNMFFtTlJRVUUifQ\"}},\"data\":[{\"attributes\":{\"status\":\"high\",\"service\":[\"\"],\"tags\":[\"security:attack\",\"kube_cluster_name:drampa\",\"technique:t1556-modify-authentication-process\",\"source:runtime-security-agent\",\"env:prod\",\"tactic:ta0003-persistence\",\"fim:true\",\"technique:t1556-modify-authentication-process\",\"source:runtime-security-agent\",\"security:attack\",\"tactic:ta0003-persistence\",\"datacenter:edge-us3.foo.bar\",\"env:prod\",\"type:open\",\"rule_id:pam_modification_utimes\",\"team:groupa\",\"kube_node_role:compute\",\"type:chmod\",\"agent_support_urgency:high\",\"cluster_name:drampa\",\"kube_cluster_name:drampa\",\"site:mycorp.com\",\"rule_id:pam_modification_chmod\",\"rule_id:pam_modification_open\",\"type:utimes\",\"ng_local_storage:false\",\"instance_type:c5.xlarge\",\"cpu_arch:amd64\",\"ng_cluster_autoscaler:true\",\"kube_node_role:groupa-api-ng\"],\"timestamp\":\"2022-04-12T13:54:02.099Z\",\"host\":\"i-0439f25d8385802b8\",\"attributes\":{\"status\":\"info\",\"entities\":[\"host:i-0439f25d8385802b8\",\"@usr.id:root\"],\"hostname\":\"i-0439f25d8385802b8\",\"relatedLogsQueryUrl\":\"/logs?query=%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_utimes%29+host%3A%22i-0439f25d8385802b8%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_chown%29+host%3A%22i-0439f25d8385802b8%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_chmod%29+host%3A%22i-0439f25d8385802b8%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_link%29+host%3A%22i-0439f25d8385802b8%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_open%29+host%3A%22i-0439f25d8385802b8%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_unlink%29+host%3A%22i-0439f25d8385802b8%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_rename%29+host%3A%22i-0439f25d8385802b8%22%29&from_ts=1649770439000&to_ts=1649858339000&live=false&integration_id=security_monitoring&integration_short_name=security_investigation\",\"file\":{\"path\":[\"/etc/pam.conf\",\"/etc/pam.d/common-password\",\"/etc/pam.d/common-account\",\"/etc/pam.d/common-session-noninteractive\",\"/etc/pam.d/common-session\",\"/etc/pam.d/chpasswd\",\"/etc/pam.d/chfn\",\"/etc/pam.d/common-auth\",\"/etc/pam.d/chsh\"],\"flags\":[\"O_TRUNC\",\"O_WRONLY\",\"O_CREAT\",\"O_CLOEXEC\"],\"name\":[\"pam.conf\",\"chfn\",\"common-session-noninteractive\",\"chsh\",\"common-password\",\"common-auth\",\"common-session\",\"common-account\",\"chpasswd\"]},\"internal_id\":\"xgh-dfy-ywf-19-AYAeDXzzAACtiRYoIqxh0gAN--1754712357\",\"workflow\":{\"events_matched\":31,\"rule\":{\"defaultRuleVersion\":19,\"type\":\"Workload Security\",\"defaultRuleId\":\"tz1-6vg-1yz\",\"detectionMethod\":\"threshold\",\"version\":19,\"isDefaultRule\":true,\"id\":\"xgh-dfy-ywf\",\"name\":\"PAM Configuration Files Modification\"},\"high_cardinality\":{\"attributes\":[],\"tags\":[]},\"first_seen\":\"2022-04-12T13:53:59.000Z\",\"triage\":{\"assignee\":{\"name\":\"Unassigned\",\"id\":-1},\"state\":\"open\",\"incidentIds\":[],\"updater\":{\"handle\":\"\",\"name\":\"\"},\"creator\":{\"handle\":\"\",\"name\":\"\"}},\"last_seen\":\"2022-04-12T13:53:59.000Z\"},\"process\":{\"executable\":{\"path\":\"/usr/local/bin/containerd\",\"name\":\"containerd\"},\"args\":\"info\",\"pid\":683,\"parent\":{\"executable\":{\"path\":\"/usr/lib/systemd/systemd\",\"name\":\"systemd\"},\"comm\":\"systemd\"}},\"groupByPaths\":[\"host\"],\"title\":\"PAM Configuration Files Modification - pam_modification\",\"agent\":{\"version\":\"7.35.0\",\"rule_id\":[\"pam_modification_utimes\",\"pam_modification_open\",\"pam_modification_chmod\"],\"policy_version\":\"1.4.3\"},\"triggeringRuleCase\":{\"status\":\"high\",\"name\":\"pam_modification\",\"condition\":\"pam_modification_chmod > 0 || pam_modification_chown > 0 || pam_modification_link > 0 || pam_modification_rename > 0 || pam_modification_open > 0 || pam_modification_unlink > 0 || pam_modification_utimes > 0\"},\"service\":\"\",\"usr\":{\"id\":\"root\"},\"samples\":[{\"eventId\":\"AQAAAYAeDXDn_e1ZxAAAAABBWUFlRFh6ekFBQ3RpUllvSXF4aDBnQWY\",\"content\":{\"status\":\"info\",\"service\":\"\",\"tags\":[\"source:runtime-security-agent\",\"type:chmod\",\"rule_id:pam_modification_chmod\",\"agent_support_urgency:high\",\"cluster_name:drampa\",\"cpu_arch:amd64\",\"datacenter:edge-us3.foo.bar\",\"env:prod\",\"instance_type:c5.xlarge\",\"kube_cluster_name:drampa\",\"kube_node_role:compute\",\"kube_node_role:groupa-api-ng\",\"ng_cluster_autoscaler:true\",\"ng_local_storage:false\",\"site:mycorp.com\",\"team:groupa\"],\"timestamp\":\"2022-04-12T13:53:59.015Z\",\"ingest_size_in_bytes\":7702,\"custom\":{\"status\":\"info\",\"service\":\"\",\"title\":\"PAM may have been modified without authorization\",\"process\":{\"executable\":{\"group\":\"root\",\"name\":\"containerd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-17T09:32:05.508169636Z\",\"modification_time\":\"2021-10-06T12:45:08Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/local/bin/containerd\",\"inode\":1181,\"uid\":0},\"ancestors\":[{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:33Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:33Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}}],\"group\":\"root\",\"uid\":0,\"parent\":{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:33Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:33Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}},\"argv0\":\"--log-level\",\"exec_time\":\"2022-04-12T13:51:40Z\",\"args\":[\"info\"],\"pid\":683,\"gid\":0,\"comm\":\"containerd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:40Z\",\"tid\":2976,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"},\"ppid\":1},\"timestamp\":1649771639015,\"hostname\":\"i-0439f25d8385802b8\",\"agent\":{\"policy_name\":\"default.policy\",\"rule_id\":\"pam_modification_chmod\",\"version\":\"7.35.0\",\"policy_version\":\"1.4.3\"},\"usr\":{\"group\":\"root\",\"id\":\"root\"},\"file\":{\"change_time\":\"2022-04-12T13:53:52.770147011Z\",\"group\":\"root\",\"uid\":0,\"mount_id\":1443,\"user\":\"root\",\"destination\":{\"gid\":0,\"mode\":420,\"uid\":0},\"modification_time\":\"2022-04-12T13:53:52.770147011Z\",\"gid\":0,\"mode\":33188,\"filesystem\":\"ext4\",\"path\":\"/etc/pam.d/common-auth\",\"inode\":1543473,\"name\":\"common-auth\"},\"date\":\"2022-04-12T13:53:52.569968893Z\",\"evt\":{\"category\":\"File Activity\",\"outcome\":\"Success\",\"name\":\"chmod\"}},\"source\":\"runtime-security-agent\",\"host\":\"i-0439f25d8385802b8\",\"tiebreaker\":-34776636,\"host_id\":7252574590},\"queryIndex\":0,\"trackKey\":{\"orgId\":2,\"type\":\"logs\"},\"id\":\"AYAeDXzzAACtiRYoIqxh0gAf\"},{\"eventId\":\"AQAAAYAeDXDl_e1ZsgAAAABBWUFlRFh6ekFBQ3RpUllvSXF4aDBnQU4\",\"content\":{\"status\":\"info\",\"service\":\"\",\"tags\":[\"type:open\",\"source:runtime-security-agent\",\"rule_id:pam_modification_open\",\"agent_support_urgency:high\",\"cluster_name:drampa\",\"cpu_arch:amd64\",\"datacenter:edge-us3.foo.bar\",\"env:prod\",\"instance_type:c5.xlarge\",\"kube_cluster_name:drampa\",\"kube_node_role:compute\",\"kube_node_role:groupa-api-ng\",\"ng_cluster_autoscaler:true\",\"ng_local_storage:false\",\"site:mycorp.com\",\"team:groupa\"],\"timestamp\":\"2022-04-12T13:53:59.013Z\",\"ingest_size_in_bytes\":7747,\"custom\":{\"status\":\"info\",\"service\":\"\",\"title\":\"PAM may have been modified without authorization\",\"process\":{\"executable\":{\"group\":\"root\",\"name\":\"containerd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-17T09:32:05.508169636Z\",\"modification_time\":\"2021-10-06T12:45:08Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/local/bin/containerd\",\"inode\":1181,\"uid\":0},\"ancestors\":[{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:33Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:33Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}}],\"group\":\"root\",\"uid\":0,\"parent\":{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:33Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:33Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}},\"argv0\":\"--log-level\",\"exec_time\":\"2022-04-12T13:51:40Z\",\"args\":[\"info\"],\"pid\":683,\"gid\":0,\"comm\":\"containerd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:40Z\",\"tid\":2976,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"},\"ppid\":1},\"timestamp\":1649771639013,\"hostname\":\"i-0439f25d8385802b8\",\"agent\":{\"policy_name\":\"default.policy\",\"rule_id\":\"pam_modification_open\",\"version\":\"7.35.0\",\"policy_version\":\"1.4.3\"},\"usr\":{\"group\":\"root\",\"id\":\"root\"},\"file\":{\"change_time\":\"2022-04-12T13:53:52.770147011Z\",\"group\":\"root\",\"uid\":0,\"mount_id\":1443,\"user\":\"root\",\"destination\":{\"gid\":0,\"mode\":420,\"uid\":0},\"modification_time\":\"2022-04-12T13:53:52.770147011Z\",\"gid\":0,\"flags\":[\"O_CLOEXEC\",\"O_CREAT\",\"O_TRUNC\",\"O_WRONLY\"],\"mode\":33188,\"filesystem\":\"ext4\",\"path\":\"/etc/pam.d/chfn\",\"inode\":1543469,\"name\":\"chfn\"},\"date\":\"2022-04-12T13:53:52.569082817Z\",\"evt\":{\"category\":\"File Activity\",\"outcome\":\"Success\",\"name\":\"open\"}},\"source\":\"runtime-security-agent\",\"host\":\"i-0439f25d8385802b8\",\"tiebreaker\":-34776654,\"host_id\":7252574590},\"queryIndex\":4,\"trackKey\":{\"orgId\":2,\"type\":\"logs\"},\"id\":\"AYAeDXzzAACtiRYoIqxh0gAN\"}],\"queries\":[{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":16,\"distinctValues\":[],\"value\":16.0},\"name\":\"pam_modification_chmod\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_chmod)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_chown\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_chown)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_link\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_link)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_rename\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_rename)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":8,\"distinctValues\":[],\"value\":8.0},\"name\":\"pam_modification_open\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_open)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_unlink\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_unlink)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":7,\"distinctValues\":[],\"value\":7.0},\"name\":\"pam_modification_utimes\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_utimes)\",\"groupByPaths\":[\"host\"]}],\"evt\":{\"category\":\"File Activity\",\"outcome\":\"Success\",\"name\":[\"chmod\",\"open\",\"utimes\"]}},\"message\":\"%%%\\n## Goal\\nDetect modifications to `pam.d` directory.\\n\\n## Strategy\\nLinux Pluggable Authentication Modules (PAM) provide authentication for applications and services. Authentication modules in the PAM system are setup and configured under the `/etc/pam.d/` directory. An attacker may attempt to modify or add an authentication module in PAM in order to bypass the authentication process, or reveal system credentials.\\n\\n## Triage and response\\n1. Check to see what changes were made to `/etc/pam.d/`.\\n2. Check whether the changes were a part of known system-setup or maintenance.\\n3. If these changes were unauthorized, roll back the host in question to a known good PAM configuration, or replace the system with a known-good system image.\\n\\n%%%\"},\"type\":\"signal\",\"id\":\"AQAAAYAeDXzzSJUmQwAAAABBWUFlRFh6ekFBQnpOV2hGMTdVRzF3QUE\"},{\"attributes\":{\"status\":\"high\",\"service\":[\"\"],\"tags\":[\"security:attack\",\"technique:t1556-modify-authentication-process\",\"source:runtime-security-agent\",\"tactic:ta0003-persistence\",\"fim:true\",\"technique:t1556-modify-authentication-process\",\"source:runtime-security-agent\",\"security:attack\",\"tactic:ta0003-persistence\",\"type:utimes\",\"type:open\",\"rule_id:pam_modification_utimes\",\"type:chmod\",\"rule_id:pam_modification_chmod\",\"rule_id:pam_modification_open\"],\"timestamp\":\"2022-04-12T13:54:02.513Z\",\"host\":\"i-07e829490e315fe9e\",\"attributes\":{\"status\":\"info\",\"entities\":[\"host:i-07e829490e315fe9e\",\"@usr.id:root\"],\"hostname\":\"i-07e829490e315fe9e\",\"relatedLogsQueryUrl\":\"/logs?query=%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_utimes%29+host%3A%22i-07e829490e315fe9e%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_chown%29+host%3A%22i-07e829490e315fe9e%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_chmod%29+host%3A%22i-07e829490e315fe9e%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_link%29+host%3A%22i-07e829490e315fe9e%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_open%29+host%3A%22i-07e829490e315fe9e%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_unlink%29+host%3A%22i-07e829490e315fe9e%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_rename%29+host%3A%22i-07e829490e315fe9e%22%29&from_ts=1649770441000&to_ts=1649858341000&live=false&integration_id=security_monitoring&integration_short_name=security_investigation\",\"file\":{\"flags\":[\"O_TRUNC\",\"O_WRONLY\",\"O_CLOEXEC\",\"O_CREAT\"]},\"internal_id\":\"xgh-dfy-ywf-19-AYAeDX6RAAASN8tjA-_jFwAN-1632335100\",\"workflow\":{\"events_matched\":41,\"rule\":{\"defaultRuleVersion\":19,\"type\":\"Workload Security\",\"defaultRuleId\":\"tz1-6vg-1yz\",\"detectionMethod\":\"threshold\",\"version\":19,\"isDefaultRule\":true,\"id\":\"xgh-dfy-ywf\",\"name\":\"PAM Configuration Files Modification\"},\"high_cardinality\":{\"attributes\":[\"@file.path\",\"@file.name\"],\"tags\":[]},\"first_seen\":\"2022-04-12T13:54:01.000Z\",\"triage\":{\"assignee\":{\"name\":\"Unassigned\",\"id\":-1},\"state\":\"open\",\"incidentIds\":[],\"updater\":{\"handle\":\"\",\"name\":\"\"},\"creator\":{\"handle\":\"\",\"name\":\"\"}},\"last_seen\":\"2022-04-12T13:54:01.000Z\"},\"process\":{\"executable\":{\"path\":\"/usr/local/bin/containerd\",\"name\":\"containerd\"},\"args\":\"info\",\"pid\":692,\"parent\":{\"executable\":{\"path\":\"/usr/lib/systemd/systemd\",\"name\":\"systemd\"},\"comm\":\"systemd\"}},\"groupByPaths\":[\"host\"],\"title\":\"PAM Configuration Files Modification - pam_modification\",\"agent\":{\"version\":\"7.35.0\",\"rule_id\":[\"pam_modification_utimes\",\"pam_modification_open\",\"pam_modification_chmod\"],\"policy_version\":\"1.4.3\"},\"triggeringRuleCase\":{\"status\":\"high\",\"name\":\"pam_modification\",\"condition\":\"pam_modification_chmod > 0 || pam_modification_chown > 0 || pam_modification_link > 0 || pam_modification_rename > 0 || pam_modification_open > 0 || pam_modification_unlink > 0 || pam_modification_utimes > 0\"},\"service\":\"\",\"usr\":{\"id\":\"root\"},\"samples\":[{\"eventId\":\"AQAAAYAeDXmP3Bju3wAAAABBWUFlRFg2UkFBQVNOOHRqQS1fakZ3QWo\",\"content\":{\"status\":\"info\",\"service\":\"\",\"tags\":[\"source:runtime-security-agent\",\"type:chmod\",\"rule_id:pam_modification_chmod\"],\"timestamp\":\"2022-04-12T13:54:01.231Z\",\"ingest_size_in_bytes\":7693,\"custom\":{\"status\":\"info\",\"service\":\"\",\"title\":\"PAM may have been modified without authorization\",\"process\":{\"executable\":{\"group\":\"root\",\"name\":\"containerd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-17T09:32:05.508169636Z\",\"modification_time\":\"2021-10-06T12:45:08Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/local/bin/containerd\",\"inode\":1181,\"uid\":0},\"ancestors\":[{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:46Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:46Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}}],\"group\":\"root\",\"uid\":0,\"parent\":{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:46Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:46Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}},\"argv0\":\"--log-level\",\"exec_time\":\"2022-04-12T13:51:53Z\",\"args\":[\"info\"],\"pid\":692,\"gid\":0,\"comm\":\"containerd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:53Z\",\"tid\":935,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"},\"ppid\":1},\"timestamp\":1649771641231,\"hostname\":\"i-07e829490e315fe9e\",\"agent\":{\"policy_name\":\"default.policy\",\"rule_id\":\"pam_modification_chmod\",\"version\":\"7.35.0\",\"policy_version\":\"1.4.3\"},\"usr\":{\"group\":\"root\",\"id\":\"root\"},\"file\":{\"change_time\":\"2022-04-12T13:53:54.973243639Z\",\"group\":\"root\",\"uid\":0,\"mount_id\":1444,\"user\":\"root\",\"destination\":{\"gid\":0,\"mode\":420,\"uid\":0},\"modification_time\":\"2022-04-12T13:53:54.973243639Z\",\"gid\":0,\"mode\":33188,\"filesystem\":\"ext4\",\"path\":\"/etc/pam.d/runuser\",\"inode\":1542342,\"name\":\"runuser\"},\"date\":\"2022-04-12T13:53:54.650254404Z\",\"evt\":{\"category\":\"File Activity\",\"outcome\":\"Success\",\"name\":\"chmod\"}},\"source\":\"runtime-security-agent\",\"host\":\"i-07e829490e315fe9e\",\"tiebreaker\":-602345761,\"host_id\":7252584032},\"queryIndex\":0,\"trackKey\":{\"orgId\":2,\"type\":\"logs\"},\"id\":\"AYAeDX6RAAASN8tjA-_jFwAj\"},{\"eventId\":\"AQAAAYAeDXmO3BjuyQAAAABBWUFlRFg2UkFBQVNOOHRqQS1fakZ3QU4\",\"content\":{\"status\":\"info\",\"service\":\"\",\"tags\":[\"type:open\",\"source:runtime-security-agent\",\"rule_id:pam_modification_open\"],\"timestamp\":\"2022-04-12T13:54:01.230Z\",\"ingest_size_in_bytes\":7796,\"custom\":{\"status\":\"info\",\"service\":\"\",\"title\":\"PAM may have been modified without authorization\",\"process\":{\"executable\":{\"group\":\"root\",\"name\":\"containerd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-17T09:32:05.508169636Z\",\"modification_time\":\"2021-10-06T12:45:08Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/local/bin/containerd\",\"inode\":1181,\"uid\":0},\"ancestors\":[{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:46Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:46Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}}],\"group\":\"root\",\"uid\":0,\"parent\":{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:46Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:46Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}},\"argv0\":\"--log-level\",\"exec_time\":\"2022-04-12T13:51:53Z\",\"args\":[\"info\"],\"pid\":692,\"gid\":0,\"comm\":\"containerd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:53Z\",\"tid\":935,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"},\"ppid\":1},\"timestamp\":1649771641230,\"hostname\":\"i-07e829490e315fe9e\",\"agent\":{\"policy_name\":\"default.policy\",\"rule_id\":\"pam_modification_open\",\"version\":\"7.35.0\",\"policy_version\":\"1.4.3\"},\"usr\":{\"group\":\"root\",\"id\":\"root\"},\"file\":{\"change_time\":\"2022-04-12T13:53:54.973243639Z\",\"group\":\"root\",\"uid\":0,\"mount_id\":1444,\"user\":\"root\",\"destination\":{\"gid\":0,\"mode\":420,\"uid\":0},\"modification_time\":\"2022-04-12T13:53:54.973243639Z\",\"gid\":0,\"flags\":[\"O_CLOEXEC\",\"O_CREAT\",\"O_TRUNC\",\"O_WRONLY\"],\"mode\":33188,\"filesystem\":\"ext4\",\"path\":\"/etc/pam.d/common-session-noninteractive\",\"inode\":1542337,\"name\":\"common-session-noninteractive\"},\"date\":\"2022-04-12T13:53:54.649642196Z\",\"evt\":{\"category\":\"File Activity\",\"outcome\":\"Success\",\"name\":\"open\"}},\"source\":\"runtime-security-agent\",\"host\":\"i-07e829490e315fe9e\",\"tiebreaker\":-602345783,\"host_id\":7252584032},\"queryIndex\":4,\"trackKey\":{\"orgId\":2,\"type\":\"logs\"},\"id\":\"AYAeDX6RAAASN8tjA-_jFwAN\"}],\"queries\":[{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":20,\"distinctValues\":[],\"value\":20.0},\"name\":\"pam_modification_chmod\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_chmod)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_chown\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_chown)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_link\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_link)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_rename\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_rename)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":11,\"distinctValues\":[],\"value\":11.0},\"name\":\"pam_modification_open\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_open)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_unlink\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_unlink)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":10,\"distinctValues\":[],\"value\":10.0},\"name\":\"pam_modification_utimes\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_utimes)\",\"groupByPaths\":[\"host\"]}],\"evt\":{\"category\":\"File Activity\",\"outcome\":\"Success\",\"name\":[\"chmod\",\"open\",\"utimes\"]}},\"message\":\"%%%\\n## Goal\\nDetect modifications to `pam.d` directory.\\n\\n## Strategy\\nLinux Pluggable Authentication Modules (PAM) provide authentication for applications and services. Authentication modules in the PAM system are setup and configured under the `/etc/pam.d/` directory. An attacker may attempt to modify or add an authentication module in PAM in order to bypass the authentication process, or reveal system credentials.\\n\\n## Triage and response\\n1. Check to see what changes were made to `/etc/pam.d/`.\\n2. Check whether the changes were a part of known system-setup or maintenance.\\n3. If these changes were unauthorized, roll back the host in question to a known good PAM configuration, or replace the system with a known-good system image.\\n\\n%%%\"},\"type\":\"signal\",\"id\":\"AQAAAYAeDX6RQ1MmRQAAAABBWUFlRFg2UkFBRDZONmh4RHNIOGF3QUE\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/security_monitoring/signals?sort=timestamp&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFlRFg2UlExTW1SUUFBQUFCQldVRmxSRmcyVWtGQlJEWk9ObWg0UkhOSU9HRjNRVUUifQ&filter%5Bfrom%5D=now-15m&filter%5Bquery%5D=security%3Aattack+status%3Ahigh&page%5Blimit%5D=2\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 12 Apr 2022 15:49:41 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/signals?page%5Blimit%5D=2&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFlZHdCbC1Wd21VZ0FBQUFCQldVRmxaSGRDYkVGQlFXRkpURGgxTlZNMFFtTlJRVUUifQ"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFlRGFHZENMd21QZ0FBQUFCQldVRmxSR0ZIWkVGQlJFa3lkakpuYjFCSmF6Um5RVUUifQ\"}},\"data\":[{\"attributes\":{\"status\":\"high\",\"service\":[\"route53\"],\"tags\":[\"security:attack\",\"instance-id:i-001d8edd861c028cb\",\"kube_cluster_name:spam\",\"technique:t1552-unsecured-credentials\",\"source:route53\",\"env:prod\",\"tactic:ta0006-credential-access\",\"technique:t1552-unsecured-credentials\",\"source:route53\",\"tactic:ta0006-credential-access\",\"security:attack\",\"name:logs-general_event-workloads-16cpu-32gb-v1\",\"cost_isolation_id:netflow-shopify\",\"admission.mycorp.com/mutate-pods:true\",\"kernel:none\",\"k8s.io/cluster-autoscaler/node-template/resources/memory:30432360858\",\"account:prod\",\"k8s.io/cluster-autoscaler/node-template/resources/ephemeral-storage:18747532246\",\"agent_support_urgency:high\",\"security-group:sg-035e4410c7cbfcad1\",\"security-group-name:common\",\"kube_node_role:event-workloads-16cpu-32gb-v1\",\"availability-zone:us-east-1b\",\"role:kube-node\",\"admission.mycorp.com/validate-pods:true\",\"subscription:paid\",\"forwarder_version:3.41.0\",\"vpc:vpc-4b00eb31\",\"cost_product:netflow\",\"app.kubernetes.io/managed-by:helm\",\"nodegroups.mycorp.com/name:event-workloads-16cpu-32gb-v1\",\"instance-type:c6i.4xlarge\",\"cost_customer:shopify\",\"admission.mycorp.com/validate-services:true\",\"kube_cluster_name:spam\",\"k8s.io/cluster-autoscaler/node-template/label/chart_name:logs-nodegroups\",\"nodegroup:logs-general_event-workloads-16cpu-32gb-v1\",\"forwardername:datadog-forwarder-prod-org-2\",\"k8s.io/cluster-autoscaler/node-template/resources/cpu:15900m\",\"kubernetes.io/cluster/spam:owned\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.mycorp.com/namespace:logs-general\",\"security-group:sg-ca164381\",\"nodegroups.mycorp.com/namespace:logs-general\",\"nodegroups.mycorp.com/cluster-autoscaler:true\",\"kube_node_role:compute\",\"k8s.io/cluster-autoscaler/node-template/label/team:logs\",\"aws_account:464622532012\",\"site:mycorp.com\",\"chart_name:logs-nodegroups\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.mycorp.com/local-storage:false\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.mycorp.com/name:event-workloads-16cpu-32gb-v1\",\"kubernetes_cluster:spam\",\"env:prod\",\"cost_service:workload-backup\",\"image:ami-075fcd3f2baa396f5\",\"instance-id:i-001d8edd861c028cb\",\"k8s.io/cluster-autoscaler/enabled:yes\",\"kube_node_role:event-workloads-16cpu-32gb\",\"region:us-east-1\",\"ng_local_storage:false\",\"team:logs\",\"autoscaling_group:us1-foo.bar-spam-k8s-ng-asg-36e15503eaab\",\"hash:91f8\",\"cpu_arch:amd64\",\"ng_cluster_autoscaler:true\",\"app.kubernetes.io/name:logs-nodegroups\",\"iam_profile:us1-foo.bar-parent8/us1-foo.bar-spam-kube-node-kubernetes-node-low-trust\",\"security-group-name:us1-foo.bar-spam-k8s-node\",\"dd_compute_k8s_platform_version:v5-14-8\",\"forwarder_memorysize:1024\",\"has_detected_ip:true\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.mycorp.com/cluster-autoscaler:true\",\"daemonset-profile.mycorp.com/cilium-agent:large-v1\",\"cost_group:indexing\",\"cost_team:networks\",\"cluster_name:spam\",\"cost_subservice:logs-backup\",\"k8s.io/cluster-autoscaler/node-template/taint/node:event-workloads-16cpu-32gb:noschedule\",\"instance_type:c6i.4xlarge\",\"k8s.io/cluster-autoscaler/node-template/resources/pods:160\",\"k8s.io/cluster-autoscaler/node-template/label/daemonset-profile.mycorp.com/cilium-agent:large-v1\",\"security_group_name:us1-foo.bar-spam-k8s-node\",\"datacenter:us1.foo.bar\",\"sourcecategory:aws\",\"nodegroups.mycorp.com/local-storage:false\",\"security_group_name:common\"],\"timestamp\":\"2022-04-12T13:54:11.485Z\",\"host\":\"i-001d8edd861c028cb\",\"attributes\":{\"relatedLogsQueryUrl\":\"/logs?query=source%3Aroute53+%40answers.Rdata%3A169.254.169.254+-%40route53_edge_location%3A*+instance-id%3A%22i-001d8edd861c028cb%22&from_ts=1649770258000&to_ts=1649858158000&live=false&integration_id=security_monitoring&integration_short_name=security_investigation\",\"samples\":[{\"eventId\":\"AQAAAYAeGG1YthMNxQAAAABBWUFlR2huNkFBQzVSdVc0VldqMU53RV8\",\"content\":{\"status\":\"info\",\"__dd\":{\"online_archive\":true},\"service\":\"route53\",\"tags\":[\"forwardername:datadog-forwarder-prod-org-2\",\"source:route53\",\"forwarder_version:3.41.0\",\"sourcecategory:aws\",\"forwarder_memorysize:1024\",\"agent_support_urgency:high\",\"chart_name:logs-nodegroups\",\"cluster_name:spam\",\"cpu_arch:amd64\",\"datacenter:us1.foo.bar\",\"env:prod\",\"instance_type:c6i.4xlarge\",\"kube_cluster_name:spam\",\"kube_node_role:compute\",\"kube_node_role:event-workloads-16cpu-32gb\",\"kube_node_role:event-workloads-16cpu-32gb-v1\",\"ng_cluster_autoscaler:true\",\"ng_local_storage:false\",\"site:mycorp.com\",\"team:logs\",\"account:prod\",\"admission.mycorp.com/mutate-pods:true\",\"admission.mycorp.com/validate-pods:true\",\"admission.mycorp.com/validate-services:true\",\"app.kubernetes.io/managed-by:helm\",\"app.kubernetes.io/name:logs-nodegroups\",\"auto-discovery.cluster-autoscaler.k8s.io/spam\",\"autoscaling_group:us1-foo.bar-spam-k8s-ng-asg-36e15503eaab\",\"availability-zone:us-east-1b\",\"cost_customer:shopify\",\"cost_group:indexing\",\"cost_isolation_id:netflow-shopify\",\"cost_product:netflow\",\"cost_service:workload-backup\",\"cost_subservice:logs-backup\",\"cost_team:networks\",\"daemonset-profile.mycorp.com/cilium-agent:large-v1\",\"dd_compute_k8s_platform_version:v5-14-8\",\"hash:91f8\",\"iam_profile:us1-foo.bar-parent8/us1-foo.bar-spam-kube-node-kubernetes-node-low-trust\",\"image:ami-075fcd3f2baa396f5\",\"instance-type:c6i.4xlarge\",\"k8s.io/cluster-autoscaler/enabled:yes\",\"k8s.io/cluster-autoscaler/node-template/label/chart_name:logs-nodegroups\",\"k8s.io/cluster-autoscaler/node-template/label/daemonset-profile.mycorp.com/cilium-agent:large-v1\",\"k8s.io/cluster-autoscaler/node-template/label/node-role.kubernetes.io/compute\",\"k8s.io/cluster-autoscaler/node-template/label/node-role.kubernetes.io/event-workloads-16cpu-32gb\",\"k8s.io/cluster-autoscaler/node-template/label/node-role.kubernetes.io/event-workloads-16cpu-32gb-v1\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.mycorp.com/cluster-autoscaler:true\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.mycorp.com/local-storage:false\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.mycorp.com/name:event-workloads-16cpu-32gb-v1\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.mycorp.com/namespace:logs-general\",\"k8s.io/cluster-autoscaler/node-template/label/team:logs\",\"k8s.io/cluster-autoscaler/node-template/resources/cpu:15900m\",\"k8s.io/cluster-autoscaler/node-template/resources/ephemeral-storage:18747532246\",\"k8s.io/cluster-autoscaler/node-template/resources/memory:30432360858\",\"k8s.io/cluster-autoscaler/node-template/resources/pods:160\",\"k8s.io/cluster-autoscaler/node-template/taint/node:event-workloads-16cpu-32gb:noschedule\",\"kernel:none\",\"kubernetes.io/cluster/spam:owned\",\"kubernetes_cluster:spam\",\"name:logs-general_event-workloads-16cpu-32gb-v1\",\"node-role.kubernetes.io/compute\",\"node-role.kubernetes.io/event-workloads-16cpu-32gb\",\"node-role.kubernetes.io/event-workloads-16cpu-32gb-v1\",\"nodegroup:logs-general_event-workloads-16cpu-32gb-v1\",\"nodegroups.mycorp.com/cluster-autoscaler:true\",\"nodegroups.mycorp.com/local-storage:false\",\"nodegroups.mycorp.com/name:event-workloads-16cpu-32gb-v1\",\"nodegroups.mycorp.com/namespace:logs-general\",\"region:us-east-1\",\"role:kube-node\",\"security-group-name:common\",\"security-group-name:us1-foo.bar-spam-k8s-node\",\"security-group:sg-035e4410c7cbfcad1\",\"security-group:sg-ca164381\",\"security_group_name:common\",\"security_group_name:us1-foo.bar-spam-k8s-node\",\"subscription:paid\",\"instance-id:i-001d8edd861c028cb\",\"vpc:vpc-4b00eb31\",\"aws_account:464622532012\",\"has_detected_ip:true\"],\"timestamp\":\"2022-04-12T14:05:59.000Z\",\"ingest_size_in_bytes\":1037,\"custom\":{\"network\":{\"ip\":{\"list\":[\"10.59.175.16\",\"169.254.169.254\"]},\"client\":{\"geoip\":{},\"port\":\"57050\",\"ip\":\"10.59.175.16\"}},\"service\":\"route53\",\"title\":\"Address record lookup for instance-data.ec2.internal. from 10.59.175.16\",\"aws\":{\"s3\":{\"bucket\":\"datadog-dns-logs-us1-datadog-blue\",\"key\":\"AWSLogs/464622532012/vpcdnsquerylogs/vpc-4b00eb31/2022/04/12/vpc-4b00eb31_vpcdnsquerylogs_464622532012_20220412T1405Z_25118f19.log.gz\"},\"function_version\":\"$LATEST\",\"invoked_function_arn\":\"arn:aws:lambda:us-east-1:013910733512:function:datadog-forwarder-prod-org-2\"},\"answers\":[{\"Type\":\"A\",\"Class\":\"IN\",\"Rdata\":\"169.254.169.254\"}],\"host\":\"i-001d8edd861c028cb\",\"version\":\"1.100000\",\"srcids\":{},\"dns\":{\"flags\":{\"rcode\":\"NOERROR\"},\"question\":{\"type_description\":\"Address record\",\"type\":\"A\",\"name\":\"instance-data.ec2.internal.\",\"class\":\"IN\"},\"transport\":\"UDP\"},\"query_timestamp\":\"2022-04-12T14:05:59Z\"},\"source\":\"route53\",\"host\":\"i-001d8edd861c028cb\",\"tiebreaker\":-1240265275,\"host_id\":7195649243},\"queryIndex\":0,\"trackKey\":{\"orgId\":2,\"type\":\"logs\"},\"id\":\"AYAeGhn6AAC5RuW4VWj1NwE_\"}],\"internal_id\":\"z4y-148-fv6-4-AYAeDaGdAAAeViZd58O0SwBo--587970340\",\"title\":\"EC2 instance resolved a suspicious AWS metadata DNS query\",\"triggeringRuleCase\":{\"status\":\"high\",\"name\":\"\",\"condition\":\"domain_resolve_to_metadata_ip > 0\"},\"groupByPaths\":[\"tags.instance-id\"],\"workflow\":{\"events_matched\":1,\"rule\":{\"defaultRuleVersion\":8,\"type\":\"Log Detection\",\"defaultRuleId\":\"8c5-34f-fa2\",\"detectionMethod\":\"threshold\",\"version\":13,\"isDefaultRule\":true,\"id\":\"z4y-148-fv6\",\"name\":\"EC2 instance resolved a suspicious AWS metadata DNS query\"},\"high_cardinality\":{\"attributes\":[],\"tags\":[]},\"first_seen\":\"2022-04-12T13:50:58.000Z\",\"triage\":{\"assignee\":{\"id\":-1},\"state\":\"open\",\"incidentIds\":[],\"updater\":{\"handle\":\"\",\"name\":\"\"},\"creator\":{\"handle\":\"\",\"name\":\"\"}},\"last_seen\":\"2022-04-12T14:05:59.000Z\"},\"aws\":{\"s3\":{\"bucket\":\"datadog-dns-logs-us1-datadog-blue\"},\"invoked_function_arn\":\"arn:aws:lambda:us-east-1:013910733512:function:datadog-forwarder-prod-org-2\"},\"entities\":[\"host:i-001d8edd861c028cb\",\"@network.client.ip:10.59.175.16\",\"@dns.question.name:instance-data.ec2.internal.\"],\"host\":\"i-001d8edd861c028cb\",\"service\":\"route53\",\"dns\":{\"flags\":{\"rcode\":\"NOERROR\"},\"question\":{\"type_description\":\"Address record\",\"type\":\"A\",\"name\":\"instance-data.ec2.internal.\",\"class\":\"IN\"}},\"queries\":[{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":2,\"distinctValues\":[],\"value\":2.0},\"name\":\"domain_resolve_to_metadata_ip\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"source:route53 @answers.Rdata:169.254.169.254 -@route53_edge_location:*\",\"groupByPaths\":[\"tags.instance-id\"]}],\"network\":{\"client\":{\"ip\":\"10.59.175.16\"}}},\"message\":\"%%%\\n## Goal\\nDetect when a requested domain resolves to the AWS Metadata IP (169.254.169.254).\\n\\n## Strategy\\nInspect the Route 53 logs and determine if the response data for a DNS request matches the AWS Metadata IP (169.254.169.254). This could indicate an attacker is attempting to steal your credentials from the AWS metadata service.\\n\\n## Triage and response\\n1. Determine which instance is associated with the DNS request.\\n2. Determine whether the domain name which was requested (`dns.question.name`) should be permitted. If not, conduct an investigation and determine what requested the domain and determine if the AWS metadata credentials were accessed by an attacker.\\n\\n%%%\"},\"type\":\"signal\",\"id\":\"AQAAAYAeDaGdCLwmPQAAAABBWUFlRGFHZEFBQ3R3QXBJcFc0dEVBQUE\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/security_monitoring/signals?sort=timestamp&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFlRGFHZENMd21QZ0FBQUFCQldVRmxSR0ZIWkVGQlJFa3lkakpuYjFCSmF6Um5RVUUifQ&filter%5Bfrom%5D=now-15m&filter%5Bquery%5D=security%3Aattack+status%3Ahigh&page%5Blimit%5D=2\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 12 Apr 2022 15:49:41 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/signals?page%5Blimit%5D=2" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFlZHdCbC1Wd21VZ0FBQUFCQldVRmxaSGRDYkVGQlFXRkpURGgxTlZNMFFtTlJRVUUifQ\"}},\"data\":[{\"attributes\":{\"status\":\"high\",\"service\":[\"\"],\"tags\":[\"security:attack\",\"kube_cluster_name:drampa\",\"technique:t1556-modify-authentication-process\",\"source:runtime-security-agent\",\"env:prod\",\"tactic:ta0003-persistence\",\"fim:true\",\"technique:t1556-modify-authentication-process\",\"source:runtime-security-agent\",\"security:attack\",\"tactic:ta0003-persistence\",\"datacenter:edge-us3.foo.bar\",\"env:prod\",\"type:open\",\"rule_id:pam_modification_utimes\",\"team:groupa\",\"kube_node_role:compute\",\"type:chmod\",\"agent_support_urgency:high\",\"cluster_name:drampa\",\"kube_cluster_name:drampa\",\"site:mycorp.com\",\"rule_id:pam_modification_chmod\",\"rule_id:pam_modification_open\",\"type:utimes\",\"ng_local_storage:false\",\"instance_type:c5.xlarge\",\"cpu_arch:amd64\",\"ng_cluster_autoscaler:true\",\"kube_node_role:groupa-api-ng\"],\"timestamp\":\"2022-04-12T13:54:02.099Z\",\"host\":\"i-0439f25d8385802b8\",\"attributes\":{\"status\":\"info\",\"entities\":[\"host:i-0439f25d8385802b8\",\"@usr.id:root\"],\"hostname\":\"i-0439f25d8385802b8\",\"relatedLogsQueryUrl\":\"/logs?query=%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_utimes%29+host%3A%22i-0439f25d8385802b8%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_chown%29+host%3A%22i-0439f25d8385802b8%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_chmod%29+host%3A%22i-0439f25d8385802b8%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_link%29+host%3A%22i-0439f25d8385802b8%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_open%29+host%3A%22i-0439f25d8385802b8%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_unlink%29+host%3A%22i-0439f25d8385802b8%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_rename%29+host%3A%22i-0439f25d8385802b8%22%29&from_ts=1649770439000&to_ts=1649858339000&live=false&integration_id=security_monitoring&integration_short_name=security_investigation\",\"file\":{\"path\":[\"/etc/pam.conf\",\"/etc/pam.d/common-password\",\"/etc/pam.d/common-account\",\"/etc/pam.d/common-session-noninteractive\",\"/etc/pam.d/common-session\",\"/etc/pam.d/chpasswd\",\"/etc/pam.d/chfn\",\"/etc/pam.d/common-auth\",\"/etc/pam.d/chsh\"],\"flags\":[\"O_TRUNC\",\"O_WRONLY\",\"O_CREAT\",\"O_CLOEXEC\"],\"name\":[\"pam.conf\",\"chfn\",\"common-session-noninteractive\",\"chsh\",\"common-password\",\"common-auth\",\"common-session\",\"common-account\",\"chpasswd\"]},\"internal_id\":\"xgh-dfy-ywf-19-AYAeDXzzAACtiRYoIqxh0gAN--1754712357\",\"workflow\":{\"events_matched\":31,\"rule\":{\"defaultRuleVersion\":19,\"type\":\"Workload Security\",\"defaultRuleId\":\"tz1-6vg-1yz\",\"detectionMethod\":\"threshold\",\"version\":19,\"isDefaultRule\":true,\"id\":\"xgh-dfy-ywf\",\"name\":\"PAM Configuration Files Modification\"},\"high_cardinality\":{\"attributes\":[],\"tags\":[]},\"first_seen\":\"2022-04-12T13:53:59.000Z\",\"triage\":{\"assignee\":{\"name\":\"Unassigned\",\"id\":-1},\"state\":\"open\",\"incidentIds\":[],\"updater\":{\"handle\":\"\",\"name\":\"\"},\"creator\":{\"handle\":\"\",\"name\":\"\"}},\"last_seen\":\"2022-04-12T13:53:59.000Z\"},\"process\":{\"executable\":{\"path\":\"/usr/local/bin/containerd\",\"name\":\"containerd\"},\"args\":\"info\",\"pid\":683,\"parent\":{\"executable\":{\"path\":\"/usr/lib/systemd/systemd\",\"name\":\"systemd\"},\"comm\":\"systemd\"}},\"groupByPaths\":[\"host\"],\"title\":\"PAM Configuration Files Modification - pam_modification\",\"agent\":{\"version\":\"7.35.0\",\"rule_id\":[\"pam_modification_utimes\",\"pam_modification_open\",\"pam_modification_chmod\"],\"policy_version\":\"1.4.3\"},\"triggeringRuleCase\":{\"status\":\"high\",\"name\":\"pam_modification\",\"condition\":\"pam_modification_chmod > 0 || pam_modification_chown > 0 || pam_modification_link > 0 || pam_modification_rename > 0 || pam_modification_open > 0 || pam_modification_unlink > 0 || pam_modification_utimes > 0\"},\"service\":\"\",\"usr\":{\"id\":\"root\"},\"samples\":[{\"eventId\":\"AQAAAYAeDXDn_e1ZxAAAAABBWUFlRFh6ekFBQ3RpUllvSXF4aDBnQWY\",\"content\":{\"status\":\"info\",\"service\":\"\",\"tags\":[\"source:runtime-security-agent\",\"type:chmod\",\"rule_id:pam_modification_chmod\",\"agent_support_urgency:high\",\"cluster_name:drampa\",\"cpu_arch:amd64\",\"datacenter:edge-us3.foo.bar\",\"env:prod\",\"instance_type:c5.xlarge\",\"kube_cluster_name:drampa\",\"kube_node_role:compute\",\"kube_node_role:groupa-api-ng\",\"ng_cluster_autoscaler:true\",\"ng_local_storage:false\",\"site:mycorp.com\",\"team:groupa\"],\"timestamp\":\"2022-04-12T13:53:59.015Z\",\"ingest_size_in_bytes\":7702,\"custom\":{\"status\":\"info\",\"service\":\"\",\"title\":\"PAM may have been modified without authorization\",\"process\":{\"executable\":{\"group\":\"root\",\"name\":\"containerd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-17T09:32:05.508169636Z\",\"modification_time\":\"2021-10-06T12:45:08Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/local/bin/containerd\",\"inode\":1181,\"uid\":0},\"ancestors\":[{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:33Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:33Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}}],\"group\":\"root\",\"uid\":0,\"parent\":{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:33Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:33Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}},\"argv0\":\"--log-level\",\"exec_time\":\"2022-04-12T13:51:40Z\",\"args\":[\"info\"],\"pid\":683,\"gid\":0,\"comm\":\"containerd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:40Z\",\"tid\":2976,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"},\"ppid\":1},\"timestamp\":1649771639015,\"hostname\":\"i-0439f25d8385802b8\",\"agent\":{\"policy_name\":\"default.policy\",\"rule_id\":\"pam_modification_chmod\",\"version\":\"7.35.0\",\"policy_version\":\"1.4.3\"},\"usr\":{\"group\":\"root\",\"id\":\"root\"},\"file\":{\"change_time\":\"2022-04-12T13:53:52.770147011Z\",\"group\":\"root\",\"uid\":0,\"mount_id\":1443,\"user\":\"root\",\"destination\":{\"gid\":0,\"mode\":420,\"uid\":0},\"modification_time\":\"2022-04-12T13:53:52.770147011Z\",\"gid\":0,\"mode\":33188,\"filesystem\":\"ext4\",\"path\":\"/etc/pam.d/common-auth\",\"inode\":1543473,\"name\":\"common-auth\"},\"date\":\"2022-04-12T13:53:52.569968893Z\",\"evt\":{\"category\":\"File Activity\",\"outcome\":\"Success\",\"name\":\"chmod\"}},\"source\":\"runtime-security-agent\",\"host\":\"i-0439f25d8385802b8\",\"tiebreaker\":-34776636,\"host_id\":7252574590},\"queryIndex\":0,\"trackKey\":{\"orgId\":2,\"type\":\"logs\"},\"id\":\"AYAeDXzzAACtiRYoIqxh0gAf\"},{\"eventId\":\"AQAAAYAeDXDl_e1ZsgAAAABBWUFlRFh6ekFBQ3RpUllvSXF4aDBnQU4\",\"content\":{\"status\":\"info\",\"service\":\"\",\"tags\":[\"type:open\",\"source:runtime-security-agent\",\"rule_id:pam_modification_open\",\"agent_support_urgency:high\",\"cluster_name:drampa\",\"cpu_arch:amd64\",\"datacenter:edge-us3.foo.bar\",\"env:prod\",\"instance_type:c5.xlarge\",\"kube_cluster_name:drampa\",\"kube_node_role:compute\",\"kube_node_role:groupa-api-ng\",\"ng_cluster_autoscaler:true\",\"ng_local_storage:false\",\"site:mycorp.com\",\"team:groupa\"],\"timestamp\":\"2022-04-12T13:53:59.013Z\",\"ingest_size_in_bytes\":7747,\"custom\":{\"status\":\"info\",\"service\":\"\",\"title\":\"PAM may have been modified without authorization\",\"process\":{\"executable\":{\"group\":\"root\",\"name\":\"containerd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-17T09:32:05.508169636Z\",\"modification_time\":\"2021-10-06T12:45:08Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/local/bin/containerd\",\"inode\":1181,\"uid\":0},\"ancestors\":[{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:33Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:33Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}}],\"group\":\"root\",\"uid\":0,\"parent\":{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:33Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:33Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}},\"argv0\":\"--log-level\",\"exec_time\":\"2022-04-12T13:51:40Z\",\"args\":[\"info\"],\"pid\":683,\"gid\":0,\"comm\":\"containerd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:40Z\",\"tid\":2976,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"},\"ppid\":1},\"timestamp\":1649771639013,\"hostname\":\"i-0439f25d8385802b8\",\"agent\":{\"policy_name\":\"default.policy\",\"rule_id\":\"pam_modification_open\",\"version\":\"7.35.0\",\"policy_version\":\"1.4.3\"},\"usr\":{\"group\":\"root\",\"id\":\"root\"},\"file\":{\"change_time\":\"2022-04-12T13:53:52.770147011Z\",\"group\":\"root\",\"uid\":0,\"mount_id\":1443,\"user\":\"root\",\"destination\":{\"gid\":0,\"mode\":420,\"uid\":0},\"modification_time\":\"2022-04-12T13:53:52.770147011Z\",\"gid\":0,\"flags\":[\"O_CLOEXEC\",\"O_CREAT\",\"O_TRUNC\",\"O_WRONLY\"],\"mode\":33188,\"filesystem\":\"ext4\",\"path\":\"/etc/pam.d/chfn\",\"inode\":1543469,\"name\":\"chfn\"},\"date\":\"2022-04-12T13:53:52.569082817Z\",\"evt\":{\"category\":\"File Activity\",\"outcome\":\"Success\",\"name\":\"open\"}},\"source\":\"runtime-security-agent\",\"host\":\"i-0439f25d8385802b8\",\"tiebreaker\":-34776654,\"host_id\":7252574590},\"queryIndex\":4,\"trackKey\":{\"orgId\":2,\"type\":\"logs\"},\"id\":\"AYAeDXzzAACtiRYoIqxh0gAN\"}],\"queries\":[{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":16,\"distinctValues\":[],\"value\":16.0},\"name\":\"pam_modification_chmod\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_chmod)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_chown\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_chown)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_link\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_link)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_rename\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_rename)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":8,\"distinctValues\":[],\"value\":8.0},\"name\":\"pam_modification_open\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_open)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_unlink\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_unlink)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":7,\"distinctValues\":[],\"value\":7.0},\"name\":\"pam_modification_utimes\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_utimes)\",\"groupByPaths\":[\"host\"]}],\"evt\":{\"category\":\"File Activity\",\"outcome\":\"Success\",\"name\":[\"chmod\",\"open\",\"utimes\"]}},\"message\":\"%%%\\n## Goal\\nDetect modifications to `pam.d` directory.\\n\\n## Strategy\\nLinux Pluggable Authentication Modules (PAM) provide authentication for applications and services. Authentication modules in the PAM system are setup and configured under the `/etc/pam.d/` directory. An attacker may attempt to modify or add an authentication module in PAM in order to bypass the authentication process, or reveal system credentials.\\n\\n## Triage and response\\n1. Check to see what changes were made to `/etc/pam.d/`.\\n2. Check whether the changes were a part of known system-setup or maintenance.\\n3. If these changes were unauthorized, roll back the host in question to a known good PAM configuration, or replace the system with a known-good system image.\\n\\n%%%\"},\"type\":\"signal\",\"id\":\"AQAAAYAeDXzzSJUmQwAAAABBWUFlRFh6ekFBQnpOV2hGMTdVRzF3QUE\"},{\"attributes\":{\"status\":\"high\",\"service\":[\"\"],\"tags\":[\"security:attack\",\"technique:t1556-modify-authentication-process\",\"source:runtime-security-agent\",\"tactic:ta0003-persistence\",\"fim:true\",\"technique:t1556-modify-authentication-process\",\"source:runtime-security-agent\",\"security:attack\",\"tactic:ta0003-persistence\",\"type:utimes\",\"type:open\",\"rule_id:pam_modification_utimes\",\"type:chmod\",\"rule_id:pam_modification_chmod\",\"rule_id:pam_modification_open\"],\"timestamp\":\"2022-04-12T13:54:02.513Z\",\"host\":\"i-07e829490e315fe9e\",\"attributes\":{\"status\":\"info\",\"entities\":[\"host:i-07e829490e315fe9e\",\"@usr.id:root\"],\"hostname\":\"i-07e829490e315fe9e\",\"relatedLogsQueryUrl\":\"/logs?query=%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_utimes%29+host%3A%22i-07e829490e315fe9e%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_chown%29+host%3A%22i-07e829490e315fe9e%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_chmod%29+host%3A%22i-07e829490e315fe9e%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_link%29+host%3A%22i-07e829490e315fe9e%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_open%29+host%3A%22i-07e829490e315fe9e%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_unlink%29+host%3A%22i-07e829490e315fe9e%22%29+OR+%28%40agent.rule_id%3A%28pam_modification+OR+pam_modification_rename%29+host%3A%22i-07e829490e315fe9e%22%29&from_ts=1649770441000&to_ts=1649858341000&live=false&integration_id=security_monitoring&integration_short_name=security_investigation\",\"file\":{\"flags\":[\"O_TRUNC\",\"O_WRONLY\",\"O_CLOEXEC\",\"O_CREAT\"]},\"internal_id\":\"xgh-dfy-ywf-19-AYAeDX6RAAASN8tjA-_jFwAN-1632335100\",\"workflow\":{\"events_matched\":41,\"rule\":{\"defaultRuleVersion\":19,\"type\":\"Workload Security\",\"defaultRuleId\":\"tz1-6vg-1yz\",\"detectionMethod\":\"threshold\",\"version\":19,\"isDefaultRule\":true,\"id\":\"xgh-dfy-ywf\",\"name\":\"PAM Configuration Files Modification\"},\"high_cardinality\":{\"attributes\":[\"@file.path\",\"@file.name\"],\"tags\":[]},\"first_seen\":\"2022-04-12T13:54:01.000Z\",\"triage\":{\"assignee\":{\"name\":\"Unassigned\",\"id\":-1},\"state\":\"open\",\"incidentIds\":[],\"updater\":{\"handle\":\"\",\"name\":\"\"},\"creator\":{\"handle\":\"\",\"name\":\"\"}},\"last_seen\":\"2022-04-12T13:54:01.000Z\"},\"process\":{\"executable\":{\"path\":\"/usr/local/bin/containerd\",\"name\":\"containerd\"},\"args\":\"info\",\"pid\":692,\"parent\":{\"executable\":{\"path\":\"/usr/lib/systemd/systemd\",\"name\":\"systemd\"},\"comm\":\"systemd\"}},\"groupByPaths\":[\"host\"],\"title\":\"PAM Configuration Files Modification - pam_modification\",\"agent\":{\"version\":\"7.35.0\",\"rule_id\":[\"pam_modification_utimes\",\"pam_modification_open\",\"pam_modification_chmod\"],\"policy_version\":\"1.4.3\"},\"triggeringRuleCase\":{\"status\":\"high\",\"name\":\"pam_modification\",\"condition\":\"pam_modification_chmod > 0 || pam_modification_chown > 0 || pam_modification_link > 0 || pam_modification_rename > 0 || pam_modification_open > 0 || pam_modification_unlink > 0 || pam_modification_utimes > 0\"},\"service\":\"\",\"usr\":{\"id\":\"root\"},\"samples\":[{\"eventId\":\"AQAAAYAeDXmP3Bju3wAAAABBWUFlRFg2UkFBQVNOOHRqQS1fakZ3QWo\",\"content\":{\"status\":\"info\",\"service\":\"\",\"tags\":[\"source:runtime-security-agent\",\"type:chmod\",\"rule_id:pam_modification_chmod\"],\"timestamp\":\"2022-04-12T13:54:01.231Z\",\"ingest_size_in_bytes\":7693,\"custom\":{\"status\":\"info\",\"service\":\"\",\"title\":\"PAM may have been modified without authorization\",\"process\":{\"executable\":{\"group\":\"root\",\"name\":\"containerd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-17T09:32:05.508169636Z\",\"modification_time\":\"2021-10-06T12:45:08Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/local/bin/containerd\",\"inode\":1181,\"uid\":0},\"ancestors\":[{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:46Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:46Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}}],\"group\":\"root\",\"uid\":0,\"parent\":{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:46Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:46Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}},\"argv0\":\"--log-level\",\"exec_time\":\"2022-04-12T13:51:53Z\",\"args\":[\"info\"],\"pid\":692,\"gid\":0,\"comm\":\"containerd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:53Z\",\"tid\":935,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"},\"ppid\":1},\"timestamp\":1649771641231,\"hostname\":\"i-07e829490e315fe9e\",\"agent\":{\"policy_name\":\"default.policy\",\"rule_id\":\"pam_modification_chmod\",\"version\":\"7.35.0\",\"policy_version\":\"1.4.3\"},\"usr\":{\"group\":\"root\",\"id\":\"root\"},\"file\":{\"change_time\":\"2022-04-12T13:53:54.973243639Z\",\"group\":\"root\",\"uid\":0,\"mount_id\":1444,\"user\":\"root\",\"destination\":{\"gid\":0,\"mode\":420,\"uid\":0},\"modification_time\":\"2022-04-12T13:53:54.973243639Z\",\"gid\":0,\"mode\":33188,\"filesystem\":\"ext4\",\"path\":\"/etc/pam.d/runuser\",\"inode\":1542342,\"name\":\"runuser\"},\"date\":\"2022-04-12T13:53:54.650254404Z\",\"evt\":{\"category\":\"File Activity\",\"outcome\":\"Success\",\"name\":\"chmod\"}},\"source\":\"runtime-security-agent\",\"host\":\"i-07e829490e315fe9e\",\"tiebreaker\":-602345761,\"host_id\":7252584032},\"queryIndex\":0,\"trackKey\":{\"orgId\":2,\"type\":\"logs\"},\"id\":\"AYAeDX6RAAASN8tjA-_jFwAj\"},{\"eventId\":\"AQAAAYAeDXmO3BjuyQAAAABBWUFlRFg2UkFBQVNOOHRqQS1fakZ3QU4\",\"content\":{\"status\":\"info\",\"service\":\"\",\"tags\":[\"type:open\",\"source:runtime-security-agent\",\"rule_id:pam_modification_open\"],\"timestamp\":\"2022-04-12T13:54:01.230Z\",\"ingest_size_in_bytes\":7796,\"custom\":{\"status\":\"info\",\"service\":\"\",\"title\":\"PAM may have been modified without authorization\",\"process\":{\"executable\":{\"group\":\"root\",\"name\":\"containerd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-17T09:32:05.508169636Z\",\"modification_time\":\"2021-10-06T12:45:08Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/local/bin/containerd\",\"inode\":1181,\"uid\":0},\"ancestors\":[{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:46Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:46Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}}],\"group\":\"root\",\"uid\":0,\"parent\":{\"executable\":{\"group\":\"root\",\"name\":\"systemd\",\"mount_id\":24,\"user\":\"root\",\"change_time\":\"2022-03-08T22:18:48.867673359Z\",\"modification_time\":\"2022-01-10T04:56:38Z\",\"gid\":0,\"mode\":33261,\"filesystem\":\"ext4\",\"path\":\"/usr/lib/systemd/systemd\",\"inode\":3398,\"uid\":0},\"group\":\"root\",\"uid\":0,\"exec_time\":\"2022-04-12T13:51:46Z\",\"pid\":1,\"gid\":0,\"comm\":\"systemd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:46Z\",\"tid\":1,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"}},\"argv0\":\"--log-level\",\"exec_time\":\"2022-04-12T13:51:53Z\",\"args\":[\"info\"],\"pid\":692,\"gid\":0,\"comm\":\"containerd\",\"user\":\"root\",\"fork_time\":\"2022-04-12T13:51:53Z\",\"tid\":935,\"credentials\":{\"fsuid\":0,\"euser\":\"root\",\"egid\":0,\"egroup\":\"root\",\"uid\":0,\"fsgroup\":\"root\",\"cap_effective\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"fsgid\":0,\"cap_permitted\":[\"CAP_AUDIT_CONTROL\",\"CAP_AUDIT_READ\",\"CAP_AUDIT_WRITE\",\"CAP_BLOCK_SUSPEND\",\"CAP_BPF\",\"CAP_CHECKPOINT_RESTORE\",\"CAP_CHOWN\",\"CAP_DAC_OVERRIDE\",\"CAP_DAC_READ_SEARCH\",\"CAP_FOWNER\",\"CAP_FSETID\",\"CAP_IPC_LOCK\",\"CAP_IPC_OWNER\",\"CAP_KILL\",\"CAP_LEASE\",\"CAP_LINUX_IMMUTABLE\",\"CAP_MAC_ADMIN\",\"CAP_MAC_OVERRIDE\",\"CAP_MKNOD\",\"CAP_NET_ADMIN\",\"CAP_NET_BIND_SERVICE\",\"CAP_NET_BROADCAST\",\"CAP_NET_RAW\",\"CAP_PERFMON\",\"CAP_SETFCAP\",\"CAP_SETGID\",\"CAP_SETPCAP\",\"CAP_SETUID\",\"CAP_SYSLOG\",\"CAP_SYS_ADMIN\",\"CAP_SYS_BOOT\",\"CAP_SYS_CHROOT\",\"CAP_SYS_MODULE\",\"CAP_SYS_NICE\",\"CAP_SYS_PACCT\",\"CAP_SYS_PTRACE\",\"CAP_SYS_RAWIO\",\"CAP_SYS_RESOURCE\",\"CAP_SYS_TIME\",\"CAP_SYS_TTY_CONFIG\",\"CAP_WAKE_ALARM\"],\"gid\":0,\"euid\":0,\"fsuser\":\"root\",\"group\":\"root\",\"user\":\"root\"},\"ppid\":1},\"timestamp\":1649771641230,\"hostname\":\"i-07e829490e315fe9e\",\"agent\":{\"policy_name\":\"default.policy\",\"rule_id\":\"pam_modification_open\",\"version\":\"7.35.0\",\"policy_version\":\"1.4.3\"},\"usr\":{\"group\":\"root\",\"id\":\"root\"},\"file\":{\"change_time\":\"2022-04-12T13:53:54.973243639Z\",\"group\":\"root\",\"uid\":0,\"mount_id\":1444,\"user\":\"root\",\"destination\":{\"gid\":0,\"mode\":420,\"uid\":0},\"modification_time\":\"2022-04-12T13:53:54.973243639Z\",\"gid\":0,\"flags\":[\"O_CLOEXEC\",\"O_CREAT\",\"O_TRUNC\",\"O_WRONLY\"],\"mode\":33188,\"filesystem\":\"ext4\",\"path\":\"/etc/pam.d/common-session-noninteractive\",\"inode\":1542337,\"name\":\"common-session-noninteractive\"},\"date\":\"2022-04-12T13:53:54.649642196Z\",\"evt\":{\"category\":\"File Activity\",\"outcome\":\"Success\",\"name\":\"open\"}},\"source\":\"runtime-security-agent\",\"host\":\"i-07e829490e315fe9e\",\"tiebreaker\":-602345783,\"host_id\":7252584032},\"queryIndex\":4,\"trackKey\":{\"orgId\":2,\"type\":\"logs\"},\"id\":\"AYAeDX6RAAASN8tjA-_jFwAN\"}],\"queries\":[{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":20,\"distinctValues\":[],\"value\":20.0},\"name\":\"pam_modification_chmod\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_chmod)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_chown\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_chown)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_link\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_link)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_rename\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_rename)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":11,\"distinctValues\":[],\"value\":11.0},\"name\":\"pam_modification_open\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_open)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":0,\"distinctValues\":[],\"value\":0.0},\"name\":\"pam_modification_unlink\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_unlink)\",\"groupByPaths\":[\"host\"]},{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":10,\"distinctValues\":[],\"value\":10.0},\"name\":\"pam_modification_utimes\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"@agent.rule_id:(pam_modification OR pam_modification_utimes)\",\"groupByPaths\":[\"host\"]}],\"evt\":{\"category\":\"File Activity\",\"outcome\":\"Success\",\"name\":[\"chmod\",\"open\",\"utimes\"]}},\"message\":\"%%%\\n## Goal\\nDetect modifications to `pam.d` directory.\\n\\n## Strategy\\nLinux Pluggable Authentication Modules (PAM) provide authentication for applications and services. Authentication modules in the PAM system are setup and configured under the `/etc/pam.d/` directory. An attacker may attempt to modify or add an authentication module in PAM in order to bypass the authentication process, or reveal system credentials.\\n\\n## Triage and response\\n1. Check to see what changes were made to `/etc/pam.d/`.\\n2. Check whether the changes were a part of known system-setup or maintenance.\\n3. If these changes were unauthorized, roll back the host in question to a known good PAM configuration, or replace the system with a known-good system image.\\n\\n%%%\"},\"type\":\"signal\",\"id\":\"AQAAAYAeDX6RQ1MmRQAAAABBWUFlRFg2UkFBRDZONmh4RHNIOGF3QUE\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/security_monitoring/signals?sort=timestamp&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFlRFg2UlExTW1SUUFBQUFCQldVRmxSRmcyVWtGQlJEWk9ObWg0UkhOSU9HRjNRVUUifQ&filter%5Bfrom%5D=now-15m&filter%5Bquery%5D=security%3Aattack+status%3Ahigh&page%5Blimit%5D=2\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 12 Apr 2022 15:49:41 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/signals?page%5Blimit%5D=2&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFlZHdCbC1Wd21VZ0FBQUFCQldVRmxaSGRDYkVGQlFXRkpURGgxTlZNMFFtTlJRVUUifQ" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"after\":\"eyJhZnRlciI6IkFRQUFBWUFlRGFHZENMd21QZ0FBQUFCQldVRmxSR0ZIWkVGQlJFa3lkakpuYjFCSmF6Um5RVUUifQ\"}},\"data\":[{\"attributes\":{\"status\":\"high\",\"service\":[\"route53\"],\"tags\":[\"security:attack\",\"instance-id:i-001d8edd861c028cb\",\"kube_cluster_name:spam\",\"technique:t1552-unsecured-credentials\",\"source:route53\",\"env:prod\",\"tactic:ta0006-credential-access\",\"technique:t1552-unsecured-credentials\",\"source:route53\",\"tactic:ta0006-credential-access\",\"security:attack\",\"name:logs-general_event-workloads-16cpu-32gb-v1\",\"cost_isolation_id:netflow-shopify\",\"admission.mycorp.com/mutate-pods:true\",\"kernel:none\",\"k8s.io/cluster-autoscaler/node-template/resources/memory:30432360858\",\"account:prod\",\"k8s.io/cluster-autoscaler/node-template/resources/ephemeral-storage:18747532246\",\"agent_support_urgency:high\",\"security-group:sg-035e4410c7cbfcad1\",\"security-group-name:common\",\"kube_node_role:event-workloads-16cpu-32gb-v1\",\"availability-zone:us-east-1b\",\"role:kube-node\",\"admission.mycorp.com/validate-pods:true\",\"subscription:paid\",\"forwarder_version:3.41.0\",\"vpc:vpc-4b00eb31\",\"cost_product:netflow\",\"app.kubernetes.io/managed-by:helm\",\"nodegroups.mycorp.com/name:event-workloads-16cpu-32gb-v1\",\"instance-type:c6i.4xlarge\",\"cost_customer:shopify\",\"admission.mycorp.com/validate-services:true\",\"kube_cluster_name:spam\",\"k8s.io/cluster-autoscaler/node-template/label/chart_name:logs-nodegroups\",\"nodegroup:logs-general_event-workloads-16cpu-32gb-v1\",\"forwardername:datadog-forwarder-prod-org-2\",\"k8s.io/cluster-autoscaler/node-template/resources/cpu:15900m\",\"kubernetes.io/cluster/spam:owned\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.mycorp.com/namespace:logs-general\",\"security-group:sg-ca164381\",\"nodegroups.mycorp.com/namespace:logs-general\",\"nodegroups.mycorp.com/cluster-autoscaler:true\",\"kube_node_role:compute\",\"k8s.io/cluster-autoscaler/node-template/label/team:logs\",\"aws_account:464622532012\",\"site:mycorp.com\",\"chart_name:logs-nodegroups\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.mycorp.com/local-storage:false\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.mycorp.com/name:event-workloads-16cpu-32gb-v1\",\"kubernetes_cluster:spam\",\"env:prod\",\"cost_service:workload-backup\",\"image:ami-075fcd3f2baa396f5\",\"instance-id:i-001d8edd861c028cb\",\"k8s.io/cluster-autoscaler/enabled:yes\",\"kube_node_role:event-workloads-16cpu-32gb\",\"region:us-east-1\",\"ng_local_storage:false\",\"team:logs\",\"autoscaling_group:us1-foo.bar-spam-k8s-ng-asg-36e15503eaab\",\"hash:91f8\",\"cpu_arch:amd64\",\"ng_cluster_autoscaler:true\",\"app.kubernetes.io/name:logs-nodegroups\",\"iam_profile:us1-foo.bar-parent8/us1-foo.bar-spam-kube-node-kubernetes-node-low-trust\",\"security-group-name:us1-foo.bar-spam-k8s-node\",\"dd_compute_k8s_platform_version:v5-14-8\",\"forwarder_memorysize:1024\",\"has_detected_ip:true\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.mycorp.com/cluster-autoscaler:true\",\"daemonset-profile.mycorp.com/cilium-agent:large-v1\",\"cost_group:indexing\",\"cost_team:networks\",\"cluster_name:spam\",\"cost_subservice:logs-backup\",\"k8s.io/cluster-autoscaler/node-template/taint/node:event-workloads-16cpu-32gb:noschedule\",\"instance_type:c6i.4xlarge\",\"k8s.io/cluster-autoscaler/node-template/resources/pods:160\",\"k8s.io/cluster-autoscaler/node-template/label/daemonset-profile.mycorp.com/cilium-agent:large-v1\",\"security_group_name:us1-foo.bar-spam-k8s-node\",\"datacenter:us1.foo.bar\",\"sourcecategory:aws\",\"nodegroups.mycorp.com/local-storage:false\",\"security_group_name:common\"],\"timestamp\":\"2022-04-12T13:54:11.485Z\",\"host\":\"i-001d8edd861c028cb\",\"attributes\":{\"relatedLogsQueryUrl\":\"/logs?query=source%3Aroute53+%40answers.Rdata%3A169.254.169.254+-%40route53_edge_location%3A*+instance-id%3A%22i-001d8edd861c028cb%22&from_ts=1649770258000&to_ts=1649858158000&live=false&integration_id=security_monitoring&integration_short_name=security_investigation\",\"samples\":[{\"eventId\":\"AQAAAYAeGG1YthMNxQAAAABBWUFlR2huNkFBQzVSdVc0VldqMU53RV8\",\"content\":{\"status\":\"info\",\"__dd\":{\"online_archive\":true},\"service\":\"route53\",\"tags\":[\"forwardername:datadog-forwarder-prod-org-2\",\"source:route53\",\"forwarder_version:3.41.0\",\"sourcecategory:aws\",\"forwarder_memorysize:1024\",\"agent_support_urgency:high\",\"chart_name:logs-nodegroups\",\"cluster_name:spam\",\"cpu_arch:amd64\",\"datacenter:us1.foo.bar\",\"env:prod\",\"instance_type:c6i.4xlarge\",\"kube_cluster_name:spam\",\"kube_node_role:compute\",\"kube_node_role:event-workloads-16cpu-32gb\",\"kube_node_role:event-workloads-16cpu-32gb-v1\",\"ng_cluster_autoscaler:true\",\"ng_local_storage:false\",\"site:mycorp.com\",\"team:logs\",\"account:prod\",\"admission.mycorp.com/mutate-pods:true\",\"admission.mycorp.com/validate-pods:true\",\"admission.mycorp.com/validate-services:true\",\"app.kubernetes.io/managed-by:helm\",\"app.kubernetes.io/name:logs-nodegroups\",\"auto-discovery.cluster-autoscaler.k8s.io/spam\",\"autoscaling_group:us1-foo.bar-spam-k8s-ng-asg-36e15503eaab\",\"availability-zone:us-east-1b\",\"cost_customer:shopify\",\"cost_group:indexing\",\"cost_isolation_id:netflow-shopify\",\"cost_product:netflow\",\"cost_service:workload-backup\",\"cost_subservice:logs-backup\",\"cost_team:networks\",\"daemonset-profile.mycorp.com/cilium-agent:large-v1\",\"dd_compute_k8s_platform_version:v5-14-8\",\"hash:91f8\",\"iam_profile:us1-foo.bar-parent8/us1-foo.bar-spam-kube-node-kubernetes-node-low-trust\",\"image:ami-075fcd3f2baa396f5\",\"instance-type:c6i.4xlarge\",\"k8s.io/cluster-autoscaler/enabled:yes\",\"k8s.io/cluster-autoscaler/node-template/label/chart_name:logs-nodegroups\",\"k8s.io/cluster-autoscaler/node-template/label/daemonset-profile.mycorp.com/cilium-agent:large-v1\",\"k8s.io/cluster-autoscaler/node-template/label/node-role.kubernetes.io/compute\",\"k8s.io/cluster-autoscaler/node-template/label/node-role.kubernetes.io/event-workloads-16cpu-32gb\",\"k8s.io/cluster-autoscaler/node-template/label/node-role.kubernetes.io/event-workloads-16cpu-32gb-v1\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.mycorp.com/cluster-autoscaler:true\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.mycorp.com/local-storage:false\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.mycorp.com/name:event-workloads-16cpu-32gb-v1\",\"k8s.io/cluster-autoscaler/node-template/label/nodegroups.mycorp.com/namespace:logs-general\",\"k8s.io/cluster-autoscaler/node-template/label/team:logs\",\"k8s.io/cluster-autoscaler/node-template/resources/cpu:15900m\",\"k8s.io/cluster-autoscaler/node-template/resources/ephemeral-storage:18747532246\",\"k8s.io/cluster-autoscaler/node-template/resources/memory:30432360858\",\"k8s.io/cluster-autoscaler/node-template/resources/pods:160\",\"k8s.io/cluster-autoscaler/node-template/taint/node:event-workloads-16cpu-32gb:noschedule\",\"kernel:none\",\"kubernetes.io/cluster/spam:owned\",\"kubernetes_cluster:spam\",\"name:logs-general_event-workloads-16cpu-32gb-v1\",\"node-role.kubernetes.io/compute\",\"node-role.kubernetes.io/event-workloads-16cpu-32gb\",\"node-role.kubernetes.io/event-workloads-16cpu-32gb-v1\",\"nodegroup:logs-general_event-workloads-16cpu-32gb-v1\",\"nodegroups.mycorp.com/cluster-autoscaler:true\",\"nodegroups.mycorp.com/local-storage:false\",\"nodegroups.mycorp.com/name:event-workloads-16cpu-32gb-v1\",\"nodegroups.mycorp.com/namespace:logs-general\",\"region:us-east-1\",\"role:kube-node\",\"security-group-name:common\",\"security-group-name:us1-foo.bar-spam-k8s-node\",\"security-group:sg-035e4410c7cbfcad1\",\"security-group:sg-ca164381\",\"security_group_name:common\",\"security_group_name:us1-foo.bar-spam-k8s-node\",\"subscription:paid\",\"instance-id:i-001d8edd861c028cb\",\"vpc:vpc-4b00eb31\",\"aws_account:464622532012\",\"has_detected_ip:true\"],\"timestamp\":\"2022-04-12T14:05:59.000Z\",\"ingest_size_in_bytes\":1037,\"custom\":{\"network\":{\"ip\":{\"list\":[\"10.59.175.16\",\"169.254.169.254\"]},\"client\":{\"geoip\":{},\"port\":\"57050\",\"ip\":\"10.59.175.16\"}},\"service\":\"route53\",\"title\":\"Address record lookup for instance-data.ec2.internal. from 10.59.175.16\",\"aws\":{\"s3\":{\"bucket\":\"datadog-dns-logs-us1-datadog-blue\",\"key\":\"AWSLogs/464622532012/vpcdnsquerylogs/vpc-4b00eb31/2022/04/12/vpc-4b00eb31_vpcdnsquerylogs_464622532012_20220412T1405Z_25118f19.log.gz\"},\"function_version\":\"$LATEST\",\"invoked_function_arn\":\"arn:aws:lambda:us-east-1:013910733512:function:datadog-forwarder-prod-org-2\"},\"answers\":[{\"Type\":\"A\",\"Class\":\"IN\",\"Rdata\":\"169.254.169.254\"}],\"host\":\"i-001d8edd861c028cb\",\"version\":\"1.100000\",\"srcids\":{},\"dns\":{\"flags\":{\"rcode\":\"NOERROR\"},\"question\":{\"type_description\":\"Address record\",\"type\":\"A\",\"name\":\"instance-data.ec2.internal.\",\"class\":\"IN\"},\"transport\":\"UDP\"},\"query_timestamp\":\"2022-04-12T14:05:59Z\"},\"source\":\"route53\",\"host\":\"i-001d8edd861c028cb\",\"tiebreaker\":-1240265275,\"host_id\":7195649243},\"queryIndex\":0,\"trackKey\":{\"orgId\":2,\"type\":\"logs\"},\"id\":\"AYAeGhn6AAC5RuW4VWj1NwE_\"}],\"internal_id\":\"z4y-148-fv6-4-AYAeDaGdAAAeViZd58O0SwBo--587970340\",\"title\":\"EC2 instance resolved a suspicious AWS metadata DNS query\",\"triggeringRuleCase\":{\"status\":\"high\",\"name\":\"\",\"condition\":\"domain_resolve_to_metadata_ip > 0\"},\"groupByPaths\":[\"tags.instance-id\"],\"workflow\":{\"events_matched\":1,\"rule\":{\"defaultRuleVersion\":8,\"type\":\"Log Detection\",\"defaultRuleId\":\"8c5-34f-fa2\",\"detectionMethod\":\"threshold\",\"version\":13,\"isDefaultRule\":true,\"id\":\"z4y-148-fv6\",\"name\":\"EC2 instance resolved a suspicious AWS metadata DNS query\"},\"high_cardinality\":{\"attributes\":[],\"tags\":[]},\"first_seen\":\"2022-04-12T13:50:58.000Z\",\"triage\":{\"assignee\":{\"id\":-1},\"state\":\"open\",\"incidentIds\":[],\"updater\":{\"handle\":\"\",\"name\":\"\"},\"creator\":{\"handle\":\"\",\"name\":\"\"}},\"last_seen\":\"2022-04-12T14:05:59.000Z\"},\"aws\":{\"s3\":{\"bucket\":\"datadog-dns-logs-us1-datadog-blue\"},\"invoked_function_arn\":\"arn:aws:lambda:us-east-1:013910733512:function:datadog-forwarder-prod-org-2\"},\"entities\":[\"host:i-001d8edd861c028cb\",\"@network.client.ip:10.59.175.16\",\"@dns.question.name:instance-data.ec2.internal.\"],\"host\":\"i-001d8edd861c028cb\",\"service\":\"route53\",\"dns\":{\"flags\":{\"rcode\":\"NOERROR\"},\"question\":{\"type_description\":\"Address record\",\"type\":\"A\",\"name\":\"instance-data.ec2.internal.\",\"class\":\"IN\"}},\"queries\":[{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":2,\"distinctValues\":[],\"value\":2.0},\"name\":\"domain_resolve_to_metadata_ip\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"source:route53 @answers.Rdata:169.254.169.254 -@route53_edge_location:*\",\"groupByPaths\":[\"tags.instance-id\"]}],\"network\":{\"client\":{\"ip\":\"10.59.175.16\"}}},\"message\":\"%%%\\n## Goal\\nDetect when a requested domain resolves to the AWS Metadata IP (169.254.169.254).\\n\\n## Strategy\\nInspect the Route 53 logs and determine if the response data for a DNS request matches the AWS Metadata IP (169.254.169.254). This could indicate an attacker is attempting to steal your credentials from the AWS metadata service.\\n\\n## Triage and response\\n1. Determine which instance is associated with the DNS request.\\n2. Determine whether the domain name which was requested (`dns.question.name`) should be permitted. If not, conduct an investigation and determine what requested the domain and determine if the AWS metadata credentials were accessed by an attacker.\\n\\n%%%\"},\"type\":\"signal\",\"id\":\"AQAAAYAeDaGdCLwmPQAAAABBWUFlRGFHZEFBQ3R3QXBJcFc0dEVBQUE\"}],\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/security_monitoring/signals?sort=timestamp&filter%5Bto%5D=now&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWUFlRGFHZENMd21QZ0FBQUFCQldVRmxSR0ZIWkVGQlJFa3lkakpuYjFCSmF6Um5RVUUifQ&filter%5Bfrom%5D=now-15m&filter%5Bquery%5D=security%3Aattack+status%3Ahigh&page%5Blimit%5D=2\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 12 Apr 2022 15:49:41 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Get-a-rule-s-details-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Get-a-rule-s-details-returns-Not-Found-response.json index b680312da..ddd8e476b 100644 --- a/tests/scenarios/cassettes/v2/security_monitoring/Get-a-rule-s-details-returns-Not-Found-response.json +++ b/tests/scenarios/cassettes/v2/security_monitoring/Get-a-rule-s-details-returns-Not-Found-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/abcde-12345"}, "response": {"body": {"string": "{\"errors\":[\"Not found\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Fri, 07 Apr 2023 18:18:58 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/abcde-12345" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Not found\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Fri, 07 Apr 2023 18:18:58 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Get-a-rule-s-details-returns-OK-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Get-a-rule-s-details-returns-OK-response.json index a8feed3f7..38aaec7ce 100644 --- a/tests/scenarios/cassettes/v2/security_monitoring/Get-a-rule-s-details-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/security_monitoring/Get-a-rule-s-details-returns-OK-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"cases\":[{\"condition\":\"a > 0\",\"name\":\"\",\"notifications\":[],\"status\":\"info\"}],\"filters\":[],\"isEnabled\":true,\"message\":\"Test rule\",\"name\":\"Test-Get_a_rule_s_details_returns_OK_response-1666643900\",\"options\":{\"evaluationWindow\":900,\"keepAlive\":3600,\"maxSignalDuration\":86400},\"queries\":[{\"aggregation\":\"count\",\"distinctFields\":[],\"groupByFields\":[],\"metrics\":[],\"query\":\"@test:true\"}],\"tags\":[],\"type\":\"log_detection\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules"}, "response": {"body": {"string": "{\"creationAuthorId\":1445416,\"tags\":[],\"isEnabled\":true,\"hasExtendedTitle\":false,\"message\":\"Test rule\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":900,\"maxSignalDuration\":86400,\"keepAlive\":3600},\"version\":1,\"createdAt\":1666643900572,\"filters\":[],\"queries\":[{\"query\":\"@test:true\",\"groupByFields\":[],\"aggregation\":\"count\",\"name\":\"\",\"distinctFields\":[]}],\"isDeleted\":false,\"cases\":[{\"status\":\"info\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"type\":\"log_detection\",\"id\":\"crk-wil-reo\",\"isDefault\":false,\"name\":\"Test-Get_a_rule_s_details_returns_OK_response-1666643900\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 24 Oct 2022 20:38:20 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/crk-wil-reo"}, "response": {"body": {"string": "{\"creationAuthorId\":1445416,\"tags\":[],\"isEnabled\":true,\"hasExtendedTitle\":false,\"message\":\"Test rule\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":900,\"maxSignalDuration\":86400,\"keepAlive\":3600},\"version\":1,\"createdAt\":1666643900572,\"filters\":[],\"queries\":[{\"query\":\"@test:true\",\"groupByFields\":[],\"aggregation\":\"count\",\"name\":\"\",\"distinctFields\":[]}],\"isDeleted\":false,\"cases\":[{\"status\":\"info\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"type\":\"log_detection\",\"id\":\"crk-wil-reo\",\"isDefault\":false,\"name\":\"Test-Get_a_rule_s_details_returns_OK_response-1666643900\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 24 Oct 2022 20:38:20 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/crk-wil-reo"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 24 Oct 2022 20:38:20 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"cases\":[{\"condition\":\"a > 0\",\"name\":\"\",\"notifications\":[],\"status\":\"info\"}],\"filters\":[],\"isEnabled\":true,\"message\":\"Test rule\",\"name\":\"Test-Get_a_rule_s_details_returns_OK_response-1666643900\",\"options\":{\"evaluationWindow\":900,\"keepAlive\":3600,\"maxSignalDuration\":86400},\"queries\":[{\"aggregation\":\"count\",\"distinctFields\":[],\"groupByFields\":[],\"metrics\":[],\"query\":\"@test:true\"}],\"tags\":[],\"type\":\"log_detection\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules" + }, + "response": { + "body": { + "string": "{\"creationAuthorId\":1445416,\"tags\":[],\"isEnabled\":true,\"hasExtendedTitle\":false,\"message\":\"Test rule\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":900,\"maxSignalDuration\":86400,\"keepAlive\":3600},\"version\":1,\"createdAt\":1666643900572,\"filters\":[],\"queries\":[{\"query\":\"@test:true\",\"groupByFields\":[],\"aggregation\":\"count\",\"name\":\"\",\"distinctFields\":[]}],\"isDeleted\":false,\"cases\":[{\"status\":\"info\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"type\":\"log_detection\",\"id\":\"crk-wil-reo\",\"isDefault\":false,\"name\":\"Test-Get_a_rule_s_details_returns_OK_response-1666643900\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 24 Oct 2022 20:38:20 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/crk-wil-reo" + }, + "response": { + "body": { + "string": "{\"creationAuthorId\":1445416,\"tags\":[],\"isEnabled\":true,\"hasExtendedTitle\":false,\"message\":\"Test rule\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":900,\"maxSignalDuration\":86400,\"keepAlive\":3600},\"version\":1,\"createdAt\":1666643900572,\"filters\":[],\"queries\":[{\"query\":\"@test:true\",\"groupByFields\":[],\"aggregation\":\"count\",\"name\":\"\",\"distinctFields\":[]}],\"isDeleted\":false,\"cases\":[{\"status\":\"info\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"type\":\"log_detection\",\"id\":\"crk-wil-reo\",\"isDefault\":false,\"name\":\"Test-Get_a_rule_s_details_returns_OK_response-1666643900\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 24 Oct 2022 20:38:20 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/crk-wil-reo" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 24 Oct 2022 20:38:20 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Get-a-security-filter-returns-OK-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Get-a-security-filter-returns-OK-response.json index 6770c1049..834b07595 100644 --- a/tests/scenarios/cassettes/v2/security_monitoring/Get-a-security-filter-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/security_monitoring/Get-a-security-filter-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"exclusion_filters\":[{\"name\":\"Exclude logs from staging\",\"query\":\"source:staging\"}],\"filtered_data_type\":\"logs\",\"is_enabled\":true,\"name\":\"Test-Get_a_security_filter_returns_OK_response-1666186604\",\"query\":\"service:TestGetasecurityfilterreturnsOKresponse1666186604\"},\"type\":\"security_filters\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/security_filters"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Get_a_security_filter_returns_OK_response-1666186604\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestGetasecurityfilterreturnsOKresponse1666186604\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"z3t-ier-scu\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 19 Oct 2022 13:36:44 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/security_filters/z3t-ier-scu"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Get_a_security_filter_returns_OK_response-1666186604\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestGetasecurityfilterreturnsOKresponse1666186604\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"z3t-ier-scu\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 19 Oct 2022 13:36:44 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/security_filters/z3t-ier-scu"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 19 Oct 2022 13:36:44 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"exclusion_filters\":[{\"name\":\"Exclude logs from staging\",\"query\":\"source:staging\"}],\"filtered_data_type\":\"logs\",\"is_enabled\":true,\"name\":\"Test-Get_a_security_filter_returns_OK_response-1666186604\",\"query\":\"service:TestGetasecurityfilterreturnsOKresponse1666186604\"},\"type\":\"security_filters\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/security_filters" + }, + "response": { + "body": { + "string": "{\"data\":{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Get_a_security_filter_returns_OK_response-1666186604\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestGetasecurityfilterreturnsOKresponse1666186604\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"z3t-ier-scu\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 19 Oct 2022 13:36:44 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/security_filters/z3t-ier-scu" + }, + "response": { + "body": { + "string": "{\"data\":{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Get_a_security_filter_returns_OK_response-1666186604\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestGetasecurityfilterreturnsOKresponse1666186604\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"z3t-ier-scu\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 19 Oct 2022 13:36:44 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/security_filters/z3t-ier-scu" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 19 Oct 2022 13:36:44 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Get-a-signal-s-details-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Get-a-signal-s-details-returns-Not-Found-response.json index 3d32be281..d66c4f92b 100644 --- a/tests/scenarios/cassettes/v2/security_monitoring/Get-a-signal-s-details-returns-Not-Found-response.json +++ b/tests/scenarios/cassettes/v2/security_monitoring/Get-a-signal-s-details-returns-Not-Found-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/signals/AQAAAYNqUBVU4-rffwAAAABBWU5xVUJWVUFBQjJBd3ptCL3QUEm3nt2"}, "response": {"body": {"string": "{\"errors\":[\"Signal not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Fri, 23 Sep 2022 14:12:23 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/signals/AQAAAYNqUBVU4-rffwAAAABBWU5xVUJWVUFBQjJBd3ptCL3QUEm3nt2" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Signal not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Fri, 23 Sep 2022 14:12:23 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Get-a-signal-s-details-returns-OK-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Get-a-signal-s-details-returns-OK-response.json index d966cbb33..2cc3a9627 100644 --- a/tests/scenarios/cassettes/v2/security_monitoring/Get-a-signal-s-details-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/security_monitoring/Get-a-signal-s-details-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/signals/AQAAAYNqUBVU4-rffwAAAABBWU5xVUJWVUFBQjJBd3ptMDdQUnF3QUE"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"discovery_timestamp\":1663935976788,\"searchable\":{\"title\":\"Generate a fake Signal\"},\"triggering_log_timestamp\":\"2022-09-23T12:26:16.788Z\",\"groupByValuesHash\":\"0e2-32k-1pb-1-AYNqUBVUAAB7Q6xMp4yBGgAF\",\"reducer_signal_id\":\"0e2-32k-1pb-1-AYNqUBVUAAB7Q6xMp4yBGgAF\",\"tag\":{\"source\":\"python\",\"env\":\"pcf-tealblue\",\"instance-id\":\"6161818930815280887\"},\"discovery_hour\":462204,\"gated\":{\"network\":{\"ip\":{\"list\":[\"8.8.8.8\",\"10.0.4.8\",\"127.0.0.1\"]}},\"workflow\":{\"events_matched\":200,\"rule\":{\"isDefaultRule\":false,\"defaultRuleVersion\":0,\"defaultRuleId\":null},\"high_cardinality\":{\"attributes\":[\"@trace_id\"],\"tags\":[]},\"first_seen\":\"2022-09-23T12:26:13.000Z\",\"triage\":{\"assignee\":{\"id\":-1},\"incidentIds\":[]},\"last_seen\":\"2022-09-23T12:26:41.000Z\"},\"triggeringRuleCase\":{\"status\":\"info\",\"notifications\":[],\"name\":\"\",\"condition\":\"a>0\"},\"relatedQuery\":{\"from\":1663935673000,\"track\":\"logs\",\"viewParameters\":{\"integration_id\":\"security_monitoring\",\"integration_short_name\":\"security_investigation\"},\"to\":1663936301000,\"queries\":{\"a\":\"(source:python) ((*) OR (service:api -(source:staging)) OR (acceptance rule triggered -(does not really match much) -(neither does it)) OR (ayayay query -(does not really match much) -(neither does it)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1631884327 -(source:staging)) OR (service:TestDeleteasecurityfilterreturnsNoContentresponse1631884338 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1631884338 -(source:staging)) OR (service:TestDeleteasecurityfilterreturnsNoContentresponse1631884454 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1631884464 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1631884465 -(source:staging)) OR (service:TestDeleteasecurityfilterreturnsNoContentresponse1631884670 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1631884674 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1631884674 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1631884714 -(source:staging)) OR (service:TestDeleteasecurityfilterreturnsNoContentresponse1631884715 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1631884725 -(source:staging)) OR (service:TestPythonDeleteasecurityfilterreturnsNoContentresponse1631886017 -(source:staging)) OR (service:TestPythonGetasecurityfilterreturnsOKresponse1631886029 -(source:staging)) OR (service:TestPythonUpdateasecurityfilterreturnsOKresponse1631886034 -(source:staging)) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632817310 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632817310 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632817311) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632820231 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632820231 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632820232) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632820436 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632820437 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632820438) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632821203 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632821205 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632821205) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632821494 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632821495 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632821495) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632824855 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632824856 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632824857) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632826434 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632826436 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632826436) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632827408 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632827409 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632827410) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632828993 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632828993 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632828994) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632832892 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632832892 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632832893) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632833158 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632833159 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632833159) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632836449 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632836451 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632836452) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632839530 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632839530 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632839530) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632839555 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632839556 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632839557) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632839754 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632839755 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632839755) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632841163 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632841164 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632841165) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632842479 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632842482 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632842482) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632843068 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632843069 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632843069) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632844019 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632844020 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632844021) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632844135 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632844135 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632844135) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632846637 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632846638 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632846639) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632847599 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632847600 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632847601) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632848092 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632848094 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632848095) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632848450 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632848451 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632848451) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632848885 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632848885 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632848886) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632849681 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632849683 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632849684) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632849896 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632849897 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632849898) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632851126 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632851127 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632851128) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632888517 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632888518 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632888518) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632898979 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632898980 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632898980) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632899193 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632899194 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632899194) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632902893 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632902894 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632902894) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632903483 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632903484 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632903485) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632904028 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632904028 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632904029) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632907319 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632907320 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632907320) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632907341 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632907342 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632907342) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632908400 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632908401 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632908402) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632909893 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632909895 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632909896) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632910740 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632910741 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632910742) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632913811 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632913813 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632913814) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632918181 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632918181 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632918182) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632919352 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632919352 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632919353) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632919567 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632919568 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632919568) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632921868 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632921868 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632921869) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632922202 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632922203 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632922203) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632928250 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632928250 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632928251) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632933845 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632933846 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632933847) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632974965 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632974966 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632974966) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632986086 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632986087 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632986087) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632989757 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632989758 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632989758) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632997311 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632997312 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632997312) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633000142 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633000144 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633000145) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633003795 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633003796 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633003797) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633004068 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633004069 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633004069) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633006704 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633006704 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633006705) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633007542 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633007542 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633007543) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633011104 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633011105 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633011105) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633011244 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633011246 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633011247) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633015449 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633015451 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633015452) OR (service:TestRubyGetasecurityfilterreturnsOKresponse1634150224 -(source:staging)) OR (service:TestPythonGetasecurityfilterreturnsOKresponse1635496812 -(source:staging)) OR (service:TestGoGetasecurityfilterreturnsOKresponse1636410254 -(source:staging)) OR (service:TestCreateasecurityfilterreturnsOKresponse1637063344 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1637063346 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1637063347) OR (service:TestCreateasecurityfilterreturnsOKresponse1637070528 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1637070533 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1637070535) OR (service:TestCreateasecurityfilterreturnsOKresponse1637077967 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1637077969 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1637077970) OR (service:TestCreateasecurityfilterreturnsOKresponse1637078478 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1637078481 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1637078482) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1637089241 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1620751633 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1620751634) OR (service:TestCreateasecurityfilterreturnsOKresponse1637141213 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1637141215 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1637141217) OR (service:TestRubyGetasecurityfilterreturnsOKresponse1637834808 -(source:staging)) OR (service:TestPythonGetasecurityfilterreturnsOKresponse1638987050 -(source:staging)) OR (service:TestPythonDeleteasecurityfilterreturnsNoContentresponse1638987054 -(source:staging)) OR (service:TestPythonUpdateasecurityfilterreturnsOKresponse1638987055 -(source:staging)) OR (service:TestPythonCreateasecurityfilterreturnsOKresponse1638987057 -(source:staging)) OR (service:TestPythonDeleteasecurityfilterreturnsNoContentresponse1639574360 -(source:staging)) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1640111630 -(source:staging)) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1640112776 -(source:staging)) OR (service:TestCreateasecurityfilterreturnsOKresponse1640112926 -(source:staging)) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1641598933 -(source:staging)) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1642578134 -(source:staging)) OR (service:TestExampleGetasecurityfilterreturnsOKresponse1642733138 -(source:staging)) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1642756664 -(source:staging)) OR (service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1642756664 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1642756664 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1642756664 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1643209589) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1643950965) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1644339764 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1644382966 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1644656566 -(source:staging)) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1644685366 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1645102964) OR (service:ExampleGetasecurityfilterreturnsOKresponse1645131764 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1645534965) OR (service:ExampleGetasecurityfilterreturnsOKresponse1645664565 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1647162167) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1647651765 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1647954164) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1648170165 -(source:staging)) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1648270965 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1648314166 -(source:staging)) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1648501364 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1648501364) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1648587764) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1648818166 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1648832565 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1648990964) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1649120564) OR (service:ExampleGetasecurityfilterreturnsOKresponse1649192564 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1649667764 -(source:staging)) OR (service:TestDeleteasecurityfilterreturnsNoContentresponse1649928918 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1650243764 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1650358964) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1650531764) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1651410164) OR (service:ExampleGetasecurityfilterreturnsOKresponse1651597364 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1651654964 -(source:staging)) OR (service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1651867320 -(source:staging)) OR (service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1651912576 -(source:staging)) OR (service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1651915972 -(source:staging)) OR (service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1651943585 -(source:staging)) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1651997988 -(source:staging)) OR (service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1651997988 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1651997989 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1651997990) OR (service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1652008989 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1656001148 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1656001148) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1656001150 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1657253948 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1657469948 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1657599548) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1657887548) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1658175548) OR (first query -(does not really match much) -(neither does it)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1658636349) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1658909949) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1659140350 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1660119548 -(source:staging)))\"},\"query\":\"(source:python) ((*) OR (service:api -(source:staging)) OR (acceptance rule triggered -(does not really match much) -(neither does it)) OR (ayayay query -(does not really match much) -(neither does it)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1631884327 -(source:staging)) OR (service:TestDeleteasecurityfilterreturnsNoContentresponse1631884338 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1631884338 -(source:staging)) OR (service:TestDeleteasecurityfilterreturnsNoContentresponse1631884454 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1631884464 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1631884465 -(source:staging)) OR (service:TestDeleteasecurityfilterreturnsNoContentresponse1631884670 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1631884674 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1631884674 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1631884714 -(source:staging)) OR (service:TestDeleteasecurityfilterreturnsNoContentresponse1631884715 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1631884725 -(source:staging)) OR (service:TestPythonDeleteasecurityfilterreturnsNoContentresponse1631886017 -(source:staging)) OR (service:TestPythonGetasecurityfilterreturnsOKresponse1631886029 -(source:staging)) OR (service:TestPythonUpdateasecurityfilterreturnsOKresponse1631886034 -(source:staging)) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632817310 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632817310 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632817311) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632820231 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632820231 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632820232) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632820436 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632820437 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632820438) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632821203 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632821205 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632821205) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632821494 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632821495 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632821495) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632824855 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632824856 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632824857) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632826434 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632826436 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632826436) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632827408 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632827409 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632827410) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632828993 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632828993 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632828994) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632832892 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632832892 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632832893) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632833158 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632833159 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632833159) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632836449 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632836451 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632836452) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632839530 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632839530 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632839530) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632839555 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632839556 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632839557) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632839754 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632839755 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632839755) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632841163 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632841164 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632841165) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632842479 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632842482 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632842482) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632843068 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632843069 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632843069) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632844019 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632844020 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632844021) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632844135 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632844135 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632844135) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632846637 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632846638 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632846639) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632847599 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632847600 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632847601) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632848092 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632848094 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632848095) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632848450 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632848451 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632848451) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632848885 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632848885 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632848886) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632849681 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632849683 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632849684) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632849896 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632849897 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632849898) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632851126 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632851127 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632851128) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632888517 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632888518 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632888518) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632898979 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632898980 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632898980) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632899193 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632899194 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632899194) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632902893 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632902894 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632902894) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632903483 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632903484 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632903485) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632904028 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632904028 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632904029) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632907319 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632907320 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632907320) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632907341 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632907342 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632907342) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632908400 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632908401 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632908402) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632909893 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632909895 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632909896) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632910740 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632910741 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632910742) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632913811 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632913813 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632913814) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632918181 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632918181 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632918182) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632919352 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632919352 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632919353) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632919567 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632919568 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632919568) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632921868 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632921868 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632921869) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632922202 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632922203 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632922203) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632928250 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632928250 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632928251) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632933845 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632933846 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632933847) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632974965 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632974966 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632974966) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632986086 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632986087 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632986087) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632989757 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632989758 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632989758) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632997311 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632997312 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632997312) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633000142 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633000144 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633000145) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633003795 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633003796 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633003797) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633004068 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633004069 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633004069) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633006704 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633006704 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633006705) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633007542 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633007542 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633007543) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633011104 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633011105 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633011105) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633011244 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633011246 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633011247) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633015449 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633015451 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633015452) OR (service:TestRubyGetasecurityfilterreturnsOKresponse1634150224 -(source:staging)) OR (service:TestPythonGetasecurityfilterreturnsOKresponse1635496812 -(source:staging)) OR (service:TestGoGetasecurityfilterreturnsOKresponse1636410254 -(source:staging)) OR (service:TestCreateasecurityfilterreturnsOKresponse1637063344 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1637063346 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1637063347) OR (service:TestCreateasecurityfilterreturnsOKresponse1637070528 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1637070533 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1637070535) OR (service:TestCreateasecurityfilterreturnsOKresponse1637077967 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1637077969 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1637077970) OR (service:TestCreateasecurityfilterreturnsOKresponse1637078478 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1637078481 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1637078482) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1637089241 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1620751633 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1620751634) OR (service:TestCreateasecurityfilterreturnsOKresponse1637141213 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1637141215 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1637141217) OR (service:TestRubyGetasecurityfilterreturnsOKresponse1637834808 -(source:staging)) OR (service:TestPythonGetasecurityfilterreturnsOKresponse1638987050 -(source:staging)) OR (service:TestPythonDeleteasecurityfilterreturnsNoContentresponse1638987054 -(source:staging)) OR (service:TestPythonUpdateasecurityfilterreturnsOKresponse1638987055 -(source:staging)) OR (service:TestPythonCreateasecurityfilterreturnsOKresponse1638987057 -(source:staging)) OR (service:TestPythonDeleteasecurityfilterreturnsNoContentresponse1639574360 -(source:staging)) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1640111630 -(source:staging)) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1640112776 -(source:staging)) OR (service:TestCreateasecurityfilterreturnsOKresponse1640112926 -(source:staging)) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1641598933 -(source:staging)) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1642578134 -(source:staging)) OR (service:TestExampleGetasecurityfilterreturnsOKresponse1642733138 -(source:staging)) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1642756664 -(source:staging)) OR (service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1642756664 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1642756664 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1642756664 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1643209589) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1643950965) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1644339764 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1644382966 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1644656566 -(source:staging)) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1644685366 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1645102964) OR (service:ExampleGetasecurityfilterreturnsOKresponse1645131764 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1645534965) OR (service:ExampleGetasecurityfilterreturnsOKresponse1645664565 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1647162167) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1647651765 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1647954164) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1648170165 -(source:staging)) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1648270965 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1648314166 -(source:staging)) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1648501364 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1648501364) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1648587764) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1648818166 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1648832565 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1648990964) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1649120564) OR (service:ExampleGetasecurityfilterreturnsOKresponse1649192564 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1649667764 -(source:staging)) OR (service:TestDeleteasecurityfilterreturnsNoContentresponse1649928918 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1650243764 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1650358964) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1650531764) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1651410164) OR (service:ExampleGetasecurityfilterreturnsOKresponse1651597364 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1651654964 -(source:staging)) OR (service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1651867320 -(source:staging)) OR (service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1651912576 -(source:staging)) OR (service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1651915972 -(source:staging)) OR (service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1651943585 -(source:staging)) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1651997988 -(source:staging)) OR (service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1651997988 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1651997989 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1651997990) OR (service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1652008989 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1656001148 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1656001148) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1656001150 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1657253948 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1657469948 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1657599548) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1657887548) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1658175548) OR (first query -(does not really match much) -(neither does it)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1658636349) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1658909949) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1659140350 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1660119548 -(source:staging)))\"},\"samples\":[{\"eventId\":\"AQAAAYNqUHKuyVb_mQAAAABBWU5xVUhrY0FBQUVSQy1nN2N2S1VBQUg\",\"content\":{\"status\":\"info\",\"service\":\"python-sample-app-tealblue\",\"tags\":[\"application_name:python-sample-app-tealblue\",\"application_id:dc251c1e-8302-4a43-abdf-ceebb92ca65d\",\"service:python-sample-app-tealblue\",\"cf_instance_ip:10.0.4.8\",\"foo:bar_test:value_tag1:value1_tag2:value2_teeeeeeest:compuuuuuuuuuuute\",\"container_id:0b163cd0-865c-4c88-4154-f690\",\"instance_index:3\",\"uri:python-sample-app-tealblue.apps.tealblue.cf-app.com\",\"source:python\",\"space_name:space-1\",\"bosh_address:10.0.4.8\",\"bosh_az:us-central1-f\",\"bosh_deployment:cf-1d7968619a3587a78a93\",\"bosh_id:c190d27b-0292-44b8-b094-84ff511768ba\",\"bosh_index:0\",\"bosh_ip:10.0.4.8\",\"bosh_job:compute\",\"bosh_name:compute\",\"cf-1d7968619a3587a78a93\",\"cf-1d7968619a3587a78a93-compute\",\"cloudfoundry\",\"compute\",\"created_at:2022-09-19t07:20:02z\",\"deployment:cf-1d7968619a3587a78a93\",\"director:p-bosh\",\"id:c190d27b-0292-44b8-b094-84ff511768ba\",\"index:0\",\"index:c190d27b-0292-44b8-b094-84ff511768ba\",\"instance-id:6161818930815280887\",\"instance-type:n1-highmem-2\",\"instance_group:compute\",\"internal-hostname:vm-92e16ba4-36a5-43d2-5e94-f14239018e5c.c.cf-security-triage-dist-secur.internal\",\"ip:10.0.4.8\",\"job:compute\",\"name:compute/c190d27b-0292-44b8-b094-84ff511768ba\",\"numeric_project_id:734559154119\",\"p-bosh\",\"p-bosh-cf-1d7968619a3587a78a93\",\"p-bosh-cf-1d7968619a3587a78a93-compute\",\"pcf-tealblue\",\"project:cf-security-triage-dist-secur\",\"user_data:_server_:_name_:_vm-92e16ba4-36a5-43d2-5e94-f14239018e5c_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\",\"zone:us-central1-f\",\"env:pcf-tealblue\",\"version:1.0.0\"],\"timestamp\":\"2022-09-23T12:26:40.686Z\",\"ingest_size_in_bytes\":729,\"trace_id\":\"0\",\"custom\":{\"network\":{\"ip\":{\"list\":[\"8.8.8.8\",\"10.0.4.8\",\"127.0.0.1\"]}},\"process\":{\"name\":\"werkzeug\"},\"timestamp\":1663936000686,\"dd\":{\"service\":\"python-sample-app-tealblue\",\"span_id\":\"0\"},\"filename\":\"_internal.py\",\"lineno\":224.0,\"levelname\":\"INFO\"},\"source\":\"python\",\"host\":\"compute-0-c190d27b-0292-44b8-b094-84ff511768ba\",\"tiebreaker\":-917045351,\"host_id\":8616828918,\"message\":\"2022-09-23 12:26:40,686 INFO [werkzeug] [_internal.py:224] [dd.service=python-sample-app-tealblue dd.env=pcf-tealblue dd.version=1.0.0 dd.trace_id=0 dd.span_id=0] - 127.0.0.1 - - [23/Sep/2022 12:26:40] \\\"GET / HTTP/1.1\\\" 200 -\"},\"queryIndex\":0,\"trackKey\":{\"orgId\":321813,\"type\":\"logs\"},\"id\":\"AYNqUHkcAAAERC-g7cvKUAAH\"}],\"queries\":[{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":200,\"distinctValues\":[],\"value\":200.0},\"name\":\"\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"source:python\",\"groupByPaths\":[]}]},\"message\":\"%%%\\nGenerate a fake Signal\\n%%%\",\"event_tracker_id\":\"AQAAAYNqUBVU4-rffwAAAABBWU5xVUJWVUFBQjJBd3ptMDdQUnF3QUE\",\"severity\":0,\"service\":[\"python-sample-app-tealblue\"],\"event_id\":\"AYNqUBVUAAB2Awzm07PRqwAA\",\"custom\":{\"entities\":[\"@network.ip.list:8.8.8.8\",\"@network.ip.list:10.0.4.8\",\"@network.ip.list:127.0.0.1\",\"host:compute-0-c190d27b-0292-44b8-b094-84ff511768ba\"],\"title\":\"Generate a fake Signal\",\"workflow\":{\"triage\":{\"assignee\":{\"name\":\"Unassigned\"},\"state\":\"open\"},\"rule\":{\"detectionMethod\":\"threshold\",\"version\":1,\"type\":\"Log Detection\",\"name\":\"Generate a fake Signal\",\"id\":\"0e2-32k-1pb\"}}},\"version\":53,\"size_in_bytes\":0,\"status\":\"info\",\"tags\":[\"application_id:dc251c1e-8302-4a43-abdf-ceebb92ca65d\",\"ip:10.0.4.8\",\"container_id:efdf8d23-8c83-42f6-6d01-7a0a\",\"source:python\",\"container_id:0bb93650-07b3-4aad-5ad6-6265\",\"id:c190d27b-0292-44b8-b094-84ff511768ba\",\"numeric_project_id:734559154119\",\"bosh_deployment:cf-1d7968619a3587a78a93\",\"job:compute\",\"bosh_id:c190d27b-0292-44b8-b094-84ff511768ba\",\"bosh_az:us-central1-f\",\"foo:bar_test:value_tag1:value1_tag2:value2_teeeeeeest:compuuuuuuuuuuute\",\"instance_index:3\",\"user_data:_server_:_name_:_vm-92e16ba4-36a5-43d2-5e94-f14239018e5c_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\",\"uri:python-sample-app-tealblue.apps.tealblue.cf-app.com\",\"instance_index:2\",\"index:0\",\"name:compute/c190d27b-0292-44b8-b094-84ff511768ba\",\"application_name:python-sample-app-tealblue\",\"version:1.0.0\",\"created_at:2022-09-19t07:20:02z\",\"index:c190d27b-0292-44b8-b094-84ff511768ba\",\"bosh_address:10.0.4.8\",\"instance_index:1\",\"service:python-sample-app-tealblue\",\"instance_index:0\",\"deployment:cf-1d7968619a3587a78a93\",\"instance-id:6161818930815280887\",\"env:pcf-tealblue\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"internal-hostname:vm-92e16ba4-36a5-43d2-5e94-f14239018e5c.c.cf-security-triage-dist-secur.internal\",\"bosh_index:0\",\"bosh_job:compute\",\"bosh_ip:10.0.4.8\",\"project:cf-security-triage-dist-secur\",\"bosh_name:compute\",\"cf_instance_ip:10.0.4.8\",\"director:p-bosh\",\"container_id:0b163cd0-865c-4c88-4154-f690\",\"space_name:space-1\",\"instance_group:compute\",\"container_id:bd53178f-e250-443a-6b13-191e\"],\"timestamp\":\"2022-09-23T12:26:16.788Z\",\"datadog.index\":\"signal\",\"host\":\"compute-0-c190d27b-0292-44b8-b094-84ff511768ba\",\"random_draw\":0.6713430866837291,\"tiebreaker\":-471146625},\"type\":\"signal\",\"id\":\"AQAAAYNqUBVU4-rffwAAAABBWU5xVUJWVUFBQjJBd3ptMDdQUnF3QUE\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 23 Sep 2022 14:12:23 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/signals/AQAAAYNqUBVU4-rffwAAAABBWU5xVUJWVUFBQjJBd3ptMDdQUnF3QUE" + }, + "response": { + "body": { + "string": "{\"data\":{\"attributes\":{\"discovery_timestamp\":1663935976788,\"searchable\":{\"title\":\"Generate a fake Signal\"},\"triggering_log_timestamp\":\"2022-09-23T12:26:16.788Z\",\"groupByValuesHash\":\"0e2-32k-1pb-1-AYNqUBVUAAB7Q6xMp4yBGgAF\",\"reducer_signal_id\":\"0e2-32k-1pb-1-AYNqUBVUAAB7Q6xMp4yBGgAF\",\"tag\":{\"source\":\"python\",\"env\":\"pcf-tealblue\",\"instance-id\":\"6161818930815280887\"},\"discovery_hour\":462204,\"gated\":{\"network\":{\"ip\":{\"list\":[\"8.8.8.8\",\"10.0.4.8\",\"127.0.0.1\"]}},\"workflow\":{\"events_matched\":200,\"rule\":{\"isDefaultRule\":false,\"defaultRuleVersion\":0,\"defaultRuleId\":null},\"high_cardinality\":{\"attributes\":[\"@trace_id\"],\"tags\":[]},\"first_seen\":\"2022-09-23T12:26:13.000Z\",\"triage\":{\"assignee\":{\"id\":-1},\"incidentIds\":[]},\"last_seen\":\"2022-09-23T12:26:41.000Z\"},\"triggeringRuleCase\":{\"status\":\"info\",\"notifications\":[],\"name\":\"\",\"condition\":\"a>0\"},\"relatedQuery\":{\"from\":1663935673000,\"track\":\"logs\",\"viewParameters\":{\"integration_id\":\"security_monitoring\",\"integration_short_name\":\"security_investigation\"},\"to\":1663936301000,\"queries\":{\"a\":\"(source:python) ((*) OR (service:api -(source:staging)) OR (acceptance rule triggered -(does not really match much) -(neither does it)) OR (ayayay query -(does not really match much) -(neither does it)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1631884327 -(source:staging)) OR (service:TestDeleteasecurityfilterreturnsNoContentresponse1631884338 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1631884338 -(source:staging)) OR (service:TestDeleteasecurityfilterreturnsNoContentresponse1631884454 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1631884464 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1631884465 -(source:staging)) OR (service:TestDeleteasecurityfilterreturnsNoContentresponse1631884670 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1631884674 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1631884674 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1631884714 -(source:staging)) OR (service:TestDeleteasecurityfilterreturnsNoContentresponse1631884715 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1631884725 -(source:staging)) OR (service:TestPythonDeleteasecurityfilterreturnsNoContentresponse1631886017 -(source:staging)) OR (service:TestPythonGetasecurityfilterreturnsOKresponse1631886029 -(source:staging)) OR (service:TestPythonUpdateasecurityfilterreturnsOKresponse1631886034 -(source:staging)) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632817310 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632817310 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632817311) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632820231 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632820231 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632820232) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632820436 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632820437 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632820438) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632821203 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632821205 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632821205) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632821494 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632821495 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632821495) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632824855 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632824856 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632824857) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632826434 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632826436 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632826436) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632827408 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632827409 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632827410) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632828993 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632828993 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632828994) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632832892 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632832892 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632832893) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632833158 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632833159 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632833159) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632836449 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632836451 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632836452) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632839530 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632839530 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632839530) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632839555 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632839556 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632839557) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632839754 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632839755 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632839755) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632841163 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632841164 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632841165) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632842479 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632842482 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632842482) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632843068 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632843069 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632843069) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632844019 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632844020 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632844021) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632844135 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632844135 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632844135) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632846637 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632846638 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632846639) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632847599 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632847600 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632847601) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632848092 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632848094 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632848095) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632848450 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632848451 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632848451) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632848885 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632848885 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632848886) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632849681 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632849683 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632849684) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632849896 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632849897 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632849898) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632851126 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632851127 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632851128) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632888517 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632888518 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632888518) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632898979 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632898980 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632898980) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632899193 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632899194 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632899194) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632902893 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632902894 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632902894) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632903483 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632903484 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632903485) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632904028 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632904028 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632904029) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632907319 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632907320 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632907320) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632907341 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632907342 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632907342) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632908400 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632908401 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632908402) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632909893 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632909895 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632909896) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632910740 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632910741 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632910742) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632913811 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632913813 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632913814) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632918181 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632918181 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632918182) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632919352 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632919352 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632919353) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632919567 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632919568 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632919568) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632921868 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632921868 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632921869) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632922202 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632922203 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632922203) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632928250 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632928250 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632928251) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632933845 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632933846 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632933847) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632974965 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632974966 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632974966) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632986086 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632986087 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632986087) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632989757 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632989758 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632989758) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632997311 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632997312 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632997312) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633000142 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633000144 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633000145) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633003795 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633003796 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633003797) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633004068 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633004069 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633004069) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633006704 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633006704 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633006705) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633007542 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633007542 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633007543) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633011104 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633011105 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633011105) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633011244 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633011246 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633011247) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633015449 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633015451 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633015452) OR (service:TestRubyGetasecurityfilterreturnsOKresponse1634150224 -(source:staging)) OR (service:TestPythonGetasecurityfilterreturnsOKresponse1635496812 -(source:staging)) OR (service:TestGoGetasecurityfilterreturnsOKresponse1636410254 -(source:staging)) OR (service:TestCreateasecurityfilterreturnsOKresponse1637063344 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1637063346 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1637063347) OR (service:TestCreateasecurityfilterreturnsOKresponse1637070528 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1637070533 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1637070535) OR (service:TestCreateasecurityfilterreturnsOKresponse1637077967 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1637077969 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1637077970) OR (service:TestCreateasecurityfilterreturnsOKresponse1637078478 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1637078481 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1637078482) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1637089241 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1620751633 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1620751634) OR (service:TestCreateasecurityfilterreturnsOKresponse1637141213 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1637141215 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1637141217) OR (service:TestRubyGetasecurityfilterreturnsOKresponse1637834808 -(source:staging)) OR (service:TestPythonGetasecurityfilterreturnsOKresponse1638987050 -(source:staging)) OR (service:TestPythonDeleteasecurityfilterreturnsNoContentresponse1638987054 -(source:staging)) OR (service:TestPythonUpdateasecurityfilterreturnsOKresponse1638987055 -(source:staging)) OR (service:TestPythonCreateasecurityfilterreturnsOKresponse1638987057 -(source:staging)) OR (service:TestPythonDeleteasecurityfilterreturnsNoContentresponse1639574360 -(source:staging)) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1640111630 -(source:staging)) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1640112776 -(source:staging)) OR (service:TestCreateasecurityfilterreturnsOKresponse1640112926 -(source:staging)) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1641598933 -(source:staging)) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1642578134 -(source:staging)) OR (service:TestExampleGetasecurityfilterreturnsOKresponse1642733138 -(source:staging)) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1642756664 -(source:staging)) OR (service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1642756664 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1642756664 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1642756664 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1643209589) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1643950965) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1644339764 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1644382966 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1644656566 -(source:staging)) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1644685366 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1645102964) OR (service:ExampleGetasecurityfilterreturnsOKresponse1645131764 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1645534965) OR (service:ExampleGetasecurityfilterreturnsOKresponse1645664565 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1647162167) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1647651765 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1647954164) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1648170165 -(source:staging)) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1648270965 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1648314166 -(source:staging)) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1648501364 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1648501364) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1648587764) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1648818166 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1648832565 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1648990964) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1649120564) OR (service:ExampleGetasecurityfilterreturnsOKresponse1649192564 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1649667764 -(source:staging)) OR (service:TestDeleteasecurityfilterreturnsNoContentresponse1649928918 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1650243764 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1650358964) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1650531764) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1651410164) OR (service:ExampleGetasecurityfilterreturnsOKresponse1651597364 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1651654964 -(source:staging)) OR (service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1651867320 -(source:staging)) OR (service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1651912576 -(source:staging)) OR (service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1651915972 -(source:staging)) OR (service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1651943585 -(source:staging)) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1651997988 -(source:staging)) OR (service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1651997988 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1651997989 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1651997990) OR (service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1652008989 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1656001148 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1656001148) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1656001150 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1657253948 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1657469948 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1657599548) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1657887548) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1658175548) OR (first query -(does not really match much) -(neither does it)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1658636349) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1658909949) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1659140350 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1660119548 -(source:staging)))\"},\"query\":\"(source:python) ((*) OR (service:api -(source:staging)) OR (acceptance rule triggered -(does not really match much) -(neither does it)) OR (ayayay query -(does not really match much) -(neither does it)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1631884327 -(source:staging)) OR (service:TestDeleteasecurityfilterreturnsNoContentresponse1631884338 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1631884338 -(source:staging)) OR (service:TestDeleteasecurityfilterreturnsNoContentresponse1631884454 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1631884464 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1631884465 -(source:staging)) OR (service:TestDeleteasecurityfilterreturnsNoContentresponse1631884670 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1631884674 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1631884674 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1631884714 -(source:staging)) OR (service:TestDeleteasecurityfilterreturnsNoContentresponse1631884715 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1631884725 -(source:staging)) OR (service:TestPythonDeleteasecurityfilterreturnsNoContentresponse1631886017 -(source:staging)) OR (service:TestPythonGetasecurityfilterreturnsOKresponse1631886029 -(source:staging)) OR (service:TestPythonUpdateasecurityfilterreturnsOKresponse1631886034 -(source:staging)) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632817310 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632817310 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632817311) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632820231 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632820231 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632820232) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632820436 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632820437 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632820438) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632821203 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632821205 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632821205) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632821494 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632821495 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632821495) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632824855 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632824856 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632824857) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632826434 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632826436 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632826436) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632827408 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632827409 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632827410) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632828993 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632828993 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632828994) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632832892 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632832892 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632832893) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632833158 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632833159 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632833159) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632836449 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632836451 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632836452) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632839530 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632839530 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632839530) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632839555 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632839556 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632839557) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632839754 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632839755 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632839755) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632841163 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632841164 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632841165) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632842479 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632842482 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632842482) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632843068 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632843069 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632843069) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632844019 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632844020 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632844021) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632844135 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632844135 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632844135) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632846637 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632846638 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632846639) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632847599 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632847600 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632847601) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632848092 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632848094 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632848095) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632848450 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632848451 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632848451) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632848885 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632848885 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632848886) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632849681 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632849683 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632849684) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632849896 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632849897 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632849898) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632851126 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632851127 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632851128) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632888517 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632888518 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632888518) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632898979 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632898980 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632898980) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632899193 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632899194 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632899194) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632902893 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632902894 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632902894) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632903483 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632903484 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632903485) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632904028 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632904028 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632904029) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632907319 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632907320 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632907320) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632907341 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632907342 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632907342) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632908400 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632908401 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632908402) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632909893 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632909895 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632909896) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632910740 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632910741 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632910742) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632913811 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632913813 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632913814) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632918181 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632918181 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632918182) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632919352 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632919352 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632919353) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632919567 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632919568 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632919568) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632921868 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632921868 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632921869) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632922202 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632922203 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632922203) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632928250 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632928250 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632928251) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632933845 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632933846 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632933847) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632974965 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632974966 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632974966) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632986086 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632986087 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632986087) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632989757 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632989758 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632989758) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632997311 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1632997312 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632997312) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633000142 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633000144 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633000145) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633003795 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633003796 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633003797) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633004068 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633004069 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633004069) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633006704 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633006704 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633006705) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633007542 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633007542 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633007543) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633011104 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633011105 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633011105) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633011244 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633011246 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633011247) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633015449 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1633015451 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633015452) OR (service:TestRubyGetasecurityfilterreturnsOKresponse1634150224 -(source:staging)) OR (service:TestPythonGetasecurityfilterreturnsOKresponse1635496812 -(source:staging)) OR (service:TestGoGetasecurityfilterreturnsOKresponse1636410254 -(source:staging)) OR (service:TestCreateasecurityfilterreturnsOKresponse1637063344 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1637063346 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1637063347) OR (service:TestCreateasecurityfilterreturnsOKresponse1637070528 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1637070533 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1637070535) OR (service:TestCreateasecurityfilterreturnsOKresponse1637077967 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1637077969 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1637077970) OR (service:TestCreateasecurityfilterreturnsOKresponse1637078478 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1637078481 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1637078482) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1637089241 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1620751633 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1620751634) OR (service:TestCreateasecurityfilterreturnsOKresponse1637141213 -(source:staging)) OR (service:TestGetasecurityfilterreturnsOKresponse1637141215 -(source:staging)) OR (service:TestUpdateasecurityfilterreturnsOKresponse1637141217) OR (service:TestRubyGetasecurityfilterreturnsOKresponse1637834808 -(source:staging)) OR (service:TestPythonGetasecurityfilterreturnsOKresponse1638987050 -(source:staging)) OR (service:TestPythonDeleteasecurityfilterreturnsNoContentresponse1638987054 -(source:staging)) OR (service:TestPythonUpdateasecurityfilterreturnsOKresponse1638987055 -(source:staging)) OR (service:TestPythonCreateasecurityfilterreturnsOKresponse1638987057 -(source:staging)) OR (service:TestPythonDeleteasecurityfilterreturnsNoContentresponse1639574360 -(source:staging)) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1640111630 -(source:staging)) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1640112776 -(source:staging)) OR (service:TestCreateasecurityfilterreturnsOKresponse1640112926 -(source:staging)) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1641598933 -(source:staging)) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1642578134 -(source:staging)) OR (service:TestExampleGetasecurityfilterreturnsOKresponse1642733138 -(source:staging)) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1642756664 -(source:staging)) OR (service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1642756664 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1642756664 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1642756664 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1643209589) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1643950965) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1644339764 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1644382966 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1644656566 -(source:staging)) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1644685366 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1645102964) OR (service:ExampleGetasecurityfilterreturnsOKresponse1645131764 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1645534965) OR (service:ExampleGetasecurityfilterreturnsOKresponse1645664565 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1647162167) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1647651765 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1647954164) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1648170165 -(source:staging)) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1648270965 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1648314166 -(source:staging)) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1648501364 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1648501364) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1648587764) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1648818166 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1648832565 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1648990964) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1649120564) OR (service:ExampleGetasecurityfilterreturnsOKresponse1649192564 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1649667764 -(source:staging)) OR (service:TestDeleteasecurityfilterreturnsNoContentresponse1649928918 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1650243764 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1650358964) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1650531764) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1651410164) OR (service:ExampleGetasecurityfilterreturnsOKresponse1651597364 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1651654964 -(source:staging)) OR (service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1651867320 -(source:staging)) OR (service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1651912576 -(source:staging)) OR (service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1651915972 -(source:staging)) OR (service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1651943585 -(source:staging)) OR (service:TestTypescriptCreateasecurityfilterreturnsOKresponse1651997988 -(source:staging)) OR (service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1651997988 -(source:staging)) OR (service:TestTypescriptGetasecurityfilterreturnsOKresponse1651997989 -(source:staging)) OR (service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1651997990) OR (service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1652008989 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1656001148 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1656001148) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1656001150 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1657253948 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1657469948 -(source:staging)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1657599548) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1657887548) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1658175548) OR (first query -(does not really match much) -(neither does it)) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1658636349) OR (service:ExampleUpdateasecurityfilterreturnsOKresponse1658909949) OR (service:ExampleCreateasecurityfilterreturnsOKresponse1659140350 -(source:staging)) OR (service:ExampleGetasecurityfilterreturnsOKresponse1660119548 -(source:staging)))\"},\"samples\":[{\"eventId\":\"AQAAAYNqUHKuyVb_mQAAAABBWU5xVUhrY0FBQUVSQy1nN2N2S1VBQUg\",\"content\":{\"status\":\"info\",\"service\":\"python-sample-app-tealblue\",\"tags\":[\"application_name:python-sample-app-tealblue\",\"application_id:dc251c1e-8302-4a43-abdf-ceebb92ca65d\",\"service:python-sample-app-tealblue\",\"cf_instance_ip:10.0.4.8\",\"foo:bar_test:value_tag1:value1_tag2:value2_teeeeeeest:compuuuuuuuuuuute\",\"container_id:0b163cd0-865c-4c88-4154-f690\",\"instance_index:3\",\"uri:python-sample-app-tealblue.apps.tealblue.cf-app.com\",\"source:python\",\"space_name:space-1\",\"bosh_address:10.0.4.8\",\"bosh_az:us-central1-f\",\"bosh_deployment:cf-1d7968619a3587a78a93\",\"bosh_id:c190d27b-0292-44b8-b094-84ff511768ba\",\"bosh_index:0\",\"bosh_ip:10.0.4.8\",\"bosh_job:compute\",\"bosh_name:compute\",\"cf-1d7968619a3587a78a93\",\"cf-1d7968619a3587a78a93-compute\",\"cloudfoundry\",\"compute\",\"created_at:2022-09-19t07:20:02z\",\"deployment:cf-1d7968619a3587a78a93\",\"director:p-bosh\",\"id:c190d27b-0292-44b8-b094-84ff511768ba\",\"index:0\",\"index:c190d27b-0292-44b8-b094-84ff511768ba\",\"instance-id:6161818930815280887\",\"instance-type:n1-highmem-2\",\"instance_group:compute\",\"internal-hostname:vm-92e16ba4-36a5-43d2-5e94-f14239018e5c.c.cf-security-triage-dist-secur.internal\",\"ip:10.0.4.8\",\"job:compute\",\"name:compute/c190d27b-0292-44b8-b094-84ff511768ba\",\"numeric_project_id:734559154119\",\"p-bosh\",\"p-bosh-cf-1d7968619a3587a78a93\",\"p-bosh-cf-1d7968619a3587a78a93-compute\",\"pcf-tealblue\",\"project:cf-security-triage-dist-secur\",\"user_data:_server_:_name_:_vm-92e16ba4-36a5-43d2-5e94-f14239018e5c_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\",\"zone:us-central1-f\",\"env:pcf-tealblue\",\"version:1.0.0\"],\"timestamp\":\"2022-09-23T12:26:40.686Z\",\"ingest_size_in_bytes\":729,\"trace_id\":\"0\",\"custom\":{\"network\":{\"ip\":{\"list\":[\"8.8.8.8\",\"10.0.4.8\",\"127.0.0.1\"]}},\"process\":{\"name\":\"werkzeug\"},\"timestamp\":1663936000686,\"dd\":{\"service\":\"python-sample-app-tealblue\",\"span_id\":\"0\"},\"filename\":\"_internal.py\",\"lineno\":224.0,\"levelname\":\"INFO\"},\"source\":\"python\",\"host\":\"compute-0-c190d27b-0292-44b8-b094-84ff511768ba\",\"tiebreaker\":-917045351,\"host_id\":8616828918,\"message\":\"2022-09-23 12:26:40,686 INFO [werkzeug] [_internal.py:224] [dd.service=python-sample-app-tealblue dd.env=pcf-tealblue dd.version=1.0.0 dd.trace_id=0 dd.span_id=0] - 127.0.0.1 - - [23/Sep/2022 12:26:40] \\\"GET / HTTP/1.1\\\" 200 -\"},\"queryIndex\":0,\"trackKey\":{\"orgId\":321813,\"type\":\"logs\"},\"id\":\"AYNqUHkcAAAERC-g7cvKUAAH\"}],\"queries\":[{\"distinctFields\":[],\"aggregationDetails\":{\"eventsCount\":200,\"distinctValues\":[],\"value\":200.0},\"name\":\"\",\"metric\":null,\"aggregation\":\"count\",\"query\":\"source:python\",\"groupByPaths\":[]}]},\"message\":\"%%%\\nGenerate a fake Signal\\n%%%\",\"event_tracker_id\":\"AQAAAYNqUBVU4-rffwAAAABBWU5xVUJWVUFBQjJBd3ptMDdQUnF3QUE\",\"severity\":0,\"service\":[\"python-sample-app-tealblue\"],\"event_id\":\"AYNqUBVUAAB2Awzm07PRqwAA\",\"custom\":{\"entities\":[\"@network.ip.list:8.8.8.8\",\"@network.ip.list:10.0.4.8\",\"@network.ip.list:127.0.0.1\",\"host:compute-0-c190d27b-0292-44b8-b094-84ff511768ba\"],\"title\":\"Generate a fake Signal\",\"workflow\":{\"triage\":{\"assignee\":{\"name\":\"Unassigned\"},\"state\":\"open\"},\"rule\":{\"detectionMethod\":\"threshold\",\"version\":1,\"type\":\"Log Detection\",\"name\":\"Generate a fake Signal\",\"id\":\"0e2-32k-1pb\"}}},\"version\":53,\"size_in_bytes\":0,\"status\":\"info\",\"tags\":[\"application_id:dc251c1e-8302-4a43-abdf-ceebb92ca65d\",\"ip:10.0.4.8\",\"container_id:efdf8d23-8c83-42f6-6d01-7a0a\",\"source:python\",\"container_id:0bb93650-07b3-4aad-5ad6-6265\",\"id:c190d27b-0292-44b8-b094-84ff511768ba\",\"numeric_project_id:734559154119\",\"bosh_deployment:cf-1d7968619a3587a78a93\",\"job:compute\",\"bosh_id:c190d27b-0292-44b8-b094-84ff511768ba\",\"bosh_az:us-central1-f\",\"foo:bar_test:value_tag1:value1_tag2:value2_teeeeeeest:compuuuuuuuuuuute\",\"instance_index:3\",\"user_data:_server_:_name_:_vm-92e16ba4-36a5-43d2-5e94-f14239018e5c_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\",\"uri:python-sample-app-tealblue.apps.tealblue.cf-app.com\",\"instance_index:2\",\"index:0\",\"name:compute/c190d27b-0292-44b8-b094-84ff511768ba\",\"application_name:python-sample-app-tealblue\",\"version:1.0.0\",\"created_at:2022-09-19t07:20:02z\",\"index:c190d27b-0292-44b8-b094-84ff511768ba\",\"bosh_address:10.0.4.8\",\"instance_index:1\",\"service:python-sample-app-tealblue\",\"instance_index:0\",\"deployment:cf-1d7968619a3587a78a93\",\"instance-id:6161818930815280887\",\"env:pcf-tealblue\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"internal-hostname:vm-92e16ba4-36a5-43d2-5e94-f14239018e5c.c.cf-security-triage-dist-secur.internal\",\"bosh_index:0\",\"bosh_job:compute\",\"bosh_ip:10.0.4.8\",\"project:cf-security-triage-dist-secur\",\"bosh_name:compute\",\"cf_instance_ip:10.0.4.8\",\"director:p-bosh\",\"container_id:0b163cd0-865c-4c88-4154-f690\",\"space_name:space-1\",\"instance_group:compute\",\"container_id:bd53178f-e250-443a-6b13-191e\"],\"timestamp\":\"2022-09-23T12:26:16.788Z\",\"datadog.index\":\"signal\",\"host\":\"compute-0-c190d27b-0292-44b8-b094-84ff511768ba\",\"random_draw\":0.6713430866837291,\"tiebreaker\":-471146625},\"type\":\"signal\",\"id\":\"AQAAAYNqUBVU4-rffwAAAABBWU5xVUJWVUFBQjJBd3ptMDdQUnF3QUE\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 23 Sep 2022 14:12:23 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Get-a-suppression-rule-returns-Not-Found-response.frozen b/tests/scenarios/cassettes/v2/security_monitoring/Get-a-suppression-rule-returns-Not-Found-response.frozen new file mode 100644 index 000000000..5ef607bf2 --- /dev/null +++ b/tests/scenarios/cassettes/v2/security_monitoring/Get-a-suppression-rule-returns-Not-Found-response.frozen @@ -0,0 +1 @@ +2024-01-11T10:06:31.565Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Get-a-suppression-rule-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Get-a-suppression-rule-returns-Not-Found-response.json new file mode 100644 index 000000000..bc559c0e9 --- /dev/null +++ b/tests/scenarios/cassettes/v2/security_monitoring/Get-a-suppression-rule-returns-Not-Found-response.json @@ -0,0 +1,33 @@ +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions/this-does-not-exist" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Not found\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 11 Jan 2024 10:06:31 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Get-a-suppression-rule-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/security_monitoring/Get-a-suppression-rule-returns-OK-response.frozen new file mode 100644 index 000000000..513c48865 --- /dev/null +++ b/tests/scenarios/cassettes/v2/security_monitoring/Get-a-suppression-rule-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-01-11T10:06:31.876Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Get-a-suppression-rule-returns-OK-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Get-a-suppression-rule-returns-OK-response.json new file mode 100644 index 000000000..adff13ad0 --- /dev/null +++ b/tests/scenarios/cassettes/v2/security_monitoring/Get-a-suppression-rule-returns-OK-response.json @@ -0,0 +1,95 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"Test-Get_a_suppression_rule_returns_OK_response-1704967591\",\"enabled\":true,\"name\":\"Test-Get_a_suppression_rule_returns_OK_response-1704967591\",\"rule_query\":\"source:cloudtrail\",\"suppression_query\":\"env:test\"},\"type\":\"suppressions\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"vac-d9u-mmr\",\"attributes\":{\"name\":\"Test-Get_a_suppression_rule_returns_OK_response-1704967591\",\"enabled\":true,\"description\":\"Test-Get_a_suppression_rule_returns_OK_response-1704967591\",\"rule_query\":\"source:cloudtrail\",\"suppression_query\":\"env:test\",\"version\":1,\"creation_date\":1704967592204,\"update_date\":1704967592204,\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\"},\"updater\":{\"name\":null,\"handle\":\"frog@datadoghq.com\"}},\"type\":\"suppressions\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 11 Jan 2024 10:06:31 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions/vac-d9u-mmr" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"vac-d9u-mmr\",\"attributes\":{\"name\":\"Test-Get_a_suppression_rule_returns_OK_response-1704967591\",\"enabled\":true,\"description\":\"Test-Get_a_suppression_rule_returns_OK_response-1704967591\",\"rule_query\":\"source:cloudtrail\",\"suppression_query\":\"env:test\",\"version\":1,\"creation_date\":1704967592204,\"update_date\":1704967592204,\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\"},\"updater\":{\"name\":null,\"handle\":\"frog@datadoghq.com\"}},\"type\":\"suppressions\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 11 Jan 2024 10:06:31 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions/vac-d9u-mmr" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 11 Jan 2024 10:06:31 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Get-all-security-filters-returns-OK-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Get-all-security-filters-returns-OK-response.json index d423f2053..1edad15e6 100644 --- a/tests/scenarios/cassettes/v2/security_monitoring/Get-all-security-filters-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/security_monitoring/Get-all-security-filters-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/security_filters"}, "response": {"body": {"string": "{\"data\":[{\"attributes\":{\"is_enabled\":true,\"name\":\"all ingested logs\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":1,\"query\":\"*\",\"is_builtin\":true},\"type\":\"security_filters\",\"id\":\"bc0-fow-e4j\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Custom security filter\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:api\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"qhn-iuy-4oc\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"tf-TestAccDatadogSecurityMonitoringFilter-local-1626096168\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"does not really match much\",\"name\":\"first\"},{\"query\":\"neither does it\",\"name\":\"second\"}],\"version\":1,\"query\":\"acceptance rule triggered\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"7no-kjl-tnb\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"tf-TestAccDatadogSecurityMonitoringFilterDatasource-local-1626104534\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"does not really match much\",\"name\":\"first\"},{\"query\":\"neither does it\",\"name\":\"second\"}],\"version\":1,\"query\":\"ayayay query\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"smf-png-gzf\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Update_a_security_filter_returns_OK_response-1631884327\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestUpdateasecurityfilterreturnsOKresponse1631884327\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"hrp-l2l-xht\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Delete_a_security_filter_returns_No_Content_response-1631884338\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestDeleteasecurityfilterreturnsNoContentresponse1631884338\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"zr7-kgu-adi\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Get_a_security_filter_returns_OK_response-1631884338\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestGetasecurityfilterreturnsOKresponse1631884338\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"wbd-e2v-yke\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Delete_a_security_filter_returns_No_Content_response-1631884454\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestDeleteasecurityfilterreturnsNoContentresponse1631884454\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"tek-udt-1ad\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Update_a_security_filter_returns_OK_response-1631884464\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestUpdateasecurityfilterreturnsOKresponse1631884464\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ctr-nal-eek\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Get_a_security_filter_returns_OK_response-1631884465\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestGetasecurityfilterreturnsOKresponse1631884465\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"jpx-aky-hgq\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Delete_a_security_filter_returns_No_Content_response-1631884670\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestDeleteasecurityfilterreturnsNoContentresponse1631884670\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"otn-2vv-0xe\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Update_a_security_filter_returns_OK_response-1631884674\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestUpdateasecurityfilterreturnsOKresponse1631884674\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"knf-be5-bhz\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Get_a_security_filter_returns_OK_response-1631884674\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestGetasecurityfilterreturnsOKresponse1631884674\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"rjt-omi-ece\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Get_a_security_filter_returns_OK_response-1631884714\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestGetasecurityfilterreturnsOKresponse1631884714\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ebq-o3v-gdg\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Delete_a_security_filter_returns_No_Content_response-1631884715\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestDeleteasecurityfilterreturnsNoContentresponse1631884715\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"0pz-qyq-kqq\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Update_a_security_filter_returns_OK_response-1631884725\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestUpdateasecurityfilterreturnsOKresponse1631884725\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"m9g-ncc-02a\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Python-Delete_a_security_filter_returns_No_Content_response-1631886017\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestPythonDeleteasecurityfilterreturnsNoContentresponse1631886017\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"s8y-ndo-pmo\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Python-Get_a_security_filter_returns_OK_response-1631886029\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestPythonGetasecurityfilterreturnsOKresponse1631886029\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"clz-vl4-04z\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Python-Update_a_security_filter_returns_OK_response-1631886034\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestPythonUpdateasecurityfilterreturnsOKresponse1631886034\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ind-p9s-w9j\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632817310\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632817310\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"opx-q1v-ckn\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632817310\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632817310\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"4mz-na2-ozw\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632817311\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632817311\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"tkf-gkv-ffv\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632820231\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632820231\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"x1a-p97-scf\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632820231\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632820231\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"g85-tm8-yhe\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632820232\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632820232\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"obh-5cb-a0j\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632820436\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632820436\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"3cw-wzf-nsn\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632820437\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632820437\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"a2c-940-8x8\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632820438\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632820438\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"r8h-dyg-wgf\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632821203\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632821203\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"eum-bss-dyi\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632821205\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632821205\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"6wj-zed-jv3\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632821205\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632821205\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"hbn-bix-9ia\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632821494\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632821494\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"paz-gwc-z4l\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632821495\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632821495\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"jce-5qr-qdy\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632821495\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632821495\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"bpr-rhq-xqj\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632824855\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632824855\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"swf-vch-g9h\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632824856\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632824856\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"wtp-76p-ghf\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632824857\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632824857\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ogc-yrs-p4p\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632826434\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632826434\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"y08-eup-05l\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632826436\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632826436\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"wkz-wad-cbl\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632826436\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632826436\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"9kl-ojt-pmy\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632827408\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632827408\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"dh2-zr8-lam\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632827409\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632827409\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"hho-vt6-tws\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632827410\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632827410\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ltk-chn-umu\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632828993\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632828993\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"q3f-vnn-qmh\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632828993\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632828993\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"pvi-byz-som\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632828994\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632828994\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"3zg-jqc-ftm\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632832892\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632832892\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"kpj-t46-vbn\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632832892\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632832892\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"0og-l8j-tsq\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632832893\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632832893\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"jea-me2-ru1\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632833158\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632833158\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"04n-hit-fum\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632833159\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632833159\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"3rw-stk-rtz\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632833159\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632833159\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"zwb-63t-lpu\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632836449\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632836449\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"vle-9cs-xlh\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632836451\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632836451\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"82v-knv-p8b\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632836452\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632836452\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"jp2-7ys-ljn\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632839530\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632839530\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"up5-dkc-sbq\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632839530\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632839530\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"viv-6rl-zxw\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632839530\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632839530\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"1ls-1xt-i8c\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632839555\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632839555\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"0bv-ryy-bup\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632839556\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632839556\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"wuj-q1l-beq\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632839557\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632839557\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"usl-avk-v1a\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632839754\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632839754\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"cdu-xnm-7k9\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632839755\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632839755\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"dpq-4bx-fj2\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632839755\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632839755\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"cnt-1qa-1xp\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632841163\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632841163\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"htl-cat-7ye\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632841164\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632841164\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"zw3-fsy-7bh\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632841165\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632841165\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"mwa-jkd-mg6\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632842479\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632842479\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"3ph-ztk-l8m\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632842482\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632842482\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"0lr-30a-qe8\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632842482\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632842482\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"b57-68u-t1d\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632843068\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632843068\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"46n-cov-z4x\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632843069\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632843069\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"57n-tai-vbl\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632843069\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632843069\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"elu-n9r-zdk\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632844019\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632844019\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"1rg-ja2-wc7\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632844020\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632844020\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"9sk-plb-lbm\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632844021\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632844021\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"33b-4ut-ydc\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632844135\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632844135\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"wzw-cyw-og7\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632844135\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632844135\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"vjk-qik-jdi\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632844135\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632844135\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"qun-iu6-n5g\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632846637\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632846637\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"lbv-ghg-b4a\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632846638\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632846638\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"etu-tzk-p4y\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632846639\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632846639\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"xgg-32m-9um\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632847599\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632847599\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ysc-uz9-oct\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632847600\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632847600\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"j6p-hzw-4gg\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632847601\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632847601\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"9zj-osj-io8\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632848092\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632848092\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"bn2-ytq-ezm\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632848094\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632848094\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"oz0-0sv-86g\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632848095\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632848095\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"dwk-qj9-kgd\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632848450\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632848450\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"jxw-wxr-tnx\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632848451\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632848451\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"sto-gxf-iy1\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632848451\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632848451\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"lol-5bi-6ik\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632848885\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632848885\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"tnk-8wf-v5c\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632848885\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632848885\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"hfa-dvd-bf1\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632848886\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632848886\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"cwp-o1a-zwo\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632849681\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632849681\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"f4c-bee-wyi\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632849683\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632849683\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"caf-zh1-vqf\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632849684\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632849684\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"8pn-vrw-kn4\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632849896\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632849896\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"wh3-wcd-shk\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632849897\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632849897\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"6or-pfc-jsh\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632849898\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632849898\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"atx-t02-qhu\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632851126\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632851126\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"mqn-ec8-cys\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632851127\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632851127\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"er4-rot-i9q\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632851128\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632851128\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"7av-rff-z31\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632888517\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632888517\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"1xt-hsv-seu\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632888518\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632888518\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"rwh-ge7-poj\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632888518\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632888518\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"xxy-a4m-alu\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632898979\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632898979\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ple-dse-hhf\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632898980\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632898980\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"xix-4vr-abm\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632898980\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632898980\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"l8o-bzf-1fs\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632899193\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632899193\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ovk-9mh-i7q\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632899194\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632899194\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"z15-wxx-yix\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632899194\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632899194\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ewr-qfb-hvx\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632902893\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632902893\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"jqo-9hq-3hz\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632902894\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632902894\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"nv8-a6r-uzu\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632902894\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632902894\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"2zl-irh-u4x\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632903483\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632903483\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ove-4eu-ocg\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632903484\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632903484\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"wme-icd-q9j\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632903485\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632903485\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"mlu-006-hhl\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632904028\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632904028\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"qyd-yxv-qtf\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632904028\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632904028\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"cdy-aqo-nos\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632904029\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632904029\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"nzp-j5a-jrb\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632907319\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632907319\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"w9b-vfx-oqz\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632907320\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632907320\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"wxm-54b-g9v\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632907320\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632907320\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"tqo-alk-oww\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632907341\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632907341\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"epg-zdn-8o4\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632907342\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632907342\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"bw7-nje-vtb\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632907342\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632907342\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"qaf-z5b-da7\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632908400\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632908400\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"r6d-4kz-mch\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632908401\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632908401\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"dar-afy-68w\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632908402\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632908402\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"mzl-r2s-3d3\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632909893\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632909893\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"amk-yqc-2jg\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632909895\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632909895\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"jvp-lye-omw\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632909896\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632909896\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"mky-7xe-w96\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632910740\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632910740\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"cpn-5xa-qvr\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632910741\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632910741\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"gnd-qai-263\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632910742\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632910742\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"may-03m-8gc\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632913811\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632913811\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"3wl-tn0-g3p\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632913813\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632913813\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"kmc-6co-0xq\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632913814\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632913814\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"cke-k5o-udo\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632918181\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632918181\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"g0n-ynp-vuj\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632918181\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632918181\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"unp-wrp-w6s\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632918182\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632918182\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ek7-jqe-hab\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632919352\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632919352\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"cza-so4-7se\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632919352\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632919352\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"lxy-qgf-rdw\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632919353\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632919353\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"0h6-4bl-gyy\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632919567\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632919567\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"j8u-cox-47o\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632919568\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632919568\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"wpj-eon-hhq\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632919568\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632919568\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"gzy-dxq-y8c\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632921868\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632921868\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"1vw-prp-da3\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632921868\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632921868\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"cz9-r0k-77v\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632921869\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632921869\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"unn-qpz-hwg\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632922202\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632922202\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"70w-v06-tzj\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632922203\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632922203\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"a66-7u7-nad\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632922203\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632922203\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"d2p-7v7-avd\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632928250\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632928250\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"fgk-oxj-ftk\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632928250\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632928250\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"fpp-xqi-uu9\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632928251\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632928251\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"63r-qez-ybq\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632933845\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632933845\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"gju-kit-iw5\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632933846\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632933846\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"1m4-2co-rpk\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632933847\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632933847\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"tir-l97-lp0\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632974965\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632974965\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ogv-c35-zyi\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632974966\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632974966\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"mvz-r9p-fbq\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632974966\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632974966\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"tbf-w69-aty\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632986086\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632986086\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"xzl-grv-7gm\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632986087\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632986087\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"jku-q85-vzi\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632986087\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632986087\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"awi-wik-sqv\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632989757\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632989757\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"zxt-ben-do9\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632989758\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632989758\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ir8-h43-r0a\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632989758\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632989758\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"erz-srb-bn8\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632997311\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632997311\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"r75-jsq-jpu\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632997312\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632997312\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"qq6-jjy-3tu\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632997312\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632997312\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"tsp-qrn-n9x\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1633000142\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633000142\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"4yc-4ge-ghb\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1633000144\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1633000144\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"bed-vic-suh\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1633000145\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633000145\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"put-2jd-2ib\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1633003795\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633003795\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"y8f-naf-1cj\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1633003796\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1633003796\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"1pt-6xr-7ic\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1633003797\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633003797\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"rpo-lwd-fyr\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1633004068\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633004068\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"euk-m8d-p2d\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1633004069\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1633004069\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"nhm-rho-ez9\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1633004069\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633004069\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"zuo-60q-xbh\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1633006704\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633006704\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"3db-tgu-ays\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1633006704\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1633006704\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"6ou-tsb-hlx\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1633006705\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633006705\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ojr-mg7-oke\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1633007542\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633007542\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"znq-ano-djg\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1633007542\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1633007542\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"kmo-hwd-qq2\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1633007543\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633007543\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"v8u-jjs-9vc\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1633011104\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633011104\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ld0-njn-zw1\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1633011105\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1633011105\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"w8u-g2z-xy8\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1633011105\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633011105\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"mh9-5yo-qq2\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1633011244\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633011244\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"vac-obe-n22\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1633011246\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1633011246\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"mpc-glp-h7w\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1633011247\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633011247\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"qwx-au5-zve\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1633015449\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633015449\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"saa-vzr-xsj\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1633015451\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1633015451\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"pfl-vim-gje\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1633015452\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633015452\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"2uh-zo8-nb5\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Ruby-Get_a_security_filter_returns_OK_response-1634150224\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestRubyGetasecurityfilterreturnsOKresponse1634150224\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"egl-poh-kzn\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Python-Get_a_security_filter_returns_OK_response-1635496812\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestPythonGetasecurityfilterreturnsOKresponse1635496812\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"gcz-3rz-y1w\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Go-Get_a_security_filter_returns_OK_response-1636410254\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestGoGetasecurityfilterreturnsOKresponse1636410254\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"csu-jez-ive\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Create_a_security_filter_returns_OK_response-1637063344\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestCreateasecurityfilterreturnsOKresponse1637063344\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"izh-ced-qmc\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Get_a_security_filter_returns_OK_response-1637063346\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestGetasecurityfilterreturnsOKresponse1637063346\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"rtp-twm-nur\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Update_a_security_filter_returns_OK_response-1637063347\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestUpdateasecurityfilterreturnsOKresponse1637063347\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"rin-h1e-8p1\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Create_a_security_filter_returns_OK_response-1637070528\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestCreateasecurityfilterreturnsOKresponse1637070528\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"thp-jp7-1is\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Get_a_security_filter_returns_OK_response-1637070533\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestGetasecurityfilterreturnsOKresponse1637070533\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"jyk-ryj-r5v\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Update_a_security_filter_returns_OK_response-1637070535\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestUpdateasecurityfilterreturnsOKresponse1637070535\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"5hn-7yt-vcx\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Create_a_security_filter_returns_OK_response-1637077967\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestCreateasecurityfilterreturnsOKresponse1637077967\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"vjx-2ei-qzt\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Get_a_security_filter_returns_OK_response-1637077969\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestGetasecurityfilterreturnsOKresponse1637077969\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"trb-gqz-rw0\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Update_a_security_filter_returns_OK_response-1637077970\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestUpdateasecurityfilterreturnsOKresponse1637077970\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"eam-ucg-ysc\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Create_a_security_filter_returns_OK_response-1637078478\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestCreateasecurityfilterreturnsOKresponse1637078478\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"nd2-4uw-ryq\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Get_a_security_filter_returns_OK_response-1637078481\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestGetasecurityfilterreturnsOKresponse1637078481\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"mdt-vr8-lpi\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Update_a_security_filter_returns_OK_response-1637078482\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestUpdateasecurityfilterreturnsOKresponse1637078482\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"0rq-mvi-cgj\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1637089241\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1637089241\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"wn3-as7-moa\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Get_a_security_filter_returns_OK_response-1620751633\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestGetasecurityfilterreturnsOKresponse1620751633\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"tqw-xay-uyv\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Update_a_security_filter_returns_OK_response-1620751634\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestUpdateasecurityfilterreturnsOKresponse1620751634\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"5zc-uho-3kh\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Create_a_security_filter_returns_OK_response-1637141213\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestCreateasecurityfilterreturnsOKresponse1637141213\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"auv-76t-trj\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Get_a_security_filter_returns_OK_response-1637141215\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestGetasecurityfilterreturnsOKresponse1637141215\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"d4t-p2p-tsw\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Update_a_security_filter_returns_OK_response-1637141217\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestUpdateasecurityfilterreturnsOKresponse1637141217\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"vpi-vz6-pnj\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Ruby-Get_a_security_filter_returns_OK_response-1637834808\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestRubyGetasecurityfilterreturnsOKresponse1637834808\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"eaa-jqt-qhz\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Python-Get_a_security_filter_returns_OK_response-1638987050\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestPythonGetasecurityfilterreturnsOKresponse1638987050\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"rpt-0pp-r8j\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Python-Delete_a_security_filter_returns_No_Content_response-1638987054\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestPythonDeleteasecurityfilterreturnsNoContentresponse1638987054\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"bkx-gg1-qlx\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Python-Update_a_security_filter_returns_OK_response-1638987055\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestPythonUpdateasecurityfilterreturnsOKresponse1638987055\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"z67-o7h-hik\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Python-Create_a_security_filter_returns_OK_response-1638987057\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestPythonCreateasecurityfilterreturnsOKresponse1638987057\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"mlx-awu-wg9\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Python-Delete_a_security_filter_returns_No_Content_response-1639574360\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestPythonDeleteasecurityfilterreturnsNoContentresponse1639574360\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ugq-7e0-rmg\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1640111630\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1640111630\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"iue-buv-ynq\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1640112776\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1640112776\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"qqm-ssh-ees\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Create_a_security_filter_returns_OK_response-1640112926\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestCreateasecurityfilterreturnsOKresponse1640112926\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"lkt-tz2-dfx\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Create_a_security_filter_returns_OK_response_1641598933\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:ExampleCreateasecurityfilterreturnsOKresponse1641598933\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"6wk-p8j-nva\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Create_a_security_filter_returns_OK_response_1642578134\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:ExampleCreateasecurityfilterreturnsOKresponse1642578134\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"u3y-nyf-jrw\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Example-Get_a_security_filter_returns_OK_response_1642733138\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestExampleGetasecurityfilterreturnsOKresponse1642733138\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ida-nab-cke\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1642756664\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1642756664\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"nrq-ogf-weh\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Delete_a_security_filter_returns_No_Content_response-1642756664\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1642756664\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"wjw-gsa-lco\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1642756664\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1642756664\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"szy-pir-e5u\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1642756664\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1642756664\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"2j4-1re-xff\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1643209589\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1643209589\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ume-uzk-eeu\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1643950965\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1643950965\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"xxp-5gs-gkf\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Create_a_security_filter_returns_OK_response_1644339764\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:ExampleCreateasecurityfilterreturnsOKresponse1644339764\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"tpm-eoz-ncm\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1644382966\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1644382966\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"j5u-vkc-zds\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1644656566\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1644656566\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"zei-o6m-bn0\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Create_a_security_filter_returns_OK_response_1644685366\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:ExampleCreateasecurityfilterreturnsOKresponse1644685366\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"hvw-9ht-lqu\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1645102964\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1645102964\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"bi8-u6v-oui\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1645131764\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1645131764\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"stc-afy-nwg\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1645534965\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1645534965\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"h5u-icu-fqd\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1645664565\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1645664565\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"jyg-usk-txn\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1647162167\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1647162167\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"jvg-rer-he8\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Create_a_security_filter_returns_OK_response_1647651765\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:ExampleCreateasecurityfilterreturnsOKresponse1647651765\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"eww-jo3-dul\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1647954164\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1647954164\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"amj-hdv-cyu\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Create_a_security_filter_returns_OK_response_1648170165\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:ExampleCreateasecurityfilterreturnsOKresponse1648170165\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"fi7-mmy-9oq\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Create_a_security_filter_returns_OK_response_1648270965\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:ExampleCreateasecurityfilterreturnsOKresponse1648270965\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"jsg-b2o-gjt\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1648314166\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1648314166\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"hx1-hvs-cvn\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Create_a_security_filter_returns_OK_response_1648501364\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:ExampleCreateasecurityfilterreturnsOKresponse1648501364\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ny3-xpo-xmo\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1648501364\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1648501364\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"thz-5gg-uij\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1648587764\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1648587764\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"z2t-lzm-ikl\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Create_a_security_filter_returns_OK_response_1648818166\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:ExampleCreateasecurityfilterreturnsOKresponse1648818166\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"xxn-g59-lwd\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1648832565\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1648832565\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ams-vtn-blj\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1648990964\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1648990964\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"dep-t7r-bxj\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1649120564\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1649120564\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"pqx-t4m-uid\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1649192564\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1649192564\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"nb6-hbx-f1q\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1649667764\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1649667764\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"gpj-cgz-shu\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Delete_a_security_filter_returns_No_Content_response-1649928918\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestDeleteasecurityfilterreturnsNoContentresponse1649928918\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"r2o-m8q-oie\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1650243764\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1650243764\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"5by-7j6-f6z\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1650358964\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1650358964\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"kkq-iwi-stm\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1650531764\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1650531764\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"no8-2ni-jmk\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1651410164\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1651410164\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"6iq-gtb-clv\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1651597364\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1651597364\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"aen-nqt-iaf\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1651654964\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1651654964\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"cy4-f9z-9r6\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Delete_a_security_filter_returns_No_Content_response-1651867320\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1651867320\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"tka-1gc-qxq\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Delete_a_security_filter_returns_No_Content_response-1651912576\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1651912576\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"0su-elt-ys2\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Delete_a_security_filter_returns_No_Content_response-1651915972\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1651915972\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"dj7-dy3-th8\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Delete_a_security_filter_returns_No_Content_response-1651943585\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1651943585\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"wku-vcl-7u1\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1651997988\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1651997988\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"m6u-vxw-81l\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Delete_a_security_filter_returns_No_Content_response-1651997988\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1651997988\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"c1j-dxb-dtd\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1651997989\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1651997989\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"tqh-1l5-dcq\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1651997990\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1651997990\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"1am-wfl-xby\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Delete_a_security_filter_returns_No_Content_response-1652008989\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1652008989\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"7yz-qxi-5ja\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1656001148\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1656001148\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"opx-ymm-fi6\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1656001148\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1656001148\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"s25-hfg-20t\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Create_a_security_filter_returns_OK_response_1656001150\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:ExampleCreateasecurityfilterreturnsOKresponse1656001150\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"pgs-w1q-zf7\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1657253948\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1657253948\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"wja-o4k-gal\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1657469948\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1657469948\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"3wu-ndq-gpz\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1657599548\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1657599548\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"j2f-boq-0wj\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1657887548\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1657887548\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"2ur-p7o-nrz\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1658175548\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1658175548\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"axt-ohp-g0w\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"tf-TestAccDatadogSecurityMonitoringFilter-local-1658516166\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"does not really match much\",\"name\":\"first\"},{\"query\":\"neither does it\",\"name\":\"second\"}],\"version\":1,\"query\":\"first query\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"vld-ebm-edf\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1658636349\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1658636349\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"jtg-flq-isg\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1658909949\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1658909949\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ris-e5s-nkj\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Create_a_security_filter_returns_OK_response_1659140350\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:ExampleCreateasecurityfilterreturnsOKresponse1659140350\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"r6l-kum-ywz\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1660119548\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1660119548\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"hsr-zqx-uwu\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Create_a_security_filter_returns_OK_response\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:ExampleCreateasecurityfilterreturnsOKresponse\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"iyq-8lx-1f0\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Create_a_security_filter_returns_OK_response_1665706600\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:ExampleCreateasecurityfilterreturnsOKresponse1665706600\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"e1j-wwy-1zw\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1665706784\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1665706784\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"bu9-ba3-dbk\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 19 Oct 2022 13:36:45 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/security_filters" + }, + "response": { + "body": { + "string": "{\"data\":[{\"attributes\":{\"is_enabled\":true,\"name\":\"all ingested logs\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":1,\"query\":\"*\",\"is_builtin\":true},\"type\":\"security_filters\",\"id\":\"bc0-fow-e4j\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Custom security filter\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:api\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"qhn-iuy-4oc\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"tf-TestAccDatadogSecurityMonitoringFilter-local-1626096168\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"does not really match much\",\"name\":\"first\"},{\"query\":\"neither does it\",\"name\":\"second\"}],\"version\":1,\"query\":\"acceptance rule triggered\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"7no-kjl-tnb\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"tf-TestAccDatadogSecurityMonitoringFilterDatasource-local-1626104534\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"does not really match much\",\"name\":\"first\"},{\"query\":\"neither does it\",\"name\":\"second\"}],\"version\":1,\"query\":\"ayayay query\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"smf-png-gzf\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Update_a_security_filter_returns_OK_response-1631884327\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestUpdateasecurityfilterreturnsOKresponse1631884327\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"hrp-l2l-xht\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Delete_a_security_filter_returns_No_Content_response-1631884338\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestDeleteasecurityfilterreturnsNoContentresponse1631884338\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"zr7-kgu-adi\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Get_a_security_filter_returns_OK_response-1631884338\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestGetasecurityfilterreturnsOKresponse1631884338\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"wbd-e2v-yke\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Delete_a_security_filter_returns_No_Content_response-1631884454\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestDeleteasecurityfilterreturnsNoContentresponse1631884454\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"tek-udt-1ad\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Update_a_security_filter_returns_OK_response-1631884464\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestUpdateasecurityfilterreturnsOKresponse1631884464\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ctr-nal-eek\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Get_a_security_filter_returns_OK_response-1631884465\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestGetasecurityfilterreturnsOKresponse1631884465\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"jpx-aky-hgq\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Delete_a_security_filter_returns_No_Content_response-1631884670\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestDeleteasecurityfilterreturnsNoContentresponse1631884670\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"otn-2vv-0xe\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Update_a_security_filter_returns_OK_response-1631884674\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestUpdateasecurityfilterreturnsOKresponse1631884674\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"knf-be5-bhz\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Get_a_security_filter_returns_OK_response-1631884674\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestGetasecurityfilterreturnsOKresponse1631884674\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"rjt-omi-ece\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Get_a_security_filter_returns_OK_response-1631884714\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestGetasecurityfilterreturnsOKresponse1631884714\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ebq-o3v-gdg\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Delete_a_security_filter_returns_No_Content_response-1631884715\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestDeleteasecurityfilterreturnsNoContentresponse1631884715\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"0pz-qyq-kqq\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Update_a_security_filter_returns_OK_response-1631884725\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestUpdateasecurityfilterreturnsOKresponse1631884725\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"m9g-ncc-02a\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Python-Delete_a_security_filter_returns_No_Content_response-1631886017\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestPythonDeleteasecurityfilterreturnsNoContentresponse1631886017\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"s8y-ndo-pmo\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Python-Get_a_security_filter_returns_OK_response-1631886029\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestPythonGetasecurityfilterreturnsOKresponse1631886029\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"clz-vl4-04z\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Python-Update_a_security_filter_returns_OK_response-1631886034\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestPythonUpdateasecurityfilterreturnsOKresponse1631886034\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ind-p9s-w9j\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632817310\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632817310\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"opx-q1v-ckn\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632817310\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632817310\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"4mz-na2-ozw\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632817311\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632817311\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"tkf-gkv-ffv\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632820231\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632820231\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"x1a-p97-scf\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632820231\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632820231\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"g85-tm8-yhe\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632820232\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632820232\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"obh-5cb-a0j\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632820436\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632820436\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"3cw-wzf-nsn\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632820437\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632820437\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"a2c-940-8x8\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632820438\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632820438\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"r8h-dyg-wgf\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632821203\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632821203\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"eum-bss-dyi\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632821205\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632821205\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"6wj-zed-jv3\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632821205\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632821205\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"hbn-bix-9ia\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632821494\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632821494\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"paz-gwc-z4l\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632821495\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632821495\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"jce-5qr-qdy\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632821495\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632821495\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"bpr-rhq-xqj\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632824855\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632824855\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"swf-vch-g9h\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632824856\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632824856\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"wtp-76p-ghf\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632824857\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632824857\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ogc-yrs-p4p\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632826434\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632826434\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"y08-eup-05l\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632826436\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632826436\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"wkz-wad-cbl\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632826436\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632826436\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"9kl-ojt-pmy\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632827408\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632827408\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"dh2-zr8-lam\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632827409\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632827409\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"hho-vt6-tws\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632827410\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632827410\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ltk-chn-umu\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632828993\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632828993\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"q3f-vnn-qmh\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632828993\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632828993\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"pvi-byz-som\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632828994\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632828994\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"3zg-jqc-ftm\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632832892\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632832892\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"kpj-t46-vbn\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632832892\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632832892\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"0og-l8j-tsq\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632832893\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632832893\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"jea-me2-ru1\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632833158\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632833158\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"04n-hit-fum\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632833159\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632833159\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"3rw-stk-rtz\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632833159\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632833159\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"zwb-63t-lpu\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632836449\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632836449\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"vle-9cs-xlh\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632836451\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632836451\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"82v-knv-p8b\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632836452\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632836452\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"jp2-7ys-ljn\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632839530\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632839530\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"up5-dkc-sbq\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632839530\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632839530\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"viv-6rl-zxw\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632839530\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632839530\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"1ls-1xt-i8c\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632839555\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632839555\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"0bv-ryy-bup\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632839556\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632839556\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"wuj-q1l-beq\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632839557\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632839557\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"usl-avk-v1a\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632839754\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632839754\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"cdu-xnm-7k9\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632839755\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632839755\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"dpq-4bx-fj2\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632839755\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632839755\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"cnt-1qa-1xp\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632841163\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632841163\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"htl-cat-7ye\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632841164\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632841164\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"zw3-fsy-7bh\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632841165\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632841165\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"mwa-jkd-mg6\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632842479\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632842479\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"3ph-ztk-l8m\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632842482\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632842482\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"0lr-30a-qe8\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632842482\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632842482\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"b57-68u-t1d\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632843068\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632843068\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"46n-cov-z4x\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632843069\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632843069\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"57n-tai-vbl\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632843069\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632843069\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"elu-n9r-zdk\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632844019\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632844019\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"1rg-ja2-wc7\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632844020\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632844020\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"9sk-plb-lbm\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632844021\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632844021\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"33b-4ut-ydc\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632844135\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632844135\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"wzw-cyw-og7\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632844135\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632844135\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"vjk-qik-jdi\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632844135\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632844135\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"qun-iu6-n5g\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632846637\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632846637\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"lbv-ghg-b4a\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632846638\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632846638\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"etu-tzk-p4y\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632846639\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632846639\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"xgg-32m-9um\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632847599\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632847599\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ysc-uz9-oct\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632847600\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632847600\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"j6p-hzw-4gg\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632847601\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632847601\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"9zj-osj-io8\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632848092\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632848092\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"bn2-ytq-ezm\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632848094\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632848094\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"oz0-0sv-86g\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632848095\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632848095\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"dwk-qj9-kgd\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632848450\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632848450\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"jxw-wxr-tnx\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632848451\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632848451\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"sto-gxf-iy1\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632848451\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632848451\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"lol-5bi-6ik\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632848885\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632848885\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"tnk-8wf-v5c\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632848885\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632848885\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"hfa-dvd-bf1\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632848886\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632848886\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"cwp-o1a-zwo\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632849681\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632849681\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"f4c-bee-wyi\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632849683\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632849683\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"caf-zh1-vqf\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632849684\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632849684\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"8pn-vrw-kn4\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632849896\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632849896\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"wh3-wcd-shk\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632849897\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632849897\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"6or-pfc-jsh\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632849898\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632849898\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"atx-t02-qhu\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632851126\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632851126\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"mqn-ec8-cys\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632851127\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632851127\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"er4-rot-i9q\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632851128\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632851128\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"7av-rff-z31\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632888517\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632888517\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"1xt-hsv-seu\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632888518\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632888518\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"rwh-ge7-poj\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632888518\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632888518\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"xxy-a4m-alu\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632898979\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632898979\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ple-dse-hhf\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632898980\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632898980\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"xix-4vr-abm\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632898980\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632898980\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"l8o-bzf-1fs\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632899193\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632899193\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ovk-9mh-i7q\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632899194\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632899194\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"z15-wxx-yix\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632899194\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632899194\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ewr-qfb-hvx\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632902893\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632902893\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"jqo-9hq-3hz\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632902894\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632902894\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"nv8-a6r-uzu\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632902894\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632902894\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"2zl-irh-u4x\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632903483\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632903483\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ove-4eu-ocg\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632903484\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632903484\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"wme-icd-q9j\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632903485\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632903485\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"mlu-006-hhl\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632904028\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632904028\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"qyd-yxv-qtf\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632904028\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632904028\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"cdy-aqo-nos\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632904029\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632904029\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"nzp-j5a-jrb\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632907319\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632907319\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"w9b-vfx-oqz\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632907320\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632907320\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"wxm-54b-g9v\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632907320\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632907320\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"tqo-alk-oww\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632907341\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632907341\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"epg-zdn-8o4\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632907342\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632907342\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"bw7-nje-vtb\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632907342\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632907342\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"qaf-z5b-da7\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632908400\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632908400\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"r6d-4kz-mch\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632908401\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632908401\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"dar-afy-68w\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632908402\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632908402\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"mzl-r2s-3d3\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632909893\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632909893\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"amk-yqc-2jg\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632909895\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632909895\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"jvp-lye-omw\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632909896\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632909896\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"mky-7xe-w96\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632910740\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632910740\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"cpn-5xa-qvr\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632910741\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632910741\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"gnd-qai-263\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632910742\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632910742\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"may-03m-8gc\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632913811\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632913811\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"3wl-tn0-g3p\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632913813\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632913813\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"kmc-6co-0xq\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632913814\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632913814\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"cke-k5o-udo\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632918181\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632918181\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"g0n-ynp-vuj\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632918181\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632918181\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"unp-wrp-w6s\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632918182\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632918182\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ek7-jqe-hab\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632919352\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632919352\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"cza-so4-7se\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632919352\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632919352\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"lxy-qgf-rdw\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632919353\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632919353\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"0h6-4bl-gyy\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632919567\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632919567\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"j8u-cox-47o\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632919568\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632919568\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"wpj-eon-hhq\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632919568\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632919568\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"gzy-dxq-y8c\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632921868\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632921868\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"1vw-prp-da3\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632921868\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632921868\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"cz9-r0k-77v\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632921869\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632921869\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"unn-qpz-hwg\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632922202\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632922202\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"70w-v06-tzj\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632922203\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632922203\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"a66-7u7-nad\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632922203\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632922203\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"d2p-7v7-avd\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632928250\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632928250\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"fgk-oxj-ftk\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632928250\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632928250\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"fpp-xqi-uu9\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632928251\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632928251\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"63r-qez-ybq\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632933845\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632933845\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"gju-kit-iw5\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632933846\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632933846\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"1m4-2co-rpk\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632933847\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632933847\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"tir-l97-lp0\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632974965\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632974965\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ogv-c35-zyi\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632974966\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632974966\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"mvz-r9p-fbq\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632974966\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632974966\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"tbf-w69-aty\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632986086\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632986086\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"xzl-grv-7gm\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632986087\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632986087\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"jku-q85-vzi\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632986087\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632986087\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"awi-wik-sqv\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632989757\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632989757\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"zxt-ben-do9\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632989758\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632989758\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ir8-h43-r0a\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632989758\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632989758\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"erz-srb-bn8\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1632997311\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1632997311\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"r75-jsq-jpu\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1632997312\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1632997312\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"qq6-jjy-3tu\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1632997312\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1632997312\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"tsp-qrn-n9x\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1633000142\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633000142\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"4yc-4ge-ghb\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1633000144\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1633000144\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"bed-vic-suh\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1633000145\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633000145\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"put-2jd-2ib\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1633003795\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633003795\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"y8f-naf-1cj\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1633003796\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1633003796\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"1pt-6xr-7ic\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1633003797\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633003797\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"rpo-lwd-fyr\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1633004068\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633004068\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"euk-m8d-p2d\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1633004069\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1633004069\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"nhm-rho-ez9\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1633004069\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633004069\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"zuo-60q-xbh\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1633006704\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633006704\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"3db-tgu-ays\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1633006704\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1633006704\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"6ou-tsb-hlx\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1633006705\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633006705\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ojr-mg7-oke\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1633007542\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633007542\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"znq-ano-djg\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1633007542\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1633007542\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"kmo-hwd-qq2\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1633007543\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633007543\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"v8u-jjs-9vc\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1633011104\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633011104\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ld0-njn-zw1\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1633011105\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1633011105\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"w8u-g2z-xy8\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1633011105\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633011105\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"mh9-5yo-qq2\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1633011244\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633011244\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"vac-obe-n22\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1633011246\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1633011246\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"mpc-glp-h7w\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1633011247\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633011247\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"qwx-au5-zve\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1633015449\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1633015449\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"saa-vzr-xsj\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1633015451\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1633015451\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"pfl-vim-gje\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1633015452\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1633015452\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"2uh-zo8-nb5\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Ruby-Get_a_security_filter_returns_OK_response-1634150224\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestRubyGetasecurityfilterreturnsOKresponse1634150224\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"egl-poh-kzn\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Python-Get_a_security_filter_returns_OK_response-1635496812\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestPythonGetasecurityfilterreturnsOKresponse1635496812\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"gcz-3rz-y1w\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Go-Get_a_security_filter_returns_OK_response-1636410254\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestGoGetasecurityfilterreturnsOKresponse1636410254\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"csu-jez-ive\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Create_a_security_filter_returns_OK_response-1637063344\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestCreateasecurityfilterreturnsOKresponse1637063344\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"izh-ced-qmc\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Get_a_security_filter_returns_OK_response-1637063346\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestGetasecurityfilterreturnsOKresponse1637063346\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"rtp-twm-nur\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Update_a_security_filter_returns_OK_response-1637063347\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestUpdateasecurityfilterreturnsOKresponse1637063347\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"rin-h1e-8p1\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Create_a_security_filter_returns_OK_response-1637070528\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestCreateasecurityfilterreturnsOKresponse1637070528\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"thp-jp7-1is\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Get_a_security_filter_returns_OK_response-1637070533\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestGetasecurityfilterreturnsOKresponse1637070533\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"jyk-ryj-r5v\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Update_a_security_filter_returns_OK_response-1637070535\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestUpdateasecurityfilterreturnsOKresponse1637070535\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"5hn-7yt-vcx\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Create_a_security_filter_returns_OK_response-1637077967\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestCreateasecurityfilterreturnsOKresponse1637077967\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"vjx-2ei-qzt\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Get_a_security_filter_returns_OK_response-1637077969\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestGetasecurityfilterreturnsOKresponse1637077969\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"trb-gqz-rw0\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Update_a_security_filter_returns_OK_response-1637077970\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestUpdateasecurityfilterreturnsOKresponse1637077970\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"eam-ucg-ysc\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Create_a_security_filter_returns_OK_response-1637078478\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestCreateasecurityfilterreturnsOKresponse1637078478\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"nd2-4uw-ryq\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Get_a_security_filter_returns_OK_response-1637078481\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestGetasecurityfilterreturnsOKresponse1637078481\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"mdt-vr8-lpi\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Update_a_security_filter_returns_OK_response-1637078482\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestUpdateasecurityfilterreturnsOKresponse1637078482\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"0rq-mvi-cgj\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1637089241\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1637089241\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"wn3-as7-moa\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Get_a_security_filter_returns_OK_response-1620751633\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestGetasecurityfilterreturnsOKresponse1620751633\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"tqw-xay-uyv\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Update_a_security_filter_returns_OK_response-1620751634\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestUpdateasecurityfilterreturnsOKresponse1620751634\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"5zc-uho-3kh\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Create_a_security_filter_returns_OK_response-1637141213\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestCreateasecurityfilterreturnsOKresponse1637141213\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"auv-76t-trj\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Get_a_security_filter_returns_OK_response-1637141215\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestGetasecurityfilterreturnsOKresponse1637141215\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"d4t-p2p-tsw\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Update_a_security_filter_returns_OK_response-1637141217\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestUpdateasecurityfilterreturnsOKresponse1637141217\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"vpi-vz6-pnj\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Ruby-Get_a_security_filter_returns_OK_response-1637834808\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestRubyGetasecurityfilterreturnsOKresponse1637834808\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"eaa-jqt-qhz\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Python-Get_a_security_filter_returns_OK_response-1638987050\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestPythonGetasecurityfilterreturnsOKresponse1638987050\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"rpt-0pp-r8j\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Python-Delete_a_security_filter_returns_No_Content_response-1638987054\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestPythonDeleteasecurityfilterreturnsNoContentresponse1638987054\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"bkx-gg1-qlx\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Python-Update_a_security_filter_returns_OK_response-1638987055\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestPythonUpdateasecurityfilterreturnsOKresponse1638987055\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"z67-o7h-hik\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Python-Create_a_security_filter_returns_OK_response-1638987057\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestPythonCreateasecurityfilterreturnsOKresponse1638987057\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"mlx-awu-wg9\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Python-Delete_a_security_filter_returns_No_Content_response-1639574360\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestPythonDeleteasecurityfilterreturnsNoContentresponse1639574360\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ugq-7e0-rmg\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1640111630\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1640111630\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"iue-buv-ynq\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1640112776\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1640112776\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"qqm-ssh-ees\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Create_a_security_filter_returns_OK_response-1640112926\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestCreateasecurityfilterreturnsOKresponse1640112926\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"lkt-tz2-dfx\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Create_a_security_filter_returns_OK_response_1641598933\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:ExampleCreateasecurityfilterreturnsOKresponse1641598933\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"6wk-p8j-nva\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Create_a_security_filter_returns_OK_response_1642578134\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:ExampleCreateasecurityfilterreturnsOKresponse1642578134\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"u3y-nyf-jrw\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Example-Get_a_security_filter_returns_OK_response_1642733138\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestExampleGetasecurityfilterreturnsOKresponse1642733138\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ida-nab-cke\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1642756664\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1642756664\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"nrq-ogf-weh\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Delete_a_security_filter_returns_No_Content_response-1642756664\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1642756664\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"wjw-gsa-lco\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1642756664\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1642756664\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"szy-pir-e5u\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1642756664\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1642756664\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"2j4-1re-xff\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1643209589\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1643209589\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ume-uzk-eeu\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1643950965\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1643950965\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"xxp-5gs-gkf\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Create_a_security_filter_returns_OK_response_1644339764\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:ExampleCreateasecurityfilterreturnsOKresponse1644339764\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"tpm-eoz-ncm\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1644382966\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1644382966\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"j5u-vkc-zds\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1644656566\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1644656566\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"zei-o6m-bn0\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Create_a_security_filter_returns_OK_response_1644685366\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:ExampleCreateasecurityfilterreturnsOKresponse1644685366\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"hvw-9ht-lqu\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1645102964\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1645102964\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"bi8-u6v-oui\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1645131764\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1645131764\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"stc-afy-nwg\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1645534965\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1645534965\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"h5u-icu-fqd\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1645664565\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1645664565\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"jyg-usk-txn\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1647162167\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1647162167\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"jvg-rer-he8\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Create_a_security_filter_returns_OK_response_1647651765\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:ExampleCreateasecurityfilterreturnsOKresponse1647651765\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"eww-jo3-dul\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1647954164\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1647954164\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"amj-hdv-cyu\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Create_a_security_filter_returns_OK_response_1648170165\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:ExampleCreateasecurityfilterreturnsOKresponse1648170165\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"fi7-mmy-9oq\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Create_a_security_filter_returns_OK_response_1648270965\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:ExampleCreateasecurityfilterreturnsOKresponse1648270965\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"jsg-b2o-gjt\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1648314166\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1648314166\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"hx1-hvs-cvn\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Create_a_security_filter_returns_OK_response_1648501364\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:ExampleCreateasecurityfilterreturnsOKresponse1648501364\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ny3-xpo-xmo\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1648501364\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1648501364\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"thz-5gg-uij\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1648587764\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1648587764\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"z2t-lzm-ikl\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Create_a_security_filter_returns_OK_response_1648818166\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:ExampleCreateasecurityfilterreturnsOKresponse1648818166\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"xxn-g59-lwd\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1648832565\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1648832565\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ams-vtn-blj\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1648990964\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1648990964\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"dep-t7r-bxj\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1649120564\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1649120564\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"pqx-t4m-uid\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1649192564\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1649192564\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"nb6-hbx-f1q\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1649667764\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1649667764\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"gpj-cgz-shu\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Delete_a_security_filter_returns_No_Content_response-1649928918\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestDeleteasecurityfilterreturnsNoContentresponse1649928918\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"r2o-m8q-oie\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1650243764\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1650243764\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"5by-7j6-f6z\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1650358964\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1650358964\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"kkq-iwi-stm\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1650531764\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1650531764\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"no8-2ni-jmk\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1651410164\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1651410164\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"6iq-gtb-clv\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1651597364\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1651597364\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"aen-nqt-iaf\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1651654964\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1651654964\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"cy4-f9z-9r6\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Delete_a_security_filter_returns_No_Content_response-1651867320\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1651867320\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"tka-1gc-qxq\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Delete_a_security_filter_returns_No_Content_response-1651912576\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1651912576\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"0su-elt-ys2\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Delete_a_security_filter_returns_No_Content_response-1651915972\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1651915972\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"dj7-dy3-th8\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Delete_a_security_filter_returns_No_Content_response-1651943585\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1651943585\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"wku-vcl-7u1\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Create_a_security_filter_returns_OK_response-1651997988\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:TestTypescriptCreateasecurityfilterreturnsOKresponse1651997988\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"m6u-vxw-81l\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Delete_a_security_filter_returns_No_Content_response-1651997988\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1651997988\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"c1j-dxb-dtd\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Get_a_security_filter_returns_OK_response-1651997989\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptGetasecurityfilterreturnsOKresponse1651997989\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"tqh-1l5-dcq\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Update_a_security_filter_returns_OK_response-1651997990\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestTypescriptUpdateasecurityfilterreturnsOKresponse1651997990\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"1am-wfl-xby\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Typescript-Delete_a_security_filter_returns_No_Content_response-1652008989\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestTypescriptDeleteasecurityfilterreturnsNoContentresponse1652008989\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"7yz-qxi-5ja\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1656001148\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1656001148\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"opx-ymm-fi6\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1656001148\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1656001148\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"s25-hfg-20t\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Create_a_security_filter_returns_OK_response_1656001150\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:ExampleCreateasecurityfilterreturnsOKresponse1656001150\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"pgs-w1q-zf7\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1657253948\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1657253948\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"wja-o4k-gal\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1657469948\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1657469948\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"3wu-ndq-gpz\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1657599548\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1657599548\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"j2f-boq-0wj\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1657887548\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1657887548\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"2ur-p7o-nrz\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1658175548\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1658175548\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"axt-ohp-g0w\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"tf-TestAccDatadogSecurityMonitoringFilter-local-1658516166\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"does not really match much\",\"name\":\"first\"},{\"query\":\"neither does it\",\"name\":\"second\"}],\"version\":1,\"query\":\"first query\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"vld-ebm-edf\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1658636349\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1658636349\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"jtg-flq-isg\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Update_a_security_filter_returns_OK_response_1658909949\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:ExampleUpdateasecurityfilterreturnsOKresponse1658909949\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"ris-e5s-nkj\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Create_a_security_filter_returns_OK_response_1659140350\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:ExampleCreateasecurityfilterreturnsOKresponse1659140350\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"r6l-kum-ywz\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1660119548\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1660119548\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"hsr-zqx-uwu\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Create_a_security_filter_returns_OK_response\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:ExampleCreateasecurityfilterreturnsOKresponse\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"iyq-8lx-1f0\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Create_a_security_filter_returns_OK_response_1665706600\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude staging\"}],\"version\":1,\"query\":\"service:ExampleCreateasecurityfilterreturnsOKresponse1665706600\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"e1j-wwy-1zw\"},{\"attributes\":{\"is_enabled\":true,\"name\":\"Example-Get_a_security_filter_returns_OK_response_1665706784\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:ExampleGetasecurityfilterreturnsOKresponse1665706784\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"bu9-ba3-dbk\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 19 Oct 2022 13:36:45 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/List-findings-returns-OK-response.json b/tests/scenarios/cassettes/v2/security_monitoring/List-findings-returns-OK-response.json index adf40b756..0b7853d0a 100644 --- a/tests/scenarios/cassettes/v2/security_monitoring/List-findings-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/security_monitoring/List-findings-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/posture_management/findings"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"AgAAAYd59gjghzF52gAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFCRTRvV1lFeEo4SlFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"dd-chaos-cloud-xuxu-eu-north-1\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"region:eu-north-1\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjgliGE4AAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFCaUpXYWk4bGpBSUFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"backups.vault.us1.datadog.blue\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"team:compute\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"vault_cluster:vault-us1-datadog-blue\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"name:backups.vault.us1.datadog.blue\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjgmf4YVgAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFCbllxT0M0S2RUeWdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"datadog-threat-intelligence\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"team:defense\",\"terraform.managed:true\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"name:datadog-threat-intelligence\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjgoNVtoQAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFDSXBGUGJtR1gtVkFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220976000,\"mute\":{\"muted\":false},\"resource\":\"datadog-aws-config-xuxu\",\"resource_discovery_date\":1681220976000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"team:infrasec-dev\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"terraform.module:config\",\"cloud_provider:aws\",\"terraform.managed:true\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"name:datadog-aws-config-xuxu\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjgyMG0cQAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFBRVRsYnBXeHhwWndBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"binaries.datadog.blue\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"team:infrasec-dev\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"name:binaries.datadog.blue\",\"terraform.managed:true\",\"control:1.5\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjgyuK5OwAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFBc1JwVkpYa1R3bGdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"binaries.datadog.blue\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"team:infrasec-dev\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"name:binaries.datadog.blue\",\"terraform.managed:true\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjg3R4HtQAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFBeVZYUnhKS3F2b1FBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"dd-chaos-cloud-xuxu-eu-north-1\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"region:eu-north-1\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"control:1.5\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjg3z8MfwAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFBOVAyaFR2Yi1hUkFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"dd-chaos-cloud-xuxu-eu-north-1\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"region:eu-north-1\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjg4TuiewAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFBaHhHNG9zS3ZVbGdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"backups.vault.us1.datadog.blue\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"team:compute\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"vault_cluster:vault-us1-datadog-blue\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"name:backups.vault.us1.datadog.blue\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjg6--LPAAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFESzVXLVhuTXJIcEFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220976000,\"mute\":{\"muted\":false},\"resource\":\"datadog-aws-config-xuxu\",\"resource_discovery_date\":1681220976000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"team:infrasec-dev\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"requirement:Least-Privileged-Access\",\"terraform.module:config\",\"cloud_provider:aws\",\"terraform.managed:true\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"name:datadog-aws-config-xuxu\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjg7-qmMQAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFEdXVFZGRkNmVJOHdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"datadog-threat-intelligence\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"team:defense\",\"terraform.managed:true\",\"control:1.5\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"name:datadog-threat-intelligence\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjg8guq-wAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFENTQwVGUtS3BJV3dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"datadog-threat-intelligence\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"team:defense\",\"terraform.managed:true\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"name:datadog-threat-intelligence\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjgJ7sI-wAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFEQy16NUdtVXFaWndBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"binaries.datadog.blue\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"team:infrasec-dev\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"name:binaries.datadog.blue\",\"terraform.managed:true\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjgNygwVgAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFDblZ6bDhERml2RkFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"backups.vault.us1.datadog.blue\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"team:compute\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"vault_cluster:vault-us1-datadog-blue\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"name:backups.vault.us1.datadog.blue\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"control:1.5\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjgOUk1IAAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFBa2xFVjhvTVNJMWdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"backups.vault.us1.datadog.blue\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"team:compute\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"vault_cluster:vault-us1-datadog-blue\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"name:backups.vault.us1.datadog.blue\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjgPBdcPwAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFBaUFZdXY3N3d1UUFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"dd-chaos-cloud-xuxu-eu-north-1\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"region:eu-north-1\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjgQdwZFwAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFDdWNlWTlFc1BKZ2dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220976000,\"mute\":{\"muted\":false},\"resource\":\"datadog-aws-config-xuxu\",\"resource_discovery_date\":1681220976000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"team:infrasec-dev\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"terraform.module:config\",\"cloud_provider:aws\",\"terraform.managed:true\",\"control:1.5\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"name:datadog-aws-config-xuxu\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjgQ_0d4QAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFDcW9lcE1FSG5nWVFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220976000,\"mute\":{\"muted\":false},\"resource\":\"datadog-aws-config-xuxu\",\"resource_discovery_date\":1681220976000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"team:infrasec-dev\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"terraform.module:config\",\"cloud_provider:aws\",\"terraform.managed:true\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"name:datadog-aws-config-xuxu\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjgTuP6uwAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFCRWJ6QWtEcmdfM3dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"datadog-threat-intelligence\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"team:defense\",\"terraform.managed:true\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"name:datadog-threat-intelligence\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjgctUmlgAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFESUZpMDFHUFpTOXdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"binaries.datadog.blue\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"team:infrasec-dev\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"name:binaries.datadog.blue\",\"terraform.managed:true\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCArLFvcgAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFEM3pIZEluRFZqWVFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"dd-chaos-cloud-datadog-security-research-ap-southeast-1\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"region:ap-southeast-1\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_account:677301038893\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCAtUAnMwAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFBakZJclItaWdSX3dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"datadog-forwarder-for-guarddog-forwarderbucket-1ptvy5l49q6q4\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:eu-west-3:677301038893:stack/datadog-forwarder-for-guarddog/70fca8e0-ad0d-11ed-8f5c-068de8cf5e7e\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"region:eu-west-3\",\"aws_cloudformation_logical-id:forwarderbucket\",\"aws_account:677301038893\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"aws_cloudformation_stack-name:datadog-forwarder-for-guarddog\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCAt_HxPwAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFER2VZQm0tdVdrbmdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"acacascsaascascascascsacsa\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_account:677301038893\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCA01wAzQAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFDbG1hc3Y3YUJ1YVFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"dd-chaos-cloud-datadog-security-research-ap-northeast-2\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"region:ap-northeast-2\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_account:677301038893\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCA2v8NygAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFCVjc5Tzg4Q3VPMEFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"dd-cspm-remote-state-bucket\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"owner:cspm-pde-team\",\"aws_account:677301038893\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCA98uNDQAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFEZ2trSEJ2TEVXU0FBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"dd-chaos-cloud-datadog-security-research-ap-southeast-1\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"framework:iso-27001\",\"region:ap-southeast-1\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_account:677301038893\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCACyy1DgAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFESVpINEtHWEpZU1FBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"datadog-forwarder-for-guarddog-forwarderbucket-1ptvy5l49q6q4\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"requirement:Security-Management-Process\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:eu-west-3:677301038893:stack/datadog-forwarder-for-guarddog/70fca8e0-ad0d-11ed-8f5c-068de8cf5e7e\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"region:eu-west-3\",\"aws_cloudformation_logical-id:forwarderbucket\",\"control:1.5\",\"aws_account:677301038893\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"aws_cloudformation_stack-name:datadog-forwarder-for-guarddog\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCADU252AAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFDN3Y0U1pXSExCS3dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"datadog-forwarder-for-guarddog-forwarderbucket-1ptvy5l49q6q4\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"requirement:Security-Management-Process\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:eu-west-3:677301038893:stack/datadog-forwarder-for-guarddog/70fca8e0-ad0d-11ed-8f5c-068de8cf5e7e\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"region:eu-west-3\",\"aws_cloudformation_logical-id:forwarderbucket\",\"aws_account:677301038893\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"aws_cloudformation_stack-name:datadog-forwarder-for-guarddog\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCADd5_GgAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFCZ1pHZHZKcFozcVFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"acacascsaascascascascsacsa\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"control:1.5\",\"aws_account:677301038893\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCAD_-D5AAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFDMmVPRXB1eHVNSUFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"acacascsaascascascascsacsa\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_account:677301038893\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCAHnYeaAAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFBMFc4M3hRRGNIYWdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"dd-chaos-cloud-datadog-security-research-ap-northeast-2\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"region:ap-northeast-2\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_account:677301038893\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCAJhkrZQAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFBbE9la2VkeG5FVFFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"dd-cspm-remote-state-bucket\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"owner:cspm-pde-team\",\"aws_account:677301038893\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCATbga6AAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFCOFNTOWpnakZvaUFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"dd-chaos-cloud-datadog-security-research-ap-southeast-1\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"region:ap-southeast-1\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"control:1.5\",\"aws_account:677301038893\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCAT9kfsgAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFEeEpzeDRMUXJ2MUFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"dd-chaos-cloud-datadog-security-research-ap-southeast-1\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"region:ap-southeast-1\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_account:677301038893\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCAaiYJmAAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFCcENodlFBX29IZlFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"datadog-forwarder-for-guarddog-forwarderbucket-1ptvy5l49q6q4\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"requirement:Security-Management-Process\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:eu-west-3:677301038893:stack/datadog-forwarder-for-guarddog/70fca8e0-ad0d-11ed-8f5c-068de8cf5e7e\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"region:eu-west-3\",\"aws_cloudformation_logical-id:forwarderbucket\",\"aws_account:677301038893\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"aws_cloudformation_stack-name:datadog-forwarder-for-guarddog\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCAbNfTpAAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFBUlFYWXgteGxzTkFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"acacascsaascascascascsacsa\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_account:677301038893\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCAdGKsQwAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFEVkFGLWJXQm0yV3dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"dd-chaos-cloud-datadog-security-research-ap-northeast-2\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"region:ap-northeast-2\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"control:1.5\",\"aws_account:677301038893\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCAdoOxDQAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFCZVhEdDNTTmh0NlFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"dd-chaos-cloud-datadog-security-research-ap-northeast-2\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"region:ap-northeast-2\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_account:677301038893\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCAfAW5QAAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFBNHhzWXZEUHBLMVFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"dd-cspm-remote-state-bucket\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"control:1.5\",\"owner:cspm-pde-team\",\"aws_account:677301038893\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCAfia-CgAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFEb2hILW9zdFRhaGdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"dd-cspm-remote-state-bucket\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"owner:cspm-pde-team\",\"aws_account:677301038893\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIiqK51wAAAAAAAAAYAAAAAEFZZDUtaFFJQUFDSzVQZ1g3bUdSdFFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220486000,\"mute\":{\"muted\":false},\"resource\":\"hello-extension-dev-serverlessdeploymentbucket-2uwdqh8tv3ri\",\"resource_discovery_date\":1681220486000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"control:1.5\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIjMO-oQAAAAAAAAAYAAAAAEFZZDUtaFFJQUFDcElnc1Q3OGJzeXdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220486000,\"mute\":{\"muted\":false},\"resource\":\"hello-extension-dev-serverlessdeploymentbucket-2uwdqh8tv3ri\",\"resource_discovery_date\":1681220486000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"account:demo\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIj6p38gAAAAAAAAAYAAAAAEFZZDUtaFFJQUFCVXdtbFNldHBwbGdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221183000,\"mute\":{\"muted\":false},\"resource\":\"cron-dev-serverlessdeploymentbucket-jedop14wex9s\",\"resource_discovery_date\":1681221183000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"aws_cloudformation_stack-name:cron-dev\",\"framework:iso-27001\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-east-1:172597598159:stack/cron-dev/b2e752e0-a48c-11e6-b257-50a686e4bb82\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_cloudformation_logical-id:serverlessdeploymentbucket\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIlHCW-wAAAAAAAAAYAAAAAEFZZDUtaFFJQUFCYUFqWEt4anFuR2dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"datadogv15-forwarderstack-lvu-forwarderzipsbucket-eprqhepew4x2\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_cloudformation_logical-id:forwarderzipsbucket\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_cloudformation_stack-name:datadogv15-forwarderstack-lvu0coklo6q4\",\"control:1.5\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-west-2:172597598159:stack/datadogv15-forwarderstack-lvu0coklo6q4/a90a2600-7e66-11ea-803f-0a14cc4f5b48\",\"control:A.9.2.3\",\"region:us-west-2\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIlP4s6AAAAAAAAAAYAAAAAEFZZDUtaFFJQUFEWW82bTZNTlJaS2dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221183000,\"mute\":{\"muted\":false},\"resource\":\"access-key-based-archive\",\"resource_discovery_date\":1681221183000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIlpGbxQAAAAAAAAAYAAAAAEFZZDUtaFFJQUFEb3h2aDZQazctNWdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"datadogv15-forwarderstack-lvu-forwarderzipsbucket-eprqhepew4x2\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_cloudformation_logical-id:forwarderzipsbucket\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_cloudformation_stack-name:datadogv15-forwarderstack-lvu0coklo6q4\",\"account:demo\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-west-2:172597598159:stack/datadogv15-forwarderstack-lvu0coklo6q4/a90a2600-7e66-11ea-803f-0a14cc4f5b48\",\"control:A.9.2.3\",\"region:us-west-2\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIl3sKNQAAAAAAAAAYAAAAAEFZZDUtaFFJQUFEb1lUY01CNHF2dXdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"submitscoretolms-dev-serverlessdeploymentbucket-32oyxdcv4vut\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-west-1:172597598159:stack/submitscoretolms-dev/c8703400-040b-11eb-a9a6-066f37a23789\",\"requirement:Security-Management-Process\",\"aws_cloudformation_stack-name:submitscoretolms-dev\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_cloudformation_logical-id:serverlessdeploymentbucket\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"control:1.5\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"region:us-west-1\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQImZwO_wAAAAAAAAAYAAAAAEFZZDUtaFFJQUFBMUxsWEZENjNFOEFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"submitscoretolms-dev-serverlessdeploymentbucket-32oyxdcv4vut\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-west-1:172597598159:stack/submitscoretolms-dev/c8703400-040b-11eb-a9a6-066f37a23789\",\"requirement:Security-Management-Process\",\"aws_cloudformation_stack-name:submitscoretolms-dev\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_cloudformation_logical-id:serverlessdeploymentbucket\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"account:demo\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"region:us-west-1\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIonYVFQAAAAAAAAAYAAAAAEFZZDUtaFFJQUFER1NnX0ZDb0FsbkFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221183000,\"mute\":{\"muted\":false},\"resource\":\"dd-bucket-logs-demo\",\"resource_discovery_date\":1681221183000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"team:xuxu\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"terraform.managed:true\",\"control:1.5\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"name:dd-bucket-logs-demo\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIpBY7nQAAAAAAAAAYAAAAAEFZZDUtaFFJQUFCODBRd2dLSmc4VndBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"datadogintegrationtest12345-forwa-forwarderbucket-vjqpo8odwcxd\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"framework:gdpr\",\"aws_cloudformation_stack-name:datadogintegrationtest12345-forwarderstack-1ebhiflbjcts8\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-east-1:172597598159:stack/datadogintegrationtest12345-forwarderstack-1ebhiflbjcts8/17242b50-b127-11ec-ad08-0a3c8f91aaab\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_cloudformation_logical-id:forwarderbucket\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIpJcZ3wAAAAAAAAAYAAAAAEFZZDUtaFFJQUFCclkyVTNRN2RIOXdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221183000,\"mute\":{\"muted\":false},\"resource\":\"dd-bucket-logs-demo\",\"resource_discovery_date\":1681221183000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"team:xuxu\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"terraform.managed:true\",\"account:demo\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"name:dd-bucket-logs-demo\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIp6tIjQAAAAAAAAAYAAAAAEFZZDUtaFFJQUFBbEhCeDBBMkZQdFFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220486000,\"mute\":{\"muted\":false},\"resource\":\"aws-sam-cli-managed-default-samclisourcebucket-x90n87ru57hm\",\"resource_discovery_date\":1681220486000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"aws_cloudformation_stack-name:aws-sam-cli-managed-default\",\"managedstacksource:awssamcli\",\"requirement:Compliance\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"aws_cloudformation_logical-id:samclisourcebucket\",\"cloud_provider:aws\",\"account:demo\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:ca-central-1:172597598159:stack/aws-sam-cli-managed-default/f47ebf60-afda-11ea-a1a4-0aaf8b31ab7a\",\"region:ca-central-1\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIssWRRgAAAAAAAAAYAAAAAEFZZDUtaFFJQUFCbndzejNxd0prd2dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220486000,\"mute\":{\"muted\":false},\"resource\":\"hello-csharp-dev-serverlessdeploymentbucket-k8w7ixh9zxm8\",\"resource_discovery_date\":1681220486000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_cloudformation_logical-id:serverlessdeploymentbucket\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"control:1.5\",\"account:demo\",\"requirement:Data-Protection\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-east-1:172597598159:stack/hello-csharp-dev/aad9a440-92a5-11e9-9be0-0a522351f81e\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"aws_cloudformation_stack-name:hello-csharp-dev\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQItOaWEAAAAAAAAAAYAAAAAEFZZDUtaFFJQUFEaUwtRHJrNVVZRUFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220486000,\"mute\":{\"muted\":false},\"resource\":\"hello-csharp-dev-serverlessdeploymentbucket-k8w7ixh9zxm8\",\"resource_discovery_date\":1681220486000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_cloudformation_logical-id:serverlessdeploymentbucket\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"account:demo\",\"control:1.3\",\"requirement:Data-Protection\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-east-1:172597598159:stack/hello-csharp-dev/aad9a440-92a5-11e9-9be0-0a522351f81e\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"aws_cloudformation_stack-name:hello-csharp-dev\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIzKsjhwAAAAAAAAAYAAAAAEFZZDUtaFFJQUFBbmZuNnVLdm4wZ3dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"danton-rodriguez\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"control:1.5\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIzswoUQAAAAAAAAAYAAAAAEFZZDUtaFFJQUFDOW9SQ3FGOHFRYVFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"danton-rodriguez\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"account:demo\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQI2sSVjQAAAAAAAAAYAAAAAEFZZDUtaFFJQUFEeFcyNXZwTVE3cndBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221183000,\"mute\":{\"muted\":false},\"resource\":\"cron-dev-serverlessdeploymentbucket-jedop14wex9s\",\"resource_discovery_date\":1681221183000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"aws_cloudformation_stack-name:cron-dev\",\"framework:iso-27001\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-east-1:172597598159:stack/cron-dev/b2e752e0-a48c-11e6-b257-50a686e4bb82\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"aws_cloudformation_logical-id:serverlessdeploymentbucket\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQI4BhKgwAAAAAAAAAYAAAAAEFZZDUtaFFJQUFEVUZfcklQUHV1RFFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221183000,\"mute\":{\"muted\":false},\"resource\":\"access-key-based-archive\",\"resource_discovery_date\":1681221183000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQI6ZwOYQAAAAAAAAAYAAAAAEFZZDUtaFFJQUFCYVYtWmRXd0xlM2dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220486000,\"mute\":{\"muted\":false},\"resource\":\"hello-extension-dev-serverlessdeploymentbucket-2uwdqh8tv3ri\",\"resource_discovery_date\":1681220486000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQI7zBZOAAAAAAAAAAYAAAAAEFZZDUtaFFJQUFBdjNTV2pEUHRPcEFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"datadogintegrationtest12345-forwa-forwarderbucket-vjqpo8odwcxd\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"aws_cloudformation_stack-name:datadogintegrationtest12345-forwarderstack-1ebhiflbjcts8\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-east-1:172597598159:stack/datadogintegrationtest12345-forwarderstack-1ebhiflbjcts8/17242b50-b127-11ec-ad08-0a3c8f91aaab\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_cloudformation_logical-id:forwarderbucket\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQI8sVmKAAAAAAAAAAYAAAAAEFZZDUtaFFJQUFDMEZrMjhubnNMNndBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220486000,\"mute\":{\"muted\":false},\"resource\":\"aws-sam-cli-managed-default-samclisourcebucket-x90n87ru57hm\",\"resource_discovery_date\":1681220486000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"aws_cloudformation_stack-name:aws-sam-cli-managed-default\",\"managedstacksource:awssamcli\",\"requirement:Compliance\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"aws_cloudformation_logical-id:samclisourcebucket\",\"cloud_provider:aws\",\"account:demo\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:ca-central-1:172597598159:stack/aws-sam-cli-managed-default/f47ebf60-afda-11ea-a1a4-0aaf8b31ab7a\",\"region:ca-central-1\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQI82nrhQAAAAAAAAAYAAAAAEFZZDUtaFFJQUFCbWxLTTNXdlZSVUFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"datadogv15-forwarderstack-lvu-forwarderzipsbucket-eprqhepew4x2\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_cloudformation_logical-id:forwarderzipsbucket\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_cloudformation_stack-name:datadogv15-forwarderstack-lvu0coklo6q4\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-west-2:172597598159:stack/datadogv15-forwarderstack-lvu0coklo6q4/a90a2600-7e66-11ea-803f-0a14cc4f5b48\",\"control:A.9.2.3\",\"region:us-west-2\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQI9nRevwAAAAAAAAAYAAAAAEFZZDUtaFFJQUFEeXhNWXBjUUREamdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"submitscoretolms-dev-serverlessdeploymentbucket-32oyxdcv4vut\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-west-1:172597598159:stack/submitscoretolms-dev/c8703400-040b-11eb-a9a6-066f37a23789\",\"requirement:Security-Management-Process\",\"aws_cloudformation_stack-name:submitscoretolms-dev\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_cloudformation_logical-id:serverlessdeploymentbucket\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"region:us-west-1\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIAW9pnwAAAAAAAAAYAAAAAEFZZDUtaFFJQUFDV3JtRlg0RkszM1FBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221183000,\"mute\":{\"muted\":false},\"resource\":\"dd-bucket-logs-demo\",\"resource_discovery_date\":1681221183000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"team:xuxu\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"terraform.managed:true\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"name:dd-bucket-logs-demo\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIEb7l0AAAAAAAAAAYAAAAAEFZZDUtaFFJQUFEN1k4clh2cHlzZEFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220486000,\"mute\":{\"muted\":false},\"resource\":\"hello-csharp-dev-serverlessdeploymentbucket-k8w7ixh9zxm8\",\"resource_discovery_date\":1681220486000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_cloudformation_logical-id:serverlessdeploymentbucket\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"account:demo\",\"requirement:Data-Protection\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-east-1:172597598159:stack/hello-csharp-dev/aad9a440-92a5-11e9-9be0-0a522351f81e\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"aws_cloudformation_stack-name:hello-csharp-dev\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIK6R4EQAAAAAAAAAYAAAAAEFZZDUtaFFJQUFERDdrbmVEZ2JPY2dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"danton-rodriguez\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIMLEjaAAAAAAAAAAYAAAAAEFZZDUtaFFJQUFBUGJHc2VJQzNKSGdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221183000,\"mute\":{\"muted\":false},\"resource\":\"cron-dev-serverlessdeploymentbucket-jedop14wex9s\",\"resource_discovery_date\":1681221183000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"aws_cloudformation_stack-name:cron-dev\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-east-1:172597598159:stack/cron-dev/b2e752e0-a48c-11e6-b257-50a686e4bb82\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_cloudformation_logical-id:serverlessdeploymentbucket\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"control:1.5\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIMtIoMgAAAAAAAAAYAAAAAEFZZDUtaFFJQUFBc0R6U1phbndGZndBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221183000,\"mute\":{\"muted\":false},\"resource\":\"cron-dev-serverlessdeploymentbucket-jedop14wex9s\",\"resource_discovery_date\":1681221183000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"aws_cloudformation_stack-name:cron-dev\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-east-1:172597598159:stack/cron-dev/b2e752e0-a48c-11e6-b257-50a686e4bb82\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_cloudformation_logical-id:serverlessdeploymentbucket\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"account:demo\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQINLYr_AAAAAAAAAAYAAAAAEFZZDUtaFFJQUFBbWJhS3VoWkJqT3dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220486000,\"mute\":{\"muted\":false},\"resource\":\"hello-extension-dev-serverlessdeploymentbucket-2uwdqh8tv3ri\",\"resource_discovery_date\":1681220486000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQINgTYXgAAAAAAAAAYAAAAAEFZZDUtaFFJQUFDWGpSU3BSUzI2Y3dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221183000,\"mute\":{\"muted\":false},\"resource\":\"access-key-based-archive\",\"resource_discovery_date\":1681221183000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"control:1.5\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIOCXdKAAAAAAAAAAYAAAAAEFZZDUtaFFJQUFBbzRENUdRU1o2N2dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221183000,\"mute\":{\"muted\":false},\"resource\":\"access-key-based-archive\",\"resource_discovery_date\":1681221183000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"account:demo\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIPoQJIAAAAAAAAAAYAAAAAEFZZDUtaFFJQUFCdlUydWlrZ1VSYkFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"datadogv15-forwarderstack-lvu-forwarderzipsbucket-eprqhepew4x2\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_cloudformation_logical-id:forwarderzipsbucket\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_cloudformation_stack-name:datadogv15-forwarderstack-lvu0coklo6q4\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-west-2:172597598159:stack/datadogv15-forwarderstack-lvu0coklo6q4/a90a2600-7e66-11ea-803f-0a14cc4f5b48\",\"control:A.9.2.3\",\"region:us-west-2\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIQY58WgAAAAAAAAAYAAAAAEFZZDUtaFFJQUFBdzVXWC1NMnhTcGdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"submitscoretolms-dev-serverlessdeploymentbucket-32oyxdcv4vut\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-west-1:172597598159:stack/submitscoretolms-dev/c8703400-040b-11eb-a9a6-066f37a23789\",\"aws_cloudformation_stack-name:submitscoretolms-dev\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"aws_cloudformation_logical-id:serverlessdeploymentbucket\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"region:us-west-1\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIRRznEwAAAAAAAAAYAAAAAEFZZDUtaFFJQUFCdDNZTzdCY3VKUndBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"datadogintegrationtest12345-forwa-forwarderbucket-vjqpo8odwcxd\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"aws_cloudformation_stack-name:datadogintegrationtest12345-forwarderstack-1ebhiflbjcts8\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-east-1:172597598159:stack/datadogintegrationtest12345-forwarderstack-1ebhiflbjcts8/17242b50-b127-11ec-ad08-0a3c8f91aaab\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_cloudformation_logical-id:forwarderbucket\",\"control:1.5\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIRz3r3QAAAAAAAAAYAAAAAEFZZDUtaFFJQUFEaDRsaURKRGNKMVFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"datadogintegrationtest12345-forwa-forwarderbucket-vjqpo8odwcxd\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"aws_cloudformation_stack-name:datadogintegrationtest12345-forwarderstack-1ebhiflbjcts8\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-east-1:172597598159:stack/datadogintegrationtest12345-forwarderstack-1ebhiflbjcts8/17242b50-b127-11ec-ad08-0a3c8f91aaab\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_cloudformation_logical-id:forwarderbucket\",\"account:demo\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQISLH0AwAAAAAAAAAYAAAAAEFZZDUtaFFJQUFDRWlMT1MzRTlYc2dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220486000,\"mute\":{\"muted\":false},\"resource\":\"aws-sam-cli-managed-default-samclisourcebucket-x90n87ru57hm\",\"resource_discovery_date\":1681220486000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"aws_cloudformation_stack-name:aws-sam-cli-managed-default\",\"managedstacksource:awssamcli\",\"requirement:Compliance\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"aws_cloudformation_logical-id:samclisourcebucket\",\"cloud_provider:aws\",\"control:1.5\",\"account:demo\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:ca-central-1:172597598159:stack/aws-sam-cli-managed-default/f47ebf60-afda-11ea-a1a4-0aaf8b31ab7a\",\"region:ca-central-1\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIStL4zQAAAAAAAAAYAAAAAEFZZDUtaFFJQUFEMV9TN2FFME84Q1FBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220486000,\"mute\":{\"muted\":false},\"resource\":\"aws-sam-cli-managed-default-samclisourcebucket-x90n87ru57hm\",\"resource_discovery_date\":1681220486000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"aws_cloudformation_stack-name:aws-sam-cli-managed-default\",\"managedstacksource:awssamcli\",\"requirement:Compliance\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"aws_cloudformation_logical-id:samclisourcebucket\",\"cloud_provider:aws\",\"account:demo\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:ca-central-1:172597598159:stack/aws-sam-cli-managed-default/f47ebf60-afda-11ea-a1a4-0aaf8b31ab7a\",\"region:ca-central-1\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQITImHOgAAAAAAAAAYAAAAAEFZZDUtaFFJQUFBYU5FYzVIbjgtWEFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221183000,\"mute\":{\"muted\":false},\"resource\":\"dd-bucket-logs-demo\",\"resource_discovery_date\":1681221183000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"team:xuxu\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"terraform.managed:true\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"name:dd-bucket-logs-demo\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIXNkDawAAAAAAAAAYAAAAAEFZZDUtaFFJQUFEYzdoUlRkZDA2ZEFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220486000,\"mute\":{\"muted\":false},\"resource\":\"hello-csharp-dev-serverlessdeploymentbucket-k8w7ixh9zxm8\",\"resource_discovery_date\":1681220486000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"aws_cloudformation_logical-id:serverlessdeploymentbucket\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"account:demo\",\"requirement:Data-Protection\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-east-1:172597598159:stack/hello-csharp-dev/aad9a440-92a5-11e9-9be0-0a522351f81e\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"aws_cloudformation_stack-name:hello-csharp-dev\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIdr6VrAAAAAAAAAAYAAAAAEFZZDUtaFFJQUFEMDFqQUlYalY4amdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"danton-rodriguez\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-suggFwGgQAAAAAAAAAYAAAAAEFZZDUtc3VnQUFCUHhOQXBGcGd5S1FBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681222221000,\"mute\":{\"muted\":false},\"resource\":\"richard-archive\",\"resource_discovery_date\":1681222221000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"team:cake\",\"cleanup_team:cake_solutions_eng\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"cleanup_subproduct:unknown\",\"region:us-east-1\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"testcloudcustodianremediation:2022-11-20\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"creator:richard.braamburg\",\"cleanup_department:technical_solutions\",\"user:richard.braamburg\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"cleanup_product:unknown\",\"control:1.3\",\"requirement:Data-Protection\",\"cleanup_resource_creator:richard.braamburg\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"cleanup_manager_email:christopher.anslow_datadoghq.com\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"cloudcustodianviolatedpolicy:gather-s3-buckets-older-than-one-year\",\"control:CC6.3\",\"control:CC6.1\",\"cleanup_to_be_deleted:false\"]}},{\"id\":\"AgAAAYd5-sugh-84FQAAAAAAAAAYAAAAAEFZZDUtc3VnQUFEenE0TEpKWHZNZFFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221637000,\"mute\":{\"muted\":false},\"resource\":\"lambda-artifacts-a4b4638b9a05cbc5\",\"resource_discovery_date\":1681221637000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"testcloudcustodianremediation:2022-11-20\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"region:eu-west-1\",\"control:1.5\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"cloudcustodianviolatedpolicy:gather-s3-buckets-older-than-one-year\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-sugihA83wAAAAAAAAAYAAAAAEFZZDUtc3VnQUFBZXdxXzhsMDc1TlFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221637000,\"mute\":{\"muted\":false},\"resource\":\"lambda-artifacts-a4b4638b9a05cbc5\",\"resource_discovery_date\":1681221637000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"testcloudcustodianremediation:2022-11-20\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"region:eu-west-1\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"cloudcustodianviolatedpolicy:gather-s3-buckets-older-than-one-year\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-sugjpN_fwAAAAAAAAAYAAAAAEFZZDUtc3VnQUFEemwyRVptRDdIN2dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221444000,\"mute\":{\"muted\":false},\"resource\":\"lambda-artifacts-e69cc543742f2d70\",\"resource_discovery_date\":1681221444000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"region:ap-northeast-2\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-sugkBgSAwAAAAAAAAAYAAAAAEFZZDUtc3VnQUFCTncxbGstODBOcVFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220416000,\"mute\":{\"muted\":false},\"resource\":\"k9-cloudwatch-data\",\"resource_discovery_date\":1681220416000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"cleanup_department:engineering\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"cleanup_subproduct:security_monitoring\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"user:bjorn.marschollek\",\"control:1.5\",\"cleanup_manager_email:alexandre.trufanow_datadoghq.com\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"cleanup_product:security_monitoring\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"cleanup_team:cloud-siem-backend\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"cleanup_resource_creator:bjorn.marschollek\",\"control:CC6.3\",\"control:CC6.1\",\"cleanup_to_be_deleted:false\"]}},{\"id\":\"AgAAAYd5-sugkjkWzQAAAAAAAAAYAAAAAEFZZDUtc3VnQUFEWWZXVFQtTjlTU0FBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220416000,\"mute\":{\"muted\":false},\"resource\":\"k9-cloudwatch-data\",\"resource_discovery_date\":1681220416000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"cleanup_department:engineering\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"cleanup_subproduct:security_monitoring\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"user:bjorn.marschollek\",\"cleanup_manager_email:alexandre.trufanow_datadoghq.com\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"cleanup_product:security_monitoring\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"cleanup_team:cloud-siem-backend\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"cleanup_resource_creator:bjorn.marschollek\",\"control:CC6.3\",\"control:CC6.1\",\"cleanup_to_be_deleted:false\"]}},{\"id\":\"AgAAAYd5-sugmxTVUgAAAAAAAAAYAAAAAEFZZDUtc3VnQUFDMVlJaFRkd0pRQkFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221637000,\"mute\":{\"muted\":false},\"resource\":\"amy-node-with-forwarder-serverlessdeploymentbuck-7abzwgnyw71n\",\"resource_discovery_date\":1681221637000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"aws_cloudformation_stack-name:amy-node-with-forwarder-dev\",\"framework:gdpr\",\"dd_preserve_stack:true\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"control:25.2\",\"requirement:Workforce-Security\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:sa-east-1:601427279990:stack/amy-node-with-forwarder-dev/0c7c1490-77f3-11ed-97ca-0693a9516c70\",\"security:compliance\",\"control:164.312-a-1\",\"aws_cloudformation_logical-id:serverlessdeploymentbucket\",\"requirement:Least-Privileged-Access\",\"region:sa-east-1\",\"cloud_provider:aws\",\"stage:dev\",\"control:1.5\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-sugnTXaHAAAAAAAAAAYAAAAAEFZZDUtc3VnQUFBMVVNZ0Q2S2F5aWdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221637000,\"mute\":{\"muted\":false},\"resource\":\"amy-node-with-forwarder-serverlessdeploymentbuck-7abzwgnyw71n\",\"resource_discovery_date\":1681221637000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"aws_cloudformation_stack-name:amy-node-with-forwarder-dev\",\"framework:gdpr\",\"dd_preserve_stack:true\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"control:25.2\",\"requirement:Workforce-Security\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:sa-east-1:601427279990:stack/amy-node-with-forwarder-dev/0c7c1490-77f3-11ed-97ca-0693a9516c70\",\"security:compliance\",\"control:164.312-a-1\",\"aws_cloudformation_logical-id:serverlessdeploymentbucket\",\"requirement:Least-Privileged-Access\",\"region:sa-east-1\",\"cloud_provider:aws\",\"stage:dev\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-sugnZA74AAAAAAAAAAYAAAAAEFZZDUtc3VnQUFCbDFlNWRsS2R2TVFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221444000,\"mute\":{\"muted\":false},\"resource\":\"deukhee-krse\",\"resource_discovery_date\":1681221444000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"region:ap-northeast-2\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"control:1.5\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-sugn7FAqgAAAAAAAAAYAAAAAEFZZDUtc3VnQUFESjZEX01VVGZmYmdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221444000,\"mute\":{\"muted\":false},\"resource\":\"deukhee-krse\",\"resource_discovery_date\":1681221444000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"region:ap-northeast-2\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-sugoY1UnAAAAAAAAAAYAAAAAEFZZDUtc3VnQUFCemRsUHAwRmVuQUFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220654000,\"mute\":{\"muted\":false},\"resource\":\"logs.roboll.use.datadog.green\",\"resource_discovery_date\":1681220654000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"team:compute\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"kubernetescluster:roboll\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"testcloudcustodianremediation:2022-11-20\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"name:logs.roboll.use.datadog.green\",\"control:1.5\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"cloudcustodianviolatedpolicy:gather-s3-buckets-older-than-one-year\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-sugo65ZZgAAAAAAAAAYAAAAAEFZZDUtc3VnQUFDOEFMYnp3VmQyTWdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220654000,\"mute\":{\"muted\":false},\"resource\":\"logs.roboll.use.datadog.green\",\"resource_discovery_date\":1681220654000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"team:compute\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"kubernetescluster:roboll\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"testcloudcustodianremediation:2022-11-20\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"name:logs.roboll.use.datadog.green\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"cloudcustodianviolatedpolicy:gather-s3-buckets-older-than-one-year\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-sugq5rXEgAAAAAAAAAYAAAAAEFZZDUtc3VnQUFBR1lSdllsaDN5aFFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220415000,\"mute\":{\"muted\":false},\"resource\":\"bryce-kahle-kops-state-store\",\"resource_discovery_date\":1681220415000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"cleanup_department:engineering\",\"cleanup_product:cloud_platform\",\"framework:gdpr\",\"cleanup_resource_creator:bryce.kahle\",\"control:164.308-a-3-i\",\"cleanup_team:ebpf_platform\",\"requirement:Compliance\",\"cleanup_manager_email:sunny.klair_datadoghq.com\",\"region:us-east-1\",\"aws_account:601427279990\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"account:sandbox\",\"user:bryce.kahle\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"cleanup_subproduct:networks\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\",\"cleanup_to_be_deleted:false\"]}},{\"id\":\"AgAAAYd5-sugsLdrZgAAAAAAAAAYAAAAAEFZZDUtc3VnQUFDU282WjZtMTRic1FBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220416000,\"mute\":{\"muted\":false},\"resource\":\"pivotal-cloud-foundry-pcfbase-8-pcfdropletsbucket-1ke67cg579bwg\",\"resource_discovery_date\":1681220416000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"region:ap-northeast-1\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"control:1.5\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-sugsthwMAAAAAAAAAAYAAAAAEFZZDUtc3VnQUFBRHhiMlJtcUJ1a1FBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220416000,\"mute\":{\"muted\":false},\"resource\":\"pivotal-cloud-foundry-pcfbase-8-pcfdropletsbucket-1ke67cg579bwg\",\"resource_discovery_date\":1681220416000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"region:ap-northeast-1\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-sugsyymjwAAAAAAAAAYAAAAAEFZZDUtc3VnQUFENGdOcTJGQlFPNFFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220654000,\"mute\":{\"muted\":false},\"resource\":\"python38-forwardercache\",\"resource_discovery_date\":1681220654000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"user:mandy.kopelke\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"cleanup_subproduct:unknown\",\"region:us-east-1\",\"aws_account:601427279990\",\"cleanup_team:cake_t2\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"creayor:mandy\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"cleanup_manager_email:jan.lazaro_datadoghq.com\",\"control:164.312-a-1\",\"cleanup_department:technical_solutions\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"cleanup_product:unknown\",\"cleanup_resource_creator:mandy.kopelke\",\"control:1.5\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"cloudcustodianviolatedpolicy:gather-s3-buckets-older-than-one-year\",\"control:CC6.3\",\"control:CC6.1\",\"cleanup_to_be_deleted:false\"]}},{\"id\":\"AgAAAYd5-sugtU2rWQAAAAAAAAAYAAAAAEFZZDUtc3VnQUFBWjBJbjNZU2ZQWUFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220654000,\"mute\":{\"muted\":false},\"resource\":\"python38-forwardercache\",\"resource_discovery_date\":1681220654000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"user:mandy.kopelke\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"cleanup_subproduct:unknown\",\"region:us-east-1\",\"aws_account:601427279990\",\"cleanup_team:cake_t2\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"creayor:mandy\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"cleanup_manager_email:jan.lazaro_datadoghq.com\",\"control:164.312-a-1\",\"cleanup_department:technical_solutions\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"cleanup_product:unknown\",\"cleanup_resource_creator:mandy.kopelke\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"cloudcustodianviolatedpolicy:gather-s3-buckets-older-than-one-year\",\"control:CC6.3\",\"control:CC6.1\",\"cleanup_to_be_deleted:false\"]}},{\"id\":\"AgAAAYd5-suguWmmQwAAAAAAAAAYAAAAAEFZZDUtc3VnQUFBSlBZUVZFRWlRbWdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221637000,\"mute\":{\"muted\":false},\"resource\":\"elasticbeanstalk-ap-northeast-1-601427279990\",\"resource_discovery_date\":1681221637000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"cleanup_resource_creator:yong.zuo\",\"region:ap-northeast-1\",\"cleanup_team:cake_solutions_eng\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"cleanup_manager_email:nobumoto.magome_datadoghq.com\",\"requirement:Compliance\",\"cleanup_subproduct:unknown\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"user:yong.zuo\",\"framework:pci\",\"account:sandbox\",\"testcloudcustodianremediation:2022-11-20\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"cleanup_department:technical_solutions\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"cleanup_product:unknown\",\"control:1.5\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"cloudcustodianviolatedpolicy:gather-s3-buckets-older-than-one-year\",\"control:CC6.3\",\"control:CC6.1\",\"cleanup_to_be_deleted:false\"]}},{\"id\":\"AgAAAYd5-sugu4qrDQAAAAAAAAAYAAAAAEFZZDUtc3VnQUFCcDFOeHZjejFtS2dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221637000,\"mute\":{\"muted\":false},\"resource\":\"elasticbeanstalk-ap-northeast-1-601427279990\",\"resource_discovery_date\":1681221637000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"cleanup_resource_creator:yong.zuo\",\"region:ap-northeast-1\",\"cleanup_team:cake_solutions_eng\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"cleanup_manager_email:nobumoto.magome_datadoghq.com\",\"requirement:Compliance\",\"cleanup_subproduct:unknown\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"user:yong.zuo\",\"framework:pci\",\"account:sandbox\",\"testcloudcustodianremediation:2022-11-20\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"cleanup_department:technical_solutions\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"cleanup_product:unknown\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"cloudcustodianviolatedpolicy:gather-s3-buckets-older-than-one-year\",\"control:CC6.3\",\"control:CC6.1\",\"cleanup_to_be_deleted:false\"]}},{\"id\":\"AgAAAYd5-sugvVI1EQAAAAAAAAAYAAAAAEFZZDUtc3VnQUFEaVZzeE05R0Q4dEFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220415000,\"mute\":{\"muted\":false},\"resource\":\"kevin-tokyo\",\"resource_discovery_date\":1681220415000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"region:ap-northeast-1\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"cleanup_subproduct:unknown\",\"cleanup_resource_creator:kevin.huang\",\"cleanup_manager_email:ben.gobel_datadoghq.com\",\"aws_account:601427279990\",\"cleanup_team:cake_t2\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"testcloudcustodianremediation:2022-11-20\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"cleanup_department:technical_solutions\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"cleanup_product:unknown\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"user:kevin.huang\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"cloudcustodianviolatedpolicy:gather-s3-buckets-older-than-one-year\",\"control:CC6.3\",\"control:CC6.1\",\"cleanup_to_be_deleted:false\"]}}],\"meta\":{\"page\":{\"total_filtered_count\":445536,\"cursor\":\"eyJhZnRlciI6IkFnQUFBWWQ1LXN1Z3ZWSTFFUUFBQUFBQUFBQVlBQUFBQUVGWlpEVXRjM1ZuUVVGRWFWWnplRTA1UjBRNGRFRkJRUUFBQUNRQUFBQUFNREU0TnpkaE1ERXRNRFJpWVMwME5UWmxMV0ZtTXpNdE5USXhObU5rTmpWbE5ETXoiLCJ2YWx1ZXMiOlsiY3JpdGljYWwiXX0=\"},\"snapshot_timestamp\":1681388763514}}", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 13 Apr 2023 12:26:02 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/posture_management/findings" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"AgAAAYd59gjghzF52gAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFCRTRvV1lFeEo4SlFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"dd-chaos-cloud-xuxu-eu-north-1\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"region:eu-north-1\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjgliGE4AAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFCaUpXYWk4bGpBSUFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"backups.vault.us1.datadog.blue\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"team:compute\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"vault_cluster:vault-us1-datadog-blue\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"name:backups.vault.us1.datadog.blue\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjgmf4YVgAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFCbllxT0M0S2RUeWdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"datadog-threat-intelligence\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"team:defense\",\"terraform.managed:true\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"name:datadog-threat-intelligence\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjgoNVtoQAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFDSXBGUGJtR1gtVkFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220976000,\"mute\":{\"muted\":false},\"resource\":\"datadog-aws-config-xuxu\",\"resource_discovery_date\":1681220976000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"team:infrasec-dev\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"terraform.module:config\",\"cloud_provider:aws\",\"terraform.managed:true\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"name:datadog-aws-config-xuxu\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjgyMG0cQAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFBRVRsYnBXeHhwWndBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"binaries.datadog.blue\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"team:infrasec-dev\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"name:binaries.datadog.blue\",\"terraform.managed:true\",\"control:1.5\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjgyuK5OwAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFBc1JwVkpYa1R3bGdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"binaries.datadog.blue\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"team:infrasec-dev\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"name:binaries.datadog.blue\",\"terraform.managed:true\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjg3R4HtQAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFBeVZYUnhKS3F2b1FBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"dd-chaos-cloud-xuxu-eu-north-1\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"region:eu-north-1\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"control:1.5\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjg3z8MfwAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFBOVAyaFR2Yi1hUkFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"dd-chaos-cloud-xuxu-eu-north-1\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"region:eu-north-1\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjg4TuiewAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFBaHhHNG9zS3ZVbGdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"backups.vault.us1.datadog.blue\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"team:compute\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"vault_cluster:vault-us1-datadog-blue\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"name:backups.vault.us1.datadog.blue\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjg6--LPAAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFESzVXLVhuTXJIcEFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220976000,\"mute\":{\"muted\":false},\"resource\":\"datadog-aws-config-xuxu\",\"resource_discovery_date\":1681220976000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"team:infrasec-dev\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"requirement:Least-Privileged-Access\",\"terraform.module:config\",\"cloud_provider:aws\",\"terraform.managed:true\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"name:datadog-aws-config-xuxu\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjg7-qmMQAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFEdXVFZGRkNmVJOHdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"datadog-threat-intelligence\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"team:defense\",\"terraform.managed:true\",\"control:1.5\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"name:datadog-threat-intelligence\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjg8guq-wAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFENTQwVGUtS3BJV3dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"datadog-threat-intelligence\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"team:defense\",\"terraform.managed:true\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"name:datadog-threat-intelligence\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjgJ7sI-wAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFEQy16NUdtVXFaWndBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"binaries.datadog.blue\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"team:infrasec-dev\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"name:binaries.datadog.blue\",\"terraform.managed:true\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjgNygwVgAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFDblZ6bDhERml2RkFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"backups.vault.us1.datadog.blue\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"team:compute\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"vault_cluster:vault-us1-datadog-blue\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"name:backups.vault.us1.datadog.blue\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"control:1.5\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjgOUk1IAAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFBa2xFVjhvTVNJMWdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"backups.vault.us1.datadog.blue\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"team:compute\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"vault_cluster:vault-us1-datadog-blue\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"name:backups.vault.us1.datadog.blue\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjgPBdcPwAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFBaUFZdXY3N3d1UUFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"dd-chaos-cloud-xuxu-eu-north-1\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"region:eu-north-1\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjgQdwZFwAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFDdWNlWTlFc1BKZ2dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220976000,\"mute\":{\"muted\":false},\"resource\":\"datadog-aws-config-xuxu\",\"resource_discovery_date\":1681220976000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"team:infrasec-dev\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"terraform.module:config\",\"cloud_provider:aws\",\"terraform.managed:true\",\"control:1.5\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"name:datadog-aws-config-xuxu\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjgQ_0d4QAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFDcW9lcE1FSG5nWVFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220976000,\"mute\":{\"muted\":false},\"resource\":\"datadog-aws-config-xuxu\",\"resource_discovery_date\":1681220976000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"team:infrasec-dev\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"terraform.module:config\",\"cloud_provider:aws\",\"terraform.managed:true\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"name:datadog-aws-config-xuxu\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjgTuP6uwAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFCRWJ6QWtEcmdfM3dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"datadog-threat-intelligence\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"team:defense\",\"terraform.managed:true\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"name:datadog-threat-intelligence\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd59gjgctUmlgAAAAAAAAAYAAAAAEFZZDU5Z2pnQUFESUZpMDFHUFpTOXdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220975000,\"mute\":{\"muted\":false},\"resource\":\"binaries.datadog.blue\",\"resource_discovery_date\":1681220975000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"team:infrasec-dev\",\"aws_account:013910733512\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"name:binaries.datadog.blue\",\"terraform.managed:true\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCArLFvcgAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFEM3pIZEluRFZqWVFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"dd-chaos-cloud-datadog-security-research-ap-southeast-1\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"region:ap-southeast-1\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_account:677301038893\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCAtUAnMwAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFBakZJclItaWdSX3dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"datadog-forwarder-for-guarddog-forwarderbucket-1ptvy5l49q6q4\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:eu-west-3:677301038893:stack/datadog-forwarder-for-guarddog/70fca8e0-ad0d-11ed-8f5c-068de8cf5e7e\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"region:eu-west-3\",\"aws_cloudformation_logical-id:forwarderbucket\",\"aws_account:677301038893\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"aws_cloudformation_stack-name:datadog-forwarder-for-guarddog\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCAt_HxPwAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFER2VZQm0tdVdrbmdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"acacascsaascascascascsacsa\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_account:677301038893\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCA01wAzQAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFDbG1hc3Y3YUJ1YVFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"dd-chaos-cloud-datadog-security-research-ap-northeast-2\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"region:ap-northeast-2\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_account:677301038893\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCA2v8NygAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFCVjc5Tzg4Q3VPMEFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"dd-cspm-remote-state-bucket\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"owner:cspm-pde-team\",\"aws_account:677301038893\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCA98uNDQAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFEZ2trSEJ2TEVXU0FBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"dd-chaos-cloud-datadog-security-research-ap-southeast-1\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"framework:iso-27001\",\"region:ap-southeast-1\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_account:677301038893\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCACyy1DgAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFESVpINEtHWEpZU1FBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"datadog-forwarder-for-guarddog-forwarderbucket-1ptvy5l49q6q4\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"requirement:Security-Management-Process\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:eu-west-3:677301038893:stack/datadog-forwarder-for-guarddog/70fca8e0-ad0d-11ed-8f5c-068de8cf5e7e\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"region:eu-west-3\",\"aws_cloudformation_logical-id:forwarderbucket\",\"control:1.5\",\"aws_account:677301038893\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"aws_cloudformation_stack-name:datadog-forwarder-for-guarddog\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCADU252AAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFDN3Y0U1pXSExCS3dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"datadog-forwarder-for-guarddog-forwarderbucket-1ptvy5l49q6q4\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"requirement:Security-Management-Process\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:eu-west-3:677301038893:stack/datadog-forwarder-for-guarddog/70fca8e0-ad0d-11ed-8f5c-068de8cf5e7e\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"region:eu-west-3\",\"aws_cloudformation_logical-id:forwarderbucket\",\"aws_account:677301038893\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"aws_cloudformation_stack-name:datadog-forwarder-for-guarddog\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCADd5_GgAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFCZ1pHZHZKcFozcVFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"acacascsaascascascascsacsa\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"control:1.5\",\"aws_account:677301038893\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCAD_-D5AAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFDMmVPRXB1eHVNSUFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"acacascsaascascascascsacsa\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_account:677301038893\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCAHnYeaAAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFBMFc4M3hRRGNIYWdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"dd-chaos-cloud-datadog-security-research-ap-northeast-2\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"region:ap-northeast-2\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_account:677301038893\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCAJhkrZQAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFBbE9la2VkeG5FVFFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"dd-cspm-remote-state-bucket\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"owner:cspm-pde-team\",\"aws_account:677301038893\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCATbga6AAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFCOFNTOWpnakZvaUFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"dd-chaos-cloud-datadog-security-research-ap-southeast-1\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"region:ap-southeast-1\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"control:1.5\",\"aws_account:677301038893\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCAT9kfsgAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFEeEpzeDRMUXJ2MUFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"dd-chaos-cloud-datadog-security-research-ap-southeast-1\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"region:ap-southeast-1\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_account:677301038893\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCAaiYJmAAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFCcENodlFBX29IZlFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"datadog-forwarder-for-guarddog-forwarderbucket-1ptvy5l49q6q4\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"requirement:Security-Management-Process\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:eu-west-3:677301038893:stack/datadog-forwarder-for-guarddog/70fca8e0-ad0d-11ed-8f5c-068de8cf5e7e\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"region:eu-west-3\",\"aws_cloudformation_logical-id:forwarderbucket\",\"aws_account:677301038893\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"aws_cloudformation_stack-name:datadog-forwarder-for-guarddog\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCAbNfTpAAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFBUlFYWXgteGxzTkFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"acacascsaascascascascsacsa\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_account:677301038893\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCAdGKsQwAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFEVkFGLWJXQm0yV3dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"dd-chaos-cloud-datadog-security-research-ap-northeast-2\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"region:ap-northeast-2\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"control:1.5\",\"aws_account:677301038893\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCAdoOxDQAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFCZVhEdDNTTmh0NlFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"dd-chaos-cloud-datadog-security-research-ap-northeast-2\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"region:ap-northeast-2\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_account:677301038893\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCAfAW5QAAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFBNHhzWXZEUHBLMVFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"dd-cspm-remote-state-bucket\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"control:1.5\",\"owner:cspm-pde-team\",\"aws_account:677301038893\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-gCAfia-CgAAAAAAAAAYAAAAAEFZZDUtZ0NBQUFEb2hILW9zdFRhaGdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220222000,\"mute\":{\"muted\":false},\"resource\":\"dd-cspm-remote-state-bucket\",\"resource_discovery_date\":1681220222000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"owner:cspm-pde-team\",\"aws_account:677301038893\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"account:security-research\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIiqK51wAAAAAAAAAYAAAAAEFZZDUtaFFJQUFDSzVQZ1g3bUdSdFFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220486000,\"mute\":{\"muted\":false},\"resource\":\"hello-extension-dev-serverlessdeploymentbucket-2uwdqh8tv3ri\",\"resource_discovery_date\":1681220486000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"control:1.5\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIjMO-oQAAAAAAAAAYAAAAAEFZZDUtaFFJQUFDcElnc1Q3OGJzeXdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220486000,\"mute\":{\"muted\":false},\"resource\":\"hello-extension-dev-serverlessdeploymentbucket-2uwdqh8tv3ri\",\"resource_discovery_date\":1681220486000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"account:demo\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIj6p38gAAAAAAAAAYAAAAAEFZZDUtaFFJQUFCVXdtbFNldHBwbGdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221183000,\"mute\":{\"muted\":false},\"resource\":\"cron-dev-serverlessdeploymentbucket-jedop14wex9s\",\"resource_discovery_date\":1681221183000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"aws_cloudformation_stack-name:cron-dev\",\"framework:iso-27001\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-east-1:172597598159:stack/cron-dev/b2e752e0-a48c-11e6-b257-50a686e4bb82\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_cloudformation_logical-id:serverlessdeploymentbucket\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIlHCW-wAAAAAAAAAYAAAAAEFZZDUtaFFJQUFCYUFqWEt4anFuR2dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"datadogv15-forwarderstack-lvu-forwarderzipsbucket-eprqhepew4x2\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_cloudformation_logical-id:forwarderzipsbucket\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_cloudformation_stack-name:datadogv15-forwarderstack-lvu0coklo6q4\",\"control:1.5\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-west-2:172597598159:stack/datadogv15-forwarderstack-lvu0coklo6q4/a90a2600-7e66-11ea-803f-0a14cc4f5b48\",\"control:A.9.2.3\",\"region:us-west-2\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIlP4s6AAAAAAAAAAYAAAAAEFZZDUtaFFJQUFEWW82bTZNTlJaS2dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221183000,\"mute\":{\"muted\":false},\"resource\":\"access-key-based-archive\",\"resource_discovery_date\":1681221183000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIlpGbxQAAAAAAAAAYAAAAAEFZZDUtaFFJQUFEb3h2aDZQazctNWdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"datadogv15-forwarderstack-lvu-forwarderzipsbucket-eprqhepew4x2\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_cloudformation_logical-id:forwarderzipsbucket\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_cloudformation_stack-name:datadogv15-forwarderstack-lvu0coklo6q4\",\"account:demo\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-west-2:172597598159:stack/datadogv15-forwarderstack-lvu0coklo6q4/a90a2600-7e66-11ea-803f-0a14cc4f5b48\",\"control:A.9.2.3\",\"region:us-west-2\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIl3sKNQAAAAAAAAAYAAAAAEFZZDUtaFFJQUFEb1lUY01CNHF2dXdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"submitscoretolms-dev-serverlessdeploymentbucket-32oyxdcv4vut\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-west-1:172597598159:stack/submitscoretolms-dev/c8703400-040b-11eb-a9a6-066f37a23789\",\"requirement:Security-Management-Process\",\"aws_cloudformation_stack-name:submitscoretolms-dev\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_cloudformation_logical-id:serverlessdeploymentbucket\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"control:1.5\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"region:us-west-1\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQImZwO_wAAAAAAAAAYAAAAAEFZZDUtaFFJQUFBMUxsWEZENjNFOEFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"submitscoretolms-dev-serverlessdeploymentbucket-32oyxdcv4vut\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-west-1:172597598159:stack/submitscoretolms-dev/c8703400-040b-11eb-a9a6-066f37a23789\",\"requirement:Security-Management-Process\",\"aws_cloudformation_stack-name:submitscoretolms-dev\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_cloudformation_logical-id:serverlessdeploymentbucket\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"account:demo\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"region:us-west-1\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIonYVFQAAAAAAAAAYAAAAAEFZZDUtaFFJQUFER1NnX0ZDb0FsbkFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221183000,\"mute\":{\"muted\":false},\"resource\":\"dd-bucket-logs-demo\",\"resource_discovery_date\":1681221183000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"team:xuxu\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"terraform.managed:true\",\"control:1.5\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"name:dd-bucket-logs-demo\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIpBY7nQAAAAAAAAAYAAAAAEFZZDUtaFFJQUFCODBRd2dLSmc4VndBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"datadogintegrationtest12345-forwa-forwarderbucket-vjqpo8odwcxd\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"framework:gdpr\",\"aws_cloudformation_stack-name:datadogintegrationtest12345-forwarderstack-1ebhiflbjcts8\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-east-1:172597598159:stack/datadogintegrationtest12345-forwarderstack-1ebhiflbjcts8/17242b50-b127-11ec-ad08-0a3c8f91aaab\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_cloudformation_logical-id:forwarderbucket\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIpJcZ3wAAAAAAAAAYAAAAAEFZZDUtaFFJQUFCclkyVTNRN2RIOXdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221183000,\"mute\":{\"muted\":false},\"resource\":\"dd-bucket-logs-demo\",\"resource_discovery_date\":1681221183000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"team:xuxu\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"terraform.managed:true\",\"account:demo\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"name:dd-bucket-logs-demo\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIp6tIjQAAAAAAAAAYAAAAAEFZZDUtaFFJQUFBbEhCeDBBMkZQdFFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220486000,\"mute\":{\"muted\":false},\"resource\":\"aws-sam-cli-managed-default-samclisourcebucket-x90n87ru57hm\",\"resource_discovery_date\":1681220486000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"aws_cloudformation_stack-name:aws-sam-cli-managed-default\",\"managedstacksource:awssamcli\",\"requirement:Compliance\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"aws_cloudformation_logical-id:samclisourcebucket\",\"cloud_provider:aws\",\"account:demo\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:ca-central-1:172597598159:stack/aws-sam-cli-managed-default/f47ebf60-afda-11ea-a1a4-0aaf8b31ab7a\",\"region:ca-central-1\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIssWRRgAAAAAAAAAYAAAAAEFZZDUtaFFJQUFCbndzejNxd0prd2dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220486000,\"mute\":{\"muted\":false},\"resource\":\"hello-csharp-dev-serverlessdeploymentbucket-k8w7ixh9zxm8\",\"resource_discovery_date\":1681220486000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_cloudformation_logical-id:serverlessdeploymentbucket\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"control:1.5\",\"account:demo\",\"requirement:Data-Protection\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-east-1:172597598159:stack/hello-csharp-dev/aad9a440-92a5-11e9-9be0-0a522351f81e\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"aws_cloudformation_stack-name:hello-csharp-dev\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQItOaWEAAAAAAAAAAYAAAAAEFZZDUtaFFJQUFEaUwtRHJrNVVZRUFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220486000,\"mute\":{\"muted\":false},\"resource\":\"hello-csharp-dev-serverlessdeploymentbucket-k8w7ixh9zxm8\",\"resource_discovery_date\":1681220486000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_cloudformation_logical-id:serverlessdeploymentbucket\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"account:demo\",\"control:1.3\",\"requirement:Data-Protection\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-east-1:172597598159:stack/hello-csharp-dev/aad9a440-92a5-11e9-9be0-0a522351f81e\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"aws_cloudformation_stack-name:hello-csharp-dev\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIzKsjhwAAAAAAAAAYAAAAAEFZZDUtaFFJQUFBbmZuNnVLdm4wZ3dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"danton-rodriguez\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"control:1.5\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIzswoUQAAAAAAAAAYAAAAAEFZZDUtaFFJQUFDOW9SQ3FGOHFRYVFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"danton-rodriguez\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"account:demo\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQI2sSVjQAAAAAAAAAYAAAAAEFZZDUtaFFJQUFEeFcyNXZwTVE3cndBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221183000,\"mute\":{\"muted\":false},\"resource\":\"cron-dev-serverlessdeploymentbucket-jedop14wex9s\",\"resource_discovery_date\":1681221183000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"aws_cloudformation_stack-name:cron-dev\",\"framework:iso-27001\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-east-1:172597598159:stack/cron-dev/b2e752e0-a48c-11e6-b257-50a686e4bb82\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"aws_cloudformation_logical-id:serverlessdeploymentbucket\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQI4BhKgwAAAAAAAAAYAAAAAEFZZDUtaFFJQUFEVUZfcklQUHV1RFFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221183000,\"mute\":{\"muted\":false},\"resource\":\"access-key-based-archive\",\"resource_discovery_date\":1681221183000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQI6ZwOYQAAAAAAAAAYAAAAAEFZZDUtaFFJQUFCYVYtWmRXd0xlM2dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220486000,\"mute\":{\"muted\":false},\"resource\":\"hello-extension-dev-serverlessdeploymentbucket-2uwdqh8tv3ri\",\"resource_discovery_date\":1681220486000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQI7zBZOAAAAAAAAAAYAAAAAEFZZDUtaFFJQUFBdjNTV2pEUHRPcEFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"datadogintegrationtest12345-forwa-forwarderbucket-vjqpo8odwcxd\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"aws_cloudformation_stack-name:datadogintegrationtest12345-forwarderstack-1ebhiflbjcts8\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-east-1:172597598159:stack/datadogintegrationtest12345-forwarderstack-1ebhiflbjcts8/17242b50-b127-11ec-ad08-0a3c8f91aaab\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_cloudformation_logical-id:forwarderbucket\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQI8sVmKAAAAAAAAAAYAAAAAEFZZDUtaFFJQUFDMEZrMjhubnNMNndBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220486000,\"mute\":{\"muted\":false},\"resource\":\"aws-sam-cli-managed-default-samclisourcebucket-x90n87ru57hm\",\"resource_discovery_date\":1681220486000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"aws_cloudformation_stack-name:aws-sam-cli-managed-default\",\"managedstacksource:awssamcli\",\"requirement:Compliance\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"aws_cloudformation_logical-id:samclisourcebucket\",\"cloud_provider:aws\",\"account:demo\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:ca-central-1:172597598159:stack/aws-sam-cli-managed-default/f47ebf60-afda-11ea-a1a4-0aaf8b31ab7a\",\"region:ca-central-1\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQI82nrhQAAAAAAAAAYAAAAAEFZZDUtaFFJQUFCbWxLTTNXdlZSVUFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"datadogv15-forwarderstack-lvu-forwarderzipsbucket-eprqhepew4x2\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_cloudformation_logical-id:forwarderzipsbucket\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_cloudformation_stack-name:datadogv15-forwarderstack-lvu0coklo6q4\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-west-2:172597598159:stack/datadogv15-forwarderstack-lvu0coklo6q4/a90a2600-7e66-11ea-803f-0a14cc4f5b48\",\"control:A.9.2.3\",\"region:us-west-2\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQI9nRevwAAAAAAAAAYAAAAAEFZZDUtaFFJQUFEeXhNWXBjUUREamdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"submitscoretolms-dev-serverlessdeploymentbucket-32oyxdcv4vut\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-west-1:172597598159:stack/submitscoretolms-dev/c8703400-040b-11eb-a9a6-066f37a23789\",\"requirement:Security-Management-Process\",\"aws_cloudformation_stack-name:submitscoretolms-dev\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_cloudformation_logical-id:serverlessdeploymentbucket\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"region:us-west-1\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIAW9pnwAAAAAAAAAYAAAAAEFZZDUtaFFJQUFDV3JtRlg0RkszM1FBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221183000,\"mute\":{\"muted\":false},\"resource\":\"dd-bucket-logs-demo\",\"resource_discovery_date\":1681221183000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"team:xuxu\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"terraform.managed:true\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"name:dd-bucket-logs-demo\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIEb7l0AAAAAAAAAAYAAAAAEFZZDUtaFFJQUFEN1k4clh2cHlzZEFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220486000,\"mute\":{\"muted\":false},\"resource\":\"hello-csharp-dev-serverlessdeploymentbucket-k8w7ixh9zxm8\",\"resource_discovery_date\":1681220486000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_cloudformation_logical-id:serverlessdeploymentbucket\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"account:demo\",\"requirement:Data-Protection\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-east-1:172597598159:stack/hello-csharp-dev/aad9a440-92a5-11e9-9be0-0a522351f81e\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"aws_cloudformation_stack-name:hello-csharp-dev\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIK6R4EQAAAAAAAAAYAAAAAEFZZDUtaFFJQUFERDdrbmVEZ2JPY2dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"danton-rodriguez\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIMLEjaAAAAAAAAAAYAAAAAEFZZDUtaFFJQUFBUGJHc2VJQzNKSGdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221183000,\"mute\":{\"muted\":false},\"resource\":\"cron-dev-serverlessdeploymentbucket-jedop14wex9s\",\"resource_discovery_date\":1681221183000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"aws_cloudformation_stack-name:cron-dev\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-east-1:172597598159:stack/cron-dev/b2e752e0-a48c-11e6-b257-50a686e4bb82\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_cloudformation_logical-id:serverlessdeploymentbucket\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"control:1.5\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIMtIoMgAAAAAAAAAYAAAAAEFZZDUtaFFJQUFBc0R6U1phbndGZndBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221183000,\"mute\":{\"muted\":false},\"resource\":\"cron-dev-serverlessdeploymentbucket-jedop14wex9s\",\"resource_discovery_date\":1681221183000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"aws_cloudformation_stack-name:cron-dev\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-east-1:172597598159:stack/cron-dev/b2e752e0-a48c-11e6-b257-50a686e4bb82\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_cloudformation_logical-id:serverlessdeploymentbucket\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"account:demo\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQINLYr_AAAAAAAAAAYAAAAAEFZZDUtaFFJQUFBbWJhS3VoWkJqT3dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220486000,\"mute\":{\"muted\":false},\"resource\":\"hello-extension-dev-serverlessdeploymentbucket-2uwdqh8tv3ri\",\"resource_discovery_date\":1681220486000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQINgTYXgAAAAAAAAAYAAAAAEFZZDUtaFFJQUFDWGpSU3BSUzI2Y3dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221183000,\"mute\":{\"muted\":false},\"resource\":\"access-key-based-archive\",\"resource_discovery_date\":1681221183000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"control:1.5\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIOCXdKAAAAAAAAAAYAAAAAEFZZDUtaFFJQUFBbzRENUdRU1o2N2dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221183000,\"mute\":{\"muted\":false},\"resource\":\"access-key-based-archive\",\"resource_discovery_date\":1681221183000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"account:demo\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIPoQJIAAAAAAAAAAYAAAAAEFZZDUtaFFJQUFCdlUydWlrZ1VSYkFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"datadogv15-forwarderstack-lvu-forwarderzipsbucket-eprqhepew4x2\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_cloudformation_logical-id:forwarderzipsbucket\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_cloudformation_stack-name:datadogv15-forwarderstack-lvu0coklo6q4\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-west-2:172597598159:stack/datadogv15-forwarderstack-lvu0coklo6q4/a90a2600-7e66-11ea-803f-0a14cc4f5b48\",\"control:A.9.2.3\",\"region:us-west-2\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIQY58WgAAAAAAAAAYAAAAAEFZZDUtaFFJQUFBdzVXWC1NMnhTcGdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"submitscoretolms-dev-serverlessdeploymentbucket-32oyxdcv4vut\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-west-1:172597598159:stack/submitscoretolms-dev/c8703400-040b-11eb-a9a6-066f37a23789\",\"aws_cloudformation_stack-name:submitscoretolms-dev\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"aws_cloudformation_logical-id:serverlessdeploymentbucket\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"region:us-west-1\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIRRznEwAAAAAAAAAYAAAAAEFZZDUtaFFJQUFCdDNZTzdCY3VKUndBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"datadogintegrationtest12345-forwa-forwarderbucket-vjqpo8odwcxd\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"aws_cloudformation_stack-name:datadogintegrationtest12345-forwarderstack-1ebhiflbjcts8\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-east-1:172597598159:stack/datadogintegrationtest12345-forwarderstack-1ebhiflbjcts8/17242b50-b127-11ec-ad08-0a3c8f91aaab\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_cloudformation_logical-id:forwarderbucket\",\"control:1.5\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIRz3r3QAAAAAAAAAYAAAAAEFZZDUtaFFJQUFEaDRsaURKRGNKMVFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"datadogintegrationtest12345-forwa-forwarderbucket-vjqpo8odwcxd\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"aws_cloudformation_stack-name:datadogintegrationtest12345-forwarderstack-1ebhiflbjcts8\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-east-1:172597598159:stack/datadogintegrationtest12345-forwarderstack-1ebhiflbjcts8/17242b50-b127-11ec-ad08-0a3c8f91aaab\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"aws_cloudformation_logical-id:forwarderbucket\",\"account:demo\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQISLH0AwAAAAAAAAAYAAAAAEFZZDUtaFFJQUFDRWlMT1MzRTlYc2dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220486000,\"mute\":{\"muted\":false},\"resource\":\"aws-sam-cli-managed-default-samclisourcebucket-x90n87ru57hm\",\"resource_discovery_date\":1681220486000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"aws_cloudformation_stack-name:aws-sam-cli-managed-default\",\"managedstacksource:awssamcli\",\"requirement:Compliance\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"aws_cloudformation_logical-id:samclisourcebucket\",\"cloud_provider:aws\",\"control:1.5\",\"account:demo\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:ca-central-1:172597598159:stack/aws-sam-cli-managed-default/f47ebf60-afda-11ea-a1a4-0aaf8b31ab7a\",\"region:ca-central-1\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIStL4zQAAAAAAAAAYAAAAAEFZZDUtaFFJQUFEMV9TN2FFME84Q1FBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220486000,\"mute\":{\"muted\":false},\"resource\":\"aws-sam-cli-managed-default-samclisourcebucket-x90n87ru57hm\",\"resource_discovery_date\":1681220486000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"aws_cloudformation_stack-name:aws-sam-cli-managed-default\",\"managedstacksource:awssamcli\",\"requirement:Compliance\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"aws_cloudformation_logical-id:samclisourcebucket\",\"cloud_provider:aws\",\"account:demo\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:ca-central-1:172597598159:stack/aws-sam-cli-managed-default/f47ebf60-afda-11ea-a1a4-0aaf8b31ab7a\",\"region:ca-central-1\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQITImHOgAAAAAAAAAYAAAAAEFZZDUtaFFJQUFBYU5FYzVIbjgtWEFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221183000,\"mute\":{\"muted\":false},\"resource\":\"dd-bucket-logs-demo\",\"resource_discovery_date\":1681221183000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"team:xuxu\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"terraform.managed:true\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"name:dd-bucket-logs-demo\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIXNkDawAAAAAAAAAYAAAAAEFZZDUtaFFJQUFEYzdoUlRkZDA2ZEFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220486000,\"mute\":{\"muted\":false},\"resource\":\"hello-csharp-dev-serverlessdeploymentbucket-k8w7ixh9zxm8\",\"resource_discovery_date\":1681220486000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"aws_cloudformation_logical-id:serverlessdeploymentbucket\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"stage:dev\",\"account:demo\",\"requirement:Data-Protection\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:us-east-1:172597598159:stack/hello-csharp-dev/aad9a440-92a5-11e9-9be0-0a522351f81e\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"aws_cloudformation_stack-name:hello-csharp-dev\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-hQIdr6VrAAAAAAAAAAYAAAAAEFZZDUtaFFJQUFEMDFqQUlYalY4amdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220349000,\"mute\":{\"muted\":false},\"resource\":\"danton-rodriguez\",\"resource_discovery_date\":1681220349000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"aws_account:172597598159\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"account:demo\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-suggFwGgQAAAAAAAAAYAAAAAEFZZDUtc3VnQUFCUHhOQXBGcGd5S1FBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681222221000,\"mute\":{\"muted\":false},\"resource\":\"richard-archive\",\"resource_discovery_date\":1681222221000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"team:cake\",\"cleanup_team:cake_solutions_eng\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"cleanup_subproduct:unknown\",\"region:us-east-1\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"testcloudcustodianremediation:2022-11-20\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"creator:richard.braamburg\",\"cleanup_department:technical_solutions\",\"user:richard.braamburg\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"cleanup_product:unknown\",\"control:1.3\",\"requirement:Data-Protection\",\"cleanup_resource_creator:richard.braamburg\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"cleanup_manager_email:christopher.anslow_datadoghq.com\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"cloudcustodianviolatedpolicy:gather-s3-buckets-older-than-one-year\",\"control:CC6.3\",\"control:CC6.1\",\"cleanup_to_be_deleted:false\"]}},{\"id\":\"AgAAAYd5-sugh-84FQAAAAAAAAAYAAAAAEFZZDUtc3VnQUFEenE0TEpKWHZNZFFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221637000,\"mute\":{\"muted\":false},\"resource\":\"lambda-artifacts-a4b4638b9a05cbc5\",\"resource_discovery_date\":1681221637000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"testcloudcustodianremediation:2022-11-20\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"region:eu-west-1\",\"control:1.5\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"cloudcustodianviolatedpolicy:gather-s3-buckets-older-than-one-year\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-sugihA83wAAAAAAAAAYAAAAAEFZZDUtc3VnQUFBZXdxXzhsMDc1TlFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221637000,\"mute\":{\"muted\":false},\"resource\":\"lambda-artifacts-a4b4638b9a05cbc5\",\"resource_discovery_date\":1681221637000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"testcloudcustodianremediation:2022-11-20\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"region:eu-west-1\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"cloudcustodianviolatedpolicy:gather-s3-buckets-older-than-one-year\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-sugjpN_fwAAAAAAAAAYAAAAAEFZZDUtc3VnQUFEemwyRVptRDdIN2dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221444000,\"mute\":{\"muted\":false},\"resource\":\"lambda-artifacts-e69cc543742f2d70\",\"resource_discovery_date\":1681221444000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"region:ap-northeast-2\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-sugkBgSAwAAAAAAAAAYAAAAAEFZZDUtc3VnQUFCTncxbGstODBOcVFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220416000,\"mute\":{\"muted\":false},\"resource\":\"k9-cloudwatch-data\",\"resource_discovery_date\":1681220416000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"cleanup_department:engineering\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"cleanup_subproduct:security_monitoring\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"user:bjorn.marschollek\",\"control:1.5\",\"cleanup_manager_email:alexandre.trufanow_datadoghq.com\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"cleanup_product:security_monitoring\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"cleanup_team:cloud-siem-backend\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"cleanup_resource_creator:bjorn.marschollek\",\"control:CC6.3\",\"control:CC6.1\",\"cleanup_to_be_deleted:false\"]}},{\"id\":\"AgAAAYd5-sugkjkWzQAAAAAAAAAYAAAAAEFZZDUtc3VnQUFEWWZXVFQtTjlTU0FBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220416000,\"mute\":{\"muted\":false},\"resource\":\"k9-cloudwatch-data\",\"resource_discovery_date\":1681220416000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"cleanup_department:engineering\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"cleanup_subproduct:security_monitoring\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"user:bjorn.marschollek\",\"cleanup_manager_email:alexandre.trufanow_datadoghq.com\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"cleanup_product:security_monitoring\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"cleanup_team:cloud-siem-backend\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"cleanup_resource_creator:bjorn.marschollek\",\"control:CC6.3\",\"control:CC6.1\",\"cleanup_to_be_deleted:false\"]}},{\"id\":\"AgAAAYd5-sugmxTVUgAAAAAAAAAYAAAAAEFZZDUtc3VnQUFDMVlJaFRkd0pRQkFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221637000,\"mute\":{\"muted\":false},\"resource\":\"amy-node-with-forwarder-serverlessdeploymentbuck-7abzwgnyw71n\",\"resource_discovery_date\":1681221637000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"aws_cloudformation_stack-name:amy-node-with-forwarder-dev\",\"framework:gdpr\",\"dd_preserve_stack:true\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"control:25.2\",\"requirement:Workforce-Security\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:sa-east-1:601427279990:stack/amy-node-with-forwarder-dev/0c7c1490-77f3-11ed-97ca-0693a9516c70\",\"security:compliance\",\"control:164.312-a-1\",\"aws_cloudformation_logical-id:serverlessdeploymentbucket\",\"requirement:Least-Privileged-Access\",\"region:sa-east-1\",\"cloud_provider:aws\",\"stage:dev\",\"control:1.5\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-sugnTXaHAAAAAAAAAAYAAAAAEFZZDUtc3VnQUFBMVVNZ0Q2S2F5aWdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221637000,\"mute\":{\"muted\":false},\"resource\":\"amy-node-with-forwarder-serverlessdeploymentbuck-7abzwgnyw71n\",\"resource_discovery_date\":1681221637000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"aws_cloudformation_stack-name:amy-node-with-forwarder-dev\",\"framework:gdpr\",\"dd_preserve_stack:true\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"control:25.2\",\"requirement:Workforce-Security\",\"aws_cloudformation_stack-id:arn:aws:cloudformation:sa-east-1:601427279990:stack/amy-node-with-forwarder-dev/0c7c1490-77f3-11ed-97ca-0693a9516c70\",\"security:compliance\",\"control:164.312-a-1\",\"aws_cloudformation_logical-id:serverlessdeploymentbucket\",\"requirement:Least-Privileged-Access\",\"region:sa-east-1\",\"cloud_provider:aws\",\"stage:dev\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-sugnZA74AAAAAAAAAAYAAAAAEFZZDUtc3VnQUFCbDFlNWRsS2R2TVFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221444000,\"mute\":{\"muted\":false},\"resource\":\"deukhee-krse\",\"resource_discovery_date\":1681221444000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"region:ap-northeast-2\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"control:1.5\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-sugn7FAqgAAAAAAAAAYAAAAAEFZZDUtc3VnQUFESjZEX01VVGZmYmdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221444000,\"mute\":{\"muted\":false},\"resource\":\"deukhee-krse\",\"resource_discovery_date\":1681221444000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"region:ap-northeast-2\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-sugoY1UnAAAAAAAAAAYAAAAAEFZZDUtc3VnQUFCemRsUHAwRmVuQUFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220654000,\"mute\":{\"muted\":false},\"resource\":\"logs.roboll.use.datadog.green\",\"resource_discovery_date\":1681220654000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"team:compute\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"kubernetescluster:roboll\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"testcloudcustodianremediation:2022-11-20\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"name:logs.roboll.use.datadog.green\",\"control:1.5\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"cloudcustodianviolatedpolicy:gather-s3-buckets-older-than-one-year\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-sugo65ZZgAAAAAAAAAYAAAAAEFZZDUtc3VnQUFDOEFMYnp3VmQyTWdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220654000,\"mute\":{\"muted\":false},\"resource\":\"logs.roboll.use.datadog.green\",\"resource_discovery_date\":1681220654000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"team:compute\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"region:us-east-1\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"kubernetescluster:roboll\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"testcloudcustodianremediation:2022-11-20\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"name:logs.roboll.use.datadog.green\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"cloudcustodianviolatedpolicy:gather-s3-buckets-older-than-one-year\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-sugq5rXEgAAAAAAAAAYAAAAAEFZZDUtc3VnQUFBR1lSdllsaDN5aFFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220415000,\"mute\":{\"muted\":false},\"resource\":\"bryce-kahle-kops-state-store\",\"resource_discovery_date\":1681220415000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACL does not grant full bucket control to everyone\",\"id\":\"gkb-eoz-lut\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"cleanup_department:engineering\",\"cleanup_product:cloud_platform\",\"framework:gdpr\",\"cleanup_resource_creator:bryce.kahle\",\"control:164.308-a-3-i\",\"cleanup_team:ebpf_platform\",\"requirement:Compliance\",\"cleanup_manager_email:sunny.klair_datadoghq.com\",\"region:us-east-1\",\"aws_account:601427279990\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"source:s3\",\"requirement:Information-Access-Management\",\"control:164.308-a-4-ii-B\",\"framework:pci\",\"account:sandbox\",\"user:bryce.kahle\",\"control:164.308-a-4-ii-C\",\"control:25.2\",\"requirement:Workforce-Security\",\"control:1.1\",\"security:compliance\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"cleanup_subproduct:networks\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"framework:security-labs\",\"control:CC6.1\",\"cleanup_to_be_deleted:false\"]}},{\"id\":\"AgAAAYd5-sugsLdrZgAAAAAAAAAYAAAAAEFZZDUtc3VnQUFDU282WjZtMTRic1FBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220416000,\"mute\":{\"muted\":false},\"resource\":\"pivotal-cloud-foundry-pcfbase-8-pcfdropletsbucket-1ke67cg579bwg\",\"resource_discovery_date\":1681220416000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"region:ap-northeast-1\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"control:1.5\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-sugsthwMAAAAAAAAAAYAAAAAEFZZDUtc3VnQUFBRHhiMlJtcUJ1a1FBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220416000,\"mute\":{\"muted\":false},\"resource\":\"pivotal-cloud-foundry-pcfbase-8-pcfdropletsbucket-1ke67cg579bwg\",\"resource_discovery_date\":1681220416000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"region:ap-northeast-1\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"]}},{\"id\":\"AgAAAYd5-sugsyymjwAAAAAAAAAYAAAAAEFZZDUtc3VnQUFENGdOcTJGQlFPNFFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220654000,\"mute\":{\"muted\":false},\"resource\":\"python38-forwardercache\",\"resource_discovery_date\":1681220654000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"user:mandy.kopelke\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"cleanup_subproduct:unknown\",\"region:us-east-1\",\"aws_account:601427279990\",\"cleanup_team:cake_t2\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"creayor:mandy\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"cleanup_manager_email:jan.lazaro_datadoghq.com\",\"control:164.312-a-1\",\"cleanup_department:technical_solutions\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"cleanup_product:unknown\",\"cleanup_resource_creator:mandy.kopelke\",\"control:1.5\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"cloudcustodianviolatedpolicy:gather-s3-buckets-older-than-one-year\",\"control:CC6.3\",\"control:CC6.1\",\"cleanup_to_be_deleted:false\"]}},{\"id\":\"AgAAAYd5-sugtU2rWQAAAAAAAAAYAAAAAEFZZDUtc3VnQUFBWjBJbjNZU2ZQWUFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220654000,\"mute\":{\"muted\":false},\"resource\":\"python38-forwardercache\",\"resource_discovery_date\":1681220654000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"user:mandy.kopelke\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"cleanup_subproduct:unknown\",\"region:us-east-1\",\"aws_account:601427279990\",\"cleanup_team:cake_t2\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"creayor:mandy\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"cleanup_manager_email:jan.lazaro_datadoghq.com\",\"control:164.312-a-1\",\"cleanup_department:technical_solutions\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"cleanup_product:unknown\",\"cleanup_resource_creator:mandy.kopelke\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"cloudcustodianviolatedpolicy:gather-s3-buckets-older-than-one-year\",\"control:CC6.3\",\"control:CC6.1\",\"cleanup_to_be_deleted:false\"]}},{\"id\":\"AgAAAYd5-suguWmmQwAAAAAAAAAYAAAAAEFZZDUtc3VnQUFBSlBZUVZFRWlRbWdBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221637000,\"mute\":{\"muted\":false},\"resource\":\"elasticbeanstalk-ap-northeast-1-601427279990\",\"resource_discovery_date\":1681221637000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket ACLs are configured to block public write actions\",\"id\":\"s6r-rlr-gk1\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"cleanup_resource_creator:yong.zuo\",\"region:ap-northeast-1\",\"cleanup_team:cake_solutions_eng\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"cleanup_manager_email:nobumoto.magome_datadoghq.com\",\"requirement:Compliance\",\"cleanup_subproduct:unknown\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"user:yong.zuo\",\"framework:pci\",\"account:sandbox\",\"testcloudcustodianremediation:2022-11-20\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"cleanup_department:technical_solutions\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"cleanup_product:unknown\",\"control:1.5\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"cloudcustodianviolatedpolicy:gather-s3-buckets-older-than-one-year\",\"control:CC6.3\",\"control:CC6.1\",\"cleanup_to_be_deleted:false\"]}},{\"id\":\"AgAAAYd5-sugu4qrDQAAAAAAAAAYAAAAAEFZZDUtc3VnQUFCcDFOeHZjejFtS2dBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681221637000,\"mute\":{\"muted\":false},\"resource\":\"elasticbeanstalk-ap-northeast-1-601427279990\",\"resource_discovery_date\":1681221637000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket contents are not publicly exposed via bucket policy\",\"id\":\"8tr-9cl-spc\"},\"status\":\"critical\",\"tags\":[\"requirement:AWS\",\"scored:true\",\"cleanup_resource_creator:yong.zuo\",\"region:ap-northeast-1\",\"cleanup_team:cake_solutions_eng\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"cleanup_manager_email:nobumoto.magome_datadoghq.com\",\"requirement:Compliance\",\"cleanup_subproduct:unknown\",\"aws_account:601427279990\",\"requirement:Security-Management-Process\",\"framework:essential-cloud-security-controls\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"user:yong.zuo\",\"framework:pci\",\"account:sandbox\",\"testcloudcustodianremediation:2022-11-20\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"cleanup_department:technical_solutions\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"cleanup_product:unknown\",\"control:1.3\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"cloudcustodianviolatedpolicy:gather-s3-buckets-older-than-one-year\",\"control:CC6.3\",\"control:CC6.1\",\"cleanup_to_be_deleted:false\"]}},{\"id\":\"AgAAAYd5-sugvVI1EQAAAAAAAAAYAAAAAEFZZDUtc3VnQUFEaVZzeE05R0Q4dEFBQQAAACQAAAAAMDE4NzdhMDEtMDRiYS00NTZlLWFmMzMtNTIxNmNkNjVlNDMz\",\"type\":\"finding\",\"attributes\":{\"evaluation\":\"pass\",\"evaluation_changed_at\":1681220415000,\"mute\":{\"muted\":false},\"resource\":\"kevin-tokyo\",\"resource_discovery_date\":1681220415000,\"resource_type\":\"aws_s3_bucket\",\"rule\":{\"name\":\"S3 bucket is not publicly writeable via bucket policy\",\"id\":\"ocj-ona-5qb\"},\"status\":\"critical\",\"tags\":[\"scored:true\",\"region:ap-northeast-1\",\"framework:gdpr\",\"control:164.308-a-3-i\",\"requirement:Compliance\",\"cleanup_subproduct:unknown\",\"cleanup_resource_creator:kevin.huang\",\"cleanup_manager_email:ben.gobel_datadoghq.com\",\"aws_account:601427279990\",\"cleanup_team:cake_t2\",\"requirement:Security-Management-Process\",\"framework:iso-27001\",\"framework:hipaa\",\"requirement:Access-Control\",\"control:164.308-a-1-ii-B\",\"source:s3\",\"framework:pci\",\"account:sandbox\",\"testcloudcustodianremediation:2022-11-20\",\"control:25.2\",\"requirement:Workforce-Security\",\"security:compliance\",\"control:164.312-a-1\",\"cleanup_department:technical_solutions\",\"requirement:Least-Privileged-Access\",\"cloud_provider:aws\",\"cleanup_product:unknown\",\"requirement:Data-Protection\",\"control:7.2.1\",\"control:7.2.2\",\"requirement:Security-of-Processing\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:s3\",\"user:kevin.huang\",\"control:A.9.2.3\",\"control:32.1a\",\"requirement:Logical-and-Physical-Access-Control\",\"cloudcustodianviolatedpolicy:gather-s3-buckets-older-than-one-year\",\"control:CC6.3\",\"control:CC6.1\",\"cleanup_to_be_deleted:false\"]}}],\"meta\":{\"page\":{\"total_filtered_count\":445536,\"cursor\":\"eyJhZnRlciI6IkFnQUFBWWQ1LXN1Z3ZWSTFFUUFBQUFBQUFBQVlBQUFBQUVGWlpEVXRjM1ZuUVVGRWFWWnplRTA1UjBRNGRFRkJRUUFBQUNRQUFBQUFNREU0TnpkaE1ERXRNRFJpWVMwME5UWmxMV0ZtTXpNdE5USXhObU5rTmpWbE5ETXoiLCJ2YWx1ZXMiOlsiY3JpdGljYWwiXX0=\"},\"snapshot_timestamp\":1681388763514}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 13 Apr 2023 12:26:02 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/List-rules-returns-OK-response.json b/tests/scenarios/cassettes/v2/security_monitoring/List-rules-returns-OK-response.json index 2e9437e9a..753d144ee 100644 --- a/tests/scenarios/cassettes/v2/security_monitoring/List-rules-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/security_monitoring/List-rules-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"total_filtered_count\":10,\"total_count\":838}},\"data\":[{\"updateAuthorId\":0,\"creationAuthorId\":0,\"tags\":[\"scored:true\",\"security:compliance\",\"requirement:Cloud-SQL\",\"cloud_provider:gcp\",\"control:6.3.6\",\"source:google_sql_database_instance\",\"control:3.4\",\"requirement:Communications-Security\",\"framework:cis-gcp\",\"requirement:Compliance\",\"level:1\",\"control:A.13.1.1\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:google_sql_database_instance\",\"requirement:Cardholder-Data\",\"control:A.9.1.2\",\"framework:iso-27001\",\"requirement:Logical-and-Physical-Access-Control\",\"requirement:Access-Control\",\"framework:pci\",\"control:CC6.1\"],\"type\":\"cloud_configuration\",\"isEnabled\":true,\"hasExtendedTitle\":true,\"message\":\"## Description\\n\\nIt is recommended to set `3625 (trace flag)` database flag to `off` for GCP SQL Server instance.\\n\\n## Rationale\\n\\nMicrosoft SQL trace flags are frequently used to diagnose performance issues or to debug stored procedures or complex computer systems, but they may also be recommended by Microsoft Support to address behavior that is negatively impacting a specific workload. All documented trace flags and those recommended by Microsoft Support are fully supported in a production environment when used as directed. `3625 (trace log)` limits the information returned to users who are not members of the sysadmin fixed server role, by masking the parameters of some error messages using '******'. Setting this in a Google Cloud flag for the instance allows for security through obscurity and prevents the disclosure of sensitive information. Hence, it is recommended to set this flag to `off` globally to prevent the flag from being left on or turned on by bad actors. This recommendation is applicable to SQL Server database instances.\\n\\n## Impact\\n\\nChanging flags on a database may cause it to be restarted. The best time to do this is when there is low usage.\\n\\n## Remediation\\n\\n### From the console\\n\\n1. Go to the [Cloud SQL Instances][1] page in the Google Cloud Console.\\n2. Select the SQL Server instance for which you want to enable the database flag.\\n3. Click **Edit**.\\n4. Scroll down to the Flags section.\\n5. Click **Add item** to set a flag that has not been set on the instance before. Choose the flag `3625` from the drop-down menu, and set its value to `off`.\\n6. Click **Save**.\\n7. Confirm your changes under the Flags section on the Overview page.\\n\\n### From the command line\\n\\nConfigure the `3625` database flag for every GCP SQL Server database instance using the below command.\\n```\\ngcloud sql instances patch --database-flags \\\"3625=off\\\"\\n```\\n\\n#### Note\\nThis command will overwrite all database flags previously set. To keep the flags previously set and add new ones, include the values for all flags you want set on the instance; any flag not specifically included is set to its default value. For flags that do not take a value, specify the flag name followed by an equals sign (=).\\n\\n\\n## Additional Information\\n\\n- Configuring the above flag restarts the GCP SQL Server instance.\\n\\n- Some database flag settings can affect instance availability or stability, and remove the instance from the Cloud SQL SLA. For information about these flags, see Operational Guidelines.\\n\\n## References\\n\\n1. [https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-traceon-trace-flags-transact-sql?view=sql-server-ver15#trace-flags][2]\\n\\n[1]: https://console.cloud.google.com/sql/instances\\n[2]: https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-traceon-trace-flags-transact-sql?view=sql-server-ver15#trace-flags\\n\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":7200,\"maxSignalDuration\":86400,\"complianceRuleOptions\":{\"complianceFrameworks\":[{\"control\":\"6.3.6\",\"framework\":\"cis-gcp\",\"requirement\":\"Cloud-SQL\",\"version\":\"1.3.0\"},{\"control\":\"CC6.1\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"},{\"control\":\"A.9.1.2\",\"framework\":\"iso-27001\",\"requirement\":\"Access-Control\",\"version\":\"2\"},{\"control\":\"A.13.1.1\",\"framework\":\"iso-27001\",\"requirement\":\"Communications-Security\",\"version\":\"2\"},{\"control\":\"A.18.1.3\",\"framework\":\"iso-27001\",\"requirement\":\"Compliance\",\"version\":\"2\"},{\"control\":\"3.4\",\"framework\":\"pci\",\"requirement\":\"Cardholder-Data\",\"version\":\"3.2.1\"}],\"regoRule\":{\"policy\":\"package datadog\\n\\nimport data.datadog.output as dd_output\\n\\nimport future.keywords.contains\\nimport future.keywords.if\\nimport future.keywords.in\\n\\neval(sql_database_instance) = \\\"skip\\\" if {\\n\\tnot is_SQLServer(sql_database_instance)\\n} else = \\\"fail\\\" {\\n\\tdatabase_flags := sql_database_instance.settings.database_flags[_]\\n\\tdatabase_flags.name == \\\"3625\\\"\\n\\tdatabase_flags.value == \\\"on\\\"\\n} else = \\\"pass\\\" {\\n\\ttrue\\n}\\n\\nis_SQLServer(sql_database_instance) if {\\n\\tstartswith(sql_database_instance.database_version, \\\"SQLSERVER\\\")\\n}\\n\\n# This part remains unchanged for all rules\\nresults contains result if {\\n\\tsome resource in input.resources[input.main_resource_type]\\n\\tresult := dd_output.format(resource, eval(resource))\\n}\\n\",\"resourceTypes\":[\"gcp_sql_database_instance\"]},\"validationQuery\":\"\",\"resourceType\":\"gcp_sql_database_instance\",\"filter\":\"\",\"queryPath\":\"\",\"complexRule\":false},\"keepAlive\":21600},\"version\":8,\"isDefault\":true,\"filters\":[],\"queries\":[{\"query\":\"resource_type:gcp_sql_database_instance\",\"groupByFields\":[\"resource_type\",\"resource_id\"],\"aggregation\":\"count\",\"name\":\"a\",\"distinctFields\":[]}],\"isDeleted\":false,\"complianceSignalOptions\":{\"defaultActivationStatus\":false,\"userActivationStatus\":null,\"defaultGroupByFields\":[\"@resource\"],\"userGroupByFields\":null},\"cases\":[{\"status\":\"low\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"id\":\"2x0-5oi-nhu\",\"createdAt\":1657310084964,\"name\":\"'3625 (trace flag)' database flag is set to 'off' for SQL Server Instance\"},{\"updateAuthorId\":0,\"creationAuthorId\":0,\"tags\":[\"control:CC6.8\",\"scored:true\",\"control:2.11\",\"cloud_provider:azure\",\"control:A.12.4.1\",\"level:1\",\"source:azure.policy\",\"requirement:Application-Updates\",\"framework:iso-27001\",\"framework:pci\",\"requirement:Operations-Security\",\"requirement:Communication-and-Information\",\"security:compliance\",\"requirement:Security-Center\",\"framework:cis-azure\",\"control:6.2\",\"requirement:System-Operations\",\"requirement:Monitoring-Activities\",\"framework:soc-2\",\"scope:azure.policy\",\"control:CC4.1\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC2.1\",\"control:CC7.2\",\"control:CC7.1\"],\"type\":\"cloud_configuration\",\"isEnabled\":true,\"hasExtendedTitle\":true,\"message\":\"## Description\\n\\nEnable automatic provisioning of the monitoring agent to collect security data.\\n\\n## Rationale\\n\\nWhen automatic provisioning of monitoring agent is turned on, Azure Security Center provisions the Microsoft Monitoring Agent on all existing supported Azure virtual machines and any new ones that are created. The Microsoft Monitoring Agent scans for various security-related configurations and events such as system updates, OS vulnerabilities, endpoint protection, and provides alerts.\\n\\n## Remediation\\n\\n### From the console\\n\\n1. Go to Security Center\\n2. Click on Pricing & Settings\\n3. Click on a subscription\\n4. Click on Data Collection\\n5. Set Automatic provisioning to On\\n6. Click save Repeat the above for any additional subscriptions.\\n\\n### From the command line\\n\\nUse the below command to set automatic provisioning of monitoring agent:\\n\\n```bash\\naz account get-access-token --query \\\"{subscription:subscription,accessToken:accessToken}\\\" --out tsv | xargs -L1 bash -c ''curl -X PUT -H \\\"AuthorizationBearer $1\\\" -H \\\"Content-Typeapplication/json\\\" https://management.azure.com/subscriptions/$0/providers/Microsoft.Security/autoProvisioningSettings/default?api-version=2017-08-01-preview -d@\\\"input.json\\\"''\\n```\\n\\nWhere input.json contains the Request body json data as mentioned below. \\n\\n```bash\\n{ \\\"id\\\"\\\"/subscriptions//providers/Microsoft.Security/autoProvisioningSettings/default\\\", \\\"name\\\"\\\"default\\\", \\\"type\\\"\\\"Microsoft.Security/autoProvisioningSettings\\\", \\\"properties\\\"{ \\\"autoProvision\\\"\\\"On\\\" } }\\n```\\n\\n## References\\n\\n1. https://docs.microsoft.com/en-us/azure/security-center/security-center-data-security \\n2. https://docs.microsoft.com/en-us/azure/security-center/security-center-enable-data-collection \\n3. https://msdn.microsoft.com/en-us/library/mt704062.aspx\\n4. https://msdn.microsoft.com/en-us/library/mt704063.aspx\\n5. https://docs.microsoft.com/en-us/rest/api/securitycenter/autoprovisioningsettings/list \\n6. https://docs.microsoft.com/en-us/rest/api/securitycenter/autoprovisioningsettings/create \\n7. https://docs.microsoft.com/en-us/azure/security/benchmarks/security-controls-v2-incident-response#ir-2-preparation--setup-incident-notification\\n\\nAdditional Information: Excluding any of the entries in `input.json` may disable the specific setting by default Microsoft has recently changed APIs to get and Update Automatic Provisioning setting. This recommendation is updated accordingly.\\n\\n## CIS Controls\\n\\nVersion 7 3.1 - Run Automated Vulnerability Scanning Tools: Utilize an up-to-date SCAP-compliant vulnerability scanning tool to automatically scan all systems on the network on a weekly or more frequent basis to identify all potential vulnerabilities on the organization's systems.\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":7200,\"maxSignalDuration\":86400,\"complianceRuleOptions\":{\"complianceFrameworks\":[{\"control\":\"2.11\",\"framework\":\"cis-azure\",\"requirement\":\"Security-Center\",\"version\":\"1.3.0\"},{\"control\":\"6.2\",\"framework\":\"pci\",\"requirement\":\"Application-Updates\",\"version\":\"3.2.1\"},{\"control\":\"A.12.4.1\",\"framework\":\"iso-27001\",\"requirement\":\"Operations-Security\",\"version\":\"2\"},{\"control\":\"CC2.1\",\"framework\":\"soc-2\",\"requirement\":\"Communication-and-Information\",\"version\":\"2\"},{\"control\":\"CC4.1\",\"framework\":\"soc-2\",\"requirement\":\"Monitoring-Activities\",\"version\":\"2\"},{\"control\":\"CC6.8\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"},{\"control\":\"CC7.1\",\"framework\":\"soc-2\",\"requirement\":\"System-Operations\",\"version\":\"2\"},{\"control\":\"CC7.2\",\"framework\":\"soc-2\",\"requirement\":\"System-Operations\",\"version\":\"2\"}],\"validationQuery\":\"@auto_provision:Off\",\"resourceType\":\"azure_security_center_auto_provisioning\",\"filter\":\"\",\"queryPath\":\"\",\"complexRule\":false},\"keepAlive\":21600},\"version\":7,\"isDefault\":true,\"filters\":[],\"queries\":[{\"query\":\"resource_type:azure_security_center_auto_provisioning (@auto_provision:Off)\",\"groupByFields\":[\"resource_type\",\"resource_id\"],\"aggregation\":\"count\",\"name\":\"a\",\"distinctFields\":[]}],\"isDeleted\":false,\"complianceSignalOptions\":{\"defaultActivationStatus\":false,\"userActivationStatus\":null,\"defaultGroupByFields\":[\"@resource\"],\"userGroupByFields\":null},\"cases\":[{\"status\":\"medium\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"id\":\"ota-kzg-lsb\",\"createdAt\":1635237006719,\"name\":\"'Automatic provisioning of monitoring agent' is set to 'On'\"},{\"updateAuthorId\":0,\"creationAuthorId\":0,\"tags\":[\"scored:true\",\"requirement:Virtual-Machines\",\"security:compliance\",\"cloud_provider:azure\",\"control:3.4.1\",\"control:7.2\",\"framework:cis-azure\",\"requirement:Credentials\",\"requirement:Compliance\",\"scope:azure.compute\",\"level:1\",\"control:A.18.1.3\",\"framework:soc-2\",\"requirement:Cardholder-Data\",\"framework:iso-27001\",\"requirement:Logical-and-Physical-Access-Control\",\"control:8.2.1\",\"source:azure.compute\",\"framework:pci\",\"control:CC6.1\"],\"type\":\"cloud_configuration\",\"isEnabled\":true,\"hasExtendedTitle\":true,\"message\":\"## Description\\n\\nEnsure that OS disks (boot volumes) and data disks (non-boot volumes) are encrypted with a Customer Managed Key (CMK).\\n\\n## Rationale\\n\\nEncrypting the IaaS VM's OS disk (boot volume) and data disks (non-boot volume) ensures that the entire content is fully unrecoverable without a key and thus protects the volume from unwarranted reads. CMK is superior encryption although requires additional planning.\\n\\n## Remediation\\n\\n### From the console\\n\\n**Note**: Disks must be detached from VMs to have encryption changed.\\n\\n1. Go to Virtual Machines\\n2. For each virtual machine, go to Settings\\n3. Click on Disks\\n4. Click the X to detach the disk from the VM\\n5. Search for disks and locate the unattached disk\\n6. Click the disk select Encryption\\n7. Change your encryption type and select your encryption set\\n8. Click Save\\n9. Go back to the VM and re-attach the disk\\n\\n### Using PowerShell\\n\\n```powershell\\n$KVRGname = ''MyKeyVaultResourceGroup''; $VMRGName = ''MyVirtualMachineResourceGroup''; $vmName = ''MySecureVM''; $KeyVaultName = ''MySecureVault''; $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname; $diskEncryptionKeyVaultUrl = $KeyVault.VaultUri; $KeyVaultResourceId = $KeyVault.ResourceId; Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGname -VMName $vmName -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId;\\n```\\n\\n**NOTES**:\\n\\n- During encryption, a reboot is likely required. It may take up to 15 minutes to complete the process.\\n\\n- On Linux machines, you may need to set the `-skipVmBackup` parameter.\\n\\n## Impact\\n\\nUsing CMK/BYOK entail additional management of keys. You must have your key vault setup to use this.\\n\\n## References\\n\\n\\n1. https://docs.microsoft.com/azure/security/fundamentals/azure-disk-encryption-vms-vmss\\n2. https://docs.microsoft.com/en-us/azure/security-center/security-center-disk-encryption?toc=%2fazure%2fsecurity%2ftoc.json\\n3. https://docs.microsoft.com/azure/security/fundamentals/data-encryption-best-practices#protect-data-at-resthttps://docs.microsoft.com/azure/virtual-machines/windows/disk-encryption-portal-quickstart\\n4. https://docs.microsoft.com/en-us/rest/api/compute/disks/delete\\n5. https://docs.microsoft.com/en-us/rest/api/compute/disks/update#encryptionsettings\\n6. https://docs.microsoft.com/en-us/azure/security/benchmarks/security-controls-v2-data-protection#dp-5-encrypt-sensitive-data-at-rest\\n7. https://docs.microsoft.com/en-us/azure/virtual-machines/windows/disks-enable-customer-managed-keys-powershell\\n\\n## CIS Controls\\n\\nVersion 7 14.8 - Encrypt Sensitive Information at Rest - Encrypt all sensitive information at rest using a tool that requires a secondary authentication mechanism not integrated into the operating system, in order to access the information.\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":7200,\"maxSignalDuration\":86400,\"complianceRuleOptions\":{\"complianceFrameworks\":[{\"control\":\"7.2\",\"framework\":\"cis-azure\",\"requirement\":\"Virtual-Machines\",\"version\":\"1.3.0\"},{\"control\":\"3.4.1\",\"framework\":\"pci\",\"requirement\":\"Cardholder-Data\",\"version\":\"3.2.1\"},{\"control\":\"8.2.1\",\"framework\":\"pci\",\"requirement\":\"Credentials\",\"version\":\"3.2.1\"},{\"control\":\"A.18.1.3\",\"framework\":\"iso-27001\",\"requirement\":\"Compliance\",\"version\":\"2\"},{\"control\":\"CC6.1\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"}],\"validationQuery\":\"-@encryption_type:EncryptionAtRestWithCustomerKey\",\"resourceType\":\"azure_managed_disk\",\"filter\":\"@disk_state:Attached\",\"queryPath\":\"\",\"complexRule\":false},\"keepAlive\":21600},\"version\":8,\"isDefault\":true,\"filters\":[],\"queries\":[{\"query\":\"resource_type:azure_managed_disk @disk_state:Attached (-@encryption_type:EncryptionAtRestWithCustomerKey)\",\"groupByFields\":[\"resource_type\",\"resource_id\"],\"aggregation\":\"count\",\"name\":\"a\",\"distinctFields\":[]}],\"isDeleted\":false,\"complianceSignalOptions\":{\"defaultActivationStatus\":true,\"userActivationStatus\":null,\"defaultGroupByFields\":[\"@resource\"],\"userGroupByFields\":null},\"cases\":[{\"status\":\"high\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"id\":\"i6x-xne-idt\",\"createdAt\":1631690475494,\"name\":\"'OS and Data' disks are encrypted with CMK\"},{\"updateAuthorId\":0,\"creationAuthorId\":0,\"tags\":[\"scored:true\",\"control:CC6.7\",\"cloud_provider:azure\",\"requirement:Default-Security-Parameter\",\"requirement:Credentials\",\"requirement:Compliance\",\"level:1\",\"requirement:System-Acquisition-Development-and-Maintenance\",\"control:2.2.3\",\"requirement:Application-Updates\",\"framework:iso-27001\",\"scope:azure.storage\",\"framework:pci\",\"control:A.14.1.2\",\"control:A.14.1.3\",\"security:compliance\",\"control:6.5.3\",\"framework:cis-azure\",\"control:4.1\",\"control:3.1\",\"requirement:Control-Activities\",\"requirement:Storage-Account\",\"source:azure.storage\",\"control:A.18.1.3\",\"framework:soc-2\",\"requirement:Logical-and-Physical-Access-Control\",\"requirement:Encryption-In-Transit\",\"control:8.2.1\",\"control:CC5.2\",\"control:CC6.1\"],\"type\":\"cloud_configuration\",\"isEnabled\":true,\"hasExtendedTitle\":true,\"message\":\"## Description\\n\\nEnable data encryption in transit.\\n\\n## Rationale\\n\\nThe secure transfer option enhances the security of a storage account by only allowing requests to the storage account by a secure connection. For example, when calling REST APIs to access storage accounts, the connection must be HTTPS. Any requests using HTTP will be rejected when secure transfer required is enabled. When using the Azure files service, connection without encryption will fail, including scenarios using SMB 2.1, SMB 3.0 without encryption, and some flavors of the Linux SMB client. Because Azure storage doesn't support HTTPS for custom domain names, this option is not applied when using a custom domain name.\\n\\n## Remediation\\n\\n### From the console\\n\\n1. Go to Storage Accounts\\n2. For each storage account, go to Configuration\\n3. Set Secure transfer required to Enabled\\n\\n### From the command line\\n\\nInterface 2.0 - Use the below command to enable Secure transfer required for a Storage Account: `az storage account update --name --resource-group --https-only true`\\n\\n## References\\n\\n\\n1. https://docs.microsoft.com/en-us/azure/storage/blobs/security-recommendations#encryption-in-transit\\n2. https://docs.microsoft.com/en-us/cli/azure/storage/account?view=azure-cli-latest#az_storage_account_list\\n3. https://docs.microsoft.com/en-us/cli/azure/storage/account?view=azure-cli-latest#az_storage_account_update\\n4. https://docs.microsoft.com/en-us/azure/security/benchmarks/security-controls-v2-data-protection#dp-4-encrypt-sensitive-information-in-transit\\n\\n## CIS Controls\\n\\nVersion 7 - 14.4 Encrypt All Sensitive Information in Transit\\n\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":7200,\"maxSignalDuration\":86400,\"complianceRuleOptions\":{\"complianceFrameworks\":[{\"control\":\"3.1\",\"framework\":\"cis-azure\",\"requirement\":\"Storage-Account\",\"version\":\"1.3.0\"},{\"control\":\"A.14.1.2\",\"framework\":\"iso-27001\",\"requirement\":\"System-Acquisition-Development-and-Maintenance\",\"version\":\"2\"},{\"control\":\"A.14.1.3\",\"framework\":\"iso-27001\",\"requirement\":\"System-Acquisition-Development-and-Maintenance\",\"version\":\"2\"},{\"control\":\"A.18.1.3\",\"framework\":\"iso-27001\",\"requirement\":\"Compliance\",\"version\":\"2\"},{\"control\":\"2.2.3\",\"framework\":\"pci\",\"requirement\":\"Default-Security-Parameter\",\"version\":\"3.2.1\"},{\"control\":\"4.1\",\"framework\":\"pci\",\"requirement\":\"Encryption-In-Transit\",\"version\":\"3.2.1\"},{\"control\":\"6.5.3\",\"framework\":\"pci\",\"requirement\":\"Application-Updates\",\"version\":\"3.2.1\"},{\"control\":\"8.2.1\",\"framework\":\"pci\",\"requirement\":\"Credentials\",\"version\":\"3.2.1\"},{\"control\":\"CC5.2\",\"framework\":\"soc-2\",\"requirement\":\"Control-Activities\",\"version\":\"2\"},{\"control\":\"CC6.1\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"},{\"control\":\"CC6.7\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"}],\"validationQuery\":\"-@supports_https_traffic_only:true\",\"resourceType\":\"azure_storage_account\",\"filter\":\"\",\"queryPath\":\"\",\"complexRule\":false},\"keepAlive\":21600},\"version\":8,\"isDefault\":true,\"filters\":[],\"queries\":[{\"query\":\"resource_type:azure_storage_account (-@supports_https_traffic_only:true)\",\"groupByFields\":[\"resource_type\",\"resource_id\"],\"aggregation\":\"count\",\"name\":\"a\",\"distinctFields\":[]}],\"isDeleted\":false,\"complianceSignalOptions\":{\"defaultActivationStatus\":true,\"userActivationStatus\":null,\"defaultGroupByFields\":[\"@name\"],\"userGroupByFields\":null},\"cases\":[{\"status\":\"high\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"id\":\"vlg-zuu-zub\",\"createdAt\":1635847712936,\"name\":\"'Secure transfer required' is set to 'Enabled'\"},{\"updateAuthorId\":0,\"creationAuthorId\":0,\"tags\":[\"scored:true\",\"control:CC6.7\",\"control:CC6.6\",\"cloud_provider:azure\",\"requirement:Compliance\",\"level:1\",\"control:2.2.2\",\"framework:iso-27001\",\"requirement:Access-Control\",\"scope:azure.storage\",\"framework:pci\",\"security:compliance\",\"requirement:Least-Privileged-Access\",\"control:1.2.1\",\"control:3.7\",\"framework:cis-azure\",\"requirement:Communications-Security\",\"control:7.2.1\",\"requirement:Storage-Account\",\"source:azure.storage\",\"control:A.13.1.3\",\"requirement:Default-Security-Parameters\",\"requirement:Firewall-Configuration\",\"control:A.13.1.1\",\"control:A.18.1.3\",\"framework:soc-2\",\"control:A.9.1.2\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.1\"],\"type\":\"cloud_configuration\",\"isEnabled\":true,\"hasExtendedTitle\":true,\"message\":\"## Description\\n\\nSome Microsoft services that interact with storage accounts operate from networks that can't be granted access through network rules. To help this type of service work as intended, allow the set of trusted Microsoft services to bypass the network rules. These services use strong authentication to access the storage account. If Allow trusted Microsoft services exception is enabled, the following services, when registered in the subscription, are granted access to the storage account: Azure Backup, Azure Site Recovery, Azure DevTest Labs, Azure Event Grid, Azure Event Hubs, Azure Networking, Azure Monitor and Azure SQL Data Warehouse.\\n\\n## Rationale\\n\\nTurning on firewall rules for storage account blocks access to incoming requests for data, including from other Azure services. This includes using the portal, writing logs, etc. You can re-enable access to services like Monitor, Networking, Hubs, and Event Grid by enabling Trusted Microsoft Services through exceptions. The exception also supports backing up and restoring virtual machines using unmanaged disks in storage accounts with network rules applied.\\n\\n## Remediation\\n\\n### From the console\\n\\n1. Go to Storage Accounts\\n2. For each storage account, click on the settings menu called Firewalls and Virtual Networks.\\n3. Ensure that Allow access from selected networks is enabled.\\n4. Enable Allow trusted Microsoft services to access this storage account.\\n5. Click Save to apply your changes.\\n\\n### From the command line\\n\\nUse the following command to update trusted Microsoft services: `az storage account update --name --resource-group --bypass AzureServices`\\n\\n## References\\n\\n1. https://docs.microsoft.com/en-us/azure/storage/common/storage-network-security\\n2. https://docs.microsoft.com/en-us/azure/security/benchmarks/security-controls-v2-network-security#ns-1-implement-security-for-internal-traffic\\n3. https://docs.microsoft.com/en-us/azure/security/benchmarks/security-controls-v2-governance-strategy#gs-2-define-enterprise-segmentation-strategy\\n\\n## CIS Controls\\n\\nVersion 7 9.2 - Ensure Only Approved Ports, Protocols and Services Are Running - Ensure that only network ports, protocols, and services listening on a system with validated business needs, are running on each system.\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":7200,\"maxSignalDuration\":86400,\"complianceRuleOptions\":{\"complianceFrameworks\":[{\"control\":\"3.7\",\"framework\":\"cis-azure\",\"requirement\":\"Storage-Account\",\"version\":\"1.3.0\"},{\"control\":\"1.2.1\",\"framework\":\"pci\",\"requirement\":\"Firewall-Configuration\",\"version\":\"3.2.1\"},{\"control\":\"2.2.2\",\"framework\":\"pci\",\"requirement\":\"Default-Security-Parameters\",\"version\":\"3.2.1\"},{\"control\":\"7.2.1\",\"framework\":\"pci\",\"requirement\":\"Least-Privileged-Access\",\"version\":\"3.2.1\"},{\"control\":\"A.9.1.2\",\"framework\":\"iso-27001\",\"requirement\":\"Access-Control\",\"version\":\"2\"},{\"control\":\"A.13.1.1\",\"framework\":\"iso-27001\",\"requirement\":\"Communications-Security\",\"version\":\"2\"},{\"control\":\"A.13.1.3\",\"framework\":\"iso-27001\",\"requirement\":\"Communications-Security\",\"version\":\"2\"},{\"control\":\"A.18.1.3\",\"framework\":\"iso-27001\",\"requirement\":\"Compliance\",\"version\":\"2\"},{\"control\":\"CC6.1\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"},{\"control\":\"CC6.6\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"},{\"control\":\"CC6.7\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"}],\"validationQuery\":\"-@network_acls.bypass:*AzureServices*\",\"resourceType\":\"azure_storage_account\",\"filter\":\"\",\"queryPath\":\"\",\"complexRule\":false},\"keepAlive\":21600},\"version\":9,\"isDefault\":true,\"filters\":[],\"queries\":[{\"query\":\"resource_type:azure_storage_account (-@network_acls.bypass:*AzureServices*)\",\"groupByFields\":[\"resource_type\",\"resource_id\"],\"aggregation\":\"count\",\"name\":\"a\",\"distinctFields\":[]}],\"isDeleted\":false,\"complianceSignalOptions\":{\"defaultActivationStatus\":true,\"userActivationStatus\":null,\"defaultGroupByFields\":[\"@resource\"],\"userGroupByFields\":null},\"cases\":[{\"status\":\"high\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"id\":\"psg-u8u-lwo\",\"createdAt\":1631690476330,\"name\":\"'Trusted Microsoft Services' is enabled for Storage Account access\"},{\"updateAuthorId\":0,\"creationAuthorId\":0,\"tags\":[\"scored:true\",\"requirement:Virtual-Machines\",\"security:compliance\",\"cloud_provider:azure\",\"control:3.4.1\",\"control:7.3\",\"framework:cis-azure\",\"requirement:Credentials\",\"requirement:Compliance\",\"scope:azure.compute\",\"level:1\",\"control:A.18.1.3\",\"framework:soc-2\",\"requirement:Cardholder-Data\",\"framework:iso-27001\",\"requirement:Logical-and-Physical-Access-Control\",\"control:8.2.1\",\"source:azure.compute\",\"framework:pci\",\"control:CC6.1\"],\"type\":\"cloud_configuration\",\"isEnabled\":true,\"hasExtendedTitle\":true,\"message\":\"## Description\\n\\nEnsure that unattached disks in a subscription are encrypted with a customer managed key (CMK).\\n\\n## Rationale\\n\\nManaged disks are encrypted by default with platform-managed keys. Using customer-managed keys may provide an additional level of security or meet an organization's regulatory requirements. Encrypting managed disks ensures that its entire content is fully unrecoverable without a key and thus protects the volume from unwarranted reads. Even if the disk is not attached to any of the VMs, there is always a risk where a compromised user account with administrative access to VM service can mount/attach these data disks which may lead to sensitive information disclosure and tampering.\\n\\n## Impact\\n\\nEncryption is available only on standard tier VMs. This could impact cost. Utilizing and maintaining customer-managed keys requires additional work to create, protect, and rotate keys.\\n\\n## Remediation\\n\\nIf data stored in the disk is no longer useful, refer to [Azure documentation][1] to delete unattached data disks. If data stored in the disk is important, encrypt the disk. See the [Disk enable customer managed keys customer][2] or the [Encryption settings][3] documentation.\\n\\n## References\\n\\n1. https://docs.microsoft.com/en-us/azure/security/fundamentals/azure-disk-encryption-vms-vmss\\n2. https://docs.microsoft.com/en-us/azure/security-center/security-center-disk-encryption?toc=%2fazure%2fsecurity%2ftoc.json\\n3. https://docs.microsoft.com/en-us/rest/api/compute/disks/delete\\n4. https://docs.microsoft.com/en-us/cli/azure/disk?view=azure-cli-latest#az-disk-delete\\n5. https://docs.microsoft.com/en-us/rest/api/compute/disks/update#encryptionsettings\\n6. https://docs.microsoft.com/en-us/cli/azure/disk?view=azure-cli-latest#az-disk-update\\n7. https://docs.microsoft.com/en-us/azure/security/benchmarks/security-controls-v2-data-protection#dp-5-encrypt-sensitive-data-at-rest\\n\\n## CIS Controls\\n\\nVersion 7 14.8 - Encrypt Sensitive Information at Rest - Encrypt all sensitive information at rest using a tool that requires a secondary authentication mechanism not integrated into the operating system, in order to access the information.\\n\\n[1]: https://docs.microsoft.com/en-us/rest/api/compute/disks/delete -https://docs.microsoft.com/en-us/cli/azure/disk?view=azure-cli-latest#az-disk-delete\\n[2]: https://docs.microsoft.com/en-us/azure/virtual-machines/disks-enable-customer-managed-keys-portal\\n[3]: https://docs.microsoft.com/en-us/rest/api/compute/disks/update#encryptionsettings\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":7200,\"maxSignalDuration\":86400,\"complianceRuleOptions\":{\"complianceFrameworks\":[{\"control\":\"7.3\",\"framework\":\"cis-azure\",\"requirement\":\"Virtual-Machines\",\"version\":\"1.3.0\"},{\"control\":\"3.4.1\",\"framework\":\"pci\",\"requirement\":\"Cardholder-Data\",\"version\":\"3.2.1\"},{\"control\":\"8.2.1\",\"framework\":\"pci\",\"requirement\":\"Credentials\",\"version\":\"3.2.1\"},{\"control\":\"A.18.1.3\",\"framework\":\"iso-27001\",\"requirement\":\"Compliance\",\"version\":\"2\"},{\"control\":\"CC6.1\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"}],\"validationQuery\":\"-@encryption_type:EncryptionAtRestWithCustomerKey\",\"resourceType\":\"azure_managed_disk\",\"filter\":\"@disk_state:Unattached\",\"queryPath\":\"\",\"complexRule\":false},\"keepAlive\":21600},\"version\":7,\"isDefault\":true,\"filters\":[],\"queries\":[{\"query\":\"resource_type:azure_managed_disk @disk_state:Unattached (-@encryption_type:EncryptionAtRestWithCustomerKey)\",\"groupByFields\":[\"resource_type\",\"resource_id\"],\"aggregation\":\"count\",\"name\":\"a\",\"distinctFields\":[]}],\"isDeleted\":false,\"complianceSignalOptions\":{\"defaultActivationStatus\":true,\"userActivationStatus\":null,\"defaultGroupByFields\":[\"@resource\"],\"userGroupByFields\":null},\"cases\":[{\"status\":\"high\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"id\":\"bae-mte-pj5\",\"createdAt\":1631690476274,\"name\":\"'Unattached disks' are encrypted with CMK\"},{\"updateAuthorId\":0,\"creationAuthorId\":0,\"tags\":[\"scored:true\",\"control:10.2.7\",\"control:10.3.6\",\"control:10.5.4\",\"requirement:Cloud-SQL\",\"cloud_provider:gcp\",\"control:10.2.6\",\"control:10.3.5\",\"control:10.5.3\",\"source:google_sql_database_instance\",\"control:10.1\",\"requirement:Monitoring\",\"control:10.2.1\",\"control:10.2.5\",\"control:10.3.4\",\"control:A.12.4.1\",\"control:10.2.4\",\"control:10.3.3\",\"control:10.2.3\",\"control:10.3.2\",\"control:A.12.4.3\",\"control:10.2.2\",\"control:10.3.1\",\"framework:cis-gcp\",\"level:1\",\"scope:google_sql_database_instance\",\"framework:iso-27001\",\"framework:pci\",\"requirement:Operations-Security\",\"security:compliance\",\"control:6.2.9\",\"requirement:System-Operations\",\"requirement:Control-Activities\",\"framework:soc-2\",\"control:10.2\",\"control:10.3\",\"control:CC7.2\",\"control:CC5.2\"],\"type\":\"cloud_configuration\",\"isEnabled\":true,\"hasExtendedTitle\":true,\"message\":\"## Description\\n\\nEnable the `cloudsql.enable_pgaudit` database flag so that each Cloud SQL PostgreSQL instance has centralized logging.\\n\\n## Rationale\\n\\nBecause many other recommendations in this section involve turning on flags for logging\\npurposes, your organization needs a way to manage these logs. If you do not already have a solution in \\nplace, consider enabling database auditing in PostgreSQL by installing the open source pgAudit extension and enabling the `cloudsql.enable_pgaudit` flag. The extension provides\\ndetailed session and object logging to comply with government, financial, and ISO standards. It provides \\nauditing capabilities to mitigate threats by monitoring security events on the\\ninstance. Enabling the flag and the settings described below sends the logs to\\nGoogle Logs Explorer so that you can access them in a central location. This\\nrecommendation is applicable only to PostgreSQL database instances.\\n\\n## Impact\\n\\nEnabling the pgAudit extension can lead to increased data storage requirements. To\\nensure durability of pgAudit log records in the event of unexpected storage issues, \\nenable the **Enable automatic storage increases** setting on the\\ninstance. Enabling flags on the command line will overwrite all existing flags, so you\\nshould apply _all_ needed flags in each CLI command. You might need to restart the\\nserver to see the effects of enabling flags, so update your servers at a\\ntime of low usage.\\n\\n## Remediation\\n\\n### Initialize the pgAudit flag\\n\\n#### From the console\\n1. Go to [GCP console][1].\\n2. Select the instance to open its Overview page.\\n3. Click **Edit**.\\n4. Scroll down and expand Flags.\\n5. To set a flag that has not been set on the instance before, click **Add item**.\\n6. Enter `cloudsql.enable_pgaudit` for the flag name and set the flag to on.\\n7. Click **Done**.\\n8. Click **Save** to update the configuration.\\n9. Confirm your changes under Flags on the Overview page.\\n\\n#### From the command line\\nRun the following command by providing to enable `cloudsql.enable_pgaudit` flag:\\n```\\ngcloud sql instances patch --database-flags=cloudsql.enable_pgaudit=on\\n```\\n \\n**Note**: Restart the database server for this configuration change to take effect.\\n\\n### Create the extension\\n1. Connect to the the server running PostgreSQL or through a SQL client of your choice.\\n2. Open the PostgreSQL shell. For example, if you're using SSH to access the server, run:\\n3. Run the following command as a superuser:\\n ```\\n CREATE EXTENSION pgaudit;\\n ```\\n### Update the `pgaudit.log` flag\\n\\n#### From the console\\n**Note**: There are multiple options for updating the flag. The following instructions enable logging for all databases\\non a server. Read [Customizing database audit logging][4] for more flag\\noptions.\\n\\n1. Go to [GCP console][1].\\n2. Select the instance to open its Overview page.\\n3. Click **Edit**.\\n4. Scroll down and expand Flags.\\n5. To set a flag that has not been set on the instance before, click **Add item**.\\n6. Enter `pgaudit.log=all` for the flag name and set the flag to on.\\n7. Click **Done**.\\n8. Click **Save** to update the configuration.\\n9. Confirm your changes under Flags on the Overview page.\\n\\n#### From the command line\\n\\nRun the command:\\n```\\ngcloud sql instances patch --database-flags \\\\\\ncloudsql.enable_pgaudit=on,pgaudit.log=all\\n```\\n\\n### Check for the logs in Google Logs Explorer\\n1. From the Google Console home page, open the menu in the top left.\\n2. In the menu's Operations section, select Logs Explorer.\\n3. In the query box, copy in the following query:\\n\\n ```\\n resource.type=\\\"cloudsql_database\\\"\\n logName=\\\"projects//logs/cloudaudit.googleapis.com%2Fdata_access\\\"\\n protoPayload.request.@type=\\\"type.googleapis.com/google.cloud.sql.audit.v1.PgAuditEntry\\n ```\\nIf it returns any log sources, they are correctly set up.\\n\\n## Default value\\nBy default `cloudsql.enable_pgaudit` database flag is set to off and the extension is not enabled.\\n\\n## References\\n1. [https://cloud.google.com/sql/docs/postgres/flags#list-flags-postgres][2]\\n2. [https://cloud.google.com/sql/docs/postgres/pg-audit#enable-auditing-flag][3]\\n3. [https://cloud.google.com/sql/docs/postgres/pg-audit#customizing-database-audit-logging][4]\\n4. [https://cloud.google.com/logging/docs/audit/configure-data-access#config-console-enable][5]\\n\\n## Additional Information\\n**WARNING**: This extension modifies database flag values, which may require your instance to be\\nrestarted. Check the [List of supported flags][6] to see if your instance needs to be restarted\\nwhen this extension is set up.\\n**Note**: Configuring the `cloudsql.enable_pgaudit` database flag requires restarting the Cloud\\nSQL PostgreSQL instance.\\n\\n## CIS controls\\n\\nVersion 8\\n8.5 - Collect Detailed Audit Logs\\n- Configure detailed audit logging for enterprise assets containing sensitive data.\\nInclude event source, date, username, timestamp, source addresses, destination\\naddresses, and other useful elements that could assist in a forensic investigation.\\n\\n8.9 - Centralize Audit Logs\\n- Centralize, to the extent possible, audit log collection and retention across\\nenterprise assets.\\n\\n[1]: https://console.cloud.google.com/sql/instances\\n[2]: https://cloud.google.com/sql/docs/postgres/flags#list-flags-postgres\\n[3]: https://cloud.google.com/sql/docs/postgres/pg-audit#enable-auditing-flag\\n[4]: https://cloud.google.com/sql/docs/postgres/pg-audit#customizing-database-audit-logging\\n[5]: https://cloud.google.com/logging/docs/audit/configure-data-access#config-console-enable\\n[6]: https://cloud.google.com/sql/docs/postgres/flags\\n\\n\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":7200,\"maxSignalDuration\":86400,\"complianceRuleOptions\":{\"complianceFrameworks\":[{\"control\":\"6.2.9\",\"framework\":\"cis-gcp\",\"requirement\":\"Cloud-SQL\",\"version\":\"1.3.0\"},{\"control\":\"10.1\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.2\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.2.1\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.2.2\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.2.3\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.2.4\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.2.5\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.2.6\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.2.7\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.3\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.3.1\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.3.2\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.3.3\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.3.4\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.3.5\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.3.6\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.5.3\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.5.4\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"A.12.4.1\",\"framework\":\"iso-27001\",\"requirement\":\"Operations-Security\",\"version\":\"2\"},{\"control\":\"A.12.4.3\",\"framework\":\"iso-27001\",\"requirement\":\"Operations-Security\",\"version\":\"2\"},{\"control\":\"CC5.2\",\"framework\":\"soc-2\",\"requirement\":\"Control-Activities\",\"version\":\"2\"},{\"control\":\"CC7.2\",\"framework\":\"soc-2\",\"requirement\":\"System-Operations\",\"version\":\"2\"}],\"regoRule\":{\"policy\":\"package datadog\\n\\nimport data.datadog.output as dd_output\\n\\nimport future.keywords.contains\\nimport future.keywords.if\\nimport future.keywords.in\\n\\neval(sql_database_instance) = \\\"skip\\\" if {\\n\\tnot is_PostgreSQL(sql_database_instance)\\n} else = \\\"pass\\\" {\\n\\tdatabase_flags := sql_database_instance.settings.database_flags[_]\\n\\tdatabase_flags.name == \\\"cloudsql.enable_pgaudit\\\"\\n\\tdatabase_flags.value == \\\"on\\\"\\n} else = \\\"fail\\\" {\\n\\ttrue\\n}\\n\\nis_PostgreSQL(sql_database_instance) if {\\n\\tstartswith(sql_database_instance.database_version, \\\"POSTGRES_\\\")\\n}\\n\\n# This part remains unchanged for all rules\\nresults contains result if {\\n\\tsome resource in input.resources[input.main_resource_type]\\n\\tresult := dd_output.format(resource, eval(resource))\\n}\\n\",\"resourceTypes\":[\"gcp_sql_database_instance\"]},\"validationQuery\":\"\",\"resourceType\":\"gcp_sql_database_instance\",\"filter\":\"\",\"queryPath\":\"\",\"complexRule\":false},\"keepAlive\":21600},\"version\":7,\"isDefault\":true,\"filters\":[],\"queries\":[{\"query\":\"resource_type:gcp_sql_database_instance\",\"groupByFields\":[\"resource_type\",\"resource_id\"],\"aggregation\":\"count\",\"name\":\"a\",\"distinctFields\":[]}],\"isDeleted\":false,\"complianceSignalOptions\":{\"defaultActivationStatus\":false,\"userActivationStatus\":null,\"defaultGroupByFields\":[\"@resource\"],\"userGroupByFields\":null},\"cases\":[{\"status\":\"medium\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"id\":\"6hz-owg-7y7\",\"createdAt\":1657889011689,\"name\":\"'cloudsql.enable_pgaudit' database flag is set to 'on' for centralized logging on Postgresql Instance\"},{\"updateAuthorId\":0,\"creationAuthorId\":0,\"tags\":[\"control:CC6.8\",\"scored:true\",\"control:CC6.7\",\"requirement:Cloud-SQL\",\"cloud_provider:gcp\",\"source:google_sql_database_instance\",\"requirement:Default-Security-Parameter\",\"framework:cis-gcp\",\"requirement:Compliance\",\"level:1\",\"control:2.2.4\",\"scope:google_sql_database_instance\",\"framework:iso-27001\",\"requirement:Access-Control\",\"framework:pci\",\"security:compliance\",\"control:6.3.7\",\"requirement:Least-Privileged-Access\",\"requirement:Confidentiality\",\"requirement:Communications-Security\",\"control:7.1\",\"control:C1.1\",\"control:A.13.1.1\",\"control:A.18.1.3\",\"framework:soc-2\",\"control:A.9.1.2\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"],\"type\":\"cloud_configuration\",\"isEnabled\":true,\"hasExtendedTitle\":true,\"message\":\"## Description\\n\\nIt is recommended to set `contained database authentication` database flag for SQL Server instances to `off`.\\n\\n## Rationale\\n\\nA contained database includes all database settings and metadata required to define the database and has no configuration dependencies on the instance of the Database Engine where the database is installed. Users can connect to the database without authenticating a login at the Database Engine level. Isolating the database from the Database Engine makes it possible to easily move the database to another instance of SQL Server. Contained databases have some unique threats that should be understood and mitigated by SQL Server Database Engine administrators. Most of the threats are related to the `USER WITH PASSWORD` authentication process, which moves the authentication boundary from the Database Engine level to the database level. Hence, disabling this flag is recommended. This recommendation is applicable to SQL Server database instances.\\n\\n## Impact\\n\\nWhen `contained database authentication` is off (`0`) for the instance, contained databases cannot be created, or attached to the Database Engine. Turning on logging will increase the required storage over time. Mismanaged logs may cause your storage costs to increase. Setting custom flags via the command line on certain instances will cause all omitted flags to be reset to defaults. This may cause you to lose custom flags and could result in unforeseen complications or instance restarts. Because of this, it is recommended that you apply these flag changes during a period of low usage.\\n\\n## Remediation\\n\\n### From the console\\n\\n1. Go to the [Cloud SQL Instances][1] page in the Google Cloud Console.\\n2. Select the SQL Server instance for which you want to enable the database flag.\\n3. Click **Edit**.\\n4. Scroll down to the **Flags** section.\\n5. To set a flag that has not been set on the instance before, click **Add item**, choose the flag `contained database authentication` from the drop-down menu, and set its value to `off`.\\n6. Click **Save**.\\n7. Confirm the changes under **Flags** on the Overview page.\\n\\n### From the command line\\n\\nConfigure the `contained database authentication` database flag for every SQL Server database instance using the below command.\\n```\\ngcloud sql instances patch --database-flags \\\"contained database authentication=off\\\"\\n```\\n\\n**Note**: This command will overwrite all database flags previously set. To keep the flags previously set and add new ones, include the values for all flags you want set on the instance; any flag not specifically included is set to its default value. For flags that do not take a value, specify the flag name followed by an equals sign (`=`).\\n\\n\\n## Additional Information\\n\\n- Configuring this flag does not restart the SQL Server instance.\\n\\n- Some database flag settings can affect instance availability or stability and remove the instance from the Cloud SQL SLA. For information about these flags, see Operational Guidelines.\\n\\n## References\\n\\n1. [https://cloud.google.com/sql/docs/sqlserver/flags][2]\\n2. [https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/contained-database-authentication-server-configuration-option?view=sql-server-ver15][3]\\n3. [https://docs.microsoft.com/en-us/sql/relational-databases/databases/security-best-practices-with-contained-databases?view=sql-server-ver15][4]\\n\\n[1]: https://console.cloud.google.com/sql/instances\\n[2]: https://cloud.google.com/sql/docs/sqlserver/flags\\n[3]: https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/contained-database-authentication-server-configuration-option?view=sql-server-ver15\\n[4]: https://docs.microsoft.com/en-us/sql/relational-databases/databases/security-best-practices-with-contained-databases?view=sql-server-ver15\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":7200,\"maxSignalDuration\":86400,\"complianceRuleOptions\":{\"complianceFrameworks\":[{\"control\":\"6.3.7\",\"framework\":\"cis-gcp\",\"requirement\":\"Cloud-SQL\",\"version\":\"1.3.0\"},{\"control\":\"A.9.1.2\",\"framework\":\"iso-27001\",\"requirement\":\"Access-Control\",\"version\":\"2\"},{\"control\":\"A.13.1.1\",\"framework\":\"iso-27001\",\"requirement\":\"Communications-Security\",\"version\":\"2\"},{\"control\":\"A.18.1.3\",\"framework\":\"iso-27001\",\"requirement\":\"Compliance\",\"version\":\"2\"},{\"control\":\"CC6.1\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"},{\"control\":\"CC6.3\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"},{\"control\":\"CC6.7\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"},{\"control\":\"CC6.8\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"},{\"control\":\"C1.1\",\"framework\":\"soc-2\",\"requirement\":\"Confidentiality\",\"version\":\"2\"},{\"control\":\"2.2.4\",\"framework\":\"pci\",\"requirement\":\"Default-Security-Parameter\",\"version\":\"3.2.1\"},{\"control\":\"7.1\",\"framework\":\"pci\",\"requirement\":\"Least-Privileged-Access\",\"version\":\"3.2.1\"}],\"regoRule\":{\"policy\":\"package datadog\\n\\nimport data.datadog.output as dd_output\\n\\nimport future.keywords.contains\\nimport future.keywords.if\\nimport future.keywords.in\\n\\neval(sql_database_instance) = \\\"skip\\\" if {\\n\\tnot is_SQLServer(sql_database_instance)\\n} else = \\\"fail\\\" {\\n\\tdatabase_flags := sql_database_instance.settings.database_flags[_]\\n\\tdatabase_flags.name == \\\"contained database authentication\\\"\\n\\tdatabase_flags.value == \\\"on\\\"\\n} else = \\\"pass\\\" {\\n\\ttrue\\n}\\n\\nis_SQLServer(sql_database_instance) if {\\n\\tstartswith(sql_database_instance.database_version, \\\"SQLSERVER\\\")\\n}\\n\\n# This part remains unchanged for all rules\\nresults contains result if {\\n\\tsome resource in input.resources[input.main_resource_type]\\n\\tresult := dd_output.format(resource, eval(resource))\\n}\\n\",\"resourceTypes\":[\"gcp_sql_database_instance\"]},\"validationQuery\":\"\",\"resourceType\":\"gcp_sql_database_instance\",\"filter\":\"\",\"queryPath\":\"\",\"complexRule\":false},\"keepAlive\":21600},\"version\":7,\"isDefault\":true,\"filters\":[],\"queries\":[{\"query\":\"resource_type:gcp_sql_database_instance\",\"groupByFields\":[\"resource_type\",\"resource_id\"],\"aggregation\":\"count\",\"name\":\"a\",\"distinctFields\":[]}],\"isDeleted\":false,\"complianceSignalOptions\":{\"defaultActivationStatus\":false,\"userActivationStatus\":null,\"defaultGroupByFields\":[\"@resource\"],\"userGroupByFields\":null},\"cases\":[{\"status\":\"medium\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"id\":\"snw-rsr-ilm\",\"createdAt\":1658463161618,\"name\":\"'contained database authentication' database flag is set to 'off' for SQL Server Instance\"},{\"updateAuthorId\":0,\"creationAuthorId\":0,\"tags\":[\"scored:true\",\"control:CC6.6\",\"requirement:Cloud-SQL\",\"cloud_provider:gcp\",\"source:google_sql_database_instance\",\"requirement:Default-Security-Parameter\",\"requirement:Credentials\",\"framework:cis-gcp\",\"requirement:Compliance\",\"control:8.7\",\"level:1\",\"scope:google_sql_database_instance\",\"control:2.2.2\",\"framework:iso-27001\",\"requirement:Access-Control\",\"framework:pci\",\"control:6.3.2\",\"security:compliance\",\"requirement:Least-Privileged-Access\",\"requirement:Communications-Security\",\"control:7.1\",\"requirement:Control-Activities\",\"control:A.13.1.1\",\"control:A.18.1.3\",\"framework:soc-2\",\"control:A.9.1.2\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC5.2\",\"control:CC6.1\"],\"type\":\"cloud_configuration\",\"isEnabled\":true,\"hasExtendedTitle\":true,\"message\":\"## Description\\nIt is recommended that you set the `cross db ownership chaining` database flag for SQL Server instance to `off`.\\n\\n## Rationale\\nThe `cross db ownership` option is used to configure cross-database ownership chaining for an instance of Microsoft SQL Server. This server option allows you to control cross-database ownership chaining at the database level or to allow cross-database ownership chaining for all databases. Enabling `cross db ownership` is not recommended unless all of the databases hosted by the instance of SQL Server must participate in cross-database ownership chaining, and you are aware of the security implications of this setting. This recommendation is applicable to SQL Server database instances.\\n\\n### Impact\\nUpdating flags may cause the database to restart. This may cause the database to be unavailable for a short amount of time, so this is best done at a time of low usage. You should also determine if the tables in your databases reference another table without using credentials for that database, as turning off cross database ownership will break this relationship.\\n\\n - Some database flag settings can affect instance availability or stability, and remove the instance from the Cloud SQL SLA. For information about these flags, see Operational Guidelines.\\n\\n - Configuring the `cross db ownership chaining` flag does not restart the Cloud SQL instance.\\n\\n - Note: The command to set database flags overwrites all database flags previously set. To keep the existing settings while adding new flags, include the values for all flags to be set on the instance. Cloud SQL sets any flag not specifically included in the list to its default value. For flags that do not take a value, specify the flag name followed by an equals sign (\\\"=\\\").\\n\\n## Remediation\\n\\n### From the console\\n1. Go to the [Cloud SQL Instances page][1] in Google Cloud Console.\\n2. Select the SQL Server instance for which you want to enable to database flag.\\n3. Click **Edit**.\\n4. Scroll down to the **Flags** section.\\n5. To set a flag that has not been set on the instance before, click **Add item**, choose the flag `cross db ownership chaining` from the drop-down menu, and set its value to `off`.\\n6. Click **Save**.\\n7. Confirm the changes under **Flags** on the Overview page.\\n\\n### From the command line\\nConfigure the `cross db ownership chaining` database flag for every SQL Server database instance using the below command:\\n \\n```\\ngcloud sql instances patch --database-flags \\\"cross db ownership chaining=off\\\"\\n```\\n\\n## References\\n1. [https://cloud.google.com/sql/docs/sqlserver/flags][2]\\n2. [https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/cross-db-ownership-chaining-server-configuration-option?view=sql-server-ver15][3]\\n\\n[1]: https://console.cloud.google.com/sql/instances\\n[2]: https://cloud.google.com/sql/docs/sqlserver/flags\\n[3]: https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/cross-db-ownership-chaining-server-configuration-option?view=sql-server-ver15\\n\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":7200,\"maxSignalDuration\":86400,\"complianceRuleOptions\":{\"complianceFrameworks\":[{\"control\":\"6.3.2\",\"framework\":\"cis-gcp\",\"requirement\":\"Cloud-SQL\",\"version\":\"1.3.0\"},{\"control\":\"2.2.2\",\"framework\":\"pci\",\"requirement\":\"Default-Security-Parameter\",\"version\":\"3.2.1\"},{\"control\":\"7.1\",\"framework\":\"pci\",\"requirement\":\"Least-Privileged-Access\",\"version\":\"3.2.1\"},{\"control\":\"8.7\",\"framework\":\"pci\",\"requirement\":\"Credentials\",\"version\":\"3.2.1\"},{\"control\":\"A.9.1.2\",\"framework\":\"iso-27001\",\"requirement\":\"Access-Control\",\"version\":\"2\"},{\"control\":\"A.13.1.1\",\"framework\":\"iso-27001\",\"requirement\":\"Communications-Security\",\"version\":\"2\"},{\"control\":\"A.18.1.3\",\"framework\":\"iso-27001\",\"requirement\":\"Compliance\",\"version\":\"2\"},{\"control\":\"CC5.2\",\"framework\":\"soc-2\",\"requirement\":\"Control-Activities\",\"version\":\"2\"},{\"control\":\"CC6.1\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"},{\"control\":\"CC6.6\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"}],\"regoRule\":{\"policy\":\"package datadog\\n\\nimport data.datadog.output as dd_output\\n\\nimport future.keywords.contains\\nimport future.keywords.if\\nimport future.keywords.in\\n\\neval(sql_database_instance) = \\\"skip\\\" if {\\n\\tnot is_SQLServer(sql_database_instance)\\n} else = \\\"fail\\\" {\\n\\tdatabase_flags := sql_database_instance.settings.database_flags[_]\\n\\tdatabase_flags.name == \\\"cross db ownership chaining\\\"\\n\\tdatabase_flags.value == \\\"on\\\"\\n} else = \\\"pass\\\" {\\n\\ttrue\\n}\\n\\nis_SQLServer(sql_database_instance) if {\\n\\tstartswith(sql_database_instance.database_version, \\\"SQLSERVER\\\")\\n}\\n\\n# This part remains unchanged for all rules\\nresults contains result if {\\n\\tsome resource in input.resources[input.main_resource_type]\\n\\tresult := dd_output.format(resource, eval(resource))\\n}\\n\",\"resourceTypes\":[\"gcp_sql_database_instance\"]},\"validationQuery\":\"\",\"resourceType\":\"gcp_sql_database_instance\",\"filter\":\"\",\"queryPath\":\"\",\"complexRule\":false},\"keepAlive\":21600},\"version\":10,\"isDefault\":true,\"filters\":[],\"queries\":[{\"query\":\"resource_type:gcp_sql_database_instance\",\"groupByFields\":[\"resource_type\",\"resource_id\"],\"aggregation\":\"count\",\"name\":\"a\",\"distinctFields\":[]}],\"isDeleted\":false,\"complianceSignalOptions\":{\"defaultActivationStatus\":false,\"userActivationStatus\":null,\"defaultGroupByFields\":[\"@resource\"],\"userGroupByFields\":null},\"cases\":[{\"status\":\"medium\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"id\":\"yje-u1y-rls\",\"createdAt\":1657665271111,\"name\":\"'cross db ownership chaining' database flag is set to 'off' for SQL Server Instance\"},{\"updateAuthorId\":0,\"creationAuthorId\":0,\"tags\":[\"scored:true\",\"control:CC6.6\",\"requirement:Cloud-SQL\",\"cloud_provider:gcp\",\"source:google_sql_database_instance\",\"requirement:Default-Security-Parameter\",\"framework:cis-gcp\",\"requirement:Compliance\",\"level:1\",\"scope:google_sql_database_instance\",\"control:2.2.2\",\"framework:iso-27001\",\"requirement:Access-Control\",\"framework:pci\",\"security:compliance\",\"control:6.3.1\",\"requirement:Least-Privileged-Access\",\"control:7.2\",\"requirement:Communications-Security\",\"control:7.1\",\"requirement:Control-Activities\",\"control:7.2.1\",\"control:A.13.1.1\",\"control:A.18.1.3\",\"framework:soc-2\",\"control:A.9.1.2\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC5.2\",\"control:CC6.1\"],\"type\":\"cloud_configuration\",\"isEnabled\":true,\"hasExtendedTitle\":true,\"message\":\"## Description\\n\\nIt is recommended to set `external scripts enabled` database flag for SQL Server instance to `off`.\\n\\n## Rationale\\n\\nThe `external scripts enabled` flag enables the execution of scripts with certain remote language extensions. This flag is `off` by default. When Advanced Analytics Services is installed, during the set up, you can optionally set this flag to `on`. The External Scripts Enabled feature allows scripts external to SQL, such as files located in an R library, to be executed, which could adversely affect the security of the system. Hence, the flag should be disabled. This recommendation is applicable to SQL Server database instances.\\n\\n## Impact\\n\\nSetting custom flags through the command line on certain instances can cause all omitted flags to be reset to defaults. This may cause you to lose custom flags and could result in unforeseen complications or instance restarts. Because of this, it is recommended that you apply these flag changes during a period of low usage.\\n\\n## Remediation\\n\\n### From the console\\n\\n1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances][1].\\n2. Select the SQL Server instance for which you want to enable the database flag.\\n3. Click **Edit**.\\n4. Scroll down to the Flag section.\\n5. Click **Add item** to set a flag that has not been set on the instance before. Choose the flag `external scripts enabled` from the drop-down menu, and set its value to `off`.\\n6. Click **Save**.\\n7. Confirm your changes under the Flags section on the Overview page.\\n\\n### From the command line\\n\\nConfigure the `external scripts enabled` database flag for every SQL Server database instance using the following command:\\n\\n```\\ngcloud sql instances patch --database-flags \\\"external scripts enabled=off\\\"\\n```\\n\\nNote: This command overwrites all database flags previously set. To keep those and add new ones, include the values for all flags you want set on the instance; any flag not specifically included is set to its default value. For flags that do not take a value, specify the flag name followed by an equals sign (=).\\n\\n## Default Value\\n\\nBy default `external scripts enabled` is `off`.\\n\\n## Additional information\\n\\n- Some database flag settings can affect instance availability or stability, and remove the instance from the Cloud SQL SLA. For information about these flags, see Operational Guidelines.\\n\\n- Configuring the `external scripts enabled` flag restarts the Cloud SQL instance.\\n\\n## References\\n\\n1. [https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/external-scripts-enabled-server-configuration-option?view=sql-server-ver15][2]\\n2. [https://cloud.google.com/sql/docs/sqlserver/flags][3]\\n3. [https://docs.microsoft.com/en-us/sql/advanced-analytics/concepts/security?view=sql-server-ver15][4]\\n4. [https://www.stigviewer.com/stig/ms_sql_server_2016_instance/2018-03-09/finding/V-79347][5]\\n\\n## CIS Controls\\n\\nVersion 8 - 2.7 Allowlist Authorized Scripts\\n- Use technical controls, such as digital signatures and version control, to ensure that only authorized scripts, such as specific .ps1, .py, etc., files, are allowed to execute. Block unauthorized scripts from executing. Reassess bi-annually, or more frequently.\\n\\nVersion 7 - 2.9 Implement Application Whitelisting of Scripts\\n- The organization's application whitelisting software must ensure that only authorized, digitally signed scripts (such as *.ps1, *.py, macros, etc) are allowed to run on a system.\\n\\n[1]: https://console.cloud.google.com/sql/instances\\n[2]: https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/external-scripts-enabled-server-configuration-option?view=sql-server-ver15\\n[3]: https://cloud.google.com/sql/docs/sqlserver/flags\\n[4]: https://docs.microsoft.com/en-us/sql/advanced-analytics/concepts/security?view=sql-server-ver15\\n[5]: https://www.stigviewer.com/stig/ms_sql_server_2016_instance/2018-03-09/finding/V-79337\\n\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":7200,\"maxSignalDuration\":86400,\"complianceRuleOptions\":{\"complianceFrameworks\":[{\"control\":\"6.3.1\",\"framework\":\"cis-gcp\",\"requirement\":\"Cloud-SQL\",\"version\":\"1.3.0\"},{\"control\":\"2.2.2\",\"framework\":\"pci\",\"requirement\":\"Default-Security-Parameter\",\"version\":\"3.2.1\"},{\"control\":\"7.1\",\"framework\":\"pci\",\"requirement\":\"Least-Privileged-Access\",\"version\":\"3.2.1\"},{\"control\":\"7.2\",\"framework\":\"pci\",\"requirement\":\"Least-Privileged-Access\",\"version\":\"3.2.1\"},{\"control\":\"7.2.1\",\"framework\":\"pci\",\"requirement\":\"Least-Privileged-Access\",\"version\":\"3.2.1\"},{\"control\":\"A.9.1.2\",\"framework\":\"iso-27001\",\"requirement\":\"Access-Control\",\"version\":\"2\"},{\"control\":\"A.13.1.1\",\"framework\":\"iso-27001\",\"requirement\":\"Communications-Security\",\"version\":\"2\"},{\"control\":\"A.18.1.3\",\"framework\":\"iso-27001\",\"requirement\":\"Compliance\",\"version\":\"2\"},{\"control\":\"CC5.2\",\"framework\":\"soc-2\",\"requirement\":\"Control-Activities\",\"version\":\"2\"},{\"control\":\"CC6.1\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"},{\"control\":\"CC6.6\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"}],\"regoRule\":{\"policy\":\"package datadog\\n\\nimport data.datadog.output as dd_output\\n\\nimport future.keywords.contains\\nimport future.keywords.if\\nimport future.keywords.in\\n\\neval(sql_database_instance) = \\\"skip\\\" if {\\n\\tnot is_SQLServer(sql_database_instance)\\n} else = \\\"fail\\\" {\\n\\tdatabase_flags := sql_database_instance.settings.database_flags[_]\\n\\tdatabase_flags.name == \\\"external scripts enabled\\\"\\n\\tdatabase_flags.value == \\\"on\\\"\\n} else = \\\"pass\\\" {\\n\\ttrue\\n}\\n\\nis_SQLServer(sql_database_instance) if {\\n\\tstartswith(sql_database_instance.database_version, \\\"SQLSERVER\\\")\\n}\\n\\n# This part remains unchanged for all rules\\nresults contains result if {\\n\\tsome resource in input.resources[input.main_resource_type]\\n\\tresult := dd_output.format(resource, eval(resource))\\n}\\n\",\"resourceTypes\":[\"gcp_sql_database_instance\"]},\"validationQuery\":\"\",\"resourceType\":\"gcp_sql_database_instance\",\"filter\":\"\",\"queryPath\":\"\",\"complexRule\":false},\"keepAlive\":21600},\"version\":7,\"isDefault\":true,\"filters\":[],\"queries\":[{\"query\":\"resource_type:gcp_sql_database_instance\",\"groupByFields\":[\"resource_type\",\"resource_id\"],\"aggregation\":\"count\",\"name\":\"a\",\"distinctFields\":[]}],\"isDeleted\":false,\"complianceSignalOptions\":{\"defaultActivationStatus\":false,\"userActivationStatus\":null,\"defaultGroupByFields\":[\"@resource\"],\"userGroupByFields\":null},\"cases\":[{\"status\":\"medium\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"id\":\"14g-yot-4od\",\"createdAt\":1657715719319,\"name\":\"'external scripts enabled' database flag is set to 'off' for SQL Server Instance\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 24 Oct 2022 20:38:42 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"total_filtered_count\":10,\"total_count\":838}},\"data\":[{\"updateAuthorId\":0,\"creationAuthorId\":0,\"tags\":[\"scored:true\",\"security:compliance\",\"requirement:Cloud-SQL\",\"cloud_provider:gcp\",\"control:6.3.6\",\"source:google_sql_database_instance\",\"control:3.4\",\"requirement:Communications-Security\",\"framework:cis-gcp\",\"requirement:Compliance\",\"level:1\",\"control:A.13.1.1\",\"control:A.18.1.3\",\"framework:soc-2\",\"scope:google_sql_database_instance\",\"requirement:Cardholder-Data\",\"control:A.9.1.2\",\"framework:iso-27001\",\"requirement:Logical-and-Physical-Access-Control\",\"requirement:Access-Control\",\"framework:pci\",\"control:CC6.1\"],\"type\":\"cloud_configuration\",\"isEnabled\":true,\"hasExtendedTitle\":true,\"message\":\"## Description\\n\\nIt is recommended to set `3625 (trace flag)` database flag to `off` for GCP SQL Server instance.\\n\\n## Rationale\\n\\nMicrosoft SQL trace flags are frequently used to diagnose performance issues or to debug stored procedures or complex computer systems, but they may also be recommended by Microsoft Support to address behavior that is negatively impacting a specific workload. All documented trace flags and those recommended by Microsoft Support are fully supported in a production environment when used as directed. `3625 (trace log)` limits the information returned to users who are not members of the sysadmin fixed server role, by masking the parameters of some error messages using '******'. Setting this in a Google Cloud flag for the instance allows for security through obscurity and prevents the disclosure of sensitive information. Hence, it is recommended to set this flag to `off` globally to prevent the flag from being left on or turned on by bad actors. This recommendation is applicable to SQL Server database instances.\\n\\n## Impact\\n\\nChanging flags on a database may cause it to be restarted. The best time to do this is when there is low usage.\\n\\n## Remediation\\n\\n### From the console\\n\\n1. Go to the [Cloud SQL Instances][1] page in the Google Cloud Console.\\n2. Select the SQL Server instance for which you want to enable the database flag.\\n3. Click **Edit**.\\n4. Scroll down to the Flags section.\\n5. Click **Add item** to set a flag that has not been set on the instance before. Choose the flag `3625` from the drop-down menu, and set its value to `off`.\\n6. Click **Save**.\\n7. Confirm your changes under the Flags section on the Overview page.\\n\\n### From the command line\\n\\nConfigure the `3625` database flag for every GCP SQL Server database instance using the below command.\\n```\\ngcloud sql instances patch --database-flags \\\"3625=off\\\"\\n```\\n\\n#### Note\\nThis command will overwrite all database flags previously set. To keep the flags previously set and add new ones, include the values for all flags you want set on the instance; any flag not specifically included is set to its default value. For flags that do not take a value, specify the flag name followed by an equals sign (=).\\n\\n\\n## Additional Information\\n\\n- Configuring the above flag restarts the GCP SQL Server instance.\\n\\n- Some database flag settings can affect instance availability or stability, and remove the instance from the Cloud SQL SLA. For information about these flags, see Operational Guidelines.\\n\\n## References\\n\\n1. [https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-traceon-trace-flags-transact-sql?view=sql-server-ver15#trace-flags][2]\\n\\n[1]: https://console.cloud.google.com/sql/instances\\n[2]: https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-traceon-trace-flags-transact-sql?view=sql-server-ver15#trace-flags\\n\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":7200,\"maxSignalDuration\":86400,\"complianceRuleOptions\":{\"complianceFrameworks\":[{\"control\":\"6.3.6\",\"framework\":\"cis-gcp\",\"requirement\":\"Cloud-SQL\",\"version\":\"1.3.0\"},{\"control\":\"CC6.1\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"},{\"control\":\"A.9.1.2\",\"framework\":\"iso-27001\",\"requirement\":\"Access-Control\",\"version\":\"2\"},{\"control\":\"A.13.1.1\",\"framework\":\"iso-27001\",\"requirement\":\"Communications-Security\",\"version\":\"2\"},{\"control\":\"A.18.1.3\",\"framework\":\"iso-27001\",\"requirement\":\"Compliance\",\"version\":\"2\"},{\"control\":\"3.4\",\"framework\":\"pci\",\"requirement\":\"Cardholder-Data\",\"version\":\"3.2.1\"}],\"regoRule\":{\"policy\":\"package datadog\\n\\nimport data.datadog.output as dd_output\\n\\nimport future.keywords.contains\\nimport future.keywords.if\\nimport future.keywords.in\\n\\neval(sql_database_instance) = \\\"skip\\\" if {\\n\\tnot is_SQLServer(sql_database_instance)\\n} else = \\\"fail\\\" {\\n\\tdatabase_flags := sql_database_instance.settings.database_flags[_]\\n\\tdatabase_flags.name == \\\"3625\\\"\\n\\tdatabase_flags.value == \\\"on\\\"\\n} else = \\\"pass\\\" {\\n\\ttrue\\n}\\n\\nis_SQLServer(sql_database_instance) if {\\n\\tstartswith(sql_database_instance.database_version, \\\"SQLSERVER\\\")\\n}\\n\\n# This part remains unchanged for all rules\\nresults contains result if {\\n\\tsome resource in input.resources[input.main_resource_type]\\n\\tresult := dd_output.format(resource, eval(resource))\\n}\\n\",\"resourceTypes\":[\"gcp_sql_database_instance\"]},\"validationQuery\":\"\",\"resourceType\":\"gcp_sql_database_instance\",\"filter\":\"\",\"queryPath\":\"\",\"complexRule\":false},\"keepAlive\":21600},\"version\":8,\"isDefault\":true,\"filters\":[],\"queries\":[{\"query\":\"resource_type:gcp_sql_database_instance\",\"groupByFields\":[\"resource_type\",\"resource_id\"],\"aggregation\":\"count\",\"name\":\"a\",\"distinctFields\":[]}],\"isDeleted\":false,\"complianceSignalOptions\":{\"defaultActivationStatus\":false,\"userActivationStatus\":null,\"defaultGroupByFields\":[\"@resource\"],\"userGroupByFields\":null},\"cases\":[{\"status\":\"low\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"id\":\"2x0-5oi-nhu\",\"createdAt\":1657310084964,\"name\":\"'3625 (trace flag)' database flag is set to 'off' for SQL Server Instance\"},{\"updateAuthorId\":0,\"creationAuthorId\":0,\"tags\":[\"control:CC6.8\",\"scored:true\",\"control:2.11\",\"cloud_provider:azure\",\"control:A.12.4.1\",\"level:1\",\"source:azure.policy\",\"requirement:Application-Updates\",\"framework:iso-27001\",\"framework:pci\",\"requirement:Operations-Security\",\"requirement:Communication-and-Information\",\"security:compliance\",\"requirement:Security-Center\",\"framework:cis-azure\",\"control:6.2\",\"requirement:System-Operations\",\"requirement:Monitoring-Activities\",\"framework:soc-2\",\"scope:azure.policy\",\"control:CC4.1\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC2.1\",\"control:CC7.2\",\"control:CC7.1\"],\"type\":\"cloud_configuration\",\"isEnabled\":true,\"hasExtendedTitle\":true,\"message\":\"## Description\\n\\nEnable automatic provisioning of the monitoring agent to collect security data.\\n\\n## Rationale\\n\\nWhen automatic provisioning of monitoring agent is turned on, Azure Security Center provisions the Microsoft Monitoring Agent on all existing supported Azure virtual machines and any new ones that are created. The Microsoft Monitoring Agent scans for various security-related configurations and events such as system updates, OS vulnerabilities, endpoint protection, and provides alerts.\\n\\n## Remediation\\n\\n### From the console\\n\\n1. Go to Security Center\\n2. Click on Pricing & Settings\\n3. Click on a subscription\\n4. Click on Data Collection\\n5. Set Automatic provisioning to On\\n6. Click save Repeat the above for any additional subscriptions.\\n\\n### From the command line\\n\\nUse the below command to set automatic provisioning of monitoring agent:\\n\\n```bash\\naz account get-access-token --query \\\"{subscription:subscription,accessToken:accessToken}\\\" --out tsv | xargs -L1 bash -c ''curl -X PUT -H \\\"AuthorizationBearer $1\\\" -H \\\"Content-Typeapplication/json\\\" https://management.azure.com/subscriptions/$0/providers/Microsoft.Security/autoProvisioningSettings/default?api-version=2017-08-01-preview -d@\\\"input.json\\\"''\\n```\\n\\nWhere input.json contains the Request body json data as mentioned below. \\n\\n```bash\\n{ \\\"id\\\"\\\"/subscriptions//providers/Microsoft.Security/autoProvisioningSettings/default\\\", \\\"name\\\"\\\"default\\\", \\\"type\\\"\\\"Microsoft.Security/autoProvisioningSettings\\\", \\\"properties\\\"{ \\\"autoProvision\\\"\\\"On\\\" } }\\n```\\n\\n## References\\n\\n1. https://docs.microsoft.com/en-us/azure/security-center/security-center-data-security \\n2. https://docs.microsoft.com/en-us/azure/security-center/security-center-enable-data-collection \\n3. https://msdn.microsoft.com/en-us/library/mt704062.aspx\\n4. https://msdn.microsoft.com/en-us/library/mt704063.aspx\\n5. https://docs.microsoft.com/en-us/rest/api/securitycenter/autoprovisioningsettings/list \\n6. https://docs.microsoft.com/en-us/rest/api/securitycenter/autoprovisioningsettings/create \\n7. https://docs.microsoft.com/en-us/azure/security/benchmarks/security-controls-v2-incident-response#ir-2-preparation--setup-incident-notification\\n\\nAdditional Information: Excluding any of the entries in `input.json` may disable the specific setting by default Microsoft has recently changed APIs to get and Update Automatic Provisioning setting. This recommendation is updated accordingly.\\n\\n## CIS Controls\\n\\nVersion 7 3.1 - Run Automated Vulnerability Scanning Tools: Utilize an up-to-date SCAP-compliant vulnerability scanning tool to automatically scan all systems on the network on a weekly or more frequent basis to identify all potential vulnerabilities on the organization's systems.\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":7200,\"maxSignalDuration\":86400,\"complianceRuleOptions\":{\"complianceFrameworks\":[{\"control\":\"2.11\",\"framework\":\"cis-azure\",\"requirement\":\"Security-Center\",\"version\":\"1.3.0\"},{\"control\":\"6.2\",\"framework\":\"pci\",\"requirement\":\"Application-Updates\",\"version\":\"3.2.1\"},{\"control\":\"A.12.4.1\",\"framework\":\"iso-27001\",\"requirement\":\"Operations-Security\",\"version\":\"2\"},{\"control\":\"CC2.1\",\"framework\":\"soc-2\",\"requirement\":\"Communication-and-Information\",\"version\":\"2\"},{\"control\":\"CC4.1\",\"framework\":\"soc-2\",\"requirement\":\"Monitoring-Activities\",\"version\":\"2\"},{\"control\":\"CC6.8\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"},{\"control\":\"CC7.1\",\"framework\":\"soc-2\",\"requirement\":\"System-Operations\",\"version\":\"2\"},{\"control\":\"CC7.2\",\"framework\":\"soc-2\",\"requirement\":\"System-Operations\",\"version\":\"2\"}],\"validationQuery\":\"@auto_provision:Off\",\"resourceType\":\"azure_security_center_auto_provisioning\",\"filter\":\"\",\"queryPath\":\"\",\"complexRule\":false},\"keepAlive\":21600},\"version\":7,\"isDefault\":true,\"filters\":[],\"queries\":[{\"query\":\"resource_type:azure_security_center_auto_provisioning (@auto_provision:Off)\",\"groupByFields\":[\"resource_type\",\"resource_id\"],\"aggregation\":\"count\",\"name\":\"a\",\"distinctFields\":[]}],\"isDeleted\":false,\"complianceSignalOptions\":{\"defaultActivationStatus\":false,\"userActivationStatus\":null,\"defaultGroupByFields\":[\"@resource\"],\"userGroupByFields\":null},\"cases\":[{\"status\":\"medium\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"id\":\"ota-kzg-lsb\",\"createdAt\":1635237006719,\"name\":\"'Automatic provisioning of monitoring agent' is set to 'On'\"},{\"updateAuthorId\":0,\"creationAuthorId\":0,\"tags\":[\"scored:true\",\"requirement:Virtual-Machines\",\"security:compliance\",\"cloud_provider:azure\",\"control:3.4.1\",\"control:7.2\",\"framework:cis-azure\",\"requirement:Credentials\",\"requirement:Compliance\",\"scope:azure.compute\",\"level:1\",\"control:A.18.1.3\",\"framework:soc-2\",\"requirement:Cardholder-Data\",\"framework:iso-27001\",\"requirement:Logical-and-Physical-Access-Control\",\"control:8.2.1\",\"source:azure.compute\",\"framework:pci\",\"control:CC6.1\"],\"type\":\"cloud_configuration\",\"isEnabled\":true,\"hasExtendedTitle\":true,\"message\":\"## Description\\n\\nEnsure that OS disks (boot volumes) and data disks (non-boot volumes) are encrypted with a Customer Managed Key (CMK).\\n\\n## Rationale\\n\\nEncrypting the IaaS VM's OS disk (boot volume) and data disks (non-boot volume) ensures that the entire content is fully unrecoverable without a key and thus protects the volume from unwarranted reads. CMK is superior encryption although requires additional planning.\\n\\n## Remediation\\n\\n### From the console\\n\\n**Note**: Disks must be detached from VMs to have encryption changed.\\n\\n1. Go to Virtual Machines\\n2. For each virtual machine, go to Settings\\n3. Click on Disks\\n4. Click the X to detach the disk from the VM\\n5. Search for disks and locate the unattached disk\\n6. Click the disk select Encryption\\n7. Change your encryption type and select your encryption set\\n8. Click Save\\n9. Go back to the VM and re-attach the disk\\n\\n### Using PowerShell\\n\\n```powershell\\n$KVRGname = ''MyKeyVaultResourceGroup''; $VMRGName = ''MyVirtualMachineResourceGroup''; $vmName = ''MySecureVM''; $KeyVaultName = ''MySecureVault''; $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname; $diskEncryptionKeyVaultUrl = $KeyVault.VaultUri; $KeyVaultResourceId = $KeyVault.ResourceId; Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGname -VMName $vmName -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId;\\n```\\n\\n**NOTES**:\\n\\n- During encryption, a reboot is likely required. It may take up to 15 minutes to complete the process.\\n\\n- On Linux machines, you may need to set the `-skipVmBackup` parameter.\\n\\n## Impact\\n\\nUsing CMK/BYOK entail additional management of keys. You must have your key vault setup to use this.\\n\\n## References\\n\\n\\n1. https://docs.microsoft.com/azure/security/fundamentals/azure-disk-encryption-vms-vmss\\n2. https://docs.microsoft.com/en-us/azure/security-center/security-center-disk-encryption?toc=%2fazure%2fsecurity%2ftoc.json\\n3. https://docs.microsoft.com/azure/security/fundamentals/data-encryption-best-practices#protect-data-at-resthttps://docs.microsoft.com/azure/virtual-machines/windows/disk-encryption-portal-quickstart\\n4. https://docs.microsoft.com/en-us/rest/api/compute/disks/delete\\n5. https://docs.microsoft.com/en-us/rest/api/compute/disks/update#encryptionsettings\\n6. https://docs.microsoft.com/en-us/azure/security/benchmarks/security-controls-v2-data-protection#dp-5-encrypt-sensitive-data-at-rest\\n7. https://docs.microsoft.com/en-us/azure/virtual-machines/windows/disks-enable-customer-managed-keys-powershell\\n\\n## CIS Controls\\n\\nVersion 7 14.8 - Encrypt Sensitive Information at Rest - Encrypt all sensitive information at rest using a tool that requires a secondary authentication mechanism not integrated into the operating system, in order to access the information.\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":7200,\"maxSignalDuration\":86400,\"complianceRuleOptions\":{\"complianceFrameworks\":[{\"control\":\"7.2\",\"framework\":\"cis-azure\",\"requirement\":\"Virtual-Machines\",\"version\":\"1.3.0\"},{\"control\":\"3.4.1\",\"framework\":\"pci\",\"requirement\":\"Cardholder-Data\",\"version\":\"3.2.1\"},{\"control\":\"8.2.1\",\"framework\":\"pci\",\"requirement\":\"Credentials\",\"version\":\"3.2.1\"},{\"control\":\"A.18.1.3\",\"framework\":\"iso-27001\",\"requirement\":\"Compliance\",\"version\":\"2\"},{\"control\":\"CC6.1\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"}],\"validationQuery\":\"-@encryption_type:EncryptionAtRestWithCustomerKey\",\"resourceType\":\"azure_managed_disk\",\"filter\":\"@disk_state:Attached\",\"queryPath\":\"\",\"complexRule\":false},\"keepAlive\":21600},\"version\":8,\"isDefault\":true,\"filters\":[],\"queries\":[{\"query\":\"resource_type:azure_managed_disk @disk_state:Attached (-@encryption_type:EncryptionAtRestWithCustomerKey)\",\"groupByFields\":[\"resource_type\",\"resource_id\"],\"aggregation\":\"count\",\"name\":\"a\",\"distinctFields\":[]}],\"isDeleted\":false,\"complianceSignalOptions\":{\"defaultActivationStatus\":true,\"userActivationStatus\":null,\"defaultGroupByFields\":[\"@resource\"],\"userGroupByFields\":null},\"cases\":[{\"status\":\"high\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"id\":\"i6x-xne-idt\",\"createdAt\":1631690475494,\"name\":\"'OS and Data' disks are encrypted with CMK\"},{\"updateAuthorId\":0,\"creationAuthorId\":0,\"tags\":[\"scored:true\",\"control:CC6.7\",\"cloud_provider:azure\",\"requirement:Default-Security-Parameter\",\"requirement:Credentials\",\"requirement:Compliance\",\"level:1\",\"requirement:System-Acquisition-Development-and-Maintenance\",\"control:2.2.3\",\"requirement:Application-Updates\",\"framework:iso-27001\",\"scope:azure.storage\",\"framework:pci\",\"control:A.14.1.2\",\"control:A.14.1.3\",\"security:compliance\",\"control:6.5.3\",\"framework:cis-azure\",\"control:4.1\",\"control:3.1\",\"requirement:Control-Activities\",\"requirement:Storage-Account\",\"source:azure.storage\",\"control:A.18.1.3\",\"framework:soc-2\",\"requirement:Logical-and-Physical-Access-Control\",\"requirement:Encryption-In-Transit\",\"control:8.2.1\",\"control:CC5.2\",\"control:CC6.1\"],\"type\":\"cloud_configuration\",\"isEnabled\":true,\"hasExtendedTitle\":true,\"message\":\"## Description\\n\\nEnable data encryption in transit.\\n\\n## Rationale\\n\\nThe secure transfer option enhances the security of a storage account by only allowing requests to the storage account by a secure connection. For example, when calling REST APIs to access storage accounts, the connection must be HTTPS. Any requests using HTTP will be rejected when secure transfer required is enabled. When using the Azure files service, connection without encryption will fail, including scenarios using SMB 2.1, SMB 3.0 without encryption, and some flavors of the Linux SMB client. Because Azure storage doesn't support HTTPS for custom domain names, this option is not applied when using a custom domain name.\\n\\n## Remediation\\n\\n### From the console\\n\\n1. Go to Storage Accounts\\n2. For each storage account, go to Configuration\\n3. Set Secure transfer required to Enabled\\n\\n### From the command line\\n\\nInterface 2.0 - Use the below command to enable Secure transfer required for a Storage Account: `az storage account update --name --resource-group --https-only true`\\n\\n## References\\n\\n\\n1. https://docs.microsoft.com/en-us/azure/storage/blobs/security-recommendations#encryption-in-transit\\n2. https://docs.microsoft.com/en-us/cli/azure/storage/account?view=azure-cli-latest#az_storage_account_list\\n3. https://docs.microsoft.com/en-us/cli/azure/storage/account?view=azure-cli-latest#az_storage_account_update\\n4. https://docs.microsoft.com/en-us/azure/security/benchmarks/security-controls-v2-data-protection#dp-4-encrypt-sensitive-information-in-transit\\n\\n## CIS Controls\\n\\nVersion 7 - 14.4 Encrypt All Sensitive Information in Transit\\n\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":7200,\"maxSignalDuration\":86400,\"complianceRuleOptions\":{\"complianceFrameworks\":[{\"control\":\"3.1\",\"framework\":\"cis-azure\",\"requirement\":\"Storage-Account\",\"version\":\"1.3.0\"},{\"control\":\"A.14.1.2\",\"framework\":\"iso-27001\",\"requirement\":\"System-Acquisition-Development-and-Maintenance\",\"version\":\"2\"},{\"control\":\"A.14.1.3\",\"framework\":\"iso-27001\",\"requirement\":\"System-Acquisition-Development-and-Maintenance\",\"version\":\"2\"},{\"control\":\"A.18.1.3\",\"framework\":\"iso-27001\",\"requirement\":\"Compliance\",\"version\":\"2\"},{\"control\":\"2.2.3\",\"framework\":\"pci\",\"requirement\":\"Default-Security-Parameter\",\"version\":\"3.2.1\"},{\"control\":\"4.1\",\"framework\":\"pci\",\"requirement\":\"Encryption-In-Transit\",\"version\":\"3.2.1\"},{\"control\":\"6.5.3\",\"framework\":\"pci\",\"requirement\":\"Application-Updates\",\"version\":\"3.2.1\"},{\"control\":\"8.2.1\",\"framework\":\"pci\",\"requirement\":\"Credentials\",\"version\":\"3.2.1\"},{\"control\":\"CC5.2\",\"framework\":\"soc-2\",\"requirement\":\"Control-Activities\",\"version\":\"2\"},{\"control\":\"CC6.1\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"},{\"control\":\"CC6.7\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"}],\"validationQuery\":\"-@supports_https_traffic_only:true\",\"resourceType\":\"azure_storage_account\",\"filter\":\"\",\"queryPath\":\"\",\"complexRule\":false},\"keepAlive\":21600},\"version\":8,\"isDefault\":true,\"filters\":[],\"queries\":[{\"query\":\"resource_type:azure_storage_account (-@supports_https_traffic_only:true)\",\"groupByFields\":[\"resource_type\",\"resource_id\"],\"aggregation\":\"count\",\"name\":\"a\",\"distinctFields\":[]}],\"isDeleted\":false,\"complianceSignalOptions\":{\"defaultActivationStatus\":true,\"userActivationStatus\":null,\"defaultGroupByFields\":[\"@name\"],\"userGroupByFields\":null},\"cases\":[{\"status\":\"high\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"id\":\"vlg-zuu-zub\",\"createdAt\":1635847712936,\"name\":\"'Secure transfer required' is set to 'Enabled'\"},{\"updateAuthorId\":0,\"creationAuthorId\":0,\"tags\":[\"scored:true\",\"control:CC6.7\",\"control:CC6.6\",\"cloud_provider:azure\",\"requirement:Compliance\",\"level:1\",\"control:2.2.2\",\"framework:iso-27001\",\"requirement:Access-Control\",\"scope:azure.storage\",\"framework:pci\",\"security:compliance\",\"requirement:Least-Privileged-Access\",\"control:1.2.1\",\"control:3.7\",\"framework:cis-azure\",\"requirement:Communications-Security\",\"control:7.2.1\",\"requirement:Storage-Account\",\"source:azure.storage\",\"control:A.13.1.3\",\"requirement:Default-Security-Parameters\",\"requirement:Firewall-Configuration\",\"control:A.13.1.1\",\"control:A.18.1.3\",\"framework:soc-2\",\"control:A.9.1.2\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.1\"],\"type\":\"cloud_configuration\",\"isEnabled\":true,\"hasExtendedTitle\":true,\"message\":\"## Description\\n\\nSome Microsoft services that interact with storage accounts operate from networks that can't be granted access through network rules. To help this type of service work as intended, allow the set of trusted Microsoft services to bypass the network rules. These services use strong authentication to access the storage account. If Allow trusted Microsoft services exception is enabled, the following services, when registered in the subscription, are granted access to the storage account: Azure Backup, Azure Site Recovery, Azure DevTest Labs, Azure Event Grid, Azure Event Hubs, Azure Networking, Azure Monitor and Azure SQL Data Warehouse.\\n\\n## Rationale\\n\\nTurning on firewall rules for storage account blocks access to incoming requests for data, including from other Azure services. This includes using the portal, writing logs, etc. You can re-enable access to services like Monitor, Networking, Hubs, and Event Grid by enabling Trusted Microsoft Services through exceptions. The exception also supports backing up and restoring virtual machines using unmanaged disks in storage accounts with network rules applied.\\n\\n## Remediation\\n\\n### From the console\\n\\n1. Go to Storage Accounts\\n2. For each storage account, click on the settings menu called Firewalls and Virtual Networks.\\n3. Ensure that Allow access from selected networks is enabled.\\n4. Enable Allow trusted Microsoft services to access this storage account.\\n5. Click Save to apply your changes.\\n\\n### From the command line\\n\\nUse the following command to update trusted Microsoft services: `az storage account update --name --resource-group --bypass AzureServices`\\n\\n## References\\n\\n1. https://docs.microsoft.com/en-us/azure/storage/common/storage-network-security\\n2. https://docs.microsoft.com/en-us/azure/security/benchmarks/security-controls-v2-network-security#ns-1-implement-security-for-internal-traffic\\n3. https://docs.microsoft.com/en-us/azure/security/benchmarks/security-controls-v2-governance-strategy#gs-2-define-enterprise-segmentation-strategy\\n\\n## CIS Controls\\n\\nVersion 7 9.2 - Ensure Only Approved Ports, Protocols and Services Are Running - Ensure that only network ports, protocols, and services listening on a system with validated business needs, are running on each system.\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":7200,\"maxSignalDuration\":86400,\"complianceRuleOptions\":{\"complianceFrameworks\":[{\"control\":\"3.7\",\"framework\":\"cis-azure\",\"requirement\":\"Storage-Account\",\"version\":\"1.3.0\"},{\"control\":\"1.2.1\",\"framework\":\"pci\",\"requirement\":\"Firewall-Configuration\",\"version\":\"3.2.1\"},{\"control\":\"2.2.2\",\"framework\":\"pci\",\"requirement\":\"Default-Security-Parameters\",\"version\":\"3.2.1\"},{\"control\":\"7.2.1\",\"framework\":\"pci\",\"requirement\":\"Least-Privileged-Access\",\"version\":\"3.2.1\"},{\"control\":\"A.9.1.2\",\"framework\":\"iso-27001\",\"requirement\":\"Access-Control\",\"version\":\"2\"},{\"control\":\"A.13.1.1\",\"framework\":\"iso-27001\",\"requirement\":\"Communications-Security\",\"version\":\"2\"},{\"control\":\"A.13.1.3\",\"framework\":\"iso-27001\",\"requirement\":\"Communications-Security\",\"version\":\"2\"},{\"control\":\"A.18.1.3\",\"framework\":\"iso-27001\",\"requirement\":\"Compliance\",\"version\":\"2\"},{\"control\":\"CC6.1\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"},{\"control\":\"CC6.6\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"},{\"control\":\"CC6.7\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"}],\"validationQuery\":\"-@network_acls.bypass:*AzureServices*\",\"resourceType\":\"azure_storage_account\",\"filter\":\"\",\"queryPath\":\"\",\"complexRule\":false},\"keepAlive\":21600},\"version\":9,\"isDefault\":true,\"filters\":[],\"queries\":[{\"query\":\"resource_type:azure_storage_account (-@network_acls.bypass:*AzureServices*)\",\"groupByFields\":[\"resource_type\",\"resource_id\"],\"aggregation\":\"count\",\"name\":\"a\",\"distinctFields\":[]}],\"isDeleted\":false,\"complianceSignalOptions\":{\"defaultActivationStatus\":true,\"userActivationStatus\":null,\"defaultGroupByFields\":[\"@resource\"],\"userGroupByFields\":null},\"cases\":[{\"status\":\"high\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"id\":\"psg-u8u-lwo\",\"createdAt\":1631690476330,\"name\":\"'Trusted Microsoft Services' is enabled for Storage Account access\"},{\"updateAuthorId\":0,\"creationAuthorId\":0,\"tags\":[\"scored:true\",\"requirement:Virtual-Machines\",\"security:compliance\",\"cloud_provider:azure\",\"control:3.4.1\",\"control:7.3\",\"framework:cis-azure\",\"requirement:Credentials\",\"requirement:Compliance\",\"scope:azure.compute\",\"level:1\",\"control:A.18.1.3\",\"framework:soc-2\",\"requirement:Cardholder-Data\",\"framework:iso-27001\",\"requirement:Logical-and-Physical-Access-Control\",\"control:8.2.1\",\"source:azure.compute\",\"framework:pci\",\"control:CC6.1\"],\"type\":\"cloud_configuration\",\"isEnabled\":true,\"hasExtendedTitle\":true,\"message\":\"## Description\\n\\nEnsure that unattached disks in a subscription are encrypted with a customer managed key (CMK).\\n\\n## Rationale\\n\\nManaged disks are encrypted by default with platform-managed keys. Using customer-managed keys may provide an additional level of security or meet an organization's regulatory requirements. Encrypting managed disks ensures that its entire content is fully unrecoverable without a key and thus protects the volume from unwarranted reads. Even if the disk is not attached to any of the VMs, there is always a risk where a compromised user account with administrative access to VM service can mount/attach these data disks which may lead to sensitive information disclosure and tampering.\\n\\n## Impact\\n\\nEncryption is available only on standard tier VMs. This could impact cost. Utilizing and maintaining customer-managed keys requires additional work to create, protect, and rotate keys.\\n\\n## Remediation\\n\\nIf data stored in the disk is no longer useful, refer to [Azure documentation][1] to delete unattached data disks. If data stored in the disk is important, encrypt the disk. See the [Disk enable customer managed keys customer][2] or the [Encryption settings][3] documentation.\\n\\n## References\\n\\n1. https://docs.microsoft.com/en-us/azure/security/fundamentals/azure-disk-encryption-vms-vmss\\n2. https://docs.microsoft.com/en-us/azure/security-center/security-center-disk-encryption?toc=%2fazure%2fsecurity%2ftoc.json\\n3. https://docs.microsoft.com/en-us/rest/api/compute/disks/delete\\n4. https://docs.microsoft.com/en-us/cli/azure/disk?view=azure-cli-latest#az-disk-delete\\n5. https://docs.microsoft.com/en-us/rest/api/compute/disks/update#encryptionsettings\\n6. https://docs.microsoft.com/en-us/cli/azure/disk?view=azure-cli-latest#az-disk-update\\n7. https://docs.microsoft.com/en-us/azure/security/benchmarks/security-controls-v2-data-protection#dp-5-encrypt-sensitive-data-at-rest\\n\\n## CIS Controls\\n\\nVersion 7 14.8 - Encrypt Sensitive Information at Rest - Encrypt all sensitive information at rest using a tool that requires a secondary authentication mechanism not integrated into the operating system, in order to access the information.\\n\\n[1]: https://docs.microsoft.com/en-us/rest/api/compute/disks/delete -https://docs.microsoft.com/en-us/cli/azure/disk?view=azure-cli-latest#az-disk-delete\\n[2]: https://docs.microsoft.com/en-us/azure/virtual-machines/disks-enable-customer-managed-keys-portal\\n[3]: https://docs.microsoft.com/en-us/rest/api/compute/disks/update#encryptionsettings\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":7200,\"maxSignalDuration\":86400,\"complianceRuleOptions\":{\"complianceFrameworks\":[{\"control\":\"7.3\",\"framework\":\"cis-azure\",\"requirement\":\"Virtual-Machines\",\"version\":\"1.3.0\"},{\"control\":\"3.4.1\",\"framework\":\"pci\",\"requirement\":\"Cardholder-Data\",\"version\":\"3.2.1\"},{\"control\":\"8.2.1\",\"framework\":\"pci\",\"requirement\":\"Credentials\",\"version\":\"3.2.1\"},{\"control\":\"A.18.1.3\",\"framework\":\"iso-27001\",\"requirement\":\"Compliance\",\"version\":\"2\"},{\"control\":\"CC6.1\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"}],\"validationQuery\":\"-@encryption_type:EncryptionAtRestWithCustomerKey\",\"resourceType\":\"azure_managed_disk\",\"filter\":\"@disk_state:Unattached\",\"queryPath\":\"\",\"complexRule\":false},\"keepAlive\":21600},\"version\":7,\"isDefault\":true,\"filters\":[],\"queries\":[{\"query\":\"resource_type:azure_managed_disk @disk_state:Unattached (-@encryption_type:EncryptionAtRestWithCustomerKey)\",\"groupByFields\":[\"resource_type\",\"resource_id\"],\"aggregation\":\"count\",\"name\":\"a\",\"distinctFields\":[]}],\"isDeleted\":false,\"complianceSignalOptions\":{\"defaultActivationStatus\":true,\"userActivationStatus\":null,\"defaultGroupByFields\":[\"@resource\"],\"userGroupByFields\":null},\"cases\":[{\"status\":\"high\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"id\":\"bae-mte-pj5\",\"createdAt\":1631690476274,\"name\":\"'Unattached disks' are encrypted with CMK\"},{\"updateAuthorId\":0,\"creationAuthorId\":0,\"tags\":[\"scored:true\",\"control:10.2.7\",\"control:10.3.6\",\"control:10.5.4\",\"requirement:Cloud-SQL\",\"cloud_provider:gcp\",\"control:10.2.6\",\"control:10.3.5\",\"control:10.5.3\",\"source:google_sql_database_instance\",\"control:10.1\",\"requirement:Monitoring\",\"control:10.2.1\",\"control:10.2.5\",\"control:10.3.4\",\"control:A.12.4.1\",\"control:10.2.4\",\"control:10.3.3\",\"control:10.2.3\",\"control:10.3.2\",\"control:A.12.4.3\",\"control:10.2.2\",\"control:10.3.1\",\"framework:cis-gcp\",\"level:1\",\"scope:google_sql_database_instance\",\"framework:iso-27001\",\"framework:pci\",\"requirement:Operations-Security\",\"security:compliance\",\"control:6.2.9\",\"requirement:System-Operations\",\"requirement:Control-Activities\",\"framework:soc-2\",\"control:10.2\",\"control:10.3\",\"control:CC7.2\",\"control:CC5.2\"],\"type\":\"cloud_configuration\",\"isEnabled\":true,\"hasExtendedTitle\":true,\"message\":\"## Description\\n\\nEnable the `cloudsql.enable_pgaudit` database flag so that each Cloud SQL PostgreSQL instance has centralized logging.\\n\\n## Rationale\\n\\nBecause many other recommendations in this section involve turning on flags for logging\\npurposes, your organization needs a way to manage these logs. If you do not already have a solution in \\nplace, consider enabling database auditing in PostgreSQL by installing the open source pgAudit extension and enabling the `cloudsql.enable_pgaudit` flag. The extension provides\\ndetailed session and object logging to comply with government, financial, and ISO standards. It provides \\nauditing capabilities to mitigate threats by monitoring security events on the\\ninstance. Enabling the flag and the settings described below sends the logs to\\nGoogle Logs Explorer so that you can access them in a central location. This\\nrecommendation is applicable only to PostgreSQL database instances.\\n\\n## Impact\\n\\nEnabling the pgAudit extension can lead to increased data storage requirements. To\\nensure durability of pgAudit log records in the event of unexpected storage issues, \\nenable the **Enable automatic storage increases** setting on the\\ninstance. Enabling flags on the command line will overwrite all existing flags, so you\\nshould apply _all_ needed flags in each CLI command. You might need to restart the\\nserver to see the effects of enabling flags, so update your servers at a\\ntime of low usage.\\n\\n## Remediation\\n\\n### Initialize the pgAudit flag\\n\\n#### From the console\\n1. Go to [GCP console][1].\\n2. Select the instance to open its Overview page.\\n3. Click **Edit**.\\n4. Scroll down and expand Flags.\\n5. To set a flag that has not been set on the instance before, click **Add item**.\\n6. Enter `cloudsql.enable_pgaudit` for the flag name and set the flag to on.\\n7. Click **Done**.\\n8. Click **Save** to update the configuration.\\n9. Confirm your changes under Flags on the Overview page.\\n\\n#### From the command line\\nRun the following command by providing to enable `cloudsql.enable_pgaudit` flag:\\n```\\ngcloud sql instances patch --database-flags=cloudsql.enable_pgaudit=on\\n```\\n \\n**Note**: Restart the database server for this configuration change to take effect.\\n\\n### Create the extension\\n1. Connect to the the server running PostgreSQL or through a SQL client of your choice.\\n2. Open the PostgreSQL shell. For example, if you're using SSH to access the server, run:\\n3. Run the following command as a superuser:\\n ```\\n CREATE EXTENSION pgaudit;\\n ```\\n### Update the `pgaudit.log` flag\\n\\n#### From the console\\n**Note**: There are multiple options for updating the flag. The following instructions enable logging for all databases\\non a server. Read [Customizing database audit logging][4] for more flag\\noptions.\\n\\n1. Go to [GCP console][1].\\n2. Select the instance to open its Overview page.\\n3. Click **Edit**.\\n4. Scroll down and expand Flags.\\n5. To set a flag that has not been set on the instance before, click **Add item**.\\n6. Enter `pgaudit.log=all` for the flag name and set the flag to on.\\n7. Click **Done**.\\n8. Click **Save** to update the configuration.\\n9. Confirm your changes under Flags on the Overview page.\\n\\n#### From the command line\\n\\nRun the command:\\n```\\ngcloud sql instances patch --database-flags \\\\\\ncloudsql.enable_pgaudit=on,pgaudit.log=all\\n```\\n\\n### Check for the logs in Google Logs Explorer\\n1. From the Google Console home page, open the menu in the top left.\\n2. In the menu's Operations section, select Logs Explorer.\\n3. In the query box, copy in the following query:\\n\\n ```\\n resource.type=\\\"cloudsql_database\\\"\\n logName=\\\"projects//logs/cloudaudit.googleapis.com%2Fdata_access\\\"\\n protoPayload.request.@type=\\\"type.googleapis.com/google.cloud.sql.audit.v1.PgAuditEntry\\n ```\\nIf it returns any log sources, they are correctly set up.\\n\\n## Default value\\nBy default `cloudsql.enable_pgaudit` database flag is set to off and the extension is not enabled.\\n\\n## References\\n1. [https://cloud.google.com/sql/docs/postgres/flags#list-flags-postgres][2]\\n2. [https://cloud.google.com/sql/docs/postgres/pg-audit#enable-auditing-flag][3]\\n3. [https://cloud.google.com/sql/docs/postgres/pg-audit#customizing-database-audit-logging][4]\\n4. [https://cloud.google.com/logging/docs/audit/configure-data-access#config-console-enable][5]\\n\\n## Additional Information\\n**WARNING**: This extension modifies database flag values, which may require your instance to be\\nrestarted. Check the [List of supported flags][6] to see if your instance needs to be restarted\\nwhen this extension is set up.\\n**Note**: Configuring the `cloudsql.enable_pgaudit` database flag requires restarting the Cloud\\nSQL PostgreSQL instance.\\n\\n## CIS controls\\n\\nVersion 8\\n8.5 - Collect Detailed Audit Logs\\n- Configure detailed audit logging for enterprise assets containing sensitive data.\\nInclude event source, date, username, timestamp, source addresses, destination\\naddresses, and other useful elements that could assist in a forensic investigation.\\n\\n8.9 - Centralize Audit Logs\\n- Centralize, to the extent possible, audit log collection and retention across\\nenterprise assets.\\n\\n[1]: https://console.cloud.google.com/sql/instances\\n[2]: https://cloud.google.com/sql/docs/postgres/flags#list-flags-postgres\\n[3]: https://cloud.google.com/sql/docs/postgres/pg-audit#enable-auditing-flag\\n[4]: https://cloud.google.com/sql/docs/postgres/pg-audit#customizing-database-audit-logging\\n[5]: https://cloud.google.com/logging/docs/audit/configure-data-access#config-console-enable\\n[6]: https://cloud.google.com/sql/docs/postgres/flags\\n\\n\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":7200,\"maxSignalDuration\":86400,\"complianceRuleOptions\":{\"complianceFrameworks\":[{\"control\":\"6.2.9\",\"framework\":\"cis-gcp\",\"requirement\":\"Cloud-SQL\",\"version\":\"1.3.0\"},{\"control\":\"10.1\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.2\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.2.1\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.2.2\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.2.3\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.2.4\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.2.5\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.2.6\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.2.7\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.3\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.3.1\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.3.2\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.3.3\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.3.4\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.3.5\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.3.6\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.5.3\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"10.5.4\",\"framework\":\"pci\",\"requirement\":\"Monitoring\",\"version\":\"3.2.1\"},{\"control\":\"A.12.4.1\",\"framework\":\"iso-27001\",\"requirement\":\"Operations-Security\",\"version\":\"2\"},{\"control\":\"A.12.4.3\",\"framework\":\"iso-27001\",\"requirement\":\"Operations-Security\",\"version\":\"2\"},{\"control\":\"CC5.2\",\"framework\":\"soc-2\",\"requirement\":\"Control-Activities\",\"version\":\"2\"},{\"control\":\"CC7.2\",\"framework\":\"soc-2\",\"requirement\":\"System-Operations\",\"version\":\"2\"}],\"regoRule\":{\"policy\":\"package datadog\\n\\nimport data.datadog.output as dd_output\\n\\nimport future.keywords.contains\\nimport future.keywords.if\\nimport future.keywords.in\\n\\neval(sql_database_instance) = \\\"skip\\\" if {\\n\\tnot is_PostgreSQL(sql_database_instance)\\n} else = \\\"pass\\\" {\\n\\tdatabase_flags := sql_database_instance.settings.database_flags[_]\\n\\tdatabase_flags.name == \\\"cloudsql.enable_pgaudit\\\"\\n\\tdatabase_flags.value == \\\"on\\\"\\n} else = \\\"fail\\\" {\\n\\ttrue\\n}\\n\\nis_PostgreSQL(sql_database_instance) if {\\n\\tstartswith(sql_database_instance.database_version, \\\"POSTGRES_\\\")\\n}\\n\\n# This part remains unchanged for all rules\\nresults contains result if {\\n\\tsome resource in input.resources[input.main_resource_type]\\n\\tresult := dd_output.format(resource, eval(resource))\\n}\\n\",\"resourceTypes\":[\"gcp_sql_database_instance\"]},\"validationQuery\":\"\",\"resourceType\":\"gcp_sql_database_instance\",\"filter\":\"\",\"queryPath\":\"\",\"complexRule\":false},\"keepAlive\":21600},\"version\":7,\"isDefault\":true,\"filters\":[],\"queries\":[{\"query\":\"resource_type:gcp_sql_database_instance\",\"groupByFields\":[\"resource_type\",\"resource_id\"],\"aggregation\":\"count\",\"name\":\"a\",\"distinctFields\":[]}],\"isDeleted\":false,\"complianceSignalOptions\":{\"defaultActivationStatus\":false,\"userActivationStatus\":null,\"defaultGroupByFields\":[\"@resource\"],\"userGroupByFields\":null},\"cases\":[{\"status\":\"medium\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"id\":\"6hz-owg-7y7\",\"createdAt\":1657889011689,\"name\":\"'cloudsql.enable_pgaudit' database flag is set to 'on' for centralized logging on Postgresql Instance\"},{\"updateAuthorId\":0,\"creationAuthorId\":0,\"tags\":[\"control:CC6.8\",\"scored:true\",\"control:CC6.7\",\"requirement:Cloud-SQL\",\"cloud_provider:gcp\",\"source:google_sql_database_instance\",\"requirement:Default-Security-Parameter\",\"framework:cis-gcp\",\"requirement:Compliance\",\"level:1\",\"control:2.2.4\",\"scope:google_sql_database_instance\",\"framework:iso-27001\",\"requirement:Access-Control\",\"framework:pci\",\"security:compliance\",\"control:6.3.7\",\"requirement:Least-Privileged-Access\",\"requirement:Confidentiality\",\"requirement:Communications-Security\",\"control:7.1\",\"control:C1.1\",\"control:A.13.1.1\",\"control:A.18.1.3\",\"framework:soc-2\",\"control:A.9.1.2\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC6.3\",\"control:CC6.1\"],\"type\":\"cloud_configuration\",\"isEnabled\":true,\"hasExtendedTitle\":true,\"message\":\"## Description\\n\\nIt is recommended to set `contained database authentication` database flag for SQL Server instances to `off`.\\n\\n## Rationale\\n\\nA contained database includes all database settings and metadata required to define the database and has no configuration dependencies on the instance of the Database Engine where the database is installed. Users can connect to the database without authenticating a login at the Database Engine level. Isolating the database from the Database Engine makes it possible to easily move the database to another instance of SQL Server. Contained databases have some unique threats that should be understood and mitigated by SQL Server Database Engine administrators. Most of the threats are related to the `USER WITH PASSWORD` authentication process, which moves the authentication boundary from the Database Engine level to the database level. Hence, disabling this flag is recommended. This recommendation is applicable to SQL Server database instances.\\n\\n## Impact\\n\\nWhen `contained database authentication` is off (`0`) for the instance, contained databases cannot be created, or attached to the Database Engine. Turning on logging will increase the required storage over time. Mismanaged logs may cause your storage costs to increase. Setting custom flags via the command line on certain instances will cause all omitted flags to be reset to defaults. This may cause you to lose custom flags and could result in unforeseen complications or instance restarts. Because of this, it is recommended that you apply these flag changes during a period of low usage.\\n\\n## Remediation\\n\\n### From the console\\n\\n1. Go to the [Cloud SQL Instances][1] page in the Google Cloud Console.\\n2. Select the SQL Server instance for which you want to enable the database flag.\\n3. Click **Edit**.\\n4. Scroll down to the **Flags** section.\\n5. To set a flag that has not been set on the instance before, click **Add item**, choose the flag `contained database authentication` from the drop-down menu, and set its value to `off`.\\n6. Click **Save**.\\n7. Confirm the changes under **Flags** on the Overview page.\\n\\n### From the command line\\n\\nConfigure the `contained database authentication` database flag for every SQL Server database instance using the below command.\\n```\\ngcloud sql instances patch --database-flags \\\"contained database authentication=off\\\"\\n```\\n\\n**Note**: This command will overwrite all database flags previously set. To keep the flags previously set and add new ones, include the values for all flags you want set on the instance; any flag not specifically included is set to its default value. For flags that do not take a value, specify the flag name followed by an equals sign (`=`).\\n\\n\\n## Additional Information\\n\\n- Configuring this flag does not restart the SQL Server instance.\\n\\n- Some database flag settings can affect instance availability or stability and remove the instance from the Cloud SQL SLA. For information about these flags, see Operational Guidelines.\\n\\n## References\\n\\n1. [https://cloud.google.com/sql/docs/sqlserver/flags][2]\\n2. [https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/contained-database-authentication-server-configuration-option?view=sql-server-ver15][3]\\n3. [https://docs.microsoft.com/en-us/sql/relational-databases/databases/security-best-practices-with-contained-databases?view=sql-server-ver15][4]\\n\\n[1]: https://console.cloud.google.com/sql/instances\\n[2]: https://cloud.google.com/sql/docs/sqlserver/flags\\n[3]: https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/contained-database-authentication-server-configuration-option?view=sql-server-ver15\\n[4]: https://docs.microsoft.com/en-us/sql/relational-databases/databases/security-best-practices-with-contained-databases?view=sql-server-ver15\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":7200,\"maxSignalDuration\":86400,\"complianceRuleOptions\":{\"complianceFrameworks\":[{\"control\":\"6.3.7\",\"framework\":\"cis-gcp\",\"requirement\":\"Cloud-SQL\",\"version\":\"1.3.0\"},{\"control\":\"A.9.1.2\",\"framework\":\"iso-27001\",\"requirement\":\"Access-Control\",\"version\":\"2\"},{\"control\":\"A.13.1.1\",\"framework\":\"iso-27001\",\"requirement\":\"Communications-Security\",\"version\":\"2\"},{\"control\":\"A.18.1.3\",\"framework\":\"iso-27001\",\"requirement\":\"Compliance\",\"version\":\"2\"},{\"control\":\"CC6.1\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"},{\"control\":\"CC6.3\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"},{\"control\":\"CC6.7\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"},{\"control\":\"CC6.8\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"},{\"control\":\"C1.1\",\"framework\":\"soc-2\",\"requirement\":\"Confidentiality\",\"version\":\"2\"},{\"control\":\"2.2.4\",\"framework\":\"pci\",\"requirement\":\"Default-Security-Parameter\",\"version\":\"3.2.1\"},{\"control\":\"7.1\",\"framework\":\"pci\",\"requirement\":\"Least-Privileged-Access\",\"version\":\"3.2.1\"}],\"regoRule\":{\"policy\":\"package datadog\\n\\nimport data.datadog.output as dd_output\\n\\nimport future.keywords.contains\\nimport future.keywords.if\\nimport future.keywords.in\\n\\neval(sql_database_instance) = \\\"skip\\\" if {\\n\\tnot is_SQLServer(sql_database_instance)\\n} else = \\\"fail\\\" {\\n\\tdatabase_flags := sql_database_instance.settings.database_flags[_]\\n\\tdatabase_flags.name == \\\"contained database authentication\\\"\\n\\tdatabase_flags.value == \\\"on\\\"\\n} else = \\\"pass\\\" {\\n\\ttrue\\n}\\n\\nis_SQLServer(sql_database_instance) if {\\n\\tstartswith(sql_database_instance.database_version, \\\"SQLSERVER\\\")\\n}\\n\\n# This part remains unchanged for all rules\\nresults contains result if {\\n\\tsome resource in input.resources[input.main_resource_type]\\n\\tresult := dd_output.format(resource, eval(resource))\\n}\\n\",\"resourceTypes\":[\"gcp_sql_database_instance\"]},\"validationQuery\":\"\",\"resourceType\":\"gcp_sql_database_instance\",\"filter\":\"\",\"queryPath\":\"\",\"complexRule\":false},\"keepAlive\":21600},\"version\":7,\"isDefault\":true,\"filters\":[],\"queries\":[{\"query\":\"resource_type:gcp_sql_database_instance\",\"groupByFields\":[\"resource_type\",\"resource_id\"],\"aggregation\":\"count\",\"name\":\"a\",\"distinctFields\":[]}],\"isDeleted\":false,\"complianceSignalOptions\":{\"defaultActivationStatus\":false,\"userActivationStatus\":null,\"defaultGroupByFields\":[\"@resource\"],\"userGroupByFields\":null},\"cases\":[{\"status\":\"medium\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"id\":\"snw-rsr-ilm\",\"createdAt\":1658463161618,\"name\":\"'contained database authentication' database flag is set to 'off' for SQL Server Instance\"},{\"updateAuthorId\":0,\"creationAuthorId\":0,\"tags\":[\"scored:true\",\"control:CC6.6\",\"requirement:Cloud-SQL\",\"cloud_provider:gcp\",\"source:google_sql_database_instance\",\"requirement:Default-Security-Parameter\",\"requirement:Credentials\",\"framework:cis-gcp\",\"requirement:Compliance\",\"control:8.7\",\"level:1\",\"scope:google_sql_database_instance\",\"control:2.2.2\",\"framework:iso-27001\",\"requirement:Access-Control\",\"framework:pci\",\"control:6.3.2\",\"security:compliance\",\"requirement:Least-Privileged-Access\",\"requirement:Communications-Security\",\"control:7.1\",\"requirement:Control-Activities\",\"control:A.13.1.1\",\"control:A.18.1.3\",\"framework:soc-2\",\"control:A.9.1.2\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC5.2\",\"control:CC6.1\"],\"type\":\"cloud_configuration\",\"isEnabled\":true,\"hasExtendedTitle\":true,\"message\":\"## Description\\nIt is recommended that you set the `cross db ownership chaining` database flag for SQL Server instance to `off`.\\n\\n## Rationale\\nThe `cross db ownership` option is used to configure cross-database ownership chaining for an instance of Microsoft SQL Server. This server option allows you to control cross-database ownership chaining at the database level or to allow cross-database ownership chaining for all databases. Enabling `cross db ownership` is not recommended unless all of the databases hosted by the instance of SQL Server must participate in cross-database ownership chaining, and you are aware of the security implications of this setting. This recommendation is applicable to SQL Server database instances.\\n\\n### Impact\\nUpdating flags may cause the database to restart. This may cause the database to be unavailable for a short amount of time, so this is best done at a time of low usage. You should also determine if the tables in your databases reference another table without using credentials for that database, as turning off cross database ownership will break this relationship.\\n\\n - Some database flag settings can affect instance availability or stability, and remove the instance from the Cloud SQL SLA. For information about these flags, see Operational Guidelines.\\n\\n - Configuring the `cross db ownership chaining` flag does not restart the Cloud SQL instance.\\n\\n - Note: The command to set database flags overwrites all database flags previously set. To keep the existing settings while adding new flags, include the values for all flags to be set on the instance. Cloud SQL sets any flag not specifically included in the list to its default value. For flags that do not take a value, specify the flag name followed by an equals sign (\\\"=\\\").\\n\\n## Remediation\\n\\n### From the console\\n1. Go to the [Cloud SQL Instances page][1] in Google Cloud Console.\\n2. Select the SQL Server instance for which you want to enable to database flag.\\n3. Click **Edit**.\\n4. Scroll down to the **Flags** section.\\n5. To set a flag that has not been set on the instance before, click **Add item**, choose the flag `cross db ownership chaining` from the drop-down menu, and set its value to `off`.\\n6. Click **Save**.\\n7. Confirm the changes under **Flags** on the Overview page.\\n\\n### From the command line\\nConfigure the `cross db ownership chaining` database flag for every SQL Server database instance using the below command:\\n \\n```\\ngcloud sql instances patch --database-flags \\\"cross db ownership chaining=off\\\"\\n```\\n\\n## References\\n1. [https://cloud.google.com/sql/docs/sqlserver/flags][2]\\n2. [https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/cross-db-ownership-chaining-server-configuration-option?view=sql-server-ver15][3]\\n\\n[1]: https://console.cloud.google.com/sql/instances\\n[2]: https://cloud.google.com/sql/docs/sqlserver/flags\\n[3]: https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/cross-db-ownership-chaining-server-configuration-option?view=sql-server-ver15\\n\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":7200,\"maxSignalDuration\":86400,\"complianceRuleOptions\":{\"complianceFrameworks\":[{\"control\":\"6.3.2\",\"framework\":\"cis-gcp\",\"requirement\":\"Cloud-SQL\",\"version\":\"1.3.0\"},{\"control\":\"2.2.2\",\"framework\":\"pci\",\"requirement\":\"Default-Security-Parameter\",\"version\":\"3.2.1\"},{\"control\":\"7.1\",\"framework\":\"pci\",\"requirement\":\"Least-Privileged-Access\",\"version\":\"3.2.1\"},{\"control\":\"8.7\",\"framework\":\"pci\",\"requirement\":\"Credentials\",\"version\":\"3.2.1\"},{\"control\":\"A.9.1.2\",\"framework\":\"iso-27001\",\"requirement\":\"Access-Control\",\"version\":\"2\"},{\"control\":\"A.13.1.1\",\"framework\":\"iso-27001\",\"requirement\":\"Communications-Security\",\"version\":\"2\"},{\"control\":\"A.18.1.3\",\"framework\":\"iso-27001\",\"requirement\":\"Compliance\",\"version\":\"2\"},{\"control\":\"CC5.2\",\"framework\":\"soc-2\",\"requirement\":\"Control-Activities\",\"version\":\"2\"},{\"control\":\"CC6.1\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"},{\"control\":\"CC6.6\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"}],\"regoRule\":{\"policy\":\"package datadog\\n\\nimport data.datadog.output as dd_output\\n\\nimport future.keywords.contains\\nimport future.keywords.if\\nimport future.keywords.in\\n\\neval(sql_database_instance) = \\\"skip\\\" if {\\n\\tnot is_SQLServer(sql_database_instance)\\n} else = \\\"fail\\\" {\\n\\tdatabase_flags := sql_database_instance.settings.database_flags[_]\\n\\tdatabase_flags.name == \\\"cross db ownership chaining\\\"\\n\\tdatabase_flags.value == \\\"on\\\"\\n} else = \\\"pass\\\" {\\n\\ttrue\\n}\\n\\nis_SQLServer(sql_database_instance) if {\\n\\tstartswith(sql_database_instance.database_version, \\\"SQLSERVER\\\")\\n}\\n\\n# This part remains unchanged for all rules\\nresults contains result if {\\n\\tsome resource in input.resources[input.main_resource_type]\\n\\tresult := dd_output.format(resource, eval(resource))\\n}\\n\",\"resourceTypes\":[\"gcp_sql_database_instance\"]},\"validationQuery\":\"\",\"resourceType\":\"gcp_sql_database_instance\",\"filter\":\"\",\"queryPath\":\"\",\"complexRule\":false},\"keepAlive\":21600},\"version\":10,\"isDefault\":true,\"filters\":[],\"queries\":[{\"query\":\"resource_type:gcp_sql_database_instance\",\"groupByFields\":[\"resource_type\",\"resource_id\"],\"aggregation\":\"count\",\"name\":\"a\",\"distinctFields\":[]}],\"isDeleted\":false,\"complianceSignalOptions\":{\"defaultActivationStatus\":false,\"userActivationStatus\":null,\"defaultGroupByFields\":[\"@resource\"],\"userGroupByFields\":null},\"cases\":[{\"status\":\"medium\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"id\":\"yje-u1y-rls\",\"createdAt\":1657665271111,\"name\":\"'cross db ownership chaining' database flag is set to 'off' for SQL Server Instance\"},{\"updateAuthorId\":0,\"creationAuthorId\":0,\"tags\":[\"scored:true\",\"control:CC6.6\",\"requirement:Cloud-SQL\",\"cloud_provider:gcp\",\"source:google_sql_database_instance\",\"requirement:Default-Security-Parameter\",\"framework:cis-gcp\",\"requirement:Compliance\",\"level:1\",\"scope:google_sql_database_instance\",\"control:2.2.2\",\"framework:iso-27001\",\"requirement:Access-Control\",\"framework:pci\",\"security:compliance\",\"control:6.3.1\",\"requirement:Least-Privileged-Access\",\"control:7.2\",\"requirement:Communications-Security\",\"control:7.1\",\"requirement:Control-Activities\",\"control:7.2.1\",\"control:A.13.1.1\",\"control:A.18.1.3\",\"framework:soc-2\",\"control:A.9.1.2\",\"requirement:Logical-and-Physical-Access-Control\",\"control:CC5.2\",\"control:CC6.1\"],\"type\":\"cloud_configuration\",\"isEnabled\":true,\"hasExtendedTitle\":true,\"message\":\"## Description\\n\\nIt is recommended to set `external scripts enabled` database flag for SQL Server instance to `off`.\\n\\n## Rationale\\n\\nThe `external scripts enabled` flag enables the execution of scripts with certain remote language extensions. This flag is `off` by default. When Advanced Analytics Services is installed, during the set up, you can optionally set this flag to `on`. The External Scripts Enabled feature allows scripts external to SQL, such as files located in an R library, to be executed, which could adversely affect the security of the system. Hence, the flag should be disabled. This recommendation is applicable to SQL Server database instances.\\n\\n## Impact\\n\\nSetting custom flags through the command line on certain instances can cause all omitted flags to be reset to defaults. This may cause you to lose custom flags and could result in unforeseen complications or instance restarts. Because of this, it is recommended that you apply these flag changes during a period of low usage.\\n\\n## Remediation\\n\\n### From the console\\n\\n1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances][1].\\n2. Select the SQL Server instance for which you want to enable the database flag.\\n3. Click **Edit**.\\n4. Scroll down to the Flag section.\\n5. Click **Add item** to set a flag that has not been set on the instance before. Choose the flag `external scripts enabled` from the drop-down menu, and set its value to `off`.\\n6. Click **Save**.\\n7. Confirm your changes under the Flags section on the Overview page.\\n\\n### From the command line\\n\\nConfigure the `external scripts enabled` database flag for every SQL Server database instance using the following command:\\n\\n```\\ngcloud sql instances patch --database-flags \\\"external scripts enabled=off\\\"\\n```\\n\\nNote: This command overwrites all database flags previously set. To keep those and add new ones, include the values for all flags you want set on the instance; any flag not specifically included is set to its default value. For flags that do not take a value, specify the flag name followed by an equals sign (=).\\n\\n## Default Value\\n\\nBy default `external scripts enabled` is `off`.\\n\\n## Additional information\\n\\n- Some database flag settings can affect instance availability or stability, and remove the instance from the Cloud SQL SLA. For information about these flags, see Operational Guidelines.\\n\\n- Configuring the `external scripts enabled` flag restarts the Cloud SQL instance.\\n\\n## References\\n\\n1. [https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/external-scripts-enabled-server-configuration-option?view=sql-server-ver15][2]\\n2. [https://cloud.google.com/sql/docs/sqlserver/flags][3]\\n3. [https://docs.microsoft.com/en-us/sql/advanced-analytics/concepts/security?view=sql-server-ver15][4]\\n4. [https://www.stigviewer.com/stig/ms_sql_server_2016_instance/2018-03-09/finding/V-79347][5]\\n\\n## CIS Controls\\n\\nVersion 8 - 2.7 Allowlist Authorized Scripts\\n- Use technical controls, such as digital signatures and version control, to ensure that only authorized scripts, such as specific .ps1, .py, etc., files, are allowed to execute. Block unauthorized scripts from executing. Reassess bi-annually, or more frequently.\\n\\nVersion 7 - 2.9 Implement Application Whitelisting of Scripts\\n- The organization's application whitelisting software must ensure that only authorized, digitally signed scripts (such as *.ps1, *.py, macros, etc) are allowed to run on a system.\\n\\n[1]: https://console.cloud.google.com/sql/instances\\n[2]: https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/external-scripts-enabled-server-configuration-option?view=sql-server-ver15\\n[3]: https://cloud.google.com/sql/docs/sqlserver/flags\\n[4]: https://docs.microsoft.com/en-us/sql/advanced-analytics/concepts/security?view=sql-server-ver15\\n[5]: https://www.stigviewer.com/stig/ms_sql_server_2016_instance/2018-03-09/finding/V-79337\\n\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":7200,\"maxSignalDuration\":86400,\"complianceRuleOptions\":{\"complianceFrameworks\":[{\"control\":\"6.3.1\",\"framework\":\"cis-gcp\",\"requirement\":\"Cloud-SQL\",\"version\":\"1.3.0\"},{\"control\":\"2.2.2\",\"framework\":\"pci\",\"requirement\":\"Default-Security-Parameter\",\"version\":\"3.2.1\"},{\"control\":\"7.1\",\"framework\":\"pci\",\"requirement\":\"Least-Privileged-Access\",\"version\":\"3.2.1\"},{\"control\":\"7.2\",\"framework\":\"pci\",\"requirement\":\"Least-Privileged-Access\",\"version\":\"3.2.1\"},{\"control\":\"7.2.1\",\"framework\":\"pci\",\"requirement\":\"Least-Privileged-Access\",\"version\":\"3.2.1\"},{\"control\":\"A.9.1.2\",\"framework\":\"iso-27001\",\"requirement\":\"Access-Control\",\"version\":\"2\"},{\"control\":\"A.13.1.1\",\"framework\":\"iso-27001\",\"requirement\":\"Communications-Security\",\"version\":\"2\"},{\"control\":\"A.18.1.3\",\"framework\":\"iso-27001\",\"requirement\":\"Compliance\",\"version\":\"2\"},{\"control\":\"CC5.2\",\"framework\":\"soc-2\",\"requirement\":\"Control-Activities\",\"version\":\"2\"},{\"control\":\"CC6.1\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"},{\"control\":\"CC6.6\",\"framework\":\"soc-2\",\"requirement\":\"Logical-and-Physical-Access-Control\",\"version\":\"2\"}],\"regoRule\":{\"policy\":\"package datadog\\n\\nimport data.datadog.output as dd_output\\n\\nimport future.keywords.contains\\nimport future.keywords.if\\nimport future.keywords.in\\n\\neval(sql_database_instance) = \\\"skip\\\" if {\\n\\tnot is_SQLServer(sql_database_instance)\\n} else = \\\"fail\\\" {\\n\\tdatabase_flags := sql_database_instance.settings.database_flags[_]\\n\\tdatabase_flags.name == \\\"external scripts enabled\\\"\\n\\tdatabase_flags.value == \\\"on\\\"\\n} else = \\\"pass\\\" {\\n\\ttrue\\n}\\n\\nis_SQLServer(sql_database_instance) if {\\n\\tstartswith(sql_database_instance.database_version, \\\"SQLSERVER\\\")\\n}\\n\\n# This part remains unchanged for all rules\\nresults contains result if {\\n\\tsome resource in input.resources[input.main_resource_type]\\n\\tresult := dd_output.format(resource, eval(resource))\\n}\\n\",\"resourceTypes\":[\"gcp_sql_database_instance\"]},\"validationQuery\":\"\",\"resourceType\":\"gcp_sql_database_instance\",\"filter\":\"\",\"queryPath\":\"\",\"complexRule\":false},\"keepAlive\":21600},\"version\":7,\"isDefault\":true,\"filters\":[],\"queries\":[{\"query\":\"resource_type:gcp_sql_database_instance\",\"groupByFields\":[\"resource_type\",\"resource_id\"],\"aggregation\":\"count\",\"name\":\"a\",\"distinctFields\":[]}],\"isDeleted\":false,\"complianceSignalOptions\":{\"defaultActivationStatus\":false,\"userActivationStatus\":null,\"defaultGroupByFields\":[\"@resource\"],\"userGroupByFields\":null},\"cases\":[{\"status\":\"medium\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"id\":\"14g-yot-4od\",\"createdAt\":1657715719319,\"name\":\"'external scripts enabled' database flag is set to 'off' for SQL Server Instance\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 24 Oct 2022 20:38:42 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Modify-the-triage-assignee-of-a-security-signal-returns-OK-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Modify-the-triage-assignee-of-a-security-signal-returns-OK-response.json index a4eb7beb0..fde6d57dd 100644 --- a/tests/scenarios/cassettes/v2/security_monitoring/Modify-the-triage-assignee-of-a-security-signal-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/security_monitoring/Modify-the-triage-assignee-of-a-security-signal-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"assignee\":{\"uuid\":\"\"}}}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/signals/AQAAAYG1bl5K4HuUewAAAABBWUcxYmw1S0FBQmt2RmhRN0V4ZUVnQUE/assignee"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"incident_ids\":[2066],\"state_update_user\":{\"handle\":\"bernard.le+synthetics@datadoghq.com\",\"uuid\":\"2514d32c-0719-11eb-b643-63faf7d5e1bd\",\"name\":null,\"id\":2115689,\"icon\":\"https://secure.gravatar.com/avatar/ae546a62b5816be30cc23792a69bd9ee?s=48&d=retro\"},\"assignee\":{\"id\":-1,\"name\":\"Unassigned\",\"uuid\":\"\"},\"state\":\"open\",\"archive_reason\":\"none\",\"state_update_timestamp\":1657118941005},\"type\":\"signal_metadata\",\"id\":\"AQAAAYG1bl5K4HuUewAAAABBWUcxYmw1S0FBQmt2RmhRN0V4ZUVnQUE\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 06 Jul 2022 14:49:11 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"assignee\":{\"uuid\":\"\"}}}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/signals/AQAAAYG1bl5K4HuUewAAAABBWUcxYmw1S0FBQmt2RmhRN0V4ZUVnQUE/assignee" + }, + "response": { + "body": { + "string": "{\"data\":{\"attributes\":{\"incident_ids\":[2066],\"state_update_user\":{\"handle\":\"bernard.le+synthetics@datadoghq.com\",\"uuid\":\"2514d32c-0719-11eb-b643-63faf7d5e1bd\",\"name\":null,\"id\":2115689,\"icon\":\"https://secure.gravatar.com/avatar/ae546a62b5816be30cc23792a69bd9ee?s=48&d=retro\"},\"assignee\":{\"id\":-1,\"name\":\"Unassigned\",\"uuid\":\"\"},\"state\":\"open\",\"archive_reason\":\"none\",\"state_update_timestamp\":1657118941005},\"type\":\"signal_metadata\",\"id\":\"AQAAAYG1bl5K4HuUewAAAABBWUcxYmw1S0FBQmt2RmhRN0V4ZUVnQUE\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 06 Jul 2022 14:49:11 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Mute-or-unmute-a-batch-of-findings-returns-OK-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Mute-or-unmute-a-batch-of-findings-returns-OK-response.json index 53ff91f03..d3e7d13d1 100644 --- a/tests/scenarios/cassettes/v2/security_monitoring/Mute-or-unmute-a-batch-of-findings-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/security_monitoring/Mute-or-unmute-a-batch-of-findings-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"mute\":{\"expiration_date\":1778721573794,\"muted\":true,\"reason\":\"ACCEPTED_RISK\"}},\"id\":\"dbe5f567-192b-4404-b908-29b70e1c9f76\",\"meta\":{\"findings\":[{\"finding_id\":\"ZGVmLTAwcC1pZXJ-aS0wZjhjNjMyZDNmMzRlZTgzNw==\"}]},\"type\":\"finding\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/posture_management/findings"}, "response": {"body": {"string": "{\"data\":{\"id\":\"dbe5f567-192b-4404-b908-29b70e1c9f76\",\"type\":\"finding\"}}", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 27 Oct 2023 12:59:49 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"mute\":{\"expiration_date\":1778721573794,\"muted\":true,\"reason\":\"ACCEPTED_RISK\"}},\"id\":\"dbe5f567-192b-4404-b908-29b70e1c9f76\",\"meta\":{\"findings\":[{\"finding_id\":\"ZGVmLTAwcC1pZXJ-aS0wZjhjNjMyZDNmMzRlZTgzNw==\"}]},\"type\":\"finding\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/posture_management/findings" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"dbe5f567-192b-4404-b908-29b70e1c9f76\",\"type\":\"finding\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 27 Oct 2023 12:59:49 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Update-a-cloud-configuration-rule-s-details-returns-OK-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Update-a-cloud-configuration-rule-s-details-returns-OK-response.json index 85ba7b8bd..dcdbd047e 100644 --- a/tests/scenarios/cassettes/v2/security_monitoring/Update-a-cloud-configuration-rule-s-details-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/security_monitoring/Update-a-cloud-configuration-rule-s-details-returns-OK-response.json @@ -1 +1,97 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"cases\":[{\"notifications\":[\"channel\"],\"status\":\"info\"}],\"complianceSignalOptions\":{\"userActivationStatus\":true,\"userGroupByFields\":[\"@account_id\"]},\"isEnabled\":false,\"message\":\"Cloud configuration rule\",\"name\":\"Test-Update_a_cloud_configuration_rule_s_details_returns_OK_response-1693483085_cloud\",\"options\":{\"complianceRuleOptions\":{\"complexRule\":false,\"regoRule\":{\"policy\":\"package datadog\\n\\nimport data.datadog.output as dd_output\\n\\nimport future.keywords.contains\\nimport future.keywords.if\\nimport future.keywords.in\\n\\nmilliseconds_in_a_day := ((1000 * 60) * 60) * 24\\n\\neval(iam_service_account_key) = \\\"skip\\\" if {\\n\\tiam_service_account_key.disabled\\n} else = \\\"pass\\\" if {\\n\\t(iam_service_account_key.resource_seen_at / milliseconds_in_a_day) - (iam_service_account_key.valid_after_time / milliseconds_in_a_day) <= 90\\n} else = \\\"fail\\\"\\n\\n# This part remains unchanged for all rules\\nresults contains result if {\\n\\tsome resource in input.resources[input.main_resource_type]\\n\\tresult := dd_output.format(resource, eval(resource))\\n}\\n\",\"resourceTypes\":[\"gcp_compute_disk\"]},\"resourceType\":\"gcp_compute_disk\"}},\"tags\":[\"a:tag\"],\"type\":\"cloud_configuration\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules"}, "response": {"body": {"string": "{\"id\":\"38c-eaq-w9j\",\"version\":1,\"name\":\"Test-Update_a_cloud_configuration_rule_s_details_returns_OK_response-1693483085_cloud\",\"createdAt\":1693483086124,\"creationAuthorId\":1445416,\"isDefault\":false,\"isEnabled\":false,\"isDeleted\":false,\"isDeprecated\":false,\"queries\":[{\"query\":\"resource_type:gcp_compute_disk\",\"groupByFields\":[\"resource_type\",\"resource_id\"],\"distinctFields\":[],\"aggregation\":\"count\",\"name\":\"a\"}],\"options\":{\"keepAlive\":21600,\"maxSignalDuration\":86400,\"detectionMethod\":\"threshold\",\"evaluationWindow\":7200,\"complianceRuleOptions\":{\"resourceType\":\"gcp_compute_disk\",\"regoRule\":{\"policy\":\"package datadog\\n\\nimport data.datadog.output as dd_output\\n\\nimport future.keywords.contains\\nimport future.keywords.if\\nimport future.keywords.in\\n\\nmilliseconds_in_a_day := ((1000 * 60) * 60) * 24\\n\\neval(iam_service_account_key) = \\\"skip\\\" if {\\n\\tiam_service_account_key.disabled\\n} else = \\\"pass\\\" if {\\n\\t(iam_service_account_key.resource_seen_at / milliseconds_in_a_day) - (iam_service_account_key.valid_after_time / milliseconds_in_a_day) <= 90\\n} else = \\\"fail\\\"\\n\\n# This part remains unchanged for all rules\\nresults contains result if {\\n\\tsome resource in input.resources[input.main_resource_type]\\n\\tresult := dd_output.format(resource, eval(resource))\\n}\\n\",\"resourceTypes\":[\"gcp_compute_disk\"]},\"complexRule\":false}},\"complianceSignalOptions\":{\"defaultActivationStatus\":null,\"defaultGroupByFields\":null,\"userActivationStatus\":true,\"userGroupByFields\":[\"@account_id\"]},\"cases\":[{\"name\":\"\",\"status\":\"info\",\"notifications\":[\"channel\"],\"condition\":\"a > 0\"}],\"message\":\"Cloud configuration rule\",\"tags\":[\"a:tag\"],\"hasExtendedTitle\":true,\"type\":\"cloud_configuration\",\"filters\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 31 Aug 2023 11:58:05 GMT"}, {"request": {"body": {"string": "{\"cases\":[{\"notifications\":[],\"status\":\"info\"}],\"complianceSignalOptions\":{\"userActivationStatus\":false,\"userGroupByFields\":[]},\"isEnabled\":false,\"message\":\"ddd\",\"name\":\"Test-Update_a_cloud_configuration_rule_s_details_returns_OK_response-1693483085_cloud_updated\",\"options\":{\"complianceRuleOptions\":{\"regoRule\":{\"policy\":\"package datadog\\n\\nimport data.datadog.output as dd_output\\n\\nimport future.keywords.contains\\nimport future.keywords.if\\nimport future.keywords.in\\n\\nmilliseconds_in_a_day := ((1000 * 60) * 60) * 24\\n\\neval(iam_service_account_key) = \\\"skip\\\" if {\\n\\tiam_service_account_key.disabled\\n} else = \\\"pass\\\" if {\\n\\t(iam_service_account_key.resource_seen_at / milliseconds_in_a_day) - (iam_service_account_key.valid_after_time / milliseconds_in_a_day) <= 90\\n} else = \\\"fail\\\"\\n\\n# This part remains unchanged for all rules\\nresults contains result if {\\n\\tsome resource in input.resources[input.main_resource_type]\\n\\tresult := dd_output.format(resource, eval(resource))\\n}\\n\",\"resourceTypes\":[\"gcp_compute_disk\"]},\"resourceType\":\"gcp_compute_disk\"}},\"tags\":[]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "put", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/38c-eaq-w9j"}, "response": {"body": {"string": "{\"id\":\"38c-eaq-w9j\",\"version\":2,\"name\":\"Test-Update_a_cloud_configuration_rule_s_details_returns_OK_response-1693483085_cloud_updated\",\"createdAt\":1693483086124,\"creationAuthorId\":1445416,\"updateAuthorId\":1445416,\"isDefault\":false,\"isEnabled\":false,\"isDeleted\":false,\"isDeprecated\":false,\"queries\":[{\"query\":\"resource_type:gcp_compute_disk\",\"groupByFields\":[\"resource_type\",\"resource_id\"],\"distinctFields\":[],\"aggregation\":\"count\",\"name\":\"a\"}],\"options\":{\"keepAlive\":21600,\"maxSignalDuration\":86400,\"detectionMethod\":\"threshold\",\"evaluationWindow\":7200,\"complianceRuleOptions\":{\"resourceType\":\"gcp_compute_disk\",\"regoRule\":{\"policy\":\"package datadog\\n\\nimport data.datadog.output as dd_output\\n\\nimport future.keywords.contains\\nimport future.keywords.if\\nimport future.keywords.in\\n\\nmilliseconds_in_a_day := ((1000 * 60) * 60) * 24\\n\\neval(iam_service_account_key) = \\\"skip\\\" if {\\n\\tiam_service_account_key.disabled\\n} else = \\\"pass\\\" if {\\n\\t(iam_service_account_key.resource_seen_at / milliseconds_in_a_day) - (iam_service_account_key.valid_after_time / milliseconds_in_a_day) <= 90\\n} else = \\\"fail\\\"\\n\\n# This part remains unchanged for all rules\\nresults contains result if {\\n\\tsome resource in input.resources[input.main_resource_type]\\n\\tresult := dd_output.format(resource, eval(resource))\\n}\\n\",\"resourceTypes\":[\"gcp_compute_disk\"]},\"complexRule\":false}},\"complianceSignalOptions\":{\"defaultActivationStatus\":null,\"defaultGroupByFields\":null,\"userActivationStatus\":false,\"userGroupByFields\":[]},\"cases\":[{\"name\":\"\",\"status\":\"info\",\"notifications\":[],\"condition\":\"a > 0\"}],\"message\":\"ddd\",\"tags\":[],\"hasExtendedTitle\":true,\"type\":\"cloud_configuration\",\"filters\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 31 Aug 2023 11:58:05 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/38c-eaq-w9j"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 31 Aug 2023 11:58:05 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"cases\":[{\"notifications\":[\"channel\"],\"status\":\"info\"}],\"complianceSignalOptions\":{\"userActivationStatus\":true,\"userGroupByFields\":[\"@account_id\"]},\"isEnabled\":false,\"message\":\"Cloud configuration rule\",\"name\":\"Test-Update_a_cloud_configuration_rule_s_details_returns_OK_response-1693483085_cloud\",\"options\":{\"complianceRuleOptions\":{\"complexRule\":false,\"regoRule\":{\"policy\":\"package datadog\\n\\nimport data.datadog.output as dd_output\\n\\nimport future.keywords.contains\\nimport future.keywords.if\\nimport future.keywords.in\\n\\nmilliseconds_in_a_day := ((1000 * 60) * 60) * 24\\n\\neval(iam_service_account_key) = \\\"skip\\\" if {\\n\\tiam_service_account_key.disabled\\n} else = \\\"pass\\\" if {\\n\\t(iam_service_account_key.resource_seen_at / milliseconds_in_a_day) - (iam_service_account_key.valid_after_time / milliseconds_in_a_day) <= 90\\n} else = \\\"fail\\\"\\n\\n# This part remains unchanged for all rules\\nresults contains result if {\\n\\tsome resource in input.resources[input.main_resource_type]\\n\\tresult := dd_output.format(resource, eval(resource))\\n}\\n\",\"resourceTypes\":[\"gcp_compute_disk\"]},\"resourceType\":\"gcp_compute_disk\"}},\"tags\":[\"a:tag\"],\"type\":\"cloud_configuration\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules" + }, + "response": { + "body": { + "string": "{\"id\":\"38c-eaq-w9j\",\"version\":1,\"name\":\"Test-Update_a_cloud_configuration_rule_s_details_returns_OK_response-1693483085_cloud\",\"createdAt\":1693483086124,\"creationAuthorId\":1445416,\"isDefault\":false,\"isEnabled\":false,\"isDeleted\":false,\"isDeprecated\":false,\"queries\":[{\"query\":\"resource_type:gcp_compute_disk\",\"groupByFields\":[\"resource_type\",\"resource_id\"],\"distinctFields\":[],\"aggregation\":\"count\",\"name\":\"a\"}],\"options\":{\"keepAlive\":21600,\"maxSignalDuration\":86400,\"detectionMethod\":\"threshold\",\"evaluationWindow\":7200,\"complianceRuleOptions\":{\"resourceType\":\"gcp_compute_disk\",\"regoRule\":{\"policy\":\"package datadog\\n\\nimport data.datadog.output as dd_output\\n\\nimport future.keywords.contains\\nimport future.keywords.if\\nimport future.keywords.in\\n\\nmilliseconds_in_a_day := ((1000 * 60) * 60) * 24\\n\\neval(iam_service_account_key) = \\\"skip\\\" if {\\n\\tiam_service_account_key.disabled\\n} else = \\\"pass\\\" if {\\n\\t(iam_service_account_key.resource_seen_at / milliseconds_in_a_day) - (iam_service_account_key.valid_after_time / milliseconds_in_a_day) <= 90\\n} else = \\\"fail\\\"\\n\\n# This part remains unchanged for all rules\\nresults contains result if {\\n\\tsome resource in input.resources[input.main_resource_type]\\n\\tresult := dd_output.format(resource, eval(resource))\\n}\\n\",\"resourceTypes\":[\"gcp_compute_disk\"]},\"complexRule\":false}},\"complianceSignalOptions\":{\"defaultActivationStatus\":null,\"defaultGroupByFields\":null,\"userActivationStatus\":true,\"userGroupByFields\":[\"@account_id\"]},\"cases\":[{\"name\":\"\",\"status\":\"info\",\"notifications\":[\"channel\"],\"condition\":\"a > 0\"}],\"message\":\"Cloud configuration rule\",\"tags\":[\"a:tag\"],\"hasExtendedTitle\":true,\"type\":\"cloud_configuration\",\"filters\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 31 Aug 2023 11:58:05 GMT" + }, + { + "request": { + "body": { + "string": "{\"cases\":[{\"notifications\":[],\"status\":\"info\"}],\"complianceSignalOptions\":{\"userActivationStatus\":false,\"userGroupByFields\":[]},\"isEnabled\":false,\"message\":\"ddd\",\"name\":\"Test-Update_a_cloud_configuration_rule_s_details_returns_OK_response-1693483085_cloud_updated\",\"options\":{\"complianceRuleOptions\":{\"regoRule\":{\"policy\":\"package datadog\\n\\nimport data.datadog.output as dd_output\\n\\nimport future.keywords.contains\\nimport future.keywords.if\\nimport future.keywords.in\\n\\nmilliseconds_in_a_day := ((1000 * 60) * 60) * 24\\n\\neval(iam_service_account_key) = \\\"skip\\\" if {\\n\\tiam_service_account_key.disabled\\n} else = \\\"pass\\\" if {\\n\\t(iam_service_account_key.resource_seen_at / milliseconds_in_a_day) - (iam_service_account_key.valid_after_time / milliseconds_in_a_day) <= 90\\n} else = \\\"fail\\\"\\n\\n# This part remains unchanged for all rules\\nresults contains result if {\\n\\tsome resource in input.resources[input.main_resource_type]\\n\\tresult := dd_output.format(resource, eval(resource))\\n}\\n\",\"resourceTypes\":[\"gcp_compute_disk\"]},\"resourceType\":\"gcp_compute_disk\"}},\"tags\":[]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/38c-eaq-w9j" + }, + "response": { + "body": { + "string": "{\"id\":\"38c-eaq-w9j\",\"version\":2,\"name\":\"Test-Update_a_cloud_configuration_rule_s_details_returns_OK_response-1693483085_cloud_updated\",\"createdAt\":1693483086124,\"creationAuthorId\":1445416,\"updateAuthorId\":1445416,\"isDefault\":false,\"isEnabled\":false,\"isDeleted\":false,\"isDeprecated\":false,\"queries\":[{\"query\":\"resource_type:gcp_compute_disk\",\"groupByFields\":[\"resource_type\",\"resource_id\"],\"distinctFields\":[],\"aggregation\":\"count\",\"name\":\"a\"}],\"options\":{\"keepAlive\":21600,\"maxSignalDuration\":86400,\"detectionMethod\":\"threshold\",\"evaluationWindow\":7200,\"complianceRuleOptions\":{\"resourceType\":\"gcp_compute_disk\",\"regoRule\":{\"policy\":\"package datadog\\n\\nimport data.datadog.output as dd_output\\n\\nimport future.keywords.contains\\nimport future.keywords.if\\nimport future.keywords.in\\n\\nmilliseconds_in_a_day := ((1000 * 60) * 60) * 24\\n\\neval(iam_service_account_key) = \\\"skip\\\" if {\\n\\tiam_service_account_key.disabled\\n} else = \\\"pass\\\" if {\\n\\t(iam_service_account_key.resource_seen_at / milliseconds_in_a_day) - (iam_service_account_key.valid_after_time / milliseconds_in_a_day) <= 90\\n} else = \\\"fail\\\"\\n\\n# This part remains unchanged for all rules\\nresults contains result if {\\n\\tsome resource in input.resources[input.main_resource_type]\\n\\tresult := dd_output.format(resource, eval(resource))\\n}\\n\",\"resourceTypes\":[\"gcp_compute_disk\"]},\"complexRule\":false}},\"complianceSignalOptions\":{\"defaultActivationStatus\":null,\"defaultGroupByFields\":null,\"userActivationStatus\":false,\"userGroupByFields\":[]},\"cases\":[{\"name\":\"\",\"status\":\"info\",\"notifications\":[],\"condition\":\"a > 0\"}],\"message\":\"ddd\",\"tags\":[],\"hasExtendedTitle\":true,\"type\":\"cloud_configuration\",\"filters\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 31 Aug 2023 11:58:05 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/38c-eaq-w9j" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 31 Aug 2023 11:58:05 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Update-a-security-filter-returns-OK-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Update-a-security-filter-returns-OK-response.json index 3d135d8ea..2920302b8 100644 --- a/tests/scenarios/cassettes/v2/security_monitoring/Update-a-security-filter-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/security_monitoring/Update-a-security-filter-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"exclusion_filters\":[{\"name\":\"Exclude logs from staging\",\"query\":\"source:staging\"}],\"filtered_data_type\":\"logs\",\"is_enabled\":true,\"name\":\"Test-Update_a_security_filter_returns_OK_response-1666186606\",\"query\":\"service:TestUpdateasecurityfilterreturnsOKresponse1666186606\"},\"type\":\"security_filters\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/security_filters"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Update_a_security_filter_returns_OK_response-1666186606\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestUpdateasecurityfilterreturnsOKresponse1666186606\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"dtb-n4z-x9c\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 19 Oct 2022 13:36:46 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"exclusion_filters\":[],\"filtered_data_type\":\"logs\",\"is_enabled\":true,\"name\":\"Test-Update_a_security_filter_returns_OK_response-1666186606\",\"query\":\"service:TestUpdateasecurityfilterreturnsOKresponse1666186606\",\"version\":1},\"type\":\"security_filters\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/security_filters/dtb-n4z-x9c"}, "response": {"body": {"string": "{\"data\":{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Update_a_security_filter_returns_OK_response-1666186606\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestUpdateasecurityfilterreturnsOKresponse1666186606\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"dtb-n4z-x9c\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 19 Oct 2022 13:36:46 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/security_filters/dtb-n4z-x9c"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 19 Oct 2022 13:36:46 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"exclusion_filters\":[{\"name\":\"Exclude logs from staging\",\"query\":\"source:staging\"}],\"filtered_data_type\":\"logs\",\"is_enabled\":true,\"name\":\"Test-Update_a_security_filter_returns_OK_response-1666186606\",\"query\":\"service:TestUpdateasecurityfilterreturnsOKresponse1666186606\"},\"type\":\"security_filters\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/security_filters" + }, + "response": { + "body": { + "string": "{\"data\":{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Update_a_security_filter_returns_OK_response-1666186606\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[{\"query\":\"source:staging\",\"name\":\"Exclude logs from staging\"}],\"version\":1,\"query\":\"service:TestUpdateasecurityfilterreturnsOKresponse1666186606\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"dtb-n4z-x9c\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 19 Oct 2022 13:36:46 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"exclusion_filters\":[],\"filtered_data_type\":\"logs\",\"is_enabled\":true,\"name\":\"Test-Update_a_security_filter_returns_OK_response-1666186606\",\"query\":\"service:TestUpdateasecurityfilterreturnsOKresponse1666186606\",\"version\":1},\"type\":\"security_filters\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/security_filters/dtb-n4z-x9c" + }, + "response": { + "body": { + "string": "{\"data\":{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Update_a_security_filter_returns_OK_response-1666186606\",\"filtered_data_type\":\"logs\",\"exclusion_filters\":[],\"version\":2,\"query\":\"service:TestUpdateasecurityfilterreturnsOKresponse1666186606\",\"is_builtin\":false},\"type\":\"security_filters\",\"id\":\"dtb-n4z-x9c\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 19 Oct 2022 13:36:46 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/security_filters/dtb-n4z-x9c" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 19 Oct 2022 13:36:46 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Update-a-suppression-rule-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/security_monitoring/Update-a-suppression-rule-returns-OK-response.frozen new file mode 100644 index 000000000..1fae5f63e --- /dev/null +++ b/tests/scenarios/cassettes/v2/security_monitoring/Update-a-suppression-rule-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-01-11T10:06:37.000Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Update-a-suppression-rule-returns-OK-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Update-a-suppression-rule-returns-OK-response.json new file mode 100644 index 000000000..e83d13605 --- /dev/null +++ b/tests/scenarios/cassettes/v2/security_monitoring/Update-a-suppression-rule-returns-OK-response.json @@ -0,0 +1,101 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"description\":\"Test-Update_a_suppression_rule_returns_OK_response-1704967597\",\"enabled\":true,\"name\":\"Test-Update_a_suppression_rule_returns_OK_response-1704967597\",\"rule_query\":\"source:cloudtrail\",\"suppression_query\":\"env:test\"},\"type\":\"suppressions\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"xhe-kbx-qym\",\"attributes\":{\"name\":\"Test-Update_a_suppression_rule_returns_OK_response-1704967597\",\"enabled\":true,\"description\":\"Test-Update_a_suppression_rule_returns_OK_response-1704967597\",\"rule_query\":\"source:cloudtrail\",\"suppression_query\":\"env:test\",\"version\":1,\"creation_date\":1704967597310,\"update_date\":1704967597310,\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\"},\"updater\":{\"name\":null,\"handle\":\"frog@datadoghq.com\"}},\"type\":\"suppressions\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 11 Jan 2024 10:06:37 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"suppression_query\":\"env:staging status:low\"},\"type\":\"suppressions\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions/xhe-kbx-qym" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"xhe-kbx-qym\",\"attributes\":{\"name\":\"Test-Update_a_suppression_rule_returns_OK_response-1704967597\",\"enabled\":true,\"description\":\"Test-Update_a_suppression_rule_returns_OK_response-1704967597\",\"rule_query\":\"source:cloudtrail\",\"suppression_query\":\"env:staging status:low\",\"version\":2,\"creation_date\":1704967597310,\"update_date\":1704967597660,\"creator\":{\"name\":null,\"handle\":\"frog@datadoghq.com\"},\"updater\":{\"name\":null,\"handle\":\"frog@datadoghq.com\"}},\"type\":\"suppressions\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 11 Jan 2024 10:06:37 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions/xhe-kbx-qym" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 11 Jan 2024 10:06:37 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Update-an-existing-rule-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Update-an-existing-rule-returns-Bad-Request-response.json index 4442dc485..8d04636c3 100644 --- a/tests/scenarios/cassettes/v2/security_monitoring/Update-an-existing-rule-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/security_monitoring/Update-an-existing-rule-returns-Bad-Request-response.json @@ -1 +1,97 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"cases\":[{\"condition\":\"a > 0\",\"name\":\"\",\"notifications\":[],\"status\":\"info\"}],\"filters\":[],\"isEnabled\":true,\"message\":\"Test rule\",\"name\":\"Test-Update_an_existing_rule_returns_Bad_Request_response-1666647605\",\"options\":{\"evaluationWindow\":900,\"keepAlive\":3600,\"maxSignalDuration\":86400},\"queries\":[{\"aggregation\":\"count\",\"distinctFields\":[],\"groupByFields\":[],\"metrics\":[],\"query\":\"@test:true\"}],\"tags\":[],\"type\":\"log_detection\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules"}, "response": {"body": {"string": "{\"creationAuthorId\":1445416,\"tags\":[],\"isEnabled\":true,\"hasExtendedTitle\":false,\"message\":\"Test rule\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":900,\"maxSignalDuration\":86400,\"keepAlive\":3600},\"version\":1,\"createdAt\":1666647605501,\"filters\":[],\"queries\":[{\"query\":\"@test:true\",\"groupByFields\":[],\"aggregation\":\"count\",\"name\":\"\",\"distinctFields\":[]}],\"isDeleted\":false,\"cases\":[{\"status\":\"info\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"type\":\"log_detection\",\"id\":\"3bq-nad-szq\",\"isDefault\":false,\"name\":\"Test-Update_an_existing_rule_returns_Bad_Request_response-1666647605\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 24 Oct 2022 21:40:05 GMT"}, {"request": {"body": {"string": "{\"cases\":[{\"status\":\"info\"}],\"isEnabled\":true,\"message\":\"Test rule Bad\",\"name\":\"Test-Update_an_existing_rule_returns_Bad_Request_response-1666647605\",\"options\":{},\"queries\":[{\"query\":\"\"}],\"tags\":[]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "put", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/3bq-nad-szq"}, "response": {"body": {"string": "{\"errors\":[\"Invalid rule configuration\",\"Query filter cannot be empty\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Mon, 24 Oct 2022 21:40:05 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/3bq-nad-szq"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 24 Oct 2022 21:40:05 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"cases\":[{\"condition\":\"a > 0\",\"name\":\"\",\"notifications\":[],\"status\":\"info\"}],\"filters\":[],\"isEnabled\":true,\"message\":\"Test rule\",\"name\":\"Test-Update_an_existing_rule_returns_Bad_Request_response-1666647605\",\"options\":{\"evaluationWindow\":900,\"keepAlive\":3600,\"maxSignalDuration\":86400},\"queries\":[{\"aggregation\":\"count\",\"distinctFields\":[],\"groupByFields\":[],\"metrics\":[],\"query\":\"@test:true\"}],\"tags\":[],\"type\":\"log_detection\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules" + }, + "response": { + "body": { + "string": "{\"creationAuthorId\":1445416,\"tags\":[],\"isEnabled\":true,\"hasExtendedTitle\":false,\"message\":\"Test rule\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":900,\"maxSignalDuration\":86400,\"keepAlive\":3600},\"version\":1,\"createdAt\":1666647605501,\"filters\":[],\"queries\":[{\"query\":\"@test:true\",\"groupByFields\":[],\"aggregation\":\"count\",\"name\":\"\",\"distinctFields\":[]}],\"isDeleted\":false,\"cases\":[{\"status\":\"info\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"type\":\"log_detection\",\"id\":\"3bq-nad-szq\",\"isDefault\":false,\"name\":\"Test-Update_an_existing_rule_returns_Bad_Request_response-1666647605\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 24 Oct 2022 21:40:05 GMT" + }, + { + "request": { + "body": { + "string": "{\"cases\":[{\"status\":\"info\"}],\"isEnabled\":true,\"message\":\"Test rule Bad\",\"name\":\"Test-Update_an_existing_rule_returns_Bad_Request_response-1666647605\",\"options\":{},\"queries\":[{\"query\":\"\"}],\"tags\":[]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/3bq-nad-szq" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Invalid rule configuration\",\"Query filter cannot be empty\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Mon, 24 Oct 2022 21:40:05 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/3bq-nad-szq" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 24 Oct 2022 21:40:05 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Update-an-existing-rule-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Update-an-existing-rule-returns-Not-Found-response.json index 2555f49b7..9cc560326 100644 --- a/tests/scenarios/cassettes/v2/security_monitoring/Update-an-existing-rule-returns-Not-Found-response.json +++ b/tests/scenarios/cassettes/v2/security_monitoring/Update-an-existing-rule-returns-Not-Found-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"cases\":[{\"condition\":\"a > 0\",\"name\":\"\",\"notifications\":[],\"status\":\"info\"}],\"filters\":[],\"isEnabled\":true,\"message\":\"Test rule\",\"name\":\"Test-Update_an_existing_rule_returns_Not_Found_response-1680891120-NotFound\",\"options\":{\"evaluationWindow\":900,\"keepAlive\":3600,\"maxSignalDuration\":86400},\"queries\":[{\"aggregation\":\"count\",\"distinctFields\":[],\"groupByFields\":[],\"metrics\":[],\"query\":\"@test:true\"}],\"tags\":[]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "put", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/abcde-12345"}, "response": {"body": {"string": "{\"errors\":[\"Not found\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Fri, 07 Apr 2023 18:12:00 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"cases\":[{\"condition\":\"a > 0\",\"name\":\"\",\"notifications\":[],\"status\":\"info\"}],\"filters\":[],\"isEnabled\":true,\"message\":\"Test rule\",\"name\":\"Test-Update_an_existing_rule_returns_Not_Found_response-1680891120-NotFound\",\"options\":{\"evaluationWindow\":900,\"keepAlive\":3600,\"maxSignalDuration\":86400},\"queries\":[{\"aggregation\":\"count\",\"distinctFields\":[],\"groupByFields\":[],\"metrics\":[],\"query\":\"@test:true\"}],\"tags\":[]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/abcde-12345" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Not found\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Fri, 07 Apr 2023 18:12:00 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Update-an-existing-rule-returns-OK-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Update-an-existing-rule-returns-OK-response.json index 398eef7aa..9e16a9396 100644 --- a/tests/scenarios/cassettes/v2/security_monitoring/Update-an-existing-rule-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/security_monitoring/Update-an-existing-rule-returns-OK-response.json @@ -1 +1,97 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"cases\":[{\"condition\":\"a > 0\",\"name\":\"\",\"notifications\":[],\"status\":\"info\"}],\"filters\":[],\"isEnabled\":true,\"message\":\"Test rule\",\"name\":\"Test-Update_an_existing_rule_returns_OK_response-1666643564\",\"options\":{\"evaluationWindow\":900,\"keepAlive\":3600,\"maxSignalDuration\":86400},\"queries\":[{\"aggregation\":\"count\",\"distinctFields\":[],\"groupByFields\":[],\"metrics\":[],\"query\":\"@test:true\"}],\"tags\":[],\"type\":\"log_detection\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules"}, "response": {"body": {"string": "{\"creationAuthorId\":1445416,\"tags\":[],\"isEnabled\":true,\"hasExtendedTitle\":false,\"message\":\"Test rule\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":900,\"maxSignalDuration\":86400,\"keepAlive\":3600},\"version\":1,\"createdAt\":1666643564940,\"filters\":[],\"queries\":[{\"query\":\"@test:true\",\"groupByFields\":[],\"aggregation\":\"count\",\"name\":\"\",\"distinctFields\":[]}],\"isDeleted\":false,\"cases\":[{\"status\":\"info\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"type\":\"log_detection\",\"id\":\"uhl-lzc-3iz\",\"isDefault\":false,\"name\":\"Test-Update_an_existing_rule_returns_OK_response-1666643564\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 24 Oct 2022 20:32:44 GMT"}, {"request": {"body": {"string": "{\"cases\":[{\"condition\":\"a > 0\",\"name\":\"\",\"notifications\":[],\"status\":\"info\"}],\"filters\":[],\"isEnabled\":true,\"message\":\"Test rule\",\"name\":\"Test-Update_an_existing_rule_returns_OK_response-1666643564-Updated\",\"options\":{\"evaluationWindow\":900,\"keepAlive\":3600,\"maxSignalDuration\":86400},\"queries\":[{\"aggregation\":\"count\",\"distinctFields\":[],\"groupByFields\":[],\"metrics\":[],\"query\":\"@test:true\"}],\"tags\":[]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "put", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/uhl-lzc-3iz"}, "response": {"body": {"string": "{\"updateAuthorId\":1445416,\"creationAuthorId\":1445416,\"tags\":[],\"isEnabled\":true,\"hasExtendedTitle\":false,\"message\":\"Test rule\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":900,\"maxSignalDuration\":86400,\"keepAlive\":3600},\"version\":2,\"isDefault\":false,\"filters\":[],\"queries\":[{\"query\":\"@test:true\",\"groupByFields\":[],\"aggregation\":\"count\",\"name\":\"\",\"distinctFields\":[]}],\"isDeleted\":false,\"cases\":[{\"status\":\"info\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"type\":\"log_detection\",\"id\":\"uhl-lzc-3iz\",\"createdAt\":1666643564940,\"name\":\"Test-Update_an_existing_rule_returns_OK_response-1666643564-Updated\"}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 24 Oct 2022 20:32:44 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/uhl-lzc-3iz"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 24 Oct 2022 20:32:44 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"cases\":[{\"condition\":\"a > 0\",\"name\":\"\",\"notifications\":[],\"status\":\"info\"}],\"filters\":[],\"isEnabled\":true,\"message\":\"Test rule\",\"name\":\"Test-Update_an_existing_rule_returns_OK_response-1666643564\",\"options\":{\"evaluationWindow\":900,\"keepAlive\":3600,\"maxSignalDuration\":86400},\"queries\":[{\"aggregation\":\"count\",\"distinctFields\":[],\"groupByFields\":[],\"metrics\":[],\"query\":\"@test:true\"}],\"tags\":[],\"type\":\"log_detection\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules" + }, + "response": { + "body": { + "string": "{\"creationAuthorId\":1445416,\"tags\":[],\"isEnabled\":true,\"hasExtendedTitle\":false,\"message\":\"Test rule\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":900,\"maxSignalDuration\":86400,\"keepAlive\":3600},\"version\":1,\"createdAt\":1666643564940,\"filters\":[],\"queries\":[{\"query\":\"@test:true\",\"groupByFields\":[],\"aggregation\":\"count\",\"name\":\"\",\"distinctFields\":[]}],\"isDeleted\":false,\"cases\":[{\"status\":\"info\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"type\":\"log_detection\",\"id\":\"uhl-lzc-3iz\",\"isDefault\":false,\"name\":\"Test-Update_an_existing_rule_returns_OK_response-1666643564\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 24 Oct 2022 20:32:44 GMT" + }, + { + "request": { + "body": { + "string": "{\"cases\":[{\"condition\":\"a > 0\",\"name\":\"\",\"notifications\":[],\"status\":\"info\"}],\"filters\":[],\"isEnabled\":true,\"message\":\"Test rule\",\"name\":\"Test-Update_an_existing_rule_returns_OK_response-1666643564-Updated\",\"options\":{\"evaluationWindow\":900,\"keepAlive\":3600,\"maxSignalDuration\":86400},\"queries\":[{\"aggregation\":\"count\",\"distinctFields\":[],\"groupByFields\":[],\"metrics\":[],\"query\":\"@test:true\"}],\"tags\":[]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/uhl-lzc-3iz" + }, + "response": { + "body": { + "string": "{\"updateAuthorId\":1445416,\"creationAuthorId\":1445416,\"tags\":[],\"isEnabled\":true,\"hasExtendedTitle\":false,\"message\":\"Test rule\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":900,\"maxSignalDuration\":86400,\"keepAlive\":3600},\"version\":2,\"isDefault\":false,\"filters\":[],\"queries\":[{\"query\":\"@test:true\",\"groupByFields\":[],\"aggregation\":\"count\",\"name\":\"\",\"distinctFields\":[]}],\"isDeleted\":false,\"cases\":[{\"status\":\"info\",\"notifications\":[],\"name\":\"\",\"condition\":\"a > 0\"}],\"type\":\"log_detection\",\"id\":\"uhl-lzc-3iz\",\"createdAt\":1666643564940,\"name\":\"Test-Update_an_existing_rule_returns_OK_response-1666643564-Updated\"}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 24 Oct 2022 20:32:44 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/uhl-lzc-3iz" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 24 Oct 2022 20:32:44 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Validate-a-detection-rule-returns-Bad-Request-response.frozen b/tests/scenarios/cassettes/v2/security_monitoring/Validate-a-detection-rule-returns-Bad-Request-response.frozen new file mode 100644 index 000000000..3275c21e8 --- /dev/null +++ b/tests/scenarios/cassettes/v2/security_monitoring/Validate-a-detection-rule-returns-Bad-Request-response.frozen @@ -0,0 +1 @@ +2024-03-27T16:23:09.814Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Validate-a-detection-rule-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Validate-a-detection-rule-returns-Bad-Request-response.json new file mode 100644 index 000000000..031448e6c --- /dev/null +++ b/tests/scenarios/cassettes/v2/security_monitoring/Validate-a-detection-rule-returns-Bad-Request-response.json @@ -0,0 +1,39 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"cases\":[{\"condition\":\"a > 0\",\"name\":\"\",\"notifications\":[],\"status\":\"info\"}],\"hasExtendedTitle\":true,\"isEnabled\":true,\"message\":\"My security monitoring rule\",\"name\":\"My security monitoring rule\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":1800,\"keepAlive\":999999,\"maxSignalDuration\":1800},\"queries\":[{\"aggregation\":\"count\",\"distinctFields\":[],\"groupByFields\":[\"@userIdentity.assumed_role\"],\"name\":\"\",\"query\":\"source:source_here\"}],\"tags\":[\"env:prod\",\"team:security\"],\"type\":\"log_detection\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "*/*" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/validation" + }, + "response": { + "body": { + "string": "{\"error\":{\"code\":\"InvalidArgument\",\"message\":\"Invalid rule configuration\",\"details\":[{\"code\":\"InvalidArgument\",\"message\":\"Max signal duration must be greater than or equal to keep alive\",\"target\":\"maxSignalDuration\"},{\"code\":\"InvalidArgument\",\"message\":\"Keep alive is not in allowed durations: 0, 1, 5, 10, 15, 30, 60, 120, 180, 360 (in minutes)\",\"target\":\"keepAlive\"}]}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Wed, 27 Mar 2024 16:23:09 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Validate-a-detection-rule-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/security_monitoring/Validate-a-detection-rule-returns-OK-response.frozen new file mode 100644 index 000000000..f502e4080 --- /dev/null +++ b/tests/scenarios/cassettes/v2/security_monitoring/Validate-a-detection-rule-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-03-27T16:23:10.157Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/security_monitoring/Validate-a-detection-rule-returns-OK-response.json b/tests/scenarios/cassettes/v2/security_monitoring/Validate-a-detection-rule-returns-OK-response.json new file mode 100644 index 000000000..fd23faa20 --- /dev/null +++ b/tests/scenarios/cassettes/v2/security_monitoring/Validate-a-detection-rule-returns-OK-response.json @@ -0,0 +1,39 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"cases\":[{\"condition\":\"a > 0\",\"name\":\"\",\"notifications\":[],\"status\":\"info\"}],\"hasExtendedTitle\":true,\"isEnabled\":true,\"message\":\"My security monitoring rule\",\"name\":\"My security monitoring rule\",\"options\":{\"detectionMethod\":\"threshold\",\"evaluationWindow\":1800,\"keepAlive\":1800,\"maxSignalDuration\":1800},\"queries\":[{\"aggregation\":\"count\",\"distinctFields\":[],\"groupByFields\":[\"@userIdentity.assumed_role\"],\"name\":\"\",\"query\":\"source:source_here\"}],\"tags\":[\"env:prod\",\"team:security\"],\"type\":\"log_detection\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "*/*" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/security_monitoring/rules/validation" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 27 Mar 2024 16:23:10 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/sensitive_data_scanner/Create-Scanning-Group-returns-OK-response.json b/tests/scenarios/cassettes/v2/sensitive_data_scanner/Create-Scanning-Group-returns-OK-response.json index 9b21740c6..9ff9d4bd7 100644 --- a/tests/scenarios/cassettes/v2/sensitive_data_scanner/Create-Scanning-Group-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/sensitive_data_scanner/Create-Scanning-Group-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config"}, "response": {"body": {"string": "{\"meta\":{\"count_limit\":100,\"version\":1189,\"group_count_limit\":20,\"is_pci_compliant\":false,\"has_highlight_enabled\":true},\"data\":{\"relationships\":{\"groups\":{\"data\":[]}},\"attributes\":{},\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 09 Dec 2022 09:52:45 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"Test-Create_Scanning_Group_returns_OK_response-1670579565\",\"product_list\":[\"logs\"]},\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"},\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups"}, "response": {"body": {"string": "{\"meta\":{\"version\":1190},\"data\":{\"relationships\":{\"rules\":{\"data\":[]},\"configuration\":{\"data\":{\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}},\"attributes\":{\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"],\"name\":\"Test-Create_Scanning_Group_returns_OK_response-1670579565\"},\"type\":\"sensitive_data_scanner_group\",\"id\":\"RJDd4r3FQ2CpbYFQIL1KIA\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 09 Dec 2022 09:52:45 GMT"}, {"request": {"body": {"string": "{\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/RJDd4r3FQ2CpbYFQIL1KIA"}, "response": {"body": {"string": "{\"meta\":{\"version\":1191}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 09 Dec 2022 09:52:45 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config" + }, + "response": { + "body": { + "string": "{\"meta\":{\"count_limit\":100,\"version\":1189,\"group_count_limit\":20,\"is_pci_compliant\":false,\"has_highlight_enabled\":true},\"data\":{\"relationships\":{\"groups\":{\"data\":[]}},\"attributes\":{},\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 09 Dec 2022 09:52:45 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"Test-Create_Scanning_Group_returns_OK_response-1670579565\",\"product_list\":[\"logs\"]},\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"},\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups" + }, + "response": { + "body": { + "string": "{\"meta\":{\"version\":1190},\"data\":{\"relationships\":{\"rules\":{\"data\":[]},\"configuration\":{\"data\":{\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}},\"attributes\":{\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"],\"name\":\"Test-Create_Scanning_Group_returns_OK_response-1670579565\"},\"type\":\"sensitive_data_scanner_group\",\"id\":\"RJDd4r3FQ2CpbYFQIL1KIA\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 09 Dec 2022 09:52:45 GMT" + }, + { + "request": { + "body": { + "string": "{\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/RJDd4r3FQ2CpbYFQIL1KIA" + }, + "response": { + "body": { + "string": "{\"meta\":{\"version\":1191}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 09 Dec 2022 09:52:45 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/sensitive_data_scanner/Create-Scanning-Rule-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/sensitive_data_scanner/Create-Scanning-Rule-returns-Bad-Request-response.json index 5151a1daa..630ad9267 100644 --- a/tests/scenarios/cassettes/v2/sensitive_data_scanner/Create-Scanning-Rule-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/sensitive_data_scanner/Create-Scanning-Rule-returns-Bad-Request-response.json @@ -1 +1,135 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config"}, "response": {"body": {"string": "{\"meta\":{\"count_limit\":100,\"version\":1308,\"group_count_limit\":20,\"is_pci_compliant\":false,\"has_highlight_enabled\":true},\"data\":{\"relationships\":{\"groups\":{\"data\":[]}},\"attributes\":{},\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 15 Dec 2022 14:50:52 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"my-test-group\",\"product_list\":[\"logs\"]},\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"},\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups"}, "response": {"body": {"string": "{\"meta\":{\"version\":1309},\"data\":{\"relationships\":{\"rules\":{\"data\":[]},\"configuration\":{\"data\":{\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}},\"attributes\":{\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"],\"name\":\"my-test-group\"},\"type\":\"sensitive_data_scanner_group\",\"id\":\"ul6sS3enQvCwJZsxsDGYDg\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 15 Dec 2022 14:50:52 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"is_enabled\":true,\"pattern\":\"pattern\",\"tags\":[\"sensitive_data:true\"],\"text_replacement\":{\"type\":\"none\"}},\"relationships\":{\"group\":{\"data\":{\"id\":\"ul6sS3enQvCwJZsxsDGYDg\",\"type\":\"sensitive_data_scanner_group\"}}},\"type\":\"sensitive_data_scanner_rule\"},\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules"}, "response": {"body": {"string": "{\"errors\":[\"input_validation_error(Field 'data.attributes.name' is invalid: field 'data.attributes.name' is required)\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Thu, 15 Dec 2022 14:50:52 GMT"}, {"request": {"body": {"string": "{\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/ul6sS3enQvCwJZsxsDGYDg"}, "response": {"body": {"string": "{\"meta\":{\"version\":1310}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 15 Dec 2022 14:50:52 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config" + }, + "response": { + "body": { + "string": "{\"meta\":{\"count_limit\":100,\"version\":1308,\"group_count_limit\":20,\"is_pci_compliant\":false,\"has_highlight_enabled\":true},\"data\":{\"relationships\":{\"groups\":{\"data\":[]}},\"attributes\":{},\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 15 Dec 2022 14:50:52 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"my-test-group\",\"product_list\":[\"logs\"]},\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"},\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups" + }, + "response": { + "body": { + "string": "{\"meta\":{\"version\":1309},\"data\":{\"relationships\":{\"rules\":{\"data\":[]},\"configuration\":{\"data\":{\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}},\"attributes\":{\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"],\"name\":\"my-test-group\"},\"type\":\"sensitive_data_scanner_group\",\"id\":\"ul6sS3enQvCwJZsxsDGYDg\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 15 Dec 2022 14:50:52 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"is_enabled\":true,\"pattern\":\"pattern\",\"tags\":[\"sensitive_data:true\"],\"text_replacement\":{\"type\":\"none\"}},\"relationships\":{\"group\":{\"data\":{\"id\":\"ul6sS3enQvCwJZsxsDGYDg\",\"type\":\"sensitive_data_scanner_group\"}}},\"type\":\"sensitive_data_scanner_rule\"},\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules" + }, + "response": { + "body": { + "string": "{\"errors\":[\"input_validation_error(Field 'data.attributes.name' is invalid: field 'data.attributes.name' is required)\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Thu, 15 Dec 2022 14:50:52 GMT" + }, + { + "request": { + "body": { + "string": "{\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/ul6sS3enQvCwJZsxsDGYDg" + }, + "response": { + "body": { + "string": "{\"meta\":{\"version\":1310}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 15 Dec 2022 14:50:52 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/sensitive_data_scanner/Create-Scanning-Rule-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/sensitive_data_scanner/Create-Scanning-Rule-returns-OK-response.frozen index 66d9a10b1..f93c7c0d6 100644 --- a/tests/scenarios/cassettes/v2/sensitive_data_scanner/Create-Scanning-Rule-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v2/sensitive_data_scanner/Create-Scanning-Rule-returns-OK-response.frozen @@ -1 +1 @@ -2023-12-13T09:06:38.820Z \ No newline at end of file +2024-01-04T13:51:03.802Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/sensitive_data_scanner/Create-Scanning-Rule-returns-OK-response.json b/tests/scenarios/cassettes/v2/sensitive_data_scanner/Create-Scanning-Rule-returns-OK-response.json index b4a3b892b..d5c53cdfd 100644 --- a/tests/scenarios/cassettes/v2/sensitive_data_scanner/Create-Scanning-Rule-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/sensitive_data_scanner/Create-Scanning-Rule-returns-OK-response.json @@ -1 +1,169 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config"}, "response": {"body": {"string": "{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"attributes\":{},\"type\":\"sensitive_data_scanner_configuration\",\"relationships\":{\"groups\":{\"data\":[{\"id\":\"z9vY6YO8R-2q6dv_rTUOCA\",\"type\":\"sensitive_data_scanner_group\"},{\"id\":\"01OnORacS5qHeVO7C97drg\",\"type\":\"sensitive_data_scanner_group\"}]}}},\"meta\":{\"version\":127243,\"count_limit\":100,\"group_count_limit\":20,\"is_pci_compliant\":false,\"has_highlight_enabled\":true,\"has_multi_pass_enabled\":true},\"included\":[{\"id\":\"z9vY6YO8R-2q6dv_rTUOCA\",\"attributes\":{\"name\":\"Example-Update_Scanning_Group_returns_OK_response_1696199477\",\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"]},\"type\":\"sensitive_data_scanner_group\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}},{\"id\":\"01OnORacS5qHeVO7C97drg\",\"attributes\":{\"name\":\"my-test-group\",\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"]},\"type\":\"sensitive_data_scanner_group\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 13 Dec 2023 09:06:38 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"my-test-group\",\"product_list\":[\"logs\"]},\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"},\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups"}, "response": {"body": {"string": "{\"data\":{\"id\":\"Dyurbbz2Tk23SMEr4fcHCw\",\"attributes\":{\"name\":\"my-test-group\",\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"]},\"type\":\"sensitive_data_scanner_group\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}},\"meta\":{\"version\":127244}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 13 Dec 2023 09:06:38 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"excluded_namespaces\":[\"admin.name\"],\"is_enabled\":true,\"name\":\"Test-Create_Scanning_Rule_returns_OK_response-1702458398\",\"namespaces\":[\"admin\"],\"pattern\":\"pattern\",\"priority\":1,\"tags\":[\"sensitive_data:true\"],\"text_replacement\":{\"type\":\"none\"}},\"relationships\":{\"group\":{\"data\":{\"id\":\"Dyurbbz2Tk23SMEr4fcHCw\",\"type\":\"sensitive_data_scanner_group\"}}},\"type\":\"sensitive_data_scanner_rule\"},\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules"}, "response": {"body": {"string": "{\"data\":{\"id\":\"Xp3fpaEhSGKqtDFmXvJZwQ\",\"attributes\":{\"name\":\"Test-Create_Scanning_Rule_returns_OK_response-1702458398\",\"namespaces\":[\"admin\"],\"excluded_namespaces\":[\"admin.name\"],\"pattern\":\"pattern\",\"text_replacement\":{\"type\":\"none\"},\"tags\":[\"sensitive_data:true\"],\"is_enabled\":true,\"priority\":1},\"type\":\"sensitive_data_scanner_rule\",\"relationships\":{\"group\":{\"data\":{\"id\":\"Dyurbbz2Tk23SMEr4fcHCw\",\"type\":\"sensitive_data_scanner_group\"}}}},\"meta\":{\"version\":127245}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 13 Dec 2023 09:06:38 GMT"}, {"request": {"body": {"string": "{\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules/Xp3fpaEhSGKqtDFmXvJZwQ"}, "response": {"body": {"string": "{\"meta\":{\"version\":127246}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 13 Dec 2023 09:06:38 GMT"}, {"request": {"body": {"string": "{\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/Dyurbbz2Tk23SMEr4fcHCw"}, "response": {"body": {"string": "{\"meta\":{\"version\":127247}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 13 Dec 2023 09:06:38 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"attributes\":{},\"type\":\"sensitive_data_scanner_configuration\",\"relationships\":{\"groups\":{\"data\":[{\"id\":\"z9vY6YO8R-2q6dv_rTUOCA\",\"type\":\"sensitive_data_scanner_group\"},{\"id\":\"01OnORacS5qHeVO7C97drg\",\"type\":\"sensitive_data_scanner_group\"},{\"id\":\"IuYiCydSTAWqDyW5242-XA\",\"type\":\"sensitive_data_scanner_group\"},{\"id\":\"HwQk4sJHSRmhHyo6KyXHWw\",\"type\":\"sensitive_data_scanner_group\"},{\"id\":\"NChKshYdT6SvdiJE62DQgg\",\"type\":\"sensitive_data_scanner_group\"},{\"id\":\"q6h4G_icTLWHvnT9U90PfQ\",\"type\":\"sensitive_data_scanner_group\"},{\"id\":\"sOpLckMyTYW1ZXMXMeJnnQ\",\"type\":\"sensitive_data_scanner_group\"},{\"id\":\"_o1TJ7yVSoKJLD9ioIyjeQ\",\"type\":\"sensitive_data_scanner_group\"},{\"id\":\"yWBB9T6cQwarJAo0GzrdXw\",\"type\":\"sensitive_data_scanner_group\"}]}}},\"meta\":{\"version\":135496,\"count_limit\":100,\"group_count_limit\":20,\"is_pci_compliant\":false,\"has_highlight_enabled\":true,\"has_multi_pass_enabled\":true},\"included\":[{\"id\":\"z9vY6YO8R-2q6dv_rTUOCA\",\"attributes\":{\"name\":\"Example-Update_Scanning_Group_returns_OK_response_1696199477\",\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"]},\"type\":\"sensitive_data_scanner_group\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}},{\"id\":\"01OnORacS5qHeVO7C97drg\",\"attributes\":{\"name\":\"my-test-group\",\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"]},\"type\":\"sensitive_data_scanner_group\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}},{\"id\":\"IuYiCydSTAWqDyW5242-XA\",\"attributes\":{\"name\":\"my-test-group\",\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"]},\"type\":\"sensitive_data_scanner_group\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}},{\"id\":\"HwQk4sJHSRmhHyo6KyXHWw\",\"attributes\":{\"name\":\"Example-Create_Scanning_Group_returns_OK_response_1702721006\",\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"]},\"type\":\"sensitive_data_scanner_group\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}},{\"id\":\"NChKshYdT6SvdiJE62DQgg\",\"attributes\":{\"name\":\"my-test-group\",\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"]},\"type\":\"sensitive_data_scanner_group\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}},{\"id\":\"q6h4G_icTLWHvnT9U90PfQ\",\"attributes\":{\"name\":\"my-test-group\",\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"]},\"type\":\"sensitive_data_scanner_group\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}},{\"id\":\"sOpLckMyTYW1ZXMXMeJnnQ\",\"attributes\":{\"name\":\"my-test-group\",\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"]},\"type\":\"sensitive_data_scanner_group\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}},{\"id\":\"_o1TJ7yVSoKJLD9ioIyjeQ\",\"attributes\":{\"name\":\"Example-Create_Scanning_Group_returns_OK_response_1703945006\",\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"]},\"type\":\"sensitive_data_scanner_group\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}},{\"id\":\"yWBB9T6cQwarJAo0GzrdXw\",\"attributes\":{\"name\":\"my-test-group\",\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"]},\"type\":\"sensitive_data_scanner_group\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 04 Jan 2024 13:51:03 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"my-test-group\",\"product_list\":[\"logs\"]},\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"},\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"bAkcDr-KRlCrw7Ojq_-tJg\",\"attributes\":{\"name\":\"my-test-group\",\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"]},\"type\":\"sensitive_data_scanner_group\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}},\"meta\":{\"version\":135497}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 04 Jan 2024 13:51:03 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"excluded_namespaces\":[\"admin.name\"],\"included_keyword_configuration\":{\"character_count\":35,\"keywords\":[\"credit card\"]},\"is_enabled\":true,\"name\":\"Test-Create_Scanning_Rule_returns_OK_response-1704376263\",\"namespaces\":[\"admin\"],\"pattern\":\"pattern\",\"priority\":1,\"tags\":[\"sensitive_data:true\"],\"text_replacement\":{\"type\":\"none\"}},\"relationships\":{\"group\":{\"data\":{\"id\":\"bAkcDr-KRlCrw7Ojq_-tJg\",\"type\":\"sensitive_data_scanner_group\"}}},\"type\":\"sensitive_data_scanner_rule\"},\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"UwDWflSLSumJJeTlczBlGQ\",\"attributes\":{\"name\":\"Test-Create_Scanning_Rule_returns_OK_response-1704376263\",\"namespaces\":[\"admin\"],\"excluded_namespaces\":[\"admin.name\"],\"pattern\":\"pattern\",\"text_replacement\":{\"type\":\"none\"},\"tags\":[\"sensitive_data:true\"],\"is_enabled\":true,\"priority\":1,\"included_keyword_configuration\":{\"keywords\":[\"credit card\"],\"character_count\":35}},\"type\":\"sensitive_data_scanner_rule\",\"relationships\":{\"group\":{\"data\":{\"id\":\"bAkcDr-KRlCrw7Ojq_-tJg\",\"type\":\"sensitive_data_scanner_group\"}}}},\"meta\":{\"version\":135498}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 04 Jan 2024 13:51:03 GMT" + }, + { + "request": { + "body": { + "string": "{\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules/UwDWflSLSumJJeTlczBlGQ" + }, + "response": { + "body": { + "string": "{\"meta\":{\"version\":135499}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 04 Jan 2024 13:51:03 GMT" + }, + { + "request": { + "body": { + "string": "{\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/bAkcDr-KRlCrw7Ojq_-tJg" + }, + "response": { + "body": { + "string": "{\"meta\":{\"version\":135500}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 04 Jan 2024 13:51:03 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/sensitive_data_scanner/Delete-Scanning-Group-returns-OK-response.json b/tests/scenarios/cassettes/v2/sensitive_data_scanner/Delete-Scanning-Group-returns-OK-response.json index 4f19e773d..2448f16f8 100644 --- a/tests/scenarios/cassettes/v2/sensitive_data_scanner/Delete-Scanning-Group-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/sensitive_data_scanner/Delete-Scanning-Group-returns-OK-response.json @@ -1 +1,135 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config"}, "response": {"body": {"string": "{\"meta\":{\"count_limit\":100,\"version\":1199,\"group_count_limit\":20,\"is_pci_compliant\":false,\"has_highlight_enabled\":true},\"data\":{\"relationships\":{\"groups\":{\"data\":[]}},\"attributes\":{},\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 09 Dec 2022 09:52:52 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"my-test-group\",\"product_list\":[\"logs\"]},\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"},\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups"}, "response": {"body": {"string": "{\"meta\":{\"version\":1200},\"data\":{\"relationships\":{\"rules\":{\"data\":[]},\"configuration\":{\"data\":{\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}},\"attributes\":{\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"],\"name\":\"my-test-group\"},\"type\":\"sensitive_data_scanner_group\",\"id\":\"dS5gsuttQ5COazwFyCii1A\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 09 Dec 2022 09:52:52 GMT"}, {"request": {"body": {"string": "{\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/dS5gsuttQ5COazwFyCii1A"}, "response": {"body": {"string": "{\"meta\":{\"version\":1201}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 09 Dec 2022 09:52:52 GMT"}, {"request": {"body": {"string": "{\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/dS5gsuttQ5COazwFyCii1A"}, "response": {"body": {"string": "{\"errors\":[\"not_found(group with id dS5gsuttQ5COazwFyCii1A does not exist)\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Fri, 09 Dec 2022 09:52:52 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config" + }, + "response": { + "body": { + "string": "{\"meta\":{\"count_limit\":100,\"version\":1199,\"group_count_limit\":20,\"is_pci_compliant\":false,\"has_highlight_enabled\":true},\"data\":{\"relationships\":{\"groups\":{\"data\":[]}},\"attributes\":{},\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 09 Dec 2022 09:52:52 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"my-test-group\",\"product_list\":[\"logs\"]},\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"},\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups" + }, + "response": { + "body": { + "string": "{\"meta\":{\"version\":1200},\"data\":{\"relationships\":{\"rules\":{\"data\":[]},\"configuration\":{\"data\":{\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}},\"attributes\":{\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"],\"name\":\"my-test-group\"},\"type\":\"sensitive_data_scanner_group\",\"id\":\"dS5gsuttQ5COazwFyCii1A\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 09 Dec 2022 09:52:52 GMT" + }, + { + "request": { + "body": { + "string": "{\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/dS5gsuttQ5COazwFyCii1A" + }, + "response": { + "body": { + "string": "{\"meta\":{\"version\":1201}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 09 Dec 2022 09:52:52 GMT" + }, + { + "request": { + "body": { + "string": "{\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/dS5gsuttQ5COazwFyCii1A" + }, + "response": { + "body": { + "string": "{\"errors\":[\"not_found(group with id dS5gsuttQ5COazwFyCii1A does not exist)\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Fri, 09 Dec 2022 09:52:52 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/sensitive_data_scanner/Delete-Scanning-Rule-returns-OK-response.json b/tests/scenarios/cassettes/v2/sensitive_data_scanner/Delete-Scanning-Rule-returns-OK-response.json index 1a3c2af05..017b38612 100644 --- a/tests/scenarios/cassettes/v2/sensitive_data_scanner/Delete-Scanning-Rule-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/sensitive_data_scanner/Delete-Scanning-Rule-returns-OK-response.json @@ -1 +1,203 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config"}, "response": {"body": {"string": "{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"attributes\":{},\"type\":\"sensitive_data_scanner_configuration\",\"relationships\":{\"groups\":{\"data\":[]}}},\"meta\":{\"version\":12578,\"count_limit\":100,\"group_count_limit\":20,\"is_pci_compliant\":false,\"has_highlight_enabled\":true,\"has_multi_pass_enabled\":true}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 24 Jan 2023 13:12:15 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"my-test-group\",\"product_list\":[\"logs\"]},\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"},\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups"}, "response": {"body": {"string": "{\"data\":{\"id\":\"TnVRBDeuSM67AsD6qluDxQ\",\"attributes\":{\"name\":\"my-test-group\",\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"]},\"type\":\"sensitive_data_scanner_group\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}},\"meta\":{\"version\":12579}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 24 Jan 2023 13:12:15 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Delete_Scanning_Rule_returns_OK_response-1674565935\",\"namespaces\":[\"admin.email\"],\"pattern\":\"pattern\",\"tags\":[\"sensitive_data:true\"],\"text_replacement\":{\"type\":\"none\"}},\"relationships\":{\"group\":{\"data\":{\"id\":\"TnVRBDeuSM67AsD6qluDxQ\",\"type\":\"sensitive_data_scanner_group\"}}},\"type\":\"sensitive_data_scanner_rule\"},\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules"}, "response": {"body": {"string": "{\"data\":{\"id\":\"uTxgTNxqRy6L3a44B9KZDw\",\"attributes\":{\"name\":\"Test-Delete_Scanning_Rule_returns_OK_response-1674565935\",\"namespaces\":[\"admin.email\"],\"excluded_namespaces\":[],\"pattern\":\"pattern\",\"text_replacement\":{\"type\":\"none\"},\"tags\":[\"sensitive_data:true\"],\"is_enabled\":true},\"type\":\"sensitive_data_scanner_rule\",\"relationships\":{\"group\":{\"data\":{\"id\":\"TnVRBDeuSM67AsD6qluDxQ\",\"type\":\"sensitive_data_scanner_group\"}}}},\"meta\":{\"version\":12580}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 24 Jan 2023 13:12:15 GMT"}, {"request": {"body": {"string": "{\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules/uTxgTNxqRy6L3a44B9KZDw"}, "response": {"body": {"string": "{\"meta\":{\"version\":12581}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 24 Jan 2023 13:12:15 GMT"}, {"request": {"body": {"string": "{\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules/uTxgTNxqRy6L3a44B9KZDw"}, "response": {"body": {"string": "{\"errors\":[\"not_found(null)\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Tue, 24 Jan 2023 13:12:15 GMT"}, {"request": {"body": {"string": "{\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/TnVRBDeuSM67AsD6qluDxQ"}, "response": {"body": {"string": "{\"meta\":{\"version\":12582}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 24 Jan 2023 13:12:15 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"attributes\":{},\"type\":\"sensitive_data_scanner_configuration\",\"relationships\":{\"groups\":{\"data\":[]}}},\"meta\":{\"version\":12578,\"count_limit\":100,\"group_count_limit\":20,\"is_pci_compliant\":false,\"has_highlight_enabled\":true,\"has_multi_pass_enabled\":true}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 24 Jan 2023 13:12:15 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"my-test-group\",\"product_list\":[\"logs\"]},\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"},\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"TnVRBDeuSM67AsD6qluDxQ\",\"attributes\":{\"name\":\"my-test-group\",\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"]},\"type\":\"sensitive_data_scanner_group\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}},\"meta\":{\"version\":12579}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 24 Jan 2023 13:12:15 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Delete_Scanning_Rule_returns_OK_response-1674565935\",\"namespaces\":[\"admin.email\"],\"pattern\":\"pattern\",\"tags\":[\"sensitive_data:true\"],\"text_replacement\":{\"type\":\"none\"}},\"relationships\":{\"group\":{\"data\":{\"id\":\"TnVRBDeuSM67AsD6qluDxQ\",\"type\":\"sensitive_data_scanner_group\"}}},\"type\":\"sensitive_data_scanner_rule\"},\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"uTxgTNxqRy6L3a44B9KZDw\",\"attributes\":{\"name\":\"Test-Delete_Scanning_Rule_returns_OK_response-1674565935\",\"namespaces\":[\"admin.email\"],\"excluded_namespaces\":[],\"pattern\":\"pattern\",\"text_replacement\":{\"type\":\"none\"},\"tags\":[\"sensitive_data:true\"],\"is_enabled\":true},\"type\":\"sensitive_data_scanner_rule\",\"relationships\":{\"group\":{\"data\":{\"id\":\"TnVRBDeuSM67AsD6qluDxQ\",\"type\":\"sensitive_data_scanner_group\"}}}},\"meta\":{\"version\":12580}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 24 Jan 2023 13:12:15 GMT" + }, + { + "request": { + "body": { + "string": "{\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules/uTxgTNxqRy6L3a44B9KZDw" + }, + "response": { + "body": { + "string": "{\"meta\":{\"version\":12581}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 24 Jan 2023 13:12:15 GMT" + }, + { + "request": { + "body": { + "string": "{\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules/uTxgTNxqRy6L3a44B9KZDw" + }, + "response": { + "body": { + "string": "{\"errors\":[\"not_found(null)\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Tue, 24 Jan 2023 13:12:15 GMT" + }, + { + "request": { + "body": { + "string": "{\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/TnVRBDeuSM67AsD6qluDxQ" + }, + "response": { + "body": { + "string": "{\"meta\":{\"version\":12582}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 24 Jan 2023 13:12:15 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/sensitive_data_scanner/List-Scanning-Groups-returns-OK-response.json b/tests/scenarios/cassettes/v2/sensitive_data_scanner/List-Scanning-Groups-returns-OK-response.json index 865b55be2..949a486b9 100644 --- a/tests/scenarios/cassettes/v2/sensitive_data_scanner/List-Scanning-Groups-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/sensitive_data_scanner/List-Scanning-Groups-returns-OK-response.json @@ -1 +1,129 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config"}, "response": {"body": {"string": "{\"meta\":{\"count_limit\":100,\"version\":1209,\"group_count_limit\":20,\"is_pci_compliant\":false,\"has_highlight_enabled\":true},\"data\":{\"relationships\":{\"groups\":{\"data\":[]}},\"attributes\":{},\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 09 Dec 2022 09:52:58 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"my-test-group\",\"product_list\":[\"logs\"]},\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"},\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups"}, "response": {"body": {"string": "{\"meta\":{\"version\":1210},\"data\":{\"relationships\":{\"rules\":{\"data\":[]},\"configuration\":{\"data\":{\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}},\"attributes\":{\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"],\"name\":\"my-test-group\"},\"type\":\"sensitive_data_scanner_group\",\"id\":\"729biiqHSgOWuNyzZQLsbg\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 09 Dec 2022 09:52:58 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config"}, "response": {"body": {"string": "{\"included\":[{\"relationships\":{\"rules\":{\"data\":[]},\"configuration\":{\"data\":{\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}},\"attributes\":{\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"],\"name\":\"my-test-group\"},\"type\":\"sensitive_data_scanner_group\",\"id\":\"729biiqHSgOWuNyzZQLsbg\"}],\"meta\":{\"count_limit\":100,\"version\":1210,\"group_count_limit\":20,\"is_pci_compliant\":false,\"has_highlight_enabled\":true},\"data\":{\"relationships\":{\"groups\":{\"data\":[{\"type\":\"sensitive_data_scanner_group\",\"id\":\"729biiqHSgOWuNyzZQLsbg\"}]}},\"attributes\":{},\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 09 Dec 2022 09:52:58 GMT"}, {"request": {"body": {"string": "{\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/729biiqHSgOWuNyzZQLsbg"}, "response": {"body": {"string": "{\"meta\":{\"version\":1211}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 09 Dec 2022 09:52:58 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config" + }, + "response": { + "body": { + "string": "{\"meta\":{\"count_limit\":100,\"version\":1209,\"group_count_limit\":20,\"is_pci_compliant\":false,\"has_highlight_enabled\":true},\"data\":{\"relationships\":{\"groups\":{\"data\":[]}},\"attributes\":{},\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 09 Dec 2022 09:52:58 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"my-test-group\",\"product_list\":[\"logs\"]},\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"},\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups" + }, + "response": { + "body": { + "string": "{\"meta\":{\"version\":1210},\"data\":{\"relationships\":{\"rules\":{\"data\":[]},\"configuration\":{\"data\":{\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}},\"attributes\":{\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"],\"name\":\"my-test-group\"},\"type\":\"sensitive_data_scanner_group\",\"id\":\"729biiqHSgOWuNyzZQLsbg\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 09 Dec 2022 09:52:58 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config" + }, + "response": { + "body": { + "string": "{\"included\":[{\"relationships\":{\"rules\":{\"data\":[]},\"configuration\":{\"data\":{\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}},\"attributes\":{\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"],\"name\":\"my-test-group\"},\"type\":\"sensitive_data_scanner_group\",\"id\":\"729biiqHSgOWuNyzZQLsbg\"}],\"meta\":{\"count_limit\":100,\"version\":1210,\"group_count_limit\":20,\"is_pci_compliant\":false,\"has_highlight_enabled\":true},\"data\":{\"relationships\":{\"groups\":{\"data\":[{\"type\":\"sensitive_data_scanner_group\",\"id\":\"729biiqHSgOWuNyzZQLsbg\"}]}},\"attributes\":{},\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 09 Dec 2022 09:52:58 GMT" + }, + { + "request": { + "body": { + "string": "{\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/729biiqHSgOWuNyzZQLsbg" + }, + "response": { + "body": { + "string": "{\"meta\":{\"version\":1211}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 09 Dec 2022 09:52:58 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/sensitive_data_scanner/List-standard-patterns-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/sensitive_data_scanner/List-standard-patterns-returns-OK-response.frozen deleted file mode 100644 index 1c4ec976f..000000000 --- a/tests/scenarios/cassettes/v2/sensitive_data_scanner/List-standard-patterns-returns-OK-response.frozen +++ /dev/null @@ -1 +0,0 @@ -2022-12-09T09:53:00.186Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/sensitive_data_scanner/List-standard-patterns-returns-OK-response.json b/tests/scenarios/cassettes/v2/sensitive_data_scanner/List-standard-patterns-returns-OK-response.json deleted file mode 100644 index 4646e15ac..000000000 --- a/tests/scenarios/cassettes/v2/sensitive_data_scanner/List-standard-patterns-returns-OK-response.json +++ /dev/null @@ -1 +0,0 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/standard-patterns"}, "response": {"body": {"string": "{\"data\":[{\"attributes\":{\"pattern\":\"(AKIA|A3T|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[0-9A-Z]{16}\",\"name\":\"AWS Access Key ID Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:aws_access_key_id\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"OfGqX8R9TRqAcorxenl2fQ\"},{\"attributes\":{\"pattern\":\"(aws|AWS|amazon).{0,19}\\\\b[A-Za-z0-9/+]{40}\\\\b\",\"name\":\"AWS Secret Access Key Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:aws_secret_access_key\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"iZeqWOvYThWJ7DWMwIQoRg\"},{\"attributes\":{\"pattern\":\"dt0[a-zA-Z]{1}[0-9]{2}\\\\.[A-Z0-9]{24}\\\\.[A-Z0-9]{64}\",\"name\":\"Dynatrace Token Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:dynatrace_token\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"6wYyy0j-RyCz9fpI1cwf_w\"},{\"attributes\":{\"pattern\":\"EAACEdEose0cBA[0-9A-Za-z]+\",\"name\":\"Facebook Access Token Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:facebook_access_token\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"ie1ReqxXR5WaAsdIedNT-A\"},{\"attributes\":{\"pattern\":\"glpat-[\\\\w\\\\\\\\-]{20}\",\"name\":\"Gitlab Token Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:gitlab_token\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"FrAwrqLMSK68MsqcD_HVJA\"},{\"attributes\":{\"pattern\":\"(?i)\\\\b(igqvj|instagram).*?[a-z0-9]{100,250}\\\\b\",\"name\":\"Instagram Token Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:instagram_token\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"0VhCLYz8ToS9w6CFgFa6lw\"},{\"attributes\":{\"pattern\":\"\\\\bey[I-L][\\\\w=-]+\\\\.ey[I-L][\\\\w=-]+(\\\\.[\\\\w.+/=-]+)?\\\\b\",\"name\":\"JSON Web Token Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:json_web_token\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"9osY3xc9Q7ONAV0zw9Uz4A\"},{\"attributes\":{\"pattern\":\"[0-9a-f]{32}-us[0-9]{1,2}\",\"name\":\"Mailchimp API Key Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:mailchimp_api_key\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"iWEOhW0JSRuWToJ7FnQ4dA\"},{\"attributes\":{\"pattern\":\"key-[0-9a-zA-Z]{32}\",\"name\":\"Mailgun API Key Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:mailgun_api_key\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"bBJ6S21qTGyc3XL5ZV6-ag\"},{\"attributes\":{\"pattern\":\"SSWS 00[a-zA-Z0-9\\\\-\\\\_]{40}\",\"name\":\"Okta API Token Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:okta_api_token\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"wUOrv44TR6ibU9Na3kplUw\"},{\"attributes\":{\"pattern\":\"xox[baprs]-([0-9a-zA-Z]{10,48})?\",\"name\":\"Slack Access Token Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:slack_access_token\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"ozSqFSGnQaur3HfiS3BTaQ\"},{\"attributes\":{\"pattern\":\"sk_live_[0-9a-zA-Z]{24}\",\"name\":\"Stripe API Key Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:stripe_api_key\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"S0j4p-aLSMmV2Qd6q53_jA\"},{\"attributes\":{\"pattern\":\"rk_live_[0-9a-zA-Z]{24}\",\"name\":\"Stripe Restricted API Key Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:stripe_restricted_api_key\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"0Ir-CDzMQQ2i9BfsFkW9Mg\"},{\"attributes\":{\"pattern\":\"\\\\bSK[0-9a-fA-F]{32}\\\\b\",\"name\":\"Twilio API Key Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:twilio_api_key\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"cFGYTn4pTIiF7tUCCDhw4A\"},{\"attributes\":{\"pattern\":\"sq0atp-[0-9A-Za-z\\\\-_]{22}\",\"name\":\"Square Access Token Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:square_access_token\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"aG7pEdjWRQq3DJDDirhLlQ\"},{\"attributes\":{\"pattern\":\"sq0csp-[0-9A-Za-z\\\\-_]{43}\",\"name\":\"Square OAuth Secret Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:square_oauth_secret\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"l264G1wUQ4mY0wKp6y7m7g\"},{\"attributes\":{\"pattern\":\"\\\\bAIza[0-9A-Za-z\\\\\\\\-_]{35}\\\\b\",\"name\":\"Google API Key Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:google_api_key\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"kvjX5yceTG6EUXy85edisQ\"},{\"attributes\":{\"pattern\":\"\\\\bya29\\\\.[0-9A-Za-z\\\\\\\\-_]+\\\\b\",\"name\":\"Google OAuth Access Token Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:google_oauth_access_token\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"I0HS3rpVQ1e3VNQkJP2Acg\"},{\"attributes\":{\"pattern\":\"BEGIN RSA PRIVATE KEY\",\"name\":\"RSA Private Key Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:rsa_private_key\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"hH0QoqerTWSDsqk2QLgQpg\"},{\"attributes\":{\"pattern\":\"SG\\\\.[a-zA-Z0-9]{22}\\\\.[a-zA-Z0-9]{43}\",\"name\":\"Send Grid API Token Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:send_grid_api_token\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"la8TI0NQT9Gi-NnTjgHsnw\"},{\"attributes\":{\"pattern\":\"[h|H][e|E][r|R][o|O][k|K][u|U].{0,29}[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\",\"name\":\"Heroku API Key Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:heroku_api_key\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"5W01LmhRSx6eTFEUxmUjCA\"},{\"attributes\":{\"pattern\":\"BEGIN OPENSSH PRIVATE KEY|BEGIN SSH PRIVATE KEY|BEGIN DSA PRIVATE KEY|BEGIN EC PRIVATE KEY\",\"name\":\"SSH Key Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:ssh_key\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"A0fNRj-TQ06KnRznwcQpdQ\"},{\"attributes\":{\"pattern\":\"BEGIN PGP PRIVATE KEY BLOCK\",\"name\":\"PGP Private Key Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:pgp_private_key\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"7gPGTneLSaK9xCbvtRIP2Q\"},{\"attributes\":{\"pattern\":\"access_token\\\\$production\\\\$[0-9a-z]{16}\\\\$[0-9a-f]{32}\",\"name\":\"Paypal Braintree Access Token Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:paypal_braintree_access_token\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"A1Xhx8cuQ1-kVylk7CisDQ\"},{\"attributes\":{\"pattern\":\"amzn\\\\.mws\\\\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\\\b\",\"name\":\"Amazon Marketplace Web Services Auth Token Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:amazon_mws_token\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"qxKIJw-ERuSq4ZFHVWuDkQ\"},{\"attributes\":{\"pattern\":\"((?i)azure)[\\\\s\\\\S]{0,16}[a-z0-9]{52}\\\\b\",\"name\":\"Azure Personal Access Token Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:azure_personal_access_token\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"iIIn2m7JSViRvk64Ud027w\"},{\"attributes\":{\"pattern\":\"(?i)[a-z][a-z0-9-]+\\\\.database(?:\\\\.secure)?\\\\.(?:(?:windows|usgovcloudapi)\\\\.net|chinacloudapi\\\\.cn|cloudapi\\\\.de)\",\"name\":\"Azure SQL Connection String Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:azure_sql_connection_string\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"zlO8j4beRYOMpGwtWSZj6Q\"},{\"attributes\":{\"pattern\":\"((?i)(subscription|authoring|programmatic))[\\\\s\\\\S]{0,30}[\\\\W][a-z0-9]{32}\\\\b\",\"name\":\"Azure Subscription Key Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:azure_subscription_key\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"2zpIGqnoRYq9BrG_WiTzQA\"},{\"attributes\":{\"pattern\":\"(?i)bearer [-a-z0-9._~+/]{4,}\",\"name\":\"Bearer Token Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:bearer_token\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"mZy8XjZLReC9smpERXWnnw\"},{\"attributes\":{\"pattern\":\"\\\\bsk_((sbox_)?[a-z0-9]{27}|(test_)?[a-fA-F0-9]{8}-([a-fA-F0-9]{4}-){3}[a-fA-F0-9]{12})\\\\b\",\"name\":\"Checkout.com Secret Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:checkout_secret\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"-EJOOrU3R2CAuFGTH42FSQ\"},{\"attributes\":{\"pattern\":\"\\\\bdapi[a-h0-9]{32}\\\\b\",\"name\":\"Databricks Personal Access Token Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:databricks_personal_access_token\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"hKkJD724Q-yDzGaXQI10Cg\"},{\"attributes\":{\"pattern\":\"\\\\bSWMTKN-1-[\\\\w\\\\d-]{76}\\\\b\",\"name\":\"Docker Swarm Join Token Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:docker_swarm_join_token\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"QvRgpQ1LQsG1uWFlKgnSlA\"},{\"attributes\":{\"pattern\":\"\\\\bSWMKEY-1-[\\\\w\\\\d+/]{43}\\\\b\",\"name\":\"Docker Swarm Unlock Key Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:docker_swarm_unlock_key\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"CNNsKOoIRq6TyhJY2zh46w\"},{\"attributes\":{\"pattern\":\"\\\\bgh[opsu]_[0-9a-zA-Z]{36}\\\\b\",\"name\":\"Github Access Token Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:github_access_token\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"5rjXkBMvQ3GbbYrpVP_HdQ\"},{\"attributes\":{\"pattern\":\"\\\\bghr_[0-9a-zA-Z]{76}\\\\b\",\"name\":\"Github Refresh Token Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:github_refresh_token\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"OMuUuImtTFCzF-duF0HxDQ\"},{\"attributes\":{\"pattern\":\"(jira|JIRA|Jira).{0,24}[a-zA-Z0-9]{20}[A-Z0-9]{4}\\\\b\",\"name\":\"JIRA API Token Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:jira_api_token\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"70ZmrD75Q36PDbxaBVfT-A\"},{\"attributes\":{\"pattern\":\"(?i)linkedin(.{0,20})?[:='\\\"][0-9a-z]{16}\\\\b\",\"name\":\"LinkedIn Secret Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:linkedin_secret\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"dcTsD5wgT9CP_e70dFEpkQ\"},{\"attributes\":{\"pattern\":\"\\\\bshp(at|ca|pa)_[a-fA-F0-9]{32}\\\\b\",\"name\":\"Shopify Access Token Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:shopify_access_token\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"eesmw5BiSjqZG8vxyW8Wjg\"},{\"attributes\":{\"pattern\":\"\\\\bshpss_[a-fA-F0-9]{32}\\\\b\",\"name\":\"Shopify Shared Secret Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:shopify_shared_secret\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"d_O_6F5NRVqcXS1SGy479g\"},{\"attributes\":{\"pattern\":\"\\\\bT[a-zA-Z0-9_]{8}/B[a-zA-Z0-9_]{8}/[a-zA-Z0-9_]{24}\\\\b\",\"name\":\"Slack Webhook Secret Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:slack_webhook_secret\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"wE1yJHDMRfqK91asu9uvaw\"},{\"attributes\":{\"pattern\":\"(?i)twitter(.{0,20})?[:='\\\"][0-9a-z]{35,}\\\\b\",\"name\":\"Twitter Secret Scanner\",\"tags\":[\"sensitive_data_category:credentials\",\"sensitive_data:twitter_secret\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"gn0Eb2qDSUueJuQgqjdGGQ\"},{\"attributes\":{\"pattern\":\"\\\\b4\\\\d{3}(?:(?:,\\\\d{4}){3}|(?:\\\\s\\\\d{4}){3}|(?:\\\\.\\\\d{4}){3}|(?:-\\\\d{4}){3})\\\\b\",\"tags\":[\"sensitive_data:visa_credit_card\",\"sensitive_data_category:credit_card\"],\"name\":\"Visa Card Scanner (4x4 digits)\",\"description\":\"\\\"Scan for Visa Card numbers formatted as 4 groups of 4 contiguous digits. Matches are validated via the Luhn algorithm. \\n\\nExamples of matching formats:\\n* 4111 1111 1111 1111\\n* 4111-1111-1111-1111\\n* 4111.1111.1111.1111\\n* 4111,1111,1111,1111\\\"\"},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"0o71SJxXQNK7Q6gMbBesFQ\"},{\"attributes\":{\"pattern\":\"\\\\b4\\\\d{3}(?:(?:\\\\d{4}(?:(?:,\\\\d{8})|(?:-\\\\d{8})|(?:\\\\s\\\\d{8})|(?:\\\\.\\\\d{8}))))\\\\b\",\"tags\":[\"sensitive_data:visa_credit_card\",\"sensitive_data_category:credit_card\"],\"name\":\"Visa Card Scanner (2x8 digits)\",\"description\":\"\\\"Scan for Visa Card numbers formatted as 2 groups of 8 contiguous digits. Matches are validated via the Luhn algorithm. \\n\\nExamples of matching formats:\\n* 41111111 11111111\\n* 41111111-11111111\\n* 41111111.11111111\\n* 41111111,11111111\\\"\"},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"wJIgOygRQhKkR69b_9XbRQ\"},{\"attributes\":{\"pattern\":\"\\\\b4\\\\d{15}(?:\\\\d{3})?\\\\b\",\"tags\":[\"sensitive_data:visa_credit_card\",\"sensitive_data_category:credit_card\"],\"name\":\"Visa Card Scanner (1x16 & 1x19 digits)\",\"description\":\"\\\"Scan for Visa Card numbers formatted as 16 or 19 contiguous digits. Matches are validated via the Luhn algorithm. \\n\\nExamples of matching formats:\\n* 4111111111111111\\n* 4012888888881881\\\"\"},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"QrHD6AfgQm6z-j0wStxTvA\"},{\"attributes\":{\"pattern\":\"\\\\b(?:(?:5[1-5]\\\\d{2})|(?:222[1-9])|(?:22[3-9]\\\\d)|(?:2[3-6]\\\\d{2})|(?:27[0-1]\\\\d)|(?:2720))(?:(?:\\\\s\\\\d{4}){3}|(?:\\\\.\\\\d{4}){3}|(?:-\\\\d{4}){3}|(?:,\\\\d{4}){3})\\\\b\",\"tags\":[\"sensitive_data:master_card_credit_card\",\"sensitive_data_category:credit_card\"],\"name\":\"MasterCard Scanner (4x4 digits)\",\"description\":\"\\\"Scan for MasterCard numbers formatted as 4 groups of 4 contiguous digits. Matches are validated via the Luhn algorithm. \\n\\nExamples of matching formats:\\n* 5105 1051 0510 5100\\n* 5105-1051-0510-5100\\n* 5105.1051.0510.5100\\n* 5105,1051,0510,5100\\\"\"},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"axxJkyjhRTOuhjwlsA35Vw\"},{\"attributes\":{\"pattern\":\"\\\\b(?:(?:5[1-5]\\\\d{2})|(?:222[1-9])|(?:22[3-9]\\\\d)|(?:2[3-6]\\\\d{2})|(?:27[0-1]\\\\d)|(?:2720))(?:(?:\\\\d{4}(?:(?:,\\\\d{8})|(?:-\\\\d{8})|(?:\\\\s\\\\d{8})|(?:\\\\.\\\\d{8}))))\\\\b\",\"tags\":[\"sensitive_data:master_card_credit_card\",\"sensitive_data_category:credit_card\"],\"name\":\"MasterCard Scanner (2x8 digits)\",\"description\":\"\\\"Scan for MasterCard numbers formatted as 2 groups of 8 contiguous digits. Matches are validated via the Luhn algorithm.\\n\\nExamples of matching formats:\\n* 51051051 05105100\\n* 51051051-05105100\\n* 51051051.05105100\\n* 51051051,05105100\\\"\"},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"NwhIYNS4STqZys37WlaIKA\"},{\"attributes\":{\"pattern\":\"\\\\b(?:(?:5[1-5]\\\\d{2})|(?:222[1-9])|(?:22[3-9]\\\\d)|(?:2[3-6]\\\\d{2})|(?:27[0-1]\\\\d)|(?:2720))(?:\\\\d{12})\\\\b\",\"tags\":[\"sensitive_data:master_card_credit_card\",\"sensitive_data_category:credit_card\"],\"name\":\"MasterCard Scanner (1x16 digits)\",\"description\":\"\\\"Scan for MasterCard numbers formatted as 16 contiguous digits. Matches are validated via the Luhn algorithm.\\n\\nExamples of matching formats:\\n* 5105105105105100\\\"\"},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"76EhmoK3TPqJcpM-fK0pLw\"},{\"attributes\":{\"pattern\":\"\\\\b(?:(?:(?:6221(?:2[6-9]|[3-9][0-9])\\\\d{2}(?:,\\\\d{4}){2})|(?:6221\\\\s(?:2[6-9]|[3-9][0-9])\\\\d{2}(?:\\\\s\\\\d{4}){2})|(?:6221\\\\.(?:2[6-9]|[3-9][0-9])\\\\d{2}(?:\\\\.\\\\d{4}){2})|(?:6221-(?:2[6-9]|[3-9][0-9])\\\\d{2}(?:-\\\\d{4}){2}))|(?:(?:6229(?:[01][0-9]|2[0-5])\\\\d{2}(?:,\\\\d{4}){2})|(?:6229\\\\s(?:[01][0-9]|2[0-5])\\\\d{2}(?:\\\\s\\\\d{4}){2})|(?:6229\\\\.(?:[01][0-9]|2[0-5])\\\\d{2}(?:\\\\.\\\\d{4}){2})|(?:6229-(?:[01][0-9]|2[0-5])\\\\d{2}(?:-\\\\d{4}){2}))|(?:(?:6011|65\\\\d{2}|64[4-9]\\\\d|622[2-8])(?:(?:\\\\s\\\\d{4}){3}|(?:\\\\.\\\\d{4}){3}|(?:-\\\\d{4}){3}|(?:,\\\\d{4}){3})))\\\\b\",\"tags\":[\"sensitive_data:discover_credit_card\",\"sensitive_data_category:credit_card\"],\"name\":\"Discover Card Scanner (4x4 digits)\",\"description\":\"\\\"Scan for Discover Card numbers formatted as 4 groups of 4 contiguous digits. Matches are validated via the Luhn algorithm. \\n\\nExamples of matching formats:\\n* 6011 0009 9013 9424\\n* 6011-0009-9013-9424\\n* 6011.0009.9013.9424\\n* 6011,0009,9013,9424\\\"\"},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"YBIDWJIvQWW_TFOyU0CGJg\"},{\"attributes\":{\"pattern\":\"\\\\b(?:6221(?:2[6-9]|[3-9][0-9])\\\\d{2}(?:,\\\\d{8}|\\\\s\\\\d{8}|-\\\\d{8}|\\\\.\\\\d{8})|6229(?:[01][0-9]|2[0-5])\\\\d{2}(?:,\\\\d{8}|\\\\s\\\\d{8}|-\\\\d{8}|\\\\.\\\\d{8})|(?:6011|65\\\\d{2}|64[4-9]\\\\d|622[2-8])\\\\d{4}(?:,\\\\d{8}|\\\\s\\\\d{8}|-\\\\d{8}|\\\\.\\\\d{8}))\\\\b\",\"tags\":[\"sensitive_data:discover_credit_card\",\"sensitive_data_category:credit_card\"],\"name\":\"Discover Card Scanner (2x8 digits)\",\"description\":\"\\\"Scan for Discover Card numbers formatted as 2 groups of 8 contiguous digits. Matches are validated via the Luhn algorithm.\\n\\nExamples of matching formats:\\n* 60110009 90139424\\n* 60110009-90139424\\n* 60110009.90139424\\n* 60110009,90139424\\\"\"},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"9cs4qCfEQBeX17U7AepOvQ\"},{\"attributes\":{\"pattern\":\"\\\\b(?:6221(?:2[6-9]|[3-9][0-9])\\\\d{10}|6229(?:[01][0-9]|2[0-5])\\\\d{10}|(?:6011|65\\\\d{2}|64[4-9]\\\\d|622[2-8])\\\\d{12})\\\\b\",\"tags\":[\"sensitive_data:discover_credit_card\",\"sensitive_data_category:credit_card\"],\"name\":\"Discover Card Scanner (1x16 digits)\",\"description\":\"\\\"Scan for Discover Card numbers formatted as 16 contiguous digits. Matches are validated via the Luhn algorithm.\\n\\nExamples of matching formats:\\n* 6011000990139424\\\"\"},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"12cpbjtVTMaMutFhh9sojQ\"},{\"attributes\":{\"pattern\":\"\\\\b3[47]\\\\d{2}(?:(?:\\\\s\\\\d{6}\\\\s\\\\d{5})|(?:\\\\.\\\\d{6}\\\\.\\\\d{5})|(?:-\\\\d{6}-\\\\d{5})|(?:,\\\\d{6},\\\\d{5}))\\\\b\",\"tags\":[\"sensitive_data:american_express_credit_card\",\"sensitive_data_category:credit_card\"],\"name\":\"American Express Card Scanner (4+6+5 digits)\",\"description\":\"\\\"Scan for American Express Card numbers formatted as 3 groups of 4, 6, and 5 contiguous digits. Matches are validated via the Luhn algorithm.\\n\\nExamples of matching formats:\\n* 3782 822463 10005\\n* 3782-822463-10005\\n* 3782.822463.10005\\n* 3782,822463,10005\\\"\"},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"edmH513UTQWcRiQ9UnzHlw\"},{\"attributes\":{\"pattern\":\"\\\\b3[47]\\\\d{2}(?:(?:\\\\s\\\\d{4}\\\\s\\\\d{4}\\\\s\\\\d{3})|(?:\\\\,\\\\d{4}\\\\,\\\\d{4}\\\\,\\\\d{3})|(?:-\\\\d{4}-\\\\d{4}-\\\\d{3})|(?:\\\\.\\\\d{4}\\\\.\\\\d{4}\\\\.\\\\d{3}))\\\\b\",\"tags\":[\"sensitive_data:american_express_credit_card\",\"sensitive_data_category:credit_card\"],\"name\":\"American Express Card Scanner (4+4+4+3 digits)\",\"description\":\"\\\"Scan for American Express Card numbers formatted as 3 groups of 4 contiguous digits followed by 3 contiguous digits. Matches are validated via the Luhn algorithm.\\n\\nExamples of matching formats:\\n* 3782 8224 6310 005\\n* 3782-8224-6310-005\\n* 3782.8224.6310.005\\n* 3782,8224.6310,005\\\"\"},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"JU1sRk3mSzqSUJn6GrVn7g\"},{\"attributes\":{\"pattern\":\"\\\\b3[47]\\\\d{6}(?:(?:\\\\s\\\\d{7})|(?:\\\\,\\\\d{7})|(?:-\\\\d{7})|(?:\\\\.\\\\d{7}))\\\\b\",\"tags\":[\"sensitive_data:american_express_credit_card\",\"sensitive_data_category:credit_card\"],\"name\":\"American Express Card Scanner (8+7 digits)\",\"description\":\"\\\"Scan for American Express Card numbers formatted as 2 groups of 8 and 7 contiguous digits. Matches are validated via the Luhn algorithm.\\n\\nExamples of matching formats:\\n* 37828224 6310005\\n* 37828224-6310005\\n* 37828224.6310005\\n* 37828224.6310005\\\"\"},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"e6K4h_7qTLaMiAbaNXoSZA\"},{\"attributes\":{\"pattern\":\"\\\\b3[47]\\\\d{13}\\\\b\",\"tags\":[\"sensitive_data:american_express_credit_card\",\"sensitive_data_category:credit_card\"],\"name\":\"American Express Card Scanner (1x15 digits)\",\"description\":\"\\\"Scan for American Express Card numbers formatted as 15 contiguous digits. Matches are validated via the Luhn algorithm.\\n\\nExamples of matching formats:\\n* 378282246310005\\\"\"},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"K2rZflWzRhGM9HiTc6whyQ\"},{\"attributes\":{\"pattern\":\"\\\\b(?:30[0-59]\\\\d|3[689]\\\\d{2})(?:(?:\\\\s\\\\d{6}\\\\s\\\\d{4})|(?:\\\\.\\\\d{6}\\\\.\\\\d{4})|(?:-\\\\d{6}-\\\\d{4})|(?:,\\\\d{6},\\\\d{4}))\\\\b\",\"tags\":[\"sensitive_data:diners_credit_card\",\"sensitive_data_category:credit_card\"],\"name\":\"Diners Card Scanner (4+6+4 digits)\",\"description\":\"\\\"Scan for Diners Card numbers formatted as 3 groups of 4, 6, and 4 contiguous digits. Matches are validated via the Luhn algorithm.\\n\\nExamples of matching formats:\\n* 3056 930902 5904\\n* 3056-930902-5904\\n* 3056.930902.5904\\n* 3056,930902,5904\\\"\"},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"Xr5VdbQSTXitYGGiTfxBpw\"},{\"attributes\":{\"pattern\":\"\\\\b(?:30[0-59]\\\\d|3[689]\\\\d{2})(?:(?:\\\\s\\\\d{4}\\\\s\\\\d{4}\\\\s\\\\d{2})|(?:\\\\,\\\\d{4}\\\\,\\\\d{4}\\\\,\\\\d{2})|(?:-\\\\d{4}-\\\\d{4}-\\\\d{2})|(?:\\\\.\\\\d{4}\\\\.\\\\d{4}\\\\.\\\\d{2}))\\\\b\",\"tags\":[\"sensitive_data:diners_credit_card\",\"sensitive_data_category:credit_card\"],\"name\":\"Diners Card Scanner (4+4+4+2 digits)\",\"description\":\"\\\"Scan for Diners Card numbers formatted as 3 groups of 4 contiguous digits followed by 2 contiguous digits. Matches are validated via the Luhn algorithm.\\n\\nExamples of matching formats:\\n* 3056 9309 0259 04\\n* 3056-9309-0259-04\\n* 3056.9309.0259.04\\n* 3056,9309,0259,04\\\"\"},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"NlTWWM5LS6W0GSqBLuvtRw\"},{\"attributes\":{\"pattern\":\"\\\\b(?:30[0-59]\\\\d{5}|3[689]\\\\d{6})(?:(?:\\\\s\\\\d{6})|(?:\\\\,\\\\d{6})|(?:-\\\\d{6})|(?:\\\\.\\\\d{6}))\\\\b\",\"tags\":[\"sensitive_data:diners_credit_card\",\"sensitive_data_category:credit_card\"],\"name\":\"Diners Card Scanner (8+6 digits)\",\"description\":\"\\\"Scan for Diners Card numbers formatted as 2 groups of 8 and 6 contiguous digits. Matches are validated via the Luhn algorithm.\\n\\nExamples of matching formats:\\n* 30569309 025904\\n* 30569309-025904\\n* 30569309.025904\\n* 30569309,025904\\\"\"},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"gAbunN_WQNytxu54DjcbAA\"},{\"attributes\":{\"pattern\":\"(?:30[0-59]\\\\d|3[689]\\\\d{2})(?:\\\\d{10})\",\"tags\":[\"sensitive_data:diners_credit_card\",\"sensitive_data_category:credit_card\"],\"name\":\"Diners Card Scanner (1x14 digits)\",\"description\":\"\\\"Scan for Diners Card numbers formatted as 14 contiguous digits. Matches are validated via the Luhn algorithm.\\n\\nExamples of matching formats:\\n* 30569309025904\\\"\"},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"qWumeP1GQUa_E4ffAnT-Yg\"},{\"attributes\":{\"pattern\":\"\\\\b35(?:2[89]|[3-9][0-9])(?:(?:\\\\s\\\\d{4}){3}|(?:\\\\.\\\\d{4}){3}|(?:-\\\\d{4}){3}|(?:,\\\\d{4}){3})\\\\b\",\"tags\":[\"sensitive_data:jcb_credit_card\",\"sensitive_data_category:credit_card\"],\"name\":\"JCB Card Scanner (4x4 digits)\",\"description\":\"\\\"Scan for JCB Card numbers formatted as 4 groups of 4 contiguous digits. Matches are validated via the Luhn algorithm. \\n\\nExamples of matching formats:\\n* 3530 1113 3330 0000\\n* 3530-1113-3330-0000\\n* 3530.1113.3330.0000\\n* 3530,1113,3330,0000\\\"\"},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"imTliuhXT5GAeRNhqChXQQ\"},{\"attributes\":{\"pattern\":\"\\\\b35(?:2[89]|[3-9][0-9])\\\\d{4}(?:(?:,\\\\d{8})|(?:-\\\\d{8})|(?:\\\\s\\\\d{8})|(?:\\\\.\\\\d{8}))\\\\b\",\"tags\":[\"sensitive_data:jcb_credit_card\",\"sensitive_data_category:credit_card\"],\"name\":\"JCB Card Scanner (2x8 digits)\",\"description\":\"\\\"Scan for JCB Card numbers formatted as 2 groups of 8 contiguous digits. Matches are validated via the Luhn algorithm.\\n\\nExamples of matching formats:\\n* 35301113 33300000\\n* 35301113-33300000\\n* 35301113.33300000\\n* 35301113,33300000\\\"\"},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"gcEaMu_VSJ2-bGCEkgyC0w\"},{\"attributes\":{\"pattern\":\"\\\\b35(?:2[89]|[3-9][0-9])(?:\\\\d{12})\\\\b\",\"tags\":[\"sensitive_data:jcb_credit_card\",\"sensitive_data_category:credit_card\"],\"name\":\"JCB Card Scanner (1x16 digits)\",\"description\":\"\\\"Scan for JCB Card numbers formatted as 16 contiguous digits. Matches are validated via the Luhn algorithm.\\n\\nExamples of matching formats:\\n* 3530111333300000\\n\\\"\"},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"h6WJcecQTwqvN9KeEtwDvg\"},{\"attributes\":{\"pattern\":\"\\\\b(?:5[06-9]\\\\d{2}|6\\\\d{3})(?:(?:\\\\s\\\\d{4}){3}|(?:\\\\.\\\\d{4}){3}|(?:-\\\\d{4}){3}|(?:,\\\\d{4}){3})\\\\b\",\"tags\":[\"sensitive_data:maestro_card\",\"sensitive_data_category:credit_card\"],\"name\":\"Maestro Card Scanner (4x4 digits)\",\"description\":\"\\\"Scan for Maestro Card numbers formatted as 4 groups of 4 contiguous digits. Matches are validated via the Luhn algorithm. \\n\\nExamples of matching formats:\\n* 6759 6498 2643 8453\\n* 6759-6498-2643-8453\\n* 6759.6498.2643.8453\\n* 6759,6498,2643,8453\\\"\"},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"hRxiQBlSSVKcjh5U7LZYLA\"},{\"attributes\":{\"pattern\":\"\\\\b(?:5[06-9]\\\\d{6}|6\\\\d{7})(?:\\\\s\\\\d{8}|\\\\.\\\\d{8}|-\\\\d{8}|,\\\\d{8})\\\\b\",\"tags\":[\"sensitive_data:maestro_card\",\"sensitive_data_category:credit_card\"],\"name\":\"Maestro Card Scanner (2x8 digits)\",\"description\":\"\\\"Scan for Maestro Card numbers formatted as 2 groups of 8 contiguous digits. Matches are validated via the Luhn algorithm.\\n\\nExamples of matching formats:\\n* 67596498 26438453\\n* 67596498-26438453\\n* 67596498.26438453\\n* 67596498,26438453\\\"\"},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"M3YIQKKjRVmoeQuM3pjzrw\"},{\"attributes\":{\"pattern\":\"\\\\b(?:5[06-9]\\\\d{2}|6\\\\d{3})(?:\\\\d{12})\\\\b\",\"tags\":[\"sensitive_data:maestro_card\",\"sensitive_data_category:credit_card\"],\"name\":\"Maestro Card Scanner (1x16 digits)\",\"description\":\"\\\"Scan for Maestro Card numbers formatted as 16 contiguous digits. Matches are validated via the Luhn algorithm.\\n\\nExamples of matching formats:\\n* 6759649826438453\\n\\\"\"},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"d1Q9D3YMRxuVKf6CZInJPw\"},{\"attributes\":{\"pattern\":\"\\\\b[\\\\w!#$%&'*+\\\\/=?`{|}~^-]+(?:\\\\.[\\\\w!#$%&'*+\\\\/=?`{|}~^-]+)*@(?:[a-zA-Z0-9-]+\\\\.)+[a-zA-Z]{2,6}\\\\b\",\"name\":\"Standard Email Address Scanner\",\"tags\":[\"sensitive_data:email_address\",\"sensitive_data_category:email_address\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"PuXiVTCkTHOtj0Yad1ppsw\"},{\"attributes\":{\"pattern\":\"\\\\b(?:NO\\\\d{2}(?:[ \\\\-]?\\\\d{4}){2}[ \\\\-]?\\\\d{3}|BE\\\\d{2}(?:[ \\\\-]?\\\\d{4}){3}|(?:DK|FO|FI|GL|SD)\\\\d{2}(?:[ \\\\-]?\\\\d{4}){3}[ \\\\-]?\\\\d{2}|NL\\\\d{2}[ \\\\-]?[A-Z]{4}(?:[ \\\\-]?\\\\d{4}){2}[ \\\\-]?\\\\d{2}|MK\\\\d{2}[ \\\\-]?\\\\d{3}[A-Z0-9](?:[ \\\\-]?[A-Z0-9]{4}){2}[ \\\\-]?[A-Z0-9]\\\\d{2}|SI\\\\d{17}|(?:AT|BA|EE|LT|XK)\\\\d{18}|(?:LU|KZ|EE|LT)\\\\d{5}[A-Z0-9]{13}|LV\\\\d{2}[A-Z]{4}[A-Z0-9]{13}|(?:LI|CH)\\\\d{2}[ \\\\-]?\\\\d{4}[ \\\\-]?\\\\d[A-Z0-9]{3}(?:[ \\\\-]?[A-Z0-9]{4}){2}[ \\\\-]?[A-Z0-9]|HR\\\\d{2}(?:[ \\\\-]?\\\\d{4}){4}[ \\\\-]?\\\\d|GE\\\\d{2}[ \\\\-]?[A-Z0-9]{2}\\\\d{2}\\\\d{14}|VA\\\\d{20}|BG\\\\d{2}[A-Z]{4}\\\\d{6}[A-Z0-9]{8}|BH\\\\d{2}[A-Z]{4}[A-Z0-9]{14}|GB\\\\d{2}[A-Z]{4}(?:[ \\\\-]?\\\\d{4}){3}[ \\\\-]?\\\\d{2}|IE\\\\d{2}[ \\\\-]?[A-Z0-9]{4}(?:[ \\\\-]?\\\\d{4}){3}[ \\\\-]?\\\\d{2}|(?:CR|DE|ME|RS)\\\\d{2}(?:[ \\\\-]?\\\\d{4}){4}[ \\\\-]?\\\\d{2}|(?:AE|TL|IL)\\\\d{2}(?:[ \\\\-]?\\\\d{4}){4}[ \\\\-]?\\\\d{3}|GI\\\\d{2}[ \\\\-]?[A-Z]{4}(?:[ \\\\-]?[A-Z0-9]{4}){3}[ \\\\-]?[A-Z0-9]{3}|IQ\\\\d{2}[ \\\\-]?[A-Z]{4}(?:[ \\\\-]?\\\\d{4}){3}[ \\\\-]?\\\\d{3}|MD\\\\d{2}(?:[ \\\\-]?[A-Z0-9]{4}){5}|SA\\\\d{2}[ \\\\-]?\\\\d{2}[A-Z0-9]{2}(?:[ \\\\-]?[A-Z0-9]{4}){4}|RO\\\\d{2}[ \\\\-]?[A-Z]{4}(?:[ \\\\-]?[A-Z0-9]{4}){4}|(?:PK|VG)\\\\d{2}[ \\\\-]?[A-Z0-9]{4}(?:[ \\\\-]?\\\\d{4}){4}|AD\\\\d{2}(?:[ \\\\-]?\\\\d{4}){2}(?:[ \\\\-]?[A-Z0-9]{4}){3}|(?:CZ|SK|ES|SE|TN)\\\\d{2}(?:[ \\\\-]?\\\\d{4}){5}|(?:LY|PT|ST)\\\\d{2}(?:[ \\\\-]?\\\\d{4}){5}[ \\\\-]?\\\\d|TR\\\\d{2}[ \\\\-]?\\\\d{4}[ \\\\-]?\\\\d[A-Z0-9]{3}(?:[ \\\\-]?[A-Z0-9]{4}){3}[ \\\\-]?[A-Z0-9]{2}|IS\\\\d{2}(?:[ \\\\-]?\\\\d{4}){5}[ \\\\-]?\\\\d{2}|(?:IT|SM)\\\\d{2}[ \\\\-]?[A-Z]\\\\d{3}[ \\\\-]?\\\\d{4}[ \\\\-]?\\\\d{3}[A-Z0-9](?:[ \\\\-]?[A-Z0-9]{4}){2}[ \\\\-]?[A-Z0-9]{3}|GR\\\\d{2}[ \\\\-]?\\\\d{4}[ \\\\-]?\\\\d{3}[A-Z0-9](?:[ \\\\-]?[A-Z0-9]{4}){3}[A-Z0-9]{3}|(?:FR|MC)\\\\d{2}(?:[ \\\\-]?\\\\d{4}){2}[ \\\\-]?\\\\d{2}[A-Z0-9]{2}(?:[ \\\\-]?[A-Z0-9]{4}){2}[ \\\\-]?[A-Z0-9]\\\\d{2}|MR\\\\d{2}(?:[ \\\\-]?\\\\d{4}){5}[ \\\\-]?\\\\d{3}|(?:SV|DO)\\\\d{2}[ \\\\-]?[A-Z]{4}(?:[ \\\\-]?\\\\d{4}){5}|BY\\\\d{2}[ \\\\-]?[A-Z]{4}[ \\\\-]?\\\\d{4}(?:[ \\\\-]?[A-Z0-9]{4}){4}|GT\\\\d{2}(?:[ \\\\-]?[A-Z0-9]{4}){6}|AZ\\\\d{2}[ \\\\-]?[A-Z0-9]{4}(?:[ \\\\-]?\\\\d{5}){4}|LB\\\\d{2}[ \\\\-]?\\\\d{4}(?:[ \\\\-]?[A-Z0-9]{5}){4}|(?:AL|CY)\\\\d{2}(?:[ \\\\-]?\\\\d{4}){2}(?:[ \\\\-]?[A-Z0-9]{4}){4}|(?:HU|PL)\\\\d{2}(?:[ \\\\-]?\\\\d{4}){6}|QA\\\\d{2}[ \\\\-]?[A-Z]{4}(?:[ \\\\-]?[A-Z0-9]{4}){5}[ \\\\-]?[A-Z0-9]|PS\\\\d{2}[ \\\\-]?[A-Z0-9]{4}(?:[ \\\\-]?\\\\d{4}){5}[ \\\\-]?\\\\d|UA\\\\d{2}[ \\\\-]?\\\\d{4}[ \\\\-]?\\\\d{2}[A-Z0-9]{2}(?:[ \\\\-]?[A-Z0-9]{4}){4}[ \\\\-]?[A-Z0-9]|BR\\\\d{2}(?:[ \\\\-]?\\\\d{4}){5}[ \\\\-]?\\\\d{3}[A-Z0-9][ \\\\-]?[A-Z0-9]|EG\\\\d{2}(?:[ \\\\-]?\\\\d{4}){6}\\\\d|MU\\\\d{2}[ \\\\-]?[A-Z]{4}(?:[ \\\\-]?\\\\d{4}){4}\\\\d{3}[A-Z][ \\\\-]?[A-Z]{2}|(?:KW|JO)\\\\d{2}[ \\\\-]?[A-Z]{4}(?:[ \\\\-]?[A-Z0-9]{4}){5}[ \\\\-]?[A-Z0-9]{2}|MT\\\\d{2}[ \\\\-]?[A-Z]{4}[ \\\\-]?\\\\d{4}[ \\\\-]?\\\\d[A-Z0-9]{3}(?:[ \\\\-]?[A-Z0-9]{3}){4}[ \\\\-]?[A-Z0-9]{3}|SC\\\\d{2}[ \\\\-]?[A-Z]{4}(?:[ \\\\-]?\\\\d{4}){5}[ \\\\-]?[A-Z]{3}|LC\\\\d{2}[ \\\\-]?[A-Z]{4}(?:[ \\\\-]?[A-Z0-9]{4}){6})\\\\b\",\"name\":\"Standard Iban Code Scanner\",\"tags\":[\"sensitive_data:iban_code\",\"sensitive_data_category:iban_code\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"8VS2RKxzR8a_95L5fuwaXQ\"},{\"attributes\":{\"pattern\":\"\\\\b((25[0-5]|(2[0-4]|1?[0-9])?[0-9])\\\\.){3}(25[0-5]|(2[0-4]|1?[0-9])?[0-9])\\\\b\",\"name\":\"IPv4 Address Scanner\",\"tags\":[\"sensitive_data_category:ip_address\",\"sensitive_data:ipv4_address\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"aDA3jUjSSLOezHV2y-Rn_w\"},{\"attributes\":{\"pattern\":\"(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\",\"name\":\"IPv6 Address Scanner\",\"tags\":[\"sensitive_data_category:ip_address\",\"sensitive_data:ipv6_address\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"s3sEZP5fSTGSPLPS853VeQ\"},{\"attributes\":{\"pattern\":\"\\\\b(?:[0-9A-Fa-f]{2}[:-]){5}(?:[0-9A-Fa-f]{2})\\\\b\",\"name\":\"Standard Mac Address Scanner\",\"tags\":[\"sensitive_data:mac_address\",\"sensitive_data_category:mac_address\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"uRLVpXXTRxmCg4M93hfLiA\"},{\"attributes\":{\"pattern\":\"https?:\\\\/\\\\/(www\\\\.)?[-a-zA-Z0-9@:%._\\\\+~#=]{1,}\\\\.[a-zA-Z0-9()]{1,6}\\\\b([-a-zA-Z0-9()@:%_\\\\+.~#?&//=]*)\",\"name\":\"HTTP(S) URL Scanner\",\"tags\":[\"sensitive_data_category:url\",\"sensitive_data:http_url\"]},\"type\":\"sensitive_data_scanner_standard_pattern\",\"id\":\"aLQt_DX_T8S1MaWS82eoNQ\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 09 Dec 2022 09:53:00 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/sensitive_data_scanner/Reorder-Groups-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/sensitive_data_scanner/Reorder-Groups-returns-Bad-Request-response.json index 417f769ce..848e4e216 100644 --- a/tests/scenarios/cassettes/v2/sensitive_data_scanner/Reorder-Groups-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/sensitive_data_scanner/Reorder-Groups-returns-Bad-Request-response.json @@ -1 +1,135 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config"}, "response": {"body": {"string": "{\"meta\":{\"count_limit\":100,\"version\":1211,\"group_count_limit\":20,\"is_pci_compliant\":false,\"has_highlight_enabled\":true},\"data\":{\"relationships\":{\"groups\":{\"data\":[]}},\"attributes\":{},\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 09 Dec 2022 09:53:00 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"my-test-group\",\"product_list\":[\"logs\"]},\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"},\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups"}, "response": {"body": {"string": "{\"meta\":{\"version\":1212},\"data\":{\"relationships\":{\"rules\":{\"data\":[]},\"configuration\":{\"data\":{\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}},\"attributes\":{\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"],\"name\":\"my-test-group\"},\"type\":\"sensitive_data_scanner_group\",\"id\":\"CiAQStkNTd2K_irKY_-2Tg\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 09 Dec 2022 09:53:00 GMT"}, {"request": {"body": {"string": "{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"relationships\":{\"groups\":{\"data\":[{\"id\":\"Test-Reorder_Groups_returns_Bad_Request_response-1670579580\",\"type\":\"sensitive_data_scanner_group\"}]}},\"type\":\"sensitive_data_scanner_configuration\"},\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config"}, "response": {"body": {"string": "{\"errors\":[\"invalid_argument(Pipelines to reorder do not match current pipelines)\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Fri, 09 Dec 2022 09:53:00 GMT"}, {"request": {"body": {"string": "{\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/CiAQStkNTd2K_irKY_-2Tg"}, "response": {"body": {"string": "{\"meta\":{\"version\":1213}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 09 Dec 2022 09:53:00 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config" + }, + "response": { + "body": { + "string": "{\"meta\":{\"count_limit\":100,\"version\":1211,\"group_count_limit\":20,\"is_pci_compliant\":false,\"has_highlight_enabled\":true},\"data\":{\"relationships\":{\"groups\":{\"data\":[]}},\"attributes\":{},\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 09 Dec 2022 09:53:00 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"my-test-group\",\"product_list\":[\"logs\"]},\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"},\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups" + }, + "response": { + "body": { + "string": "{\"meta\":{\"version\":1212},\"data\":{\"relationships\":{\"rules\":{\"data\":[]},\"configuration\":{\"data\":{\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}},\"attributes\":{\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"],\"name\":\"my-test-group\"},\"type\":\"sensitive_data_scanner_group\",\"id\":\"CiAQStkNTd2K_irKY_-2Tg\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 09 Dec 2022 09:53:00 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"relationships\":{\"groups\":{\"data\":[{\"id\":\"Test-Reorder_Groups_returns_Bad_Request_response-1670579580\",\"type\":\"sensitive_data_scanner_group\"}]}},\"type\":\"sensitive_data_scanner_configuration\"},\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config" + }, + "response": { + "body": { + "string": "{\"errors\":[\"invalid_argument(Pipelines to reorder do not match current pipelines)\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Fri, 09 Dec 2022 09:53:00 GMT" + }, + { + "request": { + "body": { + "string": "{\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/CiAQStkNTd2K_irKY_-2Tg" + }, + "response": { + "body": { + "string": "{\"meta\":{\"version\":1213}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 09 Dec 2022 09:53:00 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/sensitive_data_scanner/Reorder-Groups-returns-OK-response.json b/tests/scenarios/cassettes/v2/sensitive_data_scanner/Reorder-Groups-returns-OK-response.json index c162dfcb0..061317f2d 100644 --- a/tests/scenarios/cassettes/v2/sensitive_data_scanner/Reorder-Groups-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/sensitive_data_scanner/Reorder-Groups-returns-OK-response.json @@ -1 +1,135 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config"}, "response": {"body": {"string": "{\"meta\":{\"count_limit\":100,\"version\":1186,\"group_count_limit\":20,\"is_pci_compliant\":false,\"has_highlight_enabled\":true},\"data\":{\"relationships\":{\"groups\":{\"data\":[]}},\"attributes\":{},\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 09 Dec 2022 09:50:06 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"my-test-group\",\"product_list\":[\"logs\"]},\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"},\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups"}, "response": {"body": {"string": "{\"meta\":{\"version\":1187},\"data\":{\"relationships\":{\"rules\":{\"data\":[]},\"configuration\":{\"data\":{\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}},\"attributes\":{\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"],\"name\":\"my-test-group\"},\"type\":\"sensitive_data_scanner_group\",\"id\":\"SHPTnSshQWWXLuF3pQhLPA\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 09 Dec 2022 09:50:06 GMT"}, {"request": {"body": {"string": "{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"relationships\":{\"groups\":{\"data\":[{\"id\":\"SHPTnSshQWWXLuF3pQhLPA\",\"type\":\"sensitive_data_scanner_group\"}]}},\"type\":\"sensitive_data_scanner_configuration\"},\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config"}, "response": {"body": {"string": "{\"meta\":{\"count_limit\":100,\"version\":1188,\"group_count_limit\":20,\"is_pci_compliant\":false,\"has_highlight_enabled\":true}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 09 Dec 2022 09:50:06 GMT"}, {"request": {"body": {"string": "{\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/SHPTnSshQWWXLuF3pQhLPA"}, "response": {"body": {"string": "{\"meta\":{\"version\":1189}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 09 Dec 2022 09:50:06 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config" + }, + "response": { + "body": { + "string": "{\"meta\":{\"count_limit\":100,\"version\":1186,\"group_count_limit\":20,\"is_pci_compliant\":false,\"has_highlight_enabled\":true},\"data\":{\"relationships\":{\"groups\":{\"data\":[]}},\"attributes\":{},\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 09 Dec 2022 09:50:06 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"my-test-group\",\"product_list\":[\"logs\"]},\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"},\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups" + }, + "response": { + "body": { + "string": "{\"meta\":{\"version\":1187},\"data\":{\"relationships\":{\"rules\":{\"data\":[]},\"configuration\":{\"data\":{\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}},\"attributes\":{\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"],\"name\":\"my-test-group\"},\"type\":\"sensitive_data_scanner_group\",\"id\":\"SHPTnSshQWWXLuF3pQhLPA\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 09 Dec 2022 09:50:06 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"relationships\":{\"groups\":{\"data\":[{\"id\":\"SHPTnSshQWWXLuF3pQhLPA\",\"type\":\"sensitive_data_scanner_group\"}]}},\"type\":\"sensitive_data_scanner_configuration\"},\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config" + }, + "response": { + "body": { + "string": "{\"meta\":{\"count_limit\":100,\"version\":1188,\"group_count_limit\":20,\"is_pci_compliant\":false,\"has_highlight_enabled\":true}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 09 Dec 2022 09:50:06 GMT" + }, + { + "request": { + "body": { + "string": "{\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/SHPTnSshQWWXLuF3pQhLPA" + }, + "response": { + "body": { + "string": "{\"meta\":{\"version\":1189}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 09 Dec 2022 09:50:06 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/sensitive_data_scanner/Update-Scanning-Group-returns-OK-response.json b/tests/scenarios/cassettes/v2/sensitive_data_scanner/Update-Scanning-Group-returns-OK-response.json index 1693fe8c5..8d3e55943 100644 --- a/tests/scenarios/cassettes/v2/sensitive_data_scanner/Update-Scanning-Group-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/sensitive_data_scanner/Update-Scanning-Group-returns-OK-response.json @@ -1 +1,135 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config"}, "response": {"body": {"string": "{\"meta\":{\"count_limit\":100,\"version\":1215,\"group_count_limit\":20,\"is_pci_compliant\":false,\"has_highlight_enabled\":true},\"data\":{\"relationships\":{\"groups\":{\"data\":[]}},\"attributes\":{},\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 09 Dec 2022 09:53:03 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"my-test-group\",\"product_list\":[\"logs\"]},\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"},\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups"}, "response": {"body": {"string": "{\"meta\":{\"version\":1216},\"data\":{\"relationships\":{\"rules\":{\"data\":[]},\"configuration\":{\"data\":{\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}},\"attributes\":{\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"],\"name\":\"my-test-group\"},\"type\":\"sensitive_data_scanner_group\",\"id\":\"ut9dJ0wfShO5ULFVTgFF8A\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 09 Dec 2022 09:53:03 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"Test-Update_Scanning_Group_returns_OK_response-1670579583\",\"product_list\":[\"logs\"]},\"id\":\"ut9dJ0wfShO5ULFVTgFF8A\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"},\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/ut9dJ0wfShO5ULFVTgFF8A"}, "response": {"body": {"string": "{\"meta\":{\"version\":1217}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 09 Dec 2022 09:53:03 GMT"}, {"request": {"body": {"string": "{\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/ut9dJ0wfShO5ULFVTgFF8A"}, "response": {"body": {"string": "{\"meta\":{\"version\":1218}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 09 Dec 2022 09:53:03 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config" + }, + "response": { + "body": { + "string": "{\"meta\":{\"count_limit\":100,\"version\":1215,\"group_count_limit\":20,\"is_pci_compliant\":false,\"has_highlight_enabled\":true},\"data\":{\"relationships\":{\"groups\":{\"data\":[]}},\"attributes\":{},\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 09 Dec 2022 09:53:03 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"my-test-group\",\"product_list\":[\"logs\"]},\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"},\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups" + }, + "response": { + "body": { + "string": "{\"meta\":{\"version\":1216},\"data\":{\"relationships\":{\"rules\":{\"data\":[]},\"configuration\":{\"data\":{\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}},\"attributes\":{\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"],\"name\":\"my-test-group\"},\"type\":\"sensitive_data_scanner_group\",\"id\":\"ut9dJ0wfShO5ULFVTgFF8A\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 09 Dec 2022 09:53:03 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"Test-Update_Scanning_Group_returns_OK_response-1670579583\",\"product_list\":[\"logs\"]},\"id\":\"ut9dJ0wfShO5ULFVTgFF8A\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"},\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/ut9dJ0wfShO5ULFVTgFF8A" + }, + "response": { + "body": { + "string": "{\"meta\":{\"version\":1217}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 09 Dec 2022 09:53:03 GMT" + }, + { + "request": { + "body": { + "string": "{\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/ut9dJ0wfShO5ULFVTgFF8A" + }, + "response": { + "body": { + "string": "{\"meta\":{\"version\":1218}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 09 Dec 2022 09:53:03 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/sensitive_data_scanner/Update-Scanning-Rule-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/sensitive_data_scanner/Update-Scanning-Rule-returns-Bad-Request-response.json index badc13f85..fed9d65cd 100644 --- a/tests/scenarios/cassettes/v2/sensitive_data_scanner/Update-Scanning-Rule-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/sensitive_data_scanner/Update-Scanning-Rule-returns-Bad-Request-response.json @@ -1 +1,203 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config"}, "response": {"body": {"string": "{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"attributes\":{},\"type\":\"sensitive_data_scanner_configuration\",\"relationships\":{\"groups\":{\"data\":[]}}},\"meta\":{\"version\":12582,\"count_limit\":100,\"group_count_limit\":20,\"is_pci_compliant\":false,\"has_highlight_enabled\":true,\"has_multi_pass_enabled\":true}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 24 Jan 2023 13:12:17 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"my-test-group\",\"product_list\":[\"logs\"]},\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"},\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups"}, "response": {"body": {"string": "{\"data\":{\"id\":\"dGE4OCG5SOyrEcmI1VxXBg\",\"attributes\":{\"name\":\"my-test-group\",\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"]},\"type\":\"sensitive_data_scanner_group\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}},\"meta\":{\"version\":12583}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 24 Jan 2023 13:12:17 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Update_Scanning_Rule_returns_Bad_Request_response-1674565937\",\"namespaces\":[\"admin.email\"],\"pattern\":\"pattern\",\"tags\":[\"sensitive_data:true\"],\"text_replacement\":{\"type\":\"none\"}},\"relationships\":{\"group\":{\"data\":{\"id\":\"dGE4OCG5SOyrEcmI1VxXBg\",\"type\":\"sensitive_data_scanner_group\"}}},\"type\":\"sensitive_data_scanner_rule\"},\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules"}, "response": {"body": {"string": "{\"data\":{\"id\":\"wcJbdCG8Rcq82Sq_z7Zw6w\",\"attributes\":{\"name\":\"Test-Update_Scanning_Rule_returns_Bad_Request_response-1674565937\",\"namespaces\":[\"admin.email\"],\"excluded_namespaces\":[],\"pattern\":\"pattern\",\"text_replacement\":{\"type\":\"none\"},\"tags\":[\"sensitive_data:true\"],\"is_enabled\":true},\"type\":\"sensitive_data_scanner_rule\",\"relationships\":{\"group\":{\"data\":{\"id\":\"dGE4OCG5SOyrEcmI1VxXBg\",\"type\":\"sensitive_data_scanner_group\"}}}},\"meta\":{\"version\":12584}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 24 Jan 2023 13:12:17 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Update_Scanning_Rule_returns_Bad_Request_response-1674565937\",\"pattern\":\"pattern\",\"tags\":[\"sensitive_data:true\"],\"text_replacement\":{\"type\":\"none\"}},\"relationships\":{\"group\":{\"data\":{\"id\":\"dGE4OCG5SOyrEcmI1VxXBg\",\"type\":\"sensitive_data_scanner_group\"}}},\"type\":\"sensitive_data_scanner_rule\"},\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules/wcJbdCG8Rcq82Sq_z7Zw6w"}, "response": {"body": {"string": "{\"errors\":[\"input_validation_error(Field 'data.id' is invalid: field 'data.id' is required)\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Tue, 24 Jan 2023 13:12:17 GMT"}, {"request": {"body": {"string": "{\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules/wcJbdCG8Rcq82Sq_z7Zw6w"}, "response": {"body": {"string": "{\"meta\":{\"version\":12585}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 24 Jan 2023 13:12:17 GMT"}, {"request": {"body": {"string": "{\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/dGE4OCG5SOyrEcmI1VxXBg"}, "response": {"body": {"string": "{\"meta\":{\"version\":12586}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 24 Jan 2023 13:12:17 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"attributes\":{},\"type\":\"sensitive_data_scanner_configuration\",\"relationships\":{\"groups\":{\"data\":[]}}},\"meta\":{\"version\":12582,\"count_limit\":100,\"group_count_limit\":20,\"is_pci_compliant\":false,\"has_highlight_enabled\":true,\"has_multi_pass_enabled\":true}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 24 Jan 2023 13:12:17 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"my-test-group\",\"product_list\":[\"logs\"]},\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"},\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"dGE4OCG5SOyrEcmI1VxXBg\",\"attributes\":{\"name\":\"my-test-group\",\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"]},\"type\":\"sensitive_data_scanner_group\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}},\"meta\":{\"version\":12583}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 24 Jan 2023 13:12:17 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Update_Scanning_Rule_returns_Bad_Request_response-1674565937\",\"namespaces\":[\"admin.email\"],\"pattern\":\"pattern\",\"tags\":[\"sensitive_data:true\"],\"text_replacement\":{\"type\":\"none\"}},\"relationships\":{\"group\":{\"data\":{\"id\":\"dGE4OCG5SOyrEcmI1VxXBg\",\"type\":\"sensitive_data_scanner_group\"}}},\"type\":\"sensitive_data_scanner_rule\"},\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"wcJbdCG8Rcq82Sq_z7Zw6w\",\"attributes\":{\"name\":\"Test-Update_Scanning_Rule_returns_Bad_Request_response-1674565937\",\"namespaces\":[\"admin.email\"],\"excluded_namespaces\":[],\"pattern\":\"pattern\",\"text_replacement\":{\"type\":\"none\"},\"tags\":[\"sensitive_data:true\"],\"is_enabled\":true},\"type\":\"sensitive_data_scanner_rule\",\"relationships\":{\"group\":{\"data\":{\"id\":\"dGE4OCG5SOyrEcmI1VxXBg\",\"type\":\"sensitive_data_scanner_group\"}}}},\"meta\":{\"version\":12584}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 24 Jan 2023 13:12:17 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Update_Scanning_Rule_returns_Bad_Request_response-1674565937\",\"pattern\":\"pattern\",\"tags\":[\"sensitive_data:true\"],\"text_replacement\":{\"type\":\"none\"}},\"relationships\":{\"group\":{\"data\":{\"id\":\"dGE4OCG5SOyrEcmI1VxXBg\",\"type\":\"sensitive_data_scanner_group\"}}},\"type\":\"sensitive_data_scanner_rule\"},\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules/wcJbdCG8Rcq82Sq_z7Zw6w" + }, + "response": { + "body": { + "string": "{\"errors\":[\"input_validation_error(Field 'data.id' is invalid: field 'data.id' is required)\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Tue, 24 Jan 2023 13:12:17 GMT" + }, + { + "request": { + "body": { + "string": "{\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules/wcJbdCG8Rcq82Sq_z7Zw6w" + }, + "response": { + "body": { + "string": "{\"meta\":{\"version\":12585}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 24 Jan 2023 13:12:17 GMT" + }, + { + "request": { + "body": { + "string": "{\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/dGE4OCG5SOyrEcmI1VxXBg" + }, + "response": { + "body": { + "string": "{\"meta\":{\"version\":12586}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 24 Jan 2023 13:12:17 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/sensitive_data_scanner/Update-Scanning-Rule-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/sensitive_data_scanner/Update-Scanning-Rule-returns-OK-response.frozen index da74cd47c..0cca74faa 100644 --- a/tests/scenarios/cassettes/v2/sensitive_data_scanner/Update-Scanning-Rule-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v2/sensitive_data_scanner/Update-Scanning-Rule-returns-OK-response.frozen @@ -1 +1 @@ -2023-12-13T09:06:40.913Z \ No newline at end of file +2024-01-04T13:51:06.530Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/sensitive_data_scanner/Update-Scanning-Rule-returns-OK-response.json b/tests/scenarios/cassettes/v2/sensitive_data_scanner/Update-Scanning-Rule-returns-OK-response.json index 43251724e..f4cd606eb 100644 --- a/tests/scenarios/cassettes/v2/sensitive_data_scanner/Update-Scanning-Rule-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/sensitive_data_scanner/Update-Scanning-Rule-returns-OK-response.json @@ -1 +1,203 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config"}, "response": {"body": {"string": "{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"attributes\":{},\"type\":\"sensitive_data_scanner_configuration\",\"relationships\":{\"groups\":{\"data\":[{\"id\":\"z9vY6YO8R-2q6dv_rTUOCA\",\"type\":\"sensitive_data_scanner_group\"},{\"id\":\"01OnORacS5qHeVO7C97drg\",\"type\":\"sensitive_data_scanner_group\"}]}}},\"meta\":{\"version\":127247,\"count_limit\":100,\"group_count_limit\":20,\"is_pci_compliant\":false,\"has_highlight_enabled\":true,\"has_multi_pass_enabled\":true},\"included\":[{\"id\":\"z9vY6YO8R-2q6dv_rTUOCA\",\"attributes\":{\"name\":\"Example-Update_Scanning_Group_returns_OK_response_1696199477\",\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"]},\"type\":\"sensitive_data_scanner_group\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}},{\"id\":\"01OnORacS5qHeVO7C97drg\",\"attributes\":{\"name\":\"my-test-group\",\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"]},\"type\":\"sensitive_data_scanner_group\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 13 Dec 2023 09:06:40 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"my-test-group\",\"product_list\":[\"logs\"]},\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"},\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups"}, "response": {"body": {"string": "{\"data\":{\"id\":\"LAf2eSOlTQ6RTz2rwiQGsA\",\"attributes\":{\"name\":\"my-test-group\",\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"]},\"type\":\"sensitive_data_scanner_group\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}},\"meta\":{\"version\":127248}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 13 Dec 2023 09:06:40 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Update_Scanning_Rule_returns_OK_response-1702458400\",\"namespaces\":[\"admin.email\"],\"pattern\":\"pattern\",\"tags\":[\"sensitive_data:true\"],\"text_replacement\":{\"type\":\"none\"}},\"relationships\":{\"group\":{\"data\":{\"id\":\"LAf2eSOlTQ6RTz2rwiQGsA\",\"type\":\"sensitive_data_scanner_group\"}}},\"type\":\"sensitive_data_scanner_rule\"},\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules"}, "response": {"body": {"string": "{\"data\":{\"id\":\"N7Hb8CgTRayW0VADXfo9Wg\",\"attributes\":{\"name\":\"Test-Update_Scanning_Rule_returns_OK_response-1702458400\",\"namespaces\":[\"admin.email\"],\"excluded_namespaces\":[],\"pattern\":\"pattern\",\"text_replacement\":{\"type\":\"none\"},\"tags\":[\"sensitive_data:true\"],\"is_enabled\":true},\"type\":\"sensitive_data_scanner_rule\",\"relationships\":{\"group\":{\"data\":{\"id\":\"LAf2eSOlTQ6RTz2rwiQGsA\",\"type\":\"sensitive_data_scanner_group\"}}}},\"meta\":{\"version\":127249}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 13 Dec 2023 09:06:40 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Update_Scanning_Rule_returns_OK_response-1702458400\",\"pattern\":\"pattern\",\"priority\":5,\"tags\":[\"sensitive_data:true\"],\"text_replacement\":{\"type\":\"none\"}},\"id\":\"N7Hb8CgTRayW0VADXfo9Wg\",\"relationships\":{\"group\":{\"data\":{\"id\":\"LAf2eSOlTQ6RTz2rwiQGsA\",\"type\":\"sensitive_data_scanner_group\"}}},\"type\":\"sensitive_data_scanner_rule\"},\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules/N7Hb8CgTRayW0VADXfo9Wg"}, "response": {"body": {"string": "{\"meta\":{\"version\":127250}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 13 Dec 2023 09:06:40 GMT"}, {"request": {"body": {"string": "{\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules/N7Hb8CgTRayW0VADXfo9Wg"}, "response": {"body": {"string": "{\"meta\":{\"version\":127251}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 13 Dec 2023 09:06:40 GMT"}, {"request": {"body": {"string": "{\"meta\":{}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/LAf2eSOlTQ6RTz2rwiQGsA"}, "response": {"body": {"string": "{\"meta\":{\"version\":127252}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 13 Dec 2023 09:06:40 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"attributes\":{},\"type\":\"sensitive_data_scanner_configuration\",\"relationships\":{\"groups\":{\"data\":[{\"id\":\"z9vY6YO8R-2q6dv_rTUOCA\",\"type\":\"sensitive_data_scanner_group\"},{\"id\":\"01OnORacS5qHeVO7C97drg\",\"type\":\"sensitive_data_scanner_group\"},{\"id\":\"IuYiCydSTAWqDyW5242-XA\",\"type\":\"sensitive_data_scanner_group\"},{\"id\":\"HwQk4sJHSRmhHyo6KyXHWw\",\"type\":\"sensitive_data_scanner_group\"},{\"id\":\"NChKshYdT6SvdiJE62DQgg\",\"type\":\"sensitive_data_scanner_group\"},{\"id\":\"q6h4G_icTLWHvnT9U90PfQ\",\"type\":\"sensitive_data_scanner_group\"},{\"id\":\"sOpLckMyTYW1ZXMXMeJnnQ\",\"type\":\"sensitive_data_scanner_group\"},{\"id\":\"_o1TJ7yVSoKJLD9ioIyjeQ\",\"type\":\"sensitive_data_scanner_group\"},{\"id\":\"yWBB9T6cQwarJAo0GzrdXw\",\"type\":\"sensitive_data_scanner_group\"}]}}},\"meta\":{\"version\":135500,\"count_limit\":100,\"group_count_limit\":20,\"is_pci_compliant\":false,\"has_highlight_enabled\":true,\"has_multi_pass_enabled\":true},\"included\":[{\"id\":\"z9vY6YO8R-2q6dv_rTUOCA\",\"attributes\":{\"name\":\"Example-Update_Scanning_Group_returns_OK_response_1696199477\",\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"]},\"type\":\"sensitive_data_scanner_group\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}},{\"id\":\"01OnORacS5qHeVO7C97drg\",\"attributes\":{\"name\":\"my-test-group\",\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"]},\"type\":\"sensitive_data_scanner_group\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}},{\"id\":\"IuYiCydSTAWqDyW5242-XA\",\"attributes\":{\"name\":\"my-test-group\",\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"]},\"type\":\"sensitive_data_scanner_group\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}},{\"id\":\"HwQk4sJHSRmhHyo6KyXHWw\",\"attributes\":{\"name\":\"Example-Create_Scanning_Group_returns_OK_response_1702721006\",\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"]},\"type\":\"sensitive_data_scanner_group\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}},{\"id\":\"NChKshYdT6SvdiJE62DQgg\",\"attributes\":{\"name\":\"my-test-group\",\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"]},\"type\":\"sensitive_data_scanner_group\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}},{\"id\":\"q6h4G_icTLWHvnT9U90PfQ\",\"attributes\":{\"name\":\"my-test-group\",\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"]},\"type\":\"sensitive_data_scanner_group\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}},{\"id\":\"sOpLckMyTYW1ZXMXMeJnnQ\",\"attributes\":{\"name\":\"my-test-group\",\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"]},\"type\":\"sensitive_data_scanner_group\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}},{\"id\":\"_o1TJ7yVSoKJLD9ioIyjeQ\",\"attributes\":{\"name\":\"Example-Create_Scanning_Group_returns_OK_response_1703945006\",\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"]},\"type\":\"sensitive_data_scanner_group\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}},{\"id\":\"yWBB9T6cQwarJAo0GzrdXw\",\"attributes\":{\"name\":\"my-test-group\",\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"]},\"type\":\"sensitive_data_scanner_group\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 04 Jan 2024 13:51:06 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"my-test-group\",\"product_list\":[\"logs\"]},\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"},\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"UrKepb39S2STztB6JA5RFQ\",\"attributes\":{\"name\":\"my-test-group\",\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"]},\"type\":\"sensitive_data_scanner_group\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}},\"meta\":{\"version\":135501}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 04 Jan 2024 13:51:06 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"is_enabled\":true,\"name\":\"Test-Update_Scanning_Rule_returns_OK_response-1704376266\",\"namespaces\":[\"admin.email\"],\"pattern\":\"pattern\",\"tags\":[\"sensitive_data:true\"],\"text_replacement\":{\"type\":\"none\"}},\"relationships\":{\"group\":{\"data\":{\"id\":\"UrKepb39S2STztB6JA5RFQ\",\"type\":\"sensitive_data_scanner_group\"}}},\"type\":\"sensitive_data_scanner_rule\"},\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"G0dXCPXuSWaG3WzXKdmwdg\",\"attributes\":{\"name\":\"Test-Update_Scanning_Rule_returns_OK_response-1704376266\",\"namespaces\":[\"admin.email\"],\"excluded_namespaces\":[],\"pattern\":\"pattern\",\"text_replacement\":{\"type\":\"none\"},\"tags\":[\"sensitive_data:true\"],\"is_enabled\":true},\"type\":\"sensitive_data_scanner_rule\",\"relationships\":{\"group\":{\"data\":{\"id\":\"UrKepb39S2STztB6JA5RFQ\",\"type\":\"sensitive_data_scanner_group\"}}}},\"meta\":{\"version\":135502}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 04 Jan 2024 13:51:06 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"included_keyword_configuration\":{\"character_count\":35,\"keywords\":[\"credit card\",\"cc\"]},\"is_enabled\":true,\"name\":\"Test-Update_Scanning_Rule_returns_OK_response-1704376266\",\"pattern\":\"pattern\",\"priority\":5,\"tags\":[\"sensitive_data:true\"],\"text_replacement\":{\"type\":\"none\"}},\"id\":\"G0dXCPXuSWaG3WzXKdmwdg\",\"type\":\"sensitive_data_scanner_rule\"},\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules/G0dXCPXuSWaG3WzXKdmwdg" + }, + "response": { + "body": { + "string": "{\"meta\":{\"version\":135503}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 04 Jan 2024 13:51:06 GMT" + }, + { + "request": { + "body": { + "string": "{\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules/G0dXCPXuSWaG3WzXKdmwdg" + }, + "response": { + "body": { + "string": "{\"meta\":{\"version\":135504}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 04 Jan 2024 13:51:06 GMT" + }, + { + "request": { + "body": { + "string": "{\"meta\":{}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/UrKepb39S2STztB6JA5RFQ" + }, + "response": { + "body": { + "string": "{\"meta\":{\"version\":135505}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 04 Jan 2024 13:51:06 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/service_accounts/Create-a-service-account-returns-OK-response.json b/tests/scenarios/cassettes/v2/service_accounts/Create-a-service-account-returns-OK-response.json index 1c307a067..78a3e6d24 100644 --- a/tests/scenarios/cassettes/v2/service_accounts/Create-a-service-account-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/service_accounts/Create-a-service-account-returns-OK-response.json @@ -1 +1,125 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_a_service_account_returns_OK_response-1675090734\"},\"type\":\"roles\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/roles"}, "response": {"body": {"string": "{\"data\":{\"type\":\"roles\",\"id\":\"9d7c873e-a0ae-11ed-975e-da7ad0900002\",\"attributes\":{\"name\":\"Test-Create_a_service_account_returns_OK_response-1675090734\",\"created_at\":\"2023-01-30T14:58:54.528421+00:00\",\"modified_at\":\"2023-01-30T14:58:54.566829+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5ad874-7aff-11ed-a5cd-da7ad0900002\"}]}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 30 Jan 2023 14:58:54 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"Test-Create_a_service_account_returns_OK_response-1675090734@datadoghq.com\",\"name\":\"Test API Client\",\"service_account\":true},\"relationships\":{\"roles\":{\"data\":[{\"id\":\"9d7c873e-a0ae-11ed-975e-da7ad0900002\",\"type\":\"roles\"}]}},\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/service_accounts"}, "response": {"body": {"string": "{\"data\":{\"type\":\"users\",\"id\":\"9d9c0565-a0ae-11ed-88af-be56a8628f3f\",\"attributes\":{\"name\":\"Test API Client\",\"handle\":\"9d9c0565-a0ae-11ed-88af-be56a8628f3f\",\"created_at\":\"2023-01-30T14:58:54.736093+00:00\",\"modified_at\":\"2023-01-30T14:58:54.738680+00:00\",\"email\":\"test-create_a_service_account_returns_ok_response-1675090734@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/5bf68b66c63c55ddb80602fc2d183c28?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":true,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"roles\":{\"data\":[{\"type\":\"roles\",\"id\":\"9d7c873e-a0ae-11ed-975e-da7ad0900002\"}]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}},\"included\":[{\"type\":\"roles\",\"id\":\"9d7c873e-a0ae-11ed-975e-da7ad0900002\",\"attributes\":{\"name\":\"Test-Create_a_service_account_returns_OK_response-1675090734\",\"created_at\":\"2023-01-30T14:58:54.528421+00:00\",\"modified_at\":\"2023-01-30T14:58:54.566829+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5ad874-7aff-11ed-a5cd-da7ad0900002\"}]}}},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\",\"attributes\":{\"name\":\"dashboards_read\",\"display_name\":\"Dashboards Read\",\"description\":\"View dashboards.\",\"created\":\"2019-09-10T14:39:51.955175+00:00\",\"group_name\":\"Dashboards\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\",\"attributes\":{\"name\":\"monitors_read\",\"display_name\":\"Monitors Read\",\"description\":\"View monitors.\",\"created\":\"2019-09-16T18:39:07.744297+00:00\",\"group_name\":\"Monitors\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\",\"attributes\":{\"name\":\"apm_read\",\"display_name\":\"APM Read\",\"description\":\"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\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incident Read\",\"description\":\"View incidents in Datadog.\",\"created\":\"2021-06-22T15:11:09.255499+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_read\",\"display_name\":\"SLOs Read\",\"description\":\"View SLOs and status corrections.\",\"created\":\"2022-06-08T16:20:55.142591+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"6c5ad874-7aff-11ed-a5cd-da7ad0900002\",\"attributes\":{\"name\":\"ci_visibility_read\",\"display_name\":\"CI Visibility Read\",\"description\":\"View CI Visibility.\",\"created\":\"2022-12-13T16:01:37.149406+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"read\",\"restricted\":true}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 30 Jan 2023 14:58:54 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/users/9d9c0565-a0ae-11ed-88af-be56a8628f3f"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 30 Jan 2023 14:58:54 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/roles/9d7c873e-a0ae-11ed-975e-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 30 Jan 2023 14:58:54 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_a_service_account_returns_OK_response-1675090734\"},\"type\":\"roles\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/roles" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"roles\",\"id\":\"9d7c873e-a0ae-11ed-975e-da7ad0900002\",\"attributes\":{\"name\":\"Test-Create_a_service_account_returns_OK_response-1675090734\",\"created_at\":\"2023-01-30T14:58:54.528421+00:00\",\"modified_at\":\"2023-01-30T14:58:54.566829+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5ad874-7aff-11ed-a5cd-da7ad0900002\"}]}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 30 Jan 2023 14:58:54 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"email\":\"Test-Create_a_service_account_returns_OK_response-1675090734@datadoghq.com\",\"name\":\"Test API Client\",\"service_account\":true},\"relationships\":{\"roles\":{\"data\":[{\"id\":\"9d7c873e-a0ae-11ed-975e-da7ad0900002\",\"type\":\"roles\"}]}},\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/service_accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"users\",\"id\":\"9d9c0565-a0ae-11ed-88af-be56a8628f3f\",\"attributes\":{\"name\":\"Test API Client\",\"handle\":\"9d9c0565-a0ae-11ed-88af-be56a8628f3f\",\"created_at\":\"2023-01-30T14:58:54.736093+00:00\",\"modified_at\":\"2023-01-30T14:58:54.738680+00:00\",\"email\":\"test-create_a_service_account_returns_ok_response-1675090734@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/5bf68b66c63c55ddb80602fc2d183c28?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":true,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"roles\":{\"data\":[{\"type\":\"roles\",\"id\":\"9d7c873e-a0ae-11ed-975e-da7ad0900002\"}]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}},\"included\":[{\"type\":\"roles\",\"id\":\"9d7c873e-a0ae-11ed-975e-da7ad0900002\",\"attributes\":{\"name\":\"Test-Create_a_service_account_returns_OK_response-1675090734\",\"created_at\":\"2023-01-30T14:58:54.528421+00:00\",\"modified_at\":\"2023-01-30T14:58:54.566829+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5ad874-7aff-11ed-a5cd-da7ad0900002\"}]}}},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\",\"attributes\":{\"name\":\"dashboards_read\",\"display_name\":\"Dashboards Read\",\"description\":\"View dashboards.\",\"created\":\"2019-09-10T14:39:51.955175+00:00\",\"group_name\":\"Dashboards\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\",\"attributes\":{\"name\":\"monitors_read\",\"display_name\":\"Monitors Read\",\"description\":\"View monitors.\",\"created\":\"2019-09-16T18:39:07.744297+00:00\",\"group_name\":\"Monitors\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\",\"attributes\":{\"name\":\"apm_read\",\"display_name\":\"APM Read\",\"description\":\"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\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incident Read\",\"description\":\"View incidents in Datadog.\",\"created\":\"2021-06-22T15:11:09.255499+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_read\",\"display_name\":\"SLOs Read\",\"description\":\"View SLOs and status corrections.\",\"created\":\"2022-06-08T16:20:55.142591+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"6c5ad874-7aff-11ed-a5cd-da7ad0900002\",\"attributes\":{\"name\":\"ci_visibility_read\",\"display_name\":\"CI Visibility Read\",\"description\":\"View CI Visibility.\",\"created\":\"2022-12-13T16:01:37.149406+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"read\",\"restricted\":true}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 30 Jan 2023 14:58:54 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/users/9d9c0565-a0ae-11ed-88af-be56a8628f3f" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 30 Jan 2023 14:58:54 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/roles/9d7c873e-a0ae-11ed-975e-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 30 Jan 2023 14:58:54 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/service_accounts/Create-an-application-key-for-this-service-account-returns-Created-response.json b/tests/scenarios/cassettes/v2/service_accounts/Create-an-application-key-for-this-service-account-returns-Created-response.json index 52200d791..8cfd9af26 100644 --- a/tests/scenarios/cassettes/v2/service_accounts/Create-an-application-key-for-this-service-account-returns-Created-response.json +++ b/tests/scenarios/cassettes/v2/service_accounts/Create-an-application-key-for-this-service-account-returns-Created-response.json @@ -1 +1,125 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"Test-Create_an_application_key_for_this_service_account_returns_Created_response-1697105507@datadoghq.com\",\"service_account\":true,\"title\":\"user title\"},\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/service_accounts"}, "response": {"body": {"string": "{\"data\":{\"type\":\"users\",\"id\":\"c0ea5a28-68e7-11ee-af78-7221d1e45f66\",\"attributes\":{\"name\":null,\"handle\":\"c0ea5a28-68e7-11ee-af78-7221d1e45f66\",\"created_at\":\"2023-10-12T10:11:47.838233+00:00\",\"modified_at\":\"2023-10-12T10:11:47.838233+00:00\",\"email\":\"test-create_an_application_key_for_this_service_account_returns_created_response-1697105507@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/45057f7ed4c5662bd175fd2657bf58f2?s=48&d=retro\",\"title\":\"user title\",\"verified\":true,\"service_account\":true,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 Oct 2023 10:11:47 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_an_application_key_for_this_service_account_returns_Created_response-1697105507\"},\"type\":\"application_keys\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/service_accounts/c0ea5a28-68e7-11ee-af78-7221d1e45f66/application_keys"}, "response": {"body": {"string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"6315ab43-ce92-4130-b6d2-94ceb5f7142a\",\"attributes\":{\"name\":\"Test-Create_an_application_key_for_this_service_account_returns_Created_response-1697105507\",\"created_at\":\"2023-10-12T10:11:48.340554+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"c0ea5a28-68e7-11ee-af78-7221d1e45f66\"}},\"leak_information\":{\"data\":null}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 Oct 2023 10:11:47 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/service_accounts/c0ea5a28-68e7-11ee-af78-7221d1e45f66/application_keys/6315ab43-ce92-4130-b6d2-94ceb5f7142a"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 Oct 2023 10:11:47 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/users/c0ea5a28-68e7-11ee-af78-7221d1e45f66"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 Oct 2023 10:11:47 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"email\":\"Test-Create_an_application_key_for_this_service_account_returns_Created_response-1697105507@datadoghq.com\",\"service_account\":true,\"title\":\"user title\"},\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/service_accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"users\",\"id\":\"c0ea5a28-68e7-11ee-af78-7221d1e45f66\",\"attributes\":{\"name\":null,\"handle\":\"c0ea5a28-68e7-11ee-af78-7221d1e45f66\",\"created_at\":\"2023-10-12T10:11:47.838233+00:00\",\"modified_at\":\"2023-10-12T10:11:47.838233+00:00\",\"email\":\"test-create_an_application_key_for_this_service_account_returns_created_response-1697105507@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/45057f7ed4c5662bd175fd2657bf58f2?s=48&d=retro\",\"title\":\"user title\",\"verified\":true,\"service_account\":true,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 Oct 2023 10:11:47 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_an_application_key_for_this_service_account_returns_Created_response-1697105507\"},\"type\":\"application_keys\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/service_accounts/c0ea5a28-68e7-11ee-af78-7221d1e45f66/application_keys" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"6315ab43-ce92-4130-b6d2-94ceb5f7142a\",\"attributes\":{\"name\":\"Test-Create_an_application_key_for_this_service_account_returns_Created_response-1697105507\",\"created_at\":\"2023-10-12T10:11:48.340554+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"c0ea5a28-68e7-11ee-af78-7221d1e45f66\"}},\"leak_information\":{\"data\":null}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 Oct 2023 10:11:47 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/service_accounts/c0ea5a28-68e7-11ee-af78-7221d1e45f66/application_keys/6315ab43-ce92-4130-b6d2-94ceb5f7142a" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 Oct 2023 10:11:47 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/users/c0ea5a28-68e7-11ee-af78-7221d1e45f66" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 Oct 2023 10:11:47 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/service_accounts/Create-an-application-key-with-scopes-for-this-service-account-returns-Created-response.json b/tests/scenarios/cassettes/v2/service_accounts/Create-an-application-key-with-scopes-for-this-service-account-returns-Created-response.json index 657b5c3a9..4e880ebfb 100644 --- a/tests/scenarios/cassettes/v2/service_accounts/Create-an-application-key-with-scopes-for-this-service-account-returns-Created-response.json +++ b/tests/scenarios/cassettes/v2/service_accounts/Create-an-application-key-with-scopes-for-this-service-account-returns-Created-response.json @@ -1 +1,121 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"Test-Create_an_application_key_with_scopes_for_this_service_account_returns_Created_response-1652349200@datadoghq.com\",\"service_account\":true,\"title\":\"user title\"},\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/service_accounts"}, "response": {"body": {"string": "{\"data\":{\"type\":\"users\",\"id\":\"fbebe517-c0ed-45a9-b3c9-4377cbe04efd\",\"attributes\":{\"name\":null,\"handle\":\"fbebe517-c0ed-45a9-b3c9-4377cbe04efd\",\"created_at\":\"2022-05-12T09:53:21.271368+00:00\",\"modified_at\":\"2022-05-12T09:53:21.302672+00:00\",\"email\":\"test-create_an_application_key_with_scopes_for_this_service_account_returns_created_response-1652349200@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/cdd87aef7fe7eed9427d1e53ac7219c2?s=48&d=retro\",\"title\":\"user title\",\"verified\":true,\"service_account\":true,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:53:20 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_an_application_key_with_scopes_for_this_service_account_returns_Created_response-1652349200\",\"scopes\":[\"dashboards_read\",\"dashboards_write\",\"dashboards_public_share\"]},\"type\":\"application_keys\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/service_accounts/fbebe517-c0ed-45a9-b3c9-4377cbe04efd/application_keys"}, "response": {"body": {"string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"e01199cd-849e-4fb8-ae34-af8b6a8cd129\",\"attributes\":{\"name\":\"Test-Create_an_application_key_with_scopes_for_this_service_account_returns_Created_response-1652349200\",\"created_at\":\"2022-05-12T09:53:22.022194+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":[\"dashboards_read\",\"dashboards_write\",\"dashboards_public_share\"]},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"fbebe517-c0ed-45a9-b3c9-4377cbe04efd\"}},\"leak_information\":{\"data\":null}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:53:20 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/service_accounts/fbebe517-c0ed-45a9-b3c9-4377cbe04efd/application_keys/e01199cd-849e-4fb8-ae34-af8b6a8cd129"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:53:20 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/users/fbebe517-c0ed-45a9-b3c9-4377cbe04efd"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:53:20 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"email\":\"Test-Create_an_application_key_with_scopes_for_this_service_account_returns_Created_response-1652349200@datadoghq.com\",\"service_account\":true,\"title\":\"user title\"},\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/service_accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"users\",\"id\":\"fbebe517-c0ed-45a9-b3c9-4377cbe04efd\",\"attributes\":{\"name\":null,\"handle\":\"fbebe517-c0ed-45a9-b3c9-4377cbe04efd\",\"created_at\":\"2022-05-12T09:53:21.271368+00:00\",\"modified_at\":\"2022-05-12T09:53:21.302672+00:00\",\"email\":\"test-create_an_application_key_with_scopes_for_this_service_account_returns_created_response-1652349200@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/cdd87aef7fe7eed9427d1e53ac7219c2?s=48&d=retro\",\"title\":\"user title\",\"verified\":true,\"service_account\":true,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:20 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Create_an_application_key_with_scopes_for_this_service_account_returns_Created_response-1652349200\",\"scopes\":[\"dashboards_read\",\"dashboards_write\",\"dashboards_public_share\"]},\"type\":\"application_keys\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/service_accounts/fbebe517-c0ed-45a9-b3c9-4377cbe04efd/application_keys" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"e01199cd-849e-4fb8-ae34-af8b6a8cd129\",\"attributes\":{\"name\":\"Test-Create_an_application_key_with_scopes_for_this_service_account_returns_Created_response-1652349200\",\"created_at\":\"2022-05-12T09:53:22.022194+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":[\"dashboards_read\",\"dashboards_write\",\"dashboards_public_share\"]},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"fbebe517-c0ed-45a9-b3c9-4377cbe04efd\"}},\"leak_information\":{\"data\":null}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:20 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/service_accounts/fbebe517-c0ed-45a9-b3c9-4377cbe04efd/application_keys/e01199cd-849e-4fb8-ae34-af8b6a8cd129" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:20 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/users/fbebe517-c0ed-45a9-b3c9-4377cbe04efd" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:20 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/service_accounts/Delete-an-application-key-for-this-service-account-returns-No-Content-response.json b/tests/scenarios/cassettes/v2/service_accounts/Delete-an-application-key-for-this-service-account-returns-No-Content-response.json index 1e12ae904..f07f6632c 100644 --- a/tests/scenarios/cassettes/v2/service_accounts/Delete-an-application-key-for-this-service-account-returns-No-Content-response.json +++ b/tests/scenarios/cassettes/v2/service_accounts/Delete-an-application-key-for-this-service-account-returns-No-Content-response.json @@ -1 +1,153 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"Test-Delete_an_application_key_for_this_service_account_returns_No_Content_response-1697094741@datadoghq.com\",\"service_account\":true,\"title\":\"user title\"},\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/service_accounts"}, "response": {"body": {"string": "{\"data\":{\"type\":\"users\",\"id\":\"b0338c3c-68ce-11ee-9dc7-02a9eb8880d8\",\"attributes\":{\"name\":null,\"handle\":\"b0338c3c-68ce-11ee-9dc7-02a9eb8880d8\",\"created_at\":\"2023-10-12T07:12:22.378427+00:00\",\"modified_at\":\"2023-10-12T07:12:22.378427+00:00\",\"email\":\"test-delete_an_application_key_for_this_service_account_returns_no_content_response-1697094741@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/ed84f324d81c653aae4b87a2eb517a97?s=48&d=retro\",\"title\":\"user title\",\"verified\":true,\"service_account\":true,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 Oct 2023 07:12:21 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Delete_an_application_key_for_this_service_account_returns_No_Content_response-1697094741\"},\"type\":\"application_keys\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/service_accounts/b0338c3c-68ce-11ee-9dc7-02a9eb8880d8/application_keys"}, "response": {"body": {"string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"6a147414-e85c-4b92-829b-fff59f8bd8e0\",\"attributes\":{\"name\":\"Test-Delete_an_application_key_for_this_service_account_returns_No_Content_response-1697094741\",\"created_at\":\"2023-10-12T07:12:22.935154+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"b0338c3c-68ce-11ee-9dc7-02a9eb8880d8\"}},\"leak_information\":{\"data\":null}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 Oct 2023 07:12:21 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/service_accounts/b0338c3c-68ce-11ee-9dc7-02a9eb8880d8/application_keys/6a147414-e85c-4b92-829b-fff59f8bd8e0"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 Oct 2023 07:12:21 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/service_accounts/b0338c3c-68ce-11ee-9dc7-02a9eb8880d8/application_keys/6a147414-e85c-4b92-829b-fff59f8bd8e0"}, "response": {"body": {"string": "{\"errors\":[\"Application key not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 12 Oct 2023 07:12:21 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/users/b0338c3c-68ce-11ee-9dc7-02a9eb8880d8"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 Oct 2023 07:12:21 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"email\":\"Test-Delete_an_application_key_for_this_service_account_returns_No_Content_response-1697094741@datadoghq.com\",\"service_account\":true,\"title\":\"user title\"},\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/service_accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"users\",\"id\":\"b0338c3c-68ce-11ee-9dc7-02a9eb8880d8\",\"attributes\":{\"name\":null,\"handle\":\"b0338c3c-68ce-11ee-9dc7-02a9eb8880d8\",\"created_at\":\"2023-10-12T07:12:22.378427+00:00\",\"modified_at\":\"2023-10-12T07:12:22.378427+00:00\",\"email\":\"test-delete_an_application_key_for_this_service_account_returns_no_content_response-1697094741@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/ed84f324d81c653aae4b87a2eb517a97?s=48&d=retro\",\"title\":\"user title\",\"verified\":true,\"service_account\":true,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 Oct 2023 07:12:21 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Delete_an_application_key_for_this_service_account_returns_No_Content_response-1697094741\"},\"type\":\"application_keys\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/service_accounts/b0338c3c-68ce-11ee-9dc7-02a9eb8880d8/application_keys" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"6a147414-e85c-4b92-829b-fff59f8bd8e0\",\"attributes\":{\"name\":\"Test-Delete_an_application_key_for_this_service_account_returns_No_Content_response-1697094741\",\"created_at\":\"2023-10-12T07:12:22.935154+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"b0338c3c-68ce-11ee-9dc7-02a9eb8880d8\"}},\"leak_information\":{\"data\":null}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 Oct 2023 07:12:21 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/service_accounts/b0338c3c-68ce-11ee-9dc7-02a9eb8880d8/application_keys/6a147414-e85c-4b92-829b-fff59f8bd8e0" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 Oct 2023 07:12:21 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/service_accounts/b0338c3c-68ce-11ee-9dc7-02a9eb8880d8/application_keys/6a147414-e85c-4b92-829b-fff59f8bd8e0" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Application key not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 12 Oct 2023 07:12:21 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/users/b0338c3c-68ce-11ee-9dc7-02a9eb8880d8" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 Oct 2023 07:12:21 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/service_accounts/Edit-an-application-key-for-this-service-account-returns-OK-response.json b/tests/scenarios/cassettes/v2/service_accounts/Edit-an-application-key-for-this-service-account-returns-OK-response.json index 7716bebf2..4a34b13e0 100644 --- a/tests/scenarios/cassettes/v2/service_accounts/Edit-an-application-key-for-this-service-account-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/service_accounts/Edit-an-application-key-for-this-service-account-returns-OK-response.json @@ -1 +1,159 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"Test-Edit_an_application_key_for_this_service_account_returns_OK_response-1697105458@datadoghq.com\",\"service_account\":true,\"title\":\"user title\"},\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/service_accounts"}, "response": {"body": {"string": "{\"data\":{\"type\":\"users\",\"id\":\"a3b86b00-68e7-11ee-b081-e2f0333fd1ce\",\"attributes\":{\"name\":null,\"handle\":\"a3b86b00-68e7-11ee-b081-e2f0333fd1ce\",\"created_at\":\"2023-10-12T10:10:58.857066+00:00\",\"modified_at\":\"2023-10-12T10:10:58.857066+00:00\",\"email\":\"test-edit_an_application_key_for_this_service_account_returns_ok_response-1697105458@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/00878614ca2acb0d68087ee17a33e3f4?s=48&d=retro\",\"title\":\"user title\",\"verified\":true,\"service_account\":true,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 Oct 2023 10:10:58 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Edit_an_application_key_for_this_service_account_returns_OK_response-1697105458\"},\"type\":\"application_keys\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/service_accounts/a3b86b00-68e7-11ee-b081-e2f0333fd1ce/application_keys"}, "response": {"body": {"string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"8dca4456-bd90-4cb4-a182-5868501d8a9b\",\"attributes\":{\"name\":\"Test-Edit_an_application_key_for_this_service_account_returns_OK_response-1697105458\",\"created_at\":\"2023-10-12T10:10:59.392476+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"a3b86b00-68e7-11ee-b081-e2f0333fd1ce\"}},\"leak_information\":{\"data\":null}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 Oct 2023 10:10:58 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Edit_an_application_key_for_this_service_account_returns_OK_response-1697105458-updated\"},\"id\":\"8dca4456-bd90-4cb4-a182-5868501d8a9b\",\"type\":\"application_keys\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/service_accounts/a3b86b00-68e7-11ee-b081-e2f0333fd1ce/application_keys/8dca4456-bd90-4cb4-a182-5868501d8a9b"}, "response": {"body": {"string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"8dca4456-bd90-4cb4-a182-5868501d8a9b\",\"attributes\":{\"name\":\"Test-Edit_an_application_key_for_this_service_account_returns_OK_response-1697105458-updated\",\"created_at\":\"2023-10-12T10:10:59.392477+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"leak_information\":{\"data\":null}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 Oct 2023 10:10:58 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/service_accounts/a3b86b00-68e7-11ee-b081-e2f0333fd1ce/application_keys/8dca4456-bd90-4cb4-a182-5868501d8a9b"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 Oct 2023 10:10:58 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/users/a3b86b00-68e7-11ee-b081-e2f0333fd1ce"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 Oct 2023 10:10:58 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"email\":\"Test-Edit_an_application_key_for_this_service_account_returns_OK_response-1697105458@datadoghq.com\",\"service_account\":true,\"title\":\"user title\"},\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/service_accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"users\",\"id\":\"a3b86b00-68e7-11ee-b081-e2f0333fd1ce\",\"attributes\":{\"name\":null,\"handle\":\"a3b86b00-68e7-11ee-b081-e2f0333fd1ce\",\"created_at\":\"2023-10-12T10:10:58.857066+00:00\",\"modified_at\":\"2023-10-12T10:10:58.857066+00:00\",\"email\":\"test-edit_an_application_key_for_this_service_account_returns_ok_response-1697105458@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/00878614ca2acb0d68087ee17a33e3f4?s=48&d=retro\",\"title\":\"user title\",\"verified\":true,\"service_account\":true,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 Oct 2023 10:10:58 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Edit_an_application_key_for_this_service_account_returns_OK_response-1697105458\"},\"type\":\"application_keys\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/service_accounts/a3b86b00-68e7-11ee-b081-e2f0333fd1ce/application_keys" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"8dca4456-bd90-4cb4-a182-5868501d8a9b\",\"attributes\":{\"name\":\"Test-Edit_an_application_key_for_this_service_account_returns_OK_response-1697105458\",\"created_at\":\"2023-10-12T10:10:59.392476+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"a3b86b00-68e7-11ee-b081-e2f0333fd1ce\"}},\"leak_information\":{\"data\":null}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 Oct 2023 10:10:58 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Edit_an_application_key_for_this_service_account_returns_OK_response-1697105458-updated\"},\"id\":\"8dca4456-bd90-4cb4-a182-5868501d8a9b\",\"type\":\"application_keys\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/service_accounts/a3b86b00-68e7-11ee-b081-e2f0333fd1ce/application_keys/8dca4456-bd90-4cb4-a182-5868501d8a9b" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"8dca4456-bd90-4cb4-a182-5868501d8a9b\",\"attributes\":{\"name\":\"Test-Edit_an_application_key_for_this_service_account_returns_OK_response-1697105458-updated\",\"created_at\":\"2023-10-12T10:10:59.392477+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"leak_information\":{\"data\":null}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 Oct 2023 10:10:58 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/service_accounts/a3b86b00-68e7-11ee-b081-e2f0333fd1ce/application_keys/8dca4456-bd90-4cb4-a182-5868501d8a9b" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 Oct 2023 10:10:58 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/users/a3b86b00-68e7-11ee-b081-e2f0333fd1ce" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 Oct 2023 10:10:58 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/service_accounts/Get-one-application-key-for-this-service-account-returns-OK-response.json b/tests/scenarios/cassettes/v2/service_accounts/Get-one-application-key-for-this-service-account-returns-OK-response.json index a1666b57e..3c2450817 100644 --- a/tests/scenarios/cassettes/v2/service_accounts/Get-one-application-key-for-this-service-account-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/service_accounts/Get-one-application-key-for-this-service-account-returns-OK-response.json @@ -1 +1,153 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"Test-Get_one_application_key_for_this_service_account_returns_OK_response-1697095113@datadoghq.com\",\"service_account\":true,\"title\":\"user title\"},\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/service_accounts"}, "response": {"body": {"string": "{\"data\":{\"type\":\"users\",\"id\":\"8d6f1427-68cf-11ee-b38b-b697d9f51e5c\",\"attributes\":{\"name\":null,\"handle\":\"8d6f1427-68cf-11ee-b38b-b697d9f51e5c\",\"created_at\":\"2023-10-12T07:18:33.545035+00:00\",\"modified_at\":\"2023-10-12T07:18:33.545035+00:00\",\"email\":\"test-get_one_application_key_for_this_service_account_returns_ok_response-1697095113@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/675597cb6c88dc2642385e567f57b727?s=48&d=retro\",\"title\":\"user title\",\"verified\":true,\"service_account\":true,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 Oct 2023 07:18:33 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"name\":\"Test-Get_one_application_key_for_this_service_account_returns_OK_response-1697095113\"},\"type\":\"application_keys\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/service_accounts/8d6f1427-68cf-11ee-b38b-b697d9f51e5c/application_keys"}, "response": {"body": {"string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"490b7601-a457-449c-8d8c-72c848e669d5\",\"attributes\":{\"name\":\"Test-Get_one_application_key_for_this_service_account_returns_OK_response-1697095113\",\"created_at\":\"2023-10-12T07:18:34.052468+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"8d6f1427-68cf-11ee-b38b-b697d9f51e5c\"}},\"leak_information\":{\"data\":null}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 Oct 2023 07:18:33 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/service_accounts/8d6f1427-68cf-11ee-b38b-b697d9f51e5c/application_keys/490b7601-a457-449c-8d8c-72c848e669d5"}, "response": {"body": {"string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"490b7601-a457-449c-8d8c-72c848e669d5\",\"attributes\":{\"name\":\"Test-Get_one_application_key_for_this_service_account_returns_OK_response-1697095113\",\"created_at\":\"2023-10-12T07:18:34.052468+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"leak_information\":{\"data\":null}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 Oct 2023 07:18:33 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/service_accounts/8d6f1427-68cf-11ee-b38b-b697d9f51e5c/application_keys/490b7601-a457-449c-8d8c-72c848e669d5"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 Oct 2023 07:18:33 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/users/8d6f1427-68cf-11ee-b38b-b697d9f51e5c"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 Oct 2023 07:18:33 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"email\":\"Test-Get_one_application_key_for_this_service_account_returns_OK_response-1697095113@datadoghq.com\",\"service_account\":true,\"title\":\"user title\"},\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/service_accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"users\",\"id\":\"8d6f1427-68cf-11ee-b38b-b697d9f51e5c\",\"attributes\":{\"name\":null,\"handle\":\"8d6f1427-68cf-11ee-b38b-b697d9f51e5c\",\"created_at\":\"2023-10-12T07:18:33.545035+00:00\",\"modified_at\":\"2023-10-12T07:18:33.545035+00:00\",\"email\":\"test-get_one_application_key_for_this_service_account_returns_ok_response-1697095113@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/675597cb6c88dc2642385e567f57b727?s=48&d=retro\",\"title\":\"user title\",\"verified\":true,\"service_account\":true,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 Oct 2023 07:18:33 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"name\":\"Test-Get_one_application_key_for_this_service_account_returns_OK_response-1697095113\"},\"type\":\"application_keys\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/service_accounts/8d6f1427-68cf-11ee-b38b-b697d9f51e5c/application_keys" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"490b7601-a457-449c-8d8c-72c848e669d5\",\"attributes\":{\"name\":\"Test-Get_one_application_key_for_this_service_account_returns_OK_response-1697095113\",\"created_at\":\"2023-10-12T07:18:34.052468+00:00\",\"last4\":\"xxxx\",\"key\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"scopes\":null},\"relationships\":{\"owned_by\":{\"data\":{\"type\":\"users\",\"id\":\"8d6f1427-68cf-11ee-b38b-b697d9f51e5c\"}},\"leak_information\":{\"data\":null}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 Oct 2023 07:18:33 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/service_accounts/8d6f1427-68cf-11ee-b38b-b697d9f51e5c/application_keys/490b7601-a457-449c-8d8c-72c848e669d5" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"application_keys\",\"id\":\"490b7601-a457-449c-8d8c-72c848e669d5\",\"attributes\":{\"name\":\"Test-Get_one_application_key_for_this_service_account_returns_OK_response-1697095113\",\"created_at\":\"2023-10-12T07:18:34.052468+00:00\",\"last4\":\"xxxx\",\"scopes\":null},\"relationships\":{\"leak_information\":{\"data\":null}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 Oct 2023 07:18:33 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/service_accounts/8d6f1427-68cf-11ee-b38b-b697d9f51e5c/application_keys/490b7601-a457-449c-8d8c-72c848e669d5" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 Oct 2023 07:18:33 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/users/8d6f1427-68cf-11ee-b38b-b697d9f51e5c" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 Oct 2023 07:18:33 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/service_accounts/List-application-keys-for-this-service-account-returns-OK-response.json b/tests/scenarios/cassettes/v2/service_accounts/List-application-keys-for-this-service-account-returns-OK-response.json index 8178e4007..d0b519715 100644 --- a/tests/scenarios/cassettes/v2/service_accounts/List-application-keys-for-this-service-account-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/service_accounts/List-application-keys-for-this-service-account-returns-OK-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"Test-List_application_keys_for_this_service_account_returns_OK_response-1697105538@datadoghq.com\",\"service_account\":true,\"title\":\"user title\"},\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/service_accounts"}, "response": {"body": {"string": "{\"data\":{\"type\":\"users\",\"id\":\"d3bd8ebd-68e7-11ee-8628-2e5a5b6c83f3\",\"attributes\":{\"name\":null,\"handle\":\"d3bd8ebd-68e7-11ee-8628-2e5a5b6c83f3\",\"created_at\":\"2023-10-12T10:12:19.421394+00:00\",\"modified_at\":\"2023-10-12T10:12:19.421394+00:00\",\"email\":\"test-list_application_keys_for_this_service_account_returns_ok_response-1697105538@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/79fd260ec49c01b5dde9172579034626?s=48&d=retro\",\"title\":\"user title\",\"verified\":true,\"service_account\":true,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 Oct 2023 10:12:18 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/service_accounts/d3bd8ebd-68e7-11ee-8628-2e5a5b6c83f3/application_keys"}, "response": {"body": {"string": "{\"data\":[],\"meta\":{\"page\":{\"total_filtered_count\":0},\"max_allowed_per_user\":1000}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 Oct 2023 10:12:18 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/users/d3bd8ebd-68e7-11ee-8628-2e5a5b6c83f3"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 Oct 2023 10:12:18 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"email\":\"Test-List_application_keys_for_this_service_account_returns_OK_response-1697105538@datadoghq.com\",\"service_account\":true,\"title\":\"user title\"},\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/service_accounts" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"users\",\"id\":\"d3bd8ebd-68e7-11ee-8628-2e5a5b6c83f3\",\"attributes\":{\"name\":null,\"handle\":\"d3bd8ebd-68e7-11ee-8628-2e5a5b6c83f3\",\"created_at\":\"2023-10-12T10:12:19.421394+00:00\",\"modified_at\":\"2023-10-12T10:12:19.421394+00:00\",\"email\":\"test-list_application_keys_for_this_service_account_returns_ok_response-1697105538@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/79fd260ec49c01b5dde9172579034626?s=48&d=retro\",\"title\":\"user title\",\"verified\":true,\"service_account\":true,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 Oct 2023 10:12:18 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/service_accounts/d3bd8ebd-68e7-11ee-8628-2e5a5b6c83f3/application_keys" + }, + "response": { + "body": { + "string": "{\"data\":[],\"meta\":{\"page\":{\"total_filtered_count\":0},\"max_allowed_per_user\":1000}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 Oct 2023 10:12:18 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/users/d3bd8ebd-68e7-11ee-8628-2e5a5b6c83f3" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 Oct 2023 10:12:18 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/service_definition/Create-or-update-service-definition-returns-CREATED-response.json b/tests/scenarios/cassettes/v2/service_definition/Create-or-update-service-definition-returns-CREATED-response.json index 185a200b5..9800c861d 100644 --- a/tests/scenarios/cassettes/v2/service_definition/Create-or-update-service-definition-returns-CREATED-response.json +++ b/tests/scenarios/cassettes/v2/service_definition/Create-or-update-service-definition-returns-CREATED-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"contacts\":[{\"contact\":\"contact@datadoghq.com\",\"name\":\"Team Email\",\"type\":\"email\"}],\"dd-service\":\"service-testcreateorupdateservicedefinitionreturnscreatedresponse1679681183\",\"dd-team\":\"my-team\",\"docs\":[{\"name\":\"Architecture\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"extensions\":{\"myorgextension\":\"extensionvalue\"},\"integrations\":{\"opsgenie\":{\"region\":\"US\",\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\"},\"pagerduty\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"}],\"repos\":[{\"name\":\"Source Code\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"schema-version\":\"v2\",\"tags\":[\"my:tag\",\"service:tag\"],\"team\":\"my-team\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/services/definitions"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"service-definition\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-03-24T18:06:24.041193351Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2\",\"dd-service\":\"service-testcreateorupdateservicedefinitionreturnscreatedresponse1679681183\",\"dd-team\":\"my-team\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"}],\"repos\":[{\"name\":\"Source Code\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"docs\":[{\"name\":\"Architecture\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":\"https://my-org.pagerduty.com/service-directory/PMyService\",\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 24 Mar 2023 18:06:23 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/services/definitions/service-testcreateorupdateservicedefinitionreturnscreatedresponse1679681183"}, "response": {"body": {"string": "{\"errors\":[\"Not Found\"],\"error_details\":[{}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Fri, 24 Mar 2023 18:06:23 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"contacts\":[{\"contact\":\"contact@datadoghq.com\",\"name\":\"Team Email\",\"type\":\"email\"}],\"dd-service\":\"service-testcreateorupdateservicedefinitionreturnscreatedresponse1679681183\",\"dd-team\":\"my-team\",\"docs\":[{\"name\":\"Architecture\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"extensions\":{\"myorgextension\":\"extensionvalue\"},\"integrations\":{\"opsgenie\":{\"region\":\"US\",\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\"},\"pagerduty\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"}],\"repos\":[{\"name\":\"Source Code\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"schema-version\":\"v2\",\"tags\":[\"my:tag\",\"service:tag\"],\"team\":\"my-team\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/services/definitions" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"service-definition\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-03-24T18:06:24.041193351Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2\",\"dd-service\":\"service-testcreateorupdateservicedefinitionreturnscreatedresponse1679681183\",\"dd-team\":\"my-team\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"}],\"repos\":[{\"name\":\"Source Code\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"docs\":[{\"name\":\"Architecture\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":\"https://my-org.pagerduty.com/service-directory/PMyService\",\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 24 Mar 2023 18:06:23 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/services/definitions/service-testcreateorupdateservicedefinitionreturnscreatedresponse1679681183" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Not Found\"],\"error_details\":[{}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Fri, 24 Mar 2023 18:06:23 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/service_definition/Create-or-update-service-definition-using-schema-v2-1-returns-CREATED-response.json b/tests/scenarios/cassettes/v2/service_definition/Create-or-update-service-definition-using-schema-v2-1-returns-CREATED-response.json index 04e6a3acb..dad9ad7e6 100644 --- a/tests/scenarios/cassettes/v2/service_definition/Create-or-update-service-definition-using-schema-v2-1-returns-CREATED-response.json +++ b/tests/scenarios/cassettes/v2/service_definition/Create-or-update-service-definition-using-schema-v2-1-returns-CREATED-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"contacts\":[{\"contact\":\"contact@datadoghq.com\",\"name\":\"Team Email\",\"type\":\"email\"}],\"dd-service\":\"service-testcreateorupdateservicedefinitionusingschemav21returnscreatedresponse1680112296\",\"extensions\":{\"myorgextension\":\"extensionvalue\"},\"integrations\":{\"opsgenie\":{\"region\":\"US\",\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\"},\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"}},\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"provider\":\"GitHub\",\"type\":\"repo\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"provider\":\"Gigoogle drivetHub\",\"type\":\"doc\",\"url\":\"https://my-runbook\"}],\"schema-version\":\"v2.1\",\"tags\":[\"my:tag\",\"service:tag\"],\"team\":\"my-team\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/services/definitions"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"service-definition\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-03-29T17:51:36.683797279Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testcreateorupdateservicedefinitionusingschemav21returnscreatedresponse1680112296\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 29 Mar 2023 17:51:36 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/services/definitions/service-testcreateorupdateservicedefinitionusingschemav21returnscreatedresponse1680112296"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 29 Mar 2023 17:51:36 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"contacts\":[{\"contact\":\"contact@datadoghq.com\",\"name\":\"Team Email\",\"type\":\"email\"}],\"dd-service\":\"service-testcreateorupdateservicedefinitionusingschemav21returnscreatedresponse1680112296\",\"extensions\":{\"myorgextension\":\"extensionvalue\"},\"integrations\":{\"opsgenie\":{\"region\":\"US\",\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\"},\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"}},\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"provider\":\"GitHub\",\"type\":\"repo\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"provider\":\"Gigoogle drivetHub\",\"type\":\"doc\",\"url\":\"https://my-runbook\"}],\"schema-version\":\"v2.1\",\"tags\":[\"my:tag\",\"service:tag\"],\"team\":\"my-team\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/services/definitions" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"service-definition\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-03-29T17:51:36.683797279Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testcreateorupdateservicedefinitionusingschemav21returnscreatedresponse1680112296\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 29 Mar 2023 17:51:36 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/services/definitions/service-testcreateorupdateservicedefinitionusingschemav21returnscreatedresponse1680112296" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 29 Mar 2023 17:51:36 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/service_definition/Create-or-update-service-definition-using-schema-v2-2-returns-CREATED-response.json b/tests/scenarios/cassettes/v2/service_definition/Create-or-update-service-definition-using-schema-v2-2-returns-CREATED-response.json index fa239d77d..1b9a34e61 100644 --- a/tests/scenarios/cassettes/v2/service_definition/Create-or-update-service-definition-using-schema-v2-2-returns-CREATED-response.json +++ b/tests/scenarios/cassettes/v2/service_definition/Create-or-update-service-definition-using-schema-v2-2-returns-CREATED-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"contacts\":[{\"contact\":\"contact@datadoghq.com\",\"name\":\"Team Email\",\"type\":\"email\"}],\"dd-service\":\"service-testcreateorupdateservicedefinitionusingschemav22returnscreatedresponse1696617871\",\"extensions\":{\"myorgextension\":\"extensionvalue\"},\"integrations\":{\"opsgenie\":{\"region\":\"US\",\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\"},\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"}},\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"provider\":\"GitHub\",\"type\":\"repo\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"provider\":\"Gigoogle drivetHub\",\"type\":\"doc\",\"url\":\"https://my-runbook\"}],\"schema-version\":\"v2.2\",\"tags\":[\"my:tag\",\"service:tag\"],\"team\":\"my-team\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/services/definitions"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"service-definition\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-10-06T18:44:32.076834625Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.2\"},\"schema\":{\"schema-version\":\"v2.2\",\"dd-service\":\"service-testcreateorupdateservicedefinitionusingschemav22returnscreatedresponse1696617871\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 06 Oct 2023 18:44:31 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/services/definitions/service-testcreateorupdateservicedefinitionusingschemav22returnscreatedresponse1696617871"}, "response": {"body": {"string": "{\"errors\":[\"Not Found\"],\"error_details\":[{}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Fri, 06 Oct 2023 18:44:31 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"contacts\":[{\"contact\":\"contact@datadoghq.com\",\"name\":\"Team Email\",\"type\":\"email\"}],\"dd-service\":\"service-testcreateorupdateservicedefinitionusingschemav22returnscreatedresponse1696617871\",\"extensions\":{\"myorgextension\":\"extensionvalue\"},\"integrations\":{\"opsgenie\":{\"region\":\"US\",\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\"},\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"}},\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"provider\":\"GitHub\",\"type\":\"repo\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"provider\":\"Gigoogle drivetHub\",\"type\":\"doc\",\"url\":\"https://my-runbook\"}],\"schema-version\":\"v2.2\",\"tags\":[\"my:tag\",\"service:tag\"],\"team\":\"my-team\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/services/definitions" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"service-definition\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-10-06T18:44:32.076834625Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.2\"},\"schema\":{\"schema-version\":\"v2.2\",\"dd-service\":\"service-testcreateorupdateservicedefinitionusingschemav22returnscreatedresponse1696617871\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 06 Oct 2023 18:44:31 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/services/definitions/service-testcreateorupdateservicedefinitionusingschemav22returnscreatedresponse1696617871" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Not Found\"],\"error_details\":[{}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Fri, 06 Oct 2023 18:44:31 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/service_definition/Create-or-update-service-definition-using-schema-v2-returns-CREATED-response.json b/tests/scenarios/cassettes/v2/service_definition/Create-or-update-service-definition-using-schema-v2-returns-CREATED-response.json index 0ba976a62..a8e9a7964 100644 --- a/tests/scenarios/cassettes/v2/service_definition/Create-or-update-service-definition-using-schema-v2-returns-CREATED-response.json +++ b/tests/scenarios/cassettes/v2/service_definition/Create-or-update-service-definition-using-schema-v2-returns-CREATED-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"contacts\":[{\"contact\":\"contact@datadoghq.com\",\"name\":\"Team Email\",\"type\":\"email\"}],\"dd-service\":\"service-testcreateorupdateservicedefinitionusingschemav2returnscreatedresponse1679685711\",\"dd-team\":\"my-team\",\"docs\":[{\"name\":\"Architecture\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"extensions\":{\"myorgextension\":\"extensionvalue\"},\"integrations\":{\"opsgenie\":{\"region\":\"US\",\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\"},\"pagerduty\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"}],\"repos\":[{\"name\":\"Source Code\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"schema-version\":\"v2\",\"tags\":[\"my:tag\",\"service:tag\"],\"team\":\"my-team\"}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/services/definitions"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"service-definition\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-03-24T19:21:52.44477064Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2\",\"dd-service\":\"service-testcreateorupdateservicedefinitionusingschemav2returnscreatedresponse1679685711\",\"dd-team\":\"my-team\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"}],\"repos\":[{\"name\":\"Source Code\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"docs\":[{\"name\":\"Architecture\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":\"https://my-org.pagerduty.com/service-directory/PMyService\",\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 24 Mar 2023 19:21:51 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/services/definitions/service-testcreateorupdateservicedefinitionusingschemav2returnscreatedresponse1679685711"}, "response": {"body": {"string": "{\"errors\":[\"Not Found\"],\"error_details\":[{}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Fri, 24 Mar 2023 19:21:51 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"contacts\":[{\"contact\":\"contact@datadoghq.com\",\"name\":\"Team Email\",\"type\":\"email\"}],\"dd-service\":\"service-testcreateorupdateservicedefinitionusingschemav2returnscreatedresponse1679685711\",\"dd-team\":\"my-team\",\"docs\":[{\"name\":\"Architecture\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"extensions\":{\"myorgextension\":\"extensionvalue\"},\"integrations\":{\"opsgenie\":{\"region\":\"US\",\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\"},\"pagerduty\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"}],\"repos\":[{\"name\":\"Source Code\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"schema-version\":\"v2\",\"tags\":[\"my:tag\",\"service:tag\"],\"team\":\"my-team\"}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/services/definitions" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"service-definition\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-03-24T19:21:52.44477064Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2\",\"dd-service\":\"service-testcreateorupdateservicedefinitionusingschemav2returnscreatedresponse1679685711\",\"dd-team\":\"my-team\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"}],\"repos\":[{\"name\":\"Source Code\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"docs\":[{\"name\":\"Architecture\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":\"https://my-org.pagerduty.com/service-directory/PMyService\",\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 24 Mar 2023 19:21:51 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/services/definitions/service-testcreateorupdateservicedefinitionusingschemav2returnscreatedresponse1679685711" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Not Found\"],\"error_details\":[{}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Fri, 24 Mar 2023 19:21:51 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/service_definition/Delete-a-single-service-definition-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/service_definition/Delete-a-single-service-definition-returns-Not-Found-response.json index 8a5229971..8367dacf5 100644 --- a/tests/scenarios/cassettes/v2/service_definition/Delete-a-single-service-definition-returns-Not-Found-response.json +++ b/tests/scenarios/cassettes/v2/service_definition/Delete-a-single-service-definition-returns-Not-Found-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/services/definitions/not-a-service"}, "response": {"body": {"string": "{\"errors\":[\"Not Found\"],\"error_details\":[{}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Mon, 10 Oct 2022 10:17:50 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/services/definitions/not-a-service" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Not Found\"],\"error_details\":[{}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Mon, 10 Oct 2022 10:17:50 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/service_definition/Delete-a-single-service-definition-returns-OK-response.json b/tests/scenarios/cassettes/v2/service_definition/Delete-a-single-service-definition-returns-OK-response.json index 3908300dd..2efa5a8f1 100644 --- a/tests/scenarios/cassettes/v2/service_definition/Delete-a-single-service-definition-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/service_definition/Delete-a-single-service-definition-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/services/definitions/service-definition-test"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 14 Nov 2022 18:19:52 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/services/definitions/service-definition-test" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 14 Nov 2022 18:19:52 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/service_definition/Get-a-single-service-definition-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/service_definition/Get-a-single-service-definition-returns-Not-Found-response.json index 337375d4b..0e62f69f3 100644 --- a/tests/scenarios/cassettes/v2/service_definition/Get-a-single-service-definition-returns-Not-Found-response.json +++ b/tests/scenarios/cassettes/v2/service_definition/Get-a-single-service-definition-returns-Not-Found-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/services/definitions/not-a-service"}, "response": {"body": {"string": "{\"errors\":[\"Not Found\"],\"error_details\":[{}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Mon, 10 Oct 2022 10:18:53 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/services/definitions/not-a-service" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Not Found\"],\"error_details\":[{}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Mon, 10 Oct 2022 10:18:53 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/service_definition/Get-a-single-service-definition-returns-OK-response.json b/tests/scenarios/cassettes/v2/service_definition/Get-a-single-service-definition-returns-OK-response.json index 51567baf9..45f662c6a 100644 --- a/tests/scenarios/cassettes/v2/service_definition/Get-a-single-service-definition-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/service_definition/Get-a-single-service-definition-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/services/definitions/service-definition-test?schema_version=v2.1"}, "response": {"body": {"string": "{\"data\":{\"type\":\"service-definition\",\"id\":\"77ae46b484fcfd92dc568170b1c534fe\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-18T16:19:17Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-definition-test\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 11 May 2023 21:16:09 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/services/definitions/service-definition-test?schema_version=v2.1" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"service-definition\",\"id\":\"77ae46b484fcfd92dc568170b1c534fe\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-18T16:19:17Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-definition-test\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 11 May 2023 21:16:09 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/service_definition/Get-all-service-definitions-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v2/service_definition/Get-all-service-definitions-returns-OK-response-with-pagination.json index 231639e8e..9bb582040 100644 --- a/tests/scenarios/cassettes/v2/service_definition/Get-all-service-definitions-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v2/service_definition/Get-all-service-definitions-returns-OK-response-with-pagination.json @@ -1 +1,61 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/services/definitions?page%5Bsize%5D=2"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"service-definition\",\"id\":\"000c4db9ae43787066748b39ad1c3059\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-03T20:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1680553380\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"000c83c634df871f80ecbb47fa6b8bcc\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2022-11-17T02:44:15Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2\",\"dd-service\":\"service-test-ruby-create_or_update_service_definition_returns_created_response-1668653055\",\"dd-team\":\"my-team\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"}],\"repos\":[{\"name\":\"Source Code\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"docs\":[{\"name\":\"Architecture\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":\"https://my-org.pagerduty.com/service-directory/PMyService\",\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 05 Apr 2023 09:45:34 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/services/definitions?page%5Bsize%5D=2&page%5Bnumber%5D=2"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"service-definition\",\"id\":\"0059bcab67b74e99cc832ca503019574\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-03-02T12:21:20Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[{\"keyword-location\":\"/properties/contacts/items/$ref/allOf/1/then/properties/contact/pattern\",\"instance-location\":\"/contacts/0/contact\",\"message\":\"does not match pattern 'https://[a-zA-Z0-9_\\\\\\\\-]+.slack\\\\\\\\.com/archives/[a-zA-Z0-9_\\\\\\\\-]+'\"},{\"keyword-location\":\"/properties/contacts/items/$ref/allOf/0/then/properties/contact/format\",\"instance-location\":\"/contacts/1/contact\",\"message\":\"'BBB' is not valid 'email'\"},{\"keyword-location\":\"/properties/contacts/items/$ref/allOf/0/then/properties/contact/format\",\"instance-location\":\"/contacts/2/contact\",\"message\":\"'AAA' is not valid 'email'\"},{\"keyword-location\":\"/properties/contacts/items/$ref/allOf/0/then/properties/contact/format\",\"instance-location\":\"/contacts/3/contact\",\"message\":\"'AAA' is not valid 'email'\"},{\"keyword-location\":\"/properties/contacts/items/$ref/allOf/0/then/properties/contact/format\",\"instance-location\":\"/contacts/4/contact\",\"message\":\"'BBB' is not valid 'email'\"}],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2\",\"dd-service\":\"tf-testaccdatadogservicedefinition_order-local-1677759678\",\"team\":\"\",\"contacts\":[{\"name\":\"AA\",\"type\":\"email\",\"contact\":\"AAA\"},{\"name\":\"AA\",\"type\":\"slack\",\"contact\":\"AAA\"},{\"name\":\"BB\",\"type\":\"email\",\"contact\":\"AAA\"},{\"name\":\"AA\",\"type\":\"email\",\"contact\":\"BBB\"},{\"name\":\"BB\",\"type\":\"email\",\"contact\":\"BBB\"}],\"links\":[],\"repos\":[],\"docs\":[],\"tags\":[\"aaa\",\"bbb\"],\"integrations\":{},\"extensions\":{}}}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 05 Apr 2023 09:45:34 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/services/definitions?page%5Bsize%5D=2&page%5Bnumber%5D=0" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"service-definition\",\"id\":\"000c4db9ae43787066748b39ad1c3059\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-03T20:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1680553380\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"000c83c634df871f80ecbb47fa6b8bcc\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2022-11-17T02:44:15Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2\",\"dd-service\":\"service-test-ruby-create_or_update_service_definition_returns_created_response-1668653055\",\"dd-team\":\"my-team\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"}],\"repos\":[{\"name\":\"Source Code\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"docs\":[{\"name\":\"Architecture\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":\"https://my-org.pagerduty.com/service-directory/PMyService\",\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 05 Apr 2023 09:45:34 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/services/definitions?page%5Bsize%5D=2&page%5Bnumber%5D=1" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"service-definition\",\"id\":\"0059bcab67b74e99cc832ca503019574\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-03-02T12:21:20Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[{\"keyword-location\":\"/properties/contacts/items/$ref/allOf/1/then/properties/contact/pattern\",\"instance-location\":\"/contacts/0/contact\",\"message\":\"does not match pattern 'https://[a-zA-Z0-9_\\\\\\\\-]+.slack\\\\\\\\.com/archives/[a-zA-Z0-9_\\\\\\\\-]+'\"},{\"keyword-location\":\"/properties/contacts/items/$ref/allOf/0/then/properties/contact/format\",\"instance-location\":\"/contacts/1/contact\",\"message\":\"'BBB' is not valid 'email'\"},{\"keyword-location\":\"/properties/contacts/items/$ref/allOf/0/then/properties/contact/format\",\"instance-location\":\"/contacts/2/contact\",\"message\":\"'AAA' is not valid 'email'\"},{\"keyword-location\":\"/properties/contacts/items/$ref/allOf/0/then/properties/contact/format\",\"instance-location\":\"/contacts/3/contact\",\"message\":\"'AAA' is not valid 'email'\"},{\"keyword-location\":\"/properties/contacts/items/$ref/allOf/0/then/properties/contact/format\",\"instance-location\":\"/contacts/4/contact\",\"message\":\"'BBB' is not valid 'email'\"}],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2\",\"dd-service\":\"tf-testaccdatadogservicedefinition_order-local-1677759678\",\"team\":\"\",\"contacts\":[{\"name\":\"AA\",\"type\":\"email\",\"contact\":\"AAA\"},{\"name\":\"AA\",\"type\":\"slack\",\"contact\":\"AAA\"},{\"name\":\"BB\",\"type\":\"email\",\"contact\":\"AAA\"},{\"name\":\"AA\",\"type\":\"email\",\"contact\":\"BBB\"},{\"name\":\"BB\",\"type\":\"email\",\"contact\":\"BBB\"}],\"links\":[],\"repos\":[],\"docs\":[],\"tags\":[\"aaa\",\"bbb\"],\"integrations\":{},\"extensions\":{}}}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 05 Apr 2023 09:45:34 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/service_definition/Get-all-service-definitions-returns-OK-response.json b/tests/scenarios/cassettes/v2/service_definition/Get-all-service-definitions-returns-OK-response.json index 96f8ae815..cc3c957e8 100644 --- a/tests/scenarios/cassettes/v2/service_definition/Get-all-service-definitions-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/service_definition/Get-all-service-definitions-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/services/definitions?schema_version=v2.1"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"service-definition\",\"id\":\"00568235b96883e071172deb953a7b10\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-27T02:35:20Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"ruby\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testrubycreateorupdateservicedefinitionusingschemav21returnscreatedresponse1682562919\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"0113a795bffcfd1c420870459b84eef0\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-04T01:42:52Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"python\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testpythoncreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683164572\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"0146cb4c4b49e82b6c792f29f891c259\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-09T11:09:04Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testtypescriptcreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683630544\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"01f73c42aa16837c477641458035ed91\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-07T01:33:19Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"python\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testpythoncreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683423199\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"02e9920a1ecf7691f51e7eeb50f00eda\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-05T12:24:03Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basic-local-1683289441\",\"team\":\"E Commerce\",\"contacts\":[{\"name\":\"Support Slack\",\"type\":\"slack\",\"contact\":\"https://www.slack.com/archives/shopping-cart\"},{\"name\":\"Support Email\",\"type\":\"email\",\"contact\":\"team@shopping.com\"}],\"links\":[{\"name\":\"shopping-cart runbook\",\"type\":\"runbook\",\"url\":\"https://runbook/shopping-cart\"},{\"name\":\"shopping-cart source code\",\"type\":\"repo\",\"provider\":\"github\",\"url\":\"http://github/shopping-cart\"},{\"name\":\"shopping-cart architecture\",\"type\":\"doc\",\"provider\":\"gdoc\",\"url\":\"https://google.drive/shopping-cart-architecture\"},{\"name\":\"shopping-cart service Wiki\",\"type\":\"doc\",\"provider\":\"wiki\",\"url\":\"https://wiki/shopping-cart\"}],\"tags\":[\"cost-center:engineering\",\"business-unit:retail\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://www.pagerduty.com/service-directory/Pshopping-cart\"}},\"extensions\":{\"datadoghq.com/shopping-cart\":{\"customField\":\"customValue\"}}}}},{\"type\":\"service-definition\",\"id\":\"03f76be488e9949e34d52c49c52105ee\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-04T03:19:58Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"java\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testjavacreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683170398\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"06f60b5c1f230f8174cc5c5e90b7faa9\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-09T00:16:19Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"go\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testgocreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683591379\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"07bae2206db6c46e6a5022f4cddb0870\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-02T11:12:52Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testtypescriptcreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683025971\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"083a9b5824969035c75110515ecde626\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-10T00:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683678180\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"099ff90f166e8e5bc3631802ec87639d\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-04T00:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683159780\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"0abd68773364109f0cdaea2f1cd8ce45\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-05T04:20:33Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"typescript\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testtypescriptcreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683260433\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"0aed9da034062afb317fff84bac9ee14\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-08T03:29:17Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"java\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testjavacreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683516557\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"0b862bd241b44f26998a84f79d657e57\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-11T12:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683807780\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"0c462811db360802013d842614a53b46\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-04T11:11:08Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testtypescriptcreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683198668\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"0c6e247aaea64a83087c60aab80e3c00\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-01T20:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1682972580\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"0ef0dc23c7225f37dfbb7a990c655bc8\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-27T04:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1682569380\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"0f3b1d351d2f4f86b30581a1802f992f\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-01T12:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1682943780\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"0fc27b234d54736f2ccf75ad6f71e039\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-07T00:16:15Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"go\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testgocreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683418575\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"0ff09935180ade034be6f8defa2ae7ed\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-04T12:27:16Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basic-local-1683203233\",\"team\":\"E Commerce\",\"contacts\":[{\"name\":\"Support Slack\",\"type\":\"slack\",\"contact\":\"https://www.slack.com/archives/shopping-cart\"},{\"name\":\"Support Email\",\"type\":\"email\",\"contact\":\"team@shopping.com\"}],\"links\":[{\"name\":\"shopping-cart runbook\",\"type\":\"runbook\",\"url\":\"https://runbook/shopping-cart\"},{\"name\":\"shopping-cart source code\",\"type\":\"repo\",\"provider\":\"github\",\"url\":\"http://github/shopping-cart\"},{\"name\":\"shopping-cart architecture\",\"type\":\"doc\",\"provider\":\"gdoc\",\"url\":\"https://google.drive/shopping-cart-architecture\"},{\"name\":\"shopping-cart service Wiki\",\"type\":\"doc\",\"provider\":\"wiki\",\"url\":\"https://wiki/shopping-cart\"}],\"tags\":[\"cost-center:engineering\",\"business-unit:retail\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://www.pagerduty.com/service-directory/Pshopping-cart\"}},\"extensions\":{\"datadoghq.com/shopping-cart\":{\"customField\":\"customValue\"}}}}},{\"type\":\"service-definition\",\"id\":\"10fba805e317ed3c5fdb51d4d8bd62dd\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-10T06:05:47Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683698747\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"12739f60a766d688154edfec0a8921c9\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-29T16:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1682785380\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"12c1958de85042b33305bc67e1b55804\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-05T02:27:06Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"ruby\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testrubycreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683253626\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"1357684fdfcb5e812f412b35ec93817d\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-06T00:16:28Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"go\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testgocreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683332188\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"13ed95defadfe209045157c21f219848\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-30T10:05:48Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav2returnscreatedresponse1682849147\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"15955e793598cec75c5d0c5d3d4ee5b8\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-09T00:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683591780\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"17d7b84f942ba5fe3edfd3d66f19be62\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-30T02:30:21Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"ruby\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testrubycreateorupdateservicedefinitionusingschemav21returnscreatedresponse1682821821\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"1878c02a9dd9e3c8777087e52fe12144\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-03T08:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683102180\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"1984bcb82e91e83d9d953fda0b695785\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-01T22:05:48Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav2returnscreatedresponse1682978747\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"1b46acec233e15fea0dc59e172b11bb3\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-27T14:05:48Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav2returnscreatedresponse1682604347\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"1b6fee7dba212d57a4337b98674e33e5\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-03T03:27:51Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"java\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testjavacreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683084470\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"1c432ef22c9da3151d0d9b84713467ee\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-06T00:14:16Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basicv2_1-local-1683332054\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"1d4577a4ef791395c61d57e9225d74de\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-09T04:19:50Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"typescript\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testtypescriptcreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683605990\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"1e16a5031f9ccc92ce98c14cc1c93706\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-09T08:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683620580\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"1e9159ebb94a939d9746100ec9697175\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-11T02:30:37Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"ruby\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testrubycreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683772237\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"2011034017810fc105338c7add6f46f2\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-02T00:17:10Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"go\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testgocreateorupdateservicedefinitionusingschemav2returnscreatedresponse1682986629\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"2152e7df2249a42c21c18befd5346d45\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-01T00:18:13Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"go\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testgocreateorupdateservicedefinitionusingschemav21returnscreatedresponse1682900293\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"2170f9dd3a51f31493bc5eede35d8acd\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-06T08:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683361380\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"21da969122623296e78f13a357fd1b69\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-27T18:05:48Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav2returnscreatedresponse1682618747\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"2394e6a4d48842c17c2542c697b7c395\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-28T10:05:48Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav2returnscreatedresponse1682676347\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"24607868cea47c0140d0f0a79c57e0ce\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-08T00:16:33Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"go\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testgocreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683504993\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"248740bea5649caa9d1efc603bfcb0b6\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-09T01:42:22Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"python\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testpythoncreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683596541\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"25a86c21ed34f759b597dbfa28bd0a37\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-30T04:21:44Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"typescript\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testtypescriptcreateorupdateservicedefinitionusingschemav2returnscreatedresponse1682828503\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"25bb328d025237d8897d4e679501b012\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-05T11:10:56Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testtypescriptcreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683285056\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"25ed813986afdf6ba0446851bd7c6592\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-06T00:14:17Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basic-local-1683332055\",\"team\":\"E Commerce\",\"contacts\":[{\"name\":\"Support Slack\",\"type\":\"slack\",\"contact\":\"https://www.slack.com/archives/shopping-cart\"},{\"name\":\"Support Email\",\"type\":\"email\",\"contact\":\"team@shopping.com\"}],\"links\":[{\"name\":\"shopping-cart runbook\",\"type\":\"runbook\",\"url\":\"https://runbook/shopping-cart\"},{\"name\":\"shopping-cart source code\",\"type\":\"repo\",\"provider\":\"github\",\"url\":\"http://github/shopping-cart\"},{\"name\":\"shopping-cart architecture\",\"type\":\"doc\",\"provider\":\"gdoc\",\"url\":\"https://google.drive/shopping-cart-architecture\"},{\"name\":\"shopping-cart service Wiki\",\"type\":\"doc\",\"provider\":\"wiki\",\"url\":\"https://wiki/shopping-cart\"}],\"tags\":[\"cost-center:engineering\",\"business-unit:retail\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://www.pagerduty.com/service-directory/Pshopping-cart\"}},\"extensions\":{\"datadoghq.com/shopping-cart\":{\"customField\":\"customValue\"}}}}},{\"type\":\"service-definition\",\"id\":\"27a8c25472bde153af77b75ff35384e8\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-06T00:30:58Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basic-local-1683333053-updated\",\"team\":\"E Commerce\",\"contacts\":[{\"name\":\"Support Slack\",\"type\":\"slack\",\"contact\":\"https://www.slack.com/archives/shopping-cart\"},{\"name\":\"Support Email\",\"type\":\"email\",\"contact\":\"team@shopping.com\"}],\"links\":[{\"name\":\"shopping-cart runbook\",\"type\":\"runbook\",\"url\":\"https://runbook/shopping-cart\"},{\"name\":\"shopping-cart source code\",\"type\":\"repo\",\"provider\":\"github\",\"url\":\"http://github/shopping-cart\"},{\"name\":\"shopping-cart architecture\",\"type\":\"doc\",\"provider\":\"gdoc\",\"url\":\"https://google.drive/shopping-cart-architecture\"},{\"name\":\"shopping-cart service Wiki\",\"type\":\"doc\",\"provider\":\"wiki\",\"url\":\"https://wiki/shopping-cart\"}],\"tags\":[\"cost-center:engineering\",\"business-unit:retail\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://www.pagerduty.com/service-directory/Pshopping-cart\"}},\"extensions\":{\"datadoghq.com/shopping-cart\":{\"customField\":\"customValue\"}}}}},{\"type\":\"service-definition\",\"id\":\"296625fc278518f14c7d6dd6dd91a0b1\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-09T02:31:26Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"ruby\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testrubycreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683599486\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"2b8f721d2d5e7c10ab905b326ebbbd07\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-28T01:39:02Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"python\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testpythoncreateorupdateservicedefinitionusingschemav21returnscreatedresponse1682645941\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"2b9ec8fd3fbd8667b3e073968067c5a6\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-08T16:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683562980\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"2c7bc5dfbb3a82c06ab100b3cbd4b570\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-29T12:29:04Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basic-local-1682771341\",\"team\":\"E Commerce\",\"contacts\":[{\"name\":\"Support Slack\",\"type\":\"slack\",\"contact\":\"https://www.slack.com/archives/shopping-cart\"},{\"name\":\"Support Email\",\"type\":\"email\",\"contact\":\"team@shopping.com\"}],\"links\":[{\"name\":\"shopping-cart runbook\",\"type\":\"runbook\",\"url\":\"https://runbook/shopping-cart\"},{\"name\":\"shopping-cart source code\",\"type\":\"repo\",\"provider\":\"github\",\"url\":\"http://github/shopping-cart\"},{\"name\":\"shopping-cart architecture\",\"type\":\"doc\",\"provider\":\"gdoc\",\"url\":\"https://google.drive/shopping-cart-architecture\"},{\"name\":\"shopping-cart service Wiki\",\"type\":\"doc\",\"provider\":\"wiki\",\"url\":\"https://wiki/shopping-cart\"}],\"tags\":[\"cost-center:engineering\",\"business-unit:retail\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://www.pagerduty.com/service-directory/Pshopping-cart\"}},\"extensions\":{\"datadoghq.com/shopping-cart\":{\"customField\":\"customValue\"}}}}},{\"type\":\"service-definition\",\"id\":\"2cc0d478707df426481640ab9dd31f8d\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-04T12:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683202980\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"2ebbaa9a2608278fca9a30a590bdeac4\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-04T20:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683231780\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"30228e152032a3bc7abf39901749c554\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-10T22:05:47Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683756347\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"30ba9b5d5d81d01c1a8afb5faec2d619\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-04T02:30:55Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"ruby\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testrubycreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683167454\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"30d925ccbed32db79701ec9063f222fb\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-04T12:27:09Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basic-local-1683203224-updated\",\"team\":\"E Commerce\",\"contacts\":[{\"name\":\"Support Slack\",\"type\":\"slack\",\"contact\":\"https://www.slack.com/archives/shopping-cart\"},{\"name\":\"Support Email\",\"type\":\"email\",\"contact\":\"team@shopping.com\"}],\"links\":[{\"name\":\"shopping-cart runbook\",\"type\":\"runbook\",\"url\":\"https://runbook/shopping-cart\"},{\"name\":\"shopping-cart source code\",\"type\":\"repo\",\"provider\":\"github\",\"url\":\"http://github/shopping-cart\"},{\"name\":\"shopping-cart architecture\",\"type\":\"doc\",\"provider\":\"gdoc\",\"url\":\"https://google.drive/shopping-cart-architecture\"},{\"name\":\"shopping-cart service Wiki\",\"type\":\"doc\",\"provider\":\"wiki\",\"url\":\"https://wiki/shopping-cart\"}],\"tags\":[\"cost-center:engineering\",\"business-unit:retail\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://www.pagerduty.com/service-directory/Pshopping-cart\"}},\"extensions\":{\"datadoghq.com/shopping-cart\":{\"customField\":\"customValue\"}}}}},{\"type\":\"service-definition\",\"id\":\"30fac0d0f0295c2de8f970af08739126\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-02T11:12:52Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testtypescriptcreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683025972\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"318fcb38e12c7c213fc020361a0ccf9a\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-03T04:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683087780\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"31cfc4fc775372110ddd5bc58b8de5df\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-01T03:22:47Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"java\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testjavacreateorupdateservicedefinitionusingschemav21returnscreatedresponse1682911367\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"331db24bfbf249e71198ece68b65c958\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-11T00:16:06Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"go\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testgocreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683764166\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"343d970130315f243d23067a20bda9ae\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-06T01:35:56Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"python\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testpythoncreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683336956\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"3452c51e0db6322b8cd3290d06540978\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2022-08-04T20:17:04Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"python-sample-app-unbleachedsilk\",\"team\":\"intg-tools-libs\",\"tags\":[\"host:isolated-diego-cell-0-270372e1-a8ae-4d3c-9678-41a072dd365c\"],\"integrations\":{}}}},{\"type\":\"service-definition\",\"id\":\"3459d24f3ec174b83e1c931ceeb3b417\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-02T02:29:28Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"ruby\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testrubycreateorupdateservicedefinitionusingschemav21returnscreatedresponse1682994568\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"352ab94dabeac31f99c9e3f2736b2276\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-09T01:48:08Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"python\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testpythoncreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683596888\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"35820494590b580fdd3b8a7f6f6286da\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-10T11:12:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testtypescriptcreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683717120\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"35bb55af90b03b66ddb4ce3cd81e30b5\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-07T02:36:07Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"ruby\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testrubycreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683426967\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"35c856c8f33c5330512a173a0de46784\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-27T12:09:50Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basic-local-1682597389\",\"team\":\"E Commerce\",\"contacts\":[{\"name\":\"Support Slack\",\"type\":\"slack\",\"contact\":\"https://www.slack.com/archives/shopping-cart\"},{\"name\":\"Support Email\",\"type\":\"email\",\"contact\":\"team@shopping.com\"}],\"links\":[{\"name\":\"shopping-cart runbook\",\"type\":\"runbook\",\"url\":\"https://runbook/shopping-cart\"},{\"name\":\"shopping-cart source code\",\"type\":\"repo\",\"provider\":\"github\",\"url\":\"http://github/shopping-cart\"},{\"name\":\"shopping-cart architecture\",\"type\":\"doc\",\"provider\":\"gdoc\",\"url\":\"https://google.drive/shopping-cart-architecture\"},{\"name\":\"shopping-cart service Wiki\",\"type\":\"doc\",\"provider\":\"wiki\",\"url\":\"https://wiki/shopping-cart\"}],\"tags\":[\"business-unit:retail\",\"cost-center:engineering\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://www.pagerduty.com/service-directory/Pshopping-cart\"}},\"extensions\":{\"datadoghq.com/shopping-cart\":{\"customField\":\"customValue\"}}}}},{\"type\":\"service-definition\",\"id\":\"35d5379207051dcdee6844a76ec93ae4\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-06T00:16:28Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"go\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testgocreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683332188\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"38c5e32dbdb3090950e42cb5281708f9\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-04T11:11:08Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testtypescriptcreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683198667\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"38c6dd1d7ca5b2baecaabc40da79d394\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-03T00:14:55Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basic-local-1683072894\",\"team\":\"E Commerce\",\"contacts\":[{\"name\":\"Support Slack\",\"type\":\"slack\",\"contact\":\"https://www.slack.com/archives/shopping-cart\"},{\"name\":\"Support Email\",\"type\":\"email\",\"contact\":\"team@shopping.com\"}],\"links\":[{\"name\":\"shopping-cart runbook\",\"type\":\"runbook\",\"url\":\"https://runbook/shopping-cart\"},{\"name\":\"shopping-cart source code\",\"type\":\"repo\",\"provider\":\"github\",\"url\":\"http://github/shopping-cart\"},{\"name\":\"shopping-cart architecture\",\"type\":\"doc\",\"provider\":\"gdoc\",\"url\":\"https://google.drive/shopping-cart-architecture\"},{\"name\":\"shopping-cart service Wiki\",\"type\":\"doc\",\"provider\":\"wiki\",\"url\":\"https://wiki/shopping-cart\"}],\"tags\":[\"business-unit:retail\",\"cost-center:engineering\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://www.pagerduty.com/service-directory/Pshopping-cart\"}},\"extensions\":{\"datadoghq.com/shopping-cart\":{\"customField\":\"customValue\"}}}}},{\"type\":\"service-definition\",\"id\":\"3981c59989711abe5e5b01cebb2032b2\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-09T14:05:47Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683641147\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"3aff32a30d6a70d693c7d542651f3ddb\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-02T01:38:32Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"python\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testpythoncreateorupdateservicedefinitionusingschemav2returnscreatedresponse1682991512\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"3c516161be5bd45d0353c71fe9e29532\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-28T04:21:29Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"typescript\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testtypescriptcreateorupdateservicedefinitionusingschemav21returnscreatedresponse1682655689\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"3f25f057af4c737297a8e111e0a10392\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-11T00:32:37Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basicv2_1-local-1683765154\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"3f48c3e4301f02e80d536b41a071b3f0\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-29T00:18:38Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"go\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testgocreateorupdateservicedefinitionusingschemav2returnscreatedresponse1682727518\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"40abde4c8a026c527b8a6fd7c6a3e4a3\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-05T00:18:47Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"go\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testgocreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683245927\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"425e7b64285a647a08f23b5a77635d26\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-26T19:05:35Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basic-local-1682535930-updated\",\"team\":\"E Commerce\",\"contacts\":[{\"name\":\"Support Slack\",\"type\":\"slack\",\"contact\":\"https://www.slack.com/archives/shopping-cart\"},{\"name\":\"Support Email\",\"type\":\"email\",\"contact\":\"team@shopping.com\"}],\"links\":[{\"name\":\"shopping-cart runbook\",\"type\":\"runbook\",\"url\":\"https://runbook/shopping-cart\"},{\"name\":\"shopping-cart source code\",\"type\":\"repo\",\"provider\":\"github\",\"url\":\"http://github/shopping-cart\"},{\"name\":\"shopping-cart architecture\",\"type\":\"doc\",\"provider\":\"gdoc\",\"url\":\"https://google.drive/shopping-cart-architecture\"},{\"name\":\"shopping-cart service Wiki\",\"type\":\"doc\",\"provider\":\"wiki\",\"url\":\"https://wiki/shopping-cart\"}],\"tags\":[\"business-unit:retail\",\"cost-center:engineering\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://www.pagerduty.com/service-directory/Pshopping-cart\"}},\"extensions\":{\"datadoghq.com/shopping-cart\":{\"customField\":\"customValue\"}}}}},{\"type\":\"service-definition\",\"id\":\"4453b9786aa5ca38ba8df1c40751778d\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-30T00:16:30Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basic-local-1682813788\",\"team\":\"E Commerce\",\"contacts\":[{\"name\":\"Support Slack\",\"type\":\"slack\",\"contact\":\"https://www.slack.com/archives/shopping-cart\"},{\"name\":\"Support Email\",\"type\":\"email\",\"contact\":\"team@shopping.com\"}],\"links\":[{\"name\":\"shopping-cart runbook\",\"type\":\"runbook\",\"url\":\"https://runbook/shopping-cart\"},{\"name\":\"shopping-cart source code\",\"type\":\"repo\",\"provider\":\"github\",\"url\":\"http://github/shopping-cart\"},{\"name\":\"shopping-cart architecture\",\"type\":\"doc\",\"provider\":\"gdoc\",\"url\":\"https://google.drive/shopping-cart-architecture\"},{\"name\":\"shopping-cart service Wiki\",\"type\":\"doc\",\"provider\":\"wiki\",\"url\":\"https://wiki/shopping-cart\"}],\"tags\":[\"business-unit:retail\",\"cost-center:engineering\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://www.pagerduty.com/service-directory/Pshopping-cart\"}},\"extensions\":{\"datadoghq.com/shopping-cart\":{\"customField\":\"customValue\"}}}}},{\"type\":\"service-definition\",\"id\":\"44bf74fc0f9963103d91d83a62e124f0\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-03T20:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683145380\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"44c95efb4ed6382da18b5d54a91ba7a9\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-30T00:29:53Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basic-local-1682814591\",\"team\":\"E Commerce\",\"contacts\":[{\"name\":\"Support Slack\",\"type\":\"slack\",\"contact\":\"https://www.slack.com/archives/shopping-cart\"},{\"name\":\"Support Email\",\"type\":\"email\",\"contact\":\"team@shopping.com\"}],\"links\":[{\"name\":\"shopping-cart runbook\",\"type\":\"runbook\",\"url\":\"https://runbook/shopping-cart\"},{\"name\":\"shopping-cart source code\",\"type\":\"repo\",\"provider\":\"github\",\"url\":\"http://github/shopping-cart\"},{\"name\":\"shopping-cart architecture\",\"type\":\"doc\",\"provider\":\"gdoc\",\"url\":\"https://google.drive/shopping-cart-architecture\"},{\"name\":\"shopping-cart service Wiki\",\"type\":\"doc\",\"provider\":\"wiki\",\"url\":\"https://wiki/shopping-cart\"}],\"tags\":[\"cost-center:engineering\",\"business-unit:retail\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://www.pagerduty.com/service-directory/Pshopping-cart\"}},\"extensions\":{\"datadoghq.com/shopping-cart\":{\"customField\":\"customValue\"}}}}},{\"type\":\"service-definition\",\"id\":\"464752b6f626ebf5f180f6fce72a4493\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-03T01:44:25Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"python\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testpythoncreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683078265\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"46fc85a44fa927033bde31d06fb9cd11\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-03T01:38:15Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"python\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testpythoncreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683077895\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"4b1ccb484ff0a9da36c82d01c7fda949\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-27T03:24:34Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"java\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testjavacreateorupdateservicedefinitionusingschemav2returnscreatedresponse1682565874\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"4c85795cd6dab9cd622610080824f375\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-08T12:23:01Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basicv2_1-local-1683548579\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"4cb73b6f18677db8455b1f88bef4deb9\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-03T03:27:51Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"java\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testjavacreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683084471\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"4e0b23019608385dd80ae2a7b1333a35\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-11T04:25:26Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"typescript\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testtypescriptcreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683779126\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"4e1a2f0e0d297f0a76117aef49896b1a\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-04T08:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683188580\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"4e834ce6c692842672559f4e6151b4f0\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-30T12:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1682857380\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"4edba31123c86ccfc4f2da6054c28d3f\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-11T00:32:10Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[{\"keyword-location\":\"/properties/contacts/items/$ref/allOf/1/then/properties/contact/pattern\",\"instance-location\":\"/contacts/0/contact\",\"message\":\"does not match pattern 'https://[a-zA-Z0-9_\\\\\\\\-]+.slack\\\\\\\\.com/archives/[a-zA-Z0-9_\\\\\\\\-]+'\"}],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_order-local-1683765128\",\"contacts\":[{\"name\":\"AA\",\"type\":\"slack\",\"contact\":\"AAA\"},{\"name\":\"AA\",\"type\":\"email\",\"contact\":\"AAA@example.com\"},{\"name\":\"BB\",\"type\":\"email\",\"contact\":\"AAA@example.com\"},{\"name\":\"AA\",\"type\":\"email\",\"contact\":\"BBB@example.com\"},{\"name\":\"BB\",\"type\":\"email\",\"contact\":\"BBB@example.com\"}],\"tags\":[\"aaa\",\"bbb\"],\"integrations\":{}}}},{\"type\":\"service-definition\",\"id\":\"522b01d1ef73bf8f1bc4c22c11ada33d\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-11T00:32:17Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basicv2_1-local-1683765134\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"527231dd30e5ae934b91cecbc18085af\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-07T20:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683490980\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"53e52469b7385f9e29fc88e3b8b7b4c9\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-09T04:19:50Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"typescript\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testtypescriptcreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683605990\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"53eeb82870fb86dd442158c6e44a9c02\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-27T12:23:31Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[{\"keyword-location\":\"/properties/contacts/items/$ref/allOf/1/then/properties/contact/pattern\",\"instance-location\":\"/contacts/0/contact\",\"message\":\"does not match pattern 'https://[a-zA-Z0-9_\\\\\\\\-]+.slack\\\\\\\\.com/archives/[a-zA-Z0-9_\\\\\\\\-]+'\"}],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_order-local-1682598209\",\"contacts\":[{\"name\":\"AA\",\"type\":\"slack\",\"contact\":\"AAA\"},{\"name\":\"AA\",\"type\":\"email\",\"contact\":\"AAA@example.com\"},{\"name\":\"BB\",\"type\":\"email\",\"contact\":\"AAA@example.com\"},{\"name\":\"AA\",\"type\":\"email\",\"contact\":\"BBB@example.com\"},{\"name\":\"BB\",\"type\":\"email\",\"contact\":\"BBB@example.com\"}],\"tags\":[\"aaa\",\"bbb\"],\"integrations\":{}}}},{\"type\":\"service-definition\",\"id\":\"541d84dbae7d3a1fd26ed4533c6094fc\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-27T22:05:48Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav2returnscreatedresponse1682633147\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"5427b4f2d3ad91ce743039e9c8128b66\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-02T20:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683058980\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"54adfb4dd1020445bdb1528b1a592908\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-06T00:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683332580\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"54b17eb2c3929082405b285347010a75\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-08T00:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683505380\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"56ae82b1d71cd8978289889713c9f388\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-03T00:28:13Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[{\"keyword-location\":\"/properties/contacts/items/$ref/allOf/1/then/properties/contact/pattern\",\"instance-location\":\"/contacts/0/contact\",\"message\":\"does not match pattern 'https://[a-zA-Z0-9_\\\\\\\\-]+.slack\\\\\\\\.com/archives/[a-zA-Z0-9_\\\\\\\\-]+'\"}],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_order-local-1683073691\",\"contacts\":[{\"name\":\"AA\",\"type\":\"slack\",\"contact\":\"AAA\"},{\"name\":\"AA\",\"type\":\"email\",\"contact\":\"AAA@example.com\"},{\"name\":\"BB\",\"type\":\"email\",\"contact\":\"AAA@example.com\"},{\"name\":\"AA\",\"type\":\"email\",\"contact\":\"BBB@example.com\"},{\"name\":\"BB\",\"type\":\"email\",\"contact\":\"BBB@example.com\"}],\"tags\":[\"aaa\",\"bbb\"],\"integrations\":{}}}},{\"type\":\"service-definition\",\"id\":\"57a9fc819cc2bffe87abd2854fb2d45f\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-05T20:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683318180\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"57af0d2150b3832ec38996bec7a632b2\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-08T00:18:10Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basicv2_1-local-1683505089\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"587d23978e5ad106d531eca24eef4960\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-28T01:40:15Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"python\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testpythoncreateorupdateservicedefinitionusingschemav2returnscreatedresponse1682646015\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"5a6a1b221d479e727bd2ab55e2edf5a4\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-29T00:18:38Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"go\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testgocreateorupdateservicedefinitionusingschemav21returnscreatedresponse1682727518\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 11 May 2023 21:15:27 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/services/definitions?schema_version=v2.1" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"service-definition\",\"id\":\"00568235b96883e071172deb953a7b10\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-27T02:35:20Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"ruby\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testrubycreateorupdateservicedefinitionusingschemav21returnscreatedresponse1682562919\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"0113a795bffcfd1c420870459b84eef0\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-04T01:42:52Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"python\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testpythoncreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683164572\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"0146cb4c4b49e82b6c792f29f891c259\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-09T11:09:04Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testtypescriptcreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683630544\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"01f73c42aa16837c477641458035ed91\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-07T01:33:19Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"python\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testpythoncreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683423199\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"02e9920a1ecf7691f51e7eeb50f00eda\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-05T12:24:03Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basic-local-1683289441\",\"team\":\"E Commerce\",\"contacts\":[{\"name\":\"Support Slack\",\"type\":\"slack\",\"contact\":\"https://www.slack.com/archives/shopping-cart\"},{\"name\":\"Support Email\",\"type\":\"email\",\"contact\":\"team@shopping.com\"}],\"links\":[{\"name\":\"shopping-cart runbook\",\"type\":\"runbook\",\"url\":\"https://runbook/shopping-cart\"},{\"name\":\"shopping-cart source code\",\"type\":\"repo\",\"provider\":\"github\",\"url\":\"http://github/shopping-cart\"},{\"name\":\"shopping-cart architecture\",\"type\":\"doc\",\"provider\":\"gdoc\",\"url\":\"https://google.drive/shopping-cart-architecture\"},{\"name\":\"shopping-cart service Wiki\",\"type\":\"doc\",\"provider\":\"wiki\",\"url\":\"https://wiki/shopping-cart\"}],\"tags\":[\"cost-center:engineering\",\"business-unit:retail\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://www.pagerduty.com/service-directory/Pshopping-cart\"}},\"extensions\":{\"datadoghq.com/shopping-cart\":{\"customField\":\"customValue\"}}}}},{\"type\":\"service-definition\",\"id\":\"03f76be488e9949e34d52c49c52105ee\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-04T03:19:58Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"java\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testjavacreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683170398\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"06f60b5c1f230f8174cc5c5e90b7faa9\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-09T00:16:19Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"go\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testgocreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683591379\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"07bae2206db6c46e6a5022f4cddb0870\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-02T11:12:52Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testtypescriptcreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683025971\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"083a9b5824969035c75110515ecde626\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-10T00:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683678180\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"099ff90f166e8e5bc3631802ec87639d\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-04T00:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683159780\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"0abd68773364109f0cdaea2f1cd8ce45\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-05T04:20:33Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"typescript\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testtypescriptcreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683260433\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"0aed9da034062afb317fff84bac9ee14\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-08T03:29:17Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"java\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testjavacreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683516557\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"0b862bd241b44f26998a84f79d657e57\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-11T12:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683807780\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"0c462811db360802013d842614a53b46\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-04T11:11:08Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testtypescriptcreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683198668\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"0c6e247aaea64a83087c60aab80e3c00\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-01T20:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1682972580\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"0ef0dc23c7225f37dfbb7a990c655bc8\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-27T04:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1682569380\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"0f3b1d351d2f4f86b30581a1802f992f\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-01T12:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1682943780\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"0fc27b234d54736f2ccf75ad6f71e039\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-07T00:16:15Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"go\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testgocreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683418575\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"0ff09935180ade034be6f8defa2ae7ed\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-04T12:27:16Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basic-local-1683203233\",\"team\":\"E Commerce\",\"contacts\":[{\"name\":\"Support Slack\",\"type\":\"slack\",\"contact\":\"https://www.slack.com/archives/shopping-cart\"},{\"name\":\"Support Email\",\"type\":\"email\",\"contact\":\"team@shopping.com\"}],\"links\":[{\"name\":\"shopping-cart runbook\",\"type\":\"runbook\",\"url\":\"https://runbook/shopping-cart\"},{\"name\":\"shopping-cart source code\",\"type\":\"repo\",\"provider\":\"github\",\"url\":\"http://github/shopping-cart\"},{\"name\":\"shopping-cart architecture\",\"type\":\"doc\",\"provider\":\"gdoc\",\"url\":\"https://google.drive/shopping-cart-architecture\"},{\"name\":\"shopping-cart service Wiki\",\"type\":\"doc\",\"provider\":\"wiki\",\"url\":\"https://wiki/shopping-cart\"}],\"tags\":[\"cost-center:engineering\",\"business-unit:retail\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://www.pagerduty.com/service-directory/Pshopping-cart\"}},\"extensions\":{\"datadoghq.com/shopping-cart\":{\"customField\":\"customValue\"}}}}},{\"type\":\"service-definition\",\"id\":\"10fba805e317ed3c5fdb51d4d8bd62dd\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-10T06:05:47Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683698747\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"12739f60a766d688154edfec0a8921c9\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-29T16:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1682785380\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"12c1958de85042b33305bc67e1b55804\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-05T02:27:06Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"ruby\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testrubycreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683253626\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"1357684fdfcb5e812f412b35ec93817d\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-06T00:16:28Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"go\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testgocreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683332188\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"13ed95defadfe209045157c21f219848\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-30T10:05:48Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav2returnscreatedresponse1682849147\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"15955e793598cec75c5d0c5d3d4ee5b8\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-09T00:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683591780\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"17d7b84f942ba5fe3edfd3d66f19be62\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-30T02:30:21Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"ruby\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testrubycreateorupdateservicedefinitionusingschemav21returnscreatedresponse1682821821\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"1878c02a9dd9e3c8777087e52fe12144\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-03T08:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683102180\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"1984bcb82e91e83d9d953fda0b695785\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-01T22:05:48Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav2returnscreatedresponse1682978747\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"1b46acec233e15fea0dc59e172b11bb3\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-27T14:05:48Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav2returnscreatedresponse1682604347\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"1b6fee7dba212d57a4337b98674e33e5\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-03T03:27:51Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"java\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testjavacreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683084470\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"1c432ef22c9da3151d0d9b84713467ee\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-06T00:14:16Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basicv2_1-local-1683332054\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"1d4577a4ef791395c61d57e9225d74de\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-09T04:19:50Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"typescript\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testtypescriptcreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683605990\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"1e16a5031f9ccc92ce98c14cc1c93706\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-09T08:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683620580\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"1e9159ebb94a939d9746100ec9697175\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-11T02:30:37Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"ruby\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testrubycreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683772237\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"2011034017810fc105338c7add6f46f2\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-02T00:17:10Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"go\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testgocreateorupdateservicedefinitionusingschemav2returnscreatedresponse1682986629\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"2152e7df2249a42c21c18befd5346d45\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-01T00:18:13Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"go\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testgocreateorupdateservicedefinitionusingschemav21returnscreatedresponse1682900293\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"2170f9dd3a51f31493bc5eede35d8acd\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-06T08:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683361380\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"21da969122623296e78f13a357fd1b69\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-27T18:05:48Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav2returnscreatedresponse1682618747\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"2394e6a4d48842c17c2542c697b7c395\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-28T10:05:48Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav2returnscreatedresponse1682676347\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"24607868cea47c0140d0f0a79c57e0ce\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-08T00:16:33Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"go\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testgocreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683504993\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"248740bea5649caa9d1efc603bfcb0b6\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-09T01:42:22Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"python\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testpythoncreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683596541\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"25a86c21ed34f759b597dbfa28bd0a37\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-30T04:21:44Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"typescript\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testtypescriptcreateorupdateservicedefinitionusingschemav2returnscreatedresponse1682828503\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"25bb328d025237d8897d4e679501b012\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-05T11:10:56Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testtypescriptcreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683285056\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"25ed813986afdf6ba0446851bd7c6592\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-06T00:14:17Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basic-local-1683332055\",\"team\":\"E Commerce\",\"contacts\":[{\"name\":\"Support Slack\",\"type\":\"slack\",\"contact\":\"https://www.slack.com/archives/shopping-cart\"},{\"name\":\"Support Email\",\"type\":\"email\",\"contact\":\"team@shopping.com\"}],\"links\":[{\"name\":\"shopping-cart runbook\",\"type\":\"runbook\",\"url\":\"https://runbook/shopping-cart\"},{\"name\":\"shopping-cart source code\",\"type\":\"repo\",\"provider\":\"github\",\"url\":\"http://github/shopping-cart\"},{\"name\":\"shopping-cart architecture\",\"type\":\"doc\",\"provider\":\"gdoc\",\"url\":\"https://google.drive/shopping-cart-architecture\"},{\"name\":\"shopping-cart service Wiki\",\"type\":\"doc\",\"provider\":\"wiki\",\"url\":\"https://wiki/shopping-cart\"}],\"tags\":[\"cost-center:engineering\",\"business-unit:retail\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://www.pagerduty.com/service-directory/Pshopping-cart\"}},\"extensions\":{\"datadoghq.com/shopping-cart\":{\"customField\":\"customValue\"}}}}},{\"type\":\"service-definition\",\"id\":\"27a8c25472bde153af77b75ff35384e8\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-06T00:30:58Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basic-local-1683333053-updated\",\"team\":\"E Commerce\",\"contacts\":[{\"name\":\"Support Slack\",\"type\":\"slack\",\"contact\":\"https://www.slack.com/archives/shopping-cart\"},{\"name\":\"Support Email\",\"type\":\"email\",\"contact\":\"team@shopping.com\"}],\"links\":[{\"name\":\"shopping-cart runbook\",\"type\":\"runbook\",\"url\":\"https://runbook/shopping-cart\"},{\"name\":\"shopping-cart source code\",\"type\":\"repo\",\"provider\":\"github\",\"url\":\"http://github/shopping-cart\"},{\"name\":\"shopping-cart architecture\",\"type\":\"doc\",\"provider\":\"gdoc\",\"url\":\"https://google.drive/shopping-cart-architecture\"},{\"name\":\"shopping-cart service Wiki\",\"type\":\"doc\",\"provider\":\"wiki\",\"url\":\"https://wiki/shopping-cart\"}],\"tags\":[\"cost-center:engineering\",\"business-unit:retail\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://www.pagerduty.com/service-directory/Pshopping-cart\"}},\"extensions\":{\"datadoghq.com/shopping-cart\":{\"customField\":\"customValue\"}}}}},{\"type\":\"service-definition\",\"id\":\"296625fc278518f14c7d6dd6dd91a0b1\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-09T02:31:26Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"ruby\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testrubycreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683599486\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"2b8f721d2d5e7c10ab905b326ebbbd07\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-28T01:39:02Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"python\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testpythoncreateorupdateservicedefinitionusingschemav21returnscreatedresponse1682645941\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"2b9ec8fd3fbd8667b3e073968067c5a6\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-08T16:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683562980\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"2c7bc5dfbb3a82c06ab100b3cbd4b570\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-29T12:29:04Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basic-local-1682771341\",\"team\":\"E Commerce\",\"contacts\":[{\"name\":\"Support Slack\",\"type\":\"slack\",\"contact\":\"https://www.slack.com/archives/shopping-cart\"},{\"name\":\"Support Email\",\"type\":\"email\",\"contact\":\"team@shopping.com\"}],\"links\":[{\"name\":\"shopping-cart runbook\",\"type\":\"runbook\",\"url\":\"https://runbook/shopping-cart\"},{\"name\":\"shopping-cart source code\",\"type\":\"repo\",\"provider\":\"github\",\"url\":\"http://github/shopping-cart\"},{\"name\":\"shopping-cart architecture\",\"type\":\"doc\",\"provider\":\"gdoc\",\"url\":\"https://google.drive/shopping-cart-architecture\"},{\"name\":\"shopping-cart service Wiki\",\"type\":\"doc\",\"provider\":\"wiki\",\"url\":\"https://wiki/shopping-cart\"}],\"tags\":[\"cost-center:engineering\",\"business-unit:retail\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://www.pagerduty.com/service-directory/Pshopping-cart\"}},\"extensions\":{\"datadoghq.com/shopping-cart\":{\"customField\":\"customValue\"}}}}},{\"type\":\"service-definition\",\"id\":\"2cc0d478707df426481640ab9dd31f8d\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-04T12:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683202980\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"2ebbaa9a2608278fca9a30a590bdeac4\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-04T20:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683231780\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"30228e152032a3bc7abf39901749c554\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-10T22:05:47Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683756347\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"30ba9b5d5d81d01c1a8afb5faec2d619\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-04T02:30:55Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"ruby\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testrubycreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683167454\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"30d925ccbed32db79701ec9063f222fb\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-04T12:27:09Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basic-local-1683203224-updated\",\"team\":\"E Commerce\",\"contacts\":[{\"name\":\"Support Slack\",\"type\":\"slack\",\"contact\":\"https://www.slack.com/archives/shopping-cart\"},{\"name\":\"Support Email\",\"type\":\"email\",\"contact\":\"team@shopping.com\"}],\"links\":[{\"name\":\"shopping-cart runbook\",\"type\":\"runbook\",\"url\":\"https://runbook/shopping-cart\"},{\"name\":\"shopping-cart source code\",\"type\":\"repo\",\"provider\":\"github\",\"url\":\"http://github/shopping-cart\"},{\"name\":\"shopping-cart architecture\",\"type\":\"doc\",\"provider\":\"gdoc\",\"url\":\"https://google.drive/shopping-cart-architecture\"},{\"name\":\"shopping-cart service Wiki\",\"type\":\"doc\",\"provider\":\"wiki\",\"url\":\"https://wiki/shopping-cart\"}],\"tags\":[\"cost-center:engineering\",\"business-unit:retail\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://www.pagerduty.com/service-directory/Pshopping-cart\"}},\"extensions\":{\"datadoghq.com/shopping-cart\":{\"customField\":\"customValue\"}}}}},{\"type\":\"service-definition\",\"id\":\"30fac0d0f0295c2de8f970af08739126\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-02T11:12:52Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testtypescriptcreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683025972\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"318fcb38e12c7c213fc020361a0ccf9a\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-03T04:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683087780\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"31cfc4fc775372110ddd5bc58b8de5df\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-01T03:22:47Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"java\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testjavacreateorupdateservicedefinitionusingschemav21returnscreatedresponse1682911367\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"331db24bfbf249e71198ece68b65c958\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-11T00:16:06Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"go\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testgocreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683764166\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"343d970130315f243d23067a20bda9ae\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-06T01:35:56Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"python\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testpythoncreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683336956\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"3452c51e0db6322b8cd3290d06540978\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2022-08-04T20:17:04Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"python-sample-app-unbleachedsilk\",\"team\":\"intg-tools-libs\",\"tags\":[\"host:isolated-diego-cell-0-270372e1-a8ae-4d3c-9678-41a072dd365c\"],\"integrations\":{}}}},{\"type\":\"service-definition\",\"id\":\"3459d24f3ec174b83e1c931ceeb3b417\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-02T02:29:28Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"ruby\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testrubycreateorupdateservicedefinitionusingschemav21returnscreatedresponse1682994568\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"352ab94dabeac31f99c9e3f2736b2276\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-09T01:48:08Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"python\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testpythoncreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683596888\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"35820494590b580fdd3b8a7f6f6286da\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-10T11:12:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testtypescriptcreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683717120\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"35bb55af90b03b66ddb4ce3cd81e30b5\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-07T02:36:07Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"ruby\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testrubycreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683426967\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"35c856c8f33c5330512a173a0de46784\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-27T12:09:50Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basic-local-1682597389\",\"team\":\"E Commerce\",\"contacts\":[{\"name\":\"Support Slack\",\"type\":\"slack\",\"contact\":\"https://www.slack.com/archives/shopping-cart\"},{\"name\":\"Support Email\",\"type\":\"email\",\"contact\":\"team@shopping.com\"}],\"links\":[{\"name\":\"shopping-cart runbook\",\"type\":\"runbook\",\"url\":\"https://runbook/shopping-cart\"},{\"name\":\"shopping-cart source code\",\"type\":\"repo\",\"provider\":\"github\",\"url\":\"http://github/shopping-cart\"},{\"name\":\"shopping-cart architecture\",\"type\":\"doc\",\"provider\":\"gdoc\",\"url\":\"https://google.drive/shopping-cart-architecture\"},{\"name\":\"shopping-cart service Wiki\",\"type\":\"doc\",\"provider\":\"wiki\",\"url\":\"https://wiki/shopping-cart\"}],\"tags\":[\"business-unit:retail\",\"cost-center:engineering\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://www.pagerduty.com/service-directory/Pshopping-cart\"}},\"extensions\":{\"datadoghq.com/shopping-cart\":{\"customField\":\"customValue\"}}}}},{\"type\":\"service-definition\",\"id\":\"35d5379207051dcdee6844a76ec93ae4\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-06T00:16:28Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"go\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testgocreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683332188\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"38c5e32dbdb3090950e42cb5281708f9\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-04T11:11:08Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testtypescriptcreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683198667\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"38c6dd1d7ca5b2baecaabc40da79d394\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-03T00:14:55Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basic-local-1683072894\",\"team\":\"E Commerce\",\"contacts\":[{\"name\":\"Support Slack\",\"type\":\"slack\",\"contact\":\"https://www.slack.com/archives/shopping-cart\"},{\"name\":\"Support Email\",\"type\":\"email\",\"contact\":\"team@shopping.com\"}],\"links\":[{\"name\":\"shopping-cart runbook\",\"type\":\"runbook\",\"url\":\"https://runbook/shopping-cart\"},{\"name\":\"shopping-cart source code\",\"type\":\"repo\",\"provider\":\"github\",\"url\":\"http://github/shopping-cart\"},{\"name\":\"shopping-cart architecture\",\"type\":\"doc\",\"provider\":\"gdoc\",\"url\":\"https://google.drive/shopping-cart-architecture\"},{\"name\":\"shopping-cart service Wiki\",\"type\":\"doc\",\"provider\":\"wiki\",\"url\":\"https://wiki/shopping-cart\"}],\"tags\":[\"business-unit:retail\",\"cost-center:engineering\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://www.pagerduty.com/service-directory/Pshopping-cart\"}},\"extensions\":{\"datadoghq.com/shopping-cart\":{\"customField\":\"customValue\"}}}}},{\"type\":\"service-definition\",\"id\":\"3981c59989711abe5e5b01cebb2032b2\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-09T14:05:47Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683641147\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"3aff32a30d6a70d693c7d542651f3ddb\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-02T01:38:32Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"python\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testpythoncreateorupdateservicedefinitionusingschemav2returnscreatedresponse1682991512\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"3c516161be5bd45d0353c71fe9e29532\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-28T04:21:29Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"typescript\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testtypescriptcreateorupdateservicedefinitionusingschemav21returnscreatedresponse1682655689\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"3f25f057af4c737297a8e111e0a10392\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-11T00:32:37Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basicv2_1-local-1683765154\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"3f48c3e4301f02e80d536b41a071b3f0\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-29T00:18:38Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"go\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testgocreateorupdateservicedefinitionusingschemav2returnscreatedresponse1682727518\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"40abde4c8a026c527b8a6fd7c6a3e4a3\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-05T00:18:47Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"go\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testgocreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683245927\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"425e7b64285a647a08f23b5a77635d26\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-26T19:05:35Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basic-local-1682535930-updated\",\"team\":\"E Commerce\",\"contacts\":[{\"name\":\"Support Slack\",\"type\":\"slack\",\"contact\":\"https://www.slack.com/archives/shopping-cart\"},{\"name\":\"Support Email\",\"type\":\"email\",\"contact\":\"team@shopping.com\"}],\"links\":[{\"name\":\"shopping-cart runbook\",\"type\":\"runbook\",\"url\":\"https://runbook/shopping-cart\"},{\"name\":\"shopping-cart source code\",\"type\":\"repo\",\"provider\":\"github\",\"url\":\"http://github/shopping-cart\"},{\"name\":\"shopping-cart architecture\",\"type\":\"doc\",\"provider\":\"gdoc\",\"url\":\"https://google.drive/shopping-cart-architecture\"},{\"name\":\"shopping-cart service Wiki\",\"type\":\"doc\",\"provider\":\"wiki\",\"url\":\"https://wiki/shopping-cart\"}],\"tags\":[\"business-unit:retail\",\"cost-center:engineering\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://www.pagerduty.com/service-directory/Pshopping-cart\"}},\"extensions\":{\"datadoghq.com/shopping-cart\":{\"customField\":\"customValue\"}}}}},{\"type\":\"service-definition\",\"id\":\"4453b9786aa5ca38ba8df1c40751778d\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-30T00:16:30Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basic-local-1682813788\",\"team\":\"E Commerce\",\"contacts\":[{\"name\":\"Support Slack\",\"type\":\"slack\",\"contact\":\"https://www.slack.com/archives/shopping-cart\"},{\"name\":\"Support Email\",\"type\":\"email\",\"contact\":\"team@shopping.com\"}],\"links\":[{\"name\":\"shopping-cart runbook\",\"type\":\"runbook\",\"url\":\"https://runbook/shopping-cart\"},{\"name\":\"shopping-cart source code\",\"type\":\"repo\",\"provider\":\"github\",\"url\":\"http://github/shopping-cart\"},{\"name\":\"shopping-cart architecture\",\"type\":\"doc\",\"provider\":\"gdoc\",\"url\":\"https://google.drive/shopping-cart-architecture\"},{\"name\":\"shopping-cart service Wiki\",\"type\":\"doc\",\"provider\":\"wiki\",\"url\":\"https://wiki/shopping-cart\"}],\"tags\":[\"business-unit:retail\",\"cost-center:engineering\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://www.pagerduty.com/service-directory/Pshopping-cart\"}},\"extensions\":{\"datadoghq.com/shopping-cart\":{\"customField\":\"customValue\"}}}}},{\"type\":\"service-definition\",\"id\":\"44bf74fc0f9963103d91d83a62e124f0\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-03T20:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683145380\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"44c95efb4ed6382da18b5d54a91ba7a9\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-30T00:29:53Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basic-local-1682814591\",\"team\":\"E Commerce\",\"contacts\":[{\"name\":\"Support Slack\",\"type\":\"slack\",\"contact\":\"https://www.slack.com/archives/shopping-cart\"},{\"name\":\"Support Email\",\"type\":\"email\",\"contact\":\"team@shopping.com\"}],\"links\":[{\"name\":\"shopping-cart runbook\",\"type\":\"runbook\",\"url\":\"https://runbook/shopping-cart\"},{\"name\":\"shopping-cart source code\",\"type\":\"repo\",\"provider\":\"github\",\"url\":\"http://github/shopping-cart\"},{\"name\":\"shopping-cart architecture\",\"type\":\"doc\",\"provider\":\"gdoc\",\"url\":\"https://google.drive/shopping-cart-architecture\"},{\"name\":\"shopping-cart service Wiki\",\"type\":\"doc\",\"provider\":\"wiki\",\"url\":\"https://wiki/shopping-cart\"}],\"tags\":[\"cost-center:engineering\",\"business-unit:retail\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://www.pagerduty.com/service-directory/Pshopping-cart\"}},\"extensions\":{\"datadoghq.com/shopping-cart\":{\"customField\":\"customValue\"}}}}},{\"type\":\"service-definition\",\"id\":\"464752b6f626ebf5f180f6fce72a4493\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-03T01:44:25Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"python\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testpythoncreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683078265\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"46fc85a44fa927033bde31d06fb9cd11\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-03T01:38:15Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"python\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testpythoncreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683077895\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"4b1ccb484ff0a9da36c82d01c7fda949\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-27T03:24:34Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"java\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testjavacreateorupdateservicedefinitionusingschemav2returnscreatedresponse1682565874\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"4c85795cd6dab9cd622610080824f375\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-08T12:23:01Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basicv2_1-local-1683548579\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"4cb73b6f18677db8455b1f88bef4deb9\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-03T03:27:51Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"java\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testjavacreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683084471\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"4e0b23019608385dd80ae2a7b1333a35\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-11T04:25:26Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"typescript\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testtypescriptcreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683779126\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"4e1a2f0e0d297f0a76117aef49896b1a\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-04T08:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683188580\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"4e834ce6c692842672559f4e6151b4f0\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-30T12:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1682857380\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"4edba31123c86ccfc4f2da6054c28d3f\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-11T00:32:10Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[{\"keyword-location\":\"/properties/contacts/items/$ref/allOf/1/then/properties/contact/pattern\",\"instance-location\":\"/contacts/0/contact\",\"message\":\"does not match pattern 'https://[a-zA-Z0-9_\\\\\\\\-]+.slack\\\\\\\\.com/archives/[a-zA-Z0-9_\\\\\\\\-]+'\"}],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_order-local-1683765128\",\"contacts\":[{\"name\":\"AA\",\"type\":\"slack\",\"contact\":\"AAA\"},{\"name\":\"AA\",\"type\":\"email\",\"contact\":\"AAA@example.com\"},{\"name\":\"BB\",\"type\":\"email\",\"contact\":\"AAA@example.com\"},{\"name\":\"AA\",\"type\":\"email\",\"contact\":\"BBB@example.com\"},{\"name\":\"BB\",\"type\":\"email\",\"contact\":\"BBB@example.com\"}],\"tags\":[\"aaa\",\"bbb\"],\"integrations\":{}}}},{\"type\":\"service-definition\",\"id\":\"522b01d1ef73bf8f1bc4c22c11ada33d\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-11T00:32:17Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basicv2_1-local-1683765134\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"527231dd30e5ae934b91cecbc18085af\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-07T20:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683490980\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"53e52469b7385f9e29fc88e3b8b7b4c9\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-09T04:19:50Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"typescript\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testtypescriptcreateorupdateservicedefinitionusingschemav2returnscreatedresponse1683605990\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"53eeb82870fb86dd442158c6e44a9c02\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-27T12:23:31Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[{\"keyword-location\":\"/properties/contacts/items/$ref/allOf/1/then/properties/contact/pattern\",\"instance-location\":\"/contacts/0/contact\",\"message\":\"does not match pattern 'https://[a-zA-Z0-9_\\\\\\\\-]+.slack\\\\\\\\.com/archives/[a-zA-Z0-9_\\\\\\\\-]+'\"}],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_order-local-1682598209\",\"contacts\":[{\"name\":\"AA\",\"type\":\"slack\",\"contact\":\"AAA\"},{\"name\":\"AA\",\"type\":\"email\",\"contact\":\"AAA@example.com\"},{\"name\":\"BB\",\"type\":\"email\",\"contact\":\"AAA@example.com\"},{\"name\":\"AA\",\"type\":\"email\",\"contact\":\"BBB@example.com\"},{\"name\":\"BB\",\"type\":\"email\",\"contact\":\"BBB@example.com\"}],\"tags\":[\"aaa\",\"bbb\"],\"integrations\":{}}}},{\"type\":\"service-definition\",\"id\":\"541d84dbae7d3a1fd26ed4533c6094fc\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-27T22:05:48Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav2returnscreatedresponse1682633147\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"5427b4f2d3ad91ce743039e9c8128b66\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-02T20:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683058980\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"54adfb4dd1020445bdb1528b1a592908\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-06T00:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683332580\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"54b17eb2c3929082405b285347010a75\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-08T00:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683505380\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"56ae82b1d71cd8978289889713c9f388\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-03T00:28:13Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[{\"keyword-location\":\"/properties/contacts/items/$ref/allOf/1/then/properties/contact/pattern\",\"instance-location\":\"/contacts/0/contact\",\"message\":\"does not match pattern 'https://[a-zA-Z0-9_\\\\\\\\-]+.slack\\\\\\\\.com/archives/[a-zA-Z0-9_\\\\\\\\-]+'\"}],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_order-local-1683073691\",\"contacts\":[{\"name\":\"AA\",\"type\":\"slack\",\"contact\":\"AAA\"},{\"name\":\"AA\",\"type\":\"email\",\"contact\":\"AAA@example.com\"},{\"name\":\"BB\",\"type\":\"email\",\"contact\":\"AAA@example.com\"},{\"name\":\"AA\",\"type\":\"email\",\"contact\":\"BBB@example.com\"},{\"name\":\"BB\",\"type\":\"email\",\"contact\":\"BBB@example.com\"}],\"tags\":[\"aaa\",\"bbb\"],\"integrations\":{}}}},{\"type\":\"service-definition\",\"id\":\"57a9fc819cc2bffe87abd2854fb2d45f\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-05T20:23:00Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"unknown\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-examplecreateorupdateservicedefinitionusingschemav21returnscreatedresponse1683318180\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"57af0d2150b3832ec38996bec7a632b2\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-05-08T00:18:10Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_terraform\",\"origin-detail\":\"\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"tf-testaccdatadogservicedefinition_basicv2_1-local-1683505089\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"service:tag\",\"my:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"587d23978e5ad106d531eca24eef4960\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-28T01:40:15Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"python\",\"warnings\":[],\"ingested-schema-version\":\"v2\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testpythoncreateorupdateservicedefinitionusingschemav2returnscreatedresponse1682646015\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"},{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"google drive\",\"url\":\"https://gdrive/mydoc\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}},{\"type\":\"service-definition\",\"id\":\"5a6a1b221d479e727bd2ab55e2edf5a4\",\"attributes\":{\"meta\":{\"last-modified-time\":\"2023-04-29T00:18:38Z\",\"github-html-url\":\"\",\"ingestion-source\":\"api\",\"origin\":\"dd_sdk\",\"origin-detail\":\"go\",\"warnings\":[],\"ingested-schema-version\":\"v2.1\"},\"schema\":{\"schema-version\":\"v2.1\",\"dd-service\":\"service-testgocreateorupdateservicedefinitionusingschemav21returnscreatedresponse1682727518\",\"team\":\"my-team\",\"contacts\":[{\"name\":\"Team Email\",\"type\":\"email\",\"contact\":\"contact@datadoghq.com\"}],\"links\":[{\"name\":\"Architecture\",\"type\":\"doc\",\"provider\":\"Gigoogle drivetHub\",\"url\":\"https://my-runbook\"},{\"name\":\"Runbook\",\"type\":\"runbook\",\"url\":\"https://my-runbook\"},{\"name\":\"Source Code\",\"type\":\"repo\",\"provider\":\"GitHub\",\"url\":\"https://github.com/DataDog/schema\"}],\"tags\":[\"my:tag\",\"service:tag\"],\"integrations\":{\"pagerduty\":{\"service-url\":\"https://my-org.pagerduty.com/service-directory/PMyService\"},\"opsgenie\":{\"service-url\":\"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\",\"region\":\"US\"}},\"extensions\":{\"myorgextension\":\"extensionvalue\"}}}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 11 May 2023 21:15:27 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/service_scorecards/Create-a-new-rule-returns-Created-response.json b/tests/scenarios/cassettes/v2/service_scorecards/Create-a-new-rule-returns-Created-response.json index bfb33ab5c..2bf9fab3d 100644 --- a/tests/scenarios/cassettes/v2/service_scorecards/Create-a-new-rule-returns-Created-response.json +++ b/tests/scenarios/cassettes/v2/service_scorecards/Create-a-new-rule-returns-Created-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"enabled\":true,\"name\":\"Test-Create_a_new_rule_returns_Created_response-1698877050\",\"scorecard_name\":\"Observability Best Practices\"},\"type\":\"rule\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/scorecard/rules"}, "response": {"body": {"string": "{\"data\":{\"id\":\"b6a60878-a110-4df5-b8aa-648d7f02dd02\",\"type\":\"rule\",\"attributes\":{\"category\":\"Observability Best Practices\",\"created_at\":\"2023-11-01T22:17:30.596814Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T22:17:30.596814Z\",\"name\":\"Test-Create_a_new_rule_returns_Created_response-1698877050\",\"scorecard_name\":\"Observability Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"hA5zOZJXXJ4K\",\"type\":\"scorecard\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Wed, 01 Nov 2023 22:17:30 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/scorecard/rules/b6a60878-a110-4df5-b8aa-648d7f02dd02"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 01 Nov 2023 22:17:30 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":true,\"name\":\"Test-Create_a_new_rule_returns_Created_response-1698877050\",\"scorecard_name\":\"Observability Best Practices\"},\"type\":\"rule\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/scorecard/rules" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"b6a60878-a110-4df5-b8aa-648d7f02dd02\",\"type\":\"rule\",\"attributes\":{\"category\":\"Observability Best Practices\",\"created_at\":\"2023-11-01T22:17:30.596814Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T22:17:30.596814Z\",\"name\":\"Test-Create_a_new_rule_returns_Created_response-1698877050\",\"scorecard_name\":\"Observability Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"hA5zOZJXXJ4K\",\"type\":\"scorecard\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Wed, 01 Nov 2023 22:17:30 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/scorecard/rules/b6a60878-a110-4df5-b8aa-648d7f02dd02" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 01 Nov 2023 22:17:30 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/service_scorecards/Create-outcomes-batch-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/service_scorecards/Create-outcomes-batch-returns-Bad-Request-response.json index 14aa93422..f64a2292b 100644 --- a/tests/scenarios/cassettes/v2/service_scorecards/Create-outcomes-batch-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/service_scorecards/Create-outcomes-batch-returns-Bad-Request-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"enabled\":true,\"name\":\"Test-Create_outcomes_batch_returns_Bad_Request_response-1698959951\",\"owner\":\"Datadog\",\"scorecard_name\":\"OpenAPI Spec Test Best Practices\"},\"type\":\"rule\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/scorecard/rules"}, "response": {"body": {"string": "{\"data\":{\"id\":\"0451feb1-fb1b-463f-ba02-4568feb2795b\",\"type\":\"rule\",\"attributes\":{\"category\":\"OpenAPI Spec Test Best Practices\",\"created_at\":\"2023-11-02T21:19:11.70524Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-02T21:19:11.70524Z\",\"name\":\"Test-Create_outcomes_batch_returns_Bad_Request_response-1698959951\",\"owner\":\"Datadog\",\"scorecard_name\":\"OpenAPI Spec Test Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"qsxpoYRhU_yz\",\"type\":\"scorecard\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 02 Nov 2023 21:19:11 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"results\":[{\"remarks\":\"See: Services\",\"rule_id\":\"0451feb1-fb1b-463f-ba02-4568feb2795b\",\"service_name\":\"\",\"state\":\"pass\"}]},\"type\":\"batched-outcome\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/scorecard/outcomes/batch"}, "response": {"body": {"string": "{\"errors\":[{\"status\":\"400\",\"title\":\"Bad Request\",\"detail\":\"attribute \\\"service_name\\\" is required\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Thu, 02 Nov 2023 21:19:11 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/scorecard/rules/0451feb1-fb1b-463f-ba02-4568feb2795b"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 02 Nov 2023 21:19:11 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":true,\"name\":\"Test-Create_outcomes_batch_returns_Bad_Request_response-1698959951\",\"owner\":\"Datadog\",\"scorecard_name\":\"OpenAPI Spec Test Best Practices\"},\"type\":\"rule\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/scorecard/rules" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"0451feb1-fb1b-463f-ba02-4568feb2795b\",\"type\":\"rule\",\"attributes\":{\"category\":\"OpenAPI Spec Test Best Practices\",\"created_at\":\"2023-11-02T21:19:11.70524Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-02T21:19:11.70524Z\",\"name\":\"Test-Create_outcomes_batch_returns_Bad_Request_response-1698959951\",\"owner\":\"Datadog\",\"scorecard_name\":\"OpenAPI Spec Test Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"qsxpoYRhU_yz\",\"type\":\"scorecard\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 02 Nov 2023 21:19:11 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"results\":[{\"remarks\":\"See: Services\",\"rule_id\":\"0451feb1-fb1b-463f-ba02-4568feb2795b\",\"service_name\":\"\",\"state\":\"pass\"}]},\"type\":\"batched-outcome\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/scorecard/outcomes/batch" + }, + "response": { + "body": { + "string": "{\"errors\":[{\"status\":\"400\",\"title\":\"Bad Request\",\"detail\":\"attribute \\\"service_name\\\" is required\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Thu, 02 Nov 2023 21:19:11 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/scorecard/rules/0451feb1-fb1b-463f-ba02-4568feb2795b" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 02 Nov 2023 21:19:11 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/service_scorecards/Create-outcomes-batch-returns-OK-response.json b/tests/scenarios/cassettes/v2/service_scorecards/Create-outcomes-batch-returns-OK-response.json index b4a43f38c..0d169b718 100644 --- a/tests/scenarios/cassettes/v2/service_scorecards/Create-outcomes-batch-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/service_scorecards/Create-outcomes-batch-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"enabled\":true,\"name\":\"Test-Create_outcomes_batch_returns_OK_response-1698877051\",\"owner\":\"Datadog\",\"scorecard_name\":\"OpenAPI Spec Test Best Practices\"},\"type\":\"rule\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/scorecard/rules"}, "response": {"body": {"string": "{\"data\":{\"id\":\"b124b446-f246-41ab-b477-99293969cc5e\",\"type\":\"rule\",\"attributes\":{\"category\":\"OpenAPI Spec Test Best Practices\",\"created_at\":\"2023-11-01T22:17:31.577258Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T22:17:31.577258Z\",\"name\":\"Test-Create_outcomes_batch_returns_OK_response-1698877051\",\"owner\":\"Datadog\",\"scorecard_name\":\"OpenAPI Spec Test Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"qsxpoYRhU_yz\",\"type\":\"scorecard\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Wed, 01 Nov 2023 22:17:31 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"results\":[{\"remarks\":\"See: Services\",\"rule_id\":\"b124b446-f246-41ab-b477-99293969cc5e\",\"service_name\":\"my-service\",\"state\":\"pass\"}]},\"type\":\"batched-outcome\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/scorecard/outcomes/batch"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"b124b446-f246-41ab-b477-99293969cc5e\\\\my-service\",\"type\":\"outcome\",\"attributes\":{\"modified_at\":\"2023-11-01T22:17:31.68808Z\",\"remarks\":\"See: \\u003ca href=\\\"https://app.datadoghq.com/services\\\"\\u003eServices\\u003c/a\\u003e\",\"service_name\":\"my-service\",\"state\":\"pass\"},\"relationships\":{\"rule\":{\"data\":{\"id\":\"b124b446-f246-41ab-b477-99293969cc5e\",\"type\":\"rule\"}}}}],\"meta\":{\"total_received\":1,\"total_updated\":1}}", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 01 Nov 2023 22:17:31 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/scorecard/rules/b124b446-f246-41ab-b477-99293969cc5e"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 01 Nov 2023 22:17:31 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":true,\"name\":\"Test-Create_outcomes_batch_returns_OK_response-1698877051\",\"owner\":\"Datadog\",\"scorecard_name\":\"OpenAPI Spec Test Best Practices\"},\"type\":\"rule\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/scorecard/rules" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"b124b446-f246-41ab-b477-99293969cc5e\",\"type\":\"rule\",\"attributes\":{\"category\":\"OpenAPI Spec Test Best Practices\",\"created_at\":\"2023-11-01T22:17:31.577258Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T22:17:31.577258Z\",\"name\":\"Test-Create_outcomes_batch_returns_OK_response-1698877051\",\"owner\":\"Datadog\",\"scorecard_name\":\"OpenAPI Spec Test Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"qsxpoYRhU_yz\",\"type\":\"scorecard\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Wed, 01 Nov 2023 22:17:31 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"results\":[{\"remarks\":\"See: Services\",\"rule_id\":\"b124b446-f246-41ab-b477-99293969cc5e\",\"service_name\":\"my-service\",\"state\":\"pass\"}]},\"type\":\"batched-outcome\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/scorecard/outcomes/batch" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"b124b446-f246-41ab-b477-99293969cc5e\\\\my-service\",\"type\":\"outcome\",\"attributes\":{\"modified_at\":\"2023-11-01T22:17:31.68808Z\",\"remarks\":\"See: \\u003ca href=\\\"https://app.datadoghq.com/services\\\"\\u003eServices\\u003c/a\\u003e\",\"service_name\":\"my-service\",\"state\":\"pass\"},\"relationships\":{\"rule\":{\"data\":{\"id\":\"b124b446-f246-41ab-b477-99293969cc5e\",\"type\":\"rule\"}}}}],\"meta\":{\"total_received\":1,\"total_updated\":1}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 01 Nov 2023 22:17:31 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/scorecard/rules/b124b446-f246-41ab-b477-99293969cc5e" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 01 Nov 2023 22:17:31 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/service_scorecards/Delete-a-rule-returns-Not-Found-response.json b/tests/scenarios/cassettes/v2/service_scorecards/Delete-a-rule-returns-Not-Found-response.json index 8888fd0a0..75085fbcc 100644 --- a/tests/scenarios/cassettes/v2/service_scorecards/Delete-a-rule-returns-Not-Found-response.json +++ b/tests/scenarios/cassettes/v2/service_scorecards/Delete-a-rule-returns-Not-Found-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/scorecard/rules/2a4f524e-168a-429d-bb75-7b1ffeab0cbb"}, "response": {"body": {"string": "{\"errors\":[{\"status\":\"404\",\"title\":\"Not Found\",\"detail\":\"rule not found: 2a4f524e-168a-429d-bb75-7b1ffeab0cbb\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Wed, 01 Nov 2023 22:17:30 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/scorecard/rules/2a4f524e-168a-429d-bb75-7b1ffeab0cbb" + }, + "response": { + "body": { + "string": "{\"errors\":[{\"status\":\"404\",\"title\":\"Not Found\",\"detail\":\"rule not found: 2a4f524e-168a-429d-bb75-7b1ffeab0cbb\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Wed, 01 Nov 2023 22:17:30 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/service_scorecards/Delete-a-rule-returns-OK-response.json b/tests/scenarios/cassettes/v2/service_scorecards/Delete-a-rule-returns-OK-response.json index d1f13997d..aa1c8db00 100644 --- a/tests/scenarios/cassettes/v2/service_scorecards/Delete-a-rule-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/service_scorecards/Delete-a-rule-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"enabled\":true,\"name\":\"Test-Delete_a_rule_returns_OK_response-1698877051\",\"owner\":\"Datadog\",\"scorecard_name\":\"OpenAPI Spec Test Best Practices\"},\"type\":\"rule\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/scorecard/rules"}, "response": {"body": {"string": "{\"data\":{\"id\":\"74d92a4b-2242-488d-b3de-dd557eecb18b\",\"type\":\"rule\",\"attributes\":{\"category\":\"OpenAPI Spec Test Best Practices\",\"created_at\":\"2023-11-01T22:17:31.138205Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T22:17:31.138205Z\",\"name\":\"Test-Delete_a_rule_returns_OK_response-1698877051\",\"owner\":\"Datadog\",\"scorecard_name\":\"OpenAPI Spec Test Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"qsxpoYRhU_yz\",\"type\":\"scorecard\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Wed, 01 Nov 2023 22:17:31 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/scorecard/rules/74d92a4b-2242-488d-b3de-dd557eecb18b"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 01 Nov 2023 22:17:31 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/scorecard/rules/74d92a4b-2242-488d-b3de-dd557eecb18b"}, "response": {"body": {"string": "{\"errors\":[{\"status\":\"404\",\"title\":\"Not Found\",\"detail\":\"rule not found: 74d92a4b-2242-488d-b3de-dd557eecb18b\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Wed, 01 Nov 2023 22:17:31 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"enabled\":true,\"name\":\"Test-Delete_a_rule_returns_OK_response-1698877051\",\"owner\":\"Datadog\",\"scorecard_name\":\"OpenAPI Spec Test Best Practices\"},\"type\":\"rule\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/scorecard/rules" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"74d92a4b-2242-488d-b3de-dd557eecb18b\",\"type\":\"rule\",\"attributes\":{\"category\":\"OpenAPI Spec Test Best Practices\",\"created_at\":\"2023-11-01T22:17:31.138205Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T22:17:31.138205Z\",\"name\":\"Test-Delete_a_rule_returns_OK_response-1698877051\",\"owner\":\"Datadog\",\"scorecard_name\":\"OpenAPI Spec Test Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"qsxpoYRhU_yz\",\"type\":\"scorecard\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Wed, 01 Nov 2023 22:17:31 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/scorecard/rules/74d92a4b-2242-488d-b3de-dd557eecb18b" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 01 Nov 2023 22:17:31 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/scorecard/rules/74d92a4b-2242-488d-b3de-dd557eecb18b" + }, + "response": { + "body": { + "string": "{\"errors\":[{\"status\":\"404\",\"title\":\"Not Found\",\"detail\":\"rule not found: 74d92a4b-2242-488d-b3de-dd557eecb18b\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Wed, 01 Nov 2023 22:17:31 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/service_scorecards/Get-all-rules-returns-OK-response.json b/tests/scenarios/cassettes/v2/service_scorecards/Get-all-rules-returns-OK-response.json index 2b8ec992f..be819e787 100644 --- a/tests/scenarios/cassettes/v2/service_scorecards/Get-all-rules-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/service_scorecards/Get-all-rules-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/scorecard/rules"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"d45d511e-f03a-42e9-8ef6-5d00a9456c32\",\"type\":\"rule\",\"attributes\":{\"category\":\"Deployments automated via Deployment Trains\",\"created_at\":\"2023-11-01T14:11:49.302387Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T14:11:49.302387Z\",\"name\":\"Team Defined\",\"scorecard_name\":\"Deployments automated via Deployment Trains\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"_M1Ygy3QcqRI\",\"type\":\"scorecard\"}}}},{\"id\":\"0e6eac8b-5c4c-4438-a6c5-e631f7a2c90e\",\"type\":\"rule\",\"attributes\":{\"category\":\"Observability Best Practices\",\"created_at\":\"2023-11-01T18:04:56.125512Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T18:04:56.125512Z\",\"name\":\"Test-Create_a_new_rule_returns_Created_response-1698861895\",\"scorecard_name\":\"Observability Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"hA5zOZJXXJ4K\",\"type\":\"scorecard\"}}}},{\"id\":\"2609deb7-bbd0-4277-bf48-2265328bc4ca\",\"type\":\"rule\",\"attributes\":{\"category\":\"OpenAPI Spec Test Best Practices\",\"created_at\":\"2023-11-01T20:08:49.073289Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T20:08:49.073289Z\",\"name\":\"Test-Create_outcomes_batch_returns_OK_response-1698869328\",\"owner\":\"Datadog\",\"scorecard_name\":\"OpenAPI Spec Test Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"qsxpoYRhU_yz\",\"type\":\"scorecard\"}}}},{\"id\":\"c939cd35-77ba-42af-aa04-f1a027e0dae6\",\"type\":\"rule\",\"attributes\":{\"category\":\"Observability Best Practices\",\"created_at\":\"2023-11-01T20:03:46.852914Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T20:03:46.852914Z\",\"name\":\"Test-Typescript-Create_a_new_rule_returns_Created_response-1698869026\",\"scorecard_name\":\"Observability Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"hA5zOZJXXJ4K\",\"type\":\"scorecard\"}}}},{\"id\":\"e8ac31f0-488f-40b1-a83c-cd747e2eeadc\",\"type\":\"rule\",\"attributes\":{\"category\":\"Observability Best Practices\",\"created_at\":\"2023-11-01T20:05:34.033986Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T20:05:34.033986Z\",\"name\":\"Test-Typescript-Create_a_new_rule_returns_Created_response-1698869133\",\"scorecard_name\":\"Observability Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"hA5zOZJXXJ4K\",\"type\":\"scorecard\"}}}},{\"id\":\"a5352494-7fad-4e4b-9c7a-3ecd90f30d27\",\"type\":\"rule\",\"attributes\":{\"category\":\"Observability Best Practices\",\"created_at\":\"2023-11-01T20:25:35.217803Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T20:25:35.217803Z\",\"name\":\"Test-Typescript-Create_a_new_rule_returns_Created_response-1698870335\",\"scorecard_name\":\"Observability Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"hA5zOZJXXJ4K\",\"type\":\"scorecard\"}}}},{\"id\":\"c70e3b5f-a9f7-4ef8-8417-bf28ea153631\",\"type\":\"rule\",\"attributes\":{\"category\":\"OpenAPI Spec Test Best Practices\",\"created_at\":\"2023-11-01T20:08:35.347219Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T20:08:35.347219Z\",\"name\":\"Test-Typescript-Create_outcomes_batch_returns_OK_response-1698869315\",\"owner\":\"Datadog\",\"scorecard_name\":\"OpenAPI Spec Test Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"qsxpoYRhU_yz\",\"type\":\"scorecard\"}}}},{\"id\":\"be6867b9-bd71-497f-803f-208d7361fee2\",\"type\":\"rule\",\"attributes\":{\"category\":\"OpenAPI Spec Test Best Practices\",\"created_at\":\"2023-11-01T20:25:35.374915Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T20:25:35.374915Z\",\"name\":\"Test-Typescript-Create_outcomes_batch_returns_OK_response-1698870335\",\"owner\":\"Datadog\",\"scorecard_name\":\"OpenAPI Spec Test Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"qsxpoYRhU_yz\",\"type\":\"scorecard\"}}}},{\"id\":\"76460cec-323c-4215-81ae-b16aa160d0f1\",\"type\":\"rule\",\"attributes\":{\"category\":\"OpenAPI Spec Test Best Practices\",\"created_at\":\"2023-11-01T20:25:35.637942Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T20:25:35.637942Z\",\"name\":\"Test-Typescript-Delete_a_rule_returns_OK_response-1698870335\",\"owner\":\"Datadog\",\"scorecard_name\":\"OpenAPI Spec Test Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"qsxpoYRhU_yz\",\"type\":\"scorecard\"}}}}],\"links\":{\"next\":\"/api/v2/scorecard/rules?page%5Blimit%5D=100\\u0026page%5Boffset%5D=100\"}}", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 01 Nov 2023 22:17:30 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/scorecard/rules" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"d45d511e-f03a-42e9-8ef6-5d00a9456c32\",\"type\":\"rule\",\"attributes\":{\"category\":\"Deployments automated via Deployment Trains\",\"created_at\":\"2023-11-01T14:11:49.302387Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T14:11:49.302387Z\",\"name\":\"Team Defined\",\"scorecard_name\":\"Deployments automated via Deployment Trains\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"_M1Ygy3QcqRI\",\"type\":\"scorecard\"}}}},{\"id\":\"0e6eac8b-5c4c-4438-a6c5-e631f7a2c90e\",\"type\":\"rule\",\"attributes\":{\"category\":\"Observability Best Practices\",\"created_at\":\"2023-11-01T18:04:56.125512Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T18:04:56.125512Z\",\"name\":\"Test-Create_a_new_rule_returns_Created_response-1698861895\",\"scorecard_name\":\"Observability Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"hA5zOZJXXJ4K\",\"type\":\"scorecard\"}}}},{\"id\":\"2609deb7-bbd0-4277-bf48-2265328bc4ca\",\"type\":\"rule\",\"attributes\":{\"category\":\"OpenAPI Spec Test Best Practices\",\"created_at\":\"2023-11-01T20:08:49.073289Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T20:08:49.073289Z\",\"name\":\"Test-Create_outcomes_batch_returns_OK_response-1698869328\",\"owner\":\"Datadog\",\"scorecard_name\":\"OpenAPI Spec Test Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"qsxpoYRhU_yz\",\"type\":\"scorecard\"}}}},{\"id\":\"c939cd35-77ba-42af-aa04-f1a027e0dae6\",\"type\":\"rule\",\"attributes\":{\"category\":\"Observability Best Practices\",\"created_at\":\"2023-11-01T20:03:46.852914Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T20:03:46.852914Z\",\"name\":\"Test-Typescript-Create_a_new_rule_returns_Created_response-1698869026\",\"scorecard_name\":\"Observability Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"hA5zOZJXXJ4K\",\"type\":\"scorecard\"}}}},{\"id\":\"e8ac31f0-488f-40b1-a83c-cd747e2eeadc\",\"type\":\"rule\",\"attributes\":{\"category\":\"Observability Best Practices\",\"created_at\":\"2023-11-01T20:05:34.033986Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T20:05:34.033986Z\",\"name\":\"Test-Typescript-Create_a_new_rule_returns_Created_response-1698869133\",\"scorecard_name\":\"Observability Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"hA5zOZJXXJ4K\",\"type\":\"scorecard\"}}}},{\"id\":\"a5352494-7fad-4e4b-9c7a-3ecd90f30d27\",\"type\":\"rule\",\"attributes\":{\"category\":\"Observability Best Practices\",\"created_at\":\"2023-11-01T20:25:35.217803Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T20:25:35.217803Z\",\"name\":\"Test-Typescript-Create_a_new_rule_returns_Created_response-1698870335\",\"scorecard_name\":\"Observability Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"hA5zOZJXXJ4K\",\"type\":\"scorecard\"}}}},{\"id\":\"c70e3b5f-a9f7-4ef8-8417-bf28ea153631\",\"type\":\"rule\",\"attributes\":{\"category\":\"OpenAPI Spec Test Best Practices\",\"created_at\":\"2023-11-01T20:08:35.347219Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T20:08:35.347219Z\",\"name\":\"Test-Typescript-Create_outcomes_batch_returns_OK_response-1698869315\",\"owner\":\"Datadog\",\"scorecard_name\":\"OpenAPI Spec Test Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"qsxpoYRhU_yz\",\"type\":\"scorecard\"}}}},{\"id\":\"be6867b9-bd71-497f-803f-208d7361fee2\",\"type\":\"rule\",\"attributes\":{\"category\":\"OpenAPI Spec Test Best Practices\",\"created_at\":\"2023-11-01T20:25:35.374915Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T20:25:35.374915Z\",\"name\":\"Test-Typescript-Create_outcomes_batch_returns_OK_response-1698870335\",\"owner\":\"Datadog\",\"scorecard_name\":\"OpenAPI Spec Test Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"qsxpoYRhU_yz\",\"type\":\"scorecard\"}}}},{\"id\":\"76460cec-323c-4215-81ae-b16aa160d0f1\",\"type\":\"rule\",\"attributes\":{\"category\":\"OpenAPI Spec Test Best Practices\",\"created_at\":\"2023-11-01T20:25:35.637942Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T20:25:35.637942Z\",\"name\":\"Test-Typescript-Delete_a_rule_returns_OK_response-1698870335\",\"owner\":\"Datadog\",\"scorecard_name\":\"OpenAPI Spec Test Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"qsxpoYRhU_yz\",\"type\":\"scorecard\"}}}}],\"links\":{\"next\":\"/api/v2/scorecard/rules?page%5Blimit%5D=100\\u0026page%5Boffset%5D=100\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 01 Nov 2023 22:17:30 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/service_scorecards/List-all-rule-outcomes-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v2/service_scorecards/List-all-rule-outcomes-returns-OK-response-with-pagination.json index d3ba846e1..1823c1bb7 100644 --- a/tests/scenarios/cassettes/v2/service_scorecards/List-all-rule-outcomes-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v2/service_scorecards/List-all-rule-outcomes-returns-OK-response-with-pagination.json @@ -1 +1,61 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/scorecard/outcomes?page%5Bsize%5D=2&fields%5Boutcome%5D=state&filter%5Boutcome%5D%5Bservice_name%5D=my-service"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"be6867b9-bd71-497f-803f-208d7361fee2\\\\my-service\",\"type\":\"outcome\",\"attributes\":{\"state\":\"pass\"}},{\"id\":\"c70e3b5f-a9f7-4ef8-8417-bf28ea153631\\\\my-service\",\"type\":\"outcome\",\"attributes\":{\"state\":\"pass\"}}],\"links\":{\"next\":\"/api/v2/scorecard/outcomes?fields%5Boutcome%5D=state\\u0026filter%5Boutcome%5D%5Bservice_name%5D=my-service\\u0026page%5Blimit%5D=2\\u0026page%5Boffset%5D=2\\u0026page%5Bsize%5D=2\"}}", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 02 Nov 2023 15:08:06 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/scorecard/outcomes?page%5Bsize%5D=2&page%5Boffset%5D=2&fields%5Boutcome%5D=state&filter%5Boutcome%5D%5Bservice_name%5D=my-service"}, "response": {"body": {"string": "{\"data\":[],\"links\":{\"next\":\"/api/v2/scorecard/outcomes?fields%5Boutcome%5D=state\\u0026filter%5Boutcome%5D%5Bservice_name%5D=my-service\\u0026page%5Blimit%5D=2\\u0026page%5Boffset%5D=4\\u0026page%5Bsize%5D=2\",\"previous\":\"/api/v2/scorecard/outcomes?fields%5Boutcome%5D=state\\u0026filter%5Boutcome%5D%5Bservice_name%5D=my-service\\u0026page%5Blimit%5D=2\\u0026page%5Boffset%5D=0\\u0026page%5Bsize%5D=2\"}}", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 02 Nov 2023 15:08:06 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/scorecard/outcomes?page%5Bsize%5D=2&fields%5Boutcome%5D=state&filter%5Boutcome%5D%5Bservice_name%5D=my-service" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"be6867b9-bd71-497f-803f-208d7361fee2\\\\my-service\",\"type\":\"outcome\",\"attributes\":{\"state\":\"pass\"}},{\"id\":\"c70e3b5f-a9f7-4ef8-8417-bf28ea153631\\\\my-service\",\"type\":\"outcome\",\"attributes\":{\"state\":\"pass\"}}],\"links\":{\"next\":\"/api/v2/scorecard/outcomes?fields%5Boutcome%5D=state\\u0026filter%5Boutcome%5D%5Bservice_name%5D=my-service\\u0026page%5Blimit%5D=2\\u0026page%5Boffset%5D=2\\u0026page%5Bsize%5D=2\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 02 Nov 2023 15:08:06 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/scorecard/outcomes?page%5Bsize%5D=2&page%5Boffset%5D=2&fields%5Boutcome%5D=state&filter%5Boutcome%5D%5Bservice_name%5D=my-service" + }, + "response": { + "body": { + "string": "{\"data\":[],\"links\":{\"next\":\"/api/v2/scorecard/outcomes?fields%5Boutcome%5D=state\\u0026filter%5Boutcome%5D%5Bservice_name%5D=my-service\\u0026page%5Blimit%5D=2\\u0026page%5Boffset%5D=4\\u0026page%5Bsize%5D=2\",\"previous\":\"/api/v2/scorecard/outcomes?fields%5Boutcome%5D=state\\u0026filter%5Boutcome%5D%5Bservice_name%5D=my-service\\u0026page%5Blimit%5D=2\\u0026page%5Boffset%5D=0\\u0026page%5Bsize%5D=2\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 02 Nov 2023 15:08:06 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/service_scorecards/List-all-rule-outcomes-returns-OK-response.json b/tests/scenarios/cassettes/v2/service_scorecards/List-all-rule-outcomes-returns-OK-response.json index 0efd606e4..fd36adf37 100644 --- a/tests/scenarios/cassettes/v2/service_scorecards/List-all-rule-outcomes-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/service_scorecards/List-all-rule-outcomes-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/scorecard/outcomes"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"c70e3b5f-a9f7-4ef8-8417-bf28ea153631\\\\my-service\",\"type\":\"outcome\",\"attributes\":{\"modified_at\":\"2023-11-01T20:08:35.478323Z\",\"remarks\":\"See: \\u003ca href=\\\"https://app.datadoghq.com/services\\\"\\u003eServices\\u003c/a\\u003e\",\"service_name\":\"my-service\",\"state\":\"pass\"},\"relationships\":{\"rule\":{\"data\":{\"id\":\"c70e3b5f-a9f7-4ef8-8417-bf28ea153631\",\"type\":\"rule\"}}}},{\"id\":\"2609deb7-bbd0-4277-bf48-2265328bc4ca\\\\my-service\",\"type\":\"outcome\",\"attributes\":{\"modified_at\":\"2023-11-01T20:08:49.202899Z\",\"remarks\":\"See: \\u003ca href=\\\"https://app.datadoghq.com/services\\\"\\u003eServices\\u003c/a\\u003e\",\"service_name\":\"my-service\",\"state\":\"pass\"},\"relationships\":{\"rule\":{\"data\":{\"id\":\"2609deb7-bbd0-4277-bf48-2265328bc4ca\",\"type\":\"rule\"}}}},{\"id\":\"be6867b9-bd71-497f-803f-208d7361fee2\\\\my-service\",\"type\":\"outcome\",\"attributes\":{\"modified_at\":\"2023-11-01T20:25:35.504243Z\",\"remarks\":\"See: \\u003ca href=\\\"https://app.datadoghq.com/services\\\"\\u003eServices\\u003c/a\\u003e\",\"service_name\":\"my-service\",\"state\":\"pass\"},\"relationships\":{\"rule\":{\"data\":{\"id\":\"be6867b9-bd71-497f-803f-208d7361fee2\",\"type\":\"rule\"}}}}],\"links\":{\"next\":\"/api/v2/scorecard/outcomes?page%5Blimit%5D=100\\u0026page%5Boffset%5D=100\"}}", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 01 Nov 2023 22:17:32 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/scorecard/outcomes" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"c70e3b5f-a9f7-4ef8-8417-bf28ea153631\\\\my-service\",\"type\":\"outcome\",\"attributes\":{\"modified_at\":\"2023-11-01T20:08:35.478323Z\",\"remarks\":\"See: \\u003ca href=\\\"https://app.datadoghq.com/services\\\"\\u003eServices\\u003c/a\\u003e\",\"service_name\":\"my-service\",\"state\":\"pass\"},\"relationships\":{\"rule\":{\"data\":{\"id\":\"c70e3b5f-a9f7-4ef8-8417-bf28ea153631\",\"type\":\"rule\"}}}},{\"id\":\"2609deb7-bbd0-4277-bf48-2265328bc4ca\\\\my-service\",\"type\":\"outcome\",\"attributes\":{\"modified_at\":\"2023-11-01T20:08:49.202899Z\",\"remarks\":\"See: \\u003ca href=\\\"https://app.datadoghq.com/services\\\"\\u003eServices\\u003c/a\\u003e\",\"service_name\":\"my-service\",\"state\":\"pass\"},\"relationships\":{\"rule\":{\"data\":{\"id\":\"2609deb7-bbd0-4277-bf48-2265328bc4ca\",\"type\":\"rule\"}}}},{\"id\":\"be6867b9-bd71-497f-803f-208d7361fee2\\\\my-service\",\"type\":\"outcome\",\"attributes\":{\"modified_at\":\"2023-11-01T20:25:35.504243Z\",\"remarks\":\"See: \\u003ca href=\\\"https://app.datadoghq.com/services\\\"\\u003eServices\\u003c/a\\u003e\",\"service_name\":\"my-service\",\"state\":\"pass\"},\"relationships\":{\"rule\":{\"data\":{\"id\":\"be6867b9-bd71-497f-803f-208d7361fee2\",\"type\":\"rule\"}}}}],\"links\":{\"next\":\"/api/v2/scorecard/outcomes?page%5Blimit%5D=100\\u0026page%5Boffset%5D=100\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 01 Nov 2023 22:17:32 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/service_scorecards/List-all-rules-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v2/service_scorecards/List-all-rules-returns-OK-response-with-pagination.json index 9342e4d3e..36820aa8e 100644 --- a/tests/scenarios/cassettes/v2/service_scorecards/List-all-rules-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v2/service_scorecards/List-all-rules-returns-OK-response-with-pagination.json @@ -1 +1,89 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/scorecard/rules?page%5Bsize%5D=2&fields%5Brule%5D=name&filter%5Brule%5D%5Bcustom%5D=true"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"a5352494-7fad-4e4b-9c7a-3ecd90f30d27\",\"type\":\"rule\",\"attributes\":{\"name\":\"Test-Typescript-Create_a_new_rule_returns_Created_response-1698870335\"}},{\"id\":\"c70e3b5f-a9f7-4ef8-8417-bf28ea153631\",\"type\":\"rule\",\"attributes\":{\"name\":\"Test-Typescript-Create_outcomes_batch_returns_OK_response-1698869315\"}}],\"links\":{\"next\":\"/api/v2/scorecard/rules?fields%5Brule%5D=name\\u0026filter%5Brule%5D%5Bcustom%5D=true\\u0026page%5Blimit%5D=2\\u0026page%5Boffset%5D=2\\u0026page%5Bsize%5D=2\"}}", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 02 Nov 2023 15:06:55 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/scorecard/rules?page%5Bsize%5D=2&page%5Boffset%5D=2&fields%5Brule%5D=name&filter%5Brule%5D%5Bcustom%5D=true"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"be6867b9-bd71-497f-803f-208d7361fee2\",\"type\":\"rule\",\"attributes\":{\"name\":\"Test-Typescript-Create_outcomes_batch_returns_OK_response-1698870335\"}},{\"id\":\"76460cec-323c-4215-81ae-b16aa160d0f1\",\"type\":\"rule\",\"attributes\":{\"name\":\"Test-Typescript-Delete_a_rule_returns_OK_response-1698870335\"}}],\"links\":{\"next\":\"/api/v2/scorecard/rules?fields%5Brule%5D=name\\u0026filter%5Brule%5D%5Bcustom%5D=true\\u0026page%5Blimit%5D=2\\u0026page%5Boffset%5D=4\\u0026page%5Bsize%5D=2\",\"previous\":\"/api/v2/scorecard/rules?fields%5Brule%5D=name\\u0026filter%5Brule%5D%5Bcustom%5D=true\\u0026page%5Blimit%5D=2\\u0026page%5Boffset%5D=0\\u0026page%5Bsize%5D=2\"}}", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 02 Nov 2023 15:06:55 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/scorecard/rules?page%5Bsize%5D=2&page%5Boffset%5D=4&fields%5Brule%5D=name&filter%5Brule%5D%5Bcustom%5D=true"}, "response": {"body": {"string": "{\"data\":[],\"links\":{\"next\":\"/api/v2/scorecard/rules?fields%5Brule%5D=name\\u0026filter%5Brule%5D%5Bcustom%5D=true\\u0026page%5Blimit%5D=2\\u0026page%5Boffset%5D=6\\u0026page%5Bsize%5D=2\",\"previous\":\"/api/v2/scorecard/rules?fields%5Brule%5D=name\\u0026filter%5Brule%5D%5Bcustom%5D=true\\u0026page%5Blimit%5D=2\\u0026page%5Boffset%5D=2\\u0026page%5Bsize%5D=2\"}}", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 02 Nov 2023 15:06:55 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/scorecard/rules?page%5Bsize%5D=2&fields%5Brule%5D=name&filter%5Brule%5D%5Bcustom%5D=true" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"a5352494-7fad-4e4b-9c7a-3ecd90f30d27\",\"type\":\"rule\",\"attributes\":{\"name\":\"Test-Typescript-Create_a_new_rule_returns_Created_response-1698870335\"}},{\"id\":\"c70e3b5f-a9f7-4ef8-8417-bf28ea153631\",\"type\":\"rule\",\"attributes\":{\"name\":\"Test-Typescript-Create_outcomes_batch_returns_OK_response-1698869315\"}}],\"links\":{\"next\":\"/api/v2/scorecard/rules?fields%5Brule%5D=name\\u0026filter%5Brule%5D%5Bcustom%5D=true\\u0026page%5Blimit%5D=2\\u0026page%5Boffset%5D=2\\u0026page%5Bsize%5D=2\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 02 Nov 2023 15:06:55 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/scorecard/rules?page%5Bsize%5D=2&page%5Boffset%5D=2&fields%5Brule%5D=name&filter%5Brule%5D%5Bcustom%5D=true" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"be6867b9-bd71-497f-803f-208d7361fee2\",\"type\":\"rule\",\"attributes\":{\"name\":\"Test-Typescript-Create_outcomes_batch_returns_OK_response-1698870335\"}},{\"id\":\"76460cec-323c-4215-81ae-b16aa160d0f1\",\"type\":\"rule\",\"attributes\":{\"name\":\"Test-Typescript-Delete_a_rule_returns_OK_response-1698870335\"}}],\"links\":{\"next\":\"/api/v2/scorecard/rules?fields%5Brule%5D=name\\u0026filter%5Brule%5D%5Bcustom%5D=true\\u0026page%5Blimit%5D=2\\u0026page%5Boffset%5D=4\\u0026page%5Bsize%5D=2\",\"previous\":\"/api/v2/scorecard/rules?fields%5Brule%5D=name\\u0026filter%5Brule%5D%5Bcustom%5D=true\\u0026page%5Blimit%5D=2\\u0026page%5Boffset%5D=0\\u0026page%5Bsize%5D=2\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 02 Nov 2023 15:06:55 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/scorecard/rules?page%5Bsize%5D=2&page%5Boffset%5D=4&fields%5Brule%5D=name&filter%5Brule%5D%5Bcustom%5D=true" + }, + "response": { + "body": { + "string": "{\"data\":[],\"links\":{\"next\":\"/api/v2/scorecard/rules?fields%5Brule%5D=name\\u0026filter%5Brule%5D%5Bcustom%5D=true\\u0026page%5Blimit%5D=2\\u0026page%5Boffset%5D=6\\u0026page%5Bsize%5D=2\",\"previous\":\"/api/v2/scorecard/rules?fields%5Brule%5D=name\\u0026filter%5Brule%5D%5Bcustom%5D=true\\u0026page%5Blimit%5D=2\\u0026page%5Boffset%5D=2\\u0026page%5Bsize%5D=2\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 02 Nov 2023 15:06:55 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/service_scorecards/List-all-rules-returns-OK-response.json b/tests/scenarios/cassettes/v2/service_scorecards/List-all-rules-returns-OK-response.json index 4e0d9a30d..9a4c40294 100644 --- a/tests/scenarios/cassettes/v2/service_scorecards/List-all-rules-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/service_scorecards/List-all-rules-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/scorecard/rules"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"a5352494-7fad-4e4b-9c7a-3ecd90f30d27\",\"type\":\"rule\",\"attributes\":{\"category\":\"Observability Best Practices\",\"created_at\":\"2023-11-01T20:25:35.217803Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T20:25:35.217803Z\",\"name\":\"Test-Typescript-Create_a_new_rule_returns_Created_response-1698870335\",\"scorecard_name\":\"Observability Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"hA5zOZJXXJ4K\",\"type\":\"scorecard\"}}}},{\"id\":\"c70e3b5f-a9f7-4ef8-8417-bf28ea153631\",\"type\":\"rule\",\"attributes\":{\"category\":\"OpenAPI Spec Test Best Practices\",\"created_at\":\"2023-11-01T20:08:35.347219Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T20:08:35.347219Z\",\"name\":\"Test-Typescript-Create_outcomes_batch_returns_OK_response-1698869315\",\"owner\":\"Datadog\",\"scorecard_name\":\"OpenAPI Spec Test Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"qsxpoYRhU_yz\",\"type\":\"scorecard\"}}}},{\"id\":\"be6867b9-bd71-497f-803f-208d7361fee2\",\"type\":\"rule\",\"attributes\":{\"category\":\"OpenAPI Spec Test Best Practices\",\"created_at\":\"2023-11-01T20:25:35.374915Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T20:25:35.374915Z\",\"name\":\"Test-Typescript-Create_outcomes_batch_returns_OK_response-1698870335\",\"owner\":\"Datadog\",\"scorecard_name\":\"OpenAPI Spec Test Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"qsxpoYRhU_yz\",\"type\":\"scorecard\"}}}},{\"id\":\"76460cec-323c-4215-81ae-b16aa160d0f1\",\"type\":\"rule\",\"attributes\":{\"category\":\"OpenAPI Spec Test Best Practices\",\"created_at\":\"2023-11-01T20:25:35.637942Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T20:25:35.637942Z\",\"name\":\"Test-Typescript-Delete_a_rule_returns_OK_response-1698870335\",\"owner\":\"Datadog\",\"scorecard_name\":\"OpenAPI Spec Test Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"qsxpoYRhU_yz\",\"type\":\"scorecard\"}}}}],\"links\":{\"next\":\"/api/v2/scorecard/rules?page%5Blimit%5D=100\\u0026page%5Boffset%5D=100\"}}", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 02 Nov 2023 17:23:59 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/scorecard/rules" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"a5352494-7fad-4e4b-9c7a-3ecd90f30d27\",\"type\":\"rule\",\"attributes\":{\"category\":\"Observability Best Practices\",\"created_at\":\"2023-11-01T20:25:35.217803Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T20:25:35.217803Z\",\"name\":\"Test-Typescript-Create_a_new_rule_returns_Created_response-1698870335\",\"scorecard_name\":\"Observability Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"hA5zOZJXXJ4K\",\"type\":\"scorecard\"}}}},{\"id\":\"c70e3b5f-a9f7-4ef8-8417-bf28ea153631\",\"type\":\"rule\",\"attributes\":{\"category\":\"OpenAPI Spec Test Best Practices\",\"created_at\":\"2023-11-01T20:08:35.347219Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T20:08:35.347219Z\",\"name\":\"Test-Typescript-Create_outcomes_batch_returns_OK_response-1698869315\",\"owner\":\"Datadog\",\"scorecard_name\":\"OpenAPI Spec Test Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"qsxpoYRhU_yz\",\"type\":\"scorecard\"}}}},{\"id\":\"be6867b9-bd71-497f-803f-208d7361fee2\",\"type\":\"rule\",\"attributes\":{\"category\":\"OpenAPI Spec Test Best Practices\",\"created_at\":\"2023-11-01T20:25:35.374915Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T20:25:35.374915Z\",\"name\":\"Test-Typescript-Create_outcomes_batch_returns_OK_response-1698870335\",\"owner\":\"Datadog\",\"scorecard_name\":\"OpenAPI Spec Test Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"qsxpoYRhU_yz\",\"type\":\"scorecard\"}}}},{\"id\":\"76460cec-323c-4215-81ae-b16aa160d0f1\",\"type\":\"rule\",\"attributes\":{\"category\":\"OpenAPI Spec Test Best Practices\",\"created_at\":\"2023-11-01T20:25:35.637942Z\",\"custom\":true,\"enabled\":true,\"modified_at\":\"2023-11-01T20:25:35.637942Z\",\"name\":\"Test-Typescript-Delete_a_rule_returns_OK_response-1698870335\",\"owner\":\"Datadog\",\"scorecard_name\":\"OpenAPI Spec Test Best Practices\"},\"relationships\":{\"scorecard\":{\"data\":{\"id\":\"qsxpoYRhU_yz\",\"type\":\"scorecard\"}}}}],\"links\":{\"next\":\"/api/v2/scorecard/rules?page%5Blimit%5D=100\\u0026page%5Boffset%5D=100\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 02 Nov 2023 17:23:59 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/spans/Aggregate-spans-returns-OK-response.json b/tests/scenarios/cassettes/v2/spans/Aggregate-spans-returns-OK-response.json index 656e50f93..d1a63c4d8 100644 --- a/tests/scenarios/cassettes/v2/spans/Aggregate-spans-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/spans/Aggregate-spans-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"compute\":[{\"aggregation\":\"count\",\"interval\":\"5m\",\"type\":\"timeseries\"}],\"filter\":{\"from\":\"now-15m\",\"query\":\"*\",\"to\":\"now\"}},\"type\":\"aggregate_request\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/spans/analytics/aggregate"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"bucket\",\"id\":\"6e46dab5-e68e-4697-82e6-a4ee241037e9\",\"attributes\":{\"compute\":{\"c0\":[{\"time\":\"2023-06-29T09:40:00.000Z\",\"value\":154},{\"time\":\"2023-06-29T09:45:00.000Z\",\"value\":513},{\"time\":\"2023-06-29T09:50:00.000Z\",\"value\":357},{\"time\":\"2023-06-29T09:55:00.000Z\",\"value\":196}]},\"by\":{}}}],\"meta\":{\"elapsed\":27,\"request_id\":\"pddv1ChZjQUlYNUd2UFFPdW94MXo0a25KdmVRIi4KHtxbw_pw4TotFiThwqXCJgIkQfm0Fiipg5dt0SkRehIMJcIJBiPBYooWmylp\",\"status\":\"done\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 29 Jun 2023 09:58:48 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"compute\":[{\"aggregation\":\"count\",\"interval\":\"5m\",\"type\":\"timeseries\"}],\"filter\":{\"from\":\"now-15m\",\"query\":\"*\",\"to\":\"now\"}},\"type\":\"aggregate_request\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/spans/analytics/aggregate" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"bucket\",\"id\":\"6e46dab5-e68e-4697-82e6-a4ee241037e9\",\"attributes\":{\"compute\":{\"c0\":[{\"time\":\"2023-06-29T09:40:00.000Z\",\"value\":154},{\"time\":\"2023-06-29T09:45:00.000Z\",\"value\":513},{\"time\":\"2023-06-29T09:50:00.000Z\",\"value\":357},{\"time\":\"2023-06-29T09:55:00.000Z\",\"value\":196}]},\"by\":{}}}],\"meta\":{\"elapsed\":27,\"request_id\":\"pddv1ChZjQUlYNUd2UFFPdW94MXo0a25KdmVRIi4KHtxbw_pw4TotFiThwqXCJgIkQfm0Fiipg5dt0SkRehIMJcIJBiPBYooWmylp\",\"status\":\"done\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 29 Jun 2023 09:58:48 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/spans/Get-a-list-of-spans-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v2/spans/Get-a-list-of-spans-returns-OK-response-with-pagination.json index 4ee24daba..beffad661 100644 --- a/tests/scenarios/cassettes/v2/spans/Get-a-list-of-spans-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v2/spans/Get-a-list-of-spans-returns-OK-response-with-pagination.json @@ -1 +1,61 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/spans/events?page%5Blimit%5D=2"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"AYkGw9AoAAAjORSx5nT-SgoN\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":990123,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":48,\"name\":\"http-nio-8080-exec-5\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:47:20.655Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"448280336884642854\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"7127979198849133880\",\"start_timestamp\":\"2023-06-29T10:47:20.655Z\",\"tags\":[\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"space_name:space_1\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"project:cf-platform-engineering-cipp2\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"p-bosh\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"container_name:java-sample-app-spartancrimson_0\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"939688716533284796\",\"type\":\"web\"}},{\"id\":\"AYkGw7yfAAD8gstJ7gcCNUAm\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":790162,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":49,\"name\":\"http-nio-8080-exec-6\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:47:15.629Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"8447433361241490823\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"8192178375945869728\",\"start_timestamp\":\"2023-06-29T10:47:15.629Z\",\"tags\":[\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"project:cf-platform-engineering-cipp2\",\"space_name:space_1\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version:1.0.0\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"cloudfoundry\",\"bosh_name:compute\",\"container_name:java-sample-app-spartancrimson_0\",\"cf_instance_ip:10.0.4.8\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"2756345663404279847\",\"type\":\"web\"}}],\"meta\":{\"elapsed\":858,\"request_id\":\"pddv1ChZFaU5EVWxkX1FqU3ZFb3dkdWxVNXBBIiwKHP17RvwficAzSlvDdVk6gMQz7H8fnYtawdNZ3HUSDEJoWvIFEWjLOe8GTA\",\"status\":\"done\",\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWWtHdzdHdGxxTEVFUUFBQUFBQUFBQVlBQUFBQUVGWmEwZDNOM2xtUVVGRU9HZHpkRW8zWjJORFRsVkJiUUFBQUNRQUFBQUFNREU0T1RBMll6TXRZelUwWmkwMFpUWXlMV0k1WVdRdFl6azFNell5TWpkak4yTmsiLCJ2YWx1ZXMiOlsiMjAyMy0wNi0yOVQxMDo0NzoxNS42MjlaIiwtMTc2NzcxNzg3MV19\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/spans/events?filter%5Bfrom%5D=1688034751000\\u0026filter%5Bto%5D=1688035651000\\u0026page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWWtHdzdHdGxxTEVFUUFBQUFBQUFBQVlBQUFBQUVGWmEwZDNOM2xtUVVGRU9HZHpkRW8zWjJORFRsVkJiUUFBQUNRQUFBQUFNREU0T1RBMll6TXRZelUwWmkwMFpUWXlMV0k1WVdRdFl6azFNell5TWpkak4yTmsiLCJ2YWx1ZXMiOlsiMjAyMy0wNi0yOVQxMDo0NzoxNS42MjlaIiwtMTc2NzcxNzg3MV19\\u0026page%5Blimit%5D=2\"}}", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 29 Jun 2023 10:47:31 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/spans/events?page%5Blimit%5D=2&page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWWtHdzdHdGxxTEVFUUFBQUFBQUFBQVlBQUFBQUVGWmEwZDNOM2xtUVVGRU9HZHpkRW8zWjJORFRsVkJiUUFBQUNRQUFBQUFNREU0T1RBMll6TXRZelUwWmkwMFpUWXlMV0k1WVdRdFl6azFNell5TWpkak4yTmsiLCJ2YWx1ZXMiOlsiMjAyMy0wNi0yOVQxMDo0NzoxNS42MjlaIiwtMTc2NzcxNzg3MV19"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"AYkGw6kXAAASYY9WgCMoccQR\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":1042821,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":53,\"name\":\"http-nio-8080-exec-10\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:47:10.593Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"1394316277479325161\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"3886766242556294952\",\"start_timestamp\":\"2023-06-29T10:47:10.592Z\",\"tags\":[\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"project:cf-platform-engineering-cipp2\",\"space_name:space_1\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version:1.0.0\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"p-bosh\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"container_name:java-sample-app-spartancrimson_0\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"1280351704974743642\",\"type\":\"web\"}}],\"meta\":{\"elapsed\":201,\"request_id\":\"pddv1ChZ5ZEJWRk95R1REeUVKS3htOUdUQ3B3IiwKHJbvg-g2qsCqx4K59iHfDOfU_yq1_MYTXiSpqZMSDGKm-jQIz5udYaH73g\",\"status\":\"done\",\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWWtHdzRwa083amdBZ0FBQUFBQUFBQVlBQUFBQUVGWmEwZDNOVmRSUVVGQ01sbFRNV3N3WTNGdGVsQndad0FBQUNRQUFBQUFNREU0T1RBMll6TXRPR0UyTkMwMFpETmlMV0ZqWm1NdFlUaGxaR1kxTW1ZeE1Ua3kiLCJ2YWx1ZXMiOlsiMjAyMy0wNi0yOVQxMDo0NzowNS41NzJaIiwxMDAxOTcxNzE0XX0=\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/spans/events?filter%5Bfrom%5D=1688034753000\\u0026filter%5Bto%5D=1688035653000\\u0026page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWWtHdzRwa083amdBZ0FBQUFBQUFBQVlBQUFBQUVGWmEwZDNOVmRSUVVGQ01sbFRNV3N3WTNGdGVsQndad0FBQUNRQUFBQUFNREU0T1RBMll6TXRPR0UyTkMwMFpETmlMV0ZqWm1NdFlUaGxaR1kxTW1ZeE1Ua3kiLCJ2YWx1ZXMiOlsiMjAyMy0wNi0yOVQxMDo0NzowNS41NzJaIiwxMDAxOTcxNzE0XX0%3D\\u0026page%5Blimit%5D=2\"}}", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 29 Jun 2023 10:47:31 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/spans/events?page%5Blimit%5D=2" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"AYkGw9AoAAAjORSx5nT-SgoN\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":990123,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":48,\"name\":\"http-nio-8080-exec-5\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:47:20.655Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"448280336884642854\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"7127979198849133880\",\"start_timestamp\":\"2023-06-29T10:47:20.655Z\",\"tags\":[\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"space_name:space_1\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"project:cf-platform-engineering-cipp2\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"p-bosh\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"container_name:java-sample-app-spartancrimson_0\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"939688716533284796\",\"type\":\"web\"}},{\"id\":\"AYkGw7yfAAD8gstJ7gcCNUAm\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":790162,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":49,\"name\":\"http-nio-8080-exec-6\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:47:15.629Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"8447433361241490823\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"8192178375945869728\",\"start_timestamp\":\"2023-06-29T10:47:15.629Z\",\"tags\":[\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"project:cf-platform-engineering-cipp2\",\"space_name:space_1\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version:1.0.0\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"cloudfoundry\",\"bosh_name:compute\",\"container_name:java-sample-app-spartancrimson_0\",\"cf_instance_ip:10.0.4.8\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"2756345663404279847\",\"type\":\"web\"}}],\"meta\":{\"elapsed\":858,\"request_id\":\"pddv1ChZFaU5EVWxkX1FqU3ZFb3dkdWxVNXBBIiwKHP17RvwficAzSlvDdVk6gMQz7H8fnYtawdNZ3HUSDEJoWvIFEWjLOe8GTA\",\"status\":\"done\",\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWWtHdzdHdGxxTEVFUUFBQUFBQUFBQVlBQUFBQUVGWmEwZDNOM2xtUVVGRU9HZHpkRW8zWjJORFRsVkJiUUFBQUNRQUFBQUFNREU0T1RBMll6TXRZelUwWmkwMFpUWXlMV0k1WVdRdFl6azFNell5TWpkak4yTmsiLCJ2YWx1ZXMiOlsiMjAyMy0wNi0yOVQxMDo0NzoxNS42MjlaIiwtMTc2NzcxNzg3MV19\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/spans/events?filter%5Bfrom%5D=1688034751000\\u0026filter%5Bto%5D=1688035651000\\u0026page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWWtHdzdHdGxxTEVFUUFBQUFBQUFBQVlBQUFBQUVGWmEwZDNOM2xtUVVGRU9HZHpkRW8zWjJORFRsVkJiUUFBQUNRQUFBQUFNREU0T1RBMll6TXRZelUwWmkwMFpUWXlMV0k1WVdRdFl6azFNell5TWpkak4yTmsiLCJ2YWx1ZXMiOlsiMjAyMy0wNi0yOVQxMDo0NzoxNS42MjlaIiwtMTc2NzcxNzg3MV19\\u0026page%5Blimit%5D=2\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 29 Jun 2023 10:47:31 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/spans/events?page%5Blimit%5D=2&page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWWtHdzdHdGxxTEVFUUFBQUFBQUFBQVlBQUFBQUVGWmEwZDNOM2xtUVVGRU9HZHpkRW8zWjJORFRsVkJiUUFBQUNRQUFBQUFNREU0T1RBMll6TXRZelUwWmkwMFpUWXlMV0k1WVdRdFl6azFNell5TWpkak4yTmsiLCJ2YWx1ZXMiOlsiMjAyMy0wNi0yOVQxMDo0NzoxNS42MjlaIiwtMTc2NzcxNzg3MV19" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"AYkGw6kXAAASYY9WgCMoccQR\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":1042821,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":53,\"name\":\"http-nio-8080-exec-10\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:47:10.593Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"1394316277479325161\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"3886766242556294952\",\"start_timestamp\":\"2023-06-29T10:47:10.592Z\",\"tags\":[\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"project:cf-platform-engineering-cipp2\",\"space_name:space_1\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version:1.0.0\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"p-bosh\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"container_name:java-sample-app-spartancrimson_0\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"1280351704974743642\",\"type\":\"web\"}}],\"meta\":{\"elapsed\":201,\"request_id\":\"pddv1ChZ5ZEJWRk95R1REeUVKS3htOUdUQ3B3IiwKHJbvg-g2qsCqx4K59iHfDOfU_yq1_MYTXiSpqZMSDGKm-jQIz5udYaH73g\",\"status\":\"done\",\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWWtHdzRwa083amdBZ0FBQUFBQUFBQVlBQUFBQUVGWmEwZDNOVmRSUVVGQ01sbFRNV3N3WTNGdGVsQndad0FBQUNRQUFBQUFNREU0T1RBMll6TXRPR0UyTkMwMFpETmlMV0ZqWm1NdFlUaGxaR1kxTW1ZeE1Ua3kiLCJ2YWx1ZXMiOlsiMjAyMy0wNi0yOVQxMDo0NzowNS41NzJaIiwxMDAxOTcxNzE0XX0=\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/spans/events?filter%5Bfrom%5D=1688034753000\\u0026filter%5Bto%5D=1688035653000\\u0026page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWWtHdzRwa083amdBZ0FBQUFBQUFBQVlBQUFBQUVGWmEwZDNOVmRSUVVGQ01sbFRNV3N3WTNGdGVsQndad0FBQUNRQUFBQUFNREU0T1RBMll6TXRPR0UyTkMwMFpETmlMV0ZqWm1NdFlUaGxaR1kxTW1ZeE1Ua3kiLCJ2YWx1ZXMiOlsiMjAyMy0wNi0yOVQxMDo0NzowNS41NzJaIiwxMDAxOTcxNzE0XX0%3D\\u0026page%5Blimit%5D=2\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 29 Jun 2023 10:47:31 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/spans/Get-a-list-of-spans-returns-OK-response.json b/tests/scenarios/cassettes/v2/spans/Get-a-list-of-spans-returns-OK-response.json index edcdbca55..03cdba862 100644 --- a/tests/scenarios/cassettes/v2/spans/Get-a-list-of-spans-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/spans/Get-a-list-of-spans-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/spans/events"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"AYkGxUNAAACwbKvWE7Iew35s\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":514696,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":48,\"name\":\"http-nio-8080-exec-5\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:48:56.164Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"449167507436699662\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"3601830290946202752\",\"start_timestamp\":\"2023-06-29T10:48:56.164Z\",\"tags\":[\"foo:bar\",\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"project:cf-platform-engineering-cipp2\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"space_name:space_1\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version:1.0.0\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"p-bosh\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"container_name:java-sample-app-spartancrimson_0\",\"cf_instance_ip:10.0.4.8\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"7817822160947910556\",\"type\":\"web\"}},{\"id\":\"AYkGxS-3AAAxy8mGz0R2CSM9\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":593726,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":49,\"name\":\"http-nio-8080-exec-6\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:48:51.12Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"6198058719623174754\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"2654534327444187106\",\"start_timestamp\":\"2023-06-29T10:48:51.12Z\",\"tags\":[\"foo:bar\",\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"space_name:space_1\",\"project:cf-platform-engineering-cipp2\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version:1.0.0\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"p-bosh\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"container_name:java-sample-app-spartancrimson_0\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"4405383215745811724\",\"type\":\"web\"}},{\"id\":\"AYkGxRwvAABcR4lJbz6zlPkE\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":713605,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":53,\"name\":\"http-nio-8080-exec-10\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:48:46.076Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"1436093748613062352\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"2977372347050012901\",\"start_timestamp\":\"2023-06-29T10:48:46.076Z\",\"tags\":[\"foo:bar\",\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"space_name:space_1\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"project:cf-platform-engineering-cipp2\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version:1.0.0\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"p-bosh\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"container_name:java-sample-app-spartancrimson_0\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"358560587955417655\",\"type\":\"web\"}},{\"id\":\"AYkGxQipAAB8uAeyEmh0QtYC\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":948906,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":46,\"name\":\"http-nio-8080-exec-3\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:48:41.051Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"3129866022456684728\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"4287785059450014914\",\"start_timestamp\":\"2023-06-29T10:48:41.051Z\",\"tags\":[\"foo:bar\",\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"space_name:space_1\",\"project:cf-platform-engineering-cipp2\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version:1.0.0\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"p-bosh\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"container_name:java-sample-app-spartancrimson_0\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"204522259346966059\",\"type\":\"web\"}},{\"id\":\"AYkGxPUgAAB42lb55Ab1_tZ1\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":1077931,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":51,\"name\":\"http-nio-8080-exec-8\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:48:36.03Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"4195125631686517273\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"1297431508004914691\",\"start_timestamp\":\"2023-06-29T10:48:36.029Z\",\"tags\":[\"foo:bar\",\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"project:cf-platform-engineering-cipp2\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"space_name:space_1\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"p-bosh\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"container_name:java-sample-app-spartancrimson_0\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"8491249581831854108\",\"type\":\"web\"}},{\"id\":\"AYkGxOGYAADB73oxRXktmBYm\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":877949,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":52,\"name\":\"http-nio-8080-exec-9\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:48:31.006Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"9113880885691680682\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"555056441597398253\",\"start_timestamp\":\"2023-06-29T10:48:31.006Z\",\"tags\":[\"foo:bar\",\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"project:cf-platform-engineering-cipp2\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"space_name:space_1\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version:1.0.0\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"cloudfoundry\",\"bosh_name:compute\",\"cf_instance_ip:10.0.4.8\",\"container_name:java-sample-app-spartancrimson_0\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"2744660405908742810\",\"type\":\"web\"}},{\"id\":\"AYkGxM4PAAD3aDwAqJz8290t\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":825725,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":44,\"name\":\"http-nio-8080-exec-1\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:48:25.985Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"3138422063971174408\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"612025805363205148\",\"start_timestamp\":\"2023-06-29T10:48:25.985Z\",\"tags\":[\"foo:bar\",\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"project:cf-platform-engineering-cipp2\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"space_name:space_1\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"p-bosh\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"cloudfoundry\",\"bosh_name:compute\",\"container_name:java-sample-app-spartancrimson_0\",\"cf_instance_ip:10.0.4.8\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"3305078740163927766\",\"type\":\"web\"}},{\"id\":\"AYkGxLqOAAAzK60-2zIDFrw-\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":1025852,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":45,\"name\":\"http-nio-8080-exec-2\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:48:20.961Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"5221468288941045604\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"383413896370368081\",\"start_timestamp\":\"2023-06-29T10:48:20.96Z\",\"tags\":[\"foo:bar\",\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"space_name:space_1\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"project:cf-platform-engineering-cipp2\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"p-bosh\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"cloudfoundry\",\"bosh_name:compute\",\"cf_instance_ip:10.0.4.8\",\"container_name:java-sample-app-spartancrimson_0\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"4520541865523656222\",\"type\":\"web\"}},{\"id\":\"AYkGxKcAAAATy7DNs3Ta_2Ri\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":1156914,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":50,\"name\":\"http-nio-8080-exec-7\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:48:15.938Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"111160777994553411\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"9215279710332785390\",\"start_timestamp\":\"2023-06-29T10:48:15.937Z\",\"tags\":[\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"project:cf-platform-engineering-cipp2\",\"space_name:space_1\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"p-bosh\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"container_name:java-sample-app-spartancrimson_0\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"7089794561407816665\",\"type\":\"web\"}},{\"id\":\"AYkGxJN3AACSs55GKR2Hy2F-\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":931086,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":51,\"name\":\"http-nio-8080-exec-8\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:48:10.915Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"5849434087931512213\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"6003756355769294350\",\"start_timestamp\":\"2023-06-29T10:48:10.915Z\",\"tags\":[\"foo:bar\",\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"project:cf-platform-engineering-cipp2\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"space_name:space_1\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"container_name:java-sample-app-spartancrimson_0\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"9106672590904444063\",\"type\":\"web\"}}],\"meta\":{\"elapsed\":157,\"request_id\":\"pddv1ChYxbHNuZUFJcVRVeWZ5eGtka3d6SnpRIiwKHDweE2xgOBMwHRg7rKprOPqHvDyULkaCiXiOmi0SDCZX97b2Xx96YbK_Dg\",\"status\":\"done\",\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWWtHeEltampLTUhlZ0FBQUFBQUFBQVlBQUFBQUVGWmEwZDRTazR6UVVGRFUzTTFOVWRMVWpKSWVUSkdMUUFBQUNRQUFBQUFNREU0T1RBMll6UXRPV1EwTWkwMFpUQmpMV0V6TVRRdFlXUTVOVFJpTUdZM016QTQiLCJ2YWx1ZXMiOlsiMjAyMy0wNi0yOVQxMDo0ODoxMC45MTVaIiwtMTkzNTQ3Mjc3NF19\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/spans/events?filter%5Bfrom%5D=1688034854000\\u0026filter%5Bto%5D=1688035754000\\u0026page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWWtHeEltampLTUhlZ0FBQUFBQUFBQVlBQUFBQUVGWmEwZDRTazR6UVVGRFUzTTFOVWRMVWpKSWVUSkdMUUFBQUNRQUFBQUFNREU0T1RBMll6UXRPV1EwTWkwMFpUQmpMV0V6TVRRdFlXUTVOVFJpTUdZM016QTQiLCJ2YWx1ZXMiOlsiMjAyMy0wNi0yOVQxMDo0ODoxMC45MTVaIiwtMTkzNTQ3Mjc3NF19\\u0026page%5Blimit%5D=10\"}}", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 29 Jun 2023 10:49:14 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/spans/events" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"AYkGxUNAAACwbKvWE7Iew35s\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":514696,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":48,\"name\":\"http-nio-8080-exec-5\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:48:56.164Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"449167507436699662\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"3601830290946202752\",\"start_timestamp\":\"2023-06-29T10:48:56.164Z\",\"tags\":[\"foo:bar\",\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"project:cf-platform-engineering-cipp2\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"space_name:space_1\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version:1.0.0\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"p-bosh\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"container_name:java-sample-app-spartancrimson_0\",\"cf_instance_ip:10.0.4.8\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"7817822160947910556\",\"type\":\"web\"}},{\"id\":\"AYkGxS-3AAAxy8mGz0R2CSM9\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":593726,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":49,\"name\":\"http-nio-8080-exec-6\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:48:51.12Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"6198058719623174754\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"2654534327444187106\",\"start_timestamp\":\"2023-06-29T10:48:51.12Z\",\"tags\":[\"foo:bar\",\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"space_name:space_1\",\"project:cf-platform-engineering-cipp2\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version:1.0.0\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"p-bosh\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"container_name:java-sample-app-spartancrimson_0\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"4405383215745811724\",\"type\":\"web\"}},{\"id\":\"AYkGxRwvAABcR4lJbz6zlPkE\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":713605,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":53,\"name\":\"http-nio-8080-exec-10\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:48:46.076Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"1436093748613062352\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"2977372347050012901\",\"start_timestamp\":\"2023-06-29T10:48:46.076Z\",\"tags\":[\"foo:bar\",\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"space_name:space_1\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"project:cf-platform-engineering-cipp2\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version:1.0.0\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"p-bosh\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"container_name:java-sample-app-spartancrimson_0\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"358560587955417655\",\"type\":\"web\"}},{\"id\":\"AYkGxQipAAB8uAeyEmh0QtYC\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":948906,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":46,\"name\":\"http-nio-8080-exec-3\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:48:41.051Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"3129866022456684728\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"4287785059450014914\",\"start_timestamp\":\"2023-06-29T10:48:41.051Z\",\"tags\":[\"foo:bar\",\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"space_name:space_1\",\"project:cf-platform-engineering-cipp2\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version:1.0.0\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"p-bosh\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"container_name:java-sample-app-spartancrimson_0\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"204522259346966059\",\"type\":\"web\"}},{\"id\":\"AYkGxPUgAAB42lb55Ab1_tZ1\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":1077931,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":51,\"name\":\"http-nio-8080-exec-8\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:48:36.03Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"4195125631686517273\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"1297431508004914691\",\"start_timestamp\":\"2023-06-29T10:48:36.029Z\",\"tags\":[\"foo:bar\",\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"project:cf-platform-engineering-cipp2\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"space_name:space_1\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"p-bosh\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"container_name:java-sample-app-spartancrimson_0\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"8491249581831854108\",\"type\":\"web\"}},{\"id\":\"AYkGxOGYAADB73oxRXktmBYm\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":877949,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":52,\"name\":\"http-nio-8080-exec-9\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:48:31.006Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"9113880885691680682\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"555056441597398253\",\"start_timestamp\":\"2023-06-29T10:48:31.006Z\",\"tags\":[\"foo:bar\",\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"project:cf-platform-engineering-cipp2\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"space_name:space_1\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version:1.0.0\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"cloudfoundry\",\"bosh_name:compute\",\"cf_instance_ip:10.0.4.8\",\"container_name:java-sample-app-spartancrimson_0\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"2744660405908742810\",\"type\":\"web\"}},{\"id\":\"AYkGxM4PAAD3aDwAqJz8290t\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":825725,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":44,\"name\":\"http-nio-8080-exec-1\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:48:25.985Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"3138422063971174408\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"612025805363205148\",\"start_timestamp\":\"2023-06-29T10:48:25.985Z\",\"tags\":[\"foo:bar\",\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"project:cf-platform-engineering-cipp2\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"space_name:space_1\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"p-bosh\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"cloudfoundry\",\"bosh_name:compute\",\"container_name:java-sample-app-spartancrimson_0\",\"cf_instance_ip:10.0.4.8\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"3305078740163927766\",\"type\":\"web\"}},{\"id\":\"AYkGxLqOAAAzK60-2zIDFrw-\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":1025852,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":45,\"name\":\"http-nio-8080-exec-2\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:48:20.961Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"5221468288941045604\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"383413896370368081\",\"start_timestamp\":\"2023-06-29T10:48:20.96Z\",\"tags\":[\"foo:bar\",\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"space_name:space_1\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"project:cf-platform-engineering-cipp2\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"p-bosh\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"cloudfoundry\",\"bosh_name:compute\",\"cf_instance_ip:10.0.4.8\",\"container_name:java-sample-app-spartancrimson_0\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"4520541865523656222\",\"type\":\"web\"}},{\"id\":\"AYkGxKcAAAATy7DNs3Ta_2Ri\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":1156914,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":50,\"name\":\"http-nio-8080-exec-7\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:48:15.938Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"111160777994553411\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"9215279710332785390\",\"start_timestamp\":\"2023-06-29T10:48:15.937Z\",\"tags\":[\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"project:cf-platform-engineering-cipp2\",\"space_name:space_1\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"p-bosh\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"container_name:java-sample-app-spartancrimson_0\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"7089794561407816665\",\"type\":\"web\"}},{\"id\":\"AYkGxJN3AACSs55GKR2Hy2F-\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":931086,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":51,\"name\":\"http-nio-8080-exec-8\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:48:10.915Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"5849434087931512213\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"6003756355769294350\",\"start_timestamp\":\"2023-06-29T10:48:10.915Z\",\"tags\":[\"foo:bar\",\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"project:cf-platform-engineering-cipp2\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"space_name:space_1\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"container_name:java-sample-app-spartancrimson_0\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"9106672590904444063\",\"type\":\"web\"}}],\"meta\":{\"elapsed\":157,\"request_id\":\"pddv1ChYxbHNuZUFJcVRVeWZ5eGtka3d6SnpRIiwKHDweE2xgOBMwHRg7rKprOPqHvDyULkaCiXiOmi0SDCZX97b2Xx96YbK_Dg\",\"status\":\"done\",\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWWtHeEltampLTUhlZ0FBQUFBQUFBQVlBQUFBQUVGWmEwZDRTazR6UVVGRFUzTTFOVWRMVWpKSWVUSkdMUUFBQUNRQUFBQUFNREU0T1RBMll6UXRPV1EwTWkwMFpUQmpMV0V6TVRRdFlXUTVOVFJpTUdZM016QTQiLCJ2YWx1ZXMiOlsiMjAyMy0wNi0yOVQxMDo0ODoxMC45MTVaIiwtMTkzNTQ3Mjc3NF19\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/spans/events?filter%5Bfrom%5D=1688034854000\\u0026filter%5Bto%5D=1688035754000\\u0026page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWWtHeEltampLTUhlZ0FBQUFBQUFBQVlBQUFBQUVGWmEwZDRTazR6UVVGRFUzTTFOVWRMVWpKSWVUSkdMUUFBQUNRQUFBQUFNREU0T1RBMll6UXRPV1EwTWkwMFpUQmpMV0V6TVRRdFlXUTVOVFJpTUdZM016QTQiLCJ2YWx1ZXMiOlsiMjAyMy0wNi0yOVQxMDo0ODoxMC45MTVaIiwtMTkzNTQ3Mjc3NF19\\u0026page%5Blimit%5D=10\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 29 Jun 2023 10:49:14 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/spans/Get-a-list-of-spans-returns-Unprocessable-Entity-response.json b/tests/scenarios/cassettes/v2/spans/Get-a-list-of-spans-returns-Unprocessable-Entity-response.json index a3ea228ab..6925ca746 100644 --- a/tests/scenarios/cassettes/v2/spans/Get-a-list-of-spans-returns-Unprocessable-Entity-response.json +++ b/tests/scenarios/cassettes/v2/spans/Get-a-list-of-spans-returns-Unprocessable-Entity-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/spans/events?filter%5Bfrom%5D=now&filter%5Bto%5D=now-1m"}, "response": {"body": {"string": "{\"errors\":[{\"title\":\"Generic Error\",\"detail\":\"invalid_argument(Field 'filter.from,to' is invalid: 'from' should be anterior to 'to')\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 422, "message": "Unprocessable Entity"}}, "recorded_at": "Thu, 29 Jun 2023 09:59:48 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/spans/events?filter%5Bfrom%5D=now&filter%5Bto%5D=now-1m" + }, + "response": { + "body": { + "string": "{\"errors\":[{\"title\":\"Generic Error\",\"detail\":\"invalid_argument(Field 'filter.from,to' is invalid: 'from' should be anterior to 'to')\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 422, + "message": "Unprocessable Entity" + } + }, + "recorded_at": "Thu, 29 Jun 2023 09:59:48 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/spans/Search-spans-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v2/spans/Search-spans-returns-OK-response-with-pagination.json index 36c440427..1195a6a8d 100644 --- a/tests/scenarios/cassettes/v2/spans/Search-spans-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v2/spans/Search-spans-returns-OK-response-with-pagination.json @@ -1 +1,73 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"filter\":{\"from\":\"now-15m\",\"query\":\"service:python*\",\"to\":\"now\"},\"options\":{\"timezone\":\"GMT\"},\"page\":{\"limit\":2},\"sort\":\"timestamp\"},\"type\":\"search_request\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/spans/events/search"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"AYkGun04AAAo1YWD8PZ5wxoT\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"application_name\":\"python-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"flask\",\"container_id\":\"8ac6ec63-4309-4461-5abc-6232\",\"duration\":4218725,\"env\":\"pcf-spartancrimson\",\"flask\":{\"endpoint\":\"hello_world\",\"url_rule\":\"/\",\"version\":\"2.1.2\"},\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"python\",\"process_id\":\"437\",\"runtime-id\":\"7f72d8756af44893a60b69a077caded8\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"uri\":\"python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:37:09.221Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"python-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"12174885344805365765\",\"start_timestamp\":\"2023-06-29T10:37:09.217Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"uri:python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"project:cf-platform-engineering-cipp2\",\"space_name:space_1\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"version:1.0.0\",\"app_name:python-sample-app-spartancrimson\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"app_instance_guid:8ac6ec63-4309-4461-5abc-6232\",\"application_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"app_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"bosh_job:compute\",\"instance_group:compute\",\"application_name:python-sample-app-spartancrimson\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"container_name:8ac6ec63-4309-4461-5abc-6232\",\"cf-6a3777f94c200f214075\",\"container_id:8ac6ec63-4309-4461-5abc-6232\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"container_name:python-sample-app-spartancrimson_0\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"pcf-spartancrimson\",\"org_name:org_1\",\"service:python-sample-app-spartancrimson\",\"bosh_ip:10.0.4.8\",\"cloudfoundry\",\"bosh_name:compute\",\"cf_instance_ip:10.0.4.8\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"app_guid:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"1376633447483012831\",\"type\":\"web\"}},{\"id\":\"AYkGupDBAACn0_VTeXCyw8iL\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"application_name\":\"python-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"flask\",\"container_id\":\"8ac6ec63-4309-4461-5abc-6232\",\"duration\":5037530,\"env\":\"pcf-spartancrimson\",\"flask\":{\"endpoint\":\"hello_world\",\"url_rule\":\"/\",\"version\":\"2.1.2\"},\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"python\",\"process_id\":\"437\",\"runtime-id\":\"7f72d8756af44893a60b69a077caded8\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"uri\":\"python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:37:14.249Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"python-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"17156680518146914707\",\"start_timestamp\":\"2023-06-29T10:37:14.244Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"uri:python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"project:cf-platform-engineering-cipp2\",\"space_name:space_1\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"version:1.0.0\",\"app_name:python-sample-app-spartancrimson\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"app_instance_guid:8ac6ec63-4309-4461-5abc-6232\",\"application_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"app_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"bosh_job:compute\",\"instance_group:compute\",\"application_name:python-sample-app-spartancrimson\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"container_name:8ac6ec63-4309-4461-5abc-6232\",\"cf-6a3777f94c200f214075\",\"container_id:8ac6ec63-4309-4461-5abc-6232\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"container_name:python-sample-app-spartancrimson_0\",\"p-bosh\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"pcf-spartancrimson\",\"org_name:org_1\",\"service:python-sample-app-spartancrimson\",\"bosh_ip:10.0.4.8\",\"cloudfoundry\",\"bosh_name:compute\",\"cf_instance_ip:10.0.4.8\",\"director:p-bosh\",\"app_guid:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"10072306532714635001\",\"type\":\"web\"}}],\"meta\":{\"elapsed\":119,\"request_id\":\"pddv1ChZuakMtMWlvdlJ4V0lJak9EcHU2TEJ3Ii0KHVlO2NOBwN8iC_DRWp_2gjDOZaZaJKQAA7kb0dm9Egx4l7CkOLtGNcaMVIE\",\"status\":\"done\",\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWWtHdW9TSmhsc20td0FBQUFBQUFBQVlBQUFBQUVGWmEwZDFjRVJDUVVGRGJqQmZWbFJsV0VONWR6aHBUQUFBQUNRQUFBQUFNREU0T1RBMll6QXROVEZrT0MwME5EYzVMV0ZsT0RndE56WXdZbVl4TldRM016QXkiLCJ2YWx1ZXMiOlsiMjAyMy0wNi0yOVQxMDozNzoxNC4yNDlaIiwtMjA0MDg0NjU5N119\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/spans/events?filter%5Bfrom%5D=1688035027000\\u0026filter%5Bquery%5D=service%3Apython%2A\\u0026filter%5Bto%5D=1688035927000\\u0026page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWWtHdW9TSmhsc20td0FBQUFBQUFBQVlBQUFBQUVGWmEwZDFjRVJDUVVGRGJqQmZWbFJsV0VONWR6aHBUQUFBQUNRQUFBQUFNREU0T1RBMll6QXROVEZrT0MwME5EYzVMV0ZsT0RndE56WXdZbVl4TldRM016QXkiLCJ2YWx1ZXMiOlsiMjAyMy0wNi0yOVQxMDozNzoxNC4yNDlaIiwtMjA0MDg0NjU5N119\\u0026page%5Blimit%5D=2\\u0026sort=timestamp\"}}", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 29 Jun 2023 10:52:06 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"filter\":{\"from\":\"now-15m\",\"query\":\"service:python*\",\"to\":\"now\"},\"options\":{\"timezone\":\"GMT\"},\"page\":{\"cursor\":\"eyJhZnRlciI6IkFnQUFBWWtHdW9TSmhsc20td0FBQUFBQUFBQVlBQUFBQUVGWmEwZDFjRVJDUVVGRGJqQmZWbFJsV0VONWR6aHBUQUFBQUNRQUFBQUFNREU0T1RBMll6QXROVEZrT0MwME5EYzVMV0ZsT0RndE56WXdZbVl4TldRM016QXkiLCJ2YWx1ZXMiOlsiMjAyMy0wNi0yOVQxMDozNzoxNC4yNDlaIiwtMjA0MDg0NjU5N119\",\"limit\":2},\"sort\":\"timestamp\"},\"type\":\"search_request\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/spans/events/search"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"AYkGuqRIAAC1Q6SQTHyaHA2u\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"application_name\":\"python-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"flask\",\"container_id\":\"8ac6ec63-4309-4461-5abc-6232\",\"duration\":5749377,\"env\":\"pcf-spartancrimson\",\"flask\":{\"endpoint\":\"hello_world\",\"url_rule\":\"/\",\"version\":\"2.1.2\"},\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"python\",\"process_id\":\"437\",\"runtime-id\":\"7f72d8756af44893a60b69a077caded8\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"uri\":\"python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:37:19.278Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"python-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"17551449796724253880\",\"start_timestamp\":\"2023-06-29T10:37:19.273Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"uri:python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"space_name:space_1\",\"project:cf-platform-engineering-cipp2\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"version:1.0.0\",\"app_name:python-sample-app-spartancrimson\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"app_instance_guid:8ac6ec63-4309-4461-5abc-6232\",\"application_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"app_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"application_name:python-sample-app-spartancrimson\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"container_name:8ac6ec63-4309-4461-5abc-6232\",\"container_id:8ac6ec63-4309-4461-5abc-6232\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"container_name:python-sample-app-spartancrimson_0\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"pcf-spartancrimson\",\"org_name:org_1\",\"service:python-sample-app-spartancrimson\",\"bosh_ip:10.0.4.8\",\"cloudfoundry\",\"bosh_name:compute\",\"cf_instance_ip:10.0.4.8\",\"app_guid:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"12541863544722093871\",\"type\":\"web\"}}],\"meta\":{\"elapsed\":39,\"request_id\":\"pddv1ChZ6YW8tcXdMMlNKV3NjZTJYc2RsamtRIi0KHU_gDUvl5wf5sT6uYH452af9CCeAmcRVZ5Q5N69xEgz8z3DsbFPLXFXIN88\",\"status\":\"done\",\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWWtHdXF2UUQ0YzdlUUFBQUFBQUFBQVlBQUFBQUVGWmEwZDFjbVpSUVVGRWMzZDVaVUZYYVZOblFWRmxOUUFBQUNRQUFBQUFNREU0T1RBMll6QXROVEZrT0MwME5EYzVMV0ZsT0RndE56WXdZbVl4TldRM016QXkiLCJ2YWx1ZXMiOlsiMjAyMy0wNi0yOVQxMDozNzoyNC4zMDRaIiwyNjA1MjA4MjVdfQ==\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/spans/events?filter%5Bfrom%5D=1688035027000\\u0026filter%5Bquery%5D=service%3Apython%2A\\u0026filter%5Bto%5D=1688035927000\\u0026page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWWtHdXF2UUQ0YzdlUUFBQUFBQUFBQVlBQUFBQUVGWmEwZDFjbVpSUVVGRWMzZDVaVUZYYVZOblFWRmxOUUFBQUNRQUFBQUFNREU0T1RBMll6QXROVEZrT0MwME5EYzVMV0ZsT0RndE56WXdZbVl4TldRM016QXkiLCJ2YWx1ZXMiOlsiMjAyMy0wNi0yOVQxMDozNzoyNC4zMDRaIiwyNjA1MjA4MjVdfQ%3D%3D\\u0026page%5Blimit%5D=2\\u0026sort=timestamp\"}}", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 29 Jun 2023 10:52:06 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"filter\":{\"from\":\"now-15m\",\"query\":\"service:python*\",\"to\":\"now\"},\"options\":{\"timezone\":\"GMT\"},\"page\":{\"limit\":2},\"sort\":\"timestamp\"},\"type\":\"search_request\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/spans/events/search" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"AYkGun04AAAo1YWD8PZ5wxoT\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"application_name\":\"python-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"flask\",\"container_id\":\"8ac6ec63-4309-4461-5abc-6232\",\"duration\":4218725,\"env\":\"pcf-spartancrimson\",\"flask\":{\"endpoint\":\"hello_world\",\"url_rule\":\"/\",\"version\":\"2.1.2\"},\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"python\",\"process_id\":\"437\",\"runtime-id\":\"7f72d8756af44893a60b69a077caded8\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"uri\":\"python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:37:09.221Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"python-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"12174885344805365765\",\"start_timestamp\":\"2023-06-29T10:37:09.217Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"uri:python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"project:cf-platform-engineering-cipp2\",\"space_name:space_1\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"version:1.0.0\",\"app_name:python-sample-app-spartancrimson\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"app_instance_guid:8ac6ec63-4309-4461-5abc-6232\",\"application_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"app_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"bosh_job:compute\",\"instance_group:compute\",\"application_name:python-sample-app-spartancrimson\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"container_name:8ac6ec63-4309-4461-5abc-6232\",\"cf-6a3777f94c200f214075\",\"container_id:8ac6ec63-4309-4461-5abc-6232\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"container_name:python-sample-app-spartancrimson_0\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"pcf-spartancrimson\",\"org_name:org_1\",\"service:python-sample-app-spartancrimson\",\"bosh_ip:10.0.4.8\",\"cloudfoundry\",\"bosh_name:compute\",\"cf_instance_ip:10.0.4.8\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"app_guid:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"1376633447483012831\",\"type\":\"web\"}},{\"id\":\"AYkGupDBAACn0_VTeXCyw8iL\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"application_name\":\"python-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"flask\",\"container_id\":\"8ac6ec63-4309-4461-5abc-6232\",\"duration\":5037530,\"env\":\"pcf-spartancrimson\",\"flask\":{\"endpoint\":\"hello_world\",\"url_rule\":\"/\",\"version\":\"2.1.2\"},\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"python\",\"process_id\":\"437\",\"runtime-id\":\"7f72d8756af44893a60b69a077caded8\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"uri\":\"python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:37:14.249Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"python-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"17156680518146914707\",\"start_timestamp\":\"2023-06-29T10:37:14.244Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"uri:python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"project:cf-platform-engineering-cipp2\",\"space_name:space_1\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"version:1.0.0\",\"app_name:python-sample-app-spartancrimson\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"app_instance_guid:8ac6ec63-4309-4461-5abc-6232\",\"application_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"app_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"bosh_job:compute\",\"instance_group:compute\",\"application_name:python-sample-app-spartancrimson\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"container_name:8ac6ec63-4309-4461-5abc-6232\",\"cf-6a3777f94c200f214075\",\"container_id:8ac6ec63-4309-4461-5abc-6232\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"container_name:python-sample-app-spartancrimson_0\",\"p-bosh\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"pcf-spartancrimson\",\"org_name:org_1\",\"service:python-sample-app-spartancrimson\",\"bosh_ip:10.0.4.8\",\"cloudfoundry\",\"bosh_name:compute\",\"cf_instance_ip:10.0.4.8\",\"director:p-bosh\",\"app_guid:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"10072306532714635001\",\"type\":\"web\"}}],\"meta\":{\"elapsed\":119,\"request_id\":\"pddv1ChZuakMtMWlvdlJ4V0lJak9EcHU2TEJ3Ii0KHVlO2NOBwN8iC_DRWp_2gjDOZaZaJKQAA7kb0dm9Egx4l7CkOLtGNcaMVIE\",\"status\":\"done\",\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWWtHdW9TSmhsc20td0FBQUFBQUFBQVlBQUFBQUVGWmEwZDFjRVJDUVVGRGJqQmZWbFJsV0VONWR6aHBUQUFBQUNRQUFBQUFNREU0T1RBMll6QXROVEZrT0MwME5EYzVMV0ZsT0RndE56WXdZbVl4TldRM016QXkiLCJ2YWx1ZXMiOlsiMjAyMy0wNi0yOVQxMDozNzoxNC4yNDlaIiwtMjA0MDg0NjU5N119\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/spans/events?filter%5Bfrom%5D=1688035027000\\u0026filter%5Bquery%5D=service%3Apython%2A\\u0026filter%5Bto%5D=1688035927000\\u0026page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWWtHdW9TSmhsc20td0FBQUFBQUFBQVlBQUFBQUVGWmEwZDFjRVJDUVVGRGJqQmZWbFJsV0VONWR6aHBUQUFBQUNRQUFBQUFNREU0T1RBMll6QXROVEZrT0MwME5EYzVMV0ZsT0RndE56WXdZbVl4TldRM016QXkiLCJ2YWx1ZXMiOlsiMjAyMy0wNi0yOVQxMDozNzoxNC4yNDlaIiwtMjA0MDg0NjU5N119\\u0026page%5Blimit%5D=2\\u0026sort=timestamp\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 29 Jun 2023 10:52:06 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"filter\":{\"from\":\"now-15m\",\"query\":\"service:python*\",\"to\":\"now\"},\"options\":{\"timezone\":\"GMT\"},\"page\":{\"cursor\":\"eyJhZnRlciI6IkFnQUFBWWtHdW9TSmhsc20td0FBQUFBQUFBQVlBQUFBQUVGWmEwZDFjRVJDUVVGRGJqQmZWbFJsV0VONWR6aHBUQUFBQUNRQUFBQUFNREU0T1RBMll6QXROVEZrT0MwME5EYzVMV0ZsT0RndE56WXdZbVl4TldRM016QXkiLCJ2YWx1ZXMiOlsiMjAyMy0wNi0yOVQxMDozNzoxNC4yNDlaIiwtMjA0MDg0NjU5N119\",\"limit\":2},\"sort\":\"timestamp\"},\"type\":\"search_request\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/spans/events/search" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"AYkGuqRIAAC1Q6SQTHyaHA2u\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"application_name\":\"python-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"flask\",\"container_id\":\"8ac6ec63-4309-4461-5abc-6232\",\"duration\":5749377,\"env\":\"pcf-spartancrimson\",\"flask\":{\"endpoint\":\"hello_world\",\"url_rule\":\"/\",\"version\":\"2.1.2\"},\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"python\",\"process_id\":\"437\",\"runtime-id\":\"7f72d8756af44893a60b69a077caded8\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"uri\":\"python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T10:37:19.278Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"python-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"17551449796724253880\",\"start_timestamp\":\"2023-06-29T10:37:19.273Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"uri:python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"space_name:space_1\",\"project:cf-platform-engineering-cipp2\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"version:1.0.0\",\"app_name:python-sample-app-spartancrimson\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"app_instance_guid:8ac6ec63-4309-4461-5abc-6232\",\"application_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"app_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"application_name:python-sample-app-spartancrimson\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"container_name:8ac6ec63-4309-4461-5abc-6232\",\"container_id:8ac6ec63-4309-4461-5abc-6232\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"container_name:python-sample-app-spartancrimson_0\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"pcf-spartancrimson\",\"org_name:org_1\",\"service:python-sample-app-spartancrimson\",\"bosh_ip:10.0.4.8\",\"cloudfoundry\",\"bosh_name:compute\",\"cf_instance_ip:10.0.4.8\",\"app_guid:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"12541863544722093871\",\"type\":\"web\"}}],\"meta\":{\"elapsed\":39,\"request_id\":\"pddv1ChZ6YW8tcXdMMlNKV3NjZTJYc2RsamtRIi0KHU_gDUvl5wf5sT6uYH452af9CCeAmcRVZ5Q5N69xEgz8z3DsbFPLXFXIN88\",\"status\":\"done\",\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWWtHdXF2UUQ0YzdlUUFBQUFBQUFBQVlBQUFBQUVGWmEwZDFjbVpSUVVGRWMzZDVaVUZYYVZOblFWRmxOUUFBQUNRQUFBQUFNREU0T1RBMll6QXROVEZrT0MwME5EYzVMV0ZsT0RndE56WXdZbVl4TldRM016QXkiLCJ2YWx1ZXMiOlsiMjAyMy0wNi0yOVQxMDozNzoyNC4zMDRaIiwyNjA1MjA4MjVdfQ==\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/spans/events?filter%5Bfrom%5D=1688035027000\\u0026filter%5Bquery%5D=service%3Apython%2A\\u0026filter%5Bto%5D=1688035927000\\u0026page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWWtHdXF2UUQ0YzdlUUFBQUFBQUFBQVlBQUFBQUVGWmEwZDFjbVpSUVVGRWMzZDVaVUZYYVZOblFWRmxOUUFBQUNRQUFBQUFNREU0T1RBMll6QXROVEZrT0MwME5EYzVMV0ZsT0RndE56WXdZbVl4TldRM016QXkiLCJ2YWx1ZXMiOlsiMjAyMy0wNi0yOVQxMDozNzoyNC4zMDRaIiwyNjA1MjA4MjVdfQ%3D%3D\\u0026page%5Blimit%5D=2\\u0026sort=timestamp\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 29 Jun 2023 10:52:06 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/spans/Search-spans-returns-OK-response.json b/tests/scenarios/cassettes/v2/spans/Search-spans-returns-OK-response.json index 11368503e..1957a438e 100644 --- a/tests/scenarios/cassettes/v2/spans/Search-spans-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/spans/Search-spans-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"filter\":{\"from\":\"now-15m\",\"query\":\"*\",\"to\":\"now\"},\"options\":{\"timezone\":\"GMT\"},\"page\":{\"limit\":25},\"sort\":\"timestamp\"},\"type\":\"search_request\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/spans/events/search"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"AYkGkCVkAADfl3Kz2yGWhekz\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"application_name\":\"python-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"flask\",\"container_id\":\"8ac6ec63-4309-4461-5abc-6232\",\"duration\":3402932,\"env\":\"pcf-spartancrimson\",\"flask\":{\"endpoint\":\"hello_world\",\"url_rule\":\"/\",\"version\":\"2.1.2\"},\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"python\",\"process_id\":\"437\",\"runtime-id\":\"7f72d8756af44893a60b69a077caded8\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"uri\":\"python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:50:52.475Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"python-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"9270756141854228302\",\"start_timestamp\":\"2023-06-29T09:50:52.472Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"uri:python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"project:cf-platform-engineering-cipp2\",\"space_name:space_1\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"version:1.0.0\",\"app_name:python-sample-app-spartancrimson\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"app_instance_guid:8ac6ec63-4309-4461-5abc-6232\",\"application_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"app_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"bosh_job:compute\",\"instance_group:compute\",\"application_name:python-sample-app-spartancrimson\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"container_name:8ac6ec63-4309-4461-5abc-6232\",\"container_id:8ac6ec63-4309-4461-5abc-6232\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"container_name:python-sample-app-spartancrimson_0\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"pcf-spartancrimson\",\"service:python-sample-app-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"cloudfoundry\",\"bosh_name:compute\",\"cf_instance_ip:10.0.4.8\",\"app_guid:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"3740652481065462946\",\"type\":\"web\"}},{\"id\":\"AYkGkC-vAABH0bCfOzJhypRc\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"component\":\"http\",\"duration\":284180,\"env\":\"pcf-macaroniandcheese\",\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.81.0\"},\"language\":\"javascript\",\"process_id\":\"17\",\"runtime-id\":\"8f7e6bf6-f403-47ca-8a01-1f3c4b1a3dbd\",\"service\":\"nodejs-sample-app-macaroniandcheese\",\"span\":{\"kind\":\"server\"},\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:50:53.505Z\",\"env\":\"pcf-macaroniandcheese\",\"host\":\"compute-0-3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"a509a3c69ad1028d\",\"resource_name\":\"GET\",\"retained_by\":\"diversity_sampling\",\"service\":\"nodejs-sample-app-macaroniandcheese\",\"single_span\":false,\"span_id\":\"6671111812380197518\",\"start_timestamp\":\"2023-06-29T09:50:53.505Z\",\"tags\":[\"app_instance_guid:02018c68-0c39-4029-7431-70a3\",\"container_name:02018c68-0c39-4029-7431-70a3\",\"source:apm\",\"bosh_address:10.0.4.8\",\"bosh_az:us-central1-f\",\"bosh_deployment:cf-b5abb4bac9b904313ba3\",\"bosh_id:3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"bosh_index:0\",\"bosh_ip:10.0.4.8\",\"bosh_job:compute\",\"bosh_name:compute\",\"cf-b5abb4bac9b904313ba3\",\"cf-b5abb4bac9b904313ba3-compute\",\"cloudfoundry\",\"compute\",\"created_at:2023-06-20t20:03:20z\",\"deployment:cf-b5abb4bac9b904313ba3\",\"director:p-bosh\",\"env:pcf-macaroniandcheese\",\"id:3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"index:0\",\"index:3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"instance-id:4669805914138589973\",\"instance-type:n1-highmem-2\",\"instance_group:compute\",\"internal-hostname:vm-1902d732-65b7-4e63-6eb6-6dd973b77185.c.cf-platform-engineering-cipp1.internal\",\"ip:10.0.4.8\",\"job:compute\",\"name:compute/3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"numeric_project_id:760108534255\",\"p-bosh\",\"p-bosh-cf-b5abb4bac9b904313ba3\",\"p-bosh-cf-b5abb4bac9b904313ba3-compute\",\"pcf-macaroniandcheese\",\"project:cf-platform-engineering-cipp1\",\"user_data:_server_:_name_:_vm-1902d732-65b7-4e63-6eb6-6dd973b77185_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\",\"zone:us-central1-f\"],\"trace_id\":\"6671111812380197518\",\"type\":\"web\"}},{\"id\":\"AYkGkCmDAACdei5v_BmVb8ZW\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":1027645,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":53,\"name\":\"http-nio-8080-exec-10\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:50:53.834Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"5407116910258794847\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"2283986807028514392\",\"start_timestamp\":\"2023-06-29T09:50:53.833Z\",\"tags\":[\"foo:bar\",\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"space_name:space_1\",\"project:cf-platform-engineering-cipp2\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"container_name:java-sample-app-spartancrimson_0\",\"cf_instance_ip:10.0.4.8\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"6252933144469107600\",\"type\":\"web\"}},{\"id\":\"AYkGkCmDAACqGvVFPx1pQMZW\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"tomcat-server\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":1406493,\"env\":\"pcf-spartancrimson\",\"http\":{\"host\":\"localhost\",\"hostname\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"jvm\",\"peer\":{\"ipv4\":\"127.0.0.1\",\"port\":34580},\"process_id\":\"43\",\"runtime-id\":\"f48d4c5f-f7ec-423a-a918-5f68d0f0dd9b\",\"servlet\":{\"context\":\"/\",\"path\":\"/\"},\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":53,\"name\":\"http-nio-8080-exec-10\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:50:53.834Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"5407116910258794847\",\"start_timestamp\":\"2023-06-29T09:50:53.833Z\",\"tags\":[\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"project:cf-platform-engineering-cipp2\",\"space_name:space_1\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version:1.0.0\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"p-bosh\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"cloudfoundry\",\"bosh_name:compute\",\"cf_instance_ip:10.0.4.8\",\"container_name:java-sample-app-spartancrimson_0\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"6252933144469107600\",\"type\":\"web\"}},{\"id\":\"AYkGkB75AABd9OUT73-M8j1h\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"26fe9f69-0347-4173-bab6-9ebc9046c466\",\"application_name\":\"go-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"net/http\",\"container_id\":\"00e3afdc-32d4-4df1-6be0-14f2\",\"duration\":79076,\"env\":\"pcf-spartancrimson\",\"http\":{\"host\":\"localhost:8080\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"go\",\"process_id\":\"30\",\"runtime-id\":\"3220a876-6727-41c5-8537-036c7ec5b755\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"uri\":\"go-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:50:54.953Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"go-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"7006943107639417989\",\"start_timestamp\":\"2023-06-29T09:50:54.953Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"space_name:space_1\",\"project:cf-platform-engineering-cipp2\",\"app_guid:26fe9f69-0347-4173-bab6-9ebc9046c466\",\"compute\",\"container_name:00e3afdc-32d4-4df1-6be0-14f2\",\"label_key:label_value\",\"job:compute\",\"app_instance_guid:00e3afdc-32d4-4df1-6be0-14f2\",\"bosh_az:us-central1-f\",\"app_name:go-sample-app-spartancrimson\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"app_id:26fe9f69-0347-4173-bab6-9ebc9046c466\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"application_id:26fe9f69-0347-4173-bab6-9ebc9046c466\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"cf-6a3777f94c200f214075\",\"service:go-sample-app-spartancrimson\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_name:go-sample-app-spartancrimson\",\"container_name:go-sample-app-spartancrimson_0\",\"p-bosh\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"pcf-spartancrimson\",\"uri:go-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"cloudfoundry\",\"bosh_name:compute\",\"cf_instance_ip:10.0.4.8\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"container_id:00e3afdc-32d4-4df1-6be0-14f2\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"7006943107639417989\",\"type\":\"web\"}},{\"id\":\"AYkGkDPhAAB78mZ9pO_e6T9j\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"cf_instance_ip\":\"10.0.4.8 container_id:dcad6411-00b3-4417-5284-298f application_id:5e3690f7-b373-4d90-a684-cafa9d73c97e application_name:nodejs-sample-app-spartancrimson instance_index:0 space_name:Space_1 uri:nodejs-sample-app-spartancrimson.apps.spartancrimson.cf-app.com buildpack_version:4.37.0\",\"component\":\"http\",\"duration\":495117,\"env\":\"pcf-spartancrimson\",\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"language\":\"javascript\",\"process_id\":\"49\",\"runtime-id\":\"b08fae27-3fbe-4d06-a472-1f1bd97edcad\",\"service\":\"nodejs-sample-app-spartancrimson\",\"span\":{\"kind\":\"server\"},\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:50:55.929Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"a509a3c69ad1028d\",\"resource_name\":\"GET\",\"retained_by\":\"diversity_sampling\",\"service\":\"nodejs-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"7151498394757197262\",\"start_timestamp\":\"2023-06-29T09:50:55.929Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"space_name:space_1\",\"project:cf-platform-engineering-cipp2\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"application_id:5e3690f7-b373-4d90-a684-cafa9d73c97e\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"app_guid:5e3690f7-b373-4d90-a684-cafa9d73c97e\",\"container_name:dcad6411-00b3-4417-5284-298f\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"application_name:nodejs-sample-app-spartancrimson\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"app_id:5e3690f7-b373-4d90-a684-cafa9d73c97e\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"cf-6a3777f94c200f214075\",\"app_name:nodejs-sample-app-spartancrimson\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"container_id:dcad6411-00b3-4417-5284-298f\",\"p-bosh\",\"uri:nodejs-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"container_name:nodejs-sample-app-spartancrimson_0\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"app_instance_guid:dcad6411-00b3-4417-5284-298f\",\"bosh_index:0\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"service:nodejs-sample-app-spartancrimson\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"7151498394757197262\",\"type\":\"web\"}},{\"id\":\"AYkGkDjpAACY58W27O3MNguI\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"application_name\":\"python-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"flask\",\"container_id\":\"8ac6ec63-4309-4461-5abc-6232\",\"duration\":5075046,\"env\":\"pcf-spartancrimson\",\"flask\":{\"endpoint\":\"hello_world\",\"url_rule\":\"/\",\"version\":\"2.1.2\"},\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"python\",\"process_id\":\"437\",\"runtime-id\":\"7f72d8756af44893a60b69a077caded8\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"uri\":\"python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:50:57.506Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"python-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"12722338338854837173\",\"start_timestamp\":\"2023-06-29T09:50:57.501Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"uri:python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"space_name:space_1\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"project:cf-platform-engineering-cipp2\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"version:1.0.0\",\"app_name:python-sample-app-spartancrimson\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"app_instance_guid:8ac6ec63-4309-4461-5abc-6232\",\"application_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"app_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"bosh_job:compute\",\"instance_group:compute\",\"application_name:python-sample-app-spartancrimson\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"container_name:8ac6ec63-4309-4461-5abc-6232\",\"container_id:8ac6ec63-4309-4461-5abc-6232\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"container_name:python-sample-app-spartancrimson_0\",\"p-bosh\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"pcf-spartancrimson\",\"org_name:org_1\",\"service:python-sample-app-spartancrimson\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"app_guid:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"9803068093656868865\",\"type\":\"web\"}},{\"id\":\"AYkGkEM6AAD6QLfd8zOG9VZb\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"component\":\"http\",\"duration\":257568,\"env\":\"pcf-macaroniandcheese\",\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.81.0\"},\"language\":\"javascript\",\"process_id\":\"17\",\"runtime-id\":\"8f7e6bf6-f403-47ca-8a01-1f3c4b1a3dbd\",\"service\":\"nodejs-sample-app-macaroniandcheese\",\"span\":{\"kind\":\"server\"},\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:50:58.522Z\",\"env\":\"pcf-macaroniandcheese\",\"host\":\"compute-0-3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"a509a3c69ad1028d\",\"resource_name\":\"GET\",\"retained_by\":\"diversity_sampling\",\"service\":\"nodejs-sample-app-macaroniandcheese\",\"single_span\":false,\"span_id\":\"6581578424509420150\",\"start_timestamp\":\"2023-06-29T09:50:58.522Z\",\"tags\":[\"app_instance_guid:02018c68-0c39-4029-7431-70a3\",\"container_name:02018c68-0c39-4029-7431-70a3\",\"source:apm\",\"bosh_address:10.0.4.8\",\"bosh_az:us-central1-f\",\"bosh_deployment:cf-b5abb4bac9b904313ba3\",\"bosh_id:3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"bosh_index:0\",\"bosh_ip:10.0.4.8\",\"bosh_job:compute\",\"bosh_name:compute\",\"cf-b5abb4bac9b904313ba3\",\"cf-b5abb4bac9b904313ba3-compute\",\"cloudfoundry\",\"compute\",\"created_at:2023-06-20t20:03:20z\",\"deployment:cf-b5abb4bac9b904313ba3\",\"director:p-bosh\",\"env:pcf-macaroniandcheese\",\"id:3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"index:0\",\"index:3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"instance-id:4669805914138589973\",\"instance-type:n1-highmem-2\",\"instance_group:compute\",\"internal-hostname:vm-1902d732-65b7-4e63-6eb6-6dd973b77185.c.cf-platform-engineering-cipp1.internal\",\"ip:10.0.4.8\",\"job:compute\",\"name:compute/3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"numeric_project_id:760108534255\",\"p-bosh\",\"p-bosh-cf-b5abb4bac9b904313ba3\",\"p-bosh-cf-b5abb4bac9b904313ba3-compute\",\"pcf-macaroniandcheese\",\"project:cf-platform-engineering-cipp1\",\"user_data:_server_:_name_:_vm-1902d732-65b7-4e63-6eb6-6dd973b77185_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\",\"zone:us-central1-f\"],\"trace_id\":\"6581578424509420150\",\"type\":\"web\"}},{\"id\":\"AYkGkD0IAAD6QeMtBkv8CN44\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"tomcat-server\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":1594528,\"env\":\"pcf-spartancrimson\",\"http\":{\"host\":\"localhost\",\"hostname\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"jvm\",\"peer\":{\"ipv4\":\"127.0.0.1\",\"port\":34604},\"process_id\":\"43\",\"runtime-id\":\"f48d4c5f-f7ec-423a-a918-5f68d0f0dd9b\",\"servlet\":{\"context\":\"/\",\"path\":\"/\"},\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":49,\"name\":\"http-nio-8080-exec-6\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:50:58.856Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"7932852767190870180\",\"start_timestamp\":\"2023-06-29T09:50:58.855Z\",\"tags\":[\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"project:cf-platform-engineering-cipp2\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"space_name:space_1\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"container_name:java-sample-app-spartancrimson_0\",\"cf_instance_ip:10.0.4.8\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"4097838600103622745\",\"type\":\"web\"}},{\"id\":\"AYkGkD0IAAD_TfsG2GecIN44\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":1223628,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":49,\"name\":\"http-nio-8080-exec-6\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:50:58.856Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"7932852767190870180\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"6858500482118591216\",\"start_timestamp\":\"2023-06-29T09:50:58.855Z\",\"tags\":[\"foo:bar\",\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"space_name:space_1\",\"project:cf-platform-engineering-cipp2\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version:1.0.0\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"p-bosh\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"container_name:java-sample-app-spartancrimson_0\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"4097838600103622745\",\"type\":\"web\"}},{\"id\":\"AYkGkEYJAAB8hx-ZNIz1QgNc\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"26fe9f69-0347-4173-bab6-9ebc9046c466\",\"application_name\":\"go-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"net/http\",\"container_id\":\"00e3afdc-32d4-4df1-6be0-14f2\",\"duration\":66922,\"env\":\"pcf-spartancrimson\",\"http\":{\"host\":\"localhost:8080\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"go\",\"process_id\":\"30\",\"runtime-id\":\"3220a876-6727-41c5-8537-036c7ec5b755\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"uri\":\"go-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:50:59.973Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"go-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"6630423838849647442\",\"start_timestamp\":\"2023-06-29T09:50:59.973Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"space_name:space_1\",\"project:cf-platform-engineering-cipp2\",\"app_guid:26fe9f69-0347-4173-bab6-9ebc9046c466\",\"compute\",\"container_name:00e3afdc-32d4-4df1-6be0-14f2\",\"job:compute\",\"label_key:label_value\",\"app_instance_guid:00e3afdc-32d4-4df1-6be0-14f2\",\"bosh_az:us-central1-f\",\"app_name:go-sample-app-spartancrimson\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"app_id:26fe9f69-0347-4173-bab6-9ebc9046c466\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"application_id:26fe9f69-0347-4173-bab6-9ebc9046c466\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"cf-6a3777f94c200f214075\",\"service:go-sample-app-spartancrimson\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_name:go-sample-app-spartancrimson\",\"container_name:go-sample-app-spartancrimson_0\",\"p-bosh\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"pcf-spartancrimson\",\"org_name:org_1\",\"uri:go-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"container_id:00e3afdc-32d4-4df1-6be0-14f2\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"6630423838849647442\",\"type\":\"web\"}},{\"id\":\"AYkGkEdqAAC_Lg-d7N4ID3Us\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"cf_instance_ip\":\"10.0.4.8 container_id:dcad6411-00b3-4417-5284-298f application_id:5e3690f7-b373-4d90-a684-cafa9d73c97e application_name:nodejs-sample-app-spartancrimson instance_index:0 space_name:Space_1 uri:nodejs-sample-app-spartancrimson.apps.spartancrimson.cf-app.com buildpack_version:4.37.0\",\"component\":\"http\",\"duration\":4386475,\"env\":\"pcf-spartancrimson\",\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"language\":\"javascript\",\"process_id\":\"49\",\"runtime-id\":\"b08fae27-3fbe-4d06-a472-1f1bd97edcad\",\"service\":\"nodejs-sample-app-spartancrimson\",\"span\":{\"kind\":\"server\"},\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:51:00.959Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"a509a3c69ad1028d\",\"resource_name\":\"GET\",\"retained_by\":\"diversity_sampling\",\"service\":\"nodejs-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"3203689721572074853\",\"start_timestamp\":\"2023-06-29T09:51:00.955Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"space_name:space_1\",\"project:cf-platform-engineering-cipp2\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"application_id:5e3690f7-b373-4d90-a684-cafa9d73c97e\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"app_guid:5e3690f7-b373-4d90-a684-cafa9d73c97e\",\"container_name:dcad6411-00b3-4417-5284-298f\",\"application_name:nodejs-sample-app-spartancrimson\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"app_id:5e3690f7-b373-4d90-a684-cafa9d73c97e\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"cf-6a3777f94c200f214075\",\"app_name:nodejs-sample-app-spartancrimson\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"container_id:dcad6411-00b3-4417-5284-298f\",\"container_name:nodejs-sample-app-spartancrimson_0\",\"uri:nodejs-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"app_instance_guid:dcad6411-00b3-4417-5284-298f\",\"bosh_index:0\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"service:nodejs-sample-app-spartancrimson\",\"cf_instance_ip:10.0.4.8\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"3203689721572074853\",\"type\":\"web\"}},{\"id\":\"AYkGkExwAADIdTUd8rztdpHy\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"application_name\":\"python-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"flask\",\"container_id\":\"8ac6ec63-4309-4461-5abc-6232\",\"duration\":4526268,\"env\":\"pcf-spartancrimson\",\"flask\":{\"endpoint\":\"hello_world\",\"url_rule\":\"/\",\"version\":\"2.1.2\"},\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"python\",\"process_id\":\"437\",\"runtime-id\":\"7f72d8756af44893a60b69a077caded8\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"uri\":\"python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:51:02.533Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"python-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"13732938423051662315\",\"start_timestamp\":\"2023-06-29T09:51:02.529Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"uri:python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"space_name:space_1\",\"project:cf-platform-engineering-cipp2\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"version:1.0.0\",\"app_name:python-sample-app-spartancrimson\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"app_instance_guid:8ac6ec63-4309-4461-5abc-6232\",\"application_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"app_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"bosh_job:compute\",\"instance_group:compute\",\"application_name:python-sample-app-spartancrimson\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"container_name:8ac6ec63-4309-4461-5abc-6232\",\"container_id:8ac6ec63-4309-4461-5abc-6232\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"container_name:python-sample-app-spartancrimson_0\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"pcf-spartancrimson\",\"org_name:org_1\",\"service:python-sample-app-spartancrimson\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"app_guid:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"17478897124928621820\",\"type\":\"web\"}},{\"id\":\"AYkGkFa-AADBciK22npFZ64m\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"component\":\"http\",\"duration\":279541,\"env\":\"pcf-macaroniandcheese\",\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.81.0\"},\"language\":\"javascript\",\"process_id\":\"17\",\"runtime-id\":\"8f7e6bf6-f403-47ca-8a01-1f3c4b1a3dbd\",\"service\":\"nodejs-sample-app-macaroniandcheese\",\"span\":{\"kind\":\"server\"},\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:51:03.54Z\",\"env\":\"pcf-macaroniandcheese\",\"host\":\"compute-0-3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"a509a3c69ad1028d\",\"resource_name\":\"GET\",\"retained_by\":\"diversity_sampling\",\"service\":\"nodejs-sample-app-macaroniandcheese\",\"single_span\":false,\"span_id\":\"2787325584578996790\",\"start_timestamp\":\"2023-06-29T09:51:03.54Z\",\"tags\":[\"app_instance_guid:02018c68-0c39-4029-7431-70a3\",\"container_name:02018c68-0c39-4029-7431-70a3\",\"source:apm\",\"bosh_address:10.0.4.8\",\"bosh_az:us-central1-f\",\"bosh_deployment:cf-b5abb4bac9b904313ba3\",\"bosh_id:3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"bosh_index:0\",\"bosh_ip:10.0.4.8\",\"bosh_job:compute\",\"bosh_name:compute\",\"cf-b5abb4bac9b904313ba3\",\"cf-b5abb4bac9b904313ba3-compute\",\"cloudfoundry\",\"compute\",\"created_at:2023-06-20t20:03:20z\",\"deployment:cf-b5abb4bac9b904313ba3\",\"director:p-bosh\",\"env:pcf-macaroniandcheese\",\"id:3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"index:0\",\"index:3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"instance-id:4669805914138589973\",\"instance-type:n1-highmem-2\",\"instance_group:compute\",\"internal-hostname:vm-1902d732-65b7-4e63-6eb6-6dd973b77185.c.cf-platform-engineering-cipp1.internal\",\"ip:10.0.4.8\",\"job:compute\",\"name:compute/3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"numeric_project_id:760108534255\",\"p-bosh\",\"p-bosh-cf-b5abb4bac9b904313ba3\",\"p-bosh-cf-b5abb4bac9b904313ba3-compute\",\"pcf-macaroniandcheese\",\"project:cf-platform-engineering-cipp1\",\"user_data:_server_:_name_:_vm-1902d732-65b7-4e63-6eb6-6dd973b77185_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\",\"zone:us-central1-f\"],\"trace_id\":\"2787325584578996790\",\"type\":\"web\"}},{\"id\":\"AYkGkFCQAADQk5wPJneKNxoU\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":1157215,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":48,\"name\":\"http-nio-8080-exec-5\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:51:03.88Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"803234406780610866\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"336673670559389884\",\"start_timestamp\":\"2023-06-29T09:51:03.879Z\",\"tags\":[\"foo:bar\",\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"project:cf-platform-engineering-cipp2\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"space_name:space_1\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version:1.0.0\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"p-bosh\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"cloudfoundry\",\"bosh_name:compute\",\"container_name:java-sample-app-spartancrimson_0\",\"cf_instance_ip:10.0.4.8\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"1448528526839826639\",\"type\":\"web\"}},{\"id\":\"AYkGkFCQAADIaesQoUDynhoU\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"tomcat-server\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":1565132,\"env\":\"pcf-spartancrimson\",\"http\":{\"host\":\"localhost\",\"hostname\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"jvm\",\"peer\":{\"ipv4\":\"127.0.0.1\",\"port\":36372},\"process_id\":\"43\",\"runtime-id\":\"f48d4c5f-f7ec-423a-a918-5f68d0f0dd9b\",\"servlet\":{\"context\":\"/\",\"path\":\"/\"},\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":48,\"name\":\"http-nio-8080-exec-5\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:51:03.88Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"803234406780610866\",\"start_timestamp\":\"2023-06-29T09:51:03.879Z\",\"tags\":[\"foo:bar\",\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"project:cf-platform-engineering-cipp2\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"space_name:space_1\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version:1.0.0\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"p-bosh\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"container_name:java-sample-app-spartancrimson_0\",\"cf_instance_ip:10.0.4.8\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"1448528526839826639\",\"type\":\"web\"}},{\"id\":\"AYkGkEYJAABFV0Flh5MUiDAU\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"26fe9f69-0347-4173-bab6-9ebc9046c466\",\"application_name\":\"go-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"net/http\",\"container_id\":\"00e3afdc-32d4-4df1-6be0-14f2\",\"duration\":69706,\"env\":\"pcf-spartancrimson\",\"http\":{\"host\":\"localhost:8080\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"go\",\"process_id\":\"30\",\"runtime-id\":\"3220a876-6727-41c5-8537-036c7ec5b755\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"uri\":\"go-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:51:04.994Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"go-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"1454749899682980213\",\"start_timestamp\":\"2023-06-29T09:51:04.994Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"space_name:space_1\",\"project:cf-platform-engineering-cipp2\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"app_guid:26fe9f69-0347-4173-bab6-9ebc9046c466\",\"compute\",\"container_name:00e3afdc-32d4-4df1-6be0-14f2\",\"job:compute\",\"label_key:label_value\",\"app_instance_guid:00e3afdc-32d4-4df1-6be0-14f2\",\"bosh_az:us-central1-f\",\"app_name:go-sample-app-spartancrimson\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"app_id:26fe9f69-0347-4173-bab6-9ebc9046c466\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"application_id:26fe9f69-0347-4173-bab6-9ebc9046c466\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"cf-6a3777f94c200f214075\",\"service:go-sample-app-spartancrimson\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_name:go-sample-app-spartancrimson\",\"container_name:go-sample-app-spartancrimson_0\",\"p-bosh\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"pcf-spartancrimson\",\"org_name:org_1\",\"uri:go-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"container_id:00e3afdc-32d4-4df1-6be0-14f2\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"1454749899682980213\",\"type\":\"web\"}},{\"id\":\"AYkGkFrwAADQI65eLNUD3p07\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"cf_instance_ip\":\"10.0.4.8 container_id:dcad6411-00b3-4417-5284-298f application_id:5e3690f7-b373-4d90-a684-cafa9d73c97e application_name:nodejs-sample-app-spartancrimson instance_index:0 space_name:Space_1 uri:nodejs-sample-app-spartancrimson.apps.spartancrimson.cf-app.com buildpack_version:4.37.0\",\"component\":\"http\",\"duration\":802246,\"env\":\"pcf-spartancrimson\",\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"language\":\"javascript\",\"process_id\":\"49\",\"runtime-id\":\"b08fae27-3fbe-4d06-a472-1f1bd97edcad\",\"service\":\"nodejs-sample-app-spartancrimson\",\"span\":{\"kind\":\"server\"},\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:51:05.978Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"a509a3c69ad1028d\",\"resource_name\":\"GET\",\"retained_by\":\"diversity_sampling\",\"service\":\"nodejs-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"4295755302623693367\",\"start_timestamp\":\"2023-06-29T09:51:05.978Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"project:cf-platform-engineering-cipp2\",\"space_name:space_1\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"application_id:5e3690f7-b373-4d90-a684-cafa9d73c97e\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"app_guid:5e3690f7-b373-4d90-a684-cafa9d73c97e\",\"container_name:dcad6411-00b3-4417-5284-298f\",\"application_name:nodejs-sample-app-spartancrimson\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"app_id:5e3690f7-b373-4d90-a684-cafa9d73c97e\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"app_name:nodejs-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"container_id:dcad6411-00b3-4417-5284-298f\",\"container_name:nodejs-sample-app-spartancrimson_0\",\"p-bosh\",\"uri:nodejs-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"app_instance_guid:dcad6411-00b3-4417-5284-298f\",\"bosh_index:0\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"cloudfoundry\",\"bosh_name:compute\",\"cf_instance_ip:10.0.4.8\",\"service:nodejs-sample-app-spartancrimson\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"4295755302623693367\",\"type\":\"web\"}},{\"id\":\"AYkGkF_4AAChWpEcOPvO52q6\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"application_name\":\"python-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"flask\",\"container_id\":\"8ac6ec63-4309-4461-5abc-6232\",\"duration\":4274287,\"env\":\"pcf-spartancrimson\",\"flask\":{\"endpoint\":\"hello_world\",\"url_rule\":\"/\",\"version\":\"2.1.2\"},\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"python\",\"process_id\":\"437\",\"runtime-id\":\"7f72d8756af44893a60b69a077caded8\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"uri\":\"python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:51:07.559Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"python-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"4518528746064694296\",\"start_timestamp\":\"2023-06-29T09:51:07.555Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"uri:python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"project:cf-platform-engineering-cipp2\",\"space_name:space_1\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"version:1.0.0\",\"app_name:python-sample-app-spartancrimson\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"app_instance_guid:8ac6ec63-4309-4461-5abc-6232\",\"application_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"app_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"application_name:python-sample-app-spartancrimson\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"container_name:8ac6ec63-4309-4461-5abc-6232\",\"cf-6a3777f94c200f214075\",\"container_id:8ac6ec63-4309-4461-5abc-6232\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"container_name:python-sample-app-spartancrimson_0\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"pcf-spartancrimson\",\"org_name:org_1\",\"service:python-sample-app-spartancrimson\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"director:p-bosh\",\"app_guid:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"13432640373886518168\",\"type\":\"web\"}},{\"id\":\"AYkGkGpGAACF-GPdmH75km9F\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"component\":\"http\",\"duration\":293457,\"env\":\"pcf-macaroniandcheese\",\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.81.0\"},\"language\":\"javascript\",\"process_id\":\"17\",\"runtime-id\":\"8f7e6bf6-f403-47ca-8a01-1f3c4b1a3dbd\",\"service\":\"nodejs-sample-app-macaroniandcheese\",\"span\":{\"kind\":\"server\"},\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:51:08.565Z\",\"env\":\"pcf-macaroniandcheese\",\"host\":\"compute-0-3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"a509a3c69ad1028d\",\"resource_name\":\"GET\",\"retained_by\":\"diversity_sampling\",\"service\":\"nodejs-sample-app-macaroniandcheese\",\"single_span\":false,\"span_id\":\"5003435178375377658\",\"start_timestamp\":\"2023-06-29T09:51:08.565Z\",\"tags\":[\"app_instance_guid:02018c68-0c39-4029-7431-70a3\",\"container_name:02018c68-0c39-4029-7431-70a3\",\"source:apm\",\"bosh_address:10.0.4.8\",\"bosh_az:us-central1-f\",\"bosh_deployment:cf-b5abb4bac9b904313ba3\",\"bosh_id:3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"bosh_index:0\",\"bosh_ip:10.0.4.8\",\"bosh_job:compute\",\"bosh_name:compute\",\"cf-b5abb4bac9b904313ba3\",\"cf-b5abb4bac9b904313ba3-compute\",\"cloudfoundry\",\"compute\",\"created_at:2023-06-20t20:03:20z\",\"deployment:cf-b5abb4bac9b904313ba3\",\"director:p-bosh\",\"env:pcf-macaroniandcheese\",\"id:3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"index:0\",\"index:3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"instance-id:4669805914138589973\",\"instance-type:n1-highmem-2\",\"instance_group:compute\",\"internal-hostname:vm-1902d732-65b7-4e63-6eb6-6dd973b77185.c.cf-platform-engineering-cipp1.internal\",\"ip:10.0.4.8\",\"job:compute\",\"name:compute/3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"numeric_project_id:760108534255\",\"p-bosh\",\"p-bosh-cf-b5abb4bac9b904313ba3\",\"p-bosh-cf-b5abb4bac9b904313ba3-compute\",\"pcf-macaroniandcheese\",\"project:cf-platform-engineering-cipp1\",\"user_data:_server_:_name_:_vm-1902d732-65b7-4e63-6eb6-6dd973b77185_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\",\"zone:us-central1-f\"],\"trace_id\":\"5003435178375377658\",\"type\":\"web\"}},{\"id\":\"AYkGkGQXAACPlSiDaRkB55UX\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"tomcat-server\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":1301452,\"env\":\"pcf-spartancrimson\",\"http\":{\"host\":\"localhost\",\"hostname\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"jvm\",\"peer\":{\"ipv4\":\"127.0.0.1\",\"port\":36408},\"process_id\":\"43\",\"runtime-id\":\"f48d4c5f-f7ec-423a-a918-5f68d0f0dd9b\",\"servlet\":{\"context\":\"/\",\"path\":\"/\"},\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":50,\"name\":\"http-nio-8080-exec-7\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:51:08.902Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"7077482257038748526\",\"start_timestamp\":\"2023-06-29T09:51:08.901Z\",\"tags\":[\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"project:cf-platform-engineering-cipp2\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"space_name:space_1\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"cloudfoundry\",\"bosh_name:compute\",\"cf_instance_ip:10.0.4.8\",\"container_name:java-sample-app-spartancrimson_0\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"1699342955512709833\",\"type\":\"web\"}},{\"id\":\"AYkGkGQXAAA2H9YhhShVjpUX\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":1030270,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":50,\"name\":\"http-nio-8080-exec-7\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:51:08.902Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"7077482257038748526\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"5726131752023301179\",\"start_timestamp\":\"2023-06-29T09:51:08.901Z\",\"tags\":[\"foo:bar\",\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"project:cf-platform-engineering-cipp2\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"space_name:space_1\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"cloudfoundry\",\"bosh_name:compute\",\"container_name:java-sample-app-spartancrimson_0\",\"cf_instance_ip:10.0.4.8\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"1699342955512709833\",\"type\":\"web\"}},{\"id\":\"AYkGkG0YAABbB9PrT-R19PwT\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"26fe9f69-0347-4173-bab6-9ebc9046c466\",\"application_name\":\"go-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"net/http\",\"container_id\":\"00e3afdc-32d4-4df1-6be0-14f2\",\"duration\":59912,\"env\":\"pcf-spartancrimson\",\"http\":{\"host\":\"localhost:8080\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"go\",\"process_id\":\"30\",\"runtime-id\":\"3220a876-6727-41c5-8537-036c7ec5b755\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"uri\":\"go-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:51:10.015Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"go-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"1440128135446434250\",\"start_timestamp\":\"2023-06-29T09:51:10.015Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"project:cf-platform-engineering-cipp2\",\"space_name:space_1\",\"app_guid:26fe9f69-0347-4173-bab6-9ebc9046c466\",\"compute\",\"container_name:00e3afdc-32d4-4df1-6be0-14f2\",\"job:compute\",\"label_key:label_value\",\"app_instance_guid:00e3afdc-32d4-4df1-6be0-14f2\",\"bosh_az:us-central1-f\",\"app_name:go-sample-app-spartancrimson\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"app_id:26fe9f69-0347-4173-bab6-9ebc9046c466\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"application_id:26fe9f69-0347-4173-bab6-9ebc9046c466\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"cf-6a3777f94c200f214075\",\"service:go-sample-app-spartancrimson\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_name:go-sample-app-spartancrimson\",\"container_name:go-sample-app-spartancrimson_0\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"pcf-spartancrimson\",\"org_name:org_1\",\"uri:go-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"container_id:00e3afdc-32d4-4df1-6be0-14f2\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"1440128135446434250\",\"type\":\"web\"}},{\"id\":\"AYkGkG54AAD6_VesFZniXsZC\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"cf_instance_ip\":\"10.0.4.8 container_id:dcad6411-00b3-4417-5284-298f application_id:5e3690f7-b373-4d90-a684-cafa9d73c97e application_name:nodejs-sample-app-spartancrimson instance_index:0 space_name:Space_1 uri:nodejs-sample-app-spartancrimson.apps.spartancrimson.cf-app.com buildpack_version:4.37.0\",\"component\":\"http\",\"duration\":642822,\"env\":\"pcf-spartancrimson\",\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"language\":\"javascript\",\"process_id\":\"49\",\"runtime-id\":\"b08fae27-3fbe-4d06-a472-1f1bd97edcad\",\"service\":\"nodejs-sample-app-spartancrimson\",\"span\":{\"kind\":\"server\"},\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:51:11.001Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"a509a3c69ad1028d\",\"resource_name\":\"GET\",\"retained_by\":\"diversity_sampling\",\"service\":\"nodejs-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"4811688501360551368\",\"start_timestamp\":\"2023-06-29T09:51:11.001Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"space_name:space_1\",\"project:cf-platform-engineering-cipp2\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"application_id:5e3690f7-b373-4d90-a684-cafa9d73c97e\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"app_guid:5e3690f7-b373-4d90-a684-cafa9d73c97e\",\"container_name:dcad6411-00b3-4417-5284-298f\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"application_name:nodejs-sample-app-spartancrimson\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"app_id:5e3690f7-b373-4d90-a684-cafa9d73c97e\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"app_name:nodejs-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"container_id:dcad6411-00b3-4417-5284-298f\",\"container_name:nodejs-sample-app-spartancrimson_0\",\"uri:nodejs-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"app_instance_guid:dcad6411-00b3-4417-5284-298f\",\"bosh_index:0\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"service:nodejs-sample-app-spartancrimson\",\"cf_instance_ip:10.0.4.8\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"4811688501360551368\",\"type\":\"web\"}},{\"id\":\"AYkGkHOBAAC42zH5S88riO26\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"application_name\":\"python-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"flask\",\"container_id\":\"8ac6ec63-4309-4461-5abc-6232\",\"duration\":3885812,\"env\":\"pcf-spartancrimson\",\"flask\":{\"endpoint\":\"hello_world\",\"url_rule\":\"/\",\"version\":\"2.1.2\"},\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"python\",\"process_id\":\"437\",\"runtime-id\":\"7f72d8756af44893a60b69a077caded8\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"uri\":\"python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:51:12.585Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"python-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"13370186067040789473\",\"start_timestamp\":\"2023-06-29T09:51:12.582Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"uri:python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"project:cf-platform-engineering-cipp2\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"space_name:space_1\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"version:1.0.0\",\"app_name:python-sample-app-spartancrimson\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"app_instance_guid:8ac6ec63-4309-4461-5abc-6232\",\"application_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"app_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"application_name:python-sample-app-spartancrimson\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"container_name:8ac6ec63-4309-4461-5abc-6232\",\"cf-6a3777f94c200f214075\",\"container_id:8ac6ec63-4309-4461-5abc-6232\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"container_name:python-sample-app-spartancrimson_0\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"pcf-spartancrimson\",\"service:python-sample-app-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"director:p-bosh\",\"app_guid:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"13469615109402324718\",\"type\":\"web\"}}],\"meta\":{\"elapsed\":88,\"request_id\":\"pddv1ChZjUlZPVGV5WVNFS1RKNW4zR3R3RnhBIi0KHZyFCoH2N3eHkR1DXTXA5oC-MZmH2KcFa0lIMEc-Egxy4r5txk9li1pxyr0\",\"status\":\"done\",\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWWtHa0dESlFDNEplZ0FBQUFBQUFBQVlBQUFBQUVGWmEwZHJTRTlDUVVGRE5ESjZTRFZUT0RoeWFVOHlOZ0FBQUNRQUFBQUFNREU0T1RBMk9UY3RPRGRsWmkwMFpqQmpMVGhoWTJRdE5tTTFNakptT1RSbVpXRTQiLCJ2YWx1ZXMiOlsiMjAyMy0wNi0yOVQwOTo1MToxMi41ODVaIiwxMDc2NzU4OTA2XX0=\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/spans/events?filter%5Bfrom%5D=1688032252000\\u0026filter%5Bquery%5D=%2A\\u0026filter%5Bto%5D=1688033152000\\u0026page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWWtHa0dESlFDNEplZ0FBQUFBQUFBQVlBQUFBQUVGWmEwZHJTRTlDUVVGRE5ESjZTRFZUT0RoeWFVOHlOZ0FBQUNRQUFBQUFNREU0T1RBMk9UY3RPRGRsWmkwMFpqQmpMVGhoWTJRdE5tTTFNakptT1RSbVpXRTQiLCJ2YWx1ZXMiOlsiMjAyMy0wNi0yOVQwOTo1MToxMi41ODVaIiwxMDc2NzU4OTA2XX0%3D\\u0026page%5Blimit%5D=25\\u0026sort=timestamp\"}}", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 29 Jun 2023 10:05:52 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"filter\":{\"from\":\"now-15m\",\"query\":\"*\",\"to\":\"now\"},\"options\":{\"timezone\":\"GMT\"},\"page\":{\"limit\":25},\"sort\":\"timestamp\"},\"type\":\"search_request\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/spans/events/search" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"AYkGkCVkAADfl3Kz2yGWhekz\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"application_name\":\"python-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"flask\",\"container_id\":\"8ac6ec63-4309-4461-5abc-6232\",\"duration\":3402932,\"env\":\"pcf-spartancrimson\",\"flask\":{\"endpoint\":\"hello_world\",\"url_rule\":\"/\",\"version\":\"2.1.2\"},\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"python\",\"process_id\":\"437\",\"runtime-id\":\"7f72d8756af44893a60b69a077caded8\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"uri\":\"python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:50:52.475Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"python-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"9270756141854228302\",\"start_timestamp\":\"2023-06-29T09:50:52.472Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"uri:python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"project:cf-platform-engineering-cipp2\",\"space_name:space_1\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"version:1.0.0\",\"app_name:python-sample-app-spartancrimson\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"app_instance_guid:8ac6ec63-4309-4461-5abc-6232\",\"application_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"app_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"bosh_job:compute\",\"instance_group:compute\",\"application_name:python-sample-app-spartancrimson\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"container_name:8ac6ec63-4309-4461-5abc-6232\",\"container_id:8ac6ec63-4309-4461-5abc-6232\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"container_name:python-sample-app-spartancrimson_0\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"pcf-spartancrimson\",\"service:python-sample-app-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"cloudfoundry\",\"bosh_name:compute\",\"cf_instance_ip:10.0.4.8\",\"app_guid:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"3740652481065462946\",\"type\":\"web\"}},{\"id\":\"AYkGkC-vAABH0bCfOzJhypRc\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"component\":\"http\",\"duration\":284180,\"env\":\"pcf-macaroniandcheese\",\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.81.0\"},\"language\":\"javascript\",\"process_id\":\"17\",\"runtime-id\":\"8f7e6bf6-f403-47ca-8a01-1f3c4b1a3dbd\",\"service\":\"nodejs-sample-app-macaroniandcheese\",\"span\":{\"kind\":\"server\"},\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:50:53.505Z\",\"env\":\"pcf-macaroniandcheese\",\"host\":\"compute-0-3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"a509a3c69ad1028d\",\"resource_name\":\"GET\",\"retained_by\":\"diversity_sampling\",\"service\":\"nodejs-sample-app-macaroniandcheese\",\"single_span\":false,\"span_id\":\"6671111812380197518\",\"start_timestamp\":\"2023-06-29T09:50:53.505Z\",\"tags\":[\"app_instance_guid:02018c68-0c39-4029-7431-70a3\",\"container_name:02018c68-0c39-4029-7431-70a3\",\"source:apm\",\"bosh_address:10.0.4.8\",\"bosh_az:us-central1-f\",\"bosh_deployment:cf-b5abb4bac9b904313ba3\",\"bosh_id:3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"bosh_index:0\",\"bosh_ip:10.0.4.8\",\"bosh_job:compute\",\"bosh_name:compute\",\"cf-b5abb4bac9b904313ba3\",\"cf-b5abb4bac9b904313ba3-compute\",\"cloudfoundry\",\"compute\",\"created_at:2023-06-20t20:03:20z\",\"deployment:cf-b5abb4bac9b904313ba3\",\"director:p-bosh\",\"env:pcf-macaroniandcheese\",\"id:3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"index:0\",\"index:3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"instance-id:4669805914138589973\",\"instance-type:n1-highmem-2\",\"instance_group:compute\",\"internal-hostname:vm-1902d732-65b7-4e63-6eb6-6dd973b77185.c.cf-platform-engineering-cipp1.internal\",\"ip:10.0.4.8\",\"job:compute\",\"name:compute/3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"numeric_project_id:760108534255\",\"p-bosh\",\"p-bosh-cf-b5abb4bac9b904313ba3\",\"p-bosh-cf-b5abb4bac9b904313ba3-compute\",\"pcf-macaroniandcheese\",\"project:cf-platform-engineering-cipp1\",\"user_data:_server_:_name_:_vm-1902d732-65b7-4e63-6eb6-6dd973b77185_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\",\"zone:us-central1-f\"],\"trace_id\":\"6671111812380197518\",\"type\":\"web\"}},{\"id\":\"AYkGkCmDAACdei5v_BmVb8ZW\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":1027645,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":53,\"name\":\"http-nio-8080-exec-10\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:50:53.834Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"5407116910258794847\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"2283986807028514392\",\"start_timestamp\":\"2023-06-29T09:50:53.833Z\",\"tags\":[\"foo:bar\",\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"space_name:space_1\",\"project:cf-platform-engineering-cipp2\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"container_name:java-sample-app-spartancrimson_0\",\"cf_instance_ip:10.0.4.8\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"6252933144469107600\",\"type\":\"web\"}},{\"id\":\"AYkGkCmDAACqGvVFPx1pQMZW\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"tomcat-server\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":1406493,\"env\":\"pcf-spartancrimson\",\"http\":{\"host\":\"localhost\",\"hostname\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"jvm\",\"peer\":{\"ipv4\":\"127.0.0.1\",\"port\":34580},\"process_id\":\"43\",\"runtime-id\":\"f48d4c5f-f7ec-423a-a918-5f68d0f0dd9b\",\"servlet\":{\"context\":\"/\",\"path\":\"/\"},\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":53,\"name\":\"http-nio-8080-exec-10\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:50:53.834Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"5407116910258794847\",\"start_timestamp\":\"2023-06-29T09:50:53.833Z\",\"tags\":[\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"project:cf-platform-engineering-cipp2\",\"space_name:space_1\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version:1.0.0\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"p-bosh\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"cloudfoundry\",\"bosh_name:compute\",\"cf_instance_ip:10.0.4.8\",\"container_name:java-sample-app-spartancrimson_0\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"6252933144469107600\",\"type\":\"web\"}},{\"id\":\"AYkGkB75AABd9OUT73-M8j1h\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"26fe9f69-0347-4173-bab6-9ebc9046c466\",\"application_name\":\"go-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"net/http\",\"container_id\":\"00e3afdc-32d4-4df1-6be0-14f2\",\"duration\":79076,\"env\":\"pcf-spartancrimson\",\"http\":{\"host\":\"localhost:8080\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"go\",\"process_id\":\"30\",\"runtime-id\":\"3220a876-6727-41c5-8537-036c7ec5b755\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"uri\":\"go-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:50:54.953Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"go-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"7006943107639417989\",\"start_timestamp\":\"2023-06-29T09:50:54.953Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"space_name:space_1\",\"project:cf-platform-engineering-cipp2\",\"app_guid:26fe9f69-0347-4173-bab6-9ebc9046c466\",\"compute\",\"container_name:00e3afdc-32d4-4df1-6be0-14f2\",\"label_key:label_value\",\"job:compute\",\"app_instance_guid:00e3afdc-32d4-4df1-6be0-14f2\",\"bosh_az:us-central1-f\",\"app_name:go-sample-app-spartancrimson\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"app_id:26fe9f69-0347-4173-bab6-9ebc9046c466\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"application_id:26fe9f69-0347-4173-bab6-9ebc9046c466\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"cf-6a3777f94c200f214075\",\"service:go-sample-app-spartancrimson\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_name:go-sample-app-spartancrimson\",\"container_name:go-sample-app-spartancrimson_0\",\"p-bosh\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"pcf-spartancrimson\",\"uri:go-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"cloudfoundry\",\"bosh_name:compute\",\"cf_instance_ip:10.0.4.8\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"container_id:00e3afdc-32d4-4df1-6be0-14f2\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"7006943107639417989\",\"type\":\"web\"}},{\"id\":\"AYkGkDPhAAB78mZ9pO_e6T9j\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"cf_instance_ip\":\"10.0.4.8 container_id:dcad6411-00b3-4417-5284-298f application_id:5e3690f7-b373-4d90-a684-cafa9d73c97e application_name:nodejs-sample-app-spartancrimson instance_index:0 space_name:Space_1 uri:nodejs-sample-app-spartancrimson.apps.spartancrimson.cf-app.com buildpack_version:4.37.0\",\"component\":\"http\",\"duration\":495117,\"env\":\"pcf-spartancrimson\",\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"language\":\"javascript\",\"process_id\":\"49\",\"runtime-id\":\"b08fae27-3fbe-4d06-a472-1f1bd97edcad\",\"service\":\"nodejs-sample-app-spartancrimson\",\"span\":{\"kind\":\"server\"},\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:50:55.929Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"a509a3c69ad1028d\",\"resource_name\":\"GET\",\"retained_by\":\"diversity_sampling\",\"service\":\"nodejs-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"7151498394757197262\",\"start_timestamp\":\"2023-06-29T09:50:55.929Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"space_name:space_1\",\"project:cf-platform-engineering-cipp2\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"application_id:5e3690f7-b373-4d90-a684-cafa9d73c97e\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"app_guid:5e3690f7-b373-4d90-a684-cafa9d73c97e\",\"container_name:dcad6411-00b3-4417-5284-298f\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"application_name:nodejs-sample-app-spartancrimson\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"app_id:5e3690f7-b373-4d90-a684-cafa9d73c97e\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"cf-6a3777f94c200f214075\",\"app_name:nodejs-sample-app-spartancrimson\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"container_id:dcad6411-00b3-4417-5284-298f\",\"p-bosh\",\"uri:nodejs-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"container_name:nodejs-sample-app-spartancrimson_0\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"app_instance_guid:dcad6411-00b3-4417-5284-298f\",\"bosh_index:0\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"service:nodejs-sample-app-spartancrimson\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"7151498394757197262\",\"type\":\"web\"}},{\"id\":\"AYkGkDjpAACY58W27O3MNguI\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"application_name\":\"python-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"flask\",\"container_id\":\"8ac6ec63-4309-4461-5abc-6232\",\"duration\":5075046,\"env\":\"pcf-spartancrimson\",\"flask\":{\"endpoint\":\"hello_world\",\"url_rule\":\"/\",\"version\":\"2.1.2\"},\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"python\",\"process_id\":\"437\",\"runtime-id\":\"7f72d8756af44893a60b69a077caded8\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"uri\":\"python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:50:57.506Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"python-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"12722338338854837173\",\"start_timestamp\":\"2023-06-29T09:50:57.501Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"uri:python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"space_name:space_1\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"project:cf-platform-engineering-cipp2\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"version:1.0.0\",\"app_name:python-sample-app-spartancrimson\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"app_instance_guid:8ac6ec63-4309-4461-5abc-6232\",\"application_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"app_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"bosh_job:compute\",\"instance_group:compute\",\"application_name:python-sample-app-spartancrimson\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"container_name:8ac6ec63-4309-4461-5abc-6232\",\"container_id:8ac6ec63-4309-4461-5abc-6232\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"container_name:python-sample-app-spartancrimson_0\",\"p-bosh\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"pcf-spartancrimson\",\"org_name:org_1\",\"service:python-sample-app-spartancrimson\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"app_guid:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"9803068093656868865\",\"type\":\"web\"}},{\"id\":\"AYkGkEM6AAD6QLfd8zOG9VZb\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"component\":\"http\",\"duration\":257568,\"env\":\"pcf-macaroniandcheese\",\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.81.0\"},\"language\":\"javascript\",\"process_id\":\"17\",\"runtime-id\":\"8f7e6bf6-f403-47ca-8a01-1f3c4b1a3dbd\",\"service\":\"nodejs-sample-app-macaroniandcheese\",\"span\":{\"kind\":\"server\"},\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:50:58.522Z\",\"env\":\"pcf-macaroniandcheese\",\"host\":\"compute-0-3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"a509a3c69ad1028d\",\"resource_name\":\"GET\",\"retained_by\":\"diversity_sampling\",\"service\":\"nodejs-sample-app-macaroniandcheese\",\"single_span\":false,\"span_id\":\"6581578424509420150\",\"start_timestamp\":\"2023-06-29T09:50:58.522Z\",\"tags\":[\"app_instance_guid:02018c68-0c39-4029-7431-70a3\",\"container_name:02018c68-0c39-4029-7431-70a3\",\"source:apm\",\"bosh_address:10.0.4.8\",\"bosh_az:us-central1-f\",\"bosh_deployment:cf-b5abb4bac9b904313ba3\",\"bosh_id:3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"bosh_index:0\",\"bosh_ip:10.0.4.8\",\"bosh_job:compute\",\"bosh_name:compute\",\"cf-b5abb4bac9b904313ba3\",\"cf-b5abb4bac9b904313ba3-compute\",\"cloudfoundry\",\"compute\",\"created_at:2023-06-20t20:03:20z\",\"deployment:cf-b5abb4bac9b904313ba3\",\"director:p-bosh\",\"env:pcf-macaroniandcheese\",\"id:3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"index:0\",\"index:3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"instance-id:4669805914138589973\",\"instance-type:n1-highmem-2\",\"instance_group:compute\",\"internal-hostname:vm-1902d732-65b7-4e63-6eb6-6dd973b77185.c.cf-platform-engineering-cipp1.internal\",\"ip:10.0.4.8\",\"job:compute\",\"name:compute/3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"numeric_project_id:760108534255\",\"p-bosh\",\"p-bosh-cf-b5abb4bac9b904313ba3\",\"p-bosh-cf-b5abb4bac9b904313ba3-compute\",\"pcf-macaroniandcheese\",\"project:cf-platform-engineering-cipp1\",\"user_data:_server_:_name_:_vm-1902d732-65b7-4e63-6eb6-6dd973b77185_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\",\"zone:us-central1-f\"],\"trace_id\":\"6581578424509420150\",\"type\":\"web\"}},{\"id\":\"AYkGkD0IAAD6QeMtBkv8CN44\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"tomcat-server\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":1594528,\"env\":\"pcf-spartancrimson\",\"http\":{\"host\":\"localhost\",\"hostname\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"jvm\",\"peer\":{\"ipv4\":\"127.0.0.1\",\"port\":34604},\"process_id\":\"43\",\"runtime-id\":\"f48d4c5f-f7ec-423a-a918-5f68d0f0dd9b\",\"servlet\":{\"context\":\"/\",\"path\":\"/\"},\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":49,\"name\":\"http-nio-8080-exec-6\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:50:58.856Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"7932852767190870180\",\"start_timestamp\":\"2023-06-29T09:50:58.855Z\",\"tags\":[\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"project:cf-platform-engineering-cipp2\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"space_name:space_1\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"container_name:java-sample-app-spartancrimson_0\",\"cf_instance_ip:10.0.4.8\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"4097838600103622745\",\"type\":\"web\"}},{\"id\":\"AYkGkD0IAAD_TfsG2GecIN44\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":1223628,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":49,\"name\":\"http-nio-8080-exec-6\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:50:58.856Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"7932852767190870180\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"6858500482118591216\",\"start_timestamp\":\"2023-06-29T09:50:58.855Z\",\"tags\":[\"foo:bar\",\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"space_name:space_1\",\"project:cf-platform-engineering-cipp2\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version:1.0.0\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"p-bosh\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"container_name:java-sample-app-spartancrimson_0\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"4097838600103622745\",\"type\":\"web\"}},{\"id\":\"AYkGkEYJAAB8hx-ZNIz1QgNc\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"26fe9f69-0347-4173-bab6-9ebc9046c466\",\"application_name\":\"go-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"net/http\",\"container_id\":\"00e3afdc-32d4-4df1-6be0-14f2\",\"duration\":66922,\"env\":\"pcf-spartancrimson\",\"http\":{\"host\":\"localhost:8080\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"go\",\"process_id\":\"30\",\"runtime-id\":\"3220a876-6727-41c5-8537-036c7ec5b755\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"uri\":\"go-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:50:59.973Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"go-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"6630423838849647442\",\"start_timestamp\":\"2023-06-29T09:50:59.973Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"space_name:space_1\",\"project:cf-platform-engineering-cipp2\",\"app_guid:26fe9f69-0347-4173-bab6-9ebc9046c466\",\"compute\",\"container_name:00e3afdc-32d4-4df1-6be0-14f2\",\"job:compute\",\"label_key:label_value\",\"app_instance_guid:00e3afdc-32d4-4df1-6be0-14f2\",\"bosh_az:us-central1-f\",\"app_name:go-sample-app-spartancrimson\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"app_id:26fe9f69-0347-4173-bab6-9ebc9046c466\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"application_id:26fe9f69-0347-4173-bab6-9ebc9046c466\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"cf-6a3777f94c200f214075\",\"service:go-sample-app-spartancrimson\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_name:go-sample-app-spartancrimson\",\"container_name:go-sample-app-spartancrimson_0\",\"p-bosh\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"pcf-spartancrimson\",\"org_name:org_1\",\"uri:go-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"container_id:00e3afdc-32d4-4df1-6be0-14f2\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"6630423838849647442\",\"type\":\"web\"}},{\"id\":\"AYkGkEdqAAC_Lg-d7N4ID3Us\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"cf_instance_ip\":\"10.0.4.8 container_id:dcad6411-00b3-4417-5284-298f application_id:5e3690f7-b373-4d90-a684-cafa9d73c97e application_name:nodejs-sample-app-spartancrimson instance_index:0 space_name:Space_1 uri:nodejs-sample-app-spartancrimson.apps.spartancrimson.cf-app.com buildpack_version:4.37.0\",\"component\":\"http\",\"duration\":4386475,\"env\":\"pcf-spartancrimson\",\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"language\":\"javascript\",\"process_id\":\"49\",\"runtime-id\":\"b08fae27-3fbe-4d06-a472-1f1bd97edcad\",\"service\":\"nodejs-sample-app-spartancrimson\",\"span\":{\"kind\":\"server\"},\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:51:00.959Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"a509a3c69ad1028d\",\"resource_name\":\"GET\",\"retained_by\":\"diversity_sampling\",\"service\":\"nodejs-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"3203689721572074853\",\"start_timestamp\":\"2023-06-29T09:51:00.955Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"space_name:space_1\",\"project:cf-platform-engineering-cipp2\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"application_id:5e3690f7-b373-4d90-a684-cafa9d73c97e\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"app_guid:5e3690f7-b373-4d90-a684-cafa9d73c97e\",\"container_name:dcad6411-00b3-4417-5284-298f\",\"application_name:nodejs-sample-app-spartancrimson\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"app_id:5e3690f7-b373-4d90-a684-cafa9d73c97e\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"cf-6a3777f94c200f214075\",\"app_name:nodejs-sample-app-spartancrimson\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"container_id:dcad6411-00b3-4417-5284-298f\",\"container_name:nodejs-sample-app-spartancrimson_0\",\"uri:nodejs-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"app_instance_guid:dcad6411-00b3-4417-5284-298f\",\"bosh_index:0\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"service:nodejs-sample-app-spartancrimson\",\"cf_instance_ip:10.0.4.8\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"3203689721572074853\",\"type\":\"web\"}},{\"id\":\"AYkGkExwAADIdTUd8rztdpHy\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"application_name\":\"python-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"flask\",\"container_id\":\"8ac6ec63-4309-4461-5abc-6232\",\"duration\":4526268,\"env\":\"pcf-spartancrimson\",\"flask\":{\"endpoint\":\"hello_world\",\"url_rule\":\"/\",\"version\":\"2.1.2\"},\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"python\",\"process_id\":\"437\",\"runtime-id\":\"7f72d8756af44893a60b69a077caded8\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"uri\":\"python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:51:02.533Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"python-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"13732938423051662315\",\"start_timestamp\":\"2023-06-29T09:51:02.529Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"uri:python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"space_name:space_1\",\"project:cf-platform-engineering-cipp2\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"version:1.0.0\",\"app_name:python-sample-app-spartancrimson\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"app_instance_guid:8ac6ec63-4309-4461-5abc-6232\",\"application_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"app_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"bosh_job:compute\",\"instance_group:compute\",\"application_name:python-sample-app-spartancrimson\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"container_name:8ac6ec63-4309-4461-5abc-6232\",\"container_id:8ac6ec63-4309-4461-5abc-6232\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"container_name:python-sample-app-spartancrimson_0\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"pcf-spartancrimson\",\"org_name:org_1\",\"service:python-sample-app-spartancrimson\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"app_guid:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"17478897124928621820\",\"type\":\"web\"}},{\"id\":\"AYkGkFa-AADBciK22npFZ64m\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"component\":\"http\",\"duration\":279541,\"env\":\"pcf-macaroniandcheese\",\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.81.0\"},\"language\":\"javascript\",\"process_id\":\"17\",\"runtime-id\":\"8f7e6bf6-f403-47ca-8a01-1f3c4b1a3dbd\",\"service\":\"nodejs-sample-app-macaroniandcheese\",\"span\":{\"kind\":\"server\"},\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:51:03.54Z\",\"env\":\"pcf-macaroniandcheese\",\"host\":\"compute-0-3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"a509a3c69ad1028d\",\"resource_name\":\"GET\",\"retained_by\":\"diversity_sampling\",\"service\":\"nodejs-sample-app-macaroniandcheese\",\"single_span\":false,\"span_id\":\"2787325584578996790\",\"start_timestamp\":\"2023-06-29T09:51:03.54Z\",\"tags\":[\"app_instance_guid:02018c68-0c39-4029-7431-70a3\",\"container_name:02018c68-0c39-4029-7431-70a3\",\"source:apm\",\"bosh_address:10.0.4.8\",\"bosh_az:us-central1-f\",\"bosh_deployment:cf-b5abb4bac9b904313ba3\",\"bosh_id:3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"bosh_index:0\",\"bosh_ip:10.0.4.8\",\"bosh_job:compute\",\"bosh_name:compute\",\"cf-b5abb4bac9b904313ba3\",\"cf-b5abb4bac9b904313ba3-compute\",\"cloudfoundry\",\"compute\",\"created_at:2023-06-20t20:03:20z\",\"deployment:cf-b5abb4bac9b904313ba3\",\"director:p-bosh\",\"env:pcf-macaroniandcheese\",\"id:3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"index:0\",\"index:3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"instance-id:4669805914138589973\",\"instance-type:n1-highmem-2\",\"instance_group:compute\",\"internal-hostname:vm-1902d732-65b7-4e63-6eb6-6dd973b77185.c.cf-platform-engineering-cipp1.internal\",\"ip:10.0.4.8\",\"job:compute\",\"name:compute/3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"numeric_project_id:760108534255\",\"p-bosh\",\"p-bosh-cf-b5abb4bac9b904313ba3\",\"p-bosh-cf-b5abb4bac9b904313ba3-compute\",\"pcf-macaroniandcheese\",\"project:cf-platform-engineering-cipp1\",\"user_data:_server_:_name_:_vm-1902d732-65b7-4e63-6eb6-6dd973b77185_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\",\"zone:us-central1-f\"],\"trace_id\":\"2787325584578996790\",\"type\":\"web\"}},{\"id\":\"AYkGkFCQAADQk5wPJneKNxoU\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":1157215,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":48,\"name\":\"http-nio-8080-exec-5\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:51:03.88Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"803234406780610866\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"336673670559389884\",\"start_timestamp\":\"2023-06-29T09:51:03.879Z\",\"tags\":[\"foo:bar\",\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"project:cf-platform-engineering-cipp2\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"space_name:space_1\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version:1.0.0\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"p-bosh\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"cloudfoundry\",\"bosh_name:compute\",\"container_name:java-sample-app-spartancrimson_0\",\"cf_instance_ip:10.0.4.8\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"1448528526839826639\",\"type\":\"web\"}},{\"id\":\"AYkGkFCQAADIaesQoUDynhoU\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"tomcat-server\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":1565132,\"env\":\"pcf-spartancrimson\",\"http\":{\"host\":\"localhost\",\"hostname\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"jvm\",\"peer\":{\"ipv4\":\"127.0.0.1\",\"port\":36372},\"process_id\":\"43\",\"runtime-id\":\"f48d4c5f-f7ec-423a-a918-5f68d0f0dd9b\",\"servlet\":{\"context\":\"/\",\"path\":\"/\"},\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":48,\"name\":\"http-nio-8080-exec-5\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:51:03.88Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"803234406780610866\",\"start_timestamp\":\"2023-06-29T09:51:03.879Z\",\"tags\":[\"foo:bar\",\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"project:cf-platform-engineering-cipp2\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"space_name:space_1\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version:1.0.0\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"p-bosh\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"container_name:java-sample-app-spartancrimson_0\",\"cf_instance_ip:10.0.4.8\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"1448528526839826639\",\"type\":\"web\"}},{\"id\":\"AYkGkEYJAABFV0Flh5MUiDAU\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"26fe9f69-0347-4173-bab6-9ebc9046c466\",\"application_name\":\"go-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"net/http\",\"container_id\":\"00e3afdc-32d4-4df1-6be0-14f2\",\"duration\":69706,\"env\":\"pcf-spartancrimson\",\"http\":{\"host\":\"localhost:8080\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"go\",\"process_id\":\"30\",\"runtime-id\":\"3220a876-6727-41c5-8537-036c7ec5b755\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"uri\":\"go-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:51:04.994Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"go-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"1454749899682980213\",\"start_timestamp\":\"2023-06-29T09:51:04.994Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"space_name:space_1\",\"project:cf-platform-engineering-cipp2\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"app_guid:26fe9f69-0347-4173-bab6-9ebc9046c466\",\"compute\",\"container_name:00e3afdc-32d4-4df1-6be0-14f2\",\"job:compute\",\"label_key:label_value\",\"app_instance_guid:00e3afdc-32d4-4df1-6be0-14f2\",\"bosh_az:us-central1-f\",\"app_name:go-sample-app-spartancrimson\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"app_id:26fe9f69-0347-4173-bab6-9ebc9046c466\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"application_id:26fe9f69-0347-4173-bab6-9ebc9046c466\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"cf-6a3777f94c200f214075\",\"service:go-sample-app-spartancrimson\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_name:go-sample-app-spartancrimson\",\"container_name:go-sample-app-spartancrimson_0\",\"p-bosh\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"pcf-spartancrimson\",\"org_name:org_1\",\"uri:go-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"container_id:00e3afdc-32d4-4df1-6be0-14f2\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"1454749899682980213\",\"type\":\"web\"}},{\"id\":\"AYkGkFrwAADQI65eLNUD3p07\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"cf_instance_ip\":\"10.0.4.8 container_id:dcad6411-00b3-4417-5284-298f application_id:5e3690f7-b373-4d90-a684-cafa9d73c97e application_name:nodejs-sample-app-spartancrimson instance_index:0 space_name:Space_1 uri:nodejs-sample-app-spartancrimson.apps.spartancrimson.cf-app.com buildpack_version:4.37.0\",\"component\":\"http\",\"duration\":802246,\"env\":\"pcf-spartancrimson\",\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"language\":\"javascript\",\"process_id\":\"49\",\"runtime-id\":\"b08fae27-3fbe-4d06-a472-1f1bd97edcad\",\"service\":\"nodejs-sample-app-spartancrimson\",\"span\":{\"kind\":\"server\"},\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:51:05.978Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"a509a3c69ad1028d\",\"resource_name\":\"GET\",\"retained_by\":\"diversity_sampling\",\"service\":\"nodejs-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"4295755302623693367\",\"start_timestamp\":\"2023-06-29T09:51:05.978Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"project:cf-platform-engineering-cipp2\",\"space_name:space_1\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"application_id:5e3690f7-b373-4d90-a684-cafa9d73c97e\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"app_guid:5e3690f7-b373-4d90-a684-cafa9d73c97e\",\"container_name:dcad6411-00b3-4417-5284-298f\",\"application_name:nodejs-sample-app-spartancrimson\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"app_id:5e3690f7-b373-4d90-a684-cafa9d73c97e\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"app_name:nodejs-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"container_id:dcad6411-00b3-4417-5284-298f\",\"container_name:nodejs-sample-app-spartancrimson_0\",\"p-bosh\",\"uri:nodejs-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"app_instance_guid:dcad6411-00b3-4417-5284-298f\",\"bosh_index:0\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"cloudfoundry\",\"bosh_name:compute\",\"cf_instance_ip:10.0.4.8\",\"service:nodejs-sample-app-spartancrimson\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"4295755302623693367\",\"type\":\"web\"}},{\"id\":\"AYkGkF_4AAChWpEcOPvO52q6\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"application_name\":\"python-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"flask\",\"container_id\":\"8ac6ec63-4309-4461-5abc-6232\",\"duration\":4274287,\"env\":\"pcf-spartancrimson\",\"flask\":{\"endpoint\":\"hello_world\",\"url_rule\":\"/\",\"version\":\"2.1.2\"},\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"python\",\"process_id\":\"437\",\"runtime-id\":\"7f72d8756af44893a60b69a077caded8\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"uri\":\"python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:51:07.559Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"python-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"4518528746064694296\",\"start_timestamp\":\"2023-06-29T09:51:07.555Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"uri:python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"project:cf-platform-engineering-cipp2\",\"space_name:space_1\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"version:1.0.0\",\"app_name:python-sample-app-spartancrimson\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"app_instance_guid:8ac6ec63-4309-4461-5abc-6232\",\"application_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"app_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"application_name:python-sample-app-spartancrimson\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"container_name:8ac6ec63-4309-4461-5abc-6232\",\"cf-6a3777f94c200f214075\",\"container_id:8ac6ec63-4309-4461-5abc-6232\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"container_name:python-sample-app-spartancrimson_0\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"pcf-spartancrimson\",\"org_name:org_1\",\"service:python-sample-app-spartancrimson\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"director:p-bosh\",\"app_guid:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"13432640373886518168\",\"type\":\"web\"}},{\"id\":\"AYkGkGpGAACF-GPdmH75km9F\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"component\":\"http\",\"duration\":293457,\"env\":\"pcf-macaroniandcheese\",\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.81.0\"},\"language\":\"javascript\",\"process_id\":\"17\",\"runtime-id\":\"8f7e6bf6-f403-47ca-8a01-1f3c4b1a3dbd\",\"service\":\"nodejs-sample-app-macaroniandcheese\",\"span\":{\"kind\":\"server\"},\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:51:08.565Z\",\"env\":\"pcf-macaroniandcheese\",\"host\":\"compute-0-3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"a509a3c69ad1028d\",\"resource_name\":\"GET\",\"retained_by\":\"diversity_sampling\",\"service\":\"nodejs-sample-app-macaroniandcheese\",\"single_span\":false,\"span_id\":\"5003435178375377658\",\"start_timestamp\":\"2023-06-29T09:51:08.565Z\",\"tags\":[\"app_instance_guid:02018c68-0c39-4029-7431-70a3\",\"container_name:02018c68-0c39-4029-7431-70a3\",\"source:apm\",\"bosh_address:10.0.4.8\",\"bosh_az:us-central1-f\",\"bosh_deployment:cf-b5abb4bac9b904313ba3\",\"bosh_id:3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"bosh_index:0\",\"bosh_ip:10.0.4.8\",\"bosh_job:compute\",\"bosh_name:compute\",\"cf-b5abb4bac9b904313ba3\",\"cf-b5abb4bac9b904313ba3-compute\",\"cloudfoundry\",\"compute\",\"created_at:2023-06-20t20:03:20z\",\"deployment:cf-b5abb4bac9b904313ba3\",\"director:p-bosh\",\"env:pcf-macaroniandcheese\",\"id:3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"index:0\",\"index:3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"instance-id:4669805914138589973\",\"instance-type:n1-highmem-2\",\"instance_group:compute\",\"internal-hostname:vm-1902d732-65b7-4e63-6eb6-6dd973b77185.c.cf-platform-engineering-cipp1.internal\",\"ip:10.0.4.8\",\"job:compute\",\"name:compute/3c23ebc5-96fa-4282-b912-d7eed82153a3\",\"numeric_project_id:760108534255\",\"p-bosh\",\"p-bosh-cf-b5abb4bac9b904313ba3\",\"p-bosh-cf-b5abb4bac9b904313ba3-compute\",\"pcf-macaroniandcheese\",\"project:cf-platform-engineering-cipp1\",\"user_data:_server_:_name_:_vm-1902d732-65b7-4e63-6eb6-6dd973b77185_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\",\"zone:us-central1-f\"],\"trace_id\":\"5003435178375377658\",\"type\":\"web\"}},{\"id\":\"AYkGkGQXAACPlSiDaRkB55UX\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"tomcat-server\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":1301452,\"env\":\"pcf-spartancrimson\",\"http\":{\"host\":\"localhost\",\"hostname\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"jvm\",\"peer\":{\"ipv4\":\"127.0.0.1\",\"port\":36408},\"process_id\":\"43\",\"runtime-id\":\"f48d4c5f-f7ec-423a-a918-5f68d0f0dd9b\",\"servlet\":{\"context\":\"/\",\"path\":\"/\"},\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":50,\"name\":\"http-nio-8080-exec-7\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:51:08.902Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"7077482257038748526\",\"start_timestamp\":\"2023-06-29T09:51:08.901Z\",\"tags\":[\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"project:cf-platform-engineering-cipp2\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"space_name:space_1\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"compute\",\"job:compute\",\"label_key:label_value\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"cloudfoundry\",\"bosh_name:compute\",\"cf_instance_ip:10.0.4.8\",\"container_name:java-sample-app-spartancrimson_0\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"1699342955512709833\",\"type\":\"web\"}},{\"id\":\"AYkGkGQXAAA2H9YhhShVjpUX\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"application_name\":\"java-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"spring-web-controller\",\"container_id\":\"a5818728-ea66-4c17-551e-20ed\",\"duration\":1030270,\"env\":\"pcf-spartancrimson\",\"instance_index\":\"0\",\"language\":\"jvm\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"thread\":{\"id\":50,\"name\":\"http-nio-8080-exec-7\"},\"uri\":\"java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:51:08.902Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"7077482257038748526\",\"resource_hash\":\"7b7c528ae49eecb8\",\"resource_name\":\"Controller.index\",\"retained_by\":\"diversity_sampling\",\"service\":\"java-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"5726131752023301179\",\"start_timestamp\":\"2023-06-29T09:51:08.901Z\",\"tags\":[\"foo:bar\",\"app_instance_guid:a5818728-ea66-4c17-551e-20ed\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"app_guid:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"project:cf-platform-engineering-cipp2\",\"app_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"space_name:space_1\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"uri:java-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"container_id:a5818728-ea66-4c17-551e-20ed\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"application_name:java-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_id:cfeedbda-ce30-4f8e-bd4a-fb5f7e1dfa0f\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"container_name:a5818728-ea66-4c17-551e-20ed\",\"service:java-sample-app-spartancrimson\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"app_name:java-sample-app-spartancrimson\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"cloudfoundry\",\"bosh_name:compute\",\"container_name:java-sample-app-spartancrimson_0\",\"cf_instance_ip:10.0.4.8\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"1699342955512709833\",\"type\":\"web\"}},{\"id\":\"AYkGkG0YAABbB9PrT-R19PwT\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"26fe9f69-0347-4173-bab6-9ebc9046c466\",\"application_name\":\"go-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"net/http\",\"container_id\":\"00e3afdc-32d4-4df1-6be0-14f2\",\"duration\":59912,\"env\":\"pcf-spartancrimson\",\"http\":{\"host\":\"localhost:8080\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"go\",\"process_id\":\"30\",\"runtime-id\":\"3220a876-6727-41c5-8537-036c7ec5b755\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"uri\":\"go-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:51:10.015Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"go-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"1440128135446434250\",\"start_timestamp\":\"2023-06-29T09:51:10.015Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"project:cf-platform-engineering-cipp2\",\"space_name:space_1\",\"app_guid:26fe9f69-0347-4173-bab6-9ebc9046c466\",\"compute\",\"container_name:00e3afdc-32d4-4df1-6be0-14f2\",\"job:compute\",\"label_key:label_value\",\"app_instance_guid:00e3afdc-32d4-4df1-6be0-14f2\",\"bosh_az:us-central1-f\",\"app_name:go-sample-app-spartancrimson\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"app_id:26fe9f69-0347-4173-bab6-9ebc9046c466\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"application_id:26fe9f69-0347-4173-bab6-9ebc9046c466\",\"bosh_job:compute\",\"instance_group:compute\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"cf-6a3777f94c200f214075\",\"service:go-sample-app-spartancrimson\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"application_name:go-sample-app-spartancrimson\",\"container_name:go-sample-app-spartancrimson_0\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"numeric_project_id:946413340424\",\"zone:us-central1-f\",\"bosh_index:0\",\"pcf-spartancrimson\",\"org_name:org_1\",\"uri:go-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"director:p-bosh\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"container_id:00e3afdc-32d4-4df1-6be0-14f2\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"1440128135446434250\",\"type\":\"web\"}},{\"id\":\"AYkGkG54AAD6_VesFZniXsZC\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"cf_instance_ip\":\"10.0.4.8 container_id:dcad6411-00b3-4417-5284-298f application_id:5e3690f7-b373-4d90-a684-cafa9d73c97e application_name:nodejs-sample-app-spartancrimson instance_index:0 space_name:Space_1 uri:nodejs-sample-app-spartancrimson.apps.spartancrimson.cf-app.com buildpack_version:4.37.0\",\"component\":\"http\",\"duration\":642822,\"env\":\"pcf-spartancrimson\",\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"language\":\"javascript\",\"process_id\":\"49\",\"runtime-id\":\"b08fae27-3fbe-4d06-a472-1f1bd97edcad\",\"service\":\"nodejs-sample-app-spartancrimson\",\"span\":{\"kind\":\"server\"},\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:51:11.001Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"a509a3c69ad1028d\",\"resource_name\":\"GET\",\"retained_by\":\"diversity_sampling\",\"service\":\"nodejs-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"4811688501360551368\",\"start_timestamp\":\"2023-06-29T09:51:11.001Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"space_name:space_1\",\"project:cf-platform-engineering-cipp2\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"application_id:5e3690f7-b373-4d90-a684-cafa9d73c97e\",\"version:1.0.0\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"created_at:2023-06-19t07:53:15z\",\"app_guid:5e3690f7-b373-4d90-a684-cafa9d73c97e\",\"container_name:dcad6411-00b3-4417-5284-298f\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"application_name:nodejs-sample-app-spartancrimson\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"app_id:5e3690f7-b373-4d90-a684-cafa9d73c97e\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"app_name:nodejs-sample-app-spartancrimson\",\"cf-6a3777f94c200f214075\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"container_id:dcad6411-00b3-4417-5284-298f\",\"container_name:nodejs-sample-app-spartancrimson_0\",\"uri:nodejs-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"instance-id:7569151968447150010\",\"index:0\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"app_instance_guid:dcad6411-00b3-4417-5284-298f\",\"bosh_index:0\",\"pcf-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"service:nodejs-sample-app-spartancrimson\",\"cf_instance_ip:10.0.4.8\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"director:p-bosh\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"4811688501360551368\",\"type\":\"web\"}},{\"id\":\"AYkGkHOBAAC42zH5S88riO26\",\"type\":\"spans\",\"attributes\":{\"custom\":{\"application_id\":\"3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"application_name\":\"python-sample-app-spartancrimson\",\"buildpack_version\":\"4.37.0\",\"cf_instance_ip\":\"10.0.4.8\",\"component\":\"flask\",\"container_id\":\"8ac6ec63-4309-4461-5abc-6232\",\"duration\":3885812,\"env\":\"pcf-spartancrimson\",\"flask\":{\"endpoint\":\"hello_world\",\"url_rule\":\"/\",\"version\":\"2.1.2\"},\"http\":{\"host\":\"localhost\",\"method\":\"GET\",\"path_group\":\"/\",\"route\":\"/\",\"status_code\":\"200\",\"url\":\"http://localhost:8080/\",\"url_details\":{\"host\":\"localhost\",\"path\":\"/\",\"port\":\"8080\",\"scheme\":\"http\"},\"useragent\":\"curl/7.58.0\"},\"instance_index\":\"0\",\"language\":\"python\",\"process_id\":\"437\",\"runtime-id\":\"7f72d8756af44893a60b69a077caded8\",\"space_name\":\"Space_1\",\"span\":{\"kind\":\"server\"},\"uri\":\"python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"version\":\"1.0.0\"},\"end_timestamp\":\"2023-06-29T09:51:12.585Z\",\"env\":\"pcf-spartancrimson\",\"host\":\"compute-0-7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ingestion_reason\":\"auto\",\"parent_id\":\"0\",\"resource_hash\":\"2c8cc8275262b3cd\",\"resource_name\":\"GET /\",\"retained_by\":\"diversity_sampling\",\"service\":\"python-sample-app-spartancrimson\",\"single_span\":false,\"span_id\":\"13370186067040789473\",\"start_timestamp\":\"2023-06-29T09:51:12.582Z\",\"tags\":[\"foo:bar\",\"deployment:cf-6a3777f94c200f214075\",\"app_instance_index:0\",\"uri:python-sample-app-spartancrimson.apps.spartancrimson.cf-app.com\",\"cf-6a3777f94c200f214075-compute\",\"source:apm\",\"project:cf-platform-engineering-cipp2\",\"internal-hostname:vm-b9bc5b36-128c-4584-7638-326ba16554fe.c.cf-platform-engineering-cipp2.internal\",\"space_name:space_1\",\"compute\",\"label_key:label_value\",\"job:compute\",\"bosh_az:us-central1-f\",\"version:1.0.0\",\"app_name:python-sample-app-spartancrimson\",\"buildpack_version:4.37.0\",\"space_id:e167390a-89cd-4a84-a54b-e10ddfe64e26\",\"app_instance_guid:8ac6ec63-4309-4461-5abc-6232\",\"application_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"created_at:2023-06-19t07:53:15z\",\"org_id:871f7c0c-0770-4c5d-a8a3-c85e398b4bd8\",\"app_id:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"p-bosh-cf-6a3777f94c200f214075-compute\",\"bosh_job:compute\",\"instance_group:compute\",\"application_name:python-sample-app-spartancrimson\",\"name:compute/7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"ip:10.0.4.8\",\"bosh_id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"container_name:8ac6ec63-4309-4461-5abc-6232\",\"cf-6a3777f94c200f214075\",\"container_id:8ac6ec63-4309-4461-5abc-6232\",\"metadata_key:metadata_value\",\"p-bosh-cf-6a3777f94c200f214075\",\"env:pcf-spartancrimson\",\"container_name:python-sample-app-spartancrimson_0\",\"p-bosh\",\"bosh_deployment:cf-6a3777f94c200f214075\",\"id:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"index:0\",\"instance-id:7569151968447150010\",\"bosh_address:10.0.4.8\",\"instance-type:n1-highmem-2\",\"zone:us-central1-f\",\"numeric_project_id:946413340424\",\"bosh_index:0\",\"pcf-spartancrimson\",\"service:python-sample-app-spartancrimson\",\"org_name:org_1\",\"bosh_ip:10.0.4.8\",\"bosh_name:compute\",\"cloudfoundry\",\"cf_instance_ip:10.0.4.8\",\"director:p-bosh\",\"app_guid:3df23a7e-1b4d-4d56-8829-9fd80e8c5ba9\",\"index:7cf8c81f-0dee-468b-af1b-bb6ba06b4b29\",\"user_data:_server_:_name_:_vm-b9bc5b36-128c-4584-7638-326ba16554fe_registry_:_endpoint_:_://:_:0_dns_:_nameserver_:_8.8.8.8\"],\"trace_id\":\"13469615109402324718\",\"type\":\"web\"}}],\"meta\":{\"elapsed\":88,\"request_id\":\"pddv1ChZjUlZPVGV5WVNFS1RKNW4zR3R3RnhBIi0KHZyFCoH2N3eHkR1DXTXA5oC-MZmH2KcFa0lIMEc-Egxy4r5txk9li1pxyr0\",\"status\":\"done\",\"page\":{\"after\":\"eyJhZnRlciI6IkFnQUFBWWtHa0dESlFDNEplZ0FBQUFBQUFBQVlBQUFBQUVGWmEwZHJTRTlDUVVGRE5ESjZTRFZUT0RoeWFVOHlOZ0FBQUNRQUFBQUFNREU0T1RBMk9UY3RPRGRsWmkwMFpqQmpMVGhoWTJRdE5tTTFNakptT1RSbVpXRTQiLCJ2YWx1ZXMiOlsiMjAyMy0wNi0yOVQwOTo1MToxMi41ODVaIiwxMDc2NzU4OTA2XX0=\"}},\"links\":{\"next\":\"https://api.datadoghq.com/api/v2/spans/events?filter%5Bfrom%5D=1688032252000\\u0026filter%5Bquery%5D=%2A\\u0026filter%5Bto%5D=1688033152000\\u0026page%5Bcursor%5D=eyJhZnRlciI6IkFnQUFBWWtHa0dESlFDNEplZ0FBQUFBQUFBQVlBQUFBQUVGWmEwZHJTRTlDUVVGRE5ESjZTRFZUT0RoeWFVOHlOZ0FBQUNRQUFBQUFNREU0T1RBMk9UY3RPRGRsWmkwMFpqQmpMVGhoWTJRdE5tTTFNakptT1RSbVpXRTQiLCJ2YWx1ZXMiOlsiMjAyMy0wNi0yOVQwOTo1MToxMi41ODVaIiwxMDc2NzU4OTA2XX0%3D\\u0026page%5Blimit%5D=25\\u0026sort=timestamp\"}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 29 Jun 2023 10:05:52 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/spans/Search-spans-returns-Unprocessable-Entity-response.json b/tests/scenarios/cassettes/v2/spans/Search-spans-returns-Unprocessable-Entity-response.json index 81edcfce5..932f55073 100644 --- a/tests/scenarios/cassettes/v2/spans/Search-spans-returns-Unprocessable-Entity-response.json +++ b/tests/scenarios/cassettes/v2/spans/Search-spans-returns-Unprocessable-Entity-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"filter\":{\"from\":\"now\",\"query\":\"service:web* AND @http.status_code:[200 TO 299]\",\"to\":\"now-15m\"},\"options\":{\"timezone\":\"GMT\"},\"page\":{\"limit\":10},\"sort\":\"timestamp\"},\"type\":\"search_request\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/spans/events/search"}, "response": {"body": {"string": "{\"errors\":[{\"title\":\"Generic Error\",\"detail\":\"invalid_argument(Field 'filter.from,to' is invalid: 'from' should be anterior to 'to')\"}]}", "encoding": null}, "headers": {"Content-Type": ["application/vnd.api+json"]}, "status": {"code": 422, "message": "Unprocessable Entity"}}, "recorded_at": "Thu, 29 Jun 2023 09:59:05 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"filter\":{\"from\":\"now\",\"query\":\"service:web* AND @http.status_code:[200 TO 299]\",\"to\":\"now-15m\"},\"options\":{\"timezone\":\"GMT\"},\"page\":{\"limit\":10},\"sort\":\"timestamp\"},\"type\":\"search_request\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/spans/events/search" + }, + "response": { + "body": { + "string": "{\"errors\":[{\"title\":\"Generic Error\",\"detail\":\"invalid_argument(Field 'filter.from,to' is invalid: 'from' should be anterior to 'to')\"}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 422, + "message": "Unprocessable Entity" + } + }, + "recorded_at": "Thu, 29 Jun 2023 09:59:05 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/spans_metrics/Create-a-span-based-metric-returns-OK-response.json b/tests/scenarios/cassettes/v2/spans_metrics/Create-a-span-based-metric-returns-OK-response.json index d23234b27..79363ab94 100644 --- a/tests/scenarios/cassettes/v2/spans_metrics/Create-a-span-based-metric-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/spans_metrics/Create-a-span-based-metric-returns-OK-response.json @@ -1 +1,67 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"compute\":{\"aggregation_type\":\"distribution\",\"include_percentiles\":false,\"path\":\"@duration\"},\"filter\":{\"query\":\"@http.status_code:200 service:my-service\"},\"group_by\":[{\"path\":\"resource_name\",\"tag_name\":\"resource_name\"}]},\"id\":\"TestCreateaspanbasedmetricreturnsOKresponse1686139498\",\"type\":\"spans_metrics\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/apm/config/metrics"}, "response": {"body": {"string": "{\"data\":{\"id\":\"TestCreateaspanbasedmetricreturnsOKresponse1686139498\",\"attributes\":{\"filter\":{\"query\":\"@http.status_code:200 service:my-service\"},\"group_by\":[{\"path\":\"resource_name\",\"tag_name\":\"resource_name\"}],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":false}},\"type\":\"spans_metrics\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 07 Jun 2023 12:04:58 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/apm/config/metrics/TestCreateaspanbasedmetricreturnsOKresponse1686139498"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 07 Jun 2023 12:04:58 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"compute\":{\"aggregation_type\":\"distribution\",\"include_percentiles\":false,\"path\":\"@duration\"},\"filter\":{\"query\":\"@http.status_code:200 service:my-service\"},\"group_by\":[{\"path\":\"resource_name\",\"tag_name\":\"resource_name\"}]},\"id\":\"TestCreateaspanbasedmetricreturnsOKresponse1686139498\",\"type\":\"spans_metrics\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/apm/config/metrics" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"TestCreateaspanbasedmetricreturnsOKresponse1686139498\",\"attributes\":{\"filter\":{\"query\":\"@http.status_code:200 service:my-service\"},\"group_by\":[{\"path\":\"resource_name\",\"tag_name\":\"resource_name\"}],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":false}},\"type\":\"spans_metrics\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 07 Jun 2023 12:04:58 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/apm/config/metrics/TestCreateaspanbasedmetricreturnsOKresponse1686139498" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 07 Jun 2023 12:04:58 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/spans_metrics/Delete-a-span-based-metric-returns-OK-response.json b/tests/scenarios/cassettes/v2/spans_metrics/Delete-a-span-based-metric-returns-OK-response.json index ae00e9869..39f416a9c 100644 --- a/tests/scenarios/cassettes/v2/spans_metrics/Delete-a-span-based-metric-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/spans_metrics/Delete-a-span-based-metric-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"compute\":{\"aggregation_type\":\"distribution\",\"include_percentiles\":false,\"path\":\"@duration\"},\"filter\":{\"query\":\"source:Test-Delete_a_span_based_metric_returns_OK_response-1681838888\"},\"group_by\":[{\"path\":\"resource_name\",\"tag_name\":\"resource_name\"}]},\"id\":\"Test-Delete_a_span_based_metric_returns_OK_response-1681838888\",\"type\":\"spans_metrics\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/apm/config/metrics"}, "response": {"body": {"string": "{\"data\":{\"id\":\"Test_Delete_a_span_based_metric_returns_OK_response_1681838888\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Delete_a_span_based_metric_returns_OK_response-1681838888\"},\"group_by\":[{\"path\":\"resource_name\",\"tag_name\":\"resource_name\"}],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":false}},\"type\":\"spans_metrics\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 18 Apr 2023 17:28:08 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/apm/config/metrics/Test_Delete_a_span_based_metric_returns_OK_response_1681838888"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Tue, 18 Apr 2023 17:28:08 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/apm/config/metrics/Test_Delete_a_span_based_metric_returns_OK_response_1681838888"}, "response": {"body": {"string": "{\"errors\":[\"not_found(Metric with name 'Test_Delete_a_span_based_metric_returns_OK_response_1681838888' not found)\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Tue, 18 Apr 2023 17:28:08 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"compute\":{\"aggregation_type\":\"distribution\",\"include_percentiles\":false,\"path\":\"@duration\"},\"filter\":{\"query\":\"source:Test-Delete_a_span_based_metric_returns_OK_response-1681838888\"},\"group_by\":[{\"path\":\"resource_name\",\"tag_name\":\"resource_name\"}]},\"id\":\"Test-Delete_a_span_based_metric_returns_OK_response-1681838888\",\"type\":\"spans_metrics\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/apm/config/metrics" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"Test_Delete_a_span_based_metric_returns_OK_response_1681838888\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Delete_a_span_based_metric_returns_OK_response-1681838888\"},\"group_by\":[{\"path\":\"resource_name\",\"tag_name\":\"resource_name\"}],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":false}},\"type\":\"spans_metrics\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 18 Apr 2023 17:28:08 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/apm/config/metrics/Test_Delete_a_span_based_metric_returns_OK_response_1681838888" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Tue, 18 Apr 2023 17:28:08 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/apm/config/metrics/Test_Delete_a_span_based_metric_returns_OK_response_1681838888" + }, + "response": { + "body": { + "string": "{\"errors\":[\"not_found(Metric with name 'Test_Delete_a_span_based_metric_returns_OK_response_1681838888' not found)\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Tue, 18 Apr 2023 17:28:08 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/spans_metrics/Get-a-span-based-metric-returns-OK-response.json b/tests/scenarios/cassettes/v2/spans_metrics/Get-a-span-based-metric-returns-OK-response.json index 6c04e2696..c23fce3f6 100644 --- a/tests/scenarios/cassettes/v2/spans_metrics/Get-a-span-based-metric-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/spans_metrics/Get-a-span-based-metric-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"compute\":{\"aggregation_type\":\"distribution\",\"include_percentiles\":false,\"path\":\"@duration\"},\"filter\":{\"query\":\"source:Test-Get_a_span_based_metric_returns_OK_response-1686139541\"},\"group_by\":[{\"path\":\"resource_name\",\"tag_name\":\"resource_name\"}]},\"id\":\"Test-Get_a_span_based_metric_returns_OK_response-1686139541\",\"type\":\"spans_metrics\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/apm/config/metrics"}, "response": {"body": {"string": "{\"data\":{\"id\":\"Test_Get_a_span_based_metric_returns_OK_response_1686139541\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_a_span_based_metric_returns_OK_response-1686139541\"},\"group_by\":[{\"path\":\"resource_name\",\"tag_name\":\"resource_name\"}],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":false}},\"type\":\"spans_metrics\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 07 Jun 2023 12:05:41 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/apm/config/metrics/Test_Get_a_span_based_metric_returns_OK_response_1686139541"}, "response": {"body": {"string": "{\"data\":{\"id\":\"Test_Get_a_span_based_metric_returns_OK_response_1686139541\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_a_span_based_metric_returns_OK_response-1686139541\"},\"group_by\":[{\"path\":\"resource_name\",\"tag_name\":\"resource_name\"}],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":false}},\"type\":\"spans_metrics\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 07 Jun 2023 12:05:41 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/apm/config/metrics/Test_Get_a_span_based_metric_returns_OK_response_1686139541"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 07 Jun 2023 12:05:41 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"compute\":{\"aggregation_type\":\"distribution\",\"include_percentiles\":false,\"path\":\"@duration\"},\"filter\":{\"query\":\"source:Test-Get_a_span_based_metric_returns_OK_response-1686139541\"},\"group_by\":[{\"path\":\"resource_name\",\"tag_name\":\"resource_name\"}]},\"id\":\"Test-Get_a_span_based_metric_returns_OK_response-1686139541\",\"type\":\"spans_metrics\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/apm/config/metrics" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"Test_Get_a_span_based_metric_returns_OK_response_1686139541\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_a_span_based_metric_returns_OK_response-1686139541\"},\"group_by\":[{\"path\":\"resource_name\",\"tag_name\":\"resource_name\"}],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":false}},\"type\":\"spans_metrics\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 07 Jun 2023 12:05:41 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/apm/config/metrics/Test_Get_a_span_based_metric_returns_OK_response_1686139541" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"Test_Get_a_span_based_metric_returns_OK_response_1686139541\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_a_span_based_metric_returns_OK_response-1686139541\"},\"group_by\":[{\"path\":\"resource_name\",\"tag_name\":\"resource_name\"}],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":false}},\"type\":\"spans_metrics\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 07 Jun 2023 12:05:41 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/apm/config/metrics/Test_Get_a_span_based_metric_returns_OK_response_1686139541" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 07 Jun 2023 12:05:41 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/spans_metrics/Get-all-span-based-metrics-returns-OK-response.json b/tests/scenarios/cassettes/v2/spans_metrics/Get-all-span-based-metrics-returns-OK-response.json index 81c96d354..255616a78 100644 --- a/tests/scenarios/cassettes/v2/spans_metrics/Get-all-span-based-metrics-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/spans_metrics/Get-all-span-based-metrics-returns-OK-response.json @@ -1 +1,95 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"compute\":{\"aggregation_type\":\"distribution\",\"include_percentiles\":false,\"path\":\"@duration\"},\"filter\":{\"query\":\"source:Test-Get_all_span_based_metrics_returns_OK_response-1686139550\"},\"group_by\":[{\"path\":\"resource_name\",\"tag_name\":\"resource_name\"}]},\"id\":\"Test-Get_all_span_based_metrics_returns_OK_response-1686139550\",\"type\":\"spans_metrics\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/apm/config/metrics"}, "response": {"body": {"string": "{\"data\":{\"id\":\"Test_Get_all_span_based_metrics_returns_OK_response_1686139550\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_all_span_based_metrics_returns_OK_response-1686139550\"},\"group_by\":[{\"path\":\"resource_name\",\"tag_name\":\"resource_name\"}],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":false}},\"type\":\"spans_metrics\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 07 Jun 2023 12:05:50 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/apm/config/metrics"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"tf_TestAccSpansMetric_import_local_1681996306\",\"attributes\":{\"filter\":{\"query\":\"@http.status_code:200 service:my-service\"},\"group_by\":[{\"path\":\"resource_name\",\"tag_name\":\"resource_name\"}],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":false}},\"type\":\"spans_metrics\"},{\"id\":\"Test_Get_all_span_based_metrics_returns_OK_response_1686139550\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_all_span_based_metrics_returns_OK_response-1686139550\"},\"group_by\":[{\"path\":\"resource_name\",\"tag_name\":\"resource_name\"}],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":false}},\"type\":\"spans_metrics\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 07 Jun 2023 12:05:50 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/apm/config/metrics/Test_Get_all_span_based_metrics_returns_OK_response_1686139550"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 07 Jun 2023 12:05:50 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"compute\":{\"aggregation_type\":\"distribution\",\"include_percentiles\":false,\"path\":\"@duration\"},\"filter\":{\"query\":\"source:Test-Get_all_span_based_metrics_returns_OK_response-1686139550\"},\"group_by\":[{\"path\":\"resource_name\",\"tag_name\":\"resource_name\"}]},\"id\":\"Test-Get_all_span_based_metrics_returns_OK_response-1686139550\",\"type\":\"spans_metrics\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/apm/config/metrics" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"Test_Get_all_span_based_metrics_returns_OK_response_1686139550\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_all_span_based_metrics_returns_OK_response-1686139550\"},\"group_by\":[{\"path\":\"resource_name\",\"tag_name\":\"resource_name\"}],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":false}},\"type\":\"spans_metrics\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 07 Jun 2023 12:05:50 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/apm/config/metrics" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"tf_TestAccSpansMetric_import_local_1681996306\",\"attributes\":{\"filter\":{\"query\":\"@http.status_code:200 service:my-service\"},\"group_by\":[{\"path\":\"resource_name\",\"tag_name\":\"resource_name\"}],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":false}},\"type\":\"spans_metrics\"},{\"id\":\"Test_Get_all_span_based_metrics_returns_OK_response_1686139550\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Get_all_span_based_metrics_returns_OK_response-1686139550\"},\"group_by\":[{\"path\":\"resource_name\",\"tag_name\":\"resource_name\"}],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":false}},\"type\":\"spans_metrics\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 07 Jun 2023 12:05:50 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/apm/config/metrics/Test_Get_all_span_based_metrics_returns_OK_response_1686139550" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 07 Jun 2023 12:05:50 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/spans_metrics/Update-a-span-based-metric-returns-OK-response.json b/tests/scenarios/cassettes/v2/spans_metrics/Update-a-span-based-metric-returns-OK-response.json index 2cbac1d3c..d4c7d11fb 100644 --- a/tests/scenarios/cassettes/v2/spans_metrics/Update-a-span-based-metric-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/spans_metrics/Update-a-span-based-metric-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"compute\":{\"aggregation_type\":\"distribution\",\"include_percentiles\":false,\"path\":\"@duration\"},\"filter\":{\"query\":\"source:Test-Update_a_span_based_metric_returns_OK_response-1686139559\"},\"group_by\":[{\"path\":\"resource_name\",\"tag_name\":\"resource_name\"}]},\"id\":\"Test-Update_a_span_based_metric_returns_OK_response-1686139559\",\"type\":\"spans_metrics\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/apm/config/metrics"}, "response": {"body": {"string": "{\"data\":{\"id\":\"Test_Update_a_span_based_metric_returns_OK_response_1686139559\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_span_based_metric_returns_OK_response-1686139559\"},\"group_by\":[{\"path\":\"resource_name\",\"tag_name\":\"resource_name\"}],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":false}},\"type\":\"spans_metrics\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 07 Jun 2023 12:05:59 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"compute\":{\"include_percentiles\":false},\"filter\":{\"query\":\"source:Test-Update_a_span_based_metric_returns_OK_response-1686139559-updated\"},\"group_by\":[{\"path\":\"resource_name\",\"tag_name\":\"resource_name\"}]},\"type\":\"spans_metrics\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/apm/config/metrics/Test_Update_a_span_based_metric_returns_OK_response_1686139559"}, "response": {"body": {"string": "{\"data\":{\"id\":\"Test_Update_a_span_based_metric_returns_OK_response_1686139559\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_span_based_metric_returns_OK_response-1686139559-updated\"},\"group_by\":[{\"path\":\"resource_name\",\"tag_name\":\"resource_name\"}],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":false}},\"type\":\"spans_metrics\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 07 Jun 2023 12:05:59 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/apm/config/metrics/Test_Update_a_span_based_metric_returns_OK_response_1686139559"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"Content-Type": ["text/html; charset=utf-8"]}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Wed, 07 Jun 2023 12:05:59 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"compute\":{\"aggregation_type\":\"distribution\",\"include_percentiles\":false,\"path\":\"@duration\"},\"filter\":{\"query\":\"source:Test-Update_a_span_based_metric_returns_OK_response-1686139559\"},\"group_by\":[{\"path\":\"resource_name\",\"tag_name\":\"resource_name\"}]},\"id\":\"Test-Update_a_span_based_metric_returns_OK_response-1686139559\",\"type\":\"spans_metrics\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/apm/config/metrics" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"Test_Update_a_span_based_metric_returns_OK_response_1686139559\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_span_based_metric_returns_OK_response-1686139559\"},\"group_by\":[{\"path\":\"resource_name\",\"tag_name\":\"resource_name\"}],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":false}},\"type\":\"spans_metrics\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 07 Jun 2023 12:05:59 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"compute\":{\"include_percentiles\":false},\"filter\":{\"query\":\"source:Test-Update_a_span_based_metric_returns_OK_response-1686139559-updated\"},\"group_by\":[{\"path\":\"resource_name\",\"tag_name\":\"resource_name\"}]},\"type\":\"spans_metrics\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/apm/config/metrics/Test_Update_a_span_based_metric_returns_OK_response_1686139559" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"Test_Update_a_span_based_metric_returns_OK_response_1686139559\",\"attributes\":{\"filter\":{\"query\":\"source:Test-Update_a_span_based_metric_returns_OK_response-1686139559-updated\"},\"group_by\":[{\"path\":\"resource_name\",\"tag_name\":\"resource_name\"}],\"compute\":{\"aggregation_type\":\"distribution\",\"path\":\"@duration\",\"include_percentiles\":false}},\"type\":\"spans_metrics\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 07 Jun 2023 12:05:59 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/apm/config/metrics/Test_Update_a_span_based_metric_returns_OK_response_1686139559" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": { + "Content-Type": [ + "text/html; charset=utf-8" + ] + }, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 07 Jun 2023 12:05:59 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/synthetics/Get-the-on-demand-concurrency-cap-returns-OK-response.json b/tests/scenarios/cassettes/v2/synthetics/Get-the-on-demand-concurrency-cap-returns-OK-response.json index 9fb38130a..858ac079d 100644 --- a/tests/scenarios/cassettes/v2/synthetics/Get-the-on-demand-concurrency-cap-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/synthetics/Get-the-on-demand-concurrency-cap-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/synthetics/settings/on_demand_concurrency_cap"}, "response": {"body": {"string": "{\"data\":{\"type\":\"on_demand_concurrency_cap\",\"attributes\":{\"on_demand_concurrency_cap\":20}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 16 Oct 2023 14:58:01 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/synthetics/settings/on_demand_concurrency_cap" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"on_demand_concurrency_cap\",\"attributes\":{\"on_demand_concurrency_cap\":20}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 16 Oct 2023 14:58:01 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/synthetics/Save-new-value-for-on-demand-concurrency-cap-returns-OK-response.json b/tests/scenarios/cassettes/v2/synthetics/Save-new-value-for-on-demand-concurrency-cap-returns-OK-response.json index 4fcc23ed8..b8c56472b 100644 --- a/tests/scenarios/cassettes/v2/synthetics/Save-new-value-for-on-demand-concurrency-cap-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/synthetics/Save-new-value-for-on-demand-concurrency-cap-returns-OK-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"on_demand_concurrency_cap\":20}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/synthetics/settings/on_demand_concurrency_cap"}, "response": {"body": {"string": "{\"data\":{\"type\":\"on_demand_concurrency_cap\",\"attributes\":{\"on_demand_concurrency_cap\":20}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 16 Oct 2023 14:58:02 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"on_demand_concurrency_cap\":20}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/synthetics/settings/on_demand_concurrency_cap" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"on_demand_concurrency_cap\",\"attributes\":{\"on_demand_concurrency_cap\":20}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 16 Oct 2023 14:58:02 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Create-a-team-link-returns-API-error-response-response.json b/tests/scenarios/cassettes/v2/teams/Create-a-team-link-returns-API-error-response-response.json index 8a5560ea7..70c4e0173 100644 --- a/tests/scenarios/cassettes/v2/teams/Create-a-team-link-returns-API-error-response-response.json +++ b/tests/scenarios/cassettes/v2/teams/Create-a-team-link-returns-API-error-response-response.json @@ -1 +1,97 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-d92d2e08806acc4e\",\"name\":\"test-name-d92d2e08806acc4e\"},\"type\":\"team\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/team"}, "response": {"body": {"string": "{\"data\":{\"type\":\"team\",\"id\":\"2cb8bb60-405b-11ee-8a69-da7ad0900002\",\"attributes\":{\"name\":\"test-name-d92d2e08806acc4e\",\"handle\":\"test-handle-d92d2e08806acc4e\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:43.155798+00:00\",\"modified_at\":\"2023-08-21T19:44:43.155804+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/2cb8bb60-405b-11ee-8a69-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/2cb8bb60-405b-11ee-8a69-da7ad0900002/permission-settings\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:42 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"label\":\"\",\"position\":0,\"url\":\"https://example.com\"},\"type\":\"team_links\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/team/2cb8bb60-405b-11ee-8a69-da7ad0900002/links"}, "response": {"body": {"string": "{\"errors\":[\"label cannot be empty\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 422, "message": "Unprocessable Entity"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:42 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/team/2cb8bb60-405b-11ee-8a69-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:42 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-d92d2e08806acc4e\",\"name\":\"test-name-d92d2e08806acc4e\"},\"type\":\"team\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team\",\"id\":\"2cb8bb60-405b-11ee-8a69-da7ad0900002\",\"attributes\":{\"name\":\"test-name-d92d2e08806acc4e\",\"handle\":\"test-handle-d92d2e08806acc4e\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:43.155798+00:00\",\"modified_at\":\"2023-08-21T19:44:43.155804+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/2cb8bb60-405b-11ee-8a69-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/2cb8bb60-405b-11ee-8a69-da7ad0900002/permission-settings\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:42 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"label\":\"\",\"position\":0,\"url\":\"https://example.com\"},\"type\":\"team_links\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/team/2cb8bb60-405b-11ee-8a69-da7ad0900002/links" + }, + "response": { + "body": { + "string": "{\"errors\":[\"label cannot be empty\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 422, + "message": "Unprocessable Entity" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:42 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/2cb8bb60-405b-11ee-8a69-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:42 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Create-a-team-link-returns-OK-response.json b/tests/scenarios/cassettes/v2/teams/Create-a-team-link-returns-OK-response.json index dca138f90..10ff29d04 100644 --- a/tests/scenarios/cassettes/v2/teams/Create-a-team-link-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/teams/Create-a-team-link-returns-OK-response.json @@ -1 +1,121 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-95c34d7fe6d963ff\",\"name\":\"test-name-95c34d7fe6d963ff\"},\"type\":\"team\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/team"}, "response": {"body": {"string": "{\"data\":{\"type\":\"team\",\"id\":\"2d0e6d4e-405b-11ee-84bc-da7ad0900002\",\"attributes\":{\"name\":\"test-name-95c34d7fe6d963ff\",\"handle\":\"test-handle-95c34d7fe6d963ff\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:43.718259+00:00\",\"modified_at\":\"2023-08-21T19:44:43.718264+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/2d0e6d4e-405b-11ee-84bc-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/2d0e6d4e-405b-11ee-84bc-da7ad0900002/permission-settings\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:43 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"label\":\"Link label\",\"position\":0,\"url\":\"https://example.com\"},\"type\":\"team_links\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/team/2d0e6d4e-405b-11ee-84bc-da7ad0900002/links"}, "response": {"body": {"string": "{\"data\":{\"type\":\"team_links\",\"id\":\"2d348dee-405b-11ee-b5db-da7ad0900002\",\"attributes\":{\"team_id\":\"2d0e6d4e-405b-11ee-84bc-da7ad0900002\",\"label\":\"Link label\",\"url\":\"https://example.com\",\"position\":0}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:43 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/team/2d0e6d4e-405b-11ee-84bc-da7ad0900002/links/2d348dee-405b-11ee-b5db-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:43 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/team/2d0e6d4e-405b-11ee-84bc-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:43 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-95c34d7fe6d963ff\",\"name\":\"test-name-95c34d7fe6d963ff\"},\"type\":\"team\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team\",\"id\":\"2d0e6d4e-405b-11ee-84bc-da7ad0900002\",\"attributes\":{\"name\":\"test-name-95c34d7fe6d963ff\",\"handle\":\"test-handle-95c34d7fe6d963ff\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:43.718259+00:00\",\"modified_at\":\"2023-08-21T19:44:43.718264+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/2d0e6d4e-405b-11ee-84bc-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/2d0e6d4e-405b-11ee-84bc-da7ad0900002/permission-settings\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:43 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"label\":\"Link label\",\"position\":0,\"url\":\"https://example.com\"},\"type\":\"team_links\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/team/2d0e6d4e-405b-11ee-84bc-da7ad0900002/links" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team_links\",\"id\":\"2d348dee-405b-11ee-b5db-da7ad0900002\",\"attributes\":{\"team_id\":\"2d0e6d4e-405b-11ee-84bc-da7ad0900002\",\"label\":\"Link label\",\"url\":\"https://example.com\",\"position\":0}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:43 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/2d0e6d4e-405b-11ee-84bc-da7ad0900002/links/2d348dee-405b-11ee-b5db-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:43 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/2d0e6d4e-405b-11ee-84bc-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:43 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Create-a-team-returns-API-error-response-response.json b/tests/scenarios/cassettes/v2/teams/Create-a-team-returns-API-error-response-response.json index 71a801003..6f795e581 100644 --- a/tests/scenarios/cassettes/v2/teams/Create-a-team-returns-API-error-response-response.json +++ b/tests/scenarios/cassettes/v2/teams/Create-a-team-returns-API-error-response-response.json @@ -1 +1,97 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-b98be6aba3b71089\",\"name\":\"test-name-b98be6aba3b71089\"},\"type\":\"team\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/team"}, "response": {"body": {"string": "{\"data\":{\"type\":\"team\",\"id\":\"2d8e0130-405b-11ee-869d-da7ad0900002\",\"attributes\":{\"name\":\"test-name-b98be6aba3b71089\",\"handle\":\"test-handle-b98be6aba3b71089\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:44.553464+00:00\",\"modified_at\":\"2023-08-21T19:44:44.553470+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/2d8e0130-405b-11ee-869d-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/2d8e0130-405b-11ee-869d-da7ad0900002/permission-settings\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:44 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-b98be6aba3b71089\",\"name\":\"Example Team\"},\"relationships\":{\"users\":{\"data\":[]}},\"type\":\"team\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/team"}, "response": {"body": {"string": "{\"errors\":[\"Team name and handle must be unique\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 409, "message": "Conflict"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:44 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/team/2d8e0130-405b-11ee-869d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:44 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-b98be6aba3b71089\",\"name\":\"test-name-b98be6aba3b71089\"},\"type\":\"team\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team\",\"id\":\"2d8e0130-405b-11ee-869d-da7ad0900002\",\"attributes\":{\"name\":\"test-name-b98be6aba3b71089\",\"handle\":\"test-handle-b98be6aba3b71089\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:44.553464+00:00\",\"modified_at\":\"2023-08-21T19:44:44.553470+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/2d8e0130-405b-11ee-869d-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/2d8e0130-405b-11ee-869d-da7ad0900002/permission-settings\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:44 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-b98be6aba3b71089\",\"name\":\"Example Team\"},\"relationships\":{\"users\":{\"data\":[]}},\"type\":\"team\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Team name and handle must be unique\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 409, + "message": "Conflict" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:44 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/2d8e0130-405b-11ee-869d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:44 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Create-a-team-returns-CREATED-response.json b/tests/scenarios/cassettes/v2/teams/Create-a-team-returns-CREATED-response.json index e1875a531..144ccaa75 100644 --- a/tests/scenarios/cassettes/v2/teams/Create-a-team-returns-CREATED-response.json +++ b/tests/scenarios/cassettes/v2/teams/Create-a-team-returns-CREATED-response.json @@ -1 +1,63 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-ef7e0a86ff5c0e43\",\"name\":\"test-name-ef7e0a86ff5c0e43\"},\"relationships\":{\"users\":{\"data\":[]}},\"type\":\"team\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/team"}, "response": {"body": {"string": "{\"data\":{\"type\":\"team\",\"id\":\"8be92a56-405c-11ee-8f72-da7ad0900002\",\"attributes\":{\"name\":\"test-name-ef7e0a86ff5c0e43\",\"handle\":\"test-handle-ef7e0a86ff5c0e43\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:54:32.354249+00:00\",\"modified_at\":\"2023-08-21T19:54:32.354257+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/8be92a56-405c-11ee-8f72-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/8be92a56-405c-11ee-8f72-da7ad0900002/permission-settings\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 21 Aug 2023 19:54:32 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/team/8be92a56-405c-11ee-8f72-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 21 Aug 2023 19:54:32 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-ef7e0a86ff5c0e43\",\"name\":\"test-name-ef7e0a86ff5c0e43\"},\"relationships\":{\"users\":{\"data\":[]}},\"type\":\"team\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team\",\"id\":\"8be92a56-405c-11ee-8f72-da7ad0900002\",\"attributes\":{\"name\":\"test-name-ef7e0a86ff5c0e43\",\"handle\":\"test-handle-ef7e0a86ff5c0e43\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:54:32.354249+00:00\",\"modified_at\":\"2023-08-21T19:54:32.354257+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/8be92a56-405c-11ee-8f72-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/8be92a56-405c-11ee-8f72-da7ad0900002/permission-settings\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:54:32 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/8be92a56-405c-11ee-8f72-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:54:32 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Create-a-team-with-V2-fields-returns-CREATED-response.json b/tests/scenarios/cassettes/v2/teams/Create-a-team-with-V2-fields-returns-CREATED-response.json index 23ee62770..86035d1b4 100644 --- a/tests/scenarios/cassettes/v2/teams/Create-a-team-with-V2-fields-returns-CREATED-response.json +++ b/tests/scenarios/cassettes/v2/teams/Create-a-team-with-V2-fields-returns-CREATED-response.json @@ -1 +1,63 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"avatar\":\"\ud83e\udd51\",\"banner\":7,\"handle\":\"test-handle-d8e2060f755d882d\",\"hidden_modules\":[\"m3\"],\"name\":\"test-name-d8e2060f755d882d\",\"visible_modules\":[\"m1\",\"m2\"]},\"type\":\"team\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/team"}, "response": {"body": {"string": "{\"data\":{\"type\":\"team\",\"id\":\"fcaac0f6-405c-11ee-9237-da7ad0900002\",\"attributes\":{\"name\":\"test-name-d8e2060f755d882d\",\"handle\":\"test-handle-d8e2060f755d882d\",\"summary\":null,\"description\":null,\"avatar\":\"\\ud83e\\udd51\",\"banner\":7,\"visible_modules\":[\"m1\",\"m2\"],\"hidden_modules\":[\"m3\"],\"created_at\":\"2023-08-21T19:57:41.527619+00:00\",\"modified_at\":\"2023-08-21T19:57:41.527624+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/fcaac0f6-405c-11ee-9237-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/fcaac0f6-405c-11ee-9237-da7ad0900002/permission-settings\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 21 Aug 2023 19:57:41 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/team/fcaac0f6-405c-11ee-9237-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 21 Aug 2023 19:57:41 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"avatar\":\"\ud83e\udd51\",\"banner\":7,\"handle\":\"test-handle-d8e2060f755d882d\",\"hidden_modules\":[\"m3\"],\"name\":\"test-name-d8e2060f755d882d\",\"visible_modules\":[\"m1\",\"m2\"]},\"type\":\"team\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team\",\"id\":\"fcaac0f6-405c-11ee-9237-da7ad0900002\",\"attributes\":{\"name\":\"test-name-d8e2060f755d882d\",\"handle\":\"test-handle-d8e2060f755d882d\",\"summary\":null,\"description\":null,\"avatar\":\"\\ud83e\\udd51\",\"banner\":7,\"visible_modules\":[\"m1\",\"m2\"],\"hidden_modules\":[\"m3\"],\"created_at\":\"2023-08-21T19:57:41.527619+00:00\",\"modified_at\":\"2023-08-21T19:57:41.527624+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/fcaac0f6-405c-11ee-9237-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/fcaac0f6-405c-11ee-9237-da7ad0900002/permission-settings\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:57:41 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/fcaac0f6-405c-11ee-9237-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:57:41 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Get-a-team-link-returns-API-error-response-response.json b/tests/scenarios/cassettes/v2/teams/Get-a-team-link-returns-API-error-response-response.json index 11b87d47d..10f3ef03f 100644 --- a/tests/scenarios/cassettes/v2/teams/Get-a-team-link-returns-API-error-response-response.json +++ b/tests/scenarios/cassettes/v2/teams/Get-a-team-link-returns-API-error-response-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-87a259270e6183b1\",\"name\":\"test-name-87a259270e6183b1\"},\"type\":\"team\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/team"}, "response": {"body": {"string": "{\"data\":{\"type\":\"team\",\"id\":\"2e28b978-405b-11ee-9792-da7ad0900002\",\"attributes\":{\"name\":\"test-name-87a259270e6183b1\",\"handle\":\"test-handle-87a259270e6183b1\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:45.568097+00:00\",\"modified_at\":\"2023-08-21T19:44:45.568104+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/2e28b978-405b-11ee-9792-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/2e28b978-405b-11ee-9792-da7ad0900002/permission-settings\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:45 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/team/2e28b978-405b-11ee-9792-da7ad0900002/links/REPLACE.ME"}, "response": {"body": {"string": "{\"errors\":[\"REPLACE.ME is not a valid UUID not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:45 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/team/2e28b978-405b-11ee-9792-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:45 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-87a259270e6183b1\",\"name\":\"test-name-87a259270e6183b1\"},\"type\":\"team\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team\",\"id\":\"2e28b978-405b-11ee-9792-da7ad0900002\",\"attributes\":{\"name\":\"test-name-87a259270e6183b1\",\"handle\":\"test-handle-87a259270e6183b1\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:45.568097+00:00\",\"modified_at\":\"2023-08-21T19:44:45.568104+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/2e28b978-405b-11ee-9792-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/2e28b978-405b-11ee-9792-da7ad0900002/permission-settings\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:45 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/team/2e28b978-405b-11ee-9792-da7ad0900002/links/REPLACE.ME" + }, + "response": { + "body": { + "string": "{\"errors\":[\"REPLACE.ME is not a valid UUID not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:45 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/2e28b978-405b-11ee-9792-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:45 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Get-a-team-link-returns-OK-response.json b/tests/scenarios/cassettes/v2/teams/Get-a-team-link-returns-OK-response.json index 9b25fff00..8a5a76790 100644 --- a/tests/scenarios/cassettes/v2/teams/Get-a-team-link-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/teams/Get-a-team-link-returns-OK-response.json @@ -1 +1,149 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-17f710cc6491a98e\",\"name\":\"test-name-17f710cc6491a98e\"},\"type\":\"team\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/team"}, "response": {"body": {"string": "{\"data\":{\"type\":\"team\",\"id\":\"2e757196-405b-11ee-bc70-da7ad0900002\",\"attributes\":{\"name\":\"test-name-17f710cc6491a98e\",\"handle\":\"test-handle-17f710cc6491a98e\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:46.071074+00:00\",\"modified_at\":\"2023-08-21T19:44:46.071080+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/2e757196-405b-11ee-bc70-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/2e757196-405b-11ee-bc70-da7ad0900002/permission-settings\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:45 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"label\":\"Test-Get_a_team_link_returns_OK_response-1692647085\",\"position\":0,\"url\":\"https://example.com\"},\"type\":\"team_links\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/team/2e757196-405b-11ee-bc70-da7ad0900002/links"}, "response": {"body": {"string": "{\"data\":{\"type\":\"team_links\",\"id\":\"2e91164e-405b-11ee-9f5b-da7ad0900002\",\"attributes\":{\"team_id\":\"2e757196-405b-11ee-bc70-da7ad0900002\",\"label\":\"Test-Get_a_team_link_returns_OK_response-1692647085\",\"url\":\"https://example.com\",\"position\":0}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:45 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/team/2e757196-405b-11ee-bc70-da7ad0900002/links/2e91164e-405b-11ee-9f5b-da7ad0900002"}, "response": {"body": {"string": "{\"data\":{\"type\":\"team_links\",\"id\":\"2e91164e-405b-11ee-9f5b-da7ad0900002\",\"attributes\":{\"team_id\":\"2e757196-405b-11ee-bc70-da7ad0900002\",\"label\":\"Test-Get_a_team_link_returns_OK_response-1692647085\",\"url\":\"https://example.com\",\"position\":0}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:45 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/team/2e757196-405b-11ee-bc70-da7ad0900002/links/2e91164e-405b-11ee-9f5b-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:45 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/team/2e757196-405b-11ee-bc70-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:45 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-17f710cc6491a98e\",\"name\":\"test-name-17f710cc6491a98e\"},\"type\":\"team\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team\",\"id\":\"2e757196-405b-11ee-bc70-da7ad0900002\",\"attributes\":{\"name\":\"test-name-17f710cc6491a98e\",\"handle\":\"test-handle-17f710cc6491a98e\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:46.071074+00:00\",\"modified_at\":\"2023-08-21T19:44:46.071080+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/2e757196-405b-11ee-bc70-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/2e757196-405b-11ee-bc70-da7ad0900002/permission-settings\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:45 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"label\":\"Test-Get_a_team_link_returns_OK_response-1692647085\",\"position\":0,\"url\":\"https://example.com\"},\"type\":\"team_links\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/team/2e757196-405b-11ee-bc70-da7ad0900002/links" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team_links\",\"id\":\"2e91164e-405b-11ee-9f5b-da7ad0900002\",\"attributes\":{\"team_id\":\"2e757196-405b-11ee-bc70-da7ad0900002\",\"label\":\"Test-Get_a_team_link_returns_OK_response-1692647085\",\"url\":\"https://example.com\",\"position\":0}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:45 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/team/2e757196-405b-11ee-bc70-da7ad0900002/links/2e91164e-405b-11ee-9f5b-da7ad0900002" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team_links\",\"id\":\"2e91164e-405b-11ee-9f5b-da7ad0900002\",\"attributes\":{\"team_id\":\"2e757196-405b-11ee-bc70-da7ad0900002\",\"label\":\"Test-Get_a_team_link_returns_OK_response-1692647085\",\"url\":\"https://example.com\",\"position\":0}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:45 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/2e757196-405b-11ee-bc70-da7ad0900002/links/2e91164e-405b-11ee-9f5b-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:45 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/2e757196-405b-11ee-bc70-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:45 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Get-a-team-returns-API-error-response-response.json b/tests/scenarios/cassettes/v2/teams/Get-a-team-returns-API-error-response-response.json index 6434028a0..4926adb02 100644 --- a/tests/scenarios/cassettes/v2/teams/Get-a-team-returns-API-error-response-response.json +++ b/tests/scenarios/cassettes/v2/teams/Get-a-team-returns-API-error-response-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/team/REPLACE.ME"}, "response": {"body": {"string": "{\"errors\":[\"REPLACE.ME is not a valid UUID not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:46 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/team/REPLACE.ME" + }, + "response": { + "body": { + "string": "{\"errors\":[\"REPLACE.ME is not a valid UUID not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:46 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Get-a-team-returns-OK-response.json b/tests/scenarios/cassettes/v2/teams/Get-a-team-returns-OK-response.json index 24d537e38..01b861e30 100644 --- a/tests/scenarios/cassettes/v2/teams/Get-a-team-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/teams/Get-a-team-returns-OK-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-df7035850d3d2bf3\",\"name\":\"test-name-df7035850d3d2bf3\"},\"type\":\"team\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/team"}, "response": {"body": {"string": "{\"data\":{\"type\":\"team\",\"id\":\"2f0a0aae-405b-11ee-8fd8-da7ad0900002\",\"attributes\":{\"name\":\"test-name-df7035850d3d2bf3\",\"handle\":\"test-handle-df7035850d3d2bf3\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:47.044918+00:00\",\"modified_at\":\"2023-08-21T19:44:47.044924+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/2f0a0aae-405b-11ee-8fd8-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/2f0a0aae-405b-11ee-8fd8-da7ad0900002/permission-settings\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:46 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/team/2f0a0aae-405b-11ee-8fd8-da7ad0900002"}, "response": {"body": {"string": "{\"data\":{\"type\":\"team\",\"attributes\":{\"handle\":\"test-handle-df7035850d3d2bf3\",\"description\":null,\"name\":\"test-name-df7035850d3d2bf3\",\"summary\":null,\"user_count\":0,\"created_at\":\"2023-08-21T19:44:47.044918+00:00\",\"modified_at\":\"2023-08-21T19:44:47.044924+00:00\",\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/2f0a0aae-405b-11ee-8fd8-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/2f0a0aae-405b-11ee-8fd8-da7ad0900002/permission-settings\"}}},\"id\":\"2f0a0aae-405b-11ee-8fd8-da7ad0900002\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:46 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/team/2f0a0aae-405b-11ee-8fd8-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:46 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-df7035850d3d2bf3\",\"name\":\"test-name-df7035850d3d2bf3\"},\"type\":\"team\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team\",\"id\":\"2f0a0aae-405b-11ee-8fd8-da7ad0900002\",\"attributes\":{\"name\":\"test-name-df7035850d3d2bf3\",\"handle\":\"test-handle-df7035850d3d2bf3\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:47.044918+00:00\",\"modified_at\":\"2023-08-21T19:44:47.044924+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/2f0a0aae-405b-11ee-8fd8-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/2f0a0aae-405b-11ee-8fd8-da7ad0900002/permission-settings\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:46 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/team/2f0a0aae-405b-11ee-8fd8-da7ad0900002" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team\",\"attributes\":{\"handle\":\"test-handle-df7035850d3d2bf3\",\"description\":null,\"name\":\"test-name-df7035850d3d2bf3\",\"summary\":null,\"user_count\":0,\"created_at\":\"2023-08-21T19:44:47.044918+00:00\",\"modified_at\":\"2023-08-21T19:44:47.044924+00:00\",\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/2f0a0aae-405b-11ee-8fd8-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/2f0a0aae-405b-11ee-8fd8-da7ad0900002/permission-settings\"}}},\"id\":\"2f0a0aae-405b-11ee-8fd8-da7ad0900002\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:46 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/2f0a0aae-405b-11ee-8fd8-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:46 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Get-all-teams-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v2/teams/Get-all-teams-returns-OK-response-with-pagination.json index 4a1c5c8f6..3c2afa18d 100644 --- a/tests/scenarios/cassettes/v2/teams/Get-all-teams-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v2/teams/Get-all-teams-returns-OK-response-with-pagination.json @@ -1 +1,61 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/team?page%5Bsize%5D=2&page%5Bnumber%5D=0"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"team\",\"attributes\":{\"created_at\":\"2023-03-22T17:12:07.018313+00:00\",\"user_count\":0,\"description\":null,\"link_count\":0,\"modified_at\":\"2023-03-22T17:12:07.018317+00:00\",\"name\":\"Example Team\",\"summary\":null,\"handle\":\"api-spec-test-team\"},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/ac73040e-c8d4-11ed-b2ea-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/ac73040e-c8d4-11ed-b2ea-da7ad0900002/permission-settings\"}}},\"id\":\"ac73040e-c8d4-11ed-b2ea-da7ad0900002\"},{\"type\":\"team\",\"attributes\":{\"created_at\":\"2023-08-21T19:49:10.718738+00:00\",\"user_count\":1,\"description\":\"\",\"link_count\":0,\"modified_at\":\"2023-08-21T19:49:10.718744+00:00\",\"name\":\"test-name-12938712938\",\"summary\":null,\"handle\":\"test-handle-12938712938\"},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/cc338b02-405b-11ee-835e-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/cc338b02-405b-11ee-835e-da7ad0900002/permission-settings\"}}},\"id\":\"cc338b02-405b-11ee-835e-da7ad0900002\"}],\"meta\":{\"pagination\":{\"number\":0,\"first_number\":0,\"prev_number\":0,\"next_number\":1,\"last_number\":1,\"size\":2,\"type\":\"number_size\",\"total\":3}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/team?page%5Bsize%5D=2&page%5Bnumber%5D=0\",\"last\":\"https://api.datadoghq.com/api/v2/team?page[number]=1&page[size]=2\",\"next\":\"https://api.datadoghq.com/api/v2/team?page[number]=1&page[size]=2\",\"prev\":null,\"first\":\"https://api.datadoghq.com/api/v2/team?page[number]=0&page[size]=2\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 05 Sep 2023 14:20:30 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/team?page%5Bsize%5D=2&page%5Bnumber%5D=1"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"team\",\"relationships\":{\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/ecc8affc-27d6-11ee-b33c-da7ad0900002/permission-settings\"}},\"team_links\":{\"links\":{\"related\":\"/api/v2/team/ecc8affc-27d6-11ee-b33c-da7ad0900002/links\"}}},\"attributes\":{\"link_count\":0,\"handle\":\"tf-testaccteamlinkbasic-local-1689951453\",\"modified_at\":\"2023-07-21T14:57:34.412713+00:00\",\"created_at\":\"2023-07-21T14:57:34.412707+00:00\",\"summary\":\"123\",\"name\":\"tf-testaccteamlinkbasic-local-1689951453\",\"user_count\":0,\"description\":\"123\"},\"id\":\"ecc8affc-27d6-11ee-b33c-da7ad0900002\"}],\"meta\":{\"pagination\":{\"number\":1,\"first_number\":0,\"prev_number\":0,\"next_number\":2,\"last_number\":1,\"size\":2,\"type\":\"number_size\",\"total\":3}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/team?page%5Bsize%5D=2&page%5Bnumber%5D=1\",\"last\":\"https://api.datadoghq.com/api/v2/team?page[number]=1&page[size]=2\",\"next\":\"https://api.datadoghq.com/api/v2/team?page[number]=2&page[size]=2\",\"prev\":\"https://api.datadoghq.com/api/v2/team?page[number]=0&page[size]=2\",\"first\":\"https://api.datadoghq.com/api/v2/team?page[number]=0&page[size]=2\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 05 Sep 2023 14:20:30 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/team?page%5Bsize%5D=2&page%5Bnumber%5D=0" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"team\",\"attributes\":{\"created_at\":\"2023-03-22T17:12:07.018313+00:00\",\"user_count\":0,\"description\":null,\"link_count\":0,\"modified_at\":\"2023-03-22T17:12:07.018317+00:00\",\"name\":\"Example Team\",\"summary\":null,\"handle\":\"api-spec-test-team\"},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/ac73040e-c8d4-11ed-b2ea-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/ac73040e-c8d4-11ed-b2ea-da7ad0900002/permission-settings\"}}},\"id\":\"ac73040e-c8d4-11ed-b2ea-da7ad0900002\"},{\"type\":\"team\",\"attributes\":{\"created_at\":\"2023-08-21T19:49:10.718738+00:00\",\"user_count\":1,\"description\":\"\",\"link_count\":0,\"modified_at\":\"2023-08-21T19:49:10.718744+00:00\",\"name\":\"test-name-12938712938\",\"summary\":null,\"handle\":\"test-handle-12938712938\"},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/cc338b02-405b-11ee-835e-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/cc338b02-405b-11ee-835e-da7ad0900002/permission-settings\"}}},\"id\":\"cc338b02-405b-11ee-835e-da7ad0900002\"}],\"meta\":{\"pagination\":{\"number\":0,\"first_number\":0,\"prev_number\":0,\"next_number\":1,\"last_number\":1,\"size\":2,\"type\":\"number_size\",\"total\":3}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/team?page%5Bsize%5D=2&page%5Bnumber%5D=0\",\"last\":\"https://api.datadoghq.com/api/v2/team?page[number]=1&page[size]=2\",\"next\":\"https://api.datadoghq.com/api/v2/team?page[number]=1&page[size]=2\",\"prev\":null,\"first\":\"https://api.datadoghq.com/api/v2/team?page[number]=0&page[size]=2\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 05 Sep 2023 14:20:30 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/team?page%5Bsize%5D=2&page%5Bnumber%5D=1" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"team\",\"relationships\":{\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/ecc8affc-27d6-11ee-b33c-da7ad0900002/permission-settings\"}},\"team_links\":{\"links\":{\"related\":\"/api/v2/team/ecc8affc-27d6-11ee-b33c-da7ad0900002/links\"}}},\"attributes\":{\"link_count\":0,\"handle\":\"tf-testaccteamlinkbasic-local-1689951453\",\"modified_at\":\"2023-07-21T14:57:34.412713+00:00\",\"created_at\":\"2023-07-21T14:57:34.412707+00:00\",\"summary\":\"123\",\"name\":\"tf-testaccteamlinkbasic-local-1689951453\",\"user_count\":0,\"description\":\"123\"},\"id\":\"ecc8affc-27d6-11ee-b33c-da7ad0900002\"}],\"meta\":{\"pagination\":{\"number\":1,\"first_number\":0,\"prev_number\":0,\"next_number\":2,\"last_number\":1,\"size\":2,\"type\":\"number_size\",\"total\":3}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/team?page%5Bsize%5D=2&page%5Bnumber%5D=1\",\"last\":\"https://api.datadoghq.com/api/v2/team?page[number]=1&page[size]=2\",\"next\":\"https://api.datadoghq.com/api/v2/team?page[number]=2&page[size]=2\",\"prev\":\"https://api.datadoghq.com/api/v2/team?page[number]=0&page[size]=2\",\"first\":\"https://api.datadoghq.com/api/v2/team?page[number]=0&page[size]=2\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 05 Sep 2023 14:20:30 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Get-all-teams-returns-OK-response.json b/tests/scenarios/cassettes/v2/teams/Get-all-teams-returns-OK-response.json index 92265abaa..ab3966e61 100644 --- a/tests/scenarios/cassettes/v2/teams/Get-all-teams-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/teams/Get-all-teams-returns-OK-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-e6e42a2ebca0ed06\",\"name\":\"test-name-e6e42a2ebca0ed06\"},\"type\":\"team\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/team"}, "response": {"body": {"string": "{\"data\":{\"type\":\"team\",\"id\":\"2f5b80be-405b-11ee-8a0d-da7ad0900002\",\"attributes\":{\"name\":\"test-name-e6e42a2ebca0ed06\",\"handle\":\"test-handle-e6e42a2ebca0ed06\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:47.577736+00:00\",\"modified_at\":\"2023-08-21T19:44:47.577743+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/2f5b80be-405b-11ee-8a0d-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/2f5b80be-405b-11ee-8a0d-da7ad0900002/permission-settings\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:47 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/team"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"team\",\"relationships\":{\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/ac73040e-c8d4-11ed-b2ea-da7ad0900002/permission-settings\"}},\"team_links\":{\"links\":{\"related\":\"/api/v2/team/ac73040e-c8d4-11ed-b2ea-da7ad0900002/links\"}}},\"attributes\":{\"user_count\":0,\"name\":\"Example Team\",\"handle\":\"api-spec-test-team\",\"created_at\":\"2023-03-22T17:12:07.018313+00:00\",\"link_count\":0,\"summary\":null,\"modified_at\":\"2023-03-22T17:12:07.018317+00:00\",\"description\":null},\"id\":\"ac73040e-c8d4-11ed-b2ea-da7ad0900002\"},{\"type\":\"team\",\"relationships\":{\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/2f5b80be-405b-11ee-8a0d-da7ad0900002/permission-settings\"}},\"team_links\":{\"links\":{\"related\":\"/api/v2/team/2f5b80be-405b-11ee-8a0d-da7ad0900002/links\"}}},\"attributes\":{\"user_count\":0,\"name\":\"test-name-e6e42a2ebca0ed06\",\"handle\":\"test-handle-e6e42a2ebca0ed06\",\"created_at\":\"2023-08-21T19:44:47.577736+00:00\",\"link_count\":0,\"summary\":null,\"modified_at\":\"2023-08-21T19:44:47.577743+00:00\",\"description\":null},\"id\":\"2f5b80be-405b-11ee-8a0d-da7ad0900002\"},{\"type\":\"team\",\"relationships\":{\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/ecc8affc-27d6-11ee-b33c-da7ad0900002/permission-settings\"}},\"team_links\":{\"links\":{\"related\":\"/api/v2/team/ecc8affc-27d6-11ee-b33c-da7ad0900002/links\"}}},\"attributes\":{\"user_count\":0,\"name\":\"tf-testaccteamlinkbasic-local-1689951453\",\"handle\":\"tf-testaccteamlinkbasic-local-1689951453\",\"created_at\":\"2023-07-21T14:57:34.412707+00:00\",\"link_count\":0,\"summary\":\"123\",\"modified_at\":\"2023-07-21T14:57:34.412713+00:00\",\"description\":\"123\"},\"id\":\"ecc8affc-27d6-11ee-b33c-da7ad0900002\"}],\"meta\":{\"pagination\":{\"offset\":0,\"first_offset\":0,\"prev_offset\":0,\"next_offset\":100,\"last_offset\":0,\"limit\":100,\"type\":\"offset_limit\",\"total\":3}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/team\",\"last\":null,\"next\":\"https://api.datadoghq.com/api/v2/team?page[offset]=100&page[limit]=100\",\"prev\":null,\"first\":\"https://api.datadoghq.com/api/v2/team?page[offset]=0&page[limit]=100\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:47 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/team/2f5b80be-405b-11ee-8a0d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:47 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-e6e42a2ebca0ed06\",\"name\":\"test-name-e6e42a2ebca0ed06\"},\"type\":\"team\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team\",\"id\":\"2f5b80be-405b-11ee-8a0d-da7ad0900002\",\"attributes\":{\"name\":\"test-name-e6e42a2ebca0ed06\",\"handle\":\"test-handle-e6e42a2ebca0ed06\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:47.577736+00:00\",\"modified_at\":\"2023-08-21T19:44:47.577743+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/2f5b80be-405b-11ee-8a0d-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/2f5b80be-405b-11ee-8a0d-da7ad0900002/permission-settings\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:47 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"team\",\"relationships\":{\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/ac73040e-c8d4-11ed-b2ea-da7ad0900002/permission-settings\"}},\"team_links\":{\"links\":{\"related\":\"/api/v2/team/ac73040e-c8d4-11ed-b2ea-da7ad0900002/links\"}}},\"attributes\":{\"user_count\":0,\"name\":\"Example Team\",\"handle\":\"api-spec-test-team\",\"created_at\":\"2023-03-22T17:12:07.018313+00:00\",\"link_count\":0,\"summary\":null,\"modified_at\":\"2023-03-22T17:12:07.018317+00:00\",\"description\":null},\"id\":\"ac73040e-c8d4-11ed-b2ea-da7ad0900002\"},{\"type\":\"team\",\"relationships\":{\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/2f5b80be-405b-11ee-8a0d-da7ad0900002/permission-settings\"}},\"team_links\":{\"links\":{\"related\":\"/api/v2/team/2f5b80be-405b-11ee-8a0d-da7ad0900002/links\"}}},\"attributes\":{\"user_count\":0,\"name\":\"test-name-e6e42a2ebca0ed06\",\"handle\":\"test-handle-e6e42a2ebca0ed06\",\"created_at\":\"2023-08-21T19:44:47.577736+00:00\",\"link_count\":0,\"summary\":null,\"modified_at\":\"2023-08-21T19:44:47.577743+00:00\",\"description\":null},\"id\":\"2f5b80be-405b-11ee-8a0d-da7ad0900002\"},{\"type\":\"team\",\"relationships\":{\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/ecc8affc-27d6-11ee-b33c-da7ad0900002/permission-settings\"}},\"team_links\":{\"links\":{\"related\":\"/api/v2/team/ecc8affc-27d6-11ee-b33c-da7ad0900002/links\"}}},\"attributes\":{\"user_count\":0,\"name\":\"tf-testaccteamlinkbasic-local-1689951453\",\"handle\":\"tf-testaccteamlinkbasic-local-1689951453\",\"created_at\":\"2023-07-21T14:57:34.412707+00:00\",\"link_count\":0,\"summary\":\"123\",\"modified_at\":\"2023-07-21T14:57:34.412713+00:00\",\"description\":\"123\"},\"id\":\"ecc8affc-27d6-11ee-b33c-da7ad0900002\"}],\"meta\":{\"pagination\":{\"offset\":0,\"first_offset\":0,\"prev_offset\":0,\"next_offset\":100,\"last_offset\":0,\"limit\":100,\"type\":\"offset_limit\",\"total\":3}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/team\",\"last\":null,\"next\":\"https://api.datadoghq.com/api/v2/team?page[offset]=100&page[limit]=100\",\"prev\":null,\"first\":\"https://api.datadoghq.com/api/v2/team?page[offset]=0&page[limit]=100\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:47 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/2f5b80be-405b-11ee-8a0d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:47 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Get-all-teams-with-fields-team-parameter-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/teams/Get-all-teams-with-fields-team-parameter-returns-OK-response.frozen index dcab235f8..97a2540bd 100644 --- a/tests/scenarios/cassettes/v2/teams/Get-all-teams-with-fields-team-parameter-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v2/teams/Get-all-teams-with-fields-team-parameter-returns-OK-response.frozen @@ -1 +1 @@ -2023-10-11T17:40:11.903Z \ No newline at end of file +2024-01-10T16:09:28.980Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Get-all-teams-with-fields-team-parameter-returns-OK-response.json b/tests/scenarios/cassettes/v2/teams/Get-all-teams-with-fields-team-parameter-returns-OK-response.json index 21b25cf15..94b10d9f6 100644 --- a/tests/scenarios/cassettes/v2/teams/Get-all-teams-with-fields-team-parameter-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/teams/Get-all-teams-with-fields-team-parameter-returns-OK-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/team?fields%5Bteam%5D=id%2Cname%2Chandle"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"team\",\"id\":\"ac73040e-c8d4-11ed-b2ea-da7ad0900002\",\"attributes\":{\"name\":\"Example Team\",\"handle\":\"api-spec-test-team\"}},{\"type\":\"team\",\"id\":\"cc338b02-405b-11ee-835e-da7ad0900002\",\"attributes\":{\"name\":\"test-name-12938712938\",\"handle\":\"test-handle-12938712938\"}},{\"type\":\"team\",\"id\":\"ecc8affc-27d6-11ee-b33c-da7ad0900002\",\"attributes\":{\"name\":\"tf-testaccteamlinkbasic-local-1689951453\",\"handle\":\"tf-testaccteamlinkbasic-local-1689951453\"}}],\"meta\":{\"pagination\":{\"offset\":0,\"first_offset\":0,\"prev_offset\":0,\"next_offset\":100,\"last_offset\":0,\"limit\":100,\"type\":\"offset_limit\",\"total\":3}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/team?fields%5Bteam%5D=id,name,handle\",\"last\":null,\"next\":\"https://api.datadoghq.com/api/v2/team?fields%5Bteam%5D=id,name,handle&page[offset]=100&page[limit]=100\",\"prev\":null,\"first\":\"https://api.datadoghq.com/api/v2/team?fields%5Bteam%5D=id,name,handle&page[offset]=0&page[limit]=100\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Wed, 11 Oct 2023 17:40:11 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-c164c08030364bd8\",\"name\":\"test-name-c164c08030364bd8\"},\"type\":\"team\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team\",\"id\":\"bfc08ce5-4a3c-4336-8544-0a366a1656fb\",\"attributes\":{\"name\":\"test-name-c164c08030364bd8\",\"handle\":\"test-handle-c164c08030364bd8\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":1,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2024-01-10T16:09:16.773654+00:00\",\"modified_at\":\"2024-01-10T16:09:16.773660+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/bfc08ce5-4a3c-4336-8544-0a366a1656fb/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/bfc08ce5-4a3c-4336-8544-0a366a1656fb/permission-settings\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Wed, 10 Jan 2024 16:09:28 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/team?fields%5Bteam%5D=id%2Cname%2Chandle" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"team\",\"id\":\"2e06bf2c-193b-41d4-b3c2-afccc080458f\",\"attributes\":{\"name\":\"test-name-0d5eae310f4bffff\",\"handle\":\"test-handle-0d5eae310f4bffff\"}},{\"type\":\"team\",\"id\":\"bfc08ce5-4a3c-4336-8544-0a366a1656fb\",\"attributes\":{\"name\":\"test-name-c164c08030364bd8\",\"handle\":\"test-handle-c164c08030364bd8\"}}],\"meta\":{\"pagination\":{\"offset\":0,\"first_offset\":0,\"prev_offset\":0,\"next_offset\":100,\"last_offset\":0,\"limit\":100,\"type\":\"offset_limit\",\"total\":2}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/team?fields%5Bteam%5D=id,name,handle\",\"last\":null,\"next\":\"https://api.datadoghq.com/api/v2/team?fields%5Bteam%5D=id,name,handle&page[offset]=100&page[limit]=100\",\"prev\":null,\"first\":\"https://api.datadoghq.com/api/v2/team?fields%5Bteam%5D=id,name,handle&page[offset]=0&page[limit]=100\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 10 Jan 2024 16:09:28 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/bfc08ce5-4a3c-4336-8544-0a366a1656fb" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Wed, 10 Jan 2024 16:09:28 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Get-links-for-a-team-returns-API-error-response-response.json b/tests/scenarios/cassettes/v2/teams/Get-links-for-a-team-returns-API-error-response-response.json index e9e5d2adf..946e4fd5d 100644 --- a/tests/scenarios/cassettes/v2/teams/Get-links-for-a-team-returns-API-error-response-response.json +++ b/tests/scenarios/cassettes/v2/teams/Get-links-for-a-team-returns-API-error-response-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/team/REPLACE.ME/links"}, "response": {"body": {"string": "{\"errors\":[\"REPLACE.ME is not a valid UUID not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:48 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/team/REPLACE.ME/links" + }, + "response": { + "body": { + "string": "{\"errors\":[\"REPLACE.ME is not a valid UUID not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:48 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Get-links-for-a-team-returns-OK-response.json b/tests/scenarios/cassettes/v2/teams/Get-links-for-a-team-returns-OK-response.json index d293c3201..f69435c47 100644 --- a/tests/scenarios/cassettes/v2/teams/Get-links-for-a-team-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/teams/Get-links-for-a-team-returns-OK-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-2047a02ca89d196f\",\"name\":\"test-name-2047a02ca89d196f\"},\"type\":\"team\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/team"}, "response": {"body": {"string": "{\"data\":{\"type\":\"team\",\"id\":\"2fcd65d0-405b-11ee-817e-da7ad0900002\",\"attributes\":{\"name\":\"test-name-2047a02ca89d196f\",\"handle\":\"test-handle-2047a02ca89d196f\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:48.324737+00:00\",\"modified_at\":\"2023-08-21T19:44:48.324744+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/2fcd65d0-405b-11ee-817e-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/2fcd65d0-405b-11ee-817e-da7ad0900002/permission-settings\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:48 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/team/2fcd65d0-405b-11ee-817e-da7ad0900002/links"}, "response": {"body": {"string": "{\"data\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:48 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/team/2fcd65d0-405b-11ee-817e-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:48 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-2047a02ca89d196f\",\"name\":\"test-name-2047a02ca89d196f\"},\"type\":\"team\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team\",\"id\":\"2fcd65d0-405b-11ee-817e-da7ad0900002\",\"attributes\":{\"name\":\"test-name-2047a02ca89d196f\",\"handle\":\"test-handle-2047a02ca89d196f\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:48.324737+00:00\",\"modified_at\":\"2023-08-21T19:44:48.324744+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/2fcd65d0-405b-11ee-817e-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/2fcd65d0-405b-11ee-817e-da7ad0900002/permission-settings\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:48 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/team/2fcd65d0-405b-11ee-817e-da7ad0900002/links" + }, + "response": { + "body": { + "string": "{\"data\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:48 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/2fcd65d0-405b-11ee-817e-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:48 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Get-permission-settings-for-a-team-returns-API-error-response-response.json b/tests/scenarios/cassettes/v2/teams/Get-permission-settings-for-a-team-returns-API-error-response-response.json index 7f5aeb9ac..e175b8c1d 100644 --- a/tests/scenarios/cassettes/v2/teams/Get-permission-settings-for-a-team-returns-API-error-response-response.json +++ b/tests/scenarios/cassettes/v2/teams/Get-permission-settings-for-a-team-returns-API-error-response-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/team/REPLACE.ME/permission-settings"}, "response": {"body": {"string": "{\"errors\":[\"REPLACE.ME is not a valid UUID not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:48 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/team/REPLACE.ME/permission-settings" + }, + "response": { + "body": { + "string": "{\"errors\":[\"REPLACE.ME is not a valid UUID not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:48 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Get-permission-settings-for-a-team-returns-OK-response.json b/tests/scenarios/cassettes/v2/teams/Get-permission-settings-for-a-team-returns-OK-response.json index ae593c639..a321527a9 100644 --- a/tests/scenarios/cassettes/v2/teams/Get-permission-settings-for-a-team-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/teams/Get-permission-settings-for-a-team-returns-OK-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-c87e4cf0f4edb309\",\"name\":\"test-name-c87e4cf0f4edb309\"},\"type\":\"team\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/team"}, "response": {"body": {"string": "{\"data\":{\"type\":\"team\",\"id\":\"302a1e60-405b-11ee-aa12-da7ad0900002\",\"attributes\":{\"name\":\"test-name-c87e4cf0f4edb309\",\"handle\":\"test-handle-c87e4cf0f4edb309\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:48.932658+00:00\",\"modified_at\":\"2023-08-21T19:44:48.932663+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/302a1e60-405b-11ee-aa12-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/302a1e60-405b-11ee-aa12-da7ad0900002/permission-settings\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:48 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/team/302a1e60-405b-11ee-aa12-da7ad0900002/permission-settings"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"team_permission_settings\",\"attributes\":{\"action\":\"manage_membership\",\"value\":\"organization\",\"title\":\"Add and Remove Members\",\"editable\":true,\"options\":[\"user_access_manage\",\"admins\",\"members\",\"organization\"]},\"id\":\"TeamPermission-302a1e60-405b-11ee-aa12-da7ad0900002-manage_membership\"},{\"type\":\"team_permission_settings\",\"attributes\":{\"action\":\"edit\",\"value\":\"members\",\"title\":\"Edit Team Details\",\"editable\":true,\"options\":[\"teams_manage\",\"admins\",\"members\"]},\"id\":\"TeamPermission-302a1e60-405b-11ee-aa12-da7ad0900002-edit\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:48 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/team/302a1e60-405b-11ee-aa12-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:48 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-c87e4cf0f4edb309\",\"name\":\"test-name-c87e4cf0f4edb309\"},\"type\":\"team\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team\",\"id\":\"302a1e60-405b-11ee-aa12-da7ad0900002\",\"attributes\":{\"name\":\"test-name-c87e4cf0f4edb309\",\"handle\":\"test-handle-c87e4cf0f4edb309\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:48.932658+00:00\",\"modified_at\":\"2023-08-21T19:44:48.932663+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/302a1e60-405b-11ee-aa12-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/302a1e60-405b-11ee-aa12-da7ad0900002/permission-settings\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:48 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/team/302a1e60-405b-11ee-aa12-da7ad0900002/permission-settings" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"team_permission_settings\",\"attributes\":{\"action\":\"manage_membership\",\"value\":\"organization\",\"title\":\"Add and Remove Members\",\"editable\":true,\"options\":[\"user_access_manage\",\"admins\",\"members\",\"organization\"]},\"id\":\"TeamPermission-302a1e60-405b-11ee-aa12-da7ad0900002-manage_membership\"},{\"type\":\"team_permission_settings\",\"attributes\":{\"action\":\"edit\",\"value\":\"members\",\"title\":\"Edit Team Details\",\"editable\":true,\"options\":[\"teams_manage\",\"admins\",\"members\"]},\"id\":\"TeamPermission-302a1e60-405b-11ee-aa12-da7ad0900002-edit\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:48 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/302a1e60-405b-11ee-aa12-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:48 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Get-team-memberships-returns-API-error-response-response.json b/tests/scenarios/cassettes/v2/teams/Get-team-memberships-returns-API-error-response-response.json index 6f9a7ff3f..8efd64cbc 100644 --- a/tests/scenarios/cassettes/v2/teams/Get-team-memberships-returns-API-error-response-response.json +++ b/tests/scenarios/cassettes/v2/teams/Get-team-memberships-returns-API-error-response-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/team/REPLACE.ME/memberships"}, "response": {"body": {"string": "{\"errors\":[\"REPLACE.ME is not a valid UUID not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:49 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/team/REPLACE.ME/memberships" + }, + "response": { + "body": { + "string": "{\"errors\":[\"REPLACE.ME is not a valid UUID not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:49 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Get-team-memberships-returns-Represents-a-user-s-association-to-a-team-response-with-pagination.frozen b/tests/scenarios/cassettes/v2/teams/Get-team-memberships-returns-Represents-a-user-s-association-to-a-team-response-with-pagination.frozen new file mode 100644 index 000000000..c1b94356d --- /dev/null +++ b/tests/scenarios/cassettes/v2/teams/Get-team-memberships-returns-Represents-a-user-s-association-to-a-team-response-with-pagination.frozen @@ -0,0 +1 @@ +2024-01-26T20:53:20.323Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Get-team-memberships-returns-Represents-a-user-s-association-to-a-team-response-with-pagination.json b/tests/scenarios/cassettes/v2/teams/Get-team-memberships-returns-Represents-a-user-s-association-to-a-team-response-with-pagination.json new file mode 100644 index 000000000..33bc4c3a4 --- /dev/null +++ b/tests/scenarios/cassettes/v2/teams/Get-team-memberships-returns-Represents-a-user-s-association-to-a-team-response-with-pagination.json @@ -0,0 +1,61 @@ +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/team/2e06bf2c-193b-41d4-b3c2-afccc080458f/memberships?page%5Bsize%5D=2&page%5Bnumber%5D=0" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"team_memberships\",\"id\":\"TeamMembership-2e06bf2c-193b-41d4-b3c2-afccc080458f-3736692\",\"attributes\":{\"role\":null,\"provisioned_by\":null,\"provisioned_by_id\":\"6018c832-80a7-11ea-93dd-43183212bc7a\"},\"relationships\":{\"user\":{\"data\":{\"type\":\"users\",\"id\":\"03b4bfc0-98b9-11ec-842d-da7ad0900002\"}}}},{\"type\":\"team_memberships\",\"id\":\"TeamMembership-2e06bf2c-193b-41d4-b3c2-afccc080458f-4055096\",\"attributes\":{\"role\":null,\"provisioned_by\":null,\"provisioned_by_id\":\"6018c832-80a7-11ea-93dd-43183212bc7a\"},\"relationships\":{\"user\":{\"data\":{\"type\":\"users\",\"id\":\"170a64a1-d9c6-11ec-af01-da7ad0900002\"}}}}],\"included\":[{\"type\":\"users\",\"id\":\"03b4bfc0-98b9-11ec-842d-da7ad0900002\",\"attributes\":{\"name\":\"Datadog API Client Python\",\"handle\":\"example-create_a_user_returns_ok_response_1646068093@datadoghq.com\",\"email\":\"example-create_a_user_returns_ok_response_1646068093@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/27fb863ad335246b65fe4989f1686f35?s=48&d=retro\",\"disabled\":false,\"service_account\":false}},{\"type\":\"users\",\"id\":\"170a64a1-d9c6-11ec-af01-da7ad0900002\",\"attributes\":{\"name\":\"Datadog API Client Python\",\"handle\":\"example-create_a_user_returns_ok_response_1653220535@datadoghq.com\",\"email\":\"example-create_a_user_returns_ok_response_1653220535@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/c5256983bba478dfd35e83bbb73621cc?s=48&d=retro\",\"disabled\":false,\"service_account\":false}}],\"meta\":{\"pagination\":{\"number\":0,\"first_number\":0,\"prev_number\":0,\"next_number\":1,\"last_number\":1,\"size\":2,\"type\":\"number_size\",\"total\":3}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/team/2e06bf2c-193b-41d4-b3c2-afccc080458f/memberships?page%5Bsize%5D=2&page%5Bnumber%5D=0\",\"last\":\"https://api.datadoghq.com/api/v2/team/2e06bf2c-193b-41d4-b3c2-afccc080458f/memberships?page[number]=1&page[size]=2\",\"next\":\"https://api.datadoghq.com/api/v2/team/2e06bf2c-193b-41d4-b3c2-afccc080458f/memberships?page[number]=1&page[size]=2\",\"prev\":null,\"first\":\"https://api.datadoghq.com/api/v2/team/2e06bf2c-193b-41d4-b3c2-afccc080458f/memberships?page[number]=0&page[size]=2\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 20:53:20 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/team/2e06bf2c-193b-41d4-b3c2-afccc080458f/memberships?page%5Bsize%5D=2&page%5Bnumber%5D=1" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"team_memberships\",\"id\":\"TeamMembership-2e06bf2c-193b-41d4-b3c2-afccc080458f-1445416\",\"attributes\":{\"role\":null,\"provisioned_by\":null,\"provisioned_by_id\":\"6018c832-80a7-11ea-93dd-43183212bc7a\"},\"relationships\":{\"user\":{\"data\":{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\"}}}}],\"included\":[{\"type\":\"users\",\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"attributes\":{\"name\":null,\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro\",\"disabled\":false,\"service_account\":false}}],\"meta\":{\"pagination\":{\"number\":1,\"first_number\":0,\"prev_number\":0,\"next_number\":2,\"last_number\":1,\"size\":2,\"type\":\"number_size\",\"total\":3}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/team/2e06bf2c-193b-41d4-b3c2-afccc080458f/memberships?page%5Bsize%5D=2&page%5Bnumber%5D=1\",\"last\":\"https://api.datadoghq.com/api/v2/team/2e06bf2c-193b-41d4-b3c2-afccc080458f/memberships?page[number]=1&page[size]=2\",\"next\":\"https://api.datadoghq.com/api/v2/team/2e06bf2c-193b-41d4-b3c2-afccc080458f/memberships?page[number]=2&page[size]=2\",\"prev\":\"https://api.datadoghq.com/api/v2/team/2e06bf2c-193b-41d4-b3c2-afccc080458f/memberships?page[number]=0&page[size]=2\",\"first\":\"https://api.datadoghq.com/api/v2/team/2e06bf2c-193b-41d4-b3c2-afccc080458f/memberships?page[number]=0&page[size]=2\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 26 Jan 2024 20:53:20 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Get-team-memberships-returns-Represents-a-user-s-association-to-a-team-response.json b/tests/scenarios/cassettes/v2/teams/Get-team-memberships-returns-Represents-a-user-s-association-to-a-team-response.json index dd661d1a9..303f8bb83 100644 --- a/tests/scenarios/cassettes/v2/teams/Get-team-memberships-returns-Represents-a-user-s-association-to-a-team-response.json +++ b/tests/scenarios/cassettes/v2/teams/Get-team-memberships-returns-Represents-a-user-s-association-to-a-team-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-f05d3606dace17e6\",\"name\":\"test-name-f05d3606dace17e6\"},\"type\":\"team\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/team"}, "response": {"body": {"string": "{\"data\":{\"type\":\"team\",\"id\":\"308b9b7c-405b-11ee-b8bb-da7ad0900002\",\"attributes\":{\"name\":\"test-name-f05d3606dace17e6\",\"handle\":\"test-handle-f05d3606dace17e6\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:49.571050+00:00\",\"modified_at\":\"2023-08-21T19:44:49.571056+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/308b9b7c-405b-11ee-b8bb-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/308b9b7c-405b-11ee-b8bb-da7ad0900002/permission-settings\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:49 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/team/308b9b7c-405b-11ee-b8bb-da7ad0900002/memberships"}, "response": {"body": {"string": "{\"data\":[],\"meta\":{\"pagination\":{\"offset\":0,\"first_offset\":0,\"prev_offset\":0,\"next_offset\":100,\"last_offset\":0,\"limit\":100,\"type\":\"offset_limit\",\"total\":0}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/team/308b9b7c-405b-11ee-b8bb-da7ad0900002/memberships\",\"last\":null,\"next\":\"https://api.datadoghq.com/api/v2/team/308b9b7c-405b-11ee-b8bb-da7ad0900002/memberships?page[offset]=100&page[limit]=100\",\"prev\":null,\"first\":\"https://api.datadoghq.com/api/v2/team/308b9b7c-405b-11ee-b8bb-da7ad0900002/memberships?page[offset]=0&page[limit]=100\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:49 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/team/308b9b7c-405b-11ee-b8bb-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:49 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-f05d3606dace17e6\",\"name\":\"test-name-f05d3606dace17e6\"},\"type\":\"team\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team\",\"id\":\"308b9b7c-405b-11ee-b8bb-da7ad0900002\",\"attributes\":{\"name\":\"test-name-f05d3606dace17e6\",\"handle\":\"test-handle-f05d3606dace17e6\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:49.571050+00:00\",\"modified_at\":\"2023-08-21T19:44:49.571056+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/308b9b7c-405b-11ee-b8bb-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/308b9b7c-405b-11ee-b8bb-da7ad0900002/permission-settings\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:49 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/team/308b9b7c-405b-11ee-b8bb-da7ad0900002/memberships" + }, + "response": { + "body": { + "string": "{\"data\":[],\"meta\":{\"pagination\":{\"offset\":0,\"first_offset\":0,\"prev_offset\":0,\"next_offset\":100,\"last_offset\":0,\"limit\":100,\"type\":\"offset_limit\",\"total\":0}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/team/308b9b7c-405b-11ee-b8bb-da7ad0900002/memberships\",\"last\":null,\"next\":\"https://api.datadoghq.com/api/v2/team/308b9b7c-405b-11ee-b8bb-da7ad0900002/memberships?page[offset]=100&page[limit]=100\",\"prev\":null,\"first\":\"https://api.datadoghq.com/api/v2/team/308b9b7c-405b-11ee-b8bb-da7ad0900002/memberships?page[offset]=0&page[limit]=100\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:49 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/308b9b7c-405b-11ee-b8bb-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:49 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Get-user-memberships-returns-Represents-a-user-s-association-to-a-team-response.json b/tests/scenarios/cassettes/v2/teams/Get-user-memberships-returns-Represents-a-user-s-association-to-a-team-response.json index f9f5b657a..dba6a106f 100644 --- a/tests/scenarios/cassettes/v2/teams/Get-user-memberships-returns-Represents-a-user-s-association-to-a-team-response.json +++ b/tests/scenarios/cassettes/v2/teams/Get-user-memberships-returns-Represents-a-user-s-association-to-a-team-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"Test-Get_user_memberships_returns_Represents_a_user_s_association_to_a_team_response-1692647090@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/users"}, "response": {"body": {"string": "{\"data\":{\"type\":\"users\",\"id\":\"30e03059-405b-11ee-9a91-1a2c4720b59d\",\"attributes\":{\"name\":null,\"handle\":\"test-get_user_memberships_returns_represents_a_user_s_association_to_a_team_response-1692647090@datadoghq.com\",\"created_at\":\"2023-08-21T19:44:50.128235+00:00\",\"modified_at\":\"2023-08-21T19:44:50.135570+00:00\",\"email\":\"test-get_user_memberships_returns_represents_a_user_s_association_to_a_team_response-1692647090@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/d2db09a560a471f9d40152e20a8dff27?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:50 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/users/30e03059-405b-11ee-9a91-1a2c4720b59d/memberships"}, "response": {"body": {"string": "{\"data\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:50 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/users/30e03059-405b-11ee-9a91-1a2c4720b59d"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:50 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"email\":\"Test-Get_user_memberships_returns_Represents_a_user_s_association_to_a_team_response-1692647090@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/users" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"users\",\"id\":\"30e03059-405b-11ee-9a91-1a2c4720b59d\",\"attributes\":{\"name\":null,\"handle\":\"test-get_user_memberships_returns_represents_a_user_s_association_to_a_team_response-1692647090@datadoghq.com\",\"created_at\":\"2023-08-21T19:44:50.128235+00:00\",\"modified_at\":\"2023-08-21T19:44:50.135570+00:00\",\"email\":\"test-get_user_memberships_returns_represents_a_user_s_association_to_a_team_response-1692647090@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/d2db09a560a471f9d40152e20a8dff27?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:50 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/users/30e03059-405b-11ee-9a91-1a2c4720b59d/memberships" + }, + "response": { + "body": { + "string": "{\"data\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:50 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/users/30e03059-405b-11ee-9a91-1a2c4720b59d" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:50 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Remove-a-team-link-returns-API-error-response-response.json b/tests/scenarios/cassettes/v2/teams/Remove-a-team-link-returns-API-error-response-response.json index 113ff8b87..6d5e8204f 100644 --- a/tests/scenarios/cassettes/v2/teams/Remove-a-team-link-returns-API-error-response-response.json +++ b/tests/scenarios/cassettes/v2/teams/Remove-a-team-link-returns-API-error-response-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-e3c0e8f681a17e5d\",\"name\":\"test-name-e3c0e8f681a17e5d\"},\"type\":\"team\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/team"}, "response": {"body": {"string": "{\"data\":{\"type\":\"team\",\"id\":\"312a5500-405b-11ee-8490-da7ad0900002\",\"attributes\":{\"name\":\"test-name-e3c0e8f681a17e5d\",\"handle\":\"test-handle-e3c0e8f681a17e5d\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:50.611038+00:00\",\"modified_at\":\"2023-08-21T19:44:50.611044+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/312a5500-405b-11ee-8490-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/312a5500-405b-11ee-8490-da7ad0900002/permission-settings\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:50 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/team/312a5500-405b-11ee-8490-da7ad0900002/links/REPLACE.ME"}, "response": {"body": {"string": "{\"errors\":[\"REPLACE.ME is not a valid UUID not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:50 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/team/312a5500-405b-11ee-8490-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:50 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-e3c0e8f681a17e5d\",\"name\":\"test-name-e3c0e8f681a17e5d\"},\"type\":\"team\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team\",\"id\":\"312a5500-405b-11ee-8490-da7ad0900002\",\"attributes\":{\"name\":\"test-name-e3c0e8f681a17e5d\",\"handle\":\"test-handle-e3c0e8f681a17e5d\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:50.611038+00:00\",\"modified_at\":\"2023-08-21T19:44:50.611044+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/312a5500-405b-11ee-8490-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/312a5500-405b-11ee-8490-da7ad0900002/permission-settings\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:50 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/312a5500-405b-11ee-8490-da7ad0900002/links/REPLACE.ME" + }, + "response": { + "body": { + "string": "{\"errors\":[\"REPLACE.ME is not a valid UUID not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:50 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/312a5500-405b-11ee-8490-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:50 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Remove-a-team-link-returns-No-Content-response.json b/tests/scenarios/cassettes/v2/teams/Remove-a-team-link-returns-No-Content-response.json index ce956037b..e6d5c01cc 100644 --- a/tests/scenarios/cassettes/v2/teams/Remove-a-team-link-returns-No-Content-response.json +++ b/tests/scenarios/cassettes/v2/teams/Remove-a-team-link-returns-No-Content-response.json @@ -1 +1,149 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-174fbe08316e4419\",\"name\":\"test-name-174fbe08316e4419\"},\"type\":\"team\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/team"}, "response": {"body": {"string": "{\"data\":{\"type\":\"team\",\"id\":\"3174aa4c-405b-11ee-9d78-da7ad0900002\",\"attributes\":{\"name\":\"test-name-174fbe08316e4419\",\"handle\":\"test-handle-174fbe08316e4419\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:51.098613+00:00\",\"modified_at\":\"2023-08-21T19:44:51.098619+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/3174aa4c-405b-11ee-9d78-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/3174aa4c-405b-11ee-9d78-da7ad0900002/permission-settings\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:50 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"label\":\"Test-Remove_a_team_link_returns_No_Content_response-1692647090\",\"position\":0,\"url\":\"https://example.com\"},\"type\":\"team_links\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/team/3174aa4c-405b-11ee-9d78-da7ad0900002/links"}, "response": {"body": {"string": "{\"data\":{\"type\":\"team_links\",\"id\":\"3194a5c2-405b-11ee-b009-da7ad0900002\",\"attributes\":{\"team_id\":\"3174aa4c-405b-11ee-9d78-da7ad0900002\",\"label\":\"Test-Remove_a_team_link_returns_No_Content_response-1692647090\",\"url\":\"https://example.com\",\"position\":0}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:50 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/team/3174aa4c-405b-11ee-9d78-da7ad0900002/links/3194a5c2-405b-11ee-b009-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:50 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/team/3174aa4c-405b-11ee-9d78-da7ad0900002/links/3194a5c2-405b-11ee-b009-da7ad0900002"}, "response": {"body": {"string": "{\"errors\":[\"Link for ID 3194a5c2-405b-11ee-b009-da7ad0900002 not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:50 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/team/3174aa4c-405b-11ee-9d78-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:50 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-174fbe08316e4419\",\"name\":\"test-name-174fbe08316e4419\"},\"type\":\"team\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team\",\"id\":\"3174aa4c-405b-11ee-9d78-da7ad0900002\",\"attributes\":{\"name\":\"test-name-174fbe08316e4419\",\"handle\":\"test-handle-174fbe08316e4419\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:51.098613+00:00\",\"modified_at\":\"2023-08-21T19:44:51.098619+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/3174aa4c-405b-11ee-9d78-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/3174aa4c-405b-11ee-9d78-da7ad0900002/permission-settings\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:50 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"label\":\"Test-Remove_a_team_link_returns_No_Content_response-1692647090\",\"position\":0,\"url\":\"https://example.com\"},\"type\":\"team_links\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/team/3174aa4c-405b-11ee-9d78-da7ad0900002/links" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team_links\",\"id\":\"3194a5c2-405b-11ee-b009-da7ad0900002\",\"attributes\":{\"team_id\":\"3174aa4c-405b-11ee-9d78-da7ad0900002\",\"label\":\"Test-Remove_a_team_link_returns_No_Content_response-1692647090\",\"url\":\"https://example.com\",\"position\":0}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:50 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/3174aa4c-405b-11ee-9d78-da7ad0900002/links/3194a5c2-405b-11ee-b009-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:50 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/3174aa4c-405b-11ee-9d78-da7ad0900002/links/3194a5c2-405b-11ee-b009-da7ad0900002" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Link for ID 3194a5c2-405b-11ee-b009-da7ad0900002 not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:50 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/3174aa4c-405b-11ee-9d78-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:50 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Remove-a-team-returns-API-error-response-response.json b/tests/scenarios/cassettes/v2/teams/Remove-a-team-returns-API-error-response-response.json index 7396bb71a..f33ddb7e0 100644 --- a/tests/scenarios/cassettes/v2/teams/Remove-a-team-returns-API-error-response-response.json +++ b/tests/scenarios/cassettes/v2/teams/Remove-a-team-returns-API-error-response-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/team/REPLACE.ME"}, "response": {"body": {"string": "{\"errors\":[\"REPLACE.ME is not a valid UUID not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:51 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/REPLACE.ME" + }, + "response": { + "body": { + "string": "{\"errors\":[\"REPLACE.ME is not a valid UUID not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:51 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Remove-a-team-returns-No-Content-response.json b/tests/scenarios/cassettes/v2/teams/Remove-a-team-returns-No-Content-response.json index 6b981689a..287c96379 100644 --- a/tests/scenarios/cassettes/v2/teams/Remove-a-team-returns-No-Content-response.json +++ b/tests/scenarios/cassettes/v2/teams/Remove-a-team-returns-No-Content-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-a9d07353f71937c2\",\"name\":\"test-name-a9d07353f71937c2\"},\"type\":\"team\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/team"}, "response": {"body": {"string": "{\"data\":{\"type\":\"team\",\"id\":\"320db0de-405b-11ee-bb10-da7ad0900002\",\"attributes\":{\"name\":\"test-name-a9d07353f71937c2\",\"handle\":\"test-handle-a9d07353f71937c2\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:52.101073+00:00\",\"modified_at\":\"2023-08-21T19:44:52.101079+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/320db0de-405b-11ee-bb10-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/320db0de-405b-11ee-bb10-da7ad0900002/permission-settings\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:51 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/team/320db0de-405b-11ee-bb10-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:51 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/team/320db0de-405b-11ee-bb10-da7ad0900002"}, "response": {"body": {"string": "{\"errors\":[\"Team for ID 320db0de-405b-11ee-bb10-da7ad0900002 not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:51 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-a9d07353f71937c2\",\"name\":\"test-name-a9d07353f71937c2\"},\"type\":\"team\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team\",\"id\":\"320db0de-405b-11ee-bb10-da7ad0900002\",\"attributes\":{\"name\":\"test-name-a9d07353f71937c2\",\"handle\":\"test-handle-a9d07353f71937c2\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:52.101073+00:00\",\"modified_at\":\"2023-08-21T19:44:52.101079+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/320db0de-405b-11ee-bb10-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/320db0de-405b-11ee-bb10-da7ad0900002/permission-settings\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:51 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/320db0de-405b-11ee-bb10-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:51 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/320db0de-405b-11ee-bb10-da7ad0900002" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Team for ID 320db0de-405b-11ee-bb10-da7ad0900002 not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:51 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Remove-a-user-from-a-team-returns-API-error-response-response.json b/tests/scenarios/cassettes/v2/teams/Remove-a-user-from-a-team-returns-API-error-response-response.json index f4e16c764..9e6408dba 100644 --- a/tests/scenarios/cassettes/v2/teams/Remove-a-user-from-a-team-returns-API-error-response-response.json +++ b/tests/scenarios/cassettes/v2/teams/Remove-a-user-from-a-team-returns-API-error-response-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-61d5baa2cd58430d\",\"name\":\"test-name-61d5baa2cd58430d\"},\"type\":\"team\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/team"}, "response": {"body": {"string": "{\"data\":{\"type\":\"team\",\"id\":\"325bc472-405b-11ee-ac5e-da7ad0900002\",\"attributes\":{\"name\":\"test-name-61d5baa2cd58430d\",\"handle\":\"test-handle-61d5baa2cd58430d\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:52.612996+00:00\",\"modified_at\":\"2023-08-21T19:44:52.613002+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/325bc472-405b-11ee-ac5e-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/325bc472-405b-11ee-ac5e-da7ad0900002/permission-settings\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:52 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/team/325bc472-405b-11ee-ac5e-da7ad0900002/memberships/REPLACE.ME"}, "response": {"body": {"string": "{\"errors\":[\"REPLACE.ME is not a valid UUID not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:52 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/team/325bc472-405b-11ee-ac5e-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:52 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-61d5baa2cd58430d\",\"name\":\"test-name-61d5baa2cd58430d\"},\"type\":\"team\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team\",\"id\":\"325bc472-405b-11ee-ac5e-da7ad0900002\",\"attributes\":{\"name\":\"test-name-61d5baa2cd58430d\",\"handle\":\"test-handle-61d5baa2cd58430d\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:52.612996+00:00\",\"modified_at\":\"2023-08-21T19:44:52.613002+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/325bc472-405b-11ee-ac5e-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/325bc472-405b-11ee-ac5e-da7ad0900002/permission-settings\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:52 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/325bc472-405b-11ee-ac5e-da7ad0900002/memberships/REPLACE.ME" + }, + "response": { + "body": { + "string": "{\"errors\":[\"REPLACE.ME is not a valid UUID not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:52 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/325bc472-405b-11ee-ac5e-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:52 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Update-a-team-link-returns-API-error-response-response.json b/tests/scenarios/cassettes/v2/teams/Update-a-team-link-returns-API-error-response-response.json index 6a9680a85..3f584cfd1 100644 --- a/tests/scenarios/cassettes/v2/teams/Update-a-team-link-returns-API-error-response-response.json +++ b/tests/scenarios/cassettes/v2/teams/Update-a-team-link-returns-API-error-response-response.json @@ -1 +1,97 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-f05d64ea2c336925\",\"name\":\"test-name-f05d64ea2c336925\"},\"type\":\"team\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/team"}, "response": {"body": {"string": "{\"data\":{\"type\":\"team\",\"id\":\"32b31d26-405b-11ee-8641-da7ad0900002\",\"attributes\":{\"name\":\"test-name-f05d64ea2c336925\",\"handle\":\"test-handle-f05d64ea2c336925\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:53.186188+00:00\",\"modified_at\":\"2023-08-21T19:44:53.186194+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/32b31d26-405b-11ee-8641-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/32b31d26-405b-11ee-8641-da7ad0900002/permission-settings\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:53 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"label\":\"Link label\",\"url\":\"https://example.com\"},\"type\":\"team_links\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/team/32b31d26-405b-11ee-8641-da7ad0900002/links/REPLACE.ME"}, "response": {"body": {"string": "{\"errors\":[\"REPLACE.ME is not a valid UUID not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:53 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/team/32b31d26-405b-11ee-8641-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:53 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-f05d64ea2c336925\",\"name\":\"test-name-f05d64ea2c336925\"},\"type\":\"team\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team\",\"id\":\"32b31d26-405b-11ee-8641-da7ad0900002\",\"attributes\":{\"name\":\"test-name-f05d64ea2c336925\",\"handle\":\"test-handle-f05d64ea2c336925\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:53.186188+00:00\",\"modified_at\":\"2023-08-21T19:44:53.186194+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/32b31d26-405b-11ee-8641-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/32b31d26-405b-11ee-8641-da7ad0900002/permission-settings\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:53 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"label\":\"Link label\",\"url\":\"https://example.com\"},\"type\":\"team_links\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/team/32b31d26-405b-11ee-8641-da7ad0900002/links/REPLACE.ME" + }, + "response": { + "body": { + "string": "{\"errors\":[\"REPLACE.ME is not a valid UUID not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:53 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/32b31d26-405b-11ee-8641-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:53 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Update-a-team-link-returns-OK-response.json b/tests/scenarios/cassettes/v2/teams/Update-a-team-link-returns-OK-response.json index b4741ee24..7265084fe 100644 --- a/tests/scenarios/cassettes/v2/teams/Update-a-team-link-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/teams/Update-a-team-link-returns-OK-response.json @@ -1 +1,155 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-9503f929e485f83e\",\"name\":\"test-name-9503f929e485f83e\"},\"type\":\"team\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/team"}, "response": {"body": {"string": "{\"data\":{\"type\":\"team\",\"id\":\"3301859c-405b-11ee-aedf-da7ad0900002\",\"attributes\":{\"name\":\"test-name-9503f929e485f83e\",\"handle\":\"test-handle-9503f929e485f83e\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:53.699451+00:00\",\"modified_at\":\"2023-08-21T19:44:53.699457+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/3301859c-405b-11ee-aedf-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/3301859c-405b-11ee-aedf-da7ad0900002/permission-settings\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:53 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"label\":\"Test-Update_a_team_link_returns_OK_response-1692647093\",\"position\":0,\"url\":\"https://example.com\"},\"type\":\"team_links\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/team/3301859c-405b-11ee-aedf-da7ad0900002/links"}, "response": {"body": {"string": "{\"data\":{\"type\":\"team_links\",\"id\":\"331f8b00-405b-11ee-bdcc-da7ad0900002\",\"attributes\":{\"team_id\":\"3301859c-405b-11ee-aedf-da7ad0900002\",\"label\":\"Test-Update_a_team_link_returns_OK_response-1692647093\",\"url\":\"https://example.com\",\"position\":0}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:53 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"label\":\"New Label\",\"url\":\"https://example.com\"},\"type\":\"team_links\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/team/3301859c-405b-11ee-aedf-da7ad0900002/links/331f8b00-405b-11ee-bdcc-da7ad0900002"}, "response": {"body": {"string": "{\"data\":{\"type\":\"team_links\",\"id\":\"331f8b00-405b-11ee-bdcc-da7ad0900002\",\"attributes\":{\"team_id\":\"3301859c-405b-11ee-aedf-da7ad0900002\",\"label\":\"New Label\",\"url\":\"https://example.com\",\"position\":0}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:53 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/team/3301859c-405b-11ee-aedf-da7ad0900002/links/331f8b00-405b-11ee-bdcc-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:53 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/team/3301859c-405b-11ee-aedf-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:53 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-9503f929e485f83e\",\"name\":\"test-name-9503f929e485f83e\"},\"type\":\"team\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team\",\"id\":\"3301859c-405b-11ee-aedf-da7ad0900002\",\"attributes\":{\"name\":\"test-name-9503f929e485f83e\",\"handle\":\"test-handle-9503f929e485f83e\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:53.699451+00:00\",\"modified_at\":\"2023-08-21T19:44:53.699457+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/3301859c-405b-11ee-aedf-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/3301859c-405b-11ee-aedf-da7ad0900002/permission-settings\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:53 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"label\":\"Test-Update_a_team_link_returns_OK_response-1692647093\",\"position\":0,\"url\":\"https://example.com\"},\"type\":\"team_links\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/team/3301859c-405b-11ee-aedf-da7ad0900002/links" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team_links\",\"id\":\"331f8b00-405b-11ee-bdcc-da7ad0900002\",\"attributes\":{\"team_id\":\"3301859c-405b-11ee-aedf-da7ad0900002\",\"label\":\"Test-Update_a_team_link_returns_OK_response-1692647093\",\"url\":\"https://example.com\",\"position\":0}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:53 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"label\":\"New Label\",\"url\":\"https://example.com\"},\"type\":\"team_links\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/team/3301859c-405b-11ee-aedf-da7ad0900002/links/331f8b00-405b-11ee-bdcc-da7ad0900002" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team_links\",\"id\":\"331f8b00-405b-11ee-bdcc-da7ad0900002\",\"attributes\":{\"team_id\":\"3301859c-405b-11ee-aedf-da7ad0900002\",\"label\":\"New Label\",\"url\":\"https://example.com\",\"position\":0}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:53 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/3301859c-405b-11ee-aedf-da7ad0900002/links/331f8b00-405b-11ee-bdcc-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:53 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/3301859c-405b-11ee-aedf-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:53 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Update-a-team-returns-OK-response.json b/tests/scenarios/cassettes/v2/teams/Update-a-team-returns-OK-response.json index cf8f43555..61ae0afa5 100644 --- a/tests/scenarios/cassettes/v2/teams/Update-a-team-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/teams/Update-a-team-returns-OK-response.json @@ -1 +1,97 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-2d88c8b44bfe8721\",\"name\":\"test-name-2d88c8b44bfe8721\"},\"type\":\"team\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/team"}, "response": {"body": {"string": "{\"data\":{\"type\":\"team\",\"id\":\"81011c66-405c-11ee-bec1-da7ad0900002\",\"attributes\":{\"name\":\"test-name-2d88c8b44bfe8721\",\"handle\":\"test-handle-2d88c8b44bfe8721\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:54:14.055917+00:00\",\"modified_at\":\"2023-08-21T19:54:14.055923+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/81011c66-405c-11ee-bec1-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/81011c66-405c-11ee-bec1-da7ad0900002/permission-settings\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 21 Aug 2023 19:54:13 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"avatar\":\"\ud83e\udd51\",\"banner\":7,\"handle\":\"test-handle-2d88c8b44bfe8721\",\"hidden_modules\":[\"m3\"],\"name\":\"test-name-2d88c8b44bfe8721 updated\",\"visible_modules\":[\"m1\",\"m2\"]},\"type\":\"team\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/team/81011c66-405c-11ee-bec1-da7ad0900002"}, "response": {"body": {"string": "{\"data\":{\"type\":\"team\",\"id\":\"81011c66-405c-11ee-bec1-da7ad0900002\",\"attributes\":{\"name\":\"test-name-2d88c8b44bfe8721 updated\",\"handle\":\"test-handle-2d88c8b44bfe8721\",\"summary\":null,\"description\":null,\"avatar\":\"\\ud83e\\udd51\",\"banner\":7,\"visible_modules\":[\"m1\",\"m2\"],\"hidden_modules\":[\"m3\"],\"created_at\":\"2023-08-21T19:54:14.055917+00:00\",\"modified_at\":\"2023-08-21T19:54:14.288541+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/81011c66-405c-11ee-bec1-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/81011c66-405c-11ee-bec1-da7ad0900002/permission-settings\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Aug 2023 19:54:13 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/team/81011c66-405c-11ee-bec1-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 21 Aug 2023 19:54:13 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-2d88c8b44bfe8721\",\"name\":\"test-name-2d88c8b44bfe8721\"},\"type\":\"team\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team\",\"id\":\"81011c66-405c-11ee-bec1-da7ad0900002\",\"attributes\":{\"name\":\"test-name-2d88c8b44bfe8721\",\"handle\":\"test-handle-2d88c8b44bfe8721\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:54:14.055917+00:00\",\"modified_at\":\"2023-08-21T19:54:14.055923+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/81011c66-405c-11ee-bec1-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/81011c66-405c-11ee-bec1-da7ad0900002/permission-settings\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:54:13 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"avatar\":\"\ud83e\udd51\",\"banner\":7,\"handle\":\"test-handle-2d88c8b44bfe8721\",\"hidden_modules\":[\"m3\"],\"name\":\"test-name-2d88c8b44bfe8721 updated\",\"visible_modules\":[\"m1\",\"m2\"]},\"type\":\"team\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/team/81011c66-405c-11ee-bec1-da7ad0900002" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team\",\"id\":\"81011c66-405c-11ee-bec1-da7ad0900002\",\"attributes\":{\"name\":\"test-name-2d88c8b44bfe8721 updated\",\"handle\":\"test-handle-2d88c8b44bfe8721\",\"summary\":null,\"description\":null,\"avatar\":\"\\ud83e\\udd51\",\"banner\":7,\"visible_modules\":[\"m1\",\"m2\"],\"hidden_modules\":[\"m3\"],\"created_at\":\"2023-08-21T19:54:14.055917+00:00\",\"modified_at\":\"2023-08-21T19:54:14.288541+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/81011c66-405c-11ee-bec1-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/81011c66-405c-11ee-bec1-da7ad0900002/permission-settings\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:54:13 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/81011c66-405c-11ee-bec1-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:54:13 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Update-a-user-s-role-on-a-team-returns-API-error-response-response.json b/tests/scenarios/cassettes/v2/teams/Update-a-user-s-role-on-a-team-returns-API-error-response-response.json index c07a202f7..482e4ccc6 100644 --- a/tests/scenarios/cassettes/v2/teams/Update-a-user-s-role-on-a-team-returns-API-error-response-response.json +++ b/tests/scenarios/cassettes/v2/teams/Update-a-user-s-role-on-a-team-returns-API-error-response-response.json @@ -1 +1,97 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-427b76ae43f10fe0\",\"name\":\"test-name-427b76ae43f10fe0\"},\"type\":\"team\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/team"}, "response": {"body": {"string": "{\"data\":{\"type\":\"team\",\"id\":\"33d811ca-405b-11ee-a640-da7ad0900002\",\"attributes\":{\"name\":\"test-name-427b76ae43f10fe0\",\"handle\":\"test-handle-427b76ae43f10fe0\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:55.105594+00:00\",\"modified_at\":\"2023-08-21T19:44:55.105599+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/33d811ca-405b-11ee-a640-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/33d811ca-405b-11ee-a640-da7ad0900002/permission-settings\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:55 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"role\":\"admin\"},\"type\":\"team_memberships\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/team/33d811ca-405b-11ee-a640-da7ad0900002/memberships/REPLACE.ME"}, "response": {"body": {"string": "{\"errors\":[\"REPLACE.ME is not a valid UUID not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:55 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/team/33d811ca-405b-11ee-a640-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:55 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-427b76ae43f10fe0\",\"name\":\"test-name-427b76ae43f10fe0\"},\"type\":\"team\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team\",\"id\":\"33d811ca-405b-11ee-a640-da7ad0900002\",\"attributes\":{\"name\":\"test-name-427b76ae43f10fe0\",\"handle\":\"test-handle-427b76ae43f10fe0\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:55.105594+00:00\",\"modified_at\":\"2023-08-21T19:44:55.105599+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/33d811ca-405b-11ee-a640-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/33d811ca-405b-11ee-a640-da7ad0900002/permission-settings\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:55 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"role\":\"admin\"},\"type\":\"team_memberships\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/team/33d811ca-405b-11ee-a640-da7ad0900002/memberships/REPLACE.ME" + }, + "response": { + "body": { + "string": "{\"errors\":[\"REPLACE.ME is not a valid UUID not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:55 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/33d811ca-405b-11ee-a640-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:55 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Update-permission-setting-for-team-returns-API-error-response-response.json b/tests/scenarios/cassettes/v2/teams/Update-permission-setting-for-team-returns-API-error-response-response.json index 95c29c486..7e14d0e7c 100644 --- a/tests/scenarios/cassettes/v2/teams/Update-permission-setting-for-team-returns-API-error-response-response.json +++ b/tests/scenarios/cassettes/v2/teams/Update-permission-setting-for-team-returns-API-error-response-response.json @@ -1 +1,97 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-62f52dee42c1d7dc\",\"name\":\"test-name-62f52dee42c1d7dc\"},\"type\":\"team\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/team"}, "response": {"body": {"string": "{\"data\":{\"type\":\"team\",\"id\":\"3426dddc-405b-11ee-818a-da7ad0900002\",\"attributes\":{\"name\":\"test-name-62f52dee42c1d7dc\",\"handle\":\"test-handle-62f52dee42c1d7dc\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:55.621598+00:00\",\"modified_at\":\"2023-08-21T19:44:55.621607+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/3426dddc-405b-11ee-818a-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/3426dddc-405b-11ee-818a-da7ad0900002/permission-settings\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:55 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"value\":\"admins\"},\"type\":\"team_permission_settings\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "put", "uri": "https://api.datadoghq.com/api/v2/team/3426dddc-405b-11ee-818a-da7ad0900002/permission-settings/REPLACE.ME"}, "response": {"body": {"string": "{\"errors\":[\"Invalid action type \\\"REPLACE.ME\\\". Valid actions: manage_membership, edit not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:55 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/team/3426dddc-405b-11ee-818a-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:55 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-62f52dee42c1d7dc\",\"name\":\"test-name-62f52dee42c1d7dc\"},\"type\":\"team\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team\",\"id\":\"3426dddc-405b-11ee-818a-da7ad0900002\",\"attributes\":{\"name\":\"test-name-62f52dee42c1d7dc\",\"handle\":\"test-handle-62f52dee42c1d7dc\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:55.621598+00:00\",\"modified_at\":\"2023-08-21T19:44:55.621607+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/3426dddc-405b-11ee-818a-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/3426dddc-405b-11ee-818a-da7ad0900002/permission-settings\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:55 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"value\":\"admins\"},\"type\":\"team_permission_settings\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v2/team/3426dddc-405b-11ee-818a-da7ad0900002/permission-settings/REPLACE.ME" + }, + "response": { + "body": { + "string": "{\"errors\":[\"Invalid action type \\\"REPLACE.ME\\\". Valid actions: manage_membership, edit not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:55 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/3426dddc-405b-11ee-818a-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:55 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/teams/Update-permission-setting-for-team-returns-OK-response.json b/tests/scenarios/cassettes/v2/teams/Update-permission-setting-for-team-returns-OK-response.json index 592e47792..0c0e9d5f9 100644 --- a/tests/scenarios/cassettes/v2/teams/Update-permission-setting-for-team-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/teams/Update-permission-setting-for-team-returns-OK-response.json @@ -1 +1,97 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-f17bf3394db1955e\",\"name\":\"test-name-f17bf3394db1955e\"},\"type\":\"team\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/team"}, "response": {"body": {"string": "{\"data\":{\"type\":\"team\",\"id\":\"3474a102-405b-11ee-8a0f-da7ad0900002\",\"attributes\":{\"name\":\"test-name-f17bf3394db1955e\",\"handle\":\"test-handle-f17bf3394db1955e\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:56.131892+00:00\",\"modified_at\":\"2023-08-21T19:44:56.131898+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/3474a102-405b-11ee-8a0f-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/3474a102-405b-11ee-8a0f-da7ad0900002/permission-settings\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:56 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"value\":\"admins\"},\"type\":\"team_permission_settings\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "put", "uri": "https://api.datadoghq.com/api/v2/team/3474a102-405b-11ee-8a0f-da7ad0900002/permission-settings/manage_membership"}, "response": {"body": {"string": "{\"data\":{\"type\":\"team_permission_settings\",\"attributes\":{\"action\":\"manage_membership\",\"value\":\"admins\",\"options\":[\"admins\",\"members\",\"organization\",\"user_access_manage\",\"teams_manage\"]},\"id\":\"TeamPermission-3474a102-405b-11ee-8a0f-da7ad0900002-manage_membership\"}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:56 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/team/3474a102-405b-11ee-8a0f-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 21 Aug 2023 19:44:56 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-f17bf3394db1955e\",\"name\":\"test-name-f17bf3394db1955e\"},\"type\":\"team\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team\",\"id\":\"3474a102-405b-11ee-8a0f-da7ad0900002\",\"attributes\":{\"name\":\"test-name-f17bf3394db1955e\",\"handle\":\"test-handle-f17bf3394db1955e\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:56.131892+00:00\",\"modified_at\":\"2023-08-21T19:44:56.131898+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/3474a102-405b-11ee-8a0f-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/3474a102-405b-11ee-8a0f-da7ad0900002/permission-settings\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:56 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"value\":\"admins\"},\"type\":\"team_permission_settings\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "put", + "uri": "https://api.datadoghq.com/api/v2/team/3474a102-405b-11ee-8a0f-da7ad0900002/permission-settings/manage_membership" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"team_permission_settings\",\"attributes\":{\"action\":\"manage_membership\",\"value\":\"admins\",\"options\":[\"admins\",\"members\",\"organization\",\"user_access_manage\",\"teams_manage\"]},\"id\":\"TeamPermission-3474a102-405b-11ee-8a0f-da7ad0900002-manage_membership\"}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:56 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/team/3474a102-405b-11ee-8a0f-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 21 Aug 2023 19:44:56 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/usage_metering/Get-Monthly-Cost-Attribution-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/usage_metering/Get-Monthly-Cost-Attribution-returns-Bad-Request-response.json index b0aefbb6a..176195d53 100644 --- a/tests/scenarios/cassettes/v2/usage_metering/Get-Monthly-Cost-Attribution-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/usage_metering/Get-Monthly-Cost-Attribution-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/cost_by_tag/monthly_cost_attribution?start_month=2023-11-11T19%3A41%3A02.013Z&end_month=2023-11-13T19%3A41%3A02.013Z&fields=not_a_product"}, "response": {"body": {"string": "{\"errors\":[\"API called with non-parent org keys. Data is only available at the root level org\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Thu, 16 Nov 2023 19:41:02 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/cost_by_tag/monthly_cost_attribution?start_month=2023-11-11T19%3A41%3A02.013Z&end_month=2023-11-13T19%3A41%3A02.013Z&fields=not_a_product" + }, + "response": { + "body": { + "string": "{\"errors\":[\"API called with non-parent org keys. Data is only available at the root level org\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Thu, 16 Nov 2023 19:41:02 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/usage_metering/Get-Monthly-Cost-Attribution-returns-OK-response.json b/tests/scenarios/cassettes/v2/usage_metering/Get-Monthly-Cost-Attribution-returns-OK-response.json index 59176e83d..79407bc9d 100644 --- a/tests/scenarios/cassettes/v2/usage_metering/Get-Monthly-Cost-Attribution-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/usage_metering/Get-Monthly-Cost-Attribution-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/cost_by_tag/monthly_cost_attribution?start_month=2023-11-11T19%3A43%3A19.607Z&end_month=2023-11-13T19%3A43%3A19.607Z&fields=infra_host_total_cost"}, "response": {"body": {"string": "{\"data\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 16 Nov 2023 19:43:19 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/cost_by_tag/monthly_cost_attribution?start_month=2023-11-11T19%3A43%3A19.607Z&end_month=2023-11-13T19%3A43%3A19.607Z&fields=infra_host_total_cost" + }, + "response": { + "body": { + "string": "{\"data\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 16 Nov 2023 19:43:19 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/usage_metering/Get-active-billing-dimensions-for-cost-attribution-returns-OK-response.json b/tests/scenarios/cassettes/v2/usage_metering/Get-active-billing-dimensions-for-cost-attribution-returns-OK-response.json index db2b5b3c3..2dc124c19 100644 --- a/tests/scenarios/cassettes/v2/usage_metering/Get-active-billing-dimensions-for-cost-attribution-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/usage_metering/Get-active-billing-dimensions-for-cost-attribution-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/cost_by_tag/active_billing_dimensions"}, "response": {"body": {"string": "{\"data\":{\"type\":\"billing_dimensions\",\"id\":\"f145e21e840c6db03f75c179877629eb08531aa6f314f97658261680e49ab1f1\",\"attributes\":{\"values\":[\"apm_fargate\",\"apm_host\",\"apm_host_enterprise\",\"apm_host_no_usm\",\"apm_host_pro\",\"apm_profiler_host\",\"apm_trace_search\",\"application_security_fargate\",\"application_security_host\",\"application_vulnerability_management_oss_host\",\"audit_trail\",\"ci_pipeline\",\"ci_pipeline_indexed_spans\",\"ci_test_indexed_spans\",\"ci_testing\",\"cloud_cost_management\",\"csm_container_enterprise\",\"csm_host_enterprise\",\"csm_host_pro\",\"cspm_container\",\"cspm_host\",\"custom_event\",\"cws_container\",\"cws_host\",\"data_stream_monitoring\",\"dbm_host\",\"dbm_normalized_queries\",\"fargate_container\",\"fargate_container_apm_and_profiler\",\"fargate_container_profiler\",\"incident_management\",\"infra_and_apm_host\",\"infra_container\",\"infra_container_excl_agent\",\"infra_host\",\"ingested_spans\",\"ingested_timeseries\",\"iot\",\"lambda_function\",\"logs_forwarding\",\"logs_indexed_15day\",\"logs_indexed_180day\",\"logs_indexed_30day\",\"logs_indexed_360day\",\"logs_indexed_3day\",\"logs_indexed_45day\",\"logs_indexed_60day\",\"logs_indexed_7day\",\"logs_indexed_90day\",\"logs_indexed_custom_retention\",\"logs_ingested\",\"network_device\",\"npm_host\",\"observability_pipeline\",\"online_archive\",\"premier_support\",\"prof_container\",\"prof_host\",\"rum\",\"rum_lite\",\"rum_replay\",\"sensitive_data_scanner\",\"serverless_apm\",\"serverless_infra\",\"serverless_invocation\",\"siem\",\"standard_timeseries\",\"synthetics_api_tests\",\"synthetics_app_testing\",\"synthetics_browser_checks\",\"timeseries\",\"usm_standalone\",\"usm_within_infra_host\",\"workflow_execution\"],\"month\":\"2023-10-01T00:00:00Z\"}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 16 Nov 2023 16:03:39 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/cost_by_tag/active_billing_dimensions" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"billing_dimensions\",\"id\":\"f145e21e840c6db03f75c179877629eb08531aa6f314f97658261680e49ab1f1\",\"attributes\":{\"values\":[\"apm_fargate\",\"apm_host\",\"apm_host_enterprise\",\"apm_host_no_usm\",\"apm_host_pro\",\"apm_profiler_host\",\"apm_trace_search\",\"application_security_fargate\",\"application_security_host\",\"application_vulnerability_management_oss_host\",\"audit_trail\",\"ci_pipeline\",\"ci_pipeline_indexed_spans\",\"ci_test_indexed_spans\",\"ci_testing\",\"cloud_cost_management\",\"csm_container_enterprise\",\"csm_host_enterprise\",\"csm_host_pro\",\"cspm_container\",\"cspm_host\",\"custom_event\",\"cws_container\",\"cws_host\",\"data_stream_monitoring\",\"dbm_host\",\"dbm_normalized_queries\",\"fargate_container\",\"fargate_container_apm_and_profiler\",\"fargate_container_profiler\",\"incident_management\",\"infra_and_apm_host\",\"infra_container\",\"infra_container_excl_agent\",\"infra_host\",\"ingested_spans\",\"ingested_timeseries\",\"iot\",\"lambda_function\",\"logs_forwarding\",\"logs_indexed_15day\",\"logs_indexed_180day\",\"logs_indexed_30day\",\"logs_indexed_360day\",\"logs_indexed_3day\",\"logs_indexed_45day\",\"logs_indexed_60day\",\"logs_indexed_7day\",\"logs_indexed_90day\",\"logs_indexed_custom_retention\",\"logs_ingested\",\"network_device\",\"npm_host\",\"observability_pipeline\",\"online_archive\",\"premier_support\",\"prof_container\",\"prof_host\",\"rum\",\"rum_lite\",\"rum_replay\",\"sensitive_data_scanner\",\"serverless_apm\",\"serverless_infra\",\"serverless_invocation\",\"siem\",\"standard_timeseries\",\"synthetics_api_tests\",\"synthetics_app_testing\",\"synthetics_browser_checks\",\"timeseries\",\"usm_standalone\",\"usm_within_infra_host\",\"workflow_execution\"],\"month\":\"2023-10-01T00:00:00Z\"}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 16 Nov 2023 16:03:39 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/usage_metering/Get-cost-across-multi-org-account-returns-OK-response.json b/tests/scenarios/cassettes/v2/usage_metering/Get-cost-across-multi-org-account-returns-OK-response.json index b5e611a5c..664b03b79 100644 --- a/tests/scenarios/cassettes/v2/usage_metering/Get-cost-across-multi-org-account-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/usage_metering/Get-cost-across-multi-org-account-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/usage/cost_by_org?start_month=2022-04-22T17%3A07%3A01.561Z"}, "response": {"body": {"string": "{\"data\":[{\"attributes\":{\"org_name\":\"RQ Dummy Tests\",\"public_id\":\"fasjyydbcgwwc2uc\",\"total_cost\":73.17,\"charges\":[{\"charge_type\":\"committed\",\"cost\":0,\"product_name\":\"infra_host\"},{\"charge_type\":\"on_demand\",\"cost\":72,\"product_name\":\"synthetics_api_tests\"},{\"charge_type\":\"committed\",\"cost\":1.17,\"product_name\":\"infra_host\"}],\"date\":\"2022-04-25T17:00:00+00:00\"},\"type\":\"cost_by_org\",\"id\":\"5d1702ab10f060719ae5aa1fd7ba09e3d7e0fb371b8319051c616a1fcad254e9\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 25 Apr 2022 17:07:01 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/usage/cost_by_org?start_month=2022-04-22T17%3A07%3A01.561Z" + }, + "response": { + "body": { + "string": "{\"data\":[{\"attributes\":{\"org_name\":\"RQ Dummy Tests\",\"public_id\":\"fasjyydbcgwwc2uc\",\"total_cost\":73.17,\"charges\":[{\"charge_type\":\"committed\",\"cost\":0,\"product_name\":\"infra_host\"},{\"charge_type\":\"on_demand\",\"cost\":72,\"product_name\":\"synthetics_api_tests\"},{\"charge_type\":\"committed\",\"cost\":1.17,\"product_name\":\"infra_host\"}],\"date\":\"2022-04-25T17:00:00+00:00\"},\"type\":\"cost_by_org\",\"id\":\"5d1702ab10f060719ae5aa1fd7ba09e3d7e0fb371b8319051c616a1fcad254e9\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 25 Apr 2022 17:07:01 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/usage_metering/Get-estimated-cost-across-multi-org-account-with-date-returns-OK-response.json b/tests/scenarios/cassettes/v2/usage_metering/Get-estimated-cost-across-multi-org-account-with-date-returns-OK-response.json index 1878dea44..26582215b 100644 --- a/tests/scenarios/cassettes/v2/usage_metering/Get-estimated-cost-across-multi-org-account-with-date-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/usage_metering/Get-estimated-cost-across-multi-org-account-with-date-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/usage/estimated_cost_by_org?start_date=2022-04-20T17%3A07%3A01.561Z&end_date=2022-04-22T17%3A07%3A01.561Z"}, "response": {"body": {"string": "{\"data\":[{\"attributes\":{\"org_name\":\"RQ Dummy Tests\",\"public_id\":\"fasjyydbcgwwc2uc\",\"total_cost\":73.17,\"charges\":[{\"charge_type\":\"committed\",\"cost\":0,\"product_name\":\"infra_host\"},{\"charge_type\":\"on_demand\",\"cost\":72,\"product_name\":\"synthetics_api_tests\"},{\"charge_type\":\"committed\",\"cost\":1.17,\"product_name\":\"infra_host\"}],\"date\":\"2022-04-25T17:00:00+00:00\"},\"type\":\"cost_by_org\",\"id\":\"5d1702ab10f060719ae5aa1fd7ba09e3d7e0fb371b8319051c616a1fcad254e9\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 25 Apr 2022 17:07:01 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/usage/estimated_cost_by_org?start_date=2022-04-20T17%3A07%3A01.561Z&end_date=2022-04-22T17%3A07%3A01.561Z" + }, + "response": { + "body": { + "string": "{\"data\":[{\"attributes\":{\"org_name\":\"RQ Dummy Tests\",\"public_id\":\"fasjyydbcgwwc2uc\",\"total_cost\":73.17,\"charges\":[{\"charge_type\":\"committed\",\"cost\":0,\"product_name\":\"infra_host\"},{\"charge_type\":\"on_demand\",\"cost\":72,\"product_name\":\"synthetics_api_tests\"},{\"charge_type\":\"committed\",\"cost\":1.17,\"product_name\":\"infra_host\"}],\"date\":\"2022-04-25T17:00:00+00:00\"},\"type\":\"cost_by_org\",\"id\":\"5d1702ab10f060719ae5aa1fd7ba09e3d7e0fb371b8319051c616a1fcad254e9\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 25 Apr 2022 17:07:01 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/usage_metering/Get-estimated-cost-across-multi-org-account-with-month-returns-OK-response.json b/tests/scenarios/cassettes/v2/usage_metering/Get-estimated-cost-across-multi-org-account-with-month-returns-OK-response.json index d37096638..eb72ead7a 100644 --- a/tests/scenarios/cassettes/v2/usage_metering/Get-estimated-cost-across-multi-org-account-with-month-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/usage_metering/Get-estimated-cost-across-multi-org-account-with-month-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/usage/estimated_cost_by_org?start_month=2022-04-20T17%3A07%3A01.561Z&end_month=2022-04-22T17%3A07%3A01.561Z"}, "response": {"body": {"string": "{\"data\":[{\"attributes\":{\"org_name\":\"RQ Dummy Tests\",\"public_id\":\"fasjyydbcgwwc2uc\",\"total_cost\":73.17,\"charges\":[{\"charge_type\":\"committed\",\"cost\":0,\"product_name\":\"infra_host\"},{\"charge_type\":\"on_demand\",\"cost\":72,\"product_name\":\"synthetics_api_tests\"},{\"charge_type\":\"committed\",\"cost\":1.17,\"product_name\":\"infra_host\"}],\"date\":\"2022-04-25T17:00:00+00:00\"},\"type\":\"cost_by_org\",\"id\":\"5d1702ab10f060719ae5aa1fd7ba09e3d7e0fb371b8319051c616a1fcad254e9\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 25 Apr 2022 17:07:01 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/usage/estimated_cost_by_org?start_month=2022-04-20T17%3A07%3A01.561Z&end_month=2022-04-22T17%3A07%3A01.561Z" + }, + "response": { + "body": { + "string": "{\"data\":[{\"attributes\":{\"org_name\":\"RQ Dummy Tests\",\"public_id\":\"fasjyydbcgwwc2uc\",\"total_cost\":73.17,\"charges\":[{\"charge_type\":\"committed\",\"cost\":0,\"product_name\":\"infra_host\"},{\"charge_type\":\"on_demand\",\"cost\":72,\"product_name\":\"synthetics_api_tests\"},{\"charge_type\":\"committed\",\"cost\":1.17,\"product_name\":\"infra_host\"}],\"date\":\"2022-04-25T17:00:00+00:00\"},\"type\":\"cost_by_org\",\"id\":\"5d1702ab10f060719ae5aa1fd7ba09e3d7e0fb371b8319051c616a1fcad254e9\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 25 Apr 2022 17:07:01 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/usage_metering/Get-historical-cost-across-your-account-returns-OK-response.json b/tests/scenarios/cassettes/v2/usage_metering/Get-historical-cost-across-your-account-returns-OK-response.json index 52732c0bd..5c75b9fee 100644 --- a/tests/scenarios/cassettes/v2/usage_metering/Get-historical-cost-across-your-account-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/usage_metering/Get-historical-cost-across-your-account-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/usage/historical_cost?start_month=2022-09-21T21%3A58%3A43.871Z&view=sub-org"}, "response": {"body": {"string": "{\"data\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 21 Nov 2022 21:58:43 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/usage/historical_cost?start_month=2022-09-21T21%3A58%3A43.871Z&view=sub-org" + }, + "response": { + "body": { + "string": "{\"data\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 21 Nov 2022 21:58:43 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-by-product-family-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-by-product-family-returns-Bad-Request-response.json index 8ac746c72..0376328bd 100644 --- a/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-by-product-family-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-by-product-family-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/usage/hourly_usage?filter%5Btimestamp%5D%5Bstart%5D=2022-07-16T14%3A57%3A41.335Z&filter%5Btimestamp%5D%5Bend%5D=2022-07-14T14%3A57%3A41.335Z&filter%5Bproduct_families%5D=infra_hosts"}, "response": {"body": {"string": "{\"errors\":[\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Tue, 19 Jul 2022 14:57:41 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/usage/hourly_usage?filter%5Btimestamp%5D%5Bstart%5D=2022-07-16T14%3A57%3A41.335Z&filter%5Btimestamp%5D%5Bend%5D=2022-07-14T14%3A57%3A41.335Z&filter%5Bproduct_families%5D=infra_hosts" + }, + "response": { + "body": { + "string": "{\"errors\":[\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Tue, 19 Jul 2022 14:57:41 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-by-product-family-returns-OK-response.json b/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-by-product-family-returns-OK-response.json index 6bfa21721..7d8c23b5d 100644 --- a/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-by-product-family-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-by-product-family-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/usage/hourly_usage?filter%5Btimestamp%5D%5Bstart%5D=2022-07-16T14%3A57%3A41.821Z&filter%5Bproduct_families%5D=infra_hosts"}, "response": {"body": {"string": "{\"data\":[{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-16T14:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"c2d81d3ab0e2330402ba194f525ac02b0e561dbaf1e30fdc9d900551ca104e6c\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-16T15:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"aab388e6fa569317272aec7a7b8769bf6400c8b3e3163e34c5ba8fc8b1ea962c\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-16T16:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"a7480a9641c6bb5609a623c24f9be58f6bd0e0f8b39c23813be2e5e9f37465df\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-16T17:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"3ece398146b5e6863932aaabb340a35dc3f678a10b8731dd1aa6cefb01a05a50\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-16T18:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"db5610645e040ceb1e34726488331e256688b629700b0fab78c62ed4e681232e\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-16T19:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"317972994b0ef9e9c7b003ab0f1a28db970c738229bc8eb99b5f40863bd31ae7\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-16T20:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"7b4af48ad0743367a787bff94d6fb23dc4f6bd1721846b656aefcaa0c97094af\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-16T21:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"a26d4f98ebefc52c3e3ff41947df05bf792c12fff32a450c208b8a5579ea636c\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-16T22:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"284445d0d64b997e3a799f9a9c0b37a75979f17da92d3b87c102b334ff2e8c55\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-16T23:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"27cd01fcc3390288a50d1e9bd56fdf2e65db299ff59fd167eae5dcc6afefacbe\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-17T00:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"31c2b4d1ad3e227ee84c29aca58c3a82fa29d334434d9192c7c488ab125a831c\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-17T01:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"773dd70bab3e291c460d1263d4b8f2fed2f649b5c31227acd34819b6b8fa93cf\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-17T02:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"adda5d505c6d83890ca97ecdfd9d0dab915da014b4b87abd43a909c3453cb60d\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-17T03:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"d7b5724fb49109e31700bf34aa6527e0a097359f3917288c351617d5042e6930\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-17T04:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"826bc80a5789a931a674eecf3491b3aea9cf11a01749f57ae45496c7bede96a7\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-17T05:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"b8f4c50da05e3413a2618ec30ae193482b28ef2eb318541de68751ad32f267d0\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-17T06:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"bc403917f58538e7cc57934de186bb0975e1667780030e77464c46bcc07a108e\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-17T07:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"15aff389986ebee357e66194ba015afcf4ce87f262e0cbe635fda457abf36bbb\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-17T08:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"a92fa8990a961de5fbc1813a004587fc01eba595bd382d75b85fe88e63bafea6\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-17T09:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"a8c6b8633bb710eb4eff1bdb6046354635b9bb1e99c3de3fd2f4efab6a5c177f\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-17T10:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"6623ba9e88fb7491794d262f121dec195afb88ac8a85653805c8dff1b604da1c\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-17T11:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"b690150b84610dbc7a4fd2c37da96e69bc43ce8ce7ee51af7d47c32054c6df44\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-17T12:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"a03a5f4b9967b962f1de6cc80b696e3a1562ff733834b8cec6540f9cb884236b\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-17T13:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"07e22e70cfb7efe81ffdd0265cdea8417b0fbf4d9e8cb9f862bbff581fe7e5ac\"}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 19 Jul 2022 14:57:41 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/usage/hourly_usage?filter%5Btimestamp%5D%5Bstart%5D=2022-07-16T14%3A57%3A41.821Z&filter%5Bproduct_families%5D=infra_hosts" + }, + "response": { + "body": { + "string": "{\"data\":[{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-16T14:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"c2d81d3ab0e2330402ba194f525ac02b0e561dbaf1e30fdc9d900551ca104e6c\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-16T15:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"aab388e6fa569317272aec7a7b8769bf6400c8b3e3163e34c5ba8fc8b1ea962c\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-16T16:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"a7480a9641c6bb5609a623c24f9be58f6bd0e0f8b39c23813be2e5e9f37465df\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-16T17:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"3ece398146b5e6863932aaabb340a35dc3f678a10b8731dd1aa6cefb01a05a50\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-16T18:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"db5610645e040ceb1e34726488331e256688b629700b0fab78c62ed4e681232e\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-16T19:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"317972994b0ef9e9c7b003ab0f1a28db970c738229bc8eb99b5f40863bd31ae7\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-16T20:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"7b4af48ad0743367a787bff94d6fb23dc4f6bd1721846b656aefcaa0c97094af\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-16T21:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"a26d4f98ebefc52c3e3ff41947df05bf792c12fff32a450c208b8a5579ea636c\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-16T22:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"284445d0d64b997e3a799f9a9c0b37a75979f17da92d3b87c102b334ff2e8c55\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-16T23:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"27cd01fcc3390288a50d1e9bd56fdf2e65db299ff59fd167eae5dcc6afefacbe\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-17T00:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"31c2b4d1ad3e227ee84c29aca58c3a82fa29d334434d9192c7c488ab125a831c\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-17T01:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"773dd70bab3e291c460d1263d4b8f2fed2f649b5c31227acd34819b6b8fa93cf\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-17T02:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"adda5d505c6d83890ca97ecdfd9d0dab915da014b4b87abd43a909c3453cb60d\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-17T03:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"d7b5724fb49109e31700bf34aa6527e0a097359f3917288c351617d5042e6930\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-17T04:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"826bc80a5789a931a674eecf3491b3aea9cf11a01749f57ae45496c7bede96a7\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-17T05:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"b8f4c50da05e3413a2618ec30ae193482b28ef2eb318541de68751ad32f267d0\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-17T06:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"bc403917f58538e7cc57934de186bb0975e1667780030e77464c46bcc07a108e\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-17T07:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"15aff389986ebee357e66194ba015afcf4ce87f262e0cbe635fda457abf36bbb\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-17T08:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"a92fa8990a961de5fbc1813a004587fc01eba595bd382d75b85fe88e63bafea6\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-17T09:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"a8c6b8633bb710eb4eff1bdb6046354635b9bb1e99c3de3fd2f4efab6a5c177f\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-17T10:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"6623ba9e88fb7491794d262f121dec195afb88ac8a85653805c8dff1b604da1c\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-17T11:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"b690150b84610dbc7a4fd2c37da96e69bc43ce8ce7ee51af7d47c32054c6df44\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-17T12:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"a03a5f4b9967b962f1de6cc80b696e3a1562ff733834b8cec6540f9cb884236b\"},{\"attributes\":{\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"timestamp\":\"2022-07-17T13:00:00+00:00\",\"region\":\"us\",\"measurements\":[{\"usage_type\":\"agent_host_count\",\"value\":14},{\"usage_type\":\"alibaba_host_count\",\"value\":0},{\"usage_type\":\"apm_azure_app_service_host_count\",\"value\":0},{\"usage_type\":\"apm_host_count\",\"value\":4},{\"usage_type\":\"aws_host_count\",\"value\":0},{\"usage_type\":\"azure_host_count\",\"value\":0},{\"usage_type\":\"container_count\",\"value\":null},{\"usage_type\":\"gcp_host_count\",\"value\":0},{\"usage_type\":\"heroku_host_count\",\"value\":0},{\"usage_type\":\"host_count\",\"value\":14},{\"usage_type\":\"infra_azure_app_service\",\"value\":0},{\"usage_type\":\"opentelemetry_host_count\",\"value\":0},{\"usage_type\":\"vsphere_host_count\",\"value\":0}],\"product_family\":\"infra_hosts\"},\"type\":\"usage_timeseries\",\"id\":\"07e22e70cfb7efe81ffdd0265cdea8417b0fbf4d9e8cb9f862bbff581fe7e5ac\"}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 19 Jul 2022 14:57:41 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-Application-Security-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-Application-Security-returns-Bad-Request-response.json index bc3a176e6..a0441cad7 100644 --- a/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-Application-Security-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-Application-Security-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/usage/application_security?start_hr=2022-04-29T16%3A40%3A49.302Z&end_hr=2022-04-27T16%3A40%3A49.302Z"}, "response": {"body": {"string": "{\"errors\":[\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Mon, 02 May 2022 16:40:49 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/usage/application_security?start_hr=2022-04-29T16%3A40%3A49.302Z&end_hr=2022-04-27T16%3A40%3A49.302Z" + }, + "response": { + "body": { + "string": "{\"errors\":[\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Mon, 02 May 2022 16:40:49 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-Lambda-Traced-Invocations-returns-Bad-Request-response.frozen b/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-Lambda-Traced-Invocations-returns-Bad-Request-response.frozen deleted file mode 100644 index 229352402..000000000 --- a/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-Lambda-Traced-Invocations-returns-Bad-Request-response.frozen +++ /dev/null @@ -1 +0,0 @@ -2022-05-06T18:07:36.174Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-Lambda-Traced-Invocations-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-Lambda-Traced-Invocations-returns-Bad-Request-response.json deleted file mode 100644 index 26abd296d..000000000 --- a/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-Lambda-Traced-Invocations-returns-Bad-Request-response.json +++ /dev/null @@ -1 +0,0 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/usage/lambda_traced_invocations?start_hr=2022-05-03T18%3A07%3A36.174Z&end_hr=2022-05-01T18%3A07%3A36.174Z"}, "response": {"body": {"string": "{\"errors\":[\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Fri, 06 May 2022 18:07:36 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-Lambda-traced-invocations-returns-Bad-Request-response.frozen b/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-Lambda-traced-invocations-returns-Bad-Request-response.frozen new file mode 100644 index 000000000..79cf778bd --- /dev/null +++ b/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-Lambda-traced-invocations-returns-Bad-Request-response.frozen @@ -0,0 +1 @@ +2024-01-24T20:56:23.911Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-Lambda-traced-invocations-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-Lambda-traced-invocations-returns-Bad-Request-response.json new file mode 100644 index 000000000..031b03b37 --- /dev/null +++ b/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-Lambda-traced-invocations-returns-Bad-Request-response.json @@ -0,0 +1,33 @@ +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/usage/lambda_traced_invocations?start_hr=2024-01-21T20%3A56%3A23.911Z&end_hr=2024-01-19T20%3A56%3A23.911Z" + }, + "response": { + "body": { + "string": "{\"errors\":[\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Wed, 24 Jan 2024 20:56:23 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-Lambda-traced-invocations-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-Lambda-traced-invocations-returns-OK-response.frozen new file mode 100644 index 000000000..059c2884e --- /dev/null +++ b/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-Lambda-traced-invocations-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-01-24T20:54:39.781Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-Lambda-traced-invocations-returns-OK-response.json b/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-Lambda-traced-invocations-returns-OK-response.json new file mode 100644 index 000000000..b1f85d1eb --- /dev/null +++ b/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-Lambda-traced-invocations-returns-OK-response.json @@ -0,0 +1,33 @@ +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/usage/lambda_traced_invocations?start_hr=2024-01-19T20%3A54%3A39.781Z&end_hr=2024-01-21T20%3A54%3A39.781Z" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"41945ceef2349387d82c498d0d83cb88b2c57e90d273d9cfa0826d3cac2ecc45\",\"type\":\"usage_timeseries\",\"attributes\":{\"product_family\":\"lambda-traced-invocations\",\"usage_type\":\"lambda_traced_invocations_count\",\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"region\":\"us\",\"timeseries\":[{\"timestamp\":\"2024-01-19T20:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-19T21:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-19T22:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-19T23:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-20T00:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-20T01:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-20T02:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-20T03:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-20T04:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-20T05:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-20T06:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-20T07:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-20T08:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-20T09:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-20T10:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-20T11:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-20T12:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-20T13:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-20T14:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-20T15:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-20T16:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-20T17:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-20T18:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-20T19:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-20T20:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-20T21:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-20T22:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-20T23:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-21T00:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-21T01:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-21T02:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-21T03:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-21T04:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-21T05:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-21T06:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-21T07:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-21T08:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-21T09:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-21T10:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-21T11:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-21T12:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-21T13:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-21T14:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-21T15:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-21T16:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-21T17:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-21T18:00:00+00:00\",\"value\":null},{\"timestamp\":\"2024-01-21T19:00:00+00:00\",\"value\":null}]}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 24 Jan 2024 20:54:39 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-Observability-Pipelines-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-Observability-Pipelines-returns-Bad-Request-response.json index 16862e419..c8a807a5b 100644 --- a/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-Observability-Pipelines-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-Observability-Pipelines-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/usage/observability_pipelines?start_hr=2022-04-17T18%3A23%3A39.831Z&end_hr=2022-04-15T18%3A23%3A39.831Z"}, "response": {"body": {"string": "{\"errors\":[\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Wed, 20 Apr 2022 18:23:39 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/usage/observability_pipelines?start_hr=2022-04-17T18%3A23%3A39.831Z&end_hr=2022-04-15T18%3A23%3A39.831Z" + }, + "response": { + "body": { + "string": "{\"errors\":[\"start_hr [YYYY-MM-DDThh] must be before end_hr [YYYY-MM-DDThh]\"]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Wed, 20 Apr 2022 18:23:39 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-application-security-returns-OK-response.json b/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-application-security-returns-OK-response.json index f35032edd..baa8a1440 100644 --- a/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-application-security-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-application-security-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/usage/application_security?start_hr=2023-10-11T15%3A16%3A50.772Z&end_hr=2023-10-13T15%3A16%3A50.772Z"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"f9835e00af7d43da5fa029132bb2227473df0f5dc80bf2cc1eb51ddb372f47d5\",\"type\":\"usage_timeseries\",\"attributes\":{\"product_family\":\"app-sec\",\"usage_type\":\"app_sec_host_count\",\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"region\":\"us\",\"timeseries\":[{\"timestamp\":\"2023-10-11T15:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T16:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T17:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T18:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T19:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T20:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T21:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T22:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T23:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T00:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T01:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T02:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T03:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T04:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T05:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T06:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T07:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T08:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T09:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T10:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T11:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T12:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T13:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T14:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T15:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T16:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T17:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T18:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T19:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T20:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T21:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T22:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T23:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T00:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T01:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T02:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T03:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T04:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T05:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T06:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T07:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T08:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T09:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T10:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T11:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T12:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T13:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T14:00:00+00:00\",\"value\":null}]}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 16 Oct 2023 15:16:50 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/usage/application_security?start_hr=2023-10-11T15%3A16%3A50.772Z&end_hr=2023-10-13T15%3A16%3A50.772Z" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"f9835e00af7d43da5fa029132bb2227473df0f5dc80bf2cc1eb51ddb372f47d5\",\"type\":\"usage_timeseries\",\"attributes\":{\"product_family\":\"app-sec\",\"usage_type\":\"app_sec_host_count\",\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"region\":\"us\",\"timeseries\":[{\"timestamp\":\"2023-10-11T15:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T16:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T17:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T18:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T19:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T20:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T21:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T22:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T23:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T00:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T01:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T02:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T03:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T04:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T05:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T06:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T07:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T08:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T09:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T10:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T11:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T12:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T13:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T14:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T15:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T16:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T17:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T18:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T19:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T20:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T21:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T22:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T23:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T00:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T01:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T02:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T03:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T04:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T05:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T06:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T07:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T08:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T09:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T10:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T11:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T12:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T13:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T14:00:00+00:00\",\"value\":null}]}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 16 Oct 2023 15:16:50 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-lambda-traced-invocations-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-lambda-traced-invocations-returns-OK-response.frozen deleted file mode 100644 index 351339030..000000000 --- a/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-lambda-traced-invocations-returns-OK-response.frozen +++ /dev/null @@ -1 +0,0 @@ -2023-10-16T15:12:09.282Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-lambda-traced-invocations-returns-OK-response.json b/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-lambda-traced-invocations-returns-OK-response.json deleted file mode 100644 index e87f7a84d..000000000 --- a/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-lambda-traced-invocations-returns-OK-response.json +++ /dev/null @@ -1 +0,0 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/usage/lambda_traced_invocations?start_hr=2023-10-11T15%3A12%3A09.282Z&end_hr=2023-10-13T15%3A12%3A09.282Z"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"355647a75c3260178b469bb5f0d27751bcdf74c97170e13d55553bee12f9462f\",\"type\":\"usage_timeseries\",\"attributes\":{\"product_family\":\"lambda-traced-invocations\",\"usage_type\":\"lambda_traced_invocations_count\",\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"region\":\"us\",\"timeseries\":[{\"timestamp\":\"2023-10-11T15:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T16:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T17:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T18:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T19:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T20:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T21:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T22:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T23:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T00:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T01:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T02:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T03:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T04:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T05:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T06:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T07:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T08:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T09:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T10:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T11:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T12:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T13:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T14:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T15:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T16:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T17:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T18:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T19:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T20:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T21:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T22:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T23:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T00:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T01:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T02:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T03:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T04:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T05:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T06:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T07:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T08:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T09:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T10:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T11:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T12:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T13:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T14:00:00+00:00\",\"value\":null}]}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 16 Oct 2023 15:12:09 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-observability-pipelines-returns-OK-response.json b/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-observability-pipelines-returns-OK-response.json index 2fffbe19f..a4cb56e24 100644 --- a/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-observability-pipelines-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/usage_metering/Get-hourly-usage-for-observability-pipelines-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/usage/observability_pipelines?start_hr=2023-10-11T15%3A14%3A35.114Z&end_hr=2023-10-13T15%3A14%3A35.114Z"}, "response": {"body": {"string": "{\"data\":[{\"id\":\"b2fd311762e6a3cf23ce2e3dbd80e786a13193c6b28f01b296042c0e2f1264f9\",\"type\":\"usage_timeseries\",\"attributes\":{\"product_family\":\"observability-pipelines\",\"usage_type\":\"observability_pipelines_bytes_processed\",\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"region\":\"us\",\"timeseries\":[{\"timestamp\":\"2023-10-11T15:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T16:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T17:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T18:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T19:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T20:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T21:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T22:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T23:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T00:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T01:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T02:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T03:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T04:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T05:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T06:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T07:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T08:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T09:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T10:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T11:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T12:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T13:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T14:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T15:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T16:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T17:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T18:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T19:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T20:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T21:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T22:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T23:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T00:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T01:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T02:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T03:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T04:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T05:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T06:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T07:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T08:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T09:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T10:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T11:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T12:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T13:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T14:00:00+00:00\",\"value\":null}]}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 16 Oct 2023 15:14:35 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/usage/observability_pipelines?start_hr=2023-10-11T15%3A14%3A35.114Z&end_hr=2023-10-13T15%3A14%3A35.114Z" + }, + "response": { + "body": { + "string": "{\"data\":[{\"id\":\"b2fd311762e6a3cf23ce2e3dbd80e786a13193c6b28f01b296042c0e2f1264f9\",\"type\":\"usage_timeseries\",\"attributes\":{\"product_family\":\"observability-pipelines\",\"usage_type\":\"observability_pipelines_bytes_processed\",\"org_name\":\"DD Integration Tests (321813)\",\"public_id\":\"fasjyydbcgwwc2uc\",\"region\":\"us\",\"timeseries\":[{\"timestamp\":\"2023-10-11T15:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T16:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T17:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T18:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T19:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T20:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T21:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T22:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-11T23:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T00:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T01:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T02:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T03:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T04:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T05:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T06:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T07:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T08:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T09:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T10:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T11:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T12:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T13:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T14:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T15:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T16:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T17:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T18:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T19:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T20:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T21:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T22:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-12T23:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T00:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T01:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T02:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T03:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T04:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T05:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T06:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T07:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T08:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T09:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T10:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T11:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T12:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T13:00:00+00:00\",\"value\":null},{\"timestamp\":\"2023-10-13T14:00:00+00:00\",\"value\":null}]}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 16 Oct 2023 15:14:35 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/usage_metering/Get-projected-cost-across-your-account-returns-OK-response.json b/tests/scenarios/cassettes/v2/usage_metering/Get-projected-cost-across-your-account-returns-OK-response.json index fedba6b0d..367a6c6a3 100644 --- a/tests/scenarios/cassettes/v2/usage_metering/Get-projected-cost-across-your-account-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/usage_metering/Get-projected-cost-across-your-account-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/usage/projected_cost?view=sub-org"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"projected_cost\",\"id\":\"0e394fce15395fc02ab31e9968df0271e4b290e5647f44a56a47c91a03220f2d\",\"attributes\":{\"org_name\":\"Datadog \\u308c\\u304a \\ud83c\\udf7b\\u2600\\ufe0f\\ud83d\\ude0e\\ud83c\\udfd6\\ufe0f \\u30c7\\u30fc\\u30bf\\u30c9\\u30c3\\u30b0\",\"public_id\":\"yB5yjZ\",\"region\":\"us\",\"projected_total_cost\":270247170,\"date\":\"2023-11-30T00:00:00Z\",\"charges\":[{\"product_name\":\"apm_host\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"apm_host\",\"charge_type\":\"projected_on_demand\",\"cost\":3621671.999987},{\"product_name\":\"apm_host\",\"charge_type\":\"total\",\"cost\":3621671.999987},{\"product_name\":\"apm_trace_search\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"apm_trace_search\",\"charge_type\":\"projected_on_demand\",\"cost\":3478141.42732},{\"product_name\":\"apm_trace_search\",\"charge_type\":\"total\",\"cost\":3478141.42732},{\"product_name\":\"application_security_host\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"application_security_host\",\"charge_type\":\"projected_on_demand\",\"cost\":80748},{\"product_name\":\"application_security_host\",\"charge_type\":\"total\",\"cost\":80748},{\"product_name\":\"application_vulnerability_management_oss_host\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"application_vulnerability_management_oss_host\",\"charge_type\":\"projected_on_demand\",\"cost\":261075.000001},{\"product_name\":\"application_vulnerability_management_oss_host\",\"charge_type\":\"total\",\"cost\":261075.000001},{\"product_name\":\"audit_trail\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"audit_trail\",\"charge_type\":\"projected_on_demand\",\"cost\":7871276.838406},{\"product_name\":\"audit_trail\",\"charge_type\":\"total\",\"cost\":7871276.838406},{\"product_name\":\"ci_pipeline\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"ci_pipeline\",\"charge_type\":\"projected_on_demand\",\"cost\":30348},{\"product_name\":\"ci_pipeline\",\"charge_type\":\"total\",\"cost\":30348},{\"product_name\":\"ci_pipeline_indexed_spans\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"ci_pipeline_indexed_spans\",\"charge_type\":\"projected_on_demand\",\"cost\":0},{\"product_name\":\"ci_pipeline_indexed_spans\",\"charge_type\":\"total\",\"cost\":0},{\"product_name\":\"ci_test_indexed_spans\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"ci_test_indexed_spans\",\"charge_type\":\"projected_on_demand\",\"cost\":11280.06966},{\"product_name\":\"ci_test_indexed_spans\",\"charge_type\":\"total\",\"cost\":11280.06966},{\"product_name\":\"ci_testing\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"ci_testing\",\"charge_type\":\"projected_on_demand\",\"cost\":46458},{\"product_name\":\"ci_testing\",\"charge_type\":\"total\",\"cost\":46458},{\"product_name\":\"cloud_cost_management\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"cloud_cost_management\",\"charge_type\":\"projected_on_demand\",\"cost\":911206.8},{\"product_name\":\"cloud_cost_management\",\"charge_type\":\"total\",\"cost\":911206.8},{\"product_name\":\"cspm_container\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"cspm_container\",\"charge_type\":\"projected_on_demand\",\"cost\":975491.947438},{\"product_name\":\"cspm_container\",\"charge_type\":\"total\",\"cost\":975491.947438},{\"product_name\":\"cspm_host\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"cspm_host\",\"charge_type\":\"projected_on_demand\",\"cost\":939042.000004},{\"product_name\":\"cspm_host\",\"charge_type\":\"total\",\"cost\":939042.000004},{\"product_name\":\"custom_event\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"custom_event\",\"charge_type\":\"projected_on_demand\",\"cost\":0},{\"product_name\":\"custom_event\",\"charge_type\":\"total\",\"cost\":0},{\"product_name\":\"cws_container\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"cws_container\",\"charge_type\":\"projected_on_demand\",\"cost\":2046666.667701},{\"product_name\":\"cws_container\",\"charge_type\":\"total\",\"cost\":2046666.667701},{\"product_name\":\"cws_host\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"cws_host\",\"charge_type\":\"projected_on_demand\",\"cost\":1650114.000002},{\"product_name\":\"cws_host\",\"charge_type\":\"total\",\"cost\":1650114.000002},{\"product_name\":\"data_stream_monitoring\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"data_stream_monitoring\",\"charge_type\":\"projected_on_demand\",\"cost\":127476},{\"product_name\":\"data_stream_monitoring\",\"charge_type\":\"total\",\"cost\":127476},{\"product_name\":\"dbm_host\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"dbm_host\",\"charge_type\":\"projected_on_demand\",\"cost\":85680},{\"product_name\":\"dbm_host\",\"charge_type\":\"total\",\"cost\":85680},{\"product_name\":\"dbm_normalized_queries\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"dbm_normalized_queries\",\"charge_type\":\"projected_on_demand\",\"cost\":17961.482743},{\"product_name\":\"dbm_normalized_queries\",\"charge_type\":\"total\",\"cost\":17961.482743},{\"product_name\":\"fargate_container\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"fargate_container\",\"charge_type\":\"projected_on_demand\",\"cost\":12.6},{\"product_name\":\"fargate_container\",\"charge_type\":\"total\",\"cost\":12.6},{\"product_name\":\"infra_container_excl_agent\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"infra_container_excl_agent\",\"charge_type\":\"projected_on_demand\",\"cost\":983432.229551},{\"product_name\":\"infra_container_excl_agent\",\"charge_type\":\"total\",\"cost\":983432.229551},{\"product_name\":\"infra_host\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"infra_host\",\"charge_type\":\"projected_on_demand\",\"cost\":1948589.999991},{\"product_name\":\"infra_host\",\"charge_type\":\"total\",\"cost\":1948589.999991},{\"product_name\":\"ingested_spans\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"ingested_spans\",\"charge_type\":\"projected_on_demand\",\"cost\":763395.896172},{\"product_name\":\"ingested_spans\",\"charge_type\":\"total\",\"cost\":763395.896172},{\"product_name\":\"ingested_timeseries\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"ingested_timeseries\",\"charge_type\":\"projected_on_demand\",\"cost\":256290.95456},{\"product_name\":\"ingested_timeseries\",\"charge_type\":\"total\",\"cost\":256290.95456},{\"product_name\":\"iot\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"iot\",\"charge_type\":\"projected_on_demand\",\"cost\":86.4},{\"product_name\":\"iot\",\"charge_type\":\"total\",\"cost\":86.4},{\"product_name\":\"logs_forwarding\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"logs_forwarding\",\"charge_type\":\"projected_on_demand\",\"cost\":34.75},{\"product_name\":\"logs_forwarding\",\"charge_type\":\"total\",\"cost\":34.75},{\"product_name\":\"logs_indexed_15day\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"logs_indexed_15day\",\"charge_type\":\"projected_on_demand\",\"cost\":7970506.190932},{\"product_name\":\"logs_indexed_15day\",\"charge_type\":\"total\",\"cost\":7970506.190932},{\"product_name\":\"logs_indexed_180day\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"logs_indexed_180day\",\"charge_type\":\"projected_on_demand\",\"cost\":2237.11},{\"product_name\":\"logs_indexed_180day\",\"charge_type\":\"total\",\"cost\":2237.11},{\"product_name\":\"logs_indexed_30day\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"logs_indexed_30day\",\"charge_type\":\"projected_on_demand\",\"cost\":379727.51},{\"product_name\":\"logs_indexed_30day\",\"charge_type\":\"total\",\"cost\":379727.51},{\"product_name\":\"logs_indexed_3day\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"logs_indexed_3day\",\"charge_type\":\"projected_on_demand\",\"cost\":1212.144311},{\"product_name\":\"logs_indexed_3day\",\"charge_type\":\"total\",\"cost\":1212.144311},{\"product_name\":\"logs_indexed_60day\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"logs_indexed_60day\",\"charge_type\":\"projected_on_demand\",\"cost\":134101.664192},{\"product_name\":\"logs_indexed_60day\",\"charge_type\":\"total\",\"cost\":134101.664192},{\"product_name\":\"logs_indexed_7day\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"logs_indexed_7day\",\"charge_type\":\"projected_on_demand\",\"cost\":278030.21},{\"product_name\":\"logs_indexed_7day\",\"charge_type\":\"total\",\"cost\":278030.21},{\"product_name\":\"logs_indexed_90day\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"logs_indexed_90day\",\"charge_type\":\"projected_on_demand\",\"cost\":5078.064104},{\"product_name\":\"logs_indexed_90day\",\"charge_type\":\"total\",\"cost\":5078.064104},{\"product_name\":\"logs_indexed_custom_retention\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"logs_indexed_custom_retention\",\"charge_type\":\"projected_on_demand\",\"cost\":1665269.902158},{\"product_name\":\"logs_indexed_custom_retention\",\"charge_type\":\"total\",\"cost\":1665269.902158},{\"product_name\":\"logs_ingested\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"logs_ingested\",\"charge_type\":\"projected_on_demand\",\"cost\":2023915.700005},{\"product_name\":\"logs_ingested\",\"charge_type\":\"total\",\"cost\":2023915.700005},{\"product_name\":\"network_device\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"network_device\",\"charge_type\":\"projected_on_demand\",\"cost\":153},{\"product_name\":\"network_device\",\"charge_type\":\"total\",\"cost\":153},{\"product_name\":\"npm_host\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"npm_host\",\"charge_type\":\"projected_on_demand\",\"cost\":668642.399999},{\"product_name\":\"npm_host\",\"charge_type\":\"total\",\"cost\":668642.399999},{\"product_name\":\"observability_pipeline\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"observability_pipeline\",\"charge_type\":\"projected_on_demand\",\"cost\":1.68},{\"product_name\":\"observability_pipeline\",\"charge_type\":\"total\",\"cost\":1.68},{\"product_name\":\"online_archive\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"online_archive\",\"charge_type\":\"projected_on_demand\",\"cost\":11650663.48518},{\"product_name\":\"online_archive\",\"charge_type\":\"total\",\"cost\":11650663.48518},{\"product_name\":\"prof_container\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"prof_container\",\"charge_type\":\"projected_on_demand\",\"cost\":0},{\"product_name\":\"prof_container\",\"charge_type\":\"total\",\"cost\":0},{\"product_name\":\"prof_host\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"prof_host\",\"charge_type\":\"projected_on_demand\",\"cost\":2064365.000008},{\"product_name\":\"prof_host\",\"charge_type\":\"total\",\"cost\":2064365.000008},{\"product_name\":\"rum_lite\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"rum_lite\",\"charge_type\":\"projected_on_demand\",\"cost\":1945.666125},{\"product_name\":\"rum_lite\",\"charge_type\":\"total\",\"cost\":1945.666125},{\"product_name\":\"rum_replay\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"rum_replay\",\"charge_type\":\"projected_on_demand\",\"cost\":47975.876199},{\"product_name\":\"rum_replay\",\"charge_type\":\"total\",\"cost\":47975.876199},{\"product_name\":\"sensitive_data_scanner\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"sensitive_data_scanner\",\"charge_type\":\"projected_on_demand\",\"cost\":19394406.000091},{\"product_name\":\"sensitive_data_scanner\",\"charge_type\":\"total\",\"cost\":19394406.000091},{\"product_name\":\"serverless_apm\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"serverless_apm\",\"charge_type\":\"projected_on_demand\",\"cost\":565.638894},{\"product_name\":\"serverless_apm\",\"charge_type\":\"total\",\"cost\":565.638894},{\"product_name\":\"serverless_infra\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"serverless_infra\",\"charge_type\":\"projected_on_demand\",\"cost\":1656},{\"product_name\":\"serverless_infra\",\"charge_type\":\"total\",\"cost\":1656},{\"product_name\":\"siem\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"siem\",\"charge_type\":\"projected_on_demand\",\"cost\":6063219.000025},{\"product_name\":\"siem\",\"charge_type\":\"total\",\"cost\":6063219.000025},{\"product_name\":\"synthetics_api_tests\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"synthetics_api_tests\",\"charge_type\":\"projected_on_demand\",\"cost\":2165315.836614},{\"product_name\":\"synthetics_api_tests\",\"charge_type\":\"total\",\"cost\":2165315.836614},{\"product_name\":\"synthetics_browser_checks\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"synthetics_browser_checks\",\"charge_type\":\"projected_on_demand\",\"cost\":700419.437998},{\"product_name\":\"synthetics_browser_checks\",\"charge_type\":\"total\",\"cost\":700419.437998},{\"product_name\":\"timeseries\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"timeseries\",\"charge_type\":\"projected_on_demand\",\"cost\":188889904.951552},{\"product_name\":\"timeseries\",\"charge_type\":\"total\",\"cost\":188889904.951552},{\"product_name\":\"usm_only_no_charge\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"usm_only_no_charge\",\"charge_type\":\"projected_on_demand\",\"cost\":0},{\"product_name\":\"usm_only_no_charge\",\"charge_type\":\"total\",\"cost\":0},{\"product_name\":\"workflow_execution\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"workflow_execution\",\"charge_type\":\"projected_on_demand\",\"cost\":31377.92},{\"product_name\":\"workflow_execution\",\"charge_type\":\"total\",\"cost\":31377.92}]}}]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 16 Nov 2023 09:28:12 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/usage/projected_cost?view=sub-org" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"projected_cost\",\"id\":\"0e394fce15395fc02ab31e9968df0271e4b290e5647f44a56a47c91a03220f2d\",\"attributes\":{\"org_name\":\"Datadog \\u308c\\u304a \\ud83c\\udf7b\\u2600\\ufe0f\\ud83d\\ude0e\\ud83c\\udfd6\\ufe0f \\u30c7\\u30fc\\u30bf\\u30c9\\u30c3\\u30b0\",\"public_id\":\"yB5yjZ\",\"region\":\"us\",\"projected_total_cost\":270247170,\"date\":\"2023-11-30T00:00:00Z\",\"charges\":[{\"product_name\":\"apm_host\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"apm_host\",\"charge_type\":\"projected_on_demand\",\"cost\":3621671.999987},{\"product_name\":\"apm_host\",\"charge_type\":\"total\",\"cost\":3621671.999987},{\"product_name\":\"apm_trace_search\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"apm_trace_search\",\"charge_type\":\"projected_on_demand\",\"cost\":3478141.42732},{\"product_name\":\"apm_trace_search\",\"charge_type\":\"total\",\"cost\":3478141.42732},{\"product_name\":\"application_security_host\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"application_security_host\",\"charge_type\":\"projected_on_demand\",\"cost\":80748},{\"product_name\":\"application_security_host\",\"charge_type\":\"total\",\"cost\":80748},{\"product_name\":\"application_vulnerability_management_oss_host\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"application_vulnerability_management_oss_host\",\"charge_type\":\"projected_on_demand\",\"cost\":261075.000001},{\"product_name\":\"application_vulnerability_management_oss_host\",\"charge_type\":\"total\",\"cost\":261075.000001},{\"product_name\":\"audit_trail\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"audit_trail\",\"charge_type\":\"projected_on_demand\",\"cost\":7871276.838406},{\"product_name\":\"audit_trail\",\"charge_type\":\"total\",\"cost\":7871276.838406},{\"product_name\":\"ci_pipeline\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"ci_pipeline\",\"charge_type\":\"projected_on_demand\",\"cost\":30348},{\"product_name\":\"ci_pipeline\",\"charge_type\":\"total\",\"cost\":30348},{\"product_name\":\"ci_pipeline_indexed_spans\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"ci_pipeline_indexed_spans\",\"charge_type\":\"projected_on_demand\",\"cost\":0},{\"product_name\":\"ci_pipeline_indexed_spans\",\"charge_type\":\"total\",\"cost\":0},{\"product_name\":\"ci_test_indexed_spans\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"ci_test_indexed_spans\",\"charge_type\":\"projected_on_demand\",\"cost\":11280.06966},{\"product_name\":\"ci_test_indexed_spans\",\"charge_type\":\"total\",\"cost\":11280.06966},{\"product_name\":\"ci_testing\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"ci_testing\",\"charge_type\":\"projected_on_demand\",\"cost\":46458},{\"product_name\":\"ci_testing\",\"charge_type\":\"total\",\"cost\":46458},{\"product_name\":\"cloud_cost_management\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"cloud_cost_management\",\"charge_type\":\"projected_on_demand\",\"cost\":911206.8},{\"product_name\":\"cloud_cost_management\",\"charge_type\":\"total\",\"cost\":911206.8},{\"product_name\":\"cspm_container\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"cspm_container\",\"charge_type\":\"projected_on_demand\",\"cost\":975491.947438},{\"product_name\":\"cspm_container\",\"charge_type\":\"total\",\"cost\":975491.947438},{\"product_name\":\"cspm_host\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"cspm_host\",\"charge_type\":\"projected_on_demand\",\"cost\":939042.000004},{\"product_name\":\"cspm_host\",\"charge_type\":\"total\",\"cost\":939042.000004},{\"product_name\":\"custom_event\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"custom_event\",\"charge_type\":\"projected_on_demand\",\"cost\":0},{\"product_name\":\"custom_event\",\"charge_type\":\"total\",\"cost\":0},{\"product_name\":\"cws_container\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"cws_container\",\"charge_type\":\"projected_on_demand\",\"cost\":2046666.667701},{\"product_name\":\"cws_container\",\"charge_type\":\"total\",\"cost\":2046666.667701},{\"product_name\":\"cws_host\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"cws_host\",\"charge_type\":\"projected_on_demand\",\"cost\":1650114.000002},{\"product_name\":\"cws_host\",\"charge_type\":\"total\",\"cost\":1650114.000002},{\"product_name\":\"data_stream_monitoring\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"data_stream_monitoring\",\"charge_type\":\"projected_on_demand\",\"cost\":127476},{\"product_name\":\"data_stream_monitoring\",\"charge_type\":\"total\",\"cost\":127476},{\"product_name\":\"dbm_host\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"dbm_host\",\"charge_type\":\"projected_on_demand\",\"cost\":85680},{\"product_name\":\"dbm_host\",\"charge_type\":\"total\",\"cost\":85680},{\"product_name\":\"dbm_normalized_queries\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"dbm_normalized_queries\",\"charge_type\":\"projected_on_demand\",\"cost\":17961.482743},{\"product_name\":\"dbm_normalized_queries\",\"charge_type\":\"total\",\"cost\":17961.482743},{\"product_name\":\"fargate_container\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"fargate_container\",\"charge_type\":\"projected_on_demand\",\"cost\":12.6},{\"product_name\":\"fargate_container\",\"charge_type\":\"total\",\"cost\":12.6},{\"product_name\":\"infra_container_excl_agent\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"infra_container_excl_agent\",\"charge_type\":\"projected_on_demand\",\"cost\":983432.229551},{\"product_name\":\"infra_container_excl_agent\",\"charge_type\":\"total\",\"cost\":983432.229551},{\"product_name\":\"infra_host\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"infra_host\",\"charge_type\":\"projected_on_demand\",\"cost\":1948589.999991},{\"product_name\":\"infra_host\",\"charge_type\":\"total\",\"cost\":1948589.999991},{\"product_name\":\"ingested_spans\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"ingested_spans\",\"charge_type\":\"projected_on_demand\",\"cost\":763395.896172},{\"product_name\":\"ingested_spans\",\"charge_type\":\"total\",\"cost\":763395.896172},{\"product_name\":\"ingested_timeseries\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"ingested_timeseries\",\"charge_type\":\"projected_on_demand\",\"cost\":256290.95456},{\"product_name\":\"ingested_timeseries\",\"charge_type\":\"total\",\"cost\":256290.95456},{\"product_name\":\"iot\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"iot\",\"charge_type\":\"projected_on_demand\",\"cost\":86.4},{\"product_name\":\"iot\",\"charge_type\":\"total\",\"cost\":86.4},{\"product_name\":\"logs_forwarding\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"logs_forwarding\",\"charge_type\":\"projected_on_demand\",\"cost\":34.75},{\"product_name\":\"logs_forwarding\",\"charge_type\":\"total\",\"cost\":34.75},{\"product_name\":\"logs_indexed_15day\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"logs_indexed_15day\",\"charge_type\":\"projected_on_demand\",\"cost\":7970506.190932},{\"product_name\":\"logs_indexed_15day\",\"charge_type\":\"total\",\"cost\":7970506.190932},{\"product_name\":\"logs_indexed_180day\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"logs_indexed_180day\",\"charge_type\":\"projected_on_demand\",\"cost\":2237.11},{\"product_name\":\"logs_indexed_180day\",\"charge_type\":\"total\",\"cost\":2237.11},{\"product_name\":\"logs_indexed_30day\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"logs_indexed_30day\",\"charge_type\":\"projected_on_demand\",\"cost\":379727.51},{\"product_name\":\"logs_indexed_30day\",\"charge_type\":\"total\",\"cost\":379727.51},{\"product_name\":\"logs_indexed_3day\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"logs_indexed_3day\",\"charge_type\":\"projected_on_demand\",\"cost\":1212.144311},{\"product_name\":\"logs_indexed_3day\",\"charge_type\":\"total\",\"cost\":1212.144311},{\"product_name\":\"logs_indexed_60day\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"logs_indexed_60day\",\"charge_type\":\"projected_on_demand\",\"cost\":134101.664192},{\"product_name\":\"logs_indexed_60day\",\"charge_type\":\"total\",\"cost\":134101.664192},{\"product_name\":\"logs_indexed_7day\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"logs_indexed_7day\",\"charge_type\":\"projected_on_demand\",\"cost\":278030.21},{\"product_name\":\"logs_indexed_7day\",\"charge_type\":\"total\",\"cost\":278030.21},{\"product_name\":\"logs_indexed_90day\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"logs_indexed_90day\",\"charge_type\":\"projected_on_demand\",\"cost\":5078.064104},{\"product_name\":\"logs_indexed_90day\",\"charge_type\":\"total\",\"cost\":5078.064104},{\"product_name\":\"logs_indexed_custom_retention\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"logs_indexed_custom_retention\",\"charge_type\":\"projected_on_demand\",\"cost\":1665269.902158},{\"product_name\":\"logs_indexed_custom_retention\",\"charge_type\":\"total\",\"cost\":1665269.902158},{\"product_name\":\"logs_ingested\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"logs_ingested\",\"charge_type\":\"projected_on_demand\",\"cost\":2023915.700005},{\"product_name\":\"logs_ingested\",\"charge_type\":\"total\",\"cost\":2023915.700005},{\"product_name\":\"network_device\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"network_device\",\"charge_type\":\"projected_on_demand\",\"cost\":153},{\"product_name\":\"network_device\",\"charge_type\":\"total\",\"cost\":153},{\"product_name\":\"npm_host\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"npm_host\",\"charge_type\":\"projected_on_demand\",\"cost\":668642.399999},{\"product_name\":\"npm_host\",\"charge_type\":\"total\",\"cost\":668642.399999},{\"product_name\":\"observability_pipeline\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"observability_pipeline\",\"charge_type\":\"projected_on_demand\",\"cost\":1.68},{\"product_name\":\"observability_pipeline\",\"charge_type\":\"total\",\"cost\":1.68},{\"product_name\":\"online_archive\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"online_archive\",\"charge_type\":\"projected_on_demand\",\"cost\":11650663.48518},{\"product_name\":\"online_archive\",\"charge_type\":\"total\",\"cost\":11650663.48518},{\"product_name\":\"prof_container\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"prof_container\",\"charge_type\":\"projected_on_demand\",\"cost\":0},{\"product_name\":\"prof_container\",\"charge_type\":\"total\",\"cost\":0},{\"product_name\":\"prof_host\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"prof_host\",\"charge_type\":\"projected_on_demand\",\"cost\":2064365.000008},{\"product_name\":\"prof_host\",\"charge_type\":\"total\",\"cost\":2064365.000008},{\"product_name\":\"rum_lite\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"rum_lite\",\"charge_type\":\"projected_on_demand\",\"cost\":1945.666125},{\"product_name\":\"rum_lite\",\"charge_type\":\"total\",\"cost\":1945.666125},{\"product_name\":\"rum_replay\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"rum_replay\",\"charge_type\":\"projected_on_demand\",\"cost\":47975.876199},{\"product_name\":\"rum_replay\",\"charge_type\":\"total\",\"cost\":47975.876199},{\"product_name\":\"sensitive_data_scanner\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"sensitive_data_scanner\",\"charge_type\":\"projected_on_demand\",\"cost\":19394406.000091},{\"product_name\":\"sensitive_data_scanner\",\"charge_type\":\"total\",\"cost\":19394406.000091},{\"product_name\":\"serverless_apm\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"serverless_apm\",\"charge_type\":\"projected_on_demand\",\"cost\":565.638894},{\"product_name\":\"serverless_apm\",\"charge_type\":\"total\",\"cost\":565.638894},{\"product_name\":\"serverless_infra\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"serverless_infra\",\"charge_type\":\"projected_on_demand\",\"cost\":1656},{\"product_name\":\"serverless_infra\",\"charge_type\":\"total\",\"cost\":1656},{\"product_name\":\"siem\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"siem\",\"charge_type\":\"projected_on_demand\",\"cost\":6063219.000025},{\"product_name\":\"siem\",\"charge_type\":\"total\",\"cost\":6063219.000025},{\"product_name\":\"synthetics_api_tests\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"synthetics_api_tests\",\"charge_type\":\"projected_on_demand\",\"cost\":2165315.836614},{\"product_name\":\"synthetics_api_tests\",\"charge_type\":\"total\",\"cost\":2165315.836614},{\"product_name\":\"synthetics_browser_checks\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"synthetics_browser_checks\",\"charge_type\":\"projected_on_demand\",\"cost\":700419.437998},{\"product_name\":\"synthetics_browser_checks\",\"charge_type\":\"total\",\"cost\":700419.437998},{\"product_name\":\"timeseries\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"timeseries\",\"charge_type\":\"projected_on_demand\",\"cost\":188889904.951552},{\"product_name\":\"timeseries\",\"charge_type\":\"total\",\"cost\":188889904.951552},{\"product_name\":\"usm_only_no_charge\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"usm_only_no_charge\",\"charge_type\":\"projected_on_demand\",\"cost\":0},{\"product_name\":\"usm_only_no_charge\",\"charge_type\":\"total\",\"cost\":0},{\"product_name\":\"workflow_execution\",\"charge_type\":\"projected_committed\",\"cost\":0},{\"product_name\":\"workflow_execution\",\"charge_type\":\"projected_on_demand\",\"cost\":31377.92},{\"product_name\":\"workflow_execution\",\"charge_type\":\"total\",\"cost\":31377.92}]}}]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 16 Nov 2023 09:28:12 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/usage_metering/GetEstimatedCostByOrg-with-both-start-month-and-start-date-returns-Bad-Request-response.json b/tests/scenarios/cassettes/v2/usage_metering/GetEstimatedCostByOrg-with-both-start-month-and-start-date-returns-Bad-Request-response.json index 01aacdb2d..30bc30528 100644 --- a/tests/scenarios/cassettes/v2/usage_metering/GetEstimatedCostByOrg-with-both-start-month-and-start-date-returns-Bad-Request-response.json +++ b/tests/scenarios/cassettes/v2/usage_metering/GetEstimatedCostByOrg-with-both-start-month-and-start-date-returns-Bad-Request-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/usage/estimated_cost?view=sub-org&start_month=2022-11-03T21%3A08%3A41.229Z&start_date=2022-10-31T21%3A08%3A41.229Z"}, "response": {"body": {"string": "{\"errors\":[\"API called with non-parent org keys. Data is only available at the root level org\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 400, "message": "Bad Request"}}, "recorded_at": "Thu, 03 Nov 2022 21:08:41 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/usage/estimated_cost?view=sub-org&start_month=2022-11-03T21%3A08%3A41.229Z&start_date=2022-10-31T21%3A08%3A41.229Z" + }, + "response": { + "body": { + "string": "{\"errors\":[\"API called with non-parent org keys. Data is only available at the root level org\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 400, + "message": "Bad Request" + } + }, + "recorded_at": "Thu, 03 Nov 2022 21:08:41 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/usage_metering/GetEstimatedCostByOrg-with-start-date-returns-OK-response.json b/tests/scenarios/cassettes/v2/usage_metering/GetEstimatedCostByOrg-with-start-date-returns-OK-response.json index 8cea2885d..794550cef 100644 --- a/tests/scenarios/cassettes/v2/usage_metering/GetEstimatedCostByOrg-with-start-date-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/usage_metering/GetEstimatedCostByOrg-with-start-date-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/usage/estimated_cost?start_date=2022-07-24T14%3A22%3A55.359Z&view=sub-org"}, "response": {"body": {"string": "{\"data\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 29 Jul 2022 14:22:55 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/usage/estimated_cost?start_date=2022-07-24T14%3A22%3A55.359Z&view=sub-org" + }, + "response": { + "body": { + "string": "{\"data\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 29 Jul 2022 14:22:55 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/usage_metering/GetEstimatedCostByOrg-with-start-month-returns-OK-response.json b/tests/scenarios/cassettes/v2/usage_metering/GetEstimatedCostByOrg-with-start-month-returns-OK-response.json index 3edbaae6e..26f1e4132 100644 --- a/tests/scenarios/cassettes/v2/usage_metering/GetEstimatedCostByOrg-with-start-month-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/usage_metering/GetEstimatedCostByOrg-with-start-month-returns-OK-response.json @@ -1 +1,33 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json;datetime-format=rfc3339"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/usage/estimated_cost?view=sub-org&start_month=2022-11-04T18%3A40%3A14.021Z"}, "response": {"body": {"string": "{\"data\":[]}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Fri, 04 Nov 2022 18:40:14 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json;datetime-format=rfc3339" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/usage/estimated_cost?view=sub-org&start_month=2022-11-04T18%3A40%3A14.021Z" + }, + "response": { + "body": { + "string": "{\"data\":[]}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Fri, 04 Nov 2022 18:40:14 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/users/Create-a-user-returns-OK-response.json b/tests/scenarios/cassettes/v2/users/Create-a-user-returns-OK-response.json index e7f18e0ad..be7344c43 100644 --- a/tests/scenarios/cassettes/v2/users/Create-a-user-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/users/Create-a-user-returns-OK-response.json @@ -1 +1,63 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"Test-Create_a_user_returns_OK_response-1652349215@datadoghq.com\",\"name\":\"Datadog API Client Python\"},\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/users"}, "response": {"body": {"string": "{\"data\":{\"type\":\"users\",\"id\":\"6409ce70-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Datadog API Client Python\",\"handle\":\"test-create_a_user_returns_ok_response-1652349215@datadoghq.com\",\"created_at\":\"2022-05-12T09:53:35.809381+00:00\",\"modified_at\":\"2022-05-12T09:53:35.827707+00:00\",\"email\":\"test-create_a_user_returns_ok_response-1652349215@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/ae2bdc16fa2261f6d4aec640077b332f?s=48&d=retro\",\"title\":null,\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:53:35 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/users/6409ce70-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:53:35 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"email\":\"Test-Create_a_user_returns_OK_response-1652349215@datadoghq.com\",\"name\":\"Datadog API Client Python\"},\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/users" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"users\",\"id\":\"6409ce70-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"Datadog API Client Python\",\"handle\":\"test-create_a_user_returns_ok_response-1652349215@datadoghq.com\",\"created_at\":\"2022-05-12T09:53:35.809381+00:00\",\"modified_at\":\"2022-05-12T09:53:35.827707+00:00\",\"email\":\"test-create_a_user_returns_ok_response-1652349215@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/ae2bdc16fa2261f6d4aec640077b332f?s=48&d=retro\",\"title\":null,\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:35 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/users/6409ce70-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:35 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/users/Disable-a-user-returns-OK-response.json b/tests/scenarios/cassettes/v2/users/Disable-a-user-returns-OK-response.json index 345ffe1dc..76129bd54 100644 --- a/tests/scenarios/cassettes/v2/users/Disable-a-user-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/users/Disable-a-user-returns-OK-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"Test-Disable_a_user_returns_OK_response-1652349216@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/users"}, "response": {"body": {"string": "{\"data\":{\"type\":\"users\",\"id\":\"649b7e06-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":null,\"handle\":\"test-disable_a_user_returns_ok_response-1652349216@datadoghq.com\",\"created_at\":\"2022-05-12T09:53:36.764381+00:00\",\"modified_at\":\"2022-05-12T09:53:36.851751+00:00\",\"email\":\"test-disable_a_user_returns_ok_response-1652349216@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/0be9a183f9c8c81ab435f271e21830c2?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:53:36 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/users/649b7e06-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:53:36 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/users/649b7e06-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "{\"errors\": [\"649b7e06-d1d9-11ec-ad3d-da7ad0900002 not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 12 May 2022 09:53:36 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"email\":\"Test-Disable_a_user_returns_OK_response-1652349216@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/users" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"users\",\"id\":\"649b7e06-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":null,\"handle\":\"test-disable_a_user_returns_ok_response-1652349216@datadoghq.com\",\"created_at\":\"2022-05-12T09:53:36.764381+00:00\",\"modified_at\":\"2022-05-12T09:53:36.851751+00:00\",\"email\":\"test-disable_a_user_returns_ok_response-1652349216@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/0be9a183f9c8c81ab435f271e21830c2?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:36 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/users/649b7e06-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:36 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/users/649b7e06-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "{\"errors\": [\"649b7e06-d1d9-11ec-ad3d-da7ad0900002 not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:36 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/users/Get-a-user-invitation-returns-OK-response.json b/tests/scenarios/cassettes/v2/users/Get-a-user-invitation-returns-OK-response.json index eb912cd66..4150b51d5 100644 --- a/tests/scenarios/cassettes/v2/users/Get-a-user-invitation-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/users/Get-a-user-invitation-returns-OK-response.json @@ -1 +1,125 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"Test-Get_a_user_invitation_returns_OK_response-1652349217@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/users"}, "response": {"body": {"string": "{\"data\":{\"type\":\"users\",\"id\":\"657f03d8-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":null,\"handle\":\"test-get_a_user_invitation_returns_ok_response-1652349217@datadoghq.com\",\"created_at\":\"2022-05-12T09:53:38.255148+00:00\",\"modified_at\":\"2022-05-12T09:53:38.307302+00:00\",\"email\":\"test-get_a_user_invitation_returns_ok_response-1652349217@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/dab87213dd8f46847259f2c1bccca22f?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:53:37 GMT"}, {"request": {"body": {"string": "{\"data\":[{\"relationships\":{\"user\":{\"data\":{\"id\":\"657f03d8-d1d9-11ec-ad3d-da7ad0900002\",\"type\":\"users\"}}},\"type\":\"user_invitations\"}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/user_invitations"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"user_invitations\",\"id\":\"65ef03ae-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"uuid\":\"65ef03ae-d1d9-11ec-ad3d-da7ad0900002\",\"login_method\":null,\"invite_type\":\"openid_invite\",\"created_at\":\"2022-05-12T09:53:38.990217+00:00\",\"expires_at\":\"2022-05-14T09:53:38.846030+00:00\"},\"relationships\":{\"user\":{\"data\":{\"type\":\"users\",\"id\":\"657f03d8-d1d9-11ec-ad3d-da7ad0900002\"}}}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:53:37 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/user_invitations/65ef03ae-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "{\"data\":{\"type\":\"user_invitations\",\"id\":\"65ef03ae-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"uuid\":\"65ef03ae-d1d9-11ec-ad3d-da7ad0900002\",\"login_method\":null,\"invite_type\":\"openid_invite\",\"created_at\":\"2022-05-12T09:53:38.990217+00:00\",\"expires_at\":\"2022-05-14T09:53:38.846030+00:00\"},\"relationships\":{\"user\":{\"data\":{\"type\":\"users\",\"id\":\"657f03d8-d1d9-11ec-ad3d-da7ad0900002\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:53:37 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/users/657f03d8-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:53:37 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"email\":\"Test-Get_a_user_invitation_returns_OK_response-1652349217@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/users" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"users\",\"id\":\"657f03d8-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":null,\"handle\":\"test-get_a_user_invitation_returns_ok_response-1652349217@datadoghq.com\",\"created_at\":\"2022-05-12T09:53:38.255148+00:00\",\"modified_at\":\"2022-05-12T09:53:38.307302+00:00\",\"email\":\"test-get_a_user_invitation_returns_ok_response-1652349217@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/dab87213dd8f46847259f2c1bccca22f?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:37 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":[{\"relationships\":{\"user\":{\"data\":{\"id\":\"657f03d8-d1d9-11ec-ad3d-da7ad0900002\",\"type\":\"users\"}}},\"type\":\"user_invitations\"}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/user_invitations" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"user_invitations\",\"id\":\"65ef03ae-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"uuid\":\"65ef03ae-d1d9-11ec-ad3d-da7ad0900002\",\"login_method\":null,\"invite_type\":\"openid_invite\",\"created_at\":\"2022-05-12T09:53:38.990217+00:00\",\"expires_at\":\"2022-05-14T09:53:38.846030+00:00\"},\"relationships\":{\"user\":{\"data\":{\"type\":\"users\",\"id\":\"657f03d8-d1d9-11ec-ad3d-da7ad0900002\"}}}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:37 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/user_invitations/65ef03ae-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"user_invitations\",\"id\":\"65ef03ae-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"uuid\":\"65ef03ae-d1d9-11ec-ad3d-da7ad0900002\",\"login_method\":null,\"invite_type\":\"openid_invite\",\"created_at\":\"2022-05-12T09:53:38.990217+00:00\",\"expires_at\":\"2022-05-14T09:53:38.846030+00:00\"},\"relationships\":{\"user\":{\"data\":{\"type\":\"users\",\"id\":\"657f03d8-d1d9-11ec-ad3d-da7ad0900002\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:37 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/users/657f03d8-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:37 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/users/Get-a-user-permissions-returns-OK-response.json b/tests/scenarios/cassettes/v2/users/Get-a-user-permissions-returns-OK-response.json index 2b4048a38..f00da3f3e 100644 --- a/tests/scenarios/cassettes/v2/users/Get-a-user-permissions-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/users/Get-a-user-permissions-returns-OK-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"Test-Get_a_user_permissions_returns_OK_response-1652349220@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/users"}, "response": {"body": {"string": "{\"data\":{\"type\":\"users\",\"id\":\"66d13aa8-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":null,\"handle\":\"test-get_a_user_permissions_returns_ok_response-1652349220@datadoghq.com\",\"created_at\":\"2022-05-12T09:53:40.471329+00:00\",\"modified_at\":\"2022-05-12T09:53:40.525782+00:00\",\"email\":\"test-get_a_user_permissions_returns_ok_response-1652349220@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/5988cbe0d6d2d298191b4d964ddf15e2?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:53:40 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/users/66d13aa8-d1d9-11ec-ad3d-da7ad0900002/permissions"}, "response": {"body": {"string": "{\"data\":[]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:53:40 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/users/66d13aa8-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:53:40 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"email\":\"Test-Get_a_user_permissions_returns_OK_response-1652349220@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/users" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"users\",\"id\":\"66d13aa8-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":null,\"handle\":\"test-get_a_user_permissions_returns_ok_response-1652349220@datadoghq.com\",\"created_at\":\"2022-05-12T09:53:40.471329+00:00\",\"modified_at\":\"2022-05-12T09:53:40.525782+00:00\",\"email\":\"test-get_a_user_permissions_returns_ok_response-1652349220@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/5988cbe0d6d2d298191b4d964ddf15e2?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:40 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/users/66d13aa8-d1d9-11ec-ad3d-da7ad0900002/permissions" + }, + "response": { + "body": { + "string": "{\"data\":[]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:40 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/users/66d13aa8-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:40 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/users/Get-user-details-returns-OK-response.json b/tests/scenarios/cassettes/v2/users/Get-user-details-returns-OK-response.json index 83310ee7b..b827aa004 100644 --- a/tests/scenarios/cassettes/v2/users/Get-user-details-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/users/Get-user-details-returns-OK-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"Test-Get_user_details_returns_OK_response-1697467605@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/users"}, "response": {"body": {"string": "{\"data\":{\"type\":\"users\",\"id\":\"d3edd11c-6c32-11ee-9c79-aaef51702d10\",\"attributes\":{\"name\":null,\"handle\":\"test-get_user_details_returns_ok_response-1697467605@datadoghq.com\",\"created_at\":\"2023-10-16T14:46:45.480711+00:00\",\"modified_at\":\"2023-10-16T14:46:45.480711+00:00\",\"email\":\"test-get_user_details_returns_ok_response-1697467605@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/64901293a45aa6f5fa32d0fa57decdb2?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Mon, 16 Oct 2023 14:46:45 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/users/d3edd11c-6c32-11ee-9c79-aaef51702d10"}, "response": {"body": {"string": "{\"data\":{\"type\":\"users\",\"id\":\"d3edd11c-6c32-11ee-9c79-aaef51702d10\",\"attributes\":{\"name\":null,\"handle\":\"test-get_user_details_returns_ok_response-1697467605@datadoghq.com\",\"created_at\":\"2023-10-16T14:46:45.480711+00:00\",\"modified_at\":\"2023-10-16T14:46:45.480711+00:00\",\"email\":\"test-get_user_details_returns_ok_response-1697467605@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/64901293a45aa6f5fa32d0fa57decdb2?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Mon, 16 Oct 2023 14:46:45 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/users/d3edd11c-6c32-11ee-9c79-aaef51702d10"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Mon, 16 Oct 2023 14:46:45 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"email\":\"Test-Get_user_details_returns_OK_response-1697467605@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/users" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"users\",\"id\":\"d3edd11c-6c32-11ee-9c79-aaef51702d10\",\"attributes\":{\"name\":null,\"handle\":\"test-get_user_details_returns_ok_response-1697467605@datadoghq.com\",\"created_at\":\"2023-10-16T14:46:45.480711+00:00\",\"modified_at\":\"2023-10-16T14:46:45.480711+00:00\",\"email\":\"test-get_user_details_returns_ok_response-1697467605@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/64901293a45aa6f5fa32d0fa57decdb2?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Mon, 16 Oct 2023 14:46:45 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/users/d3edd11c-6c32-11ee-9c79-aaef51702d10" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"users\",\"id\":\"d3edd11c-6c32-11ee-9c79-aaef51702d10\",\"attributes\":{\"name\":null,\"handle\":\"test-get_user_details_returns_ok_response-1697467605@datadoghq.com\",\"created_at\":\"2023-10-16T14:46:45.480711+00:00\",\"modified_at\":\"2023-10-16T14:46:45.480711+00:00\",\"email\":\"test-get_user_details_returns_ok_response-1697467605@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/64901293a45aa6f5fa32d0fa57decdb2?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 16 Oct 2023 14:46:45 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/users/d3edd11c-6c32-11ee-9c79-aaef51702d10" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Mon, 16 Oct 2023 14:46:45 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/users/List-all-users-returns-OK-response-with-pagination.json b/tests/scenarios/cassettes/v2/users/List-all-users-returns-OK-response-with-pagination.json index 78a741a42..24a825274 100644 --- a/tests/scenarios/cassettes/v2/users/List-all-users-returns-OK-response-with-pagination.json +++ b/tests/scenarios/cassettes/v2/users/List-all-users-returns-OK-response-with-pagination.json @@ -1 +1,61 @@ -{"http_interactions": [{"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/users?page%5Bsize%5D=2&page%5Bnumber%5D=0"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"users\",\"id\":\"f0182270-a635-11ed-af86-0ec0bd96ac3b\",\"attributes\":{\"name\":\"Alan\",\"handle\":\"alan@datadoghq.com\",\"created_at\":\"2023-02-06T15:50:10.995740+00:00\",\"modified_at\":\"2023-02-06T15:51:59.847148+00:00\",\"email\":\"alan@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/c4b2f071a7e83e98302afbc9889cfc18?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"roles\":{\"data\":[{\"type\":\"roles\",\"id\":\"94172442-be03-11e9-a77a-3b7612558ac1\"}]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}},{\"type\":\"users\",\"id\":\"af29975c-059c-11ea-a77c-c3d911d2ed55\",\"attributes\":{\"name\":\"Bob\",\"handle\":\"bob@datadoghq.com\",\"created_at\":\"2019-11-12T22:35:09.997764+00:00\",\"modified_at\":\"2019-11-12T22:35:27.629304+00:00\",\"email\":\"andrew.mcburney@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/9f33d217ff6f6bc97b7e0b8b9828554d?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"roles\":{\"data\":[{\"type\":\"roles\",\"id\":\"94172442-be03-11e9-a77a-3b7612558ac1\"}]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}],\"included\":[{\"type\":\"roles\",\"id\":\"94172442-be03-11e9-a77a-3b7612558ac1\",\"attributes\":{\"name\":\"Datadog Admin Role\",\"created_at\":\"2019-08-13T19:50:19.022791+00:00\",\"modified_at\":\"2019-08-13T19:50:19.022791+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\"},{\"type\":\"permissions\",\"id\":\"984d2f00-d3b4-11e8-a200-bb47109e9987\"},{\"type\":\"permissions\",\"id\":\"5e605652-dd12-11e8-9e53-375565b8970e\"},{\"type\":\"permissions\",\"id\":\"62cc036c-dd12-11e8-9e54-db9995643092\"},{\"type\":\"permissions\",\"id\":\"6f66600e-dd12-11e8-9e55-7f30fbb45e73\"},{\"type\":\"permissions\",\"id\":\"7d7c98ac-dd12-11e8-9e56-93700598622d\"},{\"type\":\"permissions\",\"id\":\"811ac4ca-dd12-11e8-9e57-676a7f0beef9\"},{\"type\":\"permissions\",\"id\":\"84aa3ae4-dd12-11e8-9e58-a373a514ccd0\"},{\"type\":\"permissions\",\"id\":\"87b00304-dd12-11e8-9e59-cbeb5f71f72f\"},{\"type\":\"permissions\",\"id\":\"979df720-aed7-11e9-99c6-a7eb8373165a\"},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"d90f6831-d3d8-11e9-a77a-4fd230ddbc6a\"},{\"type\":\"permissions\",\"id\":\"d90f6832-d3d8-11e9-a77a-bf8a2607f864\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"48ef71ea-d8b1-11e9-a77a-93f408470ad0\"},{\"type\":\"permissions\",\"id\":\"4d87d5f8-d8b1-11e9-a77a-eb9c8350d04f\"},{\"type\":\"permissions\",\"id\":\"1af86ce4-7823-11ea-93dc-d7cad1b1c6cb\"},{\"type\":\"permissions\",\"id\":\"b382b982-8535-11ea-93de-2bf1bdf20798\"},{\"type\":\"permissions\",\"id\":\"7314eb20-aa58-11ea-95e2-6fb6e4a451d5\"},{\"type\":\"permissions\",\"id\":\"7b516476-aa58-11ea-95e2-93718cd56369\"},{\"type\":\"permissions\",\"id\":\"80de1ec0-aa58-11ea-95e2-aff381626d5d\"},{\"type\":\"permissions\",\"id\":\"58b412cc-ff6d-11eb-bc9c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"9ac1d8cc-e707-11ea-aa2d-73d37e989a9d\"},{\"type\":\"permissions\",\"id\":\"9de604d8-e707-11ea-aa2d-93f1a783b3a3\"},{\"type\":\"permissions\",\"id\":\"46a301da-ec5c-11ea-aa9f-73bedeab67ee\"},{\"type\":\"permissions\",\"id\":\"46a301db-ec5c-11ea-aa9f-2fe72193d60e\"},{\"type\":\"permissions\",\"id\":\"46a301dc-ec5c-11ea-aa9f-13b33f8f46ea\"},{\"type\":\"permissions\",\"id\":\"46a301dd-ec5c-11ea-aa9f-97edfb345bc9\"},{\"type\":\"permissions\",\"id\":\"46a301de-ec5c-11ea-aa9f-a73252c24806\"},{\"type\":\"permissions\",\"id\":\"46a301df-ec5c-11ea-aa9f-970a9ae645e5\"},{\"type\":\"permissions\",\"id\":\"46a301e0-ec5c-11ea-aa9f-6ba6cc675d8c\"},{\"type\":\"permissions\",\"id\":\"46a301e1-ec5c-11ea-aa9f-afa39f6f3e36\"},{\"type\":\"permissions\",\"id\":\"46a301e2-ec5c-11ea-aa9f-1f511b7305fd\"},{\"type\":\"permissions\",\"id\":\"46a301e4-ec5c-11ea-aa9f-87282b3a50cc\"},{\"type\":\"permissions\",\"id\":\"07c3c146-f7f8-11ea-acf6-0bd62b9ae60e\"},{\"type\":\"permissions\",\"id\":\"2fbdac76-f923-11ea-adbc-07f3823e2b43\"},{\"type\":\"permissions\",\"id\":\"372896c4-f923-11ea-adbc-4fecd107156d\"},{\"type\":\"permissions\",\"id\":\"3e4d4d28-f923-11ea-adbc-e3565938c12e\"},{\"type\":\"permissions\",\"id\":\"4628ca54-f923-11ea-adbc-4b2b7f88c5e9\"},{\"type\":\"permissions\",\"id\":\"4ada6e36-f923-11ea-adbc-0788e5c5e3cf\"},{\"type\":\"permissions\",\"id\":\"5025ee24-f923-11ea-adbc-576ea241df8d\"},{\"type\":\"permissions\",\"id\":\"55f4b5ec-f923-11ea-adbc-1bfa2334a755\"},{\"type\":\"permissions\",\"id\":\"5c6b88e2-f923-11ea-adbc-abf57d079420\"},{\"type\":\"permissions\",\"id\":\"642eebe6-f923-11ea-adbc-eb617674ea04\"},{\"type\":\"permissions\",\"id\":\"6ba32d22-0e1a-11eb-ba44-bf9a5aafaa39\"},{\"type\":\"permissions\",\"id\":\"a42e94b2-1476-11eb-bd08-efda28c04248\"},{\"type\":\"permissions\",\"id\":\"fcac2ad8-2843-11eb-8315-0fe47949d625\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"43fa188e-2dce-11eb-84c0-835ad1fd6287\"},{\"type\":\"permissions\",\"id\":\"465cfe66-2dce-11eb-84c0-6baa888239fa\"},{\"type\":\"permissions\",\"id\":\"4916eebe-2dce-11eb-84c0-271cb2c672e8\"},{\"type\":\"permissions\",\"id\":\"4e3f02b4-2dce-11eb-84c0-2fca946a6efc\"},{\"type\":\"permissions\",\"id\":\"53950c54-2dce-11eb-84c0-a79ae108f6f8\"},{\"type\":\"permissions\",\"id\":\"5cbe5f9c-2dce-11eb-84c0-872d3e9f1076\"},{\"type\":\"permissions\",\"id\":\"61765026-2dce-11eb-84c0-833e230d1b8f\"},{\"type\":\"permissions\",\"id\":\"04bc1cf2-340a-11eb-873a-43b973c760dd\"},{\"type\":\"permissions\",\"id\":\"8106300a-54f7-11eb-8cbc-7781a434a67b\"},{\"type\":\"permissions\",\"id\":\"edfd5e74-801f-11eb-96d8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"edfd5e75-801f-11eb-96d8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"bf0dcf7c-90af-11eb-9b82-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"bf0dcf7d-90af-11eb-9b82-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"98b984f4-b16d-11eb-a2c6-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"98b984f5-b16d-11eb-a2c6-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc211-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc20f-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc210-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1d-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef25-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"c95412b8-16c7-11ec-85c0-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"c95412b9-16c7-11ec-85c0-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"26c79920-1703-11ec-85d2-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f4473c60-4792-11ec-a27b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f4473c61-4792-11ec-a27b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"020a563c-56a4-11ec-a982-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"8e4d6b6e-5750-11ec-a9f4-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"945b3bb4-5884-11ec-aa6d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"945b3bb5-5884-11ec-aa6d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f6e917a8-8502-11ec-bf20-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f6e917aa-8502-11ec-bf20-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f6e917a9-8502-11ec-bf20-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f6e917a6-8502-11ec-bf20-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f6e917a7-8502-11ec-bf20-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac7-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"e35c06b0-966b-11ec-83c9-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"2108215e-b9b4-11ec-958e-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7b1f5089-c59e-11ec-aa32-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"1afff448-d5e9-11ec-ae37-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"1afff449-d5e9-11ec-ae37-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c87d3da-e5c5-11ec-b1d6-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941d0-e746-11ec-b22d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941ce-e746-11ec-b22d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4784b11c-f311-11ec-a5f5-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"ee68fba9-173a-11ed-b00b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"ee68fba8-173a-11ed-b00b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"5b2c3e28-1761-11ed-b018-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6be119a6-1cd8-11ed-b185-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"36e2a22e-248a-11ed-b405-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4ee674f6-55d9-11ed-b10d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4ee7e46c-55d9-11ed-b10e-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4ee5731c-55d9-11ed-b10b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4ee60688-55d9-11ed-b10c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"8247acc4-7a4c-11ed-958f-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"824851a6-7a4c-11ed-9590-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"77d5f45e-7a5a-11ed-8abf-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"77d55a44-7a5a-11ed-8abe-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5ad874-7aff-11ed-a5cd-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5c1090-7aff-11ed-a5cf-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c59ae72-7aff-11ed-a5cc-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5b7428-7aff-11ed-a5ce-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5d0892-7aff-11ed-a5d0-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5de654-7aff-11ed-a5d1-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"c13a2368-7d61-11ed-b5b7-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"1d76ecfa-9771-11ed-9c2f-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"ca6bfb3a-b44f-11ed-adb2-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4dc3eec6-b468-11ed-8539-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4dc4094c-b468-11ed-853a-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"35dd33ea-ca2e-11ed-bca0-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"36bf3d0a-ccc0-11ed-9453-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f416f55e-db3f-11ed-8028-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f416b1ac-db3f-11ed-8027-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4e61a95e-de98-11ed-aa23-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4e61ea18-de98-11ed-aa24-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"a4316eb8-f438-11ed-8af2-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"a431bf12-f438-11ed-8af3-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"8352cf04-f6ac-11ed-9ec7-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"3a48350c-f9bc-11ed-b81c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"a773e3d8-fff2-11ed-965c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"a77452c8-fff2-11ed-965d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"a51b375a-ff73-11ed-8c18-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"61f9891a-0070-11ee-9c3f-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"1377d9e4-0ec7-11ee-aebc-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"1377ff28-0ec7-11ee-aebd-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"cc8cd958-11eb-11ee-ade2-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b1adb6e8-0949-11ee-b2c5-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b1ad77e6-0949-11ee-b2c3-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b1adb5da-0949-11ee-b2c4-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"0efeff18-1cec-11ee-992d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5ce898-21a4-11ee-99ef-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5ce992-21a4-11ee-99f0-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"785177a6-20da-11ee-bed7-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7850e390-20da-11ee-bed6-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"1b8f54cc-2ca4-11ee-9e72-da7ad0900002\"}]}}},{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"attributes\":{\"name\":\"admin\",\"display_name\":\"Privileged Access\",\"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.\",\"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\":\"View and edit components in your Datadog organization that do not have explicitly defined permissions.\",\"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\":\"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. Restrictions are limited to the Log Management product.\",\"created\":\"2018-10-31T13:39:19.727450+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"62cc036c-dd12-11e8-9e54-db9995643092\",\"attributes\":{\"name\":\"logs_modify_indexes\",\"display_name\":\"Logs Modify Indexes\",\"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.\",\"created\":\"2018-10-31T13:39:27.148615+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6f66600e-dd12-11e8-9e55-7f30fbb45e73\",\"attributes\":{\"name\":\"logs_live_tail\",\"display_name\":\"Logs Live Tail\",\"description\":\"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\":\"Log Management\",\"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\":\"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\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"811ac4ca-dd12-11e8-9e57-676a7f0beef9\",\"attributes\":{\"name\":\"logs_write_pipelines\",\"display_name\":\"Logs Write Pipelines\",\"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.\",\"created\":\"2018-10-31T13:40:17.996379+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"84aa3ae4-dd12-11e8-9e58-a373a514ccd0\",\"attributes\":{\"name\":\"logs_write_processors\",\"display_name\":\"Logs Write Processors\",\"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.\",\"created\":\"2018-10-31T13:40:23.969725+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"87b00304-dd12-11e8-9e59-cbeb5f71f72f\",\"attributes\":{\"name\":\"logs_write_archives\",\"display_name\":\"Logs Write Archives\",\"description\":\"Add and edit Log Archives.\",\"created\":\"2018-10-31T13:40:29.040786+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"979df720-aed7-11e9-99c6-a7eb8373165a\",\"attributes\":{\"name\":\"logs_generate_metrics\",\"display_name\":\"Logs Generate Metrics\",\"description\":\"Create custom metrics from logs.\",\"created\":\"2019-07-25T12:27:39.640758+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\",\"attributes\":{\"name\":\"dashboards_read\",\"display_name\":\"Dashboards Read\",\"description\":\"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 Write\",\"description\":\"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 Public Share\",\"description\":\"Generate public and authenticated links to share dashboards or embeddable graphs 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 Read\",\"description\":\"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 Write\",\"description\":\"Edit, 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\":\"Manage Downtimes\",\"description\":\"Set downtimes to suppress alerts from any monitor in an organization. Mute and unmute hosts. 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\":\"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.\",\"created\":\"2020-04-06T16:24:35.989108+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b382b982-8535-11ea-93de-2bf1bdf20798\",\"attributes\":{\"name\":\"logs_read_archives\",\"display_name\":\"Logs Read Archives\",\"description\":\"Read Log Archives location and use it for rehydration.\",\"created\":\"2020-04-23T07:40:27.966133+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7314eb20-aa58-11ea-95e2-6fb6e4a451d5\",\"attributes\":{\"name\":\"security_monitoring_rules_read\",\"display_name\":\"Security Rules Read\",\"description\":\"Read Detection Rules.\",\"created\":\"2020-06-09T13:52:25.279909+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7b516476-aa58-11ea-95e2-93718cd56369\",\"attributes\":{\"name\":\"security_monitoring_rules_write\",\"display_name\":\"Security Rules Write\",\"description\":\"Create and edit Detection Rules.\",\"created\":\"2020-06-09T13:52:39.099413+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"80de1ec0-aa58-11ea-95e2-aff381626d5d\",\"attributes\":{\"name\":\"security_monitoring_signals_read\",\"display_name\":\"Security Signals Read\",\"description\":\"View Security Signals.\",\"created\":\"2020-06-09T13:52:48.410398+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"58b412cc-ff6d-11eb-bc9c-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_signals_write\",\"display_name\":\"Security Signals Write\",\"description\":\"Modify Security Signals.\",\"created\":\"2021-08-17T15:11:06.963503+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"9ac1d8cc-e707-11ea-aa2d-73d37e989a9d\",\"attributes\":{\"name\":\"user_access_invite\",\"display_name\":\"User Access Invite\",\"description\":\"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\":\"User Access Manage\",\"description\":\"Disable users, manage user roles, manage SAML-to-role mappings, and configure logs restriction queries.\",\"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 App Keys\",\"description\":\"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\":\"Org App Keys Read\",\"description\":\"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\":\"Org App Keys Write\",\"description\":\"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\":\"Synthetics Private Locations Read\",\"description\":\"View, search, and use Synthetics private locations.\",\"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\":\"Synthetics Private Locations Write\",\"description\":\"Create and delete private locations in addition to having access to 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 Read\",\"description\":\"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 Edit\",\"description\":\"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 Read\",\"description\":\"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 Edit\",\"description\":\"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\":\"Metric Tags Write\",\"description\":\"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 Write Historical Views\",\"description\":\"Rehydrate logs from Archives.\",\"created\":\"2020-09-16T08:38:44.242076+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"2fbdac76-f923-11ea-adbc-07f3823e2b43\",\"attributes\":{\"name\":\"audit_logs_read\",\"display_name\":\"Audit Trail Read\",\"description\":\"View Audit Trail in your organization.\",\"created\":\"2020-09-17T20:20:10.834252+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"372896c4-f923-11ea-adbc-4fecd107156d\",\"attributes\":{\"name\":\"api_keys_read\",\"display_name\":\"API Keys Read\",\"description\":\"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 Write\",\"description\":\"Create and rename 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\":\"Synthetics Global Variable Read\",\"description\":\"View, search, and use Synthetics global variables.\",\"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\":\"Synthetics Global Variable Write\",\"description\":\"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\":\"Synthetics Read\",\"description\":\"List and view configured Synthetic tests and test results.\",\"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\":\"Synthetics Write\",\"description\":\"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\":\"Synthetics Default Settings Read\",\"description\":\"View the default settings for Synthetic 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\":\"Synthetics Default Settings Write\",\"description\":\"Edit the default settings for Synthetic 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 Write Facets\",\"description\":\"Create or edit Log Facets.\",\"created\":\"2020-10-14T12:40:20.271908+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"a42e94b2-1476-11eb-bd08-efda28c04248\",\"attributes\":{\"name\":\"service_account_write\",\"display_name\":\"Service Account Write\",\"description\":\"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\",\"description\":\"Deprecated. Use the Integrations APIs to configure integrations. In order to configure integrations from the UI, a user must also have Standard Access.\",\"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\",\"description\":\"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\":\"APM Retention Filters Read\",\"description\":\"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\":\"APM Retention Filters Write\",\"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.\",\"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\":\"APM Service Ingest Read\",\"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.\",\"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\":\"APM Service Ingest Write\",\"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.\",\"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\":\"APM Apdex Manage Write\",\"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.\",\"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\":\"APM Tag Management Write\",\"description\":\"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\":\"APM Primary Operation Write\",\"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.\",\"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 Trail Write\",\"description\":\"Configure Audit Trail in your organization.\",\"created\":\"2020-12-01T19:18:39.866516+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"8106300a-54f7-11eb-8cbc-7781a434a67b\",\"attributes\":{\"name\":\"rum_apps_write\",\"display_name\":\"RUM Apps Write\",\"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.\",\"created\":\"2021-01-12T16:59:16.324480+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"edfd5e74-801f-11eb-96d8-da7ad0900002\",\"attributes\":{\"name\":\"debugger_write\",\"display_name\":\"Dynamic Instrumentation Write Configuration\",\"description\":\"Edit Dynamic Instrumentation configuration.\",\"created\":\"2021-03-08T15:06:59.006815+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"edfd5e75-801f-11eb-96d8-da7ad0900002\",\"attributes\":{\"name\":\"debugger_read\",\"display_name\":\"Dynamic Instrumentation Read Configuration\",\"description\":\"View Dynamic Instrumentation configuration.\",\"created\":\"2021-03-08T15:06:59.010517+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7c-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_read\",\"display_name\":\"Data Scanner Read\",\"description\":\"View Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.394971+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7d-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_write\",\"display_name\":\"Data Scanner Write\",\"description\":\"Edit Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.398584+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\",\"attributes\":{\"name\":\"org_management\",\"display_name\":\"Org Management\",\"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 & unsubscribing from apps in the marketplace, and enabling & disabling Remote Configuration for the entire organization.\",\"created\":\"2021-04-23T17:51:12.187340+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 Read\",\"description\":\"Read Security Filters.\",\"created\":\"2021-05-10T08:56:23.676833+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"98b984f5-b16d-11eb-a2c6-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_filters_write\",\"display_name\":\"Security Filters Write\",\"description\":\"Create, edit, and delete Security Filters.\",\"created\":\"2021-05-10T08:56:23.680551+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incidents Read\",\"description\":\"View incidents in Datadog.\",\"created\":\"2021-06-22T15:11:09.255499+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"12efc211-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_write\",\"display_name\":\"Incidents Write\",\"description\":\"Create, view, and manage incidents in Datadog.\",\"created\":\"2021-06-22T15:11:09.264369+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20f-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_settings_read\",\"display_name\":\"Incident Settings Read\",\"description\":\"View Incident Settings.\",\"created\":\"2021-06-22T15:11:09.259568+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc210-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_settings_write\",\"display_name\":\"Incident Settings Write\",\"description\":\"Configure Incident Settings.\",\"created\":\"2021-06-22T15:11:09.261986+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\",\"attributes\":{\"name\":\"appsec_event_rule_read\",\"display_name\":\"Application Security Management Event Rules Read\",\"description\":\"View Application Security Management Event Rules.\",\"created\":\"2021-07-19T13:31:15.595771+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"97971c1d-e895-11eb-b13c-da7ad0900002\",\"attributes\":{\"name\":\"appsec_event_rule_write\",\"display_name\":\"Application Security Management Event Rules Write\",\"description\":\"Edit Application Security Management Event Rules.\",\"created\":\"2021-07-19T13:31:15.598808+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"RUM Session Replay Read\",\"description\":\"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\":\"Security Notification Rules Read\",\"description\":\"Read Notification Rules.\",\"created\":\"2021-09-16T08:26:27.366789+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"c95412b9-16c7-11ec-85c0-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_notification_profiles_write\",\"display_name\":\"Security Notification Rules Write\",\"description\":\"Create, edit, and delete Notification Rules.\",\"created\":\"2021-09-16T08:26:27.369359+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"26c79920-1703-11ec-85d2-da7ad0900002\",\"attributes\":{\"name\":\"apm_generate_metrics\",\"display_name\":\"APM Generate Metrics\",\"description\":\"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\":\"f4473c60-4792-11ec-a27b-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_cws_agent_rules_read\",\"display_name\":\"Cloud Workload Security Agent Rules Read\",\"description\":\"Read Cloud Workload Security Agent Rules.\",\"created\":\"2021-11-17T10:41:43.074031+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f4473c61-4792-11ec-a27b-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_cws_agent_rules_write\",\"display_name\":\"Cloud Workload Security Agent Rules Write\",\"description\":\"Create, edit, and delete Cloud Workload Security Agent Rules.\",\"created\":\"2021-11-17T10:41:43.077905+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"020a563c-56a4-11ec-a982-da7ad0900002\",\"attributes\":{\"name\":\"apm_pipelines_write\",\"display_name\":\"APM Pipelines Write\",\"description\":\"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\":\"APM Pipelines Read\",\"description\":\"View APM pipeline configurations.\",\"created\":\"2021-12-07T11:26:43.807269+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb4-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_read\",\"display_name\":\"Pipeline Configurations Read\",\"description\":\"View pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.956827+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb5-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_write\",\"display_name\":\"Pipeline Configurations Write\",\"description\":\"Create, edit, and delete pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.960833+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f6e917a8-8502-11ec-bf20-da7ad0900002\",\"attributes\":{\"name\":\"workflows_read\",\"display_name\":\"Workflows Read\",\"description\":\"View workflows.\",\"created\":\"2022-02-03T15:07:12.058412+00:00\",\"group_name\":\"Workflows\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f6e917aa-8502-11ec-bf20-da7ad0900002\",\"attributes\":{\"name\":\"workflows_write\",\"display_name\":\"Workflows Write\",\"description\":\"Create, edit, and delete workflows.\",\"created\":\"2022-02-03T15:07:12.061765+00:00\",\"group_name\":\"Workflows\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f6e917a9-8502-11ec-bf20-da7ad0900002\",\"attributes\":{\"name\":\"workflows_run\",\"display_name\":\"Workflows Run\",\"description\":\"Run workflows.\",\"created\":\"2022-02-03T15:07:12.060079+00:00\",\"group_name\":\"Workflows\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f6e917a6-8502-11ec-bf20-da7ad0900002\",\"attributes\":{\"name\":\"connections_read\",\"display_name\":\"Connections Read\",\"description\":\"List and view available connections. Connections contain secrets that cannot be revealed.\",\"created\":\"2022-02-03T15:07:12.053432+00:00\",\"group_name\":\"Workflows\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f6e917a7-8502-11ec-bf20-da7ad0900002\",\"attributes\":{\"name\":\"connections_write\",\"display_name\":\"Connections Write\",\"description\":\"Create and delete connections.\",\"created\":\"2022-02-03T15:07:12.056590+00:00\",\"group_name\":\"Workflows\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"b6bf9ac7-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_write\",\"display_name\":\"Notebooks Write\",\"description\":\"Create and change notebooks.\",\"created\":\"2022-03-02T18:51:05.044683+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"e35c06b0-966b-11ec-83c9-da7ad0900002\",\"attributes\":{\"name\":\"logs_delete_data\",\"display_name\":\"Logs Delete Data\",\"description\":\"Delete data from your Logs, including entire indexes.\",\"created\":\"2022-02-25T18:51:06.176019+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"2108215e-b9b4-11ec-958e-da7ad0900002\",\"attributes\":{\"name\":\"rum_generate_metrics\",\"display_name\":\"RUM Generate Metrics\",\"description\":\"Create custom metrics from RUM events.\",\"created\":\"2022-04-11T16:26:24.106645+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7b1f5089-c59e-11ec-aa32-da7ad0900002\",\"attributes\":{\"name\":\"manage_integrations\",\"display_name\":\"Integrations Manage\",\"description\":\"Install, uninstall, and configure integrations.\",\"created\":\"2022-04-26T20:21:40.285834+00:00\",\"group_name\":\"Integrations\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1afff448-d5e9-11ec-ae37-da7ad0900002\",\"attributes\":{\"name\":\"usage_notifications_read\",\"display_name\":\"Usage Notifications Read\",\"description\":\"Receive notifications and view currently configured notification settings.\",\"created\":\"2022-05-17T13:56:09.870985+00:00\",\"group_name\":\"Billing and Usage\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1afff449-d5e9-11ec-ae37-da7ad0900002\",\"attributes\":{\"name\":\"usage_notifications_write\",\"display_name\":\"Usage Notifications Write\",\"description\":\"Receive notifications and configure notification settings.\",\"created\":\"2022-05-17T13:56:09.876124+00:00\",\"group_name\":\"Billing and Usage\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c87d3da-e5c5-11ec-b1d6-da7ad0900002\",\"attributes\":{\"name\":\"generate_dashboard_reports\",\"display_name\":\"Dashboards Report Write\",\"description\":\"Schedule custom reports from a dashboard. These reports will display any viewable data regardless of any granular restrictions (restriction queries, scoped indexes) applied to the report's creator.\",\"created\":\"2022-06-06T18:21:03.378896+00:00\",\"group_name\":\"Dashboards\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_read\",\"display_name\":\"SLOs Read\",\"description\":\"View SLOs and status corrections.\",\"created\":\"2022-06-08T16:20:55.142591+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"f8e941d0-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_write\",\"display_name\":\"SLOs Write\",\"description\":\"Create, edit, and delete SLOs.\",\"created\":\"2022-06-08T16:20:55.143869+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f8e941ce-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_corrections\",\"display_name\":\"SLOs Status Corrections\",\"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.\",\"created\":\"2022-06-08T16:20:55.139410+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4784b11c-f311-11ec-a5f5-da7ad0900002\",\"attributes\":{\"name\":\"monitor_config_policy_write\",\"display_name\":\"Monitor Configuration Policy Write\",\"description\":\"Create, update, and delete monitor configuration policies.\",\"created\":\"2022-06-23T16:26:48.150556+00:00\",\"group_name\":\"Monitors\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"ee68fba9-173a-11ed-b00b-da7ad0900002\",\"attributes\":{\"name\":\"apm_service_catalog_write\",\"display_name\":\"Service Catalog Write\",\"description\":\"Add, modify, and delete service catalog definitions when those definitions are maintained by Datadog.\",\"created\":\"2022-08-08T16:55:39.377188+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"ee68fba8-173a-11ed-b00b-da7ad0900002\",\"attributes\":{\"name\":\"apm_service_catalog_read\",\"display_name\":\"Service Catalog Read\",\"description\":\"View service catalog and service definitions.\",\"created\":\"2022-08-08T16:55:39.374377+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"5b2c3e28-1761-11ed-b018-da7ad0900002\",\"attributes\":{\"name\":\"logs_write_forwarding_rules\",\"display_name\":\"Logs Write Forwarding Rules\",\"description\":\"Add and edit forwarding destinations and rules for logs.\",\"created\":\"2022-08-08T21:30:42.723663+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6be119a6-1cd8-11ed-b185-da7ad0900002\",\"attributes\":{\"name\":\"watchdog_insights_read\",\"display_name\":\"Watchdog Insights Read\",\"description\":\"Deprecated. View Watchdog Insights.\",\"created\":\"2022-08-15T20:25:36.677197+00:00\",\"group_name\":\"Watchdog\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"36e2a22e-248a-11ed-b405-da7ad0900002\",\"attributes\":{\"name\":\"connections_resolve\",\"display_name\":\"Connections Resolve\",\"description\":\"Resolve connections.\",\"created\":\"2022-08-25T15:25:56.325170+00:00\",\"group_name\":\"Workflows\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4ee674f6-55d9-11ed-b10d-da7ad0900002\",\"attributes\":{\"name\":\"appsec_protect_read\",\"display_name\":\"Application Security Management Protect Read\",\"description\":\"View blocked attackers.\",\"created\":\"2022-10-27T09:25:33.834253+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4ee7e46c-55d9-11ed-b10e-da7ad0900002\",\"attributes\":{\"name\":\"appsec_protect_write\",\"display_name\":\"Application Security Management Protect Write\",\"description\":\"Manage blocked attackers.\",\"created\":\"2022-10-27T09:25:33.843656+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4ee5731c-55d9-11ed-b10b-da7ad0900002\",\"attributes\":{\"name\":\"appsec_activation_read\",\"display_name\":\"Application Security Management 1-click Enablement Read\",\"description\":\"View whether Application Security Management has been enabled or disabled on services via 1-click enablement with Remote Configuration.\",\"created\":\"2022-10-27T09:25:33.827076+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4ee60688-55d9-11ed-b10c-da7ad0900002\",\"attributes\":{\"name\":\"appsec_activation_write\",\"display_name\":\"Application Security Management 1-click Enablement Write\",\"description\":\"Enable or disable Application Security Management on services via 1-click enablement with Remote Configuration.\",\"created\":\"2022-10-27T09:25:33.831383+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"8247acc4-7a4c-11ed-958f-da7ad0900002\",\"attributes\":{\"name\":\"cases_read\",\"display_name\":\"Cases Read\",\"description\":\"View Cases.\",\"created\":\"2022-12-12T18:40:54.018521+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"824851a6-7a4c-11ed-9590-da7ad0900002\",\"attributes\":{\"name\":\"cases_write\",\"display_name\":\"Cases Write\",\"description\":\"Create and update cases.\",\"created\":\"2022-12-12T18:40:54.023280+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"77d5f45e-7a5a-11ed-8abf-da7ad0900002\",\"attributes\":{\"name\":\"apm_remote_configuration_write\",\"display_name\":\"APM Remote Configuration Write\",\"description\":\"Edit APM Remote Configuration.\",\"created\":\"2022-12-12T20:20:49.450768+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"77d55a44-7a5a-11ed-8abe-da7ad0900002\",\"attributes\":{\"name\":\"apm_remote_configuration_read\",\"display_name\":\"APM Remote Configuration Read\",\"description\":\"View APM Remote Configuration.\",\"created\":\"2022-12-12T20:20:49.446298+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c5ad874-7aff-11ed-a5cd-da7ad0900002\",\"attributes\":{\"name\":\"ci_visibility_read\",\"display_name\":\"CI Visibility Read\",\"description\":\"View CI Visibility.\",\"created\":\"2022-12-13T16:01:37.149406+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"6c5c1090-7aff-11ed-a5cf-da7ad0900002\",\"attributes\":{\"name\":\"ci_visibility_write\",\"display_name\":\"CI Visibility Tests Write\",\"description\":\"Edit flaky tests and delete Test Services.\",\"created\":\"2022-12-13T16:01:37.157428+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c59ae72-7aff-11ed-a5cc-da7ad0900002\",\"attributes\":{\"name\":\"ci_provider_settings_write\",\"display_name\":\"CI Provider Settings Write\",\"description\":\"Edit CI Provider settings. Manage GitHub accounts and repositories for enabling CI Visibility and job logs collection.\",\"created\":\"2022-12-13T16:01:37.141217+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c5b7428-7aff-11ed-a5ce-da7ad0900002\",\"attributes\":{\"name\":\"ci_visibility_settings_write\",\"display_name\":\"CI Visibility Settings Write\",\"description\":\"Configure CI Visibility settings. Set a repository default branch, enable GitHub comments, and delete test services.\",\"created\":\"2022-12-13T16:01:37.153418+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c5d0892-7aff-11ed-a5d0-da7ad0900002\",\"attributes\":{\"name\":\"intelligent_test_runner_activation_write\",\"display_name\":\"Intelligent Test Runner Activation Write\",\"description\":\"Enable or disable Intelligent Test Runner.\",\"created\":\"2022-12-13T16:01:37.163771+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c5de654-7aff-11ed-a5d1-da7ad0900002\",\"attributes\":{\"name\":\"intelligent_test_runner_settings_write\",\"display_name\":\"Intelligent Test Runner Settings Write\",\"description\":\"Edit Intelligent Test Runner settings, such as modifying ITR excluded branch list.\",\"created\":\"2022-12-13T16:01:37.169430+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"c13a2368-7d61-11ed-b5b7-da7ad0900002\",\"attributes\":{\"name\":\"continuous_profiler_read\",\"display_name\":\"Continuous Profiler Read\",\"description\":\"View data in Continuous Profiler.\",\"created\":\"2022-12-16T16:50:32.545882+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1d76ecfa-9771-11ed-9c2f-da7ad0900002\",\"attributes\":{\"name\":\"teams_manage\",\"display_name\":\"Teams Manage\",\"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.\",\"created\":\"2023-01-18T20:45:59.977837+00:00\",\"group_name\":\"Teams\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"ca6bfb3a-b44f-11ed-adb2-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_findings_read\",\"display_name\":\"Security Monitoring Findings Read\",\"description\":\"View CSPM Findings.\",\"created\":\"2023-02-24T14:30:30.983679+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4dc3eec6-b468-11ed-8539-da7ad0900002\",\"attributes\":{\"name\":\"incident_notification_settings_read\",\"display_name\":\"Incident Notification Settings Read\",\"description\":\"View Incidents Notification settings.\",\"created\":\"2023-02-24T17:25:59.263037+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4dc4094c-b468-11ed-853a-da7ad0900002\",\"attributes\":{\"name\":\"incident_notification_settings_write\",\"display_name\":\"Incident Notification Settings Write\",\"description\":\"Configure Incidents Notification settings.\",\"created\":\"2023-02-24T17:25:59.263037+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"35dd33ea-ca2e-11ed-bca0-da7ad0900002\",\"attributes\":{\"name\":\"ci_ingestion_control_write\",\"display_name\":\"CI Visibility Ingestion Control Write\",\"description\":\"Edit CI Ingestion Control exclusion filters.\",\"created\":\"2023-03-24T10:25:33.934187+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"36bf3d0a-ccc0-11ed-9453-da7ad0900002\",\"attributes\":{\"name\":\"error_tracking_write\",\"display_name\":\"Error Tracking Write\",\"description\":\"Edit Error Tracking settings.\",\"created\":\"2023-03-27T16:55:44.263627+00:00\",\"group_name\":\"Error Tracking\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f416f55e-db3f-11ed-8028-da7ad0900002\",\"attributes\":{\"name\":\"watchdog_alerts_write\",\"display_name\":\"Watchdog Alerts Write\",\"description\":\"Manage Watchdog Alerts.\",\"created\":\"2023-04-15T03:45:24.289668+00:00\",\"group_name\":\"Watchdog\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f416b1ac-db3f-11ed-8027-da7ad0900002\",\"attributes\":{\"name\":\"saved_views_write\",\"display_name\":\"Saved Views Write\",\"description\":\"Modify Saved Views across all Datadog products.\",\"created\":\"2023-04-15T03:45:24.289668+00:00\",\"group_name\":\"Cross-Product Features\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4e61a95e-de98-11ed-aa23-da7ad0900002\",\"attributes\":{\"name\":\"client_tokens_read\",\"display_name\":\"Client Tokens Read\",\"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.\",\"created\":\"2023-04-19T09:55:24.976379+00:00\",\"group_name\":\"API and Application Keys\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4e61ea18-de98-11ed-aa24-da7ad0900002\",\"attributes\":{\"name\":\"client_tokens_write\",\"display_name\":\"Client Tokens Write\",\"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.\",\"created\":\"2023-04-19T09:55:24.976379+00:00\",\"group_name\":\"API and Application Keys\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"a4316eb8-f438-11ed-8af2-da7ad0900002\",\"attributes\":{\"name\":\"event_correlation_config_read\",\"display_name\":\"Event Correlation Config Read\",\"description\":\"Read Event Correlation Configuration data such as Correlation Rules and Settings.\",\"created\":\"2023-05-16T22:26:02.839419+00:00\",\"group_name\":\"Events\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"a431bf12-f438-11ed-8af3-da7ad0900002\",\"attributes\":{\"name\":\"event_correlation_config_write\",\"display_name\":\"Event Correlation Config Write\",\"description\":\"Manage Event Correlation Configuration such as Correlation Rules and Settings.\",\"created\":\"2023-05-16T22:26:02.839419+00:00\",\"group_name\":\"Events\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"8352cf04-f6ac-11ed-9ec7-da7ad0900002\",\"attributes\":{\"name\":\"event_config_write\",\"display_name\":\"Event Config Write\",\"description\":\"Manage general event configuration such as API Emails.\",\"created\":\"2023-05-20T01:20:31.639587+00:00\",\"group_name\":\"Events\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"3a48350c-f9bc-11ed-b81c-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_findings_write\",\"display_name\":\"Security Monitoring Findings Write\",\"description\":\"Mute CSPM Findings.\",\"created\":\"2023-05-23T22:50:34.532448+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"a773e3d8-fff2-11ed-965c-da7ad0900002\",\"attributes\":{\"name\":\"cloud_cost_management_read\",\"display_name\":\"Cloud Cost Management Read\",\"description\":\"View Cloud Cost pages. This does not restrict access to the cloud cost data source in dashboards and notebooks.\",\"created\":\"2023-05-31T20:35:17.490437+00:00\",\"group_name\":\"Cloud Cost Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"a77452c8-fff2-11ed-965d-da7ad0900002\",\"attributes\":{\"name\":\"cloud_cost_management_write\",\"display_name\":\"Cloud Cost Management Write\",\"description\":\"Configure cloud cost accounts and global customizations.\",\"created\":\"2023-05-31T20:35:17.490437+00:00\",\"group_name\":\"Cloud Cost Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"a51b375a-ff73-11ed-8c18-da7ad0900002\",\"attributes\":{\"name\":\"host_tags_write\",\"display_name\":\"Host Tags Write\",\"description\":\"Add and change tags on hosts.\",\"created\":\"2023-05-31T05:26:07.469293+00:00\",\"group_name\":\"Metrics\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"61f9891a-0070-11ee-9c3f-da7ad0900002\",\"attributes\":{\"name\":\"ci_visibility_pipelines_write\",\"display_name\":\"CI Visibility Pipelines Write\",\"description\":\"Create CI Visibility pipeline spans using the API.\",\"created\":\"2023-06-01T11:35:17.513706+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1377d9e4-0ec7-11ee-aebc-da7ad0900002\",\"attributes\":{\"name\":\"quality_gate_rules_read\",\"display_name\":\"Quality Gate Rules Read\",\"description\":\"View Quality Gate Rules.\",\"created\":\"2023-06-19T17:31:08.295856+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1377ff28-0ec7-11ee-aebd-da7ad0900002\",\"attributes\":{\"name\":\"quality_gate_rules_write\",\"display_name\":\"Quality Gate Rules Write\",\"description\":\"Edit Quality Gate Rules.\",\"created\":\"2023-06-19T17:31:08.295856+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"cc8cd958-11eb-11ee-ade2-da7ad0900002\",\"attributes\":{\"name\":\"metrics_metadata_write\",\"display_name\":\"Metrics Metadata Write\",\"description\":\"Edit metadata on metrics.\",\"created\":\"2023-06-23T17:31:34.182629+00:00\",\"group_name\":\"Metrics\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b1adb6e8-0949-11ee-b2c5-da7ad0900002\",\"attributes\":{\"name\":\"rum_delete_data\",\"display_name\":\"RUM Delete Data\",\"description\":\"Delete data from RUM.\",\"created\":\"2023-06-12T17:51:01.325450+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b1ad77e6-0949-11ee-b2c3-da7ad0900002\",\"attributes\":{\"name\":\"appsec_vm_write\",\"display_name\":\"Application Security Vulnerability Management Write\",\"description\":\"Update status or assignee of Application Security vulnerabilities.\",\"created\":\"2023-06-12T17:51:01.325450+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b1adb5da-0949-11ee-b2c4-da7ad0900002\",\"attributes\":{\"name\":\"reference_tables_write\",\"display_name\":\"Reference Tables Write\",\"description\":\"Create or modify Reference Tables.\",\"created\":\"2023-06-12T17:51:01.325450+00:00\",\"group_name\":\"Reference Tables\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"0efeff18-1cec-11ee-992d-da7ad0900002\",\"attributes\":{\"name\":\"rum_playlist_write\",\"display_name\":\"RUM Playlist Write\",\"description\":\"Create, update, and delete RUM playlists. Add and remove sessions from RUM playlists.\",\"created\":\"2023-07-07T17:31:08.450865+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c5ce898-21a4-11ee-99ef-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_delete\",\"display_name\":\"Pipeline Delete\",\"description\":\"Delete pipelines from your organization.\",\"created\":\"2023-07-13T17:40:57.140947+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c5ce992-21a4-11ee-99f0-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_deploy\",\"display_name\":\"Pipeline Deploy\",\"description\":\"Deploy pipelines in your organization.\",\"created\":\"2023-07-13T17:40:57.140947+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"785177a6-20da-11ee-bed7-da7ad0900002\",\"attributes\":{\"name\":\"processes_generate_metrics\",\"display_name\":\"Processes Generate Metrics\",\"description\":\"Create custom metrics from processes.\",\"created\":\"2023-07-12T17:35:18.858294+00:00\",\"group_name\":\"Processes\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7850e390-20da-11ee-bed6-da7ad0900002\",\"attributes\":{\"name\":\"api_keys_delete\",\"display_name\":\"API Keys Delete\",\"description\":\"Delete API Keys for your organization.\",\"created\":\"2023-07-12T17:35:18.858294+00:00\",\"group_name\":\"API and Application Keys\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1b8f54cc-2ca4-11ee-9e72-da7ad0900002\",\"attributes\":{\"name\":\"facets_write\",\"display_name\":\"Facets Write\",\"description\":\"Manage facets for products other than Log Management, such as APM Traces. To modify Log Facets, use Logs Write Facets.\",\"created\":\"2023-07-27T17:36:24.369352+00:00\",\"group_name\":\"Cross-Product Features\",\"display_type\":\"write\",\"restricted\":false}}],\"meta\":{\"page\":{\"total_count\":203828,\"total_filtered_count\":203828}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 05 Sep 2023 13:14:24 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/users?page%5Bsize%5D=2&page%5Bnumber%5D=1"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"users\",\"id\":\"6fa267f4-b920-11ed-8865-d223eeb75e45\",\"attributes\":{\"name\":\"Alice\",\"handle\":\"alice@datadoghq.com\",\"created_at\":\"2023-03-02T17:34:08.137773+00:00\",\"modified_at\":\"2023-03-02T17:42:47.069690+00:00\",\"email\":\"alice@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/0d54f0d2f91bb10cfb83ff85f8602928?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"roles\":{\"data\":[{\"type\":\"roles\",\"id\":\"94172443-be03-11e9-a77a-373332f69711\"}]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}],\"included\":[{\"type\":\"roles\",\"id\":\"94172443-be03-11e9-a77a-373332f69711\",\"attributes\":{\"name\":\"Datadog Standard Role\",\"created_at\":\"2019-08-13T19:50:19.075284+00:00\",\"modified_at\":\"2019-08-13T19:50:19.075284+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"984d2f00-d3b4-11e8-a200-bb47109e9987\"},{\"type\":\"permissions\",\"id\":\"5e605652-dd12-11e8-9e53-375565b8970e\"},{\"type\":\"permissions\",\"id\":\"62cc036c-dd12-11e8-9e54-db9995643092\"},{\"type\":\"permissions\",\"id\":\"6f66600e-dd12-11e8-9e55-7f30fbb45e73\"},{\"type\":\"permissions\",\"id\":\"7d7c98ac-dd12-11e8-9e56-93700598622d\"},{\"type\":\"permissions\",\"id\":\"811ac4ca-dd12-11e8-9e57-676a7f0beef9\"},{\"type\":\"permissions\",\"id\":\"84aa3ae4-dd12-11e8-9e58-a373a514ccd0\"},{\"type\":\"permissions\",\"id\":\"979df720-aed7-11e9-99c6-a7eb8373165a\"},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"d90f6831-d3d8-11e9-a77a-4fd230ddbc6a\"},{\"type\":\"permissions\",\"id\":\"d90f6832-d3d8-11e9-a77a-bf8a2607f864\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"48ef71ea-d8b1-11e9-a77a-93f408470ad0\"},{\"type\":\"permissions\",\"id\":\"4d87d5f8-d8b1-11e9-a77a-eb9c8350d04f\"},{\"type\":\"permissions\",\"id\":\"1af86ce4-7823-11ea-93dc-d7cad1b1c6cb\"},{\"type\":\"permissions\",\"id\":\"b382b982-8535-11ea-93de-2bf1bdf20798\"},{\"type\":\"permissions\",\"id\":\"7314eb20-aa58-11ea-95e2-6fb6e4a451d5\"},{\"type\":\"permissions\",\"id\":\"7b516476-aa58-11ea-95e2-93718cd56369\"},{\"type\":\"permissions\",\"id\":\"80de1ec0-aa58-11ea-95e2-aff381626d5d\"},{\"type\":\"permissions\",\"id\":\"58b412cc-ff6d-11eb-bc9c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"9ac1d8cc-e707-11ea-aa2d-73d37e989a9d\"},{\"type\":\"permissions\",\"id\":\"46a301da-ec5c-11ea-aa9f-73bedeab67ee\"},{\"type\":\"permissions\",\"id\":\"46a301db-ec5c-11ea-aa9f-2fe72193d60e\"},{\"type\":\"permissions\",\"id\":\"46a301dd-ec5c-11ea-aa9f-97edfb345bc9\"},{\"type\":\"permissions\",\"id\":\"46a301e4-ec5c-11ea-aa9f-87282b3a50cc\"},{\"type\":\"permissions\",\"id\":\"07c3c146-f7f8-11ea-acf6-0bd62b9ae60e\"},{\"type\":\"permissions\",\"id\":\"372896c4-f923-11ea-adbc-4fecd107156d\"},{\"type\":\"permissions\",\"id\":\"4628ca54-f923-11ea-adbc-4b2b7f88c5e9\"},{\"type\":\"permissions\",\"id\":\"4ada6e36-f923-11ea-adbc-0788e5c5e3cf\"},{\"type\":\"permissions\",\"id\":\"5025ee24-f923-11ea-adbc-576ea241df8d\"},{\"type\":\"permissions\",\"id\":\"55f4b5ec-f923-11ea-adbc-1bfa2334a755\"},{\"type\":\"permissions\",\"id\":\"5c6b88e2-f923-11ea-adbc-abf57d079420\"},{\"type\":\"permissions\",\"id\":\"642eebe6-f923-11ea-adbc-eb617674ea04\"},{\"type\":\"permissions\",\"id\":\"6ba32d22-0e1a-11eb-ba44-bf9a5aafaa39\"},{\"type\":\"permissions\",\"id\":\"fcac2ad8-2843-11eb-8315-0fe47949d625\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"43fa188e-2dce-11eb-84c0-835ad1fd6287\"},{\"type\":\"permissions\",\"id\":\"4916eebe-2dce-11eb-84c0-271cb2c672e8\"},{\"type\":\"permissions\",\"id\":\"5cbe5f9c-2dce-11eb-84c0-872d3e9f1076\"},{\"type\":\"permissions\",\"id\":\"61765026-2dce-11eb-84c0-833e230d1b8f\"},{\"type\":\"permissions\",\"id\":\"8106300a-54f7-11eb-8cbc-7781a434a67b\"},{\"type\":\"permissions\",\"id\":\"edfd5e75-801f-11eb-96d8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"98b984f4-b16d-11eb-a2c6-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc211-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc20f-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc210-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1d-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef25-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"c95412b8-16c7-11ec-85c0-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"c95412b9-16c7-11ec-85c0-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"26c79920-1703-11ec-85d2-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f4473c60-4792-11ec-a27b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f4473c61-4792-11ec-a27b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"8e4d6b6e-5750-11ec-a9f4-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"945b3bb4-5884-11ec-aa6d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f6e917a8-8502-11ec-bf20-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f6e917aa-8502-11ec-bf20-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f6e917a9-8502-11ec-bf20-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f6e917a6-8502-11ec-bf20-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f6e917a7-8502-11ec-bf20-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac7-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"2108215e-b9b4-11ec-958e-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7b1f5089-c59e-11ec-aa32-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941d0-e746-11ec-b22d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941ce-e746-11ec-b22d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"ee68fba9-173a-11ed-b00b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"ee68fba8-173a-11ed-b00b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6be119a6-1cd8-11ed-b185-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"36e2a22e-248a-11ed-b405-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4ee674f6-55d9-11ed-b10d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4ee7e46c-55d9-11ed-b10e-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4ee5731c-55d9-11ed-b10b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4ee60688-55d9-11ed-b10c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"8247acc4-7a4c-11ed-958f-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"824851a6-7a4c-11ed-9590-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"77d55a44-7a5a-11ed-8abe-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5ad874-7aff-11ed-a5cd-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5c1090-7aff-11ed-a5cf-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5b7428-7aff-11ed-a5ce-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5de654-7aff-11ed-a5d1-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"c13a2368-7d61-11ed-b5b7-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"ca6bfb3a-b44f-11ed-adb2-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4dc3eec6-b468-11ed-8539-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4dc4094c-b468-11ed-853a-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"36bf3d0a-ccc0-11ed-9453-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f416f55e-db3f-11ed-8028-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f416b1ac-db3f-11ed-8027-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4e61a95e-de98-11ed-aa23-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4e61ea18-de98-11ed-aa24-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"a4316eb8-f438-11ed-8af2-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"a431bf12-f438-11ed-8af3-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"8352cf04-f6ac-11ed-9ec7-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"3a48350c-f9bc-11ed-b81c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"a773e3d8-fff2-11ed-965c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"a77452c8-fff2-11ed-965d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"a51b375a-ff73-11ed-8c18-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"61f9891a-0070-11ee-9c3f-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"1377d9e4-0ec7-11ee-aebc-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"cc8cd958-11eb-11ee-ade2-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b1ad77e6-0949-11ee-b2c3-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b1adb5da-0949-11ee-b2c4-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"0efeff18-1cec-11ee-992d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"785177a6-20da-11ee-bed7-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"1b8f54cc-2ca4-11ee-9e72-da7ad0900002\"}]}}},{\"type\":\"permissions\",\"id\":\"984d2f00-d3b4-11e8-a200-bb47109e9987\",\"attributes\":{\"name\":\"standard\",\"display_name\":\"Standard Access\",\"description\":\"View and edit components in your Datadog organization that do not have explicitly defined permissions.\",\"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\":\"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. Restrictions are limited to the Log Management product.\",\"created\":\"2018-10-31T13:39:19.727450+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"62cc036c-dd12-11e8-9e54-db9995643092\",\"attributes\":{\"name\":\"logs_modify_indexes\",\"display_name\":\"Logs Modify Indexes\",\"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.\",\"created\":\"2018-10-31T13:39:27.148615+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6f66600e-dd12-11e8-9e55-7f30fbb45e73\",\"attributes\":{\"name\":\"logs_live_tail\",\"display_name\":\"Logs Live Tail\",\"description\":\"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\":\"Log Management\",\"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\":\"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\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"811ac4ca-dd12-11e8-9e57-676a7f0beef9\",\"attributes\":{\"name\":\"logs_write_pipelines\",\"display_name\":\"Logs Write Pipelines\",\"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.\",\"created\":\"2018-10-31T13:40:17.996379+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"84aa3ae4-dd12-11e8-9e58-a373a514ccd0\",\"attributes\":{\"name\":\"logs_write_processors\",\"display_name\":\"Logs Write Processors\",\"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.\",\"created\":\"2018-10-31T13:40:23.969725+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"979df720-aed7-11e9-99c6-a7eb8373165a\",\"attributes\":{\"name\":\"logs_generate_metrics\",\"display_name\":\"Logs Generate Metrics\",\"description\":\"Create custom metrics from logs.\",\"created\":\"2019-07-25T12:27:39.640758+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\",\"attributes\":{\"name\":\"dashboards_read\",\"display_name\":\"Dashboards Read\",\"description\":\"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 Write\",\"description\":\"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 Public Share\",\"description\":\"Generate public and authenticated links to share dashboards or embeddable graphs 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 Read\",\"description\":\"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 Write\",\"description\":\"Edit, 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\":\"Manage Downtimes\",\"description\":\"Set downtimes to suppress alerts from any monitor in an organization. Mute and unmute hosts. 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\":\"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.\",\"created\":\"2020-04-06T16:24:35.989108+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b382b982-8535-11ea-93de-2bf1bdf20798\",\"attributes\":{\"name\":\"logs_read_archives\",\"display_name\":\"Logs Read Archives\",\"description\":\"Read Log Archives location and use it for rehydration.\",\"created\":\"2020-04-23T07:40:27.966133+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7314eb20-aa58-11ea-95e2-6fb6e4a451d5\",\"attributes\":{\"name\":\"security_monitoring_rules_read\",\"display_name\":\"Security Rules Read\",\"description\":\"Read Detection Rules.\",\"created\":\"2020-06-09T13:52:25.279909+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7b516476-aa58-11ea-95e2-93718cd56369\",\"attributes\":{\"name\":\"security_monitoring_rules_write\",\"display_name\":\"Security Rules Write\",\"description\":\"Create and edit Detection Rules.\",\"created\":\"2020-06-09T13:52:39.099413+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"80de1ec0-aa58-11ea-95e2-aff381626d5d\",\"attributes\":{\"name\":\"security_monitoring_signals_read\",\"display_name\":\"Security Signals Read\",\"description\":\"View Security Signals.\",\"created\":\"2020-06-09T13:52:48.410398+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"58b412cc-ff6d-11eb-bc9c-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_signals_write\",\"display_name\":\"Security Signals Write\",\"description\":\"Modify Security Signals.\",\"created\":\"2021-08-17T15:11:06.963503+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"9ac1d8cc-e707-11ea-aa2d-73d37e989a9d\",\"attributes\":{\"name\":\"user_access_invite\",\"display_name\":\"User Access Invite\",\"description\":\"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\":\"46a301da-ec5c-11ea-aa9f-73bedeab67ee\",\"attributes\":{\"name\":\"user_app_keys\",\"display_name\":\"User App Keys\",\"description\":\"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\":\"Org App Keys Read\",\"description\":\"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\":\"46a301dd-ec5c-11ea-aa9f-97edfb345bc9\",\"attributes\":{\"name\":\"synthetics_private_location_read\",\"display_name\":\"Synthetics Private Locations Read\",\"description\":\"View, search, and use Synthetics private locations.\",\"created\":\"2020-09-01T14:06:05.444705+00:00\",\"group_name\":\"Synthetic Monitoring\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"46a301e4-ec5c-11ea-aa9f-87282b3a50cc\",\"attributes\":{\"name\":\"metric_tags_write\",\"display_name\":\"Metric Tags Write\",\"description\":\"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 Write Historical Views\",\"description\":\"Rehydrate logs from Archives.\",\"created\":\"2020-09-16T08:38:44.242076+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"372896c4-f923-11ea-adbc-4fecd107156d\",\"attributes\":{\"name\":\"api_keys_read\",\"display_name\":\"API Keys Read\",\"description\":\"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\":\"4628ca54-f923-11ea-adbc-4b2b7f88c5e9\",\"attributes\":{\"name\":\"synthetics_global_variable_read\",\"display_name\":\"Synthetics Global Variable Read\",\"description\":\"View, search, and use Synthetics global variables.\",\"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\":\"Synthetics Global Variable Write\",\"description\":\"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\":\"Synthetics Read\",\"description\":\"List and view configured Synthetic tests and test results.\",\"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\":\"Synthetics Write\",\"description\":\"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\":\"Synthetics Default Settings Read\",\"description\":\"View the default settings for Synthetic 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\":\"Synthetics Default Settings Write\",\"description\":\"Edit the default settings for Synthetic 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 Write Facets\",\"description\":\"Create or edit Log Facets.\",\"created\":\"2020-10-14T12:40:20.271908+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"fcac2ad8-2843-11eb-8315-0fe47949d625\",\"attributes\":{\"name\":\"integrations_api\",\"display_name\":\"Integrations API\",\"description\":\"Deprecated. Use the Integrations APIs to configure integrations. In order to configure integrations from the UI, a user must also have Standard Access.\",\"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\",\"description\":\"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\":\"APM Retention Filters Read\",\"description\":\"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\":\"4916eebe-2dce-11eb-84c0-271cb2c672e8\",\"attributes\":{\"name\":\"apm_service_ingest_read\",\"display_name\":\"APM Service Ingest Read\",\"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.\",\"created\":\"2020-11-23T20:55:57.768261+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"5cbe5f9c-2dce-11eb-84c0-872d3e9f1076\",\"attributes\":{\"name\":\"apm_tag_management_write\",\"display_name\":\"APM Tag Management Write\",\"description\":\"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\":\"APM Primary Operation Write\",\"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.\",\"created\":\"2020-11-23T20:56:38.658649+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"8106300a-54f7-11eb-8cbc-7781a434a67b\",\"attributes\":{\"name\":\"rum_apps_write\",\"display_name\":\"RUM Apps Write\",\"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.\",\"created\":\"2021-01-12T16:59:16.324480+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"edfd5e75-801f-11eb-96d8-da7ad0900002\",\"attributes\":{\"name\":\"debugger_read\",\"display_name\":\"Dynamic Instrumentation Read Configuration\",\"description\":\"View Dynamic Instrumentation configuration.\",\"created\":\"2021-03-08T15:06:59.010517+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"98b984f4-b16d-11eb-a2c6-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_filters_read\",\"display_name\":\"Security Filters Read\",\"description\":\"Read Security Filters.\",\"created\":\"2021-05-10T08:56:23.676833+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incidents Read\",\"description\":\"View incidents in Datadog.\",\"created\":\"2021-06-22T15:11:09.255499+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"12efc211-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_write\",\"display_name\":\"Incidents Write\",\"description\":\"Create, view, and manage incidents in Datadog.\",\"created\":\"2021-06-22T15:11:09.264369+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20f-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_settings_read\",\"display_name\":\"Incident Settings Read\",\"description\":\"View Incident Settings.\",\"created\":\"2021-06-22T15:11:09.259568+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc210-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_settings_write\",\"display_name\":\"Incident Settings Write\",\"description\":\"Configure Incident Settings.\",\"created\":\"2021-06-22T15:11:09.261986+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\",\"attributes\":{\"name\":\"appsec_event_rule_read\",\"display_name\":\"Application Security Management Event Rules Read\",\"description\":\"View Application Security Management Event Rules.\",\"created\":\"2021-07-19T13:31:15.595771+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"97971c1d-e895-11eb-b13c-da7ad0900002\",\"attributes\":{\"name\":\"appsec_event_rule_write\",\"display_name\":\"Application Security Management Event Rules Write\",\"description\":\"Edit Application Security Management Event Rules.\",\"created\":\"2021-07-19T13:31:15.598808+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"RUM Session Replay Read\",\"description\":\"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\":\"Security Notification Rules Read\",\"description\":\"Read Notification Rules.\",\"created\":\"2021-09-16T08:26:27.366789+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"c95412b9-16c7-11ec-85c0-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_notification_profiles_write\",\"display_name\":\"Security Notification Rules Write\",\"description\":\"Create, edit, and delete Notification Rules.\",\"created\":\"2021-09-16T08:26:27.369359+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"26c79920-1703-11ec-85d2-da7ad0900002\",\"attributes\":{\"name\":\"apm_generate_metrics\",\"display_name\":\"APM Generate Metrics\",\"description\":\"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\":\"f4473c60-4792-11ec-a27b-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_cws_agent_rules_read\",\"display_name\":\"Cloud Workload Security Agent Rules Read\",\"description\":\"Read Cloud Workload Security Agent Rules.\",\"created\":\"2021-11-17T10:41:43.074031+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f4473c61-4792-11ec-a27b-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_cws_agent_rules_write\",\"display_name\":\"Cloud Workload Security Agent Rules Write\",\"description\":\"Create, edit, and delete Cloud Workload Security Agent Rules.\",\"created\":\"2021-11-17T10:41:43.077905+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"8e4d6b6e-5750-11ec-a9f4-da7ad0900002\",\"attributes\":{\"name\":\"apm_pipelines_read\",\"display_name\":\"APM Pipelines Read\",\"description\":\"View APM pipeline configurations.\",\"created\":\"2021-12-07T11:26:43.807269+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb4-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_read\",\"display_name\":\"Pipeline Configurations Read\",\"description\":\"View pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.956827+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f6e917a8-8502-11ec-bf20-da7ad0900002\",\"attributes\":{\"name\":\"workflows_read\",\"display_name\":\"Workflows Read\",\"description\":\"View workflows.\",\"created\":\"2022-02-03T15:07:12.058412+00:00\",\"group_name\":\"Workflows\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f6e917aa-8502-11ec-bf20-da7ad0900002\",\"attributes\":{\"name\":\"workflows_write\",\"display_name\":\"Workflows Write\",\"description\":\"Create, edit, and delete workflows.\",\"created\":\"2022-02-03T15:07:12.061765+00:00\",\"group_name\":\"Workflows\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f6e917a9-8502-11ec-bf20-da7ad0900002\",\"attributes\":{\"name\":\"workflows_run\",\"display_name\":\"Workflows Run\",\"description\":\"Run workflows.\",\"created\":\"2022-02-03T15:07:12.060079+00:00\",\"group_name\":\"Workflows\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f6e917a6-8502-11ec-bf20-da7ad0900002\",\"attributes\":{\"name\":\"connections_read\",\"display_name\":\"Connections Read\",\"description\":\"List and view available connections. Connections contain secrets that cannot be revealed.\",\"created\":\"2022-02-03T15:07:12.053432+00:00\",\"group_name\":\"Workflows\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f6e917a7-8502-11ec-bf20-da7ad0900002\",\"attributes\":{\"name\":\"connections_write\",\"display_name\":\"Connections Write\",\"description\":\"Create and delete connections.\",\"created\":\"2022-02-03T15:07:12.056590+00:00\",\"group_name\":\"Workflows\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"b6bf9ac7-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_write\",\"display_name\":\"Notebooks Write\",\"description\":\"Create and change notebooks.\",\"created\":\"2022-03-02T18:51:05.044683+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"2108215e-b9b4-11ec-958e-da7ad0900002\",\"attributes\":{\"name\":\"rum_generate_metrics\",\"display_name\":\"RUM Generate Metrics\",\"description\":\"Create custom metrics from RUM events.\",\"created\":\"2022-04-11T16:26:24.106645+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7b1f5089-c59e-11ec-aa32-da7ad0900002\",\"attributes\":{\"name\":\"manage_integrations\",\"display_name\":\"Integrations Manage\",\"description\":\"Install, uninstall, and configure integrations.\",\"created\":\"2022-04-26T20:21:40.285834+00:00\",\"group_name\":\"Integrations\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_read\",\"display_name\":\"SLOs Read\",\"description\":\"View SLOs and status corrections.\",\"created\":\"2022-06-08T16:20:55.142591+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"f8e941d0-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_write\",\"display_name\":\"SLOs Write\",\"description\":\"Create, edit, and delete SLOs.\",\"created\":\"2022-06-08T16:20:55.143869+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f8e941ce-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_corrections\",\"display_name\":\"SLOs Status Corrections\",\"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.\",\"created\":\"2022-06-08T16:20:55.139410+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"ee68fba9-173a-11ed-b00b-da7ad0900002\",\"attributes\":{\"name\":\"apm_service_catalog_write\",\"display_name\":\"Service Catalog Write\",\"description\":\"Add, modify, and delete service catalog definitions when those definitions are maintained by Datadog.\",\"created\":\"2022-08-08T16:55:39.377188+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"ee68fba8-173a-11ed-b00b-da7ad0900002\",\"attributes\":{\"name\":\"apm_service_catalog_read\",\"display_name\":\"Service Catalog Read\",\"description\":\"View service catalog and service definitions.\",\"created\":\"2022-08-08T16:55:39.374377+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6be119a6-1cd8-11ed-b185-da7ad0900002\",\"attributes\":{\"name\":\"watchdog_insights_read\",\"display_name\":\"Watchdog Insights Read\",\"description\":\"Deprecated. View Watchdog Insights.\",\"created\":\"2022-08-15T20:25:36.677197+00:00\",\"group_name\":\"Watchdog\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"36e2a22e-248a-11ed-b405-da7ad0900002\",\"attributes\":{\"name\":\"connections_resolve\",\"display_name\":\"Connections Resolve\",\"description\":\"Resolve connections.\",\"created\":\"2022-08-25T15:25:56.325170+00:00\",\"group_name\":\"Workflows\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4ee674f6-55d9-11ed-b10d-da7ad0900002\",\"attributes\":{\"name\":\"appsec_protect_read\",\"display_name\":\"Application Security Management Protect Read\",\"description\":\"View blocked attackers.\",\"created\":\"2022-10-27T09:25:33.834253+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4ee7e46c-55d9-11ed-b10e-da7ad0900002\",\"attributes\":{\"name\":\"appsec_protect_write\",\"display_name\":\"Application Security Management Protect Write\",\"description\":\"Manage blocked attackers.\",\"created\":\"2022-10-27T09:25:33.843656+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4ee5731c-55d9-11ed-b10b-da7ad0900002\",\"attributes\":{\"name\":\"appsec_activation_read\",\"display_name\":\"Application Security Management 1-click Enablement Read\",\"description\":\"View whether Application Security Management has been enabled or disabled on services via 1-click enablement with Remote Configuration.\",\"created\":\"2022-10-27T09:25:33.827076+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4ee60688-55d9-11ed-b10c-da7ad0900002\",\"attributes\":{\"name\":\"appsec_activation_write\",\"display_name\":\"Application Security Management 1-click Enablement Write\",\"description\":\"Enable or disable Application Security Management on services via 1-click enablement with Remote Configuration.\",\"created\":\"2022-10-27T09:25:33.831383+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"8247acc4-7a4c-11ed-958f-da7ad0900002\",\"attributes\":{\"name\":\"cases_read\",\"display_name\":\"Cases Read\",\"description\":\"View Cases.\",\"created\":\"2022-12-12T18:40:54.018521+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"824851a6-7a4c-11ed-9590-da7ad0900002\",\"attributes\":{\"name\":\"cases_write\",\"display_name\":\"Cases Write\",\"description\":\"Create and update cases.\",\"created\":\"2022-12-12T18:40:54.023280+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"77d55a44-7a5a-11ed-8abe-da7ad0900002\",\"attributes\":{\"name\":\"apm_remote_configuration_read\",\"display_name\":\"APM Remote Configuration Read\",\"description\":\"View APM Remote Configuration.\",\"created\":\"2022-12-12T20:20:49.446298+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c5ad874-7aff-11ed-a5cd-da7ad0900002\",\"attributes\":{\"name\":\"ci_visibility_read\",\"display_name\":\"CI Visibility Read\",\"description\":\"View CI Visibility.\",\"created\":\"2022-12-13T16:01:37.149406+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"6c5c1090-7aff-11ed-a5cf-da7ad0900002\",\"attributes\":{\"name\":\"ci_visibility_write\",\"display_name\":\"CI Visibility Tests Write\",\"description\":\"Edit flaky tests and delete Test Services.\",\"created\":\"2022-12-13T16:01:37.157428+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c5b7428-7aff-11ed-a5ce-da7ad0900002\",\"attributes\":{\"name\":\"ci_visibility_settings_write\",\"display_name\":\"CI Visibility Settings Write\",\"description\":\"Configure CI Visibility settings. Set a repository default branch, enable GitHub comments, and delete test services.\",\"created\":\"2022-12-13T16:01:37.153418+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c5de654-7aff-11ed-a5d1-da7ad0900002\",\"attributes\":{\"name\":\"intelligent_test_runner_settings_write\",\"display_name\":\"Intelligent Test Runner Settings Write\",\"description\":\"Edit Intelligent Test Runner settings, such as modifying ITR excluded branch list.\",\"created\":\"2022-12-13T16:01:37.169430+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"c13a2368-7d61-11ed-b5b7-da7ad0900002\",\"attributes\":{\"name\":\"continuous_profiler_read\",\"display_name\":\"Continuous Profiler Read\",\"description\":\"View data in Continuous Profiler.\",\"created\":\"2022-12-16T16:50:32.545882+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"ca6bfb3a-b44f-11ed-adb2-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_findings_read\",\"display_name\":\"Security Monitoring Findings Read\",\"description\":\"View CSPM Findings.\",\"created\":\"2023-02-24T14:30:30.983679+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4dc3eec6-b468-11ed-8539-da7ad0900002\",\"attributes\":{\"name\":\"incident_notification_settings_read\",\"display_name\":\"Incident Notification Settings Read\",\"description\":\"View Incidents Notification settings.\",\"created\":\"2023-02-24T17:25:59.263037+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4dc4094c-b468-11ed-853a-da7ad0900002\",\"attributes\":{\"name\":\"incident_notification_settings_write\",\"display_name\":\"Incident Notification Settings Write\",\"description\":\"Configure Incidents Notification settings.\",\"created\":\"2023-02-24T17:25:59.263037+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"36bf3d0a-ccc0-11ed-9453-da7ad0900002\",\"attributes\":{\"name\":\"error_tracking_write\",\"display_name\":\"Error Tracking Write\",\"description\":\"Edit Error Tracking settings.\",\"created\":\"2023-03-27T16:55:44.263627+00:00\",\"group_name\":\"Error Tracking\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f416f55e-db3f-11ed-8028-da7ad0900002\",\"attributes\":{\"name\":\"watchdog_alerts_write\",\"display_name\":\"Watchdog Alerts Write\",\"description\":\"Manage Watchdog Alerts.\",\"created\":\"2023-04-15T03:45:24.289668+00:00\",\"group_name\":\"Watchdog\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f416b1ac-db3f-11ed-8027-da7ad0900002\",\"attributes\":{\"name\":\"saved_views_write\",\"display_name\":\"Saved Views Write\",\"description\":\"Modify Saved Views across all Datadog products.\",\"created\":\"2023-04-15T03:45:24.289668+00:00\",\"group_name\":\"Cross-Product Features\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4e61a95e-de98-11ed-aa23-da7ad0900002\",\"attributes\":{\"name\":\"client_tokens_read\",\"display_name\":\"Client Tokens Read\",\"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.\",\"created\":\"2023-04-19T09:55:24.976379+00:00\",\"group_name\":\"API and Application Keys\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4e61ea18-de98-11ed-aa24-da7ad0900002\",\"attributes\":{\"name\":\"client_tokens_write\",\"display_name\":\"Client Tokens Write\",\"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.\",\"created\":\"2023-04-19T09:55:24.976379+00:00\",\"group_name\":\"API and Application Keys\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"a4316eb8-f438-11ed-8af2-da7ad0900002\",\"attributes\":{\"name\":\"event_correlation_config_read\",\"display_name\":\"Event Correlation Config Read\",\"description\":\"Read Event Correlation Configuration data such as Correlation Rules and Settings.\",\"created\":\"2023-05-16T22:26:02.839419+00:00\",\"group_name\":\"Events\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"a431bf12-f438-11ed-8af3-da7ad0900002\",\"attributes\":{\"name\":\"event_correlation_config_write\",\"display_name\":\"Event Correlation Config Write\",\"description\":\"Manage Event Correlation Configuration such as Correlation Rules and Settings.\",\"created\":\"2023-05-16T22:26:02.839419+00:00\",\"group_name\":\"Events\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"8352cf04-f6ac-11ed-9ec7-da7ad0900002\",\"attributes\":{\"name\":\"event_config_write\",\"display_name\":\"Event Config Write\",\"description\":\"Manage general event configuration such as API Emails.\",\"created\":\"2023-05-20T01:20:31.639587+00:00\",\"group_name\":\"Events\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"3a48350c-f9bc-11ed-b81c-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_findings_write\",\"display_name\":\"Security Monitoring Findings Write\",\"description\":\"Mute CSPM Findings.\",\"created\":\"2023-05-23T22:50:34.532448+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"a773e3d8-fff2-11ed-965c-da7ad0900002\",\"attributes\":{\"name\":\"cloud_cost_management_read\",\"display_name\":\"Cloud Cost Management Read\",\"description\":\"View Cloud Cost pages. This does not restrict access to the cloud cost data source in dashboards and notebooks.\",\"created\":\"2023-05-31T20:35:17.490437+00:00\",\"group_name\":\"Cloud Cost Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"a77452c8-fff2-11ed-965d-da7ad0900002\",\"attributes\":{\"name\":\"cloud_cost_management_write\",\"display_name\":\"Cloud Cost Management Write\",\"description\":\"Configure cloud cost accounts and global customizations.\",\"created\":\"2023-05-31T20:35:17.490437+00:00\",\"group_name\":\"Cloud Cost Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"a51b375a-ff73-11ed-8c18-da7ad0900002\",\"attributes\":{\"name\":\"host_tags_write\",\"display_name\":\"Host Tags Write\",\"description\":\"Add and change tags on hosts.\",\"created\":\"2023-05-31T05:26:07.469293+00:00\",\"group_name\":\"Metrics\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"61f9891a-0070-11ee-9c3f-da7ad0900002\",\"attributes\":{\"name\":\"ci_visibility_pipelines_write\",\"display_name\":\"CI Visibility Pipelines Write\",\"description\":\"Create CI Visibility pipeline spans using the API.\",\"created\":\"2023-06-01T11:35:17.513706+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1377d9e4-0ec7-11ee-aebc-da7ad0900002\",\"attributes\":{\"name\":\"quality_gate_rules_read\",\"display_name\":\"Quality Gate Rules Read\",\"description\":\"View Quality Gate Rules.\",\"created\":\"2023-06-19T17:31:08.295856+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"cc8cd958-11eb-11ee-ade2-da7ad0900002\",\"attributes\":{\"name\":\"metrics_metadata_write\",\"display_name\":\"Metrics Metadata Write\",\"description\":\"Edit metadata on metrics.\",\"created\":\"2023-06-23T17:31:34.182629+00:00\",\"group_name\":\"Metrics\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b1ad77e6-0949-11ee-b2c3-da7ad0900002\",\"attributes\":{\"name\":\"appsec_vm_write\",\"display_name\":\"Application Security Vulnerability Management Write\",\"description\":\"Update status or assignee of Application Security vulnerabilities.\",\"created\":\"2023-06-12T17:51:01.325450+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b1adb5da-0949-11ee-b2c4-da7ad0900002\",\"attributes\":{\"name\":\"reference_tables_write\",\"display_name\":\"Reference Tables Write\",\"description\":\"Create or modify Reference Tables.\",\"created\":\"2023-06-12T17:51:01.325450+00:00\",\"group_name\":\"Reference Tables\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"0efeff18-1cec-11ee-992d-da7ad0900002\",\"attributes\":{\"name\":\"rum_playlist_write\",\"display_name\":\"RUM Playlist Write\",\"description\":\"Create, update, and delete RUM playlists. Add and remove sessions from RUM playlists.\",\"created\":\"2023-07-07T17:31:08.450865+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"785177a6-20da-11ee-bed7-da7ad0900002\",\"attributes\":{\"name\":\"processes_generate_metrics\",\"display_name\":\"Processes Generate Metrics\",\"description\":\"Create custom metrics from processes.\",\"created\":\"2023-07-12T17:35:18.858294+00:00\",\"group_name\":\"Processes\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1b8f54cc-2ca4-11ee-9e72-da7ad0900002\",\"attributes\":{\"name\":\"facets_write\",\"display_name\":\"Facets Write\",\"description\":\"Manage facets for products other than Log Management, such as APM Traces. To modify Log Facets, use Logs Write Facets.\",\"created\":\"2023-07-27T17:36:24.369352+00:00\",\"group_name\":\"Cross-Product Features\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"roles\",\"id\":\"94172442-be03-11e9-a77a-3b7612558ac1\",\"attributes\":{\"name\":\"Datadog Admin Role\",\"created_at\":\"2019-08-13T19:50:19.022791+00:00\",\"modified_at\":\"2019-08-13T19:50:19.022791+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\"},{\"type\":\"permissions\",\"id\":\"984d2f00-d3b4-11e8-a200-bb47109e9987\"},{\"type\":\"permissions\",\"id\":\"5e605652-dd12-11e8-9e53-375565b8970e\"},{\"type\":\"permissions\",\"id\":\"62cc036c-dd12-11e8-9e54-db9995643092\"},{\"type\":\"permissions\",\"id\":\"6f66600e-dd12-11e8-9e55-7f30fbb45e73\"},{\"type\":\"permissions\",\"id\":\"7d7c98ac-dd12-11e8-9e56-93700598622d\"},{\"type\":\"permissions\",\"id\":\"811ac4ca-dd12-11e8-9e57-676a7f0beef9\"},{\"type\":\"permissions\",\"id\":\"84aa3ae4-dd12-11e8-9e58-a373a514ccd0\"},{\"type\":\"permissions\",\"id\":\"87b00304-dd12-11e8-9e59-cbeb5f71f72f\"},{\"type\":\"permissions\",\"id\":\"979df720-aed7-11e9-99c6-a7eb8373165a\"},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"d90f6831-d3d8-11e9-a77a-4fd230ddbc6a\"},{\"type\":\"permissions\",\"id\":\"d90f6832-d3d8-11e9-a77a-bf8a2607f864\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"48ef71ea-d8b1-11e9-a77a-93f408470ad0\"},{\"type\":\"permissions\",\"id\":\"4d87d5f8-d8b1-11e9-a77a-eb9c8350d04f\"},{\"type\":\"permissions\",\"id\":\"1af86ce4-7823-11ea-93dc-d7cad1b1c6cb\"},{\"type\":\"permissions\",\"id\":\"b382b982-8535-11ea-93de-2bf1bdf20798\"},{\"type\":\"permissions\",\"id\":\"7314eb20-aa58-11ea-95e2-6fb6e4a451d5\"},{\"type\":\"permissions\",\"id\":\"7b516476-aa58-11ea-95e2-93718cd56369\"},{\"type\":\"permissions\",\"id\":\"80de1ec0-aa58-11ea-95e2-aff381626d5d\"},{\"type\":\"permissions\",\"id\":\"58b412cc-ff6d-11eb-bc9c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"9ac1d8cc-e707-11ea-aa2d-73d37e989a9d\"},{\"type\":\"permissions\",\"id\":\"9de604d8-e707-11ea-aa2d-93f1a783b3a3\"},{\"type\":\"permissions\",\"id\":\"46a301da-ec5c-11ea-aa9f-73bedeab67ee\"},{\"type\":\"permissions\",\"id\":\"46a301db-ec5c-11ea-aa9f-2fe72193d60e\"},{\"type\":\"permissions\",\"id\":\"46a301dc-ec5c-11ea-aa9f-13b33f8f46ea\"},{\"type\":\"permissions\",\"id\":\"46a301dd-ec5c-11ea-aa9f-97edfb345bc9\"},{\"type\":\"permissions\",\"id\":\"46a301de-ec5c-11ea-aa9f-a73252c24806\"},{\"type\":\"permissions\",\"id\":\"46a301df-ec5c-11ea-aa9f-970a9ae645e5\"},{\"type\":\"permissions\",\"id\":\"46a301e0-ec5c-11ea-aa9f-6ba6cc675d8c\"},{\"type\":\"permissions\",\"id\":\"46a301e1-ec5c-11ea-aa9f-afa39f6f3e36\"},{\"type\":\"permissions\",\"id\":\"46a301e2-ec5c-11ea-aa9f-1f511b7305fd\"},{\"type\":\"permissions\",\"id\":\"46a301e4-ec5c-11ea-aa9f-87282b3a50cc\"},{\"type\":\"permissions\",\"id\":\"07c3c146-f7f8-11ea-acf6-0bd62b9ae60e\"},{\"type\":\"permissions\",\"id\":\"2fbdac76-f923-11ea-adbc-07f3823e2b43\"},{\"type\":\"permissions\",\"id\":\"372896c4-f923-11ea-adbc-4fecd107156d\"},{\"type\":\"permissions\",\"id\":\"3e4d4d28-f923-11ea-adbc-e3565938c12e\"},{\"type\":\"permissions\",\"id\":\"4628ca54-f923-11ea-adbc-4b2b7f88c5e9\"},{\"type\":\"permissions\",\"id\":\"4ada6e36-f923-11ea-adbc-0788e5c5e3cf\"},{\"type\":\"permissions\",\"id\":\"5025ee24-f923-11ea-adbc-576ea241df8d\"},{\"type\":\"permissions\",\"id\":\"55f4b5ec-f923-11ea-adbc-1bfa2334a755\"},{\"type\":\"permissions\",\"id\":\"5c6b88e2-f923-11ea-adbc-abf57d079420\"},{\"type\":\"permissions\",\"id\":\"642eebe6-f923-11ea-adbc-eb617674ea04\"},{\"type\":\"permissions\",\"id\":\"6ba32d22-0e1a-11eb-ba44-bf9a5aafaa39\"},{\"type\":\"permissions\",\"id\":\"a42e94b2-1476-11eb-bd08-efda28c04248\"},{\"type\":\"permissions\",\"id\":\"fcac2ad8-2843-11eb-8315-0fe47949d625\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"43fa188e-2dce-11eb-84c0-835ad1fd6287\"},{\"type\":\"permissions\",\"id\":\"465cfe66-2dce-11eb-84c0-6baa888239fa\"},{\"type\":\"permissions\",\"id\":\"4916eebe-2dce-11eb-84c0-271cb2c672e8\"},{\"type\":\"permissions\",\"id\":\"4e3f02b4-2dce-11eb-84c0-2fca946a6efc\"},{\"type\":\"permissions\",\"id\":\"53950c54-2dce-11eb-84c0-a79ae108f6f8\"},{\"type\":\"permissions\",\"id\":\"5cbe5f9c-2dce-11eb-84c0-872d3e9f1076\"},{\"type\":\"permissions\",\"id\":\"61765026-2dce-11eb-84c0-833e230d1b8f\"},{\"type\":\"permissions\",\"id\":\"04bc1cf2-340a-11eb-873a-43b973c760dd\"},{\"type\":\"permissions\",\"id\":\"8106300a-54f7-11eb-8cbc-7781a434a67b\"},{\"type\":\"permissions\",\"id\":\"edfd5e74-801f-11eb-96d8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"edfd5e75-801f-11eb-96d8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"bf0dcf7c-90af-11eb-9b82-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"bf0dcf7d-90af-11eb-9b82-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"98b984f4-b16d-11eb-a2c6-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"98b984f5-b16d-11eb-a2c6-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc211-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc20f-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc210-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1d-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef25-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"c95412b8-16c7-11ec-85c0-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"c95412b9-16c7-11ec-85c0-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"26c79920-1703-11ec-85d2-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f4473c60-4792-11ec-a27b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f4473c61-4792-11ec-a27b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"020a563c-56a4-11ec-a982-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"8e4d6b6e-5750-11ec-a9f4-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"945b3bb4-5884-11ec-aa6d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"945b3bb5-5884-11ec-aa6d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f6e917a8-8502-11ec-bf20-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f6e917aa-8502-11ec-bf20-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f6e917a9-8502-11ec-bf20-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f6e917a6-8502-11ec-bf20-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f6e917a7-8502-11ec-bf20-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac7-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"e35c06b0-966b-11ec-83c9-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"2108215e-b9b4-11ec-958e-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7b1f5089-c59e-11ec-aa32-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"1afff448-d5e9-11ec-ae37-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"1afff449-d5e9-11ec-ae37-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c87d3da-e5c5-11ec-b1d6-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941d0-e746-11ec-b22d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941ce-e746-11ec-b22d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4784b11c-f311-11ec-a5f5-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"ee68fba9-173a-11ed-b00b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"ee68fba8-173a-11ed-b00b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"5b2c3e28-1761-11ed-b018-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6be119a6-1cd8-11ed-b185-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"36e2a22e-248a-11ed-b405-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4ee674f6-55d9-11ed-b10d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4ee7e46c-55d9-11ed-b10e-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4ee5731c-55d9-11ed-b10b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4ee60688-55d9-11ed-b10c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"8247acc4-7a4c-11ed-958f-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"824851a6-7a4c-11ed-9590-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"77d5f45e-7a5a-11ed-8abf-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"77d55a44-7a5a-11ed-8abe-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5ad874-7aff-11ed-a5cd-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5c1090-7aff-11ed-a5cf-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c59ae72-7aff-11ed-a5cc-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5b7428-7aff-11ed-a5ce-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5d0892-7aff-11ed-a5d0-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5de654-7aff-11ed-a5d1-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"c13a2368-7d61-11ed-b5b7-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"1d76ecfa-9771-11ed-9c2f-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"ca6bfb3a-b44f-11ed-adb2-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4dc3eec6-b468-11ed-8539-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4dc4094c-b468-11ed-853a-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"35dd33ea-ca2e-11ed-bca0-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"36bf3d0a-ccc0-11ed-9453-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f416f55e-db3f-11ed-8028-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f416b1ac-db3f-11ed-8027-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4e61a95e-de98-11ed-aa23-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4e61ea18-de98-11ed-aa24-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"a4316eb8-f438-11ed-8af2-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"a431bf12-f438-11ed-8af3-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"8352cf04-f6ac-11ed-9ec7-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"3a48350c-f9bc-11ed-b81c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"a773e3d8-fff2-11ed-965c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"a77452c8-fff2-11ed-965d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"a51b375a-ff73-11ed-8c18-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"61f9891a-0070-11ee-9c3f-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"1377d9e4-0ec7-11ee-aebc-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"1377ff28-0ec7-11ee-aebd-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"cc8cd958-11eb-11ee-ade2-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b1adb6e8-0949-11ee-b2c5-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b1ad77e6-0949-11ee-b2c3-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b1adb5da-0949-11ee-b2c4-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"0efeff18-1cec-11ee-992d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5ce898-21a4-11ee-99ef-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5ce992-21a4-11ee-99f0-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"785177a6-20da-11ee-bed7-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7850e390-20da-11ee-bed6-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"1b8f54cc-2ca4-11ee-9e72-da7ad0900002\"}]}}},{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"attributes\":{\"name\":\"admin\",\"display_name\":\"Privileged Access\",\"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.\",\"created\":\"2018-10-19T15:35:23.734317+00:00\",\"group_name\":\"General\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"87b00304-dd12-11e8-9e59-cbeb5f71f72f\",\"attributes\":{\"name\":\"logs_write_archives\",\"display_name\":\"Logs Write Archives\",\"description\":\"Add and edit Log Archives.\",\"created\":\"2018-10-31T13:40:29.040786+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"9de604d8-e707-11ea-aa2d-93f1a783b3a3\",\"attributes\":{\"name\":\"user_access_manage\",\"display_name\":\"User Access Manage\",\"description\":\"Disable users, manage user roles, manage SAML-to-role mappings, and configure logs restriction queries.\",\"created\":\"2020-08-25T19:17:28.810412+00:00\",\"group_name\":\"Access Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"46a301dc-ec5c-11ea-aa9f-13b33f8f46ea\",\"attributes\":{\"name\":\"org_app_keys_write\",\"display_name\":\"Org App Keys Write\",\"description\":\"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\":\"46a301de-ec5c-11ea-aa9f-a73252c24806\",\"attributes\":{\"name\":\"synthetics_private_location_write\",\"display_name\":\"Synthetics Private Locations Write\",\"description\":\"Create and delete private locations in addition to having access to 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 Read\",\"description\":\"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 Edit\",\"description\":\"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 Read\",\"description\":\"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 Edit\",\"description\":\"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\":\"2fbdac76-f923-11ea-adbc-07f3823e2b43\",\"attributes\":{\"name\":\"audit_logs_read\",\"display_name\":\"Audit Trail Read\",\"description\":\"View Audit Trail in your organization.\",\"created\":\"2020-09-17T20:20:10.834252+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"3e4d4d28-f923-11ea-adbc-e3565938c12e\",\"attributes\":{\"name\":\"api_keys_write\",\"display_name\":\"API Keys Write\",\"description\":\"Create and rename 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\":\"a42e94b2-1476-11eb-bd08-efda28c04248\",\"attributes\":{\"name\":\"service_account_write\",\"display_name\":\"Service Account Write\",\"description\":\"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\":\"465cfe66-2dce-11eb-84c0-6baa888239fa\",\"attributes\":{\"name\":\"apm_retention_filter_write\",\"display_name\":\"APM Retention Filters Write\",\"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.\",\"created\":\"2020-11-23T20:55:53.194236+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4e3f02b4-2dce-11eb-84c0-2fca946a6efc\",\"attributes\":{\"name\":\"apm_service_ingest_write\",\"display_name\":\"APM Service Ingest Write\",\"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.\",\"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\":\"APM Apdex Manage Write\",\"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.\",\"created\":\"2020-11-23T20:56:15.371926+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 Trail Write\",\"description\":\"Configure Audit Trail in your organization.\",\"created\":\"2020-12-01T19:18:39.866516+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"edfd5e74-801f-11eb-96d8-da7ad0900002\",\"attributes\":{\"name\":\"debugger_write\",\"display_name\":\"Dynamic Instrumentation Write Configuration\",\"description\":\"Edit Dynamic Instrumentation configuration.\",\"created\":\"2021-03-08T15:06:59.006815+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7c-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_read\",\"display_name\":\"Data Scanner Read\",\"description\":\"View Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.394971+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7d-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_write\",\"display_name\":\"Data Scanner Write\",\"description\":\"Edit Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.398584+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\",\"attributes\":{\"name\":\"org_management\",\"display_name\":\"Org Management\",\"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 & unsubscribing from apps in the marketplace, and enabling & disabling Remote Configuration for the entire organization.\",\"created\":\"2021-04-23T17:51:12.187340+00:00\",\"group_name\":\"Access Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"98b984f5-b16d-11eb-a2c6-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_filters_write\",\"display_name\":\"Security Filters Write\",\"description\":\"Create, edit, and delete Security Filters.\",\"created\":\"2021-05-10T08:56:23.680551+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"020a563c-56a4-11ec-a982-da7ad0900002\",\"attributes\":{\"name\":\"apm_pipelines_write\",\"display_name\":\"APM Pipelines Write\",\"description\":\"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\":\"945b3bb5-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_write\",\"display_name\":\"Pipeline Configurations Write\",\"description\":\"Create, edit, and delete pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.960833+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"e35c06b0-966b-11ec-83c9-da7ad0900002\",\"attributes\":{\"name\":\"logs_delete_data\",\"display_name\":\"Logs Delete Data\",\"description\":\"Delete data from your Logs, including entire indexes.\",\"created\":\"2022-02-25T18:51:06.176019+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1afff448-d5e9-11ec-ae37-da7ad0900002\",\"attributes\":{\"name\":\"usage_notifications_read\",\"display_name\":\"Usage Notifications Read\",\"description\":\"Receive notifications and view currently configured notification settings.\",\"created\":\"2022-05-17T13:56:09.870985+00:00\",\"group_name\":\"Billing and Usage\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1afff449-d5e9-11ec-ae37-da7ad0900002\",\"attributes\":{\"name\":\"usage_notifications_write\",\"display_name\":\"Usage Notifications Write\",\"description\":\"Receive notifications and configure notification settings.\",\"created\":\"2022-05-17T13:56:09.876124+00:00\",\"group_name\":\"Billing and Usage\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c87d3da-e5c5-11ec-b1d6-da7ad0900002\",\"attributes\":{\"name\":\"generate_dashboard_reports\",\"display_name\":\"Dashboards Report Write\",\"description\":\"Schedule custom reports from a dashboard. These reports will display any viewable data regardless of any granular restrictions (restriction queries, scoped indexes) applied to the report's creator.\",\"created\":\"2022-06-06T18:21:03.378896+00:00\",\"group_name\":\"Dashboards\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4784b11c-f311-11ec-a5f5-da7ad0900002\",\"attributes\":{\"name\":\"monitor_config_policy_write\",\"display_name\":\"Monitor Configuration Policy Write\",\"description\":\"Create, update, and delete monitor configuration policies.\",\"created\":\"2022-06-23T16:26:48.150556+00:00\",\"group_name\":\"Monitors\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"5b2c3e28-1761-11ed-b018-da7ad0900002\",\"attributes\":{\"name\":\"logs_write_forwarding_rules\",\"display_name\":\"Logs Write Forwarding Rules\",\"description\":\"Add and edit forwarding destinations and rules for logs.\",\"created\":\"2022-08-08T21:30:42.723663+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"77d5f45e-7a5a-11ed-8abf-da7ad0900002\",\"attributes\":{\"name\":\"apm_remote_configuration_write\",\"display_name\":\"APM Remote Configuration Write\",\"description\":\"Edit APM Remote Configuration.\",\"created\":\"2022-12-12T20:20:49.450768+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c59ae72-7aff-11ed-a5cc-da7ad0900002\",\"attributes\":{\"name\":\"ci_provider_settings_write\",\"display_name\":\"CI Provider Settings Write\",\"description\":\"Edit CI Provider settings. Manage GitHub accounts and repositories for enabling CI Visibility and job logs collection.\",\"created\":\"2022-12-13T16:01:37.141217+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c5d0892-7aff-11ed-a5d0-da7ad0900002\",\"attributes\":{\"name\":\"intelligent_test_runner_activation_write\",\"display_name\":\"Intelligent Test Runner Activation Write\",\"description\":\"Enable or disable Intelligent Test Runner.\",\"created\":\"2022-12-13T16:01:37.163771+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1d76ecfa-9771-11ed-9c2f-da7ad0900002\",\"attributes\":{\"name\":\"teams_manage\",\"display_name\":\"Teams Manage\",\"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.\",\"created\":\"2023-01-18T20:45:59.977837+00:00\",\"group_name\":\"Teams\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"35dd33ea-ca2e-11ed-bca0-da7ad0900002\",\"attributes\":{\"name\":\"ci_ingestion_control_write\",\"display_name\":\"CI Visibility Ingestion Control Write\",\"description\":\"Edit CI Ingestion Control exclusion filters.\",\"created\":\"2023-03-24T10:25:33.934187+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1377ff28-0ec7-11ee-aebd-da7ad0900002\",\"attributes\":{\"name\":\"quality_gate_rules_write\",\"display_name\":\"Quality Gate Rules Write\",\"description\":\"Edit Quality Gate Rules.\",\"created\":\"2023-06-19T17:31:08.295856+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b1adb6e8-0949-11ee-b2c5-da7ad0900002\",\"attributes\":{\"name\":\"rum_delete_data\",\"display_name\":\"RUM Delete Data\",\"description\":\"Delete data from RUM.\",\"created\":\"2023-06-12T17:51:01.325450+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c5ce898-21a4-11ee-99ef-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_delete\",\"display_name\":\"Pipeline Delete\",\"description\":\"Delete pipelines from your organization.\",\"created\":\"2023-07-13T17:40:57.140947+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c5ce992-21a4-11ee-99f0-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_deploy\",\"display_name\":\"Pipeline Deploy\",\"description\":\"Deploy pipelines in your organization.\",\"created\":\"2023-07-13T17:40:57.140947+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7850e390-20da-11ee-bed6-da7ad0900002\",\"attributes\":{\"name\":\"api_keys_delete\",\"display_name\":\"API Keys Delete\",\"description\":\"Delete API Keys for your organization.\",\"created\":\"2023-07-12T17:35:18.858294+00:00\",\"group_name\":\"API and Application Keys\",\"display_type\":\"write\",\"restricted\":false}}],\"meta\":{\"page\":{\"total_count\":203828,\"total_filtered_count\":203828}}}\n", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Tue, 05 Sep 2023 13:14:24 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/users?page%5Bsize%5D=2&page%5Bnumber%5D=0" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"users\",\"id\":\"f0182270-a635-11ed-af86-0ec0bd96ac3b\",\"attributes\":{\"name\":\"Alan\",\"handle\":\"alan@datadoghq.com\",\"created_at\":\"2023-02-06T15:50:10.995740+00:00\",\"modified_at\":\"2023-02-06T15:51:59.847148+00:00\",\"email\":\"alan@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/c4b2f071a7e83e98302afbc9889cfc18?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"roles\":{\"data\":[{\"type\":\"roles\",\"id\":\"94172442-be03-11e9-a77a-3b7612558ac1\"}]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}},{\"type\":\"users\",\"id\":\"af29975c-059c-11ea-a77c-c3d911d2ed55\",\"attributes\":{\"name\":\"Bob\",\"handle\":\"bob@datadoghq.com\",\"created_at\":\"2019-11-12T22:35:09.997764+00:00\",\"modified_at\":\"2019-11-12T22:35:27.629304+00:00\",\"email\":\"andrew.mcburney@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/9f33d217ff6f6bc97b7e0b8b9828554d?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"roles\":{\"data\":[{\"type\":\"roles\",\"id\":\"94172442-be03-11e9-a77a-3b7612558ac1\"}]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}],\"included\":[{\"type\":\"roles\",\"id\":\"94172442-be03-11e9-a77a-3b7612558ac1\",\"attributes\":{\"name\":\"Datadog Admin Role\",\"created_at\":\"2019-08-13T19:50:19.022791+00:00\",\"modified_at\":\"2019-08-13T19:50:19.022791+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\"},{\"type\":\"permissions\",\"id\":\"984d2f00-d3b4-11e8-a200-bb47109e9987\"},{\"type\":\"permissions\",\"id\":\"5e605652-dd12-11e8-9e53-375565b8970e\"},{\"type\":\"permissions\",\"id\":\"62cc036c-dd12-11e8-9e54-db9995643092\"},{\"type\":\"permissions\",\"id\":\"6f66600e-dd12-11e8-9e55-7f30fbb45e73\"},{\"type\":\"permissions\",\"id\":\"7d7c98ac-dd12-11e8-9e56-93700598622d\"},{\"type\":\"permissions\",\"id\":\"811ac4ca-dd12-11e8-9e57-676a7f0beef9\"},{\"type\":\"permissions\",\"id\":\"84aa3ae4-dd12-11e8-9e58-a373a514ccd0\"},{\"type\":\"permissions\",\"id\":\"87b00304-dd12-11e8-9e59-cbeb5f71f72f\"},{\"type\":\"permissions\",\"id\":\"979df720-aed7-11e9-99c6-a7eb8373165a\"},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"d90f6831-d3d8-11e9-a77a-4fd230ddbc6a\"},{\"type\":\"permissions\",\"id\":\"d90f6832-d3d8-11e9-a77a-bf8a2607f864\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"48ef71ea-d8b1-11e9-a77a-93f408470ad0\"},{\"type\":\"permissions\",\"id\":\"4d87d5f8-d8b1-11e9-a77a-eb9c8350d04f\"},{\"type\":\"permissions\",\"id\":\"1af86ce4-7823-11ea-93dc-d7cad1b1c6cb\"},{\"type\":\"permissions\",\"id\":\"b382b982-8535-11ea-93de-2bf1bdf20798\"},{\"type\":\"permissions\",\"id\":\"7314eb20-aa58-11ea-95e2-6fb6e4a451d5\"},{\"type\":\"permissions\",\"id\":\"7b516476-aa58-11ea-95e2-93718cd56369\"},{\"type\":\"permissions\",\"id\":\"80de1ec0-aa58-11ea-95e2-aff381626d5d\"},{\"type\":\"permissions\",\"id\":\"58b412cc-ff6d-11eb-bc9c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"9ac1d8cc-e707-11ea-aa2d-73d37e989a9d\"},{\"type\":\"permissions\",\"id\":\"9de604d8-e707-11ea-aa2d-93f1a783b3a3\"},{\"type\":\"permissions\",\"id\":\"46a301da-ec5c-11ea-aa9f-73bedeab67ee\"},{\"type\":\"permissions\",\"id\":\"46a301db-ec5c-11ea-aa9f-2fe72193d60e\"},{\"type\":\"permissions\",\"id\":\"46a301dc-ec5c-11ea-aa9f-13b33f8f46ea\"},{\"type\":\"permissions\",\"id\":\"46a301dd-ec5c-11ea-aa9f-97edfb345bc9\"},{\"type\":\"permissions\",\"id\":\"46a301de-ec5c-11ea-aa9f-a73252c24806\"},{\"type\":\"permissions\",\"id\":\"46a301df-ec5c-11ea-aa9f-970a9ae645e5\"},{\"type\":\"permissions\",\"id\":\"46a301e0-ec5c-11ea-aa9f-6ba6cc675d8c\"},{\"type\":\"permissions\",\"id\":\"46a301e1-ec5c-11ea-aa9f-afa39f6f3e36\"},{\"type\":\"permissions\",\"id\":\"46a301e2-ec5c-11ea-aa9f-1f511b7305fd\"},{\"type\":\"permissions\",\"id\":\"46a301e4-ec5c-11ea-aa9f-87282b3a50cc\"},{\"type\":\"permissions\",\"id\":\"07c3c146-f7f8-11ea-acf6-0bd62b9ae60e\"},{\"type\":\"permissions\",\"id\":\"2fbdac76-f923-11ea-adbc-07f3823e2b43\"},{\"type\":\"permissions\",\"id\":\"372896c4-f923-11ea-adbc-4fecd107156d\"},{\"type\":\"permissions\",\"id\":\"3e4d4d28-f923-11ea-adbc-e3565938c12e\"},{\"type\":\"permissions\",\"id\":\"4628ca54-f923-11ea-adbc-4b2b7f88c5e9\"},{\"type\":\"permissions\",\"id\":\"4ada6e36-f923-11ea-adbc-0788e5c5e3cf\"},{\"type\":\"permissions\",\"id\":\"5025ee24-f923-11ea-adbc-576ea241df8d\"},{\"type\":\"permissions\",\"id\":\"55f4b5ec-f923-11ea-adbc-1bfa2334a755\"},{\"type\":\"permissions\",\"id\":\"5c6b88e2-f923-11ea-adbc-abf57d079420\"},{\"type\":\"permissions\",\"id\":\"642eebe6-f923-11ea-adbc-eb617674ea04\"},{\"type\":\"permissions\",\"id\":\"6ba32d22-0e1a-11eb-ba44-bf9a5aafaa39\"},{\"type\":\"permissions\",\"id\":\"a42e94b2-1476-11eb-bd08-efda28c04248\"},{\"type\":\"permissions\",\"id\":\"fcac2ad8-2843-11eb-8315-0fe47949d625\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"43fa188e-2dce-11eb-84c0-835ad1fd6287\"},{\"type\":\"permissions\",\"id\":\"465cfe66-2dce-11eb-84c0-6baa888239fa\"},{\"type\":\"permissions\",\"id\":\"4916eebe-2dce-11eb-84c0-271cb2c672e8\"},{\"type\":\"permissions\",\"id\":\"4e3f02b4-2dce-11eb-84c0-2fca946a6efc\"},{\"type\":\"permissions\",\"id\":\"53950c54-2dce-11eb-84c0-a79ae108f6f8\"},{\"type\":\"permissions\",\"id\":\"5cbe5f9c-2dce-11eb-84c0-872d3e9f1076\"},{\"type\":\"permissions\",\"id\":\"61765026-2dce-11eb-84c0-833e230d1b8f\"},{\"type\":\"permissions\",\"id\":\"04bc1cf2-340a-11eb-873a-43b973c760dd\"},{\"type\":\"permissions\",\"id\":\"8106300a-54f7-11eb-8cbc-7781a434a67b\"},{\"type\":\"permissions\",\"id\":\"edfd5e74-801f-11eb-96d8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"edfd5e75-801f-11eb-96d8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"bf0dcf7c-90af-11eb-9b82-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"bf0dcf7d-90af-11eb-9b82-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"98b984f4-b16d-11eb-a2c6-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"98b984f5-b16d-11eb-a2c6-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc211-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc20f-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc210-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1d-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef25-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"c95412b8-16c7-11ec-85c0-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"c95412b9-16c7-11ec-85c0-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"26c79920-1703-11ec-85d2-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f4473c60-4792-11ec-a27b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f4473c61-4792-11ec-a27b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"020a563c-56a4-11ec-a982-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"8e4d6b6e-5750-11ec-a9f4-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"945b3bb4-5884-11ec-aa6d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"945b3bb5-5884-11ec-aa6d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f6e917a8-8502-11ec-bf20-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f6e917aa-8502-11ec-bf20-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f6e917a9-8502-11ec-bf20-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f6e917a6-8502-11ec-bf20-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f6e917a7-8502-11ec-bf20-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac7-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"e35c06b0-966b-11ec-83c9-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"2108215e-b9b4-11ec-958e-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7b1f5089-c59e-11ec-aa32-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"1afff448-d5e9-11ec-ae37-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"1afff449-d5e9-11ec-ae37-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c87d3da-e5c5-11ec-b1d6-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941d0-e746-11ec-b22d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941ce-e746-11ec-b22d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4784b11c-f311-11ec-a5f5-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"ee68fba9-173a-11ed-b00b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"ee68fba8-173a-11ed-b00b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"5b2c3e28-1761-11ed-b018-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6be119a6-1cd8-11ed-b185-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"36e2a22e-248a-11ed-b405-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4ee674f6-55d9-11ed-b10d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4ee7e46c-55d9-11ed-b10e-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4ee5731c-55d9-11ed-b10b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4ee60688-55d9-11ed-b10c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"8247acc4-7a4c-11ed-958f-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"824851a6-7a4c-11ed-9590-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"77d5f45e-7a5a-11ed-8abf-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"77d55a44-7a5a-11ed-8abe-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5ad874-7aff-11ed-a5cd-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5c1090-7aff-11ed-a5cf-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c59ae72-7aff-11ed-a5cc-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5b7428-7aff-11ed-a5ce-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5d0892-7aff-11ed-a5d0-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5de654-7aff-11ed-a5d1-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"c13a2368-7d61-11ed-b5b7-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"1d76ecfa-9771-11ed-9c2f-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"ca6bfb3a-b44f-11ed-adb2-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4dc3eec6-b468-11ed-8539-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4dc4094c-b468-11ed-853a-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"35dd33ea-ca2e-11ed-bca0-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"36bf3d0a-ccc0-11ed-9453-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f416f55e-db3f-11ed-8028-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f416b1ac-db3f-11ed-8027-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4e61a95e-de98-11ed-aa23-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4e61ea18-de98-11ed-aa24-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"a4316eb8-f438-11ed-8af2-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"a431bf12-f438-11ed-8af3-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"8352cf04-f6ac-11ed-9ec7-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"3a48350c-f9bc-11ed-b81c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"a773e3d8-fff2-11ed-965c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"a77452c8-fff2-11ed-965d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"a51b375a-ff73-11ed-8c18-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"61f9891a-0070-11ee-9c3f-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"1377d9e4-0ec7-11ee-aebc-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"1377ff28-0ec7-11ee-aebd-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"cc8cd958-11eb-11ee-ade2-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b1adb6e8-0949-11ee-b2c5-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b1ad77e6-0949-11ee-b2c3-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b1adb5da-0949-11ee-b2c4-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"0efeff18-1cec-11ee-992d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5ce898-21a4-11ee-99ef-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5ce992-21a4-11ee-99f0-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"785177a6-20da-11ee-bed7-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7850e390-20da-11ee-bed6-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"1b8f54cc-2ca4-11ee-9e72-da7ad0900002\"}]}}},{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"attributes\":{\"name\":\"admin\",\"display_name\":\"Privileged Access\",\"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.\",\"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\":\"View and edit components in your Datadog organization that do not have explicitly defined permissions.\",\"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\":\"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. Restrictions are limited to the Log Management product.\",\"created\":\"2018-10-31T13:39:19.727450+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"62cc036c-dd12-11e8-9e54-db9995643092\",\"attributes\":{\"name\":\"logs_modify_indexes\",\"display_name\":\"Logs Modify Indexes\",\"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.\",\"created\":\"2018-10-31T13:39:27.148615+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6f66600e-dd12-11e8-9e55-7f30fbb45e73\",\"attributes\":{\"name\":\"logs_live_tail\",\"display_name\":\"Logs Live Tail\",\"description\":\"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\":\"Log Management\",\"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\":\"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\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"811ac4ca-dd12-11e8-9e57-676a7f0beef9\",\"attributes\":{\"name\":\"logs_write_pipelines\",\"display_name\":\"Logs Write Pipelines\",\"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.\",\"created\":\"2018-10-31T13:40:17.996379+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"84aa3ae4-dd12-11e8-9e58-a373a514ccd0\",\"attributes\":{\"name\":\"logs_write_processors\",\"display_name\":\"Logs Write Processors\",\"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.\",\"created\":\"2018-10-31T13:40:23.969725+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"87b00304-dd12-11e8-9e59-cbeb5f71f72f\",\"attributes\":{\"name\":\"logs_write_archives\",\"display_name\":\"Logs Write Archives\",\"description\":\"Add and edit Log Archives.\",\"created\":\"2018-10-31T13:40:29.040786+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"979df720-aed7-11e9-99c6-a7eb8373165a\",\"attributes\":{\"name\":\"logs_generate_metrics\",\"display_name\":\"Logs Generate Metrics\",\"description\":\"Create custom metrics from logs.\",\"created\":\"2019-07-25T12:27:39.640758+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\",\"attributes\":{\"name\":\"dashboards_read\",\"display_name\":\"Dashboards Read\",\"description\":\"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 Write\",\"description\":\"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 Public Share\",\"description\":\"Generate public and authenticated links to share dashboards or embeddable graphs 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 Read\",\"description\":\"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 Write\",\"description\":\"Edit, 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\":\"Manage Downtimes\",\"description\":\"Set downtimes to suppress alerts from any monitor in an organization. Mute and unmute hosts. 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\":\"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.\",\"created\":\"2020-04-06T16:24:35.989108+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b382b982-8535-11ea-93de-2bf1bdf20798\",\"attributes\":{\"name\":\"logs_read_archives\",\"display_name\":\"Logs Read Archives\",\"description\":\"Read Log Archives location and use it for rehydration.\",\"created\":\"2020-04-23T07:40:27.966133+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7314eb20-aa58-11ea-95e2-6fb6e4a451d5\",\"attributes\":{\"name\":\"security_monitoring_rules_read\",\"display_name\":\"Security Rules Read\",\"description\":\"Read Detection Rules.\",\"created\":\"2020-06-09T13:52:25.279909+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7b516476-aa58-11ea-95e2-93718cd56369\",\"attributes\":{\"name\":\"security_monitoring_rules_write\",\"display_name\":\"Security Rules Write\",\"description\":\"Create and edit Detection Rules.\",\"created\":\"2020-06-09T13:52:39.099413+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"80de1ec0-aa58-11ea-95e2-aff381626d5d\",\"attributes\":{\"name\":\"security_monitoring_signals_read\",\"display_name\":\"Security Signals Read\",\"description\":\"View Security Signals.\",\"created\":\"2020-06-09T13:52:48.410398+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"58b412cc-ff6d-11eb-bc9c-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_signals_write\",\"display_name\":\"Security Signals Write\",\"description\":\"Modify Security Signals.\",\"created\":\"2021-08-17T15:11:06.963503+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"9ac1d8cc-e707-11ea-aa2d-73d37e989a9d\",\"attributes\":{\"name\":\"user_access_invite\",\"display_name\":\"User Access Invite\",\"description\":\"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\":\"User Access Manage\",\"description\":\"Disable users, manage user roles, manage SAML-to-role mappings, and configure logs restriction queries.\",\"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 App Keys\",\"description\":\"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\":\"Org App Keys Read\",\"description\":\"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\":\"Org App Keys Write\",\"description\":\"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\":\"Synthetics Private Locations Read\",\"description\":\"View, search, and use Synthetics private locations.\",\"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\":\"Synthetics Private Locations Write\",\"description\":\"Create and delete private locations in addition to having access to 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 Read\",\"description\":\"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 Edit\",\"description\":\"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 Read\",\"description\":\"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 Edit\",\"description\":\"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\":\"Metric Tags Write\",\"description\":\"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 Write Historical Views\",\"description\":\"Rehydrate logs from Archives.\",\"created\":\"2020-09-16T08:38:44.242076+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"2fbdac76-f923-11ea-adbc-07f3823e2b43\",\"attributes\":{\"name\":\"audit_logs_read\",\"display_name\":\"Audit Trail Read\",\"description\":\"View Audit Trail in your organization.\",\"created\":\"2020-09-17T20:20:10.834252+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"372896c4-f923-11ea-adbc-4fecd107156d\",\"attributes\":{\"name\":\"api_keys_read\",\"display_name\":\"API Keys Read\",\"description\":\"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 Write\",\"description\":\"Create and rename 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\":\"Synthetics Global Variable Read\",\"description\":\"View, search, and use Synthetics global variables.\",\"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\":\"Synthetics Global Variable Write\",\"description\":\"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\":\"Synthetics Read\",\"description\":\"List and view configured Synthetic tests and test results.\",\"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\":\"Synthetics Write\",\"description\":\"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\":\"Synthetics Default Settings Read\",\"description\":\"View the default settings for Synthetic 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\":\"Synthetics Default Settings Write\",\"description\":\"Edit the default settings for Synthetic 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 Write Facets\",\"description\":\"Create or edit Log Facets.\",\"created\":\"2020-10-14T12:40:20.271908+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"a42e94b2-1476-11eb-bd08-efda28c04248\",\"attributes\":{\"name\":\"service_account_write\",\"display_name\":\"Service Account Write\",\"description\":\"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\",\"description\":\"Deprecated. Use the Integrations APIs to configure integrations. In order to configure integrations from the UI, a user must also have Standard Access.\",\"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\",\"description\":\"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\":\"APM Retention Filters Read\",\"description\":\"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\":\"APM Retention Filters Write\",\"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.\",\"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\":\"APM Service Ingest Read\",\"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.\",\"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\":\"APM Service Ingest Write\",\"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.\",\"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\":\"APM Apdex Manage Write\",\"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.\",\"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\":\"APM Tag Management Write\",\"description\":\"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\":\"APM Primary Operation Write\",\"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.\",\"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 Trail Write\",\"description\":\"Configure Audit Trail in your organization.\",\"created\":\"2020-12-01T19:18:39.866516+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"8106300a-54f7-11eb-8cbc-7781a434a67b\",\"attributes\":{\"name\":\"rum_apps_write\",\"display_name\":\"RUM Apps Write\",\"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.\",\"created\":\"2021-01-12T16:59:16.324480+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"edfd5e74-801f-11eb-96d8-da7ad0900002\",\"attributes\":{\"name\":\"debugger_write\",\"display_name\":\"Dynamic Instrumentation Write Configuration\",\"description\":\"Edit Dynamic Instrumentation configuration.\",\"created\":\"2021-03-08T15:06:59.006815+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"edfd5e75-801f-11eb-96d8-da7ad0900002\",\"attributes\":{\"name\":\"debugger_read\",\"display_name\":\"Dynamic Instrumentation Read Configuration\",\"description\":\"View Dynamic Instrumentation configuration.\",\"created\":\"2021-03-08T15:06:59.010517+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7c-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_read\",\"display_name\":\"Data Scanner Read\",\"description\":\"View Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.394971+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7d-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_write\",\"display_name\":\"Data Scanner Write\",\"description\":\"Edit Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.398584+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\",\"attributes\":{\"name\":\"org_management\",\"display_name\":\"Org Management\",\"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 & unsubscribing from apps in the marketplace, and enabling & disabling Remote Configuration for the entire organization.\",\"created\":\"2021-04-23T17:51:12.187340+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 Read\",\"description\":\"Read Security Filters.\",\"created\":\"2021-05-10T08:56:23.676833+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"98b984f5-b16d-11eb-a2c6-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_filters_write\",\"display_name\":\"Security Filters Write\",\"description\":\"Create, edit, and delete Security Filters.\",\"created\":\"2021-05-10T08:56:23.680551+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incidents Read\",\"description\":\"View incidents in Datadog.\",\"created\":\"2021-06-22T15:11:09.255499+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"12efc211-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_write\",\"display_name\":\"Incidents Write\",\"description\":\"Create, view, and manage incidents in Datadog.\",\"created\":\"2021-06-22T15:11:09.264369+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20f-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_settings_read\",\"display_name\":\"Incident Settings Read\",\"description\":\"View Incident Settings.\",\"created\":\"2021-06-22T15:11:09.259568+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc210-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_settings_write\",\"display_name\":\"Incident Settings Write\",\"description\":\"Configure Incident Settings.\",\"created\":\"2021-06-22T15:11:09.261986+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\",\"attributes\":{\"name\":\"appsec_event_rule_read\",\"display_name\":\"Application Security Management Event Rules Read\",\"description\":\"View Application Security Management Event Rules.\",\"created\":\"2021-07-19T13:31:15.595771+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"97971c1d-e895-11eb-b13c-da7ad0900002\",\"attributes\":{\"name\":\"appsec_event_rule_write\",\"display_name\":\"Application Security Management Event Rules Write\",\"description\":\"Edit Application Security Management Event Rules.\",\"created\":\"2021-07-19T13:31:15.598808+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"RUM Session Replay Read\",\"description\":\"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\":\"Security Notification Rules Read\",\"description\":\"Read Notification Rules.\",\"created\":\"2021-09-16T08:26:27.366789+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"c95412b9-16c7-11ec-85c0-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_notification_profiles_write\",\"display_name\":\"Security Notification Rules Write\",\"description\":\"Create, edit, and delete Notification Rules.\",\"created\":\"2021-09-16T08:26:27.369359+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"26c79920-1703-11ec-85d2-da7ad0900002\",\"attributes\":{\"name\":\"apm_generate_metrics\",\"display_name\":\"APM Generate Metrics\",\"description\":\"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\":\"f4473c60-4792-11ec-a27b-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_cws_agent_rules_read\",\"display_name\":\"Cloud Workload Security Agent Rules Read\",\"description\":\"Read Cloud Workload Security Agent Rules.\",\"created\":\"2021-11-17T10:41:43.074031+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f4473c61-4792-11ec-a27b-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_cws_agent_rules_write\",\"display_name\":\"Cloud Workload Security Agent Rules Write\",\"description\":\"Create, edit, and delete Cloud Workload Security Agent Rules.\",\"created\":\"2021-11-17T10:41:43.077905+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"020a563c-56a4-11ec-a982-da7ad0900002\",\"attributes\":{\"name\":\"apm_pipelines_write\",\"display_name\":\"APM Pipelines Write\",\"description\":\"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\":\"APM Pipelines Read\",\"description\":\"View APM pipeline configurations.\",\"created\":\"2021-12-07T11:26:43.807269+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb4-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_read\",\"display_name\":\"Pipeline Configurations Read\",\"description\":\"View pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.956827+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb5-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_write\",\"display_name\":\"Pipeline Configurations Write\",\"description\":\"Create, edit, and delete pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.960833+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f6e917a8-8502-11ec-bf20-da7ad0900002\",\"attributes\":{\"name\":\"workflows_read\",\"display_name\":\"Workflows Read\",\"description\":\"View workflows.\",\"created\":\"2022-02-03T15:07:12.058412+00:00\",\"group_name\":\"Workflows\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f6e917aa-8502-11ec-bf20-da7ad0900002\",\"attributes\":{\"name\":\"workflows_write\",\"display_name\":\"Workflows Write\",\"description\":\"Create, edit, and delete workflows.\",\"created\":\"2022-02-03T15:07:12.061765+00:00\",\"group_name\":\"Workflows\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f6e917a9-8502-11ec-bf20-da7ad0900002\",\"attributes\":{\"name\":\"workflows_run\",\"display_name\":\"Workflows Run\",\"description\":\"Run workflows.\",\"created\":\"2022-02-03T15:07:12.060079+00:00\",\"group_name\":\"Workflows\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f6e917a6-8502-11ec-bf20-da7ad0900002\",\"attributes\":{\"name\":\"connections_read\",\"display_name\":\"Connections Read\",\"description\":\"List and view available connections. Connections contain secrets that cannot be revealed.\",\"created\":\"2022-02-03T15:07:12.053432+00:00\",\"group_name\":\"Workflows\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f6e917a7-8502-11ec-bf20-da7ad0900002\",\"attributes\":{\"name\":\"connections_write\",\"display_name\":\"Connections Write\",\"description\":\"Create and delete connections.\",\"created\":\"2022-02-03T15:07:12.056590+00:00\",\"group_name\":\"Workflows\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"b6bf9ac7-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_write\",\"display_name\":\"Notebooks Write\",\"description\":\"Create and change notebooks.\",\"created\":\"2022-03-02T18:51:05.044683+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"e35c06b0-966b-11ec-83c9-da7ad0900002\",\"attributes\":{\"name\":\"logs_delete_data\",\"display_name\":\"Logs Delete Data\",\"description\":\"Delete data from your Logs, including entire indexes.\",\"created\":\"2022-02-25T18:51:06.176019+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"2108215e-b9b4-11ec-958e-da7ad0900002\",\"attributes\":{\"name\":\"rum_generate_metrics\",\"display_name\":\"RUM Generate Metrics\",\"description\":\"Create custom metrics from RUM events.\",\"created\":\"2022-04-11T16:26:24.106645+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7b1f5089-c59e-11ec-aa32-da7ad0900002\",\"attributes\":{\"name\":\"manage_integrations\",\"display_name\":\"Integrations Manage\",\"description\":\"Install, uninstall, and configure integrations.\",\"created\":\"2022-04-26T20:21:40.285834+00:00\",\"group_name\":\"Integrations\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1afff448-d5e9-11ec-ae37-da7ad0900002\",\"attributes\":{\"name\":\"usage_notifications_read\",\"display_name\":\"Usage Notifications Read\",\"description\":\"Receive notifications and view currently configured notification settings.\",\"created\":\"2022-05-17T13:56:09.870985+00:00\",\"group_name\":\"Billing and Usage\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1afff449-d5e9-11ec-ae37-da7ad0900002\",\"attributes\":{\"name\":\"usage_notifications_write\",\"display_name\":\"Usage Notifications Write\",\"description\":\"Receive notifications and configure notification settings.\",\"created\":\"2022-05-17T13:56:09.876124+00:00\",\"group_name\":\"Billing and Usage\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c87d3da-e5c5-11ec-b1d6-da7ad0900002\",\"attributes\":{\"name\":\"generate_dashboard_reports\",\"display_name\":\"Dashboards Report Write\",\"description\":\"Schedule custom reports from a dashboard. These reports will display any viewable data regardless of any granular restrictions (restriction queries, scoped indexes) applied to the report's creator.\",\"created\":\"2022-06-06T18:21:03.378896+00:00\",\"group_name\":\"Dashboards\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_read\",\"display_name\":\"SLOs Read\",\"description\":\"View SLOs and status corrections.\",\"created\":\"2022-06-08T16:20:55.142591+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"f8e941d0-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_write\",\"display_name\":\"SLOs Write\",\"description\":\"Create, edit, and delete SLOs.\",\"created\":\"2022-06-08T16:20:55.143869+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f8e941ce-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_corrections\",\"display_name\":\"SLOs Status Corrections\",\"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.\",\"created\":\"2022-06-08T16:20:55.139410+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4784b11c-f311-11ec-a5f5-da7ad0900002\",\"attributes\":{\"name\":\"monitor_config_policy_write\",\"display_name\":\"Monitor Configuration Policy Write\",\"description\":\"Create, update, and delete monitor configuration policies.\",\"created\":\"2022-06-23T16:26:48.150556+00:00\",\"group_name\":\"Monitors\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"ee68fba9-173a-11ed-b00b-da7ad0900002\",\"attributes\":{\"name\":\"apm_service_catalog_write\",\"display_name\":\"Service Catalog Write\",\"description\":\"Add, modify, and delete service catalog definitions when those definitions are maintained by Datadog.\",\"created\":\"2022-08-08T16:55:39.377188+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"ee68fba8-173a-11ed-b00b-da7ad0900002\",\"attributes\":{\"name\":\"apm_service_catalog_read\",\"display_name\":\"Service Catalog Read\",\"description\":\"View service catalog and service definitions.\",\"created\":\"2022-08-08T16:55:39.374377+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"5b2c3e28-1761-11ed-b018-da7ad0900002\",\"attributes\":{\"name\":\"logs_write_forwarding_rules\",\"display_name\":\"Logs Write Forwarding Rules\",\"description\":\"Add and edit forwarding destinations and rules for logs.\",\"created\":\"2022-08-08T21:30:42.723663+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6be119a6-1cd8-11ed-b185-da7ad0900002\",\"attributes\":{\"name\":\"watchdog_insights_read\",\"display_name\":\"Watchdog Insights Read\",\"description\":\"Deprecated. View Watchdog Insights.\",\"created\":\"2022-08-15T20:25:36.677197+00:00\",\"group_name\":\"Watchdog\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"36e2a22e-248a-11ed-b405-da7ad0900002\",\"attributes\":{\"name\":\"connections_resolve\",\"display_name\":\"Connections Resolve\",\"description\":\"Resolve connections.\",\"created\":\"2022-08-25T15:25:56.325170+00:00\",\"group_name\":\"Workflows\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4ee674f6-55d9-11ed-b10d-da7ad0900002\",\"attributes\":{\"name\":\"appsec_protect_read\",\"display_name\":\"Application Security Management Protect Read\",\"description\":\"View blocked attackers.\",\"created\":\"2022-10-27T09:25:33.834253+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4ee7e46c-55d9-11ed-b10e-da7ad0900002\",\"attributes\":{\"name\":\"appsec_protect_write\",\"display_name\":\"Application Security Management Protect Write\",\"description\":\"Manage blocked attackers.\",\"created\":\"2022-10-27T09:25:33.843656+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4ee5731c-55d9-11ed-b10b-da7ad0900002\",\"attributes\":{\"name\":\"appsec_activation_read\",\"display_name\":\"Application Security Management 1-click Enablement Read\",\"description\":\"View whether Application Security Management has been enabled or disabled on services via 1-click enablement with Remote Configuration.\",\"created\":\"2022-10-27T09:25:33.827076+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4ee60688-55d9-11ed-b10c-da7ad0900002\",\"attributes\":{\"name\":\"appsec_activation_write\",\"display_name\":\"Application Security Management 1-click Enablement Write\",\"description\":\"Enable or disable Application Security Management on services via 1-click enablement with Remote Configuration.\",\"created\":\"2022-10-27T09:25:33.831383+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"8247acc4-7a4c-11ed-958f-da7ad0900002\",\"attributes\":{\"name\":\"cases_read\",\"display_name\":\"Cases Read\",\"description\":\"View Cases.\",\"created\":\"2022-12-12T18:40:54.018521+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"824851a6-7a4c-11ed-9590-da7ad0900002\",\"attributes\":{\"name\":\"cases_write\",\"display_name\":\"Cases Write\",\"description\":\"Create and update cases.\",\"created\":\"2022-12-12T18:40:54.023280+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"77d5f45e-7a5a-11ed-8abf-da7ad0900002\",\"attributes\":{\"name\":\"apm_remote_configuration_write\",\"display_name\":\"APM Remote Configuration Write\",\"description\":\"Edit APM Remote Configuration.\",\"created\":\"2022-12-12T20:20:49.450768+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"77d55a44-7a5a-11ed-8abe-da7ad0900002\",\"attributes\":{\"name\":\"apm_remote_configuration_read\",\"display_name\":\"APM Remote Configuration Read\",\"description\":\"View APM Remote Configuration.\",\"created\":\"2022-12-12T20:20:49.446298+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c5ad874-7aff-11ed-a5cd-da7ad0900002\",\"attributes\":{\"name\":\"ci_visibility_read\",\"display_name\":\"CI Visibility Read\",\"description\":\"View CI Visibility.\",\"created\":\"2022-12-13T16:01:37.149406+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"6c5c1090-7aff-11ed-a5cf-da7ad0900002\",\"attributes\":{\"name\":\"ci_visibility_write\",\"display_name\":\"CI Visibility Tests Write\",\"description\":\"Edit flaky tests and delete Test Services.\",\"created\":\"2022-12-13T16:01:37.157428+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c59ae72-7aff-11ed-a5cc-da7ad0900002\",\"attributes\":{\"name\":\"ci_provider_settings_write\",\"display_name\":\"CI Provider Settings Write\",\"description\":\"Edit CI Provider settings. Manage GitHub accounts and repositories for enabling CI Visibility and job logs collection.\",\"created\":\"2022-12-13T16:01:37.141217+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c5b7428-7aff-11ed-a5ce-da7ad0900002\",\"attributes\":{\"name\":\"ci_visibility_settings_write\",\"display_name\":\"CI Visibility Settings Write\",\"description\":\"Configure CI Visibility settings. Set a repository default branch, enable GitHub comments, and delete test services.\",\"created\":\"2022-12-13T16:01:37.153418+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c5d0892-7aff-11ed-a5d0-da7ad0900002\",\"attributes\":{\"name\":\"intelligent_test_runner_activation_write\",\"display_name\":\"Intelligent Test Runner Activation Write\",\"description\":\"Enable or disable Intelligent Test Runner.\",\"created\":\"2022-12-13T16:01:37.163771+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c5de654-7aff-11ed-a5d1-da7ad0900002\",\"attributes\":{\"name\":\"intelligent_test_runner_settings_write\",\"display_name\":\"Intelligent Test Runner Settings Write\",\"description\":\"Edit Intelligent Test Runner settings, such as modifying ITR excluded branch list.\",\"created\":\"2022-12-13T16:01:37.169430+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"c13a2368-7d61-11ed-b5b7-da7ad0900002\",\"attributes\":{\"name\":\"continuous_profiler_read\",\"display_name\":\"Continuous Profiler Read\",\"description\":\"View data in Continuous Profiler.\",\"created\":\"2022-12-16T16:50:32.545882+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1d76ecfa-9771-11ed-9c2f-da7ad0900002\",\"attributes\":{\"name\":\"teams_manage\",\"display_name\":\"Teams Manage\",\"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.\",\"created\":\"2023-01-18T20:45:59.977837+00:00\",\"group_name\":\"Teams\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"ca6bfb3a-b44f-11ed-adb2-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_findings_read\",\"display_name\":\"Security Monitoring Findings Read\",\"description\":\"View CSPM Findings.\",\"created\":\"2023-02-24T14:30:30.983679+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4dc3eec6-b468-11ed-8539-da7ad0900002\",\"attributes\":{\"name\":\"incident_notification_settings_read\",\"display_name\":\"Incident Notification Settings Read\",\"description\":\"View Incidents Notification settings.\",\"created\":\"2023-02-24T17:25:59.263037+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4dc4094c-b468-11ed-853a-da7ad0900002\",\"attributes\":{\"name\":\"incident_notification_settings_write\",\"display_name\":\"Incident Notification Settings Write\",\"description\":\"Configure Incidents Notification settings.\",\"created\":\"2023-02-24T17:25:59.263037+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"35dd33ea-ca2e-11ed-bca0-da7ad0900002\",\"attributes\":{\"name\":\"ci_ingestion_control_write\",\"display_name\":\"CI Visibility Ingestion Control Write\",\"description\":\"Edit CI Ingestion Control exclusion filters.\",\"created\":\"2023-03-24T10:25:33.934187+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"36bf3d0a-ccc0-11ed-9453-da7ad0900002\",\"attributes\":{\"name\":\"error_tracking_write\",\"display_name\":\"Error Tracking Write\",\"description\":\"Edit Error Tracking settings.\",\"created\":\"2023-03-27T16:55:44.263627+00:00\",\"group_name\":\"Error Tracking\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f416f55e-db3f-11ed-8028-da7ad0900002\",\"attributes\":{\"name\":\"watchdog_alerts_write\",\"display_name\":\"Watchdog Alerts Write\",\"description\":\"Manage Watchdog Alerts.\",\"created\":\"2023-04-15T03:45:24.289668+00:00\",\"group_name\":\"Watchdog\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f416b1ac-db3f-11ed-8027-da7ad0900002\",\"attributes\":{\"name\":\"saved_views_write\",\"display_name\":\"Saved Views Write\",\"description\":\"Modify Saved Views across all Datadog products.\",\"created\":\"2023-04-15T03:45:24.289668+00:00\",\"group_name\":\"Cross-Product Features\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4e61a95e-de98-11ed-aa23-da7ad0900002\",\"attributes\":{\"name\":\"client_tokens_read\",\"display_name\":\"Client Tokens Read\",\"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.\",\"created\":\"2023-04-19T09:55:24.976379+00:00\",\"group_name\":\"API and Application Keys\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4e61ea18-de98-11ed-aa24-da7ad0900002\",\"attributes\":{\"name\":\"client_tokens_write\",\"display_name\":\"Client Tokens Write\",\"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.\",\"created\":\"2023-04-19T09:55:24.976379+00:00\",\"group_name\":\"API and Application Keys\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"a4316eb8-f438-11ed-8af2-da7ad0900002\",\"attributes\":{\"name\":\"event_correlation_config_read\",\"display_name\":\"Event Correlation Config Read\",\"description\":\"Read Event Correlation Configuration data such as Correlation Rules and Settings.\",\"created\":\"2023-05-16T22:26:02.839419+00:00\",\"group_name\":\"Events\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"a431bf12-f438-11ed-8af3-da7ad0900002\",\"attributes\":{\"name\":\"event_correlation_config_write\",\"display_name\":\"Event Correlation Config Write\",\"description\":\"Manage Event Correlation Configuration such as Correlation Rules and Settings.\",\"created\":\"2023-05-16T22:26:02.839419+00:00\",\"group_name\":\"Events\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"8352cf04-f6ac-11ed-9ec7-da7ad0900002\",\"attributes\":{\"name\":\"event_config_write\",\"display_name\":\"Event Config Write\",\"description\":\"Manage general event configuration such as API Emails.\",\"created\":\"2023-05-20T01:20:31.639587+00:00\",\"group_name\":\"Events\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"3a48350c-f9bc-11ed-b81c-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_findings_write\",\"display_name\":\"Security Monitoring Findings Write\",\"description\":\"Mute CSPM Findings.\",\"created\":\"2023-05-23T22:50:34.532448+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"a773e3d8-fff2-11ed-965c-da7ad0900002\",\"attributes\":{\"name\":\"cloud_cost_management_read\",\"display_name\":\"Cloud Cost Management Read\",\"description\":\"View Cloud Cost pages. This does not restrict access to the cloud cost data source in dashboards and notebooks.\",\"created\":\"2023-05-31T20:35:17.490437+00:00\",\"group_name\":\"Cloud Cost Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"a77452c8-fff2-11ed-965d-da7ad0900002\",\"attributes\":{\"name\":\"cloud_cost_management_write\",\"display_name\":\"Cloud Cost Management Write\",\"description\":\"Configure cloud cost accounts and global customizations.\",\"created\":\"2023-05-31T20:35:17.490437+00:00\",\"group_name\":\"Cloud Cost Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"a51b375a-ff73-11ed-8c18-da7ad0900002\",\"attributes\":{\"name\":\"host_tags_write\",\"display_name\":\"Host Tags Write\",\"description\":\"Add and change tags on hosts.\",\"created\":\"2023-05-31T05:26:07.469293+00:00\",\"group_name\":\"Metrics\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"61f9891a-0070-11ee-9c3f-da7ad0900002\",\"attributes\":{\"name\":\"ci_visibility_pipelines_write\",\"display_name\":\"CI Visibility Pipelines Write\",\"description\":\"Create CI Visibility pipeline spans using the API.\",\"created\":\"2023-06-01T11:35:17.513706+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1377d9e4-0ec7-11ee-aebc-da7ad0900002\",\"attributes\":{\"name\":\"quality_gate_rules_read\",\"display_name\":\"Quality Gate Rules Read\",\"description\":\"View Quality Gate Rules.\",\"created\":\"2023-06-19T17:31:08.295856+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1377ff28-0ec7-11ee-aebd-da7ad0900002\",\"attributes\":{\"name\":\"quality_gate_rules_write\",\"display_name\":\"Quality Gate Rules Write\",\"description\":\"Edit Quality Gate Rules.\",\"created\":\"2023-06-19T17:31:08.295856+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"cc8cd958-11eb-11ee-ade2-da7ad0900002\",\"attributes\":{\"name\":\"metrics_metadata_write\",\"display_name\":\"Metrics Metadata Write\",\"description\":\"Edit metadata on metrics.\",\"created\":\"2023-06-23T17:31:34.182629+00:00\",\"group_name\":\"Metrics\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b1adb6e8-0949-11ee-b2c5-da7ad0900002\",\"attributes\":{\"name\":\"rum_delete_data\",\"display_name\":\"RUM Delete Data\",\"description\":\"Delete data from RUM.\",\"created\":\"2023-06-12T17:51:01.325450+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b1ad77e6-0949-11ee-b2c3-da7ad0900002\",\"attributes\":{\"name\":\"appsec_vm_write\",\"display_name\":\"Application Security Vulnerability Management Write\",\"description\":\"Update status or assignee of Application Security vulnerabilities.\",\"created\":\"2023-06-12T17:51:01.325450+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b1adb5da-0949-11ee-b2c4-da7ad0900002\",\"attributes\":{\"name\":\"reference_tables_write\",\"display_name\":\"Reference Tables Write\",\"description\":\"Create or modify Reference Tables.\",\"created\":\"2023-06-12T17:51:01.325450+00:00\",\"group_name\":\"Reference Tables\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"0efeff18-1cec-11ee-992d-da7ad0900002\",\"attributes\":{\"name\":\"rum_playlist_write\",\"display_name\":\"RUM Playlist Write\",\"description\":\"Create, update, and delete RUM playlists. Add and remove sessions from RUM playlists.\",\"created\":\"2023-07-07T17:31:08.450865+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c5ce898-21a4-11ee-99ef-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_delete\",\"display_name\":\"Pipeline Delete\",\"description\":\"Delete pipelines from your organization.\",\"created\":\"2023-07-13T17:40:57.140947+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c5ce992-21a4-11ee-99f0-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_deploy\",\"display_name\":\"Pipeline Deploy\",\"description\":\"Deploy pipelines in your organization.\",\"created\":\"2023-07-13T17:40:57.140947+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"785177a6-20da-11ee-bed7-da7ad0900002\",\"attributes\":{\"name\":\"processes_generate_metrics\",\"display_name\":\"Processes Generate Metrics\",\"description\":\"Create custom metrics from processes.\",\"created\":\"2023-07-12T17:35:18.858294+00:00\",\"group_name\":\"Processes\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7850e390-20da-11ee-bed6-da7ad0900002\",\"attributes\":{\"name\":\"api_keys_delete\",\"display_name\":\"API Keys Delete\",\"description\":\"Delete API Keys for your organization.\",\"created\":\"2023-07-12T17:35:18.858294+00:00\",\"group_name\":\"API and Application Keys\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1b8f54cc-2ca4-11ee-9e72-da7ad0900002\",\"attributes\":{\"name\":\"facets_write\",\"display_name\":\"Facets Write\",\"description\":\"Manage facets for products other than Log Management, such as APM Traces. To modify Log Facets, use Logs Write Facets.\",\"created\":\"2023-07-27T17:36:24.369352+00:00\",\"group_name\":\"Cross-Product Features\",\"display_type\":\"write\",\"restricted\":false}}],\"meta\":{\"page\":{\"total_count\":203828,\"total_filtered_count\":203828}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 05 Sep 2023 13:14:24 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/users?page%5Bsize%5D=2&page%5Bnumber%5D=1" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"users\",\"id\":\"6fa267f4-b920-11ed-8865-d223eeb75e45\",\"attributes\":{\"name\":\"Alice\",\"handle\":\"alice@datadoghq.com\",\"created_at\":\"2023-03-02T17:34:08.137773+00:00\",\"modified_at\":\"2023-03-02T17:42:47.069690+00:00\",\"email\":\"alice@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/0d54f0d2f91bb10cfb83ff85f8602928?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"},\"relationships\":{\"roles\":{\"data\":[{\"type\":\"roles\",\"id\":\"94172443-be03-11e9-a77a-373332f69711\"}]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}],\"included\":[{\"type\":\"roles\",\"id\":\"94172443-be03-11e9-a77a-373332f69711\",\"attributes\":{\"name\":\"Datadog Standard Role\",\"created_at\":\"2019-08-13T19:50:19.075284+00:00\",\"modified_at\":\"2019-08-13T19:50:19.075284+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"984d2f00-d3b4-11e8-a200-bb47109e9987\"},{\"type\":\"permissions\",\"id\":\"5e605652-dd12-11e8-9e53-375565b8970e\"},{\"type\":\"permissions\",\"id\":\"62cc036c-dd12-11e8-9e54-db9995643092\"},{\"type\":\"permissions\",\"id\":\"6f66600e-dd12-11e8-9e55-7f30fbb45e73\"},{\"type\":\"permissions\",\"id\":\"7d7c98ac-dd12-11e8-9e56-93700598622d\"},{\"type\":\"permissions\",\"id\":\"811ac4ca-dd12-11e8-9e57-676a7f0beef9\"},{\"type\":\"permissions\",\"id\":\"84aa3ae4-dd12-11e8-9e58-a373a514ccd0\"},{\"type\":\"permissions\",\"id\":\"979df720-aed7-11e9-99c6-a7eb8373165a\"},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"d90f6831-d3d8-11e9-a77a-4fd230ddbc6a\"},{\"type\":\"permissions\",\"id\":\"d90f6832-d3d8-11e9-a77a-bf8a2607f864\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"48ef71ea-d8b1-11e9-a77a-93f408470ad0\"},{\"type\":\"permissions\",\"id\":\"4d87d5f8-d8b1-11e9-a77a-eb9c8350d04f\"},{\"type\":\"permissions\",\"id\":\"1af86ce4-7823-11ea-93dc-d7cad1b1c6cb\"},{\"type\":\"permissions\",\"id\":\"b382b982-8535-11ea-93de-2bf1bdf20798\"},{\"type\":\"permissions\",\"id\":\"7314eb20-aa58-11ea-95e2-6fb6e4a451d5\"},{\"type\":\"permissions\",\"id\":\"7b516476-aa58-11ea-95e2-93718cd56369\"},{\"type\":\"permissions\",\"id\":\"80de1ec0-aa58-11ea-95e2-aff381626d5d\"},{\"type\":\"permissions\",\"id\":\"58b412cc-ff6d-11eb-bc9c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"9ac1d8cc-e707-11ea-aa2d-73d37e989a9d\"},{\"type\":\"permissions\",\"id\":\"46a301da-ec5c-11ea-aa9f-73bedeab67ee\"},{\"type\":\"permissions\",\"id\":\"46a301db-ec5c-11ea-aa9f-2fe72193d60e\"},{\"type\":\"permissions\",\"id\":\"46a301dd-ec5c-11ea-aa9f-97edfb345bc9\"},{\"type\":\"permissions\",\"id\":\"46a301e4-ec5c-11ea-aa9f-87282b3a50cc\"},{\"type\":\"permissions\",\"id\":\"07c3c146-f7f8-11ea-acf6-0bd62b9ae60e\"},{\"type\":\"permissions\",\"id\":\"372896c4-f923-11ea-adbc-4fecd107156d\"},{\"type\":\"permissions\",\"id\":\"4628ca54-f923-11ea-adbc-4b2b7f88c5e9\"},{\"type\":\"permissions\",\"id\":\"4ada6e36-f923-11ea-adbc-0788e5c5e3cf\"},{\"type\":\"permissions\",\"id\":\"5025ee24-f923-11ea-adbc-576ea241df8d\"},{\"type\":\"permissions\",\"id\":\"55f4b5ec-f923-11ea-adbc-1bfa2334a755\"},{\"type\":\"permissions\",\"id\":\"5c6b88e2-f923-11ea-adbc-abf57d079420\"},{\"type\":\"permissions\",\"id\":\"642eebe6-f923-11ea-adbc-eb617674ea04\"},{\"type\":\"permissions\",\"id\":\"6ba32d22-0e1a-11eb-ba44-bf9a5aafaa39\"},{\"type\":\"permissions\",\"id\":\"fcac2ad8-2843-11eb-8315-0fe47949d625\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"43fa188e-2dce-11eb-84c0-835ad1fd6287\"},{\"type\":\"permissions\",\"id\":\"4916eebe-2dce-11eb-84c0-271cb2c672e8\"},{\"type\":\"permissions\",\"id\":\"5cbe5f9c-2dce-11eb-84c0-872d3e9f1076\"},{\"type\":\"permissions\",\"id\":\"61765026-2dce-11eb-84c0-833e230d1b8f\"},{\"type\":\"permissions\",\"id\":\"8106300a-54f7-11eb-8cbc-7781a434a67b\"},{\"type\":\"permissions\",\"id\":\"edfd5e75-801f-11eb-96d8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"98b984f4-b16d-11eb-a2c6-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc211-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc20f-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc210-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1d-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef25-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"c95412b8-16c7-11ec-85c0-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"c95412b9-16c7-11ec-85c0-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"26c79920-1703-11ec-85d2-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f4473c60-4792-11ec-a27b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f4473c61-4792-11ec-a27b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"8e4d6b6e-5750-11ec-a9f4-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"945b3bb4-5884-11ec-aa6d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f6e917a8-8502-11ec-bf20-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f6e917aa-8502-11ec-bf20-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f6e917a9-8502-11ec-bf20-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f6e917a6-8502-11ec-bf20-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f6e917a7-8502-11ec-bf20-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac7-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"2108215e-b9b4-11ec-958e-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7b1f5089-c59e-11ec-aa32-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941d0-e746-11ec-b22d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941ce-e746-11ec-b22d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"ee68fba9-173a-11ed-b00b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"ee68fba8-173a-11ed-b00b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6be119a6-1cd8-11ed-b185-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"36e2a22e-248a-11ed-b405-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4ee674f6-55d9-11ed-b10d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4ee7e46c-55d9-11ed-b10e-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4ee5731c-55d9-11ed-b10b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4ee60688-55d9-11ed-b10c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"8247acc4-7a4c-11ed-958f-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"824851a6-7a4c-11ed-9590-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"77d55a44-7a5a-11ed-8abe-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5ad874-7aff-11ed-a5cd-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5c1090-7aff-11ed-a5cf-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5b7428-7aff-11ed-a5ce-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5de654-7aff-11ed-a5d1-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"c13a2368-7d61-11ed-b5b7-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"ca6bfb3a-b44f-11ed-adb2-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4dc3eec6-b468-11ed-8539-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4dc4094c-b468-11ed-853a-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"36bf3d0a-ccc0-11ed-9453-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f416f55e-db3f-11ed-8028-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f416b1ac-db3f-11ed-8027-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4e61a95e-de98-11ed-aa23-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4e61ea18-de98-11ed-aa24-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"a4316eb8-f438-11ed-8af2-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"a431bf12-f438-11ed-8af3-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"8352cf04-f6ac-11ed-9ec7-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"3a48350c-f9bc-11ed-b81c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"a773e3d8-fff2-11ed-965c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"a77452c8-fff2-11ed-965d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"a51b375a-ff73-11ed-8c18-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"61f9891a-0070-11ee-9c3f-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"1377d9e4-0ec7-11ee-aebc-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"cc8cd958-11eb-11ee-ade2-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b1ad77e6-0949-11ee-b2c3-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b1adb5da-0949-11ee-b2c4-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"0efeff18-1cec-11ee-992d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"785177a6-20da-11ee-bed7-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"1b8f54cc-2ca4-11ee-9e72-da7ad0900002\"}]}}},{\"type\":\"permissions\",\"id\":\"984d2f00-d3b4-11e8-a200-bb47109e9987\",\"attributes\":{\"name\":\"standard\",\"display_name\":\"Standard Access\",\"description\":\"View and edit components in your Datadog organization that do not have explicitly defined permissions.\",\"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\":\"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. Restrictions are limited to the Log Management product.\",\"created\":\"2018-10-31T13:39:19.727450+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"62cc036c-dd12-11e8-9e54-db9995643092\",\"attributes\":{\"name\":\"logs_modify_indexes\",\"display_name\":\"Logs Modify Indexes\",\"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.\",\"created\":\"2018-10-31T13:39:27.148615+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6f66600e-dd12-11e8-9e55-7f30fbb45e73\",\"attributes\":{\"name\":\"logs_live_tail\",\"display_name\":\"Logs Live Tail\",\"description\":\"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\":\"Log Management\",\"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\":\"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\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"811ac4ca-dd12-11e8-9e57-676a7f0beef9\",\"attributes\":{\"name\":\"logs_write_pipelines\",\"display_name\":\"Logs Write Pipelines\",\"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.\",\"created\":\"2018-10-31T13:40:17.996379+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"84aa3ae4-dd12-11e8-9e58-a373a514ccd0\",\"attributes\":{\"name\":\"logs_write_processors\",\"display_name\":\"Logs Write Processors\",\"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.\",\"created\":\"2018-10-31T13:40:23.969725+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"979df720-aed7-11e9-99c6-a7eb8373165a\",\"attributes\":{\"name\":\"logs_generate_metrics\",\"display_name\":\"Logs Generate Metrics\",\"description\":\"Create custom metrics from logs.\",\"created\":\"2019-07-25T12:27:39.640758+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\",\"attributes\":{\"name\":\"dashboards_read\",\"display_name\":\"Dashboards Read\",\"description\":\"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 Write\",\"description\":\"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 Public Share\",\"description\":\"Generate public and authenticated links to share dashboards or embeddable graphs 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 Read\",\"description\":\"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 Write\",\"description\":\"Edit, 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\":\"Manage Downtimes\",\"description\":\"Set downtimes to suppress alerts from any monitor in an organization. Mute and unmute hosts. 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\":\"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.\",\"created\":\"2020-04-06T16:24:35.989108+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b382b982-8535-11ea-93de-2bf1bdf20798\",\"attributes\":{\"name\":\"logs_read_archives\",\"display_name\":\"Logs Read Archives\",\"description\":\"Read Log Archives location and use it for rehydration.\",\"created\":\"2020-04-23T07:40:27.966133+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7314eb20-aa58-11ea-95e2-6fb6e4a451d5\",\"attributes\":{\"name\":\"security_monitoring_rules_read\",\"display_name\":\"Security Rules Read\",\"description\":\"Read Detection Rules.\",\"created\":\"2020-06-09T13:52:25.279909+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7b516476-aa58-11ea-95e2-93718cd56369\",\"attributes\":{\"name\":\"security_monitoring_rules_write\",\"display_name\":\"Security Rules Write\",\"description\":\"Create and edit Detection Rules.\",\"created\":\"2020-06-09T13:52:39.099413+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"80de1ec0-aa58-11ea-95e2-aff381626d5d\",\"attributes\":{\"name\":\"security_monitoring_signals_read\",\"display_name\":\"Security Signals Read\",\"description\":\"View Security Signals.\",\"created\":\"2020-06-09T13:52:48.410398+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"58b412cc-ff6d-11eb-bc9c-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_signals_write\",\"display_name\":\"Security Signals Write\",\"description\":\"Modify Security Signals.\",\"created\":\"2021-08-17T15:11:06.963503+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"9ac1d8cc-e707-11ea-aa2d-73d37e989a9d\",\"attributes\":{\"name\":\"user_access_invite\",\"display_name\":\"User Access Invite\",\"description\":\"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\":\"46a301da-ec5c-11ea-aa9f-73bedeab67ee\",\"attributes\":{\"name\":\"user_app_keys\",\"display_name\":\"User App Keys\",\"description\":\"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\":\"Org App Keys Read\",\"description\":\"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\":\"46a301dd-ec5c-11ea-aa9f-97edfb345bc9\",\"attributes\":{\"name\":\"synthetics_private_location_read\",\"display_name\":\"Synthetics Private Locations Read\",\"description\":\"View, search, and use Synthetics private locations.\",\"created\":\"2020-09-01T14:06:05.444705+00:00\",\"group_name\":\"Synthetic Monitoring\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"46a301e4-ec5c-11ea-aa9f-87282b3a50cc\",\"attributes\":{\"name\":\"metric_tags_write\",\"display_name\":\"Metric Tags Write\",\"description\":\"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 Write Historical Views\",\"description\":\"Rehydrate logs from Archives.\",\"created\":\"2020-09-16T08:38:44.242076+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"372896c4-f923-11ea-adbc-4fecd107156d\",\"attributes\":{\"name\":\"api_keys_read\",\"display_name\":\"API Keys Read\",\"description\":\"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\":\"4628ca54-f923-11ea-adbc-4b2b7f88c5e9\",\"attributes\":{\"name\":\"synthetics_global_variable_read\",\"display_name\":\"Synthetics Global Variable Read\",\"description\":\"View, search, and use Synthetics global variables.\",\"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\":\"Synthetics Global Variable Write\",\"description\":\"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\":\"Synthetics Read\",\"description\":\"List and view configured Synthetic tests and test results.\",\"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\":\"Synthetics Write\",\"description\":\"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\":\"Synthetics Default Settings Read\",\"description\":\"View the default settings for Synthetic 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\":\"Synthetics Default Settings Write\",\"description\":\"Edit the default settings for Synthetic 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 Write Facets\",\"description\":\"Create or edit Log Facets.\",\"created\":\"2020-10-14T12:40:20.271908+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"fcac2ad8-2843-11eb-8315-0fe47949d625\",\"attributes\":{\"name\":\"integrations_api\",\"display_name\":\"Integrations API\",\"description\":\"Deprecated. Use the Integrations APIs to configure integrations. In order to configure integrations from the UI, a user must also have Standard Access.\",\"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\",\"description\":\"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\":\"APM Retention Filters Read\",\"description\":\"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\":\"4916eebe-2dce-11eb-84c0-271cb2c672e8\",\"attributes\":{\"name\":\"apm_service_ingest_read\",\"display_name\":\"APM Service Ingest Read\",\"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.\",\"created\":\"2020-11-23T20:55:57.768261+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"5cbe5f9c-2dce-11eb-84c0-872d3e9f1076\",\"attributes\":{\"name\":\"apm_tag_management_write\",\"display_name\":\"APM Tag Management Write\",\"description\":\"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\":\"APM Primary Operation Write\",\"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.\",\"created\":\"2020-11-23T20:56:38.658649+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"8106300a-54f7-11eb-8cbc-7781a434a67b\",\"attributes\":{\"name\":\"rum_apps_write\",\"display_name\":\"RUM Apps Write\",\"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.\",\"created\":\"2021-01-12T16:59:16.324480+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"edfd5e75-801f-11eb-96d8-da7ad0900002\",\"attributes\":{\"name\":\"debugger_read\",\"display_name\":\"Dynamic Instrumentation Read Configuration\",\"description\":\"View Dynamic Instrumentation configuration.\",\"created\":\"2021-03-08T15:06:59.010517+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"98b984f4-b16d-11eb-a2c6-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_filters_read\",\"display_name\":\"Security Filters Read\",\"description\":\"Read Security Filters.\",\"created\":\"2021-05-10T08:56:23.676833+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_read\",\"display_name\":\"Incidents Read\",\"description\":\"View incidents in Datadog.\",\"created\":\"2021-06-22T15:11:09.255499+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"12efc211-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_write\",\"display_name\":\"Incidents Write\",\"description\":\"Create, view, and manage incidents in Datadog.\",\"created\":\"2021-06-22T15:11:09.264369+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc20f-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_settings_read\",\"display_name\":\"Incident Settings Read\",\"description\":\"View Incident Settings.\",\"created\":\"2021-06-22T15:11:09.259568+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"12efc210-d36c-11eb-a9b8-da7ad0900002\",\"attributes\":{\"name\":\"incident_settings_write\",\"display_name\":\"Incident Settings Write\",\"description\":\"Configure Incident Settings.\",\"created\":\"2021-06-22T15:11:09.261986+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\",\"attributes\":{\"name\":\"appsec_event_rule_read\",\"display_name\":\"Application Security Management Event Rules Read\",\"description\":\"View Application Security Management Event Rules.\",\"created\":\"2021-07-19T13:31:15.595771+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"97971c1d-e895-11eb-b13c-da7ad0900002\",\"attributes\":{\"name\":\"appsec_event_rule_write\",\"display_name\":\"Application Security Management Event Rules Write\",\"description\":\"Edit Application Security Management Event Rules.\",\"created\":\"2021-07-19T13:31:15.598808+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\",\"attributes\":{\"name\":\"rum_apps_read\",\"display_name\":\"RUM Apps Read\",\"description\":\"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\":\"RUM Session Replay Read\",\"description\":\"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\":\"Security Notification Rules Read\",\"description\":\"Read Notification Rules.\",\"created\":\"2021-09-16T08:26:27.366789+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"c95412b9-16c7-11ec-85c0-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_notification_profiles_write\",\"display_name\":\"Security Notification Rules Write\",\"description\":\"Create, edit, and delete Notification Rules.\",\"created\":\"2021-09-16T08:26:27.369359+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"26c79920-1703-11ec-85d2-da7ad0900002\",\"attributes\":{\"name\":\"apm_generate_metrics\",\"display_name\":\"APM Generate Metrics\",\"description\":\"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\":\"f4473c60-4792-11ec-a27b-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_cws_agent_rules_read\",\"display_name\":\"Cloud Workload Security Agent Rules Read\",\"description\":\"Read Cloud Workload Security Agent Rules.\",\"created\":\"2021-11-17T10:41:43.074031+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f4473c61-4792-11ec-a27b-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_cws_agent_rules_write\",\"display_name\":\"Cloud Workload Security Agent Rules Write\",\"description\":\"Create, edit, and delete Cloud Workload Security Agent Rules.\",\"created\":\"2021-11-17T10:41:43.077905+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"8e4d6b6e-5750-11ec-a9f4-da7ad0900002\",\"attributes\":{\"name\":\"apm_pipelines_read\",\"display_name\":\"APM Pipelines Read\",\"description\":\"View APM pipeline configurations.\",\"created\":\"2021-12-07T11:26:43.807269+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"945b3bb4-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_read\",\"display_name\":\"Pipeline Configurations Read\",\"description\":\"View pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.956827+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f6e917a8-8502-11ec-bf20-da7ad0900002\",\"attributes\":{\"name\":\"workflows_read\",\"display_name\":\"Workflows Read\",\"description\":\"View workflows.\",\"created\":\"2022-02-03T15:07:12.058412+00:00\",\"group_name\":\"Workflows\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f6e917aa-8502-11ec-bf20-da7ad0900002\",\"attributes\":{\"name\":\"workflows_write\",\"display_name\":\"Workflows Write\",\"description\":\"Create, edit, and delete workflows.\",\"created\":\"2022-02-03T15:07:12.061765+00:00\",\"group_name\":\"Workflows\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f6e917a9-8502-11ec-bf20-da7ad0900002\",\"attributes\":{\"name\":\"workflows_run\",\"display_name\":\"Workflows Run\",\"description\":\"Run workflows.\",\"created\":\"2022-02-03T15:07:12.060079+00:00\",\"group_name\":\"Workflows\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f6e917a6-8502-11ec-bf20-da7ad0900002\",\"attributes\":{\"name\":\"connections_read\",\"display_name\":\"Connections Read\",\"description\":\"List and view available connections. Connections contain secrets that cannot be revealed.\",\"created\":\"2022-02-03T15:07:12.053432+00:00\",\"group_name\":\"Workflows\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f6e917a7-8502-11ec-bf20-da7ad0900002\",\"attributes\":{\"name\":\"connections_write\",\"display_name\":\"Connections Write\",\"description\":\"Create and delete connections.\",\"created\":\"2022-02-03T15:07:12.056590+00:00\",\"group_name\":\"Workflows\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_read\",\"display_name\":\"Notebooks Read\",\"description\":\"View notebooks.\",\"created\":\"2022-03-02T18:51:05.040950+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"b6bf9ac7-9a59-11ec-8480-da7ad0900002\",\"attributes\":{\"name\":\"notebooks_write\",\"display_name\":\"Notebooks Write\",\"description\":\"Create and change notebooks.\",\"created\":\"2022-03-02T18:51:05.044683+00:00\",\"group_name\":\"Notebooks\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"2108215e-b9b4-11ec-958e-da7ad0900002\",\"attributes\":{\"name\":\"rum_generate_metrics\",\"display_name\":\"RUM Generate Metrics\",\"description\":\"Create custom metrics from RUM events.\",\"created\":\"2022-04-11T16:26:24.106645+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7b1f5089-c59e-11ec-aa32-da7ad0900002\",\"attributes\":{\"name\":\"manage_integrations\",\"display_name\":\"Integrations Manage\",\"description\":\"Install, uninstall, and configure integrations.\",\"created\":\"2022-04-26T20:21:40.285834+00:00\",\"group_name\":\"Integrations\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_read\",\"display_name\":\"SLOs Read\",\"description\":\"View SLOs and status corrections.\",\"created\":\"2022-06-08T16:20:55.142591+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"f8e941d0-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_write\",\"display_name\":\"SLOs Write\",\"description\":\"Create, edit, and delete SLOs.\",\"created\":\"2022-06-08T16:20:55.143869+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f8e941ce-e746-11ec-b22d-da7ad0900002\",\"attributes\":{\"name\":\"slos_corrections\",\"display_name\":\"SLOs Status Corrections\",\"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.\",\"created\":\"2022-06-08T16:20:55.139410+00:00\",\"group_name\":\"Service Level Objectives\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"ee68fba9-173a-11ed-b00b-da7ad0900002\",\"attributes\":{\"name\":\"apm_service_catalog_write\",\"display_name\":\"Service Catalog Write\",\"description\":\"Add, modify, and delete service catalog definitions when those definitions are maintained by Datadog.\",\"created\":\"2022-08-08T16:55:39.377188+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"ee68fba8-173a-11ed-b00b-da7ad0900002\",\"attributes\":{\"name\":\"apm_service_catalog_read\",\"display_name\":\"Service Catalog Read\",\"description\":\"View service catalog and service definitions.\",\"created\":\"2022-08-08T16:55:39.374377+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6be119a6-1cd8-11ed-b185-da7ad0900002\",\"attributes\":{\"name\":\"watchdog_insights_read\",\"display_name\":\"Watchdog Insights Read\",\"description\":\"Deprecated. View Watchdog Insights.\",\"created\":\"2022-08-15T20:25:36.677197+00:00\",\"group_name\":\"Watchdog\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"36e2a22e-248a-11ed-b405-da7ad0900002\",\"attributes\":{\"name\":\"connections_resolve\",\"display_name\":\"Connections Resolve\",\"description\":\"Resolve connections.\",\"created\":\"2022-08-25T15:25:56.325170+00:00\",\"group_name\":\"Workflows\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4ee674f6-55d9-11ed-b10d-da7ad0900002\",\"attributes\":{\"name\":\"appsec_protect_read\",\"display_name\":\"Application Security Management Protect Read\",\"description\":\"View blocked attackers.\",\"created\":\"2022-10-27T09:25:33.834253+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4ee7e46c-55d9-11ed-b10e-da7ad0900002\",\"attributes\":{\"name\":\"appsec_protect_write\",\"display_name\":\"Application Security Management Protect Write\",\"description\":\"Manage blocked attackers.\",\"created\":\"2022-10-27T09:25:33.843656+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4ee5731c-55d9-11ed-b10b-da7ad0900002\",\"attributes\":{\"name\":\"appsec_activation_read\",\"display_name\":\"Application Security Management 1-click Enablement Read\",\"description\":\"View whether Application Security Management has been enabled or disabled on services via 1-click enablement with Remote Configuration.\",\"created\":\"2022-10-27T09:25:33.827076+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4ee60688-55d9-11ed-b10c-da7ad0900002\",\"attributes\":{\"name\":\"appsec_activation_write\",\"display_name\":\"Application Security Management 1-click Enablement Write\",\"description\":\"Enable or disable Application Security Management on services via 1-click enablement with Remote Configuration.\",\"created\":\"2022-10-27T09:25:33.831383+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"8247acc4-7a4c-11ed-958f-da7ad0900002\",\"attributes\":{\"name\":\"cases_read\",\"display_name\":\"Cases Read\",\"description\":\"View Cases.\",\"created\":\"2022-12-12T18:40:54.018521+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"824851a6-7a4c-11ed-9590-da7ad0900002\",\"attributes\":{\"name\":\"cases_write\",\"display_name\":\"Cases Write\",\"description\":\"Create and update cases.\",\"created\":\"2022-12-12T18:40:54.023280+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"77d55a44-7a5a-11ed-8abe-da7ad0900002\",\"attributes\":{\"name\":\"apm_remote_configuration_read\",\"display_name\":\"APM Remote Configuration Read\",\"description\":\"View APM Remote Configuration.\",\"created\":\"2022-12-12T20:20:49.446298+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c5ad874-7aff-11ed-a5cd-da7ad0900002\",\"attributes\":{\"name\":\"ci_visibility_read\",\"display_name\":\"CI Visibility Read\",\"description\":\"View CI Visibility.\",\"created\":\"2022-12-13T16:01:37.149406+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"read\",\"restricted\":true}},{\"type\":\"permissions\",\"id\":\"6c5c1090-7aff-11ed-a5cf-da7ad0900002\",\"attributes\":{\"name\":\"ci_visibility_write\",\"display_name\":\"CI Visibility Tests Write\",\"description\":\"Edit flaky tests and delete Test Services.\",\"created\":\"2022-12-13T16:01:37.157428+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c5b7428-7aff-11ed-a5ce-da7ad0900002\",\"attributes\":{\"name\":\"ci_visibility_settings_write\",\"display_name\":\"CI Visibility Settings Write\",\"description\":\"Configure CI Visibility settings. Set a repository default branch, enable GitHub comments, and delete test services.\",\"created\":\"2022-12-13T16:01:37.153418+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c5de654-7aff-11ed-a5d1-da7ad0900002\",\"attributes\":{\"name\":\"intelligent_test_runner_settings_write\",\"display_name\":\"Intelligent Test Runner Settings Write\",\"description\":\"Edit Intelligent Test Runner settings, such as modifying ITR excluded branch list.\",\"created\":\"2022-12-13T16:01:37.169430+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"c13a2368-7d61-11ed-b5b7-da7ad0900002\",\"attributes\":{\"name\":\"continuous_profiler_read\",\"display_name\":\"Continuous Profiler Read\",\"description\":\"View data in Continuous Profiler.\",\"created\":\"2022-12-16T16:50:32.545882+00:00\",\"group_name\":\"APM\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"ca6bfb3a-b44f-11ed-adb2-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_findings_read\",\"display_name\":\"Security Monitoring Findings Read\",\"description\":\"View CSPM Findings.\",\"created\":\"2023-02-24T14:30:30.983679+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4dc3eec6-b468-11ed-8539-da7ad0900002\",\"attributes\":{\"name\":\"incident_notification_settings_read\",\"display_name\":\"Incident Notification Settings Read\",\"description\":\"View Incidents Notification settings.\",\"created\":\"2023-02-24T17:25:59.263037+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4dc4094c-b468-11ed-853a-da7ad0900002\",\"attributes\":{\"name\":\"incident_notification_settings_write\",\"display_name\":\"Incident Notification Settings Write\",\"description\":\"Configure Incidents Notification settings.\",\"created\":\"2023-02-24T17:25:59.263037+00:00\",\"group_name\":\"Case and Incident Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"36bf3d0a-ccc0-11ed-9453-da7ad0900002\",\"attributes\":{\"name\":\"error_tracking_write\",\"display_name\":\"Error Tracking Write\",\"description\":\"Edit Error Tracking settings.\",\"created\":\"2023-03-27T16:55:44.263627+00:00\",\"group_name\":\"Error Tracking\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f416f55e-db3f-11ed-8028-da7ad0900002\",\"attributes\":{\"name\":\"watchdog_alerts_write\",\"display_name\":\"Watchdog Alerts Write\",\"description\":\"Manage Watchdog Alerts.\",\"created\":\"2023-04-15T03:45:24.289668+00:00\",\"group_name\":\"Watchdog\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"f416b1ac-db3f-11ed-8027-da7ad0900002\",\"attributes\":{\"name\":\"saved_views_write\",\"display_name\":\"Saved Views Write\",\"description\":\"Modify Saved Views across all Datadog products.\",\"created\":\"2023-04-15T03:45:24.289668+00:00\",\"group_name\":\"Cross-Product Features\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4e61a95e-de98-11ed-aa23-da7ad0900002\",\"attributes\":{\"name\":\"client_tokens_read\",\"display_name\":\"Client Tokens Read\",\"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.\",\"created\":\"2023-04-19T09:55:24.976379+00:00\",\"group_name\":\"API and Application Keys\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4e61ea18-de98-11ed-aa24-da7ad0900002\",\"attributes\":{\"name\":\"client_tokens_write\",\"display_name\":\"Client Tokens Write\",\"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.\",\"created\":\"2023-04-19T09:55:24.976379+00:00\",\"group_name\":\"API and Application Keys\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"a4316eb8-f438-11ed-8af2-da7ad0900002\",\"attributes\":{\"name\":\"event_correlation_config_read\",\"display_name\":\"Event Correlation Config Read\",\"description\":\"Read Event Correlation Configuration data such as Correlation Rules and Settings.\",\"created\":\"2023-05-16T22:26:02.839419+00:00\",\"group_name\":\"Events\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"a431bf12-f438-11ed-8af3-da7ad0900002\",\"attributes\":{\"name\":\"event_correlation_config_write\",\"display_name\":\"Event Correlation Config Write\",\"description\":\"Manage Event Correlation Configuration such as Correlation Rules and Settings.\",\"created\":\"2023-05-16T22:26:02.839419+00:00\",\"group_name\":\"Events\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"8352cf04-f6ac-11ed-9ec7-da7ad0900002\",\"attributes\":{\"name\":\"event_config_write\",\"display_name\":\"Event Config Write\",\"description\":\"Manage general event configuration such as API Emails.\",\"created\":\"2023-05-20T01:20:31.639587+00:00\",\"group_name\":\"Events\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"3a48350c-f9bc-11ed-b81c-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_findings_write\",\"display_name\":\"Security Monitoring Findings Write\",\"description\":\"Mute CSPM Findings.\",\"created\":\"2023-05-23T22:50:34.532448+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"a773e3d8-fff2-11ed-965c-da7ad0900002\",\"attributes\":{\"name\":\"cloud_cost_management_read\",\"display_name\":\"Cloud Cost Management Read\",\"description\":\"View Cloud Cost pages. This does not restrict access to the cloud cost data source in dashboards and notebooks.\",\"created\":\"2023-05-31T20:35:17.490437+00:00\",\"group_name\":\"Cloud Cost Management\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"a77452c8-fff2-11ed-965d-da7ad0900002\",\"attributes\":{\"name\":\"cloud_cost_management_write\",\"display_name\":\"Cloud Cost Management Write\",\"description\":\"Configure cloud cost accounts and global customizations.\",\"created\":\"2023-05-31T20:35:17.490437+00:00\",\"group_name\":\"Cloud Cost Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"a51b375a-ff73-11ed-8c18-da7ad0900002\",\"attributes\":{\"name\":\"host_tags_write\",\"display_name\":\"Host Tags Write\",\"description\":\"Add and change tags on hosts.\",\"created\":\"2023-05-31T05:26:07.469293+00:00\",\"group_name\":\"Metrics\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"61f9891a-0070-11ee-9c3f-da7ad0900002\",\"attributes\":{\"name\":\"ci_visibility_pipelines_write\",\"display_name\":\"CI Visibility Pipelines Write\",\"description\":\"Create CI Visibility pipeline spans using the API.\",\"created\":\"2023-06-01T11:35:17.513706+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1377d9e4-0ec7-11ee-aebc-da7ad0900002\",\"attributes\":{\"name\":\"quality_gate_rules_read\",\"display_name\":\"Quality Gate Rules Read\",\"description\":\"View Quality Gate Rules.\",\"created\":\"2023-06-19T17:31:08.295856+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"cc8cd958-11eb-11ee-ade2-da7ad0900002\",\"attributes\":{\"name\":\"metrics_metadata_write\",\"display_name\":\"Metrics Metadata Write\",\"description\":\"Edit metadata on metrics.\",\"created\":\"2023-06-23T17:31:34.182629+00:00\",\"group_name\":\"Metrics\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b1ad77e6-0949-11ee-b2c3-da7ad0900002\",\"attributes\":{\"name\":\"appsec_vm_write\",\"display_name\":\"Application Security Vulnerability Management Write\",\"description\":\"Update status or assignee of Application Security vulnerabilities.\",\"created\":\"2023-06-12T17:51:01.325450+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b1adb5da-0949-11ee-b2c4-da7ad0900002\",\"attributes\":{\"name\":\"reference_tables_write\",\"display_name\":\"Reference Tables Write\",\"description\":\"Create or modify Reference Tables.\",\"created\":\"2023-06-12T17:51:01.325450+00:00\",\"group_name\":\"Reference Tables\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"0efeff18-1cec-11ee-992d-da7ad0900002\",\"attributes\":{\"name\":\"rum_playlist_write\",\"display_name\":\"RUM Playlist Write\",\"description\":\"Create, update, and delete RUM playlists. Add and remove sessions from RUM playlists.\",\"created\":\"2023-07-07T17:31:08.450865+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"785177a6-20da-11ee-bed7-da7ad0900002\",\"attributes\":{\"name\":\"processes_generate_metrics\",\"display_name\":\"Processes Generate Metrics\",\"description\":\"Create custom metrics from processes.\",\"created\":\"2023-07-12T17:35:18.858294+00:00\",\"group_name\":\"Processes\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1b8f54cc-2ca4-11ee-9e72-da7ad0900002\",\"attributes\":{\"name\":\"facets_write\",\"display_name\":\"Facets Write\",\"description\":\"Manage facets for products other than Log Management, such as APM Traces. To modify Log Facets, use Logs Write Facets.\",\"created\":\"2023-07-27T17:36:24.369352+00:00\",\"group_name\":\"Cross-Product Features\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"roles\",\"id\":\"94172442-be03-11e9-a77a-3b7612558ac1\",\"attributes\":{\"name\":\"Datadog Admin Role\",\"created_at\":\"2019-08-13T19:50:19.022791+00:00\",\"modified_at\":\"2019-08-13T19:50:19.022791+00:00\"},\"relationships\":{\"permissions\":{\"data\":[{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\"},{\"type\":\"permissions\",\"id\":\"984d2f00-d3b4-11e8-a200-bb47109e9987\"},{\"type\":\"permissions\",\"id\":\"5e605652-dd12-11e8-9e53-375565b8970e\"},{\"type\":\"permissions\",\"id\":\"62cc036c-dd12-11e8-9e54-db9995643092\"},{\"type\":\"permissions\",\"id\":\"6f66600e-dd12-11e8-9e55-7f30fbb45e73\"},{\"type\":\"permissions\",\"id\":\"7d7c98ac-dd12-11e8-9e56-93700598622d\"},{\"type\":\"permissions\",\"id\":\"811ac4ca-dd12-11e8-9e57-676a7f0beef9\"},{\"type\":\"permissions\",\"id\":\"84aa3ae4-dd12-11e8-9e58-a373a514ccd0\"},{\"type\":\"permissions\",\"id\":\"87b00304-dd12-11e8-9e59-cbeb5f71f72f\"},{\"type\":\"permissions\",\"id\":\"979df720-aed7-11e9-99c6-a7eb8373165a\"},{\"type\":\"permissions\",\"id\":\"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2\"},{\"type\":\"permissions\",\"id\":\"d90f6831-d3d8-11e9-a77a-4fd230ddbc6a\"},{\"type\":\"permissions\",\"id\":\"d90f6832-d3d8-11e9-a77a-bf8a2607f864\"},{\"type\":\"permissions\",\"id\":\"4441648c-d8b1-11e9-a77a-1b899a04b304\"},{\"type\":\"permissions\",\"id\":\"48ef71ea-d8b1-11e9-a77a-93f408470ad0\"},{\"type\":\"permissions\",\"id\":\"4d87d5f8-d8b1-11e9-a77a-eb9c8350d04f\"},{\"type\":\"permissions\",\"id\":\"1af86ce4-7823-11ea-93dc-d7cad1b1c6cb\"},{\"type\":\"permissions\",\"id\":\"b382b982-8535-11ea-93de-2bf1bdf20798\"},{\"type\":\"permissions\",\"id\":\"7314eb20-aa58-11ea-95e2-6fb6e4a451d5\"},{\"type\":\"permissions\",\"id\":\"7b516476-aa58-11ea-95e2-93718cd56369\"},{\"type\":\"permissions\",\"id\":\"80de1ec0-aa58-11ea-95e2-aff381626d5d\"},{\"type\":\"permissions\",\"id\":\"58b412cc-ff6d-11eb-bc9c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"9ac1d8cc-e707-11ea-aa2d-73d37e989a9d\"},{\"type\":\"permissions\",\"id\":\"9de604d8-e707-11ea-aa2d-93f1a783b3a3\"},{\"type\":\"permissions\",\"id\":\"46a301da-ec5c-11ea-aa9f-73bedeab67ee\"},{\"type\":\"permissions\",\"id\":\"46a301db-ec5c-11ea-aa9f-2fe72193d60e\"},{\"type\":\"permissions\",\"id\":\"46a301dc-ec5c-11ea-aa9f-13b33f8f46ea\"},{\"type\":\"permissions\",\"id\":\"46a301dd-ec5c-11ea-aa9f-97edfb345bc9\"},{\"type\":\"permissions\",\"id\":\"46a301de-ec5c-11ea-aa9f-a73252c24806\"},{\"type\":\"permissions\",\"id\":\"46a301df-ec5c-11ea-aa9f-970a9ae645e5\"},{\"type\":\"permissions\",\"id\":\"46a301e0-ec5c-11ea-aa9f-6ba6cc675d8c\"},{\"type\":\"permissions\",\"id\":\"46a301e1-ec5c-11ea-aa9f-afa39f6f3e36\"},{\"type\":\"permissions\",\"id\":\"46a301e2-ec5c-11ea-aa9f-1f511b7305fd\"},{\"type\":\"permissions\",\"id\":\"46a301e4-ec5c-11ea-aa9f-87282b3a50cc\"},{\"type\":\"permissions\",\"id\":\"07c3c146-f7f8-11ea-acf6-0bd62b9ae60e\"},{\"type\":\"permissions\",\"id\":\"2fbdac76-f923-11ea-adbc-07f3823e2b43\"},{\"type\":\"permissions\",\"id\":\"372896c4-f923-11ea-adbc-4fecd107156d\"},{\"type\":\"permissions\",\"id\":\"3e4d4d28-f923-11ea-adbc-e3565938c12e\"},{\"type\":\"permissions\",\"id\":\"4628ca54-f923-11ea-adbc-4b2b7f88c5e9\"},{\"type\":\"permissions\",\"id\":\"4ada6e36-f923-11ea-adbc-0788e5c5e3cf\"},{\"type\":\"permissions\",\"id\":\"5025ee24-f923-11ea-adbc-576ea241df8d\"},{\"type\":\"permissions\",\"id\":\"55f4b5ec-f923-11ea-adbc-1bfa2334a755\"},{\"type\":\"permissions\",\"id\":\"5c6b88e2-f923-11ea-adbc-abf57d079420\"},{\"type\":\"permissions\",\"id\":\"642eebe6-f923-11ea-adbc-eb617674ea04\"},{\"type\":\"permissions\",\"id\":\"6ba32d22-0e1a-11eb-ba44-bf9a5aafaa39\"},{\"type\":\"permissions\",\"id\":\"a42e94b2-1476-11eb-bd08-efda28c04248\"},{\"type\":\"permissions\",\"id\":\"fcac2ad8-2843-11eb-8315-0fe47949d625\"},{\"type\":\"permissions\",\"id\":\"417ba636-2dce-11eb-84c0-6bce5b0d9de0\"},{\"type\":\"permissions\",\"id\":\"43fa188e-2dce-11eb-84c0-835ad1fd6287\"},{\"type\":\"permissions\",\"id\":\"465cfe66-2dce-11eb-84c0-6baa888239fa\"},{\"type\":\"permissions\",\"id\":\"4916eebe-2dce-11eb-84c0-271cb2c672e8\"},{\"type\":\"permissions\",\"id\":\"4e3f02b4-2dce-11eb-84c0-2fca946a6efc\"},{\"type\":\"permissions\",\"id\":\"53950c54-2dce-11eb-84c0-a79ae108f6f8\"},{\"type\":\"permissions\",\"id\":\"5cbe5f9c-2dce-11eb-84c0-872d3e9f1076\"},{\"type\":\"permissions\",\"id\":\"61765026-2dce-11eb-84c0-833e230d1b8f\"},{\"type\":\"permissions\",\"id\":\"04bc1cf2-340a-11eb-873a-43b973c760dd\"},{\"type\":\"permissions\",\"id\":\"8106300a-54f7-11eb-8cbc-7781a434a67b\"},{\"type\":\"permissions\",\"id\":\"edfd5e74-801f-11eb-96d8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"edfd5e75-801f-11eb-96d8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"bf0dcf7c-90af-11eb-9b82-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"bf0dcf7d-90af-11eb-9b82-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"98b984f4-b16d-11eb-a2c6-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"98b984f5-b16d-11eb-a2c6-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc20e-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc211-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc20f-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"12efc210-d36c-11eb-a9b8-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1c-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"97971c1d-e895-11eb-b13c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef24-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7605ef25-f376-11eb-b90b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"c95412b8-16c7-11ec-85c0-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"c95412b9-16c7-11ec-85c0-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"26c79920-1703-11ec-85d2-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f4473c60-4792-11ec-a27b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f4473c61-4792-11ec-a27b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"020a563c-56a4-11ec-a982-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"8e4d6b6e-5750-11ec-a9f4-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"945b3bb4-5884-11ec-aa6d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"945b3bb5-5884-11ec-aa6d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f6e917a8-8502-11ec-bf20-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f6e917aa-8502-11ec-bf20-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f6e917a9-8502-11ec-bf20-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f6e917a6-8502-11ec-bf20-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f6e917a7-8502-11ec-bf20-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac6-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b6bf9ac7-9a59-11ec-8480-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"e35c06b0-966b-11ec-83c9-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"2108215e-b9b4-11ec-958e-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7b1f5089-c59e-11ec-aa32-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"1afff448-d5e9-11ec-ae37-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"1afff449-d5e9-11ec-ae37-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c87d3da-e5c5-11ec-b1d6-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941cf-e746-11ec-b22d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941d0-e746-11ec-b22d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f8e941ce-e746-11ec-b22d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4784b11c-f311-11ec-a5f5-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"ee68fba9-173a-11ed-b00b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"ee68fba8-173a-11ed-b00b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"5b2c3e28-1761-11ed-b018-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6be119a6-1cd8-11ed-b185-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"36e2a22e-248a-11ed-b405-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4ee674f6-55d9-11ed-b10d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4ee7e46c-55d9-11ed-b10e-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4ee5731c-55d9-11ed-b10b-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4ee60688-55d9-11ed-b10c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"8247acc4-7a4c-11ed-958f-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"824851a6-7a4c-11ed-9590-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"77d5f45e-7a5a-11ed-8abf-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"77d55a44-7a5a-11ed-8abe-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5ad874-7aff-11ed-a5cd-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5c1090-7aff-11ed-a5cf-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c59ae72-7aff-11ed-a5cc-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5b7428-7aff-11ed-a5ce-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5d0892-7aff-11ed-a5d0-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5de654-7aff-11ed-a5d1-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"c13a2368-7d61-11ed-b5b7-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"1d76ecfa-9771-11ed-9c2f-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"ca6bfb3a-b44f-11ed-adb2-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4dc3eec6-b468-11ed-8539-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4dc4094c-b468-11ed-853a-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"35dd33ea-ca2e-11ed-bca0-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"36bf3d0a-ccc0-11ed-9453-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f416f55e-db3f-11ed-8028-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"f416b1ac-db3f-11ed-8027-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4e61a95e-de98-11ed-aa23-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"4e61ea18-de98-11ed-aa24-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"a4316eb8-f438-11ed-8af2-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"a431bf12-f438-11ed-8af3-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"8352cf04-f6ac-11ed-9ec7-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"3a48350c-f9bc-11ed-b81c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"a773e3d8-fff2-11ed-965c-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"a77452c8-fff2-11ed-965d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"a51b375a-ff73-11ed-8c18-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"61f9891a-0070-11ee-9c3f-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"1377d9e4-0ec7-11ee-aebc-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"1377ff28-0ec7-11ee-aebd-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"cc8cd958-11eb-11ee-ade2-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b1adb6e8-0949-11ee-b2c5-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b1ad77e6-0949-11ee-b2c3-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"b1adb5da-0949-11ee-b2c4-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"0efeff18-1cec-11ee-992d-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5ce898-21a4-11ee-99ef-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"6c5ce992-21a4-11ee-99f0-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"785177a6-20da-11ee-bed7-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"7850e390-20da-11ee-bed6-da7ad0900002\"},{\"type\":\"permissions\",\"id\":\"1b8f54cc-2ca4-11ee-9e72-da7ad0900002\"}]}}},{\"type\":\"permissions\",\"id\":\"984a2bd4-d3b4-11e8-a1ff-a7f660d43029\",\"attributes\":{\"name\":\"admin\",\"display_name\":\"Privileged Access\",\"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.\",\"created\":\"2018-10-19T15:35:23.734317+00:00\",\"group_name\":\"General\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"87b00304-dd12-11e8-9e59-cbeb5f71f72f\",\"attributes\":{\"name\":\"logs_write_archives\",\"display_name\":\"Logs Write Archives\",\"description\":\"Add and edit Log Archives.\",\"created\":\"2018-10-31T13:40:29.040786+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"9de604d8-e707-11ea-aa2d-93f1a783b3a3\",\"attributes\":{\"name\":\"user_access_manage\",\"display_name\":\"User Access Manage\",\"description\":\"Disable users, manage user roles, manage SAML-to-role mappings, and configure logs restriction queries.\",\"created\":\"2020-08-25T19:17:28.810412+00:00\",\"group_name\":\"Access Management\",\"display_type\":\"other\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"46a301dc-ec5c-11ea-aa9f-13b33f8f46ea\",\"attributes\":{\"name\":\"org_app_keys_write\",\"display_name\":\"Org App Keys Write\",\"description\":\"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\":\"46a301de-ec5c-11ea-aa9f-a73252c24806\",\"attributes\":{\"name\":\"synthetics_private_location_write\",\"display_name\":\"Synthetics Private Locations Write\",\"description\":\"Create and delete private locations in addition to having access to 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 Read\",\"description\":\"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 Edit\",\"description\":\"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 Read\",\"description\":\"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 Edit\",\"description\":\"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\":\"2fbdac76-f923-11ea-adbc-07f3823e2b43\",\"attributes\":{\"name\":\"audit_logs_read\",\"display_name\":\"Audit Trail Read\",\"description\":\"View Audit Trail in your organization.\",\"created\":\"2020-09-17T20:20:10.834252+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"3e4d4d28-f923-11ea-adbc-e3565938c12e\",\"attributes\":{\"name\":\"api_keys_write\",\"display_name\":\"API Keys Write\",\"description\":\"Create and rename 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\":\"a42e94b2-1476-11eb-bd08-efda28c04248\",\"attributes\":{\"name\":\"service_account_write\",\"display_name\":\"Service Account Write\",\"description\":\"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\":\"465cfe66-2dce-11eb-84c0-6baa888239fa\",\"attributes\":{\"name\":\"apm_retention_filter_write\",\"display_name\":\"APM Retention Filters Write\",\"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.\",\"created\":\"2020-11-23T20:55:53.194236+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4e3f02b4-2dce-11eb-84c0-2fca946a6efc\",\"attributes\":{\"name\":\"apm_service_ingest_write\",\"display_name\":\"APM Service Ingest Write\",\"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.\",\"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\":\"APM Apdex Manage Write\",\"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.\",\"created\":\"2020-11-23T20:56:15.371926+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 Trail Write\",\"description\":\"Configure Audit Trail in your organization.\",\"created\":\"2020-12-01T19:18:39.866516+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"edfd5e74-801f-11eb-96d8-da7ad0900002\",\"attributes\":{\"name\":\"debugger_write\",\"display_name\":\"Dynamic Instrumentation Write Configuration\",\"description\":\"Edit Dynamic Instrumentation configuration.\",\"created\":\"2021-03-08T15:06:59.006815+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7c-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_read\",\"display_name\":\"Data Scanner Read\",\"description\":\"View Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.394971+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"bf0dcf7d-90af-11eb-9b82-da7ad0900002\",\"attributes\":{\"name\":\"data_scanner_write\",\"display_name\":\"Data Scanner Write\",\"description\":\"Edit Data Scanner configurations.\",\"created\":\"2021-03-29T16:56:46.398584+00:00\",\"group_name\":\"Compliance\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7df222b6-a45c-11eb-a0af-da7ad0900002\",\"attributes\":{\"name\":\"org_management\",\"display_name\":\"Org Management\",\"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 & unsubscribing from apps in the marketplace, and enabling & disabling Remote Configuration for the entire organization.\",\"created\":\"2021-04-23T17:51:12.187340+00:00\",\"group_name\":\"Access Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"98b984f5-b16d-11eb-a2c6-da7ad0900002\",\"attributes\":{\"name\":\"security_monitoring_filters_write\",\"display_name\":\"Security Filters Write\",\"description\":\"Create, edit, and delete Security Filters.\",\"created\":\"2021-05-10T08:56:23.680551+00:00\",\"group_name\":\"Cloud Security Platform\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"020a563c-56a4-11ec-a982-da7ad0900002\",\"attributes\":{\"name\":\"apm_pipelines_write\",\"display_name\":\"APM Pipelines Write\",\"description\":\"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\":\"945b3bb5-5884-11ec-aa6d-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_write\",\"display_name\":\"Pipeline Configurations Write\",\"description\":\"Create, edit, and delete pipeline configurations.\",\"created\":\"2021-12-09T00:11:38.960833+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"e35c06b0-966b-11ec-83c9-da7ad0900002\",\"attributes\":{\"name\":\"logs_delete_data\",\"display_name\":\"Logs Delete Data\",\"description\":\"Delete data from your Logs, including entire indexes.\",\"created\":\"2022-02-25T18:51:06.176019+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1afff448-d5e9-11ec-ae37-da7ad0900002\",\"attributes\":{\"name\":\"usage_notifications_read\",\"display_name\":\"Usage Notifications Read\",\"description\":\"Receive notifications and view currently configured notification settings.\",\"created\":\"2022-05-17T13:56:09.870985+00:00\",\"group_name\":\"Billing and Usage\",\"display_type\":\"read\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1afff449-d5e9-11ec-ae37-da7ad0900002\",\"attributes\":{\"name\":\"usage_notifications_write\",\"display_name\":\"Usage Notifications Write\",\"description\":\"Receive notifications and configure notification settings.\",\"created\":\"2022-05-17T13:56:09.876124+00:00\",\"group_name\":\"Billing and Usage\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c87d3da-e5c5-11ec-b1d6-da7ad0900002\",\"attributes\":{\"name\":\"generate_dashboard_reports\",\"display_name\":\"Dashboards Report Write\",\"description\":\"Schedule custom reports from a dashboard. These reports will display any viewable data regardless of any granular restrictions (restriction queries, scoped indexes) applied to the report's creator.\",\"created\":\"2022-06-06T18:21:03.378896+00:00\",\"group_name\":\"Dashboards\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"4784b11c-f311-11ec-a5f5-da7ad0900002\",\"attributes\":{\"name\":\"monitor_config_policy_write\",\"display_name\":\"Monitor Configuration Policy Write\",\"description\":\"Create, update, and delete monitor configuration policies.\",\"created\":\"2022-06-23T16:26:48.150556+00:00\",\"group_name\":\"Monitors\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"5b2c3e28-1761-11ed-b018-da7ad0900002\",\"attributes\":{\"name\":\"logs_write_forwarding_rules\",\"display_name\":\"Logs Write Forwarding Rules\",\"description\":\"Add and edit forwarding destinations and rules for logs.\",\"created\":\"2022-08-08T21:30:42.723663+00:00\",\"group_name\":\"Log Management\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"77d5f45e-7a5a-11ed-8abf-da7ad0900002\",\"attributes\":{\"name\":\"apm_remote_configuration_write\",\"display_name\":\"APM Remote Configuration Write\",\"description\":\"Edit APM Remote Configuration.\",\"created\":\"2022-12-12T20:20:49.450768+00:00\",\"group_name\":\"APM\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c59ae72-7aff-11ed-a5cc-da7ad0900002\",\"attributes\":{\"name\":\"ci_provider_settings_write\",\"display_name\":\"CI Provider Settings Write\",\"description\":\"Edit CI Provider settings. Manage GitHub accounts and repositories for enabling CI Visibility and job logs collection.\",\"created\":\"2022-12-13T16:01:37.141217+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c5d0892-7aff-11ed-a5d0-da7ad0900002\",\"attributes\":{\"name\":\"intelligent_test_runner_activation_write\",\"display_name\":\"Intelligent Test Runner Activation Write\",\"description\":\"Enable or disable Intelligent Test Runner.\",\"created\":\"2022-12-13T16:01:37.163771+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1d76ecfa-9771-11ed-9c2f-da7ad0900002\",\"attributes\":{\"name\":\"teams_manage\",\"display_name\":\"Teams Manage\",\"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.\",\"created\":\"2023-01-18T20:45:59.977837+00:00\",\"group_name\":\"Teams\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"35dd33ea-ca2e-11ed-bca0-da7ad0900002\",\"attributes\":{\"name\":\"ci_ingestion_control_write\",\"display_name\":\"CI Visibility Ingestion Control Write\",\"description\":\"Edit CI Ingestion Control exclusion filters.\",\"created\":\"2023-03-24T10:25:33.934187+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"1377ff28-0ec7-11ee-aebd-da7ad0900002\",\"attributes\":{\"name\":\"quality_gate_rules_write\",\"display_name\":\"Quality Gate Rules Write\",\"description\":\"Edit Quality Gate Rules.\",\"created\":\"2023-06-19T17:31:08.295856+00:00\",\"group_name\":\"CI Visibility\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"b1adb6e8-0949-11ee-b2c5-da7ad0900002\",\"attributes\":{\"name\":\"rum_delete_data\",\"display_name\":\"RUM Delete Data\",\"description\":\"Delete data from RUM.\",\"created\":\"2023-06-12T17:51:01.325450+00:00\",\"group_name\":\"Real User Monitoring\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c5ce898-21a4-11ee-99ef-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_delete\",\"display_name\":\"Pipeline Delete\",\"description\":\"Delete pipelines from your organization.\",\"created\":\"2023-07-13T17:40:57.140947+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"6c5ce992-21a4-11ee-99f0-da7ad0900002\",\"attributes\":{\"name\":\"observability_pipelines_deploy\",\"display_name\":\"Pipeline Deploy\",\"description\":\"Deploy pipelines in your organization.\",\"created\":\"2023-07-13T17:40:57.140947+00:00\",\"group_name\":\"Observability Pipelines\",\"display_type\":\"write\",\"restricted\":false}},{\"type\":\"permissions\",\"id\":\"7850e390-20da-11ee-bed6-da7ad0900002\",\"attributes\":{\"name\":\"api_keys_delete\",\"display_name\":\"API Keys Delete\",\"description\":\"Delete API Keys for your organization.\",\"created\":\"2023-07-12T17:35:18.858294+00:00\",\"group_name\":\"API and Application Keys\",\"display_type\":\"write\",\"restricted\":false}}],\"meta\":{\"page\":{\"total_count\":203828,\"total_filtered_count\":203828}}}\n", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Tue, 05 Sep 2023 13:14:24 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/users/List-all-users-returns-OK-response.json b/tests/scenarios/cassettes/v2/users/List-all-users-returns-OK-response.json index b02da1dc1..bb868e07d 100644 --- a/tests/scenarios/cassettes/v2/users/List-all-users-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/users/List-all-users-returns-OK-response.json @@ -1 +1,91 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"Test-List_all_users_returns_OK_response-1652349222@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/users"}, "response": {"body": {"string": "{\"data\":{\"type\":\"users\",\"id\":\"688172d2-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":null,\"handle\":\"test-list_all_users_returns_ok_response-1652349222@datadoghq.com\",\"created_at\":\"2022-05-12T09:53:43.305109+00:00\",\"modified_at\":\"2022-05-12T09:53:43.351606+00:00\",\"email\":\"test-list_all_users_returns_ok_response-1652349222@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b120ea663af2577e015c19831dd91cd6?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:53:42 GMT"}, {"request": {"body": "", "headers": {"Accept": ["application/json"]}, "method": "get", "uri": "https://api.datadoghq.com/api/v2/users?filter=test-list_all_users_returns_ok_response-1652349222%40datadoghq.com"}, "response": {"body": {"string": "{\"meta\":{\"page\":{\"total_filtered_count\":1,\"total_count\":57061}},\"data\":[{\"type\":\"users\",\"id\":\"688172d2-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":null,\"handle\":\"test-list_all_users_returns_ok_response-1652349222@datadoghq.com\",\"created_at\":\"2022-05-12T09:53:43.305109+00:00\",\"modified_at\":\"2022-05-12T09:53:43.351606+00:00\",\"email\":\"test-list_all_users_returns_ok_response-1652349222@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b120ea663af2577e015c19831dd91cd6?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:53:42 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/users/688172d2-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:53:42 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"email\":\"Test-List_all_users_returns_OK_response-1652349222@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/users" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"users\",\"id\":\"688172d2-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":null,\"handle\":\"test-list_all_users_returns_ok_response-1652349222@datadoghq.com\",\"created_at\":\"2022-05-12T09:53:43.305109+00:00\",\"modified_at\":\"2022-05-12T09:53:43.351606+00:00\",\"email\":\"test-list_all_users_returns_ok_response-1652349222@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b120ea663af2577e015c19831dd91cd6?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:42 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/users?filter=test-list_all_users_returns_ok_response-1652349222%40datadoghq.com" + }, + "response": { + "body": { + "string": "{\"meta\":{\"page\":{\"total_filtered_count\":1,\"total_count\":57061}},\"data\":[{\"type\":\"users\",\"id\":\"688172d2-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":null,\"handle\":\"test-list_all_users_returns_ok_response-1652349222@datadoghq.com\",\"created_at\":\"2022-05-12T09:53:43.305109+00:00\",\"modified_at\":\"2022-05-12T09:53:43.351606+00:00\",\"email\":\"test-list_all_users_returns_ok_response-1652349222@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b120ea663af2577e015c19831dd91cd6?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:42 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/users/688172d2-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:42 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/users/Send-invitation-emails-returns-OK-response.json b/tests/scenarios/cassettes/v2/users/Send-invitation-emails-returns-OK-response.json index c0ba0b2df..be79a6fb0 100644 --- a/tests/scenarios/cassettes/v2/users/Send-invitation-emails-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/users/Send-invitation-emails-returns-OK-response.json @@ -1 +1,97 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"Test-Send_invitation_emails_returns_OK_response-1652349230@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/users"}, "response": {"body": {"string": "{\"data\":{\"type\":\"users\",\"id\":\"6cf192b6-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":null,\"handle\":\"test-send_invitation_emails_returns_ok_response-1652349230@datadoghq.com\",\"created_at\":\"2022-05-12T09:53:50.750988+00:00\",\"modified_at\":\"2022-05-12T09:53:50.825901+00:00\",\"email\":\"test-send_invitation_emails_returns_ok_response-1652349230@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/08690384d51c4e0218825490e53c6f9a?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:53:50 GMT"}, {"request": {"body": {"string": "{\"data\":[{\"relationships\":{\"user\":{\"data\":{\"id\":\"6cf192b6-d1d9-11ec-ad3d-da7ad0900002\",\"type\":\"users\"}}},\"type\":\"user_invitations\"}]}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/user_invitations"}, "response": {"body": {"string": "{\"data\":[{\"type\":\"user_invitations\",\"id\":\"6d565dfe-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"uuid\":\"6d565dfe-d1d9-11ec-ad3d-da7ad0900002\",\"login_method\":null,\"invite_type\":\"openid_invite\",\"created_at\":\"2022-05-12T09:53:51.412532+00:00\",\"expires_at\":\"2022-05-14T09:53:51.311613+00:00\"},\"relationships\":{\"user\":{\"data\":{\"type\":\"users\",\"id\":\"6cf192b6-d1d9-11ec-ad3d-da7ad0900002\"}}}}]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:53:50 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/users/6cf192b6-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:53:50 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"email\":\"Test-Send_invitation_emails_returns_OK_response-1652349230@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/users" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"users\",\"id\":\"6cf192b6-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":null,\"handle\":\"test-send_invitation_emails_returns_ok_response-1652349230@datadoghq.com\",\"created_at\":\"2022-05-12T09:53:50.750988+00:00\",\"modified_at\":\"2022-05-12T09:53:50.825901+00:00\",\"email\":\"test-send_invitation_emails_returns_ok_response-1652349230@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/08690384d51c4e0218825490e53c6f9a?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:50 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":[{\"relationships\":{\"user\":{\"data\":{\"id\":\"6cf192b6-d1d9-11ec-ad3d-da7ad0900002\",\"type\":\"users\"}}},\"type\":\"user_invitations\"}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/user_invitations" + }, + "response": { + "body": { + "string": "{\"data\":[{\"type\":\"user_invitations\",\"id\":\"6d565dfe-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"uuid\":\"6d565dfe-d1d9-11ec-ad3d-da7ad0900002\",\"login_method\":null,\"invite_type\":\"openid_invite\",\"created_at\":\"2022-05-12T09:53:51.412532+00:00\",\"expires_at\":\"2022-05-14T09:53:51.311613+00:00\"},\"relationships\":{\"user\":{\"data\":{\"type\":\"users\",\"id\":\"6cf192b6-d1d9-11ec-ad3d-da7ad0900002\"}}}}]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:50 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/users/6cf192b6-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:50 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/users/Update-a-user-returns-Bad-User-ID-in-Request-response.json b/tests/scenarios/cassettes/v2/users/Update-a-user-returns-Bad-User-ID-in-Request-response.json index f7f3de90b..a61d22946 100644 --- a/tests/scenarios/cassettes/v2/users/Update-a-user-returns-Bad-User-ID-in-Request-response.json +++ b/tests/scenarios/cassettes/v2/users/Update-a-user-returns-Bad-User-ID-in-Request-response.json @@ -1 +1,97 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"Test-Update_a_user_returns_Bad_User_ID_in_Request_response-1652349231@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/users"}, "response": {"body": {"string": "{\"data\":{\"type\":\"users\",\"id\":\"6de87a9a-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":null,\"handle\":\"test-update_a_user_returns_bad_user_id_in_request_response-1652349231@datadoghq.com\",\"created_at\":\"2022-05-12T09:53:52.369558+00:00\",\"modified_at\":\"2022-05-12T09:53:52.414328+00:00\",\"email\":\"test-update_a_user_returns_bad_user_id_in_request_response-1652349231@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/7e237f697063f0a1613e61769fbd6f5b?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:53:51 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"disabled\":true,\"name\":\"updated\"},\"id\":\"00000000-mismatch-body-id-ffffffffffff\",\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/users/6de87a9a-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "{\"errors\": [\"UUID's in the URL and request body do not match\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 422, "message": "Unprocessable Entity"}}, "recorded_at": "Thu, 12 May 2022 09:53:51 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/users/6de87a9a-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "", "encoding": null}, "headers": {}, "status": {"code": 204, "message": "No Content"}}, "recorded_at": "Thu, 12 May 2022 09:53:51 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"email\":\"Test-Update_a_user_returns_Bad_User_ID_in_Request_response-1652349231@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/users" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"users\",\"id\":\"6de87a9a-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":null,\"handle\":\"test-update_a_user_returns_bad_user_id_in_request_response-1652349231@datadoghq.com\",\"created_at\":\"2022-05-12T09:53:52.369558+00:00\",\"modified_at\":\"2022-05-12T09:53:52.414328+00:00\",\"email\":\"test-update_a_user_returns_bad_user_id_in_request_response-1652349231@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/7e237f697063f0a1613e61769fbd6f5b?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:51 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"disabled\":true,\"name\":\"updated\"},\"id\":\"00000000-mismatch-body-id-ffffffffffff\",\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/users/6de87a9a-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "{\"errors\": [\"UUID's in the URL and request body do not match\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 422, + "message": "Unprocessable Entity" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:51 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/users/6de87a9a-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "", + "encoding": null + }, + "headers": {}, + "status": { + "code": 204, + "message": "No Content" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:51 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/users/Update-a-user-returns-Not-found-response.json b/tests/scenarios/cassettes/v2/users/Update-a-user-returns-Not-found-response.json index 1c8d06e5c..c41e766ca 100644 --- a/tests/scenarios/cassettes/v2/users/Update-a-user-returns-Not-found-response.json +++ b/tests/scenarios/cassettes/v2/users/Update-a-user-returns-Not-found-response.json @@ -1 +1,39 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"disabled\":true,\"name\":\"updated\"},\"id\":\"00000000-dead-beef-dead-ffffffffffff\",\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/users/00000000-dead-beef-dead-ffffffffffff"}, "response": {"body": {"string": "{\"errors\":[\"00000000-dead-beef-dead-ffffffffffff not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 06 Jan 2022 00:52:36 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"disabled\":true,\"name\":\"updated\"},\"id\":\"00000000-dead-beef-dead-ffffffffffff\",\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/users/00000000-dead-beef-dead-ffffffffffff" + }, + "response": { + "body": { + "string": "{\"errors\":[\"00000000-dead-beef-dead-ffffffffffff not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 06 Jan 2022 00:52:36 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/users/Update-a-user-returns-OK-response.json b/tests/scenarios/cassettes/v2/users/Update-a-user-returns-OK-response.json index bf226f1e7..ba9d70b3f 100644 --- a/tests/scenarios/cassettes/v2/users/Update-a-user-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/users/Update-a-user-returns-OK-response.json @@ -1 +1,101 @@ -{"http_interactions": [{"request": {"body": {"string": "{\"data\":{\"attributes\":{\"email\":\"Test-Update_a_user_returns_OK_response-1652349233@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "post", "uri": "https://api.datadoghq.com/api/v2/users"}, "response": {"body": {"string": "{\"data\":{\"type\":\"users\",\"id\":\"6de87a9b-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":null,\"handle\":\"test-update_a_user_returns_ok_response-1652349233@datadoghq.com\",\"created_at\":\"2022-05-12T09:53:53.972168+00:00\",\"modified_at\":\"2022-05-12T09:53:54.014176+00:00\",\"email\":\"test-update_a_user_returns_ok_response-1652349233@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/e3e4683c1e52cc0efa35ddd7a3bf393a?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 201, "message": "Created"}}, "recorded_at": "Thu, 12 May 2022 09:53:53 GMT"}, {"request": {"body": {"string": "{\"data\":{\"attributes\":{\"disabled\":true,\"name\":\"updated\"},\"id\":\"6de87a9b-d1d9-11ec-ad3d-da7ad0900002\",\"type\":\"users\"}}", "encoding": null}, "headers": {"Accept": ["application/json"], "Content-Type": ["application/json"]}, "method": "patch", "uri": "https://api.datadoghq.com/api/v2/users/6de87a9b-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "{\"data\":{\"type\":\"users\",\"id\":\"6de87a9b-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"updated\",\"handle\":\"test-update_a_user_returns_ok_response-1652349233@datadoghq.com\",\"created_at\":\"2022-05-12T09:53:53.972168+00:00\",\"modified_at\":\"2022-05-12T09:53:54.471054+00:00\",\"email\":\"test-update_a_user_returns_ok_response-1652349233@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/e3e4683c1e52cc0efa35ddd7a3bf393a?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":true,\"allowed_login_methods\":[],\"status\":\"Disabled\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 200, "message": "OK"}}, "recorded_at": "Thu, 12 May 2022 09:53:53 GMT"}, {"request": {"body": "", "headers": {"Accept": ["*/*"]}, "method": "delete", "uri": "https://api.datadoghq.com/api/v2/users/6de87a9b-d1d9-11ec-ad3d-da7ad0900002"}, "response": {"body": {"string": "{\"errors\": [\"6de87a9b-d1d9-11ec-ad3d-da7ad0900002 not found\"]}", "encoding": null}, "headers": {"Content-Type": ["application/json"]}, "status": {"code": 404, "message": "Not Found"}}, "recorded_at": "Thu, 12 May 2022 09:53:53 GMT"}], "recorded_with": "VCR 6.0.0"} \ No newline at end of file +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"email\":\"Test-Update_a_user_returns_OK_response-1652349233@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v2/users" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"users\",\"id\":\"6de87a9b-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":null,\"handle\":\"test-update_a_user_returns_ok_response-1652349233@datadoghq.com\",\"created_at\":\"2022-05-12T09:53:53.972168+00:00\",\"modified_at\":\"2022-05-12T09:53:54.014176+00:00\",\"email\":\"test-update_a_user_returns_ok_response-1652349233@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/e3e4683c1e52cc0efa35ddd7a3bf393a?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Pending\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 201, + "message": "Created" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:53 GMT" + }, + { + "request": { + "body": { + "string": "{\"data\":{\"attributes\":{\"disabled\":true,\"name\":\"updated\"},\"id\":\"6de87a9b-d1d9-11ec-ad3d-da7ad0900002\",\"type\":\"users\"}}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "patch", + "uri": "https://api.datadoghq.com/api/v2/users/6de87a9b-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "{\"data\":{\"type\":\"users\",\"id\":\"6de87a9b-d1d9-11ec-ad3d-da7ad0900002\",\"attributes\":{\"name\":\"updated\",\"handle\":\"test-update_a_user_returns_ok_response-1652349233@datadoghq.com\",\"created_at\":\"2022-05-12T09:53:53.972168+00:00\",\"modified_at\":\"2022-05-12T09:53:54.471054+00:00\",\"email\":\"test-update_a_user_returns_ok_response-1652349233@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/e3e4683c1e52cc0efa35ddd7a3bf393a?s=48&d=retro\",\"title\":\"user title\",\"verified\":false,\"service_account\":false,\"disabled\":true,\"allowed_login_methods\":[],\"status\":\"Disabled\"},\"relationships\":{\"roles\":{\"data\":[]},\"org\":{\"data\":{\"type\":\"orgs\",\"id\":\"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:53 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "*/*" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v2/users/6de87a9b-d1d9-11ec-ad3d-da7ad0900002" + }, + "response": { + "body": { + "string": "{\"errors\": [\"6de87a9b-d1d9-11ec-ad3d-da7ad0900002 not found\"]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 404, + "message": "Not Found" + } + }, + "recorded_at": "Thu, 12 May 2022 09:53:53 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/features/v1/authentication.feature b/tests/scenarios/features/v1/authentication.feature index 9166a9126..b82a23132 100644 --- a/tests/scenarios/features/v1/authentication.feature +++ b/tests/scenarios/features/v1/authentication.feature @@ -7,7 +7,10 @@ Feature: Authentication site APIs. If you are on the Datadog EU site, set the environment variable `DATADOG_HOST` to `https://api.datadoghq.eu` or override this value directly when creating your client. [Manage your account’s API and - application keys](https://app.datadoghq.com/account/settings#api). + application keys](https://app.datadoghq.com/organization-settings/) in + Datadog, and see the [API and Application Keys + page](https://docs.datadoghq.com/account_management/api-app-keys/) in the + documentation. Background: Given an instance of "Authentication" API diff --git a/tests/scenarios/features/v1/aws_logs_integration.feature b/tests/scenarios/features/v1/aws_logs_integration.feature index 2dfda844e..5459cbb79 100644 --- a/tests/scenarios/features/v1/aws_logs_integration.feature +++ b/tests/scenarios/features/v1/aws_logs_integration.feature @@ -2,7 +2,8 @@ Feature: AWS Logs Integration Configure your Datadog-AWS-Logs integration directly through Datadog API. For more information, see the [AWS integration - page](https://docs.datadoghq.com/api/?lang=bash#integration-aws-logs). + page](https://docs.datadoghq.com/integrations/amazon_web_services/#log- + collection). Background: Given a valid "apiKeyAuth" key in the system diff --git a/tests/scenarios/features/v1/dashboards.feature b/tests/scenarios/features/v1/dashboards.feature index 0177acd4f..e631bc345 100644 --- a/tests/scenarios/features/v1/dashboards.feature +++ b/tests/scenarios/features/v1/dashboards.feature @@ -1,8 +1,8 @@ @endpoint(dashboards) @endpoint(dashboards-v1) Feature: Dashboards - Interact with your dashboard lists through the API to make it easier to - organize, find, and share all of your dashboards with your team and - organization. + Manage all your dashboards, as well as access to your shared dashboards, + through the API. See the [Dashboards + page](https://docs.datadoghq.com/dashboards/) for more information. Background: Given a valid "apiKeyAuth" key in the system diff --git a/tests/scenarios/features/v1/events.feature b/tests/scenarios/features/v1/events.feature index d9faefb43..3005fc756 100644 --- a/tests/scenarios/features/v1/events.feature +++ b/tests/scenarios/features/v1/events.feature @@ -1,9 +1,9 @@ @endpoint(events) @endpoint(events-v1) Feature: Events - The events service allows you to programmatically post events to the event - stream and fetch events from the event stream. Events are limited to 4000 - characters. If an event is sent out with a message containing more than - 4000 characters, only the first 4000 characters are displayed. + The Event Management API allows you to programmatically post events to the + Events Explorer and fetch events from the Events Explorer. See the [Event + Management page](https://docs.datadoghq.com/service_management/events/) + for more information. Background: Given a valid "apiKeyAuth" key in the system diff --git a/tests/scenarios/features/v1/gcp_integration.feature b/tests/scenarios/features/v1/gcp_integration.feature index cc078be2f..2b656ab20 100644 --- a/tests/scenarios/features/v1/gcp_integration.feature +++ b/tests/scenarios/features/v1/gcp_integration.feature @@ -13,21 +13,21 @@ Feature: GCP Integration @generated @skip @team:DataDog/gcp-integrations Scenario: Create a GCP integration returns "Bad Request" response Given new "CreateGCPIntegration" request - And body with value {"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "client_email": "api-dev@datadog-sandbox.iam.gserviceaccount.com", "client_id": "123456712345671234567", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL", "errors": ["*"], "host_filters": "key:value,filter:example", "is_cspm_enabled": true, "is_security_command_center_enabled": true, "private_key": "private_key", "private_key_id": "123456789abcdefghi123456789abcdefghijklm", "project_id": "datadog-apitest", "resource_collection_enabled": true, "token_uri": "https://accounts.google.com/o/oauth2/token", "type": "service_account"} + And body with value {"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "client_email": "api-dev@datadog-sandbox.iam.gserviceaccount.com", "client_id": "123456712345671234567", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL", "cloud_run_revision_filters": ["$KEY:$VALUE"], "errors": ["*"], "host_filters": "key:value,filter:example", "is_cspm_enabled": true, "is_security_command_center_enabled": true, "private_key": "private_key", "private_key_id": "123456789abcdefghi123456789abcdefghijklm", "project_id": "datadog-apitest", "resource_collection_enabled": true, "token_uri": "https://accounts.google.com/o/oauth2/token", "type": "service_account"} When the request is sent Then the response status is 400 Bad Request @team:DataDog/gcp-integrations Scenario: Create a GCP integration returns "OK" response Given new "CreateGCPIntegration" request - And body with value {"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "client_email": "{{unique_hash}}@example.com", "client_id": "{{ timestamp("now") }}{{ timestamp("now") }}0", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL", "host_filters": "key:value,filter:example", "is_cspm_enabled": true, "is_security_command_center_enabled": true, "private_key": "private_key", "private_key_id": "123456789abcdefghi123456789abcdefghijklm", "project_id": "datadog-apitest", "resource_collection_enabled": true, "token_uri": "https://accounts.google.com/o/oauth2/token", "type": "service_account"} + And body with value {"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "client_email": "{{unique_hash}}@example.com", "client_id": "{{ timestamp("now") }}{{ timestamp("now") }}0", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL", "host_filters": "key:value,filter:example", "cloud_run_revision_filters": ["dr:dre"], "is_cspm_enabled": true, "is_security_command_center_enabled": true, "private_key": "private_key", "private_key_id": "123456789abcdefghi123456789abcdefghijklm", "project_id": "datadog-apitest", "resource_collection_enabled": true, "token_uri": "https://accounts.google.com/o/oauth2/token", "type": "service_account"} When the request is sent Then the response status is 200 OK @generated @skip @team:DataDog/gcp-integrations Scenario: Delete a GCP integration returns "Bad Request" response Given new "DeleteGCPIntegration" request - And body with value {"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "client_email": "api-dev@datadog-sandbox.iam.gserviceaccount.com", "client_id": "123456712345671234567", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL", "errors": ["*"], "host_filters": "key:value,filter:example", "is_cspm_enabled": true, "is_security_command_center_enabled": true, "private_key": "private_key", "private_key_id": "123456789abcdefghi123456789abcdefghijklm", "project_id": "datadog-apitest", "resource_collection_enabled": true, "token_uri": "https://accounts.google.com/o/oauth2/token", "type": "service_account"} + And body with value {"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "client_email": "api-dev@datadog-sandbox.iam.gserviceaccount.com", "client_id": "123456712345671234567", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL", "cloud_run_revision_filters": ["$KEY:$VALUE"], "errors": ["*"], "host_filters": "key:value,filter:example", "is_cspm_enabled": true, "is_security_command_center_enabled": true, "private_key": "private_key", "private_key_id": "123456789abcdefghi123456789abcdefghijklm", "project_id": "datadog-apitest", "resource_collection_enabled": true, "token_uri": "https://accounts.google.com/o/oauth2/token", "type": "service_account"} When the request is sent Then the response status is 400 Bad Request @@ -51,10 +51,18 @@ Feature: GCP Integration When the request is sent Then the response status is 200 OK + @team:DataDog/gcp-integrations + Scenario: Update a GCP integration cloud run revision filters returns "OK" response + Given there is a valid "gcp_account" in the system + And new "UpdateGCPIntegration" request + And body with value {"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "client_email": "{{unique_hash}}@example.com", "client_id": "{{ timestamp("now") }}{{ timestamp("now") }}0", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL", "host_filters": "key:value,filter:example", "cloud_run_revision_filters": ["merp:derp"], "is_cspm_enabled": true, "is_security_command_center_enabled": true, "private_key": "private_key", "private_key_id": "123456789abcdefghi123456789abcdefghijklm", "project_id": "datadog-apitest", "resource_collection_enabled": true, "token_uri": "https://accounts.google.com/o/oauth2/token", "type": "service_account"} + When the request is sent + Then the response status is 200 OK + @generated @skip @team:DataDog/gcp-integrations Scenario: Update a GCP integration returns "Bad Request" response Given new "UpdateGCPIntegration" request - And body with value {"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "client_email": "api-dev@datadog-sandbox.iam.gserviceaccount.com", "client_id": "123456712345671234567", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL", "errors": ["*"], "host_filters": "key:value,filter:example", "is_cspm_enabled": true, "is_security_command_center_enabled": true, "private_key": "private_key", "private_key_id": "123456789abcdefghi123456789abcdefghijklm", "project_id": "datadog-apitest", "resource_collection_enabled": true, "token_uri": "https://accounts.google.com/o/oauth2/token", "type": "service_account"} + And body with value {"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "client_email": "api-dev@datadog-sandbox.iam.gserviceaccount.com", "client_id": "123456712345671234567", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL", "cloud_run_revision_filters": ["$KEY:$VALUE"], "errors": ["*"], "host_filters": "key:value,filter:example", "is_cspm_enabled": true, "is_security_command_center_enabled": true, "private_key": "private_key", "private_key_id": "123456789abcdefghi123456789abcdefghijklm", "project_id": "datadog-apitest", "resource_collection_enabled": true, "token_uri": "https://accounts.google.com/o/oauth2/token", "type": "service_account"} When the request is sent Then the response status is 400 Bad Request diff --git a/tests/scenarios/features/v1/given.json b/tests/scenarios/features/v1/given.json index 205b1ecb2..0934ea27d 100644 --- a/tests/scenarios/features/v1/given.json +++ b/tests/scenarios/features/v1/given.json @@ -121,7 +121,7 @@ } ], "step": "there is a valid \"azure_account\" in the system", - "key": "aws_account", + "key": "azure_account", "tag": "Azure Integration", "operationId": "CreateAzureIntegration" }, @@ -250,7 +250,7 @@ "parameters": [ { "name": "body", - "value": "{\n \"config\": {\n \"configVariables\": [\n {\n \"example\": \"content-type\",\n \"name\": \"PROPERTY\",\n \"pattern\": \"content-type\",\n \"type\": \"text\"\n }\n ],\n \"steps\": [\n {\n \"allowFailure\": true,\n \"assertions\": [\n {\n \"operator\": \"is\",\n \"type\": \"statusCode\",\n \"target\": 200\n }\n ],\n \"extractedValues\": [\n {\n \"field\": \"server\",\n \"name\": \"EXTRACTED_VALUE\",\n \"parser\": {\n \"type\": \"raw\"\n },\n \"type\": \"http_header\",\n \"secure\": true\n }\n ],\n \"isCritical\": true,\n \"name\": \"request is sent\",\n \"request\": {\n \"method\": \"GET\",\n \"timeout\": 10,\n \"url\": \"https://datadoghq.com\"\n },\n \"retry\": {\n \"count\": 5,\n \"interval\": 1000\n },\n \"subtype\": \"http\"\n }\n ]\n },\n \"locations\": [\"aws:us-east-2\"],\n \"message\": \"BDD test payload: synthetics_api_test_multi_step_payload.json\",\n \"name\": \"{{ unique }}\",\n \"options\": {\n \"accept_self_signed\": false,\n \"allow_insecure\": true,\n \"follow_redirects\": true,\n \"min_failure_duration\": 10,\n \"min_location_failed\": 1,\n \"monitor_name\": \"{{ unique }}\",\n \"monitor_priority\": 5,\n \"retry\": { \"count\": 3, \"interval\": 1000 },\n \"tick_every\": 60\n },\n \"subtype\": \"multi\",\n \"tags\": [\"testing:api\"],\n \"type\": \"api\"\n}\n" + "value": "{\n \"config\": {\n \"configVariables\": [\n {\n \"example\": \"content-type\",\n \"name\": \"PROPERTY\",\n \"pattern\": \"content-type\",\n \"type\": \"text\"\n }\n ],\n \"steps\": [\n {\n \"allowFailure\": true,\n \"assertions\": [\n {\n \"operator\": \"is\",\n \"type\": \"statusCode\",\n \"target\": 200\n }\n ],\n \"extractedValues\": [\n {\n \"field\": \"server\",\n \"name\": \"EXTRACTED_VALUE\",\n \"parser\": {\n \"type\": \"raw\"\n },\n \"type\": \"http_header\",\n \"secure\": true\n }\n ],\n \"isCritical\": true,\n \"name\": \"request is sent\",\n \"request\": {\n \"method\": \"GET\",\n \"timeout\": 10,\n \"url\": \"https://datadoghq.com\",\n \"httpVersion\": \"http2\"\n },\n \"retry\": {\n \"count\": 5,\n \"interval\": 1000\n },\n \"subtype\": \"http\"\n },\n {\n \"name\": \"GRPC CALL\",\n \"subtype\": \"grpc\",\n \"extractedValues\": [],\n \"allowFailure\": false,\n \"isCritical\": true,\n \"retry\": {\n \"count\": 0,\n \"interval\": 300\n },\n \"assertions\": [\n {\n \"operator\": \"lessThan\",\n \"type\": \"responseTime\",\n \"target\": 1000\n }\n ],\n \"request\": {\n \"host\": \"grpcbin.test.k6.io\",\n \"port\": 9000,\n \"service\": \"grpcbin.GRPCBin\",\n \"method\": \"Index\",\n \"message\": \"{}\",\n \"compressedJsonDescriptor\": \"eJy1lU1z2yAQhv+Lzj74I3ETH506bQ7OZOSm1w4Wa4epBARQppqM/3v5koCJJdvtxCdW77vPssCO3zMKUgHOFu/ZXvBiS6hZho/f8qe7pftYgXphWJrlA8XwxywEvNba+6PhkC2yVcVVswYp0R6ykRYlZ1SCV21SDrxsssPIeS9FJKqGfK2rqnmmSBwhWa2XlKgtaQPiDcRGCUDVfwGD2sKUqKEtc1cSoOrsMlaMOec1sySYCCgUYRSVLv2zSva2u+FQkB0pVkIw8bFuIudOOn3pOaKYVT3Iy97Pd0AYhOx5QcMsnxvRHlnuLf8ETDd3CNtrv2nejkDpRnANCmGkkFn/hsYzpBKE7jVbufgnKnV9HRM9zRPDDKPttYT61n0TdWkAAjggk9AhuxIeaXd69CYTcsGw7cBTakLVbNpRzGEgyWjkSOpMbZXkhGL6oX30R49qt3GoHrap7i0XdD41WQ+2icCNm5p1hmFqnHNlcla0riKmDZ183crDxChjbnurtxHPRE784sVhWvDfGP+SsTKibU3o5NtWHuZFGZOxP6P5VXqIOvaOSec4eYohyd7NslHuJbd1bewds85xYrNxkr2d+5IhFWF3NvaO684xjE2S5ulY+tu64Pna0fCPJgzw6vF5/WucLcYjt5xoq19O3UDptOg/OamJQRaCcPPnMTQ2QDFn+uhPvUfnCrMc99upyQY4Ui9Dlc/YoG3R/v4Cs9YE+g==\",\n \"metadata\": {},\n \"callType\": \"unary\"\n }\n }\n ]\n },\n \"locations\": [\"aws:us-east-2\"],\n \"message\": \"BDD test payload: synthetics_api_test_multi_step_payload.json\",\n \"name\": \"{{ unique }}\",\n \"options\": {\n \"accept_self_signed\": false,\n \"allow_insecure\": true,\n \"follow_redirects\": true,\n \"min_failure_duration\": 10,\n \"min_location_failed\": 1,\n \"monitor_name\": \"{{ unique }}\",\n \"monitor_priority\": 5,\n \"retry\": { \"count\": 3, \"interval\": 1000 },\n \"tick_every\": 60\n },\n \"subtype\": \"multi\",\n \"tags\": [\"testing:api\"],\n \"type\": \"api\"\n}\n" } ], "step": "there is a valid \"synthetics_api_test_multi_step\" in the system", diff --git a/tests/scenarios/features/v1/hosts.feature b/tests/scenarios/features/v1/hosts.feature index 2a6838923..7ed533f7b 100644 --- a/tests/scenarios/features/v1/hosts.feature +++ b/tests/scenarios/features/v1/hosts.feature @@ -1,6 +1,8 @@ @endpoint(hosts) @endpoint(hosts-v1) Feature: Hosts - Get information about your live hosts in Datadog. + Get information about your infrastructure hosts in Datadog, and mute or + unmute any notifications from your hosts. See the [Infrastructure + page](https://docs.datadoghq.com/infrastructure/) for more information. Background: Given a valid "apiKeyAuth" key in the system diff --git a/tests/scenarios/features/v1/logs.feature b/tests/scenarios/features/v1/logs.feature index 1c02147f9..5ae909c3a 100644 --- a/tests/scenarios/features/v1/logs.feature +++ b/tests/scenarios/features/v1/logs.feature @@ -1,6 +1,8 @@ @endpoint(logs) @endpoint(logs-v1) Feature: Logs - Search your logs and send them to your Datadog platform over HTTP. + Search your logs and send them to your Datadog platform over HTTP. See the + [Log Management page](https://docs.datadoghq.com/logs/) for more + information. Background: Given a valid "apiKeyAuth" key in the system diff --git a/tests/scenarios/features/v1/logs_indexes.feature b/tests/scenarios/features/v1/logs_indexes.feature index 3b762b608..8d982e954 100644 --- a/tests/scenarios/features/v1/logs_indexes.feature +++ b/tests/scenarios/features/v1/logs_indexes.feature @@ -12,14 +12,14 @@ Feature: Logs Indexes @generated @skip @team:DataDog/logs-backend Scenario: Create an index returns "Invalid Parameter Error" response Given new "CreateLogsIndex" request - And body with value {"daily_limit": 300000000, "exclusion_filters": [{"filter": {"query": "*", "sample_rate": 1.0}, "name": "payment"}], "filter": {"query": "source:python"}, "name": "main", "num_retention_days": 15} + And body with value {"daily_limit": 300000000, "daily_limit_reset": {"reset_time": "14:00", "reset_utc_offset": "+02:00"}, "daily_limit_warning_threshold_percentage": 70, "exclusion_filters": [{"filter": {"query": "*", "sample_rate": 1.0}, "name": "payment"}], "filter": {"query": "source:python"}, "name": "main", "num_retention_days": 15} When the request is sent Then the response status is 400 Invalid Parameter Error @generated @skip @team:DataDog/logs-backend Scenario: Create an index returns "OK" response Given new "CreateLogsIndex" request - And body with value {"daily_limit": 300000000, "exclusion_filters": [{"filter": {"query": "*", "sample_rate": 1.0}, "name": "payment"}], "filter": {"query": "source:python"}, "name": "main", "num_retention_days": 15} + And body with value {"daily_limit": 300000000, "daily_limit_reset": {"reset_time": "14:00", "reset_utc_offset": "+02:00"}, "daily_limit_warning_threshold_percentage": 70, "exclusion_filters": [{"filter": {"query": "*", "sample_rate": 1.0}, "name": "payment"}], "filter": {"query": "source:python"}, "name": "main", "num_retention_days": 15} When the request is sent Then the response status is 200 OK @@ -53,7 +53,7 @@ Feature: Logs Indexes Scenario: Update an index returns "Invalid Parameter Error" response Given new "UpdateLogsIndex" request And request contains "name" parameter from "REPLACE.ME" - And body with value {"daily_limit": 300000000, "disable_daily_limit": false, "exclusion_filters": [{"filter": {"query": "*", "sample_rate": 1.0}, "name": "payment"}], "filter": {"query": "source:python"}, "num_retention_days": 15} + And body with value {"daily_limit": 300000000, "daily_limit_reset": {"reset_time": "14:00", "reset_utc_offset": "+02:00"}, "daily_limit_warning_threshold_percentage": 70, "disable_daily_limit": false, "exclusion_filters": [{"filter": {"query": "*", "sample_rate": 1.0}, "name": "payment"}], "filter": {"query": "source:python"}, "num_retention_days": 15} When the request is sent Then the response status is 400 Invalid Parameter Error @@ -61,7 +61,7 @@ Feature: Logs Indexes Scenario: Update an index returns "OK" response Given new "UpdateLogsIndex" request And request contains "name" parameter from "REPLACE.ME" - And body with value {"daily_limit": 300000000, "disable_daily_limit": false, "exclusion_filters": [{"filter": {"query": "*", "sample_rate": 1.0}, "name": "payment"}], "filter": {"query": "source:python"}, "num_retention_days": 15} + And body with value {"daily_limit": 300000000, "daily_limit_reset": {"reset_time": "14:00", "reset_utc_offset": "+02:00"}, "daily_limit_warning_threshold_percentage": 70, "disable_daily_limit": false, "exclusion_filters": [{"filter": {"query": "*", "sample_rate": 1.0}, "name": "payment"}], "filter": {"query": "source:python"}, "num_retention_days": 15} When the request is sent Then the response status is 200 OK diff --git a/tests/scenarios/features/v1/metrics.feature b/tests/scenarios/features/v1/metrics.feature index c1ac08aa1..112cf9cc0 100644 --- a/tests/scenarios/features/v1/metrics.feature +++ b/tests/scenarios/features/v1/metrics.feature @@ -7,7 +7,8 @@ Feature: Metrics timeframe over which a metric is viewed increases, aggregation between points occurs to stay below that set number. The Post, Patch, and Delete `manage_tags` API methods can only be performed by a user who has the - `Manage Tags for Metrics` permission. + `Manage Tags for Metrics` permission. See the [Metrics + page](https://docs.datadoghq.com/metrics/) for more information. Background: Given a valid "apiKeyAuth" key in the system diff --git a/tests/scenarios/features/v1/pagerduty_integration.feature b/tests/scenarios/features/v1/pagerduty_integration.feature index df786f66c..c0adea375 100644 --- a/tests/scenarios/features/v1/pagerduty_integration.feature +++ b/tests/scenarios/features/v1/pagerduty_integration.feature @@ -9,49 +9,49 @@ Feature: PagerDuty Integration And a valid "appKeyAuth" key in the system And an instance of "PagerDutyIntegration" API - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Create a new service object returns "Bad Request" response Given new "CreatePagerDutyIntegrationService" request And body with value {"service_key": "", "service_name": ""} When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Create a new service object returns "OK" response Given new "CreatePagerDutyIntegrationService" request And body with value {"service_key": "", "service_name": ""} When the request is sent Then the response status is 201 OK - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Delete a single service object returns "Item Not Found" response Given new "DeletePagerDutyIntegrationService" request And request contains "service_name" parameter from "REPLACE.ME" When the request is sent Then the response status is 404 Item Not Found - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Delete a single service object returns "No Content" response Given new "DeletePagerDutyIntegrationService" request And request contains "service_name" parameter from "REPLACE.ME" When the request is sent Then the response status is 204 No Content - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Get a single service object returns "Item Not Found" response Given new "GetPagerDutyIntegrationService" request And request contains "service_name" parameter from "REPLACE.ME" When the request is sent Then the response status is 404 Item Not Found - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Get a single service object returns "OK" response Given new "GetPagerDutyIntegrationService" request And request contains "service_name" parameter from "REPLACE.ME" When the request is sent Then the response status is 200 OK - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Update a single service object returns "Bad Request" response Given new "UpdatePagerDutyIntegrationService" request And request contains "service_name" parameter from "REPLACE.ME" @@ -59,7 +59,7 @@ Feature: PagerDuty Integration When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Update a single service object returns "Item Not Found" response Given new "UpdatePagerDutyIntegrationService" request And request contains "service_name" parameter from "REPLACE.ME" @@ -67,7 +67,7 @@ Feature: PagerDuty Integration When the request is sent Then the response status is 404 Item Not Found - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Update a single service object returns "OK" response Given new "UpdatePagerDutyIntegrationService" request And request contains "service_name" parameter from "REPLACE.ME" diff --git a/tests/scenarios/features/v1/security_monitoring.feature b/tests/scenarios/features/v1/security_monitoring.feature index d77c67f9b..34cc3160b 100644 --- a/tests/scenarios/features/v1/security_monitoring.feature +++ b/tests/scenarios/features/v1/security_monitoring.feature @@ -1,6 +1,8 @@ @endpoint(security-monitoring) @endpoint(security-monitoring-v1) Feature: Security Monitoring - Detection rules for generating signals and listing of generated signals. + Create and manage your security rules, signals, filters, and more. See the + [Datadog Security page](https://docs.datadoghq.com/security/) for more + information. Background: Given a valid "apiKeyAuth" key in the system diff --git a/tests/scenarios/features/v1/service_checks.feature b/tests/scenarios/features/v1/service_checks.feature index 3244e3781..5ed435e4c 100644 --- a/tests/scenarios/features/v1/service_checks.feature +++ b/tests/scenarios/features/v1/service_checks.feature @@ -5,13 +5,12 @@ Feature: Service Checks is posted with a message containing more than 500 characters, only the first 500 characters are displayed. Messages are limited for checks with a Critical or Warning status, they are dropped for checks with an OK status. - - [Read more about Service Check monitors.][1] - [Read more about Process - Check monitors.][2] - [Read more about Network Check monitors.][3] - [Read - more about Custom Check monitors.][4] - [Read more about Service Check and - status codes.][5] [1]: - https://docs.datadoghq.com/monitors/create/types/host/?tab=checkalert [2]: - https://docs.datadoghq.com/monitors/create/types/process_check/?tab=checka - lert [3]: + - [Read more about Service Check monitors][1]. - [Read more about Process + Check monitors][2]. - [Read more about Network monitors][3]. - [Read more + about Custom Check monitors][4]. - [Read more about Service Checks and + status codes][5]. [1]: + https://docs.datadoghq.com/monitors/types/service_check/ [2]: https://docs + .datadoghq.com/monitors/create/types/process_check/?tab=checkalert [3]: https://docs.datadoghq.com/monitors/create/types/network/?tab=checkalert [4]: https://docs.datadoghq.com/monitors/create/types/custom_check/?tab=ch eckalert [5]: https://docs.datadoghq.com/developers/service_checks/ diff --git a/tests/scenarios/features/v1/service_level_objective_corrections.feature b/tests/scenarios/features/v1/service_level_objective_corrections.feature index 5bd777cbd..d301d8e67 100644 --- a/tests/scenarios/features/v1/service_level_objective_corrections.feature +++ b/tests/scenarios/features/v1/service_level_objective_corrections.feature @@ -4,7 +4,9 @@ Feature: Service Level Objective Corrections negatively impacting your SLO’s status and error budget. You can use Status Corrections for various purposes, such as removing planned maintenance windows, non-business hours, or other time periods that do not - correspond to genuine issues. + correspond to genuine issues. See [SLO status corrections](https://docs.da + tadoghq.com/service_management/service_level_objectives/#slo-status- + corrections) for more information. Background: Given a valid "apiKeyAuth" key in the system diff --git a/tests/scenarios/features/v1/service_level_objectives.feature b/tests/scenarios/features/v1/service_level_objectives.feature index 75e721bb4..c5534618a 100644 --- a/tests/scenarios/features/v1/service_level_objectives.feature +++ b/tests/scenarios/features/v1/service_level_objectives.feature @@ -48,6 +48,16 @@ Feature: Service Level Objectives When the request is sent Then the response status is 200 OK + @team:DataDog/slo-app + Scenario: Create a time-slice SLO object returns "OK" response + Given new "CreateSLO" request + And body with value {"type":"time_slice","description":"string","name":"{{ unique }}","sli_specification":{"time_slice":{"query":{"formulas":[{"formula":"query1"}],"queries":[{"data_source":"metrics","name":"query1","query":"trace.servlet.request{env:prod}"}]},"comparator":">","threshold":5}},"tags":["env:prod"],"thresholds":[{"target":97.0,"target_display":"97.0","timeframe":"7d","warning":98,"warning_display":"98.0"}],"timeframe":"7d","target_threshold":97.0,"warning_threshold":98} + When the request is sent + Then the response status is 200 OK + And the response "data[0].timeframe" is equal to "7d" + And the response "data[0].target_threshold" is equal to 97.0 + And the response "data[0].warning_threshold" is equal to 98.0 + @team:DataDog/slo-app Scenario: Create an SLO object returns "Bad Request" response Given new "CreateSLO" request @@ -220,7 +230,7 @@ Feature: Service Level Objectives Scenario: Update an SLO returns "Not Found" response Given new "UpdateSLO" request And request contains "slo_id" parameter from "REPLACE.ME" - And body with value {"description": null, "groups": ["env:prod", "role:mysql"], "monitor_ids": [], "monitor_tags": [], "name": "Custom Metric SLO", "query": {"denominator": "sum:my.custom.metric{*}.as_count()", "numerator": "sum:my.custom.metric{type:good}.as_count()"}, "tags": ["env:prod", "app:core"], "target_threshold": 99.9, "thresholds": [{"target": 95, "timeframe": "7d"}, {"target": 95, "timeframe": "30d", "warning": 97}], "timeframe": "30d", "type": "metric", "warning_threshold": 99.95} + And body with value {"description": null, "groups": ["env:prod", "role:mysql"], "monitor_ids": [], "monitor_tags": [], "name": "Custom Metric SLO", "query": {"denominator": "sum:my.custom.metric{*}.as_count()", "numerator": "sum:my.custom.metric{type:good}.as_count()"}, "sli_specification": {"time_slice": {"comparator": "<", "query": {"formulas": [{"formula": "query2/query1"}], "queries": [{"data_source": "metrics", "name": "query1", "query": "sum:trace.servlet.request.hits{*} by {env}.as_count()"}, {"data_source": "metrics", "name": "query1", "query": "sum:trace.servlet.request.errors{*} by {env}.as_count()"}]}, "threshold": 5}}, "tags": ["env:prod", "app:core"], "target_threshold": 99.9, "thresholds": [{"target": 95, "timeframe": "7d"}, {"target": 95, "timeframe": "30d", "warning": 97}], "timeframe": "30d", "type": "metric", "warning_threshold": 99.95} When the request is sent Then the response status is 404 Not Found diff --git a/tests/scenarios/features/v1/slack_integration.feature b/tests/scenarios/features/v1/slack_integration.feature index d6e8e86cd..fb23f6bd7 100644 --- a/tests/scenarios/features/v1/slack_integration.feature +++ b/tests/scenarios/features/v1/slack_integration.feature @@ -9,7 +9,7 @@ Feature: Slack Integration And a valid "appKeyAuth" key in the system And an instance of "SlackIntegration" API - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Create a Slack integration channel returns "Bad Request" response Given new "CreateSlackIntegrationChannel" request And request contains "account_name" parameter from "REPLACE.ME" @@ -17,7 +17,7 @@ Feature: Slack Integration When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Create a Slack integration channel returns "Item Not Found" response Given new "CreateSlackIntegrationChannel" request And request contains "account_name" parameter from "REPLACE.ME" @@ -25,7 +25,7 @@ Feature: Slack Integration When the request is sent Then the response status is 404 Item Not Found - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Create a Slack integration channel returns "OK" response Given new "CreateSlackIntegrationChannel" request And request contains "account_name" parameter from "REPLACE.ME" @@ -33,7 +33,7 @@ Feature: Slack Integration When the request is sent Then the response status is 200 OK - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Get a Slack integration channel returns "Bad Request" response Given new "GetSlackIntegrationChannel" request And request contains "account_name" parameter from "REPLACE.ME" @@ -41,7 +41,7 @@ Feature: Slack Integration When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Get a Slack integration channel returns "Item Not Found" response Given new "GetSlackIntegrationChannel" request And request contains "account_name" parameter from "REPLACE.ME" @@ -49,7 +49,7 @@ Feature: Slack Integration When the request is sent Then the response status is 404 Item Not Found - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Get a Slack integration channel returns "OK" response Given new "GetSlackIntegrationChannel" request And request contains "account_name" parameter from "REPLACE.ME" @@ -57,28 +57,28 @@ Feature: Slack Integration When the request is sent Then the response status is 200 OK - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Get all channels in a Slack integration returns "Bad Request" response Given new "GetSlackIntegrationChannels" request And request contains "account_name" parameter from "REPLACE.ME" When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Get all channels in a Slack integration returns "Item Not Found" response Given new "GetSlackIntegrationChannels" request And request contains "account_name" parameter from "REPLACE.ME" When the request is sent Then the response status is 404 Item Not Found - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Get all channels in a Slack integration returns "OK" response Given new "GetSlackIntegrationChannels" request And request contains "account_name" parameter from "REPLACE.ME" When the request is sent Then the response status is 200 OK - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Remove a Slack integration channel returns "Bad Request" response Given new "RemoveSlackIntegrationChannel" request And request contains "account_name" parameter from "REPLACE.ME" @@ -86,7 +86,7 @@ Feature: Slack Integration When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Remove a Slack integration channel returns "Item Not Found" response Given new "RemoveSlackIntegrationChannel" request And request contains "account_name" parameter from "REPLACE.ME" @@ -94,7 +94,7 @@ Feature: Slack Integration When the request is sent Then the response status is 404 Item Not Found - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Remove a Slack integration channel returns "The channel was removed successfully." response Given new "RemoveSlackIntegrationChannel" request And request contains "account_name" parameter from "REPLACE.ME" @@ -102,7 +102,7 @@ Feature: Slack Integration When the request is sent Then the response status is 204 The channel was removed successfully. - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Update a Slack integration channel returns "Bad Request" response Given new "UpdateSlackIntegrationChannel" request And request contains "account_name" parameter from "REPLACE.ME" @@ -111,7 +111,7 @@ Feature: Slack Integration When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Update a Slack integration channel returns "Item Not Found" response Given new "UpdateSlackIntegrationChannel" request And request contains "account_name" parameter from "REPLACE.ME" @@ -120,7 +120,7 @@ Feature: Slack Integration When the request is sent Then the response status is 404 Item Not Found - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Update a Slack integration channel returns "OK" response Given new "UpdateSlackIntegrationChannel" request And request contains "account_name" parameter from "REPLACE.ME" diff --git a/tests/scenarios/features/v1/synthetics.feature b/tests/scenarios/features/v1/synthetics.feature index 9b707a6ee..64ccdb946 100644 --- a/tests/scenarios/features/v1/synthetics.feature +++ b/tests/scenarios/features/v1/synthetics.feature @@ -34,7 +34,7 @@ Feature: Synthetics @generated @skip @team:DataDog/synthetics-app Scenario: Create a browser test returns "- JSON format is wrong" response Given new "CreateSyntheticsBrowserTest" request - And body with value {"config": {"assertions": [], "configVariables": [{"name": "VARIABLE_NAME", "secure": false, "type": "text"}], "request": {"basicAuth": {"password": "PaSSw0RD!", "type": "web", "username": "my_username"}, "bodyType": "text/plain", "callType": "unary", "certificate": {"cert": {}, "key": {}}, "certificateDomains": [], "proxy": {"url": "https://example.com"}, "service": "Greeter", "url": "https://example.com"}, "variables": [{"name": "VARIABLE_NAME", "type": "text"}]}, "locations": ["aws:eu-west-3"], "message": "", "name": "Example test name", "options": {"ci": {"executionRule": "blocking"}, "device_ids": ["laptop_large"], "httpVersion": "http1", "monitor_options": {}, "restricted_roles": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], "retry": {}, "rumSettings": {"applicationId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "clientTokenId": 12345, "isEnabled": true}, "scheduling": {"timeframes": [{"day": 1, "from": "07:00", "to": "16:00"}, {"day": 3, "from": "07:00", "to": "16:00"}], "timezone": "America/New_York"}}, "status": "live", "steps": [{"type": "assertElementContent"}], "tags": ["env:prod"], "type": "browser"} + And body with value {"config": {"assertions": [], "configVariables": [{"name": "VARIABLE_NAME", "secure": false, "type": "text"}], "request": {"basicAuth": {"password": "PaSSw0RD!", "type": "web", "username": "my_username"}, "bodyType": "text/plain", "callType": "unary", "certificate": {"cert": {}, "key": {}}, "certificateDomains": [], "files": [{}], "httpVersion": "http1", "proxy": {"url": "https://example.com"}, "service": "Greeter", "url": "https://example.com"}, "variables": [{"name": "VARIABLE_NAME", "type": "text"}]}, "locations": ["aws:eu-west-3"], "message": "", "name": "Example test name", "options": {"ci": {"executionRule": "blocking"}, "device_ids": ["chrome.laptop_large"], "httpVersion": "http1", "monitor_options": {}, "restricted_roles": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], "retry": {}, "rumSettings": {"applicationId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "clientTokenId": 12345, "isEnabled": true}, "scheduling": {"timeframes": [{"day": 1, "from": "07:00", "to": "16:00"}, {"day": 3, "from": "07:00", "to": "16:00"}], "timezone": "America/New_York"}}, "status": "live", "steps": [{"type": "assertElementContent"}], "tags": ["env:prod"], "type": "browser"} When the request is sent Then the response status is 400 - JSON format is wrong @@ -61,7 +61,7 @@ Feature: Synthetics @generated @skip @team:DataDog/synthetics-app Scenario: Create a browser test returns "Test quota is reached" response Given new "CreateSyntheticsBrowserTest" request - And body with value {"config": {"assertions": [], "configVariables": [{"name": "VARIABLE_NAME", "secure": false, "type": "text"}], "request": {"basicAuth": {"password": "PaSSw0RD!", "type": "web", "username": "my_username"}, "bodyType": "text/plain", "callType": "unary", "certificate": {"cert": {}, "key": {}}, "certificateDomains": [], "proxy": {"url": "https://example.com"}, "service": "Greeter", "url": "https://example.com"}, "variables": [{"name": "VARIABLE_NAME", "type": "text"}]}, "locations": ["aws:eu-west-3"], "message": "", "name": "Example test name", "options": {"ci": {"executionRule": "blocking"}, "device_ids": ["laptop_large"], "httpVersion": "http1", "monitor_options": {}, "restricted_roles": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], "retry": {}, "rumSettings": {"applicationId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "clientTokenId": 12345, "isEnabled": true}, "scheduling": {"timeframes": [{"day": 1, "from": "07:00", "to": "16:00"}, {"day": 3, "from": "07:00", "to": "16:00"}], "timezone": "America/New_York"}}, "status": "live", "steps": [{"type": "assertElementContent"}], "tags": ["env:prod"], "type": "browser"} + And body with value {"config": {"assertions": [], "configVariables": [{"name": "VARIABLE_NAME", "secure": false, "type": "text"}], "request": {"basicAuth": {"password": "PaSSw0RD!", "type": "web", "username": "my_username"}, "bodyType": "text/plain", "callType": "unary", "certificate": {"cert": {}, "key": {}}, "certificateDomains": [], "files": [{}], "httpVersion": "http1", "proxy": {"url": "https://example.com"}, "service": "Greeter", "url": "https://example.com"}, "variables": [{"name": "VARIABLE_NAME", "type": "text"}]}, "locations": ["aws:eu-west-3"], "message": "", "name": "Example test name", "options": {"ci": {"executionRule": "blocking"}, "device_ids": ["chrome.laptop_large"], "httpVersion": "http1", "monitor_options": {}, "restricted_roles": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], "retry": {}, "rumSettings": {"applicationId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "clientTokenId": 12345, "isEnabled": true}, "scheduling": {"timeframes": [{"day": 1, "from": "07:00", "to": "16:00"}, {"day": 3, "from": "07:00", "to": "16:00"}], "timezone": "America/New_York"}}, "status": "live", "steps": [{"type": "assertElementContent"}], "tags": ["env:prod"], "type": "browser"} When the request is sent Then the response status is 402 Test quota is reached @@ -159,21 +159,21 @@ Feature: Synthetics @generated @skip @team:DataDog/synthetics-app Scenario: Create an API test returns "- JSON format is wrong" response Given new "CreateSyntheticsAPITest" request - And body with value {"config": {"assertions": [{"operator": "lessThan", "target": 1000, "type": "responseTime"}], "request": {"method": "GET", "url": "https://example.com"}}, "locations": ["aws:eu-west-3"], "message": "Notification message", "name": "Example test name", "options": {"ci": {"executionRule": "blocking"}, "device_ids": ["laptop_large"], "httpVersion": "http1", "monitor_options": {}, "restricted_roles": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], "retry": {}, "rumSettings": {"applicationId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "clientTokenId": 12345, "isEnabled": true}, "scheduling": {"timeframes": [{"day": 1, "from": "07:00", "to": "16:00"}, {"day": 3, "from": "07:00", "to": "16:00"}], "timezone": "America/New_York"}}, "status": "live", "subtype": "http", "tags": ["env:production"], "type": "api"} + And body with value {"config": {"assertions": [{"operator": "lessThan", "target": 1000, "type": "responseTime"}], "request": {"method": "GET", "url": "https://example.com"}}, "locations": ["aws:eu-west-3"], "message": "Notification message", "name": "Example test name", "options": {"ci": {"executionRule": "blocking"}, "device_ids": ["chrome.laptop_large"], "httpVersion": "http1", "monitor_options": {}, "restricted_roles": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], "retry": {}, "rumSettings": {"applicationId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "clientTokenId": 12345, "isEnabled": true}, "scheduling": {"timeframes": [{"day": 1, "from": "07:00", "to": "16:00"}, {"day": 3, "from": "07:00", "to": "16:00"}], "timezone": "America/New_York"}}, "status": "live", "subtype": "http", "tags": ["env:production"], "type": "api"} When the request is sent Then the response status is 400 - JSON format is wrong @generated @skip @team:DataDog/synthetics-app Scenario: Create an API test returns "OK - Returns the created test details." response Given new "CreateSyntheticsAPITest" request - And body with value {"config": {"assertions": [{"operator": "lessThan", "target": 1000, "type": "responseTime"}], "request": {"method": "GET", "url": "https://example.com"}}, "locations": ["aws:eu-west-3"], "message": "Notification message", "name": "Example test name", "options": {"ci": {"executionRule": "blocking"}, "device_ids": ["laptop_large"], "httpVersion": "http1", "monitor_options": {}, "restricted_roles": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], "retry": {}, "rumSettings": {"applicationId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "clientTokenId": 12345, "isEnabled": true}, "scheduling": {"timeframes": [{"day": 1, "from": "07:00", "to": "16:00"}, {"day": 3, "from": "07:00", "to": "16:00"}], "timezone": "America/New_York"}}, "status": "live", "subtype": "http", "tags": ["env:production"], "type": "api"} + And body with value {"config": {"assertions": [{"operator": "lessThan", "target": 1000, "type": "responseTime"}], "request": {"method": "GET", "url": "https://example.com"}}, "locations": ["aws:eu-west-3"], "message": "Notification message", "name": "Example test name", "options": {"ci": {"executionRule": "blocking"}, "device_ids": ["chrome.laptop_large"], "httpVersion": "http1", "monitor_options": {}, "restricted_roles": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], "retry": {}, "rumSettings": {"applicationId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "clientTokenId": 12345, "isEnabled": true}, "scheduling": {"timeframes": [{"day": 1, "from": "07:00", "to": "16:00"}, {"day": 3, "from": "07:00", "to": "16:00"}], "timezone": "America/New_York"}}, "status": "live", "subtype": "http", "tags": ["env:production"], "type": "api"} When the request is sent Then the response status is 200 OK - Returns the created test details. @generated @skip @team:DataDog/synthetics-app Scenario: Create an API test returns "Test quota is reached" response Given new "CreateSyntheticsAPITest" request - And body with value {"config": {"assertions": [{"operator": "lessThan", "target": 1000, "type": "responseTime"}], "request": {"method": "GET", "url": "https://example.com"}}, "locations": ["aws:eu-west-3"], "message": "Notification message", "name": "Example test name", "options": {"ci": {"executionRule": "blocking"}, "device_ids": ["laptop_large"], "httpVersion": "http1", "monitor_options": {}, "restricted_roles": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], "retry": {}, "rumSettings": {"applicationId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "clientTokenId": 12345, "isEnabled": true}, "scheduling": {"timeframes": [{"day": 1, "from": "07:00", "to": "16:00"}, {"day": 3, "from": "07:00", "to": "16:00"}], "timezone": "America/New_York"}}, "status": "live", "subtype": "http", "tags": ["env:production"], "type": "api"} + And body with value {"config": {"assertions": [{"operator": "lessThan", "target": 1000, "type": "responseTime"}], "request": {"method": "GET", "url": "https://example.com"}}, "locations": ["aws:eu-west-3"], "message": "Notification message", "name": "Example test name", "options": {"ci": {"executionRule": "blocking"}, "device_ids": ["chrome.laptop_large"], "httpVersion": "http1", "monitor_options": {}, "restricted_roles": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], "retry": {}, "rumSettings": {"applicationId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "clientTokenId": 12345, "isEnabled": true}, "scheduling": {"timeframes": [{"day": 1, "from": "07:00", "to": "16:00"}, {"day": 3, "from": "07:00", "to": "16:00"}], "timezone": "America/New_York"}}, "status": "live", "subtype": "http", "tags": ["env:production"], "type": "api"} When the request is sent Then the response status is 402 Test quota is reached @@ -193,6 +193,17 @@ Feature: Synthetics Then the response status is 200 OK - Returns the created test details. And the response "name" is equal to "{{ unique }}" + @team:DataDog/synthetics-app + Scenario: Create an API test with a file payload returns "OK - Returns the created test details." response + Given new "CreateSyntheticsAPITest" request + And body from file "synthetics_api_http_test_with_file_payload.json" + When the request is sent + Then the response status is 200 OK - Returns the created test details. + And the response "name" is equal to "{{ unique }}" + And the response "config.request.files[0].name" is equal to "file name" + And the response "config.request.files[0].type" is equal to "file type" + And the response "config.request.files[0]" has field "bucketKey" + @team:DataDog/synthetics-app Scenario: Create an API test with multi subtype returns "OK - Returns the created test details." response Given new "CreateSyntheticsAPITest" request @@ -202,7 +213,10 @@ Feature: Synthetics And the response "name" is equal to "{{ unique }}" And the response "config.steps[0].retry.count" is equal to 5 And the response "config.steps[0].retry.interval" is equal to 1000 + And the response "config.steps[0].request.httpVersion" is equal to "http2" And the response "config.steps[0].extractedValues[0].secure" is equal to true + And the response "config.steps[1].request.host" is equal to "grpcbin.test.k6.io" + And the response "config.steps[1].request.host" is equal to "grpcbin.test.k6.io" @generated @skip @team:DataDog/synthetics-app Scenario: Delete a global variable returns "JSON format is wrong" response @@ -266,7 +280,7 @@ Feature: Synthetics Scenario: Edit a browser test returns "- JSON format is wrong" response Given new "UpdateBrowserTest" request And request contains "public_id" parameter from "REPLACE.ME" - And body with value {"config": {"assertions": [], "configVariables": [{"name": "VARIABLE_NAME", "secure": false, "type": "text"}], "request": {"basicAuth": {"password": "PaSSw0RD!", "type": "web", "username": "my_username"}, "bodyType": "text/plain", "callType": "unary", "certificate": {"cert": {}, "key": {}}, "certificateDomains": [], "proxy": {"url": "https://example.com"}, "service": "Greeter", "url": "https://example.com"}, "variables": [{"name": "VARIABLE_NAME", "type": "text"}]}, "locations": ["aws:eu-west-3"], "message": "", "name": "Example test name", "options": {"ci": {"executionRule": "blocking"}, "device_ids": ["laptop_large"], "httpVersion": "http1", "monitor_options": {}, "restricted_roles": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], "retry": {}, "rumSettings": {"applicationId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "clientTokenId": 12345, "isEnabled": true}, "scheduling": {"timeframes": [{"day": 1, "from": "07:00", "to": "16:00"}, {"day": 3, "from": "07:00", "to": "16:00"}], "timezone": "America/New_York"}}, "status": "live", "steps": [{"type": "assertElementContent"}], "tags": ["env:prod"], "type": "browser"} + And body with value {"config": {"assertions": [], "configVariables": [{"name": "VARIABLE_NAME", "secure": false, "type": "text"}], "request": {"basicAuth": {"password": "PaSSw0RD!", "type": "web", "username": "my_username"}, "bodyType": "text/plain", "callType": "unary", "certificate": {"cert": {}, "key": {}}, "certificateDomains": [], "files": [{}], "httpVersion": "http1", "proxy": {"url": "https://example.com"}, "service": "Greeter", "url": "https://example.com"}, "variables": [{"name": "VARIABLE_NAME", "type": "text"}]}, "locations": ["aws:eu-west-3"], "message": "", "name": "Example test name", "options": {"ci": {"executionRule": "blocking"}, "device_ids": ["chrome.laptop_large"], "httpVersion": "http1", "monitor_options": {}, "restricted_roles": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], "retry": {}, "rumSettings": {"applicationId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "clientTokenId": 12345, "isEnabled": true}, "scheduling": {"timeframes": [{"day": 1, "from": "07:00", "to": "16:00"}, {"day": 3, "from": "07:00", "to": "16:00"}], "timezone": "America/New_York"}}, "status": "live", "steps": [{"type": "assertElementContent"}], "tags": ["env:prod"], "type": "browser"} When the request is sent Then the response status is 400 - JSON format is wrong @@ -274,7 +288,7 @@ Feature: Synthetics Scenario: Edit a browser test returns "- Synthetic Monitoring is not activated for the user" response Given new "UpdateBrowserTest" request And request contains "public_id" parameter from "REPLACE.ME" - And body with value {"config": {"assertions": [], "configVariables": [{"name": "VARIABLE_NAME", "secure": false, "type": "text"}], "request": {"basicAuth": {"password": "PaSSw0RD!", "type": "web", "username": "my_username"}, "bodyType": "text/plain", "callType": "unary", "certificate": {"cert": {}, "key": {}}, "certificateDomains": [], "proxy": {"url": "https://example.com"}, "service": "Greeter", "url": "https://example.com"}, "variables": [{"name": "VARIABLE_NAME", "type": "text"}]}, "locations": ["aws:eu-west-3"], "message": "", "name": "Example test name", "options": {"ci": {"executionRule": "blocking"}, "device_ids": ["laptop_large"], "httpVersion": "http1", "monitor_options": {}, "restricted_roles": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], "retry": {}, "rumSettings": {"applicationId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "clientTokenId": 12345, "isEnabled": true}, "scheduling": {"timeframes": [{"day": 1, "from": "07:00", "to": "16:00"}, {"day": 3, "from": "07:00", "to": "16:00"}], "timezone": "America/New_York"}}, "status": "live", "steps": [{"type": "assertElementContent"}], "tags": ["env:prod"], "type": "browser"} + And body with value {"config": {"assertions": [], "configVariables": [{"name": "VARIABLE_NAME", "secure": false, "type": "text"}], "request": {"basicAuth": {"password": "PaSSw0RD!", "type": "web", "username": "my_username"}, "bodyType": "text/plain", "callType": "unary", "certificate": {"cert": {}, "key": {}}, "certificateDomains": [], "files": [{}], "httpVersion": "http1", "proxy": {"url": "https://example.com"}, "service": "Greeter", "url": "https://example.com"}, "variables": [{"name": "VARIABLE_NAME", "type": "text"}]}, "locations": ["aws:eu-west-3"], "message": "", "name": "Example test name", "options": {"ci": {"executionRule": "blocking"}, "device_ids": ["chrome.laptop_large"], "httpVersion": "http1", "monitor_options": {}, "restricted_roles": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], "retry": {}, "rumSettings": {"applicationId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "clientTokenId": 12345, "isEnabled": true}, "scheduling": {"timeframes": [{"day": 1, "from": "07:00", "to": "16:00"}, {"day": 3, "from": "07:00", "to": "16:00"}], "timezone": "America/New_York"}}, "status": "live", "steps": [{"type": "assertElementContent"}], "tags": ["env:prod"], "type": "browser"} When the request is sent Then the response status is 404 - Synthetic Monitoring is not activated for the user @@ -282,7 +296,7 @@ Feature: Synthetics Scenario: Edit a browser test returns "OK" response Given new "UpdateBrowserTest" request And request contains "public_id" parameter from "REPLACE.ME" - And body with value {"config": {"assertions": [], "configVariables": [{"name": "VARIABLE_NAME", "secure": false, "type": "text"}], "request": {"basicAuth": {"password": "PaSSw0RD!", "type": "web", "username": "my_username"}, "bodyType": "text/plain", "callType": "unary", "certificate": {"cert": {}, "key": {}}, "certificateDomains": [], "proxy": {"url": "https://example.com"}, "service": "Greeter", "url": "https://example.com"}, "variables": [{"name": "VARIABLE_NAME", "type": "text"}]}, "locations": ["aws:eu-west-3"], "message": "", "name": "Example test name", "options": {"ci": {"executionRule": "blocking"}, "device_ids": ["laptop_large"], "httpVersion": "http1", "monitor_options": {}, "restricted_roles": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], "retry": {}, "rumSettings": {"applicationId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "clientTokenId": 12345, "isEnabled": true}, "scheduling": {"timeframes": [{"day": 1, "from": "07:00", "to": "16:00"}, {"day": 3, "from": "07:00", "to": "16:00"}], "timezone": "America/New_York"}}, "status": "live", "steps": [{"type": "assertElementContent"}], "tags": ["env:prod"], "type": "browser"} + And body with value {"config": {"assertions": [], "configVariables": [{"name": "VARIABLE_NAME", "secure": false, "type": "text"}], "request": {"basicAuth": {"password": "PaSSw0RD!", "type": "web", "username": "my_username"}, "bodyType": "text/plain", "callType": "unary", "certificate": {"cert": {}, "key": {}}, "certificateDomains": [], "files": [{}], "httpVersion": "http1", "proxy": {"url": "https://example.com"}, "service": "Greeter", "url": "https://example.com"}, "variables": [{"name": "VARIABLE_NAME", "type": "text"}]}, "locations": ["aws:eu-west-3"], "message": "", "name": "Example test name", "options": {"ci": {"executionRule": "blocking"}, "device_ids": ["chrome.laptop_large"], "httpVersion": "http1", "monitor_options": {}, "restricted_roles": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], "retry": {}, "rumSettings": {"applicationId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "clientTokenId": 12345, "isEnabled": true}, "scheduling": {"timeframes": [{"day": 1, "from": "07:00", "to": "16:00"}, {"day": 3, "from": "07:00", "to": "16:00"}], "timezone": "America/New_York"}}, "status": "live", "steps": [{"type": "assertElementContent"}], "tags": ["env:prod"], "type": "browser"} When the request is sent Then the response status is 200 OK @@ -322,7 +336,7 @@ Feature: Synthetics Scenario: Edit an API test returns "- JSON format is wrong" response Given new "UpdateAPITest" request And request contains "public_id" parameter from "REPLACE.ME" - And body with value {"config": {"assertions": [{"operator": "lessThan", "target": 1000, "type": "responseTime"}], "request": {"method": "GET", "url": "https://example.com"}}, "locations": ["aws:eu-west-3"], "message": "Notification message", "name": "Example test name", "options": {"ci": {"executionRule": "blocking"}, "device_ids": ["laptop_large"], "httpVersion": "http1", "monitor_options": {}, "restricted_roles": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], "retry": {}, "rumSettings": {"applicationId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "clientTokenId": 12345, "isEnabled": true}, "scheduling": {"timeframes": [{"day": 1, "from": "07:00", "to": "16:00"}, {"day": 3, "from": "07:00", "to": "16:00"}], "timezone": "America/New_York"}}, "status": "live", "subtype": "http", "tags": ["env:production"], "type": "api"} + And body with value {"config": {"assertions": [{"operator": "lessThan", "target": 1000, "type": "responseTime"}], "request": {"method": "GET", "url": "https://example.com"}}, "locations": ["aws:eu-west-3"], "message": "Notification message", "name": "Example test name", "options": {"ci": {"executionRule": "blocking"}, "device_ids": ["chrome.laptop_large"], "httpVersion": "http1", "monitor_options": {}, "restricted_roles": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], "retry": {}, "rumSettings": {"applicationId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "clientTokenId": 12345, "isEnabled": true}, "scheduling": {"timeframes": [{"day": 1, "from": "07:00", "to": "16:00"}, {"day": 3, "from": "07:00", "to": "16:00"}], "timezone": "America/New_York"}}, "status": "live", "subtype": "http", "tags": ["env:production"], "type": "api"} When the request is sent Then the response status is 400 - JSON format is wrong @@ -330,7 +344,7 @@ Feature: Synthetics Scenario: Edit an API test returns "- Synthetic Monitoring is not activated for the user" response Given new "UpdateAPITest" request And request contains "public_id" parameter from "REPLACE.ME" - And body with value {"config": {"assertions": [{"operator": "lessThan", "target": 1000, "type": "responseTime"}], "request": {"method": "GET", "url": "https://example.com"}}, "locations": ["aws:eu-west-3"], "message": "Notification message", "name": "Example test name", "options": {"ci": {"executionRule": "blocking"}, "device_ids": ["laptop_large"], "httpVersion": "http1", "monitor_options": {}, "restricted_roles": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], "retry": {}, "rumSettings": {"applicationId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "clientTokenId": 12345, "isEnabled": true}, "scheduling": {"timeframes": [{"day": 1, "from": "07:00", "to": "16:00"}, {"day": 3, "from": "07:00", "to": "16:00"}], "timezone": "America/New_York"}}, "status": "live", "subtype": "http", "tags": ["env:production"], "type": "api"} + And body with value {"config": {"assertions": [{"operator": "lessThan", "target": 1000, "type": "responseTime"}], "request": {"method": "GET", "url": "https://example.com"}}, "locations": ["aws:eu-west-3"], "message": "Notification message", "name": "Example test name", "options": {"ci": {"executionRule": "blocking"}, "device_ids": ["chrome.laptop_large"], "httpVersion": "http1", "monitor_options": {}, "restricted_roles": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], "retry": {}, "rumSettings": {"applicationId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "clientTokenId": 12345, "isEnabled": true}, "scheduling": {"timeframes": [{"day": 1, "from": "07:00", "to": "16:00"}, {"day": 3, "from": "07:00", "to": "16:00"}], "timezone": "America/New_York"}}, "status": "live", "subtype": "http", "tags": ["env:production"], "type": "api"} When the request is sent Then the response status is 404 - Synthetic Monitoring is not activated for the user @@ -623,13 +637,13 @@ Feature: Synthetics @generated @skip @team:DataDog/synthetics-app Scenario: Trigger tests from CI/CD pipelines returns "JSON format is wrong" response Given new "TriggerCITests" request - And body with value {"tests": [{"basicAuth": {"password": "PaSSw0RD!", "type": "web", "username": "my_username"}, "deviceIds": ["laptop_large"], "locations": ["aws:eu-west-3"], "metadata": {"ci": {"pipeline": {}, "provider": {}}, "git": {}}, "public_id": "aaa-aaa-aaa", "retry": {}}]} + And body with value {"tests": [{"basicAuth": {"password": "PaSSw0RD!", "type": "web", "username": "my_username"}, "deviceIds": ["chrome.laptop_large"], "locations": ["aws:eu-west-3"], "metadata": {"ci": {"pipeline": {}, "provider": {}}, "git": {}}, "public_id": "aaa-aaa-aaa", "retry": {}}]} When the request is sent Then the response status is 400 JSON format is wrong @generated @skip @team:DataDog/synthetics-app Scenario: Trigger tests from CI/CD pipelines returns "OK" response Given new "TriggerCITests" request - And body with value {"tests": [{"basicAuth": {"password": "PaSSw0RD!", "type": "web", "username": "my_username"}, "deviceIds": ["laptop_large"], "locations": ["aws:eu-west-3"], "metadata": {"ci": {"pipeline": {}, "provider": {}}, "git": {}}, "public_id": "aaa-aaa-aaa", "retry": {}}]} + And body with value {"tests": [{"basicAuth": {"password": "PaSSw0RD!", "type": "web", "username": "my_username"}, "deviceIds": ["chrome.laptop_large"], "locations": ["aws:eu-west-3"], "metadata": {"ci": {"pipeline": {}, "provider": {}}, "git": {}}, "public_id": "aaa-aaa-aaa", "retry": {}}]} When the request is sent Then the response status is 200 OK diff --git a/tests/scenarios/features/v1/synthetics_api_http_test_with_file_payload.json b/tests/scenarios/features/v1/synthetics_api_http_test_with_file_payload.json new file mode 100644 index 000000000..bf4f0e4ad --- /dev/null +++ b/tests/scenarios/features/v1/synthetics_api_http_test_with_file_payload.json @@ -0,0 +1,96 @@ +{ + "config": { + "assertions": [ + { + "operator": "is", + "property": "{{ '{{ PROPERTY }}' }}", + "target": "text/html", + "type": "header" + }, + { "operator": "lessThan", "target": 2000, "type": "responseTime", "timingsScope": "withoutDNS" }, + { + "operator": "validatesJSONPath", + "target": { + "jsonPath": "topKey", + "operator": "isNot", + "targetValue": "0" + }, + "type": "body" + }, + { + "operator": "validatesXPath", + "target": { + "xPath": "target-xpath", + "targetValue": "0", + "operator": "contains" + }, + "type": "body" + } + ], + "configVariables": [ + { + "example": "content-type", + "name": "PROPERTY", + "pattern": "content-type", + "type": "text" + } + ], + "request": { + "certificate": { + "cert": { + "content": "cert-content", + "filename": "cert-filename", + "updatedAt": "2020-10-16T09:23:24.857Z" + }, + "key": { + "content": "key-content", + "filename": "key-filename", + "updatedAt": "2020-10-16T09:23:24.857Z" + } + }, + "headers": { "unique": "{{ unique_lower_alnum }}" }, + "method": "GET", + "timeout": 10, + "url": "https://datadoghq.com", + "proxy": { + "url": "https://datadoghq.com", + "headers": {} + }, + "bodyType": "application/octet-stream", + "files": [{ + "name": "file name", + "content": "file content", + "type": "file type" + }], + "basicAuth": { + "accessTokenUrl": "https://datadog-token.com", + "audience": "audience", + "clientId": "client-id", + "clientSecret": "client-secret", + "resource": "resource", + "scope": "yoyo", + "tokenApiAuthentication": "header", + "type": "oauth-client" + }, + "persistCookies": true + } + }, + "locations": ["aws:us-east-2"], + "message": "BDD test payload: synthetics_api_http_test_payload.json", + "name": "{{ unique }}", + "options": { + "accept_self_signed": false, + "allow_insecure": true, + "follow_redirects": true, + "min_failure_duration": 10, + "min_location_failed": 1, + "monitor_name": "{{ unique }}", + "monitor_priority": 5, + "retry": { "count": 3, "interval": 10 }, + "tick_every": 60, + "httpVersion": "http2" + }, + "subtype": "http", + "tags": ["testing:api"], + "type": "api" + } diff --git a/tests/scenarios/features/v1/synthetics_api_test_multi_step_payload.json b/tests/scenarios/features/v1/synthetics_api_test_multi_step_payload.json index f514958ca..214ce5297 100644 --- a/tests/scenarios/features/v1/synthetics_api_test_multi_step_payload.json +++ b/tests/scenarios/features/v1/synthetics_api_test_multi_step_payload.json @@ -34,13 +34,42 @@ "request": { "method": "GET", "timeout": 10, - "url": "https://datadoghq.com" + "url": "https://datadoghq.com", + "httpVersion": "http2" }, "retry": { "count": 5, "interval": 1000 }, "subtype": "http" + }, + { + "name": "GRPC CALL", + "subtype": "grpc", + "extractedValues": [], + "allowFailure": false, + "isCritical": true, + "retry": { + "count": 0, + "interval": 300 + }, + "assertions": [ + { + "operator": "lessThan", + "type": "responseTime", + "target": 1000 + } + ], + "request": { + "host": "grpcbin.test.k6.io", + "port": 9000, + "service": "grpcbin.GRPCBin", + "method": "Index", + "message": "{}", + "compressedJsonDescriptor": "eJy1lU1z2yAQhv+Lzj74I3ETH506bQ7OZOSm1w4Wa4epBARQppqM/3v5koCJJdvtxCdW77vPssCO3zMKUgHOFu/ZXvBiS6hZho/f8qe7pftYgXphWJrlA8XwxywEvNba+6PhkC2yVcVVswYp0R6ykRYlZ1SCV21SDrxsssPIeS9FJKqGfK2rqnmmSBwhWa2XlKgtaQPiDcRGCUDVfwGD2sKUqKEtc1cSoOrsMlaMOec1sySYCCgUYRSVLv2zSva2u+FQkB0pVkIw8bFuIudOOn3pOaKYVT3Iy97Pd0AYhOx5QcMsnxvRHlnuLf8ETDd3CNtrv2nejkDpRnANCmGkkFn/hsYzpBKE7jVbufgnKnV9HRM9zRPDDKPttYT61n0TdWkAAjggk9AhuxIeaXd69CYTcsGw7cBTakLVbNpRzGEgyWjkSOpMbZXkhGL6oX30R49qt3GoHrap7i0XdD41WQ+2icCNm5p1hmFqnHNlcla0riKmDZ183crDxChjbnurtxHPRE784sVhWvDfGP+SsTKibU3o5NtWHuZFGZOxP6P5VXqIOvaOSec4eYohyd7NslHuJbd1bewds85xYrNxkr2d+5IhFWF3NvaO684xjE2S5ulY+tu64Pna0fCPJgzw6vF5/WucLcYjt5xoq19O3UDptOg/OamJQRaCcPPnMTQ2QDFn+uhPvUfnCrMc99upyQY4Ui9Dlc/YoG3R/v4Cs9YE+g==", + "metadata": {}, + "callType": "unary" + } } ] }, diff --git a/tests/scenarios/features/v1/synthetics_browser_test_payload.json b/tests/scenarios/features/v1/synthetics_browser_test_payload.json index 8e30a78c9..3862d58d4 100644 --- a/tests/scenarios/features/v1/synthetics_browser_test_payload.json +++ b/tests/scenarios/features/v1/synthetics_browser_test_payload.json @@ -28,7 +28,7 @@ "options": { "accept_self_signed": false, "allow_insecure": true, - "device_ids": ["tablet"], + "device_ids": ["chrome.laptop_large"], "disableCors": true, "follow_redirects": true, "min_failure_duration": 10, diff --git a/tests/scenarios/features/v1/tags.feature b/tests/scenarios/features/v1/tags.feature index 38d94ef92..36e1eabfd 100644 --- a/tests/scenarios/features/v1/tags.feature +++ b/tests/scenarios/features/v1/tags.feature @@ -6,8 +6,8 @@ Feature: Tags tags to a particular host. The component of your infrastructure responsible for a tag is identified by a source. For example, some valid sources include nagios, hudson, jenkins, users, feed, chef, puppet, git, - bitbucket, fabric, capistrano, etc. Read more about tags on the dedicated - [documentation page](https://docs.datadoghq.com/tagging). + bitbucket, fabric, capistrano, etc. Read more about tags on [Getting + Started with Tags](https://docs.datadoghq.com/getting_started/tagging/). Background: Given a valid "apiKeyAuth" key in the system diff --git a/tests/scenarios/features/v1/undo.json b/tests/scenarios/features/v1/undo.json index 26834c705..16982e7aa 100644 --- a/tests/scenarios/features/v1/undo.json +++ b/tests/scenarios/features/v1/undo.json @@ -360,7 +360,7 @@ { "name": "body", "origin": "request", - "template": "{\"account_id\": \"{{account_id}}\", \"role_name\": \"{{role_name}}\"}" + "template": "{\"account_id\": \"{{ account_id }}\", \"role_name\": \"{{ role_name }}\"}" } ], "type": "unsafe" @@ -489,7 +489,7 @@ { "name": "body", "origin": "request", - "template": "{\n \"client_id\": \"{{client_id}}\",\n \"tenant_name\": \"{{tenant_name}}\"\n}" + "template": "{\n \"client_id\": \"{{ client_id }}\",\n \"tenant_name\": \"{{ tenant_name }}\"\n}" } ], "type": "unsafe" @@ -1322,12 +1322,6 @@ "type": "safe" } }, - "GetUsageAttribution": { - "tag": "Usage Metering", - "undo": { - "type": "safe" - } - }, "GetUsageAuditLogs": { "tag": "Usage Metering", "undo": { diff --git a/tests/scenarios/features/v1/usage_metering.feature b/tests/scenarios/features/v1/usage_metering.feature index 5cec7da17..324dbe5e3 100644 --- a/tests/scenarios/features/v1/usage_metering.feature +++ b/tests/scenarios/features/v1/usage_metering.feature @@ -7,7 +7,9 @@ Feature: Usage Metering **Note**: Usage data is delayed by up to 72 hours from when it was incurred. It is retained for 15 months. You can retrieve up to 24 hours of hourly usage data for multiple organizations, and up to two months of - hourly usage data for a single organization in one request. + hourly usage data for a single organization in one request. Learn more on + the [usage details documentation](https://docs.datadoghq.com/account_manag + ement/billing/usage_details/). Background: Given a valid "apiKeyAuth" key in the system @@ -485,20 +487,6 @@ Feature: Usage Metering When the request is sent Then the response status is 200 OK - @generated @skip @team:DataDog/red-zone-revenue-query - Scenario: Get hourly usage for lambda returns "Bad Request" response - Given new "GetUsageLambda" request - And request contains "start_hr" parameter from "REPLACE.ME" - When the request is sent - Then the response status is 400 Bad Request - - @generated @skip @team:DataDog/red-zone-revenue-query - Scenario: Get hourly usage for lambda returns "OK" response - Given new "GetUsageLambda" request - And request contains "start_hr" parameter from "REPLACE.ME" - When the request is sent - Then the response status is 200 OK - @generated @skip @team:DataDog/red-zone-revenue-query Scenario: Get hourly usage for logs by index returns "Bad Request" response Given new "GetUsageLogsByIndex" request @@ -713,16 +701,6 @@ Feature: Usage Metering When the request is sent Then the response status is 200 OK - @skip @team:DataDog/red-zone-revenue-query - Scenario: Get usage attribution returns "OK" response - Given new "GetUsageAttribution" request - And request contains "start_month" parameter with value "{{ timeISO('now - 3d') }}" - And request contains "fields" parameter with value "*" - And request contains "offset" parameter with value 0 - And request contains "limit" parameter with value 1 - When the request is sent - Then the response status is 200 OK - @skip @team:DataDog/red-zone-revenue-query Scenario: Paginate monthly usage attribution Given there is a valid "monthly_usage_attribution" response diff --git a/tests/scenarios/features/v1/webhooks_integration.feature b/tests/scenarios/features/v1/webhooks_integration.feature index 747d86f8c..e58d93b78 100644 --- a/tests/scenarios/features/v1/webhooks_integration.feature +++ b/tests/scenarios/features/v1/webhooks_integration.feature @@ -1,8 +1,9 @@ @endpoint(webhooks-integration) @endpoint(webhooks-integration-v1) Feature: Webhooks Integration Configure your Datadog-Webhooks integration directly through the Datadog - API. For more information about the Datadog-Webhooks integration, see the - [integration page](https://docs.datadoghq.com/integrations/webhooks). + API. See the [Webhooks integration + page](https://docs.datadoghq.com/integrations/webhooks) for more + information. Background: Given a valid "apiKeyAuth" key in the system diff --git a/tests/scenarios/features/v2/api_management.feature b/tests/scenarios/features/v2/api_management.feature new file mode 100644 index 000000000..b010e6e81 --- /dev/null +++ b/tests/scenarios/features/v2/api_management.feature @@ -0,0 +1,101 @@ +@endpoint(api-management) @endpoint(api-management-v2) +Feature: API Management + Configure your API endpoints through the Datadog API. + + Background: + Given a valid "apiKeyAuth" key in the system + And a valid "appKeyAuth" key in the system + And an instance of "APIManagement" API + + @integration-only @skip-terraform-config @skip-validation @team:DataDog/api-management + Scenario: Create a new API returns "API created successfully" response + Given operation "CreateOpenAPI" enabled + And new "CreateOpenAPI" request + And request contains "openapi_spec_file" parameter with value "openapi-spec.yaml" + When the request is sent + Then the response status is 201 API created successfully + And the response "data.attributes.failed_endpoints" has length 0 + + @generated @skip @team:DataDog/api-management + Scenario: Create a new API returns "Bad request" response + Given operation "CreateOpenAPI" enabled + And new "CreateOpenAPI" request + When the request is sent + Then the response status is 400 Bad request + + @integration-only @skip-terraform-config @skip-validation @team:DataDog/api-management + Scenario: Delete an API returns "API deleted successfully" response + Given operation "DeleteOpenAPI" enabled + And there is a valid "managed_api" in the system + And new "DeleteOpenAPI" request + And request contains "id" parameter from "managed_api.data.id" + When the request is sent + Then the response status is 204 API deleted successfully + + @generated @skip @team:DataDog/api-management + Scenario: Delete an API returns "API not found error" response + Given operation "DeleteOpenAPI" enabled + And new "DeleteOpenAPI" request + And request contains "id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 API not found error + + @generated @skip @team:DataDog/api-management + Scenario: Delete an API returns "Bad request" response + Given operation "DeleteOpenAPI" enabled + And new "DeleteOpenAPI" request + And request contains "id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad request + + @generated @skip @team:DataDog/api-management + Scenario: Get an API returns "API not found error" response + Given operation "GetOpenAPI" enabled + And new "GetOpenAPI" request + And request contains "id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 API not found error + + @generated @skip @team:DataDog/api-management + Scenario: Get an API returns "Bad request" response + Given operation "GetOpenAPI" enabled + And new "GetOpenAPI" request + And request contains "id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad request + + @integration-only @skip-terraform-config @skip-validation @team:DataDog/api-management + Scenario: Get an API returns "OK" response + Given operation "GetOpenAPI" enabled + And there is a valid "managed_api" in the system + And new "GetOpenAPI" request + And request contains "id" parameter from "managed_api.data.id" + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/api-management + Scenario: Update an API returns "API not found error" response + Given operation "UpdateOpenAPI" enabled + And new "UpdateOpenAPI" request + And request contains "id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 API not found error + + @integration-only @skip-terraform-config @skip-validation @team:DataDog/api-management + Scenario: Update an API returns "API updated successfully" response + Given operation "UpdateOpenAPI" enabled + And there is a valid "managed_api" in the system + And new "UpdateOpenAPI" request + And request contains "id" parameter from "managed_api.data.id" + And request contains "openapi_spec_file" parameter with value "openapi-spec.yaml" + When the request is sent + Then the response status is 200 API updated successfully + And the response "data.attributes.failed_endpoints" has length 0 + + @generated @skip @team:DataDog/api-management + Scenario: Update an API returns "Bad request" response + Given operation "UpdateOpenAPI" enabled + And new "UpdateOpenAPI" request + And request contains "id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad request diff --git a/tests/scenarios/features/v2/apm_retention_filters.feature b/tests/scenarios/features/v2/apm_retention_filters.feature index 7b80ee68b..e88870c76 100644 --- a/tests/scenarios/features/v2/apm_retention_filters.feature +++ b/tests/scenarios/features/v2/apm_retention_filters.feature @@ -3,7 +3,9 @@ Feature: APM Retention Filters Manage configuration of [APM retention filters](https://app.datadoghq.com/apm/traces/retention-filters) for your organization. You need an API and application key with Admin rights to - interact with this endpoint. + interact with this endpoint. See [retention filters](https://docs.datadogh + q.com/tracing/trace_pipeline/trace_retention/#retention-filters) on the + Trace Retention page for more information. Background: Given a valid "apiKeyAuth" key in the system diff --git a/tests/scenarios/features/v2/authn_mappings.feature b/tests/scenarios/features/v2/authn_mappings.feature index 7fab254f7..a90c3e6ad 100644 --- a/tests/scenarios/features/v2/authn_mappings.feature +++ b/tests/scenarios/features/v2/authn_mappings.feature @@ -1,8 +1,9 @@ @endpoint(authn-mappings) @endpoint(authn-mappings-v2) Feature: AuthN Mappings - [AuthN Mappings API](https://docs.datadoghq.com/account_management/authn_m - apping/?tab=example) is used to automatically map group of users to roles - in Datadog using attributes sent from Identity Providers. + [The AuthN Mappings API](https://docs.datadoghq.com/account_management/aut + hn_mapping/?tab=example) is used to automatically map groups of users to + roles in Datadog using attributes sent from Identity Providers. Use these + endpoints to manage your AuthN Mappings. Background: Given a valid "apiKeyAuth" key in the system diff --git a/tests/scenarios/features/v2/case_management.feature b/tests/scenarios/features/v2/case_management.feature new file mode 100644 index 000000000..e95b1dc1c --- /dev/null +++ b/tests/scenarios/features/v2/case_management.feature @@ -0,0 +1,318 @@ +@endpoint(case-management) @endpoint(case-management-v2) +Feature: Case Management + View and manage cases and projects within Case Management. See the [Case + Management + page](https://docs.datadoghq.com/service_management/case_management/) for + more information. + + Background: + Given a valid "apiKeyAuth" key in the system + And a valid "appKeyAuth" key in the system + And an instance of "CaseManagement" API + + @team:DataDog/case-management + Scenario: Archive case returns "Bad Request" response + Given new "ArchiveCase" request + And there is a valid "case" in the system + And request contains "case_id" parameter from "case.id" + And body with value {"data": {"type": "project"}} + When the request is sent + Then the response status is 400 Bad Request + + @team:DataDog/case-management + Scenario: Archive case returns "Not Found" response + Given new "ArchiveCase" request + And request contains "case_id" parameter with value "67d80aa3-36ff-44b9-a694-c501a7591737" + And body with value {"data": {"type": "case"}} + When the request is sent + Then the response status is 404 Not Found + + @team:DataDog/case-management + Scenario: Archive case returns "OK" response + Given new "ArchiveCase" request + And there is a valid "case" in the system + And request contains "case_id" parameter from "case.id" + And body with value {"data": {"type": "case"}} + When the request is sent + Then the response status is 200 OK + + @team:DataDog/case-management + Scenario: Assign case returns "Bad Request" response + Given new "AssignCase" request + And there is a valid "case" in the system + And request contains "case_id" parameter from "case.id" + And body with value {"data": {"attributes": {"assignee_id": "invalid-uuid"}, "type": "case"}} + When the request is sent + Then the response status is 400 Bad Request + + @team:DataDog/case-management + Scenario: Assign case returns "Not Found" response + Given new "AssignCase" request + And there is a valid "user" in the system + And request contains "case_id" parameter with value "67d80aa3-36ff-44b9-a694-c501a7591737" + And body with value {"data": {"attributes": {"assignee_id": "{{user.data.id}}"}, "type": "case"}} + When the request is sent + Then the response status is 404 Not Found + + @team:DataDog/case-management + Scenario: Assign case returns "OK" response + Given new "AssignCase" request + And there is a valid "case" in the system + And there is a valid "user" in the system + And request contains "case_id" parameter from "case.id" + And body with value {"data": {"attributes": {"assignee_id": "{{user.data.id}}"}, "type": "case"}} + When the request is sent + Then the response status is 200 OK + + @team:DataDog/case-management + Scenario: Create a case returns "Bad Request" response + Given new "CreateCase" request + And body with value {"data": {"attributes": {"priority": "NOT_DEFINED", "title": "Security breach investigation", "type": "STANDARD"}, "relationships": {"assignee": {"data": {"id": "00000000-0000-0000-0000-000000000000", "type": "userx"}}, "project": {"data": {"id": "e555e290-ed65-49bd-ae18-8acbfcf18db7", "type": "project"}}}, "type": "case"}} + When the request is sent + Then the response status is 400 Bad Request + + @team:DataDog/case-management + Scenario: Create a case returns "CREATED" response + Given new "CreateCase" request + And there is a valid "user" in the system + And body with value {"data": {"attributes": {"priority": "NOT_DEFINED", "title": "Security breach investigation in {{ unique_hash }}", "type": "STANDARD"}, "relationships": {"assignee": {"data": {"id": "{{user.data.id}}", "type": "user"} }, "project": {"data": {"id": "d4bbe1af-f36e-42f1-87c1-493ca35c320e", "type": "project"}}}, "type": "case"}} + When the request is sent + Then the response status is 201 CREATED + And the response "data" has field "id" + And the response "data.attributes.title" is equal to "Security breach investigation in {{ unique_hash }}" + And the response "data.attributes.type" is equal to "STANDARD" + And the response "data.attributes.priority" is equal to "NOT_DEFINED" + + @generated @skip @team:DataDog/case-management + Scenario: Create a case returns "Not Found" response + Given new "CreateCase" request + And body with value {"data": {"attributes": {"priority": "NOT_DEFINED", "title": "Security breach investigation", "type": "STANDARD"}, "relationships": {"assignee": {"data": {"id": "00000000-0000-0000-0000-000000000000", "type": "user"}}, "project": {"data": {"id": "e555e290-ed65-49bd-ae18-8acbfcf18db7", "type": "project"}}}, "type": "case"}} + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/case-management + Scenario: Create a project returns "Bad Request" response + Given new "CreateProject" request + And body with value {"data": {"attributes": {"key": "SEC", "name": "Security Investigation"}, "type": "project"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/case-management + Scenario: Create a project returns "CREATED" response + Given new "CreateProject" request + And body with value {"data": {"attributes": {"key": "SEC", "name": "Security Investigation"}, "type": "project"}} + When the request is sent + Then the response status is 201 CREATED + + @generated @skip @team:DataDog/case-management + Scenario: Create a project returns "Not Found" response + Given new "CreateProject" request + And body with value {"data": {"attributes": {"key": "SEC", "name": "Security Investigation"}, "type": "project"}} + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/case-management + Scenario: Get all projects returns "Bad Request" response + Given new "GetProjects" request + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/case-management + Scenario: Get all projects returns "Not Found" response + Given new "GetProjects" request + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/case-management + Scenario: Get all projects returns "OK" response + Given new "GetProjects" request + When the request is sent + Then the response status is 200 OK + + @skip @team:DataDog/case-management + Scenario: Get the details of a case returns "Bad Request" response + Given new "GetCase" request + And there is a valid "case" in the system + And request contains "case_id" parameter from "case.id" + When the request is sent + Then the response status is 400 Bad Request + + @team:DataDog/case-management + Scenario: Get the details of a case returns "Not Found" response + Given new "GetCase" request + And request contains "case_id" parameter with value "67d80aa3-36ff-44b9-a694-c501a7591737" + When the request is sent + Then the response status is 404 Not Found + + @team:DataDog/case-management + Scenario: Get the details of a case returns "OK" response + Given new "GetCase" request + And there is a valid "case" in the system + And request contains "case_id" parameter from "case.id" + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/case-management + Scenario: Get the details of a project returns "Bad Request" response + Given new "GetProject" request + And request contains "project_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/case-management + Scenario: Get the details of a project returns "Not Found" response + Given new "GetProject" request + And request contains "project_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/case-management + Scenario: Get the details of a project returns "OK" response + Given new "GetProject" request + And request contains "project_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/case-management + Scenario: Remove a project returns "API error response" response + Given new "DeleteProject" request + And request contains "project_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 API error response + + @generated @skip @team:DataDog/case-management + Scenario: Remove a project returns "No Content" response + Given new "DeleteProject" request + And request contains "project_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 204 No Content + + @generated @skip @team:DataDog/case-management + Scenario: Search cases returns "Bad Request" response + Given new "SearchCases" request + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/case-management + Scenario: Search cases returns "Not Found" response + Given new "SearchCases" request + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/case-management + Scenario: Search cases returns "OK" response + Given new "SearchCases" request + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/case-management @with-pagination + Scenario: Search cases returns "OK" response with pagination + Given new "SearchCases" request + When the request with pagination is sent + Then the response status is 200 OK + + @team:DataDog/case-management + Scenario: Unarchive case returns "Bad Request" response + Given new "UnarchiveCase" request + And there is a valid "case" in the system + And request contains "case_id" parameter from "case.id" + And body with value {"data": {"type": "project"}} + When the request is sent + Then the response status is 400 Bad Request + + @team:DataDog/case-management + Scenario: Unarchive case returns "Not Found" response + Given new "UnarchiveCase" request + And request contains "case_id" parameter with value "67d80aa3-36ff-44b9-a694-c501a7591737" + And body with value {"data": {"type": "case"}} + When the request is sent + Then the response status is 404 Not Found + + @team:DataDog/case-management + Scenario: Unarchive case returns "OK" response + Given new "UnarchiveCase" request + And there is a valid "case" in the system + And request contains "case_id" parameter from "case.id" + And body with value {"data": {"type": "case"}} + When the request is sent + Then the response status is 200 OK + + @team:DataDog/case-management + Scenario: Unassign case returns "Bad Request" response + Given new "UnassignCase" request + And there is a valid "case" in the system + And request contains "case_id" parameter from "case.id" + And body with value {"data": {"type": "project"}} + When the request is sent + Then the response status is 400 Bad Request + + @team:DataDog/case-management + Scenario: Unassign case returns "Not Found" response + Given new "UnassignCase" request + And request contains "case_id" parameter with value "67d80aa3-36ff-44b9-a694-c501a7591737" + And body with value {"data": {"type": "case"}} + When the request is sent + Then the response status is 404 Not Found + + @team:DataDog/case-management + Scenario: Unassign case returns "OK" response + Given new "UnassignCase" request + And there is a valid "case" in the system + And request contains "case_id" parameter from "case.id" + And body with value {"data": {"type": "case"}} + When the request is sent + Then the response status is 200 OK + + @team:DataDog/case-management + Scenario: Update case priority returns "Bad Request" response + Given new "UpdatePriority" request + And there is a valid "case" in the system + And request contains "case_id" parameter from "case.id" + And body with value {"data": {"attributes": {"priority": "P1234"}, "type": "case"}} + When the request is sent + Then the response status is 400 Bad Request + + @team:DataDog/case-management + Scenario: Update case priority returns "Not Found" response + Given new "UpdatePriority" request + And request contains "case_id" parameter with value "67d80aa3-36ff-44b9-a694-c501a7591737" + And body with value {"data": {"attributes": {"priority": "P3"}, "type": "case"}} + When the request is sent + Then the response status is 404 Not Found + + @team:DataDog/case-management + Scenario: Update case priority returns "OK" response + Given new "UpdatePriority" request + And there is a valid "case" in the system + And request contains "case_id" parameter from "case.id" + And body with value {"data": {"attributes": {"priority": "P3"}, "type": "case"}} + When the request is sent + Then the response status is 200 OK + And the response "data.attributes.priority" is equal to "P3" + + @team:DataDog/case-management + Scenario: Update case status returns "Bad Request" response + Given new "UpdateStatus" request + And there is a valid "case" in the system + And request contains "case_id" parameter from "case.id" + And body with value {"data": {"attributes": {"status": "OPENED"}, "type": "case"}} + When the request is sent + Then the response status is 400 Bad Request + + @team:DataDog/case-management + Scenario: Update case status returns "Not Found" response + Given new "UpdateStatus" request + And request contains "case_id" parameter with value "67d80aa3-36ff-44b9-a694-c501a7591737" + And body with value {"data": {"attributes": {"status": "OPEN"}, "type": "case"}} + When the request is sent + Then the response status is 404 Not Found + + @team:DataDog/case-management + Scenario: Update case status returns "OK" response + Given new "UpdateStatus" request + And there is a valid "case" in the system + And request contains "case_id" parameter from "case.id" + And body with value {"data": {"attributes": {"status": "IN_PROGRESS"}, "type": "case"}} + When the request is sent + Then the response status is 200 OK + And the response "data.attributes.status" is equal to "IN_PROGRESS" diff --git a/tests/scenarios/features/v2/ci_visibility_pipelines.feature b/tests/scenarios/features/v2/ci_visibility_pipelines.feature index 6134cb06a..40d1b25b7 100644 --- a/tests/scenarios/features/v2/ci_visibility_pipelines.feature +++ b/tests/scenarios/features/v2/ci_visibility_pipelines.feature @@ -1,7 +1,9 @@ @endpoint(ci-visibility-pipelines) @endpoint(ci-visibility-pipelines-v2) Feature: CI Visibility Pipelines Search or aggregate your CI Visibility pipeline events and send them to - your Datadog site over HTTP. + your Datadog site over HTTP. See the [CI Pipeline Visibility in Datadog + page](https://docs.datadoghq.com/continuous_integration/pipelines/) for + more information. Background: Given a valid "apiKeyAuth" key in the system diff --git a/tests/scenarios/features/v2/ci_visibility_tests.feature b/tests/scenarios/features/v2/ci_visibility_tests.feature index 3152496cf..64bc72fbf 100644 --- a/tests/scenarios/features/v2/ci_visibility_tests.feature +++ b/tests/scenarios/features/v2/ci_visibility_tests.feature @@ -1,6 +1,8 @@ @endpoint(ci-visibility-tests) @endpoint(ci-visibility-tests-v2) Feature: CI Visibility Tests - Search or aggregate your CI Visibility test events over HTTP. + Search or aggregate your CI Visibility test events over HTTP. See the + [Test Visibility in Datadog page](https://docs.datadoghq.com/tests/) for + more information. Background: Given a valid "apiKeyAuth" key in the system diff --git a/tests/scenarios/features/v2/cloud_cost_management.feature b/tests/scenarios/features/v2/cloud_cost_management.feature index 1dfb05bae..e87b6dc47 100644 --- a/tests/scenarios/features/v2/cloud_cost_management.feature +++ b/tests/scenarios/features/v2/cloud_cost_management.feature @@ -1,7 +1,9 @@ @endpoint(cloud-cost-management) @endpoint(cloud-cost-management-v2) Feature: Cloud Cost Management - The Cloud Cost Management API allows you to setup, edit and delete cloud - cost management accounts for AWS & Azure. + The Cloud Cost Management API allows you to set up, edit, and delete Cloud + Cost Management accounts for AWS and Azure. See the [Cloud Cost Management + page](https://docs.datadoghq.com/cloud_cost_management/) for more + information. Background: Given a valid "apiKeyAuth" key in the system diff --git a/tests/scenarios/features/v2/cloud_workload_security.feature b/tests/scenarios/features/v2/cloud_workload_security.feature index ca0850217..20e864078 100644 --- a/tests/scenarios/features/v2/cloud_workload_security.feature +++ b/tests/scenarios/features/v2/cloud_workload_security.feature @@ -1,13 +1,36 @@ @endpoint(cloud-workload-security) @endpoint(cloud-workload-security-v2) Feature: Cloud Workload Security Workload activity security rules for generating events using the Datadog - security Agent. + security Agent. See the [Setting up CSM Workload Security page](https://do + cs.datadoghq.com/security/cloud_security_management/setup/csm_workload_sec + urity/) for more information. Background: Given a valid "apiKeyAuth" key in the system And a valid "appKeyAuth" key in the system And an instance of "CloudWorkloadSecurity" API + @team:DataDog/k9-cloud-security-platform @team:DataDog/k9-cws-backend + Scenario: Create a CSM Threats Agent rule returns "Bad Request" response + Given new "CreateCSMThreatsAgentRule" request + And body with value {"data": {"attributes": {"description": "My Agent rule", "enabled": true, "expression": "exec.file.name == sh", "name": "{{ unique_lower_alnum }}"}, "type": "agent_rule"}} + When the request is sent + Then the response status is 400 Bad Request + + @skip @team:DataDog/k9-cloud-security-platform @team:DataDog/k9-cws-backend + Scenario: Create a CSM Threats Agent rule returns "Conflict" response + Given new "CreateCSMThreatsAgentRule" request + And body with value {"data": {"attributes": {"description": "My Agent rule", "enabled": true, "expression": "exec.file.name == \"sh\"", "name": "my_agent_rule"}, "type": "agent_rule"}} + When the request is sent + Then the response status is 409 Conflict + + @team:DataDog/k9-cloud-security-platform @team:DataDog/k9-cws-backend + Scenario: Create a CSM Threats Agent rule returns "OK" response + Given new "CreateCSMThreatsAgentRule" request + And body with value {"data": {"attributes": {"description": "My Agent rule", "enabled": true, "expression": "exec.file.name == \"sh\"", "name": "{{ unique_lower_alnum }}"}, "type": "agent_rule"}} + When the request is sent + Then the response status is 200 OK + @team:DataDog/k9-cloud-security-platform @team:DataDog/k9-cws-backend Scenario: Create a Cloud Workload Security Agent rule returns "Bad Request" response Given new "CreateCloudWorkloadSecurityAgentRule" request @@ -31,6 +54,21 @@ Feature: Cloud Workload Security And the response "data.type" is equal to "agent_rule" And the response "data.attributes.description" is equal to "Test Agent rule" + @team:DataDog/k9-cloud-security-platform @team:DataDog/k9-cws-backend + Scenario: Delete a CSM Threats Agent rule returns "Not Found" response + Given new "DeleteCSMThreatsAgentRule" request + And request contains "agent_rule_id" parameter with value "abc-123-xyz" + When the request is sent + Then the response status is 404 Not Found + + @team:DataDog/k9-cloud-security-platform @team:DataDog/k9-cws-backend + Scenario: Delete a CSM Threats Agent rule returns "OK" response + Given there is a valid "agent_rule_rc" in the system + And new "DeleteCSMThreatsAgentRule" request + And request contains "agent_rule_id" parameter from "agent_rule.data.id" + When the request is sent + Then the response status is 204 OK + @team:DataDog/k9-cloud-security-platform @team:DataDog/k9-cws-backend Scenario: Delete a Cloud Workload Security Agent rule returns "Not Found" response Given new "DeleteCloudWorkloadSecurityAgentRule" request @@ -46,6 +84,23 @@ Feature: Cloud Workload Security When the request is sent Then the response status is 204 OK + @team:DataDog/k9-cloud-security-platform @team:DataDog/k9-cws-backend + Scenario: Get a CSM Threats Agent rule returns "Not Found" response + Given new "GetCSMThreatsAgentRule" request + And request contains "agent_rule_id" parameter with value "abc-123-xyz" + When the request is sent + Then the response status is 404 Not Found + + @team:DataDog/k9-cloud-security-platform @team:DataDog/k9-cws-backend + Scenario: Get a CSM Threats Agent rule returns "OK" response + Given there is a valid "agent_rule_rc" in the system + And new "GetCSMThreatsAgentRule" request + And request contains "agent_rule_id" parameter from "agent_rule.data.id" + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "agent_rule" + And the response "data.attributes.description" is equal to "My Agent rule" + @team:DataDog/k9-cloud-security-platform @team:DataDog/k9-cws-backend Scenario: Get a Cloud Workload Security Agent rule returns "Not Found" response Given new "GetCloudWorkloadSecurityAgentRule" request @@ -63,6 +118,12 @@ Feature: Cloud Workload Security And the response "data.type" is equal to "agent_rule" And the response "data.attributes.description" is equal to "My Agent rule" + @team:DataDog/k9-cloud-security-platform @team:DataDog/k9-cws-backend + Scenario: Get all CSM Threats Agent rules returns "OK" response + Given new "ListCSMThreatsAgentRules" request + When the request is sent + Then the response status is 200 OK + @team:DataDog/k9-cloud-security-platform @team:DataDog/k9-cws-backend Scenario: Get all Cloud Workload Security Agent rules returns "OK" response Given there is a valid "agent_rule" in the system @@ -71,12 +132,54 @@ Feature: Cloud Workload Security Then the response status is 200 OK And the response "data[0].type" is equal to "agent_rule" + @team:DataDog/k9-cloud-security-platform @team:DataDog/k9-cws-backend + Scenario: Get the latest CSM Threats policy returns "OK" response + Given new "DownloadCSMThreatsPolicy" request + When the request is sent + Then the response status is 200 OK + @team:DataDog/k9-cloud-security-platform @team:DataDog/k9-cws-backend Scenario: Get the latest Cloud Workload Security policy returns "OK" response Given new "DownloadCloudWorkloadPolicyFile" request When the request is sent Then the response status is 200 OK + @team:DataDog/k9-cloud-security-platform @team:DataDog/k9-cws-backend + Scenario: Update a CSM Threats Agent rule returns "Bad Request" response + Given there is a valid "agent_rule_rc" in the system + And new "UpdateCSMThreatsAgentRule" request + And request contains "agent_rule_id" parameter from "agent_rule.data.id" + And body with value {"data": {"attributes": {"description": "Test Agent rule", "enabled": true, "expression": "open.file.path = sh"}, "type": "agent_rule", "id":"abc-123-xyz"}} + When the request is sent + Then the response status is 400 Bad Request + + @skip @team:DataDog/k9-cloud-security-platform @team:DataDog/k9-cws-backend + Scenario: Update a CSM Threats Agent rule returns "Concurrent Modification" response + Given new "UpdateCSMThreatsAgentRule" request + And request contains "agent_rule_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"description": "My Agent rule", "enabled": true, "expression": "exec.file.name == \"sh\""}, "type": "agent_rule"}} + When the request is sent + Then the response status is 409 Concurrent Modification + + @team:DataDog/k9-cloud-security-platform @team:DataDog/k9-cws-backend + Scenario: Update a CSM Threats Agent rule returns "Not Found" response + Given new "UpdateCSMThreatsAgentRule" request + And request contains "agent_rule_id" parameter with value "abc-123-xyz" + And body with value {"data": {"attributes": {"description": "My Agent rule", "enabled": true, "expression": "exec.file.name == \"sh\""}, "type": "agent_rule", "id":"abc-123-xyz"}} + When the request is sent + Then the response status is 404 Not Found + + @team:DataDog/k9-cloud-security-platform @team:DataDog/k9-cws-backend + Scenario: Update a CSM Threats Agent rule returns "OK" response + Given there is a valid "agent_rule_rc" in the system + And new "UpdateCSMThreatsAgentRule" request + And request contains "agent_rule_id" parameter from "agent_rule.data.id" + And body with value {"data": {"attributes": {"description": "Test Agent rule", "enabled": true, "expression": "exec.file.name == \"sh\""}, "type": "agent_rule", "id":"{{ agent_rule.data.id }}"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "agent_rule" + And the response "data.attributes.description" is equal to "Test Agent rule" + @team:DataDog/k9-cloud-security-platform @team:DataDog/k9-cws-backend Scenario: Update a Cloud Workload Security Agent rule returns "Bad Request" response Given there is a valid "agent_rule" in the system diff --git a/tests/scenarios/features/v2/cloudflare_integration.feature b/tests/scenarios/features/v2/cloudflare_integration.feature index a7bb9da3e..aaca58aec 100644 --- a/tests/scenarios/features/v2/cloudflare_integration.feature +++ b/tests/scenarios/features/v2/cloudflare_integration.feature @@ -1,87 +1,89 @@ @endpoint(cloudflare-integration) @endpoint(cloudflare-integration-v2) Feature: Cloudflare Integration - Configure your Datadog Cloudflare integration directly through the Datadog - API. + Manage your Datadog Cloudflare integration directly through the Datadog + API. See the [Cloudflare integration + page](https://docs.datadoghq.com/integrations/cloudflare/) for more + information. Background: Given a valid "apiKeyAuth" key in the system And a valid "appKeyAuth" key in the system And an instance of "CloudflareIntegration" API - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Add Cloudflare account returns "Bad Request" response Given new "CreateCloudflareAccount" request - And body with value {"data": {"attributes": {"api_key": "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3", "email": "test-email@example.com", "name": "test-name"}, "type": "cloudflare-accounts"}} + And body with value {"data": {"attributes": {"api_key": "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3", "email": "test-email@example.com", "name": "test-name", "resources": ["web", "dns"], "zones": ["zone_id_1", "zone_id_2"]}, "type": "cloudflare-accounts"}} When the request is sent Then the response status is 400 Bad Request - @replay-only @team:Datadog/web-integrations + @replay-only @team:DataDog/saas-integrations Scenario: Add Cloudflare account returns "Bad Request" response due to missing email Given new "CreateCloudflareAccount" request - And body with value {"data": {"attributes": {"api_key": "test-api-key", "name": "{{ unique_lower_alnum }}"}, "type": "cloudflare-accounts"}} + And body with value {"data": {"attributes": {"api_key": "fakekey", "name": "{{ unique_lower_alnum }}"}, "type": "cloudflare-accounts"}} When the request is sent Then the response status is 400 Bad Request - @replay-only @team:Datadog/web-integrations + @replay-only @team:DataDog/saas-integrations Scenario: Add Cloudflare account returns "Bad Request" response using invalid auth key Given new "CreateCloudflareAccount" request And body with value {"data": {"attributes": {"api_key": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "name": "{{ unique_lower_alnum }}"}, "type": "cloudflare-accounts"}} When the request is sent Then the response status is 400 Bad Request - @replay-only @team:Datadog/web-integrations + @replay-only @team:DataDog/saas-integrations Scenario: Add Cloudflare account returns "CREATED" response Given new "CreateCloudflareAccount" request - And body with value {"data": {"attributes": {"api_key": "fakekey", "email": "new@email", "name": "{{ unique_lower_alnum }}"}, "type": "cloudflare-accounts"}} + And body with value {"data": {"attributes": {"api_key": "fakekey", "email": "dev@datadoghq.com", "name": "{{ unique_lower_alnum }}"}, "type": "cloudflare-accounts"}} When the request is sent Then the response status is 201 CREATED And the response "data.type" is equal to "cloudflare-accounts" - And the response "data.attributes.email" is equal to "new@email" + And the response "data.attributes.email" is equal to "dev@datadoghq.com" And the response "data.attributes.name" is equal to "{{ unique_lower_alnum }}" - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Add Cloudflare account returns "Not Found" response Given new "CreateCloudflareAccount" request - And body with value {"data": {"attributes": {"api_key": "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3", "email": "test-email@example.com", "name": "test-name"}, "type": "cloudflare-accounts"}} + And body with value {"data": {"attributes": {"api_key": "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3", "email": "test-email@example.com", "name": "test-name", "resources": ["web", "dns"], "zones": ["zone_id_1", "zone_id_2"]}, "type": "cloudflare-accounts"}} When the request is sent Then the response status is 404 Not Found - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Delete Cloudflare account returns "Bad Request" response Given new "DeleteCloudflareAccount" request And request contains "account_id" parameter from "REPLACE.ME" When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Delete Cloudflare account returns "Not Found" response Given new "DeleteCloudflareAccount" request And request contains "account_id" parameter from "REPLACE.ME" When the request is sent Then the response status is 404 Not Found - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Delete Cloudflare account returns "OK" response Given new "DeleteCloudflareAccount" request And request contains "account_id" parameter from "REPLACE.ME" When the request is sent Then the response status is 204 OK - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Get Cloudflare account returns "Bad Request" response Given new "GetCloudflareAccount" request And request contains "account_id" parameter from "REPLACE.ME" When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Get Cloudflare account returns "Not Found" response Given new "GetCloudflareAccount" request And request contains "account_id" parameter from "REPLACE.ME" When the request is sent Then the response status is 404 Not Found - @replay-only @team:Datadog/web-integrations + @replay-only @team:DataDog/saas-integrations Scenario: Get Cloudflare account returns "OK" response Given there is a valid "cloudflare_account" in the system And new "GetCloudflareAccount" request @@ -92,19 +94,19 @@ Feature: Cloudflare Integration And the response "data.attributes.email" is equal to "dev@datadog.com" And the response "data.attributes.name" is equal to "{{ unique_lower_alnum }}" - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: List Cloudflare accounts returns "Bad Request" response Given new "ListCloudflareAccounts" request When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: List Cloudflare accounts returns "Not Found" response Given new "ListCloudflareAccounts" request When the request is sent Then the response status is 404 Not Found - @replay-only @team:Datadog/web-integrations + @replay-only @team:DataDog/saas-integrations Scenario: List Cloudflare accounts returns "OK" response Given there is a valid "cloudflare_account" in the system And new "ListCloudflareAccounts" request @@ -112,15 +114,15 @@ Feature: Cloudflare Integration Then the response status is 200 OK And the response "data[0].type" is equal to "cloudflare-accounts" - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Update Cloudflare account returns "Bad Request" response Given new "UpdateCloudflareAccount" request And request contains "account_id" parameter from "REPLACE.ME" - And body with value {"data": {"attributes": {"api_key": "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3", "email": "test-email@example.com"}, "type": "cloudflare-accounts"}} + And body with value {"data": {"attributes": {"api_key": "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3", "email": "test-email@example.com", "resources": ["web", "dns"], "zones": ["zone_id_1", "zone_id_2"]}, "type": "cloudflare-accounts"}} When the request is sent Then the response status is 400 Bad Request - @replay-only @team:Datadog/web-integrations + @replay-only @team:DataDog/saas-integrations Scenario: Update Cloudflare account returns "Bad Request" response due to invalid api key Given there is a valid "cloudflare_account" in the system And new "UpdateCloudflareAccount" request @@ -129,30 +131,30 @@ Feature: Cloudflare Integration When the request is sent Then the response status is 400 Bad Request - @replay-only @team:Datadog/web-integrations + @replay-only @team:DataDog/saas-integrations Scenario: Update Cloudflare account returns "Bad Request" response due to missing required email Given there is a valid "cloudflare_account" in the system And new "UpdateCloudflareAccount" request And request contains "account_id" parameter from "cloudflare_account.data.id" - And body with value {"data": {"attributes": {"api_key": "abcdefghijklmnopqrstuvwxyz"}, "type": "cloudflare-accounts"}} + And body with value {"data": {"attributes": {"api_key": "fakekey"}, "type": "cloudflare-accounts"}} When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Update Cloudflare account returns "Not Found" response Given new "UpdateCloudflareAccount" request And request contains "account_id" parameter from "REPLACE.ME" - And body with value {"data": {"attributes": {"api_key": "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3", "email": "test-email@example.com"}, "type": "cloudflare-accounts"}} + And body with value {"data": {"attributes": {"api_key": "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3", "email": "test-email@example.com", "resources": ["web", "dns"], "zones": ["zone_id_1", "zone_id_2"]}, "type": "cloudflare-accounts"}} When the request is sent Then the response status is 404 Not Found - @replay-only @team:Datadog/web-integrations + @replay-only @team:DataDog/saas-integrations Scenario: Update Cloudflare account returns "OK" response Given there is a valid "cloudflare_account" in the system And new "UpdateCloudflareAccount" request And request contains "account_id" parameter from "cloudflare_account.data.id" - And body with value {"data": {"attributes": {"api_key": "fakekey", "email": "new@email"}, "type": "cloudflare-accounts"}} + And body with value {"data": {"attributes": {"api_key": "fakekey", "email": "dev@datadoghq.com", "zones": ["zone-id-3"]}, "type": "cloudflare-accounts"}} When the request is sent Then the response status is 200 OK And the response "data.attributes.name" is equal to "{{cloudflare_account.data.attributes.name }}" - And the response "data.attributes.email" is equal to "new@email" + And the response "data.attributes.zones" array contains value "zone-id-3" diff --git a/tests/scenarios/features/v2/confluent_cloud.feature b/tests/scenarios/features/v2/confluent_cloud.feature index a936d45c1..f81e01d09 100644 --- a/tests/scenarios/features/v2/confluent_cloud.feature +++ b/tests/scenarios/features/v2/confluent_cloud.feature @@ -1,35 +1,37 @@ @endpoint(confluent-cloud) @endpoint(confluent-cloud-v2) Feature: Confluent Cloud - Configure your Datadog Confluent Cloud integration directly through the - Datadog API. + Manage your Datadog Confluent Cloud integration accounts and account + resources directly through the Datadog API. See the [Confluent Cloud + page](https://docs.datadoghq.com/integrations/confluent_cloud/) for more + information. Background: Given a valid "apiKeyAuth" key in the system And a valid "appKeyAuth" key in the system And an instance of "ConfluentCloud" API - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Add Confluent account returns "Bad Request" response Given new "CreateConfluentAccount" request And body with value {"data": {"attributes": {"api_key": "TESTAPIKEY123", "api_secret": "test-api-secret-123", "resources": [{"enable_custom_metrics": false, "id": "resource-id-123", "resource_type": "kafka", "tags": ["myTag", "myTag2:myValue"]}], "tags": ["myTag", "myTag2:myValue"]}, "type": "confluent-cloud-accounts"}} When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Add Confluent account returns "Not Found" response Given new "CreateConfluentAccount" request And body with value {"data": {"attributes": {"api_key": "TESTAPIKEY123", "api_secret": "test-api-secret-123", "resources": [{"enable_custom_metrics": false, "id": "resource-id-123", "resource_type": "kafka", "tags": ["myTag", "myTag2:myValue"]}], "tags": ["myTag", "myTag2:myValue"]}, "type": "confluent-cloud-accounts"}} When the request is sent Then the response status is 404 Not Found - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Add Confluent account returns "OK" response Given new "CreateConfluentAccount" request And body with value {"data": {"attributes": {"api_key": "TESTAPIKEY123", "api_secret": "test-api-secret-123", "resources": [{"enable_custom_metrics": false, "id": "resource-id-123", "resource_type": "kafka", "tags": ["myTag", "myTag2:myValue"]}], "tags": ["myTag", "myTag2:myValue"]}, "type": "confluent-cloud-accounts"}} When the request is sent Then the response status is 201 OK - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Add resource to Confluent account returns "Bad Request" response Given new "CreateConfluentResource" request And request contains "account_id" parameter from "REPLACE.ME" @@ -37,7 +39,7 @@ Feature: Confluent Cloud When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Add resource to Confluent account returns "Not Found" response Given new "CreateConfluentResource" request And request contains "account_id" parameter from "REPLACE.ME" @@ -45,7 +47,7 @@ Feature: Confluent Cloud When the request is sent Then the response status is 404 Not Found - @team:Datadog/web-integrations + @team:DataDog/saas-integrations Scenario: Add resource to Confluent account returns "OK" response Given there is a valid "confluent_account" in the system And new "CreateConfluentResource" request @@ -57,21 +59,21 @@ Feature: Confluent Cloud And the response "data.attributes.resource_type" is equal to "kafka" And the response "data.attributes.tags[0]" is equal to "mytag" - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Delete Confluent account returns "Bad Request" response Given new "DeleteConfluentAccount" request And request contains "account_id" parameter from "REPLACE.ME" When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Delete Confluent account returns "Not Found" response Given new "DeleteConfluentAccount" request And request contains "account_id" parameter from "REPLACE.ME" When the request is sent Then the response status is 404 Not Found - @team:Datadog/web-integrations + @team:DataDog/saas-integrations Scenario: Delete Confluent account returns "OK" response Given there is a valid "confluent_account" in the system And new "DeleteConfluentAccount" request @@ -79,7 +81,7 @@ Feature: Confluent Cloud When the request is sent Then the response status is 204 OK - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Delete resource from Confluent account returns "Bad Request" response Given new "DeleteConfluentResource" request And request contains "account_id" parameter from "REPLACE.ME" @@ -87,7 +89,7 @@ Feature: Confluent Cloud When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Delete resource from Confluent account returns "Not Found" response Given new "DeleteConfluentResource" request And request contains "account_id" parameter from "REPLACE.ME" @@ -95,7 +97,7 @@ Feature: Confluent Cloud When the request is sent Then the response status is 404 Not Found - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Delete resource from Confluent account returns "OK" response Given new "DeleteConfluentResource" request And request contains "account_id" parameter from "REPLACE.ME" @@ -103,21 +105,21 @@ Feature: Confluent Cloud When the request is sent Then the response status is 204 OK - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Get Confluent account returns "Bad Request" response Given new "GetConfluentAccount" request And request contains "account_id" parameter from "REPLACE.ME" When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Get Confluent account returns "Not Found" response Given new "GetConfluentAccount" request And request contains "account_id" parameter from "REPLACE.ME" When the request is sent Then the response status is 404 Not Found - @team:Datadog/web-integrations + @team:DataDog/saas-integrations Scenario: Get Confluent account returns "OK" response Given there is a valid "confluent_account" in the system And new "GetConfluentAccount" request @@ -129,7 +131,7 @@ Feature: Confluent Cloud And the response "data.attributes.resources[0].resource_type" is equal to "kafka" And the response "data.attributes.resources[0].enable_custom_metrics" is equal to false - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Get resource from Confluent account returns "Bad Request" response Given new "GetConfluentResource" request And request contains "account_id" parameter from "REPLACE.ME" @@ -137,7 +139,7 @@ Feature: Confluent Cloud When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Get resource from Confluent account returns "Not Found" response Given new "GetConfluentResource" request And request contains "account_id" parameter from "REPLACE.ME" @@ -145,7 +147,7 @@ Feature: Confluent Cloud When the request is sent Then the response status is 404 Not Found - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Get resource from Confluent account returns "OK" response Given new "GetConfluentResource" request And request contains "account_id" parameter from "REPLACE.ME" @@ -153,40 +155,40 @@ Feature: Confluent Cloud When the request is sent Then the response status is 200 OK - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: List Confluent Account resources returns "Bad Request" response Given new "ListConfluentResource" request And request contains "account_id" parameter from "REPLACE.ME" When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: List Confluent Account resources returns "Not Found" response Given new "ListConfluentResource" request And request contains "account_id" parameter from "REPLACE.ME" When the request is sent Then the response status is 404 Not Found - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: List Confluent Account resources returns "OK" response Given new "ListConfluentResource" request And request contains "account_id" parameter from "REPLACE.ME" When the request is sent Then the response status is 200 OK - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: List Confluent accounts returns "Bad Request" response Given new "ListConfluentAccount" request When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: List Confluent accounts returns "Not Found" response Given new "ListConfluentAccount" request When the request is sent Then the response status is 404 Not Found - @team:Datadog/web-integrations + @team:DataDog/saas-integrations Scenario: List Confluent accounts returns "OK" response Given there is a valid "confluent_account" in the system And new "ListConfluentAccount" request @@ -194,7 +196,7 @@ Feature: Confluent Cloud Then the response status is 200 OK And the response "data[0].type" is equal to "confluent-cloud-accounts" - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Update Confluent account returns "Bad Request" response Given new "UpdateConfluentAccount" request And request contains "account_id" parameter from "REPLACE.ME" @@ -202,7 +204,7 @@ Feature: Confluent Cloud When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Update Confluent account returns "Not Found" response Given new "UpdateConfluentAccount" request And request contains "account_id" parameter from "REPLACE.ME" @@ -210,7 +212,7 @@ Feature: Confluent Cloud When the request is sent Then the response status is 404 Not Found - @team:Datadog/web-integrations + @team:DataDog/saas-integrations Scenario: Update Confluent account returns "OK" response Given there is a valid "confluent_account" in the system And new "UpdateConfluentAccount" request @@ -221,7 +223,7 @@ Feature: Confluent Cloud And the response "data.attributes.tags[0]" is equal to "updated_tag:val" And the response "data.attributes.api_key" is equal to "{{ confluent_account.data.attributes.api_key }}" - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Update resource in Confluent account returns "Bad Request" response Given new "UpdateConfluentResource" request And request contains "account_id" parameter from "REPLACE.ME" @@ -230,7 +232,7 @@ Feature: Confluent Cloud When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Update resource in Confluent account returns "Not Found" response Given new "UpdateConfluentResource" request And request contains "account_id" parameter from "REPLACE.ME" @@ -239,7 +241,7 @@ Feature: Confluent Cloud When the request is sent Then the response status is 404 Not Found - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Update resource in Confluent account returns "OK" response Given new "UpdateConfluentResource" request And request contains "account_id" parameter from "REPLACE.ME" diff --git a/tests/scenarios/features/v2/container_images.feature b/tests/scenarios/features/v2/container_images.feature index 7de87bcb6..ad6e1559b 100644 --- a/tests/scenarios/features/v2/container_images.feature +++ b/tests/scenarios/features/v2/container_images.feature @@ -1,7 +1,8 @@ @endpoint(container-images) @endpoint(container-images-v2) Feature: Container Images The Container Images API allows you to query Container Image data for your - organization. + organization. See the [Container Images View page](https://docs.datadoghq. + com/infrastructure/containers/container_images/) for more information. Background: Given a valid "apiKeyAuth" key in the system diff --git a/tests/scenarios/features/v2/containers.feature b/tests/scenarios/features/v2/containers.feature index 302f1ab0a..814931923 100644 --- a/tests/scenarios/features/v2/containers.feature +++ b/tests/scenarios/features/v2/containers.feature @@ -1,7 +1,8 @@ @endpoint(containers) @endpoint(containers-v2) Feature: Containers The Containers API allows you to query container data for your - organization. + organization. See the [Container Monitoring + page](https://docs.datadoghq.com/containers/) for more information. Background: Given a valid "apiKeyAuth" key in the system diff --git a/tests/scenarios/features/v2/dora_metrics.feature b/tests/scenarios/features/v2/dora_metrics.feature index b9ae75168..06909d7a3 100644 --- a/tests/scenarios/features/v2/dora_metrics.feature +++ b/tests/scenarios/features/v2/dora_metrics.feature @@ -1,6 +1,8 @@ @endpoint(dora-metrics) @endpoint(dora-metrics-v2) Feature: DORA Metrics - Send events for DORA Metrics to measure and improve software delivery. + Send events for DORA Metrics to measure and improve software delivery. See + the [DORA Metrics page](https://docs.datadoghq.com/dora_metrics/) for more + information. Background: Given a valid "apiKeyAuth" key in the system @@ -42,7 +44,7 @@ Feature: DORA Metrics Scenario: Send an incident event for DORA Metrics returns "OK - but delayed due to incident" response Given operation "CreateDORAIncident" enabled And new "CreateDORAIncident" request - And body with value {"data": {"attributes": {"finished_at": 1693491984000000000, "git": {"commit_sha": "66adc9350f2cc9b250b69abddab733dd55e1a588", "repository_url": "https://github.com/organization/example-repository"}, "name": "Webserver is down failing all requests", "service": "shopist", "severity": "High", "started_at": 1693491974000000000, "version": "v1.12.07"}}} + And body with value {"data": {"attributes": {"env": "staging", "finished_at": 1693491984000000000, "git": {"commit_sha": "66adc9350f2cc9b250b69abddab733dd55e1a588", "repository_url": "https://github.com/organization/example-repository"}, "name": "Webserver is down failing all requests.", "services": ["shopist"], "severity": "High", "started_at": 1693491974000000000, "team": "backend", "version": "v1.12.07"}}} When the request is sent Then the response status is 202 OK - but delayed due to incident @@ -50,6 +52,6 @@ Feature: DORA Metrics Scenario: Send an incident event for DORA Metrics returns "OK" response Given operation "CreateDORAIncident" enabled And new "CreateDORAIncident" request - And body with value {"data": {"attributes": {"finished_at": 1693491984000000000, "git": {"commit_sha": "66adc9350f2cc9b250b69abddab733dd55e1a588", "repository_url": "https://github.com/organization/example-repository"}, "name": "Webserver is down failing all requests", "service": "shopist", "severity": "High", "started_at": 1693491974000000000, "version": "v1.12.07"}}} + And body with value {"data": {"attributes": {"finished_at": 1707842944600000000, "git": {"commit_sha": "66adc9350f2cc9b250b69abddab733dd55e1a588", "repository_url": "https://github.com/organization/example-repository"}, "name": "Webserver is down failing all requests", "services": ["shopist"], "severity": "High", "started_at": 1707842944500000000, "team": "backend", "version": "v1.12.07"}}} When the request is sent Then the response status is 200 OK diff --git a/tests/scenarios/features/v2/events.feature b/tests/scenarios/features/v2/events.feature index 50954f2b2..9a1c79072 100644 --- a/tests/scenarios/features/v2/events.feature +++ b/tests/scenarios/features/v2/events.feature @@ -1,9 +1,9 @@ @endpoint(events) @endpoint(events-v2) Feature: Events - The events service allows you to programmatically post events to the event - stream and fetch events from the event stream. Events are limited to 4000 - characters. If an event is sent out with a message containing more than - 4000 characters, only the first 4000 characters are displayed. + The Event Management API allows you to programmatically post events to the + Events Explorer and fetch events from the Events Explorer. See the [Event + Management page](https://docs.datadoghq.com/service_management/events/) + for more information. Background: Given a valid "apiKeyAuth" key in the system diff --git a/tests/scenarios/features/v2/fastly_integration.feature b/tests/scenarios/features/v2/fastly_integration.feature index 349beb006..61dd97599 100644 --- a/tests/scenarios/features/v2/fastly_integration.feature +++ b/tests/scenarios/features/v2/fastly_integration.feature @@ -1,21 +1,23 @@ @endpoint(fastly-integration) @endpoint(fastly-integration-v2) Feature: Fastly Integration - Configure your Datadog Fastly integration directly through the Datadog - API. + Manage your Datadog Fastly integration accounts and services directly + through the Datadog API. See the [Fastly integration + page](https://docs.datadoghq.com/integrations/fastly/) for more + information. Background: Given a valid "apiKeyAuth" key in the system And a valid "appKeyAuth" key in the system And an instance of "FastlyIntegration" API - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Add Fastly account returns "Bad Request" response Given new "CreateFastlyAccount" request And body with value {"data": {"attributes": {"api_key": "ABCDEFG123", "name": "test-name", "services": [{"id": "6abc7de6893AbcDe9fghIj", "tags": ["myTag", "myTag2:myValue"]}]}, "type": "fastly-accounts"}} When the request is sent Then the response status is 400 Bad Request - @team:Datadog/web-integrations + @team:DataDog/saas-integrations Scenario: Add Fastly account returns "CREATED" response Given new "CreateFastlyAccount" request And body with value {"data": {"attributes": {"api_key": "{{ unique_alnum }}", "name": "{{ unique }}", "services": []}, "type": "fastly-accounts"}} @@ -25,14 +27,14 @@ Feature: Fastly Integration And the response "data.attributes.name" is equal to "{{ unique }}" And the response "data.attributes.services" has length 0 - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Add Fastly account returns "Not Found" response Given new "CreateFastlyAccount" request And body with value {"data": {"attributes": {"api_key": "ABCDEFG123", "name": "test-name", "services": [{"id": "6abc7de6893AbcDe9fghIj", "tags": ["myTag", "myTag2:myValue"]}]}, "type": "fastly-accounts"}} When the request is sent Then the response status is 404 Not Found - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Add Fastly service returns "Bad Request" response Given new "CreateFastlyService" request And request contains "account_id" parameter from "REPLACE.ME" @@ -40,7 +42,7 @@ Feature: Fastly Integration When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Add Fastly service returns "CREATED" response Given new "CreateFastlyService" request And request contains "account_id" parameter from "REPLACE.ME" @@ -48,7 +50,7 @@ Feature: Fastly Integration When the request is sent Then the response status is 201 CREATED - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Add Fastly service returns "Not Found" response Given new "CreateFastlyService" request And request contains "account_id" parameter from "REPLACE.ME" @@ -56,28 +58,28 @@ Feature: Fastly Integration When the request is sent Then the response status is 404 Not Found - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Delete Fastly account returns "Bad Request" response Given new "DeleteFastlyAccount" request And request contains "account_id" parameter from "REPLACE.ME" When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Delete Fastly account returns "Not Found" response Given new "DeleteFastlyAccount" request And request contains "account_id" parameter from "REPLACE.ME" When the request is sent Then the response status is 404 Not Found - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Delete Fastly account returns "OK" response Given new "DeleteFastlyAccount" request And request contains "account_id" parameter from "REPLACE.ME" When the request is sent Then the response status is 204 OK - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Delete Fastly service returns "Bad Request" response Given new "DeleteFastlyService" request And request contains "account_id" parameter from "REPLACE.ME" @@ -85,7 +87,7 @@ Feature: Fastly Integration When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Delete Fastly service returns "Not Found" response Given new "DeleteFastlyService" request And request contains "account_id" parameter from "REPLACE.ME" @@ -93,7 +95,7 @@ Feature: Fastly Integration When the request is sent Then the response status is 404 Not Found - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Delete Fastly service returns "OK" response Given new "DeleteFastlyService" request And request contains "account_id" parameter from "REPLACE.ME" @@ -101,21 +103,21 @@ Feature: Fastly Integration When the request is sent Then the response status is 204 OK - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Get Fastly account returns "Bad Request" response Given new "GetFastlyAccount" request And request contains "account_id" parameter from "REPLACE.ME" When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Get Fastly account returns "Not Found" response Given new "GetFastlyAccount" request And request contains "account_id" parameter from "REPLACE.ME" When the request is sent Then the response status is 404 Not Found - @team:Datadog/web-integrations + @team:DataDog/saas-integrations Scenario: Get Fastly account returns "OK" response Given there is a valid "fastly_account" in the system And new "GetFastlyAccount" request @@ -126,7 +128,7 @@ Feature: Fastly Integration And the response "data.attributes.name" is equal to "{{ unique }}" And the response "data.attributes.services" has length 0 - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Get Fastly service returns "Bad Request" response Given new "GetFastlyService" request And request contains "account_id" parameter from "REPLACE.ME" @@ -134,7 +136,7 @@ Feature: Fastly Integration When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Get Fastly service returns "Not Found" response Given new "GetFastlyService" request And request contains "account_id" parameter from "REPLACE.ME" @@ -142,7 +144,7 @@ Feature: Fastly Integration When the request is sent Then the response status is 404 Not Found - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Get Fastly service returns "OK" response Given new "GetFastlyService" request And request contains "account_id" parameter from "REPLACE.ME" @@ -150,19 +152,19 @@ Feature: Fastly Integration When the request is sent Then the response status is 200 OK - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: List Fastly accounts returns "Bad Request" response Given new "ListFastlyAccounts" request When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: List Fastly accounts returns "Not Found" response Given new "ListFastlyAccounts" request When the request is sent Then the response status is 404 Not Found - @team:Datadog/web-integrations + @team:DataDog/saas-integrations Scenario: List Fastly accounts returns "OK" response Given there is a valid "fastly_account" in the system And new "ListFastlyAccounts" request @@ -170,28 +172,28 @@ Feature: Fastly Integration Then the response status is 200 OK And the response "data[0].type" is equal to "fastly-accounts" - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: List Fastly services returns "Bad Request" response Given new "ListFastlyServices" request And request contains "account_id" parameter from "REPLACE.ME" When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: List Fastly services returns "Not Found" response Given new "ListFastlyServices" request And request contains "account_id" parameter from "REPLACE.ME" When the request is sent Then the response status is 404 Not Found - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: List Fastly services returns "OK" response Given new "ListFastlyServices" request And request contains "account_id" parameter from "REPLACE.ME" When the request is sent Then the response status is 200 OK - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Update Fastly account returns "Bad Request" response Given new "UpdateFastlyAccount" request And request contains "account_id" parameter from "REPLACE.ME" @@ -199,7 +201,7 @@ Feature: Fastly Integration When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Update Fastly account returns "Not Found" response Given new "UpdateFastlyAccount" request And request contains "account_id" parameter from "REPLACE.ME" @@ -207,7 +209,7 @@ Feature: Fastly Integration When the request is sent Then the response status is 404 Not Found - @team:Datadog/web-integrations + @team:DataDog/saas-integrations Scenario: Update Fastly account returns "OK" response Given there is a valid "fastly_account" in the system And new "UpdateFastlyAccount" request @@ -218,7 +220,7 @@ Feature: Fastly Integration And the response "data.id" is equal to "{{fastly_account.data.id }}" And the response "data.attributes.name" is equal to "{{fastly_account.data.attributes.name }}" - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Update Fastly service returns "Bad Request" response Given new "UpdateFastlyService" request And request contains "account_id" parameter from "REPLACE.ME" @@ -227,7 +229,7 @@ Feature: Fastly Integration When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Update Fastly service returns "Not Found" response Given new "UpdateFastlyService" request And request contains "account_id" parameter from "REPLACE.ME" @@ -236,7 +238,7 @@ Feature: Fastly Integration When the request is sent Then the response status is 404 Not Found - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Update Fastly service returns "OK" response Given new "UpdateFastlyService" request And request contains "account_id" parameter from "REPLACE.ME" diff --git a/tests/scenarios/features/v2/gcp_integration.feature b/tests/scenarios/features/v2/gcp_integration.feature index e18714ba2..8e44065f0 100644 --- a/tests/scenarios/features/v2/gcp_integration.feature +++ b/tests/scenarios/features/v2/gcp_integration.feature @@ -34,71 +34,81 @@ Feature: GCP Integration @generated @skip @team:DataDog/gcp-integrations Scenario: Create a new entry for your service account returns "Bad Request" response Given new "CreateGCPSTSAccount" request - And body with value {"data": {"attributes": {"account_tags": [], "client_email": "datadog-service-account@test-project.iam.gserviceaccount.com", "host_filters": [], "is_security_command_center_enabled": true}, "type": "gcp_service_account"}} + And body with value {"data": {"attributes": {"account_tags": [], "client_email": "datadog-service-account@test-project.iam.gserviceaccount.com", "cloud_run_revision_filters": ["$KEY:$VALUE"], "host_filters": [], "is_security_command_center_enabled": true}, "type": "gcp_service_account"}} When the request is sent Then the response status is 400 Bad Request @generated @skip @team:DataDog/gcp-integrations Scenario: Create a new entry for your service account returns "Conflict" response Given new "CreateGCPSTSAccount" request - And body with value {"data": {"attributes": {"account_tags": [], "client_email": "datadog-service-account@test-project.iam.gserviceaccount.com", "host_filters": [], "is_security_command_center_enabled": true}, "type": "gcp_service_account"}} + And body with value {"data": {"attributes": {"account_tags": [], "client_email": "datadog-service-account@test-project.iam.gserviceaccount.com", "cloud_run_revision_filters": ["$KEY:$VALUE"], "host_filters": [], "is_security_command_center_enabled": true}, "type": "gcp_service_account"}} When the request is sent Then the response status is 409 Conflict @team:DataDog/gcp-integrations Scenario: Create a new entry for your service account returns "OK" response Given new "CreateGCPSTSAccount" request - And body with value {"data": {"attributes": {"client_email": "{{ unique_hash }}@test-project.iam.gserviceaccount.com", "host_filters": []}, "type": "gcp_service_account"}} + And body with value {"data": {"attributes": {"client_email": "Test-{{ unique_hash }}@test-project.iam.gserviceaccount.com", "host_filters": []}, "type": "gcp_service_account"}} When the request is sent Then the response status is 201 OK And the response "data.type" is equal to "gcp_service_account" - And the response "data.attributes.client_email" is equal to "{{ unique_hash }}@test-project.iam.gserviceaccount.com" + And the response "data.attributes.client_email" is equal to "Test-{{ unique_hash }}@test-project.iam.gserviceaccount.com" @team:DataDog/gcp-integrations Scenario: Create a new entry for your service account with account_tags returns "OK" response Given new "CreateGCPSTSAccount" request - And body with value {"data": {"attributes": {"account_tags": ["lorem", "ipsum"], "client_email": "{{ unique_hash }}@test-project.iam.gserviceaccount.com", "host_filters": []}, "type": "gcp_service_account"}} + And body with value {"data": {"attributes": {"account_tags": ["lorem", "ipsum"], "client_email": "Test-{{ unique_hash }}@test-project.iam.gserviceaccount.com", "host_filters": []}, "type": "gcp_service_account"}} When the request is sent Then the response status is 201 OK And the response "data.type" is equal to "gcp_service_account" - And the response "data.attributes.client_email" is equal to "{{ unique_hash }}@test-project.iam.gserviceaccount.com" + And the response "data.attributes.client_email" is equal to "Test-{{ unique_hash }}@test-project.iam.gserviceaccount.com" And the response "data.attributes.account_tags" is equal to ["lorem", "ipsum"] + @team:DataDog/gcp-integrations + Scenario: Create a new entry for your service account with cloud run revision filters enabled returns "OK" response + Given new "CreateGCPSTSAccount" request + And body with value {"data": {"attributes": {"cloud_run_revision_filters": ["meh:bleh"], "client_email": "Test-{{ unique_hash }}@test-project.iam.gserviceaccount.com", "host_filters": []}, "type": "gcp_service_account"}} + When the request is sent + Then the response status is 201 OK + And the response "data.type" is equal to "gcp_service_account" + And the response "data.attributes.client_email" is equal to "Test-{{ unique_hash }}@test-project.iam.gserviceaccount.com" + And the response "data.attributes.cloud_run_revision_filters" is equal to ["meh:bleh"] + @team:DataDog/gcp-integrations Scenario: Create a new entry for your service account with cspm enabled returns "OK" response Given new "CreateGCPSTSAccount" request - And body with value {"data": {"attributes": {"is_cspm_enabled": true, "resource_collection_enabled": true, "client_email": "{{ unique_hash }}@test-project.iam.gserviceaccount.com", "host_filters": []}, "type": "gcp_service_account"}} + And body with value {"data": {"attributes": {"is_cspm_enabled": true, "resource_collection_enabled": true, "client_email": "Test-{{ unique_hash }}@test-project.iam.gserviceaccount.com", "host_filters": []}, "type": "gcp_service_account"}} When the request is sent Then the response status is 201 OK And the response "data.type" is equal to "gcp_service_account" - And the response "data.attributes.client_email" is equal to "{{ unique_hash }}@test-project.iam.gserviceaccount.com" + And the response "data.attributes.client_email" is equal to "Test-{{ unique_hash }}@test-project.iam.gserviceaccount.com" And the response "data.attributes.is_cspm_enabled" is equal to true @team:DataDog/gcp-integrations Scenario: Create a new entry for your service account with resource collection enabled disabled and cspm enabled returns "Bad Request" response Given new "CreateGCPSTSAccount" request - And body with value {"data": {"attributes": {"resource_collection_enabled": false, "is_cspm_enabled": true, "client_email": "{{ unique_hash }}@test-project.iam.gserviceaccount.com", "host_filters": []}, "type": "gcp_service_account"}} + And body with value {"data": {"attributes": {"resource_collection_enabled": false, "is_cspm_enabled": true, "client_email": "Test-{{ unique_hash }}@test-project.iam.gserviceaccount.com", "host_filters": []}, "type": "gcp_service_account"}} When the request is sent Then the response status is 400 Bad Request @team:DataDog/gcp-integrations Scenario: Create a new entry for your service account with resource collection enabled returns "OK" response Given new "CreateGCPSTSAccount" request - And body with value {"data": {"attributes": {"resource_collection_enabled": true, "client_email": "{{ unique_hash }}@test-project.iam.gserviceaccount.com", "host_filters": []}, "type": "gcp_service_account"}} + And body with value {"data": {"attributes": {"resource_collection_enabled": true, "client_email": "Test-{{ unique_hash }}@test-project.iam.gserviceaccount.com", "host_filters": []}, "type": "gcp_service_account"}} When the request is sent Then the response status is 201 OK And the response "data.type" is equal to "gcp_service_account" - And the response "data.attributes.client_email" is equal to "{{ unique_hash }}@test-project.iam.gserviceaccount.com" + And the response "data.attributes.client_email" is equal to "Test-{{ unique_hash }}@test-project.iam.gserviceaccount.com" And the response "data.attributes.resource_collection_enabled" is equal to true @team:DataDog/gcp-integrations Scenario: Create a new entry for your service account with security command center enabled returns "OK" response Given new "CreateGCPSTSAccount" request - And body with value {"data": {"attributes": {"is_security_command_center_enabled": true, "client_email": "{{ unique_hash }}@test-project.iam.gserviceaccount.com", "host_filters": []}, "type": "gcp_service_account"}} + And body with value {"data": {"attributes": {"is_security_command_center_enabled": true, "client_email": "Test-{{ unique_hash }}@test-project.iam.gserviceaccount.com", "host_filters": []}, "type": "gcp_service_account"}} When the request is sent Then the response status is 201 OK And the response "data.type" is equal to "gcp_service_account" - And the response "data.attributes.client_email" is equal to "{{ unique_hash }}@test-project.iam.gserviceaccount.com" + And the response "data.attributes.client_email" is equal to "Test-{{ unique_hash }}@test-project.iam.gserviceaccount.com" And the response "data.attributes.is_security_command_center_enabled" is equal to true @generated @skip @team:DataDog/gcp-integrations @@ -140,7 +150,7 @@ Feature: GCP Integration Scenario: Update STS Service Account returns "Bad Request" response Given new "UpdateGCPSTSAccount" request And request contains "account_id" parameter from "REPLACE.ME" - And body with value {"data": {"attributes": {"account_tags": [], "client_email": "datadog-service-account@test-project.iam.gserviceaccount.com", "host_filters": [], "is_security_command_center_enabled": true}, "id": "d291291f-12c2-22g4-j290-123456678897", "type": "gcp_service_account"}} + And body with value {"data": {"attributes": {"account_tags": [], "client_email": "datadog-service-account@test-project.iam.gserviceaccount.com", "cloud_run_revision_filters": ["$KEY:$VALUE"], "host_filters": [], "is_security_command_center_enabled": true}, "id": "d291291f-12c2-22g4-j290-123456678897", "type": "gcp_service_account"}} When the request is sent Then the response status is 400 Bad Request @@ -148,7 +158,7 @@ Feature: GCP Integration Scenario: Update STS Service Account returns "Not Found" response Given new "UpdateGCPSTSAccount" request And request contains "account_id" parameter from "REPLACE.ME" - And body with value {"data": {"attributes": {"account_tags": [], "client_email": "datadog-service-account@test-project.iam.gserviceaccount.com", "host_filters": [], "is_security_command_center_enabled": true}, "id": "d291291f-12c2-22g4-j290-123456678897", "type": "gcp_service_account"}} + And body with value {"data": {"attributes": {"account_tags": [], "client_email": "datadog-service-account@test-project.iam.gserviceaccount.com", "cloud_run_revision_filters": ["$KEY:$VALUE"], "host_filters": [], "is_security_command_center_enabled": true}, "id": "d291291f-12c2-22g4-j290-123456678897", "type": "gcp_service_account"}} When the request is sent Then the response status is 404 Not Found @@ -157,7 +167,16 @@ Feature: GCP Integration Given there is a valid "gcp_sts_account" in the system And new "UpdateGCPSTSAccount" request And request contains "account_id" parameter from "gcp_sts_account.data.id" - And body with value {"data": {"attributes": {"client_email": "{{ unique_hash }}@example.com", "host_filters": ["foo:bar"]}, "id": "{{ gcp_sts_account.data.id }}", "type": "gcp_service_account"}} + And body with value {"data": {"attributes": {"client_email": "Test-{{ unique_hash }}@example.com", "host_filters": ["foo:bar"]}, "id": "{{ gcp_sts_account.data.id }}", "type": "gcp_service_account"}} + When the request is sent + Then the response status is 201 OK + + @team:DataDog/gcp-integrations + Scenario: Update STS Service Account returns "OK" response with cloud run revision filters + Given there is a valid "gcp_sts_account" in the system + And new "UpdateGCPSTSAccount" request + And request contains "account_id" parameter from "gcp_sts_account.data.id" + And body with value {"data": {"attributes": {"client_email": "Test-{{ unique_hash }}@example.com", "cloud_run_revision_filters": ["merp:derp"]}, "id": "{{ gcp_sts_account.data.id }}", "type": "gcp_service_account"}} When the request is sent Then the response status is 201 OK @@ -166,6 +185,6 @@ Feature: GCP Integration Given there is a valid "gcp_sts_account" in the system And new "UpdateGCPSTSAccount" request And request contains "account_id" parameter from "gcp_sts_account.data.id" - And body with value {"data": {"attributes": {"client_email": "{{ unique_hash }}@example.com", "resource_collection_enabled": true}, "id": "{{ gcp_sts_account.data.id }}", "type": "gcp_service_account"}} + And body with value {"data": {"attributes": {"client_email": "Test-{{ unique_hash }}@example.com", "resource_collection_enabled": true}, "id": "{{ gcp_sts_account.data.id }}", "type": "gcp_service_account"}} When the request is sent Then the response status is 201 OK diff --git a/tests/scenarios/features/v2/given.json b/tests/scenarios/features/v2/given.json index 87cad5da3..5201f7e3c 100644 --- a/tests/scenarios/features/v2/given.json +++ b/tests/scenarios/features/v2/given.json @@ -11,6 +11,18 @@ "tag": "Key Management", "operationId": "CreateAPIKey" }, + { + "parameters": [ + { + "name": "openapi_spec_file", + "value": "\"openapi-spec.yaml\"" + } + ], + "step": "there is a valid \"managed_api\" in the system", + "key": "managed_api", + "tag": "API Management", + "operationId": "CreateOpenAPI" + }, { "parameters": [ { @@ -47,6 +59,19 @@ "tag": "AuthN Mappings", "operationId": "CreateAuthNMapping" }, + { + "parameters": [ + { + "name": "body", + "value": "{\n \"data\": {\n \"attributes\": {\n \"title\": \"My new case\",\n \"type\": \"STANDARD\",\n \"priority\": \"P4\"\n },\n \"relationships\": {\n \"project\": {\n \"data\": {\n \"id\": \"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\n \"type\": \"project\"\n }\n }\n },\n \"type\": \"case\"\n }\n}" + } + ], + "source": "data", + "step": "there is a valid \"case\" in the system", + "key": "case", + "tag": "Case Management", + "operationId": "CreateCase" + }, { "parameters": [ { @@ -167,7 +192,7 @@ "parameters": [ { "name": "body", - "value": "{\n \"data\": {\n \"attributes\": {\n \"client_email\": \"{{ unique_hash }}@example.com\",\n \"host_filters\": []\n },\n \"type\": \"gcp_service_account\"\n }\n}" + "value": "{\n \"data\": {\n \"attributes\": {\n \"client_email\": \"Test-{{ unique_hash }}@example.com\",\n \"host_filters\": []\n },\n \"type\": \"gcp_service_account\"\n }\n}" } ], "step": "there is a valid \"gcp_sts_account\" in the system", @@ -191,7 +216,7 @@ "parameters": [ { "name": "body", - "value": "{\n \"data\": {\n \"type\": \"cloudflare-accounts\",\n \"attributes\": {\n \"api_key\": \"fakekey\",\n \"name\": \"{{ unique_lower_alnum }}\",\n \"email\": \"dev@datadog.com\"\n }\n }\n}" + "value": "{\n \"data\": {\n \"type\": \"cloudflare-accounts\",\n \"attributes\": {\n \"api_key\": \"fakekey\",\n \"name\": \"{{ unique_lower_alnum }}\",\n \"email\": \"dev@datadog.com\",\n \"zones\": [\"zone-id-1\", \"zone-id-2\"],\n \"resources\": [\"web\", \"dns\"]\n }\n }\n}" } ], "step": "there is a valid \"cloudflare_account\" in the system", @@ -259,6 +284,18 @@ "tag": "IP Allowlist", "operationId": "UpdateIPAllowlist" }, + { + "parameters": [ + { + "name": "body", + "value": "{\n \"data\": {\n \"attributes\": {\n \"name\": \"{{ unique }}\",\n \"query\": \"source:nginx\",\n \"enabled\": false,\n \"forwarder_destination\": {\n \"type\": \"http\",\n \"endpoint\": \"https://example.com\",\n \"auth\": {\n \"type\": \"basic\",\n \"username\": \"my-username\",\n \"password\": \"my-password\"\n }\n },\n \"forward_tags_restriction_list_type\": \"BLOCK_LIST\",\n \"forward_tags_restriction_list\": [\"host\"],\n \"forward_tags\": false\n },\n \"type\": \"custom_destination\"\n }\n}" + } + ], + "step": "there is a valid \"custom_destination\" in the system", + "key": "custom_destination", + "tag": "Logs Custom Destinations", + "operationId": "CreateLogsCustomDestination" + }, { "parameters": [ { @@ -330,6 +367,18 @@ "tag": "Powerpack", "operationId": "CreatePowerpack" }, + { + "parameters": [ + { + "name": "body", + "value": "{\n \"data\": {\n \"type\": \"agent_rule\",\n \"attributes\": {\n \"name\": \"{{ unique_lower_alnum }}\",\n \"description\": \"My Agent rule\",\n \"expression\": \"exec.file.name == \\\"sh\\\"\",\n \"enabled\": true\n }\n }\n}" + } + ], + "step": "there is a valid \"agent_rule_rc\" in the system", + "key": "agent_rule", + "tag": "Cloud Workload Security", + "operationId": "CreateCSMThreatsAgentRule" + }, { "parameters": [ { @@ -422,6 +471,18 @@ "tag": "Security Monitoring", "operationId": "CreateSecurityFilter" }, + { + "parameters": [ + { + "name": "body", + "value": "{\n \"data\": {\n \"type\": \"suppressions\",\n \"attributes\": {\n \"enabled\": true,\n \"name\": \"{{ unique }}\",\n \"description\": \"{{ unique }}\",\n \"rule_query\": \"source:cloudtrail\",\n \"suppression_query\": \"env:test\"\n }\n }\n}" + } + ], + "step": "there is a valid \"suppression\" in the system", + "key": "suppression", + "tag": "Security Monitoring", + "operationId": "CreateSecurityMonitoringSuppression" + }, { "parameters": [ { diff --git a/tests/scenarios/features/v2/incident_services.feature b/tests/scenarios/features/v2/incident_services.feature index 66eb74e5d..eb5e5716d 100644 --- a/tests/scenarios/features/v2/incident_services.feature +++ b/tests/scenarios/features/v2/incident_services.feature @@ -1,7 +1,9 @@ @endpoint(incident-services) @endpoint(incident-services-v2) Feature: Incident Services Create, update, delete, and retrieve services which can be associated with - incidents. + incidents. See the [Incident Management + page](https://docs.datadoghq.com/service_management/incident_management/) + for more information. Background: Given a valid "apiKeyAuth" key in the system diff --git a/tests/scenarios/features/v2/incidents.feature b/tests/scenarios/features/v2/incidents.feature index 796d1e7d9..e14dba555 100644 --- a/tests/scenarios/features/v2/incidents.feature +++ b/tests/scenarios/features/v2/incidents.feature @@ -1,6 +1,9 @@ @endpoint(incidents) @endpoint(incidents-v2) Feature: Incidents - Manage incident response. + Manage incident response, as well as associated attachments, metadata, and + todos. See the [Incident Management + page](https://docs.datadoghq.com/service_management/incident_management/) + for more information. Background: Given a valid "apiKeyAuth" key in the system diff --git a/tests/scenarios/features/v2/ip_allowlist.feature b/tests/scenarios/features/v2/ip_allowlist.feature index c4f3d0622..571c8b8ef 100644 --- a/tests/scenarios/features/v2/ip_allowlist.feature +++ b/tests/scenarios/features/v2/ip_allowlist.feature @@ -3,7 +3,9 @@ Feature: IP Allowlist The IP allowlist API is used to manage the IP addresses that can access the Datadog API and web UI. It does not block access to intake APIs or public dashboards. This is an enterprise-only feature. Request access by - contacting Datadog support. + contacting Datadog support, or see the [IP Allowlist page](https://docs.da + tadoghq.com/account_management/org_settings/ip_allowlist/) for more + information. Background: Given a valid "apiKeyAuth" key in the system diff --git a/tests/scenarios/features/v2/logs.feature b/tests/scenarios/features/v2/logs.feature index a3bf22f42..625f4fe82 100644 --- a/tests/scenarios/features/v2/logs.feature +++ b/tests/scenarios/features/v2/logs.feature @@ -1,6 +1,8 @@ @endpoint(logs) @endpoint(logs-v2) Feature: Logs - Search your logs and send them to your Datadog platform over HTTP. + Search your logs and send them to your Datadog platform over HTTP. See the + [Log Management page](https://docs.datadoghq.com/logs/) for more + information. Background: Given a valid "apiKeyAuth" key in the system diff --git a/tests/scenarios/features/v2/logs_archives.feature b/tests/scenarios/features/v2/logs_archives.feature index 257a3fd11..1e1057c34 100644 --- a/tests/scenarios/features/v2/logs_archives.feature +++ b/tests/scenarios/features/v2/logs_archives.feature @@ -2,7 +2,7 @@ Feature: Logs Archives Archives forward all the logs ingested to a cloud storage system. See the [Archives Page](https://app.datadoghq.com/logs/pipelines/archives) for a - list of the archives currently configured in web UI. + list of the archives currently configured in Datadog. Background: Given a valid "apiKeyAuth" key in the system diff --git a/tests/scenarios/features/v2/logs_custom_destinations.feature b/tests/scenarios/features/v2/logs_custom_destinations.feature new file mode 100644 index 000000000..4fca0b661 --- /dev/null +++ b/tests/scenarios/features/v2/logs_custom_destinations.feature @@ -0,0 +1,245 @@ +@endpoint(logs-custom-destinations) @endpoint(logs-custom-destinations-v2) +Feature: Logs Custom Destinations + Custom Destinations forward all the logs ingested to an external + destination. **Note**: Log forwarding is not available for the Government + (US1-FED) site. Contact your account representative for more information. + See the [Custom Destinations + Page](https://app.datadoghq.com/logs/pipelines/log-forwarding/custom- + destinations) for a list of the custom destinations currently configured + in web UI. + + Background: + Given a valid "apiKeyAuth" key in the system + And a valid "appKeyAuth" key in the system + And an instance of "LogsCustomDestinations" API + + @team:DataDog/logs-backend + Scenario: Create a Basic HTTP custom destination returns "OK" response + Given new "CreateLogsCustomDestination" request + And body with value {"data": {"attributes": {"enabled": false, "forward_tags": false, "forward_tags_restriction_list": ["datacenter", "host"], "forward_tags_restriction_list_type": "ALLOW_LIST", "forwarder_destination": {"auth": {"password": "datadog-custom-destination-password", "type": "basic", "username": "datadog-custom-destination-username"}, "endpoint": "https://example.com", "type": "http"}, "name": "Nginx logs", "query": "source:nginx"}, "type": "custom_destination"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "custom_destination" + And the response "data" has field "id" + And the response "data.attributes.name" is equal to "Nginx logs" + And the response "data.attributes.query" is equal to "source:nginx" + And the response "data.attributes.forwarder_destination.type" is equal to "http" + And the response "data.attributes.forwarder_destination.endpoint" is equal to "https://example.com" + And the response "data.attributes.forwarder_destination.auth.type" is equal to "basic" + And the response "data.attributes.forwarder_destination.auth" does not have field "username" + And the response "data.attributes.forwarder_destination.auth" does not have field "password" + And the response "data.attributes.enabled" is false + And the response "data.attributes.forward_tags" is false + And the response "data.attributes.forward_tags_restriction_list" has length 2 + And the response "data.attributes.forward_tags_restriction_list" array contains value "datacenter" + And the response "data.attributes.forward_tags_restriction_list" array contains value "host" + And the response "data.attributes.forward_tags_restriction_list_type" is equal to "ALLOW_LIST" + + @team:DataDog/logs-backend + Scenario: Create a Custom Header HTTP custom destination returns "OK" response + Given new "CreateLogsCustomDestination" request + And body with value {"data": {"attributes": {"enabled": false, "forward_tags": false, "forward_tags_restriction_list": ["datacenter", "host"], "forward_tags_restriction_list_type": "ALLOW_LIST", "forwarder_destination": {"auth": {"header_value": "my-secret", "type": "custom_header", "header_name": "MY-AUTHENTICATION-HEADER"}, "endpoint": "https://example.com", "type": "http"}, "name": "Nginx logs", "query": "source:nginx"}, "type": "custom_destination"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "custom_destination" + And the response "data" has field "id" + And the response "data.attributes.name" is equal to "Nginx logs" + And the response "data.attributes.query" is equal to "source:nginx" + And the response "data.attributes.forwarder_destination.type" is equal to "http" + And the response "data.attributes.forwarder_destination.endpoint" is equal to "https://example.com" + And the response "data.attributes.forwarder_destination.auth.type" is equal to "custom_header" + And the response "data.attributes.forwarder_destination.auth.header_name" is equal to "MY-AUTHENTICATION-HEADER" + And the response "data.attributes.forwarder_destination.auth" does not have field "header_value" + And the response "data.attributes.enabled" is false + And the response "data.attributes.forward_tags" is false + And the response "data.attributes.forward_tags_restriction_list" has length 2 + And the response "data.attributes.forward_tags_restriction_list" array contains value "datacenter" + And the response "data.attributes.forward_tags_restriction_list" array contains value "host" + And the response "data.attributes.forward_tags_restriction_list_type" is equal to "ALLOW_LIST" + + @team:DataDog/logs-backend + Scenario: Create a Splunk custom destination returns "OK" response + Given new "CreateLogsCustomDestination" request + And body with value {"data": {"attributes": {"enabled": false, "forward_tags": false, "forward_tags_restriction_list": ["datacenter", "host"], "forward_tags_restriction_list_type": "ALLOW_LIST", "forwarder_destination": {"access_token": "my-access-token", "endpoint": "https://example.com", "type": "splunk_hec"}, "name": "Nginx logs", "query": "source:nginx"}, "type": "custom_destination"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "custom_destination" + And the response "data" has field "id" + And the response "data.attributes.name" is equal to "Nginx logs" + And the response "data.attributes.query" is equal to "source:nginx" + And the response "data.attributes.forwarder_destination.type" is equal to "splunk_hec" + And the response "data.attributes.forwarder_destination.endpoint" is equal to "https://example.com" + And the response "data.attributes.forwarder_destination" does not have field "access_token" + And the response "data.attributes.enabled" is false + And the response "data.attributes.forward_tags" is false + And the response "data.attributes.forward_tags_restriction_list" has length 2 + And the response "data.attributes.forward_tags_restriction_list" array contains value "datacenter" + And the response "data.attributes.forward_tags_restriction_list" array contains value "host" + And the response "data.attributes.forward_tags_restriction_list_type" is equal to "ALLOW_LIST" + + @skip-java @skip-python @skip-rust @skip-typescript @team:DataDog/logs-backend + Scenario: Create a custom destination returns "Bad Request" response + Given new "CreateLogsCustomDestination" request + And body with value {"data": {"attributes": {"name": "Nginx logs"}, "type": "custom_destination"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/logs-backend + Scenario: Create a custom destination returns "Conflict" response + Given new "CreateLogsCustomDestination" request + And body with value {"data": {"attributes": {"enabled": true, "forward_tags": true, "forward_tags_restriction_list": ["datacenter", "host"], "forward_tags_restriction_list_type": "ALLOW_LIST", "forwarder_destination": {"auth": {"password": "datadog-custom-destination-password", "type": "basic", "username": "datadog-custom-destination-username"}, "endpoint": "https://example.com", "type": "http"}, "name": "Nginx logs", "query": "source:nginx"}, "type": "custom_destination"}} + When the request is sent + Then the response status is 409 Conflict + + @generated @skip @team:DataDog/logs-backend + Scenario: Create a custom destination returns "OK" response + Given new "CreateLogsCustomDestination" request + And body with value {"data": {"attributes": {"enabled": true, "forward_tags": true, "forward_tags_restriction_list": ["datacenter", "host"], "forward_tags_restriction_list_type": "ALLOW_LIST", "forwarder_destination": {"auth": {"password": "datadog-custom-destination-password", "type": "basic", "username": "datadog-custom-destination-username"}, "endpoint": "https://example.com", "type": "http"}, "name": "Nginx logs", "query": "source:nginx"}, "type": "custom_destination"}} + When the request is sent + Then the response status is 200 OK + + @team:DataDog/logs-backend + Scenario: Create an Elasticsearch custom destination returns "OK" response + Given new "CreateLogsCustomDestination" request + And body with value {"data": {"attributes": {"enabled": false, "forward_tags": false, "forward_tags_restriction_list": ["datacenter", "host"], "forward_tags_restriction_list_type": "ALLOW_LIST", "forwarder_destination": {"auth": {"username": "my-username", "password": "my-password"}, "index_name": "nginx-logs", "index_rotation": "yyyy-MM-dd", "endpoint": "https://example.com", "type": "elasticsearch"}, "name": "Nginx logs", "query": "source:nginx"}, "type": "custom_destination"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "custom_destination" + And the response "data" has field "id" + And the response "data.attributes.name" is equal to "Nginx logs" + And the response "data.attributes.query" is equal to "source:nginx" + And the response "data.attributes.forwarder_destination.type" is equal to "elasticsearch" + And the response "data.attributes.forwarder_destination.endpoint" is equal to "https://example.com" + And the response "data.attributes.forwarder_destination.index_name" is equal to "nginx-logs" + And the response "data.attributes.forwarder_destination.index_rotation" is equal to "yyyy-MM-dd" + And the response "data.attributes.forwarder_destination.auth" does not have field "username" + And the response "data.attributes.forwarder_destination.auth" does not have field "password" + And the response "data.attributes.enabled" is false + And the response "data.attributes.forward_tags" is false + And the response "data.attributes.forward_tags_restriction_list" has length 2 + And the response "data.attributes.forward_tags_restriction_list" array contains value "datacenter" + And the response "data.attributes.forward_tags_restriction_list" array contains value "host" + And the response "data.attributes.forward_tags_restriction_list_type" is equal to "ALLOW_LIST" + + @generated @skip @team:DataDog/logs-backend + Scenario: Delete a custom destination returns "Bad Request" response + Given new "DeleteLogsCustomDestination" request + And request contains "custom_destination_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @team:DataDog/logs-backend + Scenario: Delete a custom destination returns "Not Found" response + Given new "DeleteLogsCustomDestination" request + And request contains "custom_destination_id" parameter with value "does-not-exist" + When the request is sent + Then the response status is 404 Not found + + @team:DataDog/logs-backend + Scenario: Delete a custom destination returns "OK" response + Given new "DeleteLogsCustomDestination" request + And there is a valid "custom_destination" in the system + And request contains "custom_destination_id" parameter from "custom_destination.data.id" + When the request is sent + Then the response status is 204 OK + + @generated @skip @team:DataDog/logs-backend + Scenario: Get a custom destination returns "Bad Request" response + Given new "GetLogsCustomDestination" request + And request contains "custom_destination_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @team:DataDog/logs-backend + Scenario: Get a custom destination returns "Not Found" response + Given new "GetLogsCustomDestination" request + And request contains "custom_destination_id" parameter with value "does-not-exist" + When the request is sent + Then the response status is 404 Not found + + @team:DataDog/logs-backend + Scenario: Get a custom destination returns "OK" response + Given new "GetLogsCustomDestination" request + And there is a valid "custom_destination" in the system + And request contains "custom_destination_id" parameter from "custom_destination.data.id" + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "custom_destination" + And the response "data.id" is equal to "{{ custom_destination.data.id }}" + And the response "data.attributes.name" is equal to "{{ custom_destination.data.attributes.name }}" + And the response "data.attributes.query" is equal to "{{ custom_destination.data.attributes.query }}" + And the response "data.attributes.forwarder_destination.type" is equal to "{{ custom_destination.data.attributes.forwarder_destination.type }}" + And the response "data.attributes.forwarder_destination.endpoint" is equal to "{{ custom_destination.data.attributes.forwarder_destination.endpoint }}" + And the response "data.attributes.forwarder_destination.auth.type" is equal to "{{ custom_destination.data.attributes.forwarder_destination.auth.type }}" + And the response "data.attributes.forwarder_destination.auth" does not have field "username" + And the response "data.attributes.forwarder_destination.auth" does not have field "password" + And the response "data.attributes.enabled" is false + And the response "data.attributes.forward_tags" is false + And the response "data.attributes.forward_tags_restriction_list" has length 1 + And the response "data.attributes.forward_tags_restriction_list" array contains value "host" + And the response "data.attributes.forward_tags_restriction_list_type" is equal to "{{ custom_destination.data.attributes.forward_tags_restriction_list_type }}" + + @team:DataDog/logs-backend + Scenario: Get all custom destinations returns "OK" response + Given new "ListLogsCustomDestinations" request + And there is a valid "custom_destination" in the system + When the request is sent + Then the response status is 200 OK + And the response "data" has item with field "type" with value "custom_destination" + And the response "data" has item with field "id" with value "{{ custom_destination.data.id }}" + And the response "data" has item with field "attributes.name" with value "{{ custom_destination.data.attributes.name }}" + And the response "data" has item with field "attributes.query" with value "{{ custom_destination.data.attributes.query }}" + And the response "data" has item with field "attributes.forwarder_destination.type" with value "{{ custom_destination.data.attributes.forwarder_destination.type }}" + And the response "data" has item with field "attributes.forwarder_destination.endpoint" with value "{{ custom_destination.data.attributes.forwarder_destination.endpoint }}" + And the response "data" has item with field "attributes.forwarder_destination.auth.type" with value "{{ custom_destination.data.attributes.forwarder_destination.auth.type }}" + And the response "data" has item with field "attributes.enabled" with value false + And the response "data" has item with field "attributes.forward_tags" with value false + And the response "data" has item with field "attributes.forward_tags_restriction_list_type" with value "{{ custom_destination.data.attributes.forward_tags_restriction_list_type }}" + + @team:DataDog/logs-backend + Scenario: Update a custom destination returns "Bad Request" response + Given new "UpdateLogsCustomDestination" request + And there is a valid "custom_destination" in the system + And request contains "custom_destination_id" parameter from "custom_destination.data.id" + And body with value {"data": {"attributes": {"forward_tags_restriction_list_type": "this_list_type_does_not_exist"}, "type": "custom_destination", "id": "{{ custom_destination.data.id }}" }} + When the request is sent + Then the response status is 400 Bad Request + + @skip @team:DataDog/logs-backend + Scenario: Update a custom destination returns "Conflict" response + Given new "UpdateLogsCustomDestination" request + And request contains "custom_destination_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"enabled": false, "forward_tags": false, "forward_tags_restriction_list": ["datacenter", "host"], "forward_tags_restriction_list_type": "ALLOW_LIST", "forwarder_destination": {"auth": {"password": "datadog-custom-destination-password", "type": "basic", "username": "datadog-custom-destination-username"}, "endpoint": "https://example.com", "type": "http"}, "name": "Nginx logs", "query": "source:nginx"}, "type": "custom_destination"}} + When the request is sent + Then the response status is 409 Conflict + + @team:DataDog/logs-backend + Scenario: Update a custom destination returns "Not Found" response + Given new "UpdateLogsCustomDestination" request + And request contains "custom_destination_id" parameter with value "id-from-non-existing-custom-destination" + And body with value {"data": {"attributes": {"enabled": false, "forward_tags": false, "forward_tags_restriction_list": ["datacenter", "host"], "forward_tags_restriction_list_type": "ALLOW_LIST", "forwarder_destination": {"auth": {"type": "basic", "username": "datadog-custom-destination-username", "password": "datadog-custom-destination-password"}, "endpoint": "https://example.com", "type": "http"}, "name": "Nginx logs", "query": "source:nginx"}, "type": "custom_destination", "id": "id-from-non-existing-custom-destination" }} + When the request is sent + Then the response status is 404 Not Found + + @team:DataDog/logs-backend + Scenario: Update a custom destination returns "OK" response + Given new "UpdateLogsCustomDestination" request + And there is a valid "custom_destination" in the system + And request contains "custom_destination_id" parameter from "custom_destination.data.id" + And body with value {"data": {"attributes": {"name": "Nginx logs (Updated)", "query": "source:nginx", "enabled":false, "forward_tags":false, "forward_tags_restriction_list_type":"BLOCK_LIST"}, "type": "custom_destination", "id": "{{ custom_destination.data.id }}"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "custom_destination" + And the response "data.id" is equal to "{{ custom_destination.data.id }}" + And the response "data.attributes.name" is equal to "Nginx logs (Updated)" + And the response "data.attributes.query" is equal to "{{ custom_destination.data.attributes.query }}" + And the response "data.attributes.forwarder_destination.type" is equal to "{{ custom_destination.data.attributes.forwarder_destination.type }}" + And the response "data.attributes.forwarder_destination.endpoint" is equal to "{{ custom_destination.data.attributes.forwarder_destination.endpoint }}" + And the response "data.attributes.forwarder_destination.auth.type" is equal to "{{ custom_destination.data.attributes.forwarder_destination.auth.type }}" + And the response "data.attributes.forwarder_destination.auth" does not have field "username" + And the response "data.attributes.forwarder_destination.auth" does not have field "password" + And the response "data.attributes.enabled" is false + And the response "data.attributes.forward_tags" is false + And the response "data.attributes.forward_tags_restriction_list" has length 1 + And the response "data.attributes.forward_tags_restriction_list" array contains value "host" + And the response "data.attributes.forward_tags_restriction_list_type" is equal to "{{ custom_destination.data.attributes.forward_tags_restriction_list_type }}" diff --git a/tests/scenarios/features/v2/metrics.feature b/tests/scenarios/features/v2/metrics.feature index e819df1e1..033fe70ef 100644 --- a/tests/scenarios/features/v2/metrics.feature +++ b/tests/scenarios/features/v2/metrics.feature @@ -7,7 +7,9 @@ Feature: Metrics number of points and as the timeframe over which a metric is viewed increases, aggregation between points occurs to stay below that set number. The Post, Patch, and Delete `manage_tags` API methods can only be - performed by a user who has the `Manage Tags for Metrics` permission. + performed by a user who has the `Manage Tags for Metrics` permission. See + the [Metrics page](https://docs.datadoghq.com/metrics/) for more + information. Background: Given a valid "apiKeyAuth" key in the system @@ -132,7 +134,7 @@ Feature: Metrics Then the response status is 200 Success And the response "data" has length 0 - @team:DataDog/metrics-experience + @replay-only @team:DataDog/metrics-experience Scenario: Get a list of metrics with configured filter returns "Success" response Given a valid "appKeyAuth" key in the system And new "ListTagConfigurations" request @@ -277,6 +279,24 @@ Feature: Metrics When the request is sent Then the response status is 200 OK + @generated @skip @team:DataDog/metrics-experience + Scenario: Related Assets to a Metric returns "API error response." response + Given a valid "appKeyAuth" key in the system + And new "ListMetricAssets" request + And request contains "metric_name" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 API error response. + + @team:DataDog/metrics-experience + Scenario: Related Assets to a Metric returns "Success" response + Given a valid "appKeyAuth" key in the system + And new "ListMetricAssets" request + And request contains "metric_name" parameter with value "system.cpu.user" + When the request is sent + Then the response status is 200 Success + And the response "data.type" is equal to "metrics" + And the response "data.id" is equal to "system.cpu.user" + @team:Datadog/timeseries-query Scenario: Scalar cross product query returns "Bad Request" response Given a valid "appKeyAuth" key in the system @@ -291,7 +311,7 @@ Feature: Metrics Given a valid "appKeyAuth" key in the system And operation "QueryScalarData" enabled And new "QueryScalarData" request - And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": 1671612804000, "queries": [{"aggregator": "avg", "data_source": "metrics", "query": "avg:system.cpu.user{*}", "name": "a"}], "to": 1671620004000}, "type": "scalar_request"}} + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "queries": [{"aggregator": "avg", "data_source": "metrics", "query": "avg:system.cpu.user{*}", "name": "a"}], "to": {{ timestamp('now') }}000}, "type": "scalar_request"}} When the request is sent Then the response status is 200 OK And the response "data.type" is equal to "scalar_response" @@ -351,7 +371,7 @@ Feature: Metrics When the request is sent Then the response status is 200 Success - @skip-rust @team:Datadog/timeseries-query + @skip @team:Datadog/timeseries-query Scenario: Timeseries cross product query returns "Bad Request" response Given a valid "appKeyAuth" key in the system And operation "QueryTimeseriesData" enabled @@ -365,11 +385,10 @@ Feature: Metrics Given a valid "appKeyAuth" key in the system And operation "QueryTimeseriesData" enabled And new "QueryTimeseriesData" request - And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": 1671612804000, "interval": 5000, "queries": [{"data_source": "metrics", "query": "avg:system.cpu.user{*}", "name": "a"}], "to": 1671620004000}, "type": "timeseries_request"}} + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "interval": 5000, "queries": [{"data_source": "metrics", "query": "avg:datadog.estimated_usage.metrics.custom{*}", "name": "a"}], "to": {{ timestamp('now') }}000}, "type": "timeseries_request"}} When the request is sent Then the response status is 200 OK And the response "data.type" is equal to "timeseries_response" - And the response "data.attributes.series[0].unit[0].name" is equal to "percent" @generated @skip @team:DataDog/metrics-experience Scenario: Update a tag configuration returns "Bad Request" response diff --git a/tests/scenarios/features/v2/monitors.feature b/tests/scenarios/features/v2/monitors.feature index 2c441782c..7585d0663 100644 --- a/tests/scenarios/features/v2/monitors.feature +++ b/tests/scenarios/features/v2/monitors.feature @@ -11,7 +11,7 @@ Feature: Monitors And a valid "appKeyAuth" key in the system And an instance of "Monitors" API - @skip-validation @skip-rust @team:DataDog/monitor-app + @skip-validation @team:DataDog/monitor-app Scenario: Create a monitor configuration policy returns "Bad Request" response Given new "CreateMonitorConfigPolicy" request And body with value {"data": {"attributes": {"policy_type": "INVALID", "policy": {"tag_key": "datacenter", "tag_key_required": true, "valid_tag_values": ["prod", "staging"]}}, "type": "monitor-config-policy"}} diff --git a/tests/scenarios/features/v2/okta_integration.feature b/tests/scenarios/features/v2/okta_integration.feature index a623c27e5..006e8fe20 100644 --- a/tests/scenarios/features/v2/okta_integration.feature +++ b/tests/scenarios/features/v2/okta_integration.feature @@ -1,69 +1,71 @@ @endpoint(okta-integration) @endpoint(okta-integration-v2) Feature: Okta Integration - Configure your Datadog Okta integration directly through the Datadog API. + Configure your [Datadog Okta + integration](https://docs.datadoghq.com/integrations/okta/) directly + through the Datadog API. Background: Given a valid "apiKeyAuth" key in the system And a valid "appKeyAuth" key in the system And an instance of "OktaIntegration" API - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Add Okta account returns "Bad Request" response Given new "CreateOktaAccount" request And body with value {"data": {"attributes": {"auth_method": "oauth", "domain": "https://example.okta.com/", "name": "Okta-Prod"}, "id": "f749daaf-682e-4208-a38d-c9b43162c609", "type": "okta-accounts"}} When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Add Okta account returns "Not Found" response Given new "CreateOktaAccount" request And body with value {"data": {"attributes": {"auth_method": "oauth", "domain": "https://example.okta.com/", "name": "Okta-Prod"}, "id": "f749daaf-682e-4208-a38d-c9b43162c609", "type": "okta-accounts"}} When the request is sent Then the response status is 404 Not Found - @team:Datadog/web-integrations + @team:DataDog/saas-integrations Scenario: Add Okta account returns "OK" response Given new "CreateOktaAccount" request - And body with value {"data": {"attributes": {"auth_method": "oauth", "domain": "https://example.okta.com/", "name": "Okta_Prod", "client_id": "client_id", "client_secret":"client_secret"},"id": "f749daaf-682e-4208-a38d-c9b43162c609", "type": "okta-accounts"}} + And body with value {"data": {"attributes": {"auth_method": "oauth", "domain": "https://example.okta.com/", "name": "{{ unique_lower_alnum }}", "client_id": "client_id", "client_secret":"client_secret"},"id": "f749daaf-682e-4208-a38d-c9b43162c609", "type": "okta-accounts"}} When the request is sent Then the response status is 201 OK - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Delete Okta account returns "Bad Request" response Given new "DeleteOktaAccount" request And request contains "account_id" parameter from "REPLACE.ME" When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Delete Okta account returns "Not Found" response Given new "DeleteOktaAccount" request And request contains "account_id" parameter from "REPLACE.ME" When the request is sent Then the response status is 404 Not Found - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Delete Okta account returns "OK" response Given new "DeleteOktaAccount" request And request contains "account_id" parameter from "REPLACE.ME" When the request is sent Then the response status is 204 OK - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Get Okta account returns "Bad Request" response Given new "GetOktaAccount" request And request contains "account_id" parameter from "REPLACE.ME" When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Get Okta account returns "Not Found" response Given new "GetOktaAccount" request And request contains "account_id" parameter from "REPLACE.ME" When the request is sent Then the response status is 404 Not Found - @team:Datadog/web-integrations + @team:DataDog/saas-integrations Scenario: Get Okta account returns "OK" response Given there is a valid "okta_account" in the system And new "GetOktaAccount" request @@ -72,26 +74,26 @@ Feature: Okta Integration Then the response status is 200 OK And the response "data.type" is equal to "okta-accounts" - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: List Okta accounts returns "Bad Request" response Given new "ListOktaAccounts" request When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: List Okta accounts returns "Not Found" response Given new "ListOktaAccounts" request When the request is sent Then the response status is 404 Not Found - @team:Datadog/web-integrations + @team:DataDog/saas-integrations Scenario: List Okta accounts returns "OK" response Given there is a valid "okta_account" in the system And new "ListOktaAccounts" request When the request is sent Then the response status is 200 OK - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Update Okta account returns "Bad Request" response Given new "UpdateOktaAccount" request And request contains "account_id" parameter from "REPLACE.ME" @@ -99,7 +101,7 @@ Feature: Okta Integration When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:Datadog/web-integrations + @generated @skip @team:DataDog/saas-integrations Scenario: Update Okta account returns "Not Found" response Given new "UpdateOktaAccount" request And request contains "account_id" parameter from "REPLACE.ME" @@ -107,7 +109,7 @@ Feature: Okta Integration When the request is sent Then the response status is 404 Not Found - @team:Datadog/web-integrations + @team:DataDog/saas-integrations Scenario: Update Okta account returns "OK" response Given there is a valid "okta_account" in the system And new "UpdateOktaAccount" request diff --git a/tests/scenarios/features/v2/openapi-spec.yaml b/tests/scenarios/features/v2/openapi-spec.yaml new file mode 100644 index 000000000..83047f617 --- /dev/null +++ b/tests/scenarios/features/v2/openapi-spec.yaml @@ -0,0 +1,10 @@ +info: + description: My API description. + title: My API +x-datadog: + teamHandle: API team +openapi: 3.0.0 +paths: + /api/my-api: + get: + description: An endpoint diff --git a/tests/scenarios/features/v2/organizations.feature b/tests/scenarios/features/v2/organizations.feature index 2778bb387..57045426f 100644 --- a/tests/scenarios/features/v2/organizations.feature +++ b/tests/scenarios/features/v2/organizations.feature @@ -20,7 +20,7 @@ Feature: Organizations When the request is sent Then the response status is 400 Bad Request - @skip-go @skip-java @skip-python @skip-ruby @skip-rust @skip-terraform-config @skip-typescript @skip-validation @team:DataDog/team-aaa-identity + @integration-only @skip-terraform-config @skip-validation @team:DataDog/team-aaa-identity Scenario: Upload IdP metadata returns "OK" response Given request contains "idp_file" parameter with value "fixtures/organizations/saml_configurations/valid_idp_metadata.xml" When the request is sent diff --git a/tests/scenarios/features/v2/powerpack.feature b/tests/scenarios/features/v2/powerpack.feature index b6d4b7701..31daf5b5f 100644 --- a/tests/scenarios/features/v2/powerpack.feature +++ b/tests/scenarios/features/v2/powerpack.feature @@ -1,9 +1,12 @@ @endpoint(powerpack) @endpoint(powerpack-v2) Feature: Powerpack - The powerpack endpoints allow you to: - Get a powerpack - Create a - powerpack - Delete a powerpack - Get a list of all powerpacks The Patch - and Delete API methods can only be performed on a powerpack by a user who - has the powerpack create permission for that specific powerpack. + The Powerpack endpoints allow you to: - Get a Powerpack - Create a + Powerpack - Delete a Powerpack - Get a list of all Powerpacks The Patch + and Delete API methods can only be performed on a Powerpack by a user who + has the powerpack create permission for that specific Powerpack. Read + [Scale Graphing Expertise with + Powerpacks](https://docs.datadoghq.com/dashboards/guide/powerpacks-best- + practices/) for more information. Background: Given a valid "apiKeyAuth" key in the system diff --git a/tests/scenarios/features/v2/processes.feature b/tests/scenarios/features/v2/processes.feature index b8aa114a5..0806c596f 100644 --- a/tests/scenarios/features/v2/processes.feature +++ b/tests/scenarios/features/v2/processes.feature @@ -1,7 +1,9 @@ @endpoint(processes) @endpoint(processes-v2) Feature: Processes The processes API allows you to query processes data for your - organization. + organization. See the [Live Processes + page](https://docs.datadoghq.com/infrastructure/process/) for more + information. Background: Given a valid "apiKeyAuth" key in the system diff --git a/tests/scenarios/features/v2/rum.feature b/tests/scenarios/features/v2/rum.feature index c008a272f..c89ef6aed 100644 --- a/tests/scenarios/features/v2/rum.feature +++ b/tests/scenarios/features/v2/rum.feature @@ -1,6 +1,9 @@ @endpoint(rum) @endpoint(rum-v2) Feature: RUM - Search or aggregate your RUM events over HTTP. + Manage your Real User Monitoring (RUM) applications, and search or + aggregate your RUM events over HTTP. See the [RUM & Session Replay + page](https://docs.datadoghq.com/real_user_monitoring/) for more + information Background: Given a valid "apiKeyAuth" key in the system diff --git a/tests/scenarios/features/v2/security_monitoring.feature b/tests/scenarios/features/v2/security_monitoring.feature index 2ed8263d9..b505f2a4f 100644 --- a/tests/scenarios/features/v2/security_monitoring.feature +++ b/tests/scenarios/features/v2/security_monitoring.feature @@ -1,6 +1,8 @@ @endpoint(security-monitoring) @endpoint(security-monitoring-v2) Feature: Security Monitoring - Detection rules for generating signals and listing of generated signals. + Create and manage your security rules, signals, filters, and more. See the + [Datadog Security page](https://docs.datadoghq.com/security/) for more + information. Background: Given a valid "apiKeyAuth" key in the system @@ -155,6 +157,30 @@ Feature: Security Monitoring And the response "data.attributes.exclusion_filters[0].name" is equal to "Exclude staging" And the response "data.attributes.exclusion_filters[0].query" is equal to "source:staging" + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Create a suppression rule returns "Bad Request" response + Given new "CreateSecurityMonitoringSuppression" request + And body with value {"data": {"attributes": {"description": "This rule suppresses low-severity signals in staging environments.", "enabled": true, "expiration_date": 1703187336000, "name": "Custom suppression", "rule_query": "type:log_detection source:cloudtrail", "suppression_query": "env:staging status:low"}, "type": "suppressions"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Create a suppression rule returns "Conflict" response + Given new "CreateSecurityMonitoringSuppression" request + And body with value {"data": {"attributes": {"description": "This rule suppresses low-severity signals in staging environments.", "enabled": true, "expiration_date": 1703187336000, "name": "Custom suppression", "rule_query": "type:log_detection source:cloudtrail", "suppression_query": "env:staging status:low"}, "type": "suppressions"}} + When the request is sent + Then the response status is 409 Conflict + + @team:DataDog/k9-cloud-security-platform + Scenario: Create a suppression rule returns "OK" response + Given new "CreateSecurityMonitoringSuppression" request + And body with value {"data": {"attributes": {"description": "This rule suppresses low-severity signals in staging environments.", "enabled": true, "expiration_date": 1703187336000, "name": "{{ unique }}", "rule_query": "type:log_detection source:cloudtrail", "suppression_query": "env:staging status:low"}, "type": "suppressions"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "suppressions" + And the response "data.attributes.enabled" is equal to true + And the response "data.attributes.rule_query" is equal to "type:log_detection source:cloudtrail" + @skip @team:DataDog/k9-cloud-security-platform Scenario: Delete a non existing rule returns "Not Found" response Given new "DeleteSecurityMonitoringRule" request @@ -184,6 +210,21 @@ Feature: Security Monitoring When the request is sent Then the response status is 204 OK + @skip @team:DataDog/k9-cloud-security-platform + Scenario: Delete a suppression rule returns "Not Found" response + Given new "DeleteSecurityMonitoringSuppression" request + And request contains "suppression_id" parameter with value "does-not-exist" + When the request is sent + Then the response status is 404 Not Found + + @team:DataDog/k9-cloud-security-platform + Scenario: Delete a suppression rule returns "OK" response + Given there is a valid "suppression" in the system + And new "DeleteSecurityMonitoringSuppression" request + And request contains "suppression_id" parameter from "suppression.data.id" + When the request is sent + Then the response status is 204 OK + @generated @skip @team:DataDog/k9-cloud-security-platform Scenario: Delete an existing rule returns "Not Found" response Given new "DeleteSecurityMonitoringRule" request @@ -327,6 +368,23 @@ Feature: Security Monitoring When the request is sent Then the response status is 200 OK + @team:DataDog/k9-cloud-security-platform + Scenario: Get a suppression rule returns "Not Found" response + Given new "GetSecurityMonitoringSuppression" request + And request contains "suppression_id" parameter with value "this-does-not-exist" + When the request is sent + Then the response status is 404 Not Found + + @team:DataDog/k9-cloud-security-platform + Scenario: Get a suppression rule returns "OK" response + Given new "GetSecurityMonitoringSuppression" request + And there is a valid "suppression" in the system + And request contains "suppression_id" parameter from "suppression.data.id" + When the request is sent + Then the response status is 200 OK + And the response "data.attributes.rule_query" has the same value as "suppression.data.attributes.rule_query" + And the response "data.attributes.suppression_query" is equal to "env:test" + @team:DataDog/k9-cloud-security-platform Scenario: Get all security filters returns "OK" response Given new "ListSecurityFilters" request @@ -335,6 +393,12 @@ Feature: Security Monitoring And the response "data" has item with field "attributes.filtered_data_type" with value "logs" And the response "data" has item with field "attributes.is_builtin" with value true + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Get all suppression rules returns "OK" response + Given new "ListSecurityMonitoringSuppressions" request + When the request is sent + Then the response status is 200 OK + @generated @skip @team:DataDog/cloud-security-posture-management Scenario: List findings returns "Bad Request: The server cannot process the request due to invalid syntax in the request." response Given operation "ListFindings" enabled @@ -479,6 +543,42 @@ Feature: Security Monitoring And the response "data.attributes.filtered_data_type" is equal to "logs" And the response "data.attributes.name" is equal to "{{ unique }}" + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Update a suppression rule returns "Bad Request" response + Given new "UpdateSecurityMonitoringSuppression" request + And request contains "suppression_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"description": "This rule suppresses low-severity signals in staging environments.", "enabled": true, "expiration_date": 1703187336000, "name": "Custom suppression", "rule_query": "type:log_detection source:cloudtrail", "suppression_query": "env:staging status:low"}, "type": "suppressions"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Update a suppression rule returns "Concurrent Modification" response + Given new "UpdateSecurityMonitoringSuppression" request + And request contains "suppression_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"description": "This rule suppresses low-severity signals in staging environments.", "enabled": true, "expiration_date": 1703187336000, "name": "Custom suppression", "rule_query": "type:log_detection source:cloudtrail", "suppression_query": "env:staging status:low"}, "type": "suppressions"}} + When the request is sent + Then the response status is 409 Concurrent Modification + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Update a suppression rule returns "Not Found" response + Given new "UpdateSecurityMonitoringSuppression" request + And request contains "suppression_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"description": "This rule suppresses low-severity signals in staging environments.", "enabled": true, "expiration_date": 1703187336000, "name": "Custom suppression", "rule_query": "type:log_detection source:cloudtrail", "suppression_query": "env:staging status:low"}, "type": "suppressions"}} + When the request is sent + Then the response status is 404 Not Found + + @team:DataDog/k9-cloud-security-platform + Scenario: Update a suppression rule returns "OK" response + Given new "UpdateSecurityMonitoringSuppression" request + And there is a valid "suppression" in the system + And request contains "suppression_id" parameter from "suppression.data.id" + And body with value {"data": {"attributes": {"suppression_query": "env:staging status:low"}, "type": "suppressions"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "suppressions" + And the response "data.attributes.suppression_query" is equal to "env:staging status:low" + And the response "data.attributes.version" is equal to 2 + @skip-validation @team:DataDog/k9-cloud-security-platform Scenario: Update an existing rule returns "Bad Request" response Given new "UpdateSecurityMonitoringRule" request @@ -506,3 +606,17 @@ Feature: Security Monitoring Then the response status is 200 OK And the response "name" is equal to "{{ unique }}-Updated" And the response "id" has the same value as "security_rule.id" + + @skip-go @skip-java @skip-python @skip-ruby @skip-rust @skip-typescript @skip-validation @team:DataDog/k9-cloud-security-platform + Scenario: Validate a detection rule returns "Bad Request" response + Given new "ValidateSecurityMonitoringRule" request + And body with value {"cases":[{"name":"","status":"info","notifications":[],"condition":"a > 0"}],"hasExtendedTitle":true,"isEnabled":true,"message":"My security monitoring rule","name":"My security monitoring rule","options":{"evaluationWindow":1800,"keepAlive":999999,"maxSignalDuration":1800,"detectionMethod":"threshold"},"queries":[{"query":"source:source_here","groupByFields":["@userIdentity.assumed_role"],"distinctFields":[],"aggregation":"count","name":""}],"tags":["env:prod","team:security"],"type":"log_detection"} + When the request is sent + Then the response status is 400 Bad Request + + @team:DataDog/k9-cloud-security-platform + Scenario: Validate a detection rule returns "OK" response + Given new "ValidateSecurityMonitoringRule" request + And body with value {"cases":[{"name":"","status":"info","notifications":[],"condition":"a > 0"}],"hasExtendedTitle":true,"isEnabled":true,"message":"My security monitoring rule","name":"My security monitoring rule","options":{"evaluationWindow":1800,"keepAlive":1800,"maxSignalDuration":1800,"detectionMethod":"threshold"},"queries":[{"query":"source:source_here","groupByFields":["@userIdentity.assumed_role"],"distinctFields":[],"aggregation":"count","name":""}],"tags":["env:prod","team:security"],"type":"log_detection"} + When the request is sent + Then the response status is 204 OK diff --git a/tests/scenarios/features/v2/sensitive_data_scanner.feature b/tests/scenarios/features/v2/sensitive_data_scanner.feature index 8513e27ce..dd708c38a 100644 --- a/tests/scenarios/features/v2/sensitive_data_scanner.feature +++ b/tests/scenarios/features/v2/sensitive_data_scanner.feature @@ -1,21 +1,23 @@ @endpoint(sensitive-data-scanner) @endpoint(sensitive-data-scanner-v2) @endpoint(sensitivedatascanner) @endpoint(sensitivedatascanner-v2) Feature: Sensitive Data Scanner Create, update, delete, and retrieve sensitive data scanner groups and - rules. + rules. See the [Sensitive Data Scanner + page](https://docs.datadoghq.com/sensitive_data_scanner/) for more + information. Background: Given a valid "apiKeyAuth" key in the system And a valid "appKeyAuth" key in the system And an instance of "SensitiveDataScanner" API - @generated @skip @team:DataDog/logs-app @team:DataDog/logs-core + @generated @skip @team:DataDog/logs-app @team:DataDog/sensitive-data-scanner Scenario: Create Scanning Group returns "Bad Request" response Given new "CreateScanningGroup" request And body with value {"data": {"attributes": {"filter": {}, "product_list": ["logs"]}, "relationships": {"configuration": {"data": {"type": "sensitive_data_scanner_configuration"}}, "rules": {"data": [{"type": "sensitive_data_scanner_rule"}]}}, "type": "sensitive_data_scanner_group"}, "meta": {"version": 0}} When the request is sent Then the response status is 400 Bad Request - @team:DataDog/logs-app @team:DataDog/logs-core + @team:DataDog/logs-app @team:DataDog/sensitive-data-scanner Scenario: Create Scanning Group returns "OK" response Given a valid "configuration" in the system And new "CreateScanningGroup" request @@ -25,7 +27,7 @@ Feature: Sensitive Data Scanner And the response "data.type" is equal to "sensitive_data_scanner_group" And the response "data.attributes.name" is equal to "{{ unique }}" - @team:DataDog/logs-app @team:DataDog/logs-core + @team:DataDog/logs-app @team:DataDog/sensitive-data-scanner Scenario: Create Scanning Rule returns "Bad Request" response Given a valid "configuration" in the system And there is a valid "scanning_group" in the system @@ -34,19 +36,21 @@ Feature: Sensitive Data Scanner When the request is sent Then the response status is 400 Bad Request - @team:DataDog/logs-app @team:DataDog/logs-core + @team:DataDog/logs-app @team:DataDog/sensitive-data-scanner Scenario: Create Scanning Rule returns "OK" response Given a valid "configuration" in the system And there is a valid "scanning_group" in the system And new "CreateScanningRule" request - And body with value {"meta":{},"data":{"type":"sensitive_data_scanner_rule","attributes":{"name":"{{ unique }}","pattern":"pattern", "namespaces": ["admin"], "excluded_namespaces": ["admin.name"], "text_replacement":{"type":"none"},"tags":["sensitive_data:true"],"is_enabled":true,"priority":1},"relationships":{"group":{"data":{"type":"{{ group.data.type }}","id":"{{ group.data.id }}"}}}}} + And body with value {"meta":{},"data":{"type":"sensitive_data_scanner_rule","attributes":{"name":"{{ unique }}","pattern":"pattern", "namespaces": ["admin"], "excluded_namespaces": ["admin.name"], "text_replacement":{"type":"none"},"tags":["sensitive_data:true"],"is_enabled":true,"priority":1,"included_keyword_configuration":{"keywords":["credit card"],"character_count":35}},"relationships":{"group":{"data":{"type":"{{ group.data.type }}","id":"{{ group.data.id }}"}}}}} When the request is sent Then the response status is 200 OK And the response "data.type" is equal to "sensitive_data_scanner_rule" And the response "data.attributes.name" is equal to "{{ unique }}" And the response "data.attributes.pattern" is equal to "pattern" + And the response "data.attributes.included_keyword_configuration.character_count" is equal to 35 + And the response "data.attributes.included_keyword_configuration.keywords[0]" is equal to "credit card" - @generated @skip @team:DataDog/logs-app @team:DataDog/logs-core + @generated @skip @team:DataDog/logs-app @team:DataDog/sensitive-data-scanner Scenario: Delete Scanning Group returns "Bad Request" response Given new "DeleteScanningGroup" request And request contains "group_id" parameter from "REPLACE.ME" @@ -54,7 +58,7 @@ Feature: Sensitive Data Scanner When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:DataDog/logs-app @team:DataDog/logs-core + @generated @skip @team:DataDog/logs-app @team:DataDog/sensitive-data-scanner Scenario: Delete Scanning Group returns "Not Found" response Given new "DeleteScanningGroup" request And request contains "group_id" parameter from "REPLACE.ME" @@ -62,7 +66,7 @@ Feature: Sensitive Data Scanner When the request is sent Then the response status is 404 Not Found - @team:DataDog/logs-app @team:DataDog/logs-core + @team:DataDog/logs-app @team:DataDog/sensitive-data-scanner Scenario: Delete Scanning Group returns "OK" response Given a valid "configuration" in the system And there is a valid "scanning_group" in the system @@ -72,7 +76,7 @@ Feature: Sensitive Data Scanner When the request is sent Then the response status is 200 OK - @generated @skip @team:DataDog/logs-app @team:DataDog/logs-core + @generated @skip @team:DataDog/logs-app @team:DataDog/sensitive-data-scanner Scenario: Delete Scanning Rule returns "Bad Request" response Given new "DeleteScanningRule" request And request contains "rule_id" parameter from "REPLACE.ME" @@ -80,7 +84,7 @@ Feature: Sensitive Data Scanner When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:DataDog/logs-app @team:DataDog/logs-core + @generated @skip @team:DataDog/logs-app @team:DataDog/sensitive-data-scanner Scenario: Delete Scanning Rule returns "Not Found" response Given new "DeleteScanningRule" request And request contains "rule_id" parameter from "REPLACE.ME" @@ -88,7 +92,7 @@ Feature: Sensitive Data Scanner When the request is sent Then the response status is 404 Not Found - @team:DataDog/logs-app @team:DataDog/logs-core + @team:DataDog/logs-app @team:DataDog/sensitive-data-scanner Scenario: Delete Scanning Rule returns "OK" response Given a valid "configuration" in the system And there is a valid "scanning_group" in the system @@ -99,13 +103,13 @@ Feature: Sensitive Data Scanner When the request is sent Then the response status is 200 OK - @generated @skip @team:DataDog/logs-app @team:DataDog/logs-core + @generated @skip @team:DataDog/logs-app @team:DataDog/sensitive-data-scanner Scenario: List Scanning Groups returns "Bad Request" response Given new "ListScanningGroups" request When the request is sent Then the response status is 400 Bad Request - @team:DataDog/logs-app @team:DataDog/logs-core + @team:DataDog/logs-app @team:DataDog/sensitive-data-scanner Scenario: List Scanning Groups returns "OK" response Given a valid "configuration" in the system And there is a valid "scanning_group" in the system @@ -114,19 +118,19 @@ Feature: Sensitive Data Scanner Then the response status is 200 OK And the response "included" has item with field "id" with value "{{ group.data.id }}" - @generated @skip @team:DataDog/logs-app @team:DataDog/logs-core + @generated @skip @team:DataDog/logs-app @team:DataDog/sensitive-data-scanner Scenario: List standard patterns returns "Bad Request" response Given new "ListStandardPatterns" request When the request is sent Then the response status is 400 Bad Request - @team:DataDog/logs-app @team:DataDog/logs-core + @integration-only @team:DataDog/logs-app @team:DataDog/sensitive-data-scanner Scenario: List standard patterns returns "OK" response Given new "ListStandardPatterns" request When the request is sent Then the response status is 200 OK - @team:DataDog/logs-app @team:DataDog/logs-core + @team:DataDog/logs-app @team:DataDog/sensitive-data-scanner Scenario: Reorder Groups returns "Bad Request" response Given a valid "configuration" in the system And there is a valid "scanning_group" in the system @@ -135,7 +139,7 @@ Feature: Sensitive Data Scanner When the request is sent Then the response status is 400 Bad Request - @replay-only @team:DataDog/logs-app @team:DataDog/logs-core + @replay-only @team:DataDog/logs-app @team:DataDog/sensitive-data-scanner Scenario: Reorder Groups returns "OK" response Given a valid "configuration" in the system And there is a valid "scanning_group" in the system @@ -144,7 +148,7 @@ Feature: Sensitive Data Scanner When the request is sent Then the response status is 200 OK - @generated @skip @team:DataDog/logs-app @team:DataDog/logs-core + @generated @skip @team:DataDog/logs-app @team:DataDog/sensitive-data-scanner Scenario: Update Scanning Group returns "Bad Request" response Given new "UpdateScanningGroup" request And request contains "group_id" parameter from "REPLACE.ME" @@ -152,7 +156,7 @@ Feature: Sensitive Data Scanner When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:DataDog/logs-app @team:DataDog/logs-core + @generated @skip @team:DataDog/logs-app @team:DataDog/sensitive-data-scanner Scenario: Update Scanning Group returns "Not Found" response Given new "UpdateScanningGroup" request And request contains "group_id" parameter from "REPLACE.ME" @@ -160,7 +164,7 @@ Feature: Sensitive Data Scanner When the request is sent Then the response status is 404 Not Found - @team:DataDog/logs-app @team:DataDog/logs-core + @team:DataDog/logs-app @team:DataDog/sensitive-data-scanner Scenario: Update Scanning Group returns "OK" response Given a valid "configuration" in the system And there is a valid "scanning_group" in the system @@ -170,7 +174,7 @@ Feature: Sensitive Data Scanner When the request is sent Then the response status is 200 OK - @team:DataDog/logs-app @team:DataDog/logs-core + @team:DataDog/logs-app @team:DataDog/sensitive-data-scanner Scenario: Update Scanning Rule returns "Bad Request" response Given a valid "configuration" in the system And there is a valid "scanning_group" in the system @@ -181,21 +185,21 @@ Feature: Sensitive Data Scanner When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:DataDog/logs-app @team:DataDog/logs-core + @generated @skip @team:DataDog/logs-app @team:DataDog/sensitive-data-scanner Scenario: Update Scanning Rule returns "Not Found" response Given new "UpdateScanningRule" request And request contains "rule_id" parameter from "REPLACE.ME" - And body with value {"data": {"attributes": {"excluded_namespaces": ["admin.name"], "namespaces": ["admin"], "tags": [], "text_replacement": {"type": "none"}}, "relationships": {"group": {"data": {"type": "sensitive_data_scanner_group"}}, "standard_pattern": {"data": {"type": "sensitive_data_scanner_standard_pattern"}}}, "type": "sensitive_data_scanner_rule"}, "meta": {"version": 0}} + And body with value {"data": {"attributes": {"excluded_namespaces": ["admin.name"], "included_keyword_configuration": {"character_count": 30, "keywords": ["credit card", "cc"]}, "namespaces": ["admin"], "tags": [], "text_replacement": {"type": "none"}}, "relationships": {"group": {"data": {"type": "sensitive_data_scanner_group"}}, "standard_pattern": {"data": {"type": "sensitive_data_scanner_standard_pattern"}}}, "type": "sensitive_data_scanner_rule"}, "meta": {"version": 0}} When the request is sent Then the response status is 404 Not Found - @team:DataDog/logs-app @team:DataDog/logs-core + @team:DataDog/logs-app @team:DataDog/sensitive-data-scanner Scenario: Update Scanning Rule returns "OK" response Given a valid "configuration" in the system And there is a valid "scanning_group" in the system And the "scanning_group" has a "scanning_rule" And new "UpdateScanningRule" request And request contains "rule_id" parameter from "rule.data.id" - And body with value {"meta":{},"data":{"id": "{{ rule.data.id }}", "type":"sensitive_data_scanner_rule","attributes":{"name":"{{ unique }}","pattern":"pattern","text_replacement":{"type":"none"},"tags":["sensitive_data:true"],"is_enabled":true,"priority":5},"relationships":{"group":{"data":{"type":"{{ group.data.type }}","id":"{{ group.data.id }}"}}}}} + And body with value {"meta":{},"data":{"id": "{{ rule.data.id }}", "type":"sensitive_data_scanner_rule","attributes":{"name":"{{ unique }}","pattern":"pattern","text_replacement":{"type":"none"},"tags":["sensitive_data:true"],"is_enabled":true,"priority":5,"included_keyword_configuration": {"keywords": ["credit card", "cc"], "character_count":35}}}} When the request is sent Then the response status is 200 OK diff --git a/tests/scenarios/features/v2/service_accounts.feature b/tests/scenarios/features/v2/service_accounts.feature index c41493e18..6e25db1e8 100644 --- a/tests/scenarios/features/v2/service_accounts.feature +++ b/tests/scenarios/features/v2/service_accounts.feature @@ -1,6 +1,8 @@ @endpoint(service-accounts) @endpoint(service-accounts-v2) Feature: Service Accounts - Create, edit, and disable service accounts. + Create, edit, and disable service accounts. See the [Service Accounts page + ](https://docs.datadoghq.com/account_management/org_settings/service_accou + nts/) for more information. Background: Given a valid "apiKeyAuth" key in the system diff --git a/tests/scenarios/features/v2/service_definition.feature b/tests/scenarios/features/v2/service_definition.feature index b7de3667d..5c74a74b3 100644 --- a/tests/scenarios/features/v2/service_definition.feature +++ b/tests/scenarios/features/v2/service_definition.feature @@ -10,21 +10,21 @@ Feature: Service Definition @generated @skip @team:DataDog/service-catalog Scenario: Create or update service definition returns "Bad Request" response Given new "CreateOrUpdateServiceDefinitions" request - And body with value {"application": "my-app", "contacts": [{"contact": "https://teams.microsoft.com/myteam", "name": "My team channel", "type": "slack"}], "dd-service": "my-service", "description": "My service description", "extensions": {"myorg/extension": "extensionValue"}, "integrations": {"opsgenie": {"region": "US", "service-url": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000"}, "pagerduty": {"service-url": "https://my-org.pagerduty.com/service-directory/PMyService"}}, "languages": ["dotnet", "go", "java", "js", "php", "python", "ruby", "c++"], "lifecycle": "sandbox", "links": [{"name": "Runbook", "provider": "Github", "type": "runbook", "url": "https://my-runbook"}], "schema-version": "v2.2", "tags": ["my:tag", "service:tag"], "team": "my-team", "tier": "High", "type": "web"} + And body with value {"application": "my-app", "ci-pipeline-fingerprints": ["j88xdEy0J5lc", "eZ7LMljCk8vo"], "contacts": [{"contact": "https://teams.microsoft.com/myteam", "name": "My team channel", "type": "slack"}], "dd-service": "my-service", "description": "My service description", "extensions": {"myorg/extension": "extensionValue"}, "integrations": {"opsgenie": {"region": "US", "service-url": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000"}, "pagerduty": {"service-url": "https://my-org.pagerduty.com/service-directory/PMyService"}}, "languages": ["dotnet", "go", "java", "js", "php", "python", "ruby", "c++"], "lifecycle": "sandbox", "links": [{"name": "Runbook", "provider": "Github", "type": "runbook", "url": "https://my-runbook"}], "schema-version": "v2.2", "tags": ["my:tag", "service:tag"], "team": "my-team", "tier": "High", "type": "web"} When the request is sent Then the response status is 400 Bad Request @generated @skip @team:DataDog/service-catalog Scenario: Create or update service definition returns "CREATED" response Given new "CreateOrUpdateServiceDefinitions" request - And body with value {"application": "my-app", "contacts": [{"contact": "https://teams.microsoft.com/myteam", "name": "My team channel", "type": "slack"}], "dd-service": "my-service", "description": "My service description", "extensions": {"myorg/extension": "extensionValue"}, "integrations": {"opsgenie": {"region": "US", "service-url": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000"}, "pagerduty": {"service-url": "https://my-org.pagerduty.com/service-directory/PMyService"}}, "languages": ["dotnet", "go", "java", "js", "php", "python", "ruby", "c++"], "lifecycle": "sandbox", "links": [{"name": "Runbook", "provider": "Github", "type": "runbook", "url": "https://my-runbook"}], "schema-version": "v2.2", "tags": ["my:tag", "service:tag"], "team": "my-team", "tier": "High", "type": "web"} + And body with value {"application": "my-app", "ci-pipeline-fingerprints": ["j88xdEy0J5lc", "eZ7LMljCk8vo"], "contacts": [{"contact": "https://teams.microsoft.com/myteam", "name": "My team channel", "type": "slack"}], "dd-service": "my-service", "description": "My service description", "extensions": {"myorg/extension": "extensionValue"}, "integrations": {"opsgenie": {"region": "US", "service-url": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000"}, "pagerduty": {"service-url": "https://my-org.pagerduty.com/service-directory/PMyService"}}, "languages": ["dotnet", "go", "java", "js", "php", "python", "ruby", "c++"], "lifecycle": "sandbox", "links": [{"name": "Runbook", "provider": "Github", "type": "runbook", "url": "https://my-runbook"}], "schema-version": "v2.2", "tags": ["my:tag", "service:tag"], "team": "my-team", "tier": "High", "type": "web"} When the request is sent Then the response status is 200 CREATED @generated @skip @team:DataDog/service-catalog Scenario: Create or update service definition returns "Conflict" response Given new "CreateOrUpdateServiceDefinitions" request - And body with value {"application": "my-app", "contacts": [{"contact": "https://teams.microsoft.com/myteam", "name": "My team channel", "type": "slack"}], "dd-service": "my-service", "description": "My service description", "extensions": {"myorg/extension": "extensionValue"}, "integrations": {"opsgenie": {"region": "US", "service-url": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000"}, "pagerduty": {"service-url": "https://my-org.pagerduty.com/service-directory/PMyService"}}, "languages": ["dotnet", "go", "java", "js", "php", "python", "ruby", "c++"], "lifecycle": "sandbox", "links": [{"name": "Runbook", "provider": "Github", "type": "runbook", "url": "https://my-runbook"}], "schema-version": "v2.2", "tags": ["my:tag", "service:tag"], "team": "my-team", "tier": "High", "type": "web"} + And body with value {"application": "my-app", "ci-pipeline-fingerprints": ["j88xdEy0J5lc", "eZ7LMljCk8vo"], "contacts": [{"contact": "https://teams.microsoft.com/myteam", "name": "My team channel", "type": "slack"}], "dd-service": "my-service", "description": "My service description", "extensions": {"myorg/extension": "extensionValue"}, "integrations": {"opsgenie": {"region": "US", "service-url": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000"}, "pagerduty": {"service-url": "https://my-org.pagerduty.com/service-directory/PMyService"}}, "languages": ["dotnet", "go", "java", "js", "php", "python", "ruby", "c++"], "lifecycle": "sandbox", "links": [{"name": "Runbook", "provider": "Github", "type": "runbook", "url": "https://my-runbook"}], "schema-version": "v2.2", "tags": ["my:tag", "service:tag"], "team": "my-team", "tier": "High", "type": "web"} When the request is sent Then the response status is 409 Conflict diff --git a/tests/scenarios/features/v2/service_scorecards.feature b/tests/scenarios/features/v2/service_scorecards.feature index 8d17ab585..e772aeeb4 100644 --- a/tests/scenarios/features/v2/service_scorecards.feature +++ b/tests/scenarios/features/v2/service_scorecards.feature @@ -1,8 +1,9 @@ @endpoint(service-scorecards) @endpoint(service-scorecards-v2) Feature: Service Scorecards - API to create, update scorecard rules and outcomes. This feature is - currently in BETA. If you have any feedback, contact [Datadog - support](https://docs.datadoghq.com/help/). + API to create, update scorecard rules and outcomes. See [Service + Scorecards](https://docs.datadoghq.com/service_catalog/scorecards) for + more information. This feature is currently in BETA. If you have any + feedback, contact [Datadog support](https://docs.datadoghq.com/help/). Background: Given a valid "apiKeyAuth" key in the system diff --git a/tests/scenarios/features/v2/spans_metrics.feature b/tests/scenarios/features/v2/spans_metrics.feature index ef3394efd..9de01b47e 100644 --- a/tests/scenarios/features/v2/spans_metrics.feature +++ b/tests/scenarios/features/v2/spans_metrics.feature @@ -2,7 +2,8 @@ Feature: Spans Metrics Manage configuration of [span-based metrics](https://app.datadoghq.com/apm/traces/generate-metrics) for your - organization. + organization. See [Generate Metrics from Spans](https://docs.datadoghq.com + /tracing/trace_pipeline/generate_metrics/) for more information. Background: Given a valid "apiKeyAuth" key in the system diff --git a/tests/scenarios/features/v2/teams.feature b/tests/scenarios/features/v2/teams.feature index c59a3a365..5d4069034 100644 --- a/tests/scenarios/features/v2/teams.feature +++ b/tests/scenarios/features/v2/teams.feature @@ -1,6 +1,8 @@ @endpoint(team) @endpoint(team-v2) @endpoint(teams) @endpoint(teams-v2) Feature: Teams - View and manage teams within Datadog. + View and manage teams within Datadog. See the [Teams + page](https://docs.datadoghq.com/account_management/teams/) for more + information. Background: Given a valid "apiKeyAuth" key in the system @@ -129,6 +131,7 @@ Feature: Teams @team:DataDog/core-app Scenario: Get all teams with fields_team parameter returns "OK" response Given new "ListTeams" request + And there is a valid "dd_team" in the system And request contains "fields[team]" parameter with value ["id", "name", "handle"] When the request is sent Then the response status is 200 OK @@ -181,6 +184,15 @@ Feature: Teams When the request is sent Then the response status is 200 Represents a user's association to a team + @replay-only @skip-validation @team:DataDog/core-app @with-pagination + Scenario: Get team memberships returns "Represents a user's association to a team" response with pagination + Given new "GetTeamMemberships" request + And request contains "team_id" parameter with value "2e06bf2c-193b-41d4-b3c2-afccc080458f" + And request contains "page[size]" parameter with value 2 + When the request with pagination is sent + Then the response status is 200 OK + And the response has 3 items + @generated @skip @team:DataDog/core-app Scenario: Get user memberships returns "API error response." response Given new "GetUserMemberships" request diff --git a/tests/scenarios/features/v2/undo.json b/tests/scenarios/features/v2/undo.json index d4ee6f5c8..8fdb1cd7b 100644 --- a/tests/scenarios/features/v2/undo.json +++ b/tests/scenarios/features/v2/undo.json @@ -36,6 +36,37 @@ "type": "idempotent" } }, + "DeleteOpenAPI": { + "tag": "API Management", + "undo": { + "type": "idempotent" + } + }, + "GetOpenAPI": { + "tag": "API Management", + "undo": { + "type": "safe" + } + }, + "UpdateOpenAPI": { + "tag": "API Management", + "undo": { + "type": "idempotent" + } + }, + "CreateOpenAPI": { + "tag": "API Management", + "undo": { + "operationId": "DeleteOpenAPI", + "parameters": [ + { + "name": "id", + "source": "data.id" + } + ], + "type": "unsafe" + } + }, "ListSpansMetrics": { "tag": "Spans Metrics", "undo": { @@ -189,6 +220,91 @@ "type": "idempotent" } }, + "SearchCases": { + "tag": "Case Management", + "undo": { + "type": "safe" + } + }, + "CreateCase": { + "tag": "Case Management", + "undo": { + "type": "safe" + } + }, + "GetProjects": { + "tag": "Case Management", + "undo": { + "type": "safe" + } + }, + "CreateProject": { + "tag": "Case Management", + "undo": { + "operationId": "DeleteProject", + "parameters": [ + { + "name": "project_id", + "source": "data.id" + } + ], + "type": "unsafe" + } + }, + "DeleteProject": { + "tag": "Case Management", + "undo": { + "type": "idempotent" + } + }, + "GetProject": { + "tag": "Case Management", + "undo": { + "type": "safe" + } + }, + "GetCase": { + "tag": "Case Management", + "undo": { + "type": "safe" + } + }, + "ArchiveCase": { + "tag": "Case Management", + "undo": { + "type": "idempotent" + } + }, + "AssignCase": { + "tag": "Case Management", + "undo": { + "type": "idempotent" + } + }, + "UpdatePriority": { + "tag": "Case Management", + "undo": { + "type": "idempotent" + } + }, + "UpdateStatus": { + "tag": "Case Management", + "undo": { + "type": "idempotent" + } + }, + "UnarchiveCase": { + "tag": "Case Management", + "undo": { + "type": "idempotent" + } + }, + "UnassignCase": { + "tag": "Case Management", + "undo": { + "type": "idempotent" + } + }, "CreateCIAppPipelineEvent": { "tag": "CI Visibility Pipelines", "undo": { @@ -960,6 +1076,43 @@ "type": "unsafe" } }, + "ListLogsCustomDestinations": { + "tag": "Logs Custom Destinations", + "undo": { + "type": "safe" + } + }, + "CreateLogsCustomDestination": { + "tag": "Logs Custom Destinations", + "undo": { + "operationId": "DeleteLogsCustomDestination", + "parameters": [ + { + "name": "custom_destination_id", + "source": "data.id" + } + ], + "type": "unsafe" + } + }, + "DeleteLogsCustomDestination": { + "tag": "Logs Custom Destinations", + "undo": { + "type": "idempotent" + } + }, + "GetLogsCustomDestination": { + "tag": "Logs Custom Destinations", + "undo": { + "type": "safe" + } + }, + "UpdateLogsCustomDestination": { + "tag": "Logs Custom Destinations", + "undo": { + "type": "idempotent" + } + }, "ListLogsMetrics": { "tag": "Logs Metrics", "undo": { @@ -1046,6 +1199,12 @@ "type": "safe" } }, + "ListMetricAssets": { + "tag": "Metrics", + "undo": { + "type": "safe" + } + }, "EstimateMetricsOutputSeries": { "tag": "Metrics", "undo": { @@ -1211,6 +1370,49 @@ "type": "idempotent" } }, + "ListCSMThreatsAgentRules": { + "tag": "Cloud Workload Security", + "undo": { + "type": "safe" + } + }, + "CreateCSMThreatsAgentRule": { + "tag": "Cloud Workload Security", + "undo": { + "operationId": "DeleteCSMThreatsAgentRule", + "parameters": [ + { + "name": "agent_rule_id", + "source": "data.id" + } + ], + "type": "unsafe" + } + }, + "DeleteCSMThreatsAgentRule": { + "tag": "Cloud Workload Security", + "undo": { + "type": "idempotent" + } + }, + "GetCSMThreatsAgentRule": { + "tag": "Cloud Workload Security", + "undo": { + "type": "safe" + } + }, + "UpdateCSMThreatsAgentRule": { + "tag": "Cloud Workload Security", + "undo": { + "type": "idempotent" + } + }, + "DownloadCSMThreatsPolicy": { + "tag": "Cloud Workload Security", + "undo": { + "type": "safe" + } + }, "DeleteRestrictionPolicy": { "tag": "Restriction Policies", "undo": { @@ -1493,6 +1695,43 @@ "type": "idempotent" } }, + "ListSecurityMonitoringSuppressions": { + "tag": "Security Monitoring", + "undo": { + "type": "safe" + } + }, + "CreateSecurityMonitoringSuppression": { + "tag": "Security Monitoring", + "undo": { + "operationId": "DeleteSecurityMonitoringSuppression", + "parameters": [ + { + "name": "suppression_id", + "source": "data.id" + } + ], + "type": "unsafe" + } + }, + "DeleteSecurityMonitoringSuppression": { + "tag": "Security Monitoring", + "undo": { + "type": "idempotent" + } + }, + "GetSecurityMonitoringSuppression": { + "tag": "Security Monitoring", + "undo": { + "type": "safe" + } + }, + "UpdateSecurityMonitoringSuppression": { + "tag": "Security Monitoring", + "undo": { + "type": "idempotent" + } + }, "ListSecurityMonitoringRules": { "tag": "Security Monitoring", "undo": { @@ -1512,6 +1751,12 @@ "type": "unsafe" } }, + "ValidateSecurityMonitoringRule": { + "tag": "Security Monitoring", + "undo": { + "type": "idempotent" + } + }, "DeleteSecurityMonitoringRule": { "tag": "Security Monitoring", "undo": { diff --git a/tests/scenarios/features/v2/usage_metering.feature b/tests/scenarios/features/v2/usage_metering.feature index 7a84a90e2..e29c1d396 100644 --- a/tests/scenarios/features/v2/usage_metering.feature +++ b/tests/scenarios/features/v2/usage_metering.feature @@ -7,7 +7,9 @@ Feature: Usage Metering **Note**: Usage data is delayed by up to 72 hours from when it was incurred. It is retained for 15 months. You can retrieve up to 24 hours of hourly usage data for multiple organizations, and up to two months of - hourly usage data for a single organization in one request. + hourly usage data for a single organization in one request. Learn more on + the [usage details documentation](https://docs.datadoghq.com/account_manag + ement/billing/usage_details/). Background: Given a valid "apiKeyAuth" key in the system @@ -117,13 +119,23 @@ Feature: Usage Metering Then the response status is 400 Bad Request @team:DataDog/red-zone-revenue-query - Scenario: Get hourly usage for Lambda Traced Invocations returns "Bad Request" response + Scenario: Get hourly usage for Lambda traced invocations returns "Bad Request" response Given new "GetUsageLambdaTracedInvocations" request And request contains "start_hr" parameter with value "{{ timeISO('now - 3d') }}" And request contains "end_hr" parameter with value "{{ timeISO('now - 5d') }}" When the request is sent Then the response status is 400 Bad Request + @team:DataDog/red-zone-revenue-query + Scenario: Get hourly usage for Lambda traced invocations returns "OK" response + Given new "GetUsageLambdaTracedInvocations" request + And request contains "start_hr" parameter with value "{{ timeISO('now - 5d') }}" + And request contains "end_hr" parameter with value "{{ timeISO('now - 3d') }}" + When the request is sent + Then the response status is 200 OK + And the response "data[0].type" is equal to "usage_timeseries" + And the response "data[0].attributes.product_family" is equal to "lambda-traced-invocations" + @team:DataDog/red-zone-revenue-query Scenario: Get hourly usage for Observability Pipelines returns "Bad Request" response Given new "GetUsageObservabilityPipelines" request @@ -149,23 +161,6 @@ Feature: Usage Metering And the response "data[0].type" is equal to "usage_timeseries" And the response "data[0].attributes.product_family" is equal to "app-sec" - @generated @skip @team:DataDog/red-zone-revenue-query - Scenario: Get hourly usage for lambda traced invocations returns "Bad Request" response - Given new "GetUsageLambdaTracedInvocations" request - And request contains "start_hr" parameter from "REPLACE.ME" - When the request is sent - Then the response status is 400 Bad Request - - @team:DataDog/red-zone-revenue-query - Scenario: Get hourly usage for lambda traced invocations returns "OK" response - Given new "GetUsageLambdaTracedInvocations" request - And request contains "start_hr" parameter with value "{{ timeISO('now - 5d') }}" - And request contains "end_hr" parameter with value "{{ timeISO('now - 3d') }}" - When the request is sent - Then the response status is 200 OK - And the response "data[0].type" is equal to "usage_timeseries" - And the response "data[0].attributes.product_family" is equal to "lambda-traced-invocations" - @generated @skip @team:DataDog/red-zone-revenue-query Scenario: Get hourly usage for observability pipelines returns "Bad Request" response Given new "GetUsageObservabilityPipelines" request diff --git a/tests/scenarios/fixtures.rs b/tests/scenarios/fixtures.rs index 877a9e94c..20b945a74 100644 --- a/tests/scenarios/fixtures.rs +++ b/tests/scenarios/fixtures.rs @@ -9,7 +9,7 @@ use cucumber::{ gherkin::{Feature, Rule, Scenario}, given, then, when, World, }; -use datadog_api_client::datadog::configuration::{APIKey, Configuration}; +use datadog_api_client::datadog::{APIKey, Configuration}; use lazy_static::lazy_static; use minijinja::{Environment, State}; use regex::Regex; @@ -47,13 +47,14 @@ struct UndoOperation { pub struct DatadogWorld { pub api_version: i32, pub config: Configuration, + pub http_client: Option, pub fixtures: Value, pub function_mappings: HashMap, pub operation_id: String, pub parameters: HashMap, pub response: Response, pub api_name: Option, - pub api_instances: ApiInstances, + pub api_instances: Box, undo_operations: Vec, } @@ -100,11 +101,32 @@ pub async fn before_scenario( let mut frozen_time = chrono::Utc::now().signed_duration_since(DateTime::UNIX_EPOCH); - let vcr_client_builder = ClientBuilder::new(reqwest::Client::new()); - let client = match env::var("RECORD").unwrap_or("false".to_string()).as_str() { + world.config.set_auth_key( + "apiKeyAuth", + APIKey { + key: "00000000000000000000000000000000".to_string(), + prefix: "".to_owned(), + }, + ); + world.config.set_auth_key( + "appKeyAuth", + APIKey { + key: "0000000000000000000000000000000000000000".to_string(), + prefix: "".to_owned(), + }, + ); + + let mut reqwest_client_builder = reqwest::Client::builder(); + if let Some(proxy_url) = &world.config.proxy_url { + let proxy = reqwest::Proxy::all(proxy_url).expect("Failed to parse proxy URL"); + reqwest_client_builder = reqwest_client_builder.proxy(proxy); + } + + let mut vcr_client_builder = ClientBuilder::new(reqwest_client_builder.build().unwrap()); + vcr_client_builder = match env::var("RECORD").unwrap_or("false".to_string()).as_str() { "none" => { prefix.push_str("-Rust"); - vcr_client_builder.build() + vcr_client_builder } "true" => { let _ = remove_file(cassette.clone()); @@ -128,7 +150,7 @@ pub async fn before_scenario( .with_modify_response(|res| { res.headers.remove_entry("content-security-policy"); }); - vcr_client_builder.with(middleware).build() + vcr_client_builder.with(middleware) } _ => { frozen_time = DateTime::parse_from_rfc3339( @@ -150,24 +172,38 @@ pub async fn before_scenario( res.headers.remove_entry("content-security-policy"); }) .with_request_matcher(|vcr_req, req| req_eq(vcr_req, req)); - vcr_client_builder.with(middleware).build() + vcr_client_builder.with(middleware) } }; - world.config.client(client); - world.config.set_auth_key( - "apiKeyAuth", - APIKey { - key: "00000000000000000000000000000000".to_string(), - prefix: "".to_owned(), - }, - ); - world.config.set_auth_key( - "appKeyAuth", - APIKey { - key: "0000000000000000000000000000000000000000".to_string(), - prefix: "".to_owned(), - }, - ); + + world.config.set_retry(true, 3); + + if world.config.enable_retry { + struct RetryableStatus; + impl reqwest_retry::RetryableStrategy for RetryableStatus { + fn handle( + &self, + res: &Result, + ) -> Option { + match res { + Ok(success) => reqwest_retry::default_on_request_success(success), + Err(_) => None, + } + } + } + let backoff_policy = reqwest_retry::policies::ExponentialBackoff::builder() + .build_with_max_retries(world.config.max_retries); + + let retry_middleware = + reqwest_retry::RetryTransientMiddleware::new_with_policy_and_strategy( + backoff_policy, + RetryableStatus, + ); + + vcr_client_builder = vcr_client_builder.with(retry_middleware); + } + + world.http_client = Some(vcr_client_builder.build()); let escaped_name = NON_ALNUM_RE .replace_all(scenario.name.as_str(), "_") diff --git a/tests/scenarios/function_mappings.rs b/tests/scenarios/function_mappings.rs index 61a410288..1053e80b2 100644 --- a/tests/scenarios/function_mappings.rs +++ b/tests/scenarios/function_mappings.rs @@ -11,523 +11,684 @@ use datadog_api_client::datadogV2; #[derive(Debug, Default)] pub struct ApiInstances { - pub v1_api_ip_ranges: Option, - pub v1_api_key_management: Option, - pub v1_api_service_checks: Option, - pub v1_api_usage_metering: Option, - pub v1_api_dashboards: Option, - pub v1_api_dashboard_lists: Option, - pub v1_api_metrics: Option, - pub v1_api_downtimes: Option, - pub v1_api_events: Option, - pub v1_api_snapshots: Option, - pub v1_api_hosts: Option, - pub v1_api_aws_integration: Option, - pub v1_api_aws_logs_integration: Option, - pub v1_api_azure_integration: Option, - pub v1_api_gcp_integration: Option, - pub v1_api_pager_duty_integration: Option, - pub v1_api_slack_integration: Option, - pub v1_api_webhooks_integration: Option, - pub v1_api_logs: Option, - pub v1_api_logs_indexes: Option, - pub v1_api_logs_pipelines: Option, - pub v1_api_monitors: Option, - pub v1_api_notebooks: Option, - pub v1_api_organizations: Option, - pub v1_api_security_monitoring: Option, - pub v1_api_service_level_objectives: Option, - pub v1_api_service_level_objective_corrections: Option, - pub v1_api_synthetics: Option, - pub v1_api_tags: Option, - pub v1_api_users: Option, - pub v1_api_authentication: Option, - pub v2_api_key_management: Option, - pub v2_api_spans_metrics: Option, - pub v2_api_apm_retention_filters: Option, - pub v2_api_audit: Option, - pub v2_api_authn_mappings: Option, - pub v2_api_ci_visibility_pipelines: Option, - pub v2_api_ci_visibility_tests: Option, - pub v2_api_container_images: Option, - pub v2_api_containers: Option, - pub v2_api_cloud_cost_management: Option, - pub v2_api_usage_metering: Option, - pub v2_api_dashboard_lists: Option, - pub v2_api_dora_metrics: Option, - pub v2_api_downtimes: Option, - pub v2_api_events: Option, - pub v2_api_incidents: Option, - pub v2_api_gcp_integration: Option, - pub v2_api_opsgenie_integration: Option, - pub v2_api_cloudflare_integration: Option, - pub v2_api_confluent_cloud: Option, - pub v2_api_fastly_integration: Option, - pub v2_api_okta_integration: Option, - pub v2_api_ip_allowlist: Option, - pub v2_api_logs: Option, - pub v2_api_logs_archives: Option, - pub v2_api_logs_metrics: Option, - pub v2_api_metrics: Option, - pub v2_api_monitors: Option, - pub v2_api_roles: Option, - pub v2_api_security_monitoring: Option, - pub v2_api_powerpack: Option, - pub v2_api_processes: Option, - pub v2_api_restriction_policies: Option, - pub v2_api_rum: Option, - pub v2_api_organizations: Option, - pub v2_api_service_scorecards: Option, - pub v2_api_cloud_workload_security: Option, - pub v2_api_sensitive_data_scanner: Option, - pub v2_api_service_accounts: Option, - pub v2_api_incident_services: Option, - pub v2_api_service_definition: Option, - pub v2_api_spans: Option, - pub v2_api_synthetics: Option, - pub v2_api_teams: Option, - pub v2_api_incident_teams: Option, - pub v2_api_users: Option, + pub v1_api_ip_ranges: Option, + pub v1_api_key_management: Option, + pub v1_api_service_checks: Option, + pub v1_api_usage_metering: Option, + pub v1_api_dashboards: Option, + pub v1_api_dashboard_lists: Option, + pub v1_api_metrics: Option, + pub v1_api_downtimes: Option, + pub v1_api_events: Option, + pub v1_api_snapshots: Option, + pub v1_api_hosts: Option, + pub v1_api_aws_integration: Option, + pub v1_api_aws_logs_integration: + Option, + pub v1_api_azure_integration: Option, + pub v1_api_gcp_integration: Option, + pub v1_api_pager_duty_integration: + Option, + pub v1_api_slack_integration: Option, + pub v1_api_webhooks_integration: + Option, + pub v1_api_logs: Option, + pub v1_api_logs_indexes: Option, + pub v1_api_logs_pipelines: Option, + pub v1_api_monitors: Option, + pub v1_api_notebooks: Option, + pub v1_api_organizations: Option, + pub v1_api_security_monitoring: + Option, + pub v1_api_service_level_objectives: + Option, + pub v1_api_service_level_objective_corrections: Option< + datadogV1::api_service_level_objective_corrections::ServiceLevelObjectiveCorrectionsAPI, + >, + pub v1_api_synthetics: Option, + pub v1_api_tags: Option, + pub v1_api_users: Option, + pub v1_api_authentication: Option, + pub v2_api_key_management: Option, + pub v2_api_api_management: Option, + pub v2_api_spans_metrics: Option, + pub v2_api_apm_retention_filters: + Option, + pub v2_api_audit: Option, + pub v2_api_authn_mappings: Option, + pub v2_api_case_management: Option, + pub v2_api_ci_visibility_pipelines: + Option, + pub v2_api_ci_visibility_tests: + Option, + pub v2_api_container_images: Option, + pub v2_api_containers: Option, + pub v2_api_cloud_cost_management: + Option, + pub v2_api_usage_metering: Option, + pub v2_api_dashboard_lists: Option, + pub v2_api_dora_metrics: Option, + pub v2_api_downtimes: Option, + pub v2_api_events: Option, + pub v2_api_incidents: Option, + pub v2_api_gcp_integration: Option, + pub v2_api_opsgenie_integration: + Option, + pub v2_api_cloudflare_integration: + Option, + pub v2_api_confluent_cloud: Option, + pub v2_api_fastly_integration: Option, + pub v2_api_okta_integration: Option, + pub v2_api_ip_allowlist: Option, + pub v2_api_logs: Option, + pub v2_api_logs_archives: Option, + pub v2_api_logs_custom_destinations: + Option, + pub v2_api_logs_metrics: Option, + pub v2_api_metrics: Option, + pub v2_api_monitors: Option, + pub v2_api_roles: Option, + pub v2_api_security_monitoring: + Option, + pub v2_api_powerpack: Option, + pub v2_api_processes: Option, + pub v2_api_cloud_workload_security: + Option, + pub v2_api_restriction_policies: + Option, + pub v2_api_rum: Option, + pub v2_api_organizations: Option, + pub v2_api_service_scorecards: Option, + pub v2_api_sensitive_data_scanner: + Option, + pub v2_api_service_accounts: Option, + pub v2_api_incident_services: Option, + pub v2_api_service_definition: Option, + pub v2_api_spans: Option, + pub v2_api_synthetics: Option, + pub v2_api_teams: Option, + pub v2_api_incident_teams: Option, + pub v2_api_users: Option, } pub fn initialize_api_instance(world: &mut DatadogWorld, api: String) { match api.as_str() { "IPRanges" => { world.api_instances.v1_api_ip_ranges = Some( - datadogV1::api::api_ip_ranges::IPRangesAPI::with_config(world.config.clone()), + datadogV1::api_ip_ranges::IPRangesAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + ), ); } "KeyManagement" => { world.api_instances.v1_api_key_management = Some( - datadogV1::api::api_key_management::KeyManagementAPI::with_config( + datadogV1::api_key_management::KeyManagementAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); world.api_instances.v2_api_key_management = Some( - datadogV2::api::api_key_management::KeyManagementAPI::with_config( + datadogV2::api_key_management::KeyManagementAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } "ServiceChecks" => { world.api_instances.v1_api_service_checks = Some( - datadogV1::api::api_service_checks::ServiceChecksAPI::with_config( + datadogV1::api_service_checks::ServiceChecksAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } "UsageMetering" => { world.api_instances.v1_api_usage_metering = Some( - datadogV1::api::api_usage_metering::UsageMeteringAPI::with_config( + datadogV1::api_usage_metering::UsageMeteringAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); world.api_instances.v2_api_usage_metering = Some( - datadogV2::api::api_usage_metering::UsageMeteringAPI::with_config( + datadogV2::api_usage_metering::UsageMeteringAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } "Dashboards" => { world.api_instances.v1_api_dashboards = Some( - datadogV1::api::api_dashboards::DashboardsAPI::with_config(world.config.clone()), + datadogV1::api_dashboards::DashboardsAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + ), ); } "DashboardLists" => { world.api_instances.v1_api_dashboard_lists = Some( - datadogV1::api::api_dashboard_lists::DashboardListsAPI::with_config( + datadogV1::api_dashboard_lists::DashboardListsAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); world.api_instances.v2_api_dashboard_lists = Some( - datadogV2::api::api_dashboard_lists::DashboardListsAPI::with_config( + datadogV2::api_dashboard_lists::DashboardListsAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } "Metrics" => { - world.api_instances.v1_api_metrics = Some( - datadogV1::api::api_metrics::MetricsAPI::with_config(world.config.clone()), - ); - world.api_instances.v2_api_metrics = Some( - datadogV2::api::api_metrics::MetricsAPI::with_config(world.config.clone()), - ); + world.api_instances.v1_api_metrics = + Some(datadogV1::api_metrics::MetricsAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + )); + world.api_instances.v2_api_metrics = + Some(datadogV2::api_metrics::MetricsAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + )); } "Downtimes" => { world.api_instances.v1_api_downtimes = Some( - datadogV1::api::api_downtimes::DowntimesAPI::with_config(world.config.clone()), + datadogV1::api_downtimes::DowntimesAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + ), ); world.api_instances.v2_api_downtimes = Some( - datadogV2::api::api_downtimes::DowntimesAPI::with_config(world.config.clone()), + datadogV2::api_downtimes::DowntimesAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + ), ); } "Events" => { - world.api_instances.v1_api_events = Some( - datadogV1::api::api_events::EventsAPI::with_config(world.config.clone()), - ); - world.api_instances.v2_api_events = Some( - datadogV2::api::api_events::EventsAPI::with_config(world.config.clone()), - ); + world.api_instances.v1_api_events = + Some(datadogV1::api_events::EventsAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + )); + world.api_instances.v2_api_events = + Some(datadogV2::api_events::EventsAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + )); } "Snapshots" => { world.api_instances.v1_api_snapshots = Some( - datadogV1::api::api_snapshots::SnapshotsAPI::with_config(world.config.clone()), + datadogV1::api_snapshots::SnapshotsAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + ), ); } "Hosts" => { - world.api_instances.v1_api_hosts = Some( - datadogV1::api::api_hosts::HostsAPI::with_config(world.config.clone()), - ); + world.api_instances.v1_api_hosts = + Some(datadogV1::api_hosts::HostsAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + )); } "AWSIntegration" => { world.api_instances.v1_api_aws_integration = Some( - datadogV1::api::api_aws_integration::AWSIntegrationAPI::with_config( + datadogV1::api_aws_integration::AWSIntegrationAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } "AWSLogsIntegration" => { world.api_instances.v1_api_aws_logs_integration = Some( - datadogV1::api::api_aws_logs_integration::AWSLogsIntegrationAPI::with_config( + datadogV1::api_aws_logs_integration::AWSLogsIntegrationAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } "AzureIntegration" => { world.api_instances.v1_api_azure_integration = Some( - datadogV1::api::api_azure_integration::AzureIntegrationAPI::with_config( + datadogV1::api_azure_integration::AzureIntegrationAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } "GCPIntegration" => { world.api_instances.v1_api_gcp_integration = Some( - datadogV1::api::api_gcp_integration::GCPIntegrationAPI::with_config( + datadogV1::api_gcp_integration::GCPIntegrationAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); world.api_instances.v2_api_gcp_integration = Some( - datadogV2::api::api_gcp_integration::GCPIntegrationAPI::with_config( + datadogV2::api_gcp_integration::GCPIntegrationAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } "PagerDutyIntegration" => { - world.api_instances.v1_api_pager_duty_integration = Some( - datadogV1::api::api_pager_duty_integration::PagerDutyIntegrationAPI::with_config( - world.config.clone(), - ), - ); + world.api_instances.v1_api_pager_duty_integration = Some(datadogV1::api_pager_duty_integration::PagerDutyIntegrationAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone() + )); } "SlackIntegration" => { world.api_instances.v1_api_slack_integration = Some( - datadogV1::api::api_slack_integration::SlackIntegrationAPI::with_config( + datadogV1::api_slack_integration::SlackIntegrationAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } "WebhooksIntegration" => { world.api_instances.v1_api_webhooks_integration = Some( - datadogV1::api::api_webhooks_integration::WebhooksIntegrationAPI::with_config( + datadogV1::api_webhooks_integration::WebhooksIntegrationAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } "Logs" => { - world.api_instances.v1_api_logs = Some(datadogV1::api::api_logs::LogsAPI::with_config( - world.config.clone(), - )); - world.api_instances.v2_api_logs = Some(datadogV2::api::api_logs::LogsAPI::with_config( - world.config.clone(), - )); + world.api_instances.v1_api_logs = + Some(datadogV1::api_logs::LogsAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + )); + world.api_instances.v2_api_logs = + Some(datadogV2::api_logs::LogsAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + )); } "LogsIndexes" => { world.api_instances.v1_api_logs_indexes = Some( - datadogV1::api::api_logs_indexes::LogsIndexesAPI::with_config(world.config.clone()), + datadogV1::api_logs_indexes::LogsIndexesAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + ), ); } "LogsPipelines" => { world.api_instances.v1_api_logs_pipelines = Some( - datadogV1::api::api_logs_pipelines::LogsPipelinesAPI::with_config( + datadogV1::api_logs_pipelines::LogsPipelinesAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } "Monitors" => { world.api_instances.v1_api_monitors = Some( - datadogV1::api::api_monitors::MonitorsAPI::with_config(world.config.clone()), + datadogV1::api_monitors::MonitorsAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + ), ); world.api_instances.v2_api_monitors = Some( - datadogV2::api::api_monitors::MonitorsAPI::with_config(world.config.clone()), + datadogV2::api_monitors::MonitorsAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + ), ); } "Notebooks" => { world.api_instances.v1_api_notebooks = Some( - datadogV1::api::api_notebooks::NotebooksAPI::with_config(world.config.clone()), + datadogV1::api_notebooks::NotebooksAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + ), ); } "Organizations" => { world.api_instances.v1_api_organizations = Some( - datadogV1::api::api_organizations::OrganizationsAPI::with_config( + datadogV1::api_organizations::OrganizationsAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); world.api_instances.v2_api_organizations = Some( - datadogV2::api::api_organizations::OrganizationsAPI::with_config( + datadogV2::api_organizations::OrganizationsAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } "SecurityMonitoring" => { world.api_instances.v1_api_security_monitoring = Some( - datadogV1::api::api_security_monitoring::SecurityMonitoringAPI::with_config( + datadogV1::api_security_monitoring::SecurityMonitoringAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); world.api_instances.v2_api_security_monitoring = Some( - datadogV2::api::api_security_monitoring::SecurityMonitoringAPI::with_config( + datadogV2::api_security_monitoring::SecurityMonitoringAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } "ServiceLevelObjectives" => { - world.api_instances.v1_api_service_level_objectives = Some(datadogV1::api::api_service_level_objectives::ServiceLevelObjectivesAPI::with_config(world.config.clone())); + world.api_instances.v1_api_service_level_objectives = Some(datadogV1::api_service_level_objectives::ServiceLevelObjectivesAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone() + )); } "ServiceLevelObjectiveCorrections" => { - world.api_instances.v1_api_service_level_objective_corrections = Some(datadogV1::api::api_service_level_objective_corrections::ServiceLevelObjectiveCorrectionsAPI::with_config(world.config.clone())); + world.api_instances.v1_api_service_level_objective_corrections = Some(datadogV1::api_service_level_objective_corrections::ServiceLevelObjectiveCorrectionsAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone() + )); } "Synthetics" => { world.api_instances.v1_api_synthetics = Some( - datadogV1::api::api_synthetics::SyntheticsAPI::with_config(world.config.clone()), + datadogV1::api_synthetics::SyntheticsAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + ), ); world.api_instances.v2_api_synthetics = Some( - datadogV2::api::api_synthetics::SyntheticsAPI::with_config(world.config.clone()), + datadogV2::api_synthetics::SyntheticsAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + ), ); } "Tags" => { - world.api_instances.v1_api_tags = Some(datadogV1::api::api_tags::TagsAPI::with_config( - world.config.clone(), - )); + world.api_instances.v1_api_tags = + Some(datadogV1::api_tags::TagsAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + )); } "Users" => { - world.api_instances.v1_api_users = Some( - datadogV1::api::api_users::UsersAPI::with_config(world.config.clone()), - ); - world.api_instances.v2_api_users = Some( - datadogV2::api::api_users::UsersAPI::with_config(world.config.clone()), - ); + world.api_instances.v1_api_users = + Some(datadogV1::api_users::UsersAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + )); + world.api_instances.v2_api_users = + Some(datadogV2::api_users::UsersAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + )); } "Authentication" => { world.api_instances.v1_api_authentication = Some( - datadogV1::api::api_authentication::AuthenticationAPI::with_config( + datadogV1::api_authentication::AuthenticationAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } - "SpansMetrics" => { - world.api_instances.v2_api_spans_metrics = Some( - datadogV2::api::api_spans_metrics::SpansMetricsAPI::with_config( + "APIManagement" => { + world.api_instances.v2_api_api_management = Some( + datadogV2::api_api_management::APIManagementAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } - "APMRetentionFilters" => { - world.api_instances.v2_api_apm_retention_filters = Some( - datadogV2::api::api_apm_retention_filters::APMRetentionFiltersAPI::with_config( + "SpansMetrics" => { + world.api_instances.v2_api_spans_metrics = Some( + datadogV2::api_spans_metrics::SpansMetricsAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } + "APMRetentionFilters" => { + world.api_instances.v2_api_apm_retention_filters = Some(datadogV2::api_apm_retention_filters::APMRetentionFiltersAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone() + )); + } "Audit" => { - world.api_instances.v2_api_audit = Some( - datadogV2::api::api_audit::AuditAPI::with_config(world.config.clone()), - ); + world.api_instances.v2_api_audit = + Some(datadogV2::api_audit::AuditAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + )); } "AuthNMappings" => { world.api_instances.v2_api_authn_mappings = Some( - datadogV2::api::api_authn_mappings::AuthNMappingsAPI::with_config( + datadogV2::api_authn_mappings::AuthNMappingsAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } - "CIVisibilityPipelines" => { - world.api_instances.v2_api_ci_visibility_pipelines = Some( - datadogV2::api::api_ci_visibility_pipelines::CIVisibilityPipelinesAPI::with_config( + "CaseManagement" => { + world.api_instances.v2_api_case_management = Some( + datadogV2::api_case_management::CaseManagementAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } + "CIVisibilityPipelines" => { + world.api_instances.v2_api_ci_visibility_pipelines = Some(datadogV2::api_ci_visibility_pipelines::CIVisibilityPipelinesAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone() + )); + } "CIVisibilityTests" => { world.api_instances.v2_api_ci_visibility_tests = Some( - datadogV2::api::api_ci_visibility_tests::CIVisibilityTestsAPI::with_config( + datadogV2::api_ci_visibility_tests::CIVisibilityTestsAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } "ContainerImages" => { world.api_instances.v2_api_container_images = Some( - datadogV2::api::api_container_images::ContainerImagesAPI::with_config( + datadogV2::api_container_images::ContainerImagesAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } "Containers" => { world.api_instances.v2_api_containers = Some( - datadogV2::api::api_containers::ContainersAPI::with_config(world.config.clone()), - ); - } - "CloudCostManagement" => { - world.api_instances.v2_api_cloud_cost_management = Some( - datadogV2::api::api_cloud_cost_management::CloudCostManagementAPI::with_config( + datadogV2::api_containers::ContainersAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } + "CloudCostManagement" => { + world.api_instances.v2_api_cloud_cost_management = Some(datadogV2::api_cloud_cost_management::CloudCostManagementAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone() + )); + } "DORAMetrics" => { world.api_instances.v2_api_dora_metrics = Some( - datadogV2::api::api_dora_metrics::DORAMetricsAPI::with_config(world.config.clone()), + datadogV2::api_dora_metrics::DORAMetricsAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + ), ); } "Incidents" => { world.api_instances.v2_api_incidents = Some( - datadogV2::api::api_incidents::IncidentsAPI::with_config(world.config.clone()), + datadogV2::api_incidents::IncidentsAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + ), ); } "OpsgenieIntegration" => { world.api_instances.v2_api_opsgenie_integration = Some( - datadogV2::api::api_opsgenie_integration::OpsgenieIntegrationAPI::with_config( + datadogV2::api_opsgenie_integration::OpsgenieIntegrationAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } "CloudflareIntegration" => { - world.api_instances.v2_api_cloudflare_integration = Some( - datadogV2::api::api_cloudflare_integration::CloudflareIntegrationAPI::with_config( - world.config.clone(), - ), - ); + world.api_instances.v2_api_cloudflare_integration = Some(datadogV2::api_cloudflare_integration::CloudflareIntegrationAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone() + )); } "ConfluentCloud" => { world.api_instances.v2_api_confluent_cloud = Some( - datadogV2::api::api_confluent_cloud::ConfluentCloudAPI::with_config( + datadogV2::api_confluent_cloud::ConfluentCloudAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } "FastlyIntegration" => { world.api_instances.v2_api_fastly_integration = Some( - datadogV2::api::api_fastly_integration::FastlyIntegrationAPI::with_config( + datadogV2::api_fastly_integration::FastlyIntegrationAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } "OktaIntegration" => { world.api_instances.v2_api_okta_integration = Some( - datadogV2::api::api_okta_integration::OktaIntegrationAPI::with_config( + datadogV2::api_okta_integration::OktaIntegrationAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } "IPAllowlist" => { world.api_instances.v2_api_ip_allowlist = Some( - datadogV2::api::api_ip_allowlist::IPAllowlistAPI::with_config(world.config.clone()), + datadogV2::api_ip_allowlist::IPAllowlistAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + ), ); } "LogsArchives" => { world.api_instances.v2_api_logs_archives = Some( - datadogV2::api::api_logs_archives::LogsArchivesAPI::with_config( + datadogV2::api_logs_archives::LogsArchivesAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } + "LogsCustomDestinations" => { + world.api_instances.v2_api_logs_custom_destinations = Some(datadogV2::api_logs_custom_destinations::LogsCustomDestinationsAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone() + )); + } "LogsMetrics" => { world.api_instances.v2_api_logs_metrics = Some( - datadogV2::api::api_logs_metrics::LogsMetricsAPI::with_config(world.config.clone()), + datadogV2::api_logs_metrics::LogsMetricsAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + ), ); } "Roles" => { - world.api_instances.v2_api_roles = Some( - datadogV2::api::api_roles::RolesAPI::with_config(world.config.clone()), - ); + world.api_instances.v2_api_roles = + Some(datadogV2::api_roles::RolesAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + )); } "Powerpack" => { world.api_instances.v2_api_powerpack = Some( - datadogV2::api::api_powerpack::PowerpackAPI::with_config(world.config.clone()), + datadogV2::api_powerpack::PowerpackAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + ), ); } "Processes" => { world.api_instances.v2_api_processes = Some( - datadogV2::api::api_processes::ProcessesAPI::with_config(world.config.clone()), + datadogV2::api_processes::ProcessesAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + ), ); } + "CloudWorkloadSecurity" => { + world.api_instances.v2_api_cloud_workload_security = Some(datadogV2::api_cloud_workload_security::CloudWorkloadSecurityAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone() + )); + } "RestrictionPolicies" => { world.api_instances.v2_api_restriction_policies = Some( - datadogV2::api::api_restriction_policies::RestrictionPoliciesAPI::with_config( + datadogV2::api_restriction_policies::RestrictionPoliciesAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } "RUM" => { - world.api_instances.v2_api_rum = Some(datadogV2::api::api_rum::RUMAPI::with_config( - world.config.clone(), - )); + world.api_instances.v2_api_rum = + Some(datadogV2::api_rum::RUMAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + )); } "ServiceScorecards" => { world.api_instances.v2_api_service_scorecards = Some( - datadogV2::api::api_service_scorecards::ServiceScorecardsAPI::with_config( - world.config.clone(), - ), - ); - } - "CloudWorkloadSecurity" => { - world.api_instances.v2_api_cloud_workload_security = Some( - datadogV2::api::api_cloud_workload_security::CloudWorkloadSecurityAPI::with_config( + datadogV2::api_service_scorecards::ServiceScorecardsAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } "SensitiveDataScanner" => { - world.api_instances.v2_api_sensitive_data_scanner = Some( - datadogV2::api::api_sensitive_data_scanner::SensitiveDataScannerAPI::with_config( - world.config.clone(), - ), - ); + world.api_instances.v2_api_sensitive_data_scanner = Some(datadogV2::api_sensitive_data_scanner::SensitiveDataScannerAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone() + )); } "ServiceAccounts" => { world.api_instances.v2_api_service_accounts = Some( - datadogV2::api::api_service_accounts::ServiceAccountsAPI::with_config( + datadogV2::api_service_accounts::ServiceAccountsAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } "IncidentServices" => { world.api_instances.v2_api_incident_services = Some( - datadogV2::api::api_incident_services::IncidentServicesAPI::with_config( + datadogV2::api_incident_services::IncidentServicesAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } "ServiceDefinition" => { world.api_instances.v2_api_service_definition = Some( - datadogV2::api::api_service_definition::ServiceDefinitionAPI::with_config( + datadogV2::api_service_definition::ServiceDefinitionAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } "Spans" => { - world.api_instances.v2_api_spans = Some( - datadogV2::api::api_spans::SpansAPI::with_config(world.config.clone()), - ); + world.api_instances.v2_api_spans = + Some(datadogV2::api_spans::SpansAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + )); } "Teams" => { - world.api_instances.v2_api_teams = Some( - datadogV2::api::api_teams::TeamsAPI::with_config(world.config.clone()), - ); + world.api_instances.v2_api_teams = + Some(datadogV2::api_teams::TeamsAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone(), + )); } "IncidentTeams" => { world.api_instances.v2_api_incident_teams = Some( - datadogV2::api::api_incident_teams::IncidentTeamsAPI::with_config( + datadogV2::api_incident_teams::IncidentTeamsAPI::with_client_and_config( world.config.clone(), + world.http_client.as_ref().unwrap().clone(), ), ); } @@ -596,10 +757,6 @@ pub fn collect_function_calls(world: &mut DatadogWorld) { "v1.GetUsageAnalyzedLogs".into(), test_v1_get_usage_analyzed_logs, ); - world.function_mappings.insert( - "v1.GetUsageAttribution".into(), - test_v1_get_usage_attribution, - ); world .function_mappings .insert("v1.GetUsageAuditLogs".into(), test_v1_get_usage_audit_logs); @@ -1405,6 +1562,18 @@ pub fn collect_function_calls(world: &mut DatadogWorld) { "v2.UpdateCurrentUserApplicationKey".into(), test_v2_update_current_user_application_key, ); + world + .function_mappings + .insert("v2.DeleteOpenAPI".into(), test_v2_delete_open_api); + world + .function_mappings + .insert("v2.GetOpenAPI".into(), test_v2_get_open_api); + world + .function_mappings + .insert("v2.UpdateOpenAPI".into(), test_v2_update_open_api); + world + .function_mappings + .insert("v2.CreateOpenAPI".into(), test_v2_create_open_api); world .function_mappings .insert("v2.ListSpansMetrics".into(), test_v2_list_spans_metrics); @@ -1473,6 +1642,49 @@ pub fn collect_function_calls(world: &mut DatadogWorld) { world .function_mappings .insert("v2.UpdateAuthNMapping".into(), test_v2_update_authn_mapping); + world + .function_mappings + .insert("v2.SearchCases".into(), test_v2_search_cases); + world.function_mappings.insert( + "v2.SearchCasesWithPagination".into(), + test_v2_search_cases_with_pagination, + ); + world + .function_mappings + .insert("v2.CreateCase".into(), test_v2_create_case); + world + .function_mappings + .insert("v2.GetProjects".into(), test_v2_get_projects); + world + .function_mappings + .insert("v2.CreateProject".into(), test_v2_create_project); + world + .function_mappings + .insert("v2.DeleteProject".into(), test_v2_delete_project); + world + .function_mappings + .insert("v2.GetProject".into(), test_v2_get_project); + world + .function_mappings + .insert("v2.GetCase".into(), test_v2_get_case); + world + .function_mappings + .insert("v2.ArchiveCase".into(), test_v2_archive_case); + world + .function_mappings + .insert("v2.AssignCase".into(), test_v2_assign_case); + world + .function_mappings + .insert("v2.UpdatePriority".into(), test_v2_update_priority); + world + .function_mappings + .insert("v2.UpdateStatus".into(), test_v2_update_status); + world + .function_mappings + .insert("v2.UnarchiveCase".into(), test_v2_unarchive_case); + world + .function_mappings + .insert("v2.UnassignCase".into(), test_v2_unassign_case); world.function_mappings.insert( "v2.CreateCIAppPipelineEvent".into(), test_v2_create_ci_app_pipeline_event, @@ -1954,6 +2166,26 @@ pub fn collect_function_calls(world: &mut DatadogWorld) { "v2.AddReadRoleToArchive".into(), test_v2_add_read_role_to_archive, ); + world.function_mappings.insert( + "v2.ListLogsCustomDestinations".into(), + test_v2_list_logs_custom_destinations, + ); + world.function_mappings.insert( + "v2.CreateLogsCustomDestination".into(), + test_v2_create_logs_custom_destination, + ); + world.function_mappings.insert( + "v2.DeleteLogsCustomDestination".into(), + test_v2_delete_logs_custom_destination, + ); + world.function_mappings.insert( + "v2.GetLogsCustomDestination".into(), + test_v2_get_logs_custom_destination, + ); + world.function_mappings.insert( + "v2.UpdateLogsCustomDestination".into(), + test_v2_update_logs_custom_destination, + ); world .function_mappings .insert("v2.ListLogsMetrics".into(), test_v2_list_logs_metrics); @@ -1989,6 +2221,9 @@ pub fn collect_function_calls(world: &mut DatadogWorld) { "v2.ListTagsByMetricName".into(), test_v2_list_tags_by_metric_name, ); + world + .function_mappings + .insert("v2.ListMetricAssets".into(), test_v2_list_metric_assets); world.function_mappings.insert( "v2.EstimateMetricsOutputSeries".into(), test_v2_estimate_metrics_output_series, @@ -2118,6 +2353,26 @@ pub fn collect_function_calls(world: &mut DatadogWorld) { "v2.UpdateSecurityFilter".into(), test_v2_update_security_filter, ); + world.function_mappings.insert( + "v2.ListSecurityMonitoringSuppressions".into(), + test_v2_list_security_monitoring_suppressions, + ); + world.function_mappings.insert( + "v2.CreateSecurityMonitoringSuppression".into(), + test_v2_create_security_monitoring_suppression, + ); + world.function_mappings.insert( + "v2.DeleteSecurityMonitoringSuppression".into(), + test_v2_delete_security_monitoring_suppression, + ); + world.function_mappings.insert( + "v2.GetSecurityMonitoringSuppression".into(), + test_v2_get_security_monitoring_suppression, + ); + world.function_mappings.insert( + "v2.UpdateSecurityMonitoringSuppression".into(), + test_v2_update_security_monitoring_suppression, + ); world.function_mappings.insert( "v2.ListSecurityMonitoringRules".into(), test_v2_list_security_monitoring_rules, @@ -2126,6 +2381,10 @@ pub fn collect_function_calls(world: &mut DatadogWorld) { "v2.CreateSecurityMonitoringRule".into(), test_v2_create_security_monitoring_rule, ); + world.function_mappings.insert( + "v2.ValidateSecurityMonitoringRule".into(), + test_v2_validate_security_monitoring_rule, + ); world.function_mappings.insert( "v2.DeleteSecurityMonitoringRule".into(), test_v2_delete_security_monitoring_rule, @@ -2196,6 +2455,54 @@ pub fn collect_function_calls(world: &mut DatadogWorld) { "v2.ListProcessesWithPagination".into(), test_v2_list_processes_with_pagination, ); + world.function_mappings.insert( + "v2.ListCSMThreatsAgentRules".into(), + test_v2_list_csm_threats_agent_rules, + ); + world.function_mappings.insert( + "v2.CreateCSMThreatsAgentRule".into(), + test_v2_create_csm_threats_agent_rule, + ); + world.function_mappings.insert( + "v2.DeleteCSMThreatsAgentRule".into(), + test_v2_delete_csm_threats_agent_rule, + ); + world.function_mappings.insert( + "v2.GetCSMThreatsAgentRule".into(), + test_v2_get_csm_threats_agent_rule, + ); + world.function_mappings.insert( + "v2.UpdateCSMThreatsAgentRule".into(), + test_v2_update_csm_threats_agent_rule, + ); + world.function_mappings.insert( + "v2.DownloadCSMThreatsPolicy".into(), + test_v2_download_csm_threats_policy, + ); + world.function_mappings.insert( + "v2.DownloadCloudWorkloadPolicyFile".into(), + test_v2_download_cloud_workload_policy_file, + ); + world.function_mappings.insert( + "v2.ListCloudWorkloadSecurityAgentRules".into(), + test_v2_list_cloud_workload_security_agent_rules, + ); + world.function_mappings.insert( + "v2.CreateCloudWorkloadSecurityAgentRule".into(), + test_v2_create_cloud_workload_security_agent_rule, + ); + world.function_mappings.insert( + "v2.DeleteCloudWorkloadSecurityAgentRule".into(), + test_v2_delete_cloud_workload_security_agent_rule, + ); + world.function_mappings.insert( + "v2.GetCloudWorkloadSecurityAgentRule".into(), + test_v2_get_cloud_workload_security_agent_rule, + ); + world.function_mappings.insert( + "v2.UpdateCloudWorkloadSecurityAgentRule".into(), + test_v2_update_cloud_workload_security_agent_rule, + ); world.function_mappings.insert( "v2.DeleteRestrictionPolicy".into(), test_v2_delete_restriction_policy, @@ -2273,30 +2580,6 @@ pub fn collect_function_calls(world: &mut DatadogWorld) { "v2.DeleteScorecardRule".into(), test_v2_delete_scorecard_rule, ); - world.function_mappings.insert( - "v2.DownloadCloudWorkloadPolicyFile".into(), - test_v2_download_cloud_workload_policy_file, - ); - world.function_mappings.insert( - "v2.ListCloudWorkloadSecurityAgentRules".into(), - test_v2_list_cloud_workload_security_agent_rules, - ); - world.function_mappings.insert( - "v2.CreateCloudWorkloadSecurityAgentRule".into(), - test_v2_create_cloud_workload_security_agent_rule, - ); - world.function_mappings.insert( - "v2.DeleteCloudWorkloadSecurityAgentRule".into(), - test_v2_delete_cloud_workload_security_agent_rule, - ); - world.function_mappings.insert( - "v2.GetCloudWorkloadSecurityAgentRule".into(), - test_v2_get_cloud_workload_security_agent_rule, - ); - world.function_mappings.insert( - "v2.UpdateCloudWorkloadSecurityAgentRule".into(), - test_v2_update_cloud_workload_security_agent_rule, - ); world .function_mappings .insert("v2.ListScanningGroups".into(), test_v2_list_scanning_groups); @@ -2454,6 +2737,10 @@ pub fn collect_function_calls(world: &mut DatadogWorld) { world .function_mappings .insert("v2.GetTeamMemberships".into(), test_v2_get_team_memberships); + world.function_mappings.insert( + "v2.GetTeamMembershipsWithPagination".into(), + test_v2_get_team_memberships_with_pagination, + ); world.function_mappings.insert( "v2.CreateTeamMembership".into(), test_v2_create_team_membership, @@ -2847,8 +3134,7 @@ fn test_v1_get_daily_custom_reports( let sort = _parameters .get("sort") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = - datadogV1::api::api_usage_metering::GetDailyCustomReportsOptionalParams::default(); + let mut params = datadogV1::api_usage_metering::GetDailyCustomReportsOptionalParams::default(); params.page_size = page_size; params.page_number = page_number; params.sort_dir = sort_dir; @@ -2922,7 +3208,7 @@ fn test_v1_get_monthly_custom_reports( .get("sort") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); let mut params = - datadogV1::api::api_usage_metering::GetMonthlyCustomReportsOptionalParams::default(); + datadogV1::api_usage_metering::GetMonthlyCustomReportsOptionalParams::default(); params.page_size = page_size; params.page_number = page_number; params.sort_dir = sort_dir; @@ -2984,8 +3270,7 @@ fn test_v1_get_usage_analyzed_logs(world: &mut DatadogWorld, _parameters: &HashM let end_hr = _parameters .get("end_hr") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = - datadogV1::api::api_usage_metering::GetUsageAnalyzedLogsOptionalParams::default(); + let mut params = datadogV1::api_usage_metering::GetUsageAnalyzedLogsOptionalParams::default(); params.end_hr = end_hr; let response = match block_on(api.get_usage_analyzed_logs_with_http_info(start_hr, params)) { Ok(response) => response, @@ -3005,71 +3290,17 @@ fn test_v1_get_usage_analyzed_logs(world: &mut DatadogWorld, _parameters: &HashM world.response.code = response.status.as_u16(); } -fn test_v1_get_usage_attribution(world: &mut DatadogWorld, _parameters: &HashMap) { +fn test_v1_get_usage_audit_logs(world: &mut DatadogWorld, _parameters: &HashMap) { let api = world .api_instances .v1_api_usage_metering .as_ref() .expect("api instance not found"); - let start_month = - serde_json::from_value(_parameters.get("start_month").unwrap().clone()).unwrap(); - let fields = serde_json::from_value(_parameters.get("fields").unwrap().clone()).unwrap(); - let end_month = _parameters - .get("end_month") + let start_hr = serde_json::from_value(_parameters.get("start_hr").unwrap().clone()).unwrap(); + let end_hr = _parameters + .get("end_hr") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let sort_direction = _parameters - .get("sort_direction") - .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let sort_name = _parameters - .get("sort_name") - .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let include_descendants = _parameters - .get("include_descendants") - .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let offset = _parameters - .get("offset") - .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let limit = _parameters - .get("limit") - .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = - datadogV1::api::api_usage_metering::GetUsageAttributionOptionalParams::default(); - params.end_month = end_month; - params.sort_direction = sort_direction; - params.sort_name = sort_name; - params.include_descendants = include_descendants; - params.offset = offset; - params.limit = limit; - let response = - match block_on(api.get_usage_attribution_with_http_info(start_month, fields, params)) { - Ok(response) => response, - Err(error) => { - return match error { - Error::ResponseError(e) => { - world.response.code = e.status.as_u16(); - if let Some(entity) = e.entity { - world.response.object = serde_json::to_value(entity).unwrap(); - } - } - _ => panic!("error parsing response: {error}"), - }; - } - }; - world.response.object = serde_json::to_value(response.entity).unwrap(); - world.response.code = response.status.as_u16(); -} - -fn test_v1_get_usage_audit_logs(world: &mut DatadogWorld, _parameters: &HashMap) { - let api = world - .api_instances - .v1_api_usage_metering - .as_ref() - .expect("api instance not found"); - let start_hr = serde_json::from_value(_parameters.get("start_hr").unwrap().clone()).unwrap(); - let end_hr = _parameters - .get("end_hr") - .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = datadogV1::api::api_usage_metering::GetUsageAuditLogsOptionalParams::default(); + let mut params = datadogV1::api_usage_metering::GetUsageAuditLogsOptionalParams::default(); params.end_hr = end_hr; let response = match block_on(api.get_usage_audit_logs_with_http_info(start_hr, params)) { Ok(response) => response, @@ -3099,7 +3330,7 @@ fn test_v1_get_usage_lambda(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -3132,7 +3363,7 @@ fn test_v1_get_usage_billable_summary( .get("month") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); let mut params = - datadogV1::api::api_usage_metering::GetUsageBillableSummaryOptionalParams::default(); + datadogV1::api_usage_metering::GetUsageBillableSummaryOptionalParams::default(); params.month = month; let response = match block_on(api.get_usage_billable_summary_with_http_info(params)) { Ok(response) => response, @@ -3162,7 +3393,7 @@ fn test_v1_get_usage_ci_app(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -3195,7 +3426,7 @@ fn test_v1_get_usage_cloud_security_posture_management( let end_hr = _parameters .get("end_hr") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = datadogV1::api::api_usage_metering::GetUsageCloudSecurityPostureManagementOptionalParams::default(); + let mut params = datadogV1::api_usage_metering::GetUsageCloudSecurityPostureManagementOptionalParams::default(); params.end_hr = end_hr; let response = match block_on( api.get_usage_cloud_security_posture_management_with_http_info(start_hr, params), @@ -3227,7 +3458,7 @@ fn test_v1_get_usage_cws(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -3257,7 +3488,7 @@ fn test_v1_get_usage_dbm(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -3287,7 +3518,7 @@ fn test_v1_get_usage_fargate(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -3317,7 +3548,7 @@ fn test_v1_get_usage_hosts(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -3362,7 +3593,7 @@ fn test_v1_get_hourly_usage_attribution( .get("include_descendants") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); let mut params = - datadogV1::api::api_usage_metering::GetHourlyUsageAttributionOptionalParams::default(); + datadogV1::api_usage_metering::GetHourlyUsageAttributionOptionalParams::default(); params.end_hr = end_hr; params.next_record_id = next_record_id; params.tag_breakdown_keys = tag_breakdown_keys; @@ -3397,8 +3628,7 @@ fn test_v1_get_incident_management(world: &mut DatadogWorld, _parameters: &HashM let end_hr = _parameters .get("end_hr") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = - datadogV1::api::api_usage_metering::GetIncidentManagementOptionalParams::default(); + let mut params = datadogV1::api_usage_metering::GetIncidentManagementOptionalParams::default(); params.end_hr = end_hr; let response = match block_on(api.get_incident_management_with_http_info(start_hr, params)) { Ok(response) => response, @@ -3428,8 +3658,7 @@ fn test_v1_get_usage_indexed_spans(world: &mut DatadogWorld, _parameters: &HashM let end_hr = _parameters .get("end_hr") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = - datadogV1::api::api_usage_metering::GetUsageIndexedSpansOptionalParams::default(); + let mut params = datadogV1::api_usage_metering::GetUsageIndexedSpansOptionalParams::default(); params.end_hr = end_hr; let response = match block_on(api.get_usage_indexed_spans_with_http_info(start_hr, params)) { Ok(response) => response, @@ -3459,7 +3688,7 @@ fn test_v1_get_ingested_spans(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -3493,7 +3722,7 @@ fn test_v1_get_usage_internet_of_things( .get("end_hr") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); let mut params = - datadogV1::api::api_usage_metering::GetUsageInternetOfThingsOptionalParams::default(); + datadogV1::api_usage_metering::GetUsageInternetOfThingsOptionalParams::default(); params.end_hr = end_hr; let response = match block_on(api.get_usage_internet_of_things_with_http_info(start_hr, params)) { @@ -3524,7 +3753,7 @@ fn test_v1_get_usage_logs(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -3558,7 +3787,7 @@ fn test_v1_get_usage_logs_by_retention( .get("end_hr") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); let mut params = - datadogV1::api::api_usage_metering::GetUsageLogsByRetentionOptionalParams::default(); + datadogV1::api_usage_metering::GetUsageLogsByRetentionOptionalParams::default(); params.end_hr = end_hr; let response = match block_on(api.get_usage_logs_by_retention_with_http_info(start_hr, params)) { @@ -3592,8 +3821,7 @@ fn test_v1_get_usage_logs_by_index(world: &mut DatadogWorld, _parameters: &HashM let index_name = _parameters .get("index_name") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = - datadogV1::api::api_usage_metering::GetUsageLogsByIndexOptionalParams::default(); + let mut params = datadogV1::api_usage_metering::GetUsageLogsByIndexOptionalParams::default(); params.end_hr = end_hr; params.index_name = index_name; let response = match block_on(api.get_usage_logs_by_index_with_http_info(start_hr, params)) { @@ -3645,7 +3873,7 @@ fn test_v1_get_monthly_usage_attribution( .get("include_descendants") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); let mut params = - datadogV1::api::api_usage_metering::GetMonthlyUsageAttributionOptionalParams::default(); + datadogV1::api_usage_metering::GetMonthlyUsageAttributionOptionalParams::default(); params.end_month = end_month; params.sort_direction = sort_direction; params.sort_name = sort_name; @@ -3684,8 +3912,7 @@ fn test_v1_get_usage_network_flows(world: &mut DatadogWorld, _parameters: &HashM let end_hr = _parameters .get("end_hr") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = - datadogV1::api::api_usage_metering::GetUsageNetworkFlowsOptionalParams::default(); + let mut params = datadogV1::api_usage_metering::GetUsageNetworkFlowsOptionalParams::default(); params.end_hr = end_hr; let response = match block_on(api.get_usage_network_flows_with_http_info(start_hr, params)) { Ok(response) => response, @@ -3715,8 +3942,7 @@ fn test_v1_get_usage_network_hosts(world: &mut DatadogWorld, _parameters: &HashM let end_hr = _parameters .get("end_hr") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = - datadogV1::api::api_usage_metering::GetUsageNetworkHostsOptionalParams::default(); + let mut params = datadogV1::api_usage_metering::GetUsageNetworkHostsOptionalParams::default(); params.end_hr = end_hr; let response = match block_on(api.get_usage_network_hosts_with_http_info(start_hr, params)) { Ok(response) => response, @@ -3749,8 +3975,7 @@ fn test_v1_get_usage_online_archive( let end_hr = _parameters .get("end_hr") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = - datadogV1::api::api_usage_metering::GetUsageOnlineArchiveOptionalParams::default(); + let mut params = datadogV1::api_usage_metering::GetUsageOnlineArchiveOptionalParams::default(); params.end_hr = end_hr; let response = match block_on(api.get_usage_online_archive_with_http_info(start_hr, params)) { Ok(response) => response, @@ -3780,7 +4005,7 @@ fn test_v1_get_usage_profiling(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -3810,7 +4035,7 @@ fn test_v1_get_usage_rum_units(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -3843,8 +4068,7 @@ fn test_v1_get_usage_rum_sessions(world: &mut DatadogWorld, _parameters: &HashMa let type_ = _parameters .get("type") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = - datadogV1::api::api_usage_metering::GetUsageRumSessionsOptionalParams::default(); + let mut params = datadogV1::api_usage_metering::GetUsageRumSessionsOptionalParams::default(); params.end_hr = end_hr; params.type_ = type_; let response = match block_on(api.get_usage_rum_sessions_with_http_info(start_hr, params)) { @@ -3875,7 +4099,7 @@ fn test_v1_get_usage_sds(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -3905,7 +4129,7 @@ fn test_v1_get_usage_snmp(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -3939,7 +4163,7 @@ fn test_v1_get_usage_summary(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -4004,8 +4227,7 @@ fn test_v1_get_usage_synthetics_api( let end_hr = _parameters .get("end_hr") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = - datadogV1::api::api_usage_metering::GetUsageSyntheticsAPIOptionalParams::default(); + let mut params = datadogV1::api_usage_metering::GetUsageSyntheticsAPIOptionalParams::default(); params.end_hr = end_hr; let response = match block_on(api.get_usage_synthetics_api_with_http_info(start_hr, params)) { Ok(response) => response, @@ -4039,7 +4261,7 @@ fn test_v1_get_usage_synthetics_browser( .get("end_hr") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); let mut params = - datadogV1::api::api_usage_metering::GetUsageSyntheticsBrowserOptionalParams::default(); + datadogV1::api_usage_metering::GetUsageSyntheticsBrowserOptionalParams::default(); params.end_hr = end_hr; let response = match block_on(api.get_usage_synthetics_browser_with_http_info(start_hr, params)) { @@ -4070,8 +4292,7 @@ fn test_v1_get_usage_timeseries(world: &mut DatadogWorld, _parameters: &HashMap< let end_hr = _parameters .get("end_hr") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = - datadogV1::api::api_usage_metering::GetUsageTimeseriesOptionalParams::default(); + let mut params = datadogV1::api_usage_metering::GetUsageTimeseriesOptionalParams::default(); params.end_hr = end_hr; let response = match block_on(api.get_usage_timeseries_with_http_info(start_hr, params)) { Ok(response) => response, @@ -4115,8 +4336,7 @@ fn test_v1_get_usage_top_avg_metrics( let next_record_id = _parameters .get("next_record_id") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = - datadogV1::api::api_usage_metering::GetUsageTopAvgMetricsOptionalParams::default(); + let mut params = datadogV1::api_usage_metering::GetUsageTopAvgMetricsOptionalParams::default(); params.month = month; params.day = day; params.names = names; @@ -4183,7 +4403,7 @@ fn test_v1_list_dashboards(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -4759,7 +4979,7 @@ fn test_v1_list_active_metrics(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -4927,7 +5147,7 @@ fn test_v1_list_downtimes(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -5435,7 +5655,7 @@ fn test_v1_list_aws_accounts(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -7393,7 +7613,7 @@ fn test_v1_get_monitor(world: &mut DatadogWorld, _parameters: &HashMap response, Err(error) => { @@ -7990,8 +8209,7 @@ fn test_v1_list_slos(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -8239,7 +8454,7 @@ fn test_v1_get_slo(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -8326,7 +8541,7 @@ fn test_v1_get_slo_history(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -9408,7 +9622,7 @@ fn test_v1_delete_host_tags(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -9438,7 +9652,7 @@ fn test_v1_get_host_tags(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -9469,7 +9683,7 @@ fn test_v1_create_host_tags(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -9500,7 +9714,7 @@ fn test_v1_update_host_tags(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -9711,7 +9925,7 @@ fn test_v2_list_api_keys(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -9877,8 +10091,7 @@ fn test_v2_list_application_keys(world: &mut DatadogWorld, _parameters: &HashMap let include = _parameters .get("include") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = - datadogV2::api::api_key_management::ListApplicationKeysOptionalParams::default(); + let mut params = datadogV2::api_key_management::ListApplicationKeysOptionalParams::default(); params.page_size = page_size; params.page_number = page_number; params.sort = sort; @@ -9941,7 +10154,7 @@ fn test_v2_get_application_key(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -10019,7 +10232,7 @@ fn test_v2_list_current_user_application_keys( .get("include") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); let mut params = - datadogV2::api::api_key_management::ListCurrentUserApplicationKeysOptionalParams::default(); + datadogV2::api_key_management::ListCurrentUserApplicationKeysOptionalParams::default(); params.page_size = page_size; params.page_number = page_number; params.sort = sort; @@ -10163,6 +10376,125 @@ fn test_v2_update_current_user_application_key( world.response.code = response.status.as_u16(); } +fn test_v2_delete_open_api(world: &mut DatadogWorld, _parameters: &HashMap) { + let api = world + .api_instances + .v2_api_api_management + .as_ref() + .expect("api instance not found"); + let id = serde_json::from_value(_parameters.get("id").unwrap().clone()).unwrap(); + let response = match block_on(api.delete_open_api_with_http_info(id)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_get_open_api(world: &mut DatadogWorld, _parameters: &HashMap) { + let api = world + .api_instances + .v2_api_api_management + .as_ref() + .expect("api instance not found"); + let id = serde_json::from_value(_parameters.get("id").unwrap().clone()).unwrap(); + let response = match block_on(api.get_open_api_with_http_info(id)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_update_open_api(world: &mut DatadogWorld, _parameters: &HashMap) { + let api = world + .api_instances + .v2_api_api_management + .as_ref() + .expect("api instance not found"); + let id = serde_json::from_value(_parameters.get("id").unwrap().clone()).unwrap(); + let openapi_spec_file = _parameters.get("openapi_spec_file").and_then(|param| { + std::fs::read(format!( + "tests/scenarios/features/v{}/{}", + world.api_version, + param.as_str().unwrap() + )) + .ok() + }); + let mut params = datadogV2::api_api_management::UpdateOpenAPIOptionalParams::default(); + params.openapi_spec_file = openapi_spec_file; + let response = match block_on(api.update_open_api_with_http_info(id, params)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_create_open_api(world: &mut DatadogWorld, _parameters: &HashMap) { + let api = world + .api_instances + .v2_api_api_management + .as_ref() + .expect("api instance not found"); + let openapi_spec_file = _parameters.get("openapi_spec_file").and_then(|param| { + std::fs::read(format!( + "tests/scenarios/features/v{}/{}", + world.api_version, + param.as_str().unwrap() + )) + .ok() + }); + let mut params = datadogV2::api_api_management::CreateOpenAPIOptionalParams::default(); + params.openapi_spec_file = openapi_spec_file; + let response = match block_on(api.create_open_api_with_http_info(params)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + fn test_v2_list_spans_metrics(world: &mut DatadogWorld, _parameters: &HashMap) { let api = world .api_instances @@ -10480,7 +10812,7 @@ fn test_v2_list_audit_logs(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -10606,7 +10938,7 @@ fn test_v2_search_audit_logs_with_pagination( let body = _parameters .get("body") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = datadogV2::api::api_audit::SearchAuditLogsOptionalParams::default(); + let mut params = datadogV2::api_audit::SearchAuditLogsOptionalParams::default(); params.body = body; let response = api.search_audit_logs_with_pagination(params); let mut result = Vec::new(); @@ -10654,7 +10986,7 @@ fn test_v2_list_authn_mappings(world: &mut DatadogWorld, _parameters: &HashMap) { + let api = world + .api_instances + .v2_api_case_management + .as_ref() + .expect("api instance not found"); + let page_size = _parameters + .get("page[size]") + .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); + let page_offset = _parameters + .get("page[offset]") + .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); + let sort_field = _parameters + .get("sort[field]") + .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); + let filter = _parameters + .get("filter") + .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); + let sort_asc = _parameters + .get("sort[asc]") + .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); + let mut params = datadogV2::api_case_management::SearchCasesOptionalParams::default(); + params.page_size = page_size; + params.page_offset = page_offset; + params.sort_field = sort_field; + params.filter = filter; + params.sort_asc = sort_asc; + let response = match block_on(api.search_cases_with_http_info(params)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} +fn test_v2_search_cases_with_pagination( world: &mut DatadogWorld, _parameters: &HashMap, ) { let api = world .api_instances - .v2_api_ci_visibility_pipelines + .v2_api_case_management + .as_ref() + .expect("api instance not found"); + let page_size = _parameters + .get("page[size]") + .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); + let page_offset = _parameters + .get("page[offset]") + .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); + let sort_field = _parameters + .get("sort[field]") + .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); + let filter = _parameters + .get("filter") + .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); + let sort_asc = _parameters + .get("sort[asc]") + .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); + let mut params = datadogV2::api_case_management::SearchCasesOptionalParams::default(); + params.page_size = page_size; + params.page_offset = page_offset; + params.sort_field = sort_field; + params.filter = filter; + params.sort_asc = sort_asc; + let response = api.search_cases_with_pagination(params); + let mut result = Vec::new(); + + block_on(async { + pin_mut!(response); + + while let Some(resp) = response.next().await { + match resp { + Ok(response) => { + result.push(response); + } + Err(error) => { + return match error { + Error::ResponseError(e) => { + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {}", error), + }; + } + } + } + }); + world.response.object = serde_json::to_value(result).unwrap(); + world.response.code = 200; +} + +fn test_v2_create_case(world: &mut DatadogWorld, _parameters: &HashMap) { + let api = world + .api_instances + .v2_api_case_management .as_ref() .expect("api instance not found"); let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); - let response = match block_on(api.create_ci_app_pipeline_event_with_http_info(body)) { + let response = match block_on(api.create_case_with_http_info(body)) { Ok(response) => response, Err(error) => { return match error { @@ -10809,17 +11240,13 @@ fn test_v2_create_ci_app_pipeline_event( world.response.code = response.status.as_u16(); } -fn test_v2_aggregate_ci_app_pipeline_events( - world: &mut DatadogWorld, - _parameters: &HashMap, -) { +fn test_v2_get_projects(world: &mut DatadogWorld, _parameters: &HashMap) { let api = world .api_instances - .v2_api_ci_visibility_pipelines + .v2_api_case_management .as_ref() .expect("api instance not found"); - let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); - let response = match block_on(api.aggregate_ci_app_pipeline_events_with_http_info(body)) { + let response = match block_on(api.get_projects_with_http_info()) { Ok(response) => response, Err(error) => { return match error { @@ -10837,17 +11264,331 @@ fn test_v2_aggregate_ci_app_pipeline_events( world.response.code = response.status.as_u16(); } -fn test_v2_list_ci_app_pipeline_events( - world: &mut DatadogWorld, - _parameters: &HashMap, -) { +fn test_v2_create_project(world: &mut DatadogWorld, _parameters: &HashMap) { let api = world .api_instances - .v2_api_ci_visibility_pipelines + .v2_api_case_management .as_ref() .expect("api instance not found"); - let filter_query = _parameters - .get("filter[query]") + let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); + let response = match block_on(api.create_project_with_http_info(body)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_delete_project(world: &mut DatadogWorld, _parameters: &HashMap) { + let api = world + .api_instances + .v2_api_case_management + .as_ref() + .expect("api instance not found"); + let project_id = + serde_json::from_value(_parameters.get("project_id").unwrap().clone()).unwrap(); + let response = match block_on(api.delete_project_with_http_info(project_id)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_get_project(world: &mut DatadogWorld, _parameters: &HashMap) { + let api = world + .api_instances + .v2_api_case_management + .as_ref() + .expect("api instance not found"); + let project_id = + serde_json::from_value(_parameters.get("project_id").unwrap().clone()).unwrap(); + let response = match block_on(api.get_project_with_http_info(project_id)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_get_case(world: &mut DatadogWorld, _parameters: &HashMap) { + let api = world + .api_instances + .v2_api_case_management + .as_ref() + .expect("api instance not found"); + let case_id = serde_json::from_value(_parameters.get("case_id").unwrap().clone()).unwrap(); + let response = match block_on(api.get_case_with_http_info(case_id)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_archive_case(world: &mut DatadogWorld, _parameters: &HashMap) { + let api = world + .api_instances + .v2_api_case_management + .as_ref() + .expect("api instance not found"); + let case_id = serde_json::from_value(_parameters.get("case_id").unwrap().clone()).unwrap(); + let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); + let response = match block_on(api.archive_case_with_http_info(case_id, body)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_assign_case(world: &mut DatadogWorld, _parameters: &HashMap) { + let api = world + .api_instances + .v2_api_case_management + .as_ref() + .expect("api instance not found"); + let case_id = serde_json::from_value(_parameters.get("case_id").unwrap().clone()).unwrap(); + let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); + let response = match block_on(api.assign_case_with_http_info(case_id, body)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_update_priority(world: &mut DatadogWorld, _parameters: &HashMap) { + let api = world + .api_instances + .v2_api_case_management + .as_ref() + .expect("api instance not found"); + let case_id = serde_json::from_value(_parameters.get("case_id").unwrap().clone()).unwrap(); + let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); + let response = match block_on(api.update_priority_with_http_info(case_id, body)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_update_status(world: &mut DatadogWorld, _parameters: &HashMap) { + let api = world + .api_instances + .v2_api_case_management + .as_ref() + .expect("api instance not found"); + let case_id = serde_json::from_value(_parameters.get("case_id").unwrap().clone()).unwrap(); + let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); + let response = match block_on(api.update_status_with_http_info(case_id, body)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_unarchive_case(world: &mut DatadogWorld, _parameters: &HashMap) { + let api = world + .api_instances + .v2_api_case_management + .as_ref() + .expect("api instance not found"); + let case_id = serde_json::from_value(_parameters.get("case_id").unwrap().clone()).unwrap(); + let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); + let response = match block_on(api.unarchive_case_with_http_info(case_id, body)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_unassign_case(world: &mut DatadogWorld, _parameters: &HashMap) { + let api = world + .api_instances + .v2_api_case_management + .as_ref() + .expect("api instance not found"); + let case_id = serde_json::from_value(_parameters.get("case_id").unwrap().clone()).unwrap(); + let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); + let response = match block_on(api.unassign_case_with_http_info(case_id, body)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_create_ci_app_pipeline_event( + world: &mut DatadogWorld, + _parameters: &HashMap, +) { + let api = world + .api_instances + .v2_api_ci_visibility_pipelines + .as_ref() + .expect("api instance not found"); + let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); + let response = match block_on(api.create_ci_app_pipeline_event_with_http_info(body)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_aggregate_ci_app_pipeline_events( + world: &mut DatadogWorld, + _parameters: &HashMap, +) { + let api = world + .api_instances + .v2_api_ci_visibility_pipelines + .as_ref() + .expect("api instance not found"); + let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); + let response = match block_on(api.aggregate_ci_app_pipeline_events_with_http_info(body)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_list_ci_app_pipeline_events( + world: &mut DatadogWorld, + _parameters: &HashMap, +) { + let api = world + .api_instances + .v2_api_ci_visibility_pipelines + .as_ref() + .expect("api instance not found"); + let filter_query = _parameters + .get("filter[query]") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); let filter_from = _parameters .get("filter[from]") @@ -10865,8 +11606,7 @@ fn test_v2_list_ci_app_pipeline_events( .get("page[limit]") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); let mut params = - datadogV2::api::api_ci_visibility_pipelines::ListCIAppPipelineEventsOptionalParams::default( - ); + datadogV2::api_ci_visibility_pipelines::ListCIAppPipelineEventsOptionalParams::default(); params.filter_query = filter_query; params.filter_from = filter_from; params.filter_to = filter_to; @@ -10918,8 +11658,7 @@ fn test_v2_list_ci_app_pipeline_events_with_pagination( .get("page[limit]") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); let mut params = - datadogV2::api::api_ci_visibility_pipelines::ListCIAppPipelineEventsOptionalParams::default( - ); + datadogV2::api_ci_visibility_pipelines::ListCIAppPipelineEventsOptionalParams::default(); params.filter_query = filter_query; params.filter_from = filter_from; params.filter_to = filter_to; @@ -10966,7 +11705,8 @@ fn test_v2_search_ci_app_pipeline_events( let body = _parameters .get("body") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = datadogV2::api::api_ci_visibility_pipelines::SearchCIAppPipelineEventsOptionalParams::default(); + let mut params = + datadogV2::api_ci_visibility_pipelines::SearchCIAppPipelineEventsOptionalParams::default(); params.body = body; let response = match block_on(api.search_ci_app_pipeline_events_with_http_info(params)) { Ok(response) => response, @@ -10997,7 +11737,8 @@ fn test_v2_search_ci_app_pipeline_events_with_pagination( let body = _parameters .get("body") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = datadogV2::api::api_ci_visibility_pipelines::SearchCIAppPipelineEventsOptionalParams::default(); + let mut params = + datadogV2::api_ci_visibility_pipelines::SearchCIAppPipelineEventsOptionalParams::default(); params.body = body; let response = api.search_ci_app_pipeline_events_with_pagination(params); let mut result = Vec::new(); @@ -11080,7 +11821,7 @@ fn test_v2_list_ci_app_test_events(world: &mut DatadogWorld, _parameters: &HashM .get("page[limit]") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); let mut params = - datadogV2::api::api_ci_visibility_tests::ListCIAppTestEventsOptionalParams::default(); + datadogV2::api_ci_visibility_tests::ListCIAppTestEventsOptionalParams::default(); params.filter_query = filter_query; params.filter_from = filter_from; params.filter_to = filter_to; @@ -11132,7 +11873,7 @@ fn test_v2_list_ci_app_test_events_with_pagination( .get("page[limit]") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); let mut params = - datadogV2::api::api_ci_visibility_tests::ListCIAppTestEventsOptionalParams::default(); + datadogV2::api_ci_visibility_tests::ListCIAppTestEventsOptionalParams::default(); params.filter_query = filter_query; params.filter_from = filter_from; params.filter_to = filter_to; @@ -11180,7 +11921,7 @@ fn test_v2_search_ci_app_test_events( .get("body") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); let mut params = - datadogV2::api::api_ci_visibility_tests::SearchCIAppTestEventsOptionalParams::default(); + datadogV2::api_ci_visibility_tests::SearchCIAppTestEventsOptionalParams::default(); params.body = body; let response = match block_on(api.search_ci_app_test_events_with_http_info(params)) { Ok(response) => response, @@ -11212,7 +11953,7 @@ fn test_v2_search_ci_app_test_events_with_pagination( .get("body") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); let mut params = - datadogV2::api::api_ci_visibility_tests::SearchCIAppTestEventsOptionalParams::default(); + datadogV2::api_ci_visibility_tests::SearchCIAppTestEventsOptionalParams::default(); params.body = body; let response = api.search_ci_app_test_events_with_pagination(params); let mut result = Vec::new(); @@ -11263,8 +12004,7 @@ fn test_v2_list_container_images(world: &mut DatadogWorld, _parameters: &HashMap let page_cursor = _parameters .get("page[cursor]") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = - datadogV2::api::api_container_images::ListContainerImagesOptionalParams::default(); + let mut params = datadogV2::api_container_images::ListContainerImagesOptionalParams::default(); params.filter_tags = filter_tags; params.group_by = group_by; params.sort = sort; @@ -11311,8 +12051,7 @@ fn test_v2_list_container_images_with_pagination( let page_cursor = _parameters .get("page[cursor]") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = - datadogV2::api::api_container_images::ListContainerImagesOptionalParams::default(); + let mut params = datadogV2::api_container_images::ListContainerImagesOptionalParams::default(); params.filter_tags = filter_tags; params.group_by = group_by; params.sort = sort; @@ -11367,7 +12106,7 @@ fn test_v2_list_containers(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -11914,8 +12655,7 @@ fn test_v2_get_estimated_cost_by_org( let end_date = _parameters .get("end_date") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = - datadogV2::api::api_usage_metering::GetEstimatedCostByOrgOptionalParams::default(); + let mut params = datadogV2::api_usage_metering::GetEstimatedCostByOrgOptionalParams::default(); params.view = view; params.start_month = start_month; params.end_month = end_month; @@ -11956,8 +12696,7 @@ fn test_v2_get_historical_cost_by_org( let end_month = _parameters .get("end_month") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = - datadogV2::api::api_usage_metering::GetHistoricalCostByOrgOptionalParams::default(); + let mut params = datadogV2::api_usage_metering::GetHistoricalCostByOrgOptionalParams::default(); params.view = view; params.end_month = end_month; let response = @@ -12009,7 +12748,7 @@ fn test_v2_get_hourly_usage(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -12328,7 +13066,7 @@ fn test_v2_list_downtimes(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -12527,7 +13265,7 @@ fn test_v2_list_monitor_downtimes(world: &mut DatadogWorld, _parameters: &HashMa let page_limit = _parameters .get("page[limit]") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = datadogV2::api::api_downtimes::ListMonitorDowntimesOptionalParams::default(); + let mut params = datadogV2::api_downtimes::ListMonitorDowntimesOptionalParams::default(); params.page_offset = page_offset; params.page_limit = page_limit; let response = match block_on(api.list_monitor_downtimes_with_http_info(monitor_id, params)) { @@ -12564,7 +13302,7 @@ fn test_v2_list_monitor_downtimes_with_pagination( let page_limit = _parameters .get("page[limit]") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = datadogV2::api::api_downtimes::ListMonitorDowntimesOptionalParams::default(); + let mut params = datadogV2::api_downtimes::ListMonitorDowntimesOptionalParams::default(); params.page_offset = page_offset; params.page_limit = page_limit; let response = api.list_monitor_downtimes_with_pagination(monitor_id, params); @@ -12619,7 +13357,7 @@ fn test_v2_list_events(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -12745,7 +13483,7 @@ fn test_v2_search_events_with_pagination( let body = _parameters .get("body") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = datadogV2::api::api_events::SearchEventsOptionalParams::default(); + let mut params = datadogV2::api_events::SearchEventsOptionalParams::default(); params.body = body; let response = api.search_events_with_pagination(params); let mut result = Vec::new(); @@ -12790,7 +13528,7 @@ fn test_v2_list_incidents(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -13051,7 +13789,7 @@ fn test_v2_update_incident(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -13088,8 +13826,7 @@ fn test_v2_list_incident_attachments( let filter_attachment_type = _parameters .get("filter[attachment_type]") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = - datadogV2::api::api_incidents::ListIncidentAttachmentsOptionalParams::default(); + let mut params = datadogV2::api_incidents::ListIncidentAttachmentsOptionalParams::default(); params.include = include; params.filter_attachment_type = filter_attachment_type; let response = match block_on(api.list_incident_attachments_with_http_info(incident_id, params)) @@ -13126,8 +13863,7 @@ fn test_v2_update_incident_attachments( let include = _parameters .get("include") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = - datadogV2::api::api_incidents::UpdateIncidentAttachmentsOptionalParams::default(); + let mut params = datadogV2::api_incidents::UpdateIncidentAttachmentsOptionalParams::default(); params.include = include; let response = match block_on(api.update_incident_attachments_with_http_info(incident_id, body, params)) { @@ -13584,8 +14320,7 @@ fn test_v2_make_gcpsts_delegate(world: &mut DatadogWorld, _parameters: &HashMap< let body = _parameters .get("body") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = - datadogV2::api::api_gcp_integration::MakeGCPSTSDelegateOptionalParams::default(); + let mut params = datadogV2::api_gcp_integration::MakeGCPSTSDelegateOptionalParams::default(); params.body = body; let response = match block_on(api.make_gcpsts_delegate_with_http_info(params)) { Ok(response) => response, @@ -14621,7 +15356,7 @@ fn test_v2_submit_log(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -14833,7 +15568,7 @@ fn test_v2_list_logs_with_pagination( let body = _parameters .get("body") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = datadogV2::api::api_logs::ListLogsOptionalParams::default(); + let mut params = datadogV2::api_logs::ListLogsOptionalParams::default(); params.body = body; let response = api.list_logs_with_pagination(params); let mut result = Vec::new(); @@ -15043,19 +15778,102 @@ fn test_v2_update_logs_archive(world: &mut DatadogWorld, _parameters: &HashMap, +) { + let api = world + .api_instances + .v2_api_logs_archives + .as_ref() + .expect("api instance not found"); + let archive_id = + serde_json::from_value(_parameters.get("archive_id").unwrap().clone()).unwrap(); + let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); + let response = match block_on(api.remove_role_from_archive_with_http_info(archive_id, body)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_list_archive_read_roles(world: &mut DatadogWorld, _parameters: &HashMap) { + let api = world + .api_instances + .v2_api_logs_archives + .as_ref() + .expect("api instance not found"); + let archive_id = + serde_json::from_value(_parameters.get("archive_id").unwrap().clone()).unwrap(); + let response = match block_on(api.list_archive_read_roles_with_http_info(archive_id)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_add_read_role_to_archive( + world: &mut DatadogWorld, + _parameters: &HashMap, +) { + let api = world + .api_instances + .v2_api_logs_archives + .as_ref() + .expect("api instance not found"); + let archive_id = + serde_json::from_value(_parameters.get("archive_id").unwrap().clone()).unwrap(); + let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); + let response = match block_on(api.add_read_role_to_archive_with_http_info(archive_id, body)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_list_logs_custom_destinations( world: &mut DatadogWorld, _parameters: &HashMap, ) { let api = world .api_instances - .v2_api_logs_archives + .v2_api_logs_custom_destinations .as_ref() .expect("api instance not found"); - let archive_id = - serde_json::from_value(_parameters.get("archive_id").unwrap().clone()).unwrap(); - let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); - let response = match block_on(api.remove_role_from_archive_with_http_info(archive_id, body)) { + let response = match block_on(api.list_logs_custom_destinations_with_http_info()) { Ok(response) => response, Err(error) => { return match error { @@ -15073,15 +15891,17 @@ fn test_v2_remove_role_from_archive( world.response.code = response.status.as_u16(); } -fn test_v2_list_archive_read_roles(world: &mut DatadogWorld, _parameters: &HashMap) { +fn test_v2_create_logs_custom_destination( + world: &mut DatadogWorld, + _parameters: &HashMap, +) { let api = world .api_instances - .v2_api_logs_archives + .v2_api_logs_custom_destinations .as_ref() .expect("api instance not found"); - let archive_id = - serde_json::from_value(_parameters.get("archive_id").unwrap().clone()).unwrap(); - let response = match block_on(api.list_archive_read_roles_with_http_info(archive_id)) { + let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); + let response = match block_on(api.create_logs_custom_destination_with_http_info(body)) { Ok(response) => response, Err(error) => { return match error { @@ -15099,19 +15919,81 @@ fn test_v2_list_archive_read_roles(world: &mut DatadogWorld, _parameters: &HashM world.response.code = response.status.as_u16(); } -fn test_v2_add_read_role_to_archive( +fn test_v2_delete_logs_custom_destination( world: &mut DatadogWorld, _parameters: &HashMap, ) { let api = world .api_instances - .v2_api_logs_archives + .v2_api_logs_custom_destinations .as_ref() .expect("api instance not found"); - let archive_id = - serde_json::from_value(_parameters.get("archive_id").unwrap().clone()).unwrap(); + let custom_destination_id = + serde_json::from_value(_parameters.get("custom_destination_id").unwrap().clone()).unwrap(); + let response = + match block_on(api.delete_logs_custom_destination_with_http_info(custom_destination_id)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_get_logs_custom_destination( + world: &mut DatadogWorld, + _parameters: &HashMap, +) { + let api = world + .api_instances + .v2_api_logs_custom_destinations + .as_ref() + .expect("api instance not found"); + let custom_destination_id = + serde_json::from_value(_parameters.get("custom_destination_id").unwrap().clone()).unwrap(); + let response = + match block_on(api.get_logs_custom_destination_with_http_info(custom_destination_id)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_update_logs_custom_destination( + world: &mut DatadogWorld, + _parameters: &HashMap, +) { + let api = world + .api_instances + .v2_api_logs_custom_destinations + .as_ref() + .expect("api instance not found"); + let custom_destination_id = + serde_json::from_value(_parameters.get("custom_destination_id").unwrap().clone()).unwrap(); let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); - let response = match block_on(api.add_read_role_to_archive_with_http_info(archive_id, body)) { + let response = match block_on( + api.update_logs_custom_destination_with_http_info(custom_destination_id, body), + ) { Ok(response) => response, Err(error) => { return match error { @@ -15281,7 +16163,7 @@ fn test_v2_list_tag_configurations(world: &mut DatadogWorld, _parameters: &HashM let window_seconds = _parameters .get("window[seconds]") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = datadogV2::api::api_metrics::ListTagConfigurationsOptionalParams::default(); + let mut params = datadogV2::api_metrics::ListTagConfigurationsOptionalParams::default(); params.filter_configured = filter_configured; params.filter_tags_configured = filter_tags_configured; params.filter_metric_type = filter_metric_type; @@ -15378,7 +16260,7 @@ fn test_v2_list_active_metric_configurations( .get("window[seconds]") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); let mut params = - datadogV2::api::api_metrics::ListActiveMetricConfigurationsOptionalParams::default(); + datadogV2::api_metrics::ListActiveMetricConfigurationsOptionalParams::default(); params.window_seconds = window_seconds; let response = match block_on(api.list_active_metric_configurations_with_http_info(metric_name, params)) { @@ -15428,6 +16310,32 @@ fn test_v2_list_tags_by_metric_name( world.response.code = response.status.as_u16(); } +fn test_v2_list_metric_assets(world: &mut DatadogWorld, _parameters: &HashMap) { + let api = world + .api_instances + .v2_api_metrics + .as_ref() + .expect("api instance not found"); + let metric_name = + serde_json::from_value(_parameters.get("metric_name").unwrap().clone()).unwrap(); + let response = match block_on(api.list_metric_assets_with_http_info(metric_name)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + fn test_v2_estimate_metrics_output_series( world: &mut DatadogWorld, _parameters: &HashMap, @@ -15454,8 +16362,7 @@ fn test_v2_estimate_metrics_output_series( let filter_timespan_h = _parameters .get("filter[timespan_h]") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = - datadogV2::api::api_metrics::EstimateMetricsOutputSeriesOptionalParams::default(); + let mut params = datadogV2::api_metrics::EstimateMetricsOutputSeriesOptionalParams::default(); params.filter_groups = filter_groups; params.filter_hours_ago = filter_hours_ago; params.filter_num_aggregations = filter_num_aggregations; @@ -15687,7 +16594,7 @@ fn test_v2_submit_metrics(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -15893,7 +16800,7 @@ fn test_v2_list_roles(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -16561,6 +17468,153 @@ fn test_v2_update_security_filter(world: &mut DatadogWorld, _parameters: &HashMa world.response.code = response.status.as_u16(); } +fn test_v2_list_security_monitoring_suppressions( + world: &mut DatadogWorld, + _parameters: &HashMap, +) { + let api = world + .api_instances + .v2_api_security_monitoring + .as_ref() + .expect("api instance not found"); + let response = match block_on(api.list_security_monitoring_suppressions_with_http_info()) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_create_security_monitoring_suppression( + world: &mut DatadogWorld, + _parameters: &HashMap, +) { + let api = world + .api_instances + .v2_api_security_monitoring + .as_ref() + .expect("api instance not found"); + let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); + let response = match block_on(api.create_security_monitoring_suppression_with_http_info(body)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_delete_security_monitoring_suppression( + world: &mut DatadogWorld, + _parameters: &HashMap, +) { + let api = world + .api_instances + .v2_api_security_monitoring + .as_ref() + .expect("api instance not found"); + let suppression_id = + serde_json::from_value(_parameters.get("suppression_id").unwrap().clone()).unwrap(); + let response = + match block_on(api.delete_security_monitoring_suppression_with_http_info(suppression_id)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_get_security_monitoring_suppression( + world: &mut DatadogWorld, + _parameters: &HashMap, +) { + let api = world + .api_instances + .v2_api_security_monitoring + .as_ref() + .expect("api instance not found"); + let suppression_id = + serde_json::from_value(_parameters.get("suppression_id").unwrap().clone()).unwrap(); + let response = + match block_on(api.get_security_monitoring_suppression_with_http_info(suppression_id)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_update_security_monitoring_suppression( + world: &mut DatadogWorld, + _parameters: &HashMap, +) { + let api = world + .api_instances + .v2_api_security_monitoring + .as_ref() + .expect("api instance not found"); + let suppression_id = + serde_json::from_value(_parameters.get("suppression_id").unwrap().clone()).unwrap(); + let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); + let response = match block_on( + api.update_security_monitoring_suppression_with_http_info(suppression_id, body), + ) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + fn test_v2_list_security_monitoring_rules( world: &mut DatadogWorld, _parameters: &HashMap, @@ -16577,8 +17631,7 @@ fn test_v2_list_security_monitoring_rules( .get("page[number]") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); let mut params = - datadogV2::api::api_security_monitoring::ListSecurityMonitoringRulesOptionalParams::default( - ); + datadogV2::api_security_monitoring::ListSecurityMonitoringRulesOptionalParams::default(); params.page_size = page_size; params.page_number = page_number; let response = match block_on(api.list_security_monitoring_rules_with_http_info(params)) { @@ -16627,6 +17680,34 @@ fn test_v2_create_security_monitoring_rule( world.response.code = response.status.as_u16(); } +fn test_v2_validate_security_monitoring_rule( + world: &mut DatadogWorld, + _parameters: &HashMap, +) { + let api = world + .api_instances + .v2_api_security_monitoring + .as_ref() + .expect("api instance not found"); + let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); + let response = match block_on(api.validate_security_monitoring_rule_with_http_info(body)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + fn test_v2_delete_security_monitoring_rule( world: &mut DatadogWorld, _parameters: &HashMap, @@ -16740,7 +17821,8 @@ fn test_v2_list_security_monitoring_signals( let page_limit = _parameters .get("page[limit]") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = datadogV2::api::api_security_monitoring::ListSecurityMonitoringSignalsOptionalParams::default(); + let mut params = + datadogV2::api_security_monitoring::ListSecurityMonitoringSignalsOptionalParams::default(); params.filter_query = filter_query; params.filter_from = filter_from; params.filter_to = filter_to; @@ -16791,7 +17873,8 @@ fn test_v2_list_security_monitoring_signals_with_pagination( let page_limit = _parameters .get("page[limit]") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = datadogV2::api::api_security_monitoring::ListSecurityMonitoringSignalsOptionalParams::default(); + let mut params = + datadogV2::api_security_monitoring::ListSecurityMonitoringSignalsOptionalParams::default(); params.filter_query = filter_query; params.filter_from = filter_from; params.filter_to = filter_to; @@ -16838,7 +17921,9 @@ fn test_v2_search_security_monitoring_signals( let body = _parameters .get("body") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = datadogV2::api::api_security_monitoring::SearchSecurityMonitoringSignalsOptionalParams::default(); + let mut params = + datadogV2::api_security_monitoring::SearchSecurityMonitoringSignalsOptionalParams::default( + ); params.body = body; let response = match block_on(api.search_security_monitoring_signals_with_http_info(params)) { Ok(response) => response, @@ -16869,7 +17954,9 @@ fn test_v2_search_security_monitoring_signals_with_pagination( let body = _parameters .get("body") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = datadogV2::api::api_security_monitoring::SearchSecurityMonitoringSignalsOptionalParams::default(); + let mut params = + datadogV2::api_security_monitoring::SearchSecurityMonitoringSignalsOptionalParams::default( + ); params.body = body; let response = api.search_security_monitoring_signals_with_pagination(params); let mut result = Vec::new(); @@ -17031,7 +18118,7 @@ fn test_v2_list_powerpacks(world: &mut DatadogWorld, _parameters: &HashMap panic!("error parsing response: {}", error), }; } - } + } + } + }); + world.response.object = serde_json::to_value(result).unwrap(); + world.response.code = 200; +} + +fn test_v2_create_powerpack(world: &mut DatadogWorld, _parameters: &HashMap) { + let api = world + .api_instances + .v2_api_powerpack + .as_ref() + .expect("api instance not found"); + let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); + let response = match block_on(api.create_powerpack_with_http_info(body)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_delete_powerpack(world: &mut DatadogWorld, _parameters: &HashMap) { + let api = world + .api_instances + .v2_api_powerpack + .as_ref() + .expect("api instance not found"); + let powerpack_id = + serde_json::from_value(_parameters.get("powerpack_id").unwrap().clone()).unwrap(); + let response = match block_on(api.delete_powerpack_with_http_info(powerpack_id)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_get_powerpack(world: &mut DatadogWorld, _parameters: &HashMap) { + let api = world + .api_instances + .v2_api_powerpack + .as_ref() + .expect("api instance not found"); + let powerpack_id = + serde_json::from_value(_parameters.get("powerpack_id").unwrap().clone()).unwrap(); + let response = match block_on(api.get_powerpack_with_http_info(powerpack_id)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_update_powerpack(world: &mut DatadogWorld, _parameters: &HashMap) { + let api = world + .api_instances + .v2_api_powerpack + .as_ref() + .expect("api instance not found"); + let powerpack_id = + serde_json::from_value(_parameters.get("powerpack_id").unwrap().clone()).unwrap(); + let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); + let response = match block_on(api.update_powerpack_with_http_info(powerpack_id, body)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_list_processes(world: &mut DatadogWorld, _parameters: &HashMap) { + let api = world + .api_instances + .v2_api_processes + .as_ref() + .expect("api instance not found"); + let search = _parameters + .get("search") + .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); + let tags = _parameters + .get("tags") + .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); + let from = _parameters + .get("from") + .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); + let to = _parameters + .get("to") + .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); + let page_limit = _parameters + .get("page[limit]") + .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); + let page_cursor = _parameters + .get("page[cursor]") + .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); + let mut params = datadogV2::api_processes::ListProcessesOptionalParams::default(); + params.search = search; + params.tags = tags; + params.from = from; + params.to = to; + params.page_limit = page_limit; + params.page_cursor = page_cursor; + let response = match block_on(api.list_processes_with_http_info(params)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} +fn test_v2_list_processes_with_pagination( + world: &mut DatadogWorld, + _parameters: &HashMap, +) { + let api = world + .api_instances + .v2_api_processes + .as_ref() + .expect("api instance not found"); + let search = _parameters + .get("search") + .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); + let tags = _parameters + .get("tags") + .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); + let from = _parameters + .get("from") + .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); + let to = _parameters + .get("to") + .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); + let page_limit = _parameters + .get("page[limit]") + .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); + let page_cursor = _parameters + .get("page[cursor]") + .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); + let mut params = datadogV2::api_processes::ListProcessesOptionalParams::default(); + params.search = search; + params.tags = tags; + params.from = from; + params.to = to; + params.page_limit = page_limit; + params.page_cursor = page_cursor; + let response = api.list_processes_with_pagination(params); + let mut result = Vec::new(); + + block_on(async { + pin_mut!(response); + + while let Some(resp) = response.next().await { + match resp { + Ok(response) => { + result.push(response); + } + Err(error) => { + return match error { + Error::ResponseError(e) => { + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {}", error), + }; + } + } + } + }); + world.response.object = serde_json::to_value(result).unwrap(); + world.response.code = 200; +} + +fn test_v2_list_csm_threats_agent_rules( + world: &mut DatadogWorld, + _parameters: &HashMap, +) { + let api = world + .api_instances + .v2_api_cloud_workload_security + .as_ref() + .expect("api instance not found"); + let response = match block_on(api.list_csm_threats_agent_rules_with_http_info()) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_create_csm_threats_agent_rule( + world: &mut DatadogWorld, + _parameters: &HashMap, +) { + let api = world + .api_instances + .v2_api_cloud_workload_security + .as_ref() + .expect("api instance not found"); + let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); + let response = match block_on(api.create_csm_threats_agent_rule_with_http_info(body)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; } - }); - world.response.object = serde_json::to_value(result).unwrap(); - world.response.code = 200; + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); } -fn test_v2_create_powerpack(world: &mut DatadogWorld, _parameters: &HashMap) { +fn test_v2_delete_csm_threats_agent_rule( + world: &mut DatadogWorld, + _parameters: &HashMap, +) { let api = world .api_instances - .v2_api_powerpack + .v2_api_cloud_workload_security .as_ref() .expect("api instance not found"); - let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); - let response = match block_on(api.create_powerpack_with_http_info(body)) { + let agent_rule_id = + serde_json::from_value(_parameters.get("agent_rule_id").unwrap().clone()).unwrap(); + let response = match block_on(api.delete_csm_threats_agent_rule_with_http_info(agent_rule_id)) { Ok(response) => response, Err(error) => { return match error { @@ -17122,15 +18482,18 @@ fn test_v2_create_powerpack(world: &mut DatadogWorld, _parameters: &HashMap) { +fn test_v2_get_csm_threats_agent_rule( + world: &mut DatadogWorld, + _parameters: &HashMap, +) { let api = world .api_instances - .v2_api_powerpack + .v2_api_cloud_workload_security .as_ref() .expect("api instance not found"); - let powerpack_id = - serde_json::from_value(_parameters.get("powerpack_id").unwrap().clone()).unwrap(); - let response = match block_on(api.delete_powerpack_with_http_info(powerpack_id)) { + let agent_rule_id = + serde_json::from_value(_parameters.get("agent_rule_id").unwrap().clone()).unwrap(); + let response = match block_on(api.get_csm_threats_agent_rule_with_http_info(agent_rule_id)) { Ok(response) => response, Err(error) => { return match error { @@ -17148,15 +18511,47 @@ fn test_v2_delete_powerpack(world: &mut DatadogWorld, _parameters: &HashMap) { +fn test_v2_update_csm_threats_agent_rule( + world: &mut DatadogWorld, + _parameters: &HashMap, +) { let api = world .api_instances - .v2_api_powerpack + .v2_api_cloud_workload_security .as_ref() .expect("api instance not found"); - let powerpack_id = - serde_json::from_value(_parameters.get("powerpack_id").unwrap().clone()).unwrap(); - let response = match block_on(api.get_powerpack_with_http_info(powerpack_id)) { + let agent_rule_id = + serde_json::from_value(_parameters.get("agent_rule_id").unwrap().clone()).unwrap(); + let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); + let response = + match block_on(api.update_csm_threats_agent_rule_with_http_info(agent_rule_id, body)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_download_csm_threats_policy( + world: &mut DatadogWorld, + _parameters: &HashMap, +) { + let api = world + .api_instances + .v2_api_cloud_workload_security + .as_ref() + .expect("api instance not found"); + let response = match block_on(api.download_csm_threats_policy_with_http_info()) { Ok(response) => response, Err(error) => { return match error { @@ -17174,16 +18569,16 @@ fn test_v2_get_powerpack(world: &mut DatadogWorld, _parameters: &HashMap) { +fn test_v2_download_cloud_workload_policy_file( + world: &mut DatadogWorld, + _parameters: &HashMap, +) { let api = world .api_instances - .v2_api_powerpack + .v2_api_cloud_workload_security .as_ref() .expect("api instance not found"); - let powerpack_id = - serde_json::from_value(_parameters.get("powerpack_id").unwrap().clone()).unwrap(); - let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); - let response = match block_on(api.update_powerpack_with_http_info(powerpack_id, body)) { + let response = match block_on(api.download_cloud_workload_policy_file_with_http_info()) { Ok(response) => response, Err(error) => { return match error { @@ -17201,38 +18596,16 @@ fn test_v2_update_powerpack(world: &mut DatadogWorld, _parameters: &HashMap) { +fn test_v2_list_cloud_workload_security_agent_rules( + world: &mut DatadogWorld, + _parameters: &HashMap, +) { let api = world .api_instances - .v2_api_processes + .v2_api_cloud_workload_security .as_ref() .expect("api instance not found"); - let search = _parameters - .get("search") - .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let tags = _parameters - .get("tags") - .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let from = _parameters - .get("from") - .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let to = _parameters - .get("to") - .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let page_limit = _parameters - .get("page[limit]") - .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let page_cursor = _parameters - .get("page[cursor]") - .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = datadogV2::api::api_processes::ListProcessesOptionalParams::default(); - params.search = search; - params.tags = tags; - params.from = from; - params.to = to; - params.page_limit = page_limit; - params.page_cursor = page_cursor; - let response = match block_on(api.list_processes_with_http_info(params)) { + let response = match block_on(api.list_cloud_workload_security_agent_rules_with_http_info()) { Ok(response) => response, Err(error) => { return match error { @@ -17249,66 +18622,127 @@ fn test_v2_list_processes(world: &mut DatadogWorld, _parameters: &HashMap, ) { let api = world .api_instances - .v2_api_processes + .v2_api_cloud_workload_security .as_ref() .expect("api instance not found"); - let search = _parameters - .get("search") - .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let tags = _parameters - .get("tags") - .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let from = _parameters - .get("from") - .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let to = _parameters - .get("to") - .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let page_limit = _parameters - .get("page[limit]") - .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let page_cursor = _parameters - .get("page[cursor]") - .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = datadogV2::api::api_processes::ListProcessesOptionalParams::default(); - params.search = search; - params.tags = tags; - params.from = from; - params.to = to; - params.page_limit = page_limit; - params.page_cursor = page_cursor; - let response = api.list_processes_with_pagination(params); - let mut result = Vec::new(); + let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); + let response = + match block_on(api.create_cloud_workload_security_agent_rule_with_http_info(body)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} - block_on(async { - pin_mut!(response); +fn test_v2_delete_cloud_workload_security_agent_rule( + world: &mut DatadogWorld, + _parameters: &HashMap, +) { + let api = world + .api_instances + .v2_api_cloud_workload_security + .as_ref() + .expect("api instance not found"); + let agent_rule_id = + serde_json::from_value(_parameters.get("agent_rule_id").unwrap().clone()).unwrap(); + let response = + match block_on(api.delete_cloud_workload_security_agent_rule_with_http_info(agent_rule_id)) + { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} - while let Some(resp) = response.next().await { - match resp { - Ok(response) => { - result.push(response); - } - Err(error) => { - return match error { - Error::ResponseError(e) => { - if let Some(entity) = e.entity { - world.response.object = serde_json::to_value(entity).unwrap(); - } +fn test_v2_get_cloud_workload_security_agent_rule( + world: &mut DatadogWorld, + _parameters: &HashMap, +) { + let api = world + .api_instances + .v2_api_cloud_workload_security + .as_ref() + .expect("api instance not found"); + let agent_rule_id = + serde_json::from_value(_parameters.get("agent_rule_id").unwrap().clone()).unwrap(); + let response = + match block_on(api.get_cloud_workload_security_agent_rule_with_http_info(agent_rule_id)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); } - _ => panic!("error parsing response: {}", error), - }; + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_update_cloud_workload_security_agent_rule( + world: &mut DatadogWorld, + _parameters: &HashMap, +) { + let api = world + .api_instances + .v2_api_cloud_workload_security + .as_ref() + .expect("api instance not found"); + let agent_rule_id = + serde_json::from_value(_parameters.get("agent_rule_id").unwrap().clone()).unwrap(); + let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); + let response = match block_on( + api.update_cloud_workload_security_agent_rule_with_http_info(agent_rule_id, body), + ) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } } - } + _ => panic!("error parsing response: {error}"), + }; } - }); - world.response.object = serde_json::to_value(result).unwrap(); - world.response.code = 200; + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); } fn test_v2_delete_restriction_policy( @@ -17570,7 +19004,7 @@ fn test_v2_list_rum_events(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -17784,7 +19223,7 @@ fn test_v2_list_scorecard_outcomes(world: &mut DatadogWorld, _parameters: &HashM .get("filter[rule][name]") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); let mut params = - datadogV2::api::api_service_scorecards::ListScorecardOutcomesOptionalParams::default(); + datadogV2::api_service_scorecards::ListScorecardOutcomesOptionalParams::default(); params.page_size = page_size; params.page_offset = page_offset; params.include = include; @@ -17852,7 +19291,7 @@ fn test_v2_list_scorecard_outcomes_with_pagination( .get("filter[rule][name]") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); let mut params = - datadogV2::api::api_service_scorecards::ListScorecardOutcomesOptionalParams::default(); + datadogV2::api_service_scorecards::ListScorecardOutcomesOptionalParams::default(); params.page_size = page_size; params.page_offset = page_offset; params.include = include; @@ -17955,8 +19394,7 @@ fn test_v2_list_scorecard_rules(world: &mut DatadogWorld, _parameters: &HashMap< let fields_scorecard = _parameters .get("fields[scorecard]") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = - datadogV2::api::api_service_scorecards::ListScorecardRulesOptionalParams::default(); + let mut params = datadogV2::api_service_scorecards::ListScorecardRulesOptionalParams::default(); params.page_size = page_size; params.page_offset = page_offset; params.include = include; @@ -18023,8 +19461,7 @@ fn test_v2_list_scorecard_rules_with_pagination( let fields_scorecard = _parameters .get("fields[scorecard]") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = - datadogV2::api::api_service_scorecards::ListScorecardRulesOptionalParams::default(); + let mut params = datadogV2::api_service_scorecards::ListScorecardRulesOptionalParams::default(); params.page_size = page_size; params.page_offset = page_offset; params.include = include; @@ -18113,182 +19550,6 @@ fn test_v2_delete_scorecard_rule(world: &mut DatadogWorld, _parameters: &HashMap world.response.code = response.status.as_u16(); } -fn test_v2_download_cloud_workload_policy_file( - world: &mut DatadogWorld, - _parameters: &HashMap, -) { - let api = world - .api_instances - .v2_api_cloud_workload_security - .as_ref() - .expect("api instance not found"); - let response = match block_on(api.download_cloud_workload_policy_file_with_http_info()) { - Ok(response) => response, - Err(error) => { - return match error { - Error::ResponseError(e) => { - world.response.code = e.status.as_u16(); - if let Some(entity) = e.entity { - world.response.object = serde_json::to_value(entity).unwrap(); - } - } - _ => panic!("error parsing response: {error}"), - }; - } - }; - world.response.object = serde_json::to_value(response.entity).unwrap(); - world.response.code = response.status.as_u16(); -} - -fn test_v2_list_cloud_workload_security_agent_rules( - world: &mut DatadogWorld, - _parameters: &HashMap, -) { - let api = world - .api_instances - .v2_api_cloud_workload_security - .as_ref() - .expect("api instance not found"); - let response = match block_on(api.list_cloud_workload_security_agent_rules_with_http_info()) { - Ok(response) => response, - Err(error) => { - return match error { - Error::ResponseError(e) => { - world.response.code = e.status.as_u16(); - if let Some(entity) = e.entity { - world.response.object = serde_json::to_value(entity).unwrap(); - } - } - _ => panic!("error parsing response: {error}"), - }; - } - }; - world.response.object = serde_json::to_value(response.entity).unwrap(); - world.response.code = response.status.as_u16(); -} - -fn test_v2_create_cloud_workload_security_agent_rule( - world: &mut DatadogWorld, - _parameters: &HashMap, -) { - let api = world - .api_instances - .v2_api_cloud_workload_security - .as_ref() - .expect("api instance not found"); - let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); - let response = - match block_on(api.create_cloud_workload_security_agent_rule_with_http_info(body)) { - Ok(response) => response, - Err(error) => { - return match error { - Error::ResponseError(e) => { - world.response.code = e.status.as_u16(); - if let Some(entity) = e.entity { - world.response.object = serde_json::to_value(entity).unwrap(); - } - } - _ => panic!("error parsing response: {error}"), - }; - } - }; - world.response.object = serde_json::to_value(response.entity).unwrap(); - world.response.code = response.status.as_u16(); -} - -fn test_v2_delete_cloud_workload_security_agent_rule( - world: &mut DatadogWorld, - _parameters: &HashMap, -) { - let api = world - .api_instances - .v2_api_cloud_workload_security - .as_ref() - .expect("api instance not found"); - let agent_rule_id = - serde_json::from_value(_parameters.get("agent_rule_id").unwrap().clone()).unwrap(); - let response = - match block_on(api.delete_cloud_workload_security_agent_rule_with_http_info(agent_rule_id)) - { - Ok(response) => response, - Err(error) => { - return match error { - Error::ResponseError(e) => { - world.response.code = e.status.as_u16(); - if let Some(entity) = e.entity { - world.response.object = serde_json::to_value(entity).unwrap(); - } - } - _ => panic!("error parsing response: {error}"), - }; - } - }; - world.response.object = serde_json::to_value(response.entity).unwrap(); - world.response.code = response.status.as_u16(); -} - -fn test_v2_get_cloud_workload_security_agent_rule( - world: &mut DatadogWorld, - _parameters: &HashMap, -) { - let api = world - .api_instances - .v2_api_cloud_workload_security - .as_ref() - .expect("api instance not found"); - let agent_rule_id = - serde_json::from_value(_parameters.get("agent_rule_id").unwrap().clone()).unwrap(); - let response = - match block_on(api.get_cloud_workload_security_agent_rule_with_http_info(agent_rule_id)) { - Ok(response) => response, - Err(error) => { - return match error { - Error::ResponseError(e) => { - world.response.code = e.status.as_u16(); - if let Some(entity) = e.entity { - world.response.object = serde_json::to_value(entity).unwrap(); - } - } - _ => panic!("error parsing response: {error}"), - }; - } - }; - world.response.object = serde_json::to_value(response.entity).unwrap(); - world.response.code = response.status.as_u16(); -} - -fn test_v2_update_cloud_workload_security_agent_rule( - world: &mut DatadogWorld, - _parameters: &HashMap, -) { - let api = world - .api_instances - .v2_api_cloud_workload_security - .as_ref() - .expect("api instance not found"); - let agent_rule_id = - serde_json::from_value(_parameters.get("agent_rule_id").unwrap().clone()).unwrap(); - let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); - let response = match block_on( - api.update_cloud_workload_security_agent_rule_with_http_info(agent_rule_id, body), - ) { - Ok(response) => response, - Err(error) => { - return match error { - Error::ResponseError(e) => { - world.response.code = e.status.as_u16(); - if let Some(entity) = e.entity { - world.response.object = serde_json::to_value(entity).unwrap(); - } - } - _ => panic!("error parsing response: {error}"), - }; - } - }; - world.response.object = serde_json::to_value(response.entity).unwrap(); - world.response.code = response.status.as_u16(); -} - fn test_v2_list_scanning_groups(world: &mut DatadogWorld, _parameters: &HashMap) { let api = world .api_instances @@ -18570,7 +19831,8 @@ fn test_v2_list_service_account_application_keys( let filter_created_at_end = _parameters .get("filter[created_at][end]") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = datadogV2::api::api_service_accounts::ListServiceAccountApplicationKeysOptionalParams::default(); + let mut params = + datadogV2::api_service_accounts::ListServiceAccountApplicationKeysOptionalParams::default(); params.page_size = page_size; params.page_number = page_number; params.sort = sort; @@ -18750,7 +20012,7 @@ fn test_v2_list_incident_services(world: &mut DatadogWorld, _parameters: &HashMa .get("filter") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); let mut params = - datadogV2::api::api_incident_services::ListIncidentServicesOptionalParams::default(); + datadogV2::api_incident_services::ListIncidentServicesOptionalParams::default(); params.include = include; params.page_size = page_size; params.page_offset = page_offset; @@ -18835,8 +20097,7 @@ fn test_v2_get_incident_service(world: &mut DatadogWorld, _parameters: &HashMap< let include = _parameters .get("include") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = - datadogV2::api::api_incident_services::GetIncidentServiceOptionalParams::default(); + let mut params = datadogV2::api_incident_services::GetIncidentServiceOptionalParams::default(); params.include = include; let response = match block_on(api.get_incident_service_with_http_info(service_id, params)) { Ok(response) => response, @@ -18902,7 +20163,7 @@ fn test_v2_list_service_definitions( .get("schema_version") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); let mut params = - datadogV2::api::api_service_definition::ListServiceDefinitionsOptionalParams::default(); + datadogV2::api_service_definition::ListServiceDefinitionsOptionalParams::default(); params.page_size = page_size; params.page_number = page_number; params.schema_version = schema_version; @@ -18942,7 +20203,7 @@ fn test_v2_list_service_definitions_with_pagination( .get("schema_version") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); let mut params = - datadogV2::api::api_service_definition::ListServiceDefinitionsOptionalParams::default(); + datadogV2::api_service_definition::ListServiceDefinitionsOptionalParams::default(); params.page_size = page_size; params.page_number = page_number; params.schema_version = schema_version; @@ -19043,7 +20304,7 @@ fn test_v2_get_service_definition(world: &mut DatadogWorld, _parameters: &HashMa .get("schema_version") .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); let mut params = - datadogV2::api::api_service_definition::GetServiceDefinitionOptionalParams::default(); + datadogV2::api_service_definition::GetServiceDefinitionOptionalParams::default(); params.schema_version = schema_version; let response = match block_on(api.get_service_definition_with_http_info(service_name, params)) { Ok(response) => response, @@ -19112,7 +20373,7 @@ fn test_v2_list_spans_get(world: &mut DatadogWorld, _parameters: &HashMap, +) { + let api = world + .api_instances + .v2_api_teams + .as_ref() + .expect("api instance not found"); + let team_id = serde_json::from_value(_parameters.get("team_id").unwrap().clone()).unwrap(); + let page_size = _parameters + .get("page[size]") + .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); + let page_number = _parameters + .get("page[number]") + .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); + let sort = _parameters + .get("sort") + .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); + let filter_keyword = _parameters + .get("filter[keyword]") + .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); + let mut params = datadogV2::api_teams::GetTeamMembershipsOptionalParams::default(); + params.page_size = page_size; + params.page_number = page_number; + params.sort = sort; + params.filter_keyword = filter_keyword; + let response = api.get_team_memberships_with_pagination(team_id, params); + let mut result = Vec::new(); + + block_on(async { + pin_mut!(response); + + while let Some(resp) = response.next().await { + match resp { + Ok(response) => { + result.push(response); + } + Err(error) => { + return match error { + Error::ResponseError(e) => { + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {}", error), + }; + } + } + } + }); + world.response.object = serde_json::to_value(result).unwrap(); + world.response.code = 200; +} fn test_v2_create_team_membership(world: &mut DatadogWorld, _parameters: &HashMap) { let api = world @@ -19888,7 +21203,7 @@ fn test_v2_list_incident_teams(world: &mut DatadogWorld, _parameters: &HashMap response, @@ -20092,7 +21407,7 @@ fn test_v2_list_users(world: &mut DatadogWorld, _parameters: &HashMap